@decocms/mesh 2.138.2 → 2.138.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.
- package/README.md +0 -1
- package/dist/client/assets/AlertCircle-CQO_R9vE.js +1 -0
- package/dist/client/assets/AlignLeft-B3ZpXrmC.js +1 -0
- package/dist/client/assets/ArrowDown-BD49oKXO.js +1 -0
- package/dist/client/assets/ArrowLeft-B7S65Iaz.js +1 -0
- package/dist/client/assets/ArrowUp-RjRtEOWc.js +1 -0
- package/dist/client/assets/Check-D9lXJsaA.js +1 -0
- package/dist/client/assets/CheckCircle-fq-dSxyi.js +1 -0
- package/dist/client/assets/CheckDone01-GzVyd5lu.js +1 -0
- package/dist/client/assets/CheckVerified02-Dytxsscn.js +1 -0
- package/dist/client/assets/ChevronDown-DBgIs680.js +1 -0
- package/dist/client/assets/ChevronLeft-BrQZluH0.js +1 -0
- package/dist/client/assets/ChevronRight-HoYy9XH_.js +1 -0
- package/dist/client/assets/Clock-CeWG-KL9.js +1 -0
- package/dist/client/assets/Code01-EFUGPHJu.js +1 -0
- package/dist/client/assets/Container-CdIx_KXj.js +1 -0
- package/dist/client/assets/Copy01-CHeojQBg.js +1 -0
- package/dist/client/assets/Dataflow03-Bxum-Bb7.js +1 -0
- package/dist/client/assets/DotsHorizontal-D_RovhTr.js +1 -0
- package/dist/client/assets/DotsVertical-B3hiyktf.js +1 -0
- package/dist/client/assets/Download01-BorK_KK-.js +1 -0
- package/dist/client/assets/Edit01-B4_LyEeJ.js +1 -0
- package/dist/client/assets/Edit05-C3hsIW7O.js +1 -0
- package/dist/client/assets/Eye-D2i76mC_.js +1 -0
- package/dist/client/assets/File02-VQIYRhnN.js +1 -0
- package/dist/client/assets/File06-C1LiF1XF.js +1 -0
- package/dist/client/assets/FilterLines-CcV0SdfT.js +1 -0
- package/dist/client/assets/Globe01-CZ63rFAU.js +1 -0
- package/dist/client/assets/Globe02-PTxBoQyr.js +1 -0
- package/dist/client/assets/Grid01-DKAtqSuT.js +1 -0
- package/dist/client/assets/Hash02-BiImHcjf.js +1 -0
- package/dist/client/assets/Home02-C0nBY06F.js +1 -0
- package/dist/client/assets/Image01-DkzH-6YA.js +1 -0
- package/dist/client/assets/Inbox01-CfS25sbO.js +1 -0
- package/dist/client/assets/InfoCircle-PnMEZR9g.js +1 -0
- package/dist/client/assets/Key01-BdN90D9V.js +1 -0
- package/dist/client/assets/LayersTwo01-D3taP6E2.js +1 -0
- package/dist/client/assets/LayoutLeft-080jvtRz.js +1 -0
- package/dist/client/assets/Link01-DcVQ0cL6.js +1 -0
- package/dist/client/assets/LinkExternal01-9e-qTNcr.js +1 -0
- package/dist/client/assets/List-DP7Lu6y3.js +1 -0
- package/dist/client/assets/Loading01-C_B9sYFJ.js +1 -0
- package/dist/client/assets/Lock01-trLUsxFp.js +1 -0
- package/dist/client/assets/Play-Bi_oRVoW.js +1 -0
- package/dist/client/assets/Plus-BFLqqDLD.js +1 -0
- package/dist/client/assets/RefreshCcw01-CY1Eh5TG.js +1 -0
- package/dist/client/assets/Save01-ClEKdoLL.js +1 -0
- package/dist/client/assets/SearchMd-B4t0SNdI.js +1 -0
- package/dist/client/assets/Settings01-KuJluZge.js +1 -0
- package/dist/client/assets/Shield01-qBDq3Afo.js +1 -0
- package/dist/client/assets/Terminal-BC8XgC3o.js +1 -0
- package/dist/client/assets/Trash01-DmvjTka0.js +1 -0
- package/dist/client/assets/Upload01-fBYLyEfw.js +1 -0
- package/dist/client/assets/Users03-ClPnePpL.js +1 -0
- package/dist/client/assets/X-D4c41tzD.js +1 -0
- package/dist/client/assets/XCircle-CnhxUqTa.js +1 -0
- package/dist/client/assets/XClose-EVD0GFXh.js +1 -0
- package/dist/client/assets/Zap-BgBzY74s.js +1 -0
- package/dist/client/assets/agent-connections-preview-DvzaMtqM.js +1 -0
- package/dist/client/assets/agent-detail-BSS-9rms.js +2 -0
- package/dist/client/assets/agents-8hQYd9JV.js +1 -0
- package/dist/client/assets/alert-dialog-DEWpTmYD.js +7 -0
- package/dist/client/assets/auth-catchall-DHHP-rgJ.js +1 -0
- package/dist/client/assets/avatar-DT_LZoIt.js +1 -0
- package/dist/client/assets/badge-CsGZTLNs.js +1 -0
- package/dist/client/assets/binder-CDcp00Mg.js +1 -0
- package/dist/client/assets/breadcrumb-BEW89iCW.js +1 -0
- package/dist/client/assets/card-DZ9VpS4B.js +1 -0
- package/dist/client/assets/chart-D7z8dhYy.js +15 -0
- package/dist/client/assets/checkbox-DrpSReC9.js +1 -0
- package/dist/client/assets/circle-alert-QAWFjHbk.js +1 -0
- package/dist/client/assets/collapsible-DYC2Ob69.js +23 -0
- package/dist/client/assets/collection-detail-54GVb2vV.js +26 -0
- package/dist/client/assets/collection-display-button-HSLRW3IB.js +1 -0
- package/dist/client/assets/collection-search-GBhiWn69.js +1 -0
- package/dist/client/assets/collection-tab-CXrwuSXk.js +1 -0
- package/dist/client/assets/collection-table-wrapper-C0RxeQt7.js +1 -0
- package/dist/client/assets/collection-tabs-BcVqwzIu.js +1 -0
- package/dist/client/assets/command-uztNMDn0.js +1 -0
- package/dist/client/assets/connect-DMdWhBVj.js +1 -0
- package/dist/client/assets/connection-card-Cbe3U4w5.js +1 -0
- package/dist/client/assets/connection-detail-CJD-eU2I.js +1 -0
- package/dist/client/assets/connection-status-DXEJC0gU.js +1 -0
- package/dist/client/assets/connections-BirGHcf8.js +1 -0
- package/dist/client/assets/constants-Bl1c6iwZ.js +1 -0
- package/dist/client/assets/constants-CA3youed.js +1 -0
- package/dist/client/assets/create-organization-dialog-DIygt-aQ.js +1 -0
- package/dist/client/assets/create-project-dialog-mRUoz246.js +1 -0
- package/dist/client/assets/danger-CO1GApwg.js +1 -0
- package/dist/client/assets/danger-zone-Bya1y6en.js +1 -0
- package/dist/client/assets/decopilot-events-DAHzmsZY.js +1 -0
- package/dist/client/assets/dependencies-B5Z01sf8.js +1 -0
- package/dist/client/assets/dialog-DYuk8g9p.js +1 -0
- package/dist/client/assets/dropdown-menu-CNVmkBN0.js +1 -0
- package/dist/client/assets/dynamic-plugin-layout-CqhxGK_6.js +1 -0
- package/dist/client/assets/editable-task-title-E39YRfNZ.js +16 -0
- package/dist/client/assets/empty-state-D_Oft8oe.js +1 -0
- package/dist/client/assets/env-vars-editor-5LPY76ro.js +1 -0
- package/dist/client/assets/extract-connection-data-Bv2A4Jc0.js +1 -0
- package/dist/client/assets/file-browser-DX3fwVnD.js +2 -0
- package/dist/client/assets/form-CLXoj61-.js +1 -0
- package/dist/client/assets/general-BW4JiPTh.js +1 -0
- package/dist/client/assets/grid-view-BbfwQ7aH.js +1 -0
- package/dist/client/assets/home-FqVxfBss.js +1 -0
- package/dist/client/assets/icon-picker-DSsSkrZ5.js +1 -0
- package/dist/client/assets/index-BDT2ryUs.js +184 -0
- package/dist/client/assets/index-BJYy-P9g.js +1 -0
- package/dist/client/assets/index-BN_UM35L.js +218 -0
- package/dist/client/assets/index-BtJmnUoR.js +1 -0
- package/dist/client/assets/index-CfeSJRvb.js +1 -0
- package/dist/client/assets/index-Cmmt0a8N.js +25 -0
- package/dist/client/assets/index-CwvbBxmT.js +1 -0
- package/dist/client/assets/index-CxH8YHpa.js +1 -0
- package/dist/client/assets/index-jF6bjBE9.js +1 -0
- package/dist/client/assets/infiniteQueryObserver-x6HxWZdS.js +1 -0
- package/dist/client/assets/input-BtmUd_cM.js +1 -0
- package/dist/client/assets/integration-icon-DSveuBUM.js +1 -0
- package/dist/client/assets/label-CPUHBmuE.js +1 -0
- package/dist/client/assets/layout-KThPUSk-.js +1 -0
- package/dist/client/assets/layout-hfuWpeC7.js +1 -0
- package/dist/client/assets/localstorage-keys-CKxXM1Zg.js +1 -0
- package/dist/client/assets/login-DCkjNBsc.js +1 -0
- package/dist/client/assets/markdown-BLOrH03b.js +29 -0
- package/dist/client/assets/mcp-app-renderer-DsMg9Ix6.js +11 -0
- package/dist/client/assets/mcp-server-card-z5TcwbAD.js +1 -0
- package/dist/client/assets/mcp-server-detail-D4DOHJTf.js +2 -0
- package/dist/client/assets/members-K6-MnLc7.js +3 -0
- package/dist/client/assets/monaco-editor-Cf1K_aK4.js +19 -0
- package/dist/client/assets/monitoring-B0wiGk7U.js +31 -0
- package/dist/client/assets/monitoring-dashboard-edit-MkYx6gQ3.js +1 -0
- package/dist/client/assets/monitoring-dashboard-view-DAdQAayh.js +4 -0
- package/dist/client/assets/oauth-callback-D9tlfOIh.js +1 -0
- package/dist/client/assets/page-B9GEP2y9.js +1 -0
- package/dist/client/assets/page-BmOqp3jS.js +1 -0
- package/dist/client/assets/plugin-empty-state-D50jcY51.js +1 -0
- package/dist/client/assets/plugin-empty-state-Wl0BaOAI.js +1 -0
- package/dist/client/assets/plugin-header-BaeglqBd.js +1 -0
- package/dist/client/assets/plugin-header-CtUhPsyi.js +1 -0
- package/dist/client/assets/plugins-C0PtM1mJ.js +1 -0
- package/dist/client/assets/popover-B7y_eXRW.js +1 -0
- package/dist/client/assets/project-app-view-Cl32ODW3.js +1 -0
- package/dist/client/assets/project-layout-BgjnD9HU.js +1 -0
- package/dist/client/assets/project-plugins-BsiHFfwz.js +1 -0
- package/dist/client/assets/projects-list-yTnoZDbh.js +1 -0
- package/dist/client/assets/readme-viewer-1DT7-yNw.js +1 -0
- package/dist/client/assets/registry-layout-7imIs8yX.js +5 -0
- package/dist/client/assets/registry-utils-BTG1UbXS.js +1 -0
- package/dist/client/assets/reports-layout-DdxKgPy1.js +3 -0
- package/dist/client/assets/reset-password-2PjcUSg5.js +1 -0
- package/dist/client/assets/resizable-DqBdbJmP.js +1 -0
- package/dist/client/assets/save-actions-JdGuanNV.js +1 -0
- package/dist/client/assets/scroll-area-Cz_Z57jl.js +1 -0
- package/dist/client/assets/select-CJ0WbWhw.js +1 -0
- package/dist/client/assets/shell-layout-gmw9lMGW.js +3 -0
- package/dist/client/assets/sidebar-settings-DuklQQSB.js +1 -0
- package/dist/client/assets/skeleton-09BWoyIU.js +1 -0
- package/dist/client/assets/spinner-CY-cGXkT.js +1 -0
- package/dist/client/assets/store-invite-DwnK72nj.js +1 -0
- package/dist/client/assets/switch-CyxUy1ed.js +1 -0
- package/dist/client/assets/table-D_KN1LIP.js +1 -0
- package/dist/client/assets/tabs-BzE_Dln2.js +1 -0
- package/dist/client/assets/tasks-GMlLmwIV.js +1 -0
- package/dist/client/assets/tasks-panel-ByPA8XQG.js +1 -0
- package/dist/client/assets/textarea-DiW4MEUS.js +1 -0
- package/dist/client/assets/time-range-picker-W4dVf5up.js +5 -0
- package/dist/client/assets/toggle-group-CKziXTyd.js +1 -0
- package/dist/client/assets/tools-list-BPgbcPAy.js +1 -0
- package/dist/client/assets/tooltip-DOx1-u0d.js +1 -0
- package/dist/client/assets/topbar-portal-CSqh_itS.js +1 -0
- package/dist/client/assets/types-BO448PQX.js +155 -0
- package/dist/client/assets/use-binding-Be9S_f5x.js +1 -0
- package/dist/client/assets/use-collections-PGZX-u3n.js +1 -0
- package/dist/client/assets/use-connection-DrWA1-SG.js +1 -0
- package/dist/client/assets/use-copy-D5vKlRFE.js +1 -0
- package/dist/client/assets/use-create-virtual-mcp-Bev1rxVf.js +1 -0
- package/dist/client/assets/use-install-from-registry-J3tNYDkc.js +1 -0
- package/dist/client/assets/use-list-state-aowpg3cY.js +1 -0
- package/dist/client/assets/use-llm-s5cDT0_W.js +1 -0
- package/dist/client/assets/use-mcp-resources-DJe1sYOy.js +1 -0
- package/dist/client/assets/use-mcp-tools-DhQR6fle.js +1 -0
- package/dist/client/assets/use-members-Cnoc5ZoX.js +1 -0
- package/dist/client/assets/use-mobile-lt0woG34.js +1 -0
- package/dist/client/assets/use-project-DI6XLcfJ.js +1 -0
- package/dist/client/assets/use-settings-modal-SbE3LoSf.js +1 -0
- package/dist/client/assets/use-view-mode-Bb4Qf0pL.js +1 -0
- package/dist/client/assets/use-virtual-mcp-Ba9XxHiK.js +1 -0
- package/dist/client/assets/useInfiniteQuery-BVWe13qD.js +1 -0
- package/dist/client/assets/useMutation-IYrVYrYf.js +1 -0
- package/dist/client/assets/useQuery-DIWx-da1.js +1 -0
- package/dist/client/assets/useSuspenseInfiniteQuery-nAgabxOU.js +1 -0
- package/dist/client/assets/user-Y5jeVfLy.js +1 -0
- package/dist/client/assets/workflow-B3tFa-4E.js +1 -0
- package/dist/client/index.html +1 -1
- package/dist/server/cli.js +3 -3
- package/dist/server/migrate.js +1 -1
- package/dist/server/node_modules/@babel/core/README.md +19 -0
- package/dist/server/node_modules/@babel/core/lib/config/cache-contexts.js +5 -0
- package/dist/server/node_modules/@babel/core/lib/config/cache-contexts.js.map +1 -0
- package/dist/server/node_modules/@babel/core/lib/config/caching.js +261 -0
- package/dist/server/node_modules/@babel/core/lib/config/caching.js.map +1 -0
- package/dist/server/node_modules/@babel/core/lib/config/config-chain.js +469 -0
- package/dist/server/node_modules/@babel/core/lib/config/config-chain.js.map +1 -0
- package/dist/server/node_modules/@babel/core/lib/config/config-descriptors.js +190 -0
- package/dist/server/node_modules/@babel/core/lib/config/config-descriptors.js.map +1 -0
- package/dist/server/node_modules/@babel/core/lib/config/files/configuration.js +290 -0
- package/dist/server/node_modules/@babel/core/lib/config/files/configuration.js.map +1 -0
- package/dist/server/node_modules/@babel/core/lib/config/files/import.cjs +6 -0
- package/dist/server/node_modules/@babel/core/lib/config/files/import.cjs.map +1 -0
- package/dist/server/node_modules/@babel/core/lib/config/files/index-browser.js +58 -0
- package/dist/server/node_modules/@babel/core/lib/config/files/index-browser.js.map +1 -0
- package/dist/server/node_modules/@babel/core/lib/config/files/index.js +78 -0
- package/dist/server/node_modules/@babel/core/lib/config/files/index.js.map +1 -0
- package/dist/server/node_modules/@babel/core/lib/config/files/module-types.js +203 -0
- package/dist/server/node_modules/@babel/core/lib/config/files/module-types.js.map +1 -0
- package/dist/server/node_modules/@babel/core/lib/config/files/package.js +61 -0
- package/dist/server/node_modules/@babel/core/lib/config/files/package.js.map +1 -0
- package/dist/server/node_modules/@babel/core/lib/config/files/plugins.js +220 -0
- package/dist/server/node_modules/@babel/core/lib/config/files/plugins.js.map +1 -0
- package/dist/server/node_modules/@babel/core/lib/config/files/types.js +5 -0
- package/dist/server/node_modules/@babel/core/lib/config/files/types.js.map +1 -0
- package/dist/server/node_modules/@babel/core/lib/config/files/utils.js +36 -0
- package/dist/server/node_modules/@babel/core/lib/config/files/utils.js.map +1 -0
- package/dist/server/node_modules/@babel/core/lib/config/full.js +312 -0
- package/dist/server/node_modules/@babel/core/lib/config/full.js.map +1 -0
- package/dist/server/node_modules/@babel/core/lib/config/helpers/config-api.js +85 -0
- package/dist/server/node_modules/@babel/core/lib/config/helpers/config-api.js.map +1 -0
- package/dist/server/node_modules/@babel/core/lib/config/helpers/deep-array.js +23 -0
- package/dist/server/node_modules/@babel/core/lib/config/helpers/deep-array.js.map +1 -0
- package/dist/server/node_modules/@babel/core/lib/config/helpers/environment.js +12 -0
- package/dist/server/node_modules/@babel/core/lib/config/helpers/environment.js.map +1 -0
- package/dist/server/node_modules/@babel/core/lib/config/index.js +87 -0
- package/dist/server/node_modules/@babel/core/lib/config/index.js.map +1 -0
- package/dist/server/node_modules/@babel/core/lib/config/item.js +67 -0
- package/dist/server/node_modules/@babel/core/lib/config/item.js.map +1 -0
- package/dist/server/node_modules/@babel/core/lib/config/partial.js +158 -0
- package/dist/server/node_modules/@babel/core/lib/config/partial.js.map +1 -0
- package/dist/server/node_modules/@babel/core/lib/config/pattern-to-regex.js +38 -0
- package/dist/server/node_modules/@babel/core/lib/config/pattern-to-regex.js.map +1 -0
- package/dist/server/node_modules/@babel/core/lib/config/plugin.js +33 -0
- package/dist/server/node_modules/@babel/core/lib/config/plugin.js.map +1 -0
- package/dist/server/node_modules/@babel/core/lib/config/printer.js +113 -0
- package/dist/server/node_modules/@babel/core/lib/config/printer.js.map +1 -0
- package/dist/server/node_modules/@babel/core/lib/config/resolve-targets-browser.js +41 -0
- package/dist/server/node_modules/@babel/core/lib/config/resolve-targets-browser.js.map +1 -0
- package/dist/server/node_modules/@babel/core/lib/config/resolve-targets.js +61 -0
- package/dist/server/node_modules/@babel/core/lib/config/resolve-targets.js.map +1 -0
- package/dist/server/node_modules/@babel/core/lib/config/util.js +31 -0
- package/dist/server/node_modules/@babel/core/lib/config/util.js.map +1 -0
- package/dist/server/node_modules/@babel/core/lib/config/validation/option-assertions.js +277 -0
- package/dist/server/node_modules/@babel/core/lib/config/validation/option-assertions.js.map +1 -0
- package/dist/server/node_modules/@babel/core/lib/config/validation/options.js +187 -0
- package/dist/server/node_modules/@babel/core/lib/config/validation/options.js.map +1 -0
- package/dist/server/node_modules/@babel/core/lib/config/validation/plugins.js +67 -0
- package/dist/server/node_modules/@babel/core/lib/config/validation/plugins.js.map +1 -0
- package/dist/server/node_modules/@babel/core/lib/config/validation/removed.js +68 -0
- package/dist/server/node_modules/@babel/core/lib/config/validation/removed.js.map +1 -0
- package/dist/server/node_modules/@babel/core/lib/errors/config-error.js +18 -0
- package/dist/server/node_modules/@babel/core/lib/errors/config-error.js.map +1 -0
- package/dist/server/node_modules/@babel/core/lib/errors/rewrite-stack-trace.js +98 -0
- package/dist/server/node_modules/@babel/core/lib/errors/rewrite-stack-trace.js.map +1 -0
- package/dist/server/node_modules/@babel/core/lib/gensync-utils/async.js +90 -0
- package/dist/server/node_modules/@babel/core/lib/gensync-utils/async.js.map +1 -0
- package/dist/server/node_modules/@babel/core/lib/gensync-utils/fs.js +31 -0
- package/dist/server/node_modules/@babel/core/lib/gensync-utils/fs.js.map +1 -0
- package/dist/server/node_modules/@babel/core/lib/gensync-utils/functional.js +58 -0
- package/dist/server/node_modules/@babel/core/lib/gensync-utils/functional.js.map +1 -0
- package/dist/server/node_modules/@babel/core/lib/index.js +230 -0
- package/dist/server/node_modules/@babel/core/lib/index.js.map +1 -0
- package/dist/server/node_modules/@babel/core/lib/parse.js +45 -0
- package/dist/server/node_modules/@babel/core/lib/parse.js.map +1 -0
- package/dist/server/node_modules/@babel/core/lib/parser/index.js +85 -0
- package/dist/server/node_modules/@babel/core/lib/parser/index.js.map +1 -0
- package/dist/server/node_modules/@babel/core/lib/parser/util/missing-plugin-helper.js +337 -0
- package/dist/server/node_modules/@babel/core/lib/parser/util/missing-plugin-helper.js.map +1 -0
- package/dist/server/node_modules/@babel/core/lib/tools/build-external-helpers.js +144 -0
- package/dist/server/node_modules/@babel/core/lib/tools/build-external-helpers.js.map +1 -0
- package/dist/server/node_modules/@babel/core/lib/transform-ast.js +48 -0
- package/dist/server/node_modules/@babel/core/lib/transform-ast.js.map +1 -0
- package/dist/server/node_modules/@babel/core/lib/transform-file-browser.js +23 -0
- package/dist/server/node_modules/@babel/core/lib/transform-file-browser.js.map +1 -0
- package/dist/server/node_modules/@babel/core/lib/transform-file.js +40 -0
- package/dist/server/node_modules/@babel/core/lib/transform-file.js.map +1 -0
- package/dist/server/node_modules/@babel/core/lib/transform.js +47 -0
- package/dist/server/node_modules/@babel/core/lib/transform.js.map +1 -0
- package/dist/server/node_modules/@babel/core/lib/transformation/block-hoist-plugin.js +84 -0
- package/dist/server/node_modules/@babel/core/lib/transformation/block-hoist-plugin.js.map +1 -0
- package/dist/server/node_modules/@babel/core/lib/transformation/file/babel-7-helpers.cjs +4 -0
- package/dist/server/node_modules/@babel/core/lib/transformation/file/babel-7-helpers.cjs.map +1 -0
- package/dist/server/node_modules/@babel/core/lib/transformation/file/file.js +204 -0
- package/dist/server/node_modules/@babel/core/lib/transformation/file/file.js.map +1 -0
- package/dist/server/node_modules/@babel/core/lib/transformation/file/generate.js +84 -0
- package/dist/server/node_modules/@babel/core/lib/transformation/file/generate.js.map +1 -0
- package/dist/server/node_modules/@babel/core/lib/transformation/file/merge-map.js +37 -0
- package/dist/server/node_modules/@babel/core/lib/transformation/file/merge-map.js.map +1 -0
- package/dist/server/node_modules/@babel/core/lib/transformation/index.js +90 -0
- package/dist/server/node_modules/@babel/core/lib/transformation/index.js.map +1 -0
- package/dist/server/node_modules/@babel/core/lib/transformation/normalize-file.js +127 -0
- package/dist/server/node_modules/@babel/core/lib/transformation/normalize-file.js.map +1 -0
- package/dist/server/node_modules/@babel/core/lib/transformation/normalize-opts.js +59 -0
- package/dist/server/node_modules/@babel/core/lib/transformation/normalize-opts.js.map +1 -0
- package/dist/server/node_modules/@babel/core/lib/transformation/plugin-pass.js +48 -0
- package/dist/server/node_modules/@babel/core/lib/transformation/plugin-pass.js.map +1 -0
- package/dist/server/node_modules/@babel/core/lib/transformation/util/clone-deep.js +54 -0
- package/dist/server/node_modules/@babel/core/lib/transformation/util/clone-deep.js.map +1 -0
- package/dist/server/node_modules/@babel/core/lib/vendor/import-meta-resolve.js +1042 -0
- package/dist/server/node_modules/@babel/core/lib/vendor/import-meta-resolve.js.map +1 -0
- package/dist/server/node_modules/@babel/core/package.json +82 -0
- package/dist/server/node_modules/@babel/core/src/config/files/index-browser.ts +115 -0
- package/dist/server/node_modules/@babel/core/src/config/files/index.ts +30 -0
- package/dist/server/node_modules/@babel/core/src/config/resolve-targets-browser.ts +42 -0
- package/dist/server/node_modules/@babel/core/src/config/resolve-targets.ts +54 -0
- package/dist/server/node_modules/@babel/core/src/transform-file-browser.ts +33 -0
- package/dist/server/node_modules/@babel/core/src/transform-file.ts +56 -0
- package/dist/server/node_modules/@jridgewell/sourcemap-codec/README.md +264 -0
- package/dist/server/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.mjs +423 -0
- package/dist/server/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.mjs.map +6 -0
- package/dist/server/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js +464 -0
- package/dist/server/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js.map +6 -0
- package/dist/server/node_modules/@jridgewell/sourcemap-codec/package.json +63 -0
- package/dist/server/node_modules/@jridgewell/sourcemap-codec/src/scopes.ts +345 -0
- package/dist/server/node_modules/@jridgewell/sourcemap-codec/src/sourcemap-codec.ts +111 -0
- package/dist/server/node_modules/@jridgewell/sourcemap-codec/src/strings.ts +65 -0
- package/dist/server/node_modules/@jridgewell/sourcemap-codec/src/vlq.ts +55 -0
- package/dist/server/node_modules/@jridgewell/sourcemap-codec/types/scopes.d.cts +50 -0
- package/dist/server/node_modules/@jridgewell/sourcemap-codec/types/scopes.d.cts.map +1 -0
- package/dist/server/node_modules/@jridgewell/sourcemap-codec/types/scopes.d.mts +50 -0
- package/dist/server/node_modules/@jridgewell/sourcemap-codec/types/scopes.d.mts.map +1 -0
- package/dist/server/node_modules/@jridgewell/sourcemap-codec/types/sourcemap-codec.d.cts +9 -0
- package/dist/server/node_modules/@jridgewell/sourcemap-codec/types/sourcemap-codec.d.cts.map +1 -0
- package/dist/server/node_modules/@jridgewell/sourcemap-codec/types/sourcemap-codec.d.mts +9 -0
- package/dist/server/node_modules/@jridgewell/sourcemap-codec/types/sourcemap-codec.d.mts.map +1 -0
- package/dist/server/node_modules/@jridgewell/sourcemap-codec/types/strings.d.cts +16 -0
- package/dist/server/node_modules/@jridgewell/sourcemap-codec/types/strings.d.cts.map +1 -0
- package/dist/server/node_modules/@jridgewell/sourcemap-codec/types/strings.d.mts +16 -0
- package/dist/server/node_modules/@jridgewell/sourcemap-codec/types/strings.d.mts.map +1 -0
- package/dist/server/node_modules/@jridgewell/sourcemap-codec/types/vlq.d.cts +7 -0
- package/dist/server/node_modules/@jridgewell/sourcemap-codec/types/vlq.d.cts.map +1 -0
- package/dist/server/node_modules/@jridgewell/sourcemap-codec/types/vlq.d.mts +7 -0
- package/dist/server/node_modules/@jridgewell/sourcemap-codec/types/vlq.d.mts.map +1 -0
- package/dist/server/node_modules/@jridgewell/trace-mapping/LICENSE +19 -0
- package/dist/server/node_modules/@jridgewell/trace-mapping/README.md +348 -0
- package/dist/server/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.mjs +493 -0
- package/dist/server/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.mjs.map +6 -0
- package/dist/server/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.umd.js +559 -0
- package/dist/server/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.umd.js.map +6 -0
- package/dist/server/node_modules/@jridgewell/trace-mapping/package.json +67 -0
- package/dist/server/node_modules/@jridgewell/trace-mapping/src/binary-search.ts +115 -0
- package/dist/server/node_modules/@jridgewell/trace-mapping/src/by-source.ts +41 -0
- package/dist/server/node_modules/@jridgewell/trace-mapping/src/flatten-map.ts +192 -0
- package/dist/server/node_modules/@jridgewell/trace-mapping/src/resolve.ts +16 -0
- package/dist/server/node_modules/@jridgewell/trace-mapping/src/sort.ts +45 -0
- package/dist/server/node_modules/@jridgewell/trace-mapping/src/sourcemap-segment.ts +23 -0
- package/dist/server/node_modules/@jridgewell/trace-mapping/src/strip-filename.ts +8 -0
- package/dist/server/node_modules/@jridgewell/trace-mapping/src/trace-mapping.ts +502 -0
- package/dist/server/node_modules/@jridgewell/trace-mapping/src/types.ts +114 -0
- package/dist/server/node_modules/@jridgewell/trace-mapping/types/binary-search.d.cts +33 -0
- package/dist/server/node_modules/@jridgewell/trace-mapping/types/binary-search.d.cts.map +1 -0
- package/dist/server/node_modules/@jridgewell/trace-mapping/types/binary-search.d.mts +33 -0
- package/dist/server/node_modules/@jridgewell/trace-mapping/types/binary-search.d.mts.map +1 -0
- package/dist/server/node_modules/@jridgewell/trace-mapping/types/by-source.d.cts +4 -0
- package/dist/server/node_modules/@jridgewell/trace-mapping/types/by-source.d.cts.map +1 -0
- package/dist/server/node_modules/@jridgewell/trace-mapping/types/by-source.d.mts +4 -0
- package/dist/server/node_modules/@jridgewell/trace-mapping/types/by-source.d.mts.map +1 -0
- package/dist/server/node_modules/@jridgewell/trace-mapping/types/flatten-map.d.cts +9 -0
- package/dist/server/node_modules/@jridgewell/trace-mapping/types/flatten-map.d.cts.map +1 -0
- package/dist/server/node_modules/@jridgewell/trace-mapping/types/flatten-map.d.mts +9 -0
- package/dist/server/node_modules/@jridgewell/trace-mapping/types/flatten-map.d.mts.map +1 -0
- package/dist/server/node_modules/@jridgewell/trace-mapping/types/resolve.d.cts +4 -0
- package/dist/server/node_modules/@jridgewell/trace-mapping/types/resolve.d.cts.map +1 -0
- package/dist/server/node_modules/@jridgewell/trace-mapping/types/resolve.d.mts +4 -0
- package/dist/server/node_modules/@jridgewell/trace-mapping/types/resolve.d.mts.map +1 -0
- package/dist/server/node_modules/@jridgewell/trace-mapping/types/sort.d.cts +4 -0
- package/dist/server/node_modules/@jridgewell/trace-mapping/types/sort.d.cts.map +1 -0
- package/dist/server/node_modules/@jridgewell/trace-mapping/types/sort.d.mts +4 -0
- package/dist/server/node_modules/@jridgewell/trace-mapping/types/sort.d.mts.map +1 -0
- package/dist/server/node_modules/@jridgewell/trace-mapping/types/sourcemap-segment.d.cts +17 -0
- package/dist/server/node_modules/@jridgewell/trace-mapping/types/sourcemap-segment.d.cts.map +1 -0
- package/dist/server/node_modules/@jridgewell/trace-mapping/types/sourcemap-segment.d.mts +17 -0
- package/dist/server/node_modules/@jridgewell/trace-mapping/types/sourcemap-segment.d.mts.map +1 -0
- package/dist/server/node_modules/@jridgewell/trace-mapping/types/strip-filename.d.cts +5 -0
- package/dist/server/node_modules/@jridgewell/trace-mapping/types/strip-filename.d.cts.map +1 -0
- package/dist/server/node_modules/@jridgewell/trace-mapping/types/strip-filename.d.mts +5 -0
- package/dist/server/node_modules/@jridgewell/trace-mapping/types/strip-filename.d.mts.map +1 -0
- package/dist/server/node_modules/@jridgewell/trace-mapping/types/trace-mapping.d.cts +80 -0
- package/dist/server/node_modules/@jridgewell/trace-mapping/types/trace-mapping.d.cts.map +1 -0
- package/dist/server/node_modules/@jridgewell/trace-mapping/types/trace-mapping.d.mts +80 -0
- package/dist/server/node_modules/@jridgewell/trace-mapping/types/trace-mapping.d.mts.map +1 -0
- package/dist/server/node_modules/@jridgewell/trace-mapping/types/types.d.cts +107 -0
- package/dist/server/node_modules/@jridgewell/trace-mapping/types/types.d.cts.map +1 -0
- package/dist/server/node_modules/@jridgewell/trace-mapping/types/types.d.mts +107 -0
- package/dist/server/node_modules/@jridgewell/trace-mapping/types/types.d.mts.map +1 -0
- package/dist/server/node_modules/picomatch/LICENSE +21 -0
- package/dist/server/node_modules/picomatch/README.md +738 -0
- package/dist/server/node_modules/picomatch/index.js +17 -0
- package/dist/server/node_modules/picomatch/lib/constants.js +180 -0
- package/dist/server/node_modules/picomatch/lib/parse.js +1085 -0
- package/dist/server/node_modules/picomatch/lib/picomatch.js +341 -0
- package/dist/server/node_modules/picomatch/lib/scan.js +391 -0
- package/dist/server/node_modules/picomatch/lib/utils.js +72 -0
- package/dist/server/node_modules/picomatch/package.json +83 -0
- package/dist/server/node_modules/picomatch/posix.js +3 -0
- package/dist/server/server.js +3 -3
- package/package.json +1 -1
- package/dist/client/assets/AlertCircle-COCPzruB.js +0 -1
- package/dist/client/assets/AlignLeft-BXEQaqkm.js +0 -1
- package/dist/client/assets/ArrowDown-CWZOxMGB.js +0 -1
- package/dist/client/assets/ArrowLeft-D9yt1ohq.js +0 -1
- package/dist/client/assets/ArrowUp-CxJFPww9.js +0 -1
- package/dist/client/assets/Check-BxmpGgJO.js +0 -1
- package/dist/client/assets/CheckCircle-CTJxivs_.js +0 -1
- package/dist/client/assets/CheckDone01-Dcp2FYQ-.js +0 -1
- package/dist/client/assets/CheckVerified02-D11ceW2n.js +0 -1
- package/dist/client/assets/ChevronDown-DMBKkJDw.js +0 -1
- package/dist/client/assets/ChevronLeft-CSMOvegR.js +0 -1
- package/dist/client/assets/ChevronRight-H9Yc9f7O.js +0 -1
- package/dist/client/assets/Clock-CKhQI6RG.js +0 -1
- package/dist/client/assets/Code01-YTmJoKH0.js +0 -1
- package/dist/client/assets/Container-yYsRLnMs.js +0 -1
- package/dist/client/assets/Copy01-CBbaVNcV.js +0 -1
- package/dist/client/assets/Dataflow03-D7alrCgq.js +0 -1
- package/dist/client/assets/DotsHorizontal-Bs1LoWL0.js +0 -1
- package/dist/client/assets/DotsVertical-JTzIXbI1.js +0 -1
- package/dist/client/assets/Download01-BfbmibGe.js +0 -1
- package/dist/client/assets/Edit01-86XeEa-K.js +0 -1
- package/dist/client/assets/Edit05-D2Mr1uN2.js +0 -1
- package/dist/client/assets/Eye-CH7m62Q9.js +0 -1
- package/dist/client/assets/File02-D5MLfFax.js +0 -1
- package/dist/client/assets/File06-BsPa6yJC.js +0 -1
- package/dist/client/assets/FilterLines-CCRMwRH-.js +0 -1
- package/dist/client/assets/Globe01-DkkMg0kW.js +0 -1
- package/dist/client/assets/Globe02-C9h9OvDn.js +0 -1
- package/dist/client/assets/Grid01-BJl2SMz4.js +0 -1
- package/dist/client/assets/Hash02-fUOm6jU-.js +0 -1
- package/dist/client/assets/Home02-Css4Iepc.js +0 -1
- package/dist/client/assets/Image01-DcPksOlo.js +0 -1
- package/dist/client/assets/Inbox01-B-u4MXdb.js +0 -1
- package/dist/client/assets/InfoCircle-Ix7ZTvJi.js +0 -1
- package/dist/client/assets/Key01-Df3Idqiz.js +0 -1
- package/dist/client/assets/LayersTwo01-B5E2fqo_.js +0 -1
- package/dist/client/assets/LayoutLeft-Bc53fB6X.js +0 -1
- package/dist/client/assets/Link01-DL7ePw82.js +0 -1
- package/dist/client/assets/LinkExternal01-b8VjDApC.js +0 -1
- package/dist/client/assets/List-DurPU5xB.js +0 -1
- package/dist/client/assets/Loading01-BSgt365L.js +0 -1
- package/dist/client/assets/Lock01-Kbe8uq9Q.js +0 -1
- package/dist/client/assets/Play-C_XCWv-e.js +0 -1
- package/dist/client/assets/Plus-DyccoR76.js +0 -1
- package/dist/client/assets/RefreshCcw01-C5LHek4w.js +0 -1
- package/dist/client/assets/Save01-DB_m4T10.js +0 -1
- package/dist/client/assets/SearchMd-C9PpmA7c.js +0 -1
- package/dist/client/assets/Settings01-C8nyLh4e.js +0 -1
- package/dist/client/assets/Shield01-D3qnwTrp.js +0 -1
- package/dist/client/assets/Terminal-BQ8QYOY1.js +0 -1
- package/dist/client/assets/Trash01-CJ60cufT.js +0 -1
- package/dist/client/assets/Upload01-CPuUtuFU.js +0 -1
- package/dist/client/assets/Users03-TzAql3be.js +0 -1
- package/dist/client/assets/X-CpYNC6lo.js +0 -1
- package/dist/client/assets/XCircle-BjAJVHDF.js +0 -1
- package/dist/client/assets/XClose-Rpsc-3OA.js +0 -1
- package/dist/client/assets/Zap-BZ3UCYjM.js +0 -1
- package/dist/client/assets/agent-connections-preview-DIiP1L_8.js +0 -1
- package/dist/client/assets/agent-detail-J2F2tRbj.js +0 -2
- package/dist/client/assets/agents-Cd6HGWat.js +0 -1
- package/dist/client/assets/alert-dialog-CjulzWr7.js +0 -7
- package/dist/client/assets/auth-catchall-BnImxdbW.js +0 -1
- package/dist/client/assets/avatar-COttSggk.js +0 -1
- package/dist/client/assets/badge-DeKjEqoU.js +0 -1
- package/dist/client/assets/binder-JBklfnkZ.js +0 -1
- package/dist/client/assets/breadcrumb-DZ4K3wPr.js +0 -1
- package/dist/client/assets/card-DkMC4yhp.js +0 -1
- package/dist/client/assets/chart-oCbiVl3J.js +0 -15
- package/dist/client/assets/checkbox-DOpKFROJ.js +0 -1
- package/dist/client/assets/circle-alert-vyafkPY9.js +0 -1
- package/dist/client/assets/collapsible-BqhrFzzR.js +0 -23
- package/dist/client/assets/collection-detail-CnE9tdFz.js +0 -26
- package/dist/client/assets/collection-display-button-B5-Qbe51.js +0 -1
- package/dist/client/assets/collection-search-BqJoX17Q.js +0 -1
- package/dist/client/assets/collection-tab-CalpHH6o.js +0 -1
- package/dist/client/assets/collection-table-wrapper-BTjazYQf.js +0 -1
- package/dist/client/assets/collection-tabs-EEOW6GRL.js +0 -1
- package/dist/client/assets/command-BEFS8ANg.js +0 -1
- package/dist/client/assets/connect-DfPT2YCY.js +0 -1
- package/dist/client/assets/connection-card-BdnPGsex.js +0 -1
- package/dist/client/assets/connection-detail-CLUQ4ftB.js +0 -1
- package/dist/client/assets/connection-status-C-QmdjUW.js +0 -1
- package/dist/client/assets/connections-kkqT0K5k.js +0 -1
- package/dist/client/assets/constants-BDiSPTuo.js +0 -1
- package/dist/client/assets/constants-Dvvbc3ac.js +0 -1
- package/dist/client/assets/create-organization-dialog-jAyzYeAn.js +0 -1
- package/dist/client/assets/create-project-dialog-D33xriWJ.js +0 -1
- package/dist/client/assets/danger-Cha4pSGh.js +0 -1
- package/dist/client/assets/danger-zone-DADmz_4H.js +0 -1
- package/dist/client/assets/decopilot-events-D0o8qF4i.js +0 -1
- package/dist/client/assets/dependencies-WKnlxG4W.js +0 -1
- package/dist/client/assets/dialog-DZh8Ph30.js +0 -1
- package/dist/client/assets/dropdown-menu-Z-xkakKz.js +0 -1
- package/dist/client/assets/dynamic-plugin-layout-1VL-Nq0v.js +0 -1
- package/dist/client/assets/editable-task-title-BtM8Y_i0.js +0 -16
- package/dist/client/assets/empty-state-Bs6ZvT13.js +0 -1
- package/dist/client/assets/env-vars-editor-C_fpQu3r.js +0 -1
- package/dist/client/assets/extract-connection-data-BvxOwwOc.js +0 -1
- package/dist/client/assets/file-browser-COkzPlsr.js +0 -2
- package/dist/client/assets/form-u0JM0zFo.js +0 -1
- package/dist/client/assets/general-fg_RS0yr.js +0 -1
- package/dist/client/assets/grid-view-D9Ic3afI.js +0 -1
- package/dist/client/assets/home-C0wm8Ra0.js +0 -1
- package/dist/client/assets/icon-picker-BYggeY9I.js +0 -1
- package/dist/client/assets/index-B6H1H8GZ.js +0 -218
- package/dist/client/assets/index-BTGfXm3p.js +0 -184
- package/dist/client/assets/index-BjjNfFZO.js +0 -1
- package/dist/client/assets/index-C-FConRx.js +0 -1
- package/dist/client/assets/index-C21sEs5P.js +0 -25
- package/dist/client/assets/index-D-QI-if6.js +0 -1
- package/dist/client/assets/index-DGzQM1h1.js +0 -1
- package/dist/client/assets/index-D_0ZYhFs.js +0 -1
- package/dist/client/assets/index-DtzYx0E6.js +0 -1
- package/dist/client/assets/infiniteQueryObserver-B4_Pq1jp.js +0 -1
- package/dist/client/assets/input-DL82FsGU.js +0 -1
- package/dist/client/assets/integration-icon-lbcrIfEl.js +0 -1
- package/dist/client/assets/label-CiV91E3T.js +0 -1
- package/dist/client/assets/layout-Be7WHnRk.js +0 -1
- package/dist/client/assets/layout-DyQEA0SZ.js +0 -1
- package/dist/client/assets/localstorage-keys-B-P4Lkkc.js +0 -1
- package/dist/client/assets/login-B3dPe2uq.js +0 -1
- package/dist/client/assets/markdown-Bf8aDiE3.js +0 -29
- package/dist/client/assets/mcp-app-renderer-BnVKlKcJ.js +0 -11
- package/dist/client/assets/mcp-server-card-DZcgEuH9.js +0 -1
- package/dist/client/assets/mcp-server-detail-Bt5RaPnX.js +0 -2
- package/dist/client/assets/members-BJawTGLR.js +0 -3
- package/dist/client/assets/monaco-editor-BQM0x1VO.js +0 -19
- package/dist/client/assets/monitoring-blJKyDvA.js +0 -31
- package/dist/client/assets/monitoring-dashboard-edit-BDHHepNV.js +0 -1
- package/dist/client/assets/monitoring-dashboard-view-ipSeoz8O.js +0 -4
- package/dist/client/assets/oauth-callback-BrSHCBQX.js +0 -1
- package/dist/client/assets/page-CA_pelN-.js +0 -1
- package/dist/client/assets/page-Kq0I6KKP.js +0 -1
- package/dist/client/assets/plugin-empty-state-C4w1L8kt.js +0 -1
- package/dist/client/assets/plugin-empty-state-RaKROIGH.js +0 -1
- package/dist/client/assets/plugin-header-BhtUXHbX.js +0 -1
- package/dist/client/assets/plugin-header-sixzd3Ma.js +0 -1
- package/dist/client/assets/plugins-CD_83bbp.js +0 -1
- package/dist/client/assets/popover-BsBq580h.js +0 -1
- package/dist/client/assets/project-app-view-BJtfzuHN.js +0 -1
- package/dist/client/assets/project-layout-RD2qGV-x.js +0 -1
- package/dist/client/assets/project-plugins-COU6htGE.js +0 -1
- package/dist/client/assets/projects-list-D9xGyghY.js +0 -1
- package/dist/client/assets/readme-viewer-BbXjdtG9.js +0 -1
- package/dist/client/assets/registry-layout-DeFY3kKT.js +0 -5
- package/dist/client/assets/registry-utils-Bl8qAIIE.js +0 -1
- package/dist/client/assets/reports-layout-DEPJi7t7.js +0 -3
- package/dist/client/assets/reset-password-CCjN8Der.js +0 -1
- package/dist/client/assets/resizable-Dyz8Ueqx.js +0 -1
- package/dist/client/assets/save-actions-BY0Prlb4.js +0 -1
- package/dist/client/assets/scroll-area-7QhPLRXH.js +0 -1
- package/dist/client/assets/select-BNpARAGJ.js +0 -1
- package/dist/client/assets/shell-layout-7XeOm_ax.js +0 -3
- package/dist/client/assets/sidebar-settings-B9cT50kt.js +0 -1
- package/dist/client/assets/skeleton-BS-CeywH.js +0 -1
- package/dist/client/assets/spinner-DBhlROgw.js +0 -1
- package/dist/client/assets/store-invite-e1T7z82O.js +0 -1
- package/dist/client/assets/switch-wuXa1Kvf.js +0 -1
- package/dist/client/assets/table-ls4zjAkQ.js +0 -1
- package/dist/client/assets/tabs-BpharFFf.js +0 -1
- package/dist/client/assets/tasks-CJXh_ge0.js +0 -1
- package/dist/client/assets/tasks-panel-Ct2D_gmM.js +0 -1
- package/dist/client/assets/textarea-DM9DH5x9.js +0 -1
- package/dist/client/assets/time-range-picker-CdtxSNYv.js +0 -5
- package/dist/client/assets/toggle-group-BRFTG6MH.js +0 -1
- package/dist/client/assets/tools-list-UPWCb7T0.js +0 -1
- package/dist/client/assets/tooltip-j8kTHx55.js +0 -1
- package/dist/client/assets/topbar-portal-BUJnfe9A.js +0 -1
- package/dist/client/assets/types-jFDozJe3.js +0 -155
- package/dist/client/assets/use-binding-BfnusZ1F.js +0 -1
- package/dist/client/assets/use-collections-D-dYas4g.js +0 -1
- package/dist/client/assets/use-connection-C6mRcJDK.js +0 -1
- package/dist/client/assets/use-copy-CVnO_3mM.js +0 -1
- package/dist/client/assets/use-create-virtual-mcp-Dn5aJHho.js +0 -1
- package/dist/client/assets/use-install-from-registry-Ci2mnCpP.js +0 -1
- package/dist/client/assets/use-list-state-Cs0Vw1fn.js +0 -1
- package/dist/client/assets/use-llm-C2ec2VVQ.js +0 -1
- package/dist/client/assets/use-mcp-resources-C0pasPvz.js +0 -1
- package/dist/client/assets/use-mcp-tools-CMrxqGk3.js +0 -1
- package/dist/client/assets/use-members-DyNTppwq.js +0 -1
- package/dist/client/assets/use-mobile-TplPgiBS.js +0 -1
- package/dist/client/assets/use-project-BJg-zw4z.js +0 -1
- package/dist/client/assets/use-settings-modal-nlOCOvru.js +0 -1
- package/dist/client/assets/use-view-mode-Csk7hnWi.js +0 -1
- package/dist/client/assets/use-virtual-mcp-Dbh6kzyX.js +0 -1
- package/dist/client/assets/useInfiniteQuery-CQVTTHIu.js +0 -1
- package/dist/client/assets/useMutation-CJ6jjC2l.js +0 -1
- package/dist/client/assets/useQuery-BQ0SjuWE.js +0 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-BSv4Z18C.js +0 -1
- package/dist/client/assets/user-DoJm1uYf.js +0 -1
- package/dist/client/assets/workflow-BypiKv8P.js +0 -1
- package/dist/server/node_modules/@babel/helper-module-imports/README.md +0 -19
- package/dist/server/node_modules/@babel/helper-module-imports/lib/import-builder.js +0 -122
- package/dist/server/node_modules/@babel/helper-module-imports/lib/import-builder.js.map +0 -1
- package/dist/server/node_modules/@babel/helper-module-imports/lib/import-injector.js +0 -304
- package/dist/server/node_modules/@babel/helper-module-imports/lib/import-injector.js.map +0 -1
- package/dist/server/node_modules/@babel/helper-module-imports/lib/index.js +0 -37
- package/dist/server/node_modules/@babel/helper-module-imports/lib/index.js.map +0 -1
- package/dist/server/node_modules/@babel/helper-module-imports/lib/is-module.js +0 -11
- package/dist/server/node_modules/@babel/helper-module-imports/lib/is-module.js.map +0 -1
- package/dist/server/node_modules/@babel/helper-module-imports/package.json +0 -28
- package/dist/server/node_modules/@babel/helper-string-parser/LICENSE +0 -22
- package/dist/server/node_modules/@babel/helper-string-parser/README.md +0 -19
- package/dist/server/node_modules/@babel/helper-string-parser/lib/index.js +0 -295
- package/dist/server/node_modules/@babel/helper-string-parser/lib/index.js.map +0 -1
- package/dist/server/node_modules/@babel/helper-string-parser/package.json +0 -31
- package/dist/server/node_modules/@babel/helper-validator-identifier/LICENSE +0 -22
- package/dist/server/node_modules/@babel/helper-validator-identifier/README.md +0 -19
- package/dist/server/node_modules/@babel/helper-validator-identifier/lib/identifier.js +0 -70
- package/dist/server/node_modules/@babel/helper-validator-identifier/lib/identifier.js.map +0 -1
- package/dist/server/node_modules/@babel/helper-validator-identifier/lib/index.js +0 -57
- package/dist/server/node_modules/@babel/helper-validator-identifier/lib/index.js.map +0 -1
- package/dist/server/node_modules/@babel/helper-validator-identifier/lib/keyword.js +0 -35
- package/dist/server/node_modules/@babel/helper-validator-identifier/lib/keyword.js.map +0 -1
- package/dist/server/node_modules/@babel/helper-validator-identifier/package.json +0 -31
- package/dist/server/node_modules/@babel/helper-validator-option/LICENSE +0 -22
- package/dist/server/node_modules/@babel/helper-validator-option/README.md +0 -19
- package/dist/server/node_modules/@babel/helper-validator-option/lib/find-suggestion.js +0 -39
- package/dist/server/node_modules/@babel/helper-validator-option/lib/find-suggestion.js.map +0 -1
- package/dist/server/node_modules/@babel/helper-validator-option/lib/index.js +0 -21
- package/dist/server/node_modules/@babel/helper-validator-option/lib/index.js.map +0 -1
- package/dist/server/node_modules/@babel/helper-validator-option/lib/validator.js +0 -48
- package/dist/server/node_modules/@babel/helper-validator-option/lib/validator.js.map +0 -1
- package/dist/server/node_modules/@babel/helper-validator-option/package.json +0 -27
- package/dist/server/node_modules/@jridgewell/remapping/README.md +0 -218
- package/dist/server/node_modules/@jridgewell/remapping/dist/remapping.mjs +0 -144
- package/dist/server/node_modules/@jridgewell/remapping/dist/remapping.mjs.map +0 -6
- package/dist/server/node_modules/@jridgewell/remapping/dist/remapping.umd.js +0 -212
- package/dist/server/node_modules/@jridgewell/remapping/dist/remapping.umd.js.map +0 -6
- package/dist/server/node_modules/@jridgewell/remapping/package.json +0 -71
- package/dist/server/node_modules/@jridgewell/remapping/src/build-source-map-tree.ts +0 -89
- package/dist/server/node_modules/@jridgewell/remapping/src/remapping.ts +0 -42
- package/dist/server/node_modules/@jridgewell/remapping/src/source-map-tree.ts +0 -172
- package/dist/server/node_modules/@jridgewell/remapping/src/source-map.ts +0 -38
- package/dist/server/node_modules/@jridgewell/remapping/src/types.ts +0 -27
- package/dist/server/node_modules/@jridgewell/remapping/types/build-source-map-tree.d.cts +0 -15
- package/dist/server/node_modules/@jridgewell/remapping/types/build-source-map-tree.d.cts.map +0 -1
- package/dist/server/node_modules/@jridgewell/remapping/types/build-source-map-tree.d.mts +0 -15
- package/dist/server/node_modules/@jridgewell/remapping/types/build-source-map-tree.d.mts.map +0 -1
- package/dist/server/node_modules/@jridgewell/remapping/types/remapping.d.cts +0 -21
- package/dist/server/node_modules/@jridgewell/remapping/types/remapping.d.cts.map +0 -1
- package/dist/server/node_modules/@jridgewell/remapping/types/remapping.d.mts +0 -21
- package/dist/server/node_modules/@jridgewell/remapping/types/remapping.d.mts.map +0 -1
- package/dist/server/node_modules/@jridgewell/remapping/types/source-map-tree.d.cts +0 -46
- package/dist/server/node_modules/@jridgewell/remapping/types/source-map-tree.d.cts.map +0 -1
- package/dist/server/node_modules/@jridgewell/remapping/types/source-map-tree.d.mts +0 -46
- package/dist/server/node_modules/@jridgewell/remapping/types/source-map-tree.d.mts.map +0 -1
- package/dist/server/node_modules/@jridgewell/remapping/types/source-map.d.cts +0 -19
- package/dist/server/node_modules/@jridgewell/remapping/types/source-map.d.cts.map +0 -1
- package/dist/server/node_modules/@jridgewell/remapping/types/source-map.d.mts +0 -19
- package/dist/server/node_modules/@jridgewell/remapping/types/source-map.d.mts.map +0 -1
- package/dist/server/node_modules/@jridgewell/remapping/types/types.d.cts +0 -16
- package/dist/server/node_modules/@jridgewell/remapping/types/types.d.cts.map +0 -1
- package/dist/server/node_modules/@jridgewell/remapping/types/types.d.mts +0 -16
- package/dist/server/node_modules/@jridgewell/remapping/types/types.d.mts.map +0 -1
- package/dist/server/node_modules/browserslist/LICENSE +0 -20
- package/dist/server/node_modules/browserslist/README.md +0 -65
- package/dist/server/node_modules/browserslist/browser.js +0 -54
- package/dist/server/node_modules/browserslist/cli.js +0 -156
- package/dist/server/node_modules/browserslist/error.d.ts +0 -7
- package/dist/server/node_modules/browserslist/error.js +0 -12
- package/dist/server/node_modules/browserslist/index.d.ts +0 -224
- package/dist/server/node_modules/browserslist/index.js +0 -1335
- package/dist/server/node_modules/browserslist/node.js +0 -502
- package/dist/server/node_modules/browserslist/package.json +0 -45
- package/dist/server/node_modules/browserslist/parse.js +0 -78
- package/dist/server/node_modules/caniuse-lite/LICENSE +0 -395
- package/dist/server/node_modules/caniuse-lite/README.md +0 -6
- package/dist/server/node_modules/caniuse-lite/data/agents.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/browserVersions.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/browsers.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/aac.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/abortcontroller.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/ac3-ec3.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/accelerometer.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/addeventlistener.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/alternate-stylesheet.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/ambient-light.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/apng.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/array-find-index.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/array-find.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/array-flat.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/array-includes.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/arrow-functions.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/asmjs.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/async-clipboard.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/async-functions.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/atob-btoa.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/audio-api.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/audio.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/audiotracks.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/autofocus.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/auxclick.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/av1.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/avif.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/background-attachment.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/background-clip-text.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/background-img-opts.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/background-position-x-y.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/background-repeat-round-space.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/background-sync.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/battery-status.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/beacon.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/beforeafterprint.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/bigint.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/blobbuilder.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/bloburls.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/border-image.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/border-radius.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/broadcastchannel.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/brotli.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/calc.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/canvas-blending.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/canvas-text.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/canvas.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/ch-unit.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/chacha20-poly1305.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/channel-messaging.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/childnode-remove.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/classlist.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/client-hints-dpr-width-viewport.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/clipboard.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/colr-v1.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/colr.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/comparedocumentposition.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/console-basic.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/console-time.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/const.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/constraint-validation.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/contenteditable.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/contentsecuritypolicy.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/contentsecuritypolicy2.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/cookie-store-api.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/cors.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/createimagebitmap.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/credential-management.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/cross-document-view-transitions.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/cryptography.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-all.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-anchor-positioning.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-animation.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-any-link.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-appearance.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-at-counter-style.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-autofill.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-backdrop-filter.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-background-offsets.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-backgroundblendmode.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-boxdecorationbreak.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-boxshadow.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-canvas.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-caret-color.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-cascade-layers.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-cascade-scope.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-case-insensitive.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-clip-path.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-color-adjust.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-color-function.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-conic-gradients.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-container-queries-style.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-container-queries.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-container-query-units.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-containment.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-content-visibility.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-counters.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-crisp-edges.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-cross-fade.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-default-pseudo.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-descendant-gtgt.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-deviceadaptation.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-dir-pseudo.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-display-contents.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-element-function.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-env-function.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-exclusions.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-featurequeries.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-file-selector-button.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-filter-function.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-filters.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-first-letter.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-first-line.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-fixed.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-focus-visible.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-focus-within.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-font-palette.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-font-rendering-controls.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-font-stretch.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-gencontent.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-gradients.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-grid-animation.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-grid-lanes.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-grid.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-hanging-punctuation.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-has.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-hyphens.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-if.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-image-orientation.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-image-set.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-in-out-of-range.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-indeterminate-pseudo.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-initial-letter.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-initial-value.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-lch-lab.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-letter-spacing.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-line-clamp.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-logical-props.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-marker-pseudo.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-masks.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-matches-pseudo.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-math-functions.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-media-interaction.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-media-range-syntax.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-media-resolution.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-media-scripting.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-mediaqueries.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-mixblendmode.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-module-scripts.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-motion-paths.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-namespaces.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-nesting.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-not-sel-list.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-nth-child-of.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-opacity.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-optional-pseudo.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-overflow-anchor.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-overflow-overlay.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-overflow.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-overscroll-behavior.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-page-break.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-paged-media.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-paint-api.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-placeholder-shown.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-placeholder.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-print-color-adjust.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-read-only-write.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-rebeccapurple.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-reflections.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-regions.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-relative-colors.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-repeating-gradients.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-resize.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-revert-value.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-rrggbbaa.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-scroll-behavior.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-scrollbar.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-sel2.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-sel3.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-selection.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-shapes.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-snappoints.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-sticky.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-subgrid.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-supports-api.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-table.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-text-align-last.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-text-box-trim.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-text-indent.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-text-justify.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-text-orientation.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-text-spacing.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-text-wrap-balance.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-textshadow.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-touch-action.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-transitions.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-unicode-bidi.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-unset-value.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-variables.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-when-else.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-widows-orphans.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-width-stretch.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-writing-mode.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css-zoom.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css3-attr.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css3-boxsizing.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css3-colors.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css3-cursors-grab.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css3-cursors-newer.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css3-cursors.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/css3-tabsize.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/currentcolor.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/custom-elements.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/custom-elementsv1.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/customevent.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/customizable-select.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/datalist.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/dataset.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/datauri.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/date-tolocaledatestring.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/declarative-shadow-dom.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/decorators.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/details.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/deviceorientation.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/devicepixelratio.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/dialog.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/dispatchevent.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/dnssec.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/do-not-track.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/document-currentscript.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/document-evaluate-xpath.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/document-execcommand.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/document-policy.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/document-scrollingelement.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/documenthead.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/dom-manip-convenience.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/dom-range.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/domcontentloaded.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/dommatrix.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/download.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/dragndrop.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/element-closest.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/element-from-point.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/element-scroll-methods.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/eme.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/eot.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/es5.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/es6-class.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/es6-generators.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/es6-module-dynamic-import.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/es6-module.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/es6-number.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/es6-string-includes.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/es6.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/eventsource.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/extended-system-fonts.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/feature-policy.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/fetch.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/fieldset-disabled.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/fileapi.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/filereader.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/filereadersync.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/filesystem.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/flac.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/flexbox-gap.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/flexbox.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/flow-root.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/focusin-focusout-events.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/font-family-system-ui.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/font-feature.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/font-kerning.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/font-loading.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/font-size-adjust.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/font-smooth.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/font-unicode-range.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/font-variant-alternates.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/font-variant-numeric.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/fontface.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/form-attribute.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/form-submit-attributes.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/form-validation.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/forms.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/fullscreen.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/gamepad.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/geolocation.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/getboundingclientrect.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/getcomputedstyle.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/getelementsbyclassname.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/getrandomvalues.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/gyroscope.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/hardwareconcurrency.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/hashchange.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/heif.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/hevc.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/hidden.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/high-resolution-time.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/history.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/html-media-capture.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/html5semantic.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/http-live-streaming.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/http2.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/http3.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/iframe-sandbox.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/iframe-seamless.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/iframe-srcdoc.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/imagecapture.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/ime.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/img-naturalwidth-naturalheight.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/import-maps.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/imports.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/indeterminate-checkbox.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/indexeddb.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/indexeddb2.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/inline-block.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/innertext.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/input-autocomplete-onoff.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/input-color.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/input-datetime.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/input-email-tel-url.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/input-event.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/input-file-accept.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/input-file-directory.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/input-file-multiple.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/input-inputmode.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/input-minlength.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/input-number.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/input-pattern.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/input-placeholder.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/input-range.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/input-search.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/input-selection.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/insert-adjacent.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/insertadjacenthtml.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/internationalization.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/intersectionobserver-v2.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/intersectionobserver.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/intl-pluralrules.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/intrinsic-width.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/jpeg2000.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/jpegxl.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/jpegxr.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/js-regexp-lookbehind.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/json.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/justify-content-space-evenly.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/kerning-pairs-ligatures.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/keyboardevent-charcode.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/keyboardevent-code.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/keyboardevent-getmodifierstate.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/keyboardevent-key.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/keyboardevent-location.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/keyboardevent-which.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/lazyload.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/let.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/link-icon-png.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/link-icon-svg.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/link-rel-dns-prefetch.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/link-rel-modulepreload.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/link-rel-preconnect.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/link-rel-prefetch.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/link-rel-preload.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/link-rel-prerender.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/loading-lazy-attr.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/localecompare.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/magnetometer.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/matchesselector.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/matchmedia.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/mathml.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/maxlength.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/mdn-css-backdrop-pseudo-element.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-isolate-override.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-isolate.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-plaintext.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/mdn-text-decoration-color.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/mdn-text-decoration-line.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/mdn-text-decoration-shorthand.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/mdn-text-decoration-style.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/media-fragments.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/mediacapture-fromelement.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/mediarecorder.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/mediasource.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/menu.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/meta-theme-color.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/meter.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/midi.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/minmaxwh.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/mp3.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/mpeg-dash.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/mpeg4.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/multibackgrounds.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/multicolumn.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/mutation-events.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/mutationobserver.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/namevalue-storage.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/native-filesystem-api.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/nav-timing.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/netinfo.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/notifications.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/object-entries.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/object-fit.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/object-observe.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/object-values.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/objectrtc.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/offline-apps.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/offscreencanvas.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/ogg-vorbis.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/ogv.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/ol-reversed.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/once-event-listener.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/online-status.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/opus.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/orientation-sensor.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/outline.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/pad-start-end.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/page-transition-events.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/pagevisibility.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/passive-event-listener.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/passkeys.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/passwordrules.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/path2d.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/payment-request.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/pdf-viewer.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/permissions-api.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/permissions-policy.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/picture-in-picture.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/picture.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/ping.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/png-alpha.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/pointer-events.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/pointer.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/pointerlock.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/portals.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/prefers-color-scheme.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/prefers-reduced-motion.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/progress.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/promise-finally.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/promises.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/proximity.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/proxy.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/publickeypinning.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/push-api.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/queryselector.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/readonly-attr.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/referrer-policy.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/registerprotocolhandler.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/rel-noopener.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/rel-noreferrer.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/rellist.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/rem.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/requestanimationframe.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/requestidlecallback.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/resizeobserver.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/resource-timing.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/rest-parameters.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/rtcpeerconnection.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/ruby.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/run-in.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/same-site-cookie-attribute.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/screen-orientation.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/script-async.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/script-defer.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/scrollintoview.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/scrollintoviewifneeded.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/sdch.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/selection-api.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/server-timing.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/serviceworkers.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/setimmediate.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/shadowdom.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/shadowdomv1.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/sharedarraybuffer.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/sharedworkers.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/sni.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/spdy.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/speech-recognition.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/speech-synthesis.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/spellcheck-attribute.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/sql-storage.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/srcset.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/stream.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/streams.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/stricttransportsecurity.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/style-scoped.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/subresource-bundling.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/subresource-integrity.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/svg-css.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/svg-filters.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/svg-fonts.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/svg-fragment.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/svg-html.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/svg-html5.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/svg-img.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/svg-smil.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/svg.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/sxg.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/tabindex-attr.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/template-literals.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/template.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/temporal.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/testfeat.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/text-decoration.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/text-emphasis.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/text-overflow.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/text-size-adjust.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/text-stroke.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/textcontent.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/textencoder.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/tls1-1.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/tls1-2.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/tls1-3.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/touch.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/transforms2d.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/transforms3d.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/trusted-types.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/ttf.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/typedarrays.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/u2f.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/unhandledrejection.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/upgradeinsecurerequests.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/url-scroll-to-text-fragment.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/url.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/urlsearchparams.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/use-strict.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/user-select-none.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/user-timing.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/variable-fonts.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/vector-effect.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/vibration.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/video.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/videotracks.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/view-transitions.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/viewport-unit-variants.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/viewport-units.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/wai-aria.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/wake-lock.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/wasm-bigint.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/wasm-bulk-memory.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/wasm-extended-const.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/wasm-gc.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/wasm-multi-memory.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/wasm-multi-value.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/wasm-mutable-globals.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/wasm-nontrapping-fptoint.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/wasm-reference-types.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/wasm-relaxed-simd.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/wasm-signext.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/wasm-simd.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/wasm-tail-calls.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/wasm-threads.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/wasm.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/wav.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/wbr-element.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/web-animation.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/web-app-manifest.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/web-bluetooth.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/web-serial.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/web-share.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/webauthn.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/webcodecs.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/webgl.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/webgl2.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/webgpu.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/webhid.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/webkit-user-drag.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/webm.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/webnfc.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/webp.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/websockets.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/webtransport.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/webusb.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/webvr.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/webvtt.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/webworkers.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/webxr.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/will-change.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/woff.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/woff2.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/word-break.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/wordwrap.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/x-doc-messaging.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/x-frame-options.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/xhr2.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/xhtml.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/xhtmlsmil.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/xml-serializer.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features/zstd.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/features.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/AD.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/AE.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/AF.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/AG.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/AI.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/AL.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/AM.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/AO.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/AR.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/AS.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/AT.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/AU.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/AW.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/AX.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/AZ.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/BA.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/BB.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/BD.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/BE.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/BF.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/BG.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/BH.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/BI.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/BJ.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/BM.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/BN.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/BO.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/BR.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/BS.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/BT.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/BW.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/BY.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/BZ.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/CA.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/CD.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/CF.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/CG.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/CH.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/CI.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/CK.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/CL.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/CM.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/CN.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/CO.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/CR.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/CU.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/CV.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/CX.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/CY.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/CZ.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/DE.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/DJ.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/DK.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/DM.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/DO.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/DZ.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/EC.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/EE.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/EG.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/ER.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/ES.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/ET.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/FI.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/FJ.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/FK.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/FM.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/FO.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/FR.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/GA.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/GB.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/GD.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/GE.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/GF.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/GG.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/GH.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/GI.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/GL.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/GM.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/GN.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/GP.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/GQ.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/GR.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/GT.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/GU.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/GW.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/GY.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/HK.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/HN.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/HR.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/HT.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/HU.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/ID.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/IE.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/IL.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/IM.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/IN.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/IQ.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/IR.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/IS.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/IT.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/JE.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/JM.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/JO.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/JP.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/KE.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/KG.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/KH.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/KI.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/KM.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/KN.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/KP.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/KR.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/KW.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/KY.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/KZ.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/LA.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/LB.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/LC.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/LI.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/LK.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/LR.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/LS.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/LT.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/LU.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/LV.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/LY.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/MA.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/MC.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/MD.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/ME.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/MG.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/MH.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/MK.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/ML.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/MM.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/MN.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/MO.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/MP.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/MQ.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/MR.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/MS.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/MT.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/MU.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/MV.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/MW.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/MX.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/MY.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/MZ.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/NA.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/NC.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/NE.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/NF.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/NG.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/NI.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/NL.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/NO.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/NP.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/NR.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/NU.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/NZ.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/OM.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/PA.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/PE.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/PF.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/PG.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/PH.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/PK.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/PL.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/PM.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/PN.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/PR.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/PS.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/PT.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/PW.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/PY.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/QA.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/RE.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/RO.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/RS.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/RU.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/RW.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/SA.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/SB.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/SC.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/SD.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/SE.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/SG.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/SH.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/SI.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/SK.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/SL.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/SM.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/SN.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/SO.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/SR.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/ST.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/SV.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/SY.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/SZ.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/TC.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/TD.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/TG.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/TH.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/TJ.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/TL.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/TM.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/TN.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/TO.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/TR.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/TT.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/TV.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/TW.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/TZ.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/UA.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/UG.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/US.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/UY.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/UZ.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/VA.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/VC.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/VE.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/VG.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/VI.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/VN.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/VU.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/WF.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/WS.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/YE.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/YT.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/ZA.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/ZM.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/ZW.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/alt-af.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/alt-an.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/alt-as.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/alt-eu.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/alt-na.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/alt-oc.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/alt-sa.js +0 -1
- package/dist/server/node_modules/caniuse-lite/data/regions/alt-ww.js +0 -1
- package/dist/server/node_modules/caniuse-lite/dist/lib/statuses.js +0 -9
- package/dist/server/node_modules/caniuse-lite/dist/lib/supported.js +0 -9
- package/dist/server/node_modules/caniuse-lite/dist/unpacker/agents.js +0 -47
- package/dist/server/node_modules/caniuse-lite/dist/unpacker/browserVersions.js +0 -1
- package/dist/server/node_modules/caniuse-lite/dist/unpacker/browsers.js +0 -1
- package/dist/server/node_modules/caniuse-lite/dist/unpacker/feature.js +0 -52
- package/dist/server/node_modules/caniuse-lite/dist/unpacker/features.js +0 -6
- package/dist/server/node_modules/caniuse-lite/dist/unpacker/index.js +0 -4
- package/dist/server/node_modules/caniuse-lite/dist/unpacker/region.js +0 -22
- package/dist/server/node_modules/caniuse-lite/package.json +0 -34
- package/dist/server/node_modules/fdir/LICENSE +0 -7
- package/dist/server/node_modules/fdir/README.md +0 -91
- package/dist/server/node_modules/fdir/dist/index.cjs +0 -588
- package/dist/server/node_modules/fdir/dist/index.d.cts +0 -155
- package/dist/server/node_modules/fdir/dist/index.d.mts +0 -155
- package/dist/server/node_modules/fdir/dist/index.mjs +0 -570
- package/dist/server/node_modules/fdir/package.json +0 -103
- package/dist/server/node_modules/jsesc/LICENSE-MIT.txt +0 -20
- package/dist/server/node_modules/jsesc/README.md +0 -422
- package/dist/server/node_modules/jsesc/bin/jsesc +0 -148
- package/dist/server/node_modules/jsesc/jsesc.js +0 -337
- package/dist/server/node_modules/jsesc/man/jsesc.1 +0 -94
- package/dist/server/node_modules/jsesc/package.json +0 -56
- package/dist/server/node_modules/lru-cache/LICENSE +0 -15
- package/dist/server/node_modules/lru-cache/README.md +0 -166
- package/dist/server/node_modules/lru-cache/index.js +0 -334
- package/dist/server/node_modules/lru-cache/package.json +0 -32
- package/dist/server/node_modules/resolve-pkg-maps/LICENSE +0 -21
- package/dist/server/node_modules/resolve-pkg-maps/README.md +0 -216
- package/dist/server/node_modules/resolve-pkg-maps/dist/index.cjs +0 -1
- package/dist/server/node_modules/resolve-pkg-maps/dist/index.d.cts +0 -11
- package/dist/server/node_modules/resolve-pkg-maps/dist/index.d.mts +0 -11
- package/dist/server/node_modules/resolve-pkg-maps/dist/index.mjs +0 -1
- package/dist/server/node_modules/resolve-pkg-maps/package.json +0 -42
- /package/dist/server/node_modules/@babel/{helper-module-imports → core}/LICENSE +0 -0
- /package/dist/server/node_modules/@jridgewell/{remapping → sourcemap-codec}/LICENSE +0 -0
package/dist/server/server.js
CHANGED
|
@@ -1058,7 +1058,7 @@ data:
|
|
|
1058
1058
|
`;if(J)G+=`id: ${J}
|
|
1059
1059
|
`;return G+=`data: ${JSON.stringify(X)}
|
|
1060
1060
|
|
|
1061
|
-
`,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((L)=>m5.parse(L));else W=[m5.parse(K)]}catch{return this.createJsonErrorResponse(400,-32700,"Parse error: Invalid JSON-RPC message")}let Z=W.some(hJ1);if(Z){if(this._initialized&&this.sessionId!==void 0)return this.createJsonErrorResponse(400,-32600,"Invalid Request: Server already initialized");if(W.length>1)return this.createJsonErrorResponse(400,-32600,"Invalid Request: Only one initialization request is allowed");if(this.sessionId=this.sessionIdGenerator?.(),this._initialized=!0,this.sessionId&&this._onsessioninitialized)await Promise.resolve(this._onsessioninitialized(this.sessionId))}if(!Z){let L=this.validateSession(Y);if(L)return L;let w=this.validateProtocolVersion(Y);if(w)return w}if(!W.some(nK)){for(let L of W)this.onmessage?.(L,{authInfo:Q?.authInfo,requestInfo:G});return new Response(null,{status:202})}let $=crypto.randomUUID(),F=W.find((L)=>hJ1(L)),V=F?F.params.protocolVersion:Y.headers.get("mcp-protocol-version")??T70;if(this._enableJsonResponse)return new Promise((L)=>{this._streamMapping.set($,{resolveJson:L,cleanup:()=>{this._streamMapping.delete($)}});for(let w of W)if(nK(w))this._requestToStreamMapping.set(w.id,$);for(let w of W)this.onmessage?.(w,{authInfo:Q?.authInfo,requestInfo:G})});let B=new TextEncoder,U,D=new ReadableStream({start:(L)=>{U=L},cancel:()=>{this._streamMapping.delete($)}}),z={"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"};if(this.sessionId!==void 0)z["mcp-session-id"]=this.sessionId;for(let L of W)if(nK(L))this._streamMapping.set($,{controller:U,encoder:B,cleanup:()=>{this._streamMapping.delete($);try{U.close()}catch{}}}),this._requestToStreamMapping.set(L.id,$);await this.writePrimingEvent(U,B,$,V);for(let L of W){let w,E;if(nK(L)&&this._eventStore&&V>="2025-11-25")w=()=>{this.closeSSEStream(L.id)},E=()=>{this.closeStandaloneSSEStream()};this.onmessage?.(L,{authInfo:Q?.authInfo,requestInfo:G,closeSSEStream:w,closeStandaloneSSEStream:E})}return new Response(D,{status:200,headers:z})}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&&!qD.includes(Q))return this.createJsonErrorResponse(400,-32000,`Bad Request: Unsupported protocol version: ${Q} (supported versions: ${qD.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(DZ(Y)||cL(Y))X=Y.id;if(X===void 0){if(DZ(Y)||cL(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(DZ(Y)||cL(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(($)=>this._requestResponseMap.get($));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 NA=S(()=>{_Q()});var MS0="SELF",gn=(Y)=>{return typeof Y==="object"&&Y!==null&&"handler"in Y&&"events"in Y&&typeof Y.handler==="function"&&Array.isArray(Y.events)},wS0=(Y)=>{return typeof Y==="object"&&Y!==null&&"handler"in Y&&"events"in Y&&typeof Y.handler==="function"&&Array.isArray(Y.events)},LS0="::",AS0=(Y)=>{let Q=Y.indexOf(LS0);if(Q===-1)return null;let X=Y.substring(0,Q),J=Y.substring(Q+LS0.length);return[X,J]},AE6=(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]},PS0=(Y)=>{if(gn(Y))return[];return Object.keys(Y)},PE6=(Y,Q)=>{if(gn(Y))return Y.events;let X=Y[Q];if(!X)return[];if(wS0(X))return X.events;return Object.keys(X)},xn=(Y,Q,X)=>{if(Y===MS0){if(!X)return console.warn("[Event] SELF binding used but no connectionId available"),null;return X}let J=Q[Y];if(!mV1(J))return console.warn(`[Event] Binding "${Y}" not found in state`),null;return J.value},EE6=(Y,Q,X)=>{let J=Q;if(gn(Y)){let K=[];for(let W of Y.events){let Z=AS0(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,$]=Z,F=xn(H,J,X);if(!F)continue;K.push({eventType:$,publisher:F})}return K}let G=[];for(let K of PS0(Y)){let W=xn(K,J,X);if(!W)continue;let Z=PE6(Y,K);for(let H of Z)G.push({eventType:H,publisher:W})}return G},TE6=(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},CE6=(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},RE6=(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},IE6=async(Y,Q,X,J,G)=>{let K=J;if(gn(Y)){let F=new Set;for(let B of Y.events){let U=AS0(B);if(!U)continue;let[D,z]=U,L=xn(D,K,G);if(!L)continue;F.add(`${L}:${z}`)}let V=Q.filter((B)=>{let U=`${B.source}:${B.type}`;return F.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 F of PS0(Y)){let V=xn(F,K,G);if(V)W.set(V,F)}let Z=TE6(Q),H=[];for(let[F,V]of Z){let B=W.get(F);if(!B)continue;let U=Y[B];if(!U)continue;if(wS0(U)){H.push((async()=>{try{return await U.handler({events:V},X)}catch(L){let w={};for(let E of V)w[E.id]={success:!1,error:L instanceof Error?L.message:String(L)};return{results:w}}})());continue}let D=U,z=CE6(V);for(let[L,w]of z){let E=D[L];if(!E)continue;H.push((async()=>{try{let T=await E({events:w},X),C={};for(let P of w)C[P.id]=T;return{results:C}}catch(T){let C={};for(let P of w)C[P.id]={success:!1,error:T instanceof Error?T.message:String(T)};return{results:C}}})())}}let $=await Promise.all(H);if($.length===0)return{success:!0};return RE6($)},un;var iV1=S(()=>{_n();un={subscriptions:EE6,execute:IE6,parseCron:AE6}});function p$(Y){return{...Y,execute:(Q)=>{return Y.execute({...Q,runtimeContext:cS(Q.runtimeContext)})}}}function aV1(Y){return Y&&"streamable"in Y&&Y.streamable===!0}var cS=(Y)=>{let Q=TS.getStore();if(!Q){if(Y)return Y;throw Error("Missing context, did you forget to call State.bind?")}return Q},jE6=(Y,Q)=>{let X=Q;return typeof X[Y]<"u"?X[Y]:Q?.MESH_REQUEST_CONTEXT?.state?.[Y]},SE6=({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?[p$({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=jE6(K,W.runtimeContext.env);if(Y&&Z&&H){let $=W.runtimeContext.env.MESH_REQUEST_CONTEXT?.connectionId,F=un.subscriptions(Y?.handlers??{},Z,$);if(await H.EVENT_SYNC_SUBSCRIPTIONS({subscriptions:F}),$){let V=F.filter((B)=>B.eventType.startsWith("cron/")&&B.publisher===$);await Promise.all(V.map(async(B)=>{let U=un.parseCron(B.eventType);if(U){let[,D]=U;await H.EVENT_PUBLISH({type:B.eventType,cron:D})}}))}}return Promise.resolve({})}})]:[],...Y?.handlers?[p$({id:"ON_EVENTS",description:"Receive and process CloudEvents from the event bus. Returns per-event or batch results.",inputSchema:yn,outputSchema:bn,execute:async(W)=>{let Z=W.runtimeContext.env,H=Z.MESH_REQUEST_CONTEXT?.state,$=Z.MESH_REQUEST_CONTEXT?.connectionId;return un.execute(Y.handlers,W.context.events,Z,H,$)}})]:[],p$({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`]:[]]})}})]},ES0=(Y)=>{let Q=async(G)=>{await Y.before?.(G);let K=new Q$({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 z=await U(B);if(Array.isArray(z))return z;return[z]})??[]).then((U)=>U.flat())})(G);Z.push(...SE6(Y));for(let B of Z)K.registerTool(B.id,{_meta:{streamable:aV1(B),...B._meta??{}},description:B.description,annotations:B.annotations,inputSchema:B.inputSchema&&"shape"in B.inputSchema?B.inputSchema.shape:q.object({}).shape,outputSchema:aV1(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 D=await B.execute({context:U,runtimeContext:cS()});if(aV1(B)&&D instanceof Response)return{structuredContent:{streamable:!0,status:D.status,statusText:D.statusText},content:[{type:"text",text:`Streaming response: ${D.status} ${D.statusText}`}]};return{structuredContent:D,content:[{type:"text",text:JSON.stringify(D)}]}});let $=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 z=await U(B);if(Array.isArray(z))return z;return[z]})??[]).then((U)=>U.flat())})(G);for(let B of $)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:cS()})});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 z=await U(B);if(Array.isArray(z))return z;return[z]})??[]).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 D=await B.read({uri:U,runtimeContext:cS()}),z={uri:D.uri};if(D.mimeType)z.mimeType=D.mimeType;if(D.text!==void 0)return{contents:[{uri:D.uri,mimeType:D.mimeType,text:D.text}]};else if(D.blob!==void 0)return{contents:[{uri:D.uri,mimeType:D.mimeType,blob:D.blob}]};return{contents:[{uri:D.uri,mimeType:D.mimeType,text:""}]}});return{server:K,tools:Z,prompts:$,resources:V}};return{fetch:async(G,K)=>{let{server:W}=await Q(K),Z=new dZ;await W.connect(Z);try{let H=await Z.handleRequest(G),$=H.headers.get("content-type");if(!($?.includes("text/event-stream")||$?.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)",$);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=TS.getStore();if(!W)throw Error("Missing state, did you forget to call State.bind?");let Z=W?.env,{tools:H}=await Q(Z),F=H.find((V)=>V.id===G)?.execute;if(!F)throw Error(`Tool ${G} not found or does not have an execute function`);return F({context:K,runtimeContext:cS()})}}};var mn=S(()=>{pS();IR();NA();u1();iV1();lV1();iV1()});var kE6=({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},TS0=(Y)=>()=>{return{...Y??{}}},vE6=({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=d9(X),$=H.metadata??{};Z={authorization:W,state:H.state??$.state??{},token:X,meshUrl:H.meshUrl??$.meshUrl,connectionId:H.connectionId??$.connectionId,organizationId:H.organizationId??$.organizationId,organizationName:H.organizationName??$.organizationName,organizationSlug:H.organizationSlug??$.organizationSlug,ensureAuthenticated:TS0(H.user??H.sub)}}else if(typeof X==="object"){Z=X;let H=d9(X.token),$=H.metadata??{},F=H.appName;Z.authorization??=W,Z.callerApp=F,Z.connectionId??=H.connectionId??$.connectionId,Z.ensureAuthenticated=TS0(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=cj0(Z),kE6({env:K,server:Q,url:J}),K},_E6,CS0=(Y)=>{let Q=ES0(Y),X=Y.cors??_E6,J=Y.oauth,G=J?ej0(J):null,K=async(W,Z,H)=>{let $=new URL(W.url);if(G){if($.pathname==="/.well-known/oauth-protected-resource"||$.pathname==="/mcp/.well-known/oauth-protected-resource")return G.handleProtectedResourceMetadata(W);if($.pathname==="/.well-known/oauth-authorization-server")return G.handleAuthorizationServerMetadata(W);if($.pathname==="/authorize")return G.handleAuthorize(W);if($.pathname==="/oauth/callback")return G.handleOAuthCallback(W);if($.pathname==="/token"&&W.method==="POST")return G.handleToken(W);if(($.pathname==="/register"||$.pathname==="/mcp/register")&&W.method==="POST")return G.handleClientRegistration(W)}if($.pathname==="/mcp"){if(W.method==="GET")return new Response("Method not allowed",{status:405});if(G&&!G.hasAuth(W)){let F=W.clone();try{if((await F.json())?.method!=="tools/list")return G.createUnauthorizedResponse(W)}catch{return G.createUnauthorizedResponse(W)}}return Q.fetch(W,Z,H)}if($.pathname.startsWith("/mcp/call-tool")){let F=$.pathname.split("/").pop();if(!F)return new Response("Not found",{status:404});let V=await W.json(),B=await Q.callTool({toolCallId:F,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 ij0(W,X??{});let $=vE6({authToken:W.headers.get("authorization")??null,env:{...process.env,...Z},server:Q,tokenOrContext:W.headers.get("x-mesh-token")??void 0,url:W.url}),F=await TS.run({req:W,env:$,ctx:H},async()=>await K(W,$,H));if(X!==!1)return aj0(F,W,X??{});return F}}};var RS0=S(()=>{B5();_n();rj0();lV1();mn();mn();_n();gV1();_E6={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 ln(Y){return Buffer.from(String(Y),"utf8").toString("base64")}function dn(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 NX(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 uz(Y){if(!Y)return[];return NX(Y.split(","))}function pn(Y,Q){if(!Y)return Q;try{return JSON.parse(Y)}catch{return Q}}function cn(Y){return Y?.["mcp.mesh"]??{}}function nn(Y){return Y.length?Y.join(","):null}function yE6(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 fE6(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 nS(Y,Q){if(!Q)return!0;if(Array.isArray(Q.conditions)&&Q.conditions.length){if(Q.operator==="and")return Q.conditions.every((X)=>nS(Y,X));if(Q.operator==="or")return Q.conditions.some((X)=>nS(Y,X));if(Q.operator==="not")return!Q.conditions.some((X)=>nS(Y,X))}return fE6(yE6(Y,Q.field),Q.operator,Q.value)}class iS{db;constructor(Y){this.db=Y}async create(Y){let Q=new Date().toISOString(),X=Y._meta??{},J=cn(X),G=NX(J.tags),K=NX(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:nn(G),categories:nn(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=cn(G),W=NX(K.tags),Z=NX(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=nn(W),H.categories=nn(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 $=await this.findById(Y,Q);if(!$)throw Error(`Registry item not found after update: ${Q}`);return $}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((D)=>this.deserialize(D)),K=NX(Q.tags),W=NX(Q.categories),Z=G.filter((D)=>{let z=cn(D._meta),L=NX(z.tags),w=NX(z.categories),E=K.length===0||K.every((P)=>L.includes(P)),T=W.length===0||W.every((P)=>w.includes(P)),C=nS(D,Q.where);return E&&T&&C}),$=dn(Q.cursor)??Q.offset??0,F=Q.limit??24,V=Z.slice($,$+F),B=$+F<Z.length,U=B?ln($+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=NX(Q.tags),K=NX(Q.categories),W=J.filter((U)=>{let D=cn(U._meta),z=NX(D.tags),L=NX(D.categories),w=G.length===0||G.every((C)=>z.includes(C)),E=K.length===0||K.every((C)=>L.includes(C)),T=nS(U,Q.where);return w&&E&&T}),H=dn(Q.cursor)??Q.offset??0,$=Q.limit??24,F=W.slice(H,H+$),V=H+$<W.length,B=V?ln(H+$):void 0;return{items:F,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 uz(Z.tags))G.set(H,(G.get(H)??0)+1);for(let H of uz(Z.categories))K.set(H,(K.get(H)??0)+1)}let W=(Z)=>Array.from(Z.entries()).map(([H,$])=>({value:H,count:$})).sort((H,$)=>H.value.localeCompare($.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=NX(Q.tags),Z=NX(Q.categories),H=G.filter((L)=>{if(K){let w=pn(L.server_json,{}),T=pn(L.meta_json,{})?.["mcp.mesh"]?.short_description??"";if(![L.id,L.title,L.description??"",w.name??"",w.description??"",T].join(" ").toLowerCase().includes(K))return!1}if(W.length>0){let w=NX(uz(L.tags));if(!W.every((E)=>w.includes(E)))return!1}if(Z.length>0){let w=NX(uz(L.categories));if(!Z.every((E)=>w.includes(E)))return!1}return!0}),F=dn(Q.cursor)??0,V=Q.limit??20,B=H.slice(F,F+V),U=F+V<H.length,D=U?ln(F+V):void 0;return{items:B.map((L)=>({id:L.id,title:L.title,tags:uz(L.tags),categories:uz(L.categories),is_public:L.is_public===1,is_unlisted:L.is_unlisted===1})),totalCount:H.length,hasMore:U,nextCursor:D}}deserialize(Y){let Q=pn(Y.server_json,{}),X=pn(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 rV1=()=>{};var an,bE6,rn,pZ,oV1,hE6,rq,LA,w5,mz,sV1,IS0,tV1,jS0,eV1,SS0,Yq1,kS0,MA,xE6,aS,gE6,on,Qq1,vS0,_S0,Xq1,yS0,fS0,bS0,hS0,xS0,gS0,uS0,mS0,uE6,Jq1,lS0,dS0,Gq1,pS0;var nY=S(()=>{M5();u1();an=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()}),bE6=q.object({name:q.string(),description:q.string().nullable().optional()}),rn=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(bE6).optional()}).optional()}).catchall(q.unknown()),pZ=q.object({id:q.string(),name:q.string().optional(),title:q.string(),description:q.string().nullable().optional(),_meta:rn.optional(),server:an,is_public:q.boolean().optional(),created_at:q.string(),updated_at:q.string(),created_by:q.string().optional()}),oV1=q.object({id:q.string(),title:q.string(),description:q.string().nullable().optional(),_meta:rn.optional(),server:an,is_public:q.boolean().optional()}),hE6=q.object({title:q.string().optional(),description:q.string().nullable().optional(),_meta:rn.optional(),server:an.optional(),is_public:q.boolean().optional()}),rq=lZ.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."),LA=q.object({items:q.array(pZ),totalCount:q.number(),hasMore:q.boolean().optional(),nextCursor:q.string().optional()}),w5=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."),mz=q.object({item:pZ.nullable()}),sV1=q.object({data:oV1}),IS0=q.object({item:pZ}),tV1=q.object({items:q.array(oV1).min(1)}),jS0=q.object({created:q.number(),errors:q.array(q.object({id:q.string(),error:q.string()}))}),eV1=q.object({id:q.string(),data:hE6}),SS0=q.object({item:pZ}),Yq1=q.object({id:q.string()}),kS0=q.object({item:pZ}),MA=q.object({tags:q.array(q.object({value:q.string(),count:q.number()})),categories:q.array(q.object({value:q.string(),count:q.number()}))}),xE6=q.enum(["description","short_description","tags","categories","readme"]),aS=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)."),gE6=q.object({id:q.string(),title:q.string(),tags:q.array(q.string()),categories:q.array(q.string()),is_public:q.boolean()}),on=q.object({items:q.array(gE6),totalCount:q.number(),hasMore:q.boolean().optional(),nextCursor:q.string().optional()}),Qq1=q.object({type:xE6.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()})}),vS0=q.object({result:q.string().optional(),items:q.array(q.string()).optional()}),_S0=q.enum(["pending","approved","rejected"]),Xq1=q.object({id:q.string(),organization_id:q.string(),requested_id:q.string().nullable().optional(),status:_S0,title:q.string(),description:q.string().nullable().optional(),_meta:rn.optional(),server:an,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()}),yS0=q.object({status:_S0.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()}),fS0=q.object({items:q.array(Xq1),totalCount:q.number()}),bS0=q.object({id:q.string(),status:q.enum(["approved","rejected"]),reviewerNotes:q.string().nullable().optional()}),hS0=q.object({item:Xq1}),xS0=q.object({pending:q.number()}),gS0=q.object({id:q.string()}),uS0=q.object({item:Xq1.nullable()}),mS0=q.object({data:oV1,requester:q.object({name:q.string().optional(),email:q.string().email().optional()}).optional()}),uE6=q.object({id:q.string(),name:q.string(),prefix:q.string(),createdAt:q.string()}),Jq1=q.object({name:q.string().min(1).max(64).describe("A descriptive name for this key")}),lS0=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()}),dS0=q.object({items:q.array(uE6)}),Gq1=q.object({keyId:q.string()}),pS0=q.object({success:q.boolean(),keyId:q.string()})});function mE6(Y,Q){let X=p$({id:"COLLECTION_REGISTRY_APP_LIST",description:"List public registry items",inputSchema:rq,outputSchema:LA,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=p$({id:"COLLECTION_REGISTRY_APP_GET",description:"Get a public registry item by ID or name",inputSchema:w5,outputSchema:mz,execute:async({context:Z})=>{let H=Z.id??Z.name;if(!H)return{item:null};let $=await Y.findByIdOrName(Q,H);if($&&$.is_public)return{item:$};return{item:null}}}),G=p$({id:"COLLECTION_REGISTRY_APP_VERSIONS",description:"Get available versions of a public registry item",inputSchema:w5,outputSchema:q.object({versions:q.array(mz.shape.item)}),execute:async({context:Z})=>{let H=Z.id??Z.name;if(!H)return{versions:[]};let $=await Y.findByIdOrName(Q,H);if($&&$.is_public)return{versions:[$]};return{versions:[]}}}),K=p$({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:aS,outputSchema:on,execute:async({context:Z})=>{return await Y.search(Q,Z,{publicOnly:!0})}}),W=p$({id:"COLLECTION_REGISTRY_APP_FILTERS",description:"Get available tags and categories for public registry items",inputSchema:q.object({}),outputSchema:MA,execute:async()=>{return await Y.getFilters(Q,{publicOnly:!0})}});return[X,K,J,G,W]}function Wq1(Y,Q){let X=Q.db,J=new iS(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=mE6(J,W.id),H=CS0({tools:()=>Z}),$=new URL(G.req.url),F=G.req.path.replace(`/org/${K}/registry`,""),V=new URL(F||"/",$.origin);$.searchParams.forEach((D,z)=>{V.searchParams.set(z,D)}),console.log(`[Public Registry MCP] Rewriting ${$.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 cS0=S(()=>{RS0();mn();u1();rV1();nY()});import{randomUUID as lE6}from"crypto";function nS0(Y,Q){if(!Y)return Q;try{return JSON.parse(Y)}catch{return Q}}class rS{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=lE6(),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(($)=>$.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(($)=>this.deserialize($)),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:nS0(Y.meta_json,{}),server:nS0(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 Zq1=()=>{};import{randomUUID as dE6}from"crypto";async function iS0(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 pE6(){let Y=new Uint8Array(32);return crypto.getRandomValues(Y),`prk_${Array.from(Y).map((X)=>X.toString(16).padStart(2,"0")).join("")}`}class oS{db;constructor(Y){this.db=Y}async generate(Y,Q){let X=dE6(),J=pE6(),G=await iS0(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 iS0(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 Kq1=()=>{};import{sql as cE6}from"kysely";import{randomUUID as aS0}from"crypto";async function iE6(Y){let Q=new Date().toISOString(),X=aS0(),J=jY.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:aS0(),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 cE6`SELECT pg_notify('mesh_events', ${X})`.execute(Y.db)}catch{}}async function aE6(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 rE6(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","=",hH).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):oS0;return{acceptPublishRequests:!0,requireApiToken:K.requireApiToken===!0,rateLimitEnabled:K.rateLimitEnabled===void 0?rS0:K.rateLimitEnabled===!0,rateLimitWindow:W,rateLimitMax:H}}}return{acceptPublishRequests:!1,requireApiToken:!1,rateLimitEnabled:rS0,rateLimitWindow:nE6,rateLimitMax:oS0}}async function oE6(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 sE6(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 Hq1(Y,Q){let{db:X,db:J}=Q,G=new rS(J),K=new oS(J);Y.post("/org/:orgRef/registry/publish-request",async(W)=>{let Z=W.req.param("orgRef"),H=await aE6(X,Z);if(!H)return W.json({error:"Organization not found"},404);let $=await rE6(X,H);if(!$.acceptPublishRequests)return W.json({error:"Publish requests are not enabled for this registry."},403);if($.requireApiToken){let D=W.req.header("Authorization"),z=D?.startsWith("Bearer ")?D.slice(7).trim():null;if(!z)return W.json({error:"API key required. Use Authorization: Bearer <key>"},401);if(!await K.validate(H,z))return W.json({error:"Invalid API key"},401)}if($.rateLimitEnabled){if(await oE6(J,H,$.rateLimitWindow)>=$.rateLimitMax)return W.json({error:"Too many publish requests. Please try again later.",retryAfterSeconds:$.rateLimitWindow==="minute"?60:3600},429)}let F;try{F=await W.req.json()}catch{return W.json({error:"Invalid JSON body"},400)}let V=mS0.safeParse(F);if(!V.success)return W.json({error:"Invalid publish request payload",details:q.treeifyError(V.error)},400);let B=await sE6(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 iE6({db:X,organizationId:H,request:U})}catch(D){console.warn("[private-registry] failed to emit publish-request event:",D)}return W.json({id:U.id,requested_id:U.requested_id,status:U.status},201)})}var rS0=!0,nE6="hour",oS0=100;var sS0=S(()=>{$Y();u1();bz();Zq1();Kq1();nY()});var tS0=S(()=>{cS0();sS0()});function eS0(Y){$q1=Y}function k4(){if(!$q1)throw Error(`Plugin storage not initialized. Make sure the "${hH}" plugin is enabled.`);return $q1}async function tE6(Y){if(!Y.organization)throw Error("Organization context required");return await Y.access.check(),Y}function W6(Y,Q){return async(X,J)=>{let G=await tE6(J);return Q(X,G)}}function eE6(Y){if(!Y)return{};if(typeof Y==="string")try{return JSON.parse(Y)}catch{return{}}if(typeof Y==="object")return Y;return{}}async function sS(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","=",hH).execute()).map((K)=>eE6(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 $q1=null;var W9=S(()=>{bz()});import{randomUUID as Yk0}from"crypto";function Qk0(Y,Q){if(!Y)return Q;try{return JSON.parse(Y)}catch{return Q}}class Fq1{db;constructor(Y){this.db=Y}async create(Y){let Q=Yk0(),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:Qk0(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 Vq1{db;constructor(Y){this.db=Y}async create(Y){let Q=Yk0(),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:Qk0(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 Xk0=()=>{};import{randomUUID as Y26}from"crypto";class qq1{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:Y26(),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 Jk0=()=>{};function Gk0(Y){let Q=Y.db,X={items:new iS(Q),publishRequests:new rS(Q),publishApiKeys:new oS(Q),monitorRuns:new Fq1(Q),monitorResults:new Vq1(Q),monitorConnections:new qq1(Q)};return eS0(X),X}var Wk0=S(()=>{W9();rV1();Zq1();Kq1();Xk0();Jk0()});var Zk0;var Kk0=S(()=>{nY();W9();Zk0={name:"REGISTRY_ITEM_BULK_CREATE",description:"Create many private registry items at once",inputSchema:tV1,outputSchema:jS0,handler:W6(tV1,async(Y,Q)=>{let X=k4(),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 Q26(Y){return Array.from(new Set(Y.map((Q)=>Q.trim().toLowerCase()).filter((Q)=>Q.length>0)))}function X26(Y){let X=Y.structuredContent?.content?.filter((J)=>J.type==="text"&&typeof J.text==="string").map((J)=>J.text??"").join(`
|
|
1061
|
+
`,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((L)=>m5.parse(L));else W=[m5.parse(K)]}catch{return this.createJsonErrorResponse(400,-32700,"Parse error: Invalid JSON-RPC message")}let Z=W.some(hJ1);if(Z){if(this._initialized&&this.sessionId!==void 0)return this.createJsonErrorResponse(400,-32600,"Invalid Request: Server already initialized");if(W.length>1)return this.createJsonErrorResponse(400,-32600,"Invalid Request: Only one initialization request is allowed");if(this.sessionId=this.sessionIdGenerator?.(),this._initialized=!0,this.sessionId&&this._onsessioninitialized)await Promise.resolve(this._onsessioninitialized(this.sessionId))}if(!Z){let L=this.validateSession(Y);if(L)return L;let w=this.validateProtocolVersion(Y);if(w)return w}if(!W.some(nK)){for(let L of W)this.onmessage?.(L,{authInfo:Q?.authInfo,requestInfo:G});return new Response(null,{status:202})}let $=crypto.randomUUID(),F=W.find((L)=>hJ1(L)),V=F?F.params.protocolVersion:Y.headers.get("mcp-protocol-version")??T70;if(this._enableJsonResponse)return new Promise((L)=>{this._streamMapping.set($,{resolveJson:L,cleanup:()=>{this._streamMapping.delete($)}});for(let w of W)if(nK(w))this._requestToStreamMapping.set(w.id,$);for(let w of W)this.onmessage?.(w,{authInfo:Q?.authInfo,requestInfo:G})});let B=new TextEncoder,U,D=new ReadableStream({start:(L)=>{U=L},cancel:()=>{this._streamMapping.delete($)}}),z={"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"};if(this.sessionId!==void 0)z["mcp-session-id"]=this.sessionId;for(let L of W)if(nK(L))this._streamMapping.set($,{controller:U,encoder:B,cleanup:()=>{this._streamMapping.delete($);try{U.close()}catch{}}}),this._requestToStreamMapping.set(L.id,$);await this.writePrimingEvent(U,B,$,V);for(let L of W){let w,E;if(nK(L)&&this._eventStore&&V>="2025-11-25")w=()=>{this.closeSSEStream(L.id)},E=()=>{this.closeStandaloneSSEStream()};this.onmessage?.(L,{authInfo:Q?.authInfo,requestInfo:G,closeSSEStream:w,closeStandaloneSSEStream:E})}return new Response(D,{status:200,headers:z})}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&&!qD.includes(Q))return this.createJsonErrorResponse(400,-32000,`Bad Request: Unsupported protocol version: ${Q} (supported versions: ${qD.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(DZ(Y)||cL(Y))X=Y.id;if(X===void 0){if(DZ(Y)||cL(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(DZ(Y)||cL(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(($)=>this._requestResponseMap.get($));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 NA=S(()=>{_Q()});var MS0="SELF",gn=(Y)=>{return typeof Y==="object"&&Y!==null&&"handler"in Y&&"events"in Y&&typeof Y.handler==="function"&&Array.isArray(Y.events)},wS0=(Y)=>{return typeof Y==="object"&&Y!==null&&"handler"in Y&&"events"in Y&&typeof Y.handler==="function"&&Array.isArray(Y.events)},LS0="::",AS0=(Y)=>{let Q=Y.indexOf(LS0);if(Q===-1)return null;let X=Y.substring(0,Q),J=Y.substring(Q+LS0.length);return[X,J]},AE6=(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]},PS0=(Y)=>{if(gn(Y))return[];return Object.keys(Y)},PE6=(Y,Q)=>{if(gn(Y))return Y.events;let X=Y[Q];if(!X)return[];if(wS0(X))return X.events;return Object.keys(X)},xn=(Y,Q,X)=>{if(Y===MS0){if(!X)return console.warn("[Event] SELF binding used but no connectionId available"),null;return X}let J=Q[Y];if(!mV1(J))return console.warn(`[Event] Binding "${Y}" not found in state`),null;return J.value},EE6=(Y,Q,X)=>{let J=Q;if(gn(Y)){let K=[];for(let W of Y.events){let Z=AS0(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,$]=Z,F=xn(H,J,X);if(!F)continue;K.push({eventType:$,publisher:F})}return K}let G=[];for(let K of PS0(Y)){let W=xn(K,J,X);if(!W)continue;let Z=PE6(Y,K);for(let H of Z)G.push({eventType:H,publisher:W})}return G},TE6=(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},CE6=(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},RE6=(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},IE6=async(Y,Q,X,J,G)=>{let K=J;if(gn(Y)){let F=new Set;for(let B of Y.events){let U=AS0(B);if(!U)continue;let[D,z]=U,L=xn(D,K,G);if(!L)continue;F.add(`${L}:${z}`)}let V=Q.filter((B)=>{let U=`${B.source}:${B.type}`;return F.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 F of PS0(Y)){let V=xn(F,K,G);if(V)W.set(V,F)}let Z=TE6(Q),H=[];for(let[F,V]of Z){let B=W.get(F);if(!B)continue;let U=Y[B];if(!U)continue;if(wS0(U)){H.push((async()=>{try{return await U.handler({events:V},X)}catch(L){let w={};for(let E of V)w[E.id]={success:!1,error:L instanceof Error?L.message:String(L)};return{results:w}}})());continue}let D=U,z=CE6(V);for(let[L,w]of z){let E=D[L];if(!E)continue;H.push((async()=>{try{let T=await E({events:w},X),C={};for(let P of w)C[P.id]=T;return{results:C}}catch(T){let C={};for(let P of w)C[P.id]={success:!1,error:T instanceof Error?T.message:String(T)};return{results:C}}})())}}let $=await Promise.all(H);if($.length===0)return{success:!0};return RE6($)},un;var iV1=S(()=>{_n();un={subscriptions:EE6,execute:IE6,parseCron:AE6}});function p$(Y){return{...Y,execute:(Q)=>{return Y.execute({...Q,runtimeContext:cS(Q.runtimeContext)})}}}function aV1(Y){return Y&&"streamable"in Y&&Y.streamable===!0}var cS=(Y)=>{let Q=TS.getStore();if(!Q){if(Y)return Y;throw Error("Missing context, did you forget to call State.bind?")}return Q},jE6=(Y,Q)=>{let X=Q;return typeof X[Y]<"u"?X[Y]:Q?.MESH_REQUEST_CONTEXT?.state?.[Y]},SE6=({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?[p$({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=jE6(K,W.runtimeContext.env);if(Y&&Z&&H){let $=W.runtimeContext.env.MESH_REQUEST_CONTEXT?.connectionId,F=un.subscriptions(Y?.handlers??{},Z,$);if(await H.EVENT_SYNC_SUBSCRIPTIONS({subscriptions:F}),$){let V=F.filter((B)=>B.eventType.startsWith("cron/")&&B.publisher===$);await Promise.all(V.map(async(B)=>{let U=un.parseCron(B.eventType);if(U){let[,D]=U;await H.EVENT_PUBLISH({type:B.eventType,cron:D})}}))}}return Promise.resolve({})}})]:[],...Y?.handlers?[p$({id:"ON_EVENTS",description:"Receive and process CloudEvents from the event bus. Returns per-event or batch results.",inputSchema:yn,outputSchema:bn,execute:async(W)=>{let Z=W.runtimeContext.env,H=Z.MESH_REQUEST_CONTEXT?.state,$=Z.MESH_REQUEST_CONTEXT?.connectionId;return un.execute(Y.handlers,W.context.events,Z,H,$)}})]:[],p$({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`]:[]]})}})]},ES0=(Y)=>{let Q=async(G)=>{await Y.before?.(G);let K=new Q$({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 z=await U(B);if(Array.isArray(z))return z;return[z]})??[]).then((U)=>U.flat())})(G);Z.push(...SE6(Y));for(let B of Z)K.registerTool(B.id,{_meta:{streamable:aV1(B),...B._meta??{}},description:B.description,annotations:B.annotations,inputSchema:B.inputSchema&&"shape"in B.inputSchema?B.inputSchema.shape:q.object({}).shape,outputSchema:aV1(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 D=await B.execute({context:U,runtimeContext:cS()});if(aV1(B)&&D instanceof Response)return{structuredContent:{streamable:!0,status:D.status,statusText:D.statusText},content:[{type:"text",text:`Streaming response: ${D.status} ${D.statusText}`}]};return{structuredContent:D,content:[{type:"text",text:JSON.stringify(D)}]}});let $=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 z=await U(B);if(Array.isArray(z))return z;return[z]})??[]).then((U)=>U.flat())})(G);for(let B of $)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:cS()})});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 z=await U(B);if(Array.isArray(z))return z;return[z]})??[]).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 D=await B.read({uri:U,runtimeContext:cS()}),z={uri:D.uri};if(D.mimeType)z.mimeType=D.mimeType;if(D.text!==void 0)return{contents:[{uri:D.uri,mimeType:D.mimeType,text:D.text}]};else if(D.blob!==void 0)return{contents:[{uri:D.uri,mimeType:D.mimeType,blob:D.blob}]};return{contents:[{uri:D.uri,mimeType:D.mimeType,text:""}]}});return{server:K,tools:Z,prompts:$,resources:V}};return{fetch:async(G,K)=>{let{server:W}=await Q(K),Z=new dZ;await W.connect(Z);try{let H=await Z.handleRequest(G),$=H.headers.get("content-type");if(!($?.includes("text/event-stream")||$?.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)",$);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=TS.getStore();if(!W)throw Error("Missing state, did you forget to call State.bind?");let Z=W?.env,{tools:H}=await Q(Z),F=H.find((V)=>V.id===G)?.execute;if(!F)throw Error(`Tool ${G} not found or does not have an execute function`);return F({context:K,runtimeContext:cS()})}}};var mn=S(()=>{pS();IR();NA();u1();iV1();lV1();iV1()});var kE6=({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},TS0=(Y)=>()=>{return{...Y??{}}},vE6=({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=d9(X),$=H.metadata??{};Z={authorization:W,state:H.state??$.state??{},token:X,meshUrl:H.meshUrl??$.meshUrl,connectionId:H.connectionId??$.connectionId,organizationId:H.organizationId??$.organizationId,organizationName:H.organizationName??$.organizationName,organizationSlug:H.organizationSlug??$.organizationSlug,ensureAuthenticated:TS0(H.user??H.sub)}}else if(typeof X==="object"){Z=X;let H=d9(X.token),$=H.metadata??{},F=H.appName;Z.authorization??=W,Z.callerApp=F,Z.connectionId??=H.connectionId??$.connectionId,Z.organizationId??=H.organizationId??$.organizationId,Z.organizationName??=H.organizationName??$.organizationName,Z.organizationSlug??=H.organizationSlug??$.organizationSlug,Z.ensureAuthenticated=TS0(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=cj0(Z),kE6({env:K,server:Q,url:J}),K},_E6,CS0=(Y)=>{let Q=ES0(Y),X=Y.cors??_E6,J=Y.oauth,G=J?ej0(J):null,K=async(W,Z,H)=>{let $=new URL(W.url);if(G){if($.pathname==="/.well-known/oauth-protected-resource"||$.pathname==="/mcp/.well-known/oauth-protected-resource")return G.handleProtectedResourceMetadata(W);if($.pathname==="/.well-known/oauth-authorization-server")return G.handleAuthorizationServerMetadata(W);if($.pathname==="/authorize")return G.handleAuthorize(W);if($.pathname==="/oauth/callback")return G.handleOAuthCallback(W);if($.pathname==="/token"&&W.method==="POST")return G.handleToken(W);if(($.pathname==="/register"||$.pathname==="/mcp/register")&&W.method==="POST")return G.handleClientRegistration(W)}if($.pathname==="/mcp"){if(W.method==="GET")return new Response("Method not allowed",{status:405});if(G&&!G.hasAuth(W)){let F=W.clone();try{if((await F.json())?.method!=="tools/list")return G.createUnauthorizedResponse(W)}catch{return G.createUnauthorizedResponse(W)}}return Q.fetch(W,Z,H)}if($.pathname.startsWith("/mcp/call-tool")){let F=$.pathname.split("/").pop();if(!F)return new Response("Not found",{status:404});let V=await W.json(),B=await Q.callTool({toolCallId:F,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 ij0(W,X??{});let $=vE6({authToken:W.headers.get("authorization")??null,env:{...process.env,...Z},server:Q,tokenOrContext:W.headers.get("x-mesh-token")??void 0,url:W.url}),F=await TS.run({req:W,env:$,ctx:H},async()=>await K(W,$,H));if(X!==!1)return aj0(F,W,X??{});return F}}};var RS0=S(()=>{B5();_n();rj0();lV1();mn();mn();_n();gV1();_E6={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 ln(Y){return Buffer.from(String(Y),"utf8").toString("base64")}function dn(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 NX(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 uz(Y){if(!Y)return[];return NX(Y.split(","))}function pn(Y,Q){if(!Y)return Q;try{return JSON.parse(Y)}catch{return Q}}function cn(Y){return Y?.["mcp.mesh"]??{}}function nn(Y){return Y.length?Y.join(","):null}function yE6(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 fE6(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 nS(Y,Q){if(!Q)return!0;if(Array.isArray(Q.conditions)&&Q.conditions.length){if(Q.operator==="and")return Q.conditions.every((X)=>nS(Y,X));if(Q.operator==="or")return Q.conditions.some((X)=>nS(Y,X));if(Q.operator==="not")return!Q.conditions.some((X)=>nS(Y,X))}return fE6(yE6(Y,Q.field),Q.operator,Q.value)}class iS{db;constructor(Y){this.db=Y}async create(Y){let Q=new Date().toISOString(),X=Y._meta??{},J=cn(X),G=NX(J.tags),K=NX(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:nn(G),categories:nn(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=cn(G),W=NX(K.tags),Z=NX(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=nn(W),H.categories=nn(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 $=await this.findById(Y,Q);if(!$)throw Error(`Registry item not found after update: ${Q}`);return $}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((D)=>this.deserialize(D)),K=NX(Q.tags),W=NX(Q.categories),Z=G.filter((D)=>{let z=cn(D._meta),L=NX(z.tags),w=NX(z.categories),E=K.length===0||K.every((P)=>L.includes(P)),T=W.length===0||W.every((P)=>w.includes(P)),C=nS(D,Q.where);return E&&T&&C}),$=dn(Q.cursor)??Q.offset??0,F=Q.limit??24,V=Z.slice($,$+F),B=$+F<Z.length,U=B?ln($+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=NX(Q.tags),K=NX(Q.categories),W=J.filter((U)=>{let D=cn(U._meta),z=NX(D.tags),L=NX(D.categories),w=G.length===0||G.every((C)=>z.includes(C)),E=K.length===0||K.every((C)=>L.includes(C)),T=nS(U,Q.where);return w&&E&&T}),H=dn(Q.cursor)??Q.offset??0,$=Q.limit??24,F=W.slice(H,H+$),V=H+$<W.length,B=V?ln(H+$):void 0;return{items:F,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 uz(Z.tags))G.set(H,(G.get(H)??0)+1);for(let H of uz(Z.categories))K.set(H,(K.get(H)??0)+1)}let W=(Z)=>Array.from(Z.entries()).map(([H,$])=>({value:H,count:$})).sort((H,$)=>H.value.localeCompare($.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=NX(Q.tags),Z=NX(Q.categories),H=G.filter((L)=>{if(K){let w=pn(L.server_json,{}),T=pn(L.meta_json,{})?.["mcp.mesh"]?.short_description??"";if(![L.id,L.title,L.description??"",w.name??"",w.description??"",T].join(" ").toLowerCase().includes(K))return!1}if(W.length>0){let w=NX(uz(L.tags));if(!W.every((E)=>w.includes(E)))return!1}if(Z.length>0){let w=NX(uz(L.categories));if(!Z.every((E)=>w.includes(E)))return!1}return!0}),F=dn(Q.cursor)??0,V=Q.limit??20,B=H.slice(F,F+V),U=F+V<H.length,D=U?ln(F+V):void 0;return{items:B.map((L)=>({id:L.id,title:L.title,tags:uz(L.tags),categories:uz(L.categories),is_public:L.is_public===1,is_unlisted:L.is_unlisted===1})),totalCount:H.length,hasMore:U,nextCursor:D}}deserialize(Y){let Q=pn(Y.server_json,{}),X=pn(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 rV1=()=>{};var an,bE6,rn,pZ,oV1,hE6,rq,LA,w5,mz,sV1,IS0,tV1,jS0,eV1,SS0,Yq1,kS0,MA,xE6,aS,gE6,on,Qq1,vS0,_S0,Xq1,yS0,fS0,bS0,hS0,xS0,gS0,uS0,mS0,uE6,Jq1,lS0,dS0,Gq1,pS0;var nY=S(()=>{M5();u1();an=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()}),bE6=q.object({name:q.string(),description:q.string().nullable().optional()}),rn=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(bE6).optional()}).optional()}).catchall(q.unknown()),pZ=q.object({id:q.string(),name:q.string().optional(),title:q.string(),description:q.string().nullable().optional(),_meta:rn.optional(),server:an,is_public:q.boolean().optional(),created_at:q.string(),updated_at:q.string(),created_by:q.string().optional()}),oV1=q.object({id:q.string(),title:q.string(),description:q.string().nullable().optional(),_meta:rn.optional(),server:an,is_public:q.boolean().optional()}),hE6=q.object({title:q.string().optional(),description:q.string().nullable().optional(),_meta:rn.optional(),server:an.optional(),is_public:q.boolean().optional()}),rq=lZ.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."),LA=q.object({items:q.array(pZ),totalCount:q.number(),hasMore:q.boolean().optional(),nextCursor:q.string().optional()}),w5=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."),mz=q.object({item:pZ.nullable()}),sV1=q.object({data:oV1}),IS0=q.object({item:pZ}),tV1=q.object({items:q.array(oV1).min(1)}),jS0=q.object({created:q.number(),errors:q.array(q.object({id:q.string(),error:q.string()}))}),eV1=q.object({id:q.string(),data:hE6}),SS0=q.object({item:pZ}),Yq1=q.object({id:q.string()}),kS0=q.object({item:pZ}),MA=q.object({tags:q.array(q.object({value:q.string(),count:q.number()})),categories:q.array(q.object({value:q.string(),count:q.number()}))}),xE6=q.enum(["description","short_description","tags","categories","readme"]),aS=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)."),gE6=q.object({id:q.string(),title:q.string(),tags:q.array(q.string()),categories:q.array(q.string()),is_public:q.boolean()}),on=q.object({items:q.array(gE6),totalCount:q.number(),hasMore:q.boolean().optional(),nextCursor:q.string().optional()}),Qq1=q.object({type:xE6.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()})}),vS0=q.object({result:q.string().optional(),items:q.array(q.string()).optional()}),_S0=q.enum(["pending","approved","rejected"]),Xq1=q.object({id:q.string(),organization_id:q.string(),requested_id:q.string().nullable().optional(),status:_S0,title:q.string(),description:q.string().nullable().optional(),_meta:rn.optional(),server:an,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()}),yS0=q.object({status:_S0.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()}),fS0=q.object({items:q.array(Xq1),totalCount:q.number()}),bS0=q.object({id:q.string(),status:q.enum(["approved","rejected"]),reviewerNotes:q.string().nullable().optional()}),hS0=q.object({item:Xq1}),xS0=q.object({pending:q.number()}),gS0=q.object({id:q.string()}),uS0=q.object({item:Xq1.nullable()}),mS0=q.object({data:oV1,requester:q.object({name:q.string().optional(),email:q.string().email().optional()}).optional()}),uE6=q.object({id:q.string(),name:q.string(),prefix:q.string(),createdAt:q.string()}),Jq1=q.object({name:q.string().min(1).max(64).describe("A descriptive name for this key")}),lS0=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()}),dS0=q.object({items:q.array(uE6)}),Gq1=q.object({keyId:q.string()}),pS0=q.object({success:q.boolean(),keyId:q.string()})});function mE6(Y,Q){let X=p$({id:"COLLECTION_REGISTRY_APP_LIST",description:"List public registry items",inputSchema:rq,outputSchema:LA,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=p$({id:"COLLECTION_REGISTRY_APP_GET",description:"Get a public registry item by ID or name",inputSchema:w5,outputSchema:mz,execute:async({context:Z})=>{let H=Z.id??Z.name;if(!H)return{item:null};let $=await Y.findByIdOrName(Q,H);if($&&$.is_public)return{item:$};return{item:null}}}),G=p$({id:"COLLECTION_REGISTRY_APP_VERSIONS",description:"Get available versions of a public registry item",inputSchema:w5,outputSchema:q.object({versions:q.array(mz.shape.item)}),execute:async({context:Z})=>{let H=Z.id??Z.name;if(!H)return{versions:[]};let $=await Y.findByIdOrName(Q,H);if($&&$.is_public)return{versions:[$]};return{versions:[]}}}),K=p$({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:aS,outputSchema:on,execute:async({context:Z})=>{return await Y.search(Q,Z,{publicOnly:!0})}}),W=p$({id:"COLLECTION_REGISTRY_APP_FILTERS",description:"Get available tags and categories for public registry items",inputSchema:q.object({}),outputSchema:MA,execute:async()=>{return await Y.getFilters(Q,{publicOnly:!0})}});return[X,K,J,G,W]}function Wq1(Y,Q){let X=Q.db,J=new iS(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=mE6(J,W.id),H=CS0({tools:()=>Z}),$=new URL(G.req.url),F=G.req.path.replace(`/org/${K}/registry`,""),V=new URL(F||"/",$.origin);$.searchParams.forEach((D,z)=>{V.searchParams.set(z,D)}),console.log(`[Public Registry MCP] Rewriting ${$.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 cS0=S(()=>{RS0();mn();u1();rV1();nY()});import{randomUUID as lE6}from"crypto";function nS0(Y,Q){if(!Y)return Q;try{return JSON.parse(Y)}catch{return Q}}class rS{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=lE6(),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(($)=>$.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(($)=>this.deserialize($)),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:nS0(Y.meta_json,{}),server:nS0(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 Zq1=()=>{};import{randomUUID as dE6}from"crypto";async function iS0(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 pE6(){let Y=new Uint8Array(32);return crypto.getRandomValues(Y),`prk_${Array.from(Y).map((X)=>X.toString(16).padStart(2,"0")).join("")}`}class oS{db;constructor(Y){this.db=Y}async generate(Y,Q){let X=dE6(),J=pE6(),G=await iS0(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 iS0(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 Kq1=()=>{};import{sql as cE6}from"kysely";import{randomUUID as aS0}from"crypto";async function iE6(Y){let Q=new Date().toISOString(),X=aS0(),J=jY.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:aS0(),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 cE6`SELECT pg_notify('mesh_events', ${X})`.execute(Y.db)}catch{}}async function aE6(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 rE6(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","=",hH).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):oS0;return{acceptPublishRequests:!0,requireApiToken:K.requireApiToken===!0,rateLimitEnabled:K.rateLimitEnabled===void 0?rS0:K.rateLimitEnabled===!0,rateLimitWindow:W,rateLimitMax:H}}}return{acceptPublishRequests:!1,requireApiToken:!1,rateLimitEnabled:rS0,rateLimitWindow:nE6,rateLimitMax:oS0}}async function oE6(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 sE6(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 Hq1(Y,Q){let{db:X,db:J}=Q,G=new rS(J),K=new oS(J);Y.post("/org/:orgRef/registry/publish-request",async(W)=>{let Z=W.req.param("orgRef"),H=await aE6(X,Z);if(!H)return W.json({error:"Organization not found"},404);let $=await rE6(X,H);if(!$.acceptPublishRequests)return W.json({error:"Publish requests are not enabled for this registry."},403);if($.requireApiToken){let D=W.req.header("Authorization"),z=D?.startsWith("Bearer ")?D.slice(7).trim():null;if(!z)return W.json({error:"API key required. Use Authorization: Bearer <key>"},401);if(!await K.validate(H,z))return W.json({error:"Invalid API key"},401)}if($.rateLimitEnabled){if(await oE6(J,H,$.rateLimitWindow)>=$.rateLimitMax)return W.json({error:"Too many publish requests. Please try again later.",retryAfterSeconds:$.rateLimitWindow==="minute"?60:3600},429)}let F;try{F=await W.req.json()}catch{return W.json({error:"Invalid JSON body"},400)}let V=mS0.safeParse(F);if(!V.success)return W.json({error:"Invalid publish request payload",details:q.treeifyError(V.error)},400);let B=await sE6(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 iE6({db:X,organizationId:H,request:U})}catch(D){console.warn("[private-registry] failed to emit publish-request event:",D)}return W.json({id:U.id,requested_id:U.requested_id,status:U.status},201)})}var rS0=!0,nE6="hour",oS0=100;var sS0=S(()=>{$Y();u1();bz();Zq1();Kq1();nY()});var tS0=S(()=>{cS0();sS0()});function eS0(Y){$q1=Y}function k4(){if(!$q1)throw Error(`Plugin storage not initialized. Make sure the "${hH}" plugin is enabled.`);return $q1}async function tE6(Y){if(!Y.organization)throw Error("Organization context required");return await Y.access.check(),Y}function W6(Y,Q){return async(X,J)=>{let G=await tE6(J);return Q(X,G)}}function eE6(Y){if(!Y)return{};if(typeof Y==="string")try{return JSON.parse(Y)}catch{return{}}if(typeof Y==="object")return Y;return{}}async function sS(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","=",hH).execute()).map((K)=>eE6(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 $q1=null;var W9=S(()=>{bz()});import{randomUUID as Yk0}from"crypto";function Qk0(Y,Q){if(!Y)return Q;try{return JSON.parse(Y)}catch{return Q}}class Fq1{db;constructor(Y){this.db=Y}async create(Y){let Q=Yk0(),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:Qk0(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 Vq1{db;constructor(Y){this.db=Y}async create(Y){let Q=Yk0(),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:Qk0(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 Xk0=()=>{};import{randomUUID as Y26}from"crypto";class qq1{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:Y26(),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 Jk0=()=>{};function Gk0(Y){let Q=Y.db,X={items:new iS(Q),publishRequests:new rS(Q),publishApiKeys:new oS(Q),monitorRuns:new Fq1(Q),monitorResults:new Vq1(Q),monitorConnections:new qq1(Q)};return eS0(X),X}var Wk0=S(()=>{W9();rV1();Zq1();Kq1();Xk0();Jk0()});var Zk0;var Kk0=S(()=>{nY();W9();Zk0={name:"REGISTRY_ITEM_BULK_CREATE",description:"Create many private registry items at once",inputSchema:tV1,outputSchema:jS0,handler:W6(tV1,async(Y,Q)=>{let X=k4(),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 Q26(Y){return Array.from(new Set(Y.map((Q)=>Q.trim().toLowerCase()).filter((Q)=>Q.length>0)))}function X26(Y){let X=Y.structuredContent?.content?.filter((J)=>J.type==="text"&&typeof J.text==="string").map((J)=>J.text??"").join(`
|
|
1062
1062
|
`).trim();if(X)return X;return Y.content?.filter((J)=>J.type==="text"&&typeof J.text==="string").map((J)=>J.text??"").join(`
|
|
1063
1063
|
`).trim()??""}function J26(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.
|
|
1064
1064
|
Rules:
|
|
@@ -1363,7 +1363,7 @@ ${W.stack}`;Z.unsubscribe(),K.reject(H)}else if(H=(0,Zi6.isRequestError)($),H){i
|
|
|
1363
1363
|
|
|
1364
1364
|
${W.stack}`;K.reject(H)}else K.resolve($)}});return Z.requestSubject=Y,this.protocol.publish(Y,Q,{reply:G,headers:X.headers}),K}else{let G=new $t0.RequestOne(this.protocol.muxSubscriptions,Y,X,J);this.protocol.request(G);try{this.publish(Y,Q,{reply:`${this.protocol.muxSubscriptions.baseInbox}${G.token}`,headers:X.headers})}catch(W){G.cancel(W)}let K=Promise.race([G.timer,G.deferred]);return K.catch(()=>{G.cancel()}),K}}flush(){if(this.isClosed())return Promise.reject(I5.NatsError.errorForCode(IY.ErrorCode.ConnectionClosed));return this.protocol.flush()}drain(){if(this.isClosed())return Promise.reject(I5.NatsError.errorForCode(IY.ErrorCode.ConnectionClosed));if(this.isDraining())return Promise.reject(I5.NatsError.errorForCode(IY.ErrorCode.ConnectionDraining));return this.draining=!0,this.protocol.drain()}isClosed(){return this.protocol.isClosed()}isDraining(){return this.draining}getServer(){let Y=this.protocol.getServer();return Y?Y.listen:""}status(){let Y=new Ht0.QueuedIteratorImpl;return Y.iterClosed.then(()=>{let Q=this.listeners.indexOf(Y);this.listeners.splice(Q,1)}),this.listeners.push(Y),Y}get info(){return this.protocol.isClosed()?void 0:this.protocol.info}context(){return cv(this,void 0,void 0,function*(){return(yield this.request("$SYS.REQ.USER.INFO")).json((Q,X)=>{if(Q==="time")return new Date(Date.parse(X));return X})})}stats(){return{inBytes:this.protocol.inBytes,outBytes:this.protocol.outBytes,inMsgs:this.protocol.inMsgs,outMsgs:this.protocol.outMsgs}}jetstreamManager(){return cv(this,arguments,void 0,function*(Y={}){let Q=new Ki6.JetStreamManagerImpl(this,Y);if(Y.checkAPI!==!1)try{yield Q.getAccountInfo()}catch(X){let J=X;if(J.code===IY.ErrorCode.NoResponders)J.code=IY.ErrorCode.JetStreamNotEnabled;throw J}return Q})}jetstream(Y={}){return new Hi6.JetStreamClientImpl(this,Y)}getServerVersion(){let Y=this.info;return Y?(0,Gi6.parseSemVer)(Y.version):void 0}rtt(){return cv(this,void 0,void 0,function*(){if(!this.protocol._closed&&!this.protocol.connected)throw I5.NatsError.errorForCode(IY.ErrorCode.Disconnect);let Y=Date.now();return yield this.flush(),Date.now()-Y})}get features(){return this.protocol.features}get services(){if(!this._services)this._services=new KM1(this);return this._services}reconnect(){if(this.isClosed())return Promise.reject(I5.NatsError.errorForCode(IY.ErrorCode.ConnectionClosed));if(this.isDraining())return Promise.reject(I5.NatsError.errorForCode(IY.ErrorCode.ConnectionDraining));return this.protocol.reconnect()}}$3.NatsConnectionImpl=ZM1;class KM1{constructor(Y){this.nc=Y}add(Y){try{return new $i6.ServiceImpl(this.nc,Y).start()}catch(Q){return Promise.reject(Q)}}client(Y,Q){return new Fi6.ServiceClientImpl(this.nc,Y,Q)}}$3.ServicesFactory=KM1});var zt0=j((A7)=>{var CF=A7&&A7.__awaiter||function(Y,Q,X,J){function G(K){return K instanceof X?K:new X(function(W){W(K)})}return new(X||(X=Promise))(function(K,W){function Z(F){try{$(J.next(F))}catch(V){W(V)}}function H(F){try{$(J.throw(F))}catch(V){W(V)}}function $(F){F.done?K(F.value):G(F.value).then(Z,H)}$((J=J.apply(Y,Q||[])).next())})},Vt0=A7&&A7.__asyncValues||function(Y){if(!Symbol.asyncIterator)throw TypeError("Symbol.asyncIterator is not defined.");var Q=Y[Symbol.asyncIterator],X;return Q?Q.call(Y):(Y=typeof __values==="function"?__values(Y):Y[Symbol.iterator](),X={},J("next"),J("throw"),J("return"),X[Symbol.asyncIterator]=function(){return this},X);function J(K){X[K]=Y[K]&&function(W){return new Promise(function(Z,H){W=Y[K](W),G(Z,H,W.done,W.value)})}}function G(K,W,Z,H){Promise.resolve(H).then(function($){K({value:$,done:Z})},W)}};Object.defineProperty(A7,"__esModule",{value:!0});A7.Bench=A7.Metric=void 0;A7.throughput=Ut0;A7.msgThroughput=Bi6;A7.humanizeBytes=Dt0;var Vi6=SP(),qi6=Y3(),HM1=UQ(),qt0=E9();class jB{constructor(Y,Q){this.name=Y,this.duration=Q,this.date=Date.now(),this.payload=0,this.msgs=0,this.bytes=0}toString(){let Y=this.duration/1000,Q=Math.round(this.msgs/Y),X=this.asyncRequests?"asyncRequests":"",J="";if(this.max)J=`${this.min}/${this.max}`;return`${this.name}${X?" [asyncRequests]":""} ${Ui6(Q)} msgs/sec - [${Y.toFixed(2)} secs] ~ ${Ut0(this.bytes,Y)} ${J}`}toCsv(){return`"${this.name}",${new Date(this.date).toISOString()},${this.lang},${this.version},${this.msgs},${this.payload},${this.bytes},${this.duration},${this.asyncRequests?this.asyncRequests:!1}
|
|
1365
1365
|
`}static header(){return`Test,Date,Lang,Version,Count,MsgPayload,Bytes,Millis,Async
|
|
1366
|
-
`}}A7.Metric=jB;class Bt0{constructor(Y,Q={msgs:1e5,size:128,subject:"",asyncRequests:!1,pub:!1,sub:!1,req:!1,rep:!1}){if(this.nc=Y,this.callbacks=Q.callbacks||!1,this.msgs=Q.msgs||0,this.size=Q.size||0,this.subject=Q.subject||qi6.nuid.next(),this.asyncRequests=Q.asyncRequests||!1,this.pub=Q.pub||!1,this.sub=Q.sub||!1,this.req=Q.req||!1,this.rep=Q.rep||!1,this.perf=new HM1.Perf,this.payload=this.size?new Uint8Array(this.size):Vi6.Empty,!this.pub&&!this.sub&&!this.req&&!this.rep)throw Error("no bench option selected")}run(){return CF(this,void 0,void 0,function*(){if(this.nc.closed().then((Y)=>{if(Y)throw new qt0.NatsError(`bench closed with an error: ${Y.message}`,qt0.ErrorCode.Unknown,Y)}),this.callbacks)yield this.runCallbacks();else yield this.runAsync();return this.processMetrics()})}processMetrics(){let Y=this.nc,{lang:Q,version:X}=Y.protocol.transport;if(this.pub&&this.sub)this.perf.measure("pubsub","pubStart","subStop");if(this.req&&this.rep)this.perf.measure("reqrep","reqStart","reqStop");let J=this.perf.getEntries(),G=J.find((B)=>B.name==="pubsub"),K=J.find((B)=>B.name==="reqrep"),W=J.find((B)=>B.name==="req"),Z=J.find((B)=>B.name==="rep"),H=J.find((B)=>B.name==="pub"),$=J.find((B)=>B.name==="sub"),F=this.nc.stats(),V=[];if(G){let{name:B,duration:U}=G,D=new jB(B,U);D.msgs=this.msgs*2,D.bytes=F.inBytes+F.outBytes,D.lang=Q,D.version=X,D.payload=this.payload.length,V.push(D)}if(K){let{name:B,duration:U}=K,D=new jB(B,U);D.msgs=this.msgs*2,D.bytes=F.inBytes+F.outBytes,D.lang=Q,D.version=X,D.payload=this.payload.length,V.push(D)}if(H){let{name:B,duration:U}=H,D=new jB(B,U);D.msgs=this.msgs,D.bytes=F.outBytes,D.lang=Q,D.version=X,D.payload=this.payload.length,V.push(D)}if($){let{name:B,duration:U}=$,D=new jB(B,U);D.msgs=this.msgs,D.bytes=F.inBytes,D.lang=Q,D.version=X,D.payload=this.payload.length,V.push(D)}if(Z){let{name:B,duration:U}=Z,D=new jB(B,U);D.msgs=this.msgs,D.bytes=F.inBytes+F.outBytes,D.lang=Q,D.version=X,D.payload=this.payload.length,V.push(D)}if(W){let{name:B,duration:U}=W,D=new jB(B,U);D.msgs=this.msgs,D.bytes=F.inBytes+F.outBytes,D.lang=Q,D.version=X,D.payload=this.payload.length,V.push(D)}return V}runCallbacks(){return CF(this,void 0,void 0,function*(){let Y=[];if(this.sub){let Q=(0,HM1.deferred)();Y.push(Q);let X=0;this.nc.subscribe(this.subject,{max:this.msgs,callback:()=>{if(X++,X===1)this.perf.mark("subStart");if(X===this.msgs)this.perf.mark("subStop"),this.perf.measure("sub","subStart","subStop"),Q.resolve()}})}if(this.rep){let Q=(0,HM1.deferred)();Y.push(Q);let X=0;this.nc.subscribe(this.subject,{max:this.msgs,callback:(J,G)=>{if(G.respond(this.payload),X++,X===1)this.perf.mark("repStart");if(X===this.msgs)this.perf.mark("repStop"),this.perf.measure("rep","repStart","repStop"),Q.resolve()}})}if(this.pub){let Q=(()=>CF(this,void 0,void 0,function*(){this.perf.mark("pubStart");for(let X=0;X<this.msgs;X++)this.nc.publish(this.subject,this.payload);yield this.nc.flush(),this.perf.mark("pubStop"),this.perf.measure("pub","pubStart","pubStop")}))();Y.push(Q)}if(this.req){let Q=(()=>CF(this,void 0,void 0,function*(){if(this.asyncRequests){this.perf.mark("reqStart");let X=[];for(let J=0;J<this.msgs;J++)X.push(this.nc.request(this.subject,this.payload,{timeout:20000}));yield Promise.all(X),this.perf.mark("reqStop"),this.perf.measure("req","reqStart","reqStop")}else{this.perf.mark("reqStart");for(let X=0;X<this.msgs;X++)yield this.nc.request(this.subject);this.perf.mark("reqStop"),this.perf.measure("req","reqStart","reqStop")}}))();Y.push(Q)}yield Promise.all(Y)})}runAsync(){return CF(this,void 0,void 0,function*(){let Y=[];if(this.rep){let Q=!1,X=this.nc.subscribe(this.subject,{max:this.msgs}),J=(()=>CF(this,void 0,void 0,function*(){var G,K,W,Z;try{for(var H=!0,$=Vt0(X),F;F=yield $.next(),G=F.done,!G;H=!0){Z=F.value,H=!1;let V=Z;if(!Q)this.perf.mark("repStart"),Q=!0;V.respond(this.payload)}}catch(V){K={error:V}}finally{try{if(!H&&!G&&(W=$.return))yield W.call($)}finally{if(K)throw K.error}}yield this.nc.flush(),this.perf.mark("repStop"),this.perf.measure("rep","repStart","repStop")}))();Y.push(J)}if(this.sub){let Q=!1,X=this.nc.subscribe(this.subject,{max:this.msgs}),J=(()=>CF(this,void 0,void 0,function*(){var G,K,W,Z;try{for(var H=!0,$=Vt0(X),F;F=yield $.next(),G=F.done,!G;H=!0){Z=F.value,H=!1;let V=Z;if(!Q)this.perf.mark("subStart"),Q=!0}}catch(V){K={error:V}}finally{try{if(!H&&!G&&(W=$.return))yield W.call($)}finally{if(K)throw K.error}}this.perf.mark("subStop"),this.perf.measure("sub","subStart","subStop")}))();Y.push(J)}if(this.pub){let Q=(()=>CF(this,void 0,void 0,function*(){this.perf.mark("pubStart");for(let X=0;X<this.msgs;X++)this.nc.publish(this.subject,this.payload);yield this.nc.flush(),this.perf.mark("pubStop"),this.perf.measure("pub","pubStart","pubStop")}))();Y.push(Q)}if(this.req){let Q=(()=>CF(this,void 0,void 0,function*(){if(this.asyncRequests){this.perf.mark("reqStart");let X=[];for(let J=0;J<this.msgs;J++)X.push(this.nc.request(this.subject,this.payload,{timeout:20000}));yield Promise.all(X),this.perf.mark("reqStop"),this.perf.measure("req","reqStart","reqStop")}else{this.perf.mark("reqStart");for(let X=0;X<this.msgs;X++)yield this.nc.request(this.subject);this.perf.mark("reqStop"),this.perf.measure("req","reqStart","reqStop")}}))();Y.push(Q)}yield Promise.all(Y)})}}A7.Bench=Bt0;function Ut0(Y,Q){return`${Dt0(Y/Q)}/sec`}function Bi6(Y,Q){return`${Math.floor(Y/Q)} msgs/sec`}function Dt0(Y,Q=!1){let X=Q?1000:1024,J=Q?["k","M","G","T","P","E"]:["K","M","G","T","P","E"],G=Q?"iB":"B";if(Y<X)return`${Y.toFixed(2)} ${G}`;let K=parseInt(Math.log(Y)/Math.log(X)+""),W=parseInt(K-1+"");return`${(Y/Math.pow(X,K)).toFixed(2)} ${J[W]}${G}`}function Ui6(Y){return Y.toString().replace(/\B(?=(\d{3})+(?!\d))/g,",")}});var kL1=j((g1)=>{var Di6=g1&&g1.__createBinding||(Object.create?function(Y,Q,X,J){if(J===void 0)J=X;var G=Object.getOwnPropertyDescriptor(Q,X);if(!G||("get"in G?!Q.__esModule:G.writable||G.configurable))G={enumerable:!0,get:function(){return Q[X]}};Object.defineProperty(Y,J,G)}:function(Y,Q,X,J){if(J===void 0)J=X;Y[J]=Q[X]}),zi6=g1&&g1.__exportStar||function(Y,Q){for(var X in Y)if(X!=="default"&&!Object.prototype.hasOwnProperty.call(Q,X))Di6(Q,Y,X)};Object.defineProperty(g1,"__esModule",{value:!0});g1.parseIP=g1.isIP=g1.TE=g1.TD=g1.Metric=g1.Bench=g1.writeAll=g1.readAll=g1.MAX_SIZE=g1.DenoBuffer=g1.State=g1.Parser=g1.Kind=g1.QueuedIteratorImpl=g1.StringCodec=g1.JSONCodec=g1.usernamePasswordAuthenticator=g1.tokenAuthenticator=g1.nkeyAuthenticator=g1.jwtAuthenticator=g1.credsAuthenticator=g1.RequestOne=g1.checkUnsupportedOption=g1.checkOptions=g1.buildAuthenticator=g1.DataBuffer=g1.MuxSubscription=g1.Heartbeat=g1.MsgHdrsImpl=g1.headers=g1.canonicalMIMEHeaderKey=g1.timeout=g1.render=g1.nanos=g1.millis=g1.extend=g1.delay=g1.deferred=g1.deadline=g1.collect=g1.backoff=g1.ProtocolHandler=g1.INFO=g1.Connect=g1.setTransportFactory=g1.getResolveFn=g1.MsgImpl=g1.nuid=g1.Nuid=g1.NatsConnectionImpl=void 0;g1.Subscriptions=g1.SubscriptionImpl=g1.syncIterator=g1.ServiceVerb=g1.ServiceResponseType=g1.ServiceErrorHeader=g1.ServiceErrorCodeHeader=g1.ServiceError=g1.RequestStrategy=g1.NatsError=g1.Match=g1.isNatsError=g1.Events=g1.ErrorCode=g1.DebugEvents=g1.createInbox=g1.extractProtocolMessage=g1.Empty=g1.parseSemVer=g1.compare=g1.NoopKvCodecs=g1.defaultBucketOpts=g1.Bucket=g1.Base64KeyCodec=g1.TypedSubscription=void 0;var Oi6=Ft0();Object.defineProperty(g1,"NatsConnectionImpl",{enumerable:!0,get:function(){return Oi6.NatsConnectionImpl}});var Ot0=Y3();Object.defineProperty(g1,"Nuid",{enumerable:!0,get:function(){return Ot0.Nuid}});Object.defineProperty(g1,"nuid",{enumerable:!0,get:function(){return Ot0.nuid}});var Ni6=EP();Object.defineProperty(g1,"MsgImpl",{enumerable:!0,get:function(){return Ni6.MsgImpl}});var Nt0=wP();Object.defineProperty(g1,"getResolveFn",{enumerable:!0,get:function(){return Nt0.getResolveFn}});Object.defineProperty(g1,"setTransportFactory",{enumerable:!0,get:function(){return Nt0.setTransportFactory}});var $M1=sr();Object.defineProperty(g1,"Connect",{enumerable:!0,get:function(){return $M1.Connect}});Object.defineProperty(g1,"INFO",{enumerable:!0,get:function(){return $M1.INFO}});Object.defineProperty(g1,"ProtocolHandler",{enumerable:!0,get:function(){return $M1.ProtocolHandler}});var F3=UQ();Object.defineProperty(g1,"backoff",{enumerable:!0,get:function(){return F3.backoff}});Object.defineProperty(g1,"collect",{enumerable:!0,get:function(){return F3.collect}});Object.defineProperty(g1,"deadline",{enumerable:!0,get:function(){return F3.deadline}});Object.defineProperty(g1,"deferred",{enumerable:!0,get:function(){return F3.deferred}});Object.defineProperty(g1,"delay",{enumerable:!0,get:function(){return F3.delay}});Object.defineProperty(g1,"extend",{enumerable:!0,get:function(){return F3.extend}});Object.defineProperty(g1,"millis",{enumerable:!0,get:function(){return F3.millis}});Object.defineProperty(g1,"nanos",{enumerable:!0,get:function(){return F3.nanos}});Object.defineProperty(g1,"render",{enumerable:!0,get:function(){return F3.render}});Object.defineProperty(g1,"timeout",{enumerable:!0,get:function(){return F3.timeout}});var FM1=LF();Object.defineProperty(g1,"canonicalMIMEHeaderKey",{enumerable:!0,get:function(){return FM1.canonicalMIMEHeaderKey}});Object.defineProperty(g1,"headers",{enumerable:!0,get:function(){return FM1.headers}});Object.defineProperty(g1,"MsgHdrsImpl",{enumerable:!0,get:function(){return FM1.MsgHdrsImpl}});var Li6=tN1();Object.defineProperty(g1,"Heartbeat",{enumerable:!0,get:function(){return Li6.Heartbeat}});var Mi6=sN1();Object.defineProperty(g1,"MuxSubscription",{enumerable:!0,get:function(){return Mi6.MuxSubscription}});var wi6=MP();Object.defineProperty(g1,"DataBuffer",{enumerable:!0,get:function(){return wi6.DataBuffer}});var VM1=rr();Object.defineProperty(g1,"buildAuthenticator",{enumerable:!0,get:function(){return VM1.buildAuthenticator}});Object.defineProperty(g1,"checkOptions",{enumerable:!0,get:function(){return VM1.checkOptions}});Object.defineProperty(g1,"checkUnsupportedOption",{enumerable:!0,get:function(){return VM1.checkUnsupportedOption}});var Ai6=Yo();Object.defineProperty(g1,"RequestOne",{enumerable:!0,get:function(){return Ai6.RequestOne}});var nv=UL1();Object.defineProperty(g1,"credsAuthenticator",{enumerable:!0,get:function(){return nv.credsAuthenticator}});Object.defineProperty(g1,"jwtAuthenticator",{enumerable:!0,get:function(){return nv.jwtAuthenticator}});Object.defineProperty(g1,"nkeyAuthenticator",{enumerable:!0,get:function(){return nv.nkeyAuthenticator}});Object.defineProperty(g1,"tokenAuthenticator",{enumerable:!0,get:function(){return nv.tokenAuthenticator}});Object.defineProperty(g1,"usernamePasswordAuthenticator",{enumerable:!0,get:function(){return nv.usernamePasswordAuthenticator}});var Lt0=X3();Object.defineProperty(g1,"JSONCodec",{enumerable:!0,get:function(){return Lt0.JSONCodec}});Object.defineProperty(g1,"StringCodec",{enumerable:!0,get:function(){return Lt0.StringCodec}});zi6(qL1(),g1);var Pi6=bW();Object.defineProperty(g1,"QueuedIteratorImpl",{enumerable:!0,get:function(){return Pi6.QueuedIteratorImpl}});var qM1=GL1();Object.defineProperty(g1,"Kind",{enumerable:!0,get:function(){return qM1.Kind}});Object.defineProperty(g1,"Parser",{enumerable:!0,get:function(){return qM1.Parser}});Object.defineProperty(g1,"State",{enumerable:!0,get:function(){return qM1.State}});var Io=QL1();Object.defineProperty(g1,"DenoBuffer",{enumerable:!0,get:function(){return Io.DenoBuffer}});Object.defineProperty(g1,"MAX_SIZE",{enumerable:!0,get:function(){return Io.MAX_SIZE}});Object.defineProperty(g1,"readAll",{enumerable:!0,get:function(){return Io.readAll}});Object.defineProperty(g1,"writeAll",{enumerable:!0,get:function(){return Io.writeAll}});var Mt0=zt0();Object.defineProperty(g1,"Bench",{enumerable:!0,get:function(){return Mt0.Bench}});Object.defineProperty(g1,"Metric",{enumerable:!0,get:function(){return Mt0.Metric}});var wt0=BQ();Object.defineProperty(g1,"TD",{enumerable:!0,get:function(){return wt0.TD}});Object.defineProperty(g1,"TE",{enumerable:!0,get:function(){return wt0.TE}});var At0=pN1();Object.defineProperty(g1,"isIP",{enumerable:!0,get:function(){return At0.isIP}});Object.defineProperty(g1,"parseIP",{enumerable:!0,get:function(){return At0.parseIP}});var Ei6=fL1();Object.defineProperty(g1,"TypedSubscription",{enumerable:!0,get:function(){return Ei6.TypedSubscription}});var jo=gv();Object.defineProperty(g1,"Base64KeyCodec",{enumerable:!0,get:function(){return jo.Base64KeyCodec}});Object.defineProperty(g1,"Bucket",{enumerable:!0,get:function(){return jo.Bucket}});Object.defineProperty(g1,"defaultBucketOpts",{enumerable:!0,get:function(){return jo.defaultBucketOpts}});Object.defineProperty(g1,"NoopKvCodecs",{enumerable:!0,get:function(){return jo.NoopKvCodecs}});var Pt0=MF();Object.defineProperty(g1,"compare",{enumerable:!0,get:function(){return Pt0.compare}});Object.defineProperty(g1,"parseSemVer",{enumerable:!0,get:function(){return Pt0.parseSemVer}});var Ti6=SP();Object.defineProperty(g1,"Empty",{enumerable:!0,get:function(){return Ti6.Empty}});var Ci6=wP();Object.defineProperty(g1,"extractProtocolMessage",{enumerable:!0,get:function(){return Ci6.extractProtocolMessage}});var j5=E9();Object.defineProperty(g1,"createInbox",{enumerable:!0,get:function(){return j5.createInbox}});Object.defineProperty(g1,"DebugEvents",{enumerable:!0,get:function(){return j5.DebugEvents}});Object.defineProperty(g1,"ErrorCode",{enumerable:!0,get:function(){return j5.ErrorCode}});Object.defineProperty(g1,"Events",{enumerable:!0,get:function(){return j5.Events}});Object.defineProperty(g1,"isNatsError",{enumerable:!0,get:function(){return j5.isNatsError}});Object.defineProperty(g1,"Match",{enumerable:!0,get:function(){return j5.Match}});Object.defineProperty(g1,"NatsError",{enumerable:!0,get:function(){return j5.NatsError}});Object.defineProperty(g1,"RequestStrategy",{enumerable:!0,get:function(){return j5.RequestStrategy}});Object.defineProperty(g1,"ServiceError",{enumerable:!0,get:function(){return j5.ServiceError}});Object.defineProperty(g1,"ServiceErrorCodeHeader",{enumerable:!0,get:function(){return j5.ServiceErrorCodeHeader}});Object.defineProperty(g1,"ServiceErrorHeader",{enumerable:!0,get:function(){return j5.ServiceErrorHeader}});Object.defineProperty(g1,"ServiceResponseType",{enumerable:!0,get:function(){return j5.ServiceResponseType}});Object.defineProperty(g1,"ServiceVerb",{enumerable:!0,get:function(){return j5.ServiceVerb}});Object.defineProperty(g1,"syncIterator",{enumerable:!0,get:function(){return j5.syncIterator}});var Et0=sr();Object.defineProperty(g1,"SubscriptionImpl",{enumerable:!0,get:function(){return Et0.SubscriptionImpl}});Object.defineProperty(g1,"Subscriptions",{enumerable:!0,get:function(){return Et0.Subscriptions}})});var So=j((DQ)=>{Object.defineProperty(DQ,"__esModule",{value:!0});DQ.ConsumerEvents=DQ.ConsumerDebugEvents=DQ.StoreCompression=DQ.StorageType=DQ.RetentionPolicy=DQ.ReplayPolicy=DQ.DiscardPolicy=DQ.DeliverPolicy=DQ.AckPolicy=DQ.RepublishHeaders=DQ.KvWatchInclude=DQ.JsHeaders=DQ.isConsumerOptsBuilder=DQ.DirectMsgHeaders=DQ.consumerOpts=DQ.AdvisoryKind=DQ.isHeartbeatMsg=DQ.isFlowControlMsg=DQ.checkJsError=void 0;var BM1=W3();Object.defineProperty(DQ,"checkJsError",{enumerable:!0,get:function(){return BM1.checkJsError}});Object.defineProperty(DQ,"isFlowControlMsg",{enumerable:!0,get:function(){return BM1.isFlowControlMsg}});Object.defineProperty(DQ,"isHeartbeatMsg",{enumerable:!0,get:function(){return BM1.isHeartbeatMsg}});var bO=AF();Object.defineProperty(DQ,"AdvisoryKind",{enumerable:!0,get:function(){return bO.AdvisoryKind}});Object.defineProperty(DQ,"consumerOpts",{enumerable:!0,get:function(){return bO.consumerOpts}});Object.defineProperty(DQ,"DirectMsgHeaders",{enumerable:!0,get:function(){return bO.DirectMsgHeaders}});Object.defineProperty(DQ,"isConsumerOptsBuilder",{enumerable:!0,get:function(){return bO.isConsumerOptsBuilder}});Object.defineProperty(DQ,"JsHeaders",{enumerable:!0,get:function(){return bO.JsHeaders}});Object.defineProperty(DQ,"KvWatchInclude",{enumerable:!0,get:function(){return bO.KvWatchInclude}});Object.defineProperty(DQ,"RepublishHeaders",{enumerable:!0,get:function(){return bO.RepublishHeaders}});var hO=PB();Object.defineProperty(DQ,"AckPolicy",{enumerable:!0,get:function(){return hO.AckPolicy}});Object.defineProperty(DQ,"DeliverPolicy",{enumerable:!0,get:function(){return hO.DeliverPolicy}});Object.defineProperty(DQ,"DiscardPolicy",{enumerable:!0,get:function(){return hO.DiscardPolicy}});Object.defineProperty(DQ,"ReplayPolicy",{enumerable:!0,get:function(){return hO.ReplayPolicy}});Object.defineProperty(DQ,"RetentionPolicy",{enumerable:!0,get:function(){return hO.RetentionPolicy}});Object.defineProperty(DQ,"StorageType",{enumerable:!0,get:function(){return hO.StorageType}});Object.defineProperty(DQ,"StoreCompression",{enumerable:!0,get:function(){return hO.StoreCompression}});var Tt0=sL1();Object.defineProperty(DQ,"ConsumerDebugEvents",{enumerable:!0,get:function(){return Tt0.ConsumerDebugEvents}});Object.defineProperty(DQ,"ConsumerEvents",{enumerable:!0,get:function(){return Tt0.ConsumerEvents}})});var UM1=j((SB)=>{var Ii6=SB&&SB.__createBinding||(Object.create?function(Y,Q,X,J){if(J===void 0)J=X;var G=Object.getOwnPropertyDescriptor(Q,X);if(!G||("get"in G?!Q.__esModule:G.writable||G.configurable))G={enumerable:!0,get:function(){return Q[X]}};Object.defineProperty(Y,J,G)}:function(Y,Q,X,J){if(J===void 0)J=X;Y[J]=Q[X]}),Ct0=SB&&SB.__exportStar||function(Y,Q){for(var X in Y)if(X!=="default"&&!Object.prototype.hasOwnProperty.call(Q,X))Ii6(Q,Y,X)};Object.defineProperty(SB,"__esModule",{value:!0});Ct0(kL1(),SB);Ct0(So(),SB)});var St0=j(($K)=>{var gP=$K&&$K.__awaiter||function(Y,Q,X,J){function G(K){return K instanceof X?K:new X(function(W){W(K)})}return new(X||(X=Promise))(function(K,W){function Z(F){try{$(J.next(F))}catch(V){W(V)}}function H(F){try{$(J.throw(F))}catch(V){W(V)}}function $(F){F.done?K(F.value):G(F.value).then(Z,H)}$((J=J.apply(Y,Q||[])).next())})},iv=$K&&$K.__await||function(Y){return this instanceof iv?(this.v=Y,this):new iv(Y)},ji6=$K&&$K.__asyncGenerator||function(Y,Q,X){if(!Symbol.asyncIterator)throw TypeError("Symbol.asyncIterator is not defined.");var J=X.apply(Y,Q||[]),G,K=[];return G=Object.create((typeof AsyncIterator==="function"?AsyncIterator:Object).prototype),Z("next"),Z("throw"),Z("return",W),G[Symbol.asyncIterator]=function(){return this},G;function W(U){return function(D){return Promise.resolve(D).then(U,V)}}function Z(U,D){if(J[U]){if(G[U]=function(z){return new Promise(function(L,w){K.push([U,z,L,w])>1||H(U,z)})},D)G[U]=D(G[U])}}function H(U,D){try{$(J[U](D))}catch(z){B(K[0][3],z)}}function $(U){U.value instanceof iv?Promise.resolve(U.value.v).then(F,V):B(K[0][2],U)}function F(U){H("next",U)}function V(U){H("throw",U)}function B(U,D){if(U(D),K.shift(),K.length)H(K[0][0],K[0][1])}};Object.defineProperty($K,"__esModule",{value:!0});$K.NodeTransport=void 0;$K.nodeResolveHost=bi6;var c8=UM1(),Si6=T1("net"),Rt0=UQ(),DM1=T1("tls"),{resolve:ki6}=T1("path"),{readFile:vi6,existsSync:_i6}=T1("fs"),It0=T1("dns"),yi6="2.29.3",fi6="nats.js";class jt0{constructor(){this.yields=[],this.signal=(0,c8.deferred)(),this.closedNotification=(0,c8.deferred)(),this.connected=!1,this.tlsName="",this.done=!1,this.lang=fi6,this.version=yi6}connect(Y,Q){return gP(this,void 0,void 0,function*(){this.tlsName=Y.tlsName,this.options=Q;let{tls:X}=this.options,{handshakeFirst:J}=X||{};try{if(J===!0)this.socket=yield this.tlsFirst(Y);else this.socket=yield this.dial(Y);let G=yield this.peekInfo();(0,c8.checkOptions)(G,Q);let{tls_required:K,tls_available:W}=G,Z=W===!0&&Q.tls!==null;if(!J&&(K||Z))this.socket=yield this.startTLS();if(K&&this.socket.encrypted!==!0)throw new c8.NatsError("tls",c8.ErrorCode.ServerOptionNotAvailable);return this.connected=!0,this.setupHandlers(),this.signal.resolve(),Promise.resolve()}catch(G){if(!G)G=c8.NatsError.errorForCode(c8.ErrorCode.ConnectionRefused,Error("node provided an undefined error!"));let{code:K}=G,W=K==="ECONNREFUSED"?c8.NatsError.errorForCode(c8.ErrorCode.ConnectionRefused,G):G;if(this.socket)this.socket.destroy();throw W}})}dial(Y){let Q=(0,c8.deferred)(),X,J=(0,Si6.createConnection)(Y.port,Y.hostname,()=>{Q.resolve(J),J.removeAllListeners()});return J.on("error",(G)=>{X=G}),J.on("close",()=>{J.removeAllListeners(),Q.reject(X)}),J.setNoDelay(!0),Q}get isClosed(){return this.done}close(Y){return this._closed(Y,!1)}peekInfo(){let Y=(0,c8.deferred)(),Q;return this.socket.on("data",(X)=>{this.yields.push(X);let J=c8.DataBuffer.concat(...this.yields),G=(0,c8.extractProtocolMessage)(J);if(G!=="")try{let K=c8.INFO.exec(G);if(!K)throw Error("unexpected response from server");let W=JSON.parse(K[1]);Y.resolve(W)}catch(K){Y.reject(K)}finally{this.socket.removeAllListeners()}}),this.socket.on("error",(X)=>{Q=X}),this.socket.on("close",()=>{this.socket.removeAllListeners(),Y.reject(Q)}),Y}loadFile(Y){if(!Y)return Promise.resolve();let Q=(0,c8.deferred)();try{if(Y=ki6(Y),!_i6(Y))Q.reject(Error(`${Y} doesn't exist`));vi6(Y,(X,J)=>{if(X)return Q.reject(X);Q.resolve(J)})}catch(X){Q.reject(X)}return Q}loadClientCerts(){return gP(this,void 0,void 0,function*(){let Y={},{certFile:Q,cert:X,caFile:J,ca:G,keyFile:K,key:W}=this.options.tls;try{if(Q){let Z=yield this.loadFile(Q);if(Z)Y.cert=Z}else if(X)Y.cert=X;if(K){let Z=yield this.loadFile(K);if(Z)Y.key=Z}else if(W)Y.key=W;if(J){let Z=yield this.loadFile(J);if(Z)Y.ca=[Z]}else if(G)Y.ca=G;return Promise.resolve(Y)}catch(Z){return Promise.reject(Z)}})}tlsFirst(Y){return gP(this,void 0,void 0,function*(){let Q,X={servername:this.tlsName,rejectUnauthorized:!0};if(this.socket)X.socket=this.socket;if(typeof this.options.tls==="object")try{let G=(yield this.loadClientCerts())||{};X=(0,Rt0.extend)(X,this.options.tls,G)}catch(G){return Promise.reject(new c8.NatsError(G.message,c8.ErrorCode.Tls,G))}let J=(0,c8.deferred)();try{let G=(0,DM1.connect)(Y.port,Y.hostname,X,()=>{G.removeAllListeners(),J.resolve(G)});G.on("error",(K)=>{Q=K}),G.on("secureConnect",()=>{if(X.rejectUnauthorized===!1)return;if(!G.authorized)throw G.authorizationError}),G.on("close",()=>{J.reject(Q),G.removeAllListeners()}),G.setNoDelay(!0)}catch(G){J.reject(c8.NatsError.errorForCode(c8.ErrorCode.Tls,G))}return J})}startTLS(){return gP(this,void 0,void 0,function*(){let Y,Q={socket:this.socket,servername:this.tlsName,rejectUnauthorized:!0};if(typeof this.options.tls==="object")try{let J=(yield this.loadClientCerts())||{};Q=(0,Rt0.extend)(Q,this.options.tls,J)}catch(J){return Promise.reject(new c8.NatsError(J.message,c8.ErrorCode.Tls,J))}let X=(0,c8.deferred)();try{let J=(0,DM1.connect)(Q,()=>{J.removeAllListeners(),X.resolve(J)});J.on("error",(G)=>{Y=G}),J.on("secureConnect",()=>{if(Q.rejectUnauthorized===!1)return;if(!J.authorized)throw J.authorizationError}),J.on("close",()=>{X.reject(Y),J.removeAllListeners()})}catch(J){X.reject(c8.NatsError.errorForCode(c8.ErrorCode.Tls,J))}return X})}setupHandlers(){let Y;this.socket.on("data",(Q)=>{return this.yields.push(Q),this.signal.resolve()}),this.socket.on("error",(Q)=>{Y=Q}),this.socket.on("end",()=>{var Q,X;if((Q=this.socket)===null||Q===void 0?void 0:Q.destroyed)return;(X=this.socket)===null||X===void 0||X.write(new Uint8Array(0),()=>{var J;(J=this.socket)===null||J===void 0||J.end()})}),this.socket.on("close",()=>{this._closed(Y,!1)})}[Symbol.asyncIterator](){return this.iterate()}iterate(){return ji6(this,arguments,function*(){let Q=this.options.debug;while(!0){if(this.yields.length===0)yield iv(this.signal);let X=this.yields;this.yields=[];for(let J=0;J<X.length;J++){if(Q)console.info(`> ${(0,c8.render)(X[J])}`);yield yield iv(X[J])}if(this.done)break;else if(this.yields.length===0)X.length=0,this.yields=X,this.signal=(0,c8.deferred)()}})}discard(){}disconnect(){this._closed(void 0,!0).then().catch()}isEncrypted(){return this.socket instanceof DM1.TLSSocket}_send(Y){if(this.isClosed||this.socket===void 0)return Promise.resolve();if(this.options.debug)console.info(`< ${(0,c8.render)(Y)}`);let Q=(0,c8.deferred)();try{this.socket.write(Y,(X)=>{if(X){if(this.options.debug)console.error(`!!! ${(0,c8.render)(Y)}: ${X}`);return Q.reject(X)}return Q.resolve()})}catch(X){if(this.options.debug)console.error(`!!! ${(0,c8.render)(Y)}: ${X}`);Q.reject(X)}return Q}send(Y){this._send(Y).catch((X)=>{})}_closed(Y){return gP(this,arguments,void 0,function*(Q,X=!0){if(!this.connected)return;if(this.done)return;if(this.closeError=Q,!Q&&this.socket&&X)try{yield this._send(new TextEncoder().encode(""))}catch(J){if(this.options.debug)console.log("transport close terminated with an error",J)}try{if(this.socket)this.socket.removeAllListeners(),this.socket.destroy(),this.socket=void 0}catch(J){console.log(J)}this.done=!0,this.closedNotification.resolve(this.closeError)})}closed(){return this.closedNotification}}$K.NodeTransport=jt0;function bi6(Y){return gP(this,void 0,void 0,function*(){let Q=(0,c8.deferred)(),X=(0,c8.deferred)();It0.resolve4(Y,(W,Z)=>{if(W)Q.resolve(W);else Q.resolve(Z)}),It0.resolve6(Y,(W,Z)=>{if(W)X.resolve(W);else X.resolve(Z)});let J=[],G=yield Q;if(Array.isArray(G))J.push(...G);let K=yield X;if(Array.isArray(K))J.push(...K);if(J.length===0)J.push(Y);return J})}});var yt0=j((_t0)=>{Object.defineProperty(_t0,"__esModule",{value:!0});_t0.connect=hi6;var kt0=St0(),vt0=UM1();function hi6(Y={}){return(0,vt0.setTransportFactory)({factory:()=>{return new kt0.NodeTransport},dnsResolveFn:kt0.nodeResolveHost}),vt0.NatsConnectionImpl.connect(Y)}});var ft0=j((SQ)=>{Object.defineProperty(SQ,"__esModule",{value:!0});SQ.consumerOpts=SQ.StoreCompression=SQ.StorageType=SQ.RetentionPolicy=SQ.RepublishHeaders=SQ.ReplayPolicy=SQ.KvWatchInclude=SQ.JsHeaders=SQ.DiscardPolicy=SQ.DirectMsgHeaders=SQ.DeliverPolicy=SQ.ConsumerEvents=SQ.ConsumerDebugEvents=SQ.AdvisoryKind=SQ.AckPolicy=SQ.isHeartbeatMsg=SQ.isFlowControlMsg=SQ.checkJsError=void 0;var zM1=So();Object.defineProperty(SQ,"checkJsError",{enumerable:!0,get:function(){return zM1.checkJsError}});Object.defineProperty(SQ,"isFlowControlMsg",{enumerable:!0,get:function(){return zM1.isFlowControlMsg}});Object.defineProperty(SQ,"isHeartbeatMsg",{enumerable:!0,get:function(){return zM1.isHeartbeatMsg}});var S5=So();Object.defineProperty(SQ,"AckPolicy",{enumerable:!0,get:function(){return S5.AckPolicy}});Object.defineProperty(SQ,"AdvisoryKind",{enumerable:!0,get:function(){return S5.AdvisoryKind}});Object.defineProperty(SQ,"ConsumerDebugEvents",{enumerable:!0,get:function(){return S5.ConsumerDebugEvents}});Object.defineProperty(SQ,"ConsumerEvents",{enumerable:!0,get:function(){return S5.ConsumerEvents}});Object.defineProperty(SQ,"DeliverPolicy",{enumerable:!0,get:function(){return S5.DeliverPolicy}});Object.defineProperty(SQ,"DirectMsgHeaders",{enumerable:!0,get:function(){return S5.DirectMsgHeaders}});Object.defineProperty(SQ,"DiscardPolicy",{enumerable:!0,get:function(){return S5.DiscardPolicy}});Object.defineProperty(SQ,"JsHeaders",{enumerable:!0,get:function(){return S5.JsHeaders}});Object.defineProperty(SQ,"KvWatchInclude",{enumerable:!0,get:function(){return S5.KvWatchInclude}});Object.defineProperty(SQ,"ReplayPolicy",{enumerable:!0,get:function(){return S5.ReplayPolicy}});Object.defineProperty(SQ,"RepublishHeaders",{enumerable:!0,get:function(){return S5.RepublishHeaders}});Object.defineProperty(SQ,"RetentionPolicy",{enumerable:!0,get:function(){return S5.RetentionPolicy}});Object.defineProperty(SQ,"StorageType",{enumerable:!0,get:function(){return S5.StorageType}});Object.defineProperty(SQ,"StoreCompression",{enumerable:!0,get:function(){return S5.StoreCompression}});var gi6=AF();Object.defineProperty(SQ,"consumerOpts",{enumerable:!0,get:function(){return gi6.consumerOpts}})});var OM1=j((V3)=>{var mi6=V3&&V3.__createBinding||(Object.create?function(Y,Q,X,J){if(J===void 0)J=X;var G=Object.getOwnPropertyDescriptor(Q,X);if(!G||("get"in G?!Q.__esModule:G.writable||G.configurable))G={enumerable:!0,get:function(){return Q[X]}};Object.defineProperty(Y,J,G)}:function(Y,Q,X,J){if(J===void 0)J=X;Y[J]=Q[X]}),bt0=V3&&V3.__exportStar||function(Y,Q){for(var X in Y)if(X!=="default"&&!Object.prototype.hasOwnProperty.call(Q,X))mi6(Q,Y,X)};Object.defineProperty(V3,"__esModule",{value:!0});V3.connect=void 0;if(typeof TextEncoder>"u"){let{TextEncoder:Y,TextDecoder:Q}=T1("util");global.TextEncoder=Y,global.TextDecoder=Q}if(typeof globalThis.crypto>"u"){let Y=T1("crypto");global.crypto=Y.webcrypto}if(typeof globalThis.ReadableStream>"u"){let Y=process.versions.node.split(".");if(parseInt(Y[0])>=16){let X=T1("stream/web");global.ReadableStream=X.ReadableStream}}var li6=yt0();Object.defineProperty(V3,"connect",{enumerable:!0,get:function(){return li6.connect}});bt0(SL1(),V3);bt0(ft0(),V3)});import{createHmac as ri6,timingSafeEqual as oi6}from"crypto";import{mkdir as si6,writeFile as ti6}from"fs/promises";import{dirname as ei6,join as mt0,resolve as ut0,sep as Ya6}from"path";function Xa6(Y){let Q=Y.replace(/[^a-zA-Z0-9_-]/g,"_");return mt0(Qa6,Q)}function Ja6(Y){return Y.replace(/^\/+/,"")}function lt0(Y,Q){let X=Xa6(Y),J=Ja6(Q),G=ut0(mt0(X,J)),K=ut0(X);if(G!==K&&!G.startsWith(K+Ya6))throw Error("Path traversal detected");return G}function dt0(Y,Q,X,J,G){let K=process.env.ENCRYPTION_KEY||"dev-secret",W=`${Y}:${Q}:${X}:${J}`,Z=ri6("sha256",K).update(W).digest("hex"),H=Buffer.from(Z,"hex"),$=Buffer.from(G,"hex");return H.length===$.length&&oi6(H,$)}function EM1(Y){let Q=Y.split(".").pop()?.toLowerCase()||"";return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",gif:"image/gif",webp:"image/webp",svg:"image/svg+xml",ico:"image/x-icon",bmp:"image/bmp",pdf:"application/pdf",json:"application/json",xml:"application/xml",txt:"text/plain",html:"text/html",htm:"text/html",css:"text/css",csv:"text/csv",md:"text/markdown",js:"application/javascript",mjs:"application/javascript",ts:"application/typescript",mp4:"video/mp4",webm:"video/webm",avi:"video/x-msvideo",mov:"video/quicktime",mp3:"audio/mpeg",wav:"audio/wav",ogg:"audio/ogg",zip:"application/zip",gz:"application/gzip",tar:"application/x-tar",woff:"font/woff",woff2:"font/woff2",ttf:"font/ttf",otf:"font/otf"}[Q]||"application/octet-stream"}var Qa6,PM1,pt0;var TM1=S(()=>{d5();Qa6=process.env.MESH_HOME?`${process.env.MESH_HOME}/assets`:"./data/assets",PM1=new QY;PM1.get("/:orgId/*",async(Y)=>{let Q=Y.req.param("orgId"),X=Y.req.path.replace(`/api/dev-assets/${Q}/`,"");if(!Q||!X)return Y.json({error:"Missing orgId or key"},400);let J=Y.req.query("expires"),G=Y.req.query("signature"),K=Y.req.query("method");if(!J||!G||K!=="GET")return Y.json({error:"Invalid or missing signature parameters"},400);let W=parseInt(J,10);if(!Number.isFinite(W))return Y.json({error:"Invalid expires parameter"},400);let Z=Math.floor(Date.now()/1000);if(W<Z)return Y.json({error:"URL has expired"},403);if(!dt0(Q,X,W,"GET",G))return Y.json({error:"Invalid signature"},403);let H=lt0(Q,X);try{let $=Bun.file(H);if(!await $.exists())return Y.json({error:"File not found"},404);let V=EM1(X);return new Response($.stream(),{headers:{"Content-Type":V,"Content-Length":$.size.toString(),"Cache-Control":"private, max-age=3600"}})}catch($){return console.error("Error serving file:",$),Y.json({error:"Failed to read file"},500)}});PM1.put("/:orgId/*",async(Y)=>{let Q=Y.req.param("orgId"),X=Y.req.path.replace(`/api/dev-assets/${Q}/`,"");if(!Q||!X)return Y.json({error:"Missing orgId or key"},400);let J=Y.req.query("expires"),G=Y.req.query("signature"),K=Y.req.query("method");if(!J||!G||K!=="PUT")return Y.json({error:"Invalid or missing signature parameters"},400);let W=parseInt(J,10);if(!Number.isFinite(W))return Y.json({error:"Invalid expires parameter"},400);let Z=Math.floor(Date.now()/1000);if(W<Z)return Y.json({error:"URL has expired"},403);if(!dt0(Q,X,W,"PUT",G))return Y.json({error:"Invalid signature"},403);let H=lt0(Q,X),$=ei6(H);try{await si6($,{recursive:!0});let F=await Y.req.arrayBuffer();return await ti6(H,Buffer.from(F)),Y.json({success:!0,key:X})}catch(F){return console.error("Error saving file:",F),Y.json({error:"Failed to save file"},500)}});pt0=PM1});import{createHmac as rt0}from"crypto";import{mkdir as Ga6,readdir as Wa6,rm as ct0,stat as ot0}from"fs/promises";import{join as RM1,relative as Za6,resolve as nt0,sep as Ka6}from"path";function tt0(Y){let Q=Y.replace(/[^a-zA-Z0-9_-]/g,"_");return RM1(Ha6,Q)}function et0(Y){return Y.replace(/^\/+/,"")}function CM1(Y,Q){let X=tt0(Y),J=et0(Q),G=nt0(RM1(X,J)),K=nt0(X);if(G!==K&&!G.startsWith(K+Ka6))throw Error("Path traversal detected");return G}function $a6(Y,Q,X,J){let G=process.env.ENCRYPTION_KEY||"dev-secret",K=`${Y}:${Q}:${X}:${J}`;return rt0("sha256",G).update(K).digest("hex")}function at0(Y,Q,X,J,G){let K=Math.floor(Date.now()/1000)+J,W=$a6(Q,X,K,G),Z=new URL(`/api/dev-assets/${Q}/${et0(X)}`,Y);return Z.searchParams.set("expires",K.toString()),Z.searchParams.set("signature",W),Z.searchParams.set("method",G),Z.toString()}function Ye0(Y,Q,X){let J=`${Y}:${Q.getTime()}:${X}`;return`"${rt0("md5","etag").update(J).digest("hex")}"`}async function Qe0(Y,Q,X,J,G){try{let K=await Wa6(Y,{withFileTypes:!0});for(let W of K){let Z=RM1(Y,W.name),$=Za6(Q,Z).replace(/\\/g,"/");if(X&&!$.startsWith(X))continue;if(W.isDirectory())if(J){let F=$+"/";if(!X||F.startsWith(X)){if(!(X?$.slice(X.length):$).includes("/"))G.commonPrefixes.add(F)}}else await Qe0(Z,Q,X,J,G);else if(W.isFile()){if(J&&X){let F=$.slice(X.length);if(F.includes(J)){let V=F.indexOf(J),B=X+F.slice(0,V+1);G.commonPrefixes.add(B);continue}}try{let F=await ot0(Z);G.objects.push({key:$,size:F.size,lastModified:F.mtime.toISOString(),etag:Ye0(Z,F.mtime,F.size)})}catch{}}}}catch{}}function Xe0(Y,Q){let J=A0(Y).id;return[{name:"LIST_OBJECTS",description:"List objects in the local assets directory with pagination support",inputSchema:q.object({prefix:q.string().optional(),maxKeys:q.number().optional().default(1000),continuationToken:q.string().optional(),delimiter:q.string().optional()}),outputSchema:q.object({objects:q.array(q.object({key:q.string(),size:q.number(),lastModified:q.string(),etag:q.string()})),nextContinuationToken:q.string().optional(),isTruncated:q.boolean(),commonPrefixes:q.array(q.string()).optional()}),handler:async(G)=>{let K=G,W=K.prefix||"",Z=K.maxKeys??1000,H=K.delimiter,$=K.continuationToken,F=tt0(J);await Ga6(F,{recursive:!0});let V={objects:[],commonPrefixes:new Set};await Qe0(F,F,W,H,V),V.objects.sort((L,w)=>L.key.localeCompare(w.key));let B=0;if($){if(B=V.objects.findIndex((L)=>L.key>$),B===-1)B=V.objects.length}let U=V.objects.slice(B,B+Z),D=B+Z<V.objects.length,z=D?U[U.length-1]?.key:void 0;return{objects:U,isTruncated:D,nextContinuationToken:z,commonPrefixes:Array.from(V.commonPrefixes).sort()}}},{name:"GET_OBJECT_METADATA",description:"Get metadata for a file in the local assets directory",inputSchema:q.object({key:q.string()}),outputSchema:q.object({contentType:q.string().optional(),contentLength:q.number(),lastModified:q.string(),etag:q.string(),metadata:q.record(q.string(),q.string()).optional()}),handler:async(G)=>{let K=G,W=CM1(J,K.key),Z=await ot0(W);return{contentType:EM1(K.key),contentLength:Z.size,lastModified:Z.mtime.toISOString(),etag:Ye0(W,Z.mtime,Z.size)}}},{name:"GET_PRESIGNED_URL",description:"Generate a presigned URL for downloading a file from local storage",inputSchema:q.object({key:q.string(),expiresIn:q.number().optional()}),outputSchema:q.object({url:q.string(),expiresIn:q.number()}),handler:async(G)=>{let K=G,W=K.expiresIn??it0;return{url:at0(Q,J,K.key,W,"GET"),expiresIn:W}}},{name:"PUT_PRESIGNED_URL",description:"Generate a presigned URL for uploading a file to local storage",inputSchema:q.object({key:q.string(),expiresIn:q.number().optional(),contentType:q.string().optional()}),outputSchema:q.object({url:q.string(),expiresIn:q.number()}),handler:async(G)=>{let K=G,W=K.expiresIn??it0;return{url:at0(Q,J,K.key,W,"PUT"),expiresIn:W}}},{name:"DELETE_OBJECT",description:"Delete a single file from local storage",inputSchema:q.object({key:q.string()}),outputSchema:q.object({success:q.boolean(),key:q.string()}),handler:async(G)=>{let K=G,W=CM1(J,K.key);try{return await ct0(W),{success:!0,key:K.key}}catch{return{success:!1,key:K.key}}}},{name:"DELETE_OBJECTS",description:"Delete multiple files from local storage",inputSchema:q.object({keys:q.array(q.string()).max(1000)}),outputSchema:q.object({deleted:q.array(q.string()),errors:q.array(q.object({key:q.string(),message:q.string()}))}),handler:async(G)=>{let K=G,W=[],Z=[];return await Promise.all(K.keys.map(async(H)=>{let $=CM1(J,H);try{await ct0($),W.push(H)}catch(F){Z.push({key:H,message:F instanceof Error?F.message:"Unknown error"})}})),{deleted:W,errors:Z}}}]}async function IM1(Y,Q,X){let J=Xe0(Q,X),G=new Q$({name:"dev-assets-mcp",version:"1.0.0"},{capabilities:{tools:{}}});for(let W of J){let Z="shape"in W.inputSchema?W.inputSchema.shape:q.object({}).shape,H=W.outputSchema&&"shape"in W.outputSchema?W.outputSchema.shape:q.object({}).shape;G.registerTool(W.name,{description:W.description??"",inputSchema:Z,outputSchema:H,annotations:W.annotations,_meta:W._meta},async($)=>{try{let F=await W.handler($);return{content:[{type:"text",text:JSON.stringify(F)}],structuredContent:F}}catch(F){return{content:[{type:"text",text:`Error: ${F.message}`}],isError:!0}}})}let K=new dZ({enableJsonResponse:Y.headers.get("Accept")?.includes("application/json")??!1});return await G.connect(K),K.handleRequest(Y)}async function Je0(Y,Q,X,J){let K=Xe0(X,J).find((W)=>W.name===Y);if(!K)return{content:[{type:"text",text:`Tool not found: ${Y}`}],isError:!0};try{let W=await K.handler(Q);return{content:[{type:"text",text:JSON.stringify(W)}]}}catch(W){return{content:[{type:"text",text:W instanceof Error?W.message:String(W)}],isError:!0}}}var Ha6,it0=3600,st0,Ge0;var We0=S(()=>{d5();u1();IR();NA();TM1();Ha6=process.env.MESH_HOME?`${process.env.MESH_HOME}/assets`:"./data/assets",st0=new QY;st0.all("/",async(Y)=>{let Q=Y.get("meshContext"),X=new URL(Y.req.url),J=`${X.protocol}//${X.host}`;return IM1(Y.req.raw,Q,J)});Ge0=st0});var Ze0={};n9(Ze0,{mountDevRoutes:()=>Fa6});function Fa6(Y,Q){Y.all("/mcp/:connectionId{.*_dev-assets$}",Q,async(X)=>{let J=X.get("meshContext"),G=new URL(X.req.url),K=`${G.protocol}//${G.host}`;return IM1(X.req.raw,J,K)}),Y.all("/mcp/:connectionId{.*_dev-assets$}/call-tool/:toolName",Q,async(X)=>{let J=X.get("meshContext"),G=new URL(X.req.url),K=`${G.protocol}//${G.host}`,W=X.req.param("toolName");if(!W)return X.json({error:"Missing tool name"},400);let Z=await X.req.json(),H=await Je0(W,Z,J,K);if(H.isError)return X.json(H.content,500);return X.json(H.content)}),Y.use("/mcp/dev-assets",Q),Y.route("/mcp/dev-assets",Ge0),Y.route("/api/dev-assets",pt0)}var Ke0=S(()=>{We0();TM1()});BN();XL();var TJ0=["connection","keep-alive","proxy-authenticate","proxy-authorization","te","trailer","transfer-encoding","upgrade"],Lg4=/^[!#$%&'*+\-.0-9A-Z^_`a-z|~]+$/,Mg4=(Y,Q)=>{if(!Y)return{};let X=new Headers(Y.headers);if(Q){let J=X.get("connection");if(J){let G=J.split(",").map((W)=>W.trim()),K=G.filter((W)=>!Lg4.test(W));if(K.length>0)throw new tQ(400,{message:`Invalid Connection header value: ${K.join(", ")}`});G.forEach((W)=>{X.delete(W)})}}return TJ0.forEach((J)=>{X.delete(J)}),{method:Y.method,body:Y.body,duplex:Y.body?"half":void 0,headers:X,signal:Y.signal}},wg4=(Y)=>{if(!Y.headers||Array.isArray(Y.headers)||Y.headers instanceof Headers)return Y;let Q=new Headers;for(let[X,J]of Object.entries(Y.headers))if(J==null)Q.delete(X);else Q.set(X,J);return Y.headers=Q,Y},CJ0=async(Y,Q)=>{let{raw:X,customFetch:J,strictConnectionProcessing:G=!1,...K}=Q instanceof Request?{raw:Q}:Q??{},W=new Request(Y,{...Mg4(X,G),...wg4(K)});W.headers.delete("accept-encoding");let Z=await(J||fetch)(W),H=new Headers(Z.headers);if(TJ0.forEach(($)=>{H.delete($)}),H.has("content-encoding"))H.delete("content-encoding"),H.delete("content-length");return new Response(Z.body,{status:Z.status,statusText:Z.statusText,headers:H})};var RJ0=(Y)=>(Q)=>{let X=new URL(Q.req.raw.url),J=new URL(Y);return J.pathname=X.pathname,J.search=X.search,CJ0(J,{raw:Q.req.raw,headers:{...Q.req.raw.headers}})};import{resolve as i2,dirname as Ag4,join as Pg4,extname as Eg4,basename as Tg4,sep as IJ0}from"path";function Cg4(Y,Q){if(Y===Q||Tg4(Y)==="index.html")return{"Cache-Control":"no-cache"};if(Y.includes(`${IJ0}assets${IJ0}`))return{"Cache-Control":"public, max-age=31536000, immutable"};return{}}var Rg4=`http://localhost:${process.env.VITE_PORT||"4000"}`,Ig4="./dist/client";function jg4(Y,Q){let X=i2(Q),J=i2(Y);return J===X||J.startsWith(X+"/")}function Sg4({requestPath:Y,clientDir:Q}){let X=Y.startsWith("/")?Y.slice(1):Y,J=i2(Q,X);if(!jg4(J,Q))return null;return J}function e81(Y,Q="../client"){let X=new URL(Y),J=Ag4(X.pathname);return i2(J,Q)}function jJ0(Y={}){let{env:Q="production",devServerUrl:X=Rg4,clientDir:J=Ig4,isServerPath:G=()=>!1}=Y;if(Q==="development"){let K=RJ0(X);return async function(Z){let H=new URL(Z.url);if(G(H.pathname))return null;let $={req:{raw:Z,url:Z.url}};return K($)}}return async function(W){if(W.method!=="GET")return null;let Z=new URL(W.url),H;try{H=decodeURIComponent(Z.pathname)}catch{return null}if(G(H))return null;let $=Sg4({requestPath:H,clientDir:J});if(!$)return null;let F=Pg4($,"index.html"),V=i2(J,"index.html"),B=W.headers.get("accept"),D=B?.includes("text/html")||B?.includes("*/*")&&["",".html"].includes(Eg4($))?[F,V]:[];for(let z of[$,...D])try{let L=Bun.file(z);if(await L.exists())return new Response(L,{headers:Cg4(z,V)})}catch{}if(H.includes("/assets/"))return new Response("Not Found",{status:404,headers:{"Cache-Control":"no-store"}});return null}}var SJ0="https://api.decocms.com/mcp/registry";function kJ0(Y){if(!Y)return!1;try{return new URL(Y).host==="api.decocms.com"&&Y!=="https://api.decocms.com/mcp/registry"}catch{return!1}}$Y();d5();var He0=R6(Pe(),1);mV();var J06=/^[\w!#$%&'*.^`|~+-]+$/,G06=/^[ !#-:<-[\]-~]*$/,f71=(Y,Q)=>{if(Q&&Y.indexOf(Q)===-1)return{};let X=Y.trim().split(";"),J={};for(let G of X){G=G.trim();let K=G.indexOf("=");if(K===-1)continue;let W=G.substring(0,K).trim();if(Q&&Q!==W||!J06.test(W))continue;let Z=G.substring(K+1).trim();if(Z.startsWith('"')&&Z.endsWith('"'))Z=Z.slice(1,-1);if(G06.test(Z)){if(J[W]=Z.indexOf("%")!==-1?NM(Z,jR):Z,Q)break}}return J};var CF0=(Y,Q,X)=>{let J=Y.req.raw.headers.get("Cookie");if(typeof Q==="string"){if(!J)return;let K=Q;if(X==="secure")K="__Secure-"+Q;else if(X==="host")K="__Host-"+Q;return f71(J,K)[K]}if(!J)return{};return f71(J)};var RF0=(Y)=>{let X={...{origin:"*",allowMethods:["GET","HEAD","PUT","POST","DELETE","PATCH"],allowHeaders:[],exposeHeaders:[]},...Y},J=((K)=>{if(typeof K==="string")if(K==="*")return()=>K;else return(W)=>K===W?W:null;else if(typeof K==="function")return K;else return(W)=>K.includes(W)?W:null})(X.origin),G=((K)=>{if(typeof K==="function")return K;else if(Array.isArray(K))return()=>K;else return()=>[]})(X.allowMethods);return async function(W,Z){function H(F,V){W.res.headers.set(F,V)}let $=await J(W.req.header("origin")||"",W);if($)H("Access-Control-Allow-Origin",$);if(X.credentials)H("Access-Control-Allow-Credentials","true");if(X.exposeHeaders?.length)H("Access-Control-Expose-Headers",X.exposeHeaders.join(","));if(W.req.method==="OPTIONS"){if(X.origin!=="*")H("Vary","Origin");if(X.maxAge!=null)H("Access-Control-Max-Age",X.maxAge.toString());let F=await G(W.req.header("origin")||"",W);if(F.length)H("Access-Control-Allow-Methods",F.join(","));let V=X.allowHeaders;if(!V?.length){let B=W.req.header("Access-Control-Request-Headers");if(B)V=B.split(/\s*,\s*/)}if(V?.length)H("Access-Control-Allow-Headers",V.join(",")),W.res.headers.append("Vary","Access-Control-Request-Headers");return W.res.headers.delete("Content-Length"),W.res.headers.delete("Content-Type"),new Response(null,{headers:W.res.headers,status:204,statusText:"No Content"})}if(await Z(),X.origin!=="*")W.header("Vary","Origin",{append:!0})}};function W06(){let{process:Y,Deno:Q}=globalThis;return!(typeof Q?.noColor==="boolean"?Q.noColor:Y!==void 0?"NO_COLOR"in Y?.env:!1)}async function IF0(){let{navigator:Y}=globalThis,Q="cloudflare:workers";return!(Y!==void 0&&Y.userAgent==="Cloudflare-Workers"?await(async()=>{try{return"NO_COLOR"in((await import("cloudflare:workers")).env??{})}catch{return!1}})():!W06())}var Z06=(Y)=>{let[Q,X]=[",","."];return Y.map((G)=>G.replace(/(\d)(?=(\d\d\d)+(?!\d))/g,"$1"+Q)).join(X)},K06=(Y)=>{let Q=Date.now()-Y;return Z06([Q<1000?Q+"ms":Math.round(Q/1000)+"s"])},H06=async(Y)=>{if(await IF0())switch(Y/100|0){case 5:return`\x1B[31m${Y}\x1B[0m`;case 4:return`\x1B[33m${Y}\x1B[0m`;case 3:return`\x1B[36m${Y}\x1B[0m`;case 2:return`\x1B[32m${Y}\x1B[0m`}return`${Y}`};async function jF0(Y,Q,X,J,G=0,K){let W=Q==="<--"?`${Q} ${X} ${J}`:`${Q} ${X} ${J} ${await H06(G)} ${K}`;Y(W)}var SF0=(Y=console.log)=>{return async function(X,J){let{method:G,url:K}=X.req,W=K.slice(K.indexOf("/",8));await jF0(Y,"<--",G,W);let Z=Date.now();await J(),await jF0(Y,"-->",G,W,X.res.status,K06(Z))}};om();var kF0=()=>{try{return performance.now()}catch{}return Date.now()},b71=(Y)=>{let Q={total:!0,enabled:!0,totalDescription:"Total Response Time",autoEnd:!0,crossOrigin:!1,...Y};return async function(J,G){let K=[],W=new Map;if(J.get("metric"))return await G();if(J.set("metric",{headers:K,timers:W}),Q.total)MM(J,"total",Q.totalDescription);if(await G(),Q.total)RD(J,"total");if(Q.autoEnd)W.forEach((H,$)=>RD(J,$));if(typeof Q.enabled==="function"?Q.enabled(J):Q.enabled){J.res.headers.append("Server-Timing",K.join(","));let H=typeof Q.crossOrigin==="function"?Q.crossOrigin(J):Q.crossOrigin;if(H)J.res.headers.append("Timing-Allow-Origin",typeof H==="string"?H:"*")}}},vF0=(Y,Q,X,J,G)=>{let K=Y.get("metric");if(!K){console.warn("Metrics not initialized! Please add the `timing()` middleware to this route!");return}if(typeof X==="number"){let W=X.toFixed(G||1),Z=J?`${Q};dur=${W};desc="${J}"`:`${Q};dur=${W}`;K.headers.push(Z)}else{let W=X?`${Q};desc="${X}"`:`${Q}`;K.headers.push(W)}},MM=(Y,Q,X)=>{let J=Y.get("metric");if(!J){console.warn("Metrics not initialized! Please add the `timing()` middleware to this route!");return}J.timers.set(Q,{description:X,start:kF0()})},RD=(Y,Q,X)=>{let J=Y.get("metric");if(!J){console.warn("Metrics not initialized! Please add the `timing()` middleware to this route!");return}let G=J.timers.get(Q);if(!G){console.warn(`Timer "${Q}" does not exist!`);return}let{description:K,start:W}=G,Z=kF0()-W;vF0(Y,Q,Z,K,X),J.timers.delete(Q)};kz();wz1();wn();VV1();N5();$Y();UF();class XN1{db;constructor(Y){this.db=Y}async create(Y,Q,X){let J=d8("vir"),G=new Date().toISOString();if(await this.db.insertInto("connections").values({id:J,organization_id:Y,created_by:Q,title:X.title,description:X.description??null,icon:X.icon??null,app_name:null,app_id:null,connection_type:"VIRTUAL",connection_url:`virtual://${J}`,connection_token:null,connection_headers:null,oauth_config:null,configuration_state:null,configuration_scopes:null,metadata:X.metadata?JSON.stringify(X.metadata):null,tools:null,bindings:null,status:X.status??"active",created_at:G,updated_at:G}).execute(),X.connections.length>0)await this.db.insertInto("connection_aggregations").values(X.connections.map((W)=>({id:d8("agg"),parent_connection_id:J,child_connection_id:W.connection_id,selected_tools:W.selected_tools?JSON.stringify(W.selected_tools):null,selected_resources:W.selected_resources?JSON.stringify(W.selected_resources):null,selected_prompts:W.selected_prompts?JSON.stringify(W.selected_prompts):null,dependency_mode:"direct",created_at:G}))).execute();let K=await this.findById(J);if(!K)throw Error(`Failed to create virtual MCP with id: ${J}`);return K}async findById(Y,Q){let X=Y$(Y);if(X){let J=Q??X,G=await this.db.selectFrom("connections").selectAll().where("organization_id","=",J).where("status","!=","inactive").where("status","!=","error").execute();return{...xm(J),connections:G.map((K)=>({connection_id:K.id,selected_tools:null,selected_resources:null,selected_prompts:null}))}}return this.findByIdInternal(this.db,Y)}async findByIdInternal(Y,Q){let X=await Y.selectFrom("connections").selectAll().where("id","=",Q).where("connection_type","=","VIRTUAL").executeTakeFirst();if(!X)return null;let J=await Y.selectFrom("connection_aggregations").selectAll().where("parent_connection_id","=",Q).where("dependency_mode","=","direct").execute();return this.deserializeVirtualMCPEntity(X,J)}async list(Y){let Q=await this.db.selectFrom("connections").selectAll().where("organization_id","=",Y).where("connection_type","=","VIRTUAL").execute(),X=Q.map((K)=>K.id);if(X.length===0)return[];let J=await this.db.selectFrom("connection_aggregations").selectAll().where("parent_connection_id","in",X).where("dependency_mode","=","direct").execute(),G=new Map;for(let K of J){let W=G.get(K.parent_connection_id)??[];W.push(K),G.set(K.parent_connection_id,W)}return Q.map((K)=>this.deserializeVirtualMCPEntity(K,G.get(K.id)??[]))}async listByConnectionId(Y,Q){let J=(await this.db.selectFrom("connection_aggregations").select("parent_connection_id").where("child_connection_id","=",Q).execute()).map((H)=>H.parent_connection_id);if(J.length===0)return[];let G=await this.db.selectFrom("connections").selectAll().where("id","in",J).where("organization_id","=",Y).where("connection_type","=","VIRTUAL").execute();if(G.length===0)return[];let K=G.map((H)=>H.id),W=await this.db.selectFrom("connection_aggregations").selectAll().where("parent_connection_id","in",K).where("dependency_mode","=","direct").execute(),Z=new Map;for(let H of W){let $=Z.get(H.parent_connection_id)??[];$.push(H),Z.set(H.parent_connection_id,$)}return G.map((H)=>this.deserializeVirtualMCPEntity(H,Z.get(H.id)??[]))}async update(Y,Q,X){let J=new Date().toISOString(),G={updated_at:J,updated_by:Q};if(X.title!==void 0)G.title=X.title;if(X.description!==void 0)G.description=X.description;if(X.icon!==void 0)G.icon=X.icon;if(X.status!==void 0)G.status=X.status;if(X.metadata!==void 0)G.metadata=X.metadata?JSON.stringify(X.metadata):null;if(await this.db.updateTable("connections").set(G).where("id","=",Y).where("connection_type","=","VIRTUAL").execute(),X.connections!==void 0){if(await this.db.deleteFrom("connection_aggregations").where("parent_connection_id","=",Y).where("dependency_mode","=","direct").execute(),X.connections.length>0)await this.db.insertInto("connection_aggregations").values(X.connections.map((W)=>({id:d8("agg"),parent_connection_id:Y,child_connection_id:W.connection_id,selected_tools:W.selected_tools?JSON.stringify(W.selected_tools):null,selected_resources:W.selected_resources?JSON.stringify(W.selected_resources):null,selected_prompts:W.selected_prompts?JSON.stringify(W.selected_prompts):null,dependency_mode:"direct",created_at:J}))).execute()}let K=await this.findById(Y);if(!K)throw Error("Virtual MCP not found after update");return K}async delete(Y){await this.db.deleteFrom("connection_aggregations").where("parent_connection_id","=",Y).execute(),await this.db.deleteFrom("connections").where("id","=",Y).where("connection_type","=","VIRTUAL").execute()}async removeConnectionReferences(Y){await this.db.deleteFrom("connection_aggregations").where("child_connection_id","=",Y).execute()}deserializeVirtualMCPEntity(Y,Q){let X=Y.created_at instanceof Date?Y.created_at.toISOString():Y.created_at,J=Y.updated_at instanceof Date?Y.updated_at.toISOString():Y.updated_at,G=Y.status==="active"?"active":"inactive",K=this.parseJson(Y.metadata);return{id:Y.id,organization_id:Y.organization_id,title:Y.title,description:Y.description,icon:Y.icon,status:G,created_at:X,updated_at:J,created_by:Y.created_by,updated_by:Y.updated_by??void 0,metadata:{...K,instructions:K?.instructions??null},connections:Q.map((W)=>({connection_id:W.child_connection_id,selected_tools:this.parseJson(W.selected_tools),selected_resources:this.parseJson(W.selected_resources),selected_prompts:this.parseJson(W.selected_prompts)}))}}parseJson(Y){if(Y===null)return null;if(typeof Y==="string")try{return JSON.parse(Y)}catch{return null}return Y}async listVirtualTools(Y){let Q=await this.db.selectFrom("connections").select(["tools","created_at","updated_at"]).where("id","=",Y).where("connection_type","=","VIRTUAL").executeTakeFirst();if(!Q)return[];let X=this.parseJson(Q.tools);if(!X)return[];let J=Q.created_at instanceof Date?Q.created_at.toISOString():Q.created_at,G=Q.updated_at instanceof Date?Q.updated_at.toISOString():Q.updated_at;return X.map((K,W)=>({tool:K,originalIndex:W})).filter(({tool:K})=>UB(K)).map(({tool:K,originalIndex:W})=>qv(`${Y}:${K.name}:${W}`,K,J,G))}async getVirtualTool(Y,Q){let X=await this.db.selectFrom("connections").select(["tools","created_at","updated_at"]).where("id","=",Y).where("connection_type","=","VIRTUAL").executeTakeFirst();if(!X)return null;let J=this.parseJson(X.tools);if(!J)return null;let G=J.findIndex((H)=>H.name===Q&&UB(H));if(G===-1)return null;let K=J[G],W=X.created_at instanceof Date?X.created_at.toISOString():X.created_at,Z=X.updated_at instanceof Date?X.updated_at.toISOString():X.updated_at;return qv(`${Y}:${K.name}:${G}`,K,W,Z)}async createVirtualTool(Y,Q,X){let J=new Date().toISOString(),G=await this.db.selectFrom("connections").select(["tools"]).where("id","=",Y).where("connection_type","=","VIRTUAL").executeTakeFirst();if(!G)throw Error(`Virtual MCP not found: ${Y}`);let K=this.parseJson(G.tools)??[];if(K.some((Z)=>Z.name===Q.name))throw Error(`Tool with name "${Q.name}" already exists`);let W={name:Q.name,description:Q.description,inputSchema:Q.inputSchema,outputSchema:Q.outputSchema,annotations:Q.annotations,_meta:{"mcp.mesh":{"tool.fn":Q.code},connectionDependencies:X}};return K.push(W),await this.db.updateTable("connections").set({tools:JSON.stringify(K),updated_at:J}).where("id","=",Y).execute(),await this.syncIndirectDependencies(Y,X),qv(`${Y}:${Q.name}:${K.length-1}`,W,J,J)}async updateVirtualTool(Y,Q,X,J){let G=new Date().toISOString(),K=await this.db.selectFrom("connections").select(["tools","created_at"]).where("id","=",Y).where("connection_type","=","VIRTUAL").executeTakeFirst();if(!K)throw Error(`Virtual MCP not found: ${Y}`);let W=this.parseJson(K.tools)??[],Z=W.findIndex((B)=>B.name===Q&&UB(B));if(Z===-1)throw Error(`Virtual tool not found: ${Q}`);let H=W[Z];if(X.name&&X.name!==Q){if(W.some((B)=>B.name===X.name))throw Error(`Tool with name "${X.name}" already exists`)}let $=J??H._meta.connectionDependencies??[],F={name:X.name??H.name,description:X.description!==void 0?X.description??void 0:H.description,inputSchema:X.inputSchema??H.inputSchema,outputSchema:X.outputSchema!==void 0?X.outputSchema??void 0:H.outputSchema,annotations:X.annotations!==void 0?X.annotations??void 0:H.annotations,_meta:{"mcp.mesh":{"tool.fn":X.code??H._meta["mcp.mesh"]["tool.fn"]},connectionDependencies:$}};if(W[Z]=F,await this.db.updateTable("connections").set({tools:JSON.stringify(W),updated_at:G}).where("id","=",Y).execute(),J!==void 0)await this.recalculateIndirectDependencies(Y,W);let V=K.created_at instanceof Date?K.created_at.toISOString():K.created_at;return qv(`${Y}:${F.name}:${Z}`,F,V,G)}async deleteVirtualTool(Y,Q){let X=new Date().toISOString(),J=await this.db.selectFrom("connections").select(["tools"]).where("id","=",Y).where("connection_type","=","VIRTUAL").executeTakeFirst();if(!J)throw Error(`Virtual MCP not found: ${Y}`);let G=this.parseJson(J.tools)??[],K=G.findIndex((W)=>W.name===Q&&UB(W));if(K===-1)throw Error(`Virtual tool not found: ${Q}`);G.splice(K,1),await this.db.updateTable("connections").set({tools:G.length>0?JSON.stringify(G):null,updated_at:X}).where("id","=",Y).execute(),await this.recalculateIndirectDependencies(Y,G)}async syncIndirectDependencies(Y,Q){if(Q.length===0)return;let X=new Date().toISOString(),J=await this.db.selectFrom("connection_aggregations").select(["child_connection_id","dependency_mode"]).where("parent_connection_id","=",Y).execute(),G=new Set(J.map((W)=>W.child_connection_id)),K=Q.filter((W)=>!G.has(W));if(K.length>0)await this.db.insertInto("connection_aggregations").values(K.map((W)=>({id:d8("agg"),parent_connection_id:Y,child_connection_id:W,selected_tools:null,selected_resources:null,selected_prompts:null,dependency_mode:"indirect",created_at:X}))).execute()}async recalculateIndirectDependencies(Y,Q){let X=new Set;for(let Z of Q)if(UB(Z)){let H=Z._meta.connectionDependencies??[];for(let $ of H)X.add($)}let J=await this.db.selectFrom("connection_aggregations").select(["id","child_connection_id","dependency_mode"]).where("parent_connection_id","=",Y).execute(),G=J.filter((Z)=>Z.dependency_mode==="indirect"&&!X.has(Z.child_connection_id)).map((Z)=>Z.id);if(G.length>0)await this.db.deleteFrom("connection_aggregations").where("id","in",G).execute();let K=new Set(J.map((Z)=>Z.child_connection_id)),W=Array.from(X).filter((Z)=>!K.has(Z));if(W.length>0){let Z=new Date().toISOString();await this.db.insertInto("connection_aggregations").values(W.map((H)=>({id:d8("agg"),parent_connection_id:Y,child_connection_id:H,selected_tools:null,selected_resources:null,selected_prompts:null,dependency_mode:"indirect",created_at:Z}))).execute()}}}import{sql as g6}from"kysely";class JN1{patterns=[{type:"email",regex:/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}/g},{type:"api_key",regex:/(?:api[_-]?key|token|secret|password|bearer)\s*[:=]\s*['"]?[\w-]{16,}['"]?/gi},{type:"jwt",regex:/eyJ[A-Za-z0-9-_]+\.eyJ[A-Za-z0-9-_]+\.[A-Za-z0-9-_.+/=]*/g},{type:"credit_card",regex:/\b\d{4}[- ]?\d{4}[- ]?\d{4}[- ]?\d{4}\b/g},{type:"ssn",regex:/\b\d{3}-\d{2}-\d{4}\b/g}];redact(Y){if(Y===null||Y===void 0)return Y;if(typeof Y==="string")return this.redactString(Y);if(Array.isArray(Y))return Y.map((Q)=>this.redact(Q));if(typeof Y==="object"){let Q={};for(let[X,J]of Object.entries(Y)){let G=this.redactString(X);Q[G]=this.redact(J)}return Q}return Y}redactString(Y){let Q=Y;for(let X of this.patterns)Q=Q.replace(X.regex,`[REDACTED:${X.type}]`);return Q}}N5();class GN1{db;redactor;databaseType;constructor(Y,Q="sqlite"){this.db=Y;this.redactor=new JN1,this.databaseType=Q}jsonExtract(Y,Q){if(this.databaseType==="postgres")return g6`(${g6.ref(Y)}::jsonb)->>${Q}`;let X=`$.${Q}`;return g6`json_extract(${g6.ref(Y)}, ${X})`}jsonExtractWithCommas(Y,Q){if(this.databaseType==="postgres")return g6`(',' || (${g6.ref(Y)}::jsonb)->>${Q} || ',')`;let X=`$.${Q}`;return g6`(',' || json_extract(${g6.ref(Y)}, ${X}) || ',')`}escapeLikeWildcards(Y){return Y.replace(/\\/g,"\\\\").replace(/%/g,"\\%").replace(/_/g,"\\_")}async log(Y){await this.logBatch([Y])}async logBatch(Y){if(Y.length===0)return;let Q=Y.map((X)=>({...X,input:this.redactor.redact(X.input),output:this.redactor.redact(X.output)}));await this.db.transaction().execute(async(X)=>{await X.insertInto("monitoring_logs").values(Q.map((J)=>this.toDbRow(J))).execute()})}async query(Y){let Q=this.db.selectFrom("monitoring_logs").selectAll(),X=this.db.selectFrom("monitoring_logs").select((Z)=>Z.fn.count("id").as("count"));if(Y.organizationId)Q=Q.where("organization_id","=",Y.organizationId),X=X.where("organization_id","=",Y.organizationId);if(Y.connectionId)Q=Q.where("connection_id","=",Y.connectionId),X=X.where("connection_id","=",Y.connectionId);if(Y.excludeConnectionIds&&Y.excludeConnectionIds.length>0)Q=Q.where("connection_id","not in",Y.excludeConnectionIds),X=X.where("connection_id","not in",Y.excludeConnectionIds);if(Y.virtualMcpId)Q=Q.where("virtual_mcp_id","=",Y.virtualMcpId),X=X.where("virtual_mcp_id","=",Y.virtualMcpId);if(Y.toolName)Q=Q.where("tool_name","=",Y.toolName),X=X.where("tool_name","=",Y.toolName);if(Y.isError!==void 0)Q=Q.where("is_error","=",Y.isError?1:0),X=X.where("is_error","=",Y.isError?1:0);if(Y.startDate)Q=Q.where("timestamp",">=",Y.startDate.toISOString()),X=X.where("timestamp",">=",Y.startDate.toISOString());if(Y.endDate)Q=Q.where("timestamp","<=",Y.endDate.toISOString()),X=X.where("timestamp","<=",Y.endDate.toISOString());if(Y.propertyFilters)Q=this.applyPropertyFilters(Q,Y.propertyFilters),X=this.applyPropertyFilters(X,Y.propertyFilters);if(Q=Q.orderBy("timestamp","desc"),Y.limit)Q=Q.limit(Y.limit);if(Y.offset)Q=Q.offset(Y.offset);let[J,G]=await Promise.all([Q.execute(),X.executeTakeFirst()]),K=Number(G?.count||0);return{logs:J.map((Z)=>this.fromDbRow(Z)),total:K}}async getStats(Y){let Q=this.db.selectFrom("monitoring_logs").where("organization_id","=",Y.organizationId);if(Y.startDate)Q=Q.where("timestamp",">=",Y.startDate.toISOString());if(Y.endDate)Q=Q.where("timestamp","<=",Y.endDate.toISOString());let X=await Q.select([(W)=>W.fn.count("id").as("total_count"),(W)=>W.fn.sum(W.ref("is_error")).as("error_count"),(W)=>W.fn.avg("duration_ms").as("avg_duration")]).executeTakeFirst(),J=Number(X?.total_count||0),G=Number(X?.error_count||0),K=Number(X?.avg_duration||0);return{totalCalls:J,errorRate:J>0?G/J:0,avgDurationMs:K}}async aggregate(Y){let{organizationId:Q,path:X,from:J,aggregation:G,groupBy:K,groupByColumn:W,interval:Z,filters:H}=Y,$=J==="input"?"input":"output",F=this.db.selectFrom("monitoring_logs").where("organization_id","=",Q);if(H?.connectionIds&&H.connectionIds.length>0)F=F.where("connection_id","in",H.connectionIds);if(H?.virtualMcpIds&&H.virtualMcpIds.length>0)F=F.where("virtual_mcp_id","in",H.virtualMcpIds);if(H?.toolNames&&H.toolNames.length>0)F=F.where("tool_name","in",H.toolNames);if(H?.startDate)F=F.where("timestamp",">=",H.startDate.toISOString());if(H?.endDate)F=F.where("timestamp","<=",H.endDate.toISOString());if(H?.propertyFilters)F=this.applyPropertyFilters(F,H.propertyFilters);let V=this.jsonExtractPath($,X);if(W){let U=g6.ref(W);return{value:null,groups:(await F.select([g6`${U}`.as("group_key"),this.aggregationExpression(G,V).as("agg_value")]).groupBy(g6`${U}`).execute()).filter((z)=>z.group_key!==null).map((z)=>({key:String(z.group_key),value:Number(z.agg_value)||0}))}}if(K){let U=this.jsonExtractPathText($,K);return{value:null,groups:(await F.select([g6`${U}`.as("group_key"),this.aggregationExpression(G,V).as("agg_value")]).groupBy(g6`${U}`).execute()).filter((z)=>z.group_key!==null).map((z)=>({key:String(z.group_key),value:Number(z.agg_value)||0}))}}if(Z){let U=this.timeBucketExpression(Z);return{value:null,timeseries:(await F.select([U.as("time_bucket"),this.aggregationExpression(G,V).as("agg_value")]).groupBy(g6`time_bucket`).orderBy(g6`time_bucket`).execute()).map((z)=>({timestamp:String(z.time_bucket),value:Number(z.agg_value)||0}))}}let B=await F.select([this.aggregationExpression(G,V).as("agg_value")]).executeTakeFirst();return{value:B?Number(B.agg_value)||0:null}}async countMatched(Y){let{organizationId:Q,path:X,from:J,filters:G}=Y,K=J==="input"?"input":"output",W=this.db.selectFrom("monitoring_logs").where("organization_id","=",Q);if(G?.connectionIds&&G.connectionIds.length>0)W=W.where("connection_id","in",G.connectionIds);if(G?.toolNames&&G.toolNames.length>0)W=W.where("tool_name","in",G.toolNames);if(G?.startDate)W=W.where("timestamp",">=",G.startDate.toISOString());if(G?.endDate)W=W.where("timestamp","<=",G.endDate.toISOString());if(G?.propertyFilters)W=this.applyPropertyFilters(W,G.propertyFilters);let Z=this.jsonExtractPathText(K,X),H=await W.where(g6`${Z}`,"is not",null).select(($)=>$.fn.count("id").as("count")).executeTakeFirst();return Number(H?.count||0)}jsonExtractPath(Y,Q){if(this.databaseType==="postgres"){let J=`{${Q.replace(/^\$\.?/,"").split(".").join(",")}}`;return g6`(${g6.ref(Y)}::jsonb #>> ${J})::numeric`}return g6`CAST(json_extract(${g6.ref(Y)}, ${Q}) AS REAL)`}jsonExtractPathText(Y,Q){if(this.databaseType==="postgres"){let J=`{${Q.replace(/^\$\.?/,"").split(".").join(",")}}`;return g6`(${g6.ref(Y)}::jsonb #>> ${J})`}return g6`json_extract(${g6.ref(Y)}, ${Q})`}aggregationExpression(Y,Q){switch(Y){case"sum":return g6`COALESCE(SUM(${Q}), 0)`;case"avg":return g6`COALESCE(AVG(${Q}), 0)`;case"min":return g6`MIN(${Q})`;case"max":return g6`MAX(${Q})`;case"count":return g6`COUNT(${Q})`;case"count_all":return g6`COUNT(*)`;case"last":return g6`MAX(${Q})`;default:return g6`SUM(${Q})`}}timeBucketExpression(Y){let Q=Y.match(/^(\d+)([mhd])$/);if(!Q)throw Error(`Invalid interval format: ${Y}. Use format like "1h", "1d", "15m"`);let[,X,J]=Q;if(!X||!J)throw Error(`Invalid interval format: ${Y}`);let G=parseInt(X,10);if(this.databaseType==="postgres"){let K;switch(J){case"m":K="minute";break;case"h":K="hour";break;case"d":K="day";break;default:K="hour"}if(G===1)return g6`date_trunc(${K}, timestamp::timestamp)`;let Z=G*(J==="m"?60:J==="h"?3600:86400);return g6`to_timestamp(floor(extract(epoch from timestamp::timestamp) / ${Z}) * ${Z})`}switch(J){case"m":if(G===1)return g6`strftime('%Y-%m-%d %H:%M:00', timestamp)`;return g6`strftime('%Y-%m-%d %H:', timestamp) || printf('%02d', (cast(strftime('%M', timestamp) as integer) / ${G}) * ${G}) || ':00'`;case"h":if(G===1)return g6`strftime('%Y-%m-%d %H:00:00', timestamp)`;return g6`strftime('%Y-%m-%d ', timestamp) || printf('%02d', (cast(strftime('%H', timestamp) as integer) / ${G}) * ${G}) || ':00:00'`;case"d":return g6`strftime('%Y-%m-%d 00:00:00', timestamp)`;default:return g6`strftime('%Y-%m-%d %H:00:00', timestamp)`}}applyPropertyFilters(Y,Q){let{properties:X,propertyKeys:J,propertyPatterns:G,propertyInValues:K}=Q;if(X)for(let[W,Z]of Object.entries(X)){let H=this.jsonExtract("properties",W);Y=Y.where(H,"=",Z)}if(J&&J.length>0)for(let W of J){let Z=this.jsonExtract("properties",W);Y=Y.where(Z,"is not",null)}if(G)for(let[W,Z]of Object.entries(G)){let H=this.jsonExtract("properties",W),$=this.databaseType==="postgres"?"ilike":"like";Y=Y.where(H,$,Z)}if(K)for(let[W,Z]of Object.entries(K)){let H=this.jsonExtractWithCommas("properties",W),F=`%,${this.escapeLikeWildcards(Z)},%`,V=g6`${H} LIKE ${F} ESCAPE '\\'`;Y=Y.where(V)}return Y}toDbRow(Y){return{id:Y.id||d8("log"),organization_id:Y.organizationId,connection_id:Y.connectionId,connection_title:Y.connectionTitle,tool_name:Y.toolName,input:JSON.stringify(Y.input),output:JSON.stringify(Y.output),is_error:Y.isError?1:0,error_message:Y.errorMessage||null,duration_ms:Y.durationMs,timestamp:Y.timestamp instanceof Date?Y.timestamp.toISOString():Y.timestamp,user_id:Y.userId||null,request_id:Y.requestId,user_agent:Y.userAgent||null,virtual_mcp_id:Y.virtualMcpId||null,properties:Y.properties?JSON.stringify(Y.properties):null}}fromDbRow(Y){let Q=typeof Y.input==="string"?JSON.parse(Y.input):Y.input,X=typeof Y.output==="string"?JSON.parse(Y.output):Y.output,J=typeof Y.timestamp==="string"?new Date(Y.timestamp):Y.timestamp,G=Y.properties?typeof Y.properties==="string"?JSON.parse(Y.properties):Y.properties:null;return{id:Y.id,organizationId:Y.organization_id,connectionId:Y.connection_id,connectionTitle:Y.connection_title,toolName:Y.tool_name,input:Q,output:X,isError:Y.is_error===1,errorMessage:Y.error_message,durationMs:Y.duration_ms,timestamp:J,userId:Y.user_id,requestId:Y.request_id,userAgent:Y.user_agent,virtualMcpId:Y.virtual_mcp_id,properties:G}}}N5();class WN1{db;constructor(Y){this.db=Y}async create(Y,Q,X){let J=d8("dash"),G=new Date().toISOString();return await this.db.insertInto("monitoring_dashboards").values({id:J,organization_id:Y,name:X.name,description:X.description??null,filters:X.filters?JSON.stringify(X.filters):null,widgets:JSON.stringify(X.widgets),created_by:Q,created_at:G,updated_at:G}).execute(),{id:J,organizationId:Y,name:X.name,description:X.description??null,filters:X.filters??null,widgets:X.widgets,createdBy:Q,createdAt:G,updatedAt:G}}async get(Y){let Q=await this.db.selectFrom("monitoring_dashboards").selectAll().where("id","=",Y).executeTakeFirst();if(!Q)return null;return this.fromDbRow(Q)}async list(Y){return(await this.db.selectFrom("monitoring_dashboards").selectAll().where("organization_id","=",Y).orderBy("created_at","desc").execute()).map((X)=>this.fromDbRow(X))}async update(Y,Q){let J={updated_at:new Date().toISOString()};if(Q.name!==void 0)J.name=Q.name;if(Q.description!==void 0)J.description=Q.description;if(Q.filters!==void 0)J.filters=Q.filters?JSON.stringify(Q.filters):null;if(Q.widgets!==void 0)J.widgets=JSON.stringify(Q.widgets);await this.db.updateTable("monitoring_dashboards").set(J).where("id","=",Y).execute();let G=await this.get(Y);if(!G)throw Error(`Dashboard ${Y} not found after update`);return G}async delete(Y){await this.db.deleteFrom("monitoring_dashboards").where("id","=",Y).execute()}fromDbRow(Y){let Q=Y.filters?typeof Y.filters==="string"?JSON.parse(Y.filters):Y.filters:null,X=typeof Y.widgets==="string"?JSON.parse(Y.widgets):Y.widgets;return{id:Y.id,organizationId:Y.organization_id,name:Y.name,description:Y.description,filters:Q,widgets:X,createdBy:Y.created_by,createdAt:Y.created_at instanceof Date?Y.created_at.toISOString():Y.created_at,updatedAt:Y.updated_at instanceof Date?Y.updated_at.toISOString():Y.updated_at}}}class ZN1{db;constructor(Y){this.db=Y}async get(Y){let Q=await this.db.selectFrom("organization_settings").selectAll().where("organizationId","=",Y).executeTakeFirst();if(!Q)return null;return{organizationId:Q.organizationId,sidebar_items:Q.sidebar_items?typeof Q.sidebar_items==="string"?JSON.parse(Q.sidebar_items):Q.sidebar_items:null,enabled_plugins:Q.enabled_plugins?typeof Q.enabled_plugins==="string"?JSON.parse(Q.enabled_plugins):Q.enabled_plugins:null,createdAt:Q.createdAt,updatedAt:Q.updatedAt}}async upsert(Y,Q){let X=new Date().toISOString(),J=Q?.sidebar_items?JSON.stringify(Q.sidebar_items):null,G=Q?.enabled_plugins?JSON.stringify(Q.enabled_plugins):null;await this.db.insertInto("organization_settings").values({organizationId:Y,sidebar_items:J,enabled_plugins:G,createdAt:X,updatedAt:X}).onConflict((W)=>W.column("organizationId").doUpdateSet({sidebar_items:J?J:void 0,enabled_plugins:G?G:void 0,updatedAt:X})).execute();let K=await this.get(Y);if(!K)return{organizationId:Y,sidebar_items:Q?.sidebar_items??null,enabled_plugins:Q?.enabled_plugins??null,createdAt:X,updatedAt:X};return K}}qV1();N5();class KN1{db;constructor(Y){this.db=Y}parseRow(Y){return{id:Y.id,projectId:Y.project_id,connectionId:Y.connection_id,createdAt:Y.created_at}}async list(Y){return(await this.db.selectFrom("project_connections").selectAll().where("project_id","=",Y).orderBy("created_at","asc").execute()).map((X)=>this.parseRow(X))}async add(Y,Q){let X=new Date().toISOString(),J=d8("pc"),G=await this.db.insertInto("project_connections").values({id:J,project_id:Y,connection_id:Q,created_at:X}).onConflict((W)=>W.columns(["project_id","connection_id"]).doNothing()).returning(["id","project_id","connection_id","created_at"]).executeTakeFirst();if(G)return this.parseRow(G);let K=await this.db.selectFrom("project_connections").selectAll().where("project_id","=",Y).where("connection_id","=",Q).executeTakeFirstOrThrow();return this.parseRow(K)}async remove(Y,Q){return((await this.db.deleteFrom("project_connections").where("project_id","=",Y).where("connection_id","=",Q).executeTakeFirst()).numDeletedRows??0n)>0n}}N5();class HN1{db;constructor(Y){this.db=Y}parseRow(Y){return{id:Y.id,projectId:Y.project_id,pluginId:Y.plugin_id,connectionId:Y.connection_id,settings:Y.settings?typeof Y.settings==="string"?JSON.parse(Y.settings):Y.settings:null,createdAt:Y.created_at,updatedAt:Y.updated_at}}async list(Y){return(await this.db.selectFrom("project_plugin_configs").selectAll().where("project_id","=",Y).execute()).map((X)=>this.parseRow(X))}async get(Y,Q){let X=await this.db.selectFrom("project_plugin_configs").selectAll().where("project_id","=",Y).where("plugin_id","=",Q).executeTakeFirst();return X?this.parseRow(X):null}async upsert(Y,Q,X){let J=new Date().toISOString();if(await this.get(Y,Q)){let Z={updated_at:J};if(X.connectionId!==void 0)Z.connection_id=X.connectionId;if(X.settings!==void 0)Z.settings=X.settings?JSON.stringify(X.settings):null;await this.db.updateTable("project_plugin_configs").set(Z).where("project_id","=",Y).where("plugin_id","=",Q).execute();let H=await this.get(Y,Q);if(!H)throw Error("Failed to update project plugin config");return H}let K=d8("ppc");await this.db.insertInto("project_plugin_configs").values({id:K,project_id:Y,plugin_id:Q,connection_id:X.connectionId??null,settings:X.settings?JSON.stringify(X.settings):null,created_at:J,updated_at:J}).execute();let W=await this.get(Y,Q);if(!W)throw Error("Failed to create project plugin config");return W}async delete(Y,Q){return((await this.db.deleteFrom("project_plugin_configs").where("project_id","=",Y).where("plugin_id","=",Q).executeTakeFirst()).numDeletedRows??0n)>0n}async getBoundConnectionsForProjects(Y){if(Y.length===0)return new Map;let Q=await this.db.selectFrom("project_plugin_configs").innerJoin("connections","connections.id","project_plugin_configs.connection_id").select(["project_plugin_configs.project_id","connections.id as connection_id","connections.title","connections.icon"]).where("project_plugin_configs.project_id","in",Y).where("project_plugin_configs.connection_id","is not",null).execute(),X=new Map;for(let J of Q){let G=J.project_id;if(!X.has(G))X.set(G,[]);X.get(G).push({id:J.connection_id,title:J.title,icon:J.icon})}return X}}N5();class $N1{db;constructor(Y){this.db=Y}async listOrgTags(Y){return(await this.db.selectFrom("organization_tags").selectAll().where("organization_id","=",Y).orderBy("name","asc").execute()).map((X)=>this.tagFromDbRow(X))}async getTag(Y){let Q=await this.db.selectFrom("organization_tags").selectAll().where("id","=",Y).executeTakeFirst();return Q?this.tagFromDbRow(Q):null}async getTagByName(Y,Q){let X=await this.db.selectFrom("organization_tags").selectAll().where("organization_id","=",Y).where("name","=",Q).executeTakeFirst();return X?this.tagFromDbRow(X):null}async createTag(Y,Q){let X=d8("tag"),J=new Date().toISOString();await this.db.insertInto("organization_tags").values({id:X,organization_id:Y,name:Q,created_at:J}).onConflict((K)=>K.columns(["organization_id","name"]).doNothing()).execute();let G=await this.getTagByName(Y,Q);if(!G)throw Error(`Failed to create or retrieve tag: ${Q}`);return G}async deleteTag(Y){await this.db.deleteFrom("organization_tags").where("id","=",Y).execute()}async getMemberTags(Y){return(await this.db.selectFrom("member_tags").innerJoin("organization_tags","organization_tags.id","member_tags.tag_id").select(["organization_tags.id","organization_tags.organization_id","organization_tags.name","organization_tags.created_at"]).where("member_tags.member_id","=",Y).orderBy("organization_tags.name","asc").execute()).map((X)=>this.tagFromDbRow(X))}async setMemberTags(Y,Q){await this.db.transaction().execute(async(X)=>{if(await X.deleteFrom("member_tags").where("member_id","=",Y).execute(),Q.length>0){let J=new Date().toISOString();await X.insertInto("member_tags").values(Q.map((G)=>({id:d8("mtag"),member_id:Y,tag_id:G,created_at:J}))).execute()}})}async addMemberTag(Y,Q){let X=new Date().toISOString();await this.db.insertInto("member_tags").values({id:d8("mtag"),member_id:Y,tag_id:Q,created_at:X}).onConflict((J)=>J.columns(["member_id","tag_id"]).doNothing()).execute()}async removeMemberTag(Y,Q){await this.db.deleteFrom("member_tags").where("member_id","=",Y).where("tag_id","=",Q).execute()}async verifyMemberOrg(Y,Q){return await this.db.selectFrom("member").select("id").where("id","=",Y).where("organizationId","=",Q).executeTakeFirst()!==void 0}async getUserTagsInOrg(Y,Q){return(await this.db.selectFrom("member").innerJoin("member_tags","member_tags.member_id","member.id").innerJoin("organization_tags","organization_tags.id","member_tags.tag_id").select(["organization_tags.id","organization_tags.organization_id","organization_tags.name","organization_tags.created_at"]).where("member.userId","=",Y).where("member.organizationId","=",Q).orderBy("organization_tags.name","asc").execute()).map((J)=>this.tagFromDbRow(J))}async getMembersWithTags(Y){let Q=await this.db.selectFrom("member").leftJoin("member_tags","member_tags.member_id","member.id").leftJoin("organization_tags","organization_tags.id","member_tags.tag_id").select(["member.id as memberId","organization_tags.name as tagName"]).where("member.organizationId","=",Y).execute(),X=new Map;for(let J of Q){if(!X.has(J.memberId))X.set(J.memberId,[]);if(J.tagName)X.get(J.memberId).push(J.tagName)}return X}tagFromDbRow(Y){return{id:Y.id,organizationId:Y.organization_id,name:Y.name,createdAt:Y.created_at}}}class FN1{db;constructor(Y){this.db=Y}async findById(Y,Q){let X=await this.db.selectFrom("user").select(["user.id","user.name","user.email","user.image","user.createdAt","user.updatedAt"]).where("user.id","=",Y).where((J)=>J.exists(J.selectFrom("member as m1").innerJoin("member as m2","m1.organizationId","m2.organizationId").select("m1.id").where("m1.userId","=",Y).where("m2.userId","=",Q))).executeTakeFirst();if(!X)return null;return{id:X.id,name:X.name,email:X.email,role:"",createdAt:X.createdAt,updatedAt:X.updatedAt,image:X.image??void 0}}}Vv();zP();$Y();LD();NA();d5();d5();var Br=new QY,VN1=[404,401,406];async function on0(Y,Q){return(await Q.storage.connections.findById(Y))?.connection_url??null}function ug6(Y){let Q=Y.toLowerCase();return Q.includes("resource_metadata=")||Q.includes("invalid_token")||Q.includes("oauth")}async function sn0(Y,Q={}){try{let X=await fetch(Y,{method:"POST",headers:{...Q,"Content-Type":"application/json",Accept:"application/json, text/event-stream"},body:JSON.stringify({jsonrpc:"2.0",id:0,method:"initialize",params:{protocolVersion:"2025-06-18",capabilities:{},clientInfo:{name:"mcp-mesh-proxy",version:"1.0.0"}}})});if(X.status===401){let J=X.headers.get("WWW-Authenticate");if(J){if(ug6(J))return J}if(await mg6(Y))return'Bearer realm="mcp"'}return null}catch{return null}}async function mg6(Y){try{let Q=new URL(Y),X=new URL("/.well-known/oauth-authorization-server",Q.origin),J=await fetch(X.toString(),{method:"GET",headers:{Accept:"application/json"}});if(J.ok){let G=await J.json();if(G.authorization_endpoint||G.token_endpoint||G.issuer)return!0}return!1}catch{return!1}}async function Ur(Y){let X=new URL(Y).pathname;if(X.endsWith("/"))X=X.slice(0,-1);let J=new URL(Y);J.pathname=`${X}/.well-known/oauth-protected-resource`;let G=await fetch(J.toString(),{method:"GET",headers:{Accept:"application/json"}});if(G.ok)return G;if(!VN1.includes(G.status))return G;let K=new URL(Y);if(K.pathname=`/.well-known/oauth-protected-resource${X}`,G=await fetch(K.toString(),{method:"GET",headers:{Accept:"application/json"}}),!VN1.includes(G.status))return G;let W=new URL(Y);return W.pathname="/.well-known/oauth-protected-resource",G=await fetch(W.toString(),{method:"GET",headers:{Accept:"application/json"}}),G}async function lg6(Y,Q){let X=await on0(Y,Q);if(!X)return null;let J;try{J=new URL(X).origin}catch{return null}try{let G=await Ur(X);if(G.ok){let K=await G.json();if(K.authorization_servers?.[0])return K.authorization_servers[0]}}catch{}return J}async function tn0(Y){let Q=Y.get("meshContext");if(!Q)Q=await OF.create(Y.req.raw),Y.set("meshContext",Q);return Q}async function en0({error:Y,reqUrl:Q,connectionId:X,connectionUrl:J,headers:G}){let K=Y.message?.toLowerCase()??"";if(!(Y.status===401||Y.code===401||Y.message?.includes("401")||K.includes("unauthorized")||K.includes("invalid_token")||K.includes("api key required")||K.includes("api-key required")))return null;if(Boolean(await sn0(J,G)))return new Response(null,{status:401,headers:{"WWW-Authenticate":`Bearer realm="mcp",resource_metadata="${Q.origin}/mcp/${X}/.well-known/oauth-protected-resource"`}});return new Response(JSON.stringify({error:"unauthorized",message:"Authentication required but server does not support OAuth"}),{status:401,headers:{"Content-Type":"application/json"}})}var Yi0=(Y)=>{if(!(Y.hostname==="localhost"||Y.hostname.endsWith(".localhost")||Y.hostname==="127.0.0.1"))Y.protocol="https:";return Y},Qi0=async(Y)=>{let Q=Y.req.param("connectionId"),X=await tn0(Y),J=await on0(Q,X);if(!J)return Y.json({error:"Connection not found"},404);let G=Yi0(new URL(Y.req.url)),K=`${G.origin}/mcp/${Q}`,W=`${G.origin}/oauth-proxy/${Q}`;try{let Z=await Ur(J);if(!Z.ok&&VN1.includes(Z.status)){if(await sn0(J))return new Response(JSON.stringify({resource:K,authorization_servers:[W],bearer_methods_supported:["header"],scopes_supported:["*"]}),{status:200,headers:{"Content-Type":"application/json"}});return new Response(Z.body,{status:Z.status,statusText:Z.statusText,headers:{"Content-Type":"application/json"}})}if(!Z.ok)return new Response(Z.body,{status:Z.status,statusText:Z.statusText,headers:{"Content-Type":"application/json"}});let H=await Z.json();if("issuer"in H&&!("resource"in H)&&(("authorization_endpoint"in H)||("token_endpoint"in H))){let V={resource:K,authorization_servers:[W],bearer_methods_supported:["header"],scopes_supported:"scopes_supported"in H&&Array.isArray(H.scopes_supported)&&H.scopes_supported.length>0?H.scopes_supported:["*"]};return new Response(JSON.stringify(V),{status:200,headers:{"Content-Type":"application/json"}})}let F={...H,resource:K,authorization_servers:[W]};return new Response(JSON.stringify(F),{status:Z.status,statusText:Z.statusText,headers:{"Content-Type":"application/json"}})}catch(Z){let H=Z;return console.error("[oauth-proxy] Failed to proxy OAuth protected resource metadata:",H),Y.json({error:"Failed to proxy OAuth metadata",message:H.message},502)}};Br.get("/.well-known/oauth-protected-resource/mcp/:connectionId",(Y)=>Qi0(Y));Br.get("/mcp/:connectionId/.well-known/oauth-protected-resource",(Y)=>Qi0(Y));async function qN1(Y){let X=new URL(Y).pathname;if(X.endsWith("/"))X=X.slice(0,-1);let J=X!==""&&X!=="/",G=[];if(J){let W=new URL(Y);W.pathname=`/.well-known/oauth-authorization-server${X}`,G.push(W);let Z=new URL(Y);Z.pathname=`/.well-known/openid-configuration${X}`,G.push(Z);let H=new URL(Y);H.pathname=`${X}/.well-known/openid-configuration`,G.push(H)}else{let W=new URL(Y);W.pathname="/.well-known/oauth-authorization-server",G.push(W);let Z=new URL(Y);Z.pathname="/.well-known/openid-configuration",G.push(Z)}let K=null;for(let W of G){if(K=await fetch(W.toString(),{method:"GET",headers:{Accept:"application/json"}}),K.ok)return K;if(K.status!==404&&K.status!==401)return K}return K}Br.get("/.well-known/oauth-authorization-server/oauth-proxy/:connectionId",async(Y)=>{let Q=Y.req.param("connectionId"),X=await tn0(Y),J=await lg6(Q,X);if(!J)return Y.json({error:"Connection not found or no auth server"},404);try{let G=await qN1(J);if(!G.ok)return new Response(G.body,{status:G.status,statusText:G.statusText,headers:{"Content-Type":"application/json"}});let K=await G.json(),Z=`${Yi0(new URL(Y.req.url)).origin}/oauth-proxy/${Q}`,H={...K,authorization_endpoint:K.authorization_endpoint?`${Z}/authorize`:void 0,token_endpoint:K.token_endpoint?`${Z}/token`:void 0,registration_endpoint:K.registration_endpoint?`${Z}/register`:void 0};return new Response(JSON.stringify(H),{status:200,headers:{"Content-Type":"application/json"}})}catch(G){let K=G;return console.error("[oauth-proxy] Failed to proxy auth server metadata:",K),Y.json({error:"Failed to proxy auth server metadata",message:K.message},502)}});var Xi0=Br;$Y();NA();d5();Uv();var BN1=new QY;async function Dr(Y,Q){let X=Y.get("meshContext");try{let J=Y.req.header("x-org-id"),G=Y.req.header("x-org-slug"),K=J?J:G?await X.db.selectFrom("organization").select("id").where("slug","=",G).executeTakeFirst().then((U)=>U?.id):null,W=Q?Q:K?DM(K):null;if(!W)return Y.json({error:"Agent ID or organization ID is required"},400);let Z=await X.storage.virtualMcps.findById(W,K??void 0);if(!Z)return Y.json({error:"Agent not found"},404);if(K&&Z.organization_id!==K)return Y.json({error:"Agent not found"},404);if(Z.status!=="active")return Y.json({error:`Agent is inactive: ${Z.id??"Decopilot"}`},503);X.connectionId=Z.id??void 0;let H=await X.db.selectFrom("organization").select(["id","slug","name"]).where("id","=",Z.organization_id).executeTakeFirst();if(H)X.organization={id:H.id,slug:H.slug,name:H.name};let $=bz1(Y.req.query("mode")),F=await DB(Z,X,$),V=ED(F,{name:`mcp-virtual-mcp-${Z.title??"Decopilot"}`,version:"1.0.0"},{capabilities:{tools:{},resources:{},prompts:{}},instructions:Z.metadata?.instructions??void 0}),B=new dZ({enableJsonResponse:Y.req.header("Accept")?.includes("application/json")??!1});return await V.connect(B),await B.handleRequest(Y.req.raw)}catch(J){let G=J;return console.error("[virtual-mcp] Error handling virtual MCP request:",G),Y.json({error:"Internal server error",message:G.message},500)}}BN1.all("/gateway/:virtualMcpId?",async(Y)=>{let Q=Y.req.param("virtualMcpId")||Y.req.header("x-virtual-mcp-id");return Dr(Y,Q)});BN1.all("/virtual-mcp/:virtualMcpId?",async(Y)=>{let Q=Y.req.param("virtualMcpId")||Y.req.header("x-virtual-mcp-id");return Dr(Y,Q)});var Ji0=BN1;var zr=new QY,Gi0=300000;function MO(Y){let Q={client:{callTool:Y.callTool.bind(Y),listTools:Y.listTools.bind(Y)}};if("callStreamableTool"in Y&&Y.callStreamableTool)return{...Q,callStreamableTool:Y.callStreamableTool.bind(Y)};return Q}async function Wi0(Y,Q,{superUser:X}){let J=typeof Y==="string"?await Q.storage.connections.findById(Y,Q.organization?.id):Y;if(!J)throw Error("Connection not found");if(Q.organization&&J.organization_id!==Q.organization.id)throw Error("Connection does not belong to the active organization");if(Q.organization??={id:J.organization_id},J.status!=="active")throw Error(`Connection inactive: ${J.status}`);let G=await vG(J,Q,X),K=gz1(G,J),W=K.getServerCapabilities()??{tools:{},resources:{},prompts:{}},Z=ED(K,{name:"mcp-mesh-proxy-client",version:"1.0.0"},{capabilities:W,instructions:K.getInstructions()}),{client:H,server:$}=q71();await Z.connect($);let F=new JG({name:"mcp-mesh-proxy-client",version:"1.0.0"});return await F.connect(H),F}async function Zi0(Y,Q){return Wi0(Y,Q,{superUser:!1})}async function UN1(Y,Q){return Wi0(Y,Q,{superUser:!0})}zr.all("/",async(Y)=>{return Dr(Y,void 0)});zr.all("/:connectionId",async(Y)=>{let Q=Y.req.param("connectionId"),X=Y.get("meshContext");try{try{let J=await X.storage.connections.findById(Q,X.organization?.id);if(!J)throw Error("Connection not found");if(X.organization&&J.organization_id!==X.organization.id)throw Error("Connection does not belong to the active organization");if(X.organization??={id:J.organization_id},J.status!=="active")throw Error(`Connection inactive: ${J.status}`);let G=await xz1(J,X,!1),K=new dZ({enableJsonResponse:Y.req.raw.headers.get("Accept")?.includes("application/json")??!1});return await G.connect(K),await K.handleRequest(Y.req.raw)}catch(J){let G=await X.storage.connections.findById(Q,X.organization?.id);if(G?.connection_url){let K=await en0({error:J,reqUrl:new URL(Y.req.raw.url),connectionId:Q,connectionUrl:G.connection_url,headers:{}});if(K)return K}throw J}}catch(J){return Ki0(J,Y)}});var Ki0=(Y,Q)=>{if(Y.message.includes("not found"))return Q.json({error:Y.message},404);if(Y.message.includes("does not belong to the active organization"))return Q.json({error:"Connection not found"},404);if(Y.message.includes("inactive"))return Q.json({error:Y.message},503);return Q.json({error:"Internal server error",message:Y.message},500)};zr.all("/:connectionId/call-tool/:toolName",async(Y)=>{let Q=Y.req.param("connectionId"),X=Y.req.param("toolName"),J=Y.get("meshContext");try{let G=await J.storage.connections.findById(Q,J.organization?.id);if(!G)return Y.json({error:"Connection not found"},404);let W=await(await vG(G,J,!1)).callTool({name:X,arguments:await Y.req.json()});if(W instanceof Response)return W;if(W.isError)return new Response(JSON.stringify(W.content),{headers:{"Content-Type":"application/json"},status:500});return new Response(JSON.stringify(W.structuredContent??W.content),{headers:{"Content-Type":"application/json"}})}catch(G){return Ki0(G,Y)}});var Hi0=zr;Fr();N5();N5();var $i0=()=>d8("msg"),Or=32768,Nr=50,Lr="New chat",Fi0=30,Vi0=15,qi0=["user_ask","subtask"];function DN1(Y){let X="You are Deco Pilot, an AI assistant running inside Deco Studio (deco context management system).";if(Y?.trim())X+=`
|
|
1366
|
+
`}}A7.Metric=jB;class Bt0{constructor(Y,Q={msgs:1e5,size:128,subject:"",asyncRequests:!1,pub:!1,sub:!1,req:!1,rep:!1}){if(this.nc=Y,this.callbacks=Q.callbacks||!1,this.msgs=Q.msgs||0,this.size=Q.size||0,this.subject=Q.subject||qi6.nuid.next(),this.asyncRequests=Q.asyncRequests||!1,this.pub=Q.pub||!1,this.sub=Q.sub||!1,this.req=Q.req||!1,this.rep=Q.rep||!1,this.perf=new HM1.Perf,this.payload=this.size?new Uint8Array(this.size):Vi6.Empty,!this.pub&&!this.sub&&!this.req&&!this.rep)throw Error("no bench option selected")}run(){return CF(this,void 0,void 0,function*(){if(this.nc.closed().then((Y)=>{if(Y)throw new qt0.NatsError(`bench closed with an error: ${Y.message}`,qt0.ErrorCode.Unknown,Y)}),this.callbacks)yield this.runCallbacks();else yield this.runAsync();return this.processMetrics()})}processMetrics(){let Y=this.nc,{lang:Q,version:X}=Y.protocol.transport;if(this.pub&&this.sub)this.perf.measure("pubsub","pubStart","subStop");if(this.req&&this.rep)this.perf.measure("reqrep","reqStart","reqStop");let J=this.perf.getEntries(),G=J.find((B)=>B.name==="pubsub"),K=J.find((B)=>B.name==="reqrep"),W=J.find((B)=>B.name==="req"),Z=J.find((B)=>B.name==="rep"),H=J.find((B)=>B.name==="pub"),$=J.find((B)=>B.name==="sub"),F=this.nc.stats(),V=[];if(G){let{name:B,duration:U}=G,D=new jB(B,U);D.msgs=this.msgs*2,D.bytes=F.inBytes+F.outBytes,D.lang=Q,D.version=X,D.payload=this.payload.length,V.push(D)}if(K){let{name:B,duration:U}=K,D=new jB(B,U);D.msgs=this.msgs*2,D.bytes=F.inBytes+F.outBytes,D.lang=Q,D.version=X,D.payload=this.payload.length,V.push(D)}if(H){let{name:B,duration:U}=H,D=new jB(B,U);D.msgs=this.msgs,D.bytes=F.outBytes,D.lang=Q,D.version=X,D.payload=this.payload.length,V.push(D)}if($){let{name:B,duration:U}=$,D=new jB(B,U);D.msgs=this.msgs,D.bytes=F.inBytes,D.lang=Q,D.version=X,D.payload=this.payload.length,V.push(D)}if(Z){let{name:B,duration:U}=Z,D=new jB(B,U);D.msgs=this.msgs,D.bytes=F.inBytes+F.outBytes,D.lang=Q,D.version=X,D.payload=this.payload.length,V.push(D)}if(W){let{name:B,duration:U}=W,D=new jB(B,U);D.msgs=this.msgs,D.bytes=F.inBytes+F.outBytes,D.lang=Q,D.version=X,D.payload=this.payload.length,V.push(D)}return V}runCallbacks(){return CF(this,void 0,void 0,function*(){let Y=[];if(this.sub){let Q=(0,HM1.deferred)();Y.push(Q);let X=0;this.nc.subscribe(this.subject,{max:this.msgs,callback:()=>{if(X++,X===1)this.perf.mark("subStart");if(X===this.msgs)this.perf.mark("subStop"),this.perf.measure("sub","subStart","subStop"),Q.resolve()}})}if(this.rep){let Q=(0,HM1.deferred)();Y.push(Q);let X=0;this.nc.subscribe(this.subject,{max:this.msgs,callback:(J,G)=>{if(G.respond(this.payload),X++,X===1)this.perf.mark("repStart");if(X===this.msgs)this.perf.mark("repStop"),this.perf.measure("rep","repStart","repStop"),Q.resolve()}})}if(this.pub){let Q=(()=>CF(this,void 0,void 0,function*(){this.perf.mark("pubStart");for(let X=0;X<this.msgs;X++)this.nc.publish(this.subject,this.payload);yield this.nc.flush(),this.perf.mark("pubStop"),this.perf.measure("pub","pubStart","pubStop")}))();Y.push(Q)}if(this.req){let Q=(()=>CF(this,void 0,void 0,function*(){if(this.asyncRequests){this.perf.mark("reqStart");let X=[];for(let J=0;J<this.msgs;J++)X.push(this.nc.request(this.subject,this.payload,{timeout:20000}));yield Promise.all(X),this.perf.mark("reqStop"),this.perf.measure("req","reqStart","reqStop")}else{this.perf.mark("reqStart");for(let X=0;X<this.msgs;X++)yield this.nc.request(this.subject);this.perf.mark("reqStop"),this.perf.measure("req","reqStart","reqStop")}}))();Y.push(Q)}yield Promise.all(Y)})}runAsync(){return CF(this,void 0,void 0,function*(){let Y=[];if(this.rep){let Q=!1,X=this.nc.subscribe(this.subject,{max:this.msgs}),J=(()=>CF(this,void 0,void 0,function*(){var G,K,W,Z;try{for(var H=!0,$=Vt0(X),F;F=yield $.next(),G=F.done,!G;H=!0){Z=F.value,H=!1;let V=Z;if(!Q)this.perf.mark("repStart"),Q=!0;V.respond(this.payload)}}catch(V){K={error:V}}finally{try{if(!H&&!G&&(W=$.return))yield W.call($)}finally{if(K)throw K.error}}yield this.nc.flush(),this.perf.mark("repStop"),this.perf.measure("rep","repStart","repStop")}))();Y.push(J)}if(this.sub){let Q=!1,X=this.nc.subscribe(this.subject,{max:this.msgs}),J=(()=>CF(this,void 0,void 0,function*(){var G,K,W,Z;try{for(var H=!0,$=Vt0(X),F;F=yield $.next(),G=F.done,!G;H=!0){Z=F.value,H=!1;let V=Z;if(!Q)this.perf.mark("subStart"),Q=!0}}catch(V){K={error:V}}finally{try{if(!H&&!G&&(W=$.return))yield W.call($)}finally{if(K)throw K.error}}this.perf.mark("subStop"),this.perf.measure("sub","subStart","subStop")}))();Y.push(J)}if(this.pub){let Q=(()=>CF(this,void 0,void 0,function*(){this.perf.mark("pubStart");for(let X=0;X<this.msgs;X++)this.nc.publish(this.subject,this.payload);yield this.nc.flush(),this.perf.mark("pubStop"),this.perf.measure("pub","pubStart","pubStop")}))();Y.push(Q)}if(this.req){let Q=(()=>CF(this,void 0,void 0,function*(){if(this.asyncRequests){this.perf.mark("reqStart");let X=[];for(let J=0;J<this.msgs;J++)X.push(this.nc.request(this.subject,this.payload,{timeout:20000}));yield Promise.all(X),this.perf.mark("reqStop"),this.perf.measure("req","reqStart","reqStop")}else{this.perf.mark("reqStart");for(let X=0;X<this.msgs;X++)yield this.nc.request(this.subject);this.perf.mark("reqStop"),this.perf.measure("req","reqStart","reqStop")}}))();Y.push(Q)}yield Promise.all(Y)})}}A7.Bench=Bt0;function Ut0(Y,Q){return`${Dt0(Y/Q)}/sec`}function Bi6(Y,Q){return`${Math.floor(Y/Q)} msgs/sec`}function Dt0(Y,Q=!1){let X=Q?1000:1024,J=Q?["k","M","G","T","P","E"]:["K","M","G","T","P","E"],G=Q?"iB":"B";if(Y<X)return`${Y.toFixed(2)} ${G}`;let K=parseInt(Math.log(Y)/Math.log(X)+""),W=parseInt(K-1+"");return`${(Y/Math.pow(X,K)).toFixed(2)} ${J[W]}${G}`}function Ui6(Y){return Y.toString().replace(/\B(?=(\d{3})+(?!\d))/g,",")}});var kL1=j((g1)=>{var Di6=g1&&g1.__createBinding||(Object.create?function(Y,Q,X,J){if(J===void 0)J=X;var G=Object.getOwnPropertyDescriptor(Q,X);if(!G||("get"in G?!Q.__esModule:G.writable||G.configurable))G={enumerable:!0,get:function(){return Q[X]}};Object.defineProperty(Y,J,G)}:function(Y,Q,X,J){if(J===void 0)J=X;Y[J]=Q[X]}),zi6=g1&&g1.__exportStar||function(Y,Q){for(var X in Y)if(X!=="default"&&!Object.prototype.hasOwnProperty.call(Q,X))Di6(Q,Y,X)};Object.defineProperty(g1,"__esModule",{value:!0});g1.parseIP=g1.isIP=g1.TE=g1.TD=g1.Metric=g1.Bench=g1.writeAll=g1.readAll=g1.MAX_SIZE=g1.DenoBuffer=g1.State=g1.Parser=g1.Kind=g1.QueuedIteratorImpl=g1.StringCodec=g1.JSONCodec=g1.usernamePasswordAuthenticator=g1.tokenAuthenticator=g1.nkeyAuthenticator=g1.jwtAuthenticator=g1.credsAuthenticator=g1.RequestOne=g1.checkUnsupportedOption=g1.checkOptions=g1.buildAuthenticator=g1.DataBuffer=g1.MuxSubscription=g1.Heartbeat=g1.MsgHdrsImpl=g1.headers=g1.canonicalMIMEHeaderKey=g1.timeout=g1.render=g1.nanos=g1.millis=g1.extend=g1.delay=g1.deferred=g1.deadline=g1.collect=g1.backoff=g1.ProtocolHandler=g1.INFO=g1.Connect=g1.setTransportFactory=g1.getResolveFn=g1.MsgImpl=g1.nuid=g1.Nuid=g1.NatsConnectionImpl=void 0;g1.Subscriptions=g1.SubscriptionImpl=g1.syncIterator=g1.ServiceVerb=g1.ServiceResponseType=g1.ServiceErrorHeader=g1.ServiceErrorCodeHeader=g1.ServiceError=g1.RequestStrategy=g1.NatsError=g1.Match=g1.isNatsError=g1.Events=g1.ErrorCode=g1.DebugEvents=g1.createInbox=g1.extractProtocolMessage=g1.Empty=g1.parseSemVer=g1.compare=g1.NoopKvCodecs=g1.defaultBucketOpts=g1.Bucket=g1.Base64KeyCodec=g1.TypedSubscription=void 0;var Oi6=Ft0();Object.defineProperty(g1,"NatsConnectionImpl",{enumerable:!0,get:function(){return Oi6.NatsConnectionImpl}});var Ot0=Y3();Object.defineProperty(g1,"Nuid",{enumerable:!0,get:function(){return Ot0.Nuid}});Object.defineProperty(g1,"nuid",{enumerable:!0,get:function(){return Ot0.nuid}});var Ni6=EP();Object.defineProperty(g1,"MsgImpl",{enumerable:!0,get:function(){return Ni6.MsgImpl}});var Nt0=wP();Object.defineProperty(g1,"getResolveFn",{enumerable:!0,get:function(){return Nt0.getResolveFn}});Object.defineProperty(g1,"setTransportFactory",{enumerable:!0,get:function(){return Nt0.setTransportFactory}});var $M1=sr();Object.defineProperty(g1,"Connect",{enumerable:!0,get:function(){return $M1.Connect}});Object.defineProperty(g1,"INFO",{enumerable:!0,get:function(){return $M1.INFO}});Object.defineProperty(g1,"ProtocolHandler",{enumerable:!0,get:function(){return $M1.ProtocolHandler}});var F3=UQ();Object.defineProperty(g1,"backoff",{enumerable:!0,get:function(){return F3.backoff}});Object.defineProperty(g1,"collect",{enumerable:!0,get:function(){return F3.collect}});Object.defineProperty(g1,"deadline",{enumerable:!0,get:function(){return F3.deadline}});Object.defineProperty(g1,"deferred",{enumerable:!0,get:function(){return F3.deferred}});Object.defineProperty(g1,"delay",{enumerable:!0,get:function(){return F3.delay}});Object.defineProperty(g1,"extend",{enumerable:!0,get:function(){return F3.extend}});Object.defineProperty(g1,"millis",{enumerable:!0,get:function(){return F3.millis}});Object.defineProperty(g1,"nanos",{enumerable:!0,get:function(){return F3.nanos}});Object.defineProperty(g1,"render",{enumerable:!0,get:function(){return F3.render}});Object.defineProperty(g1,"timeout",{enumerable:!0,get:function(){return F3.timeout}});var FM1=LF();Object.defineProperty(g1,"canonicalMIMEHeaderKey",{enumerable:!0,get:function(){return FM1.canonicalMIMEHeaderKey}});Object.defineProperty(g1,"headers",{enumerable:!0,get:function(){return FM1.headers}});Object.defineProperty(g1,"MsgHdrsImpl",{enumerable:!0,get:function(){return FM1.MsgHdrsImpl}});var Li6=tN1();Object.defineProperty(g1,"Heartbeat",{enumerable:!0,get:function(){return Li6.Heartbeat}});var Mi6=sN1();Object.defineProperty(g1,"MuxSubscription",{enumerable:!0,get:function(){return Mi6.MuxSubscription}});var wi6=MP();Object.defineProperty(g1,"DataBuffer",{enumerable:!0,get:function(){return wi6.DataBuffer}});var VM1=rr();Object.defineProperty(g1,"buildAuthenticator",{enumerable:!0,get:function(){return VM1.buildAuthenticator}});Object.defineProperty(g1,"checkOptions",{enumerable:!0,get:function(){return VM1.checkOptions}});Object.defineProperty(g1,"checkUnsupportedOption",{enumerable:!0,get:function(){return VM1.checkUnsupportedOption}});var Ai6=Yo();Object.defineProperty(g1,"RequestOne",{enumerable:!0,get:function(){return Ai6.RequestOne}});var nv=UL1();Object.defineProperty(g1,"credsAuthenticator",{enumerable:!0,get:function(){return nv.credsAuthenticator}});Object.defineProperty(g1,"jwtAuthenticator",{enumerable:!0,get:function(){return nv.jwtAuthenticator}});Object.defineProperty(g1,"nkeyAuthenticator",{enumerable:!0,get:function(){return nv.nkeyAuthenticator}});Object.defineProperty(g1,"tokenAuthenticator",{enumerable:!0,get:function(){return nv.tokenAuthenticator}});Object.defineProperty(g1,"usernamePasswordAuthenticator",{enumerable:!0,get:function(){return nv.usernamePasswordAuthenticator}});var Lt0=X3();Object.defineProperty(g1,"JSONCodec",{enumerable:!0,get:function(){return Lt0.JSONCodec}});Object.defineProperty(g1,"StringCodec",{enumerable:!0,get:function(){return Lt0.StringCodec}});zi6(qL1(),g1);var Pi6=bW();Object.defineProperty(g1,"QueuedIteratorImpl",{enumerable:!0,get:function(){return Pi6.QueuedIteratorImpl}});var qM1=GL1();Object.defineProperty(g1,"Kind",{enumerable:!0,get:function(){return qM1.Kind}});Object.defineProperty(g1,"Parser",{enumerable:!0,get:function(){return qM1.Parser}});Object.defineProperty(g1,"State",{enumerable:!0,get:function(){return qM1.State}});var Io=QL1();Object.defineProperty(g1,"DenoBuffer",{enumerable:!0,get:function(){return Io.DenoBuffer}});Object.defineProperty(g1,"MAX_SIZE",{enumerable:!0,get:function(){return Io.MAX_SIZE}});Object.defineProperty(g1,"readAll",{enumerable:!0,get:function(){return Io.readAll}});Object.defineProperty(g1,"writeAll",{enumerable:!0,get:function(){return Io.writeAll}});var Mt0=zt0();Object.defineProperty(g1,"Bench",{enumerable:!0,get:function(){return Mt0.Bench}});Object.defineProperty(g1,"Metric",{enumerable:!0,get:function(){return Mt0.Metric}});var wt0=BQ();Object.defineProperty(g1,"TD",{enumerable:!0,get:function(){return wt0.TD}});Object.defineProperty(g1,"TE",{enumerable:!0,get:function(){return wt0.TE}});var At0=pN1();Object.defineProperty(g1,"isIP",{enumerable:!0,get:function(){return At0.isIP}});Object.defineProperty(g1,"parseIP",{enumerable:!0,get:function(){return At0.parseIP}});var Ei6=fL1();Object.defineProperty(g1,"TypedSubscription",{enumerable:!0,get:function(){return Ei6.TypedSubscription}});var jo=gv();Object.defineProperty(g1,"Base64KeyCodec",{enumerable:!0,get:function(){return jo.Base64KeyCodec}});Object.defineProperty(g1,"Bucket",{enumerable:!0,get:function(){return jo.Bucket}});Object.defineProperty(g1,"defaultBucketOpts",{enumerable:!0,get:function(){return jo.defaultBucketOpts}});Object.defineProperty(g1,"NoopKvCodecs",{enumerable:!0,get:function(){return jo.NoopKvCodecs}});var Pt0=MF();Object.defineProperty(g1,"compare",{enumerable:!0,get:function(){return Pt0.compare}});Object.defineProperty(g1,"parseSemVer",{enumerable:!0,get:function(){return Pt0.parseSemVer}});var Ti6=SP();Object.defineProperty(g1,"Empty",{enumerable:!0,get:function(){return Ti6.Empty}});var Ci6=wP();Object.defineProperty(g1,"extractProtocolMessage",{enumerable:!0,get:function(){return Ci6.extractProtocolMessage}});var j5=E9();Object.defineProperty(g1,"createInbox",{enumerable:!0,get:function(){return j5.createInbox}});Object.defineProperty(g1,"DebugEvents",{enumerable:!0,get:function(){return j5.DebugEvents}});Object.defineProperty(g1,"ErrorCode",{enumerable:!0,get:function(){return j5.ErrorCode}});Object.defineProperty(g1,"Events",{enumerable:!0,get:function(){return j5.Events}});Object.defineProperty(g1,"isNatsError",{enumerable:!0,get:function(){return j5.isNatsError}});Object.defineProperty(g1,"Match",{enumerable:!0,get:function(){return j5.Match}});Object.defineProperty(g1,"NatsError",{enumerable:!0,get:function(){return j5.NatsError}});Object.defineProperty(g1,"RequestStrategy",{enumerable:!0,get:function(){return j5.RequestStrategy}});Object.defineProperty(g1,"ServiceError",{enumerable:!0,get:function(){return j5.ServiceError}});Object.defineProperty(g1,"ServiceErrorCodeHeader",{enumerable:!0,get:function(){return j5.ServiceErrorCodeHeader}});Object.defineProperty(g1,"ServiceErrorHeader",{enumerable:!0,get:function(){return j5.ServiceErrorHeader}});Object.defineProperty(g1,"ServiceResponseType",{enumerable:!0,get:function(){return j5.ServiceResponseType}});Object.defineProperty(g1,"ServiceVerb",{enumerable:!0,get:function(){return j5.ServiceVerb}});Object.defineProperty(g1,"syncIterator",{enumerable:!0,get:function(){return j5.syncIterator}});var Et0=sr();Object.defineProperty(g1,"SubscriptionImpl",{enumerable:!0,get:function(){return Et0.SubscriptionImpl}});Object.defineProperty(g1,"Subscriptions",{enumerable:!0,get:function(){return Et0.Subscriptions}})});var So=j((DQ)=>{Object.defineProperty(DQ,"__esModule",{value:!0});DQ.ConsumerEvents=DQ.ConsumerDebugEvents=DQ.StoreCompression=DQ.StorageType=DQ.RetentionPolicy=DQ.ReplayPolicy=DQ.DiscardPolicy=DQ.DeliverPolicy=DQ.AckPolicy=DQ.RepublishHeaders=DQ.KvWatchInclude=DQ.JsHeaders=DQ.isConsumerOptsBuilder=DQ.DirectMsgHeaders=DQ.consumerOpts=DQ.AdvisoryKind=DQ.isHeartbeatMsg=DQ.isFlowControlMsg=DQ.checkJsError=void 0;var BM1=W3();Object.defineProperty(DQ,"checkJsError",{enumerable:!0,get:function(){return BM1.checkJsError}});Object.defineProperty(DQ,"isFlowControlMsg",{enumerable:!0,get:function(){return BM1.isFlowControlMsg}});Object.defineProperty(DQ,"isHeartbeatMsg",{enumerable:!0,get:function(){return BM1.isHeartbeatMsg}});var bO=AF();Object.defineProperty(DQ,"AdvisoryKind",{enumerable:!0,get:function(){return bO.AdvisoryKind}});Object.defineProperty(DQ,"consumerOpts",{enumerable:!0,get:function(){return bO.consumerOpts}});Object.defineProperty(DQ,"DirectMsgHeaders",{enumerable:!0,get:function(){return bO.DirectMsgHeaders}});Object.defineProperty(DQ,"isConsumerOptsBuilder",{enumerable:!0,get:function(){return bO.isConsumerOptsBuilder}});Object.defineProperty(DQ,"JsHeaders",{enumerable:!0,get:function(){return bO.JsHeaders}});Object.defineProperty(DQ,"KvWatchInclude",{enumerable:!0,get:function(){return bO.KvWatchInclude}});Object.defineProperty(DQ,"RepublishHeaders",{enumerable:!0,get:function(){return bO.RepublishHeaders}});var hO=PB();Object.defineProperty(DQ,"AckPolicy",{enumerable:!0,get:function(){return hO.AckPolicy}});Object.defineProperty(DQ,"DeliverPolicy",{enumerable:!0,get:function(){return hO.DeliverPolicy}});Object.defineProperty(DQ,"DiscardPolicy",{enumerable:!0,get:function(){return hO.DiscardPolicy}});Object.defineProperty(DQ,"ReplayPolicy",{enumerable:!0,get:function(){return hO.ReplayPolicy}});Object.defineProperty(DQ,"RetentionPolicy",{enumerable:!0,get:function(){return hO.RetentionPolicy}});Object.defineProperty(DQ,"StorageType",{enumerable:!0,get:function(){return hO.StorageType}});Object.defineProperty(DQ,"StoreCompression",{enumerable:!0,get:function(){return hO.StoreCompression}});var Tt0=sL1();Object.defineProperty(DQ,"ConsumerDebugEvents",{enumerable:!0,get:function(){return Tt0.ConsumerDebugEvents}});Object.defineProperty(DQ,"ConsumerEvents",{enumerable:!0,get:function(){return Tt0.ConsumerEvents}})});var UM1=j((SB)=>{var Ii6=SB&&SB.__createBinding||(Object.create?function(Y,Q,X,J){if(J===void 0)J=X;var G=Object.getOwnPropertyDescriptor(Q,X);if(!G||("get"in G?!Q.__esModule:G.writable||G.configurable))G={enumerable:!0,get:function(){return Q[X]}};Object.defineProperty(Y,J,G)}:function(Y,Q,X,J){if(J===void 0)J=X;Y[J]=Q[X]}),Ct0=SB&&SB.__exportStar||function(Y,Q){for(var X in Y)if(X!=="default"&&!Object.prototype.hasOwnProperty.call(Q,X))Ii6(Q,Y,X)};Object.defineProperty(SB,"__esModule",{value:!0});Ct0(kL1(),SB);Ct0(So(),SB)});var St0=j(($K)=>{var gP=$K&&$K.__awaiter||function(Y,Q,X,J){function G(K){return K instanceof X?K:new X(function(W){W(K)})}return new(X||(X=Promise))(function(K,W){function Z(F){try{$(J.next(F))}catch(V){W(V)}}function H(F){try{$(J.throw(F))}catch(V){W(V)}}function $(F){F.done?K(F.value):G(F.value).then(Z,H)}$((J=J.apply(Y,Q||[])).next())})},iv=$K&&$K.__await||function(Y){return this instanceof iv?(this.v=Y,this):new iv(Y)},ji6=$K&&$K.__asyncGenerator||function(Y,Q,X){if(!Symbol.asyncIterator)throw TypeError("Symbol.asyncIterator is not defined.");var J=X.apply(Y,Q||[]),G,K=[];return G=Object.create((typeof AsyncIterator==="function"?AsyncIterator:Object).prototype),Z("next"),Z("throw"),Z("return",W),G[Symbol.asyncIterator]=function(){return this},G;function W(U){return function(D){return Promise.resolve(D).then(U,V)}}function Z(U,D){if(J[U]){if(G[U]=function(z){return new Promise(function(L,w){K.push([U,z,L,w])>1||H(U,z)})},D)G[U]=D(G[U])}}function H(U,D){try{$(J[U](D))}catch(z){B(K[0][3],z)}}function $(U){U.value instanceof iv?Promise.resolve(U.value.v).then(F,V):B(K[0][2],U)}function F(U){H("next",U)}function V(U){H("throw",U)}function B(U,D){if(U(D),K.shift(),K.length)H(K[0][0],K[0][1])}};Object.defineProperty($K,"__esModule",{value:!0});$K.NodeTransport=void 0;$K.nodeResolveHost=bi6;var c8=UM1(),Si6=T1("net"),Rt0=UQ(),DM1=T1("tls"),{resolve:ki6}=T1("path"),{readFile:vi6,existsSync:_i6}=T1("fs"),It0=T1("dns"),yi6="2.29.3",fi6="nats.js";class jt0{constructor(){this.yields=[],this.signal=(0,c8.deferred)(),this.closedNotification=(0,c8.deferred)(),this.connected=!1,this.tlsName="",this.done=!1,this.lang=fi6,this.version=yi6}connect(Y,Q){return gP(this,void 0,void 0,function*(){this.tlsName=Y.tlsName,this.options=Q;let{tls:X}=this.options,{handshakeFirst:J}=X||{};try{if(J===!0)this.socket=yield this.tlsFirst(Y);else this.socket=yield this.dial(Y);let G=yield this.peekInfo();(0,c8.checkOptions)(G,Q);let{tls_required:K,tls_available:W}=G,Z=W===!0&&Q.tls!==null;if(!J&&(K||Z))this.socket=yield this.startTLS();if(K&&this.socket.encrypted!==!0)throw new c8.NatsError("tls",c8.ErrorCode.ServerOptionNotAvailable);return this.connected=!0,this.setupHandlers(),this.signal.resolve(),Promise.resolve()}catch(G){if(!G)G=c8.NatsError.errorForCode(c8.ErrorCode.ConnectionRefused,Error("node provided an undefined error!"));let{code:K}=G,W=K==="ECONNREFUSED"?c8.NatsError.errorForCode(c8.ErrorCode.ConnectionRefused,G):G;if(this.socket)this.socket.destroy();throw W}})}dial(Y){let Q=(0,c8.deferred)(),X,J=(0,Si6.createConnection)(Y.port,Y.hostname,()=>{Q.resolve(J),J.removeAllListeners()});return J.on("error",(G)=>{X=G}),J.on("close",()=>{J.removeAllListeners(),Q.reject(X)}),J.setNoDelay(!0),Q}get isClosed(){return this.done}close(Y){return this._closed(Y,!1)}peekInfo(){let Y=(0,c8.deferred)(),Q;return this.socket.on("data",(X)=>{this.yields.push(X);let J=c8.DataBuffer.concat(...this.yields),G=(0,c8.extractProtocolMessage)(J);if(G!=="")try{let K=c8.INFO.exec(G);if(!K)throw Error("unexpected response from server");let W=JSON.parse(K[1]);Y.resolve(W)}catch(K){Y.reject(K)}finally{this.socket.removeAllListeners()}}),this.socket.on("error",(X)=>{Q=X}),this.socket.on("close",()=>{this.socket.removeAllListeners(),Y.reject(Q)}),Y}loadFile(Y){if(!Y)return Promise.resolve();let Q=(0,c8.deferred)();try{if(Y=ki6(Y),!_i6(Y))Q.reject(Error(`${Y} doesn't exist`));vi6(Y,(X,J)=>{if(X)return Q.reject(X);Q.resolve(J)})}catch(X){Q.reject(X)}return Q}loadClientCerts(){return gP(this,void 0,void 0,function*(){let Y={},{certFile:Q,cert:X,caFile:J,ca:G,keyFile:K,key:W}=this.options.tls;try{if(Q){let Z=yield this.loadFile(Q);if(Z)Y.cert=Z}else if(X)Y.cert=X;if(K){let Z=yield this.loadFile(K);if(Z)Y.key=Z}else if(W)Y.key=W;if(J){let Z=yield this.loadFile(J);if(Z)Y.ca=[Z]}else if(G)Y.ca=G;return Promise.resolve(Y)}catch(Z){return Promise.reject(Z)}})}tlsFirst(Y){return gP(this,void 0,void 0,function*(){let Q,X={servername:this.tlsName,rejectUnauthorized:!0};if(this.socket)X.socket=this.socket;if(typeof this.options.tls==="object")try{let G=(yield this.loadClientCerts())||{};X=(0,Rt0.extend)(X,this.options.tls,G)}catch(G){return Promise.reject(new c8.NatsError(G.message,c8.ErrorCode.Tls,G))}let J=(0,c8.deferred)();try{let G=(0,DM1.connect)(Y.port,Y.hostname,X,()=>{G.removeAllListeners(),J.resolve(G)});G.on("error",(K)=>{Q=K}),G.on("secureConnect",()=>{if(X.rejectUnauthorized===!1)return;if(!G.authorized)throw G.authorizationError}),G.on("close",()=>{J.reject(Q),G.removeAllListeners()}),G.setNoDelay(!0)}catch(G){J.reject(c8.NatsError.errorForCode(c8.ErrorCode.Tls,G))}return J})}startTLS(){return gP(this,void 0,void 0,function*(){let Y,Q={socket:this.socket,servername:this.tlsName,rejectUnauthorized:!0};if(typeof this.options.tls==="object")try{let J=(yield this.loadClientCerts())||{};Q=(0,Rt0.extend)(Q,this.options.tls,J)}catch(J){return Promise.reject(new c8.NatsError(J.message,c8.ErrorCode.Tls,J))}let X=(0,c8.deferred)();try{let J=(0,DM1.connect)(Q,()=>{J.removeAllListeners(),X.resolve(J)});J.on("error",(G)=>{Y=G}),J.on("secureConnect",()=>{if(Q.rejectUnauthorized===!1)return;if(!J.authorized)throw J.authorizationError}),J.on("close",()=>{X.reject(Y),J.removeAllListeners()})}catch(J){X.reject(c8.NatsError.errorForCode(c8.ErrorCode.Tls,J))}return X})}setupHandlers(){let Y;this.socket.on("data",(Q)=>{return this.yields.push(Q),this.signal.resolve()}),this.socket.on("error",(Q)=>{Y=Q}),this.socket.on("end",()=>{var Q,X;if((Q=this.socket)===null||Q===void 0?void 0:Q.destroyed)return;(X=this.socket)===null||X===void 0||X.write(new Uint8Array(0),()=>{var J;(J=this.socket)===null||J===void 0||J.end()})}),this.socket.on("close",()=>{this._closed(Y,!1)})}[Symbol.asyncIterator](){return this.iterate()}iterate(){return ji6(this,arguments,function*(){let Q=this.options.debug;while(!0){if(this.yields.length===0)yield iv(this.signal);let X=this.yields;this.yields=[];for(let J=0;J<X.length;J++){if(Q)console.info(`> ${(0,c8.render)(X[J])}`);yield yield iv(X[J])}if(this.done)break;else if(this.yields.length===0)X.length=0,this.yields=X,this.signal=(0,c8.deferred)()}})}discard(){}disconnect(){this._closed(void 0,!0).then().catch()}isEncrypted(){return this.socket instanceof DM1.TLSSocket}_send(Y){if(this.isClosed||this.socket===void 0)return Promise.resolve();if(this.options.debug)console.info(`< ${(0,c8.render)(Y)}`);let Q=(0,c8.deferred)();try{this.socket.write(Y,(X)=>{if(X){if(this.options.debug)console.error(`!!! ${(0,c8.render)(Y)}: ${X}`);return Q.reject(X)}return Q.resolve()})}catch(X){if(this.options.debug)console.error(`!!! ${(0,c8.render)(Y)}: ${X}`);Q.reject(X)}return Q}send(Y){this._send(Y).catch((X)=>{})}_closed(Y){return gP(this,arguments,void 0,function*(Q,X=!0){if(!this.connected)return;if(this.done)return;if(this.closeError=Q,!Q&&this.socket&&X)try{yield this._send(new TextEncoder().encode(""))}catch(J){if(this.options.debug)console.log("transport close terminated with an error",J)}try{if(this.socket)this.socket.removeAllListeners(),this.socket.destroy(),this.socket=void 0}catch(J){console.log(J)}this.done=!0,this.closedNotification.resolve(this.closeError)})}closed(){return this.closedNotification}}$K.NodeTransport=jt0;function bi6(Y){return gP(this,void 0,void 0,function*(){let Q=(0,c8.deferred)(),X=(0,c8.deferred)();It0.resolve4(Y,(W,Z)=>{if(W)Q.resolve(W);else Q.resolve(Z)}),It0.resolve6(Y,(W,Z)=>{if(W)X.resolve(W);else X.resolve(Z)});let J=[],G=yield Q;if(Array.isArray(G))J.push(...G);let K=yield X;if(Array.isArray(K))J.push(...K);if(J.length===0)J.push(Y);return J})}});var yt0=j((_t0)=>{Object.defineProperty(_t0,"__esModule",{value:!0});_t0.connect=hi6;var kt0=St0(),vt0=UM1();function hi6(Y={}){return(0,vt0.setTransportFactory)({factory:()=>{return new kt0.NodeTransport},dnsResolveFn:kt0.nodeResolveHost}),vt0.NatsConnectionImpl.connect(Y)}});var ft0=j((SQ)=>{Object.defineProperty(SQ,"__esModule",{value:!0});SQ.consumerOpts=SQ.StoreCompression=SQ.StorageType=SQ.RetentionPolicy=SQ.RepublishHeaders=SQ.ReplayPolicy=SQ.KvWatchInclude=SQ.JsHeaders=SQ.DiscardPolicy=SQ.DirectMsgHeaders=SQ.DeliverPolicy=SQ.ConsumerEvents=SQ.ConsumerDebugEvents=SQ.AdvisoryKind=SQ.AckPolicy=SQ.isHeartbeatMsg=SQ.isFlowControlMsg=SQ.checkJsError=void 0;var zM1=So();Object.defineProperty(SQ,"checkJsError",{enumerable:!0,get:function(){return zM1.checkJsError}});Object.defineProperty(SQ,"isFlowControlMsg",{enumerable:!0,get:function(){return zM1.isFlowControlMsg}});Object.defineProperty(SQ,"isHeartbeatMsg",{enumerable:!0,get:function(){return zM1.isHeartbeatMsg}});var S5=So();Object.defineProperty(SQ,"AckPolicy",{enumerable:!0,get:function(){return S5.AckPolicy}});Object.defineProperty(SQ,"AdvisoryKind",{enumerable:!0,get:function(){return S5.AdvisoryKind}});Object.defineProperty(SQ,"ConsumerDebugEvents",{enumerable:!0,get:function(){return S5.ConsumerDebugEvents}});Object.defineProperty(SQ,"ConsumerEvents",{enumerable:!0,get:function(){return S5.ConsumerEvents}});Object.defineProperty(SQ,"DeliverPolicy",{enumerable:!0,get:function(){return S5.DeliverPolicy}});Object.defineProperty(SQ,"DirectMsgHeaders",{enumerable:!0,get:function(){return S5.DirectMsgHeaders}});Object.defineProperty(SQ,"DiscardPolicy",{enumerable:!0,get:function(){return S5.DiscardPolicy}});Object.defineProperty(SQ,"JsHeaders",{enumerable:!0,get:function(){return S5.JsHeaders}});Object.defineProperty(SQ,"KvWatchInclude",{enumerable:!0,get:function(){return S5.KvWatchInclude}});Object.defineProperty(SQ,"ReplayPolicy",{enumerable:!0,get:function(){return S5.ReplayPolicy}});Object.defineProperty(SQ,"RepublishHeaders",{enumerable:!0,get:function(){return S5.RepublishHeaders}});Object.defineProperty(SQ,"RetentionPolicy",{enumerable:!0,get:function(){return S5.RetentionPolicy}});Object.defineProperty(SQ,"StorageType",{enumerable:!0,get:function(){return S5.StorageType}});Object.defineProperty(SQ,"StoreCompression",{enumerable:!0,get:function(){return S5.StoreCompression}});var gi6=AF();Object.defineProperty(SQ,"consumerOpts",{enumerable:!0,get:function(){return gi6.consumerOpts}})});var OM1=j((V3)=>{var mi6=V3&&V3.__createBinding||(Object.create?function(Y,Q,X,J){if(J===void 0)J=X;var G=Object.getOwnPropertyDescriptor(Q,X);if(!G||("get"in G?!Q.__esModule:G.writable||G.configurable))G={enumerable:!0,get:function(){return Q[X]}};Object.defineProperty(Y,J,G)}:function(Y,Q,X,J){if(J===void 0)J=X;Y[J]=Q[X]}),bt0=V3&&V3.__exportStar||function(Y,Q){for(var X in Y)if(X!=="default"&&!Object.prototype.hasOwnProperty.call(Q,X))mi6(Q,Y,X)};Object.defineProperty(V3,"__esModule",{value:!0});V3.connect=void 0;if(typeof TextEncoder>"u"){let{TextEncoder:Y,TextDecoder:Q}=T1("util");global.TextEncoder=Y,global.TextDecoder=Q}if(typeof globalThis.crypto>"u"){let Y=T1("crypto");global.crypto=Y.webcrypto}if(typeof globalThis.ReadableStream>"u"){let Y=process.versions.node.split(".");if(parseInt(Y[0])>=16){let X=T1("stream/web");global.ReadableStream=X.ReadableStream}}var li6=yt0();Object.defineProperty(V3,"connect",{enumerable:!0,get:function(){return li6.connect}});bt0(SL1(),V3);bt0(ft0(),V3)});import{createHmac as ri6,timingSafeEqual as oi6}from"crypto";import{mkdir as si6,writeFile as ti6}from"fs/promises";import{dirname as ei6,join as mt0,resolve as ut0,sep as Ya6}from"path";function Xa6(Y){let Q=Y.replace(/[^a-zA-Z0-9_-]/g,"_");return mt0(Qa6,Q)}function Ja6(Y){return Y.replace(/^\/+/,"")}function lt0(Y,Q){let X=Xa6(Y),J=Ja6(Q),G=ut0(mt0(X,J)),K=ut0(X);if(G!==K&&!G.startsWith(K+Ya6))throw Error("Path traversal detected");return G}function dt0(Y,Q,X,J,G){let K=process.env.ENCRYPTION_KEY||"dev-secret",W=`${Y}:${Q}:${X}:${J}`,Z=ri6("sha256",K).update(W).digest("hex"),H=Buffer.from(Z,"hex"),$=Buffer.from(G,"hex");return H.length===$.length&&oi6(H,$)}function EM1(Y){let Q=Y.split(".").pop()?.toLowerCase()||"";return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",gif:"image/gif",webp:"image/webp",svg:"image/svg+xml",ico:"image/x-icon",bmp:"image/bmp",pdf:"application/pdf",json:"application/json",xml:"application/xml",txt:"text/plain",html:"text/html",htm:"text/html",css:"text/css",csv:"text/csv",md:"text/markdown",js:"application/javascript",mjs:"application/javascript",ts:"application/typescript",mp4:"video/mp4",webm:"video/webm",avi:"video/x-msvideo",mov:"video/quicktime",mp3:"audio/mpeg",wav:"audio/wav",ogg:"audio/ogg",zip:"application/zip",gz:"application/gzip",tar:"application/x-tar",woff:"font/woff",woff2:"font/woff2",ttf:"font/ttf",otf:"font/otf"}[Q]||"application/octet-stream"}var Qa6,PM1,pt0;var TM1=S(()=>{d5();Qa6=process.env.MESH_HOME?`${process.env.MESH_HOME}/assets`:"./data/assets",PM1=new QY;PM1.get("/:orgId/*",async(Y)=>{let Q=Y.req.param("orgId"),X=Y.req.path.replace(`/api/dev-assets/${Q}/`,"");if(!Q||!X)return Y.json({error:"Missing orgId or key"},400);let J=Y.req.query("expires"),G=Y.req.query("signature"),K=Y.req.query("method");if(!J||!G||K!=="GET")return Y.json({error:"Invalid or missing signature parameters"},400);let W=parseInt(J,10);if(!Number.isFinite(W))return Y.json({error:"Invalid expires parameter"},400);let Z=Math.floor(Date.now()/1000);if(W<Z)return Y.json({error:"URL has expired"},403);if(!dt0(Q,X,W,"GET",G))return Y.json({error:"Invalid signature"},403);let H=lt0(Q,X);try{let $=Bun.file(H);if(!await $.exists())return Y.json({error:"File not found"},404);let V=EM1(X);return new Response($.stream(),{headers:{"Content-Type":V,"Content-Length":$.size.toString(),"Cache-Control":"private, max-age=3600"}})}catch($){return console.error("Error serving file:",$),Y.json({error:"Failed to read file"},500)}});PM1.put("/:orgId/*",async(Y)=>{let Q=Y.req.param("orgId"),X=Y.req.path.replace(`/api/dev-assets/${Q}/`,"");if(!Q||!X)return Y.json({error:"Missing orgId or key"},400);let J=Y.req.query("expires"),G=Y.req.query("signature"),K=Y.req.query("method");if(!J||!G||K!=="PUT")return Y.json({error:"Invalid or missing signature parameters"},400);let W=parseInt(J,10);if(!Number.isFinite(W))return Y.json({error:"Invalid expires parameter"},400);let Z=Math.floor(Date.now()/1000);if(W<Z)return Y.json({error:"URL has expired"},403);if(!dt0(Q,X,W,"PUT",G))return Y.json({error:"Invalid signature"},403);let H=lt0(Q,X),$=ei6(H);try{await si6($,{recursive:!0});let F=await Y.req.arrayBuffer();return await ti6(H,Buffer.from(F)),Y.json({success:!0,key:X})}catch(F){return console.error("Error saving file:",F),Y.json({error:"Failed to save file"},500)}});pt0=PM1});import{createHmac as rt0}from"crypto";import{mkdir as Ga6,readdir as Wa6,rm as ct0,stat as ot0}from"fs/promises";import{join as RM1,relative as Za6,resolve as nt0,sep as Ka6}from"path";function tt0(Y){let Q=Y.replace(/[^a-zA-Z0-9_-]/g,"_");return RM1(Ha6,Q)}function et0(Y){return Y.replace(/^\/+/,"")}function CM1(Y,Q){let X=tt0(Y),J=et0(Q),G=nt0(RM1(X,J)),K=nt0(X);if(G!==K&&!G.startsWith(K+Ka6))throw Error("Path traversal detected");return G}function $a6(Y,Q,X,J){let G=process.env.ENCRYPTION_KEY||"dev-secret",K=`${Y}:${Q}:${X}:${J}`;return rt0("sha256",G).update(K).digest("hex")}function at0(Y,Q,X,J,G){let K=Math.floor(Date.now()/1000)+J,W=$a6(Q,X,K,G),Z=new URL(`/api/dev-assets/${Q}/${et0(X)}`,Y);return Z.searchParams.set("expires",K.toString()),Z.searchParams.set("signature",W),Z.searchParams.set("method",G),Z.toString()}function Ye0(Y,Q,X){let J=`${Y}:${Q.getTime()}:${X}`;return`"${rt0("md5","etag").update(J).digest("hex")}"`}async function Qe0(Y,Q,X,J,G){try{let K=await Wa6(Y,{withFileTypes:!0});for(let W of K){let Z=RM1(Y,W.name),$=Za6(Q,Z).replace(/\\/g,"/");if(X&&!$.startsWith(X))continue;if(W.isDirectory())if(J){let F=$+"/";if(!X||F.startsWith(X)){if(!(X?$.slice(X.length):$).includes("/"))G.commonPrefixes.add(F)}}else await Qe0(Z,Q,X,J,G);else if(W.isFile()){if(J&&X){let F=$.slice(X.length);if(F.includes(J)){let V=F.indexOf(J),B=X+F.slice(0,V+1);G.commonPrefixes.add(B);continue}}try{let F=await ot0(Z);G.objects.push({key:$,size:F.size,lastModified:F.mtime.toISOString(),etag:Ye0(Z,F.mtime,F.size)})}catch{}}}}catch{}}function Xe0(Y,Q){let J=A0(Y).id;return[{name:"LIST_OBJECTS",description:"List objects in the local assets directory with pagination support",inputSchema:q.object({prefix:q.string().optional(),maxKeys:q.number().optional().default(1000),continuationToken:q.string().optional(),delimiter:q.string().optional()}),outputSchema:q.object({objects:q.array(q.object({key:q.string(),size:q.number(),lastModified:q.string(),etag:q.string()})),nextContinuationToken:q.string().optional(),isTruncated:q.boolean(),commonPrefixes:q.array(q.string()).optional()}),handler:async(G)=>{let K=G,W=K.prefix||"",Z=K.maxKeys??1000,H=K.delimiter,$=K.continuationToken,F=tt0(J);await Ga6(F,{recursive:!0});let V={objects:[],commonPrefixes:new Set};await Qe0(F,F,W,H,V),V.objects.sort((L,w)=>L.key.localeCompare(w.key));let B=0;if($){if(B=V.objects.findIndex((L)=>L.key>$),B===-1)B=V.objects.length}let U=V.objects.slice(B,B+Z),D=B+Z<V.objects.length,z=D?U[U.length-1]?.key:void 0;return{objects:U,isTruncated:D,nextContinuationToken:z,commonPrefixes:Array.from(V.commonPrefixes).sort()}}},{name:"GET_OBJECT_METADATA",description:"Get metadata for a file in the local assets directory",inputSchema:q.object({key:q.string()}),outputSchema:q.object({contentType:q.string().optional(),contentLength:q.number(),lastModified:q.string(),etag:q.string(),metadata:q.record(q.string(),q.string()).optional()}),handler:async(G)=>{let K=G,W=CM1(J,K.key),Z=await ot0(W);return{contentType:EM1(K.key),contentLength:Z.size,lastModified:Z.mtime.toISOString(),etag:Ye0(W,Z.mtime,Z.size)}}},{name:"GET_PRESIGNED_URL",description:"Generate a presigned URL for downloading a file from local storage",inputSchema:q.object({key:q.string(),expiresIn:q.number().optional()}),outputSchema:q.object({url:q.string(),expiresIn:q.number()}),handler:async(G)=>{let K=G,W=K.expiresIn??it0;return{url:at0(Q,J,K.key,W,"GET"),expiresIn:W}}},{name:"PUT_PRESIGNED_URL",description:"Generate a presigned URL for uploading a file to local storage",inputSchema:q.object({key:q.string(),expiresIn:q.number().optional(),contentType:q.string().optional()}),outputSchema:q.object({url:q.string(),expiresIn:q.number()}),handler:async(G)=>{let K=G,W=K.expiresIn??it0;return{url:at0(Q,J,K.key,W,"PUT"),expiresIn:W}}},{name:"DELETE_OBJECT",description:"Delete a single file from local storage",inputSchema:q.object({key:q.string()}),outputSchema:q.object({success:q.boolean(),key:q.string()}),handler:async(G)=>{let K=G,W=CM1(J,K.key);try{return await ct0(W),{success:!0,key:K.key}}catch{return{success:!1,key:K.key}}}},{name:"DELETE_OBJECTS",description:"Delete multiple files from local storage",inputSchema:q.object({keys:q.array(q.string()).max(1000)}),outputSchema:q.object({deleted:q.array(q.string()),errors:q.array(q.object({key:q.string(),message:q.string()}))}),handler:async(G)=>{let K=G,W=[],Z=[];return await Promise.all(K.keys.map(async(H)=>{let $=CM1(J,H);try{await ct0($),W.push(H)}catch(F){Z.push({key:H,message:F instanceof Error?F.message:"Unknown error"})}})),{deleted:W,errors:Z}}}]}async function IM1(Y,Q,X){let J=Xe0(Q,X),G=new Q$({name:"dev-assets-mcp",version:"1.0.0"},{capabilities:{tools:{}}});for(let W of J){let Z="shape"in W.inputSchema?W.inputSchema.shape:q.object({}).shape,H=W.outputSchema&&"shape"in W.outputSchema?W.outputSchema.shape:q.object({}).shape;G.registerTool(W.name,{description:W.description??"",inputSchema:Z,outputSchema:H,annotations:W.annotations,_meta:W._meta},async($)=>{try{let F=await W.handler($);return{content:[{type:"text",text:JSON.stringify(F)}],structuredContent:F}}catch(F){return{content:[{type:"text",text:`Error: ${F.message}`}],isError:!0}}})}let K=new dZ({enableJsonResponse:Y.headers.get("Accept")?.includes("application/json")??!1});return await G.connect(K),K.handleRequest(Y)}async function Je0(Y,Q,X,J){let K=Xe0(X,J).find((W)=>W.name===Y);if(!K)return{content:[{type:"text",text:`Tool not found: ${Y}`}],isError:!0};try{let W=await K.handler(Q);return{content:[{type:"text",text:JSON.stringify(W)}]}}catch(W){return{content:[{type:"text",text:W instanceof Error?W.message:String(W)}],isError:!0}}}var Ha6,it0=3600,st0,Ge0;var We0=S(()=>{d5();u1();IR();NA();TM1();Ha6=process.env.MESH_HOME?`${process.env.MESH_HOME}/assets`:"./data/assets",st0=new QY;st0.all("/",async(Y)=>{let Q=Y.get("meshContext"),X=new URL(Y.req.url),J=`${X.protocol}//${X.host}`;return IM1(Y.req.raw,Q,J)});Ge0=st0});var Ze0={};n9(Ze0,{mountDevRoutes:()=>Fa6});function Fa6(Y,Q){Y.all("/mcp/:connectionId{.*_dev-assets$}",Q,async(X)=>{let J=X.get("meshContext"),G=new URL(X.req.url),K=`${G.protocol}//${G.host}`;return IM1(X.req.raw,J,K)}),Y.all("/mcp/:connectionId{.*_dev-assets$}/call-tool/:toolName",Q,async(X)=>{let J=X.get("meshContext"),G=new URL(X.req.url),K=`${G.protocol}//${G.host}`,W=X.req.param("toolName");if(!W)return X.json({error:"Missing tool name"},400);let Z=await X.req.json(),H=await Je0(W,Z,J,K);if(H.isError)return X.json(H.content,500);return X.json(H.content)}),Y.use("/mcp/dev-assets",Q),Y.route("/mcp/dev-assets",Ge0),Y.route("/api/dev-assets",pt0)}var Ke0=S(()=>{We0();TM1()});BN();XL();var TJ0=["connection","keep-alive","proxy-authenticate","proxy-authorization","te","trailer","transfer-encoding","upgrade"],Lg4=/^[!#$%&'*+\-.0-9A-Z^_`a-z|~]+$/,Mg4=(Y,Q)=>{if(!Y)return{};let X=new Headers(Y.headers);if(Q){let J=X.get("connection");if(J){let G=J.split(",").map((W)=>W.trim()),K=G.filter((W)=>!Lg4.test(W));if(K.length>0)throw new tQ(400,{message:`Invalid Connection header value: ${K.join(", ")}`});G.forEach((W)=>{X.delete(W)})}}return TJ0.forEach((J)=>{X.delete(J)}),{method:Y.method,body:Y.body,duplex:Y.body?"half":void 0,headers:X,signal:Y.signal}},wg4=(Y)=>{if(!Y.headers||Array.isArray(Y.headers)||Y.headers instanceof Headers)return Y;let Q=new Headers;for(let[X,J]of Object.entries(Y.headers))if(J==null)Q.delete(X);else Q.set(X,J);return Y.headers=Q,Y},CJ0=async(Y,Q)=>{let{raw:X,customFetch:J,strictConnectionProcessing:G=!1,...K}=Q instanceof Request?{raw:Q}:Q??{},W=new Request(Y,{...Mg4(X,G),...wg4(K)});W.headers.delete("accept-encoding");let Z=await(J||fetch)(W),H=new Headers(Z.headers);if(TJ0.forEach(($)=>{H.delete($)}),H.has("content-encoding"))H.delete("content-encoding"),H.delete("content-length");return new Response(Z.body,{status:Z.status,statusText:Z.statusText,headers:H})};var RJ0=(Y)=>(Q)=>{let X=new URL(Q.req.raw.url),J=new URL(Y);return J.pathname=X.pathname,J.search=X.search,CJ0(J,{raw:Q.req.raw,headers:{...Q.req.raw.headers}})};import{resolve as i2,dirname as Ag4,join as Pg4,extname as Eg4,basename as Tg4,sep as IJ0}from"path";function Cg4(Y,Q){if(Y===Q||Tg4(Y)==="index.html")return{"Cache-Control":"no-cache"};if(Y.includes(`${IJ0}assets${IJ0}`))return{"Cache-Control":"public, max-age=31536000, immutable"};return{}}var Rg4=`http://localhost:${process.env.VITE_PORT||"4000"}`,Ig4="./dist/client";function jg4(Y,Q){let X=i2(Q),J=i2(Y);return J===X||J.startsWith(X+"/")}function Sg4({requestPath:Y,clientDir:Q}){let X=Y.startsWith("/")?Y.slice(1):Y,J=i2(Q,X);if(!jg4(J,Q))return null;return J}function e81(Y,Q="../client"){let X=new URL(Y),J=Ag4(X.pathname);return i2(J,Q)}function jJ0(Y={}){let{env:Q="production",devServerUrl:X=Rg4,clientDir:J=Ig4,isServerPath:G=()=>!1}=Y;if(Q==="development"){let K=RJ0(X);return async function(Z){let H=new URL(Z.url);if(G(H.pathname))return null;let $={req:{raw:Z,url:Z.url}};return K($)}}return async function(W){if(W.method!=="GET")return null;let Z=new URL(W.url),H;try{H=decodeURIComponent(Z.pathname)}catch{return null}if(G(H))return null;let $=Sg4({requestPath:H,clientDir:J});if(!$)return null;let F=Pg4($,"index.html"),V=i2(J,"index.html"),B=W.headers.get("accept"),D=B?.includes("text/html")||B?.includes("*/*")&&["",".html"].includes(Eg4($))?[F,V]:[];for(let z of[$,...D])try{let L=Bun.file(z);if(await L.exists())return new Response(L,{headers:Cg4(z,V)})}catch{}if(H.includes("/assets/"))return new Response("Not Found",{status:404,headers:{"Cache-Control":"no-store"}});return null}}var SJ0="https://api.decocms.com/mcp/registry";function kJ0(Y){if(!Y)return!1;try{return new URL(Y).host==="api.decocms.com"&&Y!=="https://api.decocms.com/mcp/registry"}catch{return!1}}$Y();d5();var He0=R6(Pe(),1);mV();var J06=/^[\w!#$%&'*.^`|~+-]+$/,G06=/^[ !#-:<-[\]-~]*$/,f71=(Y,Q)=>{if(Q&&Y.indexOf(Q)===-1)return{};let X=Y.trim().split(";"),J={};for(let G of X){G=G.trim();let K=G.indexOf("=");if(K===-1)continue;let W=G.substring(0,K).trim();if(Q&&Q!==W||!J06.test(W))continue;let Z=G.substring(K+1).trim();if(Z.startsWith('"')&&Z.endsWith('"'))Z=Z.slice(1,-1);if(G06.test(Z)){if(J[W]=Z.indexOf("%")!==-1?NM(Z,jR):Z,Q)break}}return J};var CF0=(Y,Q,X)=>{let J=Y.req.raw.headers.get("Cookie");if(typeof Q==="string"){if(!J)return;let K=Q;if(X==="secure")K="__Secure-"+Q;else if(X==="host")K="__Host-"+Q;return f71(J,K)[K]}if(!J)return{};return f71(J)};var RF0=(Y)=>{let X={...{origin:"*",allowMethods:["GET","HEAD","PUT","POST","DELETE","PATCH"],allowHeaders:[],exposeHeaders:[]},...Y},J=((K)=>{if(typeof K==="string")if(K==="*")return()=>K;else return(W)=>K===W?W:null;else if(typeof K==="function")return K;else return(W)=>K.includes(W)?W:null})(X.origin),G=((K)=>{if(typeof K==="function")return K;else if(Array.isArray(K))return()=>K;else return()=>[]})(X.allowMethods);return async function(W,Z){function H(F,V){W.res.headers.set(F,V)}let $=await J(W.req.header("origin")||"",W);if($)H("Access-Control-Allow-Origin",$);if(X.credentials)H("Access-Control-Allow-Credentials","true");if(X.exposeHeaders?.length)H("Access-Control-Expose-Headers",X.exposeHeaders.join(","));if(W.req.method==="OPTIONS"){if(X.origin!=="*")H("Vary","Origin");if(X.maxAge!=null)H("Access-Control-Max-Age",X.maxAge.toString());let F=await G(W.req.header("origin")||"",W);if(F.length)H("Access-Control-Allow-Methods",F.join(","));let V=X.allowHeaders;if(!V?.length){let B=W.req.header("Access-Control-Request-Headers");if(B)V=B.split(/\s*,\s*/)}if(V?.length)H("Access-Control-Allow-Headers",V.join(",")),W.res.headers.append("Vary","Access-Control-Request-Headers");return W.res.headers.delete("Content-Length"),W.res.headers.delete("Content-Type"),new Response(null,{headers:W.res.headers,status:204,statusText:"No Content"})}if(await Z(),X.origin!=="*")W.header("Vary","Origin",{append:!0})}};function W06(){let{process:Y,Deno:Q}=globalThis;return!(typeof Q?.noColor==="boolean"?Q.noColor:Y!==void 0?"NO_COLOR"in Y?.env:!1)}async function IF0(){let{navigator:Y}=globalThis,Q="cloudflare:workers";return!(Y!==void 0&&Y.userAgent==="Cloudflare-Workers"?await(async()=>{try{return"NO_COLOR"in((await import("cloudflare:workers")).env??{})}catch{return!1}})():!W06())}var Z06=(Y)=>{let[Q,X]=[",","."];return Y.map((G)=>G.replace(/(\d)(?=(\d\d\d)+(?!\d))/g,"$1"+Q)).join(X)},K06=(Y)=>{let Q=Date.now()-Y;return Z06([Q<1000?Q+"ms":Math.round(Q/1000)+"s"])},H06=async(Y)=>{if(await IF0())switch(Y/100|0){case 5:return`\x1B[31m${Y}\x1B[0m`;case 4:return`\x1B[33m${Y}\x1B[0m`;case 3:return`\x1B[36m${Y}\x1B[0m`;case 2:return`\x1B[32m${Y}\x1B[0m`}return`${Y}`};async function jF0(Y,Q,X,J,G=0,K){let W=Q==="<--"?`${Q} ${X} ${J}`:`${Q} ${X} ${J} ${await H06(G)} ${K}`;Y(W)}var SF0=(Y=console.log)=>{return async function(X,J){let{method:G,url:K}=X.req,W=K.slice(K.indexOf("/",8));await jF0(Y,"<--",G,W);let Z=Date.now();await J(),await jF0(Y,"-->",G,W,X.res.status,K06(Z))}};om();var kF0=()=>{try{return performance.now()}catch{}return Date.now()},b71=(Y)=>{let Q={total:!0,enabled:!0,totalDescription:"Total Response Time",autoEnd:!0,crossOrigin:!1,...Y};return async function(J,G){let K=[],W=new Map;if(J.get("metric"))return await G();if(J.set("metric",{headers:K,timers:W}),Q.total)MM(J,"total",Q.totalDescription);if(await G(),Q.total)RD(J,"total");if(Q.autoEnd)W.forEach((H,$)=>RD(J,$));if(typeof Q.enabled==="function"?Q.enabled(J):Q.enabled){J.res.headers.append("Server-Timing",K.join(","));let H=typeof Q.crossOrigin==="function"?Q.crossOrigin(J):Q.crossOrigin;if(H)J.res.headers.append("Timing-Allow-Origin",typeof H==="string"?H:"*")}}},vF0=(Y,Q,X,J,G)=>{let K=Y.get("metric");if(!K){console.warn("Metrics not initialized! Please add the `timing()` middleware to this route!");return}if(typeof X==="number"){let W=X.toFixed(G||1),Z=J?`${Q};dur=${W};desc="${J}"`:`${Q};dur=${W}`;K.headers.push(Z)}else{let W=X?`${Q};desc="${X}"`:`${Q}`;K.headers.push(W)}},MM=(Y,Q,X)=>{let J=Y.get("metric");if(!J){console.warn("Metrics not initialized! Please add the `timing()` middleware to this route!");return}J.timers.set(Q,{description:X,start:kF0()})},RD=(Y,Q,X)=>{let J=Y.get("metric");if(!J){console.warn("Metrics not initialized! Please add the `timing()` middleware to this route!");return}let G=J.timers.get(Q);if(!G){console.warn(`Timer "${Q}" does not exist!`);return}let{description:K,start:W}=G,Z=kF0()-W;vF0(Y,Q,Z,K,X),J.timers.delete(Q)};kz();wz1();wn();VV1();N5();$Y();UF();class XN1{db;constructor(Y){this.db=Y}async create(Y,Q,X){let J=d8("vir"),G=new Date().toISOString();if(await this.db.insertInto("connections").values({id:J,organization_id:Y,created_by:Q,title:X.title,description:X.description??null,icon:X.icon??null,app_name:null,app_id:null,connection_type:"VIRTUAL",connection_url:`virtual://${J}`,connection_token:null,connection_headers:null,oauth_config:null,configuration_state:null,configuration_scopes:null,metadata:X.metadata?JSON.stringify(X.metadata):null,tools:null,bindings:null,status:X.status??"active",created_at:G,updated_at:G}).execute(),X.connections.length>0)await this.db.insertInto("connection_aggregations").values(X.connections.map((W)=>({id:d8("agg"),parent_connection_id:J,child_connection_id:W.connection_id,selected_tools:W.selected_tools?JSON.stringify(W.selected_tools):null,selected_resources:W.selected_resources?JSON.stringify(W.selected_resources):null,selected_prompts:W.selected_prompts?JSON.stringify(W.selected_prompts):null,dependency_mode:"direct",created_at:G}))).execute();let K=await this.findById(J);if(!K)throw Error(`Failed to create virtual MCP with id: ${J}`);return K}async findById(Y,Q){let X=Y$(Y);if(X){let J=Q??X,G=await this.db.selectFrom("connections").selectAll().where("organization_id","=",J).where("status","!=","inactive").where("status","!=","error").execute();return{...xm(J),connections:G.map((K)=>({connection_id:K.id,selected_tools:null,selected_resources:null,selected_prompts:null}))}}return this.findByIdInternal(this.db,Y)}async findByIdInternal(Y,Q){let X=await Y.selectFrom("connections").selectAll().where("id","=",Q).where("connection_type","=","VIRTUAL").executeTakeFirst();if(!X)return null;let J=await Y.selectFrom("connection_aggregations").selectAll().where("parent_connection_id","=",Q).where("dependency_mode","=","direct").execute();return this.deserializeVirtualMCPEntity(X,J)}async list(Y){let Q=await this.db.selectFrom("connections").selectAll().where("organization_id","=",Y).where("connection_type","=","VIRTUAL").execute(),X=Q.map((K)=>K.id);if(X.length===0)return[];let J=await this.db.selectFrom("connection_aggregations").selectAll().where("parent_connection_id","in",X).where("dependency_mode","=","direct").execute(),G=new Map;for(let K of J){let W=G.get(K.parent_connection_id)??[];W.push(K),G.set(K.parent_connection_id,W)}return Q.map((K)=>this.deserializeVirtualMCPEntity(K,G.get(K.id)??[]))}async listByConnectionId(Y,Q){let J=(await this.db.selectFrom("connection_aggregations").select("parent_connection_id").where("child_connection_id","=",Q).execute()).map((H)=>H.parent_connection_id);if(J.length===0)return[];let G=await this.db.selectFrom("connections").selectAll().where("id","in",J).where("organization_id","=",Y).where("connection_type","=","VIRTUAL").execute();if(G.length===0)return[];let K=G.map((H)=>H.id),W=await this.db.selectFrom("connection_aggregations").selectAll().where("parent_connection_id","in",K).where("dependency_mode","=","direct").execute(),Z=new Map;for(let H of W){let $=Z.get(H.parent_connection_id)??[];$.push(H),Z.set(H.parent_connection_id,$)}return G.map((H)=>this.deserializeVirtualMCPEntity(H,Z.get(H.id)??[]))}async update(Y,Q,X){let J=new Date().toISOString(),G={updated_at:J,updated_by:Q};if(X.title!==void 0)G.title=X.title;if(X.description!==void 0)G.description=X.description;if(X.icon!==void 0)G.icon=X.icon;if(X.status!==void 0)G.status=X.status;if(X.metadata!==void 0)G.metadata=X.metadata?JSON.stringify(X.metadata):null;if(await this.db.updateTable("connections").set(G).where("id","=",Y).where("connection_type","=","VIRTUAL").execute(),X.connections!==void 0){if(await this.db.deleteFrom("connection_aggregations").where("parent_connection_id","=",Y).where("dependency_mode","=","direct").execute(),X.connections.length>0)await this.db.insertInto("connection_aggregations").values(X.connections.map((W)=>({id:d8("agg"),parent_connection_id:Y,child_connection_id:W.connection_id,selected_tools:W.selected_tools?JSON.stringify(W.selected_tools):null,selected_resources:W.selected_resources?JSON.stringify(W.selected_resources):null,selected_prompts:W.selected_prompts?JSON.stringify(W.selected_prompts):null,dependency_mode:"direct",created_at:J}))).execute()}let K=await this.findById(Y);if(!K)throw Error("Virtual MCP not found after update");return K}async delete(Y){await this.db.deleteFrom("connection_aggregations").where("parent_connection_id","=",Y).execute(),await this.db.deleteFrom("connections").where("id","=",Y).where("connection_type","=","VIRTUAL").execute()}async removeConnectionReferences(Y){await this.db.deleteFrom("connection_aggregations").where("child_connection_id","=",Y).execute()}deserializeVirtualMCPEntity(Y,Q){let X=Y.created_at instanceof Date?Y.created_at.toISOString():Y.created_at,J=Y.updated_at instanceof Date?Y.updated_at.toISOString():Y.updated_at,G=Y.status==="active"?"active":"inactive",K=this.parseJson(Y.metadata);return{id:Y.id,organization_id:Y.organization_id,title:Y.title,description:Y.description,icon:Y.icon,status:G,created_at:X,updated_at:J,created_by:Y.created_by,updated_by:Y.updated_by??void 0,metadata:{...K,instructions:K?.instructions??null},connections:Q.map((W)=>({connection_id:W.child_connection_id,selected_tools:this.parseJson(W.selected_tools),selected_resources:this.parseJson(W.selected_resources),selected_prompts:this.parseJson(W.selected_prompts)}))}}parseJson(Y){if(Y===null)return null;if(typeof Y==="string")try{return JSON.parse(Y)}catch{return null}return Y}async listVirtualTools(Y){let Q=await this.db.selectFrom("connections").select(["tools","created_at","updated_at"]).where("id","=",Y).where("connection_type","=","VIRTUAL").executeTakeFirst();if(!Q)return[];let X=this.parseJson(Q.tools);if(!X)return[];let J=Q.created_at instanceof Date?Q.created_at.toISOString():Q.created_at,G=Q.updated_at instanceof Date?Q.updated_at.toISOString():Q.updated_at;return X.map((K,W)=>({tool:K,originalIndex:W})).filter(({tool:K})=>UB(K)).map(({tool:K,originalIndex:W})=>qv(`${Y}:${K.name}:${W}`,K,J,G))}async getVirtualTool(Y,Q){let X=await this.db.selectFrom("connections").select(["tools","created_at","updated_at"]).where("id","=",Y).where("connection_type","=","VIRTUAL").executeTakeFirst();if(!X)return null;let J=this.parseJson(X.tools);if(!J)return null;let G=J.findIndex((H)=>H.name===Q&&UB(H));if(G===-1)return null;let K=J[G],W=X.created_at instanceof Date?X.created_at.toISOString():X.created_at,Z=X.updated_at instanceof Date?X.updated_at.toISOString():X.updated_at;return qv(`${Y}:${K.name}:${G}`,K,W,Z)}async createVirtualTool(Y,Q,X){let J=new Date().toISOString(),G=await this.db.selectFrom("connections").select(["tools"]).where("id","=",Y).where("connection_type","=","VIRTUAL").executeTakeFirst();if(!G)throw Error(`Virtual MCP not found: ${Y}`);let K=this.parseJson(G.tools)??[];if(K.some((Z)=>Z.name===Q.name))throw Error(`Tool with name "${Q.name}" already exists`);let W={name:Q.name,description:Q.description,inputSchema:Q.inputSchema,outputSchema:Q.outputSchema,annotations:Q.annotations,_meta:{"mcp.mesh":{"tool.fn":Q.code},connectionDependencies:X}};return K.push(W),await this.db.updateTable("connections").set({tools:JSON.stringify(K),updated_at:J}).where("id","=",Y).execute(),await this.syncIndirectDependencies(Y,X),qv(`${Y}:${Q.name}:${K.length-1}`,W,J,J)}async updateVirtualTool(Y,Q,X,J){let G=new Date().toISOString(),K=await this.db.selectFrom("connections").select(["tools","created_at"]).where("id","=",Y).where("connection_type","=","VIRTUAL").executeTakeFirst();if(!K)throw Error(`Virtual MCP not found: ${Y}`);let W=this.parseJson(K.tools)??[],Z=W.findIndex((B)=>B.name===Q&&UB(B));if(Z===-1)throw Error(`Virtual tool not found: ${Q}`);let H=W[Z];if(X.name&&X.name!==Q){if(W.some((B)=>B.name===X.name))throw Error(`Tool with name "${X.name}" already exists`)}let $=J??H._meta.connectionDependencies??[],F={name:X.name??H.name,description:X.description!==void 0?X.description??void 0:H.description,inputSchema:X.inputSchema??H.inputSchema,outputSchema:X.outputSchema!==void 0?X.outputSchema??void 0:H.outputSchema,annotations:X.annotations!==void 0?X.annotations??void 0:H.annotations,_meta:{"mcp.mesh":{"tool.fn":X.code??H._meta["mcp.mesh"]["tool.fn"]},connectionDependencies:$}};if(W[Z]=F,await this.db.updateTable("connections").set({tools:JSON.stringify(W),updated_at:G}).where("id","=",Y).execute(),J!==void 0)await this.recalculateIndirectDependencies(Y,W);let V=K.created_at instanceof Date?K.created_at.toISOString():K.created_at;return qv(`${Y}:${F.name}:${Z}`,F,V,G)}async deleteVirtualTool(Y,Q){let X=new Date().toISOString(),J=await this.db.selectFrom("connections").select(["tools"]).where("id","=",Y).where("connection_type","=","VIRTUAL").executeTakeFirst();if(!J)throw Error(`Virtual MCP not found: ${Y}`);let G=this.parseJson(J.tools)??[],K=G.findIndex((W)=>W.name===Q&&UB(W));if(K===-1)throw Error(`Virtual tool not found: ${Q}`);G.splice(K,1),await this.db.updateTable("connections").set({tools:G.length>0?JSON.stringify(G):null,updated_at:X}).where("id","=",Y).execute(),await this.recalculateIndirectDependencies(Y,G)}async syncIndirectDependencies(Y,Q){if(Q.length===0)return;let X=new Date().toISOString(),J=await this.db.selectFrom("connection_aggregations").select(["child_connection_id","dependency_mode"]).where("parent_connection_id","=",Y).execute(),G=new Set(J.map((W)=>W.child_connection_id)),K=Q.filter((W)=>!G.has(W));if(K.length>0)await this.db.insertInto("connection_aggregations").values(K.map((W)=>({id:d8("agg"),parent_connection_id:Y,child_connection_id:W,selected_tools:null,selected_resources:null,selected_prompts:null,dependency_mode:"indirect",created_at:X}))).execute()}async recalculateIndirectDependencies(Y,Q){let X=new Set;for(let Z of Q)if(UB(Z)){let H=Z._meta.connectionDependencies??[];for(let $ of H)X.add($)}let J=await this.db.selectFrom("connection_aggregations").select(["id","child_connection_id","dependency_mode"]).where("parent_connection_id","=",Y).execute(),G=J.filter((Z)=>Z.dependency_mode==="indirect"&&!X.has(Z.child_connection_id)).map((Z)=>Z.id);if(G.length>0)await this.db.deleteFrom("connection_aggregations").where("id","in",G).execute();let K=new Set(J.map((Z)=>Z.child_connection_id)),W=Array.from(X).filter((Z)=>!K.has(Z));if(W.length>0){let Z=new Date().toISOString();await this.db.insertInto("connection_aggregations").values(W.map((H)=>({id:d8("agg"),parent_connection_id:Y,child_connection_id:H,selected_tools:null,selected_resources:null,selected_prompts:null,dependency_mode:"indirect",created_at:Z}))).execute()}}}import{sql as g6}from"kysely";class JN1{patterns=[{type:"email",regex:/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}/g},{type:"api_key",regex:/(?:api[_-]?key|token|secret|password|bearer)\s*[:=]\s*['"]?[\w-]{16,}['"]?/gi},{type:"jwt",regex:/eyJ[A-Za-z0-9-_]+\.eyJ[A-Za-z0-9-_]+\.[A-Za-z0-9-_.+/=]*/g},{type:"credit_card",regex:/\b\d{4}[- ]?\d{4}[- ]?\d{4}[- ]?\d{4}\b/g},{type:"ssn",regex:/\b\d{3}-\d{2}-\d{4}\b/g}];redact(Y){if(Y===null||Y===void 0)return Y;if(typeof Y==="string")return this.redactString(Y);if(Array.isArray(Y))return Y.map((Q)=>this.redact(Q));if(typeof Y==="object"){let Q={};for(let[X,J]of Object.entries(Y)){let G=this.redactString(X);Q[G]=this.redact(J)}return Q}return Y}redactString(Y){let Q=Y;for(let X of this.patterns)Q=Q.replace(X.regex,`[REDACTED:${X.type}]`);return Q}}N5();class GN1{db;redactor;databaseType;constructor(Y,Q="sqlite"){this.db=Y;this.redactor=new JN1,this.databaseType=Q}jsonExtract(Y,Q){if(this.databaseType==="postgres")return g6`(${g6.ref(Y)}::jsonb)->>${Q}`;let X=`$.${Q}`;return g6`json_extract(${g6.ref(Y)}, ${X})`}jsonExtractWithCommas(Y,Q){if(this.databaseType==="postgres")return g6`(',' || (${g6.ref(Y)}::jsonb)->>${Q} || ',')`;let X=`$.${Q}`;return g6`(',' || json_extract(${g6.ref(Y)}, ${X}) || ',')`}escapeLikeWildcards(Y){return Y.replace(/\\/g,"\\\\").replace(/%/g,"\\%").replace(/_/g,"\\_")}async log(Y){await this.logBatch([Y])}async logBatch(Y){if(Y.length===0)return;let Q=Y.map((X)=>({...X,input:this.redactor.redact(X.input),output:this.redactor.redact(X.output)}));await this.db.transaction().execute(async(X)=>{await X.insertInto("monitoring_logs").values(Q.map((J)=>this.toDbRow(J))).execute()})}async query(Y){let Q=this.db.selectFrom("monitoring_logs").selectAll(),X=this.db.selectFrom("monitoring_logs").select((Z)=>Z.fn.count("id").as("count"));if(Y.organizationId)Q=Q.where("organization_id","=",Y.organizationId),X=X.where("organization_id","=",Y.organizationId);if(Y.connectionId)Q=Q.where("connection_id","=",Y.connectionId),X=X.where("connection_id","=",Y.connectionId);if(Y.excludeConnectionIds&&Y.excludeConnectionIds.length>0)Q=Q.where("connection_id","not in",Y.excludeConnectionIds),X=X.where("connection_id","not in",Y.excludeConnectionIds);if(Y.virtualMcpId)Q=Q.where("virtual_mcp_id","=",Y.virtualMcpId),X=X.where("virtual_mcp_id","=",Y.virtualMcpId);if(Y.toolName)Q=Q.where("tool_name","=",Y.toolName),X=X.where("tool_name","=",Y.toolName);if(Y.isError!==void 0)Q=Q.where("is_error","=",Y.isError?1:0),X=X.where("is_error","=",Y.isError?1:0);if(Y.startDate)Q=Q.where("timestamp",">=",Y.startDate.toISOString()),X=X.where("timestamp",">=",Y.startDate.toISOString());if(Y.endDate)Q=Q.where("timestamp","<=",Y.endDate.toISOString()),X=X.where("timestamp","<=",Y.endDate.toISOString());if(Y.propertyFilters)Q=this.applyPropertyFilters(Q,Y.propertyFilters),X=this.applyPropertyFilters(X,Y.propertyFilters);if(Q=Q.orderBy("timestamp","desc"),Y.limit)Q=Q.limit(Y.limit);if(Y.offset)Q=Q.offset(Y.offset);let[J,G]=await Promise.all([Q.execute(),X.executeTakeFirst()]),K=Number(G?.count||0);return{logs:J.map((Z)=>this.fromDbRow(Z)),total:K}}async getStats(Y){let Q=this.db.selectFrom("monitoring_logs").where("organization_id","=",Y.organizationId);if(Y.startDate)Q=Q.where("timestamp",">=",Y.startDate.toISOString());if(Y.endDate)Q=Q.where("timestamp","<=",Y.endDate.toISOString());let X=await Q.select([(W)=>W.fn.count("id").as("total_count"),(W)=>W.fn.sum(W.ref("is_error")).as("error_count"),(W)=>W.fn.avg("duration_ms").as("avg_duration")]).executeTakeFirst(),J=Number(X?.total_count||0),G=Number(X?.error_count||0),K=Number(X?.avg_duration||0);return{totalCalls:J,errorRate:J>0?G/J:0,avgDurationMs:K}}async aggregate(Y){let{organizationId:Q,path:X,from:J,aggregation:G,groupBy:K,groupByColumn:W,interval:Z,filters:H}=Y,$=J==="input"?"input":"output",F=this.db.selectFrom("monitoring_logs").where("organization_id","=",Q);if(H?.connectionIds&&H.connectionIds.length>0)F=F.where("connection_id","in",H.connectionIds);if(H?.virtualMcpIds&&H.virtualMcpIds.length>0)F=F.where("virtual_mcp_id","in",H.virtualMcpIds);if(H?.toolNames&&H.toolNames.length>0)F=F.where("tool_name","in",H.toolNames);if(H?.startDate)F=F.where("timestamp",">=",H.startDate.toISOString());if(H?.endDate)F=F.where("timestamp","<=",H.endDate.toISOString());if(H?.propertyFilters)F=this.applyPropertyFilters(F,H.propertyFilters);let V=this.jsonExtractPath($,X);if(W){let U=g6.ref(W);return{value:null,groups:(await F.select([g6`${U}`.as("group_key"),this.aggregationExpression(G,V).as("agg_value")]).groupBy(g6`${U}`).execute()).filter((z)=>z.group_key!==null).map((z)=>({key:String(z.group_key),value:Number(z.agg_value)||0}))}}if(K){let U=this.jsonExtractPathText($,K);return{value:null,groups:(await F.select([g6`${U}`.as("group_key"),this.aggregationExpression(G,V).as("agg_value")]).groupBy(g6`${U}`).execute()).filter((z)=>z.group_key!==null).map((z)=>({key:String(z.group_key),value:Number(z.agg_value)||0}))}}if(Z){let U=this.timeBucketExpression(Z);return{value:null,timeseries:(await F.select([U.as("time_bucket"),this.aggregationExpression(G,V).as("agg_value")]).groupBy(g6`time_bucket`).orderBy(g6`time_bucket`).execute()).map((z)=>({timestamp:String(z.time_bucket),value:Number(z.agg_value)||0}))}}let B=await F.select([this.aggregationExpression(G,V).as("agg_value")]).executeTakeFirst();return{value:B?Number(B.agg_value)||0:null}}async countMatched(Y){let{organizationId:Q,path:X,from:J,filters:G}=Y,K=J==="input"?"input":"output",W=this.db.selectFrom("monitoring_logs").where("organization_id","=",Q);if(G?.connectionIds&&G.connectionIds.length>0)W=W.where("connection_id","in",G.connectionIds);if(G?.toolNames&&G.toolNames.length>0)W=W.where("tool_name","in",G.toolNames);if(G?.startDate)W=W.where("timestamp",">=",G.startDate.toISOString());if(G?.endDate)W=W.where("timestamp","<=",G.endDate.toISOString());if(G?.propertyFilters)W=this.applyPropertyFilters(W,G.propertyFilters);let Z=this.jsonExtractPathText(K,X),H=await W.where(g6`${Z}`,"is not",null).select(($)=>$.fn.count("id").as("count")).executeTakeFirst();return Number(H?.count||0)}jsonExtractPath(Y,Q){if(this.databaseType==="postgres"){let J=`{${Q.replace(/^\$\.?/,"").split(".").join(",")}}`;return g6`(${g6.ref(Y)}::jsonb #>> ${J})::numeric`}return g6`CAST(json_extract(${g6.ref(Y)}, ${Q}) AS REAL)`}jsonExtractPathText(Y,Q){if(this.databaseType==="postgres"){let J=`{${Q.replace(/^\$\.?/,"").split(".").join(",")}}`;return g6`(${g6.ref(Y)}::jsonb #>> ${J})`}return g6`json_extract(${g6.ref(Y)}, ${Q})`}aggregationExpression(Y,Q){switch(Y){case"sum":return g6`COALESCE(SUM(${Q}), 0)`;case"avg":return g6`COALESCE(AVG(${Q}), 0)`;case"min":return g6`MIN(${Q})`;case"max":return g6`MAX(${Q})`;case"count":return g6`COUNT(${Q})`;case"count_all":return g6`COUNT(*)`;case"last":return g6`MAX(${Q})`;default:return g6`SUM(${Q})`}}timeBucketExpression(Y){let Q=Y.match(/^(\d+)([mhd])$/);if(!Q)throw Error(`Invalid interval format: ${Y}. Use format like "1h", "1d", "15m"`);let[,X,J]=Q;if(!X||!J)throw Error(`Invalid interval format: ${Y}`);let G=parseInt(X,10);if(this.databaseType==="postgres"){let K;switch(J){case"m":K="minute";break;case"h":K="hour";break;case"d":K="day";break;default:K="hour"}if(G===1)return g6`date_trunc(${K}, timestamp::timestamp)`;let Z=G*(J==="m"?60:J==="h"?3600:86400);return g6`to_timestamp(floor(extract(epoch from timestamp::timestamp) / ${Z}) * ${Z})`}switch(J){case"m":if(G===1)return g6`strftime('%Y-%m-%d %H:%M:00', timestamp)`;return g6`strftime('%Y-%m-%d %H:', timestamp) || printf('%02d', (cast(strftime('%M', timestamp) as integer) / ${G}) * ${G}) || ':00'`;case"h":if(G===1)return g6`strftime('%Y-%m-%d %H:00:00', timestamp)`;return g6`strftime('%Y-%m-%d ', timestamp) || printf('%02d', (cast(strftime('%H', timestamp) as integer) / ${G}) * ${G}) || ':00:00'`;case"d":return g6`strftime('%Y-%m-%d 00:00:00', timestamp)`;default:return g6`strftime('%Y-%m-%d %H:00:00', timestamp)`}}applyPropertyFilters(Y,Q){let{properties:X,propertyKeys:J,propertyPatterns:G,propertyInValues:K}=Q;if(X)for(let[W,Z]of Object.entries(X)){let H=this.jsonExtract("properties",W);Y=Y.where(H,"=",Z)}if(J&&J.length>0)for(let W of J){let Z=this.jsonExtract("properties",W);Y=Y.where(Z,"is not",null)}if(G)for(let[W,Z]of Object.entries(G)){let H=this.jsonExtract("properties",W),$=this.databaseType==="postgres"?"ilike":"like";Y=Y.where(H,$,Z)}if(K)for(let[W,Z]of Object.entries(K)){let H=this.jsonExtractWithCommas("properties",W),F=`%,${this.escapeLikeWildcards(Z)},%`,V=g6`${H} LIKE ${F} ESCAPE '\\'`;Y=Y.where(V)}return Y}toDbRow(Y){return{id:Y.id||d8("log"),organization_id:Y.organizationId,connection_id:Y.connectionId,connection_title:Y.connectionTitle,tool_name:Y.toolName,input:JSON.stringify(Y.input),output:JSON.stringify(Y.output),is_error:Y.isError?1:0,error_message:Y.errorMessage||null,duration_ms:Y.durationMs,timestamp:Y.timestamp instanceof Date?Y.timestamp.toISOString():Y.timestamp,user_id:Y.userId||null,request_id:Y.requestId,user_agent:Y.userAgent||null,virtual_mcp_id:Y.virtualMcpId||null,properties:Y.properties?JSON.stringify(Y.properties):null}}fromDbRow(Y){let Q=typeof Y.input==="string"?JSON.parse(Y.input):Y.input,X=typeof Y.output==="string"?JSON.parse(Y.output):Y.output,J=typeof Y.timestamp==="string"?new Date(Y.timestamp):Y.timestamp,G=Y.properties?typeof Y.properties==="string"?JSON.parse(Y.properties):Y.properties:null;return{id:Y.id,organizationId:Y.organization_id,connectionId:Y.connection_id,connectionTitle:Y.connection_title,toolName:Y.tool_name,input:Q,output:X,isError:Y.is_error===1,errorMessage:Y.error_message,durationMs:Y.duration_ms,timestamp:J,userId:Y.user_id,requestId:Y.request_id,userAgent:Y.user_agent,virtualMcpId:Y.virtual_mcp_id,properties:G}}}N5();class WN1{db;constructor(Y){this.db=Y}async create(Y,Q,X){let J=d8("dash"),G=new Date().toISOString();return await this.db.insertInto("monitoring_dashboards").values({id:J,organization_id:Y,name:X.name,description:X.description??null,filters:X.filters?JSON.stringify(X.filters):null,widgets:JSON.stringify(X.widgets),created_by:Q,created_at:G,updated_at:G}).execute(),{id:J,organizationId:Y,name:X.name,description:X.description??null,filters:X.filters??null,widgets:X.widgets,createdBy:Q,createdAt:G,updatedAt:G}}async get(Y){let Q=await this.db.selectFrom("monitoring_dashboards").selectAll().where("id","=",Y).executeTakeFirst();if(!Q)return null;return this.fromDbRow(Q)}async list(Y){return(await this.db.selectFrom("monitoring_dashboards").selectAll().where("organization_id","=",Y).orderBy("created_at","desc").execute()).map((X)=>this.fromDbRow(X))}async update(Y,Q){let J={updated_at:new Date().toISOString()};if(Q.name!==void 0)J.name=Q.name;if(Q.description!==void 0)J.description=Q.description;if(Q.filters!==void 0)J.filters=Q.filters?JSON.stringify(Q.filters):null;if(Q.widgets!==void 0)J.widgets=JSON.stringify(Q.widgets);await this.db.updateTable("monitoring_dashboards").set(J).where("id","=",Y).execute();let G=await this.get(Y);if(!G)throw Error(`Dashboard ${Y} not found after update`);return G}async delete(Y){await this.db.deleteFrom("monitoring_dashboards").where("id","=",Y).execute()}fromDbRow(Y){let Q=Y.filters?typeof Y.filters==="string"?JSON.parse(Y.filters):Y.filters:null,X=typeof Y.widgets==="string"?JSON.parse(Y.widgets):Y.widgets;return{id:Y.id,organizationId:Y.organization_id,name:Y.name,description:Y.description,filters:Q,widgets:X,createdBy:Y.created_by,createdAt:Y.created_at instanceof Date?Y.created_at.toISOString():Y.created_at,updatedAt:Y.updated_at instanceof Date?Y.updated_at.toISOString():Y.updated_at}}}class ZN1{db;constructor(Y){this.db=Y}async get(Y){let Q=await this.db.selectFrom("organization_settings").selectAll().where("organizationId","=",Y).executeTakeFirst();if(!Q)return null;return{organizationId:Q.organizationId,sidebar_items:Q.sidebar_items?typeof Q.sidebar_items==="string"?JSON.parse(Q.sidebar_items):Q.sidebar_items:null,enabled_plugins:Q.enabled_plugins?typeof Q.enabled_plugins==="string"?JSON.parse(Q.enabled_plugins):Q.enabled_plugins:null,createdAt:Q.createdAt,updatedAt:Q.updatedAt}}async upsert(Y,Q){let X=new Date().toISOString(),J=Q?.sidebar_items?JSON.stringify(Q.sidebar_items):null,G=Q?.enabled_plugins?JSON.stringify(Q.enabled_plugins):null;await this.db.insertInto("organization_settings").values({organizationId:Y,sidebar_items:J,enabled_plugins:G,createdAt:X,updatedAt:X}).onConflict((W)=>W.column("organizationId").doUpdateSet({sidebar_items:J?J:void 0,enabled_plugins:G?G:void 0,updatedAt:X})).execute();let K=await this.get(Y);if(!K)return{organizationId:Y,sidebar_items:Q?.sidebar_items??null,enabled_plugins:Q?.enabled_plugins??null,createdAt:X,updatedAt:X};return K}}qV1();N5();class KN1{db;constructor(Y){this.db=Y}parseRow(Y){return{id:Y.id,projectId:Y.project_id,connectionId:Y.connection_id,createdAt:Y.created_at}}async list(Y){return(await this.db.selectFrom("project_connections").selectAll().where("project_id","=",Y).orderBy("created_at","asc").execute()).map((X)=>this.parseRow(X))}async add(Y,Q){let X=new Date().toISOString(),J=d8("pc"),G=await this.db.insertInto("project_connections").values({id:J,project_id:Y,connection_id:Q,created_at:X}).onConflict((W)=>W.columns(["project_id","connection_id"]).doNothing()).returning(["id","project_id","connection_id","created_at"]).executeTakeFirst();if(G)return this.parseRow(G);let K=await this.db.selectFrom("project_connections").selectAll().where("project_id","=",Y).where("connection_id","=",Q).executeTakeFirstOrThrow();return this.parseRow(K)}async remove(Y,Q){return((await this.db.deleteFrom("project_connections").where("project_id","=",Y).where("connection_id","=",Q).executeTakeFirst()).numDeletedRows??0n)>0n}}N5();class HN1{db;constructor(Y){this.db=Y}parseRow(Y){return{id:Y.id,projectId:Y.project_id,pluginId:Y.plugin_id,connectionId:Y.connection_id,settings:Y.settings?typeof Y.settings==="string"?JSON.parse(Y.settings):Y.settings:null,createdAt:Y.created_at,updatedAt:Y.updated_at}}async list(Y){return(await this.db.selectFrom("project_plugin_configs").selectAll().where("project_id","=",Y).execute()).map((X)=>this.parseRow(X))}async get(Y,Q){let X=await this.db.selectFrom("project_plugin_configs").selectAll().where("project_id","=",Y).where("plugin_id","=",Q).executeTakeFirst();return X?this.parseRow(X):null}async upsert(Y,Q,X){let J=new Date().toISOString();if(await this.get(Y,Q)){let Z={updated_at:J};if(X.connectionId!==void 0)Z.connection_id=X.connectionId;if(X.settings!==void 0)Z.settings=X.settings?JSON.stringify(X.settings):null;await this.db.updateTable("project_plugin_configs").set(Z).where("project_id","=",Y).where("plugin_id","=",Q).execute();let H=await this.get(Y,Q);if(!H)throw Error("Failed to update project plugin config");return H}let K=d8("ppc");await this.db.insertInto("project_plugin_configs").values({id:K,project_id:Y,plugin_id:Q,connection_id:X.connectionId??null,settings:X.settings?JSON.stringify(X.settings):null,created_at:J,updated_at:J}).execute();let W=await this.get(Y,Q);if(!W)throw Error("Failed to create project plugin config");return W}async delete(Y,Q){return((await this.db.deleteFrom("project_plugin_configs").where("project_id","=",Y).where("plugin_id","=",Q).executeTakeFirst()).numDeletedRows??0n)>0n}async getBoundConnectionsForProjects(Y){if(Y.length===0)return new Map;let Q=await this.db.selectFrom("project_plugin_configs").innerJoin("connections","connections.id","project_plugin_configs.connection_id").select(["project_plugin_configs.project_id","connections.id as connection_id","connections.title","connections.icon"]).where("project_plugin_configs.project_id","in",Y).where("project_plugin_configs.connection_id","is not",null).execute(),X=new Map;for(let J of Q){let G=J.project_id;if(!X.has(G))X.set(G,[]);X.get(G).push({id:J.connection_id,title:J.title,icon:J.icon})}return X}}N5();class $N1{db;constructor(Y){this.db=Y}async listOrgTags(Y){return(await this.db.selectFrom("organization_tags").selectAll().where("organization_id","=",Y).orderBy("name","asc").execute()).map((X)=>this.tagFromDbRow(X))}async getTag(Y){let Q=await this.db.selectFrom("organization_tags").selectAll().where("id","=",Y).executeTakeFirst();return Q?this.tagFromDbRow(Q):null}async getTagByName(Y,Q){let X=await this.db.selectFrom("organization_tags").selectAll().where("organization_id","=",Y).where("name","=",Q).executeTakeFirst();return X?this.tagFromDbRow(X):null}async createTag(Y,Q){let X=d8("tag"),J=new Date().toISOString();await this.db.insertInto("organization_tags").values({id:X,organization_id:Y,name:Q,created_at:J}).onConflict((K)=>K.columns(["organization_id","name"]).doNothing()).execute();let G=await this.getTagByName(Y,Q);if(!G)throw Error(`Failed to create or retrieve tag: ${Q}`);return G}async deleteTag(Y){await this.db.deleteFrom("organization_tags").where("id","=",Y).execute()}async getMemberTags(Y){return(await this.db.selectFrom("member_tags").innerJoin("organization_tags","organization_tags.id","member_tags.tag_id").select(["organization_tags.id","organization_tags.organization_id","organization_tags.name","organization_tags.created_at"]).where("member_tags.member_id","=",Y).orderBy("organization_tags.name","asc").execute()).map((X)=>this.tagFromDbRow(X))}async setMemberTags(Y,Q){await this.db.transaction().execute(async(X)=>{if(await X.deleteFrom("member_tags").where("member_id","=",Y).execute(),Q.length>0){let J=new Date().toISOString();await X.insertInto("member_tags").values(Q.map((G)=>({id:d8("mtag"),member_id:Y,tag_id:G,created_at:J}))).execute()}})}async addMemberTag(Y,Q){let X=new Date().toISOString();await this.db.insertInto("member_tags").values({id:d8("mtag"),member_id:Y,tag_id:Q,created_at:X}).onConflict((J)=>J.columns(["member_id","tag_id"]).doNothing()).execute()}async removeMemberTag(Y,Q){await this.db.deleteFrom("member_tags").where("member_id","=",Y).where("tag_id","=",Q).execute()}async verifyMemberOrg(Y,Q){return await this.db.selectFrom("member").select("id").where("id","=",Y).where("organizationId","=",Q).executeTakeFirst()!==void 0}async getUserTagsInOrg(Y,Q){return(await this.db.selectFrom("member").innerJoin("member_tags","member_tags.member_id","member.id").innerJoin("organization_tags","organization_tags.id","member_tags.tag_id").select(["organization_tags.id","organization_tags.organization_id","organization_tags.name","organization_tags.created_at"]).where("member.userId","=",Y).where("member.organizationId","=",Q).orderBy("organization_tags.name","asc").execute()).map((J)=>this.tagFromDbRow(J))}async getMembersWithTags(Y){let Q=await this.db.selectFrom("member").leftJoin("member_tags","member_tags.member_id","member.id").leftJoin("organization_tags","organization_tags.id","member_tags.tag_id").select(["member.id as memberId","organization_tags.name as tagName"]).where("member.organizationId","=",Y).execute(),X=new Map;for(let J of Q){if(!X.has(J.memberId))X.set(J.memberId,[]);if(J.tagName)X.get(J.memberId).push(J.tagName)}return X}tagFromDbRow(Y){return{id:Y.id,organizationId:Y.organization_id,name:Y.name,createdAt:Y.created_at}}}class FN1{db;constructor(Y){this.db=Y}async findById(Y,Q){let X=await this.db.selectFrom("user").select(["user.id","user.name","user.email","user.image","user.createdAt","user.updatedAt"]).where("user.id","=",Y).where((J)=>J.exists(J.selectFrom("member as m1").innerJoin("member as m2","m1.organizationId","m2.organizationId").select("m1.id").where("m1.userId","=",Y).where("m2.userId","=",Q))).executeTakeFirst();if(!X)return null;return{id:X.id,name:X.name,email:X.email,role:"",createdAt:X.createdAt,updatedAt:X.updatedAt,image:X.image??void 0}}}Vv();zP();$Y();LD();NA();d5();d5();var Br=new QY,VN1=[404,401,406];async function on0(Y,Q){return(await Q.storage.connections.findById(Y))?.connection_url??null}function ug6(Y){let Q=Y.toLowerCase();return Q.includes("resource_metadata=")||Q.includes("invalid_token")||Q.includes("oauth")}async function sn0(Y,Q={}){try{let X=await fetch(Y,{method:"POST",headers:{...Q,"Content-Type":"application/json",Accept:"application/json, text/event-stream"},body:JSON.stringify({jsonrpc:"2.0",id:0,method:"initialize",params:{protocolVersion:"2025-06-18",capabilities:{},clientInfo:{name:"mcp-mesh-proxy",version:"1.0.0"}}})});if(X.status===401){let J=X.headers.get("WWW-Authenticate");if(J){if(ug6(J))return J}if(await mg6(Y))return'Bearer realm="mcp"'}return null}catch{return null}}async function mg6(Y){try{let Q=new URL(Y),X=new URL("/.well-known/oauth-authorization-server",Q.origin),J=await fetch(X.toString(),{method:"GET",headers:{Accept:"application/json"}});if(J.ok){let G=await J.json();if(G.authorization_endpoint||G.token_endpoint||G.issuer)return!0}return!1}catch{return!1}}async function Ur(Y){let X=new URL(Y).pathname;if(X.endsWith("/"))X=X.slice(0,-1);let J=new URL(Y);J.pathname=`${X}/.well-known/oauth-protected-resource`;let G=await fetch(J.toString(),{method:"GET",headers:{Accept:"application/json"}});if(G.ok)return G;if(!VN1.includes(G.status))return G;let K=new URL(Y);if(K.pathname=`/.well-known/oauth-protected-resource${X}`,G=await fetch(K.toString(),{method:"GET",headers:{Accept:"application/json"}}),!VN1.includes(G.status))return G;let W=new URL(Y);return W.pathname="/.well-known/oauth-protected-resource",G=await fetch(W.toString(),{method:"GET",headers:{Accept:"application/json"}}),G}async function lg6(Y,Q){let X=await on0(Y,Q);if(!X)return null;let J;try{J=new URL(X).origin}catch{return null}try{let G=await Ur(X);if(G.ok){let K=await G.json();if(K.authorization_servers?.[0])return K.authorization_servers[0]}}catch{}return J}async function tn0(Y){let Q=Y.get("meshContext");if(!Q)Q=await OF.create(Y.req.raw),Y.set("meshContext",Q);return Q}async function en0({error:Y,reqUrl:Q,connectionId:X,connectionUrl:J,headers:G}){let K=Y.message?.toLowerCase()??"";if(!(Y.status===401||Y.code===401||Y.message?.includes("401")||K.includes("unauthorized")||K.includes("invalid_token")||K.includes("api key required")||K.includes("api-key required")))return null;if(Boolean(await sn0(J,G)))return new Response(null,{status:401,headers:{"WWW-Authenticate":`Bearer realm="mcp",resource_metadata="${Q.origin}/mcp/${X}/.well-known/oauth-protected-resource"`}});return new Response(JSON.stringify({error:"unauthorized",message:"Authentication required but server does not support OAuth"}),{status:401,headers:{"Content-Type":"application/json"}})}var Yi0=(Y)=>{if(!(Y.hostname==="localhost"||Y.hostname.endsWith(".localhost")||Y.hostname==="127.0.0.1"))Y.protocol="https:";return Y},Qi0=async(Y)=>{let Q=Y.req.param("connectionId"),X=await tn0(Y),J=await on0(Q,X);if(!J)return Y.json({error:"Connection not found"},404);let G=Yi0(new URL(Y.req.url)),K=`${G.origin}/mcp/${Q}`,W=`${G.origin}/oauth-proxy/${Q}`;try{let Z=await Ur(J);if(!Z.ok&&VN1.includes(Z.status)){if(await sn0(J))return new Response(JSON.stringify({resource:K,authorization_servers:[W],bearer_methods_supported:["header"],scopes_supported:["*"]}),{status:200,headers:{"Content-Type":"application/json"}});return new Response(Z.body,{status:Z.status,statusText:Z.statusText,headers:{"Content-Type":"application/json"}})}if(!Z.ok)return new Response(Z.body,{status:Z.status,statusText:Z.statusText,headers:{"Content-Type":"application/json"}});let H=await Z.json();if("issuer"in H&&!("resource"in H)&&(("authorization_endpoint"in H)||("token_endpoint"in H))){let V={resource:K,authorization_servers:[W],bearer_methods_supported:["header"],scopes_supported:"scopes_supported"in H&&Array.isArray(H.scopes_supported)&&H.scopes_supported.length>0?H.scopes_supported:["*"]};return new Response(JSON.stringify(V),{status:200,headers:{"Content-Type":"application/json"}})}let F={...H,resource:K,authorization_servers:[W]};return new Response(JSON.stringify(F),{status:Z.status,statusText:Z.statusText,headers:{"Content-Type":"application/json"}})}catch(Z){let H=Z;return console.error("[oauth-proxy] Failed to proxy OAuth protected resource metadata:",H),Y.json({error:"Failed to proxy OAuth metadata",message:H.message},502)}};Br.get("/.well-known/oauth-protected-resource/mcp/:connectionId",(Y)=>Qi0(Y));Br.get("/mcp/:connectionId/.well-known/oauth-protected-resource",(Y)=>Qi0(Y));async function qN1(Y){let X=new URL(Y).pathname;if(X.endsWith("/"))X=X.slice(0,-1);let J=X!==""&&X!=="/",G=[];if(J){let W=new URL(Y);W.pathname=`/.well-known/oauth-authorization-server${X}`,G.push(W);let Z=new URL(Y);Z.pathname=`/.well-known/openid-configuration${X}`,G.push(Z);let H=new URL(Y);H.pathname=`${X}/.well-known/openid-configuration`,G.push(H)}else{let W=new URL(Y);W.pathname="/.well-known/oauth-authorization-server",G.push(W);let Z=new URL(Y);Z.pathname="/.well-known/openid-configuration",G.push(Z)}let K=null;for(let W of G){if(K=await fetch(W.toString(),{method:"GET",headers:{Accept:"application/json"}}),K.ok)return K;if(K.status!==404&&K.status!==401)return K}return K}Br.get("/.well-known/oauth-authorization-server/oauth-proxy/:connectionId",async(Y)=>{let Q=Y.req.param("connectionId"),X=await tn0(Y),J=await lg6(Q,X);if(!J)return Y.json({error:"Connection not found or no auth server"},404);try{let G=await qN1(J);if(!G.ok)return new Response(G.body,{status:G.status,statusText:G.statusText,headers:{"Content-Type":"application/json"}});let K=await G.json(),Z=`${Yi0(new URL(Y.req.url)).origin}/oauth-proxy/${Q}`,H={...K,authorization_endpoint:K.authorization_endpoint?`${Z}/authorize`:void 0,token_endpoint:K.token_endpoint?`${Z}/token`:void 0,registration_endpoint:K.registration_endpoint?`${Z}/register`:void 0};return new Response(JSON.stringify(H),{status:200,headers:{"Content-Type":"application/json"}})}catch(G){let K=G;return console.error("[oauth-proxy] Failed to proxy auth server metadata:",K),Y.json({error:"Failed to proxy auth server metadata",message:K.message},502)}});var Xi0=Br;$Y();NA();d5();Uv();var BN1=new QY;async function Dr(Y,Q){let X=Y.get("meshContext");try{let J=Y.req.header("x-org-id"),G=Y.req.header("x-org-slug"),K=J?J:G?await X.db.selectFrom("organization").select("id").where("slug","=",G).executeTakeFirst().then((U)=>U?.id):null,W=Q?Q:K?DM(K):null;if(!W)return Y.json({error:"Agent ID or organization ID is required"},400);let Z=await X.storage.virtualMcps.findById(W,K??void 0);if(!Z)return Y.json({error:"Agent not found"},404);if(K&&Z.organization_id!==K)return Y.json({error:"Agent not found"},404);if(Z.status!=="active")return Y.json({error:`Agent is inactive: ${Z.id??"Decopilot"}`},503);X.connectionId=Z.id??void 0;let H=await X.db.selectFrom("organization").select(["id","slug","name"]).where("id","=",Z.organization_id).executeTakeFirst();if(H)X.organization={id:H.id,slug:H.slug,name:H.name};let $=bz1(Y.req.query("mode")),F=await DB(Z,X,$),V=ED(F,{name:`mcp-virtual-mcp-${Z.title??"Decopilot"}`,version:"1.0.0"},{capabilities:{tools:{},resources:{},prompts:{}},instructions:Z.metadata?.instructions??void 0}),B=new dZ({enableJsonResponse:Y.req.header("Accept")?.includes("application/json")??!1});return await V.connect(B),await B.handleRequest(Y.req.raw)}catch(J){let G=J;return console.error("[virtual-mcp] Error handling virtual MCP request:",G),Y.json({error:"Internal server error",message:G.message},500)}}BN1.all("/gateway/:virtualMcpId?",async(Y)=>{let Q=Y.req.param("virtualMcpId")||Y.req.header("x-virtual-mcp-id");return Dr(Y,Q)});BN1.all("/virtual-mcp/:virtualMcpId?",async(Y)=>{let Q=Y.req.param("virtualMcpId")||Y.req.header("x-virtual-mcp-id");return Dr(Y,Q)});var Ji0=BN1;var zr=new QY,Gi0=300000;function MO(Y){let Q={client:{callTool:Y.callTool.bind(Y),listTools:Y.listTools.bind(Y)}};if("callStreamableTool"in Y&&Y.callStreamableTool)return{...Q,callStreamableTool:Y.callStreamableTool.bind(Y)};return Q}async function Wi0(Y,Q,{superUser:X}){let J=typeof Y==="string"?await Q.storage.connections.findById(Y,Q.organization?.id):Y;if(!J)throw Error("Connection not found");if(Q.organization&&J.organization_id!==Q.organization.id)throw Error("Connection does not belong to the active organization");if(!Q.organization){let V=await Q.db.selectFrom("organization").select(["id","slug","name"]).where("id","=",J.organization_id).executeTakeFirst();Q.organization=V?{id:V.id,slug:V.slug,name:V.name}:{id:J.organization_id}}if(J.status!=="active")throw Error(`Connection inactive: ${J.status}`);let G=await vG(J,Q,X),K=gz1(G,J),W=K.getServerCapabilities()??{tools:{},resources:{},prompts:{}},Z=ED(K,{name:"mcp-mesh-proxy-client",version:"1.0.0"},{capabilities:W,instructions:K.getInstructions()}),{client:H,server:$}=q71();await Z.connect($);let F=new JG({name:"mcp-mesh-proxy-client",version:"1.0.0"});return await F.connect(H),F}async function Zi0(Y,Q){return Wi0(Y,Q,{superUser:!1})}async function UN1(Y,Q){return Wi0(Y,Q,{superUser:!0})}zr.all("/",async(Y)=>{return Dr(Y,void 0)});zr.all("/:connectionId",async(Y)=>{let Q=Y.req.param("connectionId"),X=Y.get("meshContext");try{try{let J=await X.storage.connections.findById(Q,X.organization?.id);if(!J)throw Error("Connection not found");if(X.organization&&J.organization_id!==X.organization.id)throw Error("Connection does not belong to the active organization");if(X.organization??={id:J.organization_id},J.status!=="active")throw Error(`Connection inactive: ${J.status}`);let G=await xz1(J,X,!1),K=new dZ({enableJsonResponse:Y.req.raw.headers.get("Accept")?.includes("application/json")??!1});return await G.connect(K),await K.handleRequest(Y.req.raw)}catch(J){let G=await X.storage.connections.findById(Q,X.organization?.id);if(G?.connection_url){let K=await en0({error:J,reqUrl:new URL(Y.req.raw.url),connectionId:Q,connectionUrl:G.connection_url,headers:{}});if(K)return K}throw J}}catch(J){return Ki0(J,Y)}});var Ki0=(Y,Q)=>{if(Y.message.includes("not found"))return Q.json({error:Y.message},404);if(Y.message.includes("does not belong to the active organization"))return Q.json({error:"Connection not found"},404);if(Y.message.includes("inactive"))return Q.json({error:Y.message},503);return Q.json({error:"Internal server error",message:Y.message},500)};zr.all("/:connectionId/call-tool/:toolName",async(Y)=>{let Q=Y.req.param("connectionId"),X=Y.req.param("toolName"),J=Y.get("meshContext");try{let G=await J.storage.connections.findById(Q,J.organization?.id);if(!G)return Y.json({error:"Connection not found"},404);let W=await(await vG(G,J,!1)).callTool({name:X,arguments:await Y.req.json()});if(W instanceof Response)return W;if(W.isError)return new Response(JSON.stringify(W.content),{headers:{"Content-Type":"application/json"},status:500});return new Response(JSON.stringify(W.structuredContent??W.content),{headers:{"Content-Type":"application/json"}})}catch(G){return Ki0(G,Y)}});var Hi0=zr;Fr();N5();N5();var $i0=()=>d8("msg"),Or=32768,Nr=50,Lr="New chat",Fi0=30,Vi0=15,qi0=["user_ask","subtask"];function DN1(Y){let X="You are Deco Pilot, an AI assistant running inside Deco Studio (deco context management system).";if(Y?.trim())X+=`
|
|
1367
1367
|
|
|
1368
1368
|
---
|
|
1369
1369
|
|
|
@@ -1383,7 +1383,7 @@ Example input: "How do I connect to a database?"
|
|
|
1383
1383
|
Example output: Database Connection Setup
|
|
1384
1384
|
|
|
1385
1385
|
Example input: "What tools are available?"
|
|
1386
|
-
Example output: Available Tools Overview`;function Mr(Y){return typeof Y==="string"?Y:Y.toISOString()}class Lv{db;constructor(Y){this.db=Y}async create(Y){let Q=Y.id??d8("thrd"),X=new Date().toISOString();if(!Y.organization_id)throw Error("organization_id is required");if(!Y.created_by)throw Error("created_by is required");if(!Y.title)Y.title=Lr;let J={id:Q,organization_id:Y.organization_id,title:Y.title,description:Y.description??null,status:Y.status??"completed",created_at:X,updated_at:X,created_by:Y.created_by,updated_by:Y.updated_by??null},G=await this.db.insertInto("threads").values(J).returningAll().executeTakeFirstOrThrow();return this.threadFromDbRow(G)}async get(Y){let Q=await this.db.selectFrom("threads").selectAll().where("id","=",Y).executeTakeFirst();return Q?this.threadFromDbRow(Q):null}async update(Y,Q){let J={updated_at:new Date().toISOString()};if(Q.title!==void 0)J.title=Q.title;if(Q.description!==void 0)J.description=Q.description;if(Q.updated_by!==void 0)J.updated_by=Q.updated_by;if(Q.hidden!==void 0)J.hidden=Q.hidden;if(Q.status!==void 0)J.status=Q.status;await this.db.updateTable("threads").set(J).where("id","=",Y).execute();let G=await this.get(Y);if(!G)throw Error("Thread not found after update");return G}async delete(Y){await this.db.deleteFrom("threads").where("id","=",Y).execute()}async list(Y,Q,X){let J=this.db.selectFrom("threads").selectAll().where("organization_id","=",Y).where("hidden","=",!1).orderBy("updated_at","desc");if(Q)J=J.where("created_by","=",Q);let G=this.db.selectFrom("threads").select((Z)=>Z.fn.count("id").as("count")).where("organization_id","=",Y).where("hidden","=",!1);if(Q)G=G.where("created_by","=",Q);if(X?.limit)J=J.limit(X.limit);if(X?.offset)J=J.offset(X.offset);let[K,W]=await Promise.all([J.execute(),G.executeTakeFirst()]);return{threads:K.map((Z)=>this.threadFromDbRow(Z)),total:Number(W?.count||0)}}async saveMessages(Y){let Q=new Date().toISOString(),X=Y[0]?.thread_id;if(!X)throw Error("thread_id is required when creating multiple messages");let J=new Map;for(let Z of Y){let H=J.get(Z.id);if(H&&H.thread_id!==Z.thread_id)throw Error(`Duplicate message id "${Z.id}" with conflicting thread_ids: "${H.thread_id}" vs "${Z.thread_id}"`);J.set(Z.id,Z)}let G=[...J.values()],K=G.find((Z)=>Z.thread_id!==X);if(K)throw Error(`All messages must target the same thread. Expected thread_id "${X}", but message "${K.id}" has thread_id "${K.thread_id}"`);let W=G.map((Z)=>({id:Z.id,thread_id:X,metadata:Z.metadata?JSON.stringify(Z.metadata):null,parts:JSON.stringify(Z.parts),role:Z.role,created_at:Z.created_at??Q,updated_at:Q}));await this.db.transaction().execute(async(Z)=>{await Z.insertInto("thread_messages").values(W).onConflict((H)=>H.column("id").doUpdateSet(($)=>({metadata:$.ref("excluded.metadata"),parts:$.ref("excluded.parts"),role:$.ref("excluded.role"),updated_at:$.ref("excluded.updated_at")}))).execute(),await Z.updateTable("threads").set({updated_at:Q}).where("id","=",X).execute()})}async listMessages(Y,Q){let X=Q?.sort??"asc",J=this.db.selectFrom("thread_messages").selectAll().where("thread_id","=",Y).orderBy("created_at",X).orderBy("id",X),G=this.db.selectFrom("thread_messages").select((Z)=>Z.fn.count("id").as("count")).where("thread_id","=",Y);if(Q?.limit)J=J.limit(Q.limit);if(Q?.offset)J=J.offset(Q.offset);let[K,W]=await Promise.all([J.execute(),G.executeTakeFirst()]);return{messages:K.map((Z)=>this.messageFromDbRow(Z)),total:Number(W?.count||0)}}threadFromDbRow(Y){return{id:Y.id,organization_id:Y.organization_id,title:Y.title,description:Y.description,status:Y.status,created_at:Mr(Y.created_at),updated_at:Mr(Y.updated_at),created_by:Y.created_by,updated_by:Y.updated_by,hidden:!!Y.hidden}}messageFromDbRow(Y){let Q,X;try{Q=Y.metadata?JSON.parse(Y.metadata):void 0}catch(J){console.error(`Failed to parse metadata for message ${Y.id}:`,Y.metadata,J),Q=void 0}try{X=typeof Y.parts==="string"?JSON.parse(Y.parts):Y.parts}catch(J){console.error(`Failed to parse parts for message ${Y.id}:`,Y.parts,J),X=[]}return{id:Y.id,thread_id:Y.thread_id,metadata:Q,parts:X,role:Y.role,created_at:Mr(Y.created_at),updated_at:Mr(Y.updated_at)}}}Pz1();function dg6(Y){if(!Y)return;try{let Q=JSON.parse(Y);if(typeof Q!=="object"||Q===null||Array.isArray(Q))return;let X={};for(let[J,G]of Object.entries(Q))if(typeof G==="string")X[J]=G;return Object.keys(X).length>0?X:void 0}catch{return}}function pg6(Y,Q){for(let[X,J]of Object.entries(Q)){let G=Y[X];if(!G||G.length===0){let K=Y["*"];if(!K||K.length===0)return!1;if(K.includes("*"))continue;for(let W of J)if(!K.includes(W))return!1;continue}if(G.includes("*"))continue;for(let K of J)if(!G.includes(K))return!1}return!0}function cg6(Y){let{auth:Q,headers:X,role:J,permissions:G,userId:K}=Y,W=Q.api.hasPermission;return{hasPermission:async(Z)=>{if(J&&YN1.includes(J))return!0;if(G)return pg6(G,Z);if(!W)return console.error("[Auth] hasPermission API not available"),!1;try{if((await W({headers:X,body:{permission:Z}}))?.success===!0)return!0;let $={};for(let V of Object.keys(Z))$[V]=["*"];return(await W({headers:X,body:{permission:$}}))?.success===!0}catch(H){return console.error("[Auth] Permission check failed:",H),!1}},organization:{create:async(Z)=>{return Q.api.createOrganization({headers:X,body:Z})},update:async(Z)=>{return Q.api.updateOrganization({headers:X,body:Z})},delete:async(Z)=>{await Q.api.deleteOrganization({headers:X,body:{organizationId:Z}})},get:async(Z)=>{return Q.api.getFullOrganization({headers:X,query:Z?{organizationId:Z}:void 0})},list:async(Z)=>{return Q.api.listOrganizations({headers:X,query:Z?{userId:Z}:void 0})},addMember:async(Z)=>{return Q.api.addMember({headers:X,body:Z})},removeMember:async(Z)=>{await Q.api.removeMember({headers:X,body:Z})},listMembers:async(Z)=>{return Q.api.listMembers({headers:X,query:Z?{organizationId:Z.organizationId,limit:Z.limit,offset:Z.offset}:void 0})},updateMemberRole:async(Z)=>{return Q.api.updateMemberRole({headers:X,body:Z})}},apiKey:{create:async(Z)=>{return Q.api.createApiKey({body:{...Z,userId:K}})},list:async()=>{return Q.api.listApiKeys({headers:X})},update:async(Z)=>{return Q.api.updateApiKey({body:{...Z,userId:K}})},delete:async(Z)=>{await Q.api.deleteApiKey({headers:X,body:{keyId:Z}})}}}}async function ng6(Y,Q,X){if(YN1.includes(X))return;let J=await Y.selectFrom("organizationRole").select(["permission"]).where("organizationId","=",Q).where("role","=",X).executeTakeFirst();if(!J?.permission)return;try{return JSON.parse(J.permission)}catch{console.error(`[Auth] Failed to parse permissions for role: ${X}`);return}}async function ig6(Y,Q,X,J=Di0){let G=Y.headers.get("Authorization");try{let K=new Headers(Y.headers);K.set("X-MCP-Session-Auth","true");let W=await J.measure("auth_get_mcp_session",()=>Q.api.getMcpSession({headers:K}));if(W){let Z=W.userId,H=await J.measure("auth_query_membership",()=>X.selectFrom("member").innerJoin("organization","organization.id","member.organizationId").select(["member.role","member.organizationId","organization.id as orgId","organization.slug as orgSlug","organization.name as orgName"]).where("member.userId","=",Z).executeTakeFirst()),$=H?.role,F=H?{id:H.orgId,slug:H.orgSlug,name:H.orgName}:void 0,V;if(H&&$)V=await J.measure("auth_fetch_role_permissions",()=>ng6(X,H.organizationId,$));return{user:{id:Z,role:$},role:$,permissions:V,organization:F}}}catch(K){console.error("[Auth] OAuth session check failed:",K)}if(G?.startsWith("Bearer ")){let K=G.replace("Bearer ","").trim();try{let W=await J.measure("auth_verify_mesh_jwt",()=>Sp0(K));if(W){let Z,H=W.metadata?.organizationId;if(W.sub&&H)Z=(await J.measure("auth_query_membership",()=>X.selectFrom("member").select(["member.role"]).where("member.userId","=",W.sub).where("member.organizationId","=",H).executeTakeFirst()))?.role;return{user:{id:W.sub,connectionId:W.metadata?.connectionId,role:Z},role:Z,permissions:W.permissions,organization:W.metadata?.organizationId?{id:W.metadata?.organizationId}:void 0}}}catch{}try{let W=await J.measure("auth_verify_api_key",()=>Q.api.verifyApiKey({body:{key:K}}));if(W?.valid&&W.key){let Z=W.key.metadata?.organization,H=W.key.permissions,$,F=W.key.userId;if(F&&Z?.id)$=(await J.measure("auth_query_membership",()=>X.selectFrom("member").select(["member.role"]).where("member.userId","=",F).where("member.organizationId","=",Z.id).executeTakeFirst()))?.role;return{apiKeyId:W.key.id,user:{id:W.key.userId,role:$},role:$,permissions:H,organization:Z?{id:Z.id,slug:Z.slug,name:Z.name}:void 0}}}catch(W){console.error("[Auth] API key check failed:",W)}}try{let K=new Headers(Y.headers);K.delete("Authorization");let W=await J.measure("auth_get_session",()=>Q.api.getSession({headers:K}));if(W){let Z,H;if(W.session.activeOrganizationId){let $=await J.measure("auth_get_full_organization",()=>Q.api.getFullOrganization({headers:K}).catch(()=>null));if($)Z={id:$.id,slug:$.slug,name:$.name},H=$.members?.find((V)=>V.userId===W.user.id)?.role;else Z={id:W.session.activeOrganizationId,slug:"",name:""}}return{user:{id:W.user.id,email:W.user.email,role:H},role:H,organization:Z}}}catch(K){let W=K;console.error("[Auth] Session check failed:",JSON.stringify({message:W.message,body:W.body,stack:W.stack},null,2))}return{user:void 0}}var Ui0,OF={set:(Y)=>{Ui0=Y},create:async(Y,Q)=>{return await Ui0(Y,Q)}},Di0={measure:async(Y,Q)=>{return await Q()}},ag6=["x-hub-signature-256"];async function zi0(Y){let Q=new _z(Y.encryption.key),X={connections:new zS(Y.db,Q),organizationSettings:new ZN1(Y.db),monitoring:new GN1(Y.db,Y.databaseType),monitoringDashboards:new WN1(Y.db),virtualMcps:new XN1(Y.db),users:new FN1(Y.db),threads:new Lv(Y.db),tags:new $N1(Y.db),projects:new OS(Y.db),projectConnections:new KN1(Y.db),projectPluginConfigs:new HN1(Y.db)};return async(J,G)=>{let K=G?.timings??Di0,W=Wr(),Z=J?.headers.get("x-caller-id")??void 0,H=J?await ig6(J,Y.auth,Y.db,K):{user:void 0},$=cg6({auth:Y.auth,headers:J?.headers??new Headers,role:H.role,permissions:H.permissions,userId:H.user?.id}),F={user:H.user};if(H.apiKeyId)F.apiKey={id:H.apiKeyId,name:"",userId:""};let V=H.organization,B=J?process.env.BASE_URL??`${new URL(J.url).origin}`:uZ(),U=new BF(Y.auth,F.user?.id,void 0,$,H.role,"self"),D={timings:K,auth:F,connectionId:Z,organization:V,storage:X,vault:Q,authInstance:Y.auth,boundAuth:$,access:U,db:Y.db,tracer:Y.observability.tracer,meter:Y.observability.meter,baseUrl:B,metadata:{requestId:crypto.randomUUID(),timestamp:new Date,wellKnownForwardableHeaders:Object.fromEntries(ag6.map((z)=>[z,J?.headers.get(z)??null]).filter(([z,L])=>L!==null)),userAgent:J?.headers.get("x-mesh-client")||J?.headers.get("User-Agent")||void 0,ipAddress:(J?.headers.get("CF-Connecting-IP")||J?.headers.get("X-Forwarded-For"))??void 0,properties:dg6(J?.headers.get("x-mesh-properties"))},eventBus:Y.eventBus,createMCPProxy:async(z)=>{return await Zi0(z,D)},getOrCreateClient:W};return D}}$S();class Oi0{db;constructor(Y){this.db=Y}async publishEvent(Y){let Q=new Date().toISOString();return await this.db.insertInto("events").values({id:Y.id,organization_id:Y.organizationId,type:Y.type,source:Y.source,specversion:"1.0",subject:Y.subject??null,time:Y.time,datacontenttype:Y.datacontenttype??"application/json",dataschema:Y.dataschema??null,data:Y.data?JSON.stringify(Y.data):null,cron:Y.cron??null,status:"pending",attempts:0,last_error:null,next_retry_at:null,created_at:Q,updated_at:Q}).execute(),{id:Y.id,organizationId:Y.organizationId,type:Y.type,source:Y.source,specversion:"1.0",subject:Y.subject??null,time:Y.time,datacontenttype:Y.datacontenttype??"application/json",dataschema:Y.dataschema??null,data:Y.data??null,cron:Y.cron??null,status:"pending",attempts:0,lastError:null,nextRetryAt:null,createdAt:Q,updatedAt:Q}}async subscribe(Y){let Q=this.db.selectFrom("event_subscriptions").selectAll().where("organization_id","=",Y.organizationId).where("connection_id","=",Y.connectionId).where("event_type","=",Y.eventType);if(Y.publisher)Q=Q.where("publisher","=",Y.publisher);else Q=Q.where("publisher","is",null);if(Y.filter)Q=Q.where("filter","=",Y.filter);else Q=Q.where("filter","is",null);let X=await Q.executeTakeFirst();if(X)return{id:X.id,organizationId:X.organization_id,connectionId:X.connection_id,publisher:X.publisher,eventType:X.event_type,filter:X.filter,enabled:X.enabled===1,createdAt:X.created_at,updatedAt:X.updated_at};let J=new Date().toISOString();return await this.db.insertInto("event_subscriptions").values({id:Y.id,organization_id:Y.organizationId,connection_id:Y.connectionId,publisher:Y.publisher??null,event_type:Y.eventType,filter:Y.filter??null,enabled:1,created_at:J,updated_at:J}).execute(),{id:Y.id,organizationId:Y.organizationId,connectionId:Y.connectionId,publisher:Y.publisher??null,eventType:Y.eventType,filter:Y.filter??null,enabled:!0,createdAt:J,updatedAt:J}}async unsubscribe(Y,Q){return{success:((await this.db.deleteFrom("event_subscriptions").where("id","=",Y).where("organization_id","=",Q).executeTakeFirst()).numDeletedRows??0n)>0n}}async listSubscriptions(Y,Q){let X=this.db.selectFrom("event_subscriptions").selectAll().where("organization_id","=",Y);if(Q)X=X.where("connection_id","=",Q);return(await X.execute()).map((G)=>({id:G.id,organizationId:G.organization_id,connectionId:G.connection_id,publisher:G.publisher,eventType:G.event_type,filter:G.filter,enabled:G.enabled===1,createdAt:G.created_at,updatedAt:G.updated_at}))}async getSubscription(Y,Q){let X=await this.db.selectFrom("event_subscriptions").selectAll().where("id","=",Y).where("organization_id","=",Q).executeTakeFirst();if(!X)return null;return{id:X.id,organizationId:X.organization_id,connectionId:X.connection_id,publisher:X.publisher,eventType:X.event_type,filter:X.filter,enabled:X.enabled===1,createdAt:X.created_at,updatedAt:X.updated_at}}async getMatchingSubscriptions(Y){return(await this.db.selectFrom("event_subscriptions").selectAll().where("organization_id","=",Y.organizationId).where("enabled","=",1).where("event_type","=",Y.type).where((X)=>X.or([X("publisher","is",null),X("publisher","=",Y.source)])).execute()).map((X)=>({id:X.id,organizationId:X.organization_id,connectionId:X.connection_id,publisher:X.publisher,eventType:X.event_type,filter:X.filter,enabled:X.enabled===1,createdAt:X.created_at,updatedAt:X.updated_at}))}async createDeliveries(Y,Q,X){if(Q.length===0)return;let J=new Date().toISOString(),G=X??null,K=Q.map((W)=>({id:crypto.randomUUID(),event_id:Y,subscription_id:W,status:"pending",attempts:0,last_error:null,delivered_at:null,next_retry_at:G,created_at:J}));await this.db.insertInto("event_deliveries").values(K).execute()}async claimPendingDeliveries(Y){let Q=new Date().toISOString(),X;try{X=(await this.db.updateTable("event_deliveries").set({status:"processing"}).where("id","in",(K)=>K.selectFrom("event_deliveries as d").innerJoin("event_subscriptions as s","s.id","d.subscription_id").select("d.id").where("d.status","=","pending").where("s.enabled","=",1).where((W)=>W.or([W("d.next_retry_at","is",null),W("d.next_retry_at","<=",Q)])).orderBy("d.created_at","asc").limit(Y)).where("status","=","pending").returning(["id"]).execute()).map((K)=>K.id)}catch{let G=await this.db.selectFrom("event_deliveries as d").innerJoin("event_subscriptions as s","s.id","d.subscription_id").select(["d.id"]).where("d.status","=","pending").where("s.enabled","=",1).where((K)=>K.or([K("d.next_retry_at","is",null),K("d.next_retry_at","<=",Q)])).orderBy("d.created_at","asc").limit(Y).execute();if(G.length===0)return[];X=G.map((K)=>K.id),await this.db.updateTable("event_deliveries").set({status:"processing"}).where("id","in",X).where("status","=","pending").execute()}if(X.length===0)return[];return(await this.db.selectFrom("event_deliveries as d").innerJoin("events as e","e.id","d.event_id").innerJoin("event_subscriptions as s","s.id","d.subscription_id").select(["d.id as delivery_id","d.event_id","d.subscription_id","d.status as delivery_status","d.attempts as delivery_attempts","d.last_error as delivery_last_error","d.delivered_at","d.next_retry_at as delivery_next_retry_at","d.created_at as delivery_created_at","e.organization_id","e.type","e.source","e.specversion","e.subject","e.time","e.datacontenttype","e.dataschema","e.data","e.cron","e.status as event_status","e.attempts as event_attempts","e.last_error as event_last_error","e.next_retry_at","e.created_at as event_created_at","e.updated_at as event_updated_at","s.connection_id","s.publisher","s.event_type","s.filter","s.enabled","s.created_at as subscription_created_at","s.updated_at as subscription_updated_at"]).where("d.id","in",X).where("d.status","=","processing").execute()).map((G)=>({delivery:{id:G.delivery_id,eventId:G.event_id,subscriptionId:G.subscription_id,status:G.delivery_status,attempts:G.delivery_attempts,lastError:G.delivery_last_error,deliveredAt:G.delivered_at,nextRetryAt:G.delivery_next_retry_at,createdAt:G.delivery_created_at},event:{id:G.event_id,organizationId:G.organization_id,type:G.type,source:G.source,specversion:G.specversion,subject:G.subject,time:G.time,datacontenttype:G.datacontenttype,dataschema:G.dataschema,data:G.data?JSON.parse(G.data):null,cron:G.cron,status:G.event_status,attempts:G.event_attempts,lastError:G.event_last_error,nextRetryAt:G.next_retry_at,createdAt:G.event_created_at,updatedAt:G.event_updated_at},subscription:{id:G.subscription_id,organizationId:G.organization_id,connectionId:G.connection_id,publisher:G.publisher,eventType:G.event_type,filter:G.filter,enabled:G.enabled===1,createdAt:G.subscription_created_at,updatedAt:G.subscription_updated_at}}))}async markDeliveriesDelivered(Y){if(Y.length===0)return;let Q=new Date().toISOString();await this.db.updateTable("event_deliveries").set({status:"delivered",delivered_at:Q}).where("id","in",Y).execute()}async markDeliveriesFailed(Y,Q,X=20,J=1000,G=3600000){if(Y.length===0)return;for(let K of Y){let W=await this.db.selectFrom("event_deliveries").select(["attempts"]).where("id","=",K).executeTakeFirst();if(!W)continue;let Z=W.attempts+1;if(Z>=X)await this.db.updateTable("event_deliveries").set({attempts:Z,last_error:Q,status:"failed",next_retry_at:null}).where("id","=",K).execute();else{let H=Math.min(J*Math.pow(2,Z-1),G),$=new Date(Date.now()+H).toISOString();await this.db.updateTable("event_deliveries").set({attempts:Z,last_error:Q,status:"pending",next_retry_at:$}).where("id","=",K).execute()}}}async updateEventStatus(Y){let Q=await this.db.selectFrom("event_deliveries").select(["status"]).where("event_id","=",Y).execute();if(Q.length===0)return;let X=Q.every((K)=>K.status==="delivered"),J=Q.some((K)=>K.status==="failed"),G=Q.some((K)=>K.status==="pending"||K.status==="processing");if(X)await this.db.updateTable("events").set({status:"delivered",updated_at:new Date().toISOString()}).where("id","=",Y).execute();else if(J&&!G)await this.db.updateTable("events").set({status:"failed",updated_at:new Date().toISOString()}).where("id","=",Y).execute()}async resetStuckDeliveries(){let Y=await this.db.updateTable("event_deliveries").set({status:"pending"}).where("status","=","processing").executeTakeFirst();return Number(Y.numUpdatedRows??0)}async getEvent(Y,Q){let X=await this.db.selectFrom("events").selectAll().where("id","=",Y).where("organization_id","=",Q).executeTakeFirst();if(!X)return null;return{id:X.id,organizationId:X.organization_id,type:X.type,source:X.source,specversion:X.specversion,subject:X.subject,time:X.time,datacontenttype:X.datacontenttype,dataschema:X.dataschema,data:X.data?JSON.parse(X.data):null,cron:X.cron,status:X.status,attempts:X.attempts,lastError:X.last_error,nextRetryAt:X.next_retry_at,createdAt:X.created_at,updatedAt:X.updated_at}}async findActiveCronEvent(Y,Q,X,J){let G=await this.db.selectFrom("events").selectAll().where("organization_id","=",Y).where("type","=",Q).where("source","=",X).where("cron","=",J).where("status","in",["pending","processing","delivered"]).orderBy("created_at","desc").executeTakeFirst();if(!G)return null;return{id:G.id,organizationId:G.organization_id,type:G.type,source:G.source,specversion:G.specversion,subject:G.subject,time:G.time,datacontenttype:G.datacontenttype,dataschema:G.dataschema,data:G.data?JSON.parse(G.data):null,cron:G.cron,status:G.status,attempts:G.attempts,lastError:G.last_error,nextRetryAt:G.next_retry_at,createdAt:G.created_at,updatedAt:G.updated_at}}async cancelEvent(Y,Q,X){let J=await this.db.updateTable("events").set({status:"failed",last_error:"Cancelled by publisher",updated_at:new Date().toISOString()}).where("id","=",Y).where("organization_id","=",Q).where("source","=",X).where("status","in",["pending","processing"]).executeTakeFirst();if((J.numUpdatedRows??0n)>0n)await this.db.updateTable("event_deliveries").set({status:"failed",last_error:"Event cancelled by publisher"}).where("event_id","=",Y).where("status","in",["pending","processing"]).execute();return{success:(J.numUpdatedRows??0n)>0n}}async scheduleRetryWithoutAttemptIncrement(Y,Q){if(Y.length===0)return;let X=new Date(Date.now()+Q).toISOString();await this.db.updateTable("event_deliveries").set({status:"pending",next_retry_at:X}).where("id","in",Y).execute()}async ackDelivery(Y,Q,X){if(!await this.db.selectFrom("events").select(["id"]).where("id","=",Y).where("organization_id","=",Q).executeTakeFirst())return{success:!1};let K=((await this.db.updateTable("event_deliveries").set({status:"delivered",delivered_at:new Date().toISOString()}).where("event_id","=",Y).where("status","in",["pending","processing"]).where((W)=>W.exists(W.selectFrom("event_subscriptions").select("id").whereRef("event_subscriptions.id","=","event_deliveries.subscription_id").where("event_subscriptions.connection_id","=",X).where("event_subscriptions.organization_id","=",Q))).executeTakeFirst()).numUpdatedRows??0n)>0n;if(K)await this.updateEventStatus(Y);return{success:K}}async syncSubscriptions(Y){let{organizationId:Q,connectionId:X,subscriptions:J}=Y,G=(w,E)=>{return`${w}::${E??""}`},K=await this.listSubscriptions(Q,X),W=new Map;for(let w of K)W.set(G(w.eventType,w.publisher),w);let Z=new Map;for(let w of J)Z.set(G(w.eventType,w.publisher),w);let H=new Date().toISOString(),$=[],F=[],V=[],B=0;for(let[w,E]of Z){let T=W.get(w);if(!T)$.push({id:crypto.randomUUID(),organization_id:Q,connection_id:X,event_type:E.eventType,publisher:E.publisher??null,filter:E.filter??null,enabled:1,created_at:H,updated_at:H});else{let C=T.filter??null,P=E.filter??null;if(C!==P)F.push({id:T.id,filter:P});else B++}}for(let[w,E]of W)if(!Z.has(w))V.push(E.id);if($.length>0)await this.db.insertInto("event_subscriptions").values($).execute();if(F.length>0)await Promise.all(F.map((w)=>this.db.updateTable("event_subscriptions").set({filter:w.filter,updated_at:H}).where("id","=",w.id).execute()));if(V.length>0)await this.db.deleteFrom("event_subscriptions").where("id","in",V).execute();let U=$.length,D=F.length,z=V.length,L=await this.listSubscriptions(Q,X);return{created:U,updated:D,deleted:z,unchanged:B,subscriptions:L}}}function Ni0(Y){return new Oi0(Y)}function bJ(Y,Q,X,J,G,K,W,Z){return bJ.fromTZ(bJ.tp(Y,Q,X,J,G,K,W),Z)}bJ.fromTZISO=(Y,Q,X)=>bJ.fromTZ(rg6(Y,Q),X);bJ.fromTZ=function(Y,Q){let X=new Date(Date.UTC(Y.y,Y.m-1,Y.d,Y.h,Y.i,Y.s)),J=zN1(Y.tz,X),G=new Date(X.getTime()-J),K=zN1(Y.tz,G);if(K-J===0)return G;{let W=new Date(X.getTime()-K),Z=zN1(Y.tz,W);if(Z-K===0)return W;if(!Q&&Z-K>0)return W;if(Q)throw Error("Invalid date passed to fromTZ()");return G}};bJ.toTZ=function(Y,Q){let X=Y.toLocaleString("en-US",{timeZone:Q}).replace(/[\u202f]/," "),J=new Date(X);return{y:J.getFullYear(),m:J.getMonth()+1,d:J.getDate(),h:J.getHours(),i:J.getMinutes(),s:J.getSeconds(),tz:Q}};bJ.tp=(Y,Q,X,J,G,K,W)=>({y:Y,m:Q,d:X,h:J,i:G,s:K,tz:W});function zN1(Y,Q=new Date){let X=Q.toLocaleString("en-US",{timeZone:Y,timeZoneName:"shortOffset"}).split(" ").slice(-1)[0],J=Q.toLocaleString("en-US").replace(/[\u202f]/," ");return Date.parse(`${J} GMT`)-Date.parse(`${J} ${X}`)}function rg6(Y,Q){let X=new Date(Date.parse(Y));if(isNaN(X))throw Error("minitz: Invalid ISO8601 passed to parser.");let J=Y.substring(9);return Y.includes("Z")||J.includes("-")||J.includes("+")?bJ.tp(X.getUTCFullYear(),X.getUTCMonth()+1,X.getUTCDate(),X.getUTCHours(),X.getUTCMinutes(),X.getUTCSeconds(),"Etc/UTC"):bJ.tp(X.getFullYear(),X.getMonth()+1,X.getDate(),X.getHours(),X.getMinutes(),X.getSeconds(),Q)}bJ.minitz=bJ;var ON1=32,wv=31|ON1,Ai0=[1,2,4,8,16],Li0=class{pattern;timezone;second;minute;hour;day;month;dayOfWeek;lastDayOfMonth;starDOM;starDOW;constructor(Y,Q){this.pattern=Y,this.timezone=Q,this.second=Array(60).fill(0),this.minute=Array(60).fill(0),this.hour=Array(24).fill(0),this.day=Array(31).fill(0),this.month=Array(12).fill(0),this.dayOfWeek=Array(7).fill(0),this.lastDayOfMonth=!1,this.starDOM=!1,this.starDOW=!1,this.parse()}parse(){if(!(typeof this.pattern=="string"||this.pattern instanceof String))throw TypeError("CronPattern: Pattern has to be of type string.");this.pattern.indexOf("@")>=0&&(this.pattern=this.handleNicknames(this.pattern).trim());let Y=this.pattern.replace(/\s+/g," ").split(" ");if(Y.length<5||Y.length>6)throw TypeError("CronPattern: invalid configuration format ('"+this.pattern+"'), exactly five or six space separated parts are required.");if(Y.length===5&&Y.unshift("0"),Y[3].indexOf("L")>=0&&(Y[3]=Y[3].replace("L",""),this.lastDayOfMonth=!0),Y[3]=="*"&&(this.starDOM=!0),Y[4].length>=3&&(Y[4]=this.replaceAlphaMonths(Y[4])),Y[5].length>=3&&(Y[5]=this.replaceAlphaDays(Y[5])),Y[5]=="*"&&(this.starDOW=!0),this.pattern.indexOf("?")>=0){let Q=new fW(new Date,this.timezone).getDate(!0);Y[0]=Y[0].replace("?",Q.getSeconds().toString()),Y[1]=Y[1].replace("?",Q.getMinutes().toString()),Y[2]=Y[2].replace("?",Q.getHours().toString()),this.starDOM||(Y[3]=Y[3].replace("?",Q.getDate().toString())),Y[4]=Y[4].replace("?",(Q.getMonth()+1).toString()),this.starDOW||(Y[5]=Y[5].replace("?",Q.getDay().toString()))}this.throwAtIllegalCharacters(Y),this.partToArray("second",Y[0],0,1),this.partToArray("minute",Y[1],0,1),this.partToArray("hour",Y[2],0,1),this.partToArray("day",Y[3],-1,1),this.partToArray("month",Y[4],-1,1),this.partToArray("dayOfWeek",Y[5],0,wv),this.dayOfWeek[7]&&(this.dayOfWeek[0]=this.dayOfWeek[7])}partToArray(Y,Q,X,J){let G=this[Y],K=Y==="day"&&this.lastDayOfMonth;if(Q===""&&!K)throw TypeError("CronPattern: configuration entry "+Y+" ("+Q+") is empty, check for trailing spaces.");if(Q==="*")return G.fill(J);let W=Q.split(",");if(W.length>1)for(let Z=0;Z<W.length;Z++)this.partToArray(Y,W[Z],X,J);else Q.indexOf("-")!==-1&&Q.indexOf("/")!==-1?this.handleRangeWithStepping(Q,Y,X,J):Q.indexOf("-")!==-1?this.handleRange(Q,Y,X,J):Q.indexOf("/")!==-1?this.handleStepping(Q,Y,X,J):Q!==""&&this.handleNumber(Q,Y,X,J)}throwAtIllegalCharacters(Y){for(let Q=0;Q<Y.length;Q++)if((Q===5?/[^/*0-9,\-#L]+/:/[^/*0-9,-]+/).test(Y[Q]))throw TypeError("CronPattern: configuration entry "+Q+" ("+Y[Q]+") contains illegal characters.")}handleNumber(Y,Q,X,J){let G=this.extractNth(Y,Q),K=parseInt(G[0],10)+X;if(isNaN(K))throw TypeError("CronPattern: "+Q+" is not a number: '"+Y+"'");this.setPart(Q,K,G[1]||J)}setPart(Y,Q,X){if(!Object.prototype.hasOwnProperty.call(this,Y))throw TypeError("CronPattern: Invalid part specified: "+Y);if(Y==="dayOfWeek"){if(Q===7&&(Q=0),Q<0||Q>6)throw RangeError("CronPattern: Invalid value for dayOfWeek: "+Q);this.setNthWeekdayOfMonth(Q,X);return}if(Y==="second"||Y==="minute"){if(Q<0||Q>=60)throw RangeError("CronPattern: Invalid value for "+Y+": "+Q)}else if(Y==="hour"){if(Q<0||Q>=24)throw RangeError("CronPattern: Invalid value for "+Y+": "+Q)}else if(Y==="day"){if(Q<0||Q>=31)throw RangeError("CronPattern: Invalid value for "+Y+": "+Q)}else if(Y==="month"&&(Q<0||Q>=12))throw RangeError("CronPattern: Invalid value for "+Y+": "+Q);this[Y][Q]=X}handleRangeWithStepping(Y,Q,X,J){let G=this.extractNth(Y,Q),K=G[0].match(/^(\d+)-(\d+)\/(\d+)$/);if(K===null)throw TypeError("CronPattern: Syntax error, illegal range with stepping: '"+Y+"'");let[,W,Z,H]=K,$=parseInt(W,10)+X,F=parseInt(Z,10)+X,V=parseInt(H,10);if(isNaN($))throw TypeError("CronPattern: Syntax error, illegal lower range (NaN)");if(isNaN(F))throw TypeError("CronPattern: Syntax error, illegal upper range (NaN)");if(isNaN(V))throw TypeError("CronPattern: Syntax error, illegal stepping: (NaN)");if(V===0)throw TypeError("CronPattern: Syntax error, illegal stepping: 0");if(V>this[Q].length)throw TypeError("CronPattern: Syntax error, steps cannot be greater than maximum value of part ("+this[Q].length+")");if($>F)throw TypeError("CronPattern: From value is larger than to value: '"+Y+"'");for(let B=$;B<=F;B+=V)this.setPart(Q,B,G[1]||J)}extractNth(Y,Q){let X=Y,J;if(X.includes("#")){if(Q!=="dayOfWeek")throw Error("CronPattern: nth (#) only allowed in day-of-week field");J=X.split("#")[1],X=X.split("#")[0]}return[X,J]}handleRange(Y,Q,X,J){let G=this.extractNth(Y,Q),K=G[0].split("-");if(K.length!==2)throw TypeError("CronPattern: Syntax error, illegal range: '"+Y+"'");let W=parseInt(K[0],10)+X,Z=parseInt(K[1],10)+X;if(isNaN(W))throw TypeError("CronPattern: Syntax error, illegal lower range (NaN)");if(isNaN(Z))throw TypeError("CronPattern: Syntax error, illegal upper range (NaN)");if(W>Z)throw TypeError("CronPattern: From value is larger than to value: '"+Y+"'");for(let H=W;H<=Z;H++)this.setPart(Q,H,G[1]||J)}handleStepping(Y,Q,X,J){let G=this.extractNth(Y,Q),K=G[0].split("/");if(K.length!==2)throw TypeError("CronPattern: Syntax error, illegal stepping: '"+Y+"'");K[0]===""&&(K[0]="*");let W=0;K[0]!=="*"&&(W=parseInt(K[0],10)+X);let Z=parseInt(K[1],10);if(isNaN(Z))throw TypeError("CronPattern: Syntax error, illegal stepping: (NaN)");if(Z===0)throw TypeError("CronPattern: Syntax error, illegal stepping: 0");if(Z>this[Q].length)throw TypeError("CronPattern: Syntax error, max steps for part is ("+this[Q].length+")");for(let H=W;H<this[Q].length;H+=Z)this.setPart(Q,H,G[1]||J)}replaceAlphaDays(Y){return Y.replace(/-sun/gi,"-7").replace(/sun/gi,"0").replace(/mon/gi,"1").replace(/tue/gi,"2").replace(/wed/gi,"3").replace(/thu/gi,"4").replace(/fri/gi,"5").replace(/sat/gi,"6")}replaceAlphaMonths(Y){return Y.replace(/jan/gi,"1").replace(/feb/gi,"2").replace(/mar/gi,"3").replace(/apr/gi,"4").replace(/may/gi,"5").replace(/jun/gi,"6").replace(/jul/gi,"7").replace(/aug/gi,"8").replace(/sep/gi,"9").replace(/oct/gi,"10").replace(/nov/gi,"11").replace(/dec/gi,"12")}handleNicknames(Y){let Q=Y.trim().toLowerCase();return Q==="@yearly"||Q==="@annually"?"0 0 1 1 *":Q==="@monthly"?"0 0 1 * *":Q==="@weekly"?"0 0 * * 0":Q==="@daily"?"0 0 * * *":Q==="@hourly"?"0 * * * *":Y}setNthWeekdayOfMonth(Y,Q){if(typeof Q!="number"&&Q==="L")this.dayOfWeek[Y]=this.dayOfWeek[Y]|ON1;else if(Q===wv)this.dayOfWeek[Y]=wv;else if(Q<6&&Q>0)this.dayOfWeek[Y]=this.dayOfWeek[Y]|Ai0[Q-1];else throw TypeError(`CronPattern: nth weekday out of range, should be 1-5 or L. Value: ${Q}, Type: ${typeof Q}`)}},Mi0=[31,28,31,30,31,30,31,31,30,31,30,31],NF=[["month","year",0],["day","month",-1],["hour","day",0],["minute","hour",0],["second","minute",0]],fW=class Y{tz;ms;second;minute;hour;day;month;year;constructor(Q,X){if(this.tz=X,Q&&Q instanceof Date)if(!isNaN(Q))this.fromDate(Q);else throw TypeError("CronDate: Invalid date passed to CronDate constructor");else if(Q===void 0)this.fromDate(new Date);else if(Q&&typeof Q=="string")this.fromString(Q);else if(Q instanceof Y)this.fromCronDate(Q);else throw TypeError("CronDate: Invalid type ("+typeof Q+") passed to CronDate constructor")}isNthWeekdayOfMonth(Q,X,J,G){let K=new Date(Date.UTC(Q,X,J)).getUTCDay(),W=0;for(let Z=1;Z<=J;Z++)new Date(Date.UTC(Q,X,Z)).getUTCDay()===K&&W++;if(G&wv&&Ai0[W-1]&G)return!0;if(G&ON1){let Z=new Date(Date.UTC(Q,X+1,0)).getUTCDate();for(let H=J+1;H<=Z;H++)if(new Date(Date.UTC(Q,X,H)).getUTCDay()===K)return!1;return!0}return!1}fromDate(Q){if(this.tz!==void 0)if(typeof this.tz=="number")this.ms=Q.getUTCMilliseconds(),this.second=Q.getUTCSeconds(),this.minute=Q.getUTCMinutes()+this.tz,this.hour=Q.getUTCHours(),this.day=Q.getUTCDate(),this.month=Q.getUTCMonth(),this.year=Q.getUTCFullYear(),this.apply();else{let X=bJ.toTZ(Q,this.tz);this.ms=Q.getMilliseconds(),this.second=X.s,this.minute=X.i,this.hour=X.h,this.day=X.d,this.month=X.m-1,this.year=X.y}else this.ms=Q.getMilliseconds(),this.second=Q.getSeconds(),this.minute=Q.getMinutes(),this.hour=Q.getHours(),this.day=Q.getDate(),this.month=Q.getMonth(),this.year=Q.getFullYear()}fromCronDate(Q){this.tz=Q.tz,this.year=Q.year,this.month=Q.month,this.day=Q.day,this.hour=Q.hour,this.minute=Q.minute,this.second=Q.second,this.ms=Q.ms}apply(){if(this.month>11||this.day>Mi0[this.month]||this.hour>59||this.minute>59||this.second>59||this.hour<0||this.minute<0||this.second<0){let Q=new Date(Date.UTC(this.year,this.month,this.day,this.hour,this.minute,this.second,this.ms));return this.ms=Q.getUTCMilliseconds(),this.second=Q.getUTCSeconds(),this.minute=Q.getUTCMinutes(),this.hour=Q.getUTCHours(),this.day=Q.getUTCDate(),this.month=Q.getUTCMonth(),this.year=Q.getUTCFullYear(),!0}else return!1}fromString(Q){if(typeof this.tz=="number"){let X=bJ.fromTZISO(Q);this.ms=X.getUTCMilliseconds(),this.second=X.getUTCSeconds(),this.minute=X.getUTCMinutes(),this.hour=X.getUTCHours(),this.day=X.getUTCDate(),this.month=X.getUTCMonth(),this.year=X.getUTCFullYear(),this.apply()}else return this.fromDate(bJ.fromTZISO(Q,this.tz))}findNext(Q,X,J,G){let K=this[X],W;J.lastDayOfMonth&&(this.month!==1?W=Mi0[this.month]:W=new Date(Date.UTC(this.year,this.month+1,0,0,0,0,0)).getUTCDate());let Z=!J.starDOW&&X=="day"?new Date(Date.UTC(this.year,this.month,1,0,0,0,0)).getUTCDay():void 0;for(let H=this[X]+G;H<J[X].length;H++){let $=J[X][H];if(X==="day"&&J.lastDayOfMonth&&H-G==W&&($=1),X==="day"&&!J.starDOW){let F=J.dayOfWeek[(Z+(H-G-1))%7];if(F&&F&wv)F=this.isNthWeekdayOfMonth(this.year,this.month,H-G,F)?1:0;else if(F)throw Error(`CronDate: Invalid value for dayOfWeek encountered. ${F}`);Q.legacyMode&&!J.starDOM?$=$||F:$=$&&F}if($)return this[X]=H-G,K!==this[X]?2:1}return 3}recurse(Q,X,J){let G=this.findNext(X,NF[J][0],Q,NF[J][2]);if(G>1){let K=J+1;for(;K<NF.length;)this[NF[K][0]]=-NF[K][2],K++;if(G===3)return this[NF[J][1]]++,this[NF[J][0]]=-NF[J][2],this.apply(),this.recurse(Q,X,0);if(this.apply())return this.recurse(Q,X,J-1)}return J+=1,J>=NF.length?this:this.year>=3000?null:this.recurse(Q,X,J)}increment(Q,X,J){return this.second+=X.interval!==void 0&&X.interval>1&&J?X.interval:1,this.ms=0,this.apply(),this.recurse(Q,X,0)}getDate(Q){return Q||this.tz===void 0?new Date(this.year,this.month,this.day,this.hour,this.minute,this.second,this.ms):typeof this.tz=="number"?new Date(Date.UTC(this.year,this.month,this.day,this.hour,this.minute-this.tz,this.second,this.ms)):bJ.fromTZ(bJ.tp(this.year,this.month+1,this.day,this.hour,this.minute,this.second,this.tz),!1)}getTime(){return this.getDate(!1).getTime()}};function og6(Y){if(Y===void 0&&(Y={}),delete Y.name,Y.legacyMode=Y.legacyMode===void 0?!0:Y.legacyMode,Y.paused=Y.paused===void 0?!1:Y.paused,Y.maxRuns=Y.maxRuns===void 0?1/0:Y.maxRuns,Y.catch=Y.catch===void 0?!1:Y.catch,Y.interval=Y.interval===void 0?0:parseInt(Y.interval.toString(),10),Y.utcOffset=Y.utcOffset===void 0?void 0:parseInt(Y.utcOffset.toString(),10),Y.unref=Y.unref===void 0?!1:Y.unref,Y.startAt&&(Y.startAt=new fW(Y.startAt,Y.timezone)),Y.stopAt&&(Y.stopAt=new fW(Y.stopAt,Y.timezone)),Y.interval!==null){if(isNaN(Y.interval))throw Error("CronOptions: Supplied value for interval is not a number");if(Y.interval<0)throw Error("CronOptions: Supplied value for interval can not be negative")}if(Y.utcOffset!==void 0){if(isNaN(Y.utcOffset))throw Error("CronOptions: Invalid value passed for utcOffset, should be number representing minutes offset from UTC.");if(Y.utcOffset<-870||Y.utcOffset>870)throw Error("CronOptions: utcOffset out of bounds.");if(Y.utcOffset!==void 0&&Y.timezone)throw Error("CronOptions: Combining 'utcOffset' with 'timezone' is not allowed.")}if(Y.unref!==!0&&Y.unref!==!1)throw Error("CronOptions: Unref should be either true, false or undefined(false).");return Y}function Mv(Y){return Object.prototype.toString.call(Y)==="[object Function]"||typeof Y=="function"||Y instanceof Function}function sg6(Y){return Mv(Y)}function tg6(Y){typeof Deno<"u"&&typeof Deno.unrefTimer<"u"?Deno.unrefTimer(Y):Y&&typeof Y.unref<"u"&&Y.unref()}var wi0=30000,wr=[],Ar=class{name;options;_states;fn;constructor(Y,Q,X){let J,G;if(Mv(Q))G=Q;else if(typeof Q=="object")J=Q;else if(Q!==void 0)throw Error("Cron: Invalid argument passed for optionsIn. Should be one of function, or object (options).");if(Mv(X))G=X;else if(typeof X=="object")J=X;else if(X!==void 0)throw Error("Cron: Invalid argument passed for funcIn. Should be one of function, or object (options).");if(this.name=J?.name,this.options=og6(J),this._states={kill:!1,blocking:!1,previousRun:void 0,currentRun:void 0,once:void 0,currentTimeout:void 0,maxRuns:J?J.maxRuns:void 0,paused:J?J.paused:!1,pattern:new Li0("* * * * *")},Y&&(Y instanceof Date||typeof Y=="string"&&Y.indexOf(":")>0)?this._states.once=new fW(Y,this.options.timezone||this.options.utcOffset):this._states.pattern=new Li0(Y,this.options.timezone),this.name){if(wr.find((K)=>K.name===this.name))throw Error("Cron: Tried to initialize new named job '"+this.name+"', but name already taken.");wr.push(this)}return G!==void 0&&sg6(G)&&(this.fn=G,this.schedule()),this}nextRun(Y){let Q=this._next(Y);return Q?Q.getDate(!1):null}nextRuns(Y,Q){this._states.maxRuns!==void 0&&Y>this._states.maxRuns&&(Y=this._states.maxRuns);let X=[],J=Q||this._states.currentRun||void 0;for(;Y--&&(J=this.nextRun(J));)X.push(J);return X}getPattern(){return this._states.pattern?this._states.pattern.pattern:void 0}isRunning(){let Y=this.nextRun(this._states.currentRun),Q=!this._states.paused,X=this.fn!==void 0,J=!this._states.kill;return Q&&X&&J&&Y!==null}isStopped(){return this._states.kill}isBusy(){return this._states.blocking}currentRun(){return this._states.currentRun?this._states.currentRun.getDate():null}previousRun(){return this._states.previousRun?this._states.previousRun.getDate():null}msToNext(Y){let Q=this._next(Y);return Q?Y instanceof fW||Y instanceof Date?Q.getTime()-Y.getTime():Q.getTime()-new fW(Y).getTime():null}stop(){this._states.kill=!0,this._states.currentTimeout&&clearTimeout(this._states.currentTimeout);let Y=wr.indexOf(this);Y>=0&&wr.splice(Y,1)}pause(){return this._states.paused=!0,!this._states.kill}resume(){return this._states.paused=!1,!this._states.kill}schedule(Y){if(Y&&this.fn)throw Error("Cron: It is not allowed to schedule two functions using the same Croner instance.");Y&&(this.fn=Y);let Q=this.msToNext(),X=this.nextRun(this._states.currentRun);return Q==null||isNaN(Q)||X===null?this:(Q>wi0&&(Q=wi0),this._states.currentTimeout=setTimeout(()=>this._checkTrigger(X),Q),this._states.currentTimeout&&this.options.unref&&tg6(this._states.currentTimeout),this)}async _trigger(Y){if(this._states.blocking=!0,this._states.currentRun=new fW(void 0,this.options.timezone||this.options.utcOffset),this.options.catch)try{this.fn!==void 0&&await this.fn(this,this.options.context)}catch(Q){Mv(this.options.catch)&&this.options.catch(Q,this)}else this.fn!==void 0&&await this.fn(this,this.options.context);this._states.previousRun=new fW(Y,this.options.timezone||this.options.utcOffset),this._states.blocking=!1}async trigger(){await this._trigger()}runsLeft(){return this._states.maxRuns}_checkTrigger(Y){let Q=new Date,X=!this._states.paused&&Q.getTime()>=Y.getTime(),J=this._states.blocking&&this.options.protect;X&&!J?(this._states.maxRuns!==void 0&&this._states.maxRuns--,this._trigger()):X&&J&&Mv(this.options.protect)&&setTimeout(()=>this.options.protect(this),0),this.schedule()}_next(Y){let Q=!!(Y||this._states.currentRun),X=!1;!Y&&this.options.startAt&&this.options.interval&&([Y,Q]=this._calculatePreviousRun(Y,Q),X=!Y),Y=new fW(Y,this.options.timezone||this.options.utcOffset),this.options.startAt&&Y&&Y.getTime()<this.options.startAt.getTime()&&(Y=this.options.startAt);let J=this._states.once||new fW(Y,this.options.timezone||this.options.utcOffset);return!X&&J!==this._states.once&&(J=J.increment(this._states.pattern,this.options,Q)),this._states.once&&this._states.once.getTime()<=Y.getTime()||J===null||this._states.maxRuns!==void 0&&this._states.maxRuns<=0||this._states.kill||this.options.stopAt&&J.getTime()>=this.options.stopAt.getTime()?null:J}_calculatePreviousRun(Y,Q){let X=new fW(void 0,this.options.timezone||this.options.utcOffset),J=Y;if(this.options.startAt.getTime()<=X.getTime()){J=this.options.startAt;let G=J.getTime()+this.options.interval*1000;for(;G<=X.getTime();)J=new fW(J,this.options.timezone||this.options.utcOffset).increment(this._states.pattern,this.options,!0),G=J.getTime()+this.options.interval*1000;Q=!0}return J===null&&(J=void 0),[J,Q]}};class Av{localEmit=null;async start(Y){this.localEmit=Y}broadcast(Y,Q){this.localEmit?.(Y,Q)}async stop(){this.localEmit=null}}var Pi0=50,Ei0=500;class Ti0{listeners=new Map;totalCount=0;strategy=new Av;started=!1;async start(Y){if(this.started){if(!Y)return;await this.stop()}if(Y)this.strategy=Y;await this.strategy.start((Q,X)=>this.localEmit(Q,X)),this.started=!0}async stop(){if(!this.started)return;await this.strategy.stop(),this.started=!1}add(Y){if(this.totalCount>=Ei0)return console.warn(`[SSEHub] Total connection limit reached (${Ei0})`),null;let Q=this.listeners.get(Y.organizationId);if(!Q)Q=new Map,this.listeners.set(Y.organizationId,Q);if(Q.size>=Pi0)return console.warn(`[SSEHub] Per-org connection limit reached for ${Y.organizationId} (${Pi0})`),null;return Q.set(Y.id,Y),this.totalCount++,Y.id}remove(Y,Q){let X=this.listeners.get(Y);if(!X)return;if(X.delete(Q)){if(this.totalCount--,X.size===0)this.listeners.delete(Y)}}emit(Y,Q){this.strategy.broadcast(Y,Q)}countForOrg(Y){return this.listeners.get(Y)?.size??0}get count(){return this.totalCount}localEmit(Y,Q){let X=this.listeners.get(Y);if(!X||X.size===0)return;for(let J of X.values()){if(J.typePatterns&&!eg6(Q.type,J.typePatterns))continue;try{J.push(Q)}catch{this.remove(Y,J.id)}}}}function eg6(Y,Q){for(let X of Q){if(X===Y)return!0;if(X.endsWith(".*")){let J=X.slice(0,-1);if(Y.startsWith(J))return!0}}return!1}var hJ=new Ti0;function Ci0(Y){return{id:Y.id,type:Y.type,source:Y.source,subject:Y.subject,data:Y.data?Yu6(Y.data):void 0,time:Y.time}}function Yu6(Y){if(typeof Y==="string")try{return JSON.parse(Y)}catch{return Y}return Y}var Pr={pollIntervalMs:5000,batchSize:100,maxAttempts:20,retryDelayMs:1000,maxDelayMs:3600000};ia();pS();function Qu6(Y){return Y.endsWith("_self")}function Xu6(Y){return Y.slice(0,-5)}function Ri0(){return async(Y,Q)=>{try{if(Qu6(Y)&&Qz1()){let W=Xu6(Y),Z=await OF.create();if(await xd0(Q,{organizationId:W,connectionId:Y,publish:async(F,V,B,U)=>{await Z.eventBus.publish(W,Y,{type:F,subject:V,data:B,deliverAt:U?.deliverAt})},createMCPProxy:async(F)=>{let V=await UN1(F,Z);return{callTool:async(B,U,D)=>{let z=await V.callTool(B,U,D);return{content:z.content,structuredContent:z.structuredContent,isError:z.isError}},close:()=>V.close()}}}))return{success:!0}}let X=await OF.create(),J=await UN1(Y,X),K=await dV1.forClient(MO(J)).ON_EVENTS({events:Q});return{success:K.success,error:K.error,retryAfter:K.retryAfter,results:K.results}}catch(X){let J=X instanceof Error?X.message:String(X);return console.error(`[EventBus] Failed to notify connection ${Y}:`,J),{success:!1,error:J}}}}function Ii0(Y){return{specversion:"1.0",id:Y.id,source:Y.source,type:Y.type,time:Y.time,subject:Y.subject??void 0,datacontenttype:Y.datacontenttype,dataschema:Y.dataschema??void 0,data:Y.data??void 0}}function Ju6(Y){let Q=new Map;for(let J of Y){let G=J.subscription.connectionId,K=Q.get(G);if(K){if(K.deliveryIds.push(J.delivery.id),!K.seenEventIds.has(J.event.id))K.seenEventIds.add(J.event.id),K.events.push(Ii0(J.event))}else Q.set(G,{connectionId:J.subscription.connectionId,deliveryIds:[J.delivery.id],events:[Ii0(J.event)],seenEventIds:new Set([J.event.id])})}let X=new Map;for(let[J,G]of Q)X.set(J,{connectionId:G.connectionId,deliveryIds:G.deliveryIds,events:G.events});return X}class NN1{storage;notifySubscriber;running=!1;processing=!1;pendingNotify=!1;config;constructor(Y,Q){this.storage=Y;this.notifySubscriber=Ri0(),this.config={...Pr,...Q}}async start(){if(this.running)return;let Y=await this.storage.resetStuckDeliveries();if(Y>0)console.log(`[EventBus] Reset ${Y} stuck deliveries from previous shutdown`);this.running=!0}stop(){this.running=!1,console.log("[EventBus] Worker stopped")}isRunning(){return this.running}async processNow(){if(!this.running)return;if(this.processing){this.pendingNotify=!0;return}this.processing=!0;try{do this.pendingNotify=!1,await this.processEvents();while(this.pendingNotify)}catch(Y){console.error("[EventBus] Error processing events:",Y)}finally{this.processing=!1}}async processEvents(){let Y=await this.storage.claimPendingDeliveries(this.config.batchSize);if(Y.length===0)return;let Q=Ju6(Y),X=new Set;await Promise.allSettled(Array.from(Q.entries()).map(async([J,G])=>{try{let K=await this.notifySubscriber(G.connectionId,G.events);if(K.results&&Object.keys(K.results).length>0)await this.processPerEventResults(G,K);else if(K.success)await this.storage.markDeliveriesDelivered(G.deliveryIds);else if(K.retryAfter&&K.retryAfter>0)await this.storage.scheduleRetryWithoutAttemptIncrement(G.deliveryIds,K.retryAfter);else await this.storage.markDeliveriesFailed(G.deliveryIds,K.error||"Subscriber returned success=false",this.config.maxAttempts,this.config.retryDelayMs,this.config.maxDelayMs)}catch(K){let W=K instanceof Error?K.message:String(K);console.error(`[EventBus] Failed to notify subscription ${J}:`,W),await this.storage.markDeliveriesFailed(G.deliveryIds,W,this.config.maxAttempts,this.config.retryDelayMs,this.config.maxDelayMs)}for(let K of Y)if(G.deliveryIds.includes(K.delivery.id))X.add(K.event.id)}));for(let J of X)try{await this.storage.updateEventStatus(J);let G=Y.find((K)=>K.event.id===J)?.event;if(G?.cron)await this.scheduleNextCronDelivery(G)}catch(G){console.error(`[EventBus] Failed to update event status ${J}:`,G)}}async processPerEventResults(Y,Q){let X=[],J=new Map,G=[],K=new Map;for(let W=0;W<Y.events.length;W++){let Z=Y.events?.[W];if(!Z)continue;let H=Y.deliveryIds?.[W];if(!H)continue;K.set(Z.id,H)}for(let W of Y.events){let Z=K.get(W.id);if(!Z)continue;let H=Q.results?.[W.id];if(H)if(H.success)X.push(Z);else if(H.retryAfter&&H.retryAfter>0){let $=J.get(H.retryAfter)||[];$.push(Z),J.set(H.retryAfter,$)}else G.push({deliveryId:Z,error:H.error||"Event processing failed"});else if(Q.success)X.push(Z);else if(Q.retryAfter&&Q.retryAfter>0){let $=J.get(Q.retryAfter)||[];$.push(Z),J.set(Q.retryAfter,$)}else G.push({deliveryId:Z,error:Q.error||"Batch processing failed"})}if(X.length>0)await this.storage.markDeliveriesDelivered(X);for(let[W,Z]of J)await this.storage.scheduleRetryWithoutAttemptIncrement(Z,W);if(G.length>0){let W=new Map;for(let{deliveryId:Z,error:H}of G){let $=W.get(H)||[];$.push(Z),W.set(H,$)}for(let[Z,H]of W)await this.storage.markDeliveriesFailed(H,Z,this.config.maxAttempts,this.config.retryDelayMs,this.config.maxDelayMs)}}async scheduleNextCronDelivery(Y){if(!Y.cron)return;try{let X=new Ar(Y.cron).nextRun();if(!X){console.log(`[EventBus] Cron expression for event ${Y.id} has no more runs`);return}let J=X.toISOString(),G=await this.storage.getMatchingSubscriptions(Y);if(G.length===0){console.log(`[EventBus] No subscriptions for cron event ${Y.id}, skipping next delivery`);return}await this.storage.createDeliveries(Y.id,G.map((K)=>K.id),J),console.log(`[EventBus] Scheduled next cron delivery for event ${Y.id} at ${J}`)}catch(Q){console.error(`[EventBus] Failed to schedule next cron delivery for event ${Y.id}:`,Q)}}}class LN1{storage;worker;notifyStrategy;running=!1;constructor(Y){this.storage=Y.storage,this.notifyStrategy=Y.notifyStrategy,this.worker=new NN1(this.storage,Y.config)}async publish(Y,Q,X){if(X.deliverAt&&X.cron)throw Error("Cannot set both deliverAt and cron. Use one or the other.");let J;if(X.cron){try{let F=new Ar(X.cron).nextRun();if(!F)throw Error("Cron expression does not produce a next run time");J=F.toISOString()}catch($){throw Error(`Invalid cron expression: ${$ instanceof Error?$.message:String($)}`)}let H=await this.storage.findActiveCronEvent(Y,X.type,Q,X.cron);if(H)return H}let G=crypto.randomUUID(),K=new Date().toISOString(),W=await this.storage.publishEvent({id:G,organizationId:Y,type:X.type,source:Q,subject:X.subject,time:K,data:X.data,cron:X.cron});hJ.emit(Y,Ci0(W));let Z=await this.storage.getMatchingSubscriptions(W);if(Z.length>0){let H=X.deliverAt??J;if(await this.storage.createDeliveries(G,Z.map(($)=>$.id),H),this.notifyStrategy&&!H)await this.notifyStrategy.notify(G).catch(($)=>{console.warn("[EventBus] Notify failed (non-critical):",$)})}return W}async subscribe(Y,Q){return this.storage.subscribe({id:crypto.randomUUID(),organizationId:Y,connectionId:Q.connectionId,publisher:Q.publisher,eventType:Q.eventType,filter:Q.filter})}async unsubscribe(Y,Q){return this.storage.unsubscribe(Q,Y)}async listSubscriptions(Y,Q){return this.storage.listSubscriptions(Y,Q)}async getSubscription(Y,Q){return this.storage.getSubscription(Q,Y)}async getEvent(Y,Q){return this.storage.getEvent(Q,Y)}async cancelEvent(Y,Q,X){return this.storage.cancelEvent(Q,Y,X)}async ackEvent(Y,Q,X){return this.storage.ackDelivery(Q,Y,X)}async syncSubscriptions(Y,Q){return this.storage.syncSubscriptions({organizationId:Y,...Q})}async start(){if(this.running)return;if(this.running=!0,await this.worker.start(),this.notifyStrategy)await this.notifyStrategy.start(()=>{this.worker.processNow().catch((Y)=>{console.error("[EventBus] Error processing after notify:",Y)})});await this.worker.processNow().catch((Y)=>{console.error("[EventBus] Error processing pending events on startup:",Y)})}async stop(){if(!this.running)return;if(this.running=!1,this.worker.stop(),this.notifyStrategy)try{await this.notifyStrategy.stop()}catch(Y){console.error("[EventBus] Error stopping notify strategy:",Y)}console.log("[EventBus] Stopped")}isRunning(){return this.running}}class MN1{options;sub=null;onNotify=null;encoder=new TextEncoder;constructor(Y){this.options=Y}async start(Y){let Q=this.options.getConnection();if(!Q||this.sub)return;this.onNotify=Y,this.sub=Q.subscribe("mesh.events.notify"),(async()=>{for await(let X of this.sub)this.onNotify?.()})().catch((X)=>{console.error("[NatsNotify] Subscription error:",X)}),console.log("[NatsNotify] Started, subscribed to","mesh.events.notify")}async stop(){this.sub?.unsubscribe(),this.sub=null,this.onNotify=null,console.log("[NatsNotify] Stopped")}async notify(Y){let Q=this.options.getConnection();if(!Q)return;try{Q.publish("mesh.events.notify",this.encoder.encode(Y))}catch(X){console.warn("[NatsNotify] Publish failed (non-critical):",X)}}}class wN1{options;sub=null;localEmit=null;originId=crypto.randomUUID();encoder=new TextEncoder;constructor(Y){this.options=Y}async start(Y){this.localEmit=Y;let Q=this.options.getConnection();if(!Q||this.sub)return;this.sub=Q.subscribe("mesh.sse.broadcast");let X=new TextDecoder;(async()=>{for await(let J of this.sub)try{let G=JSON.parse(X.decode(J.data));if(typeof G?.originId!=="string"||typeof G?.organizationId!=="string"||typeof G?.event?.id!=="string"||typeof G?.event?.type!=="string")continue;if(G.originId===this.originId)continue;this.localEmit?.(G.organizationId,G.event)}catch{}})().catch((J)=>{console.error("[NatsSSEBroadcast] Subscription error:",J)}),console.log("[NatsSSEBroadcast] Started, subscribed to","mesh.sse.broadcast")}broadcast(Y,Q){this.localEmit?.(Y,Q);let X=this.options.getConnection();if(!X)return;let J={originId:this.originId,organizationId:Y,event:Q};try{X.publish("mesh.sse.broadcast",this.encoder.encode(JSON.stringify(J)))}catch(G){console.warn("[NatsSSEBroadcast] Publish failed (non-critical):",G)}}async stop(){this.sub?.unsubscribe(),this.sub=null,this.localEmit=null,console.log("[NatsSSEBroadcast] Stopped")}}function AN1(...Y){return{async start(Q){await Promise.all(Y.map((X)=>X.start(Q)))},async stop(){await Promise.all(Y.map((Q)=>Q.stop().catch((X)=>{console.error("[NotifyStrategy] Error stopping strategy:",X)})))},async notify(Q){await Promise.all(Y.map((X)=>X.notify(Q).catch((J)=>{console.warn("[NotifyStrategy] Notify failed (non-critical):",J)})))}}}class PN1{intervalMs;timer=null;onNotify=null;constructor(Y){this.intervalMs=Y}async start(Y){if(this.timer)return;this.onNotify=Y,this.scheduleNext(),console.log(`[Polling] Started polling every ${this.intervalMs}ms`)}async stop(){if(this.timer)clearTimeout(this.timer),this.timer=null,console.log("[Polling] Stopped polling");this.onNotify=null}async notify(Y){if(this.onNotify)this.onNotify()}scheduleNext(){this.timer=setTimeout(()=>{if(this.onNotify)this.onNotify();if(this.timer)this.scheduleNext()},this.intervalMs)}}import{sql as Gu6}from"kysely";var NP="mesh_events";class EN1{db;pool;listenClient=null;onNotify=null;constructor(Y,Q){this.db=Y;this.pool=Q}async start(Y){if(this.listenClient)return;this.onNotify=Y;try{this.listenClient=await this.pool.connect(),this.listenClient.on("notification",(Q)=>{if(Q.channel===NP&&this.onNotify)this.onNotify()}),this.listenClient.on("error",(Q)=>{console.error("[PostgresNotify] Connection error:",Q),this.cleanup()}),await this.listenClient.query(`LISTEN ${NP}`),console.log("[PostgresNotify] Started LISTEN on",NP)}catch(Q){console.error("[PostgresNotify] Failed to start LISTEN:",Q),this.cleanup()}}async stop(){if(this.listenClient){try{await this.listenClient.query(`UNLISTEN ${NP}`),console.log("[PostgresNotify] Stopped LISTEN on",NP)}catch{}this.cleanup()}}async notify(Y){try{await Gu6`SELECT pg_notify(${NP}, ${Y})`.execute(this.db)}catch(Q){console.warn("[PostgresNotify] Failed to send NOTIFY:",Q)}}cleanup(){if(this.listenClient)this.listenClient.release(),this.listenClient=null;this.onNotify=null}}function Wu6(Y){let Q=process.env.NOTIFY_STRATEGY;if(Q==="nats"||Q==="postgres"||Q==="polling")return Q;if(process.env.NATS_URL)return"nats";if(Y.type==="postgres")return"postgres";return"polling"}function ji0(Y,Q,X){let J=Ni0(Y.db),G=Q?.pollIntervalMs??Pr.pollIntervalMs,K=Wu6(Y),W=new PN1(G),Z=process.env.NATS_URL,H;switch(K){case"nats":{if(!Z)throw Error("[EventBus] NOTIFY_STRATEGY=nats requires NATS_URL to be set");let F=(()=>{try{return new URL(Z).host}catch{return"unknown"}})();if(!X){console.warn(`[EventBus] NATS unavailable (${F}), falling back to polling`),H=W;break}console.log(`[EventBus] Using NATS notify strategy (${F})`),H=AN1(W,new MN1({getConnection:()=>X.getConnection()}));break}case"postgres":{if(Y.type!=="postgres"){console.warn("[EventBus] NOTIFY_STRATEGY=postgres requires a PostgreSQL database, falling back to polling"),H=W;break}console.log("[EventBus] Using PostgreSQL LISTEN/NOTIFY strategy"),H=AN1(W,new EN1(Y.db,Y.pool));break}case"polling":default:console.log("[EventBus] Using polling notify strategy"),H=W}let $=Z&&X?new wN1({getConnection:()=>X.getConnection()}):new Av;if(hJ.start($).catch((F)=>{console.error("[SSEHub] Failed to start broadcast strategy:",F)}),Z&&X)console.log("[SSEHub] Using NATS SSE broadcast (cross-pod)");else console.log("[SSEHub] Using local SSE broadcast (single-pod)");return new LN1({storage:J,config:Q,notifyStrategy:H})}BN();d5();mV();var Zu6={br:".br",zstd:".zst",gzip:".gz"},uN9=Object.keys(Zu6);lV();j71();var TN1="x-hono-disable-ssg",WL9=(()=>{try{return new Response("SSG is disabled",{status:404,headers:{[TN1]:"true"}})}catch{return null}})();rm();var{write:uL9}=Bun;var $u6=class{#Y;constructor(Y){this.#Y=Y,this.raw=Y.raw,this.url=Y.url?new URL(Y.url):null,this.protocol=Y.protocol??null}send(Y,Q){this.#Y.send(Y,Q??{})}raw;binaryType="arraybuffer";get readyState(){return this.#Y.readyState}url;protocol;close(Y,Q){this.#Y.close(Y,Q)}};var Si0=(Y)=>{return(...Q)=>{if(typeof Q[0]==="function"){let[X,J]=Q;return async function(K,W){let Z=await X(K),H=await Y(K,Z,J);if(H)return H;await W()}}else{let[X,J,G]=Q;return(async()=>{let K=await Y(X,J,G);if(!K)throw Error("Failed to upgrade WebSocket");return K})()}}};var Pv=(Y)=>("server"in Y.env)?Y.env.server:Y.env;var Fu6=Si0((Y,Q)=>{let X=Pv(Y);if(!X)throw TypeError("env has to include the 2nd argument of fetch.");if(X.upgrade(Y.req.raw,{data:{events:Q,url:new URL(Y.req.url),protocol:Y.req.url}}))return new Response(null);return});var CN1=(Y)=>{let Q=Pv(Y);if(!Q)throw TypeError("env has to include the 2nd argument of fetch.");if(typeof Q.requestIP!=="function")throw TypeError("server.requestIP is not a function.");let X=Q.requestIP(Y.req.raw);if(!X)return{remote:{}};return{remote:{address:X.address,addressType:X.family==="IPv6"||X.family==="IPv4"?X.family:void 0,port:X.port}}};kz();var ki0={google:{name:"Google",icon:"https://assets.decocache.com/webdraw/eb7480aa-a68b-4ce4-98ff-36aa121762a7/google.svg"},github:{name:"GitHub",icon:"https://assets.decocache.com/webdraw/5f999dcb-c8a6-4572-948c-9996ef1d502f/github.svg"},microsoft:{name:"Microsoft",icon:"https://assets.decocache.com/mcp/aa6f6e1a-6526-4bca-99cc-82e2ec38b0e4/microsoft.png"}};pq();var RN1=new QY;RN1.get("/config",async(Y)=>{try{let Q=Object.keys(_9.socialProviders??{}),X=Q.length>0,J=Q.map((W)=>({name:W,icon:ki0[W].icon})),G=process.env.UNSAFE_ALLOW_STDIO_TRANSPORT==="true",K={emailAndPassword:{enabled:_9.emailAndPassword?.enabled??!1},magicLink:{enabled:_9.magicLinkConfig?.enabled??!1},resetPassword:{enabled:qr},socialProviders:{enabled:X,providers:J},sso:_9.ssoConfig?{enabled:!0,providerId:_9.ssoConfig.providerId}:{enabled:!1},stdioEnabled:G,localMode:gZ()};return Y.json({success:!0,config:K})}catch(Q){let X=Q instanceof Error?Q.message:"Failed to load auth config";return Y.json({success:!1,error:X},500)}});RN1.post("/local-session",async(Y)=>{if(!gZ())return Y.json({success:!1,error:"Local mode is not active"},403);let Q;try{Q=CN1(Y).remote.address}catch{}if(!(Q==="127.0.0.1"||Q==="::1"||Q==="::ffff:127.0.0.1"))return Y.json({success:!1,error:"Forbidden"},403);try{let{waitForSeed:J}=await Promise.resolve().then(() => (pq(),Nn));await J();let{auth:G}=await Promise.resolve().then(() => (kz(),rn0)),K=await KV1();if(!K)return Y.json({success:!1,error:"Local admin user not found"},500);let W=await On();return await G.api.signInEmail({body:{email:K.email,password:W},asResponse:!0})}catch(J){let G=J instanceof Error?J.message:"Failed to create local session";return Y.json({success:!1,error:G},500)}});var vi0=RN1;zP();Uv();$Y();tZ();d5();XL();_Q();tZ();XL();tZ();u1();oa();function _i0(Y){let{toolOutputMap:Q}=Y;return vJ({description:"The input is a string. Dont make assumptions about its format; prefer using regexes and string manipulation to extract the desired information. You may call this tool multiple times to extract the desired information.",inputExamples:[{input:{tool_call_id:"tool_call_id_1",code:"export default (input) => { return input.match(/[a-z]/g); }"}},{input:{tool_call_id:"tool_call_id_2",code:"export default (input) => { return input.split(' ').map(word => word.length); }"}}],inputSchema:p8(q.object({tool_call_id:q.string(),code:q.string().min(1).describe("JavaScript code to transform the tool output. The code must be an ES module: `export default (input) => { ... }`")})),execute:async({tool_call_id:X,code:J})=>{if(!Q.has(X))throw Error(`Tool output not found for tool call id: ${X}`);let G=Q.get(X),K=await Fz1({input:G,code:J,timeoutMs:5000}),W=IN1({return:K.returnValue});if(W>4000)throw Error(`Tool call ${X} output is too long to display (${W} tokens), reduce or truncate the output`);return{result:K.returnValue,error:K.error,consoleLogs:K.consoleLogs}}})}var Vu6=4,qu6=/[\u3000-\u303f\u3040-\u309f\u30a0-\u30ff\u4e00-\u9fff\u3400-\u4dbf\uf900-\ufaff]/g;function Bu6(Y){if(!Y)return 0;let Q=Y.match(qu6)?.length??0,X=Y.length-Q;return Math.ceil(X/Vu6)+Math.ceil(Q*1.5)}function IN1(Y){let Q=typeof Y==="string"?Y:JSON.stringify(Y);return Bu6(Q)}function Er(Y,Q){if(Y==="yolo")return!1;if(Y==="none")return!0;return Q!==!0}function Tr(Y){let Q=Y.get("meshContext").organization;if(!Q)throw Error("Organization context is required");if((Q.slug??Q.id)!==Y.req.param("org"))throw Error("Organization mismatch");return Q}async function Ev(Y,Q,X,J="none",G){let K=!G?.disableOutputTruncation,Z=(await Y.listTools()).tools.map((H)=>{let{name:$,title:F,description:V,inputSchema:B,annotations:U,_meta:D}=H;return[$,vJ({title:F??$,description:V,inputSchema:IW(B),outputSchema:void 0,needsApproval:Er(J,U?.readOnlyHint),execute:async(z,L)=>{let w=performance.now();try{return await Y.callTool({name:H.name,arguments:z},iK,{signal:L.abortSignal,timeout:Gi0})}finally{if(X){let E=performance.now()-w;X.write({type:"data-tool-metadata",id:L.toolCallId,data:{_meta:D,annotations:U,latencyMs:E}})}}},toModelOutput:async({output:z,toolCallId:L})=>{if(K){let E=IN1(z.structuredContent??z.content);if(E>4000)return Q.set(L,JSON.stringify(z.structuredContent??z.content)),{type:"text",value:`Tool call ${L} output is too long to display (${E} tokens), use the read_tool_output tool`}}if(z.isError)return{type:"error-text",value:z.content.map((T)=>T.type==="text"?T.text:null).filter(Boolean).join(`
|
|
1386
|
+
Example output: Available Tools Overview`;function Mr(Y){return typeof Y==="string"?Y:Y.toISOString()}class Lv{db;constructor(Y){this.db=Y}async create(Y){let Q=Y.id??d8("thrd"),X=new Date().toISOString();if(!Y.organization_id)throw Error("organization_id is required");if(!Y.created_by)throw Error("created_by is required");if(!Y.title)Y.title=Lr;let J={id:Q,organization_id:Y.organization_id,title:Y.title,description:Y.description??null,status:Y.status??"completed",created_at:X,updated_at:X,created_by:Y.created_by,updated_by:Y.updated_by??null},G=await this.db.insertInto("threads").values(J).returningAll().executeTakeFirstOrThrow();return this.threadFromDbRow(G)}async get(Y){let Q=await this.db.selectFrom("threads").selectAll().where("id","=",Y).executeTakeFirst();return Q?this.threadFromDbRow(Q):null}async update(Y,Q){let J={updated_at:new Date().toISOString()};if(Q.title!==void 0)J.title=Q.title;if(Q.description!==void 0)J.description=Q.description;if(Q.updated_by!==void 0)J.updated_by=Q.updated_by;if(Q.hidden!==void 0)J.hidden=Q.hidden;if(Q.status!==void 0)J.status=Q.status;await this.db.updateTable("threads").set(J).where("id","=",Y).execute();let G=await this.get(Y);if(!G)throw Error("Thread not found after update");return G}async delete(Y){await this.db.deleteFrom("threads").where("id","=",Y).execute()}async list(Y,Q,X){let J=this.db.selectFrom("threads").selectAll().where("organization_id","=",Y).where("hidden","=",!1).orderBy("updated_at","desc");if(Q)J=J.where("created_by","=",Q);let G=this.db.selectFrom("threads").select((Z)=>Z.fn.count("id").as("count")).where("organization_id","=",Y).where("hidden","=",!1);if(Q)G=G.where("created_by","=",Q);if(X?.limit)J=J.limit(X.limit);if(X?.offset)J=J.offset(X.offset);let[K,W]=await Promise.all([J.execute(),G.executeTakeFirst()]);return{threads:K.map((Z)=>this.threadFromDbRow(Z)),total:Number(W?.count||0)}}async saveMessages(Y){let Q=new Date().toISOString(),X=Y[0]?.thread_id;if(!X)throw Error("thread_id is required when creating multiple messages");let J=new Map;for(let Z of Y){let H=J.get(Z.id);if(H&&H.thread_id!==Z.thread_id)throw Error(`Duplicate message id "${Z.id}" with conflicting thread_ids: "${H.thread_id}" vs "${Z.thread_id}"`);J.set(Z.id,Z)}let G=[...J.values()],K=G.find((Z)=>Z.thread_id!==X);if(K)throw Error(`All messages must target the same thread. Expected thread_id "${X}", but message "${K.id}" has thread_id "${K.thread_id}"`);let W=G.map((Z)=>({id:Z.id,thread_id:X,metadata:Z.metadata?JSON.stringify(Z.metadata):null,parts:JSON.stringify(Z.parts),role:Z.role,created_at:Z.created_at??Q,updated_at:Q}));await this.db.transaction().execute(async(Z)=>{await Z.insertInto("thread_messages").values(W).onConflict((H)=>H.column("id").doUpdateSet(($)=>({metadata:$.ref("excluded.metadata"),parts:$.ref("excluded.parts"),role:$.ref("excluded.role"),updated_at:$.ref("excluded.updated_at")}))).execute(),await Z.updateTable("threads").set({updated_at:Q}).where("id","=",X).execute()})}async listMessages(Y,Q){let X=Q?.sort??"asc",J=this.db.selectFrom("thread_messages").selectAll().where("thread_id","=",Y).orderBy("created_at",X).orderBy("id",X),G=this.db.selectFrom("thread_messages").select((Z)=>Z.fn.count("id").as("count")).where("thread_id","=",Y);if(Q?.limit)J=J.limit(Q.limit);if(Q?.offset)J=J.offset(Q.offset);let[K,W]=await Promise.all([J.execute(),G.executeTakeFirst()]);return{messages:K.map((Z)=>this.messageFromDbRow(Z)),total:Number(W?.count||0)}}threadFromDbRow(Y){return{id:Y.id,organization_id:Y.organization_id,title:Y.title,description:Y.description,status:Y.status,created_at:Mr(Y.created_at),updated_at:Mr(Y.updated_at),created_by:Y.created_by,updated_by:Y.updated_by,hidden:!!Y.hidden}}messageFromDbRow(Y){let Q,X;try{Q=Y.metadata?JSON.parse(Y.metadata):void 0}catch(J){console.error(`Failed to parse metadata for message ${Y.id}:`,Y.metadata,J),Q=void 0}try{X=typeof Y.parts==="string"?JSON.parse(Y.parts):Y.parts}catch(J){console.error(`Failed to parse parts for message ${Y.id}:`,Y.parts,J),X=[]}return{id:Y.id,thread_id:Y.thread_id,metadata:Q,parts:X,role:Y.role,created_at:Mr(Y.created_at),updated_at:Mr(Y.updated_at)}}}Pz1();function dg6(Y){if(!Y)return;try{let Q=JSON.parse(Y);if(typeof Q!=="object"||Q===null||Array.isArray(Q))return;let X={};for(let[J,G]of Object.entries(Q))if(typeof G==="string")X[J]=G;return Object.keys(X).length>0?X:void 0}catch{return}}function pg6(Y,Q){for(let[X,J]of Object.entries(Q)){let G=Y[X];if(!G||G.length===0){let K=Y["*"];if(!K||K.length===0)return!1;if(K.includes("*"))continue;for(let W of J)if(!K.includes(W))return!1;continue}if(G.includes("*"))continue;for(let K of J)if(!G.includes(K))return!1}return!0}function cg6(Y){let{auth:Q,headers:X,role:J,permissions:G,userId:K}=Y,W=Q.api.hasPermission;return{hasPermission:async(Z)=>{if(J&&YN1.includes(J))return!0;if(G)return pg6(G,Z);if(!W)return console.error("[Auth] hasPermission API not available"),!1;try{if((await W({headers:X,body:{permission:Z}}))?.success===!0)return!0;let $={};for(let V of Object.keys(Z))$[V]=["*"];return(await W({headers:X,body:{permission:$}}))?.success===!0}catch(H){return console.error("[Auth] Permission check failed:",H),!1}},organization:{create:async(Z)=>{return Q.api.createOrganization({headers:X,body:Z})},update:async(Z)=>{return Q.api.updateOrganization({headers:X,body:Z})},delete:async(Z)=>{await Q.api.deleteOrganization({headers:X,body:{organizationId:Z}})},get:async(Z)=>{return Q.api.getFullOrganization({headers:X,query:Z?{organizationId:Z}:void 0})},list:async(Z)=>{return Q.api.listOrganizations({headers:X,query:Z?{userId:Z}:void 0})},addMember:async(Z)=>{return Q.api.addMember({headers:X,body:Z})},removeMember:async(Z)=>{await Q.api.removeMember({headers:X,body:Z})},listMembers:async(Z)=>{return Q.api.listMembers({headers:X,query:Z?{organizationId:Z.organizationId,limit:Z.limit,offset:Z.offset}:void 0})},updateMemberRole:async(Z)=>{return Q.api.updateMemberRole({headers:X,body:Z})}},apiKey:{create:async(Z)=>{return Q.api.createApiKey({body:{...Z,userId:K}})},list:async()=>{return Q.api.listApiKeys({headers:X})},update:async(Z)=>{return Q.api.updateApiKey({body:{...Z,userId:K}})},delete:async(Z)=>{await Q.api.deleteApiKey({headers:X,body:{keyId:Z}})}}}}async function ng6(Y,Q,X){if(YN1.includes(X))return;let J=await Y.selectFrom("organizationRole").select(["permission"]).where("organizationId","=",Q).where("role","=",X).executeTakeFirst();if(!J?.permission)return;try{return JSON.parse(J.permission)}catch{console.error(`[Auth] Failed to parse permissions for role: ${X}`);return}}async function ig6(Y,Q,X,J=Di0){let G=Y.headers.get("Authorization");try{let K=new Headers(Y.headers);K.set("X-MCP-Session-Auth","true");let W=await J.measure("auth_get_mcp_session",()=>Q.api.getMcpSession({headers:K}));if(W){let Z=W.userId,H=await J.measure("auth_query_membership",()=>X.selectFrom("member").innerJoin("organization","organization.id","member.organizationId").select(["member.role","member.organizationId","organization.id as orgId","organization.slug as orgSlug","organization.name as orgName"]).where("member.userId","=",Z).executeTakeFirst()),$=H?.role,F=H?{id:H.orgId,slug:H.orgSlug,name:H.orgName}:void 0,V;if(H&&$)V=await J.measure("auth_fetch_role_permissions",()=>ng6(X,H.organizationId,$));return{user:{id:Z,role:$},role:$,permissions:V,organization:F}}}catch(K){console.error("[Auth] OAuth session check failed:",K)}if(G?.startsWith("Bearer ")){let K=G.replace("Bearer ","").trim();try{let W=await J.measure("auth_verify_mesh_jwt",()=>Sp0(K));if(W){let Z,H=W.metadata?.organizationId;if(W.sub&&H)Z=(await J.measure("auth_query_membership",()=>X.selectFrom("member").select(["member.role"]).where("member.userId","=",W.sub).where("member.organizationId","=",H).executeTakeFirst()))?.role;let $,F=W.metadata?.organizationId;if(F){let V=W.metadata?.organizationName,B=W.metadata?.organizationSlug;if(V||B)$={id:F,name:V,slug:B};else{let U=await J.measure("auth_query_org_for_mesh_jwt",()=>X.selectFrom("organization").select(["id","slug","name"]).where("id","=",F).executeTakeFirst());$=U?{id:U.id,slug:U.slug,name:U.name}:{id:F}}}return{user:{id:W.sub,connectionId:W.metadata?.connectionId,role:Z},role:Z,permissions:W.permissions,organization:$}}}catch{}try{let W=await J.measure("auth_verify_api_key",()=>Q.api.verifyApiKey({body:{key:K}}));if(W?.valid&&W.key){let Z=W.key.metadata?.organization,H=W.key.permissions,$,F=W.key.userId;if(F&&Z?.id)$=(await J.measure("auth_query_membership",()=>X.selectFrom("member").select(["member.role"]).where("member.userId","=",F).where("member.organizationId","=",Z.id).executeTakeFirst()))?.role;return{apiKeyId:W.key.id,user:{id:W.key.userId,role:$},role:$,permissions:H,organization:Z?{id:Z.id,slug:Z.slug,name:Z.name}:void 0}}}catch(W){console.error("[Auth] API key check failed:",W)}}try{let K=new Headers(Y.headers);K.delete("Authorization");let W=await J.measure("auth_get_session",()=>Q.api.getSession({headers:K}));if(W){let Z,H;if(W.session.activeOrganizationId){let $=await J.measure("auth_get_full_organization",()=>Q.api.getFullOrganization({headers:K}).catch(()=>null));if($)Z={id:$.id,slug:$.slug,name:$.name},H=$.members?.find((V)=>V.userId===W.user.id)?.role;else Z={id:W.session.activeOrganizationId,slug:"",name:""}}return{user:{id:W.user.id,email:W.user.email,role:H},role:H,organization:Z}}}catch(K){let W=K;console.error("[Auth] Session check failed:",JSON.stringify({message:W.message,body:W.body,stack:W.stack},null,2))}return{user:void 0}}var Ui0,OF={set:(Y)=>{Ui0=Y},create:async(Y,Q)=>{return await Ui0(Y,Q)}},Di0={measure:async(Y,Q)=>{return await Q()}},ag6=["x-hub-signature-256"];async function zi0(Y){let Q=new _z(Y.encryption.key),X={connections:new zS(Y.db,Q),organizationSettings:new ZN1(Y.db),monitoring:new GN1(Y.db,Y.databaseType),monitoringDashboards:new WN1(Y.db),virtualMcps:new XN1(Y.db),users:new FN1(Y.db),threads:new Lv(Y.db),tags:new $N1(Y.db),projects:new OS(Y.db),projectConnections:new KN1(Y.db),projectPluginConfigs:new HN1(Y.db)};return async(J,G)=>{let K=G?.timings??Di0,W=Wr(),Z=J?.headers.get("x-caller-id")??void 0,H=J?await ig6(J,Y.auth,Y.db,K):{user:void 0},$=cg6({auth:Y.auth,headers:J?.headers??new Headers,role:H.role,permissions:H.permissions,userId:H.user?.id}),F={user:H.user};if(H.apiKeyId)F.apiKey={id:H.apiKeyId,name:"",userId:""};let V=H.organization,B=J?process.env.BASE_URL??`${new URL(J.url).origin}`:uZ(),U=new BF(Y.auth,F.user?.id,void 0,$,H.role,"self"),D={timings:K,auth:F,connectionId:Z,organization:V,storage:X,vault:Q,authInstance:Y.auth,boundAuth:$,access:U,db:Y.db,tracer:Y.observability.tracer,meter:Y.observability.meter,baseUrl:B,metadata:{requestId:crypto.randomUUID(),timestamp:new Date,wellKnownForwardableHeaders:Object.fromEntries(ag6.map((z)=>[z,J?.headers.get(z)??null]).filter(([z,L])=>L!==null)),userAgent:J?.headers.get("x-mesh-client")||J?.headers.get("User-Agent")||void 0,ipAddress:(J?.headers.get("CF-Connecting-IP")||J?.headers.get("X-Forwarded-For"))??void 0,properties:dg6(J?.headers.get("x-mesh-properties"))},eventBus:Y.eventBus,createMCPProxy:async(z)=>{return await Zi0(z,D)},getOrCreateClient:W};return D}}$S();class Oi0{db;constructor(Y){this.db=Y}async publishEvent(Y){let Q=new Date().toISOString();return await this.db.insertInto("events").values({id:Y.id,organization_id:Y.organizationId,type:Y.type,source:Y.source,specversion:"1.0",subject:Y.subject??null,time:Y.time,datacontenttype:Y.datacontenttype??"application/json",dataschema:Y.dataschema??null,data:Y.data?JSON.stringify(Y.data):null,cron:Y.cron??null,status:"pending",attempts:0,last_error:null,next_retry_at:null,created_at:Q,updated_at:Q}).execute(),{id:Y.id,organizationId:Y.organizationId,type:Y.type,source:Y.source,specversion:"1.0",subject:Y.subject??null,time:Y.time,datacontenttype:Y.datacontenttype??"application/json",dataschema:Y.dataschema??null,data:Y.data??null,cron:Y.cron??null,status:"pending",attempts:0,lastError:null,nextRetryAt:null,createdAt:Q,updatedAt:Q}}async subscribe(Y){let Q=this.db.selectFrom("event_subscriptions").selectAll().where("organization_id","=",Y.organizationId).where("connection_id","=",Y.connectionId).where("event_type","=",Y.eventType);if(Y.publisher)Q=Q.where("publisher","=",Y.publisher);else Q=Q.where("publisher","is",null);if(Y.filter)Q=Q.where("filter","=",Y.filter);else Q=Q.where("filter","is",null);let X=await Q.executeTakeFirst();if(X)return{id:X.id,organizationId:X.organization_id,connectionId:X.connection_id,publisher:X.publisher,eventType:X.event_type,filter:X.filter,enabled:X.enabled===1,createdAt:X.created_at,updatedAt:X.updated_at};let J=new Date().toISOString();return await this.db.insertInto("event_subscriptions").values({id:Y.id,organization_id:Y.organizationId,connection_id:Y.connectionId,publisher:Y.publisher??null,event_type:Y.eventType,filter:Y.filter??null,enabled:1,created_at:J,updated_at:J}).execute(),{id:Y.id,organizationId:Y.organizationId,connectionId:Y.connectionId,publisher:Y.publisher??null,eventType:Y.eventType,filter:Y.filter??null,enabled:!0,createdAt:J,updatedAt:J}}async unsubscribe(Y,Q){return{success:((await this.db.deleteFrom("event_subscriptions").where("id","=",Y).where("organization_id","=",Q).executeTakeFirst()).numDeletedRows??0n)>0n}}async listSubscriptions(Y,Q){let X=this.db.selectFrom("event_subscriptions").selectAll().where("organization_id","=",Y);if(Q)X=X.where("connection_id","=",Q);return(await X.execute()).map((G)=>({id:G.id,organizationId:G.organization_id,connectionId:G.connection_id,publisher:G.publisher,eventType:G.event_type,filter:G.filter,enabled:G.enabled===1,createdAt:G.created_at,updatedAt:G.updated_at}))}async getSubscription(Y,Q){let X=await this.db.selectFrom("event_subscriptions").selectAll().where("id","=",Y).where("organization_id","=",Q).executeTakeFirst();if(!X)return null;return{id:X.id,organizationId:X.organization_id,connectionId:X.connection_id,publisher:X.publisher,eventType:X.event_type,filter:X.filter,enabled:X.enabled===1,createdAt:X.created_at,updatedAt:X.updated_at}}async getMatchingSubscriptions(Y){return(await this.db.selectFrom("event_subscriptions").selectAll().where("organization_id","=",Y.organizationId).where("enabled","=",1).where("event_type","=",Y.type).where((X)=>X.or([X("publisher","is",null),X("publisher","=",Y.source)])).execute()).map((X)=>({id:X.id,organizationId:X.organization_id,connectionId:X.connection_id,publisher:X.publisher,eventType:X.event_type,filter:X.filter,enabled:X.enabled===1,createdAt:X.created_at,updatedAt:X.updated_at}))}async createDeliveries(Y,Q,X){if(Q.length===0)return;let J=new Date().toISOString(),G=X??null,K=Q.map((W)=>({id:crypto.randomUUID(),event_id:Y,subscription_id:W,status:"pending",attempts:0,last_error:null,delivered_at:null,next_retry_at:G,created_at:J}));await this.db.insertInto("event_deliveries").values(K).execute()}async claimPendingDeliveries(Y){let Q=new Date().toISOString(),X;try{X=(await this.db.updateTable("event_deliveries").set({status:"processing"}).where("id","in",(K)=>K.selectFrom("event_deliveries as d").innerJoin("event_subscriptions as s","s.id","d.subscription_id").select("d.id").where("d.status","=","pending").where("s.enabled","=",1).where((W)=>W.or([W("d.next_retry_at","is",null),W("d.next_retry_at","<=",Q)])).orderBy("d.created_at","asc").limit(Y)).where("status","=","pending").returning(["id"]).execute()).map((K)=>K.id)}catch{let G=await this.db.selectFrom("event_deliveries as d").innerJoin("event_subscriptions as s","s.id","d.subscription_id").select(["d.id"]).where("d.status","=","pending").where("s.enabled","=",1).where((K)=>K.or([K("d.next_retry_at","is",null),K("d.next_retry_at","<=",Q)])).orderBy("d.created_at","asc").limit(Y).execute();if(G.length===0)return[];X=G.map((K)=>K.id),await this.db.updateTable("event_deliveries").set({status:"processing"}).where("id","in",X).where("status","=","pending").execute()}if(X.length===0)return[];return(await this.db.selectFrom("event_deliveries as d").innerJoin("events as e","e.id","d.event_id").innerJoin("event_subscriptions as s","s.id","d.subscription_id").select(["d.id as delivery_id","d.event_id","d.subscription_id","d.status as delivery_status","d.attempts as delivery_attempts","d.last_error as delivery_last_error","d.delivered_at","d.next_retry_at as delivery_next_retry_at","d.created_at as delivery_created_at","e.organization_id","e.type","e.source","e.specversion","e.subject","e.time","e.datacontenttype","e.dataschema","e.data","e.cron","e.status as event_status","e.attempts as event_attempts","e.last_error as event_last_error","e.next_retry_at","e.created_at as event_created_at","e.updated_at as event_updated_at","s.connection_id","s.publisher","s.event_type","s.filter","s.enabled","s.created_at as subscription_created_at","s.updated_at as subscription_updated_at"]).where("d.id","in",X).where("d.status","=","processing").execute()).map((G)=>({delivery:{id:G.delivery_id,eventId:G.event_id,subscriptionId:G.subscription_id,status:G.delivery_status,attempts:G.delivery_attempts,lastError:G.delivery_last_error,deliveredAt:G.delivered_at,nextRetryAt:G.delivery_next_retry_at,createdAt:G.delivery_created_at},event:{id:G.event_id,organizationId:G.organization_id,type:G.type,source:G.source,specversion:G.specversion,subject:G.subject,time:G.time,datacontenttype:G.datacontenttype,dataschema:G.dataschema,data:G.data?JSON.parse(G.data):null,cron:G.cron,status:G.event_status,attempts:G.event_attempts,lastError:G.event_last_error,nextRetryAt:G.next_retry_at,createdAt:G.event_created_at,updatedAt:G.event_updated_at},subscription:{id:G.subscription_id,organizationId:G.organization_id,connectionId:G.connection_id,publisher:G.publisher,eventType:G.event_type,filter:G.filter,enabled:G.enabled===1,createdAt:G.subscription_created_at,updatedAt:G.subscription_updated_at}}))}async markDeliveriesDelivered(Y){if(Y.length===0)return;let Q=new Date().toISOString();await this.db.updateTable("event_deliveries").set({status:"delivered",delivered_at:Q}).where("id","in",Y).execute()}async markDeliveriesFailed(Y,Q,X=20,J=1000,G=3600000){if(Y.length===0)return;for(let K of Y){let W=await this.db.selectFrom("event_deliveries").select(["attempts"]).where("id","=",K).executeTakeFirst();if(!W)continue;let Z=W.attempts+1;if(Z>=X)await this.db.updateTable("event_deliveries").set({attempts:Z,last_error:Q,status:"failed",next_retry_at:null}).where("id","=",K).execute();else{let H=Math.min(J*Math.pow(2,Z-1),G),$=new Date(Date.now()+H).toISOString();await this.db.updateTable("event_deliveries").set({attempts:Z,last_error:Q,status:"pending",next_retry_at:$}).where("id","=",K).execute()}}}async updateEventStatus(Y){let Q=await this.db.selectFrom("event_deliveries").select(["status"]).where("event_id","=",Y).execute();if(Q.length===0)return;let X=Q.every((K)=>K.status==="delivered"),J=Q.some((K)=>K.status==="failed"),G=Q.some((K)=>K.status==="pending"||K.status==="processing");if(X)await this.db.updateTable("events").set({status:"delivered",updated_at:new Date().toISOString()}).where("id","=",Y).execute();else if(J&&!G)await this.db.updateTable("events").set({status:"failed",updated_at:new Date().toISOString()}).where("id","=",Y).execute()}async resetStuckDeliveries(){let Y=await this.db.updateTable("event_deliveries").set({status:"pending"}).where("status","=","processing").executeTakeFirst();return Number(Y.numUpdatedRows??0)}async getEvent(Y,Q){let X=await this.db.selectFrom("events").selectAll().where("id","=",Y).where("organization_id","=",Q).executeTakeFirst();if(!X)return null;return{id:X.id,organizationId:X.organization_id,type:X.type,source:X.source,specversion:X.specversion,subject:X.subject,time:X.time,datacontenttype:X.datacontenttype,dataschema:X.dataschema,data:X.data?JSON.parse(X.data):null,cron:X.cron,status:X.status,attempts:X.attempts,lastError:X.last_error,nextRetryAt:X.next_retry_at,createdAt:X.created_at,updatedAt:X.updated_at}}async findActiveCronEvent(Y,Q,X,J){let G=await this.db.selectFrom("events").selectAll().where("organization_id","=",Y).where("type","=",Q).where("source","=",X).where("cron","=",J).where("status","in",["pending","processing","delivered"]).orderBy("created_at","desc").executeTakeFirst();if(!G)return null;return{id:G.id,organizationId:G.organization_id,type:G.type,source:G.source,specversion:G.specversion,subject:G.subject,time:G.time,datacontenttype:G.datacontenttype,dataschema:G.dataschema,data:G.data?JSON.parse(G.data):null,cron:G.cron,status:G.status,attempts:G.attempts,lastError:G.last_error,nextRetryAt:G.next_retry_at,createdAt:G.created_at,updatedAt:G.updated_at}}async cancelEvent(Y,Q,X){let J=await this.db.updateTable("events").set({status:"failed",last_error:"Cancelled by publisher",updated_at:new Date().toISOString()}).where("id","=",Y).where("organization_id","=",Q).where("source","=",X).where("status","in",["pending","processing"]).executeTakeFirst();if((J.numUpdatedRows??0n)>0n)await this.db.updateTable("event_deliveries").set({status:"failed",last_error:"Event cancelled by publisher"}).where("event_id","=",Y).where("status","in",["pending","processing"]).execute();return{success:(J.numUpdatedRows??0n)>0n}}async scheduleRetryWithoutAttemptIncrement(Y,Q){if(Y.length===0)return;let X=new Date(Date.now()+Q).toISOString();await this.db.updateTable("event_deliveries").set({status:"pending",next_retry_at:X}).where("id","in",Y).execute()}async ackDelivery(Y,Q,X){if(!await this.db.selectFrom("events").select(["id"]).where("id","=",Y).where("organization_id","=",Q).executeTakeFirst())return{success:!1};let K=((await this.db.updateTable("event_deliveries").set({status:"delivered",delivered_at:new Date().toISOString()}).where("event_id","=",Y).where("status","in",["pending","processing"]).where((W)=>W.exists(W.selectFrom("event_subscriptions").select("id").whereRef("event_subscriptions.id","=","event_deliveries.subscription_id").where("event_subscriptions.connection_id","=",X).where("event_subscriptions.organization_id","=",Q))).executeTakeFirst()).numUpdatedRows??0n)>0n;if(K)await this.updateEventStatus(Y);return{success:K}}async syncSubscriptions(Y){let{organizationId:Q,connectionId:X,subscriptions:J}=Y,G=(w,E)=>{return`${w}::${E??""}`},K=await this.listSubscriptions(Q,X),W=new Map;for(let w of K)W.set(G(w.eventType,w.publisher),w);let Z=new Map;for(let w of J)Z.set(G(w.eventType,w.publisher),w);let H=new Date().toISOString(),$=[],F=[],V=[],B=0;for(let[w,E]of Z){let T=W.get(w);if(!T)$.push({id:crypto.randomUUID(),organization_id:Q,connection_id:X,event_type:E.eventType,publisher:E.publisher??null,filter:E.filter??null,enabled:1,created_at:H,updated_at:H});else{let C=T.filter??null,P=E.filter??null;if(C!==P)F.push({id:T.id,filter:P});else B++}}for(let[w,E]of W)if(!Z.has(w))V.push(E.id);if($.length>0)await this.db.insertInto("event_subscriptions").values($).execute();if(F.length>0)await Promise.all(F.map((w)=>this.db.updateTable("event_subscriptions").set({filter:w.filter,updated_at:H}).where("id","=",w.id).execute()));if(V.length>0)await this.db.deleteFrom("event_subscriptions").where("id","in",V).execute();let U=$.length,D=F.length,z=V.length,L=await this.listSubscriptions(Q,X);return{created:U,updated:D,deleted:z,unchanged:B,subscriptions:L}}}function Ni0(Y){return new Oi0(Y)}function bJ(Y,Q,X,J,G,K,W,Z){return bJ.fromTZ(bJ.tp(Y,Q,X,J,G,K,W),Z)}bJ.fromTZISO=(Y,Q,X)=>bJ.fromTZ(rg6(Y,Q),X);bJ.fromTZ=function(Y,Q){let X=new Date(Date.UTC(Y.y,Y.m-1,Y.d,Y.h,Y.i,Y.s)),J=zN1(Y.tz,X),G=new Date(X.getTime()-J),K=zN1(Y.tz,G);if(K-J===0)return G;{let W=new Date(X.getTime()-K),Z=zN1(Y.tz,W);if(Z-K===0)return W;if(!Q&&Z-K>0)return W;if(Q)throw Error("Invalid date passed to fromTZ()");return G}};bJ.toTZ=function(Y,Q){let X=Y.toLocaleString("en-US",{timeZone:Q}).replace(/[\u202f]/," "),J=new Date(X);return{y:J.getFullYear(),m:J.getMonth()+1,d:J.getDate(),h:J.getHours(),i:J.getMinutes(),s:J.getSeconds(),tz:Q}};bJ.tp=(Y,Q,X,J,G,K,W)=>({y:Y,m:Q,d:X,h:J,i:G,s:K,tz:W});function zN1(Y,Q=new Date){let X=Q.toLocaleString("en-US",{timeZone:Y,timeZoneName:"shortOffset"}).split(" ").slice(-1)[0],J=Q.toLocaleString("en-US").replace(/[\u202f]/," ");return Date.parse(`${J} GMT`)-Date.parse(`${J} ${X}`)}function rg6(Y,Q){let X=new Date(Date.parse(Y));if(isNaN(X))throw Error("minitz: Invalid ISO8601 passed to parser.");let J=Y.substring(9);return Y.includes("Z")||J.includes("-")||J.includes("+")?bJ.tp(X.getUTCFullYear(),X.getUTCMonth()+1,X.getUTCDate(),X.getUTCHours(),X.getUTCMinutes(),X.getUTCSeconds(),"Etc/UTC"):bJ.tp(X.getFullYear(),X.getMonth()+1,X.getDate(),X.getHours(),X.getMinutes(),X.getSeconds(),Q)}bJ.minitz=bJ;var ON1=32,wv=31|ON1,Ai0=[1,2,4,8,16],Li0=class{pattern;timezone;second;minute;hour;day;month;dayOfWeek;lastDayOfMonth;starDOM;starDOW;constructor(Y,Q){this.pattern=Y,this.timezone=Q,this.second=Array(60).fill(0),this.minute=Array(60).fill(0),this.hour=Array(24).fill(0),this.day=Array(31).fill(0),this.month=Array(12).fill(0),this.dayOfWeek=Array(7).fill(0),this.lastDayOfMonth=!1,this.starDOM=!1,this.starDOW=!1,this.parse()}parse(){if(!(typeof this.pattern=="string"||this.pattern instanceof String))throw TypeError("CronPattern: Pattern has to be of type string.");this.pattern.indexOf("@")>=0&&(this.pattern=this.handleNicknames(this.pattern).trim());let Y=this.pattern.replace(/\s+/g," ").split(" ");if(Y.length<5||Y.length>6)throw TypeError("CronPattern: invalid configuration format ('"+this.pattern+"'), exactly five or six space separated parts are required.");if(Y.length===5&&Y.unshift("0"),Y[3].indexOf("L")>=0&&(Y[3]=Y[3].replace("L",""),this.lastDayOfMonth=!0),Y[3]=="*"&&(this.starDOM=!0),Y[4].length>=3&&(Y[4]=this.replaceAlphaMonths(Y[4])),Y[5].length>=3&&(Y[5]=this.replaceAlphaDays(Y[5])),Y[5]=="*"&&(this.starDOW=!0),this.pattern.indexOf("?")>=0){let Q=new fW(new Date,this.timezone).getDate(!0);Y[0]=Y[0].replace("?",Q.getSeconds().toString()),Y[1]=Y[1].replace("?",Q.getMinutes().toString()),Y[2]=Y[2].replace("?",Q.getHours().toString()),this.starDOM||(Y[3]=Y[3].replace("?",Q.getDate().toString())),Y[4]=Y[4].replace("?",(Q.getMonth()+1).toString()),this.starDOW||(Y[5]=Y[5].replace("?",Q.getDay().toString()))}this.throwAtIllegalCharacters(Y),this.partToArray("second",Y[0],0,1),this.partToArray("minute",Y[1],0,1),this.partToArray("hour",Y[2],0,1),this.partToArray("day",Y[3],-1,1),this.partToArray("month",Y[4],-1,1),this.partToArray("dayOfWeek",Y[5],0,wv),this.dayOfWeek[7]&&(this.dayOfWeek[0]=this.dayOfWeek[7])}partToArray(Y,Q,X,J){let G=this[Y],K=Y==="day"&&this.lastDayOfMonth;if(Q===""&&!K)throw TypeError("CronPattern: configuration entry "+Y+" ("+Q+") is empty, check for trailing spaces.");if(Q==="*")return G.fill(J);let W=Q.split(",");if(W.length>1)for(let Z=0;Z<W.length;Z++)this.partToArray(Y,W[Z],X,J);else Q.indexOf("-")!==-1&&Q.indexOf("/")!==-1?this.handleRangeWithStepping(Q,Y,X,J):Q.indexOf("-")!==-1?this.handleRange(Q,Y,X,J):Q.indexOf("/")!==-1?this.handleStepping(Q,Y,X,J):Q!==""&&this.handleNumber(Q,Y,X,J)}throwAtIllegalCharacters(Y){for(let Q=0;Q<Y.length;Q++)if((Q===5?/[^/*0-9,\-#L]+/:/[^/*0-9,-]+/).test(Y[Q]))throw TypeError("CronPattern: configuration entry "+Q+" ("+Y[Q]+") contains illegal characters.")}handleNumber(Y,Q,X,J){let G=this.extractNth(Y,Q),K=parseInt(G[0],10)+X;if(isNaN(K))throw TypeError("CronPattern: "+Q+" is not a number: '"+Y+"'");this.setPart(Q,K,G[1]||J)}setPart(Y,Q,X){if(!Object.prototype.hasOwnProperty.call(this,Y))throw TypeError("CronPattern: Invalid part specified: "+Y);if(Y==="dayOfWeek"){if(Q===7&&(Q=0),Q<0||Q>6)throw RangeError("CronPattern: Invalid value for dayOfWeek: "+Q);this.setNthWeekdayOfMonth(Q,X);return}if(Y==="second"||Y==="minute"){if(Q<0||Q>=60)throw RangeError("CronPattern: Invalid value for "+Y+": "+Q)}else if(Y==="hour"){if(Q<0||Q>=24)throw RangeError("CronPattern: Invalid value for "+Y+": "+Q)}else if(Y==="day"){if(Q<0||Q>=31)throw RangeError("CronPattern: Invalid value for "+Y+": "+Q)}else if(Y==="month"&&(Q<0||Q>=12))throw RangeError("CronPattern: Invalid value for "+Y+": "+Q);this[Y][Q]=X}handleRangeWithStepping(Y,Q,X,J){let G=this.extractNth(Y,Q),K=G[0].match(/^(\d+)-(\d+)\/(\d+)$/);if(K===null)throw TypeError("CronPattern: Syntax error, illegal range with stepping: '"+Y+"'");let[,W,Z,H]=K,$=parseInt(W,10)+X,F=parseInt(Z,10)+X,V=parseInt(H,10);if(isNaN($))throw TypeError("CronPattern: Syntax error, illegal lower range (NaN)");if(isNaN(F))throw TypeError("CronPattern: Syntax error, illegal upper range (NaN)");if(isNaN(V))throw TypeError("CronPattern: Syntax error, illegal stepping: (NaN)");if(V===0)throw TypeError("CronPattern: Syntax error, illegal stepping: 0");if(V>this[Q].length)throw TypeError("CronPattern: Syntax error, steps cannot be greater than maximum value of part ("+this[Q].length+")");if($>F)throw TypeError("CronPattern: From value is larger than to value: '"+Y+"'");for(let B=$;B<=F;B+=V)this.setPart(Q,B,G[1]||J)}extractNth(Y,Q){let X=Y,J;if(X.includes("#")){if(Q!=="dayOfWeek")throw Error("CronPattern: nth (#) only allowed in day-of-week field");J=X.split("#")[1],X=X.split("#")[0]}return[X,J]}handleRange(Y,Q,X,J){let G=this.extractNth(Y,Q),K=G[0].split("-");if(K.length!==2)throw TypeError("CronPattern: Syntax error, illegal range: '"+Y+"'");let W=parseInt(K[0],10)+X,Z=parseInt(K[1],10)+X;if(isNaN(W))throw TypeError("CronPattern: Syntax error, illegal lower range (NaN)");if(isNaN(Z))throw TypeError("CronPattern: Syntax error, illegal upper range (NaN)");if(W>Z)throw TypeError("CronPattern: From value is larger than to value: '"+Y+"'");for(let H=W;H<=Z;H++)this.setPart(Q,H,G[1]||J)}handleStepping(Y,Q,X,J){let G=this.extractNth(Y,Q),K=G[0].split("/");if(K.length!==2)throw TypeError("CronPattern: Syntax error, illegal stepping: '"+Y+"'");K[0]===""&&(K[0]="*");let W=0;K[0]!=="*"&&(W=parseInt(K[0],10)+X);let Z=parseInt(K[1],10);if(isNaN(Z))throw TypeError("CronPattern: Syntax error, illegal stepping: (NaN)");if(Z===0)throw TypeError("CronPattern: Syntax error, illegal stepping: 0");if(Z>this[Q].length)throw TypeError("CronPattern: Syntax error, max steps for part is ("+this[Q].length+")");for(let H=W;H<this[Q].length;H+=Z)this.setPart(Q,H,G[1]||J)}replaceAlphaDays(Y){return Y.replace(/-sun/gi,"-7").replace(/sun/gi,"0").replace(/mon/gi,"1").replace(/tue/gi,"2").replace(/wed/gi,"3").replace(/thu/gi,"4").replace(/fri/gi,"5").replace(/sat/gi,"6")}replaceAlphaMonths(Y){return Y.replace(/jan/gi,"1").replace(/feb/gi,"2").replace(/mar/gi,"3").replace(/apr/gi,"4").replace(/may/gi,"5").replace(/jun/gi,"6").replace(/jul/gi,"7").replace(/aug/gi,"8").replace(/sep/gi,"9").replace(/oct/gi,"10").replace(/nov/gi,"11").replace(/dec/gi,"12")}handleNicknames(Y){let Q=Y.trim().toLowerCase();return Q==="@yearly"||Q==="@annually"?"0 0 1 1 *":Q==="@monthly"?"0 0 1 * *":Q==="@weekly"?"0 0 * * 0":Q==="@daily"?"0 0 * * *":Q==="@hourly"?"0 * * * *":Y}setNthWeekdayOfMonth(Y,Q){if(typeof Q!="number"&&Q==="L")this.dayOfWeek[Y]=this.dayOfWeek[Y]|ON1;else if(Q===wv)this.dayOfWeek[Y]=wv;else if(Q<6&&Q>0)this.dayOfWeek[Y]=this.dayOfWeek[Y]|Ai0[Q-1];else throw TypeError(`CronPattern: nth weekday out of range, should be 1-5 or L. Value: ${Q}, Type: ${typeof Q}`)}},Mi0=[31,28,31,30,31,30,31,31,30,31,30,31],NF=[["month","year",0],["day","month",-1],["hour","day",0],["minute","hour",0],["second","minute",0]],fW=class Y{tz;ms;second;minute;hour;day;month;year;constructor(Q,X){if(this.tz=X,Q&&Q instanceof Date)if(!isNaN(Q))this.fromDate(Q);else throw TypeError("CronDate: Invalid date passed to CronDate constructor");else if(Q===void 0)this.fromDate(new Date);else if(Q&&typeof Q=="string")this.fromString(Q);else if(Q instanceof Y)this.fromCronDate(Q);else throw TypeError("CronDate: Invalid type ("+typeof Q+") passed to CronDate constructor")}isNthWeekdayOfMonth(Q,X,J,G){let K=new Date(Date.UTC(Q,X,J)).getUTCDay(),W=0;for(let Z=1;Z<=J;Z++)new Date(Date.UTC(Q,X,Z)).getUTCDay()===K&&W++;if(G&wv&&Ai0[W-1]&G)return!0;if(G&ON1){let Z=new Date(Date.UTC(Q,X+1,0)).getUTCDate();for(let H=J+1;H<=Z;H++)if(new Date(Date.UTC(Q,X,H)).getUTCDay()===K)return!1;return!0}return!1}fromDate(Q){if(this.tz!==void 0)if(typeof this.tz=="number")this.ms=Q.getUTCMilliseconds(),this.second=Q.getUTCSeconds(),this.minute=Q.getUTCMinutes()+this.tz,this.hour=Q.getUTCHours(),this.day=Q.getUTCDate(),this.month=Q.getUTCMonth(),this.year=Q.getUTCFullYear(),this.apply();else{let X=bJ.toTZ(Q,this.tz);this.ms=Q.getMilliseconds(),this.second=X.s,this.minute=X.i,this.hour=X.h,this.day=X.d,this.month=X.m-1,this.year=X.y}else this.ms=Q.getMilliseconds(),this.second=Q.getSeconds(),this.minute=Q.getMinutes(),this.hour=Q.getHours(),this.day=Q.getDate(),this.month=Q.getMonth(),this.year=Q.getFullYear()}fromCronDate(Q){this.tz=Q.tz,this.year=Q.year,this.month=Q.month,this.day=Q.day,this.hour=Q.hour,this.minute=Q.minute,this.second=Q.second,this.ms=Q.ms}apply(){if(this.month>11||this.day>Mi0[this.month]||this.hour>59||this.minute>59||this.second>59||this.hour<0||this.minute<0||this.second<0){let Q=new Date(Date.UTC(this.year,this.month,this.day,this.hour,this.minute,this.second,this.ms));return this.ms=Q.getUTCMilliseconds(),this.second=Q.getUTCSeconds(),this.minute=Q.getUTCMinutes(),this.hour=Q.getUTCHours(),this.day=Q.getUTCDate(),this.month=Q.getUTCMonth(),this.year=Q.getUTCFullYear(),!0}else return!1}fromString(Q){if(typeof this.tz=="number"){let X=bJ.fromTZISO(Q);this.ms=X.getUTCMilliseconds(),this.second=X.getUTCSeconds(),this.minute=X.getUTCMinutes(),this.hour=X.getUTCHours(),this.day=X.getUTCDate(),this.month=X.getUTCMonth(),this.year=X.getUTCFullYear(),this.apply()}else return this.fromDate(bJ.fromTZISO(Q,this.tz))}findNext(Q,X,J,G){let K=this[X],W;J.lastDayOfMonth&&(this.month!==1?W=Mi0[this.month]:W=new Date(Date.UTC(this.year,this.month+1,0,0,0,0,0)).getUTCDate());let Z=!J.starDOW&&X=="day"?new Date(Date.UTC(this.year,this.month,1,0,0,0,0)).getUTCDay():void 0;for(let H=this[X]+G;H<J[X].length;H++){let $=J[X][H];if(X==="day"&&J.lastDayOfMonth&&H-G==W&&($=1),X==="day"&&!J.starDOW){let F=J.dayOfWeek[(Z+(H-G-1))%7];if(F&&F&wv)F=this.isNthWeekdayOfMonth(this.year,this.month,H-G,F)?1:0;else if(F)throw Error(`CronDate: Invalid value for dayOfWeek encountered. ${F}`);Q.legacyMode&&!J.starDOM?$=$||F:$=$&&F}if($)return this[X]=H-G,K!==this[X]?2:1}return 3}recurse(Q,X,J){let G=this.findNext(X,NF[J][0],Q,NF[J][2]);if(G>1){let K=J+1;for(;K<NF.length;)this[NF[K][0]]=-NF[K][2],K++;if(G===3)return this[NF[J][1]]++,this[NF[J][0]]=-NF[J][2],this.apply(),this.recurse(Q,X,0);if(this.apply())return this.recurse(Q,X,J-1)}return J+=1,J>=NF.length?this:this.year>=3000?null:this.recurse(Q,X,J)}increment(Q,X,J){return this.second+=X.interval!==void 0&&X.interval>1&&J?X.interval:1,this.ms=0,this.apply(),this.recurse(Q,X,0)}getDate(Q){return Q||this.tz===void 0?new Date(this.year,this.month,this.day,this.hour,this.minute,this.second,this.ms):typeof this.tz=="number"?new Date(Date.UTC(this.year,this.month,this.day,this.hour,this.minute-this.tz,this.second,this.ms)):bJ.fromTZ(bJ.tp(this.year,this.month+1,this.day,this.hour,this.minute,this.second,this.tz),!1)}getTime(){return this.getDate(!1).getTime()}};function og6(Y){if(Y===void 0&&(Y={}),delete Y.name,Y.legacyMode=Y.legacyMode===void 0?!0:Y.legacyMode,Y.paused=Y.paused===void 0?!1:Y.paused,Y.maxRuns=Y.maxRuns===void 0?1/0:Y.maxRuns,Y.catch=Y.catch===void 0?!1:Y.catch,Y.interval=Y.interval===void 0?0:parseInt(Y.interval.toString(),10),Y.utcOffset=Y.utcOffset===void 0?void 0:parseInt(Y.utcOffset.toString(),10),Y.unref=Y.unref===void 0?!1:Y.unref,Y.startAt&&(Y.startAt=new fW(Y.startAt,Y.timezone)),Y.stopAt&&(Y.stopAt=new fW(Y.stopAt,Y.timezone)),Y.interval!==null){if(isNaN(Y.interval))throw Error("CronOptions: Supplied value for interval is not a number");if(Y.interval<0)throw Error("CronOptions: Supplied value for interval can not be negative")}if(Y.utcOffset!==void 0){if(isNaN(Y.utcOffset))throw Error("CronOptions: Invalid value passed for utcOffset, should be number representing minutes offset from UTC.");if(Y.utcOffset<-870||Y.utcOffset>870)throw Error("CronOptions: utcOffset out of bounds.");if(Y.utcOffset!==void 0&&Y.timezone)throw Error("CronOptions: Combining 'utcOffset' with 'timezone' is not allowed.")}if(Y.unref!==!0&&Y.unref!==!1)throw Error("CronOptions: Unref should be either true, false or undefined(false).");return Y}function Mv(Y){return Object.prototype.toString.call(Y)==="[object Function]"||typeof Y=="function"||Y instanceof Function}function sg6(Y){return Mv(Y)}function tg6(Y){typeof Deno<"u"&&typeof Deno.unrefTimer<"u"?Deno.unrefTimer(Y):Y&&typeof Y.unref<"u"&&Y.unref()}var wi0=30000,wr=[],Ar=class{name;options;_states;fn;constructor(Y,Q,X){let J,G;if(Mv(Q))G=Q;else if(typeof Q=="object")J=Q;else if(Q!==void 0)throw Error("Cron: Invalid argument passed for optionsIn. Should be one of function, or object (options).");if(Mv(X))G=X;else if(typeof X=="object")J=X;else if(X!==void 0)throw Error("Cron: Invalid argument passed for funcIn. Should be one of function, or object (options).");if(this.name=J?.name,this.options=og6(J),this._states={kill:!1,blocking:!1,previousRun:void 0,currentRun:void 0,once:void 0,currentTimeout:void 0,maxRuns:J?J.maxRuns:void 0,paused:J?J.paused:!1,pattern:new Li0("* * * * *")},Y&&(Y instanceof Date||typeof Y=="string"&&Y.indexOf(":")>0)?this._states.once=new fW(Y,this.options.timezone||this.options.utcOffset):this._states.pattern=new Li0(Y,this.options.timezone),this.name){if(wr.find((K)=>K.name===this.name))throw Error("Cron: Tried to initialize new named job '"+this.name+"', but name already taken.");wr.push(this)}return G!==void 0&&sg6(G)&&(this.fn=G,this.schedule()),this}nextRun(Y){let Q=this._next(Y);return Q?Q.getDate(!1):null}nextRuns(Y,Q){this._states.maxRuns!==void 0&&Y>this._states.maxRuns&&(Y=this._states.maxRuns);let X=[],J=Q||this._states.currentRun||void 0;for(;Y--&&(J=this.nextRun(J));)X.push(J);return X}getPattern(){return this._states.pattern?this._states.pattern.pattern:void 0}isRunning(){let Y=this.nextRun(this._states.currentRun),Q=!this._states.paused,X=this.fn!==void 0,J=!this._states.kill;return Q&&X&&J&&Y!==null}isStopped(){return this._states.kill}isBusy(){return this._states.blocking}currentRun(){return this._states.currentRun?this._states.currentRun.getDate():null}previousRun(){return this._states.previousRun?this._states.previousRun.getDate():null}msToNext(Y){let Q=this._next(Y);return Q?Y instanceof fW||Y instanceof Date?Q.getTime()-Y.getTime():Q.getTime()-new fW(Y).getTime():null}stop(){this._states.kill=!0,this._states.currentTimeout&&clearTimeout(this._states.currentTimeout);let Y=wr.indexOf(this);Y>=0&&wr.splice(Y,1)}pause(){return this._states.paused=!0,!this._states.kill}resume(){return this._states.paused=!1,!this._states.kill}schedule(Y){if(Y&&this.fn)throw Error("Cron: It is not allowed to schedule two functions using the same Croner instance.");Y&&(this.fn=Y);let Q=this.msToNext(),X=this.nextRun(this._states.currentRun);return Q==null||isNaN(Q)||X===null?this:(Q>wi0&&(Q=wi0),this._states.currentTimeout=setTimeout(()=>this._checkTrigger(X),Q),this._states.currentTimeout&&this.options.unref&&tg6(this._states.currentTimeout),this)}async _trigger(Y){if(this._states.blocking=!0,this._states.currentRun=new fW(void 0,this.options.timezone||this.options.utcOffset),this.options.catch)try{this.fn!==void 0&&await this.fn(this,this.options.context)}catch(Q){Mv(this.options.catch)&&this.options.catch(Q,this)}else this.fn!==void 0&&await this.fn(this,this.options.context);this._states.previousRun=new fW(Y,this.options.timezone||this.options.utcOffset),this._states.blocking=!1}async trigger(){await this._trigger()}runsLeft(){return this._states.maxRuns}_checkTrigger(Y){let Q=new Date,X=!this._states.paused&&Q.getTime()>=Y.getTime(),J=this._states.blocking&&this.options.protect;X&&!J?(this._states.maxRuns!==void 0&&this._states.maxRuns--,this._trigger()):X&&J&&Mv(this.options.protect)&&setTimeout(()=>this.options.protect(this),0),this.schedule()}_next(Y){let Q=!!(Y||this._states.currentRun),X=!1;!Y&&this.options.startAt&&this.options.interval&&([Y,Q]=this._calculatePreviousRun(Y,Q),X=!Y),Y=new fW(Y,this.options.timezone||this.options.utcOffset),this.options.startAt&&Y&&Y.getTime()<this.options.startAt.getTime()&&(Y=this.options.startAt);let J=this._states.once||new fW(Y,this.options.timezone||this.options.utcOffset);return!X&&J!==this._states.once&&(J=J.increment(this._states.pattern,this.options,Q)),this._states.once&&this._states.once.getTime()<=Y.getTime()||J===null||this._states.maxRuns!==void 0&&this._states.maxRuns<=0||this._states.kill||this.options.stopAt&&J.getTime()>=this.options.stopAt.getTime()?null:J}_calculatePreviousRun(Y,Q){let X=new fW(void 0,this.options.timezone||this.options.utcOffset),J=Y;if(this.options.startAt.getTime()<=X.getTime()){J=this.options.startAt;let G=J.getTime()+this.options.interval*1000;for(;G<=X.getTime();)J=new fW(J,this.options.timezone||this.options.utcOffset).increment(this._states.pattern,this.options,!0),G=J.getTime()+this.options.interval*1000;Q=!0}return J===null&&(J=void 0),[J,Q]}};class Av{localEmit=null;async start(Y){this.localEmit=Y}broadcast(Y,Q){this.localEmit?.(Y,Q)}async stop(){this.localEmit=null}}var Pi0=50,Ei0=500;class Ti0{listeners=new Map;totalCount=0;strategy=new Av;started=!1;async start(Y){if(this.started){if(!Y)return;await this.stop()}if(Y)this.strategy=Y;await this.strategy.start((Q,X)=>this.localEmit(Q,X)),this.started=!0}async stop(){if(!this.started)return;await this.strategy.stop(),this.started=!1}add(Y){if(this.totalCount>=Ei0)return console.warn(`[SSEHub] Total connection limit reached (${Ei0})`),null;let Q=this.listeners.get(Y.organizationId);if(!Q)Q=new Map,this.listeners.set(Y.organizationId,Q);if(Q.size>=Pi0)return console.warn(`[SSEHub] Per-org connection limit reached for ${Y.organizationId} (${Pi0})`),null;return Q.set(Y.id,Y),this.totalCount++,Y.id}remove(Y,Q){let X=this.listeners.get(Y);if(!X)return;if(X.delete(Q)){if(this.totalCount--,X.size===0)this.listeners.delete(Y)}}emit(Y,Q){this.strategy.broadcast(Y,Q)}countForOrg(Y){return this.listeners.get(Y)?.size??0}get count(){return this.totalCount}localEmit(Y,Q){let X=this.listeners.get(Y);if(!X||X.size===0)return;for(let J of X.values()){if(J.typePatterns&&!eg6(Q.type,J.typePatterns))continue;try{J.push(Q)}catch{this.remove(Y,J.id)}}}}function eg6(Y,Q){for(let X of Q){if(X===Y)return!0;if(X.endsWith(".*")){let J=X.slice(0,-1);if(Y.startsWith(J))return!0}}return!1}var hJ=new Ti0;function Ci0(Y){return{id:Y.id,type:Y.type,source:Y.source,subject:Y.subject,data:Y.data?Yu6(Y.data):void 0,time:Y.time}}function Yu6(Y){if(typeof Y==="string")try{return JSON.parse(Y)}catch{return Y}return Y}var Pr={pollIntervalMs:5000,batchSize:100,maxAttempts:20,retryDelayMs:1000,maxDelayMs:3600000};ia();pS();function Qu6(Y){return Y.endsWith("_self")}function Xu6(Y){return Y.slice(0,-5)}function Ri0(){return async(Y,Q)=>{try{if(Qu6(Y)&&Qz1()){let W=Xu6(Y),Z=await OF.create();if(await xd0(Q,{organizationId:W,connectionId:Y,publish:async(F,V,B,U)=>{await Z.eventBus.publish(W,Y,{type:F,subject:V,data:B,deliverAt:U?.deliverAt})},createMCPProxy:async(F)=>{let V=await UN1(F,Z);return{callTool:async(B,U,D)=>{let z=await V.callTool(B,U,D);return{content:z.content,structuredContent:z.structuredContent,isError:z.isError}},close:()=>V.close()}}}))return{success:!0}}let X=await OF.create(),J=await UN1(Y,X),K=await dV1.forClient(MO(J)).ON_EVENTS({events:Q});return{success:K.success,error:K.error,retryAfter:K.retryAfter,results:K.results}}catch(X){let J=X instanceof Error?X.message:String(X);return console.error(`[EventBus] Failed to notify connection ${Y}:`,J),{success:!1,error:J}}}}function Ii0(Y){return{specversion:"1.0",id:Y.id,source:Y.source,type:Y.type,time:Y.time,subject:Y.subject??void 0,datacontenttype:Y.datacontenttype,dataschema:Y.dataschema??void 0,data:Y.data??void 0}}function Ju6(Y){let Q=new Map;for(let J of Y){let G=J.subscription.connectionId,K=Q.get(G);if(K){if(K.deliveryIds.push(J.delivery.id),!K.seenEventIds.has(J.event.id))K.seenEventIds.add(J.event.id),K.events.push(Ii0(J.event))}else Q.set(G,{connectionId:J.subscription.connectionId,deliveryIds:[J.delivery.id],events:[Ii0(J.event)],seenEventIds:new Set([J.event.id])})}let X=new Map;for(let[J,G]of Q)X.set(J,{connectionId:G.connectionId,deliveryIds:G.deliveryIds,events:G.events});return X}class NN1{storage;notifySubscriber;running=!1;processing=!1;pendingNotify=!1;config;constructor(Y,Q){this.storage=Y;this.notifySubscriber=Ri0(),this.config={...Pr,...Q}}async start(){if(this.running)return;let Y=await this.storage.resetStuckDeliveries();if(Y>0)console.log(`[EventBus] Reset ${Y} stuck deliveries from previous shutdown`);this.running=!0}stop(){this.running=!1,console.log("[EventBus] Worker stopped")}isRunning(){return this.running}async processNow(){if(!this.running)return;if(this.processing){this.pendingNotify=!0;return}this.processing=!0;try{do this.pendingNotify=!1,await this.processEvents();while(this.pendingNotify)}catch(Y){console.error("[EventBus] Error processing events:",Y)}finally{this.processing=!1}}async processEvents(){let Y=await this.storage.claimPendingDeliveries(this.config.batchSize);if(Y.length===0)return;let Q=Ju6(Y),X=new Set;await Promise.allSettled(Array.from(Q.entries()).map(async([J,G])=>{try{let K=await this.notifySubscriber(G.connectionId,G.events);if(K.results&&Object.keys(K.results).length>0)await this.processPerEventResults(G,K);else if(K.success)await this.storage.markDeliveriesDelivered(G.deliveryIds);else if(K.retryAfter&&K.retryAfter>0)await this.storage.scheduleRetryWithoutAttemptIncrement(G.deliveryIds,K.retryAfter);else await this.storage.markDeliveriesFailed(G.deliveryIds,K.error||"Subscriber returned success=false",this.config.maxAttempts,this.config.retryDelayMs,this.config.maxDelayMs)}catch(K){let W=K instanceof Error?K.message:String(K);console.error(`[EventBus] Failed to notify subscription ${J}:`,W),await this.storage.markDeliveriesFailed(G.deliveryIds,W,this.config.maxAttempts,this.config.retryDelayMs,this.config.maxDelayMs)}for(let K of Y)if(G.deliveryIds.includes(K.delivery.id))X.add(K.event.id)}));for(let J of X)try{await this.storage.updateEventStatus(J);let G=Y.find((K)=>K.event.id===J)?.event;if(G?.cron)await this.scheduleNextCronDelivery(G)}catch(G){console.error(`[EventBus] Failed to update event status ${J}:`,G)}}async processPerEventResults(Y,Q){let X=[],J=new Map,G=[],K=new Map;for(let W=0;W<Y.events.length;W++){let Z=Y.events?.[W];if(!Z)continue;let H=Y.deliveryIds?.[W];if(!H)continue;K.set(Z.id,H)}for(let W of Y.events){let Z=K.get(W.id);if(!Z)continue;let H=Q.results?.[W.id];if(H)if(H.success)X.push(Z);else if(H.retryAfter&&H.retryAfter>0){let $=J.get(H.retryAfter)||[];$.push(Z),J.set(H.retryAfter,$)}else G.push({deliveryId:Z,error:H.error||"Event processing failed"});else if(Q.success)X.push(Z);else if(Q.retryAfter&&Q.retryAfter>0){let $=J.get(Q.retryAfter)||[];$.push(Z),J.set(Q.retryAfter,$)}else G.push({deliveryId:Z,error:Q.error||"Batch processing failed"})}if(X.length>0)await this.storage.markDeliveriesDelivered(X);for(let[W,Z]of J)await this.storage.scheduleRetryWithoutAttemptIncrement(Z,W);if(G.length>0){let W=new Map;for(let{deliveryId:Z,error:H}of G){let $=W.get(H)||[];$.push(Z),W.set(H,$)}for(let[Z,H]of W)await this.storage.markDeliveriesFailed(H,Z,this.config.maxAttempts,this.config.retryDelayMs,this.config.maxDelayMs)}}async scheduleNextCronDelivery(Y){if(!Y.cron)return;try{let X=new Ar(Y.cron).nextRun();if(!X){console.log(`[EventBus] Cron expression for event ${Y.id} has no more runs`);return}let J=X.toISOString(),G=await this.storage.getMatchingSubscriptions(Y);if(G.length===0){console.log(`[EventBus] No subscriptions for cron event ${Y.id}, skipping next delivery`);return}await this.storage.createDeliveries(Y.id,G.map((K)=>K.id),J),console.log(`[EventBus] Scheduled next cron delivery for event ${Y.id} at ${J}`)}catch(Q){console.error(`[EventBus] Failed to schedule next cron delivery for event ${Y.id}:`,Q)}}}class LN1{storage;worker;notifyStrategy;running=!1;constructor(Y){this.storage=Y.storage,this.notifyStrategy=Y.notifyStrategy,this.worker=new NN1(this.storage,Y.config)}async publish(Y,Q,X){if(X.deliverAt&&X.cron)throw Error("Cannot set both deliverAt and cron. Use one or the other.");let J;if(X.cron){try{let F=new Ar(X.cron).nextRun();if(!F)throw Error("Cron expression does not produce a next run time");J=F.toISOString()}catch($){throw Error(`Invalid cron expression: ${$ instanceof Error?$.message:String($)}`)}let H=await this.storage.findActiveCronEvent(Y,X.type,Q,X.cron);if(H)return H}let G=crypto.randomUUID(),K=new Date().toISOString(),W=await this.storage.publishEvent({id:G,organizationId:Y,type:X.type,source:Q,subject:X.subject,time:K,data:X.data,cron:X.cron});hJ.emit(Y,Ci0(W));let Z=await this.storage.getMatchingSubscriptions(W);if(Z.length>0){let H=X.deliverAt??J;if(await this.storage.createDeliveries(G,Z.map(($)=>$.id),H),this.notifyStrategy&&!H)await this.notifyStrategy.notify(G).catch(($)=>{console.warn("[EventBus] Notify failed (non-critical):",$)})}return W}async subscribe(Y,Q){return this.storage.subscribe({id:crypto.randomUUID(),organizationId:Y,connectionId:Q.connectionId,publisher:Q.publisher,eventType:Q.eventType,filter:Q.filter})}async unsubscribe(Y,Q){return this.storage.unsubscribe(Q,Y)}async listSubscriptions(Y,Q){return this.storage.listSubscriptions(Y,Q)}async getSubscription(Y,Q){return this.storage.getSubscription(Q,Y)}async getEvent(Y,Q){return this.storage.getEvent(Q,Y)}async cancelEvent(Y,Q,X){return this.storage.cancelEvent(Q,Y,X)}async ackEvent(Y,Q,X){return this.storage.ackDelivery(Q,Y,X)}async syncSubscriptions(Y,Q){return this.storage.syncSubscriptions({organizationId:Y,...Q})}async start(){if(this.running)return;if(this.running=!0,await this.worker.start(),this.notifyStrategy)await this.notifyStrategy.start(()=>{this.worker.processNow().catch((Y)=>{console.error("[EventBus] Error processing after notify:",Y)})});await this.worker.processNow().catch((Y)=>{console.error("[EventBus] Error processing pending events on startup:",Y)})}async stop(){if(!this.running)return;if(this.running=!1,this.worker.stop(),this.notifyStrategy)try{await this.notifyStrategy.stop()}catch(Y){console.error("[EventBus] Error stopping notify strategy:",Y)}console.log("[EventBus] Stopped")}isRunning(){return this.running}}class MN1{options;sub=null;onNotify=null;encoder=new TextEncoder;constructor(Y){this.options=Y}async start(Y){let Q=this.options.getConnection();if(!Q||this.sub)return;this.onNotify=Y,this.sub=Q.subscribe("mesh.events.notify"),(async()=>{for await(let X of this.sub)this.onNotify?.()})().catch((X)=>{console.error("[NatsNotify] Subscription error:",X)}),console.log("[NatsNotify] Started, subscribed to","mesh.events.notify")}async stop(){this.sub?.unsubscribe(),this.sub=null,this.onNotify=null,console.log("[NatsNotify] Stopped")}async notify(Y){let Q=this.options.getConnection();if(!Q)return;try{Q.publish("mesh.events.notify",this.encoder.encode(Y))}catch(X){console.warn("[NatsNotify] Publish failed (non-critical):",X)}}}class wN1{options;sub=null;localEmit=null;originId=crypto.randomUUID();encoder=new TextEncoder;constructor(Y){this.options=Y}async start(Y){this.localEmit=Y;let Q=this.options.getConnection();if(!Q||this.sub)return;this.sub=Q.subscribe("mesh.sse.broadcast");let X=new TextDecoder;(async()=>{for await(let J of this.sub)try{let G=JSON.parse(X.decode(J.data));if(typeof G?.originId!=="string"||typeof G?.organizationId!=="string"||typeof G?.event?.id!=="string"||typeof G?.event?.type!=="string")continue;if(G.originId===this.originId)continue;this.localEmit?.(G.organizationId,G.event)}catch{}})().catch((J)=>{console.error("[NatsSSEBroadcast] Subscription error:",J)}),console.log("[NatsSSEBroadcast] Started, subscribed to","mesh.sse.broadcast")}broadcast(Y,Q){this.localEmit?.(Y,Q);let X=this.options.getConnection();if(!X)return;let J={originId:this.originId,organizationId:Y,event:Q};try{X.publish("mesh.sse.broadcast",this.encoder.encode(JSON.stringify(J)))}catch(G){console.warn("[NatsSSEBroadcast] Publish failed (non-critical):",G)}}async stop(){this.sub?.unsubscribe(),this.sub=null,this.localEmit=null,console.log("[NatsSSEBroadcast] Stopped")}}function AN1(...Y){return{async start(Q){await Promise.all(Y.map((X)=>X.start(Q)))},async stop(){await Promise.all(Y.map((Q)=>Q.stop().catch((X)=>{console.error("[NotifyStrategy] Error stopping strategy:",X)})))},async notify(Q){await Promise.all(Y.map((X)=>X.notify(Q).catch((J)=>{console.warn("[NotifyStrategy] Notify failed (non-critical):",J)})))}}}class PN1{intervalMs;timer=null;onNotify=null;constructor(Y){this.intervalMs=Y}async start(Y){if(this.timer)return;this.onNotify=Y,this.scheduleNext(),console.log(`[Polling] Started polling every ${this.intervalMs}ms`)}async stop(){if(this.timer)clearTimeout(this.timer),this.timer=null,console.log("[Polling] Stopped polling");this.onNotify=null}async notify(Y){if(this.onNotify)this.onNotify()}scheduleNext(){this.timer=setTimeout(()=>{if(this.onNotify)this.onNotify();if(this.timer)this.scheduleNext()},this.intervalMs)}}import{sql as Gu6}from"kysely";var NP="mesh_events";class EN1{db;pool;listenClient=null;onNotify=null;constructor(Y,Q){this.db=Y;this.pool=Q}async start(Y){if(this.listenClient)return;this.onNotify=Y;try{this.listenClient=await this.pool.connect(),this.listenClient.on("notification",(Q)=>{if(Q.channel===NP&&this.onNotify)this.onNotify()}),this.listenClient.on("error",(Q)=>{console.error("[PostgresNotify] Connection error:",Q),this.cleanup()}),await this.listenClient.query(`LISTEN ${NP}`),console.log("[PostgresNotify] Started LISTEN on",NP)}catch(Q){console.error("[PostgresNotify] Failed to start LISTEN:",Q),this.cleanup()}}async stop(){if(this.listenClient){try{await this.listenClient.query(`UNLISTEN ${NP}`),console.log("[PostgresNotify] Stopped LISTEN on",NP)}catch{}this.cleanup()}}async notify(Y){try{await Gu6`SELECT pg_notify(${NP}, ${Y})`.execute(this.db)}catch(Q){console.warn("[PostgresNotify] Failed to send NOTIFY:",Q)}}cleanup(){if(this.listenClient)this.listenClient.release(),this.listenClient=null;this.onNotify=null}}function Wu6(Y){let Q=process.env.NOTIFY_STRATEGY;if(Q==="nats"||Q==="postgres"||Q==="polling")return Q;if(process.env.NATS_URL)return"nats";if(Y.type==="postgres")return"postgres";return"polling"}function ji0(Y,Q,X){let J=Ni0(Y.db),G=Q?.pollIntervalMs??Pr.pollIntervalMs,K=Wu6(Y),W=new PN1(G),Z=process.env.NATS_URL,H;switch(K){case"nats":{if(!Z)throw Error("[EventBus] NOTIFY_STRATEGY=nats requires NATS_URL to be set");let F=(()=>{try{return new URL(Z).host}catch{return"unknown"}})();if(!X){console.warn(`[EventBus] NATS unavailable (${F}), falling back to polling`),H=W;break}console.log(`[EventBus] Using NATS notify strategy (${F})`),H=AN1(W,new MN1({getConnection:()=>X.getConnection()}));break}case"postgres":{if(Y.type!=="postgres"){console.warn("[EventBus] NOTIFY_STRATEGY=postgres requires a PostgreSQL database, falling back to polling"),H=W;break}console.log("[EventBus] Using PostgreSQL LISTEN/NOTIFY strategy"),H=AN1(W,new EN1(Y.db,Y.pool));break}case"polling":default:console.log("[EventBus] Using polling notify strategy"),H=W}let $=Z&&X?new wN1({getConnection:()=>X.getConnection()}):new Av;if(hJ.start($).catch((F)=>{console.error("[SSEHub] Failed to start broadcast strategy:",F)}),Z&&X)console.log("[SSEHub] Using NATS SSE broadcast (cross-pod)");else console.log("[SSEHub] Using local SSE broadcast (single-pod)");return new LN1({storage:J,config:Q,notifyStrategy:H})}BN();d5();mV();var Zu6={br:".br",zstd:".zst",gzip:".gz"},uN9=Object.keys(Zu6);lV();j71();var TN1="x-hono-disable-ssg",WL9=(()=>{try{return new Response("SSG is disabled",{status:404,headers:{[TN1]:"true"}})}catch{return null}})();rm();var{write:uL9}=Bun;var $u6=class{#Y;constructor(Y){this.#Y=Y,this.raw=Y.raw,this.url=Y.url?new URL(Y.url):null,this.protocol=Y.protocol??null}send(Y,Q){this.#Y.send(Y,Q??{})}raw;binaryType="arraybuffer";get readyState(){return this.#Y.readyState}url;protocol;close(Y,Q){this.#Y.close(Y,Q)}};var Si0=(Y)=>{return(...Q)=>{if(typeof Q[0]==="function"){let[X,J]=Q;return async function(K,W){let Z=await X(K),H=await Y(K,Z,J);if(H)return H;await W()}}else{let[X,J,G]=Q;return(async()=>{let K=await Y(X,J,G);if(!K)throw Error("Failed to upgrade WebSocket");return K})()}}};var Pv=(Y)=>("server"in Y.env)?Y.env.server:Y.env;var Fu6=Si0((Y,Q)=>{let X=Pv(Y);if(!X)throw TypeError("env has to include the 2nd argument of fetch.");if(X.upgrade(Y.req.raw,{data:{events:Q,url:new URL(Y.req.url),protocol:Y.req.url}}))return new Response(null);return});var CN1=(Y)=>{let Q=Pv(Y);if(!Q)throw TypeError("env has to include the 2nd argument of fetch.");if(typeof Q.requestIP!=="function")throw TypeError("server.requestIP is not a function.");let X=Q.requestIP(Y.req.raw);if(!X)return{remote:{}};return{remote:{address:X.address,addressType:X.family==="IPv6"||X.family==="IPv4"?X.family:void 0,port:X.port}}};kz();var ki0={google:{name:"Google",icon:"https://assets.decocache.com/webdraw/eb7480aa-a68b-4ce4-98ff-36aa121762a7/google.svg"},github:{name:"GitHub",icon:"https://assets.decocache.com/webdraw/5f999dcb-c8a6-4572-948c-9996ef1d502f/github.svg"},microsoft:{name:"Microsoft",icon:"https://assets.decocache.com/mcp/aa6f6e1a-6526-4bca-99cc-82e2ec38b0e4/microsoft.png"}};pq();var RN1=new QY;RN1.get("/config",async(Y)=>{try{let Q=Object.keys(_9.socialProviders??{}),X=Q.length>0,J=Q.map((W)=>({name:W,icon:ki0[W].icon})),G=process.env.UNSAFE_ALLOW_STDIO_TRANSPORT==="true",K={emailAndPassword:{enabled:_9.emailAndPassword?.enabled??!1},magicLink:{enabled:_9.magicLinkConfig?.enabled??!1},resetPassword:{enabled:qr},socialProviders:{enabled:X,providers:J},sso:_9.ssoConfig?{enabled:!0,providerId:_9.ssoConfig.providerId}:{enabled:!1},stdioEnabled:G,localMode:gZ()};return Y.json({success:!0,config:K})}catch(Q){let X=Q instanceof Error?Q.message:"Failed to load auth config";return Y.json({success:!1,error:X},500)}});RN1.post("/local-session",async(Y)=>{if(!gZ())return Y.json({success:!1,error:"Local mode is not active"},403);let Q;try{Q=CN1(Y).remote.address}catch{}if(!(Q==="127.0.0.1"||Q==="::1"||Q==="::ffff:127.0.0.1"))return Y.json({success:!1,error:"Forbidden"},403);try{let{waitForSeed:J}=await Promise.resolve().then(() => (pq(),Nn));await J();let{auth:G}=await Promise.resolve().then(() => (kz(),rn0)),K=await KV1();if(!K)return Y.json({success:!1,error:"Local admin user not found"},500);let W=await On();return await G.api.signInEmail({body:{email:K.email,password:W},asResponse:!0})}catch(J){let G=J instanceof Error?J.message:"Failed to create local session";return Y.json({success:!1,error:G},500)}});var vi0=RN1;zP();Uv();$Y();tZ();d5();XL();_Q();tZ();XL();tZ();u1();oa();function _i0(Y){let{toolOutputMap:Q}=Y;return vJ({description:"The input is a string. Dont make assumptions about its format; prefer using regexes and string manipulation to extract the desired information. You may call this tool multiple times to extract the desired information.",inputExamples:[{input:{tool_call_id:"tool_call_id_1",code:"export default (input) => { return input.match(/[a-z]/g); }"}},{input:{tool_call_id:"tool_call_id_2",code:"export default (input) => { return input.split(' ').map(word => word.length); }"}}],inputSchema:p8(q.object({tool_call_id:q.string(),code:q.string().min(1).describe("JavaScript code to transform the tool output. The code must be an ES module: `export default (input) => { ... }`")})),execute:async({tool_call_id:X,code:J})=>{if(!Q.has(X))throw Error(`Tool output not found for tool call id: ${X}`);let G=Q.get(X),K=await Fz1({input:G,code:J,timeoutMs:5000}),W=IN1({return:K.returnValue});if(W>4000)throw Error(`Tool call ${X} output is too long to display (${W} tokens), reduce or truncate the output`);return{result:K.returnValue,error:K.error,consoleLogs:K.consoleLogs}}})}var Vu6=4,qu6=/[\u3000-\u303f\u3040-\u309f\u30a0-\u30ff\u4e00-\u9fff\u3400-\u4dbf\uf900-\ufaff]/g;function Bu6(Y){if(!Y)return 0;let Q=Y.match(qu6)?.length??0,X=Y.length-Q;return Math.ceil(X/Vu6)+Math.ceil(Q*1.5)}function IN1(Y){let Q=typeof Y==="string"?Y:JSON.stringify(Y);return Bu6(Q)}function Er(Y,Q){if(Y==="yolo")return!1;if(Y==="none")return!0;return Q!==!0}function Tr(Y){let Q=Y.get("meshContext").organization;if(!Q)throw Error("Organization context is required");if((Q.slug??Q.id)!==Y.req.param("org"))throw Error("Organization mismatch");return Q}async function Ev(Y,Q,X,J="none",G){let K=!G?.disableOutputTruncation,Z=(await Y.listTools()).tools.map((H)=>{let{name:$,title:F,description:V,inputSchema:B,annotations:U,_meta:D}=H;return[$,vJ({title:F??$,description:V,inputSchema:IW(B),outputSchema:void 0,needsApproval:Er(J,U?.readOnlyHint),execute:async(z,L)=>{let w=performance.now();try{return await Y.callTool({name:H.name,arguments:z},iK,{signal:L.abortSignal,timeout:Gi0})}finally{if(X){let E=performance.now()-w;X.write({type:"data-tool-metadata",id:L.toolCallId,data:{_meta:D,annotations:U,latencyMs:E}})}}},toModelOutput:async({output:z,toolCallId:L})=>{if(K){let E=IN1(z.structuredContent??z.content);if(E>4000)return Q.set(L,JSON.stringify(z.structuredContent??z.content)),{type:"text",value:`Tool call ${L} output is too long to display (${E} tokens), use the read_tool_output tool`}}if(z.isError)return{type:"error-text",value:z.content.map((T)=>T.type==="text"?T.text:null).filter(Boolean).join(`
|
|
1387
1387
|
`)||"Unknown error"};if("structuredContent"in z)return{type:"json",value:z.structuredContent};return{type:"text",value:z.content.map((E)=>{if(E.type==="text")return E.text;return JSON.stringify(E)}).join(`
|
|
1388
1388
|
`)}}})]});return Object.fromEntries(Z)}async function jN1(Y){let Q=Y.get("meshContext"),X=Q.auth?.user?.id;if(!X)throw new tQ(401,{message:"Unauthorized"});let J=Tr(Y),G=Y.req.param("threadId");if(!G)throw new tQ(400,{message:"Missing thread ID"});if(/[.*>\s]/.test(G))throw new tQ(400,{message:"Invalid thread ID"});let K=await Q.storage.threads.get(G);if(!K||K.organization_id!==J.id)throw new tQ(404,{message:"Thread not found"});if(K.created_by!==X)throw new tQ(403,{message:"Not authorized"});return{ctx:Q,organization:J,thread:K,threadId:G,userId:X}}tZ();u1();var Uu6=q.object({search_term:q.string().optional().describe("Optional search term to filter agents by name, title, or description. Leave empty to return all available agents.")}),Du6=q.object({agents:q.array(q.object({agent_id:q.string().describe("Unique identifier for the agent"),name:q.string().describe("Human-readable agent name"),purpose:q.string().nullable().describe("What the agent is designed to do"),capabilities:q.array(q.string()).describe("List of capabilities the agent has")}))}),zu6="Search for agents configured in the organization. Returns agent metadata including purpose and capabilities. Use this to discover specialized agents before delegating work with subtask_run.",Ou6={readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1};function yi0(Y,Q,X){let{organization:J,needsApproval:G}=Q;return vJ({description:zu6,inputSchema:p8(Uu6),outputSchema:p8(Du6),needsApproval:G,execute:async({search_term:K},W)=>{let Z=performance.now();try{let $=(await X.storage.virtualMcps.list(J.id)).filter((V)=>V.status==="active");if(K&&K.trim().length>0){let V=K.toLowerCase();$=$.filter((B)=>{let U=B.title.toLowerCase().includes(V),D=B.description?.toLowerCase().includes(V)??!1;return U||D})}return{agents:$.map((V)=>({agent_id:V.id,name:V.title,purpose:V.description,capabilities:[]}))}}finally{let H=performance.now()-Z;Y.write({type:"data-tool-metadata",id:W.toolCallId,data:{annotations:Ou6,latencyMs:H}})}}})}Uv();$Y();tZ();u1();var Nu6=q.object({prompt:q.string().min(1).max(50000).describe("The task to delegate to the subagent. Be specific and self-contained \u2014 "+"the subagent has no access to the parent conversation history."),agent_id:q.string().min(1).max(128).describe("The ID of the agent (Virtual MCP) to delegate to. This agent must exist and be active in the current organization.")}),Lu6=`Delegate a self-contained task to another agent. The subagent runs independently with its own tools and returns results when complete. Use this when a task is better handled by a specialized agent, or to parallelize work across agents.
|
|
1389
1389
|
|