@decocms/mesh 2.139.2 → 2.139.4

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 (204) hide show
  1. package/dist/client/assets/{AlertCircle-BDyT9vNZ.js → AlertCircle-B-qrtAf7.js} +1 -1
  2. package/dist/client/assets/{AlignLeft-BixvP29Y.js → AlignLeft-D93Obywx.js} +1 -1
  3. package/dist/client/assets/{ArrowDown-BYesfwXe.js → ArrowDown-Brxajv-A.js} +1 -1
  4. package/dist/client/assets/{ArrowLeft-BAkHebXa.js → ArrowLeft-ChnnVeV0.js} +1 -1
  5. package/dist/client/assets/{ArrowUp-BCyv-ojK.js → ArrowUp-D5ZC-G9T.js} +1 -1
  6. package/dist/client/assets/{Check-Camn3oQw.js → Check-xOBqZzmv.js} +1 -1
  7. package/dist/client/assets/{CheckCircle-B7XGhEcJ.js → CheckCircle-t4fWflCL.js} +1 -1
  8. package/dist/client/assets/{CheckDone01-CldSAlfc.js → CheckDone01-CtIvl6NR.js} +1 -1
  9. package/dist/client/assets/{CheckVerified02-K0TWAV06.js → CheckVerified02-CEWZcD4z.js} +1 -1
  10. package/dist/client/assets/{ChevronDown-DkqBWU_h.js → ChevronDown-cFwq8_1y.js} +1 -1
  11. package/dist/client/assets/{ChevronLeft-BPmkNFNc.js → ChevronLeft-BDb5Vgx_.js} +1 -1
  12. package/dist/client/assets/{ChevronRight-BI34N28O.js → ChevronRight-zkVqPrw5.js} +1 -1
  13. package/dist/client/assets/{Clock-BqFZuRNT.js → Clock-C8sBJSRB.js} +1 -1
  14. package/dist/client/assets/{Code01-DcYAohyI.js → Code01-Be1Un4zy.js} +1 -1
  15. package/dist/client/assets/{Container-B8pG1v5Y.js → Container-BzuFyXB-.js} +1 -1
  16. package/dist/client/assets/{Copy01-GXSpNbxP.js → Copy01-D46xqpGe.js} +1 -1
  17. package/dist/client/assets/{Dataflow03-Cz5aNZkd.js → Dataflow03-C_auGuZw.js} +1 -1
  18. package/dist/client/assets/{DotsHorizontal-DseOTG6x.js → DotsHorizontal-BzL1ksOS.js} +1 -1
  19. package/dist/client/assets/{DotsVertical-DgG2OQVv.js → DotsVertical-BWpyls9E.js} +1 -1
  20. package/dist/client/assets/{Download01-DV6jzPqo.js → Download01-DXQ7eLHV.js} +1 -1
  21. package/dist/client/assets/{Edit01-nsEjgwmh.js → Edit01-C-LkGhJt.js} +1 -1
  22. package/dist/client/assets/{Edit05-BLS2FJfm.js → Edit05-B4gumSwA.js} +1 -1
  23. package/dist/client/assets/{Eye-DQF_Qzuy.js → Eye-S2bOaZIy.js} +1 -1
  24. package/dist/client/assets/{File02-QDXoffKV.js → File02-v1x_k3KU.js} +1 -1
  25. package/dist/client/assets/{File06-DNhGyMHz.js → File06-CjPbqhL6.js} +1 -1
  26. package/dist/client/assets/{FilterLines-lwBT4U5d.js → FilterLines-DkQNMule.js} +1 -1
  27. package/dist/client/assets/{Globe01-lQfF_p8O.js → Globe01-O7yat0_O.js} +1 -1
  28. package/dist/client/assets/{Globe02-sIfslzHX.js → Globe02-ChkOndGF.js} +1 -1
  29. package/dist/client/assets/{Grid01-CTYtPHN4.js → Grid01-H33eVxTX.js} +1 -1
  30. package/dist/client/assets/{Hash02-DU1c1Jak.js → Hash02-BQbZm01-.js} +1 -1
  31. package/dist/client/assets/{Home02-D8QOVzlb.js → Home02-PdwInqFp.js} +1 -1
  32. package/dist/client/assets/{Image01-BNs8seI1.js → Image01-CcXuD64C.js} +1 -1
  33. package/dist/client/assets/{Inbox01-DTh-ZtU7.js → Inbox01-CPxBPhel.js} +1 -1
  34. package/dist/client/assets/{InfoCircle-s0dGNMks.js → InfoCircle-DK-HgSib.js} +1 -1
  35. package/dist/client/assets/{Key01-CHf-4NZR.js → Key01-HU-4mHLo.js} +1 -1
  36. package/dist/client/assets/{LayersTwo01-zg7ssS5q.js → LayersTwo01-RwSQ1J1I.js} +1 -1
  37. package/dist/client/assets/{LayoutLeft-vITOgZDF.js → LayoutLeft-CbZOAm5Z.js} +1 -1
  38. package/dist/client/assets/{Link01-B46W_qyR.js → Link01-DP82_UiC.js} +1 -1
  39. package/dist/client/assets/{LinkExternal01-CWUdHxEb.js → LinkExternal01-xPEp6WiT.js} +1 -1
  40. package/dist/client/assets/{List-DXD0Q-rz.js → List-DIViT3Rd.js} +1 -1
  41. package/dist/client/assets/{Loading01-HszUOya-.js → Loading01-e5vrz4Tg.js} +1 -1
  42. package/dist/client/assets/{Lock01-sWjWjRt6.js → Lock01-CFsYgwl6.js} +1 -1
  43. package/dist/client/assets/{Play-DYN0MmVY.js → Play-UpsQgFLL.js} +1 -1
  44. package/dist/client/assets/{Plus-BaoKmylk.js → Plus-CAkBZRVl.js} +1 -1
  45. package/dist/client/assets/{RefreshCcw01-yUiODtTq.js → RefreshCcw01-CsIOFnxl.js} +1 -1
  46. package/dist/client/assets/{Save01-Co3EpgQC.js → Save01-C8SmHjV2.js} +1 -1
  47. package/dist/client/assets/{SearchMd-3WCi1VDc.js → SearchMd-3uDmzuN-.js} +1 -1
  48. package/dist/client/assets/{Settings01-84eR-C3B.js → Settings01-de0ujEEu.js} +1 -1
  49. package/dist/client/assets/{Shield01-WvymnQYW.js → Shield01-Cd56MItL.js} +1 -1
  50. package/dist/client/assets/{Terminal-CM1LxJaq.js → Terminal-D4rOkPT8.js} +1 -1
  51. package/dist/client/assets/{Trash01-CAKaaYMp.js → Trash01-GIxw_9KX.js} +1 -1
  52. package/dist/client/assets/{Upload01-BDarTYGT.js → Upload01-DvU8XgOn.js} +1 -1
  53. package/dist/client/assets/{Users03-D0y7vtGV.js → Users03-Ci_Q0Bm5.js} +1 -1
  54. package/dist/client/assets/{X-BS-0d43p.js → X-D43RBdCi.js} +1 -1
  55. package/dist/client/assets/{XCircle-BJZFrCgV.js → XCircle-BT7T8C4l.js} +1 -1
  56. package/dist/client/assets/{XClose-6pBqg-B-.js → XClose-CPAcIRmr.js} +1 -1
  57. package/dist/client/assets/{Zap-MB79YnxU.js → Zap-AMjggLw-.js} +1 -1
  58. package/dist/client/assets/{agent-connections-preview-D0T58SYV.js → agent-connections-preview-ChIn79lc.js} +1 -1
  59. package/dist/client/assets/{agent-detail-BRsW7IYa.js → agent-detail-Fjm0OMqB.js} +1 -1
  60. package/dist/client/assets/{agents-juAVT19y.js → agents-CsJ8bLN2.js} +1 -1
  61. package/dist/client/assets/{alert-dialog-CtNI8LvE.js → alert-dialog-BF806470.js} +1 -1
  62. package/dist/client/assets/{auth-catchall-BNohJky1.js → auth-catchall-BDFjm7S-.js} +1 -1
  63. package/dist/client/assets/{avatar-7hY_H5zt.js → avatar-JlaJAGyz.js} +1 -1
  64. package/dist/client/assets/{badge-DfhuIA_7.js → badge-DuzneqaM.js} +1 -1
  65. package/dist/client/assets/{binder-C6fAESck.js → binder-CSUd_3kq.js} +1 -1
  66. package/dist/client/assets/{breadcrumb-DZJzQEPd.js → breadcrumb-oXffKFw_.js} +1 -1
  67. package/dist/client/assets/{card-DXg2GX79.js → card-B9F3gzU1.js} +1 -1
  68. package/dist/client/assets/{chart-BWnEsG4R.js → chart-CI8PXMri.js} +1 -1
  69. package/dist/client/assets/{checkbox-CA1NpLng.js → checkbox-DzpFguCb.js} +1 -1
  70. package/dist/client/assets/{circle-alert-DpFL31gA.js → circle-alert-BEV9hKq0.js} +1 -1
  71. package/dist/client/assets/{collapsible-CZMy3y5l.js → collapsible-65I6Ioz9.js} +5 -5
  72. package/dist/client/assets/{collection-detail-C59CwIQH.js → collection-detail-DnRXu6MS.js} +1 -1
  73. package/dist/client/assets/{collection-display-button-CVVCR82C.js → collection-display-button-ByS_K4lH.js} +1 -1
  74. package/dist/client/assets/{collection-search-BVMX34xh.js → collection-search-mO1HMauC.js} +1 -1
  75. package/dist/client/assets/{collection-tab-Dq2y4UTN.js → collection-tab-CkV__WhE.js} +1 -1
  76. package/dist/client/assets/{collection-table-wrapper-C0TGGJ6J.js → collection-table-wrapper-CKemfX3q.js} +1 -1
  77. package/dist/client/assets/{collection-tabs-fHRefLVF.js → collection-tabs-Bx4HaaQG.js} +1 -1
  78. package/dist/client/assets/{command-DQZMRksB.js → command-IGPGgPev.js} +1 -1
  79. package/dist/client/assets/{connect-BPIjHna-.js → connect-BRw7VxSz.js} +1 -1
  80. package/dist/client/assets/{connection-card-CVWbDwe1.js → connection-card-CqqNv-1c.js} +1 -1
  81. package/dist/client/assets/{connection-detail-BE8aQ9Vr.js → connection-detail-Do2QWhRf.js} +1 -1
  82. package/dist/client/assets/{connection-status-CIfK1aaf.js → connection-status-DspYTx4l.js} +1 -1
  83. package/dist/client/assets/{connections-DE-LDmih.js → connections-oTwxAoKQ.js} +1 -1
  84. package/dist/client/assets/{constants-9aDFHfpv.js → constants-Bi0KgUSI.js} +1 -1
  85. package/dist/client/assets/constants-C5K20DFA.js +1 -0
  86. package/dist/client/assets/{create-organization-dialog-rPVbE78O.js → create-organization-dialog-B5UUWfs1.js} +1 -1
  87. package/dist/client/assets/{create-project-dialog-eGd8v6in.js → create-project-dialog-B2mUe54b.js} +1 -1
  88. package/dist/client/assets/{danger-CN2jIiYh.js → danger-DCm_AnTP.js} +1 -1
  89. package/dist/client/assets/{danger-zone-DFB5uHUA.js → danger-zone-DS8Xvo50.js} +1 -1
  90. package/dist/client/assets/{decopilot-events-BNDSGGPU.js → decopilot-events-tuPofCi7.js} +1 -1
  91. package/dist/client/assets/{dependencies-B2LWAesw.js → dependencies-Bn8l9gYN.js} +1 -1
  92. package/dist/client/assets/{dialog-C82flYm2.js → dialog-qBZn-zYi.js} +1 -1
  93. package/dist/client/assets/{dropdown-menu-CxuRGQYq.js → dropdown-menu-DzUfzpVE.js} +1 -1
  94. package/dist/client/assets/{dynamic-plugin-layout-CQiNNzkD.js → dynamic-plugin-layout-C7QgAOIC.js} +1 -1
  95. package/dist/client/assets/{editable-task-title-0i5466nX.js → editable-task-title-D48vrJtg.js} +1 -1
  96. package/dist/client/assets/{empty-state-BRx85n5e.js → empty-state-lIvnej4y.js} +1 -1
  97. package/dist/client/assets/{env-vars-editor-7rdGUbIW.js → env-vars-editor-CeqquBJY.js} +1 -1
  98. package/dist/client/assets/{extract-connection-data-C3TnWHFq.js → extract-connection-data-CuU1tc3b.js} +1 -1
  99. package/dist/client/assets/{file-browser-B6_JSvky.js → file-browser-Ni3oYaWz.js} +2 -2
  100. package/dist/client/assets/{form-yfGhYWGK.js → form-CvuQGiSW.js} +1 -1
  101. package/dist/client/assets/{general-BO87mKaj.js → general-9N19ol48.js} +1 -1
  102. package/dist/client/assets/{grid-view-CafNEeZS.js → grid-view-nGNsPql9.js} +1 -1
  103. package/dist/client/assets/{home-DODydEdy.js → home-QZEMZFSO.js} +1 -1
  104. package/dist/client/assets/{icon-picker-BxryrKdj.js → icon-picker-CvTqhz-n.js} +1 -1
  105. package/dist/client/assets/{index-BE5cW0kh.js → index-580YwBrh.js} +1 -1
  106. package/dist/client/assets/{index-cyFdlvvQ.js → index-9XMeAvuz.js} +1 -1
  107. package/dist/client/assets/{index-Dk8Q7M5D.js → index-B2bsc0yn.js} +1 -1
  108. package/dist/client/assets/index-B3tSRm_S.js +1 -0
  109. package/dist/client/assets/{index-Cay1thV-.js → index-BrwvwF2e.js} +1 -1
  110. package/dist/client/assets/{index-CPVHF3xw.js → index-C3HPQ2Xr.js} +1 -1
  111. package/dist/client/assets/{index-xpVnmlVH.js → index-DNc2lZPL.js} +1 -1
  112. package/dist/client/assets/{index-BxIsqm8s.js → index-DlVoIZWW.js} +46 -46
  113. package/dist/client/assets/{index-PEK2-Gur.js → index-zTmRWZBl.js} +3 -3
  114. package/dist/client/assets/{infiniteQueryObserver-C6bi1NMJ.js → infiniteQueryObserver-CzeIHV7S.js} +1 -1
  115. package/dist/client/assets/{input-sgdy4h-T.js → input-yDn0CDzQ.js} +1 -1
  116. package/dist/client/assets/{integration-icon-CF_VTof8.js → integration-icon-BKuXjqdm.js} +1 -1
  117. package/dist/client/assets/{label-BrZsvi2a.js → label-D93HnDXr.js} +1 -1
  118. package/dist/client/assets/{layout-CV1aMVHy.js → layout-7Qb5YRAm.js} +1 -1
  119. package/dist/client/assets/{layout-BIum7cxT.js → layout-CrCZjoK5.js} +1 -1
  120. package/dist/client/assets/{localstorage-keys-F1lq-lvV.js → localstorage-keys-DyhMCgsK.js} +1 -1
  121. package/dist/client/assets/{login-DW4fba0v.js → login-BqsIHX7V.js} +1 -1
  122. package/dist/client/assets/{markdown-CbEbvbZf.js → markdown-Biu_K3T4.js} +1 -1
  123. package/dist/client/assets/{mcp-app-renderer-C_3fiOtj.js → mcp-app-renderer-C2Ylvbme.js} +1 -1
  124. package/dist/client/assets/{mcp-oauth-6xg1H94l.js → mcp-oauth-Bjgs9JoZ.js} +1 -1
  125. package/dist/client/assets/{mcp-server-card-CWDv948O.js → mcp-server-card-Cup_00LD.js} +1 -1
  126. package/dist/client/assets/{mcp-server-detail-tO42oFY4.js → mcp-server-detail--Jr_gAUp.js} +2 -2
  127. package/dist/client/assets/{members-DKDzvaot.js → members-uqs0bICl.js} +1 -1
  128. package/dist/client/assets/{monaco-editor-B-R8mcTi.js → monaco-editor-DxLnMtPf.js} +4 -4
  129. package/dist/client/assets/{monitoring-X0-0osFY.js → monitoring-BVpuqZj3.js} +1 -1
  130. package/dist/client/assets/{monitoring-dashboard-edit-rOc8ctLL.js → monitoring-dashboard-edit-DboSkF1Z.js} +1 -1
  131. package/dist/client/assets/{monitoring-dashboard-view-BOcU-Ptb.js → monitoring-dashboard-view-Sh6DZnJz.js} +1 -1
  132. package/dist/client/assets/{oauth-callback-Dt0Z_xAu.js → oauth-callback-C_W-tYN-.js} +1 -1
  133. package/dist/client/assets/{page-C2NqyE1l.js → page-Bes2KnC1.js} +1 -1
  134. package/dist/client/assets/{page-Bg_wbn7m.js → page-_IMVPTag.js} +1 -1
  135. package/dist/client/assets/{plugin-empty-state-yRJgz3Tr.js → plugin-empty-state-9L7esDde.js} +1 -1
  136. package/dist/client/assets/{plugin-empty-state-BA7ocyXk.js → plugin-empty-state-DiQvKRhi.js} +1 -1
  137. package/dist/client/assets/{plugin-header-BDXHoMCR.js → plugin-header--u34B63W.js} +1 -1
  138. package/dist/client/assets/{plugin-header-BjlvBkY0.js → plugin-header-BQ0StX2h.js} +1 -1
  139. package/dist/client/assets/plugins-CVY3rx6b.js +1 -0
  140. package/dist/client/assets/{popover-W_pvoCtS.js → popover-BD-c_pAA.js} +1 -1
  141. package/dist/client/assets/{project-app-view-0TT6VGtD.js → project-app-view-DIraT3UL.js} +1 -1
  142. package/dist/client/assets/{project-layout-EE8sGSdV.js → project-layout-D1HtBF_a.js} +1 -1
  143. package/dist/client/assets/{project-plugins-CUoGWXtV.js → project-plugins-Bf4ZMkbc.js} +1 -1
  144. package/dist/client/assets/{projects-list-bUHr7Hxj.js → projects-list-Bfhn5AOu.js} +1 -1
  145. package/dist/client/assets/{readme-viewer-udR9CDuh.js → readme-viewer-Bz6eCbMV.js} +1 -1
  146. package/dist/client/assets/{registry-layout-DDBt9uFS.js → registry-layout-DJa_ec1i.js} +1 -1
  147. package/dist/client/assets/{registry-utils-BUxN-Xyw.js → registry-utils-BAmZqs68.js} +1 -1
  148. package/dist/client/assets/{reports-layout-CCWEuXOO.js → reports-layout-D5Z2DXwV.js} +1 -1
  149. package/dist/client/assets/{reset-password-Cm4-0xVl.js → reset-password-Dl47mf_w.js} +1 -1
  150. package/dist/client/assets/{resizable-B67Be6M0.js → resizable-D-Qy_gIf.js} +1 -1
  151. package/dist/client/assets/{save-actions-FUGEGF6q.js → save-actions-C1NjZgvb.js} +1 -1
  152. package/dist/client/assets/{scroll-area-CK7vwAfQ.js → scroll-area-fWogdApD.js} +1 -1
  153. package/dist/client/assets/{select-C05ByfCe.js → select-45R_TReG.js} +1 -1
  154. package/dist/client/assets/{shell-layout-DTEZojRn.js → shell-layout-CA8fD8RA.js} +2 -2
  155. package/dist/client/assets/{sidebar-settings-Dcd14gbU.js → sidebar-settings--2xwv6Nu.js} +1 -1
  156. package/dist/client/assets/{skeleton-UoFZ21oo.js → skeleton-B23sd6oG.js} +1 -1
  157. package/dist/client/assets/{spinner-BGQowtes.js → spinner-DrSoNW9Q.js} +1 -1
  158. package/dist/client/assets/{store-invite-Cq-AwKEe.js → store-invite-DJFtuLEP.js} +1 -1
  159. package/dist/client/assets/{switch-Q4KewAfm.js → switch-DbnN_OzY.js} +1 -1
  160. package/dist/client/assets/{table-X8r3lDFL.js → table-JhNW7SQy.js} +1 -1
  161. package/dist/client/assets/{tabs-B8_PkbMO.js → tabs-fxZVpBgm.js} +1 -1
  162. package/dist/client/assets/tasks-9SndjM2b.js +1 -0
  163. package/dist/client/assets/{tasks-panel-CC3yneqS.js → tasks-panel-CL4KTePe.js} +1 -1
  164. package/dist/client/assets/{textarea-pi2cWSId.js → textarea-DdFrppMC.js} +1 -1
  165. package/dist/client/assets/{time-range-picker-BrfuDGgP.js → time-range-picker-cwer29Fw.js} +1 -1
  166. package/dist/client/assets/{toggle-group-BhefXfHG.js → toggle-group-DN2MnVNp.js} +1 -1
  167. package/dist/client/assets/{tools-list-MmMBTqrs.js → tools-list-DIjrxN4B.js} +1 -1
  168. package/dist/client/assets/{tooltip-CWYwrzX7.js → tooltip-c2IY6Q1h.js} +1 -1
  169. package/dist/client/assets/{topbar-portal-RlfRVDuU.js → topbar-portal-B1jaxoch.js} +1 -1
  170. package/dist/client/assets/{types-DfAuQBsH.js → types-D02NXJjh.js} +1 -1
  171. package/dist/client/assets/{use-binding-bR1unh0d.js → use-binding-CczCr_I6.js} +1 -1
  172. package/dist/client/assets/{use-collections-CdWUwl8U.js → use-collections-BM5qbXh2.js} +1 -1
  173. package/dist/client/assets/{use-connection-Cknhz6to.js → use-connection-D_z7DIgr.js} +1 -1
  174. package/dist/client/assets/{use-copy-2ZhzXjqK.js → use-copy-CedSm4V4.js} +1 -1
  175. package/dist/client/assets/{use-create-virtual-mcp-DtdhklAc.js → use-create-virtual-mcp-DN0LN6Ks.js} +1 -1
  176. package/dist/client/assets/{use-install-from-registry-BzL8TqTO.js → use-install-from-registry-DJsrJBCB.js} +1 -1
  177. package/dist/client/assets/{use-list-state-BFxcsMHC.js → use-list-state-DiVFU-Ch.js} +1 -1
  178. package/dist/client/assets/{use-llm-D6vMdIHx.js → use-llm-Cgu6F_JM.js} +1 -1
  179. package/dist/client/assets/{use-mcp-resources-V7_1ln1p.js → use-mcp-resources-F-AJdNv-.js} +1 -1
  180. package/dist/client/assets/{use-mcp-tools-BMktygYP.js → use-mcp-tools-CXYzi3AR.js} +1 -1
  181. package/dist/client/assets/{use-members-CZzrsjqR.js → use-members-DgdmWVSo.js} +1 -1
  182. package/dist/client/assets/{use-mobile-DqFS2tGv.js → use-mobile-Y1Ty5Ao9.js} +1 -1
  183. package/dist/client/assets/{use-project-mIp9moJF.js → use-project-Bp8E6yw9.js} +1 -1
  184. package/dist/client/assets/{use-settings-modal-CK97wy3L.js → use-settings-modal-BMI_o1Ch.js} +1 -1
  185. package/dist/client/assets/{use-view-mode-CkSeKCK_.js → use-view-mode-D1a8tpCU.js} +1 -1
  186. package/dist/client/assets/{use-virtual-mcp-DncJVsC2.js → use-virtual-mcp-BwZwR42s.js} +1 -1
  187. package/dist/client/assets/useInfiniteQuery-MM2sZURp.js +1 -0
  188. package/dist/client/assets/{useMutation-Bwc-v8Ow.js → useMutation-DxToDvqg.js} +1 -1
  189. package/dist/client/assets/useQuery-C_yP5u2a.js +1 -0
  190. package/dist/client/assets/useSuspenseInfiniteQuery-rRWDLVCQ.js +1 -0
  191. package/dist/client/assets/{user-CLAm4Myt.js → user-Cjj1cELF.js} +1 -1
  192. package/dist/client/assets/{workflow-BuPqeBHK.js → workflow-DF5-JJx7.js} +1 -1
  193. package/dist/client/index.html +1 -1
  194. package/dist/server/cli.js +3 -3
  195. package/dist/server/migrate.js +1 -1
  196. package/dist/server/server.js +3 -3
  197. package/package.json +1 -1
  198. package/dist/client/assets/constants-C6iMC3JV.js +0 -1
  199. package/dist/client/assets/index-B9MYwIUx.js +0 -1
  200. package/dist/client/assets/plugins-C2IeqTZD.js +0 -1
  201. package/dist/client/assets/tasks-BvxRdrj9.js +0 -1
  202. package/dist/client/assets/useInfiniteQuery-l2zBIMez.js +0 -1
  203. package/dist/client/assets/useQuery-C84LCuAf.js +0 -1
  204. package/dist/client/assets/useSuspenseInfiniteQuery-B9Fj3djj.js +0 -1
