@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/cli.js
CHANGED
|
@@ -1208,7 +1208,7 @@ data:
|
|
|
1208
1208
|
`;if(J)G+=`id: ${J}
|
|
1209
1209
|
`;return G+=`data: ${JSON.stringify(X)}
|
|
1210
1210
|
|
|
1211
|
-
`,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((N)=>h5.parse(N));else W=[h5.parse(K)]}catch{return this.createJsonErrorResponse(400,-32700,"Parse error: Invalid JSON-RPC message")}let Z=W.some(C41);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 N=this.validateSession(Y);if(N)return N;let w=this.validateProtocolVersion(Y);if(w)return w}if(!W.some(RK)){for(let N of W)this.onmessage?.(N,{authInfo:Q?.authInfo,requestInfo:G});return new Response(null,{status:202})}let $=crypto.randomUUID(),F=W.find((N)=>C41(N)),V=F?F.params.protocolVersion:Y.headers.get("mcp-protocol-version")??j21;if(this._enableJsonResponse)return new Promise((N)=>{this._streamMapping.set($,{resolveJson:N,cleanup:()=>{this._streamMapping.delete($)}});for(let w of W)if(RK(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:(N)=>{U=N},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 N of W)if(RK(N))this._streamMapping.set($,{controller:U,encoder:B,cleanup:()=>{this._streamMapping.delete($);try{U.close()}catch{}}}),this._requestToStreamMapping.set(N.id,$);await this.writePrimingEvent(U,B,$,V);for(let N of W){let w,E;if(RK(N)&&this._eventStore&&V>="2025-11-25")w=()=>{this.closeSSEStream(N.id)},E=()=>{this.closeStandaloneSSEStream()};this.onmessage?.(N,{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&&!MU.includes(Q))return this.createJsonErrorResponse(400,-32000,`Bad Request: Unsupported protocol version: ${Q} (supported versions: ${MU.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(YZ(Y)||bL(Y))X=Y.id;if(X===void 0){if(YZ(Y)||bL(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(YZ(Y)||bL(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 EA=S(()=>{_Q()});var fk0="SELF",sn=(Y)=>{return typeof Y==="object"&&Y!==null&&"handler"in Y&&"events"in Y&&typeof Y.handler==="function"&&Array.isArray(Y.events)},bk0=(Y)=>{return typeof Y==="object"&&Y!==null&&"handler"in Y&&"events"in Y&&typeof Y.handler==="function"&&Array.isArray(Y.events)},yk0="::",hk0=(Y)=>{let Q=Y.indexOf(yk0);if(Q===-1)return null;let X=Y.substring(0,Q),J=Y.substring(Q+yk0.length);return[X,J]},lR6=(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]},xk0=(Y)=>{if(sn(Y))return[];return Object.keys(Y)},dR6=(Y,Q)=>{if(sn(Y))return Y.events;let X=Y[Q];if(!X)return[];if(bk0(X))return X.events;return Object.keys(X)},on=(Y,Q,X)=>{if(Y===fk0){if(!X)return console.warn("[Event] SELF binding used but no connectionId available"),null;return X}let J=Q[Y];if(!mq1(J))return console.warn(`[Event] Binding "${Y}" not found in state`),null;return J.value},pR6=(Y,Q,X)=>{let J=Q;if(sn(Y)){let K=[];for(let W of Y.events){let Z=hk0(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=on(H,J,X);if(!F)continue;K.push({eventType:$,publisher:F})}return K}let G=[];for(let K of xk0(Y)){let W=on(K,J,X);if(!W)continue;let Z=dR6(Y,K);for(let H of Z)G.push({eventType:H,publisher:W})}return G},cR6=(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},nR6=(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},iR6=(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},aR6=async(Y,Q,X,J,G)=>{let K=J;if(sn(Y)){let F=new Set;for(let B of Y.events){let U=hk0(B);if(!U)continue;let[D,z]=U,N=on(D,K,G);if(!N)continue;F.add(`${N}:${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 xk0(Y)){let V=on(F,K,G);if(V)W.set(V,F)}let Z=cR6(Q),H=[];for(let[F,V]of Z){let B=W.get(F);if(!B)continue;let U=Y[B];if(!U)continue;if(bk0(U)){H.push((async()=>{try{return await U.handler({events:V},X)}catch(N){let w={};for(let E of V)w[E.id]={success:!1,error:N instanceof Error?N.message:String(N)};return{results:w}}})());continue}let D=U,z=nR6(V);for(let[N,w]of z){let E=D[N];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 iR6($)},tn;var iq1=S(()=>{cn();tn={subscriptions:pR6,execute:aR6,parseCron:lR6}});function s$(Y){return{...Y,execute:(Q)=>{return Y.execute({...Q,runtimeContext:sS(Q.runtimeContext)})}}}function aq1(Y){return Y&&"streamable"in Y&&Y.streamable===!0}var sS=(Y)=>{let Q=kS.getStore();if(!Q){if(Y)return Y;throw Error("Missing context, did you forget to call State.bind?")}return Q},rR6=(Y,Q)=>{let X=Q;return typeof X[Y]<"u"?X[Y]:Q?.MESH_REQUEST_CONTEXT?.state?.[Y]},oR6=({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?[s$({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=rR6(K,W.runtimeContext.env);if(Y&&Z&&H){let $=W.runtimeContext.env.MESH_REQUEST_CONTEXT?.connectionId,F=tn.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=tn.parseCron(B.eventType);if(U){let[,D]=U;await H.EVENT_PUBLISH({type:B.eventType,cron:D})}}))}}return Promise.resolve({})}})]:[],...Y?.handlers?[s$({id:"ON_EVENTS",description:"Receive and process CloudEvents from the event bus. Returns per-event or batch results.",inputSchema:nn,outputSchema:an,execute:async(W)=>{let Z=W.runtimeContext.env,H=Z.MESH_REQUEST_CONTEXT?.state,$=Z.MESH_REQUEST_CONTEXT?.connectionId;return tn.execute(Y.handlers,W.context.events,Z,H,$)}})]:[],s$({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`]:[]]})}})]},gk0=(Y)=>{let Q=async(G)=>{await Y.before?.(G);let K=new g3({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(...oR6(Y));for(let B of Z)K.registerTool(B.id,{_meta:{streamable:aq1(B),...B._meta??{}},description:B.description,annotations:B.annotations,inputSchema:B.inputSchema&&"shape"in B.inputSchema?B.inputSchema.shape:q.object({}).shape,outputSchema:aq1(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:sS()});if(aq1(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:sS()})});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:sS()}),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 iZ;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=kS.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:sS()})}}};var en=S(()=>{oS();fT();EA();m1();iq1();lq1();iq1()});var sR6=({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},uk0=(Y)=>()=>{return{...Y??{}}},tR6=({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=m9(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:uk0(H.user??H.sub)}}else if(typeof X==="object"){Z=X;let H=m9(X.token),$=H.metadata??{},F=H.appName;Z.authorization??=W,Z.callerApp=F,Z.connectionId??=H.connectionId??$.connectionId,Z.ensureAuthenticated=uk0(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=Zk0(Z),sR6({env:K,server:Q,url:J}),K},eR6,mk0=(Y)=>{let Q=gk0(Y),X=Y.cors??eR6,J=Y.oauth,G=J?Uk0(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 Hk0(W,X??{});let $=tR6({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 kS.run({req:W,env:$,ctx:H},async()=>await K(W,$,H));if(X!==!1)return $k0(F,W,X??{});return F}}};var lk0=S(()=>{tG();cn();Fk0();lq1();en();en();cn();gq1();eR6={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 Yi(Y){return Buffer.from(String(Y),"utf8").toString("base64")}function Qi(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 dz(Y){if(!Y)return[];return NX(Y.split(","))}function Xi(Y,Q){if(!Y)return Q;try{return JSON.parse(Y)}catch{return Q}}function Ji(Y){return Y?.["mcp.mesh"]??{}}function Gi(Y){return Y.length?Y.join(","):null}function YI6(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 QI6(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 tS(Y,Q){if(!Q)return!0;if(Array.isArray(Q.conditions)&&Q.conditions.length){if(Q.operator==="and")return Q.conditions.every((X)=>tS(Y,X));if(Q.operator==="or")return Q.conditions.some((X)=>tS(Y,X));if(Q.operator==="not")return!Q.conditions.some((X)=>tS(Y,X))}return QI6(YI6(Y,Q.field),Q.operator,Q.value)}class eS{db;constructor(Y){this.db=Y}async create(Y){let Q=new Date().toISOString(),X=Y._meta??{},J=Ji(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:Gi(G),categories:Gi(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=Ji(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=Gi(W),H.categories=Gi(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=Ji(D._meta),N=NX(z.tags),w=NX(z.categories),E=K.length===0||K.every((P)=>N.includes(P)),T=W.length===0||W.every((P)=>w.includes(P)),C=tS(D,Q.where);return E&&T&&C}),$=Qi(Q.cursor)??Q.offset??0,F=Q.limit??24,V=Z.slice($,$+F),B=$+F<Z.length,U=B?Yi($+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=Ji(U._meta),z=NX(D.tags),N=NX(D.categories),w=G.length===0||G.every((C)=>z.includes(C)),E=K.length===0||K.every((C)=>N.includes(C)),T=tS(U,Q.where);return w&&E&&T}),H=Qi(Q.cursor)??Q.offset??0,$=Q.limit??24,F=W.slice(H,H+$),V=H+$<W.length,B=V?Yi(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 dz(Z.tags))G.set(H,(G.get(H)??0)+1);for(let H of dz(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((N)=>{if(K){let w=Xi(N.server_json,{}),T=Xi(N.meta_json,{})?.["mcp.mesh"]?.short_description??"";if(![N.id,N.title,N.description??"",w.name??"",w.description??"",T].join(" ").toLowerCase().includes(K))return!1}if(W.length>0){let w=NX(dz(N.tags));if(!W.every((E)=>w.includes(E)))return!1}if(Z.length>0){let w=NX(dz(N.categories));if(!Z.every((E)=>w.includes(E)))return!1}return!0}),F=Qi(Q.cursor)??0,V=Q.limit??20,B=H.slice(F,F+V),U=F+V<H.length,D=U?Yi(F+V):void 0;return{items:B.map((N)=>({id:N.id,title:N.title,tags:dz(N.tags),categories:dz(N.categories),is_public:N.is_public===1,is_unlisted:N.is_unlisted===1})),totalCount:H.length,hasMore:U,nextCursor:D}}deserialize(Y){let Q=Xi(Y.server_json,{}),X=Xi(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 rq1=()=>{};var Wi,XI6,Zi,aZ,oq1,JI6,QB,TA,P5,pz,sq1,dk0,tq1,pk0,eq1,ck0,YB1,nk0,CA,GI6,Yk,WI6,Ki,QB1,ik0,ak0,XB1,rk0,ok0,sk0,tk0,ek0,Yv0,Qv0,Xv0,ZI6,JB1,Jv0,Gv0,GB1,Wv0;var nY=S(()=>{A5();m1();Wi=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()}),XI6=q.object({name:q.string(),description:q.string().nullable().optional()}),Zi=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(XI6).optional()}).optional()}).catchall(q.unknown()),aZ=q.object({id:q.string(),name:q.string().optional(),title:q.string(),description:q.string().nullable().optional(),_meta:Zi.optional(),server:Wi,is_public:q.boolean().optional(),created_at:q.string(),updated_at:q.string(),created_by:q.string().optional()}),oq1=q.object({id:q.string(),title:q.string(),description:q.string().nullable().optional(),_meta:Zi.optional(),server:Wi,is_public:q.boolean().optional()}),JI6=q.object({title:q.string().optional(),description:q.string().nullable().optional(),_meta:Zi.optional(),server:Wi.optional(),is_public:q.boolean().optional()}),QB=nZ.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."),TA=q.object({items:q.array(aZ),totalCount:q.number(),hasMore:q.boolean().optional(),nextCursor:q.string().optional()}),P5=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."),pz=q.object({item:aZ.nullable()}),sq1=q.object({data:oq1}),dk0=q.object({item:aZ}),tq1=q.object({items:q.array(oq1).min(1)}),pk0=q.object({created:q.number(),errors:q.array(q.object({id:q.string(),error:q.string()}))}),eq1=q.object({id:q.string(),data:JI6}),ck0=q.object({item:aZ}),YB1=q.object({id:q.string()}),nk0=q.object({item:aZ}),CA=q.object({tags:q.array(q.object({value:q.string(),count:q.number()})),categories:q.array(q.object({value:q.string(),count:q.number()}))}),GI6=q.enum(["description","short_description","tags","categories","readme"]),Yk=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)."),WI6=q.object({id:q.string(),title:q.string(),tags:q.array(q.string()),categories:q.array(q.string()),is_public:q.boolean()}),Ki=q.object({items:q.array(WI6),totalCount:q.number(),hasMore:q.boolean().optional(),nextCursor:q.string().optional()}),QB1=q.object({type:GI6.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()})}),ik0=q.object({result:q.string().optional(),items:q.array(q.string()).optional()}),ak0=q.enum(["pending","approved","rejected"]),XB1=q.object({id:q.string(),organization_id:q.string(),requested_id:q.string().nullable().optional(),status:ak0,title:q.string(),description:q.string().nullable().optional(),_meta:Zi.optional(),server:Wi,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()}),rk0=q.object({status:ak0.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()}),ok0=q.object({items:q.array(XB1),totalCount:q.number()}),sk0=q.object({id:q.string(),status:q.enum(["approved","rejected"]),reviewerNotes:q.string().nullable().optional()}),tk0=q.object({item:XB1}),ek0=q.object({pending:q.number()}),Yv0=q.object({id:q.string()}),Qv0=q.object({item:XB1.nullable()}),Xv0=q.object({data:oq1,requester:q.object({name:q.string().optional(),email:q.string().email().optional()}).optional()}),ZI6=q.object({id:q.string(),name:q.string(),prefix:q.string(),createdAt:q.string()}),JB1=q.object({name:q.string().min(1).max(64).describe("A descriptive name for this key")}),Jv0=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()}),Gv0=q.object({items:q.array(ZI6)}),GB1=q.object({keyId:q.string()}),Wv0=q.object({success:q.boolean(),keyId:q.string()})});function KI6(Y,Q){let X=s$({id:"COLLECTION_REGISTRY_APP_LIST",description:"List public registry items",inputSchema:QB,outputSchema:TA,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=s$({id:"COLLECTION_REGISTRY_APP_GET",description:"Get a public registry item by ID or name",inputSchema:P5,outputSchema:pz,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=s$({id:"COLLECTION_REGISTRY_APP_VERSIONS",description:"Get available versions of a public registry item",inputSchema:P5,outputSchema:q.object({versions:q.array(pz.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=s$({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:Yk,outputSchema:Ki,execute:async({context:Z})=>{return await Y.search(Q,Z,{publicOnly:!0})}}),W=s$({id:"COLLECTION_REGISTRY_APP_FILTERS",description:"Get available tags and categories for public registry items",inputSchema:q.object({}),outputSchema:CA,execute:async()=>{return await Y.getFilters(Q,{publicOnly:!0})}});return[X,K,J,G,W]}function WB1(Y,Q){let X=Q.db,J=new eS(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=KI6(J,W.id),H=mk0({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 Zv0=S(()=>{lk0();en();m1();rq1();nY()});import{randomUUID as HI6}from"crypto";function Kv0(Y,Q){if(!Y)return Q;try{return JSON.parse(Y)}catch{return Q}}class Qk{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=HI6(),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:Kv0(Y.meta_json,{}),server:Kv0(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 ZB1=()=>{};import{randomUUID as $I6}from"crypto";async function Hv0(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 FI6(){let Y=new Uint8Array(32);return crypto.getRandomValues(Y),`prk_${Array.from(Y).map((X)=>X.toString(16).padStart(2,"0")).join("")}`}class Xk{db;constructor(Y){this.db=Y}async generate(Y,Q){let X=$I6(),J=FI6(),G=await Hv0(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 Hv0(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 KB1=()=>{};import{sql as VI6}from"kysely";import{randomUUID as $v0}from"crypto";async function BI6(Y){let Q=new Date().toISOString(),X=$v0(),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:$v0(),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 VI6`SELECT pg_notify('mesh_events', ${X})`.execute(Y.db)}catch{}}async function UI6(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 DI6(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","=",cH).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):Vv0;return{acceptPublishRequests:!0,requireApiToken:K.requireApiToken===!0,rateLimitEnabled:K.rateLimitEnabled===void 0?Fv0:K.rateLimitEnabled===!0,rateLimitWindow:W,rateLimitMax:H}}}return{acceptPublishRequests:!1,requireApiToken:!1,rateLimitEnabled:Fv0,rateLimitWindow:qI6,rateLimitMax:Vv0}}async function zI6(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 OI6(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 HB1(Y,Q){let{db:X,db:J}=Q,G=new Qk(J),K=new Xk(J);Y.post("/org/:orgRef/registry/publish-request",async(W)=>{let Z=W.req.param("orgRef"),H=await UI6(X,Z);if(!H)return W.json({error:"Organization not found"},404);let $=await DI6(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 zI6(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=Xv0.safeParse(F);if(!V.success)return W.json({error:"Invalid publish request payload",details:q.treeifyError(V.error)},400);let B=await OI6(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 BI6({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 Fv0=!0,qI6="hour",Vv0=100;var qv0=S(()=>{QY();m1();gz();ZB1();KB1();nY()});var Bv0=S(()=>{Zv0();qv0()});function Uv0(Y){$B1=Y}function v4(){if(!$B1)throw Error(`Plugin storage not initialized. Make sure the "${cH}" plugin is enabled.`);return $B1}async function LI6(Y){if(!Y.organization)throw Error("Organization context required");return await Y.access.check(),Y}function Z6(Y,Q){return async(X,J)=>{let G=await LI6(J);return Q(X,G)}}function NI6(Y){if(!Y)return{};if(typeof Y==="string")try{return JSON.parse(Y)}catch{return{}}if(typeof Y==="object")return Y;return{}}async function Jk(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","=",cH).execute()).map((K)=>NI6(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 $B1=null;var Z9=S(()=>{gz()});import{randomUUID as Dv0}from"crypto";function zv0(Y,Q){if(!Y)return Q;try{return JSON.parse(Y)}catch{return Q}}class FB1{db;constructor(Y){this.db=Y}async create(Y){let Q=Dv0(),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:zv0(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 VB1{db;constructor(Y){this.db=Y}async create(Y){let Q=Dv0(),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:zv0(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 Ov0=()=>{};import{randomUUID as MI6}from"crypto";class qB1{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:MI6(),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 Lv0=()=>{};function Nv0(Y){let Q=Y.db,X={items:new eS(Q),publishRequests:new Qk(Q),publishApiKeys:new Xk(Q),monitorRuns:new FB1(Q),monitorResults:new VB1(Q),monitorConnections:new qB1(Q)};return Uv0(X),X}var Mv0=S(()=>{Z9();rq1();ZB1();KB1();Ov0();Lv0()});var wv0;var Av0=S(()=>{nY();Z9();wv0={name:"REGISTRY_ITEM_BULK_CREATE",description:"Create many private registry items at once",inputSchema:tq1,outputSchema:pk0,handler:Z6(tq1,async(Y,Q)=>{let X=v4(),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 wI6(Y){return Array.from(new Set(Y.map((Q)=>Q.trim().toLowerCase()).filter((Q)=>Q.length>0)))}function AI6(Y){let X=Y.structuredContent?.content?.filter((J)=>J.type==="text"&&typeof J.text==="string").map((J)=>J.text??"").join(`
|
|
1211
|
+
`,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((N)=>h5.parse(N));else W=[h5.parse(K)]}catch{return this.createJsonErrorResponse(400,-32700,"Parse error: Invalid JSON-RPC message")}let Z=W.some(C41);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 N=this.validateSession(Y);if(N)return N;let w=this.validateProtocolVersion(Y);if(w)return w}if(!W.some(RK)){for(let N of W)this.onmessage?.(N,{authInfo:Q?.authInfo,requestInfo:G});return new Response(null,{status:202})}let $=crypto.randomUUID(),F=W.find((N)=>C41(N)),V=F?F.params.protocolVersion:Y.headers.get("mcp-protocol-version")??j21;if(this._enableJsonResponse)return new Promise((N)=>{this._streamMapping.set($,{resolveJson:N,cleanup:()=>{this._streamMapping.delete($)}});for(let w of W)if(RK(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:(N)=>{U=N},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 N of W)if(RK(N))this._streamMapping.set($,{controller:U,encoder:B,cleanup:()=>{this._streamMapping.delete($);try{U.close()}catch{}}}),this._requestToStreamMapping.set(N.id,$);await this.writePrimingEvent(U,B,$,V);for(let N of W){let w,E;if(RK(N)&&this._eventStore&&V>="2025-11-25")w=()=>{this.closeSSEStream(N.id)},E=()=>{this.closeStandaloneSSEStream()};this.onmessage?.(N,{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&&!MU.includes(Q))return this.createJsonErrorResponse(400,-32000,`Bad Request: Unsupported protocol version: ${Q} (supported versions: ${MU.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(YZ(Y)||bL(Y))X=Y.id;if(X===void 0){if(YZ(Y)||bL(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(YZ(Y)||bL(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 EA=S(()=>{_Q()});var fk0="SELF",sn=(Y)=>{return typeof Y==="object"&&Y!==null&&"handler"in Y&&"events"in Y&&typeof Y.handler==="function"&&Array.isArray(Y.events)},bk0=(Y)=>{return typeof Y==="object"&&Y!==null&&"handler"in Y&&"events"in Y&&typeof Y.handler==="function"&&Array.isArray(Y.events)},yk0="::",hk0=(Y)=>{let Q=Y.indexOf(yk0);if(Q===-1)return null;let X=Y.substring(0,Q),J=Y.substring(Q+yk0.length);return[X,J]},lR6=(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]},xk0=(Y)=>{if(sn(Y))return[];return Object.keys(Y)},dR6=(Y,Q)=>{if(sn(Y))return Y.events;let X=Y[Q];if(!X)return[];if(bk0(X))return X.events;return Object.keys(X)},on=(Y,Q,X)=>{if(Y===fk0){if(!X)return console.warn("[Event] SELF binding used but no connectionId available"),null;return X}let J=Q[Y];if(!mq1(J))return console.warn(`[Event] Binding "${Y}" not found in state`),null;return J.value},pR6=(Y,Q,X)=>{let J=Q;if(sn(Y)){let K=[];for(let W of Y.events){let Z=hk0(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=on(H,J,X);if(!F)continue;K.push({eventType:$,publisher:F})}return K}let G=[];for(let K of xk0(Y)){let W=on(K,J,X);if(!W)continue;let Z=dR6(Y,K);for(let H of Z)G.push({eventType:H,publisher:W})}return G},cR6=(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},nR6=(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},iR6=(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},aR6=async(Y,Q,X,J,G)=>{let K=J;if(sn(Y)){let F=new Set;for(let B of Y.events){let U=hk0(B);if(!U)continue;let[D,z]=U,N=on(D,K,G);if(!N)continue;F.add(`${N}:${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 xk0(Y)){let V=on(F,K,G);if(V)W.set(V,F)}let Z=cR6(Q),H=[];for(let[F,V]of Z){let B=W.get(F);if(!B)continue;let U=Y[B];if(!U)continue;if(bk0(U)){H.push((async()=>{try{return await U.handler({events:V},X)}catch(N){let w={};for(let E of V)w[E.id]={success:!1,error:N instanceof Error?N.message:String(N)};return{results:w}}})());continue}let D=U,z=nR6(V);for(let[N,w]of z){let E=D[N];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 iR6($)},tn;var iq1=S(()=>{cn();tn={subscriptions:pR6,execute:aR6,parseCron:lR6}});function s$(Y){return{...Y,execute:(Q)=>{return Y.execute({...Q,runtimeContext:sS(Q.runtimeContext)})}}}function aq1(Y){return Y&&"streamable"in Y&&Y.streamable===!0}var sS=(Y)=>{let Q=kS.getStore();if(!Q){if(Y)return Y;throw Error("Missing context, did you forget to call State.bind?")}return Q},rR6=(Y,Q)=>{let X=Q;return typeof X[Y]<"u"?X[Y]:Q?.MESH_REQUEST_CONTEXT?.state?.[Y]},oR6=({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?[s$({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=rR6(K,W.runtimeContext.env);if(Y&&Z&&H){let $=W.runtimeContext.env.MESH_REQUEST_CONTEXT?.connectionId,F=tn.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=tn.parseCron(B.eventType);if(U){let[,D]=U;await H.EVENT_PUBLISH({type:B.eventType,cron:D})}}))}}return Promise.resolve({})}})]:[],...Y?.handlers?[s$({id:"ON_EVENTS",description:"Receive and process CloudEvents from the event bus. Returns per-event or batch results.",inputSchema:nn,outputSchema:an,execute:async(W)=>{let Z=W.runtimeContext.env,H=Z.MESH_REQUEST_CONTEXT?.state,$=Z.MESH_REQUEST_CONTEXT?.connectionId;return tn.execute(Y.handlers,W.context.events,Z,H,$)}})]:[],s$({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`]:[]]})}})]},gk0=(Y)=>{let Q=async(G)=>{await Y.before?.(G);let K=new g3({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(...oR6(Y));for(let B of Z)K.registerTool(B.id,{_meta:{streamable:aq1(B),...B._meta??{}},description:B.description,annotations:B.annotations,inputSchema:B.inputSchema&&"shape"in B.inputSchema?B.inputSchema.shape:q.object({}).shape,outputSchema:aq1(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:sS()});if(aq1(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:sS()})});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:sS()}),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 iZ;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=kS.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:sS()})}}};var en=S(()=>{oS();fT();EA();m1();iq1();lq1();iq1()});var sR6=({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},uk0=(Y)=>()=>{return{...Y??{}}},tR6=({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=m9(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:uk0(H.user??H.sub)}}else if(typeof X==="object"){Z=X;let H=m9(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=uk0(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=Zk0(Z),sR6({env:K,server:Q,url:J}),K},eR6,mk0=(Y)=>{let Q=gk0(Y),X=Y.cors??eR6,J=Y.oauth,G=J?Uk0(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 Hk0(W,X??{});let $=tR6({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 kS.run({req:W,env:$,ctx:H},async()=>await K(W,$,H));if(X!==!1)return $k0(F,W,X??{});return F}}};var lk0=S(()=>{tG();cn();Fk0();lq1();en();en();cn();gq1();eR6={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 Yi(Y){return Buffer.from(String(Y),"utf8").toString("base64")}function Qi(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 dz(Y){if(!Y)return[];return NX(Y.split(","))}function Xi(Y,Q){if(!Y)return Q;try{return JSON.parse(Y)}catch{return Q}}function Ji(Y){return Y?.["mcp.mesh"]??{}}function Gi(Y){return Y.length?Y.join(","):null}function YI6(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 QI6(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 tS(Y,Q){if(!Q)return!0;if(Array.isArray(Q.conditions)&&Q.conditions.length){if(Q.operator==="and")return Q.conditions.every((X)=>tS(Y,X));if(Q.operator==="or")return Q.conditions.some((X)=>tS(Y,X));if(Q.operator==="not")return!Q.conditions.some((X)=>tS(Y,X))}return QI6(YI6(Y,Q.field),Q.operator,Q.value)}class eS{db;constructor(Y){this.db=Y}async create(Y){let Q=new Date().toISOString(),X=Y._meta??{},J=Ji(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:Gi(G),categories:Gi(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=Ji(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=Gi(W),H.categories=Gi(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=Ji(D._meta),N=NX(z.tags),w=NX(z.categories),E=K.length===0||K.every((P)=>N.includes(P)),T=W.length===0||W.every((P)=>w.includes(P)),C=tS(D,Q.where);return E&&T&&C}),$=Qi(Q.cursor)??Q.offset??0,F=Q.limit??24,V=Z.slice($,$+F),B=$+F<Z.length,U=B?Yi($+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=Ji(U._meta),z=NX(D.tags),N=NX(D.categories),w=G.length===0||G.every((C)=>z.includes(C)),E=K.length===0||K.every((C)=>N.includes(C)),T=tS(U,Q.where);return w&&E&&T}),H=Qi(Q.cursor)??Q.offset??0,$=Q.limit??24,F=W.slice(H,H+$),V=H+$<W.length,B=V?Yi(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 dz(Z.tags))G.set(H,(G.get(H)??0)+1);for(let H of dz(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((N)=>{if(K){let w=Xi(N.server_json,{}),T=Xi(N.meta_json,{})?.["mcp.mesh"]?.short_description??"";if(![N.id,N.title,N.description??"",w.name??"",w.description??"",T].join(" ").toLowerCase().includes(K))return!1}if(W.length>0){let w=NX(dz(N.tags));if(!W.every((E)=>w.includes(E)))return!1}if(Z.length>0){let w=NX(dz(N.categories));if(!Z.every((E)=>w.includes(E)))return!1}return!0}),F=Qi(Q.cursor)??0,V=Q.limit??20,B=H.slice(F,F+V),U=F+V<H.length,D=U?Yi(F+V):void 0;return{items:B.map((N)=>({id:N.id,title:N.title,tags:dz(N.tags),categories:dz(N.categories),is_public:N.is_public===1,is_unlisted:N.is_unlisted===1})),totalCount:H.length,hasMore:U,nextCursor:D}}deserialize(Y){let Q=Xi(Y.server_json,{}),X=Xi(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 rq1=()=>{};var Wi,XI6,Zi,aZ,oq1,JI6,QB,TA,P5,pz,sq1,dk0,tq1,pk0,eq1,ck0,YB1,nk0,CA,GI6,Yk,WI6,Ki,QB1,ik0,ak0,XB1,rk0,ok0,sk0,tk0,ek0,Yv0,Qv0,Xv0,ZI6,JB1,Jv0,Gv0,GB1,Wv0;var nY=S(()=>{A5();m1();Wi=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()}),XI6=q.object({name:q.string(),description:q.string().nullable().optional()}),Zi=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(XI6).optional()}).optional()}).catchall(q.unknown()),aZ=q.object({id:q.string(),name:q.string().optional(),title:q.string(),description:q.string().nullable().optional(),_meta:Zi.optional(),server:Wi,is_public:q.boolean().optional(),created_at:q.string(),updated_at:q.string(),created_by:q.string().optional()}),oq1=q.object({id:q.string(),title:q.string(),description:q.string().nullable().optional(),_meta:Zi.optional(),server:Wi,is_public:q.boolean().optional()}),JI6=q.object({title:q.string().optional(),description:q.string().nullable().optional(),_meta:Zi.optional(),server:Wi.optional(),is_public:q.boolean().optional()}),QB=nZ.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."),TA=q.object({items:q.array(aZ),totalCount:q.number(),hasMore:q.boolean().optional(),nextCursor:q.string().optional()}),P5=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."),pz=q.object({item:aZ.nullable()}),sq1=q.object({data:oq1}),dk0=q.object({item:aZ}),tq1=q.object({items:q.array(oq1).min(1)}),pk0=q.object({created:q.number(),errors:q.array(q.object({id:q.string(),error:q.string()}))}),eq1=q.object({id:q.string(),data:JI6}),ck0=q.object({item:aZ}),YB1=q.object({id:q.string()}),nk0=q.object({item:aZ}),CA=q.object({tags:q.array(q.object({value:q.string(),count:q.number()})),categories:q.array(q.object({value:q.string(),count:q.number()}))}),GI6=q.enum(["description","short_description","tags","categories","readme"]),Yk=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)."),WI6=q.object({id:q.string(),title:q.string(),tags:q.array(q.string()),categories:q.array(q.string()),is_public:q.boolean()}),Ki=q.object({items:q.array(WI6),totalCount:q.number(),hasMore:q.boolean().optional(),nextCursor:q.string().optional()}),QB1=q.object({type:GI6.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()})}),ik0=q.object({result:q.string().optional(),items:q.array(q.string()).optional()}),ak0=q.enum(["pending","approved","rejected"]),XB1=q.object({id:q.string(),organization_id:q.string(),requested_id:q.string().nullable().optional(),status:ak0,title:q.string(),description:q.string().nullable().optional(),_meta:Zi.optional(),server:Wi,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()}),rk0=q.object({status:ak0.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()}),ok0=q.object({items:q.array(XB1),totalCount:q.number()}),sk0=q.object({id:q.string(),status:q.enum(["approved","rejected"]),reviewerNotes:q.string().nullable().optional()}),tk0=q.object({item:XB1}),ek0=q.object({pending:q.number()}),Yv0=q.object({id:q.string()}),Qv0=q.object({item:XB1.nullable()}),Xv0=q.object({data:oq1,requester:q.object({name:q.string().optional(),email:q.string().email().optional()}).optional()}),ZI6=q.object({id:q.string(),name:q.string(),prefix:q.string(),createdAt:q.string()}),JB1=q.object({name:q.string().min(1).max(64).describe("A descriptive name for this key")}),Jv0=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()}),Gv0=q.object({items:q.array(ZI6)}),GB1=q.object({keyId:q.string()}),Wv0=q.object({success:q.boolean(),keyId:q.string()})});function KI6(Y,Q){let X=s$({id:"COLLECTION_REGISTRY_APP_LIST",description:"List public registry items",inputSchema:QB,outputSchema:TA,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=s$({id:"COLLECTION_REGISTRY_APP_GET",description:"Get a public registry item by ID or name",inputSchema:P5,outputSchema:pz,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=s$({id:"COLLECTION_REGISTRY_APP_VERSIONS",description:"Get available versions of a public registry item",inputSchema:P5,outputSchema:q.object({versions:q.array(pz.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=s$({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:Yk,outputSchema:Ki,execute:async({context:Z})=>{return await Y.search(Q,Z,{publicOnly:!0})}}),W=s$({id:"COLLECTION_REGISTRY_APP_FILTERS",description:"Get available tags and categories for public registry items",inputSchema:q.object({}),outputSchema:CA,execute:async()=>{return await Y.getFilters(Q,{publicOnly:!0})}});return[X,K,J,G,W]}function WB1(Y,Q){let X=Q.db,J=new eS(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=KI6(J,W.id),H=mk0({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 Zv0=S(()=>{lk0();en();m1();rq1();nY()});import{randomUUID as HI6}from"crypto";function Kv0(Y,Q){if(!Y)return Q;try{return JSON.parse(Y)}catch{return Q}}class Qk{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=HI6(),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:Kv0(Y.meta_json,{}),server:Kv0(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 ZB1=()=>{};import{randomUUID as $I6}from"crypto";async function Hv0(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 FI6(){let Y=new Uint8Array(32);return crypto.getRandomValues(Y),`prk_${Array.from(Y).map((X)=>X.toString(16).padStart(2,"0")).join("")}`}class Xk{db;constructor(Y){this.db=Y}async generate(Y,Q){let X=$I6(),J=FI6(),G=await Hv0(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 Hv0(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 KB1=()=>{};import{sql as VI6}from"kysely";import{randomUUID as $v0}from"crypto";async function BI6(Y){let Q=new Date().toISOString(),X=$v0(),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:$v0(),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 VI6`SELECT pg_notify('mesh_events', ${X})`.execute(Y.db)}catch{}}async function UI6(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 DI6(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","=",cH).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):Vv0;return{acceptPublishRequests:!0,requireApiToken:K.requireApiToken===!0,rateLimitEnabled:K.rateLimitEnabled===void 0?Fv0:K.rateLimitEnabled===!0,rateLimitWindow:W,rateLimitMax:H}}}return{acceptPublishRequests:!1,requireApiToken:!1,rateLimitEnabled:Fv0,rateLimitWindow:qI6,rateLimitMax:Vv0}}async function zI6(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 OI6(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 HB1(Y,Q){let{db:X,db:J}=Q,G=new Qk(J),K=new Xk(J);Y.post("/org/:orgRef/registry/publish-request",async(W)=>{let Z=W.req.param("orgRef"),H=await UI6(X,Z);if(!H)return W.json({error:"Organization not found"},404);let $=await DI6(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 zI6(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=Xv0.safeParse(F);if(!V.success)return W.json({error:"Invalid publish request payload",details:q.treeifyError(V.error)},400);let B=await OI6(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 BI6({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 Fv0=!0,qI6="hour",Vv0=100;var qv0=S(()=>{QY();m1();gz();ZB1();KB1();nY()});var Bv0=S(()=>{Zv0();qv0()});function Uv0(Y){$B1=Y}function v4(){if(!$B1)throw Error(`Plugin storage not initialized. Make sure the "${cH}" plugin is enabled.`);return $B1}async function LI6(Y){if(!Y.organization)throw Error("Organization context required");return await Y.access.check(),Y}function Z6(Y,Q){return async(X,J)=>{let G=await LI6(J);return Q(X,G)}}function NI6(Y){if(!Y)return{};if(typeof Y==="string")try{return JSON.parse(Y)}catch{return{}}if(typeof Y==="object")return Y;return{}}async function Jk(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","=",cH).execute()).map((K)=>NI6(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 $B1=null;var Z9=S(()=>{gz()});import{randomUUID as Dv0}from"crypto";function zv0(Y,Q){if(!Y)return Q;try{return JSON.parse(Y)}catch{return Q}}class FB1{db;constructor(Y){this.db=Y}async create(Y){let Q=Dv0(),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:zv0(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 VB1{db;constructor(Y){this.db=Y}async create(Y){let Q=Dv0(),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:zv0(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 Ov0=()=>{};import{randomUUID as MI6}from"crypto";class qB1{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:MI6(),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 Lv0=()=>{};function Nv0(Y){let Q=Y.db,X={items:new eS(Q),publishRequests:new Qk(Q),publishApiKeys:new Xk(Q),monitorRuns:new FB1(Q),monitorResults:new VB1(Q),monitorConnections:new qB1(Q)};return Uv0(X),X}var Mv0=S(()=>{Z9();rq1();ZB1();KB1();Ov0();Lv0()});var wv0;var Av0=S(()=>{nY();Z9();wv0={name:"REGISTRY_ITEM_BULK_CREATE",description:"Create many private registry items at once",inputSchema:tq1,outputSchema:pk0,handler:Z6(tq1,async(Y,Q)=>{let X=v4(),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 wI6(Y){return Array.from(new Set(Y.map((Q)=>Q.trim().toLowerCase()).filter((Q)=>Q.length>0)))}function AI6(Y){let X=Y.structuredContent?.content?.filter((J)=>J.type==="text"&&typeof J.text==="string").map((J)=>J.text??"").join(`
|
|
1212
1212
|
`).trim();if(X)return X;return Y.content?.filter((J)=>J.type==="text"&&typeof J.text==="string").map((J)=>J.text??"").join(`
|
|
1213
1213
|
`).trim()??""}function PI6(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.
|
|
1214
1214
|
Rules:
|
|
@@ -1512,7 +1512,7 @@ ${Q.stack}`;return G}}catch{}if(typeof Q.toString==="function")try{let G=Q.toStr
|
|
|
1512
1512
|
`.execute(Y),J=new Set(X.rows.map((W)=>`${W.plugin_id}/${W.name}`)),G=new Map;for(let{pluginId:W,migration:Z}of Q){if(!G.has(W))G.set(W,[]);G.get(W).push({name:Z.name,up:Z.up})}let K=0;for(let[W,Z]of G){Z.sort((H,$)=>H.name.localeCompare($.name));for(let H of Z){let $=`${W}/${H.name}`;if(J.has($))continue;if(K===0)console.log("\uD83D\uDD0C Running plugin migrations...");K++,console.log(` Running: ${$}`),await H.up(Y);let F=new Date().toISOString();await TF`
|
|
1513
1513
|
INSERT INTO plugin_migrations (plugin_id, name, timestamp)
|
|
1514
1514
|
VALUES (${W}, ${H.name}, ${F})
|
|
1515
|
-
`.execute(Y)}}if(K>0)console.log(`\u2705 ${K} plugin migration(s) completed`)}async function za0(Y,Q){await Zp6(Y,Q),await Kp6(Y,Q);let X=new Ua0({db:Y,provider:{getMigrations:()=>Promise.resolve(Rx)}}),{error:J,results:G}=await X.migrateToLatest();if(G?.forEach((K)=>{if(K.status==="Success")console.log(`\u2705 Migration "${K.migrationName}" executed successfully`);else if(K.status==="Error")console.error(`\u274C Failed to execute migration "${K.migrationName}"`)}),J)throw console.error("Failed to migrate"),console.error(J),J}async function $p6(Y){let{keepOpen:Q=!1,database:X,skipBetterAuth:J=!1,seed:G}=Y??{};if(!J&&!X)await qa0();let K=X??lZ(),W=async()=>{if(!Q&&!X)console.log("\uD83D\uDD12 Closing database connection..."),await Lj0(K).catch((Z)=>{console.warn("Warning: Error closing database:",Z)})};try{console.log("\uD83D\uDCCA Running Kysely migrations..."),await za0(K.db,K.type),console.log("\uD83C\uDF89 Core migrations completed successfully"),await Hp6(K.db);let Z;if(G)Z=await z91(K.db,G);return await W(),{seedResult:Z}}catch(Z){throw await W(),Z}}async function Fp6(){let Y=lZ(),Q=new Ua0({db:Y.db,provider:{getMigrations:()=>Promise.resolve(Rx)}}),{error:X,results:J}=await Q.migrateDown();if(J?.forEach((G)=>{if(G.status==="Success")console.log(`\u2705 Migration "${G.migrationName}" rolled back successfully`);else if(G.status==="Error")console.error(`\u274C Failed to rollback migration "${G.migrationName}"`)}),X)throw console.error("Failed to rollback migration"),console.error(X),X}var La0=S(()=>{D91();Qk1();Ba0();Kv();DA()});var AX;var EP=S(()=>{AX=class extends Error{res;status;constructor(Y=500,Q){super(Q?.message,{cause:Q?.cause});this.res=Q?.res,this.status=Y}getResponse(){if(this.res)return new Response(this.res.body,{status:this.status,headers:this.res.headers});return new Response(this.message,{status:this.status})}}});var Na0,Vp6,qp6=(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)=>!Vp6.test(W));if(K.length>0)throw new AX(400,{message:`Invalid Connection header value: ${K.join(", ")}`});G.forEach((W)=>{X.delete(W)})}}return Na0.forEach((J)=>{X.delete(J)}),{method:Y.method,body:Y.body,duplex:Y.body?"half":void 0,headers:X,signal:Y.signal}},Bp6=(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},Ma0=async(Y,Q)=>{let{raw:X,customFetch:J,strictConnectionProcessing:G=!1,...K}=Q instanceof Request?{raw:Q}:Q??{},W=new Request(Y,{...qp6(X,G),...Bp6(K)});W.headers.delete("accept-encoding");let Z=await(J||fetch)(W),H=new Headers(Z.headers);if(Na0.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 wa0=S(()=>{EP();Na0=["connection","keep-alive","proxy-authenticate","proxy-authorization","te","trailer","transfer-encoding","upgrade"],Vp6=/^[!#$%&'*+\-.0-9A-Z^_`a-z|~]+$/});var Aa0=(Y)=>(Q)=>{let X=new URL(Q.req.raw.url),J=new URL(Y);return J.pathname=X.pathname,J.search=X.search,Ma0(J,{raw:Q.req.raw,headers:{...Q.req.raw.headers}})};var Pa0=S(()=>{wa0()});import{resolve as Cv,dirname as Up6,join as Dp6,extname as zp6,basename as Op6,sep as Ea0}from"path";function Lp6(Y,Q){if(Y===Q||Op6(Y)==="index.html")return{"Cache-Control":"no-cache"};if(Y.includes(`${Ea0}assets${Ea0}`))return{"Cache-Control":"public, max-age=31536000, immutable"};return{}}function wp6(Y,Q){let X=Cv(Q),J=Cv(Y);return J===X||J.startsWith(X+"/")}function Ap6({requestPath:Y,clientDir:Q}){let X=Y.startsWith("/")?Y.slice(1):Y,J=Cv(Q,X);if(!wp6(J,Q))return null;return J}function XN1(Y,Q="../client"){let X=new URL(Y),J=Up6(X.pathname);return Cv(J,Q)}function Ta0(Y={}){let{env:Q="production",devServerUrl:X=Np6,clientDir:J=Mp6,isServerPath:G=()=>!1}=Y;if(Q==="development"){let K=Aa0(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 $=Ap6({requestPath:H,clientDir:J});if(!$)return null;let F=Dp6($,"index.html"),V=Cv(J,"index.html"),B=W.headers.get("accept"),D=B?.includes("text/html")||B?.includes("*/*")&&["",".html"].includes(zp6($))?[F,V]:[];for(let z of[$,...D])try{let N=Bun.file(z);if(await N.exists())return new Response(N,{headers:Lp6(z,V)})}catch{}if(H.includes("/assets/"))return new Response("Not Found",{status:404,headers:{"Cache-Control":"no-store"}});return null}}var Np6,Mp6="./dist/client";var Ca0=S(()=>{Pa0();Np6=`http://localhost:${process.env.VITE_PORT||"4000"}`});function Ia0(Y){if(!Y)return!1;try{return new URL(Y).host==="api.decocms.com"&&Y!=="https://api.decocms.com/mcp/registry"}catch{return!1}}var Ra0="https://api.decocms.com/mcp/registry";var JN1=(Y,Q,X)=>{return(J,G)=>{let K=-1;return W(0);async function W(Z){if(Z<=K)throw Error("next() called multiple times");K=Z;let H,$=!1,F;if(Y[Z])F=Y[Z][0][0],J.req.routeIndex=Z;else F=Z===Y.length&&G||void 0;if(F)try{H=await F(J,()=>W(Z+1))}catch(V){if(V instanceof Error&&Q)J.error=V,H=await Q(V,J),$=!0;else throw V}else if(J.finalized===!1&&X)H=await X(J);if(H&&(J.finalized===!1||$))J.res=H;return J}}};var ja0=()=>{};var Sa0;var ka0=S(()=>{Sa0=Symbol()});async function Pp6(Y,Q){let X=await Y.formData();if(X)return Ep6(X,Q);return{}}function Ep6(Y,Q){let X=Object.create(null);if(Y.forEach((J,G)=>{if(!(Q.all||G.endsWith("[]")))X[G]=J;else Tp6(X,G,J)}),Q.dot)Object.entries(X).forEach(([J,G])=>{if(J.includes("."))Cp6(X,J,G),delete X[J]});return X}var va0=async(Y,Q=Object.create(null))=>{let{all:X=!1,dot:J=!1}=Q,K=(Y instanceof Pr?Y.raw.headers:Y.headers).get("Content-Type");if(K?.startsWith("multipart/form-data")||K?.startsWith("application/x-www-form-urlencoded"))return Pp6(Y,{all:X,dot:J});return{}},Tp6=(Y,Q,X)=>{if(Y[Q]!==void 0)if(Array.isArray(Y[Q]))Y[Q].push(X);else Y[Q]=[Y[Q],X];else if(!Q.endsWith("[]"))Y[Q]=X;else Y[Q]=[X]},Cp6=(Y,Q,X)=>{let J=Y,G=Q.split(".");G.forEach((K,W)=>{if(W===G.length-1)J[K]=X;else{if(!J[K]||typeof J[K]!=="object"||Array.isArray(J[K])||J[K]instanceof File)J[K]=Object.create(null);J=J[K]}})};var _a0=S(()=>{GN1()});var ZN1=(Y)=>{let Q=Y.split("/");if(Q[0]==="")Q.shift();return Q},ya0=(Y)=>{let{groups:Q,path:X}=Rp6(Y),J=ZN1(X);return Ip6(J,Q)},Rp6=(Y)=>{let Q=[];return Y=Y.replace(/\{[^}]+\}/g,(X,J)=>{let G=`@${J}`;return Q.push([G,X]),G}),{groups:Q,path:Y}},Ip6=(Y,Q)=>{for(let X=Q.length-1;X>=0;X--){let[J]=Q[X];for(let G=Y.length-1;G>=0;G--)if(Y[G].includes(J)){Y[G]=Y[G].replace(J,Q[X][1]);break}}return Y},Er,fa0=(Y,Q)=>{if(Y==="*")return"*";let X=Y.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/);if(X){let J=`${Y}#${Q}`;if(!Er[J])if(X[2])Er[J]=Q&&Q[0]!==":"&&Q[0]!=="*"?[J,X[1],new RegExp(`^${X[2]}(?=/${Q})`)]:[Y,X[1],new RegExp(`^${X[2]}$`)];else Er[J]=[Y,X[1],!0];return Er[J]}return null},TP=(Y,Q)=>{try{return Q(Y)}catch{return Y.replace(/(?:%[0-9A-Fa-f]{2})+/g,(X)=>{try{return Q(X)}catch{return X}})}},ba0=(Y)=>TP(Y,decodeURI),KN1=(Y)=>{let Q=Y.url,X=Q.indexOf("/",Q.indexOf(":")+4),J=X;for(;J<Q.length;J++){let G=Q.charCodeAt(J);if(G===37){let K=Q.indexOf("?",J),W=Q.indexOf("#",J),Z=K===-1?W===-1?void 0:W:W===-1?K:Math.min(K,W),H=Q.slice(X,Z);return ba0(H.includes("%25")?H.replace(/%25/g,"%2525"):H)}else if(G===63||G===35)break}return Q.slice(X,J)},ha0=(Y)=>{let Q=KN1(Y);return Q.length>1&&Q.at(-1)==="/"?Q.slice(0,-1):Q},PO=(Y,Q,...X)=>{if(X.length)Q=PO(Q,...X);return`${Y?.[0]==="/"?"":"/"}${Y}${Q==="/"?"":`${Y?.at(-1)==="/"?"":"/"}${Q?.[0]==="/"?Q.slice(1):Q}`}`},Tr=(Y)=>{if(Y.charCodeAt(Y.length-1)!==63||!Y.includes(":"))return null;let Q=Y.split("/"),X=[],J="";return Q.forEach((G)=>{if(G!==""&&!/\:/.test(G))J+="/"+G;else if(/\:/.test(G))if(/\?/.test(G)){if(X.length===0&&J==="")X.push("/");else X.push(J);let K=G.replace("?","");J+="/"+K,X.push(J)}else J+="/"+G}),X.filter((G,K,W)=>W.indexOf(G)===K)},WN1=(Y)=>{if(!/[%+]/.test(Y))return Y;if(Y.indexOf("+")!==-1)Y=Y.replace(/\+/g," ");return Y.indexOf("%")!==-1?TP(Y,Rv):Y},xa0=(Y,Q,X)=>{let J;if(!X&&Q&&!/[%+]/.test(Q)){let W=Y.indexOf("?",8);if(W===-1)return;if(!Y.startsWith(Q,W+1))W=Y.indexOf(`&${Q}`,W+1);while(W!==-1){let Z=Y.charCodeAt(W+Q.length+1);if(Z===61){let H=W+Q.length+2,$=Y.indexOf("&",H);return WN1(Y.slice(H,$===-1?void 0:$))}else if(Z==38||isNaN(Z))return"";W=Y.indexOf(`&${Q}`,W+1)}if(J=/[%+]/.test(Y),!J)return}let G={};J??=/[%+]/.test(Y);let K=Y.indexOf("?",8);while(K!==-1){let W=Y.indexOf("&",K+1),Z=Y.indexOf("=",K);if(Z>W&&W!==-1)Z=-1;let H=Y.slice(K+1,Z===-1?W===-1?void 0:W:Z);if(J)H=WN1(H);if(K=W,H==="")continue;let $;if(Z===-1)$="";else if($=Y.slice(Z+1,W===-1?void 0:W),J)$=WN1($);if(X){if(!(G[H]&&Array.isArray(G[H])))G[H]=[];G[H].push($)}else G[H]??=$}return Q?G[Q]:G},ga0,ua0=(Y,Q)=>{return xa0(Y,Q,!0)},Rv;var TB=S(()=>{Er={},ga0=xa0,Rv=decodeURIComponent});var ma0=(Y)=>TP(Y,Rv),Pr;var GN1=S(()=>{EP();ka0();_a0();TB();Pr=class{raw;#Y;#Q;routeIndex=0;path;bodyCache={};constructor(Y,Q="/",X=[[]]){this.raw=Y,this.path=Q,this.#Q=X,this.#Y={}}param(Y){return Y?this.#X(Y):this.#J()}#X(Y){let Q=this.#Q[0][this.routeIndex][1][Y],X=this.#W(Q);return X&&/\%/.test(X)?ma0(X):X}#J(){let Y={},Q=Object.keys(this.#Q[0][this.routeIndex][1]);for(let X of Q){let J=this.#W(this.#Q[0][this.routeIndex][1][X]);if(J!==void 0)Y[X]=/\%/.test(J)?ma0(J):J}return Y}#W(Y){return this.#Q[1]?this.#Q[1][Y]:Y}query(Y){return ga0(this.url,Y)}queries(Y){return ua0(this.url,Y)}header(Y){if(Y)return this.raw.headers.get(Y)??void 0;let Q={};return this.raw.headers.forEach((X,J)=>{Q[J]=X}),Q}async parseBody(Y){return this.bodyCache.parsedBody??=await va0(this,Y)}#G=(Y)=>{let{bodyCache:Q,raw:X}=this,J=Q[Y];if(J)return J;let G=Object.keys(Q)[0];if(G)return Q[G].then((K)=>{if(G==="json")K=JSON.stringify(K);return new Response(K)[Y]()});return Q[Y]=X[Y]()};json(){return this.#G("text").then((Y)=>JSON.parse(Y))}text(){return this.#G("text")}arrayBuffer(){return this.#G("arrayBuffer")}blob(){return this.#G("blob")}formData(){return this.#G("formData")}addValidatedData(Y,Q){this.#Y[Y]=Q}valid(Y){return this.#Y[Y]}get url(){return this.raw.url}get method(){return this.raw.method}get[Sa0](){return this.#Q}get matchedRoutes(){return this.#Q[0].map(([[,Y]])=>Y)}get routePath(){return this.#Q[0].map(([[,Y]])=>Y)[this.routeIndex].path}}});var Cr,la0=(Y,Q)=>{let X=new String(Y);return X.isEscaped=!0,X.callbacks=Q,X},Iv=async(Y,Q,X,J,G)=>{if(typeof Y==="object"&&!(Y instanceof String)){if(!(Y instanceof Promise))Y=Y.toString();if(Y instanceof Promise)Y=await Y}let K=Y.callbacks;if(!K?.length)return Promise.resolve(Y);if(G)G[0]+=Y;else G=[Y];let W=Promise.all(K.map((Z)=>Z({phase:Q,buffer:G,context:J}))).then((Z)=>Promise.all(Z.filter(Boolean).map((H)=>Iv(H,Q,!1,J,G))).then(()=>G[0]));if(X)return la0(await W,K);else return W};var Rr=S(()=>{Cr={Stringify:1,BeforeStream:2,Stream:3}});var da0="text/plain; charset=UTF-8",HN1=(Y,Q)=>{return{"Content-Type":Y,...Q}},jv=(Y,Q)=>new Response(Y,Q),pa0=class{#Y;#Q;env={};#X;finalized=!1;error;#J;#W;#G;#K;#Z;#$;#H;#V;#q;constructor(Y,Q){if(this.#Y=Y,Q)this.#W=Q.executionCtx,this.env=Q.env,this.#$=Q.notFoundHandler,this.#q=Q.path,this.#V=Q.matchResult}get req(){return this.#Q??=new Pr(this.#Y,this.#q,this.#V),this.#Q}get event(){if(this.#W&&"respondWith"in this.#W)return this.#W;else throw Error("This context has no FetchEvent")}get executionCtx(){if(this.#W)return this.#W;else throw Error("This context has no ExecutionContext")}get res(){return this.#G||=jv(null,{headers:this.#H??=new Headers})}set res(Y){if(this.#G&&Y){Y=jv(Y.body,Y);for(let[Q,X]of this.#G.headers.entries()){if(Q==="content-type")continue;if(Q==="set-cookie"){let J=this.#G.headers.getSetCookie();Y.headers.delete("set-cookie");for(let G of J)Y.headers.append("set-cookie",G)}else Y.headers.set(Q,X)}}this.#G=Y,this.finalized=!0}render=(...Y)=>{return this.#Z??=(Q)=>this.html(Q),this.#Z(...Y)};setLayout=(Y)=>this.#K=Y;getLayout=()=>this.#K;setRenderer=(Y)=>{this.#Z=Y};header=(Y,Q,X)=>{if(this.finalized)this.#G=jv(this.#G.body,this.#G);let J=this.#G?this.#G.headers:this.#H??=new Headers;if(Q===void 0)J.delete(Y);else if(X?.append)J.append(Y,Q);else J.set(Y,Q)};status=(Y)=>{this.#J=Y};set=(Y,Q)=>{this.#X??=new Map,this.#X.set(Y,Q)};get=(Y)=>{return this.#X?this.#X.get(Y):void 0};get var(){if(!this.#X)return{};return Object.fromEntries(this.#X)}#F(Y,Q,X){let J=this.#G?new Headers(this.#G.headers):this.#H??new Headers;if(typeof Q==="object"&&"headers"in Q){let K=Q.headers instanceof Headers?Q.headers:new Headers(Q.headers);for(let[W,Z]of K)if(W.toLowerCase()==="set-cookie")J.append(W,Z);else J.set(W,Z)}if(X)for(let[K,W]of Object.entries(X))if(typeof W==="string")J.set(K,W);else{J.delete(K);for(let Z of W)J.append(K,Z)}let G=typeof Q==="number"?Q:Q?.status??this.#J;return jv(Y,{status:G,headers:J})}newResponse=(...Y)=>this.#F(...Y);body=(Y,Q,X)=>this.#F(Y,Q,X);text=(Y,Q,X)=>{return!this.#H&&!this.#J&&!Q&&!X&&!this.finalized?new Response(Y):this.#F(Y,Q,HN1(da0,X))};json=(Y,Q,X)=>{return this.#F(JSON.stringify(Y),Q,HN1("application/json",X))};html=(Y,Q,X)=>{let J=(G)=>this.#F(G,Q,HN1("text/html; charset=UTF-8",X));return typeof Y==="object"?Iv(Y,Cr.Stringify,!1,{}).then(J):J(Y)};redirect=(Y,Q)=>{let X=String(Y);return this.header("Location",!/[^\x00-\xFF]/.test(X)?X:encodeURI(X)),this.newResponse(null,Q??302)};notFound=()=>{return this.#$??=()=>jv(),this.#$(this)}};var Ir=S(()=>{GN1();Rr()});var y9="ALL",ca0="all",na0,jr="Can not add a route since the matcher is already built.",Sr;var CB=S(()=>{na0=["get","post","put","delete","options","patch"],Sr=class extends Error{}});var $N1="__COMPOSED_HANDLER";var FN1=()=>{};var jp6=(Y)=>{return Y.text("404 Not Found",404)},ia0=(Y,Q)=>{if("getResponse"in Y){let X=Y.getResponse();return Q.newResponse(X.body,X)}return console.error(Y),Q.text("Internal Server Error",500)},aa0=class Y{get;post;put;delete;options;patch;all;on;use;router;getPath;_basePath="/";#Y="/";routes=[];constructor(Q={}){[...na0,ca0].forEach((K)=>{this[K]=(W,...Z)=>{if(typeof W==="string")this.#Y=W;else this.#J(K,this.#Y,W);return Z.forEach((H)=>{this.#J(K,this.#Y,H)}),this}}),this.on=(K,W,...Z)=>{for(let H of[W].flat()){this.#Y=H;for(let $ of[K].flat())Z.map((F)=>{this.#J($.toUpperCase(),this.#Y,F)})}return this},this.use=(K,...W)=>{if(typeof K==="string")this.#Y=K;else this.#Y="*",W.unshift(K);return W.forEach((Z)=>{this.#J(y9,this.#Y,Z)}),this};let{strict:J,...G}=Q;Object.assign(this,G),this.getPath=J??!0?Q.getPath??KN1:ha0}#Q(){let Q=new Y({router:this.router,getPath:this.getPath});return Q.errorHandler=this.errorHandler,Q.#X=this.#X,Q.routes=this.routes,Q}#X=jp6;errorHandler=ia0;route(Q,X){let J=this.basePath(Q);return X.routes.map((G)=>{let K;if(X.errorHandler===ia0)K=G.handler;else K=async(W,Z)=>(await JN1([],X.errorHandler)(W,()=>G.handler(W,Z))).res,K[$N1]=G.handler;J.#J(G.method,G.path,K)}),this}basePath(Q){let X=this.#Q();return X._basePath=PO(this._basePath,Q),X}onError=(Q)=>{return this.errorHandler=Q,this};notFound=(Q)=>{return this.#X=Q,this};mount(Q,X,J){let G,K;if(J)if(typeof J==="function")K=J;else if(K=J.optionHandler,J.replaceRequest===!1)G=(H)=>H;else G=J.replaceRequest;let W=K?(H)=>{let $=K(H);return Array.isArray($)?$:[$]}:(H)=>{let $=void 0;try{$=H.executionCtx}catch{}return[H.env,$]};G||=(()=>{let H=PO(this._basePath,Q),$=H==="/"?0:H.length;return(F)=>{let V=new URL(F.url);return V.pathname=V.pathname.slice($)||"/",new Request(V,F)}})();let Z=async(H,$)=>{let F=await X(G(H.req.raw),...W(H));if(F)return F;await $()};return this.#J(y9,PO(Q,"*"),Z),this}#J(Q,X,J){Q=Q.toUpperCase(),X=PO(this._basePath,X);let G={basePath:this._basePath,path:X,method:Q,handler:J};this.router.add(Q,X,[J,G]),this.routes.push(G)}#W(Q,X){if(Q instanceof Error)return this.errorHandler(Q,X);throw Q}#G(Q,X,J,G){if(G==="HEAD")return(async()=>new Response(null,await this.#G(Q,X,J,"GET")))();let K=this.getPath(Q,{env:J}),W=this.router.match(G,K),Z=new pa0(Q,{path:K,matchResult:W,env:J,executionCtx:X,notFoundHandler:this.#X});if(W[0].length===1){let $;try{$=W[0][0][0][0](Z,async()=>{Z.res=await this.#X(Z)})}catch(F){return this.#W(F,Z)}return $ instanceof Promise?$.then((F)=>F||(Z.finalized?Z.res:this.#X(Z))).catch((F)=>this.#W(F,Z)):$??this.#X(Z)}let H=JN1(W[0],this.errorHandler,this.#X);return(async()=>{try{let $=await H(Z);if(!$.finalized)throw Error("Context is not finalized. Did you forget to return a Response object or `await next()`?");return $.res}catch($){return this.#W($,Z)}})()}fetch=(Q,...X)=>{return this.#G(Q,X[1],X[0],Q.method)};request=(Q,X,J,G)=>{if(Q instanceof Request)return this.fetch(X?new Request(Q,X):Q,J,G);return Q=Q.toString(),this.fetch(new Request(/^https?:\/\//.test(Q)?Q:`http://localhost${PO("/",Q)}`,X),J,G)};fire=()=>{addEventListener("fetch",(Q)=>{Q.respondWith(this.#G(Q.request,Q,void 0,Q.request.method))})}};var ra0=S(()=>{ja0();Ir();CB();FN1();TB()});function kr(Y,Q){let X=this.buildAllMatchers(),J=(G,K)=>{let W=X[G]||X[y9],Z=W[2][K];if(Z)return Z;let H=K.match(W[0]);if(!H)return[[],Sv];let $=H.indexOf("",1);return[W[1][$],H]};return this.match=J,J(Y,Q)}var Sv;var VN1=S(()=>{CB();Sv=[]});function kp6(Y,Q){if(Y.length===1)return Q.length===1?Y<Q?-1:1:-1;if(Q.length===1)return 1;if(Y===kv||Y===vv)return 1;else if(Q===kv||Q===vv)return-1;if(Y===vr)return 1;else if(Q===vr)return-1;return Y.length===Q.length?Y<Q?-1:1:Q.length-Y.length}var vr="[^/]+",kv=".*",vv="(?:|/.*)",EO,Sp6,oa0=class Y{#Y;#Q;#X=Object.create(null);insert(Q,X,J,G,K){if(Q.length===0){if(this.#Y!==void 0)throw EO;if(K)return;this.#Y=X;return}let[W,...Z]=Q,H=W==="*"?Z.length===0?["","",kv]:["","",vr]:W==="/*"?["","",vv]:W.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/),$;if(H){let F=H[1],V=H[2]||vr;if(F&&H[2]){if(V===".*")throw EO;if(V=V.replace(/^\((?!\?:)(?=[^)]+\)$)/,"(?:"),/\((?!\?:)/.test(V))throw EO}if($=this.#X[V],!$){if(Object.keys(this.#X).some((B)=>B!==kv&&B!==vv))throw EO;if(K)return;if($=this.#X[V]=new Y,F!=="")$.#Q=G.varIndex++}if(!K&&F!=="")J.push([F,$.#Q])}else if($=this.#X[W],!$){if(Object.keys(this.#X).some((F)=>F.length>1&&F!==kv&&F!==vv))throw EO;if(K)return;$=this.#X[W]=new Y}$.insert(Z,X,J,G,K)}buildRegExpStr(){let X=Object.keys(this.#X).sort(kp6).map((J)=>{let G=this.#X[J];return(typeof G.#Q==="number"?`(${J})@${G.#Q}`:Sp6.has(J)?`\\${J}`:J)+G.buildRegExpStr()});if(typeof this.#Y==="number")X.unshift(`#${this.#Y}`);if(X.length===0)return"";if(X.length===1)return X[0];return"(?:"+X.join("|")+")"}};var qN1=S(()=>{EO=Symbol(),Sp6=new Set(".\\+*[^]$()")});var sa0=class{#Y={varIndex:0};#Q=new oa0;insert(Y,Q,X){let J=[],G=[];for(let W=0;;){let Z=!1;if(Y=Y.replace(/\{[^}]+\}/g,(H)=>{let $=`@\\${W}`;return G[W]=[$,H],W++,Z=!0,$}),!Z)break}let K=Y.match(/(?::[^\/]+)|(?:\/\*$)|./g)||[];for(let W=G.length-1;W>=0;W--){let[Z]=G[W];for(let H=K.length-1;H>=0;H--)if(K[H].indexOf(Z)!==-1){K[H]=K[H].replace(Z,G[W][1]);break}}return this.#Q.insert(K,Q,J,this.#Y,X),J}buildRegExp(){let Y=this.#Q.buildRegExpStr();if(Y==="")return[/^$/,[],[]];let Q=0,X=[],J=[];return Y=Y.replace(/#(\d+)|@(\d+)|\.\*\$/g,(G,K,W)=>{if(K!==void 0)return X[++Q]=Number(K),"$()";if(W!==void 0)return J[Number(W)]=++Q,"";return""}),[new RegExp(`^${Y}`),X,J]}};var ta0=S(()=>{qN1()});function Yr0(Y){return ea0[Y]??=new RegExp(Y==="*"?"":`^${Y.replace(/\/\*$|([.\\+*[^\]$()])/g,(Q,X)=>X?`\\${X}`:"(?:|/.*)")}$`)}function _p6(){ea0=Object.create(null)}function yp6(Y){let Q=new sa0,X=[];if(Y.length===0)return vp6;let J=Y.map(($)=>[!/\*|\/:/.test($[0]),...$]).sort(([$,F],[V,B])=>$?1:V?-1:F.length-B.length),G=Object.create(null);for(let $=0,F=-1,V=J.length;$<V;$++){let[B,U,D]=J[$];if(B)G[U]=[D.map(([N])=>[N,Object.create(null)]),Sv];else F++;let z;try{z=Q.insert(U,F,B)}catch(N){throw N===EO?new Sr(U):N}if(B)continue;X[F]=D.map(([N,w])=>{let E=Object.create(null);w-=1;for(;w>=0;w--){let[T,C]=z[w];E[T]=C}return[N,E]})}let[K,W,Z]=Q.buildRegExp();for(let $=0,F=X.length;$<F;$++)for(let V=0,B=X[$].length;V<B;V++){let U=X[$][V]?.[1];if(!U)continue;let D=Object.keys(U);for(let z=0,N=D.length;z<N;z++)U[D[z]]=Z[U[D[z]]]}let H=[];for(let $ in W)H[$]=X[W[$]];return[K,H,G]}function CP(Y,Q){if(!Y)return;for(let X of Object.keys(Y).sort((J,G)=>G.length-J.length))if(Yr0(X).test(Q))return[...Y[X]];return}var vp6,ea0,_r=class{name="RegExpRouter";#Y;#Q;constructor(){this.#Y={[y9]:Object.create(null)},this.#Q={[y9]:Object.create(null)}}add(Y,Q,X){let J=this.#Y,G=this.#Q;if(!J||!G)throw Error(jr);if(!J[Y])[J,G].forEach((Z)=>{Z[Y]=Object.create(null),Object.keys(Z[y9]).forEach((H)=>{Z[Y][H]=[...Z[y9][H]]})});if(Q==="/*")Q="*";let K=(Q.match(/\/:/g)||[]).length;if(/\*$/.test(Q)){let Z=Yr0(Q);if(Y===y9)Object.keys(J).forEach((H)=>{J[H][Q]||=CP(J[H],Q)||CP(J[y9],Q)||[]});else J[Y][Q]||=CP(J[Y],Q)||CP(J[y9],Q)||[];Object.keys(J).forEach((H)=>{if(Y===y9||Y===H)Object.keys(J[H]).forEach(($)=>{Z.test($)&&J[H][$].push([X,K])})}),Object.keys(G).forEach((H)=>{if(Y===y9||Y===H)Object.keys(G[H]).forEach(($)=>Z.test($)&&G[H][$].push([X,K]))});return}let W=Tr(Q)||[Q];for(let Z=0,H=W.length;Z<H;Z++){let $=W[Z];Object.keys(G).forEach((F)=>{if(Y===y9||Y===F)G[F][$]||=[...CP(J[F],$)||CP(J[y9],$)||[]],G[F][$].push([X,K-H+Z+1])})}}match=kr;buildAllMatchers(){let Y=Object.create(null);return Object.keys(this.#Q).concat(Object.keys(this.#Y)).forEach((Q)=>{Y[Q]||=this.#X(Q)}),this.#Y=this.#Q=void 0,_p6(),Y}#X(Y){let Q=[],X=Y===y9;if([this.#Y,this.#Q].forEach((J)=>{let G=J[Y]?Object.keys(J[Y]).map((K)=>[K,J[Y][K]]):[];if(G.length!==0)X||=!0,Q.push(...G);else if(Y!==y9)Q.push(...Object.keys(J[y9]).map((K)=>[K,J[y9][K]]))}),!X)return null;else return yp6(Q)}};var BN1=S(()=>{CB();TB();VN1();qN1();ta0();vp6=[/^$/,[],Object.create(null)],ea0=Object.create(null)});var fp6=class{name="PreparedRegExpRouter";#Y;#Q;constructor(Y,Q){this.#Y=Y,this.#Q=Q}#X(Y,Q){let X=this.#Y[Y];X[1].forEach((J)=>J&&J.push(Q)),Object.values(X[2]).forEach((J)=>J[0].push(Q))}#J(Y,Q,X,J,G){let K=this.#Y[Y];if(!G)K[2][Q][0].push([X,{}]);else J.forEach((W)=>{if(typeof W==="number")K[1][W].push([X,G]);else K[2][W||Q][0].push([X,G])})}add(Y,Q,X){if(!this.#Y[Y]){let G=this.#Y[y9],K={};for(let W in G[2])K[W]=[G[2][W][0].slice(),Sv];this.#Y[Y]=[G[0],G[1].map((W)=>Array.isArray(W)?W.slice():0),K]}if(Q==="/*"||Q==="*"){let G=[X,{}];if(Y===y9)for(let K in this.#Y)this.#X(K,G);else this.#X(Y,G);return}let J=this.#Q[Q];if(!J)throw Error(`Path ${Q} is not registered`);for(let[G,K]of J)if(Y===y9)for(let W in this.#Y)this.#J(W,Q,X,G,K);else this.#J(Y,Q,X,G,K)}buildAllMatchers(){return this.#Y}match=kr};var Qr0=S(()=>{CB();VN1();BN1()});var Xr0=S(()=>{BN1();Qr0()});var UN1=class{name="SmartRouter";#Y=[];#Q=[];constructor(Y){this.#Y=Y.routers}add(Y,Q,X){if(!this.#Q)throw Error(jr);this.#Q.push([Y,Q,X])}match(Y,Q){if(!this.#Q)throw Error("Fatal error");let X=this.#Y,J=this.#Q,G=X.length,K=0,W;for(;K<G;K++){let Z=X[K];try{for(let H=0,$=J.length;H<$;H++)Z.add(...J[H]);W=Z.match(Y,Q)}catch(H){if(H instanceof Sr)continue;throw H}this.match=Z.match.bind(Z),this.#Y=[Z],this.#Q=void 0;break}if(K===G)throw Error("Fatal error");return this.name=`SmartRouter + ${this.activeRouter.name}`,W}get activeRouter(){if(this.#Q||this.#Y.length!==1)throw Error("No active router has been determined yet.");return this.#Y[0]}};var Jr0=S(()=>{CB()});var Gr0=S(()=>{Jr0()});var _v,bp6=(Y)=>{for(let Q in Y)return!0;return!1},Wr0=class Y{#Y;#Q;#X;#J=0;#W=_v;constructor(Q,X,J){if(this.#Q=J||Object.create(null),this.#Y=[],Q&&X){let G=Object.create(null);G[Q]={handler:X,possibleKeys:[],score:0},this.#Y=[G]}this.#X=[]}insert(Q,X,J){this.#J=++this.#J;let G=this,K=ya0(X),W=[];for(let Z=0,H=K.length;Z<H;Z++){let $=K[Z],F=K[Z+1],V=fa0($,F),B=Array.isArray(V)?V[0]:$;if(B in G.#Q){if(G=G.#Q[B],V)W.push(V[1]);continue}if(G.#Q[B]=new Y,V)G.#X.push(V),W.push(V[1]);G=G.#Q[B]}return G.#Y.push({[Q]:{handler:J,possibleKeys:W.filter((Z,H,$)=>$.indexOf(Z)===H),score:this.#J}}),G}#G(Q,X,J,G,K){for(let W=0,Z=X.#Y.length;W<Z;W++){let H=X.#Y[W],$=H[J]||H[y9],F={};if($!==void 0){if($.params=Object.create(null),Q.push($),G!==_v||K&&K!==_v)for(let V=0,B=$.possibleKeys.length;V<B;V++){let U=$.possibleKeys[V],D=F[$.score];$.params[U]=K?.[U]&&!D?K[U]:G[U]??K?.[U],F[$.score]=!0}}}}search(Q,X){let J=[];this.#W=_v;let K=[this],W=ZN1(X),Z=[],H=W.length,$=null;for(let F=0;F<H;F++){let V=W[F],B=F===H-1,U=[];for(let z=0,N=K.length;z<N;z++){let w=K[z],E=w.#Q[V];if(E)if(E.#W=w.#W,B){if(E.#Q["*"])this.#G(J,E.#Q["*"],Q,w.#W);this.#G(J,E,Q,w.#W)}else U.push(E);for(let T=0,C=w.#X.length;T<C;T++){let P=w.#X[T],I=w.#W===_v?{}:{...w.#W};if(P==="*"){let g=w.#Q["*"];if(g)this.#G(J,g,Q,w.#W),g.#W=I,U.push(g);continue}let[k,v,f]=P;if(!V&&!(f instanceof RegExp))continue;let b=w.#Q[k];if(f instanceof RegExp){if($===null){$=Array(H);let m=X[0]==="/"?1:0;for(let h=0;h<H;h++)$[h]=m,m+=W[h].length+1}let g=X.substring($[F]),r=f.exec(g);if(r){if(I[v]=r[0],this.#G(J,b,Q,w.#W,I),bp6(b.#Q)){b.#W=I;let m=r[0].match(/\//)?.length??0;(Z[m]||=[]).push(b)}continue}}if(f===!0||f.test(V))if(I[v]=V,B){if(this.#G(J,b,Q,I,w.#W),b.#Q["*"])this.#G(J,b.#Q["*"],Q,I,w.#W)}else b.#W=I,U.push(b)}}let D=Z.shift();K=D?U.concat(D):U}if(J.length>1)J.sort((F,V)=>{return F.score-V.score});return[J.map(({handler:F,params:V})=>[F,V])]}};var Zr0=S(()=>{CB();TB();_v=Object.create(null)});var DN1=class{name="TrieRouter";#Y;constructor(){this.#Y=new Wr0}add(Y,Q,X){let J=Tr(Q);if(J){for(let G=0,K=J.length;G<K;G++)this.#Y.insert(Y,J[G],X);return}this.#Y.insert(Y,Q,X)}match(Y,Q){return this.#Y.search(Y,Q)}};var Kr0=S(()=>{TB();Zr0()});var Hr0=S(()=>{Kr0()});var $Y;var $r0=S(()=>{ra0();Xr0();Gr0();Hr0();$Y=class extends aa0{constructor(Y={}){super(Y);this.router=Y.router??new UN1({routers:[new _r,new DN1]})}}});var N7=S(()=>{$r0()});var hp6,xp6,zN1=(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||!hp6.test(W))continue;let Z=G.substring(K+1).trim();if(Z.startsWith('"')&&Z.endsWith('"'))Z=Z.slice(1,-1);if(xp6.test(Z)){if(J[W]=Z.indexOf("%")!==-1?TP(Z,Rv):Z,Q)break}}return J};var Fr0=S(()=>{TB();hp6=/^[\w!#$%&'*.^`|~+-]+$/,xp6=/^[ !#-:<-[\]-~]*$/});var Vr0=(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 zN1(J,K)[K]}if(!J)return{};return zN1(J)};var qr0=S(()=>{Fr0()});var Br0=(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})}};var Ur0=()=>{};function gp6(){let{process:Y,Deno:Q}=globalThis;return!(typeof Q?.noColor==="boolean"?Q.noColor:Y!==void 0?"NO_COLOR"in Y?.env:!1)}async function Dr0(){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}})():!gp6())}var zr0=()=>{};async function Or0(Y,Q,X,J,G=0,K){let W=Q==="<--"?`${Q} ${X} ${J}`:`${Q} ${X} ${J} ${await lp6(G)} ${K}`;Y(W)}var up6=(Y)=>{let[Q,X]=[",","."];return Y.map((G)=>G.replace(/(\d)(?=(\d\d\d)+(?!\d))/g,"$1"+Q)).join(X)},mp6=(Y)=>{let Q=Date.now()-Y;return up6([Q<1000?Q+"ms":Math.round(Q/1000)+"s"])},lp6=async(Y)=>{if(await Dr0())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}`},Lr0=(Y=console.log)=>{return async function(X,J){let{method:G,url:K}=X.req,W=K.slice(K.indexOf("/",8));await Or0(Y,"<--",G,W);let Z=Date.now();await J(),await Or0(Y,"-->",G,W,X.res.status,mp6(Z))}};var Nr0=S(()=>{zr0()});var Mr0=()=>{try{return performance.now()}catch{}return Date.now()},ON1=(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)RP(J,"total",Q.totalDescription);if(await G(),Q.total)TO(J,"total");if(Q.autoEnd)W.forEach((H,$)=>TO(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:"*")}}},wr0=(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)}},RP=(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:Mr0()})},TO=(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=Mr0()-W;wr0(Y,Q,Z,K,X),J.timers.delete(Q)};var Ar0=S(()=>{Ir()});var Pr0=S(()=>{Ar0()});class LN1{db;constructor(Y){this.db=Y}async create(Y,Q,X){let J=p8("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:p8("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=x3(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{...Mx(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:p8("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})=>NB(K)).map(({tool:K,originalIndex:W})=>Nv(`${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&&NB(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 Nv(`${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),Nv(`${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&&NB(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 Nv(`${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&&NB(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:p8("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(NB(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:p8("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()}}}var Er0=S(()=>{M5();QY();AF()});class NN1{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}}import{sql as u6}from"kysely";class MN1{db;redactor;databaseType;constructor(Y,Q="sqlite"){this.db=Y;this.redactor=new NN1,this.databaseType=Q}jsonExtract(Y,Q){if(this.databaseType==="postgres")return u6`(${u6.ref(Y)}::jsonb)->>${Q}`;let X=`$.${Q}`;return u6`json_extract(${u6.ref(Y)}, ${X})`}jsonExtractWithCommas(Y,Q){if(this.databaseType==="postgres")return u6`(',' || (${u6.ref(Y)}::jsonb)->>${Q} || ',')`;let X=`$.${Q}`;return u6`(',' || json_extract(${u6.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=u6.ref(W);return{value:null,groups:(await F.select([u6`${U}`.as("group_key"),this.aggregationExpression(G,V).as("agg_value")]).groupBy(u6`${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([u6`${U}`.as("group_key"),this.aggregationExpression(G,V).as("agg_value")]).groupBy(u6`${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(u6`time_bucket`).orderBy(u6`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(u6`${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 u6`(${u6.ref(Y)}::jsonb #>> ${J})::numeric`}return u6`CAST(json_extract(${u6.ref(Y)}, ${Q}) AS REAL)`}jsonExtractPathText(Y,Q){if(this.databaseType==="postgres"){let J=`{${Q.replace(/^\$\.?/,"").split(".").join(",")}}`;return u6`(${u6.ref(Y)}::jsonb #>> ${J})`}return u6`json_extract(${u6.ref(Y)}, ${Q})`}aggregationExpression(Y,Q){switch(Y){case"sum":return u6`COALESCE(SUM(${Q}), 0)`;case"avg":return u6`COALESCE(AVG(${Q}), 0)`;case"min":return u6`MIN(${Q})`;case"max":return u6`MAX(${Q})`;case"count":return u6`COUNT(${Q})`;case"count_all":return u6`COUNT(*)`;case"last":return u6`MAX(${Q})`;default:return u6`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 u6`date_trunc(${K}, timestamp::timestamp)`;let Z=G*(J==="m"?60:J==="h"?3600:86400);return u6`to_timestamp(floor(extract(epoch from timestamp::timestamp) / ${Z}) * ${Z})`}switch(J){case"m":if(G===1)return u6`strftime('%Y-%m-%d %H:%M:00', timestamp)`;return u6`strftime('%Y-%m-%d %H:', timestamp) || printf('%02d', (cast(strftime('%M', timestamp) as integer) / ${G}) * ${G}) || ':00'`;case"h":if(G===1)return u6`strftime('%Y-%m-%d %H:00:00', timestamp)`;return u6`strftime('%Y-%m-%d ', timestamp) || printf('%02d', (cast(strftime('%H', timestamp) as integer) / ${G}) * ${G}) || ':00:00'`;case"d":return u6`strftime('%Y-%m-%d 00:00:00', timestamp)`;default:return u6`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=u6`${H} LIKE ${F} ESCAPE '\\'`;Y=Y.where(V)}return Y}toDbRow(Y){return{id:Y.id||p8("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}}}var Tr0=S(()=>{M5()});class wN1{db;constructor(Y){this.db=Y}async create(Y,Q,X){let J=p8("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}}}var Cr0=S(()=>{M5()});class AN1{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}}class PN1{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=p8("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}}var Rr0=S(()=>{M5()});class EN1{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=p8("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}}var Ir0=S(()=>{M5()});class TN1{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=p8("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:p8("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:p8("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}}}var jr0=S(()=>{M5()});class CN1{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}}}async function Sr0(Y,Q){return(await Q.storage.connections.findById(Y))?.connection_url??null}function dp6(Y){let Q=Y.toLowerCase();return Q.includes("resource_metadata=")||Q.includes("invalid_token")||Q.includes("oauth")}async function kr0(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(dp6(J))return J}if(await pp6(Y))return'Bearer realm="mcp"'}return null}catch{return null}}async function pp6(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 fr(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(!RN1.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"}}),!RN1.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 cp6(Y,Q){let X=await Sr0(Y,Q);if(!X)return null;let J;try{J=new URL(X).origin}catch{return null}try{let G=await fr(X);if(G.ok){let K=await G.json();if(K.authorization_servers?.[0])return K.authorization_servers[0]}}catch{}return J}async function vr0(Y){let Q=Y.get("meshContext");if(!Q)Q=await CF.create(Y.req.raw),Y.set("meshContext",Q);return Q}async function _r0({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 kr0(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"}})}async function IN1(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}var yr,RN1,yr0=(Y)=>{if(!(Y.hostname==="localhost"||Y.hostname.endsWith(".localhost")||Y.hostname==="127.0.0.1"))Y.protocol="https:";return Y},fr0=async(Y)=>{let Q=Y.req.param("connectionId"),X=await vr0(Y),J=await Sr0(Q,X);if(!J)return Y.json({error:"Connection not found"},404);let G=yr0(new URL(Y.req.url)),K=`${G.origin}/mcp/${Q}`,W=`${G.origin}/oauth-proxy/${Q}`;try{let Z=await fr(J);if(!Z.ok&&RN1.includes(Z.status)){if(await kr0(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)}},br0;var jN1=S(()=>{N7();br();yr=new $Y,RN1=[404,401,406];yr.get("/.well-known/oauth-protected-resource/mcp/:connectionId",(Y)=>fr0(Y));yr.get("/mcp/:connectionId/.well-known/oauth-protected-resource",(Y)=>fr0(Y));yr.get("/.well-known/oauth-authorization-server/oauth-proxy/:connectionId",async(Y)=>{let Q=Y.req.param("connectionId"),X=await vr0(Y),J=await cp6(Q,X);if(!J)return Y.json({error:"Connection not found or no auth server"},404);try{let G=await IN1(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=`${yr0(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)}});br0=yr});async function hr(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?ZN(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 $=bO1(Y.req.query("mode")),F=await MB(Z,X,$),V=vU(F,{name:`mcp-virtual-mcp-${Z.title??"Decopilot"}`,version:"1.0.0"},{capabilities:{tools:{},resources:{},prompts:{}},instructions:Z.metadata?.instructions??void 0}),B=new iZ({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)}}var SN1,hr0;var kN1=S(()=>{QY();EA();N7();wv();SN1=new $Y;SN1.all("/gateway/:virtualMcpId?",async(Y)=>{let Q=Y.req.param("virtualMcpId")||Y.req.header("x-virtual-mcp-id");return hr(Y,Q)});SN1.all("/virtual-mcp/:virtualMcpId?",async(Y)=>{let Q=Y.req.param("virtualMcpId")||Y.req.header("x-virtual-mcp-id");return hr(Y,Q)});hr0=SN1});function CO(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 gr0(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 yG(J,Q,X),K=gO1(G,J),W=K.getServerCapabilities()??{tools:{},resources:{},prompts:{}},Z=vU(K,{name:"mcp-mesh-proxy-client",version:"1.0.0"},{capabilities:W,instructions:K.getInstructions()}),{client:H,server:$}=Q91();await Z.connect($);let F=new eJ({name:"mcp-mesh-proxy-client",version:"1.0.0"});return await F.connect(H),F}async function ur0(Y,Q){return gr0(Y,Q,{superUser:!1})}async function vN1(Y,Q){return gr0(Y,Q,{superUser:!0})}var xr,xr0=300000,mr0=(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)},lr0;var RO=S(()=>{AP();QY();RU();EA();N7();jN1();kN1();xr=new $Y;xr.all("/",async(Y)=>{return hr(Y,void 0)});xr.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 xO1(J,X,!1),K=new iZ({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 _r0({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 mr0(J,Y)}});xr.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 yG(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 mr0(G,Y)}});lr0=xr});function _N1(Y){let X="You are Deco Pilot, an AI assistant running inside Deco Studio (deco context management system).";if(Y?.trim())X+=`
|
|
1515
|
+
`.execute(Y)}}if(K>0)console.log(`\u2705 ${K} plugin migration(s) completed`)}async function za0(Y,Q){await Zp6(Y,Q),await Kp6(Y,Q);let X=new Ua0({db:Y,provider:{getMigrations:()=>Promise.resolve(Rx)}}),{error:J,results:G}=await X.migrateToLatest();if(G?.forEach((K)=>{if(K.status==="Success")console.log(`\u2705 Migration "${K.migrationName}" executed successfully`);else if(K.status==="Error")console.error(`\u274C Failed to execute migration "${K.migrationName}"`)}),J)throw console.error("Failed to migrate"),console.error(J),J}async function $p6(Y){let{keepOpen:Q=!1,database:X,skipBetterAuth:J=!1,seed:G}=Y??{};if(!J&&!X)await qa0();let K=X??lZ(),W=async()=>{if(!Q&&!X)console.log("\uD83D\uDD12 Closing database connection..."),await Lj0(K).catch((Z)=>{console.warn("Warning: Error closing database:",Z)})};try{console.log("\uD83D\uDCCA Running Kysely migrations..."),await za0(K.db,K.type),console.log("\uD83C\uDF89 Core migrations completed successfully"),await Hp6(K.db);let Z;if(G)Z=await z91(K.db,G);return await W(),{seedResult:Z}}catch(Z){throw await W(),Z}}async function Fp6(){let Y=lZ(),Q=new Ua0({db:Y.db,provider:{getMigrations:()=>Promise.resolve(Rx)}}),{error:X,results:J}=await Q.migrateDown();if(J?.forEach((G)=>{if(G.status==="Success")console.log(`\u2705 Migration "${G.migrationName}" rolled back successfully`);else if(G.status==="Error")console.error(`\u274C Failed to rollback migration "${G.migrationName}"`)}),X)throw console.error("Failed to rollback migration"),console.error(X),X}var La0=S(()=>{D91();Qk1();Ba0();Kv();DA()});var AX;var EP=S(()=>{AX=class extends Error{res;status;constructor(Y=500,Q){super(Q?.message,{cause:Q?.cause});this.res=Q?.res,this.status=Y}getResponse(){if(this.res)return new Response(this.res.body,{status:this.status,headers:this.res.headers});return new Response(this.message,{status:this.status})}}});var Na0,Vp6,qp6=(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)=>!Vp6.test(W));if(K.length>0)throw new AX(400,{message:`Invalid Connection header value: ${K.join(", ")}`});G.forEach((W)=>{X.delete(W)})}}return Na0.forEach((J)=>{X.delete(J)}),{method:Y.method,body:Y.body,duplex:Y.body?"half":void 0,headers:X,signal:Y.signal}},Bp6=(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},Ma0=async(Y,Q)=>{let{raw:X,customFetch:J,strictConnectionProcessing:G=!1,...K}=Q instanceof Request?{raw:Q}:Q??{},W=new Request(Y,{...qp6(X,G),...Bp6(K)});W.headers.delete("accept-encoding");let Z=await(J||fetch)(W),H=new Headers(Z.headers);if(Na0.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 wa0=S(()=>{EP();Na0=["connection","keep-alive","proxy-authenticate","proxy-authorization","te","trailer","transfer-encoding","upgrade"],Vp6=/^[!#$%&'*+\-.0-9A-Z^_`a-z|~]+$/});var Aa0=(Y)=>(Q)=>{let X=new URL(Q.req.raw.url),J=new URL(Y);return J.pathname=X.pathname,J.search=X.search,Ma0(J,{raw:Q.req.raw,headers:{...Q.req.raw.headers}})};var Pa0=S(()=>{wa0()});import{resolve as Cv,dirname as Up6,join as Dp6,extname as zp6,basename as Op6,sep as Ea0}from"path";function Lp6(Y,Q){if(Y===Q||Op6(Y)==="index.html")return{"Cache-Control":"no-cache"};if(Y.includes(`${Ea0}assets${Ea0}`))return{"Cache-Control":"public, max-age=31536000, immutable"};return{}}function wp6(Y,Q){let X=Cv(Q),J=Cv(Y);return J===X||J.startsWith(X+"/")}function Ap6({requestPath:Y,clientDir:Q}){let X=Y.startsWith("/")?Y.slice(1):Y,J=Cv(Q,X);if(!wp6(J,Q))return null;return J}function XN1(Y,Q="../client"){let X=new URL(Y),J=Up6(X.pathname);return Cv(J,Q)}function Ta0(Y={}){let{env:Q="production",devServerUrl:X=Np6,clientDir:J=Mp6,isServerPath:G=()=>!1}=Y;if(Q==="development"){let K=Aa0(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 $=Ap6({requestPath:H,clientDir:J});if(!$)return null;let F=Dp6($,"index.html"),V=Cv(J,"index.html"),B=W.headers.get("accept"),D=B?.includes("text/html")||B?.includes("*/*")&&["",".html"].includes(zp6($))?[F,V]:[];for(let z of[$,...D])try{let N=Bun.file(z);if(await N.exists())return new Response(N,{headers:Lp6(z,V)})}catch{}if(H.includes("/assets/"))return new Response("Not Found",{status:404,headers:{"Cache-Control":"no-store"}});return null}}var Np6,Mp6="./dist/client";var Ca0=S(()=>{Pa0();Np6=`http://localhost:${process.env.VITE_PORT||"4000"}`});function Ia0(Y){if(!Y)return!1;try{return new URL(Y).host==="api.decocms.com"&&Y!=="https://api.decocms.com/mcp/registry"}catch{return!1}}var Ra0="https://api.decocms.com/mcp/registry";var JN1=(Y,Q,X)=>{return(J,G)=>{let K=-1;return W(0);async function W(Z){if(Z<=K)throw Error("next() called multiple times");K=Z;let H,$=!1,F;if(Y[Z])F=Y[Z][0][0],J.req.routeIndex=Z;else F=Z===Y.length&&G||void 0;if(F)try{H=await F(J,()=>W(Z+1))}catch(V){if(V instanceof Error&&Q)J.error=V,H=await Q(V,J),$=!0;else throw V}else if(J.finalized===!1&&X)H=await X(J);if(H&&(J.finalized===!1||$))J.res=H;return J}}};var ja0=()=>{};var Sa0;var ka0=S(()=>{Sa0=Symbol()});async function Pp6(Y,Q){let X=await Y.formData();if(X)return Ep6(X,Q);return{}}function Ep6(Y,Q){let X=Object.create(null);if(Y.forEach((J,G)=>{if(!(Q.all||G.endsWith("[]")))X[G]=J;else Tp6(X,G,J)}),Q.dot)Object.entries(X).forEach(([J,G])=>{if(J.includes("."))Cp6(X,J,G),delete X[J]});return X}var va0=async(Y,Q=Object.create(null))=>{let{all:X=!1,dot:J=!1}=Q,K=(Y instanceof Pr?Y.raw.headers:Y.headers).get("Content-Type");if(K?.startsWith("multipart/form-data")||K?.startsWith("application/x-www-form-urlencoded"))return Pp6(Y,{all:X,dot:J});return{}},Tp6=(Y,Q,X)=>{if(Y[Q]!==void 0)if(Array.isArray(Y[Q]))Y[Q].push(X);else Y[Q]=[Y[Q],X];else if(!Q.endsWith("[]"))Y[Q]=X;else Y[Q]=[X]},Cp6=(Y,Q,X)=>{let J=Y,G=Q.split(".");G.forEach((K,W)=>{if(W===G.length-1)J[K]=X;else{if(!J[K]||typeof J[K]!=="object"||Array.isArray(J[K])||J[K]instanceof File)J[K]=Object.create(null);J=J[K]}})};var _a0=S(()=>{GN1()});var ZN1=(Y)=>{let Q=Y.split("/");if(Q[0]==="")Q.shift();return Q},ya0=(Y)=>{let{groups:Q,path:X}=Rp6(Y),J=ZN1(X);return Ip6(J,Q)},Rp6=(Y)=>{let Q=[];return Y=Y.replace(/\{[^}]+\}/g,(X,J)=>{let G=`@${J}`;return Q.push([G,X]),G}),{groups:Q,path:Y}},Ip6=(Y,Q)=>{for(let X=Q.length-1;X>=0;X--){let[J]=Q[X];for(let G=Y.length-1;G>=0;G--)if(Y[G].includes(J)){Y[G]=Y[G].replace(J,Q[X][1]);break}}return Y},Er,fa0=(Y,Q)=>{if(Y==="*")return"*";let X=Y.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/);if(X){let J=`${Y}#${Q}`;if(!Er[J])if(X[2])Er[J]=Q&&Q[0]!==":"&&Q[0]!=="*"?[J,X[1],new RegExp(`^${X[2]}(?=/${Q})`)]:[Y,X[1],new RegExp(`^${X[2]}$`)];else Er[J]=[Y,X[1],!0];return Er[J]}return null},TP=(Y,Q)=>{try{return Q(Y)}catch{return Y.replace(/(?:%[0-9A-Fa-f]{2})+/g,(X)=>{try{return Q(X)}catch{return X}})}},ba0=(Y)=>TP(Y,decodeURI),KN1=(Y)=>{let Q=Y.url,X=Q.indexOf("/",Q.indexOf(":")+4),J=X;for(;J<Q.length;J++){let G=Q.charCodeAt(J);if(G===37){let K=Q.indexOf("?",J),W=Q.indexOf("#",J),Z=K===-1?W===-1?void 0:W:W===-1?K:Math.min(K,W),H=Q.slice(X,Z);return ba0(H.includes("%25")?H.replace(/%25/g,"%2525"):H)}else if(G===63||G===35)break}return Q.slice(X,J)},ha0=(Y)=>{let Q=KN1(Y);return Q.length>1&&Q.at(-1)==="/"?Q.slice(0,-1):Q},PO=(Y,Q,...X)=>{if(X.length)Q=PO(Q,...X);return`${Y?.[0]==="/"?"":"/"}${Y}${Q==="/"?"":`${Y?.at(-1)==="/"?"":"/"}${Q?.[0]==="/"?Q.slice(1):Q}`}`},Tr=(Y)=>{if(Y.charCodeAt(Y.length-1)!==63||!Y.includes(":"))return null;let Q=Y.split("/"),X=[],J="";return Q.forEach((G)=>{if(G!==""&&!/\:/.test(G))J+="/"+G;else if(/\:/.test(G))if(/\?/.test(G)){if(X.length===0&&J==="")X.push("/");else X.push(J);let K=G.replace("?","");J+="/"+K,X.push(J)}else J+="/"+G}),X.filter((G,K,W)=>W.indexOf(G)===K)},WN1=(Y)=>{if(!/[%+]/.test(Y))return Y;if(Y.indexOf("+")!==-1)Y=Y.replace(/\+/g," ");return Y.indexOf("%")!==-1?TP(Y,Rv):Y},xa0=(Y,Q,X)=>{let J;if(!X&&Q&&!/[%+]/.test(Q)){let W=Y.indexOf("?",8);if(W===-1)return;if(!Y.startsWith(Q,W+1))W=Y.indexOf(`&${Q}`,W+1);while(W!==-1){let Z=Y.charCodeAt(W+Q.length+1);if(Z===61){let H=W+Q.length+2,$=Y.indexOf("&",H);return WN1(Y.slice(H,$===-1?void 0:$))}else if(Z==38||isNaN(Z))return"";W=Y.indexOf(`&${Q}`,W+1)}if(J=/[%+]/.test(Y),!J)return}let G={};J??=/[%+]/.test(Y);let K=Y.indexOf("?",8);while(K!==-1){let W=Y.indexOf("&",K+1),Z=Y.indexOf("=",K);if(Z>W&&W!==-1)Z=-1;let H=Y.slice(K+1,Z===-1?W===-1?void 0:W:Z);if(J)H=WN1(H);if(K=W,H==="")continue;let $;if(Z===-1)$="";else if($=Y.slice(Z+1,W===-1?void 0:W),J)$=WN1($);if(X){if(!(G[H]&&Array.isArray(G[H])))G[H]=[];G[H].push($)}else G[H]??=$}return Q?G[Q]:G},ga0,ua0=(Y,Q)=>{return xa0(Y,Q,!0)},Rv;var TB=S(()=>{Er={},ga0=xa0,Rv=decodeURIComponent});var ma0=(Y)=>TP(Y,Rv),Pr;var GN1=S(()=>{EP();ka0();_a0();TB();Pr=class{raw;#Y;#Q;routeIndex=0;path;bodyCache={};constructor(Y,Q="/",X=[[]]){this.raw=Y,this.path=Q,this.#Q=X,this.#Y={}}param(Y){return Y?this.#X(Y):this.#J()}#X(Y){let Q=this.#Q[0][this.routeIndex][1][Y],X=this.#W(Q);return X&&/\%/.test(X)?ma0(X):X}#J(){let Y={},Q=Object.keys(this.#Q[0][this.routeIndex][1]);for(let X of Q){let J=this.#W(this.#Q[0][this.routeIndex][1][X]);if(J!==void 0)Y[X]=/\%/.test(J)?ma0(J):J}return Y}#W(Y){return this.#Q[1]?this.#Q[1][Y]:Y}query(Y){return ga0(this.url,Y)}queries(Y){return ua0(this.url,Y)}header(Y){if(Y)return this.raw.headers.get(Y)??void 0;let Q={};return this.raw.headers.forEach((X,J)=>{Q[J]=X}),Q}async parseBody(Y){return this.bodyCache.parsedBody??=await va0(this,Y)}#G=(Y)=>{let{bodyCache:Q,raw:X}=this,J=Q[Y];if(J)return J;let G=Object.keys(Q)[0];if(G)return Q[G].then((K)=>{if(G==="json")K=JSON.stringify(K);return new Response(K)[Y]()});return Q[Y]=X[Y]()};json(){return this.#G("text").then((Y)=>JSON.parse(Y))}text(){return this.#G("text")}arrayBuffer(){return this.#G("arrayBuffer")}blob(){return this.#G("blob")}formData(){return this.#G("formData")}addValidatedData(Y,Q){this.#Y[Y]=Q}valid(Y){return this.#Y[Y]}get url(){return this.raw.url}get method(){return this.raw.method}get[Sa0](){return this.#Q}get matchedRoutes(){return this.#Q[0].map(([[,Y]])=>Y)}get routePath(){return this.#Q[0].map(([[,Y]])=>Y)[this.routeIndex].path}}});var Cr,la0=(Y,Q)=>{let X=new String(Y);return X.isEscaped=!0,X.callbacks=Q,X},Iv=async(Y,Q,X,J,G)=>{if(typeof Y==="object"&&!(Y instanceof String)){if(!(Y instanceof Promise))Y=Y.toString();if(Y instanceof Promise)Y=await Y}let K=Y.callbacks;if(!K?.length)return Promise.resolve(Y);if(G)G[0]+=Y;else G=[Y];let W=Promise.all(K.map((Z)=>Z({phase:Q,buffer:G,context:J}))).then((Z)=>Promise.all(Z.filter(Boolean).map((H)=>Iv(H,Q,!1,J,G))).then(()=>G[0]));if(X)return la0(await W,K);else return W};var Rr=S(()=>{Cr={Stringify:1,BeforeStream:2,Stream:3}});var da0="text/plain; charset=UTF-8",HN1=(Y,Q)=>{return{"Content-Type":Y,...Q}},jv=(Y,Q)=>new Response(Y,Q),pa0=class{#Y;#Q;env={};#X;finalized=!1;error;#J;#W;#G;#K;#Z;#$;#H;#V;#q;constructor(Y,Q){if(this.#Y=Y,Q)this.#W=Q.executionCtx,this.env=Q.env,this.#$=Q.notFoundHandler,this.#q=Q.path,this.#V=Q.matchResult}get req(){return this.#Q??=new Pr(this.#Y,this.#q,this.#V),this.#Q}get event(){if(this.#W&&"respondWith"in this.#W)return this.#W;else throw Error("This context has no FetchEvent")}get executionCtx(){if(this.#W)return this.#W;else throw Error("This context has no ExecutionContext")}get res(){return this.#G||=jv(null,{headers:this.#H??=new Headers})}set res(Y){if(this.#G&&Y){Y=jv(Y.body,Y);for(let[Q,X]of this.#G.headers.entries()){if(Q==="content-type")continue;if(Q==="set-cookie"){let J=this.#G.headers.getSetCookie();Y.headers.delete("set-cookie");for(let G of J)Y.headers.append("set-cookie",G)}else Y.headers.set(Q,X)}}this.#G=Y,this.finalized=!0}render=(...Y)=>{return this.#Z??=(Q)=>this.html(Q),this.#Z(...Y)};setLayout=(Y)=>this.#K=Y;getLayout=()=>this.#K;setRenderer=(Y)=>{this.#Z=Y};header=(Y,Q,X)=>{if(this.finalized)this.#G=jv(this.#G.body,this.#G);let J=this.#G?this.#G.headers:this.#H??=new Headers;if(Q===void 0)J.delete(Y);else if(X?.append)J.append(Y,Q);else J.set(Y,Q)};status=(Y)=>{this.#J=Y};set=(Y,Q)=>{this.#X??=new Map,this.#X.set(Y,Q)};get=(Y)=>{return this.#X?this.#X.get(Y):void 0};get var(){if(!this.#X)return{};return Object.fromEntries(this.#X)}#F(Y,Q,X){let J=this.#G?new Headers(this.#G.headers):this.#H??new Headers;if(typeof Q==="object"&&"headers"in Q){let K=Q.headers instanceof Headers?Q.headers:new Headers(Q.headers);for(let[W,Z]of K)if(W.toLowerCase()==="set-cookie")J.append(W,Z);else J.set(W,Z)}if(X)for(let[K,W]of Object.entries(X))if(typeof W==="string")J.set(K,W);else{J.delete(K);for(let Z of W)J.append(K,Z)}let G=typeof Q==="number"?Q:Q?.status??this.#J;return jv(Y,{status:G,headers:J})}newResponse=(...Y)=>this.#F(...Y);body=(Y,Q,X)=>this.#F(Y,Q,X);text=(Y,Q,X)=>{return!this.#H&&!this.#J&&!Q&&!X&&!this.finalized?new Response(Y):this.#F(Y,Q,HN1(da0,X))};json=(Y,Q,X)=>{return this.#F(JSON.stringify(Y),Q,HN1("application/json",X))};html=(Y,Q,X)=>{let J=(G)=>this.#F(G,Q,HN1("text/html; charset=UTF-8",X));return typeof Y==="object"?Iv(Y,Cr.Stringify,!1,{}).then(J):J(Y)};redirect=(Y,Q)=>{let X=String(Y);return this.header("Location",!/[^\x00-\xFF]/.test(X)?X:encodeURI(X)),this.newResponse(null,Q??302)};notFound=()=>{return this.#$??=()=>jv(),this.#$(this)}};var Ir=S(()=>{GN1();Rr()});var y9="ALL",ca0="all",na0,jr="Can not add a route since the matcher is already built.",Sr;var CB=S(()=>{na0=["get","post","put","delete","options","patch"],Sr=class extends Error{}});var $N1="__COMPOSED_HANDLER";var FN1=()=>{};var jp6=(Y)=>{return Y.text("404 Not Found",404)},ia0=(Y,Q)=>{if("getResponse"in Y){let X=Y.getResponse();return Q.newResponse(X.body,X)}return console.error(Y),Q.text("Internal Server Error",500)},aa0=class Y{get;post;put;delete;options;patch;all;on;use;router;getPath;_basePath="/";#Y="/";routes=[];constructor(Q={}){[...na0,ca0].forEach((K)=>{this[K]=(W,...Z)=>{if(typeof W==="string")this.#Y=W;else this.#J(K,this.#Y,W);return Z.forEach((H)=>{this.#J(K,this.#Y,H)}),this}}),this.on=(K,W,...Z)=>{for(let H of[W].flat()){this.#Y=H;for(let $ of[K].flat())Z.map((F)=>{this.#J($.toUpperCase(),this.#Y,F)})}return this},this.use=(K,...W)=>{if(typeof K==="string")this.#Y=K;else this.#Y="*",W.unshift(K);return W.forEach((Z)=>{this.#J(y9,this.#Y,Z)}),this};let{strict:J,...G}=Q;Object.assign(this,G),this.getPath=J??!0?Q.getPath??KN1:ha0}#Q(){let Q=new Y({router:this.router,getPath:this.getPath});return Q.errorHandler=this.errorHandler,Q.#X=this.#X,Q.routes=this.routes,Q}#X=jp6;errorHandler=ia0;route(Q,X){let J=this.basePath(Q);return X.routes.map((G)=>{let K;if(X.errorHandler===ia0)K=G.handler;else K=async(W,Z)=>(await JN1([],X.errorHandler)(W,()=>G.handler(W,Z))).res,K[$N1]=G.handler;J.#J(G.method,G.path,K)}),this}basePath(Q){let X=this.#Q();return X._basePath=PO(this._basePath,Q),X}onError=(Q)=>{return this.errorHandler=Q,this};notFound=(Q)=>{return this.#X=Q,this};mount(Q,X,J){let G,K;if(J)if(typeof J==="function")K=J;else if(K=J.optionHandler,J.replaceRequest===!1)G=(H)=>H;else G=J.replaceRequest;let W=K?(H)=>{let $=K(H);return Array.isArray($)?$:[$]}:(H)=>{let $=void 0;try{$=H.executionCtx}catch{}return[H.env,$]};G||=(()=>{let H=PO(this._basePath,Q),$=H==="/"?0:H.length;return(F)=>{let V=new URL(F.url);return V.pathname=V.pathname.slice($)||"/",new Request(V,F)}})();let Z=async(H,$)=>{let F=await X(G(H.req.raw),...W(H));if(F)return F;await $()};return this.#J(y9,PO(Q,"*"),Z),this}#J(Q,X,J){Q=Q.toUpperCase(),X=PO(this._basePath,X);let G={basePath:this._basePath,path:X,method:Q,handler:J};this.router.add(Q,X,[J,G]),this.routes.push(G)}#W(Q,X){if(Q instanceof Error)return this.errorHandler(Q,X);throw Q}#G(Q,X,J,G){if(G==="HEAD")return(async()=>new Response(null,await this.#G(Q,X,J,"GET")))();let K=this.getPath(Q,{env:J}),W=this.router.match(G,K),Z=new pa0(Q,{path:K,matchResult:W,env:J,executionCtx:X,notFoundHandler:this.#X});if(W[0].length===1){let $;try{$=W[0][0][0][0](Z,async()=>{Z.res=await this.#X(Z)})}catch(F){return this.#W(F,Z)}return $ instanceof Promise?$.then((F)=>F||(Z.finalized?Z.res:this.#X(Z))).catch((F)=>this.#W(F,Z)):$??this.#X(Z)}let H=JN1(W[0],this.errorHandler,this.#X);return(async()=>{try{let $=await H(Z);if(!$.finalized)throw Error("Context is not finalized. Did you forget to return a Response object or `await next()`?");return $.res}catch($){return this.#W($,Z)}})()}fetch=(Q,...X)=>{return this.#G(Q,X[1],X[0],Q.method)};request=(Q,X,J,G)=>{if(Q instanceof Request)return this.fetch(X?new Request(Q,X):Q,J,G);return Q=Q.toString(),this.fetch(new Request(/^https?:\/\//.test(Q)?Q:`http://localhost${PO("/",Q)}`,X),J,G)};fire=()=>{addEventListener("fetch",(Q)=>{Q.respondWith(this.#G(Q.request,Q,void 0,Q.request.method))})}};var ra0=S(()=>{ja0();Ir();CB();FN1();TB()});function kr(Y,Q){let X=this.buildAllMatchers(),J=(G,K)=>{let W=X[G]||X[y9],Z=W[2][K];if(Z)return Z;let H=K.match(W[0]);if(!H)return[[],Sv];let $=H.indexOf("",1);return[W[1][$],H]};return this.match=J,J(Y,Q)}var Sv;var VN1=S(()=>{CB();Sv=[]});function kp6(Y,Q){if(Y.length===1)return Q.length===1?Y<Q?-1:1:-1;if(Q.length===1)return 1;if(Y===kv||Y===vv)return 1;else if(Q===kv||Q===vv)return-1;if(Y===vr)return 1;else if(Q===vr)return-1;return Y.length===Q.length?Y<Q?-1:1:Q.length-Y.length}var vr="[^/]+",kv=".*",vv="(?:|/.*)",EO,Sp6,oa0=class Y{#Y;#Q;#X=Object.create(null);insert(Q,X,J,G,K){if(Q.length===0){if(this.#Y!==void 0)throw EO;if(K)return;this.#Y=X;return}let[W,...Z]=Q,H=W==="*"?Z.length===0?["","",kv]:["","",vr]:W==="/*"?["","",vv]:W.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/),$;if(H){let F=H[1],V=H[2]||vr;if(F&&H[2]){if(V===".*")throw EO;if(V=V.replace(/^\((?!\?:)(?=[^)]+\)$)/,"(?:"),/\((?!\?:)/.test(V))throw EO}if($=this.#X[V],!$){if(Object.keys(this.#X).some((B)=>B!==kv&&B!==vv))throw EO;if(K)return;if($=this.#X[V]=new Y,F!=="")$.#Q=G.varIndex++}if(!K&&F!=="")J.push([F,$.#Q])}else if($=this.#X[W],!$){if(Object.keys(this.#X).some((F)=>F.length>1&&F!==kv&&F!==vv))throw EO;if(K)return;$=this.#X[W]=new Y}$.insert(Z,X,J,G,K)}buildRegExpStr(){let X=Object.keys(this.#X).sort(kp6).map((J)=>{let G=this.#X[J];return(typeof G.#Q==="number"?`(${J})@${G.#Q}`:Sp6.has(J)?`\\${J}`:J)+G.buildRegExpStr()});if(typeof this.#Y==="number")X.unshift(`#${this.#Y}`);if(X.length===0)return"";if(X.length===1)return X[0];return"(?:"+X.join("|")+")"}};var qN1=S(()=>{EO=Symbol(),Sp6=new Set(".\\+*[^]$()")});var sa0=class{#Y={varIndex:0};#Q=new oa0;insert(Y,Q,X){let J=[],G=[];for(let W=0;;){let Z=!1;if(Y=Y.replace(/\{[^}]+\}/g,(H)=>{let $=`@\\${W}`;return G[W]=[$,H],W++,Z=!0,$}),!Z)break}let K=Y.match(/(?::[^\/]+)|(?:\/\*$)|./g)||[];for(let W=G.length-1;W>=0;W--){let[Z]=G[W];for(let H=K.length-1;H>=0;H--)if(K[H].indexOf(Z)!==-1){K[H]=K[H].replace(Z,G[W][1]);break}}return this.#Q.insert(K,Q,J,this.#Y,X),J}buildRegExp(){let Y=this.#Q.buildRegExpStr();if(Y==="")return[/^$/,[],[]];let Q=0,X=[],J=[];return Y=Y.replace(/#(\d+)|@(\d+)|\.\*\$/g,(G,K,W)=>{if(K!==void 0)return X[++Q]=Number(K),"$()";if(W!==void 0)return J[Number(W)]=++Q,"";return""}),[new RegExp(`^${Y}`),X,J]}};var ta0=S(()=>{qN1()});function Yr0(Y){return ea0[Y]??=new RegExp(Y==="*"?"":`^${Y.replace(/\/\*$|([.\\+*[^\]$()])/g,(Q,X)=>X?`\\${X}`:"(?:|/.*)")}$`)}function _p6(){ea0=Object.create(null)}function yp6(Y){let Q=new sa0,X=[];if(Y.length===0)return vp6;let J=Y.map(($)=>[!/\*|\/:/.test($[0]),...$]).sort(([$,F],[V,B])=>$?1:V?-1:F.length-B.length),G=Object.create(null);for(let $=0,F=-1,V=J.length;$<V;$++){let[B,U,D]=J[$];if(B)G[U]=[D.map(([N])=>[N,Object.create(null)]),Sv];else F++;let z;try{z=Q.insert(U,F,B)}catch(N){throw N===EO?new Sr(U):N}if(B)continue;X[F]=D.map(([N,w])=>{let E=Object.create(null);w-=1;for(;w>=0;w--){let[T,C]=z[w];E[T]=C}return[N,E]})}let[K,W,Z]=Q.buildRegExp();for(let $=0,F=X.length;$<F;$++)for(let V=0,B=X[$].length;V<B;V++){let U=X[$][V]?.[1];if(!U)continue;let D=Object.keys(U);for(let z=0,N=D.length;z<N;z++)U[D[z]]=Z[U[D[z]]]}let H=[];for(let $ in W)H[$]=X[W[$]];return[K,H,G]}function CP(Y,Q){if(!Y)return;for(let X of Object.keys(Y).sort((J,G)=>G.length-J.length))if(Yr0(X).test(Q))return[...Y[X]];return}var vp6,ea0,_r=class{name="RegExpRouter";#Y;#Q;constructor(){this.#Y={[y9]:Object.create(null)},this.#Q={[y9]:Object.create(null)}}add(Y,Q,X){let J=this.#Y,G=this.#Q;if(!J||!G)throw Error(jr);if(!J[Y])[J,G].forEach((Z)=>{Z[Y]=Object.create(null),Object.keys(Z[y9]).forEach((H)=>{Z[Y][H]=[...Z[y9][H]]})});if(Q==="/*")Q="*";let K=(Q.match(/\/:/g)||[]).length;if(/\*$/.test(Q)){let Z=Yr0(Q);if(Y===y9)Object.keys(J).forEach((H)=>{J[H][Q]||=CP(J[H],Q)||CP(J[y9],Q)||[]});else J[Y][Q]||=CP(J[Y],Q)||CP(J[y9],Q)||[];Object.keys(J).forEach((H)=>{if(Y===y9||Y===H)Object.keys(J[H]).forEach(($)=>{Z.test($)&&J[H][$].push([X,K])})}),Object.keys(G).forEach((H)=>{if(Y===y9||Y===H)Object.keys(G[H]).forEach(($)=>Z.test($)&&G[H][$].push([X,K]))});return}let W=Tr(Q)||[Q];for(let Z=0,H=W.length;Z<H;Z++){let $=W[Z];Object.keys(G).forEach((F)=>{if(Y===y9||Y===F)G[F][$]||=[...CP(J[F],$)||CP(J[y9],$)||[]],G[F][$].push([X,K-H+Z+1])})}}match=kr;buildAllMatchers(){let Y=Object.create(null);return Object.keys(this.#Q).concat(Object.keys(this.#Y)).forEach((Q)=>{Y[Q]||=this.#X(Q)}),this.#Y=this.#Q=void 0,_p6(),Y}#X(Y){let Q=[],X=Y===y9;if([this.#Y,this.#Q].forEach((J)=>{let G=J[Y]?Object.keys(J[Y]).map((K)=>[K,J[Y][K]]):[];if(G.length!==0)X||=!0,Q.push(...G);else if(Y!==y9)Q.push(...Object.keys(J[y9]).map((K)=>[K,J[y9][K]]))}),!X)return null;else return yp6(Q)}};var BN1=S(()=>{CB();TB();VN1();qN1();ta0();vp6=[/^$/,[],Object.create(null)],ea0=Object.create(null)});var fp6=class{name="PreparedRegExpRouter";#Y;#Q;constructor(Y,Q){this.#Y=Y,this.#Q=Q}#X(Y,Q){let X=this.#Y[Y];X[1].forEach((J)=>J&&J.push(Q)),Object.values(X[2]).forEach((J)=>J[0].push(Q))}#J(Y,Q,X,J,G){let K=this.#Y[Y];if(!G)K[2][Q][0].push([X,{}]);else J.forEach((W)=>{if(typeof W==="number")K[1][W].push([X,G]);else K[2][W||Q][0].push([X,G])})}add(Y,Q,X){if(!this.#Y[Y]){let G=this.#Y[y9],K={};for(let W in G[2])K[W]=[G[2][W][0].slice(),Sv];this.#Y[Y]=[G[0],G[1].map((W)=>Array.isArray(W)?W.slice():0),K]}if(Q==="/*"||Q==="*"){let G=[X,{}];if(Y===y9)for(let K in this.#Y)this.#X(K,G);else this.#X(Y,G);return}let J=this.#Q[Q];if(!J)throw Error(`Path ${Q} is not registered`);for(let[G,K]of J)if(Y===y9)for(let W in this.#Y)this.#J(W,Q,X,G,K);else this.#J(Y,Q,X,G,K)}buildAllMatchers(){return this.#Y}match=kr};var Qr0=S(()=>{CB();VN1();BN1()});var Xr0=S(()=>{BN1();Qr0()});var UN1=class{name="SmartRouter";#Y=[];#Q=[];constructor(Y){this.#Y=Y.routers}add(Y,Q,X){if(!this.#Q)throw Error(jr);this.#Q.push([Y,Q,X])}match(Y,Q){if(!this.#Q)throw Error("Fatal error");let X=this.#Y,J=this.#Q,G=X.length,K=0,W;for(;K<G;K++){let Z=X[K];try{for(let H=0,$=J.length;H<$;H++)Z.add(...J[H]);W=Z.match(Y,Q)}catch(H){if(H instanceof Sr)continue;throw H}this.match=Z.match.bind(Z),this.#Y=[Z],this.#Q=void 0;break}if(K===G)throw Error("Fatal error");return this.name=`SmartRouter + ${this.activeRouter.name}`,W}get activeRouter(){if(this.#Q||this.#Y.length!==1)throw Error("No active router has been determined yet.");return this.#Y[0]}};var Jr0=S(()=>{CB()});var Gr0=S(()=>{Jr0()});var _v,bp6=(Y)=>{for(let Q in Y)return!0;return!1},Wr0=class Y{#Y;#Q;#X;#J=0;#W=_v;constructor(Q,X,J){if(this.#Q=J||Object.create(null),this.#Y=[],Q&&X){let G=Object.create(null);G[Q]={handler:X,possibleKeys:[],score:0},this.#Y=[G]}this.#X=[]}insert(Q,X,J){this.#J=++this.#J;let G=this,K=ya0(X),W=[];for(let Z=0,H=K.length;Z<H;Z++){let $=K[Z],F=K[Z+1],V=fa0($,F),B=Array.isArray(V)?V[0]:$;if(B in G.#Q){if(G=G.#Q[B],V)W.push(V[1]);continue}if(G.#Q[B]=new Y,V)G.#X.push(V),W.push(V[1]);G=G.#Q[B]}return G.#Y.push({[Q]:{handler:J,possibleKeys:W.filter((Z,H,$)=>$.indexOf(Z)===H),score:this.#J}}),G}#G(Q,X,J,G,K){for(let W=0,Z=X.#Y.length;W<Z;W++){let H=X.#Y[W],$=H[J]||H[y9],F={};if($!==void 0){if($.params=Object.create(null),Q.push($),G!==_v||K&&K!==_v)for(let V=0,B=$.possibleKeys.length;V<B;V++){let U=$.possibleKeys[V],D=F[$.score];$.params[U]=K?.[U]&&!D?K[U]:G[U]??K?.[U],F[$.score]=!0}}}}search(Q,X){let J=[];this.#W=_v;let K=[this],W=ZN1(X),Z=[],H=W.length,$=null;for(let F=0;F<H;F++){let V=W[F],B=F===H-1,U=[];for(let z=0,N=K.length;z<N;z++){let w=K[z],E=w.#Q[V];if(E)if(E.#W=w.#W,B){if(E.#Q["*"])this.#G(J,E.#Q["*"],Q,w.#W);this.#G(J,E,Q,w.#W)}else U.push(E);for(let T=0,C=w.#X.length;T<C;T++){let P=w.#X[T],I=w.#W===_v?{}:{...w.#W};if(P==="*"){let g=w.#Q["*"];if(g)this.#G(J,g,Q,w.#W),g.#W=I,U.push(g);continue}let[k,v,f]=P;if(!V&&!(f instanceof RegExp))continue;let b=w.#Q[k];if(f instanceof RegExp){if($===null){$=Array(H);let m=X[0]==="/"?1:0;for(let h=0;h<H;h++)$[h]=m,m+=W[h].length+1}let g=X.substring($[F]),r=f.exec(g);if(r){if(I[v]=r[0],this.#G(J,b,Q,w.#W,I),bp6(b.#Q)){b.#W=I;let m=r[0].match(/\//)?.length??0;(Z[m]||=[]).push(b)}continue}}if(f===!0||f.test(V))if(I[v]=V,B){if(this.#G(J,b,Q,I,w.#W),b.#Q["*"])this.#G(J,b.#Q["*"],Q,I,w.#W)}else b.#W=I,U.push(b)}}let D=Z.shift();K=D?U.concat(D):U}if(J.length>1)J.sort((F,V)=>{return F.score-V.score});return[J.map(({handler:F,params:V})=>[F,V])]}};var Zr0=S(()=>{CB();TB();_v=Object.create(null)});var DN1=class{name="TrieRouter";#Y;constructor(){this.#Y=new Wr0}add(Y,Q,X){let J=Tr(Q);if(J){for(let G=0,K=J.length;G<K;G++)this.#Y.insert(Y,J[G],X);return}this.#Y.insert(Y,Q,X)}match(Y,Q){return this.#Y.search(Y,Q)}};var Kr0=S(()=>{TB();Zr0()});var Hr0=S(()=>{Kr0()});var $Y;var $r0=S(()=>{ra0();Xr0();Gr0();Hr0();$Y=class extends aa0{constructor(Y={}){super(Y);this.router=Y.router??new UN1({routers:[new _r,new DN1]})}}});var N7=S(()=>{$r0()});var hp6,xp6,zN1=(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||!hp6.test(W))continue;let Z=G.substring(K+1).trim();if(Z.startsWith('"')&&Z.endsWith('"'))Z=Z.slice(1,-1);if(xp6.test(Z)){if(J[W]=Z.indexOf("%")!==-1?TP(Z,Rv):Z,Q)break}}return J};var Fr0=S(()=>{TB();hp6=/^[\w!#$%&'*.^`|~+-]+$/,xp6=/^[ !#-:<-[\]-~]*$/});var Vr0=(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 zN1(J,K)[K]}if(!J)return{};return zN1(J)};var qr0=S(()=>{Fr0()});var Br0=(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})}};var Ur0=()=>{};function gp6(){let{process:Y,Deno:Q}=globalThis;return!(typeof Q?.noColor==="boolean"?Q.noColor:Y!==void 0?"NO_COLOR"in Y?.env:!1)}async function Dr0(){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}})():!gp6())}var zr0=()=>{};async function Or0(Y,Q,X,J,G=0,K){let W=Q==="<--"?`${Q} ${X} ${J}`:`${Q} ${X} ${J} ${await lp6(G)} ${K}`;Y(W)}var up6=(Y)=>{let[Q,X]=[",","."];return Y.map((G)=>G.replace(/(\d)(?=(\d\d\d)+(?!\d))/g,"$1"+Q)).join(X)},mp6=(Y)=>{let Q=Date.now()-Y;return up6([Q<1000?Q+"ms":Math.round(Q/1000)+"s"])},lp6=async(Y)=>{if(await Dr0())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}`},Lr0=(Y=console.log)=>{return async function(X,J){let{method:G,url:K}=X.req,W=K.slice(K.indexOf("/",8));await Or0(Y,"<--",G,W);let Z=Date.now();await J(),await Or0(Y,"-->",G,W,X.res.status,mp6(Z))}};var Nr0=S(()=>{zr0()});var Mr0=()=>{try{return performance.now()}catch{}return Date.now()},ON1=(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)RP(J,"total",Q.totalDescription);if(await G(),Q.total)TO(J,"total");if(Q.autoEnd)W.forEach((H,$)=>TO(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:"*")}}},wr0=(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)}},RP=(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:Mr0()})},TO=(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=Mr0()-W;wr0(Y,Q,Z,K,X),J.timers.delete(Q)};var Ar0=S(()=>{Ir()});var Pr0=S(()=>{Ar0()});class LN1{db;constructor(Y){this.db=Y}async create(Y,Q,X){let J=p8("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:p8("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=x3(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{...Mx(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:p8("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})=>NB(K)).map(({tool:K,originalIndex:W})=>Nv(`${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&&NB(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 Nv(`${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),Nv(`${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&&NB(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 Nv(`${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&&NB(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:p8("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(NB(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:p8("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()}}}var Er0=S(()=>{M5();QY();AF()});class NN1{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}}import{sql as u6}from"kysely";class MN1{db;redactor;databaseType;constructor(Y,Q="sqlite"){this.db=Y;this.redactor=new NN1,this.databaseType=Q}jsonExtract(Y,Q){if(this.databaseType==="postgres")return u6`(${u6.ref(Y)}::jsonb)->>${Q}`;let X=`$.${Q}`;return u6`json_extract(${u6.ref(Y)}, ${X})`}jsonExtractWithCommas(Y,Q){if(this.databaseType==="postgres")return u6`(',' || (${u6.ref(Y)}::jsonb)->>${Q} || ',')`;let X=`$.${Q}`;return u6`(',' || json_extract(${u6.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=u6.ref(W);return{value:null,groups:(await F.select([u6`${U}`.as("group_key"),this.aggregationExpression(G,V).as("agg_value")]).groupBy(u6`${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([u6`${U}`.as("group_key"),this.aggregationExpression(G,V).as("agg_value")]).groupBy(u6`${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(u6`time_bucket`).orderBy(u6`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(u6`${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 u6`(${u6.ref(Y)}::jsonb #>> ${J})::numeric`}return u6`CAST(json_extract(${u6.ref(Y)}, ${Q}) AS REAL)`}jsonExtractPathText(Y,Q){if(this.databaseType==="postgres"){let J=`{${Q.replace(/^\$\.?/,"").split(".").join(",")}}`;return u6`(${u6.ref(Y)}::jsonb #>> ${J})`}return u6`json_extract(${u6.ref(Y)}, ${Q})`}aggregationExpression(Y,Q){switch(Y){case"sum":return u6`COALESCE(SUM(${Q}), 0)`;case"avg":return u6`COALESCE(AVG(${Q}), 0)`;case"min":return u6`MIN(${Q})`;case"max":return u6`MAX(${Q})`;case"count":return u6`COUNT(${Q})`;case"count_all":return u6`COUNT(*)`;case"last":return u6`MAX(${Q})`;default:return u6`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 u6`date_trunc(${K}, timestamp::timestamp)`;let Z=G*(J==="m"?60:J==="h"?3600:86400);return u6`to_timestamp(floor(extract(epoch from timestamp::timestamp) / ${Z}) * ${Z})`}switch(J){case"m":if(G===1)return u6`strftime('%Y-%m-%d %H:%M:00', timestamp)`;return u6`strftime('%Y-%m-%d %H:', timestamp) || printf('%02d', (cast(strftime('%M', timestamp) as integer) / ${G}) * ${G}) || ':00'`;case"h":if(G===1)return u6`strftime('%Y-%m-%d %H:00:00', timestamp)`;return u6`strftime('%Y-%m-%d ', timestamp) || printf('%02d', (cast(strftime('%H', timestamp) as integer) / ${G}) * ${G}) || ':00:00'`;case"d":return u6`strftime('%Y-%m-%d 00:00:00', timestamp)`;default:return u6`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=u6`${H} LIKE ${F} ESCAPE '\\'`;Y=Y.where(V)}return Y}toDbRow(Y){return{id:Y.id||p8("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}}}var Tr0=S(()=>{M5()});class wN1{db;constructor(Y){this.db=Y}async create(Y,Q,X){let J=p8("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}}}var Cr0=S(()=>{M5()});class AN1{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}}class PN1{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=p8("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}}var Rr0=S(()=>{M5()});class EN1{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=p8("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}}var Ir0=S(()=>{M5()});class TN1{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=p8("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:p8("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:p8("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}}}var jr0=S(()=>{M5()});class CN1{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}}}async function Sr0(Y,Q){return(await Q.storage.connections.findById(Y))?.connection_url??null}function dp6(Y){let Q=Y.toLowerCase();return Q.includes("resource_metadata=")||Q.includes("invalid_token")||Q.includes("oauth")}async function kr0(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(dp6(J))return J}if(await pp6(Y))return'Bearer realm="mcp"'}return null}catch{return null}}async function pp6(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 fr(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(!RN1.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"}}),!RN1.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 cp6(Y,Q){let X=await Sr0(Y,Q);if(!X)return null;let J;try{J=new URL(X).origin}catch{return null}try{let G=await fr(X);if(G.ok){let K=await G.json();if(K.authorization_servers?.[0])return K.authorization_servers[0]}}catch{}return J}async function vr0(Y){let Q=Y.get("meshContext");if(!Q)Q=await CF.create(Y.req.raw),Y.set("meshContext",Q);return Q}async function _r0({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 kr0(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"}})}async function IN1(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}var yr,RN1,yr0=(Y)=>{if(!(Y.hostname==="localhost"||Y.hostname.endsWith(".localhost")||Y.hostname==="127.0.0.1"))Y.protocol="https:";return Y},fr0=async(Y)=>{let Q=Y.req.param("connectionId"),X=await vr0(Y),J=await Sr0(Q,X);if(!J)return Y.json({error:"Connection not found"},404);let G=yr0(new URL(Y.req.url)),K=`${G.origin}/mcp/${Q}`,W=`${G.origin}/oauth-proxy/${Q}`;try{let Z=await fr(J);if(!Z.ok&&RN1.includes(Z.status)){if(await kr0(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)}},br0;var jN1=S(()=>{N7();br();yr=new $Y,RN1=[404,401,406];yr.get("/.well-known/oauth-protected-resource/mcp/:connectionId",(Y)=>fr0(Y));yr.get("/mcp/:connectionId/.well-known/oauth-protected-resource",(Y)=>fr0(Y));yr.get("/.well-known/oauth-authorization-server/oauth-proxy/:connectionId",async(Y)=>{let Q=Y.req.param("connectionId"),X=await vr0(Y),J=await cp6(Q,X);if(!J)return Y.json({error:"Connection not found or no auth server"},404);try{let G=await IN1(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=`${yr0(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)}});br0=yr});async function hr(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?ZN(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 $=bO1(Y.req.query("mode")),F=await MB(Z,X,$),V=vU(F,{name:`mcp-virtual-mcp-${Z.title??"Decopilot"}`,version:"1.0.0"},{capabilities:{tools:{},resources:{},prompts:{}},instructions:Z.metadata?.instructions??void 0}),B=new iZ({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)}}var SN1,hr0;var kN1=S(()=>{QY();EA();N7();wv();SN1=new $Y;SN1.all("/gateway/:virtualMcpId?",async(Y)=>{let Q=Y.req.param("virtualMcpId")||Y.req.header("x-virtual-mcp-id");return hr(Y,Q)});SN1.all("/virtual-mcp/:virtualMcpId?",async(Y)=>{let Q=Y.req.param("virtualMcpId")||Y.req.header("x-virtual-mcp-id");return hr(Y,Q)});hr0=SN1});function CO(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 gr0(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 yG(J,Q,X),K=gO1(G,J),W=K.getServerCapabilities()??{tools:{},resources:{},prompts:{}},Z=vU(K,{name:"mcp-mesh-proxy-client",version:"1.0.0"},{capabilities:W,instructions:K.getInstructions()}),{client:H,server:$}=Q91();await Z.connect($);let F=new eJ({name:"mcp-mesh-proxy-client",version:"1.0.0"});return await F.connect(H),F}async function ur0(Y,Q){return gr0(Y,Q,{superUser:!1})}async function vN1(Y,Q){return gr0(Y,Q,{superUser:!0})}var xr,xr0=300000,mr0=(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)},lr0;var RO=S(()=>{AP();QY();RU();EA();N7();jN1();kN1();xr=new $Y;xr.all("/",async(Y)=>{return hr(Y,void 0)});xr.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 xO1(J,X,!1),K=new iZ({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 _r0({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 mr0(J,Y)}});xr.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 yG(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 mr0(G,Y)}});lr0=xr});function _N1(Y){let X="You are Deco Pilot, an AI assistant running inside Deco Studio (deco context management system).";if(Y?.trim())X+=`
|
|
1516
1516
|
|
|
1517
1517
|
---
|
|
1518
1518
|
|
|
@@ -1532,7 +1532,7 @@ Example input: "How do I connect to a database?"
|
|
|
1532
1532
|
Example output: Database Connection Setup
|
|
1533
1533
|
|
|
1534
1534
|
Example input: "What tools are available?"
|
|
1535
|
-
Example output: Available Tools Overview`;var IP=S(()=>{M5();nr0=["user_ask","subtask"]});function lr(Y){return typeof Y==="string"?Y:Y.toISOString()}class yv{db;constructor(Y){this.db=Y}async create(Y){let Q=Y.id??p8("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=mr;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:lr(Y.created_at),updated_at:lr(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:lr(Y.created_at),updated_at:lr(Y.updated_at)}}}var yN1=S(()=>{M5();IP()});function np6(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 ip6(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 ap6(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 ip6(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 rp6(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 op6(Y,Q,X,J=rr0){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",()=>rp6(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",()=>nc0(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}}async function or0(Y){let Q=new bz(Y.encryption.key),X={connections:new AS(Y.db,Q),organizationSettings:new AN1(Y.db),monitoring:new MN1(Y.db,Y.databaseType),monitoringDashboards:new wN1(Y.db),virtualMcps:new LN1(Y.db),users:new CN1(Y.db),threads:new yv(Y.db),tags:new TN1(Y.db),projects:new PS(Y.db),projectConnections:new PN1(Y.db),projectPluginConfigs:new EN1(Y.db)};return async(J,G)=>{let K=G?.timings??rr0,W=Dr(),Z=J?.headers.get("x-caller-id")??void 0,H=J?await op6(J,Y.auth,Y.db,K):{user:void 0},$=ap6({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}`:pZ(),U=new wF(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(sp6.map((z)=>[z,J?.headers.get(z)??null]).filter(([z,N])=>N!==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:np6(J?.headers.get("x-mesh-properties"))},eventBus:Y.eventBus,createMCPProxy:async(z)=>{return await ur0(z,D)},getOrCreateClient:W};return D}}var ar0,CF,rr0,sp6;var br=S(()=>{wO1();vn();Vq1();Er0();Tr0();Cr0();qq1();Rr0();Ir0();jr0();Lv();RO();Mr();yN1();PO1();CF={set:(Y)=>{ar0=Y},create:async(Y,Q)=>{return await ar0(Y,Q)}},rr0={measure:async(Y,Q)=>{return await Q()}},sp6=["x-hub-signature-256"]});class sr0{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,N=await this.listSubscriptions(Q,X);return{created:U,updated:D,deleted:z,unchanged:B,subscriptions:N}}}function tr0(Y){return new sr0(Y)}function gJ(Y,Q,X,J,G,K,W,Z){return gJ.fromTZ(gJ.tp(Y,Q,X,J,G,K,W),Z)}function fN1(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 tp6(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("+")?gJ.tp(X.getUTCFullYear(),X.getUTCMonth()+1,X.getUTCDate(),X.getUTCHours(),X.getUTCMinutes(),X.getUTCSeconds(),"Etc/UTC"):gJ.tp(X.getFullYear(),X.getMonth()+1,X.getDate(),X.getHours(),X.getMinutes(),X.getSeconds(),Q)}function ep6(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 xW(Y.startAt,Y.timezone)),Y.stopAt&&(Y.stopAt=new xW(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 fv(Y){return Object.prototype.toString.call(Y)==="[object Function]"||typeof Y=="function"||Y instanceof Function}function Yc6(Y){return fv(Y)}function Qc6(Y){typeof Deno<"u"&&typeof Deno.unrefTimer<"u"?Deno.unrefTimer(Y):Y&&typeof Y.unref<"u"&&Y.unref()}var bN1=32,bv,Xo0,er0=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 xW(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,bv),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]|bN1;else if(Q===bv)this.dayOfWeek[Y]=bv;else if(Q<6&&Q>0)this.dayOfWeek[Y]=this.dayOfWeek[Y]|Xo0[Q-1];else throw TypeError(`CronPattern: nth weekday out of range, should be 1-5 or L. Value: ${Q}, Type: ${typeof Q}`)}},Yo0,RF,xW=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&bv&&Xo0[W-1]&G)return!0;if(G&bN1){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=gJ.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>Yo0[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=gJ.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(gJ.fromTZISO(Q,this.tz))}findNext(Q,X,J,G){let K=this[X],W;J.lastDayOfMonth&&(this.month!==1?W=Yo0[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&bv)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,RF[J][0],Q,RF[J][2]);if(G>1){let K=J+1;for(;K<RF.length;)this[RF[K][0]]=-RF[K][2],K++;if(G===3)return this[RF[J][1]]++,this[RF[J][0]]=-RF[J][2],this.apply(),this.recurse(Q,X,0);if(this.apply())return this.recurse(Q,X,J-1)}return J+=1,J>=RF.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)):gJ.fromTZ(gJ.tp(this.year,this.month+1,this.day,this.hour,this.minute,this.second,this.tz),!1)}getTime(){return this.getDate(!1).getTime()}},Qo0=30000,dr,pr=class{name;options;_states;fn;constructor(Y,Q,X){let J,G;if(fv(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(fv(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=ep6(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 er0("* * * * *")},Y&&(Y instanceof Date||typeof Y=="string"&&Y.indexOf(":")>0)?this._states.once=new xW(Y,this.options.timezone||this.options.utcOffset):this._states.pattern=new er0(Y,this.options.timezone),this.name){if(dr.find((K)=>K.name===this.name))throw Error("Cron: Tried to initialize new named job '"+this.name+"', but name already taken.");dr.push(this)}return G!==void 0&&Yc6(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 xW||Y instanceof Date?Q.getTime()-Y.getTime():Q.getTime()-new xW(Y).getTime():null}stop(){this._states.kill=!0,this._states.currentTimeout&&clearTimeout(this._states.currentTimeout);let Y=dr.indexOf(this);Y>=0&&dr.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>Qo0&&(Q=Qo0),this._states.currentTimeout=setTimeout(()=>this._checkTrigger(X),Q),this._states.currentTimeout&&this.options.unref&&Qc6(this._states.currentTimeout),this)}async _trigger(Y){if(this._states.blocking=!0,this._states.currentRun=new xW(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){fv(this.options.catch)&&this.options.catch(Q,this)}else this.fn!==void 0&&await this.fn(this,this.options.context);this._states.previousRun=new xW(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&&fv(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 xW(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 xW(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 xW(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 xW(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]}};var hN1=S(()=>{gJ.fromTZISO=(Y,Q,X)=>gJ.fromTZ(tp6(Y,Q),X);gJ.fromTZ=function(Y,Q){let X=new Date(Date.UTC(Y.y,Y.m-1,Y.d,Y.h,Y.i,Y.s)),J=fN1(Y.tz,X),G=new Date(X.getTime()-J),K=fN1(Y.tz,G);if(K-J===0)return G;{let W=new Date(X.getTime()-K),Z=fN1(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}};gJ.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}};gJ.tp=(Y,Q,X,J,G,K,W)=>({y:Y,m:Q,d:X,h:J,i:G,s:K,tz:W});gJ.minitz=gJ;bv=31|bN1,Xo0=[1,2,4,8,16],Yo0=[31,28,31,30,31,30,31,31,30,31,30,31],RF=[["month","year",0],["day","month",-1],["hour","day",0],["minute","hour",0],["second","minute",0]];dr=[]});class hv{localEmit=null;async start(Y){this.localEmit=Y}broadcast(Y,Q){this.localEmit?.(Y,Q)}async stop(){this.localEmit=null}}class Wo0{listeners=new Map;totalCount=0;strategy=new hv;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>=Go0)return console.warn(`[SSEHub] Total connection limit reached (${Go0})`),null;let Q=this.listeners.get(Y.organizationId);if(!Q)Q=new Map,this.listeners.set(Y.organizationId,Q);if(Q.size>=Jo0)return console.warn(`[SSEHub] Per-org connection limit reached for ${Y.organizationId} (${Jo0})`),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&&!Xc6(Q.type,J.typePatterns))continue;try{J.push(Q)}catch{this.remove(Y,J.id)}}}}function Xc6(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}function Zo0(Y){return{id:Y.id,type:Y.type,source:Y.source,subject:Y.subject,data:Y.data?Jc6(Y.data):void 0,time:Y.time}}function Jc6(Y){if(typeof Y==="string")try{return JSON.parse(Y)}catch{return Y}return Y}var Jo0=50,Go0=500,uJ;var cr=S(()=>{uJ=new Wo0});var nr;var xN1=S(()=>{nr={pollIntervalMs:5000,batchSize:100,maxAttempts:20,retryDelayMs:1000,maxDelayMs:3600000}});function Gc6(Y){return Y.endsWith("_self")}function Wc6(Y){return Y.slice(0,-5)}function Ko0(){return async(Y,Q)=>{try{if(Gc6(Y)&&QO1()){let W=Wc6(Y),Z=await CF.create();if(await Yc0(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 vN1(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 CF.create(),J=await vN1(Y,X),K=await dq1.forClient(CO(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}}}}var Ho0=S(()=>{br();Kv();oS();RO()});function $o0(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 Zc6(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($o0(J.event))}else Q.set(G,{connectionId:J.subscription.connectionId,deliveryIds:[J.delivery.id],events:[$o0(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 gN1{storage;notifySubscriber;running=!1;processing=!1;pendingNotify=!1;config;constructor(Y,Q){this.storage=Y;this.notifySubscriber=Ko0(),this.config={...nr,...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=Zc6(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 pr(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)}}}var Fo0=S(()=>{hN1();xN1();Ho0()});class uN1{storage;worker;notifyStrategy;running=!1;constructor(Y){this.storage=Y.storage,this.notifyStrategy=Y.notifyStrategy,this.worker=new gN1(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 pr(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});uJ.emit(Y,Zo0(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}}var Vo0=S(()=>{hN1();cr();Fo0()});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 lN1{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 dN1(...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 Kc6}from"kysely";class cN1{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===jP&&this.onNotify)this.onNotify()}),this.listenClient.on("error",(Q)=>{console.error("[PostgresNotify] Connection error:",Q),this.cleanup()}),await this.listenClient.query(`LISTEN ${jP}`),console.log("[PostgresNotify] Started LISTEN on",jP)}catch(Q){console.error("[PostgresNotify] Failed to start LISTEN:",Q),this.cleanup()}}async stop(){if(this.listenClient){try{await this.listenClient.query(`UNLISTEN ${jP}`),console.log("[PostgresNotify] Stopped LISTEN on",jP)}catch{}this.cleanup()}}async notify(Y){try{await Kc6`SELECT pg_notify(${jP}, ${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}}var jP="mesh_events";var qo0=()=>{};function Hc6(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 Bo0(Y,Q,X){let J=tr0(Y.db),G=Q?.pollIntervalMs??nr.pollIntervalMs,K=Hc6(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=dN1(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=dN1(W,new cN1(Y.db,Y.pool));break}case"polling":default:console.log("[EventBus] Using polling notify strategy"),H=W}let $=Z&&X?new lN1({getConnection:()=>X.getConnection()}):new hv;if(uJ.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 uN1({storage:J,config:Q,notifyStrategy:H})}var ir=S(()=>{Vo0();xN1();qo0();cr();cr()});var Uo0=()=>{};var nN1=()=>{};var Do0=()=>{};var $c6,$29;var zo0=S(()=>{Uo0();nN1();TB();Do0();$c6={br:".br",zstd:".zst",gzip:".gz"},$29=Object.keys($c6)});var Oo0=S(()=>{zo0()});var Lo0=()=>{};var No0=S(()=>{Lo0()});var Mo0=()=>{};var wo0=S(()=>{FN1()});var iN1=S(()=>{CB();wo0()});var aN1="x-hono-disable-ssg",I29;var rN1=S(()=>{iN1();I29=(()=>{try{return new Response("SSG is disabled",{status:404,headers:{[aN1]:"true"}})}catch{return null}})()});var Ao0=S(()=>{Rr()});var oN1=S(()=>{Ao0()});var Po0=S(()=>{No0();Mo0();nN1();rN1();oN1();iN1()});var Eo0=S(()=>{rN1();oN1();Po0()});var $T9;var To0=S(()=>{Eo0();({write:$T9}=Bun)});var qc6=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)}},Co0=(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 Ro0=()=>{};var xv=(Y)=>("server"in Y.env)?Y.env.server:Y.env;var ar=()=>{};var Bc6;var Io0=S(()=>{Ro0();ar();Bc6=Co0((Y,Q)=>{let X=xv(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 sN1=(Y)=>{let Q=xv(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}}};var jo0=S(()=>{ar()});var So0=S(()=>{Oo0();To0();Io0();jo0();ar()});var ko0;var vo0=S(()=>{ko0={google:{name:"Google",icon:"https://assets.decocache.com/webdraw/eb7480aa-a68b-4ce4-98ff-36aa121762a7/google.svg"},github:{name:"GitHub",icon:"https://assets.decocache.com/webdraw/5f999dcb-c8a6-4572-948c-9996ef1d502f/github.svg"},microsoft:{name:"Microsoft",icon:"https://assets.decocache.com/mcp/aa6f6e1a-6526-4bca-99cc-82e2ec38b0e4/microsoft.png"}}});var tN1,_o0;var yo0=S(()=>{N7();So0();oq();vo0();rq();tN1=new $Y;tN1.get("/config",async(Y)=>{try{let Q=Object.keys(_9.socialProviders??{}),X=Q.length>0,J=Q.map((W)=>({name:W,icon:ko0[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:Ar},socialProviders:{enabled:X,providers:J},sso:_9.ssoConfig?{enabled:!0,providerId:_9.ssoConfig.providerId}:{enabled:!1},stdioEnabled:G,localMode:dZ()};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)}});tN1.post("/local-session",async(Y)=>{if(!dZ())return Y.json({success:!1,error:"Local mode is not active"},403);let Q;try{Q=sN1(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(() => (rq(),jn));await J();let{auth:G}=await Promise.resolve().then(() => (oq(),Va0)),K=await Kq1();if(!K)return Y.json({success:!1,error:"Local admin user not found"},500);let W=await In();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)}});_o0=tN1});function fo0(Y){let{toolOutputMap:Q}=Y;return fJ({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:c8(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 FO1({input:G,code:J,timeoutMs:5000}),W=eN1({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}}})}function zc6(Y){if(!Y)return 0;let Q=Y.match(Dc6)?.length??0,X=Y.length-Q;return Math.ceil(X/Uc6)+Math.ceil(Q*1.5)}function eN1(Y){let Q=typeof Y==="string"?Y:JSON.stringify(Y);return zc6(Q)}var Uc6=4,Dc6;var YM1=S(()=>{XK();m1();Zr();Dc6=/[\u3000-\u303f\u3040-\u309f\u30a0-\u30ff\u4e00-\u9fff\u3400-\u4dbf\uf900-\ufaff]/g});function rr(Y,Q){if(Y==="yolo")return!1;if(Y==="none")return!0;return Q!==!0}function or(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 gv(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[$,fJ({title:F??$,description:V,inputSchema:kW(B),outputSchema:void 0,needsApproval:rr(J,U?.readOnlyHint),execute:async(z,N)=>{let w=performance.now();try{return await Y.callTool({name:H.name,arguments:z},IK,{signal:N.abortSignal,timeout:xr0})}finally{if(X){let E=performance.now()-w;X.write({type:"data-tool-metadata",id:N.toolCallId,data:{_meta:D,annotations:U,latencyMs:E}})}}},toModelOutput:async({output:z,toolCallId:N})=>{if(K){let E=eN1(z.structuredContent??z.content);if(E>4000)return Q.set(N,JSON.stringify(z.structuredContent??z.content)),{type:"text",value:`Tool call ${N} 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(`
|
|
1535
|
+
Example output: Available Tools Overview`;var IP=S(()=>{M5();nr0=["user_ask","subtask"]});function lr(Y){return typeof Y==="string"?Y:Y.toISOString()}class yv{db;constructor(Y){this.db=Y}async create(Y){let Q=Y.id??p8("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=mr;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:lr(Y.created_at),updated_at:lr(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:lr(Y.created_at),updated_at:lr(Y.updated_at)}}}var yN1=S(()=>{M5();IP()});function np6(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 ip6(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 ap6(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 ip6(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 rp6(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 op6(Y,Q,X,J=rr0){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",()=>rp6(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",()=>nc0(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}}async function or0(Y){let Q=new bz(Y.encryption.key),X={connections:new AS(Y.db,Q),organizationSettings:new AN1(Y.db),monitoring:new MN1(Y.db,Y.databaseType),monitoringDashboards:new wN1(Y.db),virtualMcps:new LN1(Y.db),users:new CN1(Y.db),threads:new yv(Y.db),tags:new TN1(Y.db),projects:new PS(Y.db),projectConnections:new PN1(Y.db),projectPluginConfigs:new EN1(Y.db)};return async(J,G)=>{let K=G?.timings??rr0,W=Dr(),Z=J?.headers.get("x-caller-id")??void 0,H=J?await op6(J,Y.auth,Y.db,K):{user:void 0},$=ap6({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}`:pZ(),U=new wF(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(sp6.map((z)=>[z,J?.headers.get(z)??null]).filter(([z,N])=>N!==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:np6(J?.headers.get("x-mesh-properties"))},eventBus:Y.eventBus,createMCPProxy:async(z)=>{return await ur0(z,D)},getOrCreateClient:W};return D}}var ar0,CF,rr0,sp6;var br=S(()=>{wO1();vn();Vq1();Er0();Tr0();Cr0();qq1();Rr0();Ir0();jr0();Lv();RO();Mr();yN1();PO1();CF={set:(Y)=>{ar0=Y},create:async(Y,Q)=>{return await ar0(Y,Q)}},rr0={measure:async(Y,Q)=>{return await Q()}},sp6=["x-hub-signature-256"]});class sr0{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,N=await this.listSubscriptions(Q,X);return{created:U,updated:D,deleted:z,unchanged:B,subscriptions:N}}}function tr0(Y){return new sr0(Y)}function gJ(Y,Q,X,J,G,K,W,Z){return gJ.fromTZ(gJ.tp(Y,Q,X,J,G,K,W),Z)}function fN1(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 tp6(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("+")?gJ.tp(X.getUTCFullYear(),X.getUTCMonth()+1,X.getUTCDate(),X.getUTCHours(),X.getUTCMinutes(),X.getUTCSeconds(),"Etc/UTC"):gJ.tp(X.getFullYear(),X.getMonth()+1,X.getDate(),X.getHours(),X.getMinutes(),X.getSeconds(),Q)}function ep6(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 xW(Y.startAt,Y.timezone)),Y.stopAt&&(Y.stopAt=new xW(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 fv(Y){return Object.prototype.toString.call(Y)==="[object Function]"||typeof Y=="function"||Y instanceof Function}function Yc6(Y){return fv(Y)}function Qc6(Y){typeof Deno<"u"&&typeof Deno.unrefTimer<"u"?Deno.unrefTimer(Y):Y&&typeof Y.unref<"u"&&Y.unref()}var bN1=32,bv,Xo0,er0=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 xW(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,bv),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]|bN1;else if(Q===bv)this.dayOfWeek[Y]=bv;else if(Q<6&&Q>0)this.dayOfWeek[Y]=this.dayOfWeek[Y]|Xo0[Q-1];else throw TypeError(`CronPattern: nth weekday out of range, should be 1-5 or L. Value: ${Q}, Type: ${typeof Q}`)}},Yo0,RF,xW=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&bv&&Xo0[W-1]&G)return!0;if(G&bN1){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=gJ.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>Yo0[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=gJ.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(gJ.fromTZISO(Q,this.tz))}findNext(Q,X,J,G){let K=this[X],W;J.lastDayOfMonth&&(this.month!==1?W=Yo0[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&bv)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,RF[J][0],Q,RF[J][2]);if(G>1){let K=J+1;for(;K<RF.length;)this[RF[K][0]]=-RF[K][2],K++;if(G===3)return this[RF[J][1]]++,this[RF[J][0]]=-RF[J][2],this.apply(),this.recurse(Q,X,0);if(this.apply())return this.recurse(Q,X,J-1)}return J+=1,J>=RF.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)):gJ.fromTZ(gJ.tp(this.year,this.month+1,this.day,this.hour,this.minute,this.second,this.tz),!1)}getTime(){return this.getDate(!1).getTime()}},Qo0=30000,dr,pr=class{name;options;_states;fn;constructor(Y,Q,X){let J,G;if(fv(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(fv(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=ep6(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 er0("* * * * *")},Y&&(Y instanceof Date||typeof Y=="string"&&Y.indexOf(":")>0)?this._states.once=new xW(Y,this.options.timezone||this.options.utcOffset):this._states.pattern=new er0(Y,this.options.timezone),this.name){if(dr.find((K)=>K.name===this.name))throw Error("Cron: Tried to initialize new named job '"+this.name+"', but name already taken.");dr.push(this)}return G!==void 0&&Yc6(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 xW||Y instanceof Date?Q.getTime()-Y.getTime():Q.getTime()-new xW(Y).getTime():null}stop(){this._states.kill=!0,this._states.currentTimeout&&clearTimeout(this._states.currentTimeout);let Y=dr.indexOf(this);Y>=0&&dr.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>Qo0&&(Q=Qo0),this._states.currentTimeout=setTimeout(()=>this._checkTrigger(X),Q),this._states.currentTimeout&&this.options.unref&&Qc6(this._states.currentTimeout),this)}async _trigger(Y){if(this._states.blocking=!0,this._states.currentRun=new xW(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){fv(this.options.catch)&&this.options.catch(Q,this)}else this.fn!==void 0&&await this.fn(this,this.options.context);this._states.previousRun=new xW(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&&fv(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 xW(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 xW(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 xW(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 xW(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]}};var hN1=S(()=>{gJ.fromTZISO=(Y,Q,X)=>gJ.fromTZ(tp6(Y,Q),X);gJ.fromTZ=function(Y,Q){let X=new Date(Date.UTC(Y.y,Y.m-1,Y.d,Y.h,Y.i,Y.s)),J=fN1(Y.tz,X),G=new Date(X.getTime()-J),K=fN1(Y.tz,G);if(K-J===0)return G;{let W=new Date(X.getTime()-K),Z=fN1(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}};gJ.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}};gJ.tp=(Y,Q,X,J,G,K,W)=>({y:Y,m:Q,d:X,h:J,i:G,s:K,tz:W});gJ.minitz=gJ;bv=31|bN1,Xo0=[1,2,4,8,16],Yo0=[31,28,31,30,31,30,31,31,30,31,30,31],RF=[["month","year",0],["day","month",-1],["hour","day",0],["minute","hour",0],["second","minute",0]];dr=[]});class hv{localEmit=null;async start(Y){this.localEmit=Y}broadcast(Y,Q){this.localEmit?.(Y,Q)}async stop(){this.localEmit=null}}class Wo0{listeners=new Map;totalCount=0;strategy=new hv;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>=Go0)return console.warn(`[SSEHub] Total connection limit reached (${Go0})`),null;let Q=this.listeners.get(Y.organizationId);if(!Q)Q=new Map,this.listeners.set(Y.organizationId,Q);if(Q.size>=Jo0)return console.warn(`[SSEHub] Per-org connection limit reached for ${Y.organizationId} (${Jo0})`),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&&!Xc6(Q.type,J.typePatterns))continue;try{J.push(Q)}catch{this.remove(Y,J.id)}}}}function Xc6(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}function Zo0(Y){return{id:Y.id,type:Y.type,source:Y.source,subject:Y.subject,data:Y.data?Jc6(Y.data):void 0,time:Y.time}}function Jc6(Y){if(typeof Y==="string")try{return JSON.parse(Y)}catch{return Y}return Y}var Jo0=50,Go0=500,uJ;var cr=S(()=>{uJ=new Wo0});var nr;var xN1=S(()=>{nr={pollIntervalMs:5000,batchSize:100,maxAttempts:20,retryDelayMs:1000,maxDelayMs:3600000}});function Gc6(Y){return Y.endsWith("_self")}function Wc6(Y){return Y.slice(0,-5)}function Ko0(){return async(Y,Q)=>{try{if(Gc6(Y)&&QO1()){let W=Wc6(Y),Z=await CF.create();if(await Yc0(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 vN1(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 CF.create(),J=await vN1(Y,X),K=await dq1.forClient(CO(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}}}}var Ho0=S(()=>{br();Kv();oS();RO()});function $o0(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 Zc6(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($o0(J.event))}else Q.set(G,{connectionId:J.subscription.connectionId,deliveryIds:[J.delivery.id],events:[$o0(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 gN1{storage;notifySubscriber;running=!1;processing=!1;pendingNotify=!1;config;constructor(Y,Q){this.storage=Y;this.notifySubscriber=Ko0(),this.config={...nr,...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=Zc6(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 pr(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)}}}var Fo0=S(()=>{hN1();xN1();Ho0()});class uN1{storage;worker;notifyStrategy;running=!1;constructor(Y){this.storage=Y.storage,this.notifyStrategy=Y.notifyStrategy,this.worker=new gN1(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 pr(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});uJ.emit(Y,Zo0(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}}var Vo0=S(()=>{hN1();cr();Fo0()});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 lN1{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 dN1(...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 Kc6}from"kysely";class cN1{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===jP&&this.onNotify)this.onNotify()}),this.listenClient.on("error",(Q)=>{console.error("[PostgresNotify] Connection error:",Q),this.cleanup()}),await this.listenClient.query(`LISTEN ${jP}`),console.log("[PostgresNotify] Started LISTEN on",jP)}catch(Q){console.error("[PostgresNotify] Failed to start LISTEN:",Q),this.cleanup()}}async stop(){if(this.listenClient){try{await this.listenClient.query(`UNLISTEN ${jP}`),console.log("[PostgresNotify] Stopped LISTEN on",jP)}catch{}this.cleanup()}}async notify(Y){try{await Kc6`SELECT pg_notify(${jP}, ${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}}var jP="mesh_events";var qo0=()=>{};function Hc6(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 Bo0(Y,Q,X){let J=tr0(Y.db),G=Q?.pollIntervalMs??nr.pollIntervalMs,K=Hc6(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=dN1(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=dN1(W,new cN1(Y.db,Y.pool));break}case"polling":default:console.log("[EventBus] Using polling notify strategy"),H=W}let $=Z&&X?new lN1({getConnection:()=>X.getConnection()}):new hv;if(uJ.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 uN1({storage:J,config:Q,notifyStrategy:H})}var ir=S(()=>{Vo0();xN1();qo0();cr();cr()});var Uo0=()=>{};var nN1=()=>{};var Do0=()=>{};var $c6,$29;var zo0=S(()=>{Uo0();nN1();TB();Do0();$c6={br:".br",zstd:".zst",gzip:".gz"},$29=Object.keys($c6)});var Oo0=S(()=>{zo0()});var Lo0=()=>{};var No0=S(()=>{Lo0()});var Mo0=()=>{};var wo0=S(()=>{FN1()});var iN1=S(()=>{CB();wo0()});var aN1="x-hono-disable-ssg",I29;var rN1=S(()=>{iN1();I29=(()=>{try{return new Response("SSG is disabled",{status:404,headers:{[aN1]:"true"}})}catch{return null}})()});var Ao0=S(()=>{Rr()});var oN1=S(()=>{Ao0()});var Po0=S(()=>{No0();Mo0();nN1();rN1();oN1();iN1()});var Eo0=S(()=>{rN1();oN1();Po0()});var $T9;var To0=S(()=>{Eo0();({write:$T9}=Bun)});var qc6=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)}},Co0=(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 Ro0=()=>{};var xv=(Y)=>("server"in Y.env)?Y.env.server:Y.env;var ar=()=>{};var Bc6;var Io0=S(()=>{Ro0();ar();Bc6=Co0((Y,Q)=>{let X=xv(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 sN1=(Y)=>{let Q=xv(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}}};var jo0=S(()=>{ar()});var So0=S(()=>{Oo0();To0();Io0();jo0();ar()});var ko0;var vo0=S(()=>{ko0={google:{name:"Google",icon:"https://assets.decocache.com/webdraw/eb7480aa-a68b-4ce4-98ff-36aa121762a7/google.svg"},github:{name:"GitHub",icon:"https://assets.decocache.com/webdraw/5f999dcb-c8a6-4572-948c-9996ef1d502f/github.svg"},microsoft:{name:"Microsoft",icon:"https://assets.decocache.com/mcp/aa6f6e1a-6526-4bca-99cc-82e2ec38b0e4/microsoft.png"}}});var tN1,_o0;var yo0=S(()=>{N7();So0();oq();vo0();rq();tN1=new $Y;tN1.get("/config",async(Y)=>{try{let Q=Object.keys(_9.socialProviders??{}),X=Q.length>0,J=Q.map((W)=>({name:W,icon:ko0[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:Ar},socialProviders:{enabled:X,providers:J},sso:_9.ssoConfig?{enabled:!0,providerId:_9.ssoConfig.providerId}:{enabled:!1},stdioEnabled:G,localMode:dZ()};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)}});tN1.post("/local-session",async(Y)=>{if(!dZ())return Y.json({success:!1,error:"Local mode is not active"},403);let Q;try{Q=sN1(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(() => (rq(),jn));await J();let{auth:G}=await Promise.resolve().then(() => (oq(),Va0)),K=await Kq1();if(!K)return Y.json({success:!1,error:"Local admin user not found"},500);let W=await In();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)}});_o0=tN1});function fo0(Y){let{toolOutputMap:Q}=Y;return fJ({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:c8(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 FO1({input:G,code:J,timeoutMs:5000}),W=eN1({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}}})}function zc6(Y){if(!Y)return 0;let Q=Y.match(Dc6)?.length??0,X=Y.length-Q;return Math.ceil(X/Uc6)+Math.ceil(Q*1.5)}function eN1(Y){let Q=typeof Y==="string"?Y:JSON.stringify(Y);return zc6(Q)}var Uc6=4,Dc6;var YM1=S(()=>{XK();m1();Zr();Dc6=/[\u3000-\u303f\u3040-\u309f\u30a0-\u30ff\u4e00-\u9fff\u3400-\u4dbf\uf900-\ufaff]/g});function rr(Y,Q){if(Y==="yolo")return!1;if(Y==="none")return!0;return Q!==!0}function or(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 gv(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[$,fJ({title:F??$,description:V,inputSchema:kW(B),outputSchema:void 0,needsApproval:rr(J,U?.readOnlyHint),execute:async(z,N)=>{let w=performance.now();try{return await Y.callTool({name:H.name,arguments:z},IK,{signal:N.abortSignal,timeout:xr0})}finally{if(X){let E=performance.now()-w;X.write({type:"data-tool-metadata",id:N.toolCallId,data:{_meta:D,annotations:U,latencyMs:E}})}}},toModelOutput:async({output:z,toolCallId:N})=>{if(K){let E=eN1(z.structuredContent??z.content);if(E>4000)return Q.set(N,JSON.stringify(z.structuredContent??z.content)),{type:"text",value:`Tool call ${N} 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(`
|
|
1536
1536
|
`)||"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(`
|
|
1537
1537
|
`)}}})]});return Object.fromEntries(Z)}async function QM1(Y){let Q=Y.get("meshContext"),X=Q.auth?.user?.id;if(!X)throw new AX(401,{message:"Unauthorized"});let J=or(Y),G=Y.req.param("threadId");if(!G)throw new AX(400,{message:"Missing thread ID"});if(/[.*>\s]/.test(G))throw new AX(400,{message:"Invalid thread ID"});let K=await Q.storage.threads.get(G);if(!K||K.organization_id!==J.id)throw new AX(404,{message:"Thread not found"});if(K.created_by!==X)throw new AX(403,{message:"Not authorized"});return{ctx:Q,organization:J,thread:K,threadId:G,userId:X}}var sr=S(()=>{_Q();XK();EP();RO();YM1()});function bo0(Y,Q,X){let{organization:J,needsApproval:G}=Q;return fJ({description:Nc6,inputSchema:c8(Oc6),outputSchema:c8(Lc6),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:Mc6,latencyMs:H}})}}})}var Oc6,Lc6,Nc6="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.",Mc6;var ho0=S(()=>{XK();m1();Oc6=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.")}),Lc6=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")}))}),Mc6={readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1}});function Ec6(Y){let Q=`You are a focused subtask agent delegated a specific task by a parent agent.
|
|
1538
1538
|
|