@@ -1211,7 +1211,7 @@ data:
1211
1211
  `;if(J)G+=`id: ${J}
1212
1212
  `;return G+=`data: ${JSON.stringify(X)}
1213
1213
 
1214
- `,Y.enqueue(Q.encode(G)),!0}catch{return!1}}handleUnsupportedRequest(){return new Response(JSON.stringify({jsonrpc:"2.0",error:{code:-32000,message:"Method not allowed."},id:null}),{status:405,headers:{Allow:"GET, POST, DELETE","Content-Type":"application/json"}})}async handlePostRequest(Y,Q){try{let X=Y.headers.get("accept");if(!X?.includes("application/json")||!X.includes("text/event-stream"))return this.createJsonErrorResponse(406,-32000,"Not Acceptable: Client must accept both application/json and text/event-stream");let J=Y.headers.get("content-type");if(!J||!J.includes("application/json"))return this.createJsonErrorResponse(415,-32000,"Unsupported Media Type: Content-Type must be application/json");let G={headers:Object.fromEntries(Y.headers.entries())},K;if(Q?.parsedBody!==void 0)K=Q.parsedBody;else try{K=await Y.json()}catch{return this.createJsonErrorResponse(400,-32700,"Parse error: Invalid JSON")}let W;try{if(Array.isArray(K))W=K.map((M)=>sX.parse(M));else W=[sX.parse(K)]}catch{return this.createJsonErrorResponse(400,-32700,"Parse error: Invalid JSON-RPC message")}let Z=W.some(ir);if(Z){if(this._initialized&&this.sessionId!==void 0)return this.createJsonErrorResponse(400,-32600,"Invalid Request: Server already initialized");if(W.length>1)return this.createJsonErrorResponse(400,-32600,"Invalid Request: Only one initialization request is allowed");if(this.sessionId=this.sessionIdGenerator?.(),this._initialized=!0,this.sessionId&&this._onsessioninitialized)await Promise.resolve(this._onsessioninitialized(this.sessionId))}if(!Z){let M=this.validateSession(Y);if(M)return M;let w=this.validateProtocolVersion(Y);if(w)return w}if(!W.some(zW)){for(let M of W)this.onmessage?.(M,{authInfo:Q?.authInfo,requestInfo:G});return new Response(null,{status:202})}let F=crypto.randomUUID(),$=W.find((M)=>ir(M)),V=$?$.params.protocolVersion:Y.headers.get("mcp-protocol-version")??Bz1;if(this._enableJsonResponse)return new Promise((M)=>{this._streamMapping.set(F,{resolveJson:M,cleanup:()=>{this._streamMapping.delete(F)}});for(let w of W)if(zW(w))this._requestToStreamMapping.set(w.id,F);for(let w of W)this.onmessage?.(w,{authInfo:Q?.authInfo,requestInfo:G})});let B=new TextEncoder,U,z=new ReadableStream({start:(M)=>{U=M},cancel:()=>{this._streamMapping.delete(F)}}),O={"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"};if(this.sessionId!==void 0)O["mcp-session-id"]=this.sessionId;for(let M of W)if(zW(M))this._streamMapping.set(F,{controller:U,encoder:B,cleanup:()=>{this._streamMapping.delete(F);try{U.close()}catch{}}}),this._requestToStreamMapping.set(M.id,F);await this.writePrimingEvent(U,B,F,V);for(let M of W){let w,P;if(zW(M)&&this._eventStore&&V>="2025-11-25")w=()=>{this.closeSSEStream(M.id)},P=()=>{this.closeStandaloneSSEStream()};this.onmessage?.(M,{authInfo:Q?.authInfo,requestInfo:G,closeSSEStream:w,closeStandaloneSSEStream:P})}return new Response(z,{status:200,headers:O})}catch(X){return this.onerror?.(X),this.createJsonErrorResponse(400,-32700,"Parse error",{data:String(X)})}}async handleDeleteRequest(Y){let Q=this.validateSession(Y);if(Q)return Q;let X=this.validateProtocolVersion(Y);if(X)return X;return await Promise.resolve(this._onsessionclosed?.(this.sessionId)),await this.close(),new Response(null,{status:200})}validateSession(Y){if(this.sessionIdGenerator===void 0)return;if(!this._initialized)return this.createJsonErrorResponse(400,-32000,"Bad Request: Server not initialized");let Q=Y.headers.get("mcp-session-id");if(!Q)return this.createJsonErrorResponse(400,-32000,"Bad Request: Mcp-Session-Id header is required");if(Q!==this.sessionId)return this.createJsonErrorResponse(404,-32001,"Session not found");return}validateProtocolVersion(Y){let Q=Y.headers.get("mcp-protocol-version");if(Q!==null&&!VV.includes(Q))return this.createJsonErrorResponse(400,-32000,`Bad Request: Unsupported protocol version: ${Q} (supported versions: ${VV.join(", ")})`);return}async close(){this._streamMapping.forEach(({cleanup:Y})=>{Y()}),this._streamMapping.clear(),this._requestResponseMap.clear(),this.onclose?.()}closeSSEStream(Y){let Q=this._requestToStreamMapping.get(Y);if(!Q)return;let X=this._streamMapping.get(Q);if(X)X.cleanup()}closeStandaloneSSEStream(){let Y=this._streamMapping.get(this._standaloneSseStreamId);if(Y)Y.cleanup()}async send(Y,Q){let X=Q?.relatedRequestId;if(YG(Y)||Hz(Y))X=Y.id;if(X===void 0){if(YG(Y)||Hz(Y))throw Error("Cannot send a response on a standalone SSE stream unless resuming a previous client request");let K;if(this._eventStore)K=await this._eventStore.storeEvent(this._standaloneSseStreamId,Y);let W=this._streamMapping.get(this._standaloneSseStreamId);if(W===void 0)return;if(W.controller&&W.encoder)this.writeSSEEvent(W.controller,W.encoder,Y,K);return}let J=this._requestToStreamMapping.get(X);if(!J)throw Error(`No connection established for request ID: ${String(X)}`);let G=this._streamMapping.get(J);if(!this._enableJsonResponse&&G?.controller&&G?.encoder){let K;if(this._eventStore)K=await this._eventStore.storeEvent(J,Y);this.writeSSEEvent(G.controller,G.encoder,Y,K)}if(YG(Y)||Hz(Y)){this._requestResponseMap.set(X,Y);let K=Array.from(this._requestToStreamMapping.entries()).filter(([Z,H])=>H===J).map(([Z])=>Z);if(K.every((Z)=>this._requestResponseMap.has(Z))){if(!G)throw Error(`No connection established for request ID: ${String(X)}`);if(this._enableJsonResponse&&G.resolveJson){let Z={"Content-Type":"application/json"};if(this.sessionId!==void 0)Z["mcp-session-id"]=this.sessionId;let H=K.map((F)=>this._requestResponseMap.get(F));if(H.length===1)G.resolveJson(new Response(JSON.stringify(H[0]),{status:200,headers:Z}));else G.resolveJson(new Response(JSON.stringify(H),{status:200,headers:Z}))}else G.cleanup();for(let Z of K)this._requestResponseMap.delete(Z),this._requestToStreamMapping.delete(Z)}}}}var vA0=j(()=>{_Y()});var yA0="SELF",Zl=(Y)=>{return typeof Y==="object"&&Y!==null&&"handler"in Y&&"events"in Y&&typeof Y.handler==="function"&&Array.isArray(Y.events)},fA0=(Y)=>{return typeof Y==="object"&&Y!==null&&"handler"in Y&&"events"in Y&&typeof Y.handler==="function"&&Array.isArray(Y.events)},kA0="::",bA0=(Y)=>{let Q=Y.indexOf(kA0);if(Q===-1)return null;let X=Y.substring(0,Q),J=Y.substring(Q+kA0.length);return[X,J]},p$4=(Y)=>{if(!Y.startsWith("cron/"))return null;let Q=Y.substring(5),X=Q.indexOf("/");if(X===-1)return null;let J=Q.substring(0,X),G=Q.substring(X+1);return[J,G]},hA0=(Y)=>{if(Zl(Y))return[];return Object.keys(Y)},c$4=(Y,Q)=>{if(Zl(Y))return Y.events;let X=Y[Q];if(!X)return[];if(fA0(X))return X.events;return Object.keys(X)},Wl=(Y,Q,X)=>{if(Y===yA0){if(!X)return console.warn("[Event] SELF binding used but no connectionId available"),null;return X}let J=Q[Y];if(!eZ1(J))return console.warn(`[Event] Binding "${Y}" not found in state`),null;return J.value},n$4=(Y,Q,X)=>{let J=Q;if(Zl(Y)){let K=[];for(let W of Y.events){let Z=bA0(W);if(!Z){console.warn(`[Event] Global handler event "${W}" must be prefixed with BINDING:: (e.g., "SELF::${W}" or "DATABASE::${W}")`);continue}let[H,F]=Z,$=Wl(H,J,X);if(!$)continue;K.push({eventType:F,publisher:$})}return K}let G=[];for(let K of hA0(Y)){let W=Wl(K,J,X);if(!W)continue;let Z=c$4(Y,K);for(let H of Z)G.push({eventType:H,publisher:W})}return G},i$4=(Y)=>{let Q=new Map;for(let X of Y){let J=X.source,G=Q.get(J)||[];G.push(X),Q.set(J,G)}return Q},a$4=(Y)=>{let Q=new Map;for(let X of Y){let J=X.type,G=Q.get(J)||[];G.push(X),Q.set(J,G)}return Q},r$4=(Y)=>{let Q={},X={},J=!1,G=0,K=[];for(let W of Y){if(W.results)Object.assign(X,W.results);if(W.success===!1){if(J=!0,W.error)K.push(W.error)}if(W.processedCount!==void 0)G+=W.processedCount}if(Object.keys(X).length>0)Q.results=X;if(Q.success=!J,K.length>0)Q.error=K.join("; ");if(G>0)Q.processedCount=G;return Q},o$4=async(Y,Q,X,J,G)=>{let K=J;if(Zl(Y)){let $=new Set;for(let B of Y.events){let U=bA0(B);if(!U)continue;let[z,O]=U,M=Wl(z,K,G);if(!M)continue;$.add(`${M}:${O}`)}let V=Q.filter((B)=>{let U=`${B.source}:${B.type}`;return $.has(U)});if(V.length===0)return{success:!0};try{return await Y.handler({events:V},X)}catch(B){return{success:!1,error:B instanceof Error?B.message:String(B)}}}let W=new Map;for(let $ of hA0(Y)){let V=Wl($,K,G);if(V)W.set(V,$)}let Z=i$4(Q),H=[];for(let[$,V]of Z){let B=W.get($);if(!B)continue;let U=Y[B];if(!U)continue;if(fA0(U)){H.push((async()=>{try{return await U.handler({events:V},X)}catch(M){let w={};for(let P of V)w[P.id]={success:!1,error:M instanceof Error?M.message:String(M)};return{results:w}}})());continue}let z=U,O=a$4(V);for(let[M,w]of O){let P=z[M];if(!P)continue;H.push((async()=>{try{let S=await P({events:w},X),C={};for(let E of w)C[E.id]=S;return{results:C}}catch(S){let C={};for(let E of w)C[E.id]={success:!1,error:S instanceof Error?S.message:String(S)};return{results:C}}})())}}let F=await Promise.all(H);if(F.length===0)return{success:!0};return r$4(F)},Kl;var WK1=j(()=>{Yl();Kl={subscriptions:n$4,execute:o$4,parseCron:p$4}});function P3(Y){return{...Y,execute:(Q)=>{return Y.execute({...Q,runtimeContext:dC(Q.runtimeContext)})}}}function ZK1(Y){return Y&&"streamable"in Y&&Y.streamable===!0}var dC=(Y)=>{let Q=EC.getStore();if(!Q){if(Y)return Y;throw Error("Missing context, did you forget to call State.bind?")}return Q},s$4=(Y,Q)=>{let X=Q;return typeof X[Y]<"u"?X[Y]:Q?.MESH_REQUEST_CONTEXT?.state?.[Y]},t$4=({events:Y,configuration:{state:Q,scopes:X,onChange:J}={}}={})=>{let G=Q?q.toJSONSchema(Q):{type:"object",properties:{}},K=String(Y?.bus??"EVENT_BUS");return[...J||Y?[P3({id:"ON_MCP_CONFIGURATION",description:"MCP Configuration On Change",inputSchema:q.object({state:Q??q.unknown(),scopes:q.array(q.string()).describe("Array of scopes in format 'KEY::SCOPE' (e.g., 'GMAIL::GetCurrentUser')")}),outputSchema:q.object({}),execute:async(W)=>{let Z=W.context.state;await J?.(W.runtimeContext.env,{state:Z,scopes:W.context.scopes});let H=s$4(K,W.runtimeContext.env);if(Y&&Z&&H){let F=W.runtimeContext.env.MESH_REQUEST_CONTEXT?.connectionId,$=Kl.subscriptions(Y?.handlers??{},Z,F);if(await H.EVENT_SYNC_SUBSCRIPTIONS({subscriptions:$}),F){let V=$.filter((B)=>B.eventType.startsWith("cron/")&&B.publisher===F);await Promise.all(V.map(async(B)=>{let U=Kl.parseCron(B.eventType);if(U){let[,z]=U;await H.EVENT_PUBLISH({type:B.eventType,cron:z})}}))}}return Promise.resolve({})}})]:[],...Y?.handlers?[P3({id:"ON_EVENTS",description:"Receive and process CloudEvents from the event bus. Returns per-event or batch results.",inputSchema:Ql,outputSchema:Xl,execute:async(W)=>{let Z=W.runtimeContext.env,H=Z.MESH_REQUEST_CONTEXT?.state,F=Z.MESH_REQUEST_CONTEXT?.connectionId;return Kl.execute(Y.handlers,W.context.events,Z,H,F)}})]:[],P3({id:"MCP_CONFIGURATION",description:"MCP Configuration",inputSchema:q.object({}),outputSchema:q.object({stateSchema:q.unknown(),scopes:q.array(q.string()).optional()}),execute:()=>{return Promise.resolve({stateSchema:G,scopes:[...X??[],...Y?[`${K}::EVENT_SYNC_SUBSCRIPTIONS`]:[]]})}})]},xA0=(Y)=>{let Q=async(G)=>{await Y.before?.(G);let K=new yz({name:"@deco/mcp-api",version:"1.0.0"},{capabilities:{tools:{},prompts:{},resources:{}}}),Z=await(typeof Y.tools==="function"?Y.tools:async(B)=>{if(typeof Y.tools==="function")return await Y.tools(B);return await Promise.all(Y.tools?.flatMap(async(U)=>{let O=await U(B);if(Array.isArray(O))return O;return[O]})??[]).then((U)=>U.flat())})(G);Z.push(...t$4(Y));for(let B of Z)K.registerTool(B.id,{_meta:{streamable:ZK1(B),...B._meta??{}},description:B.description,annotations:B.annotations,inputSchema:B.inputSchema&&"shape"in B.inputSchema?B.inputSchema.shape:q.object({}).shape,outputSchema:ZK1(B)?q.object({bytes:q.record(q.string(),q.number())}).shape:B.outputSchema&&typeof B.outputSchema==="object"&&("shape"in B.outputSchema)?B.outputSchema.shape:void 0},async(U)=>{let z=await B.execute({context:U,runtimeContext:dC()});if(ZK1(B)&&z instanceof Response)return{structuredContent:{streamable:!0,status:z.status,statusText:z.statusText},content:[{type:"text",text:`Streaming response: ${z.status} ${z.statusText}`}]};return{structuredContent:z,content:[{type:"text",text:JSON.stringify(z)}]}});let F=await(typeof Y.prompts==="function"?Y.prompts:async(B)=>{if(typeof Y.prompts==="function")return await Y.prompts(B);return await Promise.all(Y.prompts?.flatMap(async(U)=>{let O=await U(B);if(Array.isArray(O))return O;return[O]})??[]).then((U)=>U.flat())})(G);for(let B of F)K.registerPrompt(B.name,{title:B.title,description:B.description,argsSchema:B.argsSchema?B.argsSchema:q.object({}).shape},async(U)=>{return await B.execute({args:U,runtimeContext:dC()})});let V=await(typeof Y.resources==="function"?Y.resources:async(B)=>{if(typeof Y.resources==="function")return await Y.resources(B);return await Promise.all(Y.resources?.flatMap(async(U)=>{let O=await U(B);if(Array.isArray(O))return O;return[O]})??[]).then((U)=>U.flat())})(G);for(let B of V)K.resource(B.name,B.uri,{description:B.description,mimeType:B.mimeType},async(U)=>{let z=await B.read({uri:U,runtimeContext:dC()}),O={uri:z.uri};if(z.mimeType)O.mimeType=z.mimeType;if(z.text!==void 0)return{contents:[{uri:z.uri,mimeType:z.mimeType,text:z.text}]};else if(z.blob!==void 0)return{contents:[{uri:z.uri,mimeType:z.mimeType,blob:z.blob}]};return{contents:[{uri:z.uri,mimeType:z.mimeType,text:""}]}});return{server:K,tools:Z,prompts:F,resources:V}};return{fetch:async(G,K)=>{let{server:W}=await Q(K),Z=new GK1;await W.connect(Z);try{let H=await Z.handleRequest(G),F=H.headers.get("content-type");if(!(F?.includes("text/event-stream")||F?.includes("application/json-rpc"))){console.debug("[MCP Transport] Closing transport for non-streaming response");try{await Z.close?.()}catch{}}else console.debug("[MCP Transport] Keeping transport open for streaming response (Content-Type: %s)",F);return H}catch(H){console.debug("[MCP Transport] Closing transport due to error:",H instanceof Error?H.message:H);try{await Z.close?.()}catch{}throw H}},callTool:async({toolCallId:G,toolCallInput:K})=>{let W=EC.getStore();if(!W)throw Error("Missing state, did you forget to call State.bind?");let Z=W?.env,{tools:H}=await Q(Z),$=H.find((V)=>V.id===G)?.execute;if(!$)throw Error(`Tool ${G} not found or does not have an execute function`);return $({context:K,runtimeContext:dC()})}}};var Hl=j(()=>{Gl();jk();vA0();k1();WK1();YK1();WK1()});var e$4=({env:Y,server:Q,url:X})=>{Y.SELF=new Proxy({},{get:(J,G)=>{if(G==="toJSON")return null;return async(K)=>{return await Q.callTool({toolCallId:G,toolCallInput:K})}}}),Y.IS_LOCAL=(X?.startsWith("http://localhost")||X?.startsWith("http://127.0.0.1"))??!1},gA0=(Y)=>()=>{return{...Y??{}}},YV4=({env:Y,server:Q,tokenOrContext:X,url:J,authToken:G})=>{let K=Y,W=G?G.split(" ")[1]:void 0,Z;if(typeof X==="string"){let H=k8(X),F=H.metadata??{};Z={authorization:W,state:H.state??F.state??{},token:X,meshUrl:H.meshUrl??F.meshUrl,connectionId:H.connectionId??F.connectionId,organizationId:H.organizationId??F.organizationId,organizationName:H.organizationName??F.organizationName,organizationSlug:H.organizationSlug??F.organizationSlug,ensureAuthenticated:gA0(H.user??H.sub)}}else if(typeof X==="object"){Z=X;let H=k8(X.token),F=H.metadata??{},$=H.appName;Z.authorization??=W,Z.callerApp=$,Z.connectionId??=H.connectionId??F.connectionId,Z.ensureAuthenticated=gA0(H.user??H.sub)}else Z={state:{},authorization:W,token:void 0,meshUrl:void 0,connectionId:void 0,ensureAuthenticated:()=>{throw Error("Unauthorized")}};return K.MESH_REQUEST_CONTEXT=Z,Z.state=GA0(Z),e$4({env:K,server:Q,url:J}),K},QV4,uA0=(Y)=>{let Q=xA0(Y),X=Y.cors??QV4,J=Y.oauth,G=J?qA0(J):null,K=async(W,Z,H)=>{let F=new URL(W.url);if(G){if(F.pathname==="/.well-known/oauth-protected-resource"||F.pathname==="/mcp/.well-known/oauth-protected-resource")return G.handleProtectedResourceMetadata(W);if(F.pathname==="/.well-known/oauth-authorization-server")return G.handleAuthorizationServerMetadata(W);if(F.pathname==="/authorize")return G.handleAuthorize(W);if(F.pathname==="/oauth/callback")return G.handleOAuthCallback(W);if(F.pathname==="/token"&&W.method==="POST")return G.handleToken(W);if((F.pathname==="/register"||F.pathname==="/mcp/register")&&W.method==="POST")return G.handleClientRegistration(W)}if(F.pathname==="/mcp"){if(W.method==="GET")return new Response("Method not allowed",{status:405});if(G&&!G.hasAuth(W)){let $=W.clone();try{if((await $.json())?.method!=="tools/list")return G.createUnauthorizedResponse(W)}catch{return G.createUnauthorizedResponse(W)}}return Q.fetch(W,Z,H)}if(F.pathname.startsWith("/mcp/call-tool")){let $=F.pathname.split("/").pop();if(!$)return new Response("Not found",{status:404});let V=await W.json(),B=await Q.callTool({toolCallId:$,toolCallInput:V});if(B instanceof Response)return B;return new Response(JSON.stringify(B),{headers:{"Content-Type":"application/json"}})}return Y.fetch?.(W,Z,H)||new Response("Not found",{status:404})};return{fetch:async(W,Z,H)=>{if(new URL(W.url).pathname==="/_healthcheck")return new Response("OK",{status:200});if(X!==!1&&W.method==="OPTIONS")return ZA0(W,X??{});let F=YV4({authToken:W.headers.get("authorization")??null,env:{...process.env,...Z},server:Q,tokenOrContext:W.headers.get("x-mesh-token")??void 0,url:W.url}),$=await EC.run({req:W,env:F,ctx:H},async()=>await K(W,F,H));if(X!==!1)return KA0($,W,X??{});return $}}};var mA0=j(()=>{LX();Yl();HA0();YK1();Hl();Hl();Yl();sZ1();QV4={origin:(Y)=>{if(Y.includes("localhost")||Y.includes("127.0.0.1"))return Y;return Y},credentials:!0,allowMethods:["GET","POST","PUT","DELETE","OPTIONS"],allowHeaders:["Content-Type","Authorization","mcp-protocol-version"]}});function Fl(Y){return Buffer.from(String(Y),"utf8").toString("base64")}function $l(Y){if(!Y)return null;try{let Q=Buffer.from(Y,"base64").toString("utf8"),X=Number.parseInt(Q,10);return Number.isNaN(X)||X<0?null:X}catch{return null}}function WQ(Y){if(!Y?.length)return[];return Array.from(new Set(Y.map((Q)=>Q.trim()).filter((Q)=>Q.length>0).map((Q)=>Q.toLowerCase())))}function xB(Y){if(!Y)return[];return WQ(Y.split(","))}function Vl(Y,Q){if(!Y)return Q;try{return JSON.parse(Y)}catch{return Q}}function ql(Y){return Y?.["mcp.mesh"]??{}}function Bl(Y){return Y.length?Y.join(","):null}function XV4(Y,Q){if(!Q?.length)return;let X=Y;for(let J of Q){if(X===null||X===void 0)return;if(typeof X!=="object")return;X=X[J]}return X}function JV4(Y,Q,X){if(!Q)return!1;if(Q==="eq")return Y===X;if(Q==="contains"||Q==="like"){let J=String(Y??"").toLowerCase(),G=String(X??"").toLowerCase();return J.includes(G)}if(Q==="in"){if(!Array.isArray(X))return!1;return X.includes(Y)}if(Q==="gt")return Number(Y)>Number(X);if(Q==="gte")return Number(Y)>=Number(X);if(Q==="lt")return Number(Y)<Number(X);if(Q==="lte")return Number(Y)<=Number(X);return!1}function pC(Y,Q){if(!Q)return!0;if(Array.isArray(Q.conditions)&&Q.conditions.length){if(Q.operator==="and")return Q.conditions.every((X)=>pC(Y,X));if(Q.operator==="or")return Q.conditions.some((X)=>pC(Y,X));if(Q.operator==="not")return!Q.conditions.some((X)=>pC(Y,X))}return JV4(XV4(Y,Q.field),Q.operator,Q.value)}class cC{db;constructor(Y){this.db=Y}async create(Y){let Q=new Date().toISOString(),X=Y._meta??{},J=ql(X),G=WQ(J.tags),K=WQ(J.categories),W={id:Y.id,organization_id:Y.organization_id,title:Y.title,description:Y.description??null,server_json:JSON.stringify(Y.server),meta_json:JSON.stringify(X),tags:Bl(G),categories:Bl(K),is_public:Y.is_public?1:0,is_unlisted:Y.is_unlisted?1:0,created_at:Q,updated_at:Q,created_by:Y.created_by??null};await this.db.insertInto("private_registry_item").values(W).execute();let Z=await this.findById(Y.organization_id,Y.id);if(!Z)throw Error(`Failed to create registry item "${Y.id}"`);return Z}async findById(Y,Q){let X=await this.db.selectFrom("private_registry_item").selectAll().where("organization_id","=",Y).where("id","=",Q).executeTakeFirst();return X?this.deserialize(X):null}async findByIdOrName(Y,Q){let X=await this.findById(Y,Q);if(X)return X;let J=await this.db.selectFrom("private_registry_item").selectAll().where("organization_id","=",Y).where("title","=",Q).executeTakeFirst();return J?this.deserialize(J):null}async update(Y,Q,X){let J=await this.findById(Y,Q);if(!J)throw Error(`Registry item not found: ${Q}`);let G=X._meta??J._meta??{},K=ql(G),W=WQ(K.tags),Z=WQ(K.categories),H={updated_at:new Date().toISOString()};if(X.title!==void 0)H.title=X.title;if(X.description!==void 0)H.description=X.description;if(X.server!==void 0)H.server_json=JSON.stringify(X.server);if(X._meta!==void 0)H.meta_json=JSON.stringify(X._meta);if(X._meta!==void 0)H.tags=Bl(W),H.categories=Bl(Z);if(X.is_public!==void 0)H.is_public=X.is_public?1:0;if(X.is_unlisted!==void 0)H.is_unlisted=X.is_unlisted?1:0;await this.db.updateTable("private_registry_item").set(H).where("organization_id","=",Y).where("id","=",Q).execute();let F=await this.findById(Y,Q);if(!F)throw Error(`Registry item not found after update: ${Q}`);return F}async delete(Y,Q){let X=await this.findById(Y,Q);if(!X)return null;return await this.db.deleteFrom("private_registry_item").where("organization_id","=",Y).where("id","=",Q).execute(),X}async list(Y,Q={}){let X=this.db.selectFrom("private_registry_item").selectAll().where("organization_id","=",Y).orderBy("created_at","desc");if(!Q.includeUnlisted)X=X.where("is_unlisted","=",0);let G=(await X.execute()).map((z)=>this.deserialize(z)),K=WQ(Q.tags),W=WQ(Q.categories),Z=G.filter((z)=>{let O=ql(z._meta),M=WQ(O.tags),w=WQ(O.categories),P=K.length===0||K.every((E)=>M.includes(E)),S=W.length===0||W.every((E)=>w.includes(E)),C=pC(z,Q.where);return P&&S&&C}),F=$l(Q.cursor)??Q.offset??0,$=Q.limit??24,V=Z.slice(F,F+$),B=F+$<Z.length,U=B?Fl(F+$):void 0;return{items:V,totalCount:Z.length,hasMore:B,nextCursor:U}}async listPublic(Y,Q={}){let J=(await this.db.selectFrom("private_registry_item").selectAll().where("organization_id","=",Y).where("is_public","=",1).where("is_unlisted","=",0).orderBy("created_at","desc").execute()).map((U)=>this.deserialize(U)),G=WQ(Q.tags),K=WQ(Q.categories),W=J.filter((U)=>{let z=ql(U._meta),O=WQ(z.tags),M=WQ(z.categories),w=G.length===0||G.every((C)=>O.includes(C)),P=K.length===0||K.every((C)=>M.includes(C)),S=pC(U,Q.where);return w&&P&&S}),H=$l(Q.cursor)??Q.offset??0,F=Q.limit??24,$=W.slice(H,H+F),V=H+F<W.length,B=V?Fl(H+F):void 0;return{items:$,totalCount:W.length,hasMore:V,nextCursor:B}}async getFilters(Y,Q){let X=this.db.selectFrom("private_registry_item").select(["tags","categories"]).where("organization_id","=",Y);if(Q?.publicOnly)X=X.where("is_public","=",1);if(!Q?.includeUnlisted)X=X.where("is_unlisted","=",0);let J=await X.execute(),G=new Map,K=new Map;for(let Z of J){for(let H of xB(Z.tags))G.set(H,(G.get(H)??0)+1);for(let H of xB(Z.categories))K.set(H,(K.get(H)??0)+1)}let W=(Z)=>Array.from(Z.entries()).map(([H,F])=>({value:H,count:F})).sort((H,F)=>H.value.localeCompare(F.value));return{tags:W(G),categories:W(K)}}async search(Y,Q={},X){let J=this.db.selectFrom("private_registry_item").select(["id","title","description","meta_json","server_json","tags","categories","is_public","is_unlisted"]).where("organization_id","=",Y).orderBy("created_at","desc");if(X?.publicOnly)J=J.where("is_public","=",1);if(!X?.includeUnlisted)J=J.where("is_unlisted","=",0);let G=await J.execute(),K=Q.query?.trim().toLowerCase(),W=WQ(Q.tags),Z=WQ(Q.categories),H=G.filter((M)=>{if(K){let w=Vl(M.server_json,{}),S=Vl(M.meta_json,{})?.["mcp.mesh"]?.short_description??"";if(![M.id,M.title,M.description??"",w.name??"",w.description??"",S].join(" ").toLowerCase().includes(K))return!1}if(W.length>0){let w=WQ(xB(M.tags));if(!W.every((P)=>w.includes(P)))return!1}if(Z.length>0){let w=WQ(xB(M.categories));if(!Z.every((P)=>w.includes(P)))return!1}return!0}),$=$l(Q.cursor)??0,V=Q.limit??20,B=H.slice($,$+V),U=$+V<H.length,z=U?Fl($+V):void 0;return{items:B.map((M)=>({id:M.id,title:M.title,tags:xB(M.tags),categories:xB(M.categories),is_public:M.is_public===1,is_unlisted:M.is_unlisted===1})),totalCount:H.length,hasMore:U,nextCursor:z}}deserialize(Y){let Q=Vl(Y.server_json,{}),X=Vl(Y.meta_json,{});return{id:Y.id,name:typeof Q.name==="string"?Q.name:void 0,title:Y.title,description:Y.description,_meta:X,server:Q,is_public:Y.is_public===1,is_unlisted:Y.is_unlisted===1,created_at:Y.created_at,updated_at:Y.updated_at,...Y.created_by?{created_by:Y.created_by}:{}}}}var KK1=()=>{};var Ul,GV4,zl,cG,HK1,WV4,K$,tL,mX,gB,FK1,lA0,$K1,dA0,VK1,pA0,qK1,cA0,eL,ZV4,nC,KV4,Dl,BK1,nA0,iA0,UK1,aA0,rA0,oA0,sA0,tA0,eA0,YP0,QP0,HV4,zK1,XP0,JP0,DK1,GP0;var v9=j(()=>{uX();k1();Ul=q.object({name:q.string(),title:q.string().optional(),description:q.string().optional(),version:q.string().optional(),websiteUrl:q.string().optional(),icons:q.array(q.object({src:q.string()})).optional(),remotes:q.array(q.object({type:q.string().optional(),url:q.string().optional(),name:q.string().optional(),title:q.string().optional(),description:q.string().optional()})).optional(),packages:q.array(q.object({identifier:q.string(),version:q.string().optional()})).optional(),repository:q.object({url:q.string().optional(),source:q.string().optional(),subfolder:q.string().optional()}).optional()}),GV4=q.object({name:q.string(),description:q.string().nullable().optional()}),zl=q.object({"mcp.mesh":q.object({verified:q.boolean().optional(),tags:q.array(q.string()).optional(),categories:q.array(q.string()).optional(),friendly_name:q.string().nullable().optional(),short_description:q.string().max(160).nullable().optional(),owner:q.string().nullable().optional(),readme:q.string().max(50000).nullable().optional(),readme_url:q.string().url().nullable().optional(),has_remote:q.boolean().optional(),has_oauth:q.boolean().optional(),tools:q.array(GV4).optional()}).optional()}).catchall(q.unknown()),cG=q.object({id:q.string(),name:q.string().optional(),title:q.string(),description:q.string().nullable().optional(),_meta:zl.optional(),server:Ul,is_public:q.boolean().optional(),created_at:q.string(),updated_at:q.string(),created_by:q.string().optional()}),HK1=q.object({id:q.string(),title:q.string(),description:q.string().nullable().optional(),_meta:zl.optional(),server:Ul,is_public:q.boolean().optional()}),WV4=q.object({title:q.string().optional(),description:q.string().nullable().optional(),_meta:zl.optional(),server:Ul.optional(),is_public:q.boolean().optional()}),K$=pG.extend({tags:q.array(q.string()).optional().describe("Filter by tags (AND semantics)"),categories:q.array(q.string()).optional().describe("Filter by categories (AND semantics)"),cursor:q.string().optional().describe("Pagination cursor")}).describe("List registry items with optional filtering and pagination."),tL=q.object({items:q.array(cG),totalCount:q.number(),hasMore:q.boolean().optional(),nextCursor:q.string().optional()}),mX=q.object({id:q.string().optional().describe("Registry item ID"),name:q.string().optional().describe("Registry item name (alias for id)")}).refine((Y)=>Y.id||Y.name,{message:"At least one of 'id' or 'name' is required"}).describe("Get a registry item by ID or name."),gB=q.object({item:cG.nullable()}),FK1=q.object({data:HK1}),lA0=q.object({item:cG}),$K1=q.object({items:q.array(HK1).min(1)}),dA0=q.object({created:q.number(),errors:q.array(q.object({id:q.string(),error:q.string()}))}),VK1=q.object({id:q.string(),data:WV4}),pA0=q.object({item:cG}),qK1=q.object({id:q.string()}),cA0=q.object({item:cG}),eL=q.object({tags:q.array(q.object({value:q.string(),count:q.number()})),categories:q.array(q.object({value:q.string(),count:q.number()}))}),ZV4=q.enum(["description","short_description","tags","categories","readme"]),nC=q.object({query:q.string().optional().describe("Free-text search across id, title, description, server name"),tags:q.array(q.string()).optional().describe("Filter by tags (AND)"),categories:q.array(q.string()).optional().describe("Filter by categories (AND)"),limit:q.number().int().min(1).max(100).optional().describe("Max results (default 20)"),cursor:q.string().optional().describe("Pagination cursor")}).describe("Lightweight search returning minimal fields (id, title, tags, categories, is_public)."),KV4=q.object({id:q.string(),title:q.string(),tags:q.array(q.string()),categories:q.array(q.string()),is_public:q.boolean()}),Dl=q.object({items:q.array(KV4),totalCount:q.number(),hasMore:q.boolean().optional(),nextCursor:q.string().optional()}),BK1=q.object({type:ZV4.describe("Which content to generate"),llmConnectionId:q.string().describe("Connection ID of a language model"),modelId:q.string().describe("Model ID to use"),context:q.object({name:q.string().optional(),provider:q.string().optional(),url:q.string().optional(),owner:q.string().optional(),repositoryUrl:q.string().optional(),description:q.string().optional(),shortDescription:q.string().optional(),tags:q.array(q.string()).optional(),categories:q.array(q.string()).optional(),availableTags:q.array(q.string()).optional(),availableCategories:q.array(q.string()).optional(),tools:q.array(q.object({name:q.string(),description:q.string().nullable().optional()})).optional()})}),nA0=q.object({result:q.string().optional(),items:q.array(q.string()).optional()}),iA0=q.enum(["pending","approved","rejected"]),UK1=q.object({id:q.string(),organization_id:q.string(),requested_id:q.string().nullable().optional(),status:iA0,title:q.string(),description:q.string().nullable().optional(),_meta:zl.optional(),server:Ul,requester_name:q.string().nullable().optional(),requester_email:q.string().nullable().optional(),reviewer_notes:q.string().nullable().optional(),created_at:q.string(),updated_at:q.string()}),aA0=q.object({status:iA0.optional(),limit:q.number().int().min(1).max(200).optional(),offset:q.number().int().min(0).optional(),sortBy:q.enum(["created_at","title"]).optional(),sortDirection:q.enum(["asc","desc"]).optional()}),rA0=q.object({items:q.array(UK1),totalCount:q.number()}),oA0=q.object({id:q.string(),status:q.enum(["approved","rejected"]),reviewerNotes:q.string().nullable().optional()}),sA0=q.object({item:UK1}),tA0=q.object({pending:q.number()}),eA0=q.object({id:q.string()}),YP0=q.object({item:UK1.nullable()}),QP0=q.object({data:HK1,requester:q.object({name:q.string().optional(),email:q.string().email().optional()}).optional()}),HV4=q.object({id:q.string(),name:q.string(),prefix:q.string(),createdAt:q.string()}),zK1=q.object({name:q.string().min(1).max(64).describe("A descriptive name for this key")}),XP0=q.object({id:q.string(),name:q.string(),prefix:q.string(),key:q.string().describe("The full API key \u2014 shown only once!"),createdAt:q.string()}),JP0=q.object({items:q.array(HV4)}),DK1=q.object({keyId:q.string()}),GP0=q.object({success:q.boolean(),keyId:q.string()})});function FV4(Y,Q){let X=P3({id:"COLLECTION_REGISTRY_APP_LIST",description:"List public registry items",inputSchema:K$,outputSchema:tL,execute:async({context:Z})=>{return await Y.listPublic(Q,{limit:Z.limit,offset:Z.offset,cursor:Z.cursor,tags:Z.tags,categories:Z.categories,where:Z.where})}}),J=P3({id:"COLLECTION_REGISTRY_APP_GET",description:"Get a public registry item by ID or name",inputSchema:mX,outputSchema:gB,execute:async({context:Z})=>{let H=Z.id??Z.name;if(!H)return{item:null};let F=await Y.findByIdOrName(Q,H);if(F&&F.is_public)return{item:F};return{item:null}}}),G=P3({id:"COLLECTION_REGISTRY_APP_VERSIONS",description:"Get available versions of a public registry item",inputSchema:mX,outputSchema:q.object({versions:q.array(gB.shape.item)}),execute:async({context:Z})=>{let H=Z.id??Z.name;if(!H)return{versions:[]};let F=await Y.findByIdOrName(Q,H);if(F&&F.is_public)return{versions:[F]};return{versions:[]}}}),K=P3({id:"COLLECTION_REGISTRY_APP_SEARCH",description:"Search public registry items returning minimal data (id, title, tags, categories, is_public). Use this instead of LIST when you need to find items efficiently without loading full details.",inputSchema:nC,outputSchema:Dl,execute:async({context:Z})=>{return await Y.search(Q,Z,{publicOnly:!0})}}),W=P3({id:"COLLECTION_REGISTRY_APP_FILTERS",description:"Get available tags and categories for public registry items",inputSchema:q.object({}),outputSchema:eL,execute:async()=>{return await Y.getFilters(Q,{publicOnly:!0})}});return[X,K,J,G,W]}function OK1(Y,Q){let X=Q.db,J=new cC(X);Y.all("/org/:orgSlug/registry/*",async(G)=>{let K=G.req.param("orgSlug");console.log(`[Public Registry MCP] Request for org slug: ${K}, path: ${G.req.path}`);let W=await X.selectFrom("organization").select(["id","slug","name"]).where("slug","=",K).executeTakeFirst();if(console.log("[Public Registry MCP] Found org:",W),!W)return console.log(`[Public Registry MCP] Organization not found: ${K}`),G.json({error:"Organization not found"},404);let Z=FV4(J,W.id),H=uA0({tools:()=>Z}),F=new URL(G.req.url),$=G.req.path.replace(`/org/${K}/registry`,""),V=new URL($||"/",F.origin);F.searchParams.forEach((z,O)=>{V.searchParams.set(O,z)}),console.log(`[Public Registry MCP] Rewriting ${F.pathname} to ${V.pathname}`);let B=new Request(V.toString(),{method:G.req.method,headers:G.req.raw.headers,body:G.req.method!=="GET"&&G.req.method!=="HEAD"?G.req.raw.body:void 0}),U={organizationId:W.id,db:X,MESH_REQUEST_CONTEXT:{},MESH_APP_DEPLOYMENT_ID:"public-registry",IS_LOCAL:!1};return await H.fetch(B,U,G)})}var WP0=j(()=>{mA0();Hl();k1();KK1();v9()});import{randomUUID as $V4}from"crypto";function ZP0(Y,Q){if(!Y)return Q;try{return JSON.parse(Y)}catch{return Q}}class iC{db;constructor(Y){this.db=Y}async createOrUpdate(Y){let Q=new Date().toISOString(),X=await this.findPendingByRequestedId(Y.organization_id,Y.requested_id);if(X){let W={title:Y.title,description:Y.description??null,server_json:JSON.stringify(Y.server),meta_json:Y._meta?JSON.stringify(Y._meta):null,requester_name:Y.requester_name??null,requester_email:Y.requester_email??null,updated_at:Q};await this.db.updateTable("private_registry_publish_request").set(W).where("organization_id","=",Y.organization_id).where("id","=",X.id).execute();let Z=await this.findById(Y.organization_id,X.id);if(!Z)throw Error("Failed to update publish request");return Z}let J=$V4(),G={id:J,organization_id:Y.organization_id,requested_id:Y.requested_id,status:"pending",title:Y.title,description:Y.description??null,server_json:JSON.stringify(Y.server),meta_json:Y._meta?JSON.stringify(Y._meta):null,requester_name:Y.requester_name??null,requester_email:Y.requester_email??null,reviewer_notes:null,created_at:Q,updated_at:Q};await this.db.insertInto("private_registry_publish_request").values(G).execute();let K=await this.findById(Y.organization_id,J);if(!K)throw Error("Failed to create publish request");return K}async findPendingByRequestedId(Y,Q){let X=await this.db.selectFrom("private_registry_publish_request").selectAll().where("organization_id","=",Y).where("requested_id","=",Q).where("status","=","pending").executeTakeFirst();return X?this.deserialize(X):null}async findById(Y,Q){let X=await this.db.selectFrom("private_registry_publish_request").selectAll().where("organization_id","=",Y).where("id","=",Q).executeTakeFirst();return X?this.deserialize(X):null}async list(Y,Q={}){let X=this.db.selectFrom("private_registry_publish_request").selectAll().where("organization_id","=",Y),J=this.db.selectFrom("private_registry_publish_request").select((F)=>F.fn.countAll().as("count")).where("organization_id","=",Y);if(Q.status)X=X.where("status","=",Q.status),J=J.where("status","=",Q.status);let G=await J.executeTakeFirst(),K=Number(G?.count??0),W=Q.sortBy??"created_at",Z=Q.sortDirection??"desc";if(W==="title")X=X.orderBy("title",Z);else X=X.orderBy("created_at",Z);return{items:(await X.limit(Q.limit??24).offset(Q.offset??0).execute()).map((F)=>this.deserialize(F)),totalCount:K}}async updateStatus(Y,Q,X,J){let G={status:X,updated_at:new Date().toISOString(),reviewer_notes:J??null};await this.db.updateTable("private_registry_publish_request").set(G).where("organization_id","=",Y).where("id","=",Q).execute();let K=await this.findById(Y,Q);if(!K)throw Error(`Publish request not found: ${Q}`);return K}async countPending(Y){let Q=await this.db.selectFrom("private_registry_publish_request").select((X)=>X.fn.countAll().as("count")).where("organization_id","=",Y).where("status","=","pending").executeTakeFirst();return Number(Q?.count??0)}async delete(Y,Q){let X=await this.findById(Y,Q);if(!X)return null;return await this.db.deleteFrom("private_registry_publish_request").where("organization_id","=",Y).where("id","=",Q).execute(),X}deserialize(Y){return{id:Y.id,organization_id:Y.organization_id,requested_id:Y.requested_id??null,status:Y.status,title:Y.title,description:Y.description,_meta:ZP0(Y.meta_json,{}),server:ZP0(Y.server_json,{name:""}),requester_name:Y.requester_name,requester_email:Y.requester_email,reviewer_notes:Y.reviewer_notes,created_at:Y.created_at,updated_at:Y.updated_at}}}var LK1=()=>{};import{randomUUID as VV4}from"crypto";async function KP0(Y){let X=new TextEncoder().encode(Y),J=await crypto.subtle.digest("SHA-256",X);return Array.from(new Uint8Array(J)).map((K)=>K.toString(16).padStart(2,"0")).join("")}function qV4(){let Y=new Uint8Array(32);return crypto.getRandomValues(Y),`prk_${Array.from(Y).map((X)=>X.toString(16).padStart(2,"0")).join("")}`}class aC{db;constructor(Y){this.db=Y}async generate(Y,Q){let X=VV4(),J=qV4(),G=await KP0(J),K=J.slice(0,12),W=new Date().toISOString();return await this.db.insertInto("private_registry_publish_api_key").values({id:X,organization_id:Y,name:Q,key_hash:G,prefix:K,created_at:W}).execute(),{entity:{id:X,organization_id:Y,name:Q,prefix:K,created_at:W},key:J}}async list(Y){return await this.db.selectFrom("private_registry_publish_api_key").select(["id","organization_id","name","prefix","created_at"]).where("organization_id","=",Y).orderBy("created_at","desc").execute()}async revoke(Y,Q){return(await this.db.deleteFrom("private_registry_publish_api_key").where("organization_id","=",Y).where("id","=",Q).execute()).length>0}async validate(Y,Q){let X=await KP0(Q),J=await this.db.selectFrom("private_registry_publish_api_key").select(["id"]).where("organization_id","=",Y).where("key_hash","=",X).executeTakeFirst();return Boolean(J)}async hasKeys(Y){let Q=await this.db.selectFrom("private_registry_publish_api_key").select((X)=>X.fn.countAll().as("count")).where("organization_id","=",Y).executeTakeFirst();return Number(Q?.count??0)>0}}var NK1=()=>{};import{sql as BV4}from"kysely";import{randomUUID as HP0}from"crypto";async function zV4(Y){let Q=new Date().toISOString(),X=HP0(),J=u9.SELF(Y.organizationId),G="registry.publish_request.created",K={requestId:Y.request.id,requestedId:Y.request.requested_id,title:Y.request.title,status:Y.request.status,createdAt:Y.request.created_at,requester:{name:Y.request.requester_name,email:Y.request.requester_email}};await Y.db.insertInto("events").values({id:X,organization_id:Y.organizationId,type:"registry.publish_request.created",source:J,specversion:"1.0",subject:Y.request.id,time:Q,datacontenttype:"application/json",dataschema:null,data:JSON.stringify(K),cron:null,status:"pending",attempts:0,last_error:null,next_retry_at:null,created_at:Q,updated_at:Q}).execute();let W=await Y.db.selectFrom("event_subscriptions").select(["id"]).where("organization_id","=",Y.organizationId).where("enabled","=",1).where("event_type","=","registry.publish_request.created").where((Z)=>Z.or([Z("publisher","is",null),Z("publisher","=",J)])).execute();if(W.length>0)await Y.db.insertInto("event_deliveries").values(W.map((Z)=>({id:HP0(),event_id:X,subscription_id:Z.id,status:"pending",attempts:0,last_error:null,delivered_at:null,next_retry_at:null,created_at:Q}))).execute();try{await BV4`SELECT pg_notify('mesh_events', ${X})`.execute(Y.db)}catch{}}async function DV4(Y,Q){let J=(await Y.selectFrom("organization").select(["id"]).where("id","=",Q).execute())[0];if(J?.id)return J.id;return(await Y.selectFrom("organization").select(["id"]).where("slug","=",Q).execute())[0]?.id??null}async function OV4(Y,Q){let X=await Y.selectFrom("project_plugin_configs").innerJoin("projects","projects.id","project_plugin_configs.project_id").select(["project_plugin_configs.settings as settings"]).where("projects.organization_id","=",Q).where("project_plugin_configs.plugin_id","=",vZ).execute();for(let J of X){let G=J.settings,K=typeof G==="string"?(()=>{try{return JSON.parse(G)}catch{return{}}})():G??{};if(K.acceptPublishRequests===!0){let W=K.rateLimitWindow==="minute"?"minute":"hour",Z=K.rateLimitMax,H=typeof Z==="number"&&Number.isFinite(Z)&&Z>=1?Math.floor(Z):$P0;return{acceptPublishRequests:!0,requireApiToken:K.requireApiToken===!0,rateLimitEnabled:K.rateLimitEnabled===void 0?FP0:K.rateLimitEnabled===!0,rateLimitWindow:W,rateLimitMax:H}}}return{acceptPublishRequests:!1,requireApiToken:!1,rateLimitEnabled:FP0,rateLimitWindow:UV4,rateLimitMax:$P0}}async function LV4(Y,Q,X){let J=X==="minute"?60000:3600000,G=new Date(Date.now()-J).toISOString(),K=await Y.selectFrom("private_registry_publish_request").select((W)=>W.fn.countAll().as("count")).where("organization_id","=",Q).where("created_at",">=",G).executeTakeFirst();return Number(K?.count??0)}async function NV4(Y,Q,X,J){let G=await Y.selectFrom("private_registry_item").select(["id","title"]).where("organization_id","=",Q).where((K)=>K.or([K("id","=",X),K("title","=",J)])).executeTakeFirst();return G?{id:String(G.id),title:String(G.title)}:null}function MK1(Y,Q){let{db:X,db:J}=Q,G=new iC(J),K=new aC(J);Y.post("/org/:orgRef/registry/publish-request",async(W)=>{let Z=W.req.param("orgRef"),H=await DV4(X,Z);if(!H)return W.json({error:"Organization not found"},404);let F=await OV4(X,H);if(!F.acceptPublishRequests)return W.json({error:"Publish requests are not enabled for this registry."},403);if(F.requireApiToken){let z=W.req.header("Authorization"),O=z?.startsWith("Bearer ")?z.slice(7).trim():null;if(!O)return W.json({error:"API key required. Use Authorization: Bearer <key>"},401);if(!await K.validate(H,O))return W.json({error:"Invalid API key"},401)}if(F.rateLimitEnabled){if(await LV4(J,H,F.rateLimitWindow)>=F.rateLimitMax)return W.json({error:"Too many publish requests. Please try again later.",retryAfterSeconds:F.rateLimitWindow==="minute"?60:3600},429)}let $;try{$=await W.req.json()}catch{return W.json({error:"Invalid JSON body"},400)}let V=QP0.safeParse($);if(!V.success)return W.json({error:"Invalid publish request payload",details:q.treeifyError(V.error)},400);let B=await NV4(J,H,V.data.data.id,V.data.data.title);if(B)return W.json({error:"A registry item with the same id or title already exists. Please use a different name/id.",conflict:B},409);let U=await G.createOrUpdate({organization_id:H,requested_id:V.data.data.id,title:V.data.data.title,description:V.data.data.description??null,_meta:V.data.data._meta,server:V.data.data.server,requester_name:V.data.requester?.name??null,requester_email:V.data.requester?.email??null});try{await zV4({db:X,organizationId:H,request:U})}catch(z){console.warn("[private-registry] failed to emit publish-request event:",z)}return W.json({id:U.id,requested_id:U.requested_id,status:U.status},201)})}var FP0=!0,UV4="hour",$P0=100;var VP0=j(()=>{DY();k1();yB();LK1();NK1();v9()});var qP0=j(()=>{WP0();VP0()});function BP0(Y){wK1=Y}function t0(){if(!wK1)throw Error(`Plugin storage not initialized. Make sure the "${vZ}" plugin is enabled.`);return wK1}async function MV4(Y){if(!Y.organization)throw Error("Organization context required");return await Y.access.check(),Y}function O6(Y,Q){return async(X,J)=>{let G=await MV4(J);return Q(X,G)}}function wV4(Y){if(!Y)return{};if(typeof Y==="string")try{return JSON.parse(Y)}catch{return{}}if(typeof Y==="object")return Y;return{}}async function rC(Y,Q){let J=(await Y.db.selectFrom("project_plugin_configs").innerJoin("projects","projects.id","project_plugin_configs.project_id").select(["project_plugin_configs.settings as settings"]).where("projects.organization_id","=",Q).where("project_plugin_configs.plugin_id","=",vZ).execute()).map((K)=>wV4(K.settings)),G={acceptPublishRequests:J.some((K)=>K.acceptPublishRequests===!0),requireApiToken:J.some((K)=>K.requireApiToken===!0),storePrivateOnly:J.some((K)=>K.storePrivateOnly===!0)};if(G.acceptPublishRequests||G.requireApiToken||G.storePrivateOnly)return G;for(let K of J)if(Object.keys(K).length>0)return K;return{}}var wK1=null;var J8=j(()=>{yB()});import{randomUUID as UP0}from"crypto";function zP0(Y,Q){if(!Y)return Q;try{return JSON.parse(Y)}catch{return Q}}class AK1{db;constructor(Y){this.db=Y}async create(Y){let Q=UP0(),X=new Date().toISOString(),J={id:Q,organization_id:Y.organization_id,status:Y.status??"pending",config_snapshot:Y.config_snapshot?JSON.stringify(Y.config_snapshot):null,total_items:Y.total_items??0,tested_items:0,passed_items:0,failed_items:0,skipped_items:0,current_item_id:null,started_at:Y.started_at??null,finished_at:null,created_at:X};await this.db.insertInto("private_registry_monitor_run").values(J).execute();let G=await this.findById(Y.organization_id,Q);if(!G)throw Error(`Failed to create monitor run ${Q}`);return G}async findById(Y,Q){let X=await this.db.selectFrom("private_registry_monitor_run").selectAll().where("organization_id","=",Y).where("id","=",Q).executeTakeFirst();return X?this.deserializeRun(X):null}async list(Y,Q={}){let X=this.db.selectFrom("private_registry_monitor_run").selectAll().where("organization_id","=",Y),J=this.db.selectFrom("private_registry_monitor_run").select((Z)=>Z.fn.countAll().as("count")).where("organization_id","=",Y);if(Q.status)X=X.where("status","=",Q.status),J=J.where("status","=",Q.status);let G=await J.executeTakeFirst(),K=Number(G?.count??0);return{items:(await X.orderBy("created_at","desc").limit(Q.limit??24).offset(Q.offset??0).execute()).map((Z)=>this.deserializeRun(Z)),totalCount:K}}async update(Y,Q,X){let J={};if(X.total_items!==void 0)J.total_items=X.total_items;if(X.status!==void 0)J.status=X.status;if(X.tested_items!==void 0)J.tested_items=X.tested_items;if(X.passed_items!==void 0)J.passed_items=X.passed_items;if(X.failed_items!==void 0)J.failed_items=X.failed_items;if(X.skipped_items!==void 0)J.skipped_items=X.skipped_items;if(X.current_item_id!==void 0)J.current_item_id=X.current_item_id;if(X.started_at!==void 0)J.started_at=X.started_at;if(X.finished_at!==void 0)J.finished_at=X.finished_at;await this.db.updateTable("private_registry_monitor_run").set(J).where("organization_id","=",Y).where("id","=",Q).execute();let G=await this.findById(Y,Q);if(!G)throw Error(`Monitor run not found: ${Q}`);return G}deserializeRun(Y){return{id:Y.id,organization_id:Y.organization_id,status:Y.status,config_snapshot:zP0(Y.config_snapshot,null),total_items:Number(Y.total_items??0),tested_items:Number(Y.tested_items??0),passed_items:Number(Y.passed_items??0),failed_items:Number(Y.failed_items??0),skipped_items:Number(Y.skipped_items??0),current_item_id:Y.current_item_id,started_at:Y.started_at,finished_at:Y.finished_at,created_at:Y.created_at}}}class PK1{db;constructor(Y){this.db=Y}async create(Y){let Q=UP0(),X=new Date().toISOString(),J={id:Q,run_id:Y.run_id,organization_id:Y.organization_id,item_id:Y.item_id,item_title:Y.item_title,status:Y.status,error_message:Y.error_message??null,connection_ok:Y.connection_ok?1:0,tools_listed:Y.tools_listed?1:0,tool_results:Y.tool_results?JSON.stringify(Y.tool_results):null,agent_summary:Y.agent_summary??null,duration_ms:Y.duration_ms??0,action_taken:Y.action_taken??"none",tested_at:X};await this.db.insertInto("private_registry_monitor_result").values(J).execute();let G=await this.findById(Y.organization_id,Q);if(!G)throw Error("Failed to create test result");return G}async findById(Y,Q){let X=await this.db.selectFrom("private_registry_monitor_result").selectAll().where("organization_id","=",Y).where("id","=",Q).executeTakeFirst();return X?this.deserialize(X):null}async listByRun(Y,Q,X={}){let J=this.db.selectFrom("private_registry_monitor_result").selectAll().where("organization_id","=",Y).where("run_id","=",Q),G=this.db.selectFrom("private_registry_monitor_result").select((H)=>H.fn.countAll().as("count")).where("organization_id","=",Y).where("run_id","=",Q);if(X.status)J=J.where("status","=",X.status),G=G.where("status","=",X.status);let K=await G.executeTakeFirst(),W=Number(K?.count??0);return{items:(await J.orderBy("tested_at","desc").limit(X.limit??50).offset(X.offset??0).execute()).map((H)=>this.deserialize(H)),totalCount:W}}async update(Y,Q,X){let J={};if(X.status!==void 0)J.status=X.status;if(X.error_message!==void 0)J.error_message=X.error_message;if(X.connection_ok!==void 0)J.connection_ok=X.connection_ok?1:0;if(X.tools_listed!==void 0)J.tools_listed=X.tools_listed?1:0;if(X.tool_results!==void 0)J.tool_results=JSON.stringify(X.tool_results);if(X.agent_summary!==void 0)J.agent_summary=X.agent_summary;if(X.duration_ms!==void 0)J.duration_ms=X.duration_ms;if(X.action_taken!==void 0)J.action_taken=X.action_taken;await this.db.updateTable("private_registry_monitor_result").set(J).where("organization_id","=",Y).where("id","=",Q).execute();let G=await this.findById(Y,Q);if(!G)throw Error(`Monitor result not found: ${Q}`);return G}deserialize(Y){return{id:Y.id,run_id:Y.run_id,organization_id:Y.organization_id,item_id:Y.item_id,item_title:Y.item_title,status:Y.status,error_message:Y.error_message,connection_ok:Y.connection_ok===1,tools_listed:Y.tools_listed===1,tool_results:zP0(Y.tool_results,[]),agent_summary:Y.agent_summary,duration_ms:Number(Y.duration_ms??0),action_taken:Y.action_taken,tested_at:Y.tested_at}}}var DP0=()=>{};import{randomUUID as AV4}from"crypto";class EK1{db;constructor(Y){this.db=Y}async findByItemId(Y,Q){let X=await this.db.selectFrom("private_registry_monitor_connection").selectAll().where("organization_id","=",Y).where("item_id","=",Q).executeTakeFirst();return X?this.deserialize(X):null}async list(Y){return(await this.db.selectFrom("private_registry_monitor_connection").selectAll().where("organization_id","=",Y).orderBy("updated_at","desc").execute()).map((X)=>this.deserialize(X))}async findByConnectionId(Y,Q){let X=await this.db.selectFrom("private_registry_monitor_connection").selectAll().where("organization_id","=",Y).where("connection_id","=",Q).executeTakeFirst();return X?this.deserialize(X):null}async upsert(Y){let Q=await this.findByItemId(Y.organization_id,Y.item_id),X=new Date().toISOString();if(!Q){let G={id:AV4(),organization_id:Y.organization_id,item_id:Y.item_id,connection_id:Y.connection_id,auth_status:Y.auth_status??"none",created_at:X,updated_at:X};await this.db.insertInto("private_registry_monitor_connection").values(G).execute()}else{let G={connection_id:Y.connection_id,auth_status:Y.auth_status??Q.auth_status,updated_at:X};await this.db.updateTable("private_registry_monitor_connection").set(G).where("organization_id","=",Y.organization_id).where("item_id","=",Y.item_id).execute()}let J=await this.findByItemId(Y.organization_id,Y.item_id);if(!J)throw Error("Failed to save monitor connection");return J}async updateAuthStatus(Y,Q,X){return await this.db.updateTable("private_registry_monitor_connection").set({auth_status:X,updated_at:new Date().toISOString()}).where("organization_id","=",Y).where("item_id","=",Q).execute(),this.findByItemId(Y,Q)}deserialize(Y){return{id:Y.id,organization_id:Y.organization_id,item_id:Y.item_id,connection_id:Y.connection_id,auth_status:Y.auth_status,created_at:Y.created_at,updated_at:Y.updated_at}}}var OP0=()=>{};function LP0(Y){let Q=Y.db,X={items:new cC(Q),publishRequests:new iC(Q),publishApiKeys:new aC(Q),monitorRuns:new AK1(Q),monitorResults:new PK1(Q),monitorConnections:new EK1(Q)};return BP0(X),X}var NP0=j(()=>{J8();KK1();LK1();NK1();DP0();OP0()});var MP0;var wP0=j(()=>{v9();J8();MP0={name:"REGISTRY_ITEM_BULK_CREATE",description:"Create many private registry items at once",inputSchema:$K1,outputSchema:dA0,handler:O6($K1,async(Y,Q)=>{let X=t0(),J=[],G=0;for(let K of Y.items)try{await X.items.create({...K,organization_id:Q.organization.id,created_by:Q.auth.user?.id??null}),G+=1}catch(W){J.push({id:K.id,error:W instanceof Error?W.message:"Unknown error"})}return{created:G,errors:J}})}});function PV4(Y){return Array.from(new Set(Y.map((Q)=>Q.trim().toLowerCase()).filter((Q)=>Q.length>0)))}function EV4(Y){let X=Y.structuredContent?.content?.filter((J)=>J.type==="text"&&typeof J.text==="string").map((J)=>J.text??"").join(`
1214
+ `,Y.enqueue(Q.encode(G)),!0}catch{return!1}}handleUnsupportedRequest(){return new Response(JSON.stringify({jsonrpc:"2.0",error:{code:-32000,message:"Method not allowed."},id:null}),{status:405,headers:{Allow:"GET, POST, DELETE","Content-Type":"application/json"}})}async handlePostRequest(Y,Q){try{let X=Y.headers.get("accept");if(!X?.includes("application/json")||!X.includes("text/event-stream"))return this.createJsonErrorResponse(406,-32000,"Not Acceptable: Client must accept both application/json and text/event-stream");let J=Y.headers.get("content-type");if(!J||!J.includes("application/json"))return this.createJsonErrorResponse(415,-32000,"Unsupported Media Type: Content-Type must be application/json");let G={headers:Object.fromEntries(Y.headers.entries())},K;if(Q?.parsedBody!==void 0)K=Q.parsedBody;else try{K=await Y.json()}catch{return this.createJsonErrorResponse(400,-32700,"Parse error: Invalid JSON")}let W;try{if(Array.isArray(K))W=K.map((M)=>sX.parse(M));else W=[sX.parse(K)]}catch{return this.createJsonErrorResponse(400,-32700,"Parse error: Invalid JSON-RPC message")}let Z=W.some(ir);if(Z){if(this._initialized&&this.sessionId!==void 0)return this.createJsonErrorResponse(400,-32600,"Invalid Request: Server already initialized");if(W.length>1)return this.createJsonErrorResponse(400,-32600,"Invalid Request: Only one initialization request is allowed");if(this.sessionId=this.sessionIdGenerator?.(),this._initialized=!0,this.sessionId&&this._onsessioninitialized)await Promise.resolve(this._onsessioninitialized(this.sessionId))}if(!Z){let M=this.validateSession(Y);if(M)return M;let w=this.validateProtocolVersion(Y);if(w)return w}if(!W.some(zW)){for(let M of W)this.onmessage?.(M,{authInfo:Q?.authInfo,requestInfo:G});return new Response(null,{status:202})}let F=crypto.randomUUID(),$=W.find((M)=>ir(M)),V=$?$.params.protocolVersion:Y.headers.get("mcp-protocol-version")??Bz1;if(this._enableJsonResponse)return new Promise((M)=>{this._streamMapping.set(F,{resolveJson:M,cleanup:()=>{this._streamMapping.delete(F)}});for(let w of W)if(zW(w))this._requestToStreamMapping.set(w.id,F);for(let w of W)this.onmessage?.(w,{authInfo:Q?.authInfo,requestInfo:G})});let B=new TextEncoder,U,z=new ReadableStream({start:(M)=>{U=M},cancel:()=>{this._streamMapping.delete(F)}}),O={"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"};if(this.sessionId!==void 0)O["mcp-session-id"]=this.sessionId;for(let M of W)if(zW(M))this._streamMapping.set(F,{controller:U,encoder:B,cleanup:()=>{this._streamMapping.delete(F);try{U.close()}catch{}}}),this._requestToStreamMapping.set(M.id,F);await this.writePrimingEvent(U,B,F,V);for(let M of W){let w,P;if(zW(M)&&this._eventStore&&V>="2025-11-25")w=()=>{this.closeSSEStream(M.id)},P=()=>{this.closeStandaloneSSEStream()};this.onmessage?.(M,{authInfo:Q?.authInfo,requestInfo:G,closeSSEStream:w,closeStandaloneSSEStream:P})}return new Response(z,{status:200,headers:O})}catch(X){return this.onerror?.(X),this.createJsonErrorResponse(400,-32700,"Parse error",{data:String(X)})}}async handleDeleteRequest(Y){let Q=this.validateSession(Y);if(Q)return Q;let X=this.validateProtocolVersion(Y);if(X)return X;return await Promise.resolve(this._onsessionclosed?.(this.sessionId)),await this.close(),new Response(null,{status:200})}validateSession(Y){if(this.sessionIdGenerator===void 0)return;if(!this._initialized)return this.createJsonErrorResponse(400,-32000,"Bad Request: Server not initialized");let Q=Y.headers.get("mcp-session-id");if(!Q)return this.createJsonErrorResponse(400,-32000,"Bad Request: Mcp-Session-Id header is required");if(Q!==this.sessionId)return this.createJsonErrorResponse(404,-32001,"Session not found");return}validateProtocolVersion(Y){let Q=Y.headers.get("mcp-protocol-version");if(Q!==null&&!VV.includes(Q))return this.createJsonErrorResponse(400,-32000,`Bad Request: Unsupported protocol version: ${Q} (supported versions: ${VV.join(", ")})`);return}async close(){this._streamMapping.forEach(({cleanup:Y})=>{Y()}),this._streamMapping.clear(),this._requestResponseMap.clear(),this.onclose?.()}closeSSEStream(Y){let Q=this._requestToStreamMapping.get(Y);if(!Q)return;let X=this._streamMapping.get(Q);if(X)X.cleanup()}closeStandaloneSSEStream(){let Y=this._streamMapping.get(this._standaloneSseStreamId);if(Y)Y.cleanup()}async send(Y,Q){let X=Q?.relatedRequestId;if(YG(Y)||Hz(Y))X=Y.id;if(X===void 0){if(YG(Y)||Hz(Y))throw Error("Cannot send a response on a standalone SSE stream unless resuming a previous client request");let K;if(this._eventStore)K=await this._eventStore.storeEvent(this._standaloneSseStreamId,Y);let W=this._streamMapping.get(this._standaloneSseStreamId);if(W===void 0)return;if(W.controller&&W.encoder)this.writeSSEEvent(W.controller,W.encoder,Y,K);return}let J=this._requestToStreamMapping.get(X);if(!J)throw Error(`No connection established for request ID: ${String(X)}`);let G=this._streamMapping.get(J);if(!this._enableJsonResponse&&G?.controller&&G?.encoder){let K;if(this._eventStore)K=await this._eventStore.storeEvent(J,Y);this.writeSSEEvent(G.controller,G.encoder,Y,K)}if(YG(Y)||Hz(Y)){this._requestResponseMap.set(X,Y);let K=Array.from(this._requestToStreamMapping.entries()).filter(([Z,H])=>H===J).map(([Z])=>Z);if(K.every((Z)=>this._requestResponseMap.has(Z))){if(!G)throw Error(`No connection established for request ID: ${String(X)}`);if(this._enableJsonResponse&&G.resolveJson){let Z={"Content-Type":"application/json"};if(this.sessionId!==void 0)Z["mcp-session-id"]=this.sessionId;let H=K.map((F)=>this._requestResponseMap.get(F));if(H.length===1)G.resolveJson(new Response(JSON.stringify(H[0]),{status:200,headers:Z}));else G.resolveJson(new Response(JSON.stringify(H),{status:200,headers:Z}))}else G.cleanup();for(let Z of K)this._requestResponseMap.delete(Z),this._requestToStreamMapping.delete(Z)}}}}var vA0=j(()=>{_Y()});var yA0="SELF",Zl=(Y)=>{return typeof Y==="object"&&Y!==null&&"handler"in Y&&"events"in Y&&typeof Y.handler==="function"&&Array.isArray(Y.events)},fA0=(Y)=>{return typeof Y==="object"&&Y!==null&&"handler"in Y&&"events"in Y&&typeof Y.handler==="function"&&Array.isArray(Y.events)},kA0="::",bA0=(Y)=>{let Q=Y.indexOf(kA0);if(Q===-1)return null;let X=Y.substring(0,Q),J=Y.substring(Q+kA0.length);return[X,J]},p$4=(Y)=>{if(!Y.startsWith("cron/"))return null;let Q=Y.substring(5),X=Q.indexOf("/");if(X===-1)return null;let J=Q.substring(0,X),G=Q.substring(X+1);return[J,G]},hA0=(Y)=>{if(Zl(Y))return[];return Object.keys(Y)},c$4=(Y,Q)=>{if(Zl(Y))return Y.events;let X=Y[Q];if(!X)return[];if(fA0(X))return X.events;return Object.keys(X)},Wl=(Y,Q,X)=>{if(Y===yA0){if(!X)return console.warn("[Event] SELF binding used but no connectionId available"),null;return X}let J=Q[Y];if(!eZ1(J))return console.warn(`[Event] Binding "${Y}" not found in state`),null;return J.value},n$4=(Y,Q,X)=>{let J=Q;if(Zl(Y)){let K=[];for(let W of Y.events){let Z=bA0(W);if(!Z){console.warn(`[Event] Global handler event "${W}" must be prefixed with BINDING:: (e.g., "SELF::${W}" or "DATABASE::${W}")`);continue}let[H,F]=Z,$=Wl(H,J,X);if(!$)continue;K.push({eventType:F,publisher:$})}return K}let G=[];for(let K of hA0(Y)){let W=Wl(K,J,X);if(!W)continue;let Z=c$4(Y,K);for(let H of Z)G.push({eventType:H,publisher:W})}return G},i$4=(Y)=>{let Q=new Map;for(let X of Y){let J=X.source,G=Q.get(J)||[];G.push(X),Q.set(J,G)}return Q},a$4=(Y)=>{let Q=new Map;for(let X of Y){let J=X.type,G=Q.get(J)||[];G.push(X),Q.set(J,G)}return Q},r$4=(Y)=>{let Q={},X={},J=!1,G=0,K=[];for(let W of Y){if(W.results)Object.assign(X,W.results);if(W.success===!1){if(J=!0,W.error)K.push(W.error)}if(W.processedCount!==void 0)G+=W.processedCount}if(Object.keys(X).length>0)Q.results=X;if(Q.success=!J,K.length>0)Q.error=K.join("; ");if(G>0)Q.processedCount=G;return Q},o$4=async(Y,Q,X,J,G)=>{let K=J;if(Zl(Y)){let $=new Set;for(let B of Y.events){let U=bA0(B);if(!U)continue;let[z,O]=U,M=Wl(z,K,G);if(!M)continue;$.add(`${M}:${O}`)}let V=Q.filter((B)=>{let U=`${B.source}:${B.type}`;return $.has(U)});if(V.length===0)return{success:!0};try{return await Y.handler({events:V},X)}catch(B){return{success:!1,error:B instanceof Error?B.message:String(B)}}}let W=new Map;for(let $ of hA0(Y)){let V=Wl($,K,G);if(V)W.set(V,$)}let Z=i$4(Q),H=[];for(let[$,V]of Z){let B=W.get($);if(!B)continue;let U=Y[B];if(!U)continue;if(fA0(U)){H.push((async()=>{try{return await U.handler({events:V},X)}catch(M){let w={};for(let P of V)w[P.id]={success:!1,error:M instanceof Error?M.message:String(M)};return{results:w}}})());continue}let z=U,O=a$4(V);for(let[M,w]of O){let P=z[M];if(!P)continue;H.push((async()=>{try{let S=await P({events:w},X),C={};for(let E of w)C[E.id]=S;return{results:C}}catch(S){let C={};for(let E of w)C[E.id]={success:!1,error:S instanceof Error?S.message:String(S)};return{results:C}}})())}}let F=await Promise.all(H);if(F.length===0)return{success:!0};return r$4(F)},Kl;var WK1=j(()=>{Yl();Kl={subscriptions:n$4,execute:o$4,parseCron:p$4}});function P3(Y){return{...Y,execute:(Q)=>{return Y.execute({...Q,runtimeContext:dC(Q.runtimeContext)})}}}function ZK1(Y){return Y&&"streamable"in Y&&Y.streamable===!0}var dC=(Y)=>{let Q=EC.getStore();if(!Q){if(Y)return Y;throw Error("Missing context, did you forget to call State.bind?")}return Q},s$4=(Y,Q)=>{let X=Q;return typeof X[Y]<"u"?X[Y]:Q?.MESH_REQUEST_CONTEXT?.state?.[Y]},t$4=({events:Y,configuration:{state:Q,scopes:X,onChange:J}={}}={})=>{let G=Q?q.toJSONSchema(Q):{type:"object",properties:{}},K=String(Y?.bus??"EVENT_BUS");return[...J||Y?[P3({id:"ON_MCP_CONFIGURATION",description:"MCP Configuration On Change",inputSchema:q.object({state:Q??q.unknown(),scopes:q.array(q.string()).describe("Array of scopes in format 'KEY::SCOPE' (e.g., 'GMAIL::GetCurrentUser')")}),outputSchema:q.object({}),execute:async(W)=>{let Z=W.context.state;await J?.(W.runtimeContext.env,{state:Z,scopes:W.context.scopes});let H=s$4(K,W.runtimeContext.env);if(Y&&Z&&H){let F=W.runtimeContext.env.MESH_REQUEST_CONTEXT?.connectionId,$=Kl.subscriptions(Y?.handlers??{},Z,F);if(await H.EVENT_SYNC_SUBSCRIPTIONS({subscriptions:$}),F){let V=$.filter((B)=>B.eventType.startsWith("cron/")&&B.publisher===F);await Promise.all(V.map(async(B)=>{let U=Kl.parseCron(B.eventType);if(U){let[,z]=U;await H.EVENT_PUBLISH({type:B.eventType,cron:z})}}))}}return Promise.resolve({})}})]:[],...Y?.handlers?[P3({id:"ON_EVENTS",description:"Receive and process CloudEvents from the event bus. Returns per-event or batch results.",inputSchema:Ql,outputSchema:Xl,execute:async(W)=>{let Z=W.runtimeContext.env,H=Z.MESH_REQUEST_CONTEXT?.state,F=Z.MESH_REQUEST_CONTEXT?.connectionId;return Kl.execute(Y.handlers,W.context.events,Z,H,F)}})]:[],P3({id:"MCP_CONFIGURATION",description:"MCP Configuration",inputSchema:q.object({}),outputSchema:q.object({stateSchema:q.unknown(),scopes:q.array(q.string()).optional()}),execute:()=>{return Promise.resolve({stateSchema:G,scopes:[...X??[],...Y?[`${K}::EVENT_SYNC_SUBSCRIPTIONS`]:[]]})}})]},xA0=(Y)=>{let Q=async(G)=>{await Y.before?.(G);let K=new yz({name:"@deco/mcp-api",version:"1.0.0"},{capabilities:{tools:{},prompts:{},resources:{}}}),Z=await(typeof Y.tools==="function"?Y.tools:async(B)=>{if(typeof Y.tools==="function")return await Y.tools(B);return await Promise.all(Y.tools?.flatMap(async(U)=>{let O=await U(B);if(Array.isArray(O))return O;return[O]})??[]).then((U)=>U.flat())})(G);Z.push(...t$4(Y));for(let B of Z)K.registerTool(B.id,{_meta:{streamable:ZK1(B),...B._meta??{}},description:B.description,annotations:B.annotations,inputSchema:B.inputSchema&&"shape"in B.inputSchema?B.inputSchema.shape:q.object({}).shape,outputSchema:ZK1(B)?q.object({bytes:q.record(q.string(),q.number())}).shape:B.outputSchema&&typeof B.outputSchema==="object"&&("shape"in B.outputSchema)?B.outputSchema.shape:void 0},async(U)=>{let z=await B.execute({context:U,runtimeContext:dC()});if(ZK1(B)&&z instanceof Response)return{structuredContent:{streamable:!0,status:z.status,statusText:z.statusText},content:[{type:"text",text:`Streaming response: ${z.status} ${z.statusText}`}]};return{structuredContent:z,content:[{type:"text",text:JSON.stringify(z)}]}});let F=await(typeof Y.prompts==="function"?Y.prompts:async(B)=>{if(typeof Y.prompts==="function")return await Y.prompts(B);return await Promise.all(Y.prompts?.flatMap(async(U)=>{let O=await U(B);if(Array.isArray(O))return O;return[O]})??[]).then((U)=>U.flat())})(G);for(let B of F)K.registerPrompt(B.name,{title:B.title,description:B.description,argsSchema:B.argsSchema?B.argsSchema:q.object({}).shape},async(U)=>{return await B.execute({args:U,runtimeContext:dC()})});let V=await(typeof Y.resources==="function"?Y.resources:async(B)=>{if(typeof Y.resources==="function")return await Y.resources(B);return await Promise.all(Y.resources?.flatMap(async(U)=>{let O=await U(B);if(Array.isArray(O))return O;return[O]})??[]).then((U)=>U.flat())})(G);for(let B of V)K.resource(B.name,B.uri,{description:B.description,mimeType:B.mimeType},async(U)=>{let z=await B.read({uri:U,runtimeContext:dC()}),O={uri:z.uri};if(z.mimeType)O.mimeType=z.mimeType;if(z.text!==void 0)return{contents:[{uri:z.uri,mimeType:z.mimeType,text:z.text}]};else if(z.blob!==void 0)return{contents:[{uri:z.uri,mimeType:z.mimeType,blob:z.blob}]};return{contents:[{uri:z.uri,mimeType:z.mimeType,text:""}]}});return{server:K,tools:Z,prompts:F,resources:V}};return{fetch:async(G,K)=>{let{server:W}=await Q(K),Z=new GK1;await W.connect(Z);try{let H=await Z.handleRequest(G),F=H.headers.get("content-type");if(!(F?.includes("text/event-stream")||F?.includes("application/json-rpc"))){console.debug("[MCP Transport] Closing transport for non-streaming response");try{await Z.close?.()}catch{}}else console.debug("[MCP Transport] Keeping transport open for streaming response (Content-Type: %s)",F);return H}catch(H){console.debug("[MCP Transport] Closing transport due to error:",H instanceof Error?H.message:H);try{await Z.close?.()}catch{}throw H}},callTool:async({toolCallId:G,toolCallInput:K})=>{let W=EC.getStore();if(!W)throw Error("Missing state, did you forget to call State.bind?");let Z=W?.env,{tools:H}=await Q(Z),$=H.find((V)=>V.id===G)?.execute;if(!$)throw Error(`Tool ${G} not found or does not have an execute function`);return $({context:K,runtimeContext:dC()})}}};var Hl=j(()=>{Gl();jk();vA0();k1();WK1();YK1();WK1()});var e$4=({env:Y,server:Q,url:X})=>{Y.SELF=new Proxy({},{get:(J,G)=>{if(G==="toJSON")return null;return async(K)=>{return await Q.callTool({toolCallId:G,toolCallInput:K})}}}),Y.IS_LOCAL=(X?.startsWith("http://localhost")||X?.startsWith("http://127.0.0.1"))??!1},gA0=(Y)=>()=>{return{...Y??{}}},YV4=({env:Y,server:Q,tokenOrContext:X,url:J,authToken:G})=>{let K=Y,W=G?G.split(" ")[1]:void 0,Z;if(typeof X==="string"){let H=k8(X),F=H.metadata??{};Z={authorization:W,state:H.state??F.state??{},token:X,meshUrl:H.meshUrl??F.meshUrl,connectionId:H.connectionId??F.connectionId,organizationId:H.organizationId??F.organizationId,organizationName:H.organizationName??F.organizationName,organizationSlug:H.organizationSlug??F.organizationSlug,ensureAuthenticated:gA0(H.user??H.sub)}}else if(typeof X==="object"){Z=X;let H=k8(X.token),F=H.metadata??{},$=H.appName;Z.authorization??=W,Z.callerApp=$,Z.connectionId??=H.connectionId??F.connectionId,Z.organizationId??=H.organizationId??F.organizationId,Z.organizationName??=H.organizationName??F.organizationName,Z.organizationSlug??=H.organizationSlug??F.organizationSlug,Z.ensureAuthenticated=gA0(H.user??H.sub)}else Z={state:{},authorization:W,token:void 0,meshUrl:void 0,connectionId:void 0,ensureAuthenticated:()=>{throw Error("Unauthorized")}};return K.MESH_REQUEST_CONTEXT=Z,Z.state=GA0(Z),e$4({env:K,server:Q,url:J}),K},QV4,uA0=(Y)=>{let Q=xA0(Y),X=Y.cors??QV4,J=Y.oauth,G=J?qA0(J):null,K=async(W,Z,H)=>{let F=new URL(W.url);if(G){if(F.pathname==="/.well-known/oauth-protected-resource"||F.pathname==="/mcp/.well-known/oauth-protected-resource")return G.handleProtectedResourceMetadata(W);if(F.pathname==="/.well-known/oauth-authorization-server")return G.handleAuthorizationServerMetadata(W);if(F.pathname==="/authorize")return G.handleAuthorize(W);if(F.pathname==="/oauth/callback")return G.handleOAuthCallback(W);if(F.pathname==="/token"&&W.method==="POST")return G.handleToken(W);if((F.pathname==="/register"||F.pathname==="/mcp/register")&&W.method==="POST")return G.handleClientRegistration(W)}if(F.pathname==="/mcp"){if(W.method==="GET")return new Response("Method not allowed",{status:405});if(G&&!G.hasAuth(W)){let $=W.clone();try{if((await $.json())?.method!=="tools/list")return G.createUnauthorizedResponse(W)}catch{return G.createUnauthorizedResponse(W)}}return Q.fetch(W,Z,H)}if(F.pathname.startsWith("/mcp/call-tool")){let $=F.pathname.split("/").pop();if(!$)return new Response("Not found",{status:404});let V=await W.json(),B=await Q.callTool({toolCallId:$,toolCallInput:V});if(B instanceof Response)return B;return new Response(JSON.stringify(B),{headers:{"Content-Type":"application/json"}})}return Y.fetch?.(W,Z,H)||new Response("Not found",{status:404})};return{fetch:async(W,Z,H)=>{if(new URL(W.url).pathname==="/_healthcheck")return new Response("OK",{status:200});if(X!==!1&&W.method==="OPTIONS")return ZA0(W,X??{});let F=YV4({authToken:W.headers.get("authorization")??null,env:{...process.env,...Z},server:Q,tokenOrContext:W.headers.get("x-mesh-token")??void 0,url:W.url}),$=await EC.run({req:W,env:F,ctx:H},async()=>await K(W,F,H));if(X!==!1)return KA0($,W,X??{});return $}}};var mA0=j(()=>{LX();Yl();HA0();YK1();Hl();Hl();Yl();sZ1();QV4={origin:(Y)=>{if(Y.includes("localhost")||Y.includes("127.0.0.1"))return Y;return Y},credentials:!0,allowMethods:["GET","POST","PUT","DELETE","OPTIONS"],allowHeaders:["Content-Type","Authorization","mcp-protocol-version"]}});function Fl(Y){return Buffer.from(String(Y),"utf8").toString("base64")}function $l(Y){if(!Y)return null;try{let Q=Buffer.from(Y,"base64").toString("utf8"),X=Number.parseInt(Q,10);return Number.isNaN(X)||X<0?null:X}catch{return null}}function WQ(Y){if(!Y?.length)return[];return Array.from(new Set(Y.map((Q)=>Q.trim()).filter((Q)=>Q.length>0).map((Q)=>Q.toLowerCase())))}function xB(Y){if(!Y)return[];return WQ(Y.split(","))}function Vl(Y,Q){if(!Y)return Q;try{return JSON.parse(Y)}catch{return Q}}function ql(Y){return Y?.["mcp.mesh"]??{}}function Bl(Y){return Y.length?Y.join(","):null}function XV4(Y,Q){if(!Q?.length)return;let X=Y;for(let J of Q){if(X===null||X===void 0)return;if(typeof X!=="object")return;X=X[J]}return X}function JV4(Y,Q,X){if(!Q)return!1;if(Q==="eq")return Y===X;if(Q==="contains"||Q==="like"){let J=String(Y??"").toLowerCase(),G=String(X??"").toLowerCase();return J.includes(G)}if(Q==="in"){if(!Array.isArray(X))return!1;return X.includes(Y)}if(Q==="gt")return Number(Y)>Number(X);if(Q==="gte")return Number(Y)>=Number(X);if(Q==="lt")return Number(Y)<Number(X);if(Q==="lte")return Number(Y)<=Number(X);return!1}function pC(Y,Q){if(!Q)return!0;if(Array.isArray(Q.conditions)&&Q.conditions.length){if(Q.operator==="and")return Q.conditions.every((X)=>pC(Y,X));if(Q.operator==="or")return Q.conditions.some((X)=>pC(Y,X));if(Q.operator==="not")return!Q.conditions.some((X)=>pC(Y,X))}return JV4(XV4(Y,Q.field),Q.operator,Q.value)}class cC{db;constructor(Y){this.db=Y}async create(Y){let Q=new Date().toISOString(),X=Y._meta??{},J=ql(X),G=WQ(J.tags),K=WQ(J.categories),W={id:Y.id,organization_id:Y.organization_id,title:Y.title,description:Y.description??null,server_json:JSON.stringify(Y.server),meta_json:JSON.stringify(X),tags:Bl(G),categories:Bl(K),is_public:Y.is_public?1:0,is_unlisted:Y.is_unlisted?1:0,created_at:Q,updated_at:Q,created_by:Y.created_by??null};await this.db.insertInto("private_registry_item").values(W).execute();let Z=await this.findById(Y.organization_id,Y.id);if(!Z)throw Error(`Failed to create registry item "${Y.id}"`);return Z}async findById(Y,Q){let X=await this.db.selectFrom("private_registry_item").selectAll().where("organization_id","=",Y).where("id","=",Q).executeTakeFirst();return X?this.deserialize(X):null}async findByIdOrName(Y,Q){let X=await this.findById(Y,Q);if(X)return X;let J=await this.db.selectFrom("private_registry_item").selectAll().where("organization_id","=",Y).where("title","=",Q).executeTakeFirst();return J?this.deserialize(J):null}async update(Y,Q,X){let J=await this.findById(Y,Q);if(!J)throw Error(`Registry item not found: ${Q}`);let G=X._meta??J._meta??{},K=ql(G),W=WQ(K.tags),Z=WQ(K.categories),H={updated_at:new Date().toISOString()};if(X.title!==void 0)H.title=X.title;if(X.description!==void 0)H.description=X.description;if(X.server!==void 0)H.server_json=JSON.stringify(X.server);if(X._meta!==void 0)H.meta_json=JSON.stringify(X._meta);if(X._meta!==void 0)H.tags=Bl(W),H.categories=Bl(Z);if(X.is_public!==void 0)H.is_public=X.is_public?1:0;if(X.is_unlisted!==void 0)H.is_unlisted=X.is_unlisted?1:0;await this.db.updateTable("private_registry_item").set(H).where("organization_id","=",Y).where("id","=",Q).execute();let F=await this.findById(Y,Q);if(!F)throw Error(`Registry item not found after update: ${Q}`);return F}async delete(Y,Q){let X=await this.findById(Y,Q);if(!X)return null;return await this.db.deleteFrom("private_registry_item").where("organization_id","=",Y).where("id","=",Q).execute(),X}async list(Y,Q={}){let X=this.db.selectFrom("private_registry_item").selectAll().where("organization_id","=",Y).orderBy("created_at","desc");if(!Q.includeUnlisted)X=X.where("is_unlisted","=",0);let G=(await X.execute()).map((z)=>this.deserialize(z)),K=WQ(Q.tags),W=WQ(Q.categories),Z=G.filter((z)=>{let O=ql(z._meta),M=WQ(O.tags),w=WQ(O.categories),P=K.length===0||K.every((E)=>M.includes(E)),S=W.length===0||W.every((E)=>w.includes(E)),C=pC(z,Q.where);return P&&S&&C}),F=$l(Q.cursor)??Q.offset??0,$=Q.limit??24,V=Z.slice(F,F+$),B=F+$<Z.length,U=B?Fl(F+$):void 0;return{items:V,totalCount:Z.length,hasMore:B,nextCursor:U}}async listPublic(Y,Q={}){let J=(await this.db.selectFrom("private_registry_item").selectAll().where("organization_id","=",Y).where("is_public","=",1).where("is_unlisted","=",0).orderBy("created_at","desc").execute()).map((U)=>this.deserialize(U)),G=WQ(Q.tags),K=WQ(Q.categories),W=J.filter((U)=>{let z=ql(U._meta),O=WQ(z.tags),M=WQ(z.categories),w=G.length===0||G.every((C)=>O.includes(C)),P=K.length===0||K.every((C)=>M.includes(C)),S=pC(U,Q.where);return w&&P&&S}),H=$l(Q.cursor)??Q.offset??0,F=Q.limit??24,$=W.slice(H,H+F),V=H+F<W.length,B=V?Fl(H+F):void 0;return{items:$,totalCount:W.length,hasMore:V,nextCursor:B}}async getFilters(Y,Q){let X=this.db.selectFrom("private_registry_item").select(["tags","categories"]).where("organization_id","=",Y);if(Q?.publicOnly)X=X.where("is_public","=",1);if(!Q?.includeUnlisted)X=X.where("is_unlisted","=",0);let J=await X.execute(),G=new Map,K=new Map;for(let Z of J){for(let H of xB(Z.tags))G.set(H,(G.get(H)??0)+1);for(let H of xB(Z.categories))K.set(H,(K.get(H)??0)+1)}let W=(Z)=>Array.from(Z.entries()).map(([H,F])=>({value:H,count:F})).sort((H,F)=>H.value.localeCompare(F.value));return{tags:W(G),categories:W(K)}}async search(Y,Q={},X){let J=this.db.selectFrom("private_registry_item").select(["id","title","description","meta_json","server_json","tags","categories","is_public","is_unlisted"]).where("organization_id","=",Y).orderBy("created_at","desc");if(X?.publicOnly)J=J.where("is_public","=",1);if(!X?.includeUnlisted)J=J.where("is_unlisted","=",0);let G=await J.execute(),K=Q.query?.trim().toLowerCase(),W=WQ(Q.tags),Z=WQ(Q.categories),H=G.filter((M)=>{if(K){let w=Vl(M.server_json,{}),S=Vl(M.meta_json,{})?.["mcp.mesh"]?.short_description??"";if(![M.id,M.title,M.description??"",w.name??"",w.description??"",S].join(" ").toLowerCase().includes(K))return!1}if(W.length>0){let w=WQ(xB(M.tags));if(!W.every((P)=>w.includes(P)))return!1}if(Z.length>0){let w=WQ(xB(M.categories));if(!Z.every((P)=>w.includes(P)))return!1}return!0}),$=$l(Q.cursor)??0,V=Q.limit??20,B=H.slice($,$+V),U=$+V<H.length,z=U?Fl($+V):void 0;return{items:B.map((M)=>({id:M.id,title:M.title,tags:xB(M.tags),categories:xB(M.categories),is_public:M.is_public===1,is_unlisted:M.is_unlisted===1})),totalCount:H.length,hasMore:U,nextCursor:z}}deserialize(Y){let Q=Vl(Y.server_json,{}),X=Vl(Y.meta_json,{});return{id:Y.id,name:typeof Q.name==="string"?Q.name:void 0,title:Y.title,description:Y.description,_meta:X,server:Q,is_public:Y.is_public===1,is_unlisted:Y.is_unlisted===1,created_at:Y.created_at,updated_at:Y.updated_at,...Y.created_by?{created_by:Y.created_by}:{}}}}var KK1=()=>{};var Ul,GV4,zl,cG,HK1,WV4,K$,tL,mX,gB,FK1,lA0,$K1,dA0,VK1,pA0,qK1,cA0,eL,ZV4,nC,KV4,Dl,BK1,nA0,iA0,UK1,aA0,rA0,oA0,sA0,tA0,eA0,YP0,QP0,HV4,zK1,XP0,JP0,DK1,GP0;var v9=j(()=>{uX();k1();Ul=q.object({name:q.string(),title:q.string().optional(),description:q.string().optional(),version:q.string().optional(),websiteUrl:q.string().optional(),icons:q.array(q.object({src:q.string()})).optional(),remotes:q.array(q.object({type:q.string().optional(),url:q.string().optional(),name:q.string().optional(),title:q.string().optional(),description:q.string().optional()})).optional(),packages:q.array(q.object({identifier:q.string(),version:q.string().optional()})).optional(),repository:q.object({url:q.string().optional(),source:q.string().optional(),subfolder:q.string().optional()}).optional()}),GV4=q.object({name:q.string(),description:q.string().nullable().optional()}),zl=q.object({"mcp.mesh":q.object({verified:q.boolean().optional(),tags:q.array(q.string()).optional(),categories:q.array(q.string()).optional(),friendly_name:q.string().nullable().optional(),short_description:q.string().max(160).nullable().optional(),owner:q.string().nullable().optional(),readme:q.string().max(50000).nullable().optional(),readme_url:q.string().url().nullable().optional(),has_remote:q.boolean().optional(),has_oauth:q.boolean().optional(),tools:q.array(GV4).optional()}).optional()}).catchall(q.unknown()),cG=q.object({id:q.string(),name:q.string().optional(),title:q.string(),description:q.string().nullable().optional(),_meta:zl.optional(),server:Ul,is_public:q.boolean().optional(),created_at:q.string(),updated_at:q.string(),created_by:q.string().optional()}),HK1=q.object({id:q.string(),title:q.string(),description:q.string().nullable().optional(),_meta:zl.optional(),server:Ul,is_public:q.boolean().optional()}),WV4=q.object({title:q.string().optional(),description:q.string().nullable().optional(),_meta:zl.optional(),server:Ul.optional(),is_public:q.boolean().optional()}),K$=pG.extend({tags:q.array(q.string()).optional().describe("Filter by tags (AND semantics)"),categories:q.array(q.string()).optional().describe("Filter by categories (AND semantics)"),cursor:q.string().optional().describe("Pagination cursor")}).describe("List registry items with optional filtering and pagination."),tL=q.object({items:q.array(cG),totalCount:q.number(),hasMore:q.boolean().optional(),nextCursor:q.string().optional()}),mX=q.object({id:q.string().optional().describe("Registry item ID"),name:q.string().optional().describe("Registry item name (alias for id)")}).refine((Y)=>Y.id||Y.name,{message:"At least one of 'id' or 'name' is required"}).describe("Get a registry item by ID or name."),gB=q.object({item:cG.nullable()}),FK1=q.object({data:HK1}),lA0=q.object({item:cG}),$K1=q.object({items:q.array(HK1).min(1)}),dA0=q.object({created:q.number(),errors:q.array(q.object({id:q.string(),error:q.string()}))}),VK1=q.object({id:q.string(),data:WV4}),pA0=q.object({item:cG}),qK1=q.object({id:q.string()}),cA0=q.object({item:cG}),eL=q.object({tags:q.array(q.object({value:q.string(),count:q.number()})),categories:q.array(q.object({value:q.string(),count:q.number()}))}),ZV4=q.enum(["description","short_description","tags","categories","readme"]),nC=q.object({query:q.string().optional().describe("Free-text search across id, title, description, server name"),tags:q.array(q.string()).optional().describe("Filter by tags (AND)"),categories:q.array(q.string()).optional().describe("Filter by categories (AND)"),limit:q.number().int().min(1).max(100).optional().describe("Max results (default 20)"),cursor:q.string().optional().describe("Pagination cursor")}).describe("Lightweight search returning minimal fields (id, title, tags, categories, is_public)."),KV4=q.object({id:q.string(),title:q.string(),tags:q.array(q.string()),categories:q.array(q.string()),is_public:q.boolean()}),Dl=q.object({items:q.array(KV4),totalCount:q.number(),hasMore:q.boolean().optional(),nextCursor:q.string().optional()}),BK1=q.object({type:ZV4.describe("Which content to generate"),llmConnectionId:q.string().describe("Connection ID of a language model"),modelId:q.string().describe("Model ID to use"),context:q.object({name:q.string().optional(),provider:q.string().optional(),url:q.string().optional(),owner:q.string().optional(),repositoryUrl:q.string().optional(),description:q.string().optional(),shortDescription:q.string().optional(),tags:q.array(q.string()).optional(),categories:q.array(q.string()).optional(),availableTags:q.array(q.string()).optional(),availableCategories:q.array(q.string()).optional(),tools:q.array(q.object({name:q.string(),description:q.string().nullable().optional()})).optional()})}),nA0=q.object({result:q.string().optional(),items:q.array(q.string()).optional()}),iA0=q.enum(["pending","approved","rejected"]),UK1=q.object({id:q.string(),organization_id:q.string(),requested_id:q.string().nullable().optional(),status:iA0,title:q.string(),description:q.string().nullable().optional(),_meta:zl.optional(),server:Ul,requester_name:q.string().nullable().optional(),requester_email:q.string().nullable().optional(),reviewer_notes:q.string().nullable().optional(),created_at:q.string(),updated_at:q.string()}),aA0=q.object({status:iA0.optional(),limit:q.number().int().min(1).max(200).optional(),offset:q.number().int().min(0).optional(),sortBy:q.enum(["created_at","title"]).optional(),sortDirection:q.enum(["asc","desc"]).optional()}),rA0=q.object({items:q.array(UK1),totalCount:q.number()}),oA0=q.object({id:q.string(),status:q.enum(["approved","rejected"]),reviewerNotes:q.string().nullable().optional()}),sA0=q.object({item:UK1}),tA0=q.object({pending:q.number()}),eA0=q.object({id:q.string()}),YP0=q.object({item:UK1.nullable()}),QP0=q.object({data:HK1,requester:q.object({name:q.string().optional(),email:q.string().email().optional()}).optional()}),HV4=q.object({id:q.string(),name:q.string(),prefix:q.string(),createdAt:q.string()}),zK1=q.object({name:q.string().min(1).max(64).describe("A descriptive name for this key")}),XP0=q.object({id:q.string(),name:q.string(),prefix:q.string(),key:q.string().describe("The full API key \u2014 shown only once!"),createdAt:q.string()}),JP0=q.object({items:q.array(HV4)}),DK1=q.object({keyId:q.string()}),GP0=q.object({success:q.boolean(),keyId:q.string()})});function FV4(Y,Q){let X=P3({id:"COLLECTION_REGISTRY_APP_LIST",description:"List public registry items",inputSchema:K$,outputSchema:tL,execute:async({context:Z})=>{return await Y.listPublic(Q,{limit:Z.limit,offset:Z.offset,cursor:Z.cursor,tags:Z.tags,categories:Z.categories,where:Z.where})}}),J=P3({id:"COLLECTION_REGISTRY_APP_GET",description:"Get a public registry item by ID or name",inputSchema:mX,outputSchema:gB,execute:async({context:Z})=>{let H=Z.id??Z.name;if(!H)return{item:null};let F=await Y.findByIdOrName(Q,H);if(F&&F.is_public)return{item:F};return{item:null}}}),G=P3({id:"COLLECTION_REGISTRY_APP_VERSIONS",description:"Get available versions of a public registry item",inputSchema:mX,outputSchema:q.object({versions:q.array(gB.shape.item)}),execute:async({context:Z})=>{let H=Z.id??Z.name;if(!H)return{versions:[]};let F=await Y.findByIdOrName(Q,H);if(F&&F.is_public)return{versions:[F]};return{versions:[]}}}),K=P3({id:"COLLECTION_REGISTRY_APP_SEARCH",description:"Search public registry items returning minimal data (id, title, tags, categories, is_public). Use this instead of LIST when you need to find items efficiently without loading full details.",inputSchema:nC,outputSchema:Dl,execute:async({context:Z})=>{return await Y.search(Q,Z,{publicOnly:!0})}}),W=P3({id:"COLLECTION_REGISTRY_APP_FILTERS",description:"Get available tags and categories for public registry items",inputSchema:q.object({}),outputSchema:eL,execute:async()=>{return await Y.getFilters(Q,{publicOnly:!0})}});return[X,K,J,G,W]}function OK1(Y,Q){let X=Q.db,J=new cC(X);Y.all("/org/:orgSlug/registry/*",async(G)=>{let K=G.req.param("orgSlug");console.log(`[Public Registry MCP] Request for org slug: ${K}, path: ${G.req.path}`);let W=await X.selectFrom("organization").select(["id","slug","name"]).where("slug","=",K).executeTakeFirst();if(console.log("[Public Registry MCP] Found org:",W),!W)return console.log(`[Public Registry MCP] Organization not found: ${K}`),G.json({error:"Organization not found"},404);let Z=FV4(J,W.id),H=uA0({tools:()=>Z}),F=new URL(G.req.url),$=G.req.path.replace(`/org/${K}/registry`,""),V=new URL($||"/",F.origin);F.searchParams.forEach((z,O)=>{V.searchParams.set(O,z)}),console.log(`[Public Registry MCP] Rewriting ${F.pathname} to ${V.pathname}`);let B=new Request(V.toString(),{method:G.req.method,headers:G.req.raw.headers,body:G.req.method!=="GET"&&G.req.method!=="HEAD"?G.req.raw.body:void 0}),U={organizationId:W.id,db:X,MESH_REQUEST_CONTEXT:{},MESH_APP_DEPLOYMENT_ID:"public-registry",IS_LOCAL:!1};return await H.fetch(B,U,G)})}var WP0=j(()=>{mA0();Hl();k1();KK1();v9()});import{randomUUID as $V4}from"crypto";function ZP0(Y,Q){if(!Y)return Q;try{return JSON.parse(Y)}catch{return Q}}class iC{db;constructor(Y){this.db=Y}async createOrUpdate(Y){let Q=new Date().toISOString(),X=await this.findPendingByRequestedId(Y.organization_id,Y.requested_id);if(X){let W={title:Y.title,description:Y.description??null,server_json:JSON.stringify(Y.server),meta_json:Y._meta?JSON.stringify(Y._meta):null,requester_name:Y.requester_name??null,requester_email:Y.requester_email??null,updated_at:Q};await this.db.updateTable("private_registry_publish_request").set(W).where("organization_id","=",Y.organization_id).where("id","=",X.id).execute();let Z=await this.findById(Y.organization_id,X.id);if(!Z)throw Error("Failed to update publish request");return Z}let J=$V4(),G={id:J,organization_id:Y.organization_id,requested_id:Y.requested_id,status:"pending",title:Y.title,description:Y.description??null,server_json:JSON.stringify(Y.server),meta_json:Y._meta?JSON.stringify(Y._meta):null,requester_name:Y.requester_name??null,requester_email:Y.requester_email??null,reviewer_notes:null,created_at:Q,updated_at:Q};await this.db.insertInto("private_registry_publish_request").values(G).execute();let K=await this.findById(Y.organization_id,J);if(!K)throw Error("Failed to create publish request");return K}async findPendingByRequestedId(Y,Q){let X=await this.db.selectFrom("private_registry_publish_request").selectAll().where("organization_id","=",Y).where("requested_id","=",Q).where("status","=","pending").executeTakeFirst();return X?this.deserialize(X):null}async findById(Y,Q){let X=await this.db.selectFrom("private_registry_publish_request").selectAll().where("organization_id","=",Y).where("id","=",Q).executeTakeFirst();return X?this.deserialize(X):null}async list(Y,Q={}){let X=this.db.selectFrom("private_registry_publish_request").selectAll().where("organization_id","=",Y),J=this.db.selectFrom("private_registry_publish_request").select((F)=>F.fn.countAll().as("count")).where("organization_id","=",Y);if(Q.status)X=X.where("status","=",Q.status),J=J.where("status","=",Q.status);let G=await J.executeTakeFirst(),K=Number(G?.count??0),W=Q.sortBy??"created_at",Z=Q.sortDirection??"desc";if(W==="title")X=X.orderBy("title",Z);else X=X.orderBy("created_at",Z);return{items:(await X.limit(Q.limit??24).offset(Q.offset??0).execute()).map((F)=>this.deserialize(F)),totalCount:K}}async updateStatus(Y,Q,X,J){let G={status:X,updated_at:new Date().toISOString(),reviewer_notes:J??null};await this.db.updateTable("private_registry_publish_request").set(G).where("organization_id","=",Y).where("id","=",Q).execute();let K=await this.findById(Y,Q);if(!K)throw Error(`Publish request not found: ${Q}`);return K}async countPending(Y){let Q=await this.db.selectFrom("private_registry_publish_request").select((X)=>X.fn.countAll().as("count")).where("organization_id","=",Y).where("status","=","pending").executeTakeFirst();return Number(Q?.count??0)}async delete(Y,Q){let X=await this.findById(Y,Q);if(!X)return null;return await this.db.deleteFrom("private_registry_publish_request").where("organization_id","=",Y).where("id","=",Q).execute(),X}deserialize(Y){return{id:Y.id,organization_id:Y.organization_id,requested_id:Y.requested_id??null,status:Y.status,title:Y.title,description:Y.description,_meta:ZP0(Y.meta_json,{}),server:ZP0(Y.server_json,{name:""}),requester_name:Y.requester_name,requester_email:Y.requester_email,reviewer_notes:Y.reviewer_notes,created_at:Y.created_at,updated_at:Y.updated_at}}}var LK1=()=>{};import{randomUUID as VV4}from"crypto";async function KP0(Y){let X=new TextEncoder().encode(Y),J=await crypto.subtle.digest("SHA-256",X);return Array.from(new Uint8Array(J)).map((K)=>K.toString(16).padStart(2,"0")).join("")}function qV4(){let Y=new Uint8Array(32);return crypto.getRandomValues(Y),`prk_${Array.from(Y).map((X)=>X.toString(16).padStart(2,"0")).join("")}`}class aC{db;constructor(Y){this.db=Y}async generate(Y,Q){let X=VV4(),J=qV4(),G=await KP0(J),K=J.slice(0,12),W=new Date().toISOString();return await this.db.insertInto("private_registry_publish_api_key").values({id:X,organization_id:Y,name:Q,key_hash:G,prefix:K,created_at:W}).execute(),{entity:{id:X,organization_id:Y,name:Q,prefix:K,created_at:W},key:J}}async list(Y){return await this.db.selectFrom("private_registry_publish_api_key").select(["id","organization_id","name","prefix","created_at"]).where("organization_id","=",Y).orderBy("created_at","desc").execute()}async revoke(Y,Q){return(await this.db.deleteFrom("private_registry_publish_api_key").where("organization_id","=",Y).where("id","=",Q).execute()).length>0}async validate(Y,Q){let X=await KP0(Q),J=await this.db.selectFrom("private_registry_publish_api_key").select(["id"]).where("organization_id","=",Y).where("key_hash","=",X).executeTakeFirst();return Boolean(J)}async hasKeys(Y){let Q=await this.db.selectFrom("private_registry_publish_api_key").select((X)=>X.fn.countAll().as("count")).where("organization_id","=",Y).executeTakeFirst();return Number(Q?.count??0)>0}}var NK1=()=>{};import{sql as BV4}from"kysely";import{randomUUID as HP0}from"crypto";async function zV4(Y){let Q=new Date().toISOString(),X=HP0(),J=u9.SELF(Y.organizationId),G="registry.publish_request.created",K={requestId:Y.request.id,requestedId:Y.request.requested_id,title:Y.request.title,status:Y.request.status,createdAt:Y.request.created_at,requester:{name:Y.request.requester_name,email:Y.request.requester_email}};await Y.db.insertInto("events").values({id:X,organization_id:Y.organizationId,type:"registry.publish_request.created",source:J,specversion:"1.0",subject:Y.request.id,time:Q,datacontenttype:"application/json",dataschema:null,data:JSON.stringify(K),cron:null,status:"pending",attempts:0,last_error:null,next_retry_at:null,created_at:Q,updated_at:Q}).execute();let W=await Y.db.selectFrom("event_subscriptions").select(["id"]).where("organization_id","=",Y.organizationId).where("enabled","=",1).where("event_type","=","registry.publish_request.created").where((Z)=>Z.or([Z("publisher","is",null),Z("publisher","=",J)])).execute();if(W.length>0)await Y.db.insertInto("event_deliveries").values(W.map((Z)=>({id:HP0(),event_id:X,subscription_id:Z.id,status:"pending",attempts:0,last_error:null,delivered_at:null,next_retry_at:null,created_at:Q}))).execute();try{await BV4`SELECT pg_notify('mesh_events', ${X})`.execute(Y.db)}catch{}}async function DV4(Y,Q){let J=(await Y.selectFrom("organization").select(["id"]).where("id","=",Q).execute())[0];if(J?.id)return J.id;return(await Y.selectFrom("organization").select(["id"]).where("slug","=",Q).execute())[0]?.id??null}async function OV4(Y,Q){let X=await Y.selectFrom("project_plugin_configs").innerJoin("projects","projects.id","project_plugin_configs.project_id").select(["project_plugin_configs.settings as settings"]).where("projects.organization_id","=",Q).where("project_plugin_configs.plugin_id","=",vZ).execute();for(let J of X){let G=J.settings,K=typeof G==="string"?(()=>{try{return JSON.parse(G)}catch{return{}}})():G??{};if(K.acceptPublishRequests===!0){let W=K.rateLimitWindow==="minute"?"minute":"hour",Z=K.rateLimitMax,H=typeof Z==="number"&&Number.isFinite(Z)&&Z>=1?Math.floor(Z):$P0;return{acceptPublishRequests:!0,requireApiToken:K.requireApiToken===!0,rateLimitEnabled:K.rateLimitEnabled===void 0?FP0:K.rateLimitEnabled===!0,rateLimitWindow:W,rateLimitMax:H}}}return{acceptPublishRequests:!1,requireApiToken:!1,rateLimitEnabled:FP0,rateLimitWindow:UV4,rateLimitMax:$P0}}async function LV4(Y,Q,X){let J=X==="minute"?60000:3600000,G=new Date(Date.now()-J).toISOString(),K=await Y.selectFrom("private_registry_publish_request").select((W)=>W.fn.countAll().as("count")).where("organization_id","=",Q).where("created_at",">=",G).executeTakeFirst();return Number(K?.count??0)}async function NV4(Y,Q,X,J){let G=await Y.selectFrom("private_registry_item").select(["id","title"]).where("organization_id","=",Q).where((K)=>K.or([K("id","=",X),K("title","=",J)])).executeTakeFirst();return G?{id:String(G.id),title:String(G.title)}:null}function MK1(Y,Q){let{db:X,db:J}=Q,G=new iC(J),K=new aC(J);Y.post("/org/:orgRef/registry/publish-request",async(W)=>{let Z=W.req.param("orgRef"),H=await DV4(X,Z);if(!H)return W.json({error:"Organization not found"},404);let F=await OV4(X,H);if(!F.acceptPublishRequests)return W.json({error:"Publish requests are not enabled for this registry."},403);if(F.requireApiToken){let z=W.req.header("Authorization"),O=z?.startsWith("Bearer ")?z.slice(7).trim():null;if(!O)return W.json({error:"API key required. Use Authorization: Bearer <key>"},401);if(!await K.validate(H,O))return W.json({error:"Invalid API key"},401)}if(F.rateLimitEnabled){if(await LV4(J,H,F.rateLimitWindow)>=F.rateLimitMax)return W.json({error:"Too many publish requests. Please try again later.",retryAfterSeconds:F.rateLimitWindow==="minute"?60:3600},429)}let $;try{$=await W.req.json()}catch{return W.json({error:"Invalid JSON body"},400)}let V=QP0.safeParse($);if(!V.success)return W.json({error:"Invalid publish request payload",details:q.treeifyError(V.error)},400);let B=await NV4(J,H,V.data.data.id,V.data.data.title);if(B)return W.json({error:"A registry item with the same id or title already exists. Please use a different name/id.",conflict:B},409);let U=await G.createOrUpdate({organization_id:H,requested_id:V.data.data.id,title:V.data.data.title,description:V.data.data.description??null,_meta:V.data.data._meta,server:V.data.data.server,requester_name:V.data.requester?.name??null,requester_email:V.data.requester?.email??null});try{await zV4({db:X,organizationId:H,request:U})}catch(z){console.warn("[private-registry] failed to emit publish-request event:",z)}return W.json({id:U.id,requested_id:U.requested_id,status:U.status},201)})}var FP0=!0,UV4="hour",$P0=100;var VP0=j(()=>{DY();k1();yB();LK1();NK1();v9()});var qP0=j(()=>{WP0();VP0()});function BP0(Y){wK1=Y}function t0(){if(!wK1)throw Error(`Plugin storage not initialized. Make sure the "${vZ}" plugin is enabled.`);return wK1}async function MV4(Y){if(!Y.organization)throw Error("Organization context required");return await Y.access.check(),Y}function O6(Y,Q){return async(X,J)=>{let G=await MV4(J);return Q(X,G)}}function wV4(Y){if(!Y)return{};if(typeof Y==="string")try{return JSON.parse(Y)}catch{return{}}if(typeof Y==="object")return Y;return{}}async function rC(Y,Q){let J=(await Y.db.selectFrom("project_plugin_configs").innerJoin("projects","projects.id","project_plugin_configs.project_id").select(["project_plugin_configs.settings as settings"]).where("projects.organization_id","=",Q).where("project_plugin_configs.plugin_id","=",vZ).execute()).map((K)=>wV4(K.settings)),G={acceptPublishRequests:J.some((K)=>K.acceptPublishRequests===!0),requireApiToken:J.some((K)=>K.requireApiToken===!0),storePrivateOnly:J.some((K)=>K.storePrivateOnly===!0)};if(G.acceptPublishRequests||G.requireApiToken||G.storePrivateOnly)return G;for(let K of J)if(Object.keys(K).length>0)return K;return{}}var wK1=null;var J8=j(()=>{yB()});import{randomUUID as UP0}from"crypto";function zP0(Y,Q){if(!Y)return Q;try{return JSON.parse(Y)}catch{return Q}}class AK1{db;constructor(Y){this.db=Y}async create(Y){let Q=UP0(),X=new Date().toISOString(),J={id:Q,organization_id:Y.organization_id,status:Y.status??"pending",config_snapshot:Y.config_snapshot?JSON.stringify(Y.config_snapshot):null,total_items:Y.total_items??0,tested_items:0,passed_items:0,failed_items:0,skipped_items:0,current_item_id:null,started_at:Y.started_at??null,finished_at:null,created_at:X};await this.db.insertInto("private_registry_monitor_run").values(J).execute();let G=await this.findById(Y.organization_id,Q);if(!G)throw Error(`Failed to create monitor run ${Q}`);return G}async findById(Y,Q){let X=await this.db.selectFrom("private_registry_monitor_run").selectAll().where("organization_id","=",Y).where("id","=",Q).executeTakeFirst();return X?this.deserializeRun(X):null}async list(Y,Q={}){let X=this.db.selectFrom("private_registry_monitor_run").selectAll().where("organization_id","=",Y),J=this.db.selectFrom("private_registry_monitor_run").select((Z)=>Z.fn.countAll().as("count")).where("organization_id","=",Y);if(Q.status)X=X.where("status","=",Q.status),J=J.where("status","=",Q.status);let G=await J.executeTakeFirst(),K=Number(G?.count??0);return{items:(await X.orderBy("created_at","desc").limit(Q.limit??24).offset(Q.offset??0).execute()).map((Z)=>this.deserializeRun(Z)),totalCount:K}}async update(Y,Q,X){let J={};if(X.total_items!==void 0)J.total_items=X.total_items;if(X.status!==void 0)J.status=X.status;if(X.tested_items!==void 0)J.tested_items=X.tested_items;if(X.passed_items!==void 0)J.passed_items=X.passed_items;if(X.failed_items!==void 0)J.failed_items=X.failed_items;if(X.skipped_items!==void 0)J.skipped_items=X.skipped_items;if(X.current_item_id!==void 0)J.current_item_id=X.current_item_id;if(X.started_at!==void 0)J.started_at=X.started_at;if(X.finished_at!==void 0)J.finished_at=X.finished_at;await this.db.updateTable("private_registry_monitor_run").set(J).where("organization_id","=",Y).where("id","=",Q).execute();let G=await this.findById(Y,Q);if(!G)throw Error(`Monitor run not found: ${Q}`);return G}deserializeRun(Y){return{id:Y.id,organization_id:Y.organization_id,status:Y.status,config_snapshot:zP0(Y.config_snapshot,null),total_items:Number(Y.total_items??0),tested_items:Number(Y.tested_items??0),passed_items:Number(Y.passed_items??0),failed_items:Number(Y.failed_items??0),skipped_items:Number(Y.skipped_items??0),current_item_id:Y.current_item_id,started_at:Y.started_at,finished_at:Y.finished_at,created_at:Y.created_at}}}class PK1{db;constructor(Y){this.db=Y}async create(Y){let Q=UP0(),X=new Date().toISOString(),J={id:Q,run_id:Y.run_id,organization_id:Y.organization_id,item_id:Y.item_id,item_title:Y.item_title,status:Y.status,error_message:Y.error_message??null,connection_ok:Y.connection_ok?1:0,tools_listed:Y.tools_listed?1:0,tool_results:Y.tool_results?JSON.stringify(Y.tool_results):null,agent_summary:Y.agent_summary??null,duration_ms:Y.duration_ms??0,action_taken:Y.action_taken??"none",tested_at:X};await this.db.insertInto("private_registry_monitor_result").values(J).execute();let G=await this.findById(Y.organization_id,Q);if(!G)throw Error("Failed to create test result");return G}async findById(Y,Q){let X=await this.db.selectFrom("private_registry_monitor_result").selectAll().where("organization_id","=",Y).where("id","=",Q).executeTakeFirst();return X?this.deserialize(X):null}async listByRun(Y,Q,X={}){let J=this.db.selectFrom("private_registry_monitor_result").selectAll().where("organization_id","=",Y).where("run_id","=",Q),G=this.db.selectFrom("private_registry_monitor_result").select((H)=>H.fn.countAll().as("count")).where("organization_id","=",Y).where("run_id","=",Q);if(X.status)J=J.where("status","=",X.status),G=G.where("status","=",X.status);let K=await G.executeTakeFirst(),W=Number(K?.count??0);return{items:(await J.orderBy("tested_at","desc").limit(X.limit??50).offset(X.offset??0).execute()).map((H)=>this.deserialize(H)),totalCount:W}}async update(Y,Q,X){let J={};if(X.status!==void 0)J.status=X.status;if(X.error_message!==void 0)J.error_message=X.error_message;if(X.connection_ok!==void 0)J.connection_ok=X.connection_ok?1:0;if(X.tools_listed!==void 0)J.tools_listed=X.tools_listed?1:0;if(X.tool_results!==void 0)J.tool_results=JSON.stringify(X.tool_results);if(X.agent_summary!==void 0)J.agent_summary=X.agent_summary;if(X.duration_ms!==void 0)J.duration_ms=X.duration_ms;if(X.action_taken!==void 0)J.action_taken=X.action_taken;await this.db.updateTable("private_registry_monitor_result").set(J).where("organization_id","=",Y).where("id","=",Q).execute();let G=await this.findById(Y,Q);if(!G)throw Error(`Monitor result not found: ${Q}`);return G}deserialize(Y){return{id:Y.id,run_id:Y.run_id,organization_id:Y.organization_id,item_id:Y.item_id,item_title:Y.item_title,status:Y.status,error_message:Y.error_message,connection_ok:Y.connection_ok===1,tools_listed:Y.tools_listed===1,tool_results:zP0(Y.tool_results,[]),agent_summary:Y.agent_summary,duration_ms:Number(Y.duration_ms??0),action_taken:Y.action_taken,tested_at:Y.tested_at}}}var DP0=()=>{};import{randomUUID as AV4}from"crypto";class EK1{db;constructor(Y){this.db=Y}async findByItemId(Y,Q){let X=await this.db.selectFrom("private_registry_monitor_connection").selectAll().where("organization_id","=",Y).where("item_id","=",Q).executeTakeFirst();return X?this.deserialize(X):null}async list(Y){return(await this.db.selectFrom("private_registry_monitor_connection").selectAll().where("organization_id","=",Y).orderBy("updated_at","desc").execute()).map((X)=>this.deserialize(X))}async findByConnectionId(Y,Q){let X=await this.db.selectFrom("private_registry_monitor_connection").selectAll().where("organization_id","=",Y).where("connection_id","=",Q).executeTakeFirst();return X?this.deserialize(X):null}async upsert(Y){let Q=await this.findByItemId(Y.organization_id,Y.item_id),X=new Date().toISOString();if(!Q){let G={id:AV4(),organization_id:Y.organization_id,item_id:Y.item_id,connection_id:Y.connection_id,auth_status:Y.auth_status??"none",created_at:X,updated_at:X};await this.db.insertInto("private_registry_monitor_connection").values(G).execute()}else{let G={connection_id:Y.connection_id,auth_status:Y.auth_status??Q.auth_status,updated_at:X};await this.db.updateTable("private_registry_monitor_connection").set(G).where("organization_id","=",Y.organization_id).where("item_id","=",Y.item_id).execute()}let J=await this.findByItemId(Y.organization_id,Y.item_id);if(!J)throw Error("Failed to save monitor connection");return J}async updateAuthStatus(Y,Q,X){return await this.db.updateTable("private_registry_monitor_connection").set({auth_status:X,updated_at:new Date().toISOString()}).where("organization_id","=",Y).where("item_id","=",Q).execute(),this.findByItemId(Y,Q)}deserialize(Y){return{id:Y.id,organization_id:Y.organization_id,item_id:Y.item_id,connection_id:Y.connection_id,auth_status:Y.auth_status,created_at:Y.created_at,updated_at:Y.updated_at}}}var OP0=()=>{};function LP0(Y){let Q=Y.db,X={items:new cC(Q),publishRequests:new iC(Q),publishApiKeys:new aC(Q),monitorRuns:new AK1(Q),monitorResults:new PK1(Q),monitorConnections:new EK1(Q)};return BP0(X),X}var NP0=j(()=>{J8();KK1();LK1();NK1();DP0();OP0()});var MP0;var wP0=j(()=>{v9();J8();MP0={name:"REGISTRY_ITEM_BULK_CREATE",description:"Create many private registry items at once",inputSchema:$K1,outputSchema:dA0,handler:O6($K1,async(Y,Q)=>{let X=t0(),J=[],G=0;for(let K of Y.items)try{await X.items.create({...K,organization_id:Q.organization.id,created_by:Q.auth.user?.id??null}),G+=1}catch(W){J.push({id:K.id,error:W instanceof Error?W.message:"Unknown error"})}return{created:G,errors:J}})}});function PV4(Y){return Array.from(new Set(Y.map((Q)=>Q.trim().toLowerCase()).filter((Q)=>Q.length>0)))}function EV4(Y){let X=Y.structuredContent?.content?.filter((J)=>J.type==="text"&&typeof J.text==="string").map((J)=>J.text??"").join(`
1215
1215
  `).trim();if(X)return X;return Y.content?.filter((J)=>J.type==="text"&&typeof J.text==="string").map((J)=>J.text??"").join(`
1216
1216
  `).trim()??""}function TV4(Y){let Q=Y.context,X=JSON.stringify({name:Q.name??"",provider:Q.provider??"",url:Q.url??"",owner:Q.owner??"",repositoryUrl:Q.repositoryUrl??"",description:Q.description??"",shortDescription:Q.shortDescription??"",tags:Q.tags??[],categories:Q.categories??[],availableTags:Q.availableTags??[],availableCategories:Q.availableCategories??[],tools:Q.tools??[]},null,2);if(Y.type==="description")return{system:"You are an assistant that writes concise MCP registry descriptions.",user:`Use the context below to write a clear English description for this MCP server.
1217
1217
  Rules: