decocms 4.217.7 → 4.217.9
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/dist/client/assets/{AlertCircle-Dxhi9pm-.js → AlertCircle-YANopvaV.js} +1 -1
- package/dist/client/assets/{AreaChart-kRl0hdod.js → AreaChart-oVj-4ppY.js} +1 -1
- package/dist/client/assets/{ArrowLeft-CFEwTArF.js → ArrowLeft-C2NHDUNk.js} +1 -1
- package/dist/client/assets/{ArrowUp-gVAHw_Ax.js → ArrowUp-CA-JeTEm.js} +1 -1
- package/dist/client/assets/{ArrowUpRight-DXmI1jkw.js → ArrowUpRight-CGzRPrr0.js} +1 -1
- package/dist/client/assets/{Check-DSgFEM2L.js → Check-_yM9Kata.js} +1 -1
- package/dist/client/assets/{CheckCircle-BhTuGU0-.js → CheckCircle-CMp6LH2F.js} +1 -1
- package/dist/client/assets/{ChevronDown-BEDidEh9.js → ChevronDown-CnG8qm4F.js} +1 -1
- package/dist/client/assets/{ChevronRight-CVyfVsEG.js → ChevronRight-DjrUg_vP.js} +1 -1
- package/dist/client/assets/{ChevronUp-COVNczhm.js → ChevronUp-CfalNwJz.js} +1 -1
- package/dist/client/assets/{Copy01-CNJF83mn.js → Copy01-8EN_Tz0v.js} +1 -1
- package/dist/client/assets/{CpuChip01-CYk3iRkL.js → CpuChip01-CD9tYygV.js} +1 -1
- package/dist/client/assets/{CreditCard01-DkeDv26S.js → CreditCard01-CMHezVuz.js} +1 -1
- package/dist/client/assets/{DotsVertical-D9nh95yV.js → DotsVertical-c_jJEVfq.js} +1 -1
- package/dist/client/assets/{Eye-C54NqiMw.js → Eye-BlyGwBoE.js} +1 -1
- package/dist/client/assets/{FilterLines-Dck1Fmkg.js → FilterLines-B0IAq4Bw.js} +1 -1
- package/dist/client/assets/{Globe01-BwanJKpk.js → Globe01-AhmdTdCP.js} +1 -1
- package/dist/client/assets/{Globe04-DCRIsP94.js → Globe04-C-xCjSzZ.js} +1 -1
- package/dist/client/assets/{HardDrive-BjP7zQwI.js → HardDrive-Bzv1ZxTg.js} +1 -1
- package/dist/client/assets/{Key01-niylfKL1.js → Key01-_ovUnw2E.js} +1 -1
- package/dist/client/assets/{LayoutLeft-BAAS9zKw.js → LayoutLeft-Bt8A31Hh.js} +1 -1
- package/dist/client/assets/{LinkExternal01-B6S5Rz2s.js → LinkExternal01-DEdF618y.js} +1 -1
- package/dist/client/assets/{LogOut01-DXRfJdj1.js → LogOut01-Dr4jczWV.js} +1 -1
- package/dist/client/assets/{Monitor01-BC53Vb-U.js → Monitor01-Rv6tbeGr.js} +1 -1
- package/dist/client/assets/{Palette-DlhwWx0K.js → Palette-D0kYZjxJ.js} +1 -1
- package/dist/client/assets/{Play-UpAI05Kq.js → Play-BSTx4hcz.js} +1 -1
- package/dist/client/assets/{Plus-BXaIkucy.js → Plus-DLR-BZWG.js} +1 -1
- package/dist/client/assets/{SearchLg-DH7J42WD.js → SearchLg-DJbLdv9B.js} +1 -1
- package/dist/client/assets/{SearchMd-BIlhzY1c.js → SearchMd-D3apVYNe.js} +1 -1
- package/dist/client/assets/{Settings02-CSqpu5wr.js → Settings02-B24PMNg2.js} +1 -1
- package/dist/client/assets/{Share07-CTH_nYQf.js → Share07-CAJgQr0K.js} +1 -1
- package/dist/client/assets/{Shield01-Dc_ab3h9.js → Shield01-CBepBzXN.js} +1 -1
- package/dist/client/assets/{Star01-B2IUBWqc.js → Star01-CbQuMlX_.js} +1 -1
- package/dist/client/assets/{Stars01-DuPlQ7DY.js → Stars01-DxGwL2oe.js} +1 -1
- package/dist/client/assets/{Stars02-WcprVryK.js → Stars02-CZ2diuR4.js} +1 -1
- package/dist/client/assets/{Sun-BfS4eDM_.js → Sun-BrwsBdX9.js} +1 -1
- package/dist/client/assets/{SwitchHorizontal01-CSA1WpF0.js → SwitchHorizontal01-oW92OCLr.js} +1 -1
- package/dist/client/assets/{Tool01-CCfqkRXP.js → Tool01-DmOt9QZ3.js} +1 -1
- package/dist/client/assets/{Tool02-B0vQUrq9.js → Tool02-DEPXfhTv.js} +1 -1
- package/dist/client/assets/{Trash01-yLC_7Y3C.js → Trash01-O3xNTX2z.js} +1 -1
- package/dist/client/assets/{TrendUp01-tD-XqMYd.js → TrendUp01-BssFgTvI.js} +1 -1
- package/dist/client/assets/{Upload01-CqfqFJ0_.js → Upload01-CS7Z0Zid.js} +1 -1
- package/dist/client/assets/{User01-DkTzHuh2.js → User01-qwduxIEA.js} +1 -1
- package/dist/client/assets/{Users01-uoKYvynf.js → Users01-BYwYg6v6.js} +1 -1
- package/dist/client/assets/{Users03-RccCN6Hd.js → Users03-Ba5lB2eo.js} +1 -1
- package/dist/client/assets/{X-Brg4UfDf.js → X-C1nYB9YH.js} +1 -1
- package/dist/client/assets/{XCircle-Dr4WXLyP.js → XCircle-BTyfLLAc.js} +1 -1
- package/dist/client/assets/{XClose-Co1sZUE5.js → XClose-yHK-SWjt.js} +1 -1
- package/dist/client/assets/{Zap-B5sgYZP8.js → Zap-BOjTuTOY.js} +1 -1
- package/dist/client/assets/{ZapSquare-Bsy_WrsX.js → ZapSquare-DNpVYX7y.js} +1 -1
- package/dist/client/assets/{access-gate-BYsNAySm.js → access-gate-DkHjs4D5.js} +1 -1
- package/dist/client/assets/{agent-icon-DUkJFQW1.js → agent-icon-DENunf_C.js} +1 -1
- package/dist/client/assets/{agents-list-D4NJdPD2.js → agents-list-DiukD831.js} +1 -1
- package/dist/client/assets/{ai-providers-ujO6384i.js → ai-providers-DlRohwTs.js} +1 -1
- package/dist/client/assets/{alert-1950pIow.js → alert-B92_AV4W.js} +1 -1
- package/dist/client/assets/{alert-dialog-CMvWotpv.js → alert-dialog-BWPe1taq.js} +1 -1
- package/dist/client/assets/{api-keys-BfPNqYnc.js → api-keys-DAoBqRRg.js} +1 -1
- package/dist/client/assets/{app-editor-DP9mgJ2p.js → app-editor-6OniwMEI.js} +1 -1
- package/dist/client/assets/{auth-CrqcSeNh.js → auth-C9KAUO2x.js} +1 -1
- package/dist/client/assets/{auth-catchall-B2l4pYy_.js → auth-catchall-CyfYFHSY.js} +1 -1
- package/dist/client/assets/{auth-entry-DSHlcXX5.js → auth-entry-DJauzPnX.js} +1 -1
- package/dist/client/assets/{auth-split-layout-CfDpvc7S.js → auth-split-layout-BbtvQcMk.js} +1 -1
- package/dist/client/assets/{authenticate-and-persist-oauth-CGGQ6X7n.js → authenticate-and-persist-oauth-DAcRcaAc.js} +1 -1
- package/dist/client/assets/{automation-list-row-r-hml0Jt.js → automation-list-row-B97mrpWc.js} +1 -1
- package/dist/client/assets/{automation-runs-BTIFXOg2.js → automation-runs-i-JMJchX.js} +1 -1
- package/dist/client/assets/{automations-CO0R2w6i.js → automations-P8Ohb4cW.js} +1 -1
- package/dist/client/assets/{avatar-Cg5H-7cJ.js → avatar-DpDIwVT6.js} +1 -1
- package/dist/client/assets/{badge-DxovdN3e.js → badge-C6QS_Nkz.js} +1 -1
- package/dist/client/assets/{billing-J9_sy1zT.js → billing-DZwcYXni.js} +1 -1
- package/dist/client/assets/{block-document-BbeTli-Y.js → block-document-BR78w6hg.js} +1 -1
- package/dist/client/assets/{brand-context-BZh2Vv9I.js → brand-context-CXmtOzZV.js} +1 -1
- package/dist/client/assets/{buckets-DkPRWqlt.js → buckets-C7Uk_03n.js} +1 -1
- package/dist/client/assets/{bulk-category-panel-Bo2EerRl.js → bulk-category-panel-BKO2kDxX.js} +1 -1
- package/dist/client/assets/{capability-load-error-uvmi759X.js → capability-load-error-Bhwj6R8b.js} +1 -1
- package/dist/client/assets/{card-BRA0hijo.js → card-7-Rvcv0V.js} +1 -1
- package/dist/client/assets/{cards-DPhAuC2M.js → cards-dLyZx7mw.js} +1 -1
- package/dist/client/assets/{category-editor-DG2Ycelv.js → category-editor-HcvpPYxp.js} +1 -1
- package/dist/client/assets/{chat-context-B4IOkPyU.js → chat-context-CPiVCs4X.js} +1 -1
- package/dist/client/assets/{checkbox-BssVRAA_.js → checkbox-CIt-fVYM.js} +1 -1
- package/dist/client/assets/{cli-auth-success-BMs_JIk-.js → cli-auth-success-DOC-Iq2K.js} +1 -1
- package/dist/client/assets/{collection-detail-CpetEK-B.js → collection-detail-BrovA5wA.js} +1 -1
- package/dist/client/assets/{collection-display-button-C6RDDh38.js → collection-display-button-D2Ixe-4O.js} +1 -1
- package/dist/client/assets/{collection-search-DQKJkO9j.js → collection-search-BsbT1_VJ.js} +1 -1
- package/dist/client/assets/{collection-table-wrapper-fkqyt959.js → collection-table-wrapper-D9lkfLRm.js} +1 -1
- package/dist/client/assets/{collection-tabs-q7G3BkIk.js → collection-tabs-D-No7VNv.js} +1 -1
- package/dist/client/assets/{command-0H1wNisk.js → command-S_VwD71f.js} +1 -1
- package/dist/client/assets/{commerce-onboarding-lEkvDF98.js → commerce-onboarding-C8gmkJWI.js} +1 -1
- package/dist/client/assets/{connect-BNscym88.js → connect-KG_9tzml.js} +1 -1
- package/dist/client/assets/{connection-BRbi86Je.js → connection-CxVbXzun.js} +1 -1
- package/dist/client/assets/{connection-card-CN_aKoW-.js → connection-card-B7o5eHRn.js} +1 -1
- package/dist/client/assets/{connection-detail-wgla-fFD.js → connection-detail-zaDscvRE.js} +1 -1
- package/dist/client/assets/{connection-form-helpers-s0ayCZCL.js → connection-form-helpers-1IsNe_0s.js} +1 -1
- package/dist/client/assets/{connections-B1av8upa.js → connections-BiMSZulU.js} +1 -1
- package/dist/client/assets/{decopilot-sse-pool-CZCYW5FF.js → decopilot-sse-pool-0yYdosm1.js} +1 -1
- package/dist/client/assets/{dialog-DCaJhqZU.js → dialog-KVmwq_Qc.js} +1 -1
- package/dist/client/assets/{domain-settings-DMJGhpTU.js → domain-settings-Sm_l0QD0.js} +1 -1
- package/dist/client/assets/{drawer-CwNib16H.js → drawer-B-Y2UX5N.js} +1 -1
- package/dist/client/assets/{dropdown-menu-CahJFpXX.js → dropdown-menu-C6VqtZwc.js} +1 -1
- package/dist/client/assets/{empty-state-CXrl1Eze.js → empty-state-CP8qjQO6.js} +1 -1
- package/dist/client/assets/{extract-connection-data-60NkQVuD.js → extract-connection-data-BWs5oyY1.js} +1 -1
- package/dist/client/assets/{file-explorer-BtCmoqTH.js → file-explorer-DMuUlIr6.js} +1 -1
- package/dist/client/assets/{file-type-icon-CONobBrm.js → file-type-icon-CGDhFVoz.js} +1 -1
- package/dist/client/assets/{form-BFzhhAMV.js → form-Dfas8dgq.js} +1 -1
- package/dist/client/assets/{general-DfpKkFMD.js → general-DPGn1OTQ.js} +1 -1
- package/dist/client/assets/{github-repo-picker-xHPMIDws.js → github-repo-picker-NVQdNcV8.js} +1 -1
- package/dist/client/assets/{hooks-CGAH47mb.js → hooks-CrDskaxA.js} +1 -1
- package/dist/client/assets/{index-BvfvQ4hW.js → index-CR_pJhPh.js} +1 -1
- package/dist/client/assets/{index-C0fOhLZs.js → index-CoinV2k1.js} +1 -1
- package/dist/client/assets/{index-D6j51-os.js → index-Cx51phWt.js} +1 -1
- package/dist/client/assets/{index-DhBuu4yW.js → index-D63fA3gG.js} +1 -1
- package/dist/client/assets/{index-DA2GcM0k.js → index-DL8SQppt.js} +1 -1
- package/dist/client/assets/{index-t5bEtL2f.js → index-Df_DdNhm.js} +3 -3
- package/dist/client/assets/{index-BZ3HEqUs.js → index-DnNkSLxJ.js} +4 -4
- package/dist/client/assets/{index-De_rWqol.js → index-Do5rVKnv.js} +1 -1
- package/dist/client/assets/{index-CleoQZrG.js → index-ZJNM0vRS.js} +1 -1
- package/dist/client/assets/{index-BfxLHQ-J.js → index-qaHA-mXg.js} +1 -1
- package/dist/client/assets/{index-redirect-C-2Nz7Ss.js → index-redirect-CEeOwRLV.js} +1 -1
- package/dist/client/assets/{input-CVif0Deb.js → input-laD2Br4w.js} +1 -1
- package/dist/client/assets/{integration-icon-CeYz2p0v.js → integration-icon-7VKVHSTB.js} +1 -1
- package/dist/client/assets/{invite-member-dialog-B50mPN90.js → invite-member-dialog-CEirVNTW.js} +1 -1
- package/dist/client/assets/{label-ODuWzG7J.js → label-BNgIOKju.js} +1 -1
- package/dist/client/assets/{layout-BQO_MeUu.js → layout-Db5PfFl1.js} +1 -1
- package/dist/client/assets/{login-BOiB17qf.js → login-DAKsMMtA.js} +1 -1
- package/dist/client/assets/{mcp-oauth-BEAPDsSw.js → mcp-oauth-BlVYhol1.js} +1 -1
- package/dist/client/assets/{members-CZ5Or6s2.js → members-CN5folxm.js} +1 -1
- package/dist/client/assets/{monaco-editor-BihGyG1n.js → monaco-editor-DYXnAJno.js} +1 -1
- package/dist/client/assets/{monitoring-stats-row-DC_Ccljk.js → monitoring-stats-row-GC7dfHNG.js} +1 -1
- package/dist/client/assets/{multi-select-_d7aRQPo.js → multi-select-EegTvXvx.js} +1 -1
- package/dist/client/assets/{oauth-callback-BIR9wTZ-.js → oauth-callback-BANqgz-A.js} +1 -1
- package/dist/client/assets/{oauth-callback-ai-provider-Bg0a1GWS.js → oauth-callback-ai-provider-Cr5fsiVR.js} +1 -1
- package/dist/client/assets/{onboarding-CiMLCKgl.js → onboarding-C_LSWaOt.js} +1 -1
- package/dist/client/assets/{org-layout-DQt8aZje.js → org-layout-CuALQS7R.js} +1 -1
- package/dist/client/assets/{organization-choice-CB8ePwDc.js → organization-choice-B5Gp6bOl.js} +1 -1
- package/dist/client/assets/{orgs-BMsqw5XR.js → orgs-xTBNpFxB.js} +1 -1
- package/dist/client/assets/{page-seo-form-BwSGWEmf.js → page-seo-form-BbVXWZ8C.js} +1 -1
- package/dist/client/assets/{popover-BKfUxpE9.js → popover-DfvuPJ5S.js} +1 -1
- package/dist/client/assets/{post-editor-DLjKLbkO.js → post-editor-DCTUATmz.js} +1 -1
- package/dist/client/assets/{primitives-BsBcqn5j.js → primitives-D03pMV_e.js} +1 -1
- package/dist/client/assets/{profile-DmC4Vfwt.js → profile-gjghePx-.js} +1 -1
- package/dist/client/assets/{project-app-view-CHj4xO5s.js → project-app-view-C_G39p3k.js} +1 -1
- package/dist/client/assets/record-editor-BWI3uG0q.js +1 -0
- package/dist/client/assets/{redirect-editor-DAgtYeLT.js → redirect-editor-DShYLc4a.js} +1 -1
- package/dist/client/assets/registry-Ckt6RXil.js +2 -0
- package/dist/client/assets/{registry-layout-CeSrJiIX.js → registry-layout-2awTRcpL.js} +1 -1
- package/dist/client/assets/{reports-CLuek7v3.js → reports-DzOMfIEw.js} +1 -1
- package/dist/client/assets/{require-capability-DervIz08.js → require-capability-Dt_fJbI7.js} +1 -1
- package/dist/client/assets/{required-auth-layout-D81eyLI9.js → required-auth-layout-CwgyLQjW.js} +1 -1
- package/dist/client/assets/{reset-password-Cn78iSv6.js → reset-password-B4_AmhRM.js} +1 -1
- package/dist/client/assets/{roles-tp3jMWbS.js → roles-CuRfn80H.js} +1 -1
- package/dist/client/assets/{search-input-CR3EfLQN.js → search-input-Kq3acqwZ.js} +1 -1
- package/dist/client/assets/{secrets-Ds7wohWN.js → secrets-BABBBLLH.js} +1 -1
- package/dist/client/assets/{sections-editor-BpMnNwJ1.js → sections-editor-Te-DZ7PB.js} +1 -1
- package/dist/client/assets/{select-Bl5sTfxf.js → select-Bjq_STXX.js} +1 -1
- package/dist/client/assets/{select-model-gbBtDMlz.js → select-model-DiB5pV_r.js} +1 -1
- package/dist/client/assets/{self-tool-result-DzptO0B4.js → self-tool-result-DH8agyht.js} +1 -1
- package/dist/client/assets/{seo-editor-DO-7DHZx.js → seo-editor-BMDJC5oR.js} +1 -1
- package/dist/client/assets/{settings-layout-Bs5OIugf.js → settings-layout-7y3sx0yG.js} +1 -1
- package/dist/client/assets/{settings-section-BvWHyTtJ.js → settings-section-DjZJ-LbR.js} +1 -1
- package/dist/client/assets/{shell-controls-CLfIr9pw.js → shell-controls-Dzv8K5oh.js} +1 -1
- package/dist/client/assets/{shell-layout-Dejlcz7g.js → shell-layout-Ba8Uyrno.js} +1 -1
- package/dist/client/assets/{sidebar-DFayEWbF.js → sidebar-8zv8L9Jd.js} +1 -1
- package/dist/client/assets/{skeleton-Ctgu_lgk.js → skeleton-CP0QRhuO.js} +1 -1
- package/dist/client/assets/{spinner-BtZYb0lx.js → spinner-CK7GykFb.js} +1 -1
- package/dist/client/assets/{sso-D5Y2Jn5O.js → sso-Bp9RHPXI.js} +1 -1
- package/dist/client/assets/{store-C-LFTG7n.js → store-Cihg1x0E.js} +1 -1
- package/dist/client/assets/store-registry-DudX6mkv.js +2 -0
- package/dist/client/assets/{studio-tools-DcRe5hFl.js → studio-tools-oEy2pW8-.js} +1 -1
- package/dist/client/assets/{switch-BXA3NJXu.js → switch-B_V_VB_X.js} +1 -1
- package/dist/client/assets/{synced-repos-7ApJPxdz.js → synced-repos-CzWClVwS.js} +1 -1
- package/dist/client/assets/{tab-id-DNgSzveX.js → tab-id-CNaP44nw.js} +1 -1
- package/dist/client/assets/{table-DV_rwCf9.js → table-JpnJhUGZ.js} +1 -1
- package/dist/client/assets/{tabs-BoYTHVtS.js → tabs-BBfgev8h.js} +1 -1
- package/dist/client/assets/{textarea-Dumrp1lA.js → textarea-BCbuQyvB.js} +1 -1
- package/dist/client/assets/{toggle-group-Bp32EM_L.js → toggle-group-C3YodKD2.js} +1 -1
- package/dist/client/assets/{toolbar-2An-uzCo.js → toolbar-CHUKkJsj.js} +1 -1
- package/dist/client/assets/{tooltip-BRg0T1b2.js → tooltip-BB33866h.js} +1 -1
- package/dist/client/assets/{track-DZgnNqIK.js → track-g7glZn0U.js} +1 -1
- package/dist/client/assets/{use-ai-providers-Bq6kLmRV.js → use-ai-providers-D9Px67Ld.js} +1 -1
- package/dist/client/assets/{use-api-keys-bzasrpX-.js → use-api-keys-Dkcyg4av.js} +1 -1
- package/dist/client/assets/{use-automations-DknTIVxF.js → use-automations-CS-kiCvY.js} +1 -1
- package/dist/client/assets/{use-autosave-CVOEsWJj.js → use-autosave-79oa6QTO.js} +1 -1
- package/dist/client/assets/{use-capability-CugnYPuw.js → use-capability-BWFsZ59S.js} +1 -1
- package/dist/client/assets/{use-clock-tick-DIKd8vBz.js → use-clock-tick-DNPiU6f6.js} +1 -1
- package/dist/client/assets/{use-connection-DoGK22tl.js → use-connection-BjeZB5GQ.js} +1 -1
- package/dist/client/assets/{use-copy-BaCdlenS.js → use-copy-CtyoU7rm.js} +1 -1
- package/dist/client/assets/{use-create-virtual-mcp-Dfv88fes.js → use-create-virtual-mcp-CkRsnxQZ.js} +1 -1
- package/dist/client/assets/{use-debounced-autosave-D68UCw3G.js → use-debounced-autosave-CzEvpDBi.js} +1 -1
- package/dist/client/assets/{use-debounced-value-DPkpXSXl.js → use-debounced-value-BmnilvmM.js} +1 -1
- package/dist/client/assets/{use-deco-credits-CDUdt3oy.js → use-deco-credits-vFWhcWwk.js} +1 -1
- package/dist/client/assets/{use-decopilot-events-CgwZiJkP.js → use-decopilot-events-DsLlPy2w.js} +1 -1
- package/dist/client/assets/{use-delete-connection-CHU63il7.js → use-delete-connection-ByxU0zsX.js} +1 -1
- package/dist/client/assets/{use-deployment-admin-Dz9pr05H.js → use-deployment-admin-CRpmxN1L.js} +1 -1
- package/dist/client/assets/{use-file-configs-nyI5EvSC.js → use-file-configs-DrIEELj-.js} +1 -1
- package/dist/client/assets/{use-infinite-scroll-BxwfFvnE.js → use-infinite-scroll-CyJ0jGAa.js} +1 -1
- package/dist/client/assets/{use-join-requests-Cm-YQDxJ.js → use-join-requests-CHo0bOMk.js} +1 -1
- package/dist/client/assets/{use-mcp-client-Dru4cL68.js → use-mcp-client-B1xdlUsd.js} +1 -1
- package/dist/client/assets/{use-mcp-tools-CKdddNCb.js → use-mcp-tools-3qwKoFkS.js} +1 -1
- package/dist/client/assets/{use-members-BEQBWwBx.js → use-members-hnmKCsJu.js} +1 -1
- package/dist/client/assets/{use-mobile-C4ip_Cp9.js → use-mobile-uWBsKGql.js} +1 -1
- package/dist/client/assets/{use-navigate-to-agent-JQQJVIgL.js → use-navigate-to-agent-e8Uu5e7U.js} +1 -1
- package/dist/client/assets/{use-open-billing-url-B-l8OXam.js → use-open-billing-url-AP8BALpu.js} +1 -1
- package/dist/client/assets/{use-org-auth-client-BwBj9uRI.js → use-org-auth-client-DndIzSBg.js} +1 -1
- package/dist/client/assets/{use-org-sso-DE27H01J.js → use-org-sso-CT5l3aEK.js} +1 -1
- package/dist/client/assets/{use-organization-roles-lQt-A5p3.js → use-organization-roles-x4D5XHk7.js} +1 -1
- package/dist/client/assets/{use-organization-settings-Di25N6cS.js → use-organization-settings-C4YDsPdf.js} +1 -1
- package/dist/client/assets/{use-registry-connections-CucOvX1i.js → use-registry-connections-CyqpfWEE.js} +1 -1
- package/dist/client/assets/{use-secrets-ouGlbQWU.js → use-secrets-uJrc_1D5.js} +1 -1
- package/dist/client/assets/{use-section-preview-base-VfXU90vr.js → use-section-preview-base-CO2PTO15.js} +1 -1
- package/dist/client/assets/{use-status-sounds-BL5_TUfD.js → use-status-sounds-CP__NLZ3.js} +1 -1
- package/dist/client/assets/{use-tags-D03bI5hO.js → use-tags-BfN_S1xl.js} +1 -1
- package/dist/client/assets/{use-view-mode-efrXcR_M.js → use-view-mode-DDvfVh98.js} +1 -1
- package/dist/client/assets/{use-virtual-mcp-Dn6V9baj.js → use-virtual-mcp-DktBkAIS.js} +1 -1
- package/dist/client/assets/useInfiniteQuery-BPPNBJID.js +1 -0
- package/dist/client/assets/{useRouterState-DaAetzPK.js → useRouterState-vPVJWMx7.js} +1 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-2FhEHxCw.js +1 -0
- package/dist/client/assets/{users-BIQq6zLY.js → users-Dn1SQzOV.js} +1 -1
- package/dist/client/assets/{variant-calendar-DNZXbqSh.js → variant-calendar-Biyo-OfL.js} +1 -1
- package/dist/client/assets/{view-mode-toggle-r2rOcsgu.js → view-mode-toggle-CUdvzAq2.js} +1 -1
- package/dist/client/index.html +1 -1
- package/dist/server/cli.js +3 -3
- package/dist/server/server.js +2 -2
- package/package.json +1 -1
- package/dist/client/assets/record-editor-DfNhHTdK.js +0 -1
- package/dist/client/assets/registry-Dxrzg5wd.js +0 -2
- package/dist/client/assets/store-registry-hZGOHEGR.js +0 -2
- package/dist/client/assets/useInfiniteQuery-CbrhOYI1.js +0 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-BAyBWBnh.js +0 -1
package/dist/server/cli.js
CHANGED
|
@@ -176,7 +176,7 @@ All managed services stopped.`)}async function df6($){let Z=[],X=KW($,"postgres"
|
|
|
176
176
|
Usage: deco services <up|down|status>`),process.exit(1)}}var vd1=O(()=>{px()});function xd1($){Mm=Object.freeze($)}function a0(){if(!Mm)nf6();return Mm}function nf6(){if(Mm)return;let $={...process.env},Z=_10({port:$.PORT||"3000",home:$.DATA_DIR||$.DECOCMS_HOME||"",localMode:$.DECOCMS_LOCAL_MODE==="true",skipMigrations:!0,noTui:$.DECO_NO_TUI==="true",vitePort:$.VITE_PORT,baseUrl:$.BASE_URL},$);Mm=Object.freeze({...Z.settings,databaseUrl:$.DATABASE_URL||"postgresql://postgres:postgres@localhost:5432/postgres",natsUrls:($.NATS_URL||"nats://localhost:4222").split(",").map((X)=>X.trim()).filter(Boolean)})}var Mm=null;var k8=O(()=>{px()});import{context as pf6,propagation as tf6,SpanKind as of6,SpanStatusCode as Uu0}from"@opentelemetry/api";function af6($,Z){let X=$ instanceof Error?$.name:void 0;if(X==="TimeoutError")return"timeout";if(X==="AbortError")return"cancelled";if(Z?.aborted)return"cancelled";return null}function sf6($,Z){if(Z.startsWith("/_sandbox/")){if($===404)return"daemon_gone";if($===409)return"daemon_not_ready"}if($===404&&Z.includes("/sandboxclaims/"))return"claim_gone";return null}function ef6($,Z){if($===404&&(Z==="/.decofile"||Z==="/live/_meta"||Z==="/sprites.svg"))return"not_a_deco_site";return null}function $b6($){if(!($ instanceof Error))return!1;if($.message.includes("socket connection was closed"))return!0;let Z=$.code;return Z==="ECONNRESET"||Z==="EPIPE"}async function Zb6($,Z){let X,Q;if($ instanceof Request)X=new URL($.url),Q=Z?.method??$.method;else if($ instanceof URL)X=$,Q=Z?.method??"GET";else X=new URL($),Q=Z?.method??"GET";let Y=`${Q} ${X.host}`;return jw.startActiveSpan(Y,{kind:of6.CLIENT,attributes:{"http.request.method":Q,"url.full":X.href,"url.scheme":X.protocol.replace(":",""),"url.path":X.pathname,"url.query":X.search||void 0,"server.address":X.hostname,"server.port":X.port?Number(X.port):void 0}},async(G)=>{try{let J=new Headers(Z?.headers??($ instanceof Request?$.headers:{}));tf6.inject(pf6.active(),J,{set:(F,w,B)=>F.set(w,B)});let K={...Z,headers:J},W=await rf6($,K);G.setAttribute("http.response.status_code",W.status);let H=W.status===405&&Q==="GET"&&(J.get("accept")??"").includes("text/event-stream"),U=W.status>=400?sf6(W.status,X.pathname):null,N=W.status>=400?ef6(W.status,X.pathname):null;if(W.status>=400&&!H&&!U&&!N)G.setStatus({code:Uu0.ERROR,message:`HTTP ${W.status}`});else{if(U)G.setAttribute("sandbox.lifecycle",U);if(N)G.setAttribute("preview.probe",N);G.setStatus({code:Uu0.OK})}return W}catch(J){let K=Z?.signal??($ instanceof Request?$.signal:void 0),W=af6(J,K??void 0);if(W)G.setAttribute("abort.reason",W);else if($b6(J)&&X.pathname.startsWith("/_sandbox/"))G.setAttribute("sandbox.lifecycle","connection_closed");else G.recordException(J),G.setStatus({code:Uu0.ERROR,message:J instanceof Error?J.message:"Fetch failed"});throw J}finally{G.end()}})}function fd1(){globalThis.fetch=Zb6}var rf6;var bd1=O(()=>{t$();rf6=globalThis.fetch});import{join as Fu0}from"path";function jJ(){return Fu0(a0().dataDir,"logs")}function Wb(){return Fu0(a0().dataDir,"traces")}function bU(){return Fu0(a0().dataDir,"metrics")}function Pw($,Z){let X=$[Z];return X!=null?String(X):""}function Vm($,Z){let X=$[Z];return X!=null&&X!==""?String(X):null}function yd1($){let{attributes:Z}=$,X=Z[A4.IS_ERROR],Q=Z[A4.DURATION_MS];return{v:1,id:$.id,type:Pw(Z,A4.TYPE)||km,organization_id:Pw(Z,A4.ORGANIZATION_ID),connection_id:Pw(Z,A4.CONNECTION_ID),connection_title:Pw(Z,A4.CONNECTION_TITLE),tool_name:Pw(Z,A4.TOOL_NAME),input:Pw(Z,A4.INPUT),output:Pw(Z,A4.OUTPUT),is_error:X===!0||X===1||X==="true"?1:0,error_message:Vm(Z,A4.ERROR_MESSAGE),duration_ms:typeof Q==="number"?Q:Number(Q)||0,timestamp:new Date(Number($.timestampNano/1000000n)).toISOString(),user_id:Vm(Z,A4.USER_ID),request_id:Pw(Z,A4.REQUEST_ID),user_agent:Vm(Z,A4.USER_AGENT),virtual_mcp_id:Vm(Z,A4.VIRTUAL_MCP_ID),properties:Vm(Z,A4.PROPERTIES)}}function a50($){return $[0]*1000+$[1]/1e6}function Ub($){return new Date(a50($)).toISOString()}var Nu0="mcp.proxy.callTool",A4,km="tool_call",Hb="llm_call",r50="decopilot";var mY=O(()=>{k8();A4={TYPE:"studio.monitoring.type",ORGANIZATION_ID:"studio.monitoring.organization_id",CONNECTION_ID:"studio.monitoring.connection_id",CONNECTION_TITLE:"studio.monitoring.connection_title",TOOL_NAME:"studio.monitoring.tool_name",INPUT:"studio.monitoring.input",OUTPUT:"studio.monitoring.output",IS_ERROR:"studio.monitoring.is_error",ERROR_MESSAGE:"studio.monitoring.error_message",DURATION_MS:"studio.monitoring.duration_ms",USER_ID:"studio.monitoring.user_id",REQUEST_ID:"studio.monitoring.request_id",USER_AGENT:"studio.monitoring.user_agent",VIRTUAL_MCP_ID:"studio.monitoring.virtual_mcp_id",PROPERTIES:"studio.monitoring.properties"}});import{ExportResultCode as s50}from"@opentelemetry/core";import{mkdir as Xb6,rename as Qb6,writeFile as Yb6}from"fs/promises";import{join as e50}from"path";class eD{bufferItems=[];bufferBytes=0;flushTimer=null;flushQueue=Promise.resolve();basePath;flushThreshold;maxBufferBytes;isShutdown=!1;knownDirs=new Set;partitionKey;constructor($){this.basePath=$.basePath,this.flushThreshold=$.flushThreshold??1000,this.maxBufferBytes=$.maxBufferBytes??10485760,this.partitionKey=$.partitionKey;let Z=$.flushIntervalMs??60000;if(Z>0&&Z<3600000){if(this.flushTimer=setInterval(()=>{this.flush().catch((X)=>{console.error("[NDJSONExporter] Timer flush failed:",X)})},Z),this.flushTimer&&typeof this.flushTimer==="object"&&"unref"in this.flushTimer)this.flushTimer.unref()}}exportRows($){if(this.isShutdown)return Promise.resolve({code:s50.FAILED});for(let Z of $){let X=JSON.stringify(Z),Q=this.partitionKey?this.partitionKey(Z):"";this.bufferItems.push({partition:Q,json:X}),this.bufferBytes+=Buffer.byteLength(X,"utf8")+1}if(this.bufferItems.length>=this.flushThreshold||this.bufferBytes>=this.maxBufferBytes)return this.flush().then(()=>({code:s50.SUCCESS})).catch((Z)=>{return console.error("[NDJSONExporter] Flush failed:",Z),{code:s50.FAILED}});return Promise.resolve({code:s50.SUCCESS})}async shutdown(){if(this.isShutdown=!0,this.flushTimer)clearInterval(this.flushTimer),this.flushTimer=null;try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}async forceFlush(){try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}flush(){let Z=this.flushQueue.catch(()=>{}).then(()=>this.doFlush());return this.flushQueue=Z,Z}async doFlush(){if(this.bufferItems.length===0)return;let $=this.bufferItems;this.bufferItems=[],this.bufferBytes=0;let Z=new Map;for(let Y of $){let G=Z.get(Y.partition);if(!G)G=[],Z.set(Y.partition,G);G.push(Y.json)}let X=await Promise.allSettled(Array.from(Z.entries()).map(([Y,G])=>this.writeNDJSON(G,Y).then(()=>Y))),Q=X.find((Y)=>Y.status==="rejected");if(Q){let Y=new Set;for(let J of X)if(J.status==="fulfilled")Y.add(J.value);let G=$.filter((J)=>!Y.has(J.partition));this.bufferItems=G.concat(this.bufferItems),this.bufferBytes=0;for(let J of this.bufferItems)this.bufferBytes+=Buffer.byteLength(J.json,"utf8")+1;throw Q.reason}}async writeNDJSON($,Z){let X=new Date,Q=[String(X.getUTCFullYear()),String(X.getUTCMonth()+1).padStart(2,"0"),String(X.getUTCDate()).padStart(2,"0"),String(X.getUTCHours()).padStart(2,"0")],Y=Z?e50(this.basePath,Z,...Q):e50(this.basePath,...Q);if(!this.knownDirs.has(Y))await Xb6(Y,{recursive:!0,mode:448}),this.knownDirs.add(Y);let G=`${crypto.randomUUID()}.ndjson`,J=e50(Y,`.${G}.tmp`),K=e50(Y,G),W=$.join(`
|
|
177
177
|
`)+`
|
|
178
178
|
`;await Yb6(J,W,{mode:384}),await Qb6(J,K)}}var $90=()=>{};import{ExportResultCode as Gb6}from"@opentelemetry/core";class wu0{inner;constructor($){this.inner=new eD({...$,partitionKey:(Z)=>Z.organization_id})}export($,Z){let X=[];for(let Q of $){if(!Jb6.has(Q.attributes[A4.TYPE]))continue;let Y={};for(let[W,H]of Object.entries(Q.attributes))if(typeof H==="string"||typeof H==="number"||typeof H==="boolean")Y[W]=H;let G=Q.spanContext?.spanId??crypto.randomUUID(),J=Q.hrTime,K=BigInt(J[0])*1000000000n+BigInt(J[1]);X.push(yd1({id:G,timestampNano:K,attributes:Y}))}this.inner.exportRows(X).then((Q)=>Z(Q)).catch(()=>Z({code:Gb6.FAILED}))}async shutdown(){await this.inner.shutdown()}async forceFlush(){await this.inner.forceFlush()}}var Jb6;var gd1=O(()=>{mY();$90();Jb6=new Set([km,Hb])});import{ExportResultCode as Kb6}from"@opentelemetry/core";import{AggregationTemporality as Wb6,DataPointType as hd1}from"@opentelemetry/sdk-metrics";class Bu0{inner;constructor($){this.inner=new eD({...$,partitionKey:(Z)=>Z.organization_id})}selectAggregationTemporality($){return Wb6.DELTA}export($,Z){let X=[];for(let Q of $.scopeMetrics)for(let Y of Q.metrics){let{descriptor:G,dataPointType:J}=Y;if(J===hd1.SUM)for(let K of Y.dataPoints){let W=K.attributes;X.push({v:1,name:G.name,type:"sum",unit:G.unit,timestamp:Ub(K.endTime),organization_id:String(W["organization.id"]??""),connection_id:String(W["connection.id"]??""),tool_name:String(W["tool.name"]??""),status:String(W.status??""),error_type:String(W["error.type"]??""),value:K.value,hist_count:0,hist_sum:0,hist_min:0,hist_max:0,hist_boundaries:"[]",hist_bucket_counts:"[]"})}else if(J===hd1.HISTOGRAM)for(let K of Y.dataPoints){let{attributes:W,value:H}=K;X.push({v:1,name:G.name,type:"histogram",unit:G.unit,timestamp:Ub(K.endTime),organization_id:String(W["organization.id"]??""),connection_id:String(W["connection.id"]??""),tool_name:String(W["tool.name"]??""),status:String(W.status??""),error_type:String(W["error.type"]??""),value:H.count,hist_count:H.count,hist_sum:H.sum??0,hist_min:H.min??0,hist_max:H.max??0,hist_boundaries:JSON.stringify(H.buckets.boundaries),hist_bucket_counts:JSON.stringify(H.buckets.counts)})}}this.inner.exportRows(X).then((Q)=>Z(Q)).catch(()=>Z({code:Kb6.FAILED}))}async shutdown(){await this.inner.shutdown()}async forceFlush(){await this.inner.forceFlush()}}var ud1=O(()=>{mY();$90()});import{ExportResultCode as Hb6}from"@opentelemetry/core";function Ub6($){let Z=$.resource,X=Z.attributes["service.name"]??"unknown";return{v:1,trace_id:$.spanContext().traceId,span_id:$.spanContext().spanId,parent_span_id:$.parentSpanContext?.spanId||null,name:$.name,kind:$.kind,status:$.status.code,status_message:$.status.message||null,start_time:Ub($.startTime),end_time:Ub($.endTime),duration_ms:a50($.endTime)-a50($.startTime),service_name:X,attributes:JSON.stringify($.attributes),events:JSON.stringify($.events),links:JSON.stringify($.links),resource:JSON.stringify(Z.attributes)}}class Ou0{inner;constructor($){this.inner=new eD($)}export($,Z){let X=$.map(Ub6);this.inner.exportRows(X).then((Q)=>Z(Q)).catch(()=>Z({code:Hb6.FAILED}))}async shutdown(){await this.inner.shutdown()}async forceFlush(){await this.inner.forceFlush()}}var cd1=O(()=>{mY();$90()});function Nb($,Z=65536){if($.length<=Z&&Buffer.byteLength($,"utf8")<=Z)return $;let X=Z-Nb6;if(X<=0)return"... [TRUNCATED]".slice(0,Z);let Q=0,Y=0;for(let G of $){let J=G.charCodeAt(0)<=127?1:Buffer.byteLength(G,"utf8");if(Q+J>X)break;Q+=J,Y+=G.length}return $.slice(0,Y)+"... [TRUNCATED]"}var Nb6;var Lu0=O(()=>{Nb6=Buffer.byteLength("... [TRUNCATED]","utf8")});import{NOOP_LOGGER as Fb6}from"@opentelemetry/api-logs";function dd1($){ld1=$.getLogger(wb6,Bb6)}function md1(){return ld1}var wb6="studio.monitoring",Bb6="1.0.0",ld1;var Du0=O(()=>{ld1=Fb6});var pd1={};B0(pd1,{shouldSkipStudioContext:()=>Eu0,isServerPath:()=>Lb6,isHealthPath:()=>Sm,SYSTEM_PATHS:()=>O7});function Sm($){return $===O7.HEALTH||$===O7.HEALTH_LIVE||$===O7.HEALTH_READY}function id1($){return $===O7.HEALTH||$===O7.HEALTH_LIVE||$===O7.HEALTH_READY||$===O7.METRICS||$.startsWith($E.WELL_KNOWN)||$.startsWith(O7.DBOS_QUEUE_DEPTH_PREFIX)||$===O7.HOSTED_RUN_PENDING}function nd1($){return $.startsWith($E.API)}function Lb6($){return nd1($)||$==="/mcp"||$.startsWith($E.MCP)||$.startsWith($E.OAUTH_PROXY)||$.startsWith($E.ORG)||$.startsWith($E.REPORT)||id1($)}function Eu0($){return $==="/"||$.startsWith($E.API_AUTH)||$==="/api/trigger-callback"||id1($)||!nd1($)&&Ob6.test($)}var O7,$E,Ob6;var Z90=O(()=>{O7={HEALTH:"/health",HEALTH_LIVE:"/health/live",HEALTH_READY:"/health/ready",METRICS:"/metrics",DBOS_QUEUE_DEPTH_PREFIX:"/dbos-queue-depth/",HOSTED_RUN_PENDING:"/hosted-run-pending"},$E={API:"/api/",API_AUTH:"/api/auth/",MCP:"/mcp/",OAUTH_PROXY:"/oauth-proxy/",WELL_KNOWN:"/.well-known",ORG:"/org/",REPORT:"/report/"},Ob6=/\.(html|css|js|ico|svg|png|jpg|jpeg|gif|webp|woff|woff2)$/});import{SpanStatusCode as zu0}from"@opentelemetry/api";var Db6,Eb6=()=>Db6??=y8.createHistogram("http.server.request.duration",{description:"Duration of inbound HTTP requests handled by the API.",unit:"s",advice:{explicitBucketBoundaries:[0.005,0.01,0.025,0.05,0.075,0.1,0.25,0.5,0.75,1,2.5,5,7.5,10]}}),ju0=async($,Z)=>{if(Sm($.req.path))return Z();let X=$.req.raw,Q=new URL(X.url),Y=performance.now(),G=rd1(X),J=Pu0(X),K={"http.request.url":X.url,"http.request.method":X.method,"http.request.body.size":X.headers.get("content-length")??void 0,"url.scheme":Q.protocol.replace(":",""),"server.address":Q.host,"url.query":Q.search||void 0,"url.path":Q.pathname,"user_agent.original":X.headers.get("user-agent")??void 0,"request.internal":X.headers.has("traceparent"),...J?{"trace.debug.id":J}:{}};await jw.startActiveSpan(`${X.method} ${Q.pathname}`,{attributes:K},G,async(W)=>{$.set("rootSpan",W);try{await Z()}catch(H){W.recordException(H),W.setStatus({code:zu0.ERROR});let U=typeof H==="object"&&H&&"message"in H?String(H.message):JSON.stringify(H);throw console.error("error: ",U,K),H}finally{let H=$.res?.status??500,U=H>=500;W.setStatus({code:U?zu0.ERROR:zu0.OK}),W.setAttribute("http.response.status_code",H);let N=$.get("studioContext");if(N){if(N.auth.user?.id)W.setAttribute("studio.user.id",N.auth.user.id);if(N.auth.apiKey?.id)W.setAttribute("studio.api_key.id",N.auth.apiKey.id);if(N.organization?.id)W.setAttribute("studio.organization.id",N.organization.id)}if(J)od1($.res.headers,J);Eb6().record((performance.now()-Y)/1000,{"http.request.method":X.method,"http.route":$.req.routePath,"http.response.status_code":H}),W.end()}})};var td1=O(()=>{t$();Z90()});import{createContextKey as zb6,metrics as Qm1,propagation as jb6,ROOT_CONTEXT as Pb6,SpanStatusCode as ad1,trace as Tu0}from"@opentelemetry/api";import{logs as Ym1,SeverityNumber as bm}from"@opentelemetry/api-logs";import{OTLPLogExporter as sd1}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as Ab6}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as Tb6}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as Rb6}from"@opentelemetry/instrumentation-runtime-node";import{BatchLogRecordProcessor as Au0,LoggerProvider as ed1}from"@opentelemetry/sdk-logs";import{detectResources as Ib6,envDetector as qb6,hostDetector as Mb6,osDetector as Vb6,processDetector as kb6,resourceFromAttributes as $m1}from"@opentelemetry/resources";import{PeriodicExportingMetricReader as Sb6}from"@opentelemetry/sdk-metrics";import{NodeSDK as Cb6}from"@opentelemetry/sdk-node";import{BatchSpanProcessor as Zm1,SamplingDecision as Fb}from"@opentelemetry/sdk-trace-base";class Jm1{inner;ratio;constructor($,Z){this.inner=$;this.ratio=Z}onEmit($,Z){if($.severityNumber!==void 0&&$.severityNumber>=bm.ERROR||Math.random()<this.ratio)this.inner.onEmit($,Z)}forceFlush(){return this.inner.forceFlush()}shutdown(){return this.inner.shutdown()}}class Km1{inner;maxBytes;constructor($,Z){this.inner=$;this.maxBytes=Z}onEmit($,Z){let X=A4.OUTPUT,Q=$.attributes?.[X];if(typeof Q==="string"&&Q.length>this.maxBytes){let Y=Nb(Q,this.maxBytes);this.inner.onEmit({...$,attributes:{...$.attributes,[X]:Y}},Z)}else this.inner.onEmit($,Z)}forceFlush(){return this.inner.forceFlush()}shutdown(){return this.inner.shutdown()}}class Wm1{inner;constructor($){this.inner=$}shouldSample($,Z,X,Q,Y,G){let J=$.getValue(Gm1);if(!J){if(this.inner)return this.inner.shouldSample($,Z,X,Q,Y,G);return{decision:Fb.RECORD_AND_SAMPLED}}let K=Pu0(J);if(K)return{decision:Fb.RECORD_AND_SAMPLED,attributes:{"trace.debug.id":K}};if(this.inner){let W=this.inner.shouldSample($,Z,X,Q,Y,G);if(W.decision===Fb.RECORD_AND_SAMPLED){let H=crypto.randomUUID();W.attributes={...W.attributes??{},"trace.debug.id":H}}return W}return{decision:Fb.NOT_RECORD}}toString(){return"DebugSampler"}}class Hm1{ratio;constructor($){this.ratio=$}shouldSample(){if(Math.random()<this.ratio)return{decision:Fb.RECORD_AND_SAMPLED};return{decision:Fb.NOT_RECORD}}toString(){return`RatioSampler(${this.ratio})`}}function Um1(){if(Xm1)return;let $=a0(),Z=!!process.env.OTEL_EXPORTER_OTLP_ENDPOINT,X=Z?new Tb6:void 0;Cm=$.nodeEnv==="test"?null:new wu0({basePath:jJ()}),_m=$.nodeEnv==="test"?null:new Ou0({basePath:Wb()}),vm=$.nodeEnv==="test"?null:new Bu0({basePath:bU()}),xm=vm?new Sb6({exporter:vm,exportIntervalMillis:60000}):null;let Q=process.env.STUDIO_ENV??"production"??"unknown",Y={};if(!process.env.OTEL_RESOURCE_ATTRIBUTES?.includes("deployment.environment"))Y["deployment.environment"]=Q;new Cb6({serviceName:$.otelServiceName,resource:$m1(Y),metricReaders:[Ru0,...xm?[xm]:[]],sampler:xb6,spanProcessors:[...X?[new Zm1(X,{scheduledDelayMillis:60000,maxExportBatchSize:1000})]:[],..._m?[new Zm1(_m,{scheduledDelayMillis:60000,maxExportBatchSize:250})]:[]],instrumentations:[new Rb6]}).start(),y8=Qm1.getMeter("studio","1.0.0"),jw=Tu0.getTracer("studio","1.0.0");let J=Ib6({detectors:[qb6,Mb6,Vb6,kb6]}).merge($m1({"service.name":$.otelServiceName,...Y})),K=[];if(Z){let N=Q==="prod"||Q==="production"?1:0.1,F=process.env.INFRA_LOG_SAMPLE_RATIO,w=N;if(F!==void 0){let B=Number(F);if(Number.isFinite(B)&&B>=0&&B<=1)w=B;else console.warn(`[observability] Ignoring invalid INFRA_LOG_SAMPLE_RATIO="${F}" (expected 0..1); using ${N}`)}K.push(new Jm1(new Au0(new sd1),w))}fm=new ed1({resource:J,processors:K}),Ym1.setGlobalLoggerProvider(fm),Nm1=fm.getLogger("studio","1.0.0");let W=$.monitoringOtlpEndpoint??process.env.OTEL_EXPORTER_OTLP_ENDPOINT,H=[];if(W){let U=W.replace(/\/$/,""),N=U.endsWith("/v1/logs")?U:`${U}/v1/logs`;H.push(new Km1(new Au0(new sd1({url:N})),8000))}if(Cm)H.push(new Au0(Cm,{scheduledDelayMillis:60000,maxExportBatchSize:250}));X90=new ed1({resource:J,processors:H}),dd1(X90),fd1(),Xm1=!0}async function xQ(){let Z=(await Promise.allSettled([fm?fm.forceFlush():Promise.resolve(),(async()=>{if(X90)await X90.forceFlush();if(Cm)await Cm.forceFlush()})(),(async()=>{let X=Tu0.getTracerProvider();if("forceFlush"in X)await X.forceFlush();if(_m)await _m.forceFlush()})(),(async()=>{if(xm)await xm.forceFlush();if(vm)await vm.forceFlush()})()])).find((X)=>X.status==="rejected");if(Z)throw Z.reason}function Fm1($,Z,X){return jw.startActiveSpan($,{attributes:X},async(Q)=>{try{let Y=await Z(Q);return Q.setStatus({code:ad1.OK}),Y}catch(Y){let G=Y instanceof Error?Y:Error(String(Y??"unknown"));throw Q.setStatus({code:ad1.ERROR,message:G.message}),Q.recordException(G),Y}finally{Q.end()}})}var _b6="__d",Gm1,vb6=1,Pu0=($)=>{let X=new URL($.url).searchParams.get(_b6);if(X==="")return crypto.randomUUID();if(!X)X=$.headers.get("x-trace-debug-id");return X},od1=($,Z)=>{try{$.set("x-trace-debug-id",Z)}catch{}},Ru0,xb6,Cm=null,_m=null,vm=null,xm=null,fm=null,X90=null,Xm1=!1,jw,y8,Nm1,Iu0=($,Z,X)=>{let Q={},Y=X,G=X[X.length-1];if(G!==null&&typeof G==="object"&&!Array.isArray(G)&&!(G instanceof Error)&&Object.getPrototypeOf(G)===Object.prototype)Q=G,Y=X.slice(0,-1);let J=Y.map((K)=>{if(K instanceof Error)return`${K.name}: ${K.message}`;if(typeof K==="object")try{return JSON.stringify(K)}catch{return"[Object]"}return String(K)}).join(" ");Nm1.emit({severityNumber:$,severityText:Z,body:J,attributes:{"log.source":"console",...Q}})},qu0,rd1=($)=>{return jb6.extract(Pb6,$.headers,{get:(X,Q)=>X.get(Q)??void 0,keys:(X)=>[...X.keys()]}).setValue(Gm1,$)};var t$=O(()=>{bd1();gd1();ud1();cd1();mY();Lu0();k8();Du0();td1();Gm1=zb6("Current request");Ru0=new Ab6({preventServerStart:!0}),xb6=new Wm1(new Hm1(vb6));jw=Tu0.getTracer("studio","1.0.0"),y8=Qm1.getMeter("studio","1.0.0"),Nm1=Ym1.getLogger("studio","1.0.0"),qu0={error:console.error.bind(console),warn:console.warn.bind(console),debug:console.debug.bind(console)};console.error=(...$)=>{Iu0(bm.ERROR,"ERROR",$),qu0.error(...$)};console.warn=(...$)=>{Iu0(bm.WARN,"WARN",$),qu0.warn(...$)};console.debug=(...$)=>{Iu0(bm.DEBUG,"DEBUG",$),qu0.debug(...$)}});function ZE(){try{return process.memoryUsage()}catch{return null}}import{Session as fb6}from"inspector";function XE($,Z){return new Promise((X,Q)=>wb.post($,Z,(Y,G)=>Y?Q(Y):X(G??{})))}async function wm1($){try{return wb=new fb6,wb.connect(),await XE("Profiler.enable"),await XE("Profiler.setSamplingInterval",{interval:$}),await XE("Profiler.start"),Ob=!0,!0}catch{return Ob=!1,wb=null,!1}}function bb6($,Z){let{nodes:X,samples:Q,timeDeltas:Y}=$;if(!Q?.length)return null;let G=new Map,J=new Map;for(let L of X){G.set(L.id,L);for(let D of L.children??[])J.set(D,L.id)}let K=Math.max(1,Z)*1000,W=0,H=new Map;for(let L=Q.length-1;L>=0;L--){W+=Y[L]??0;let D=Q[L];if(D!==void 0)H.set(D,(H.get(D)??0)+1);if(W>=K)break}let U=-1,N=0;for(let[L,D]of H)if(D>N)N=D,U=L;if(U<0)return null;let F=[],w=new Set,B=U;while(B!=null&&!w.has(B)){w.add(B);let L=G.get(B);if(!L)break;let D=L.callFrame,E=D.url?` ${D.url}:${D.lineNumber+1}`:"";F.push(`${D.functionName||"(anonymous)"}${E}`),B=J.get(B)}return F}async function Bm1($){if(!Ob||!wb||Bb)return null;Bb=!0;try{let{profile:Z}=await XE("Profiler.stop"),X=Z?bb6(Z,$):null;return await XE("Profiler.start"),X}catch{return Ob=!1,null}finally{Bb=!1}}async function Om1(){if(!Ob||!wb||Bb)return;Bb=!0;try{await XE("Profiler.stop"),await XE("Profiler.start")}catch{Ob=!1}finally{Bb=!1}}var wb=null,Ob=!1,Bb=!1;var Lm1=()=>{};function Em1(){if(Mu0)return;let $=performance.now()+Vu0;Mu0=setInterval(()=>{let Z=performance.now();Dm1=Math.max(0,Z-$),$=Z+Vu0},Vu0),Mu0.unref?.()}function zm1(){return Em1(),Dm1}function jm1(){if(Em1(),process.env.EVENT_LOOP_MONITOR!=="1")return()=>{};let $=Number(process.env.EVENT_LOOP_INTERVAL_MS??250),Z=Number(process.env.EVENT_LOOP_SPIKE_MS??100),X=process.env.EVENT_LOOP_PROFILE==="1",Q=Number(process.env.EVENT_LOOP_PROFILE_MS??1000),Y=Number(process.env.EVENT_LOOP_PROFILE_INTERVAL_US??1e4),G=30000,J=performance.now();if(X)wm1(Y).then((H)=>{console.warn(JSON.stringify({msg:"event-loop-profiler",status:H?"started":"unavailable",intervalUs:Y}))});let K=y8.createHistogram("eventloop.delay",{description:"Event-loop lag measured as timer scheduling drift",unit:"ms"}),W=performance.now()+$;return Q90=setInterval(()=>{let H=performance.now(),U=Math.max(0,H-W);if(W=H+$,K.record(U),U>Z){let N=ZE();console.warn(JSON.stringify({msg:"event-loop-stall",ts:new Date().toISOString(),lagMs:Math.round(U),rss:N?.rss,heapUsed:N?.heapUsed,heapTotal:N?.heapTotal,external:N?.external}))}if(X){if(U>Q)Bm1(Math.round(U)).then((N)=>{if(N?.length)console.warn(JSON.stringify({msg:"event-loop-stall-profile",ts:new Date().toISOString(),lagMs:Math.round(U),stack:N}))}),J=H;else if(H-J>G)Om1(),J=H}},$),Q90.unref?.(),()=>{if(Q90)clearInterval(Q90)}}var Q90,Mu0,Dm1=0,Vu0=500;var ku0=O(()=>{t$();Lm1()});var Vm1={};B0(Vm1,{withSslmode:()=>Su0,getDbDialect:()=>gm,getDb:()=>N6,getDatabaseUrl:()=>Aw,createDatabase:()=>Mm1,closeDatabase:()=>Tw});import{Kysely as yb6,PostgresDialect as Tm1}from"kysely";import{Pool as Rm1}from"pg";function cb6($){let Z=$.connect.bind($);return $.connect=(X)=>{if(typeof X==="function")return Z(X);let Q=performance.now(),Y=Y90(),G=$.idleCount===0&&$.totalCount>=Y,J=$.idleCount;return Z().then((K)=>{let W=performance.now()-Q;if(Pm1().record(W,{"db.pool.outcome":G?"contended":"available"}),W>hb6)if(G)console.error("Slow db pool acquire \u2014 pool saturated:",{waitMs:W,total:$.totalCount,idle:$.idleCount,waiting:$.waitingCount,max:Y});else console.warn("Slow db pool acquire \u2014 event-loop lag (not pool):",{waitMs:W,idleAtStart:J,total:$.totalCount,max:Y});return K},(K)=>{throw Pm1().record(performance.now()-Q,{"db.pool.outcome":"error"}),K})},$}function qm1(){try{return a0().databasePgSsl}catch{return!1}}function Y90(){try{return a0().databasePoolMax}catch{return 10}}function lb6($){let Z=cb6(new Rm1({connectionString:$,max:Y90(),ssl:qm1(),...Im1})),X=new Tm1({pool:Z});return{type:"postgres",db:new yb6({dialect:X,log:ub6(Z)}),pool:Z}}function Aw(){return a0().databaseUrl}function Su0($,Z){if(!Z)return $;let X=new URL($);if(!X.searchParams.has("sslmode"))X.searchParams.set("sslmode","verify-full");return X.toString()}function gm($){let Z=$||Aw();return new Tm1({pool:new Rm1({connectionString:Z,max:Y90(),ssl:qm1(),...Im1})})}function Mm1($){let Z=$||Aw();return lb6(Z)}async function Tw($){if(await $.db.destroy(),!$.pool.ended)await $.pool.end();if($===ym)ym=null}function N6(){if(!ym)ym=Mm1(Aw());return ym}var gb6=()=>y8.createHistogram("db.query.duration",{description:"Database query execution duration in milliseconds",unit:"ms"}),Pm1=()=>y8.createHistogram("db.pool.acquire.duration",{description:"Time spent waiting to acquire a connection from the pool",unit:"ms"}),Am1=400,hb6=100,ub6=($)=>(Z)=>{let X={"db.statement":Z.query.sql,"db.status":Z.level==="error"?"error":"success"};if(Z.queryDurationMillis>Am1){let Q=zm1(),Y=Q>Am1/2;console.error(Y?"Slow query measurement \u2014 likely event-loop lag, not slow SQL:":"Slow query detected:",{durationMs:Z.queryDurationMillis,eventLoopLagMs:Math.round(Q),sql:Z.query.sql,pool:{total:$.totalCount,idle:$.idleCount,waiting:$.waitingCount,max:Y90()}})}if(gb6().record(Z.queryDurationMillis,X),Z.level==="error")console.error("Query failed:",{durationMs:Z.queryDurationMillis,error:Z.error,sql:Z.query.sql})},Im1,ym=null;var e7=O(()=>{k8();t$();ku0();Im1={keepAlive:!0,keepAliveInitialDelayMillis:1e4,idleTimeoutMillis:300000,connectionTimeoutMillis:30000,allowExitOnIdle:!0}});function Sm1($){let{port:Z,query:X}=$,{protocol:Q,path:Y,hostname:G}=$;if(Q&&Q.slice(-1)!==":")Q+=":";if(Z)G+=`:${Z}`;if(Y&&Y.charAt(0)!=="/")Y=`/${Y}`;let J=X?km1.buildQueryString(X):"";if(J&&J[0]!=="?")J=`?${J}`;let K="";if($.username!=null||$.password!=null){let H=$.username??"",U=$.password??"";K=`${H}:${U}@`}let W="";if($.fragment)W=`#${$.fragment}`;return`${Q}//${K}${G}${Y}${J}${W}`}var km1;var Cm1=O(()=>{km1=k(t10(),1)});var _m1="UNSIGNED-PAYLOAD",vm1="X-Amz-Content-Sha256";class G90{signer;constructor($){let Z={service:$.signingName||$.service||"s3",uriEscapePath:$.uriEscapePath||!1,applyChecksum:$.applyChecksum||!1,...$};this.signer=new xm1.SignatureV4MultiRegion(Z)}presign($,{unsignableHeaders:Z=new Set,hoistableHeaders:X=new Set,unhoistableHeaders:Q=new Set,...Y}={}){return this.prepareRequest($,{unsignableHeaders:Z,unhoistableHeaders:Q,hoistableHeaders:X}),this.signer.presign($,{expiresIn:900,unsignableHeaders:Z,unhoistableHeaders:Q,...Y})}presignWithCredentials($,Z,{unsignableHeaders:X=new Set,hoistableHeaders:Q=new Set,unhoistableHeaders:Y=new Set,...G}={}){return this.prepareRequest($,{unsignableHeaders:X,unhoistableHeaders:Y,hoistableHeaders:Q}),this.signer.presignWithCredentials($,Z,{expiresIn:900,unsignableHeaders:X,unhoistableHeaders:Y,...G})}prepareRequest($,{unsignableHeaders:Z=new Set,unhoistableHeaders:X=new Set,hoistableHeaders:Q=new Set}={}){Z.add("content-type"),Object.keys($.headers).map((K)=>K.toLowerCase()).filter((K)=>K.startsWith("x-amz-server-side-encryption")).forEach((K)=>{if(!Q.has(K))X.add(K)}),$.headers[vm1]=_m1;let Y=$.headers.host,G=$.port,J=`${$.hostname}${$.port!=null?":"+G:""}`;if(!Y||Y===$.hostname&&$.port!=null)$.headers.host=J}}var xm1;var Cu0=O(()=>{xm1=k(Mf(),1)});var fm1,bm1,J90=async($,Z,X={})=>{let Q,Y;if(typeof $.config.endpointProvider==="function"){let F=(await fm1.getEndpointFromInstructions(Z.input,Z.constructor,$.config)).properties?.authSchemes?.[0];if(F?.name==="sigv4a")Y=F?.signingRegionSet?.join(",");else Y=F?.signingRegion;Q=new G90({...$.config,signingName:F?.signingName,region:async()=>Y})}else Q=new G90($.config);let G=(N,F)=>async(w)=>{let{request:B}=w;if(!bm1.HttpRequest.isInstance(B))throw Error("Request to be presigned is not an valid HTTP request.");delete B.headers["amz-sdk-invocation-id"],delete B.headers["amz-sdk-request"],delete B.headers["x-amz-user-agent"];let L,D={...X,signingRegion:X.signingRegion??F.signing_region??Y,signingService:X.signingService??F.signing_service};if(F.s3ExpressIdentity)L=await Q.presignWithCredentials(B,F.s3ExpressIdentity,D);else L=await Q.presign(B,D);return{response:{},output:{$metadata:{httpStatusCode:200},presigned:L}}},J="presignInterceptMiddleware",K=$.middlewareStack.clone();K.addRelativeTo(G,{name:J,relation:"before",toMiddleware:"awsAuthMiddleware",override:!0});let W=Z.resolveMiddleware(K,$.config,{}),{output:H}=await W({input:Z.input}),{presigned:U}=H;return Sm1(U)};var ym1=O(()=>{Cm1();Cu0();fm1=k(U1(),1),bm1=k(n$(),1)});var gm1=O(()=>{ym1();Cu0()});import{extname as db6}from"path";function WW($){let Z;try{Z=decodeURIComponent($)}catch{Z=$}let Q=Z.replace(/\0/g,"").replace(/[\x00-\x1f\x7f]/g,"").replace(/\\/g,"/").split("/"),Y=[];for(let G of Q)if(G==="..")Y.pop();else if(G!=="."&&G!=="")Y.push(G);return Y.join("/")}function Rw($,Z){let X=WW(Z);if(!X)throw Error("Key is empty after sanitization");return`${$}/${X}`}function hm1($,Z){if(!Z)return`${$}/`;let X=WW(Z);return`${$}/${X}${X.endsWith("/")?"":"/"}`}function Lb($,Z,X){let Q=X.split("/").map(encodeURIComponent).join("/");return`${$}/api/${encodeURIComponent(Z)}/files/${Q}`}function _u0($,Z){let X=`${$}/`;if(Z.startsWith(X))return Z.slice(X.length);return Z}function gZ($){let Z=db6($).toLowerCase();return mb6[Z]??"application/octet-stream"}function K90($){let Z=$.split(";")[0].trim();if(ib6.has(Z))return!0;if(Z.startsWith("text/"))return!0;return!1}var mb6,ib6;var HW=O(()=>{mb6={".json":"application/json",".html":"text/html",".htm":"text/html",".css":"text/css",".js":"application/javascript",".mjs":"application/javascript",".ts":"text/typescript",".txt":"text/plain",".md":"text/markdown",".csv":"text/csv",".xml":"application/xml",".svg":"image/svg+xml",".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".gif":"image/gif",".webp":"image/webp",".pdf":"application/pdf",".zip":"application/zip",".gz":"application/gzip",".tar":"application/x-tar",".wasm":"application/wasm",".yaml":"application/yaml",".yml":"application/yaml",".toml":"application/toml"};ib6=new Set(["application/json","text/html","text/css","application/javascript","text/typescript","text/plain","text/markdown","text/csv","application/xml","image/svg+xml","application/yaml","application/toml"])});class vu0{client;bucket;constructor($){this.bucket=$.bucket,this.client=new s7({endpoint:$.endpoint,region:$.region,credentials:{accessKeyId:$.accessKeyId,secretAccessKey:$.secretAccessKey},forcePathStyle:$.forcePathStyle})}async getBytesOrPresign($,Z,X){let Q=Rw($,Z),Y=await this.client.send(new zJ({Bucket:this.bucket,Key:Q})),G=Y.ContentLength??0,J=Y.ContentType??gZ(Z);if(G>X.presignWhenLargerThan){let U=await J90(this.client,new vU({Bucket:this.bucket,Key:Q}),{expiresIn:X.presignExpiresIn??3600});return{error:"FILE_TOO_LARGE",size:G,maxInlineSize:X.presignWhenLargerThan,presignedUrl:U,contentType:J}}let W=await(await this.client.send(new vU({Bucket:this.bucket,Key:Q}))).Body.transformToByteArray(),H=K90(J);return{content:H?new TextDecoder().decode(W):Buffer.from(W).toString("base64"),contentType:J,encoding:H?"utf-8":"base64",size:G,lastModified:Y.LastModified,etag:Y.ETag}}async getBytes($,Z){let X=Rw($,Z);return(await this.client.send(new vU({Bucket:this.bucket,Key:X}))).Body.transformToByteArray()}async put($,Z,X,Q){let Y=Rw($,Z),G=Q?.contentType??gZ(Z);return{etag:(await this.client.send(new JW({Bucket:this.bucket,Key:Y,Body:typeof X==="string"?Buffer.from(X,"utf-8"):X,ContentType:G}))).ETag,key:Z}}async list($,Z){let X=hm1($,Z?.prefix),Q=await this.client.send(new lY({Bucket:this.bucket,Prefix:X,MaxKeys:Z?.maxKeys??1000,ContinuationToken:Z?.continuationToken,Delimiter:Z?.delimiter})),Y=Q.CommonPrefixes?.map((G)=>_u0($,G.Prefix??"")).filter(Boolean);return{objects:(Q.Contents??[]).map((G)=>({key:_u0($,G.Key??""),size:G.Size??0,lastModified:G.LastModified,etag:G.ETag})),isTruncated:Q.IsTruncated??!1,nextContinuationToken:Q.NextContinuationToken,commonPrefixes:Y&&Y.length>0?Y:void 0}}async delete($,Z){let X=Rw($,Z);await this.client.send(new $b({Bucket:this.bucket,Key:X}))}async head($,Z){let X=Rw($,Z),Q=await this.client.send(new zJ({Bucket:this.bucket,Key:X}));return{contentType:Q.ContentType??gZ(Z),size:Q.ContentLength??0,lastModified:Q.LastModified,etag:Q.ETag}}async presignedGetUrl($,Z,X=3600,Q){let Y=Rw($,Z);return J90(this.client,new vU({Bucket:this.bucket,Key:Y}),{expiresIn:X})}async presignedPutUrl($,Z,X=3600,Q){let Y=Rw($,Z);return J90(this.client,new JW({Bucket:this.bucket,Key:Y,ContentType:Q}),{expiresIn:X})}}var um1=O(()=>{Rm();gm1();HW()});function nb6(){let $=a0();return!!($.s3Endpoint&&$.s3Bucket&&$.s3AccessKeyId&&$.s3SecretAccessKey)}function iX(){if(hm!==void 0)return hm;if(!nb6())return hm=null,null;let $=a0();return hm=new vu0({endpoint:$.s3Endpoint,bucket:$.s3Bucket,region:$.s3Region,accessKeyId:$.s3AccessKeyId,secretAccessKey:$.s3SecretAccessKey,forcePathStyle:$.s3ForcePathStyle}),hm}var hm;var Iw=O(()=>{k8();um1()});function iY($,Z){return{getBytesOrPresign:(X,Q)=>$.getBytesOrPresign(Z,X,Q),getBytes:(X)=>$.getBytes(Z,X),put:(X,Q,Y)=>$.put(Z,X,Q,Y),list:(X)=>$.list(Z,X),delete:(X)=>$.delete(Z,X),head:(X)=>$.head(Z,X),presignedGetUrl:(X,Q,Y)=>$.presignedGetUrl(Z,X,Q,Y),presignedPutUrl:(X,Q,Y)=>$.presignedPutUrl(Z,X,Q,Y)}}import{createHash as pb6}from"crypto";function cm1($){let Z=$;while(Z?.[W90])Z=Z[W90];return Z}function cm($){let{objectStorage:Z,baseUrl:X,orgSlug:Q,prefix:Y="connection-icons",maxBytes:G=ob6,dryRun:J=!1}=$;return async(K)=>{if(typeof K!=="string")return K;let W=K.match(tb6);if(!W)return K;if(!Z||!Q)return K;let[,H,U]=W,N=H.toLowerCase(),F=ab6[N];if(!F)return K;if(Math.floor(U.length*3/4)>G)return console.warn(`[asset-hoister] asset exceeds ${G} bytes, keeping inline`),K;let w=Buffer.from(U,"base64"),B=pb6("sha256").update(w).digest("hex"),L=`${Y}/${B}.${F}`;if(J)return Lb(X,Q,L);try{return await Z.put(L,w,{contentType:N}),Lb(X,Q,L)}catch(D){return console.error("[asset-hoister] upload failed, keeping inline asset:",D),K}}}async function H90($,Z,X=0){if(X>rb6)return $;if(typeof $==="string")return await Z($)??$;if(Array.isArray($)){let Q=await Promise.all($.map((Y)=>H90(Y,Z,X+1)));return Q.some((Y,G)=>Y!==$[G])?Q:$}if($!==null&&typeof $==="object"){let Q=Object.entries($),Y=await Promise.all(Q.map(([,K])=>H90(K,Z,X+1))),G=!1,J={};return Q.forEach(([K,W],H)=>{if(J[K]=Y[H],Y[H]!==W)G=!0}),G?J:$}return $}function U90($,Z){return H90($,Z)}async function um($,Z){let X={...$};if(typeof X.icon==="string")X.icon=await Z(X.icon);if(X.metadata!==null&&typeof X.metadata==="object")X.metadata=await H90(X.metadata,Z);return X}function sb6($,Z){return new Proxy($,{get(X,Q,Y){if(Q===W90)return X;if(Q==="create")return async(J)=>X.create(await um(J,Z));if(Q==="createNew")return async(J)=>X.createNew(await um(J,Z));if(Q==="update")return async(J,K)=>X.update(J,await um(K,Z));let G=Reflect.get(X,Q,Y);return typeof G==="function"?G.bind(X):G}})}function eb6($,Z){return new Proxy($,{get(X,Q,Y){if(Q===W90)return X;if(Q==="create")return async(J,K,W,H)=>X.create(J,K,await um(W,Z),H);if(Q==="update")return async(J,K,W)=>X.update(J,K,await um(W,Z));let G=Reflect.get(X,Q,Y);return typeof G==="function"?G.bind(X):G}})}function xu0($,Z){let X=cm(Z);if(lm1($.connections))$.connections=sb6(cm1($.connections),X);if(lm1($.virtualMcps))$.virtualMcps=eb6(cm1($.virtualMcps),X)}function lm1($){return $!==null&&typeof $==="object"}var tb6,ob6=5242880,rb6=64,W90,ab6;var N90=O(()=>{HW();tb6=/^data:((?:image|audio|video)\/[^;,]+)(?:;[^,]+)?;base64,(.+)$/is,W90=Symbol("assetHoistingTarget"),ab6={"image/png":"png","image/jpeg":"jpg","image/gif":"gif","image/webp":"webp","image/x-icon":"ico","image/vnd.microsoft.icon":"ico","audio/mpeg":"mp3","audio/mp4":"m4a","audio/wav":"wav","audio/x-wav":"wav","audio/ogg":"ogg","audio/webm":"weba","audio/aac":"aac","video/mp4":"mp4","video/webm":"webm","video/ogg":"ogv","video/quicktime":"mov"}});function W9(){let $=a0();if($.baseUrl)return $.baseUrl;return`http://localhost:${$.port??3000}`}function dm1(){return`http://localhost:${a0().port??3000}`}function fQ(){return a0().publicUrl??W9()}var UZ=O(()=>{k8()});var mm1={};B0(mm1,{backfillThreadAssetsCommand:()=>$y6});import{sql as fu0}from"kysely";async function $y6($){let{dryRun:Z,batch:X}=$,Q=$.baseUrl??W9(),Y=iX();if(!Y)return console.error("[backfill-assets] Object storage (S3) is not configured \u2014 cannot hoist "+"inline media. Set S3_ENDPOINT/S3_BUCKET/S3_ACCESS_KEY_ID/S3_SECRET_ACCESS_KEY and retry."),1;if(/^https?:\/\/localhost(:|\/|$)/.test(Q))console.warn(`[backfill-assets] base URL resolves to "${Q}" \u2014 set BASE_URL `+"(or pass --base-url) to the public origin, or stored media URLs will be wrong.");let G=N6(),{db:J}=G,K;if($.org){let L=await J.selectFrom("organization").select(["id","slug"]).where((D)=>D.or([D("id","=",$.org),D("slug","=",$.org)])).executeTakeFirst();if(!L)return console.error(`[backfill-assets] org "${$.org}" not found (slug or id).`),await Tw(G).catch(()=>{}),1;K=L.id,console.log(`[backfill-assets] scoped to org ${L.slug??L.id} (${L.id})`)}console.log(`[backfill-assets] starting${Z?" (dry-run)":""} \u2014 target=${$.target} baseUrl=${Q} batch=${X}${$.limit?` limit=${$.limit}`:""}`);let W=new Map,H=(L,D,E)=>{let z=`${E}\x00${L}`,j=W.get(z);if(j)return j;let A=cm({objectStorage:iY(Y,L),baseUrl:Q,orgSlug:D??void 0,prefix:E,dryRun:Z});return W.set(z,A),A},U=async(L,D,E,z)=>{let j="";for(;;){let A=$.limit?$.limit-E.scanned:1/0;if(A<=0)break;let P=await L(j,Math.min(X,A));if(P.length===0)break;for(let I of P)j=I.id,E.scanned++,await D(I);console.log(`[backfill-assets] ${z}: scanned=${E.scanned} ${Z?"would-change":"changed"}=${E.changed} errors=${E.errors} cursor=${j}`)}},N={scanned:0,changed:0,errors:0},F={scanned:0,changed:0,errors:0},w={scanned:0,changed:0,errors:0};try{if($.target==="all"||$.target==="threads")await U((L,D)=>J.selectFrom("thread_messages as tm").innerJoin("threads as t","t.id","tm.thread_id").innerJoin("organization as o","o.id","t.organization_id").select(["tm.id as id",fu0`tm.parts`.as("parts"),fu0`tm.metadata`.as("metadata"),"t.organization_id as orgId","o.slug as orgSlug"]).where("tm.id",">",L).$if(!!K,(E)=>E.where("t.organization_id","=",K)).orderBy("tm.id","asc").limit(D).execute(),async(L)=>{try{if(!lm(L.parts)&&!lm(L.metadata))return;let D=H(L.orgId,L.orgSlug,"thread-assets"),E=JSON.parse(L.parts),z=await U90(E,D),j=z!==E,A=L.metadata!==null?JSON.parse(L.metadata):null,P=await U90(A,D),I=P!==A;if(!j&&!I)return;if(N.changed++,Z)return;await J.updateTable("thread_messages").set({parts:j?JSON.stringify(z):L.parts,metadata:I?JSON.stringify(P):L.metadata}).where("id","=",L.id).execute()}catch(D){N.errors++,console.error(`[backfill-assets] thread_message ${L.id} failed, skipping:`,D)}},N,"threads");if($.target==="all"||$.target==="connections")await U((L,D)=>J.selectFrom("connections as c").innerJoin("organization as o","o.id","c.organization_id").select(["c.id as id","c.icon as icon",fu0`c.metadata`.as("metadata"),"c.organization_id as orgId","o.slug as orgSlug"]).where("c.id",">",L).$if(!!K,(E)=>E.where("c.organization_id","=",K)).orderBy("c.id","asc").limit(D).execute(),async(L)=>{try{if(!lm(L.icon)&&!lm(L.metadata))return;let D=H(L.orgId,L.orgSlug,"connection-icons"),E=L.icon!==null?await D(L.icon):L.icon,z=E!==L.icon,j=L.metadata!==null?JSON.parse(L.metadata):null,A=await U90(j,D),P=A!==j;if(!z&&!P)return;if(F.changed++,Z)return;await J.updateTable("connections").set({icon:z?E??null:L.icon,metadata:P?JSON.stringify(A):L.metadata}).where("id","=",L.id).execute()}catch(D){F.errors++,console.error(`[backfill-assets] connection ${L.id} failed, skipping:`,D)}},F,"connections");if($.target==="all"||$.target==="organizations")await U((L,D)=>J.selectFrom("organization as o").select(["o.id as id","o.logo as logo","o.slug as orgSlug"]).where("o.id",">",L).$if(!!K,(E)=>E.where("o.id","=",K)).orderBy("o.id","asc").limit(D).execute(),async(L)=>{try{if(!lm(L.logo))return;let E=await H(L.id,L.orgSlug,"org-logos")(L.logo);if(E===L.logo)return;if(w.changed++,Z)return;await J.updateTable("organization").set({logo:E??null}).where("id","=",L.id).execute()}catch(D){w.errors++,console.error(`[backfill-assets] organization ${L.id} failed, skipping:`,D)}},w,"organizations")}finally{await Tw(G).catch(()=>{})}let B=Z?"would-change":"changed";return console.log("[backfill-assets] done \u2014 "+`threads(scanned=${N.scanned} ${B}=${N.changed} errors=${N.errors}) connections(scanned=${F.scanned} ${B}=${F.changed} errors=${F.errors}) organizations(scanned=${w.scanned} ${B}=${w.changed} errors=${w.errors})`),N.errors+F.errors+w.errors>0?1:0}var lm=($)=>$!==null&&($.includes("data:image/")||$.includes("data:audio/")||$.includes("data:video/"));var im1=O(()=>{e7();Iw();N90();UZ()});async function nm1($){let Z,X,Q=new Promise((J,K)=>{Z=J,X=K});Q.catch(()=>{});let Y=!1,G=Bun.serve({port:$.port??0,hostname:"127.0.0.1",fetch(J){if(Y)return new Response("",{status:204});let K=new URL(J.url),W=K.searchParams.get("code");if(K.searchParams.get("state")!==$.expectedState)return Y=!0,X(Error("OAuth state mismatch")),new Response("State mismatch \u2014 close this tab.",{status:400});if(!W)return Y=!0,X(Error("OAuth callback missing code")),new Response("Missing code \u2014 close this tab.",{status:400});return Y=!0,Z({code:W}),new Response(null,{status:302,headers:{location:$.successRedirectUrl}})}});return{url:`http://127.0.0.1:${G.port}`,waitForCallback:()=>Q,close:()=>G.stop(!0)}}import{createHash as Zy6,randomBytes as Xy6}from"crypto";function tm1(){let $=pm1(Xy6(32)),Z=pm1(Zy6("sha256").update($).digest());return{verifier:$,challenge:Z}}function pm1($){return $.toString("base64").replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}var om1=()=>{};import{chmod as Qy6,mkdir as Yy6,readdir as Gy6,readFile as Jy6,rename as Ky6,rm as rm1,writeFile as Wy6}from"fs/promises";import{dirname as Hy6,join as yu0}from"path";function F90($,Z){if(!Z)return yu0($,"session.json");return yu0($,`session.${Uy6(Z)}.json`)}function Uy6($){let Z=$;try{Z=new URL($).host}catch{}return Z.replace(/[^a-zA-Z0-9.-]/g,"_")||"default"}async function bu0($){try{let Z=await Jy6($,"utf8"),X=JSON.parse(Z);if(!Ny6(X))return null;return X}catch{return null}}async function am1($){try{return(await Gy6($)).filter((X)=>/^session(\..+)?\.json$/.test(X)).map((X)=>yu0($,X))}catch{return[]}}async function w90($,Z){let X=await bu0(F90($,Z));if(X)return X;if(Z)return bu0(F90($));for(let Q of await am1($)){let Y=await bu0(Q);if(Y)return Y}return null}async function B90($,Z){let X=F90($,Z.target);await Yy6(Hy6(X),{recursive:!0});let Q=`${X}.tmp`;await Wy6(Q,JSON.stringify(Z,null,2),{mode:384}),await Qy6(Q,384),await Ky6(Q,X)}async function sm1($,Z){if(Z){await rm1(F90($,Z),{force:!0});return}for(let X of await am1($))await rm1(X,{force:!0})}function Ny6($){if(!$||typeof $!=="object")return!1;let Z=$;if(typeof Z.target!=="string"||typeof Z.clientId!=="string"||typeof Z.accessToken!=="string"||typeof Z.createdAt!=="string")return!1;if(!Z.user||typeof Z.user!=="object")return!1;if(typeof Z.user.sub!=="string")return!1;return!0}var O90=()=>{};var $i1={};B0($i1,{performInteractiveLogin:()=>em1,loginCommand:()=>Ly6});import{spawn as Fy6}from"child_process";import{randomUUID as wy6}from"crypto";async function em1($={}){let Z=($.target??By6).replace(/\/$/,""),X=$.fetch??fetch,Q=$.openBrowser??jy6,Y=wy6(),G=tm1(),J=await nm1({expectedState:Y,successRedirectUrl:`${Z}/cli/auth-success`});try{let K=`${J.url}/`,W=await Dy6(X,Z,K),H=new URLSearchParams({client_id:W,redirect_uri:K,response_type:"code",state:Y,scope:Oy6,code_challenge:G.challenge,code_challenge_method:"S256"}),U=`${Z}/login?${H.toString()}`;console.log(`Opening ${U} in your browser...`),await Q(U);let{code:N}=await J.waitForCallback(),F=await Ey6(X,Z,W,N,K,G.verifier);if(!F.id_token)throw Error("Token endpoint returned no id_token");let w=zy6(F.id_token);return{target:Z,clientId:W,user:{sub:w.sub,email:w.email,name:w.name},accessToken:F.access_token,refreshToken:F.refresh_token,expiresAt:F.expires_in?Math.floor(Date.now()/1000)+F.expires_in:void 0,createdAt:new Date().toISOString()}}finally{J.close()}}async function Ly6($){try{let Z=await em1({target:$.target,openBrowser:$.openBrowser,fetch:$.fetch});return await B90($.dataDir,Z),console.log(`Logged in as ${Z.user.email??Z.user.sub}.`),0}catch(Z){return console.error(`Login failed: ${Z instanceof Error?Z.message:String(Z)}`),1}}async function Dy6($,Z,X){let Q=await $(`${Z}/api/auth/mcp/register`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({client_name:"decocms-cli",redirect_uris:[X],grant_types:["authorization_code","refresh_token"],response_types:["code"],token_endpoint_auth_method:"none",application_type:"native"})});if(!Q.ok)throw Error(`Client registration failed: HTTP ${Q.status} ${await Q.text().catch(()=>"")}`);let Y=await Q.json();if(typeof Y?.client_id!=="string")throw Error("Client registration returned no client_id");return Y.client_id}async function Ey6($,Z,X,Q,Y,G){let J=new URLSearchParams({grant_type:"authorization_code",code:Q,redirect_uri:Y,client_id:X,code_verifier:G}),K=await $(`${Z}/api/auth/mcp/token`,{method:"POST",headers:{"content-type":"application/x-www-form-urlencoded"},body:J.toString()});if(!K.ok)throw Error(`Token exchange failed: HTTP ${K.status} ${await K.text().catch(()=>"")}`);let W=await K.json();if(typeof W?.access_token!=="string")throw Error("Token endpoint returned no access_token");return W}function zy6($){let Z=$.split(".");if(Z.length!==3||!Z[1])throw Error("id_token is not a valid JWT");let X=JSON.parse(Buffer.from(Z[1],"base64url").toString("utf8"));if(typeof X.sub!=="string")throw Error("id_token has no sub claim");return{sub:X.sub,email:typeof X.email==="string"?X.email:void 0,name:typeof X.name==="string"?X.name:void 0}}async function jy6($){let Z,X;switch(process.platform){case"darwin":Z="open",X=[$];break;case"win32":Z="cmd",X=["/c","start","",$];break;default:Z="xdg-open",X=[$];break}await new Promise((Q)=>{let Y=Fy6(Z,X,{stdio:"ignore",detached:!0});Y.on("error",()=>{console.log(`Could not open browser automatically. Please open this URL manually:
|
|
179
|
-
${$}`),Q()}),Y.on("spawn",()=>{Y.unref(),Q()})})}var By6="https://studio.decocms.com",Oy6="openid profile email offline_access";var Zi1=O(()=>{om1();O90()});async function Xi1($,Z=fetch,X=Date.now){if(!$.refreshToken)throw new UW("invalid_grant","Session has no refresh token");let Q=new URLSearchParams({grant_type:"refresh_token",refresh_token:$.refreshToken,client_id:$.clientId}),Y;try{Y=await Z(`${$.target}/api/auth/mcp/token`,{method:"POST",headers:{"content-type":"application/x-www-form-urlencoded"},body:Q.toString()})}catch(W){throw new UW("transient",W instanceof Error?W.message:String(W))}if(!Y.ok){let W=await Y.text().catch(()=>"");if(Y.status>=400&&Y.status<500)throw new UW("invalid_grant",`HTTP ${Y.status} ${W}`);throw new UW("transient",`HTTP ${Y.status} ${W}`)}let G=await Y.json();if(typeof G.access_token!=="string")throw new UW("transient","Token endpoint returned no access_token");let J=Number(G.expires_in),K=Number.isFinite(J)&&J>0?Math.floor(X()/1000)+J:$.expiresAt;return{...$,accessToken:G.access_token,refreshToken:G.refresh_token??$.refreshToken,expiresAt:K}}var UW;var gu0=O(()=>{UW=class UW extends Error{kind;constructor($,Z){super(Z);this.name="RefreshFailedError",this.kind=$}}});async function Qi1($){let Z=await w90($.dataDir,$.target);if(!Z)return null;let X=$.now??Date.now;if(!Ay6(Z,X()))return Z;try{let Q=await Xi1(Z,$.fetch,X);return await B90($.dataDir,Q),Q}catch(Q){if(Q instanceof UW&&Q.kind==="invalid_grant")return null;throw Q}}function Ay6($,Z){if($.expiresAt===void 0)return!1;let X=Math.floor(Z/1000);return $.expiresAt-Py6<X}var Py6=60;var Yi1=O(()=>{gu0();O90()});var Gi1={};B0(Gi1,{whoamiCommand:()=>Ty6});async function Ty6($){let Z;try{Z=await Qi1({dataDir:$.dataDir,fetch:$.fetch,now:$.now})}catch(X){if(X instanceof UW&&X.kind==="transient")return console.error(`Could not refresh session: ${X.message}. Run \`decocms auth login\` to authenticate.`),1;throw X}if(!Z)return console.error("Not logged in. Run `decocms auth login` to authenticate."),1;return console.log(`Target: ${Z.target}`),console.log(`User: ${Z.user.email??Z.user.sub}`),0}var Ji1=O(()=>{Yi1();gu0()});var Ki1={};B0(Ki1,{logoutCommand:()=>Ry6});async function Ry6($){if(!await w90($.dataDir))return console.log("Already logged out."),0;return await sm1($.dataDir),console.log("Logged out."),0}var Wi1=O(()=>{O90()});var E90={};B0(E90,{printBanner:()=>qy6,bannerLines:()=>Hi1,BANNER_LINES:()=>L90,BANNER_GRADIENT:()=>D90});function Iy6($){let Z=Number.parseInt($.slice(1),16);return[Z>>16&255,Z>>8&255,Z&255]}function Hi1($){let Z=L90.map((X,Q)=>{let[Y,G,J]=Iy6(D90[Q]);return`\x1B[38;2;${Y};${G};${J}m${X}\x1B[39m`});if($!==void 0)Z.push(`\x1B[2m v${$}\x1B[22m`);return Z}function qy6($){console.log("");for(let Z of Hi1($))console.log(Z);console.log("")}var L90,D90;var dm=O(()=>{L90=[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588 \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2588 \u2591 \u2588\u2588\u2588 \u2591\u2591\u2591 \u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\u2591\u2591\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588 \u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591 \u2588\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591 ","\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591\u2591 "],D90=["#00ff64","#00ee5e","#00dc56","#00c84e","#00b444","#00a03c","#008832","#006e28"]});import{randomBytes as My6}from"crypto";import{mkdirSync as Vy6,readFileSync as ky6,writeFileSync as Sy6}from"fs";import{join as Cy6}from"path";function Ui1($){let Z=Cy6($,_y6);try{let Q=ky6(Z,"utf8").trim();if(Q)return Q}catch{}let X=My6(32).toString("base64");return Vy6($,{recursive:!0}),Sy6(Z,X,{mode:384}),X}var _y6="local-auth-secret";var Ni1=()=>{};var Fi1={};B0(Fi1,{migrateBetterAuth:()=>hu0});import{getMigrations as vy6}from"better-auth/db";import{sso as xy6}from"@better-auth/sso";import{organization as fy6}from"@decocms/better-auth/plugins";import{admin as by6,apiKey as yy6,jwt as gy6,magicLink as hy6,mcp as uy6,openAPI as cy6}from"better-auth/plugins";import{emailOTP as ly6}from"better-auth/plugins/email-otp";async function hu0($){let X={database:gm($||Aw()),plugins:[fy6({dynamicAccessControl:{enabled:!0,enableCustomResources:!0}}),by6(),yy6(),gy6(),cy6(),uy6({loginPage:"/login"}),xy6(),hy6({sendMagicLink:async()=>{}}),ly6({sendVerificationOTP:async()=>{}})]},{toBeAdded:Q,toBeCreated:Y,runMigrations:G}=await vy6(X);if(!Q.length&&!Y.length)return"up to date";return await G(),`${Y.length+Q.length} table(s) migrated`}var uu0=O(()=>{e7()});var cu0={};B0(cu0,{up:()=>dy6,down:()=>my6});import{sql as NW}from"kysely";async function dy6($){await $.schema.createTable("connections").addColumn("id","text",(Z)=>Z.primaryKey()).addColumn("organizationId","text",(Z)=>Z.notNull().references("organization.id").onDelete("cascade")).addColumn("createdById","text",(Z)=>Z.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(Z)=>Z.notNull()).addColumn("description","text").addColumn("icon","text").addColumn("appName","text").addColumn("appId","text").addColumn("connectionType","text",(Z)=>Z.notNull()).addColumn("connectionUrl","text",(Z)=>Z.notNull()).addColumn("connectionToken","text").addColumn("connectionHeaders","text").addColumn("oauthConfig","text").addColumn("metadata","text").addColumn("tools","text").addColumn("bindings","text").addColumn("status","text",(Z)=>Z.notNull().defaultTo("active")).addColumn("createdAt","text",(Z)=>Z.notNull().defaultTo(NW`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(Z)=>Z.notNull().defaultTo(NW`CURRENT_TIMESTAMP`)).execute(),await $.schema.createTable("api_keys").addColumn("id","text",(Z)=>Z.primaryKey()).addColumn("userId","text",(Z)=>Z.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(Z)=>Z.notNull()).addColumn("hashedKey","text",(Z)=>Z.notNull().unique()).addColumn("permissions","text",(Z)=>Z.notNull()).addColumn("expiresAt","text").addColumn("remaining","integer").addColumn("metadata","text").addColumn("createdAt","text",(Z)=>Z.notNull().defaultTo(NW`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(Z)=>Z.notNull().defaultTo(NW`CURRENT_TIMESTAMP`)).execute(),await $.schema.createTable("audit_logs").addColumn("id","text",(Z)=>Z.primaryKey()).addColumn("organizationId","text").addColumn("userId","text",(Z)=>Z.references("user.id").onDelete("set null")).addColumn("connectionId","text",(Z)=>Z.references("connections.id").onDelete("set null")).addColumn("toolName","text",(Z)=>Z.notNull()).addColumn("allowed","integer",(Z)=>Z.notNull()).addColumn("duration","integer").addColumn("timestamp","text",(Z)=>Z.notNull().defaultTo(NW`CURRENT_TIMESTAMP`)).addColumn("requestMetadata","text").execute(),await $.schema.createTable("oauth_clients").addColumn("id","text",(Z)=>Z.primaryKey()).addColumn("clientId","text",(Z)=>Z.notNull().unique()).addColumn("clientSecret","text").addColumn("clientName","text",(Z)=>Z.notNull()).addColumn("redirectUris","text",(Z)=>Z.notNull()).addColumn("grantTypes","text",(Z)=>Z.notNull()).addColumn("scope","text").addColumn("clientUri","text").addColumn("logoUri","text").addColumn("createdAt","text",(Z)=>Z.notNull().defaultTo(NW`CURRENT_TIMESTAMP`)).execute(),await $.schema.createTable("oauth_authorization_codes").addColumn("code","text",(Z)=>Z.primaryKey()).addColumn("clientId","text",(Z)=>Z.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(Z)=>Z.notNull().references("user.id").onDelete("cascade")).addColumn("redirectUri","text",(Z)=>Z.notNull()).addColumn("scope","text").addColumn("codeChallenge","text").addColumn("codeChallengeMethod","text").addColumn("expiresAt","text",(Z)=>Z.notNull()).addColumn("createdAt","text",(Z)=>Z.notNull().defaultTo(NW`CURRENT_TIMESTAMP`)).execute(),await $.schema.createTable("oauth_refresh_tokens").addColumn("token","text",(Z)=>Z.primaryKey()).addColumn("clientId","text",(Z)=>Z.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(Z)=>Z.notNull().references("user.id").onDelete("cascade")).addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(Z)=>Z.notNull().defaultTo(NW`CURRENT_TIMESTAMP`)).execute(),await $.schema.createTable("downstream_tokens").addColumn("id","text",(Z)=>Z.primaryKey()).addColumn("connectionId","text",(Z)=>Z.notNull().references("connections.id").onDelete("cascade")).addColumn("userId","text",(Z)=>Z.references("user.id").onDelete("cascade")).addColumn("accessToken","text",(Z)=>Z.notNull()).addColumn("refreshToken","text").addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(Z)=>Z.notNull().defaultTo(NW`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(Z)=>Z.notNull().defaultTo(NW`CURRENT_TIMESTAMP`)).execute(),await $.schema.createIndex("idx_connections_organizationId").on("connections").column("organizationId").execute(),await $.schema.createIndex("idx_audit_logs_organizationId").on("audit_logs").column("organizationId").execute(),await $.schema.createIndex("idx_audit_logs_userId").on("audit_logs").column("userId").execute(),await $.schema.createIndex("idx_audit_logs_timestamp").on("audit_logs").column("timestamp").execute()}async function my6($){await $.schema.dropTable("downstream_tokens").execute(),await $.schema.dropTable("oauth_refresh_tokens").execute(),await $.schema.dropTable("oauth_authorization_codes").execute(),await $.schema.dropTable("oauth_clients").execute(),await $.schema.dropTable("audit_logs").execute(),await $.schema.dropTable("api_keys").execute(),await $.schema.dropTable("connections").execute()}var wi1=()=>{};var lu0={};B0(lu0,{up:()=>iy6,down:()=>ny6});import{sql as Bi1}from"kysely";async function iy6($){await $.schema.createTable("organization_settings").addColumn("organizationId","text",(Z)=>Z.primaryKey().references("organization.id").onDelete("cascade")).addColumn("modelsBindingConnectionId","text",(Z)=>Z.references("connections.id").onDelete("set null")).addColumn("createdAt","text",(Z)=>Z.notNull().defaultTo(Bi1`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(Z)=>Z.notNull().defaultTo(Bi1`CURRENT_TIMESTAMP`)).execute()}async function ny6($){await $.schema.dropTable("organization_settings").execute()}var Oi1=()=>{};var du0={};B0(du0,{up:()=>py6,down:()=>ty6});async function py6($){await $.schema.alterTable("connections").renameColumn("name","title").execute(),await $.schema.alterTable("connections").renameColumn("createdById","created_by").execute(),await $.schema.alterTable("connections").renameColumn("createdAt","created_at").execute(),await $.schema.alterTable("connections").renameColumn("updatedAt","updated_at").execute(),await $.schema.alterTable("connections").renameColumn("organizationId","organization_id").execute(),await $.schema.alterTable("connections").renameColumn("connectionType","connection_type").execute(),await $.schema.alterTable("connections").renameColumn("connectionUrl","connection_url").execute(),await $.schema.alterTable("connections").renameColumn("connectionToken","connection_token").execute(),await $.schema.alterTable("connections").renameColumn("connectionHeaders","connection_headers").execute(),await $.schema.alterTable("connections").renameColumn("oauthConfig","oauth_config").execute(),await $.schema.alterTable("connections").renameColumn("appName","app_name").execute(),await $.schema.alterTable("connections").renameColumn("appId","app_id").execute()}async function ty6($){await $.schema.alterTable("connections").renameColumn("title","name").execute(),await $.schema.alterTable("connections").renameColumn("created_by","createdById").execute(),await $.schema.alterTable("connections").renameColumn("created_at","createdAt").execute(),await $.schema.alterTable("connections").renameColumn("updated_at","updatedAt").execute(),await $.schema.alterTable("connections").renameColumn("organization_id","organizationId").execute(),await $.schema.alterTable("connections").renameColumn("connection_type","connectionType").execute(),await $.schema.alterTable("connections").renameColumn("connection_url","connectionUrl").execute(),await $.schema.alterTable("connections").renameColumn("connection_token","connectionToken").execute(),await $.schema.alterTable("connections").renameColumn("connection_headers","connectionHeaders").execute(),await $.schema.alterTable("connections").renameColumn("oauth_config","oauthConfig").execute(),await $.schema.alterTable("connections").renameColumn("app_name","appName").execute(),await $.schema.alterTable("connections").renameColumn("app_id","appId").execute()}var mu0={};B0(mu0,{up:()=>oy6,down:()=>ry6});async function oy6($){await $.schema.createTable("organization_settings_new").addColumn("organizationId","text",(Z)=>Z.primaryKey().references("organization.id").onDelete("cascade")).addColumn("createdAt","text",(Z)=>Z.notNull()).addColumn("updatedAt","text",(Z)=>Z.notNull()).execute(),await $.insertInto("organization_settings_new").columns(["organizationId","createdAt","updatedAt"]).expression((Z)=>Z.selectFrom("organization_settings").select(["organizationId","createdAt","updatedAt"])).execute(),await $.schema.dropTable("organization_settings").execute(),await $.schema.alterTable("organization_settings_new").renameTo("organization_settings").execute()}async function ry6($){await $.schema.createTable("organization_settings_new").addColumn("organizationId","text",(Z)=>Z.primaryKey().references("organization.id").onDelete("cascade")).addColumn("modelsBindingConnectionId","text",(Z)=>Z.references("connections.id").onDelete("set null")).addColumn("createdAt","text",(Z)=>Z.notNull()).addColumn("updatedAt","text",(Z)=>Z.notNull()).execute(),await $.insertInto("organization_settings_new").columns(["organizationId","modelsBindingConnectionId","createdAt","updatedAt"]).expression((Z)=>Z.selectFrom("organization_settings").select(["organizationId",Z.val(null).as("modelsBindingConnectionId"),"createdAt","updatedAt"])).execute(),await $.schema.dropTable("organization_settings").execute(),await $.schema.alterTable("organization_settings_new").renameTo("organization_settings").execute()}var iu0={};B0(iu0,{up:()=>ay6,down:()=>sy6});async function ay6($){await $.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await $.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function sy6($){await $.schema.alterTable("connections").dropColumn("configuration_state").execute(),await $.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var nu0={};B0(nu0,{up:()=>$g6,down:()=>Zg6});import{sql as ey6}from"kysely";async function $g6($){await $.schema.alterTable("organization_settings").addColumn("sidebar_items",ey6`text`).execute()}async function Zg6($){await $.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var Li1=()=>{};var pu0={};B0(pu0,{up:()=>Xg6,down:()=>Qg6});async function Xg6($){await $.schema.createTable("monitoring_logs").addColumn("id","text",(Z)=>Z.primaryKey()).addColumn("organization_id","text",(Z)=>Z.notNull().references("organization.id").onDelete("cascade")).addColumn("connection_id","text",(Z)=>Z.notNull().references("connections.id").onDelete("cascade")).addColumn("connection_title","text",(Z)=>Z.notNull()).addColumn("tool_name","text",(Z)=>Z.notNull()).addColumn("input","text",(Z)=>Z.notNull()).addColumn("output","text",(Z)=>Z.notNull()).addColumn("is_error","integer",(Z)=>Z.notNull()).addColumn("error_message","text").addColumn("duration_ms","integer",(Z)=>Z.notNull()).addColumn("timestamp","text",(Z)=>Z.notNull()).addColumn("user_id","text").addColumn("request_id","text",(Z)=>Z.notNull()).execute(),await $.schema.createIndex("monitoring_logs_org_timestamp").on("monitoring_logs").columns(["organization_id","timestamp"]).execute(),await $.schema.createIndex("monitoring_logs_connection_timestamp").on("monitoring_logs").columns(["connection_id","timestamp"]).execute(),await $.schema.createIndex("monitoring_logs_is_error").on("monitoring_logs").columns(["organization_id","is_error","timestamp"]).execute()}async function Qg6($){await $.schema.dropIndex("monitoring_logs_is_error").execute(),await $.schema.dropIndex("monitoring_logs_connection_timestamp").execute(),await $.schema.dropIndex("monitoring_logs_org_timestamp").execute(),await $.schema.dropTable("monitoring_logs").execute()}var tu0={};B0(tu0,{up:()=>Yg6,down:()=>Gg6});import{sql as mm}from"kysely";async function Yg6($){await $.schema.createTable("events").addColumn("id","text",(Z)=>Z.primaryKey()).addColumn("organization_id","text",(Z)=>Z.notNull().references("organization.id").onDelete("cascade")).addColumn("type","text",(Z)=>Z.notNull()).addColumn("source","text",(Z)=>Z.notNull()).addColumn("specversion","text",(Z)=>Z.notNull().defaultTo("1.0")).addColumn("subject","text").addColumn("time","text",(Z)=>Z.notNull()).addColumn("datacontenttype","text",(Z)=>Z.notNull().defaultTo("application/json")).addColumn("dataschema","text").addColumn("data","text").addColumn("cron","varchar(255)").addColumn("status","text",(Z)=>Z.notNull().defaultTo("pending")).addColumn("attempts","integer",(Z)=>Z.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("next_retry_at","text").addColumn("created_at","text",(Z)=>Z.notNull().defaultTo(mm`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(Z)=>Z.notNull().defaultTo(mm`CURRENT_TIMESTAMP`)).execute(),await $.schema.createTable("event_subscriptions").addColumn("id","text",(Z)=>Z.primaryKey()).addColumn("organization_id","text",(Z)=>Z.notNull().references("organization.id").onDelete("cascade")).addColumn("connection_id","text",(Z)=>Z.notNull().references("connections.id").onDelete("cascade")).addColumn("publisher","text").addColumn("event_type","text",(Z)=>Z.notNull()).addColumn("filter","text").addColumn("enabled","integer",(Z)=>Z.notNull().defaultTo(1)).addColumn("created_at","text",(Z)=>Z.notNull().defaultTo(mm`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(Z)=>Z.notNull().defaultTo(mm`CURRENT_TIMESTAMP`)).execute(),await $.schema.createTable("event_deliveries").addColumn("id","text",(Z)=>Z.primaryKey()).addColumn("event_id","text",(Z)=>Z.notNull()).addColumn("subscription_id","text",(Z)=>Z.notNull().references("event_subscriptions.id").onDelete("cascade")).addColumn("status","text",(Z)=>Z.notNull().defaultTo("pending")).addColumn("attempts","integer",(Z)=>Z.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("delivered_at","text").addColumn("next_retry_at","text").addColumn("created_at","text",(Z)=>Z.notNull().defaultTo(mm`CURRENT_TIMESTAMP`)).execute(),await $.schema.createIndex("idx_events_org_status").on("events").columns(["organization_id","status"]).execute(),await $.schema.createIndex("idx_events_source").on("events").columns(["source"]).execute(),await $.schema.createIndex("idx_events_type").on("events").columns(["type"]).execute(),await $.schema.createIndex("idx_events_retry").on("events").columns(["status","next_retry_at"]).execute(),await $.schema.createIndex("idx_subscriptions_connection").on("event_subscriptions").columns(["connection_id"]).execute(),await $.schema.createIndex("idx_subscriptions_type").on("event_subscriptions").columns(["event_type"]).execute(),await $.schema.createIndex("idx_subscriptions_org_enabled").on("event_subscriptions").columns(["organization_id","enabled"]).execute(),await $.schema.createIndex("idx_subscriptions_unique").on("event_subscriptions").columns(["connection_id","event_type","publisher","filter"]).unique().execute(),await $.schema.createIndex("idx_deliveries_event").on("event_deliveries").columns(["event_id"]).execute(),await $.schema.createIndex("idx_deliveries_subscription_status").on("event_deliveries").columns(["subscription_id","status"]).execute(),await $.schema.createIndex("idx_deliveries_retry").on("event_deliveries").columns(["status","next_retry_at"]).execute()}async function Gg6($){await $.schema.dropIndex("idx_deliveries_retry").execute(),await $.schema.dropIndex("idx_deliveries_subscription_status").execute(),await $.schema.dropIndex("idx_deliveries_event").execute(),await $.schema.dropIndex("idx_subscriptions_unique").execute(),await $.schema.dropIndex("idx_subscriptions_org_enabled").execute(),await $.schema.dropIndex("idx_subscriptions_type").execute(),await $.schema.dropIndex("idx_subscriptions_connection").execute(),await $.schema.dropIndex("idx_events_retry").execute(),await $.schema.dropIndex("idx_events_type").execute(),await $.schema.dropIndex("idx_events_source").execute(),await $.schema.dropIndex("idx_events_org_status").execute(),await $.schema.dropTable("event_deliveries").execute(),await $.schema.dropTable("event_subscriptions").execute(),await $.schema.dropTable("events").execute()}var Di1=()=>{};var ou0={};B0(ou0,{up:()=>Kg6,down:()=>Wg6});import{sql as Jg6}from"kysely";async function Kg6($){await $.schema.dropTable("audit_logs").ifExists().execute()}async function Wg6($){await $.schema.createTable("audit_logs").ifNotExists().addColumn("id","text",(Z)=>Z.primaryKey()).addColumn("organizationId","text").addColumn("userId","text",(Z)=>Z.references("user.id").onDelete("set null")).addColumn("connectionId","text",(Z)=>Z.references("connections.id").onDelete("set null")).addColumn("toolName","text",(Z)=>Z.notNull()).addColumn("allowed","integer",(Z)=>Z.notNull()).addColumn("duration","integer").addColumn("timestamp","text",(Z)=>Z.notNull().defaultTo(Jg6`CURRENT_TIMESTAMP`)).addColumn("requestMetadata","text").execute(),await $.schema.createIndex("idx_audit_logs_organizationId").on("audit_logs").column("organizationId").execute(),await $.schema.createIndex("idx_audit_logs_userId").on("audit_logs").column("userId").execute(),await $.schema.createIndex("idx_audit_logs_timestamp").on("audit_logs").column("timestamp").execute()}var Ei1=()=>{};var ru0={};B0(ru0,{up:()=>Hg6,down:()=>Ug6});import{sql as z90}from"kysely";async function Hg6($){await $.schema.createTable("gateways").addColumn("id","text",(Z)=>Z.primaryKey()).addColumn("organization_id","text",(Z)=>Z.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(Z)=>Z.notNull()).addColumn("description","text").addColumn("tool_selection_strategy","text").addColumn("status","text",(Z)=>Z.notNull().defaultTo("active")).addColumn("is_default","integer",(Z)=>Z.notNull().defaultTo(0)).addColumn("created_at","text",(Z)=>Z.notNull().defaultTo(z90`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(Z)=>Z.notNull().defaultTo(z90`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(Z)=>Z.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await $.schema.createTable("gateway_connections").addColumn("id","text",(Z)=>Z.primaryKey()).addColumn("gateway_id","text",(Z)=>Z.notNull().references("gateways.id").onDelete("cascade")).addColumn("connection_id","text",(Z)=>Z.notNull().references("connections.id").onDelete("cascade")).addColumn("selected_tools","text").addColumn("created_at","text",(Z)=>Z.notNull().defaultTo(z90`CURRENT_TIMESTAMP`)).execute(),await $.schema.createIndex("idx_gateways_org").on("gateways").columns(["organization_id"]).execute(),await $.schema.createIndex("idx_gateways_org_status").on("gateways").columns(["organization_id","status"]).execute(),await z90`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute($),await $.schema.createIndex("idx_gateway_connections_gateway").on("gateway_connections").columns(["gateway_id"]).execute(),await $.schema.createIndex("idx_gateway_connections_connection").on("gateway_connections").columns(["connection_id"]).execute(),await $.schema.createIndex("idx_gateway_connections_unique").on("gateway_connections").columns(["gateway_id","connection_id"]).unique().execute()}async function Ug6($){await $.schema.dropIndex("idx_gateway_connections_unique").execute(),await $.schema.dropIndex("idx_gateway_connections_connection").execute(),await $.schema.dropIndex("idx_gateway_connections_gateway").execute(),await $.schema.dropIndex("idx_gateways_default_per_org").execute(),await $.schema.dropIndex("idx_gateways_org_status").execute(),await $.schema.dropIndex("idx_gateways_org").execute(),await $.schema.dropTable("gateway_connections").execute(),await $.schema.dropTable("gateways").execute()}var zi1=()=>{};var au0={};B0(au0,{up:()=>Ng6,down:()=>Fg6});async function Ng6($){await $.schema.alterTable("gateways").addColumn("icon","text").execute()}async function Fg6($){await $.schema.alterTable("gateways").dropColumn("icon").execute()}var su0={};B0(su0,{up:()=>wg6,down:()=>Bg6});import{sql as j90}from"kysely";async function wg6($){await $.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(Z)=>Z.notNull().defaultTo("inclusion")).execute(),await j90`
|
|
179
|
+
${$}`),Q()}),Y.on("spawn",()=>{Y.unref(),Q()})})}var By6="https://studio.decocms.com",Oy6="openid profile email offline_access";var Zi1=O(()=>{om1();O90()});async function Xi1($,Z=fetch,X=Date.now){if(!$.refreshToken)throw new UW("invalid_grant","Session has no refresh token");let Q=new URLSearchParams({grant_type:"refresh_token",refresh_token:$.refreshToken,client_id:$.clientId}),Y;try{Y=await Z(`${$.target}/api/auth/mcp/token`,{method:"POST",headers:{"content-type":"application/x-www-form-urlencoded"},body:Q.toString()})}catch(H){throw new UW("transient",H instanceof Error?H.message:String(H))}if(!Y.ok){let H=await Y.text().catch(()=>"");if(Y.status>=400&&Y.status<500)throw new UW("invalid_grant",`HTTP ${Y.status} ${H}`);throw new UW("transient",`HTTP ${Y.status} ${H}`)}let G=await Y.json();if(typeof G.access_token!=="string"||!G.access_token)throw new UW("transient","Token endpoint returned no access_token");let J=Number(G.expires_in),K=Number.isFinite(J)&&J>0?Math.floor(X()/1000)+J:$.expiresAt,W=typeof G.refresh_token==="string"&&G.refresh_token?G.refresh_token:$.refreshToken;return{...$,accessToken:G.access_token,refreshToken:W,expiresAt:K}}var UW;var gu0=O(()=>{UW=class UW extends Error{kind;constructor($,Z){super(Z);this.name="RefreshFailedError",this.kind=$}}});async function Qi1($){let Z=await w90($.dataDir,$.target);if(!Z)return null;let X=$.now??Date.now;if(!Ay6(Z,X()))return Z;try{let Q=await Xi1(Z,$.fetch,X);return await B90($.dataDir,Q),Q}catch(Q){if(Q instanceof UW&&Q.kind==="invalid_grant")return null;throw Q}}function Ay6($,Z){if($.expiresAt===void 0)return!1;let X=Math.floor(Z/1000);return $.expiresAt-Py6<X}var Py6=60;var Yi1=O(()=>{gu0();O90()});var Gi1={};B0(Gi1,{whoamiCommand:()=>Ty6});async function Ty6($){let Z;try{Z=await Qi1({dataDir:$.dataDir,fetch:$.fetch,now:$.now})}catch(X){if(X instanceof UW&&X.kind==="transient")return console.error(`Could not refresh session: ${X.message}. Run \`decocms auth login\` to authenticate.`),1;throw X}if(!Z)return console.error("Not logged in. Run `decocms auth login` to authenticate."),1;return console.log(`Target: ${Z.target}`),console.log(`User: ${Z.user.email??Z.user.sub}`),0}var Ji1=O(()=>{Yi1();gu0()});var Ki1={};B0(Ki1,{logoutCommand:()=>Ry6});async function Ry6($){if(!await w90($.dataDir))return console.log("Already logged out."),0;return await sm1($.dataDir),console.log("Logged out."),0}var Wi1=O(()=>{O90()});var E90={};B0(E90,{printBanner:()=>qy6,bannerLines:()=>Hi1,BANNER_LINES:()=>L90,BANNER_GRADIENT:()=>D90});function Iy6($){let Z=Number.parseInt($.slice(1),16);return[Z>>16&255,Z>>8&255,Z&255]}function Hi1($){let Z=L90.map((X,Q)=>{let[Y,G,J]=Iy6(D90[Q]);return`\x1B[38;2;${Y};${G};${J}m${X}\x1B[39m`});if($!==void 0)Z.push(`\x1B[2m v${$}\x1B[22m`);return Z}function qy6($){console.log("");for(let Z of Hi1($))console.log(Z);console.log("")}var L90,D90;var dm=O(()=>{L90=[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588 \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2588 \u2591 \u2588\u2588\u2588 \u2591\u2591\u2591 \u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\u2591\u2591\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588 \u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591 \u2588\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591 ","\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591\u2591 "],D90=["#00ff64","#00ee5e","#00dc56","#00c84e","#00b444","#00a03c","#008832","#006e28"]});import{randomBytes as My6}from"crypto";import{mkdirSync as Vy6,readFileSync as ky6,writeFileSync as Sy6}from"fs";import{join as Cy6}from"path";function Ui1($){let Z=Cy6($,_y6);try{let Q=ky6(Z,"utf8").trim();if(Q)return Q}catch{}let X=My6(32).toString("base64");return Vy6($,{recursive:!0}),Sy6(Z,X,{mode:384}),X}var _y6="local-auth-secret";var Ni1=()=>{};var Fi1={};B0(Fi1,{migrateBetterAuth:()=>hu0});import{getMigrations as vy6}from"better-auth/db";import{sso as xy6}from"@better-auth/sso";import{organization as fy6}from"@decocms/better-auth/plugins";import{admin as by6,apiKey as yy6,jwt as gy6,magicLink as hy6,mcp as uy6,openAPI as cy6}from"better-auth/plugins";import{emailOTP as ly6}from"better-auth/plugins/email-otp";async function hu0($){let X={database:gm($||Aw()),plugins:[fy6({dynamicAccessControl:{enabled:!0,enableCustomResources:!0}}),by6(),yy6(),gy6(),cy6(),uy6({loginPage:"/login"}),xy6(),hy6({sendMagicLink:async()=>{}}),ly6({sendVerificationOTP:async()=>{}})]},{toBeAdded:Q,toBeCreated:Y,runMigrations:G}=await vy6(X);if(!Q.length&&!Y.length)return"up to date";return await G(),`${Y.length+Q.length} table(s) migrated`}var uu0=O(()=>{e7()});var cu0={};B0(cu0,{up:()=>dy6,down:()=>my6});import{sql as NW}from"kysely";async function dy6($){await $.schema.createTable("connections").addColumn("id","text",(Z)=>Z.primaryKey()).addColumn("organizationId","text",(Z)=>Z.notNull().references("organization.id").onDelete("cascade")).addColumn("createdById","text",(Z)=>Z.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(Z)=>Z.notNull()).addColumn("description","text").addColumn("icon","text").addColumn("appName","text").addColumn("appId","text").addColumn("connectionType","text",(Z)=>Z.notNull()).addColumn("connectionUrl","text",(Z)=>Z.notNull()).addColumn("connectionToken","text").addColumn("connectionHeaders","text").addColumn("oauthConfig","text").addColumn("metadata","text").addColumn("tools","text").addColumn("bindings","text").addColumn("status","text",(Z)=>Z.notNull().defaultTo("active")).addColumn("createdAt","text",(Z)=>Z.notNull().defaultTo(NW`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(Z)=>Z.notNull().defaultTo(NW`CURRENT_TIMESTAMP`)).execute(),await $.schema.createTable("api_keys").addColumn("id","text",(Z)=>Z.primaryKey()).addColumn("userId","text",(Z)=>Z.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(Z)=>Z.notNull()).addColumn("hashedKey","text",(Z)=>Z.notNull().unique()).addColumn("permissions","text",(Z)=>Z.notNull()).addColumn("expiresAt","text").addColumn("remaining","integer").addColumn("metadata","text").addColumn("createdAt","text",(Z)=>Z.notNull().defaultTo(NW`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(Z)=>Z.notNull().defaultTo(NW`CURRENT_TIMESTAMP`)).execute(),await $.schema.createTable("audit_logs").addColumn("id","text",(Z)=>Z.primaryKey()).addColumn("organizationId","text").addColumn("userId","text",(Z)=>Z.references("user.id").onDelete("set null")).addColumn("connectionId","text",(Z)=>Z.references("connections.id").onDelete("set null")).addColumn("toolName","text",(Z)=>Z.notNull()).addColumn("allowed","integer",(Z)=>Z.notNull()).addColumn("duration","integer").addColumn("timestamp","text",(Z)=>Z.notNull().defaultTo(NW`CURRENT_TIMESTAMP`)).addColumn("requestMetadata","text").execute(),await $.schema.createTable("oauth_clients").addColumn("id","text",(Z)=>Z.primaryKey()).addColumn("clientId","text",(Z)=>Z.notNull().unique()).addColumn("clientSecret","text").addColumn("clientName","text",(Z)=>Z.notNull()).addColumn("redirectUris","text",(Z)=>Z.notNull()).addColumn("grantTypes","text",(Z)=>Z.notNull()).addColumn("scope","text").addColumn("clientUri","text").addColumn("logoUri","text").addColumn("createdAt","text",(Z)=>Z.notNull().defaultTo(NW`CURRENT_TIMESTAMP`)).execute(),await $.schema.createTable("oauth_authorization_codes").addColumn("code","text",(Z)=>Z.primaryKey()).addColumn("clientId","text",(Z)=>Z.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(Z)=>Z.notNull().references("user.id").onDelete("cascade")).addColumn("redirectUri","text",(Z)=>Z.notNull()).addColumn("scope","text").addColumn("codeChallenge","text").addColumn("codeChallengeMethod","text").addColumn("expiresAt","text",(Z)=>Z.notNull()).addColumn("createdAt","text",(Z)=>Z.notNull().defaultTo(NW`CURRENT_TIMESTAMP`)).execute(),await $.schema.createTable("oauth_refresh_tokens").addColumn("token","text",(Z)=>Z.primaryKey()).addColumn("clientId","text",(Z)=>Z.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(Z)=>Z.notNull().references("user.id").onDelete("cascade")).addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(Z)=>Z.notNull().defaultTo(NW`CURRENT_TIMESTAMP`)).execute(),await $.schema.createTable("downstream_tokens").addColumn("id","text",(Z)=>Z.primaryKey()).addColumn("connectionId","text",(Z)=>Z.notNull().references("connections.id").onDelete("cascade")).addColumn("userId","text",(Z)=>Z.references("user.id").onDelete("cascade")).addColumn("accessToken","text",(Z)=>Z.notNull()).addColumn("refreshToken","text").addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(Z)=>Z.notNull().defaultTo(NW`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(Z)=>Z.notNull().defaultTo(NW`CURRENT_TIMESTAMP`)).execute(),await $.schema.createIndex("idx_connections_organizationId").on("connections").column("organizationId").execute(),await $.schema.createIndex("idx_audit_logs_organizationId").on("audit_logs").column("organizationId").execute(),await $.schema.createIndex("idx_audit_logs_userId").on("audit_logs").column("userId").execute(),await $.schema.createIndex("idx_audit_logs_timestamp").on("audit_logs").column("timestamp").execute()}async function my6($){await $.schema.dropTable("downstream_tokens").execute(),await $.schema.dropTable("oauth_refresh_tokens").execute(),await $.schema.dropTable("oauth_authorization_codes").execute(),await $.schema.dropTable("oauth_clients").execute(),await $.schema.dropTable("audit_logs").execute(),await $.schema.dropTable("api_keys").execute(),await $.schema.dropTable("connections").execute()}var wi1=()=>{};var lu0={};B0(lu0,{up:()=>iy6,down:()=>ny6});import{sql as Bi1}from"kysely";async function iy6($){await $.schema.createTable("organization_settings").addColumn("organizationId","text",(Z)=>Z.primaryKey().references("organization.id").onDelete("cascade")).addColumn("modelsBindingConnectionId","text",(Z)=>Z.references("connections.id").onDelete("set null")).addColumn("createdAt","text",(Z)=>Z.notNull().defaultTo(Bi1`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(Z)=>Z.notNull().defaultTo(Bi1`CURRENT_TIMESTAMP`)).execute()}async function ny6($){await $.schema.dropTable("organization_settings").execute()}var Oi1=()=>{};var du0={};B0(du0,{up:()=>py6,down:()=>ty6});async function py6($){await $.schema.alterTable("connections").renameColumn("name","title").execute(),await $.schema.alterTable("connections").renameColumn("createdById","created_by").execute(),await $.schema.alterTable("connections").renameColumn("createdAt","created_at").execute(),await $.schema.alterTable("connections").renameColumn("updatedAt","updated_at").execute(),await $.schema.alterTable("connections").renameColumn("organizationId","organization_id").execute(),await $.schema.alterTable("connections").renameColumn("connectionType","connection_type").execute(),await $.schema.alterTable("connections").renameColumn("connectionUrl","connection_url").execute(),await $.schema.alterTable("connections").renameColumn("connectionToken","connection_token").execute(),await $.schema.alterTable("connections").renameColumn("connectionHeaders","connection_headers").execute(),await $.schema.alterTable("connections").renameColumn("oauthConfig","oauth_config").execute(),await $.schema.alterTable("connections").renameColumn("appName","app_name").execute(),await $.schema.alterTable("connections").renameColumn("appId","app_id").execute()}async function ty6($){await $.schema.alterTable("connections").renameColumn("title","name").execute(),await $.schema.alterTable("connections").renameColumn("created_by","createdById").execute(),await $.schema.alterTable("connections").renameColumn("created_at","createdAt").execute(),await $.schema.alterTable("connections").renameColumn("updated_at","updatedAt").execute(),await $.schema.alterTable("connections").renameColumn("organization_id","organizationId").execute(),await $.schema.alterTable("connections").renameColumn("connection_type","connectionType").execute(),await $.schema.alterTable("connections").renameColumn("connection_url","connectionUrl").execute(),await $.schema.alterTable("connections").renameColumn("connection_token","connectionToken").execute(),await $.schema.alterTable("connections").renameColumn("connection_headers","connectionHeaders").execute(),await $.schema.alterTable("connections").renameColumn("oauth_config","oauthConfig").execute(),await $.schema.alterTable("connections").renameColumn("app_name","appName").execute(),await $.schema.alterTable("connections").renameColumn("app_id","appId").execute()}var mu0={};B0(mu0,{up:()=>oy6,down:()=>ry6});async function oy6($){await $.schema.createTable("organization_settings_new").addColumn("organizationId","text",(Z)=>Z.primaryKey().references("organization.id").onDelete("cascade")).addColumn("createdAt","text",(Z)=>Z.notNull()).addColumn("updatedAt","text",(Z)=>Z.notNull()).execute(),await $.insertInto("organization_settings_new").columns(["organizationId","createdAt","updatedAt"]).expression((Z)=>Z.selectFrom("organization_settings").select(["organizationId","createdAt","updatedAt"])).execute(),await $.schema.dropTable("organization_settings").execute(),await $.schema.alterTable("organization_settings_new").renameTo("organization_settings").execute()}async function ry6($){await $.schema.createTable("organization_settings_new").addColumn("organizationId","text",(Z)=>Z.primaryKey().references("organization.id").onDelete("cascade")).addColumn("modelsBindingConnectionId","text",(Z)=>Z.references("connections.id").onDelete("set null")).addColumn("createdAt","text",(Z)=>Z.notNull()).addColumn("updatedAt","text",(Z)=>Z.notNull()).execute(),await $.insertInto("organization_settings_new").columns(["organizationId","modelsBindingConnectionId","createdAt","updatedAt"]).expression((Z)=>Z.selectFrom("organization_settings").select(["organizationId",Z.val(null).as("modelsBindingConnectionId"),"createdAt","updatedAt"])).execute(),await $.schema.dropTable("organization_settings").execute(),await $.schema.alterTable("organization_settings_new").renameTo("organization_settings").execute()}var iu0={};B0(iu0,{up:()=>ay6,down:()=>sy6});async function ay6($){await $.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await $.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function sy6($){await $.schema.alterTable("connections").dropColumn("configuration_state").execute(),await $.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var nu0={};B0(nu0,{up:()=>$g6,down:()=>Zg6});import{sql as ey6}from"kysely";async function $g6($){await $.schema.alterTable("organization_settings").addColumn("sidebar_items",ey6`text`).execute()}async function Zg6($){await $.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var Li1=()=>{};var pu0={};B0(pu0,{up:()=>Xg6,down:()=>Qg6});async function Xg6($){await $.schema.createTable("monitoring_logs").addColumn("id","text",(Z)=>Z.primaryKey()).addColumn("organization_id","text",(Z)=>Z.notNull().references("organization.id").onDelete("cascade")).addColumn("connection_id","text",(Z)=>Z.notNull().references("connections.id").onDelete("cascade")).addColumn("connection_title","text",(Z)=>Z.notNull()).addColumn("tool_name","text",(Z)=>Z.notNull()).addColumn("input","text",(Z)=>Z.notNull()).addColumn("output","text",(Z)=>Z.notNull()).addColumn("is_error","integer",(Z)=>Z.notNull()).addColumn("error_message","text").addColumn("duration_ms","integer",(Z)=>Z.notNull()).addColumn("timestamp","text",(Z)=>Z.notNull()).addColumn("user_id","text").addColumn("request_id","text",(Z)=>Z.notNull()).execute(),await $.schema.createIndex("monitoring_logs_org_timestamp").on("monitoring_logs").columns(["organization_id","timestamp"]).execute(),await $.schema.createIndex("monitoring_logs_connection_timestamp").on("monitoring_logs").columns(["connection_id","timestamp"]).execute(),await $.schema.createIndex("monitoring_logs_is_error").on("monitoring_logs").columns(["organization_id","is_error","timestamp"]).execute()}async function Qg6($){await $.schema.dropIndex("monitoring_logs_is_error").execute(),await $.schema.dropIndex("monitoring_logs_connection_timestamp").execute(),await $.schema.dropIndex("monitoring_logs_org_timestamp").execute(),await $.schema.dropTable("monitoring_logs").execute()}var tu0={};B0(tu0,{up:()=>Yg6,down:()=>Gg6});import{sql as mm}from"kysely";async function Yg6($){await $.schema.createTable("events").addColumn("id","text",(Z)=>Z.primaryKey()).addColumn("organization_id","text",(Z)=>Z.notNull().references("organization.id").onDelete("cascade")).addColumn("type","text",(Z)=>Z.notNull()).addColumn("source","text",(Z)=>Z.notNull()).addColumn("specversion","text",(Z)=>Z.notNull().defaultTo("1.0")).addColumn("subject","text").addColumn("time","text",(Z)=>Z.notNull()).addColumn("datacontenttype","text",(Z)=>Z.notNull().defaultTo("application/json")).addColumn("dataschema","text").addColumn("data","text").addColumn("cron","varchar(255)").addColumn("status","text",(Z)=>Z.notNull().defaultTo("pending")).addColumn("attempts","integer",(Z)=>Z.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("next_retry_at","text").addColumn("created_at","text",(Z)=>Z.notNull().defaultTo(mm`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(Z)=>Z.notNull().defaultTo(mm`CURRENT_TIMESTAMP`)).execute(),await $.schema.createTable("event_subscriptions").addColumn("id","text",(Z)=>Z.primaryKey()).addColumn("organization_id","text",(Z)=>Z.notNull().references("organization.id").onDelete("cascade")).addColumn("connection_id","text",(Z)=>Z.notNull().references("connections.id").onDelete("cascade")).addColumn("publisher","text").addColumn("event_type","text",(Z)=>Z.notNull()).addColumn("filter","text").addColumn("enabled","integer",(Z)=>Z.notNull().defaultTo(1)).addColumn("created_at","text",(Z)=>Z.notNull().defaultTo(mm`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(Z)=>Z.notNull().defaultTo(mm`CURRENT_TIMESTAMP`)).execute(),await $.schema.createTable("event_deliveries").addColumn("id","text",(Z)=>Z.primaryKey()).addColumn("event_id","text",(Z)=>Z.notNull()).addColumn("subscription_id","text",(Z)=>Z.notNull().references("event_subscriptions.id").onDelete("cascade")).addColumn("status","text",(Z)=>Z.notNull().defaultTo("pending")).addColumn("attempts","integer",(Z)=>Z.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("delivered_at","text").addColumn("next_retry_at","text").addColumn("created_at","text",(Z)=>Z.notNull().defaultTo(mm`CURRENT_TIMESTAMP`)).execute(),await $.schema.createIndex("idx_events_org_status").on("events").columns(["organization_id","status"]).execute(),await $.schema.createIndex("idx_events_source").on("events").columns(["source"]).execute(),await $.schema.createIndex("idx_events_type").on("events").columns(["type"]).execute(),await $.schema.createIndex("idx_events_retry").on("events").columns(["status","next_retry_at"]).execute(),await $.schema.createIndex("idx_subscriptions_connection").on("event_subscriptions").columns(["connection_id"]).execute(),await $.schema.createIndex("idx_subscriptions_type").on("event_subscriptions").columns(["event_type"]).execute(),await $.schema.createIndex("idx_subscriptions_org_enabled").on("event_subscriptions").columns(["organization_id","enabled"]).execute(),await $.schema.createIndex("idx_subscriptions_unique").on("event_subscriptions").columns(["connection_id","event_type","publisher","filter"]).unique().execute(),await $.schema.createIndex("idx_deliveries_event").on("event_deliveries").columns(["event_id"]).execute(),await $.schema.createIndex("idx_deliveries_subscription_status").on("event_deliveries").columns(["subscription_id","status"]).execute(),await $.schema.createIndex("idx_deliveries_retry").on("event_deliveries").columns(["status","next_retry_at"]).execute()}async function Gg6($){await $.schema.dropIndex("idx_deliveries_retry").execute(),await $.schema.dropIndex("idx_deliveries_subscription_status").execute(),await $.schema.dropIndex("idx_deliveries_event").execute(),await $.schema.dropIndex("idx_subscriptions_unique").execute(),await $.schema.dropIndex("idx_subscriptions_org_enabled").execute(),await $.schema.dropIndex("idx_subscriptions_type").execute(),await $.schema.dropIndex("idx_subscriptions_connection").execute(),await $.schema.dropIndex("idx_events_retry").execute(),await $.schema.dropIndex("idx_events_type").execute(),await $.schema.dropIndex("idx_events_source").execute(),await $.schema.dropIndex("idx_events_org_status").execute(),await $.schema.dropTable("event_deliveries").execute(),await $.schema.dropTable("event_subscriptions").execute(),await $.schema.dropTable("events").execute()}var Di1=()=>{};var ou0={};B0(ou0,{up:()=>Kg6,down:()=>Wg6});import{sql as Jg6}from"kysely";async function Kg6($){await $.schema.dropTable("audit_logs").ifExists().execute()}async function Wg6($){await $.schema.createTable("audit_logs").ifNotExists().addColumn("id","text",(Z)=>Z.primaryKey()).addColumn("organizationId","text").addColumn("userId","text",(Z)=>Z.references("user.id").onDelete("set null")).addColumn("connectionId","text",(Z)=>Z.references("connections.id").onDelete("set null")).addColumn("toolName","text",(Z)=>Z.notNull()).addColumn("allowed","integer",(Z)=>Z.notNull()).addColumn("duration","integer").addColumn("timestamp","text",(Z)=>Z.notNull().defaultTo(Jg6`CURRENT_TIMESTAMP`)).addColumn("requestMetadata","text").execute(),await $.schema.createIndex("idx_audit_logs_organizationId").on("audit_logs").column("organizationId").execute(),await $.schema.createIndex("idx_audit_logs_userId").on("audit_logs").column("userId").execute(),await $.schema.createIndex("idx_audit_logs_timestamp").on("audit_logs").column("timestamp").execute()}var Ei1=()=>{};var ru0={};B0(ru0,{up:()=>Hg6,down:()=>Ug6});import{sql as z90}from"kysely";async function Hg6($){await $.schema.createTable("gateways").addColumn("id","text",(Z)=>Z.primaryKey()).addColumn("organization_id","text",(Z)=>Z.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(Z)=>Z.notNull()).addColumn("description","text").addColumn("tool_selection_strategy","text").addColumn("status","text",(Z)=>Z.notNull().defaultTo("active")).addColumn("is_default","integer",(Z)=>Z.notNull().defaultTo(0)).addColumn("created_at","text",(Z)=>Z.notNull().defaultTo(z90`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(Z)=>Z.notNull().defaultTo(z90`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(Z)=>Z.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await $.schema.createTable("gateway_connections").addColumn("id","text",(Z)=>Z.primaryKey()).addColumn("gateway_id","text",(Z)=>Z.notNull().references("gateways.id").onDelete("cascade")).addColumn("connection_id","text",(Z)=>Z.notNull().references("connections.id").onDelete("cascade")).addColumn("selected_tools","text").addColumn("created_at","text",(Z)=>Z.notNull().defaultTo(z90`CURRENT_TIMESTAMP`)).execute(),await $.schema.createIndex("idx_gateways_org").on("gateways").columns(["organization_id"]).execute(),await $.schema.createIndex("idx_gateways_org_status").on("gateways").columns(["organization_id","status"]).execute(),await z90`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute($),await $.schema.createIndex("idx_gateway_connections_gateway").on("gateway_connections").columns(["gateway_id"]).execute(),await $.schema.createIndex("idx_gateway_connections_connection").on("gateway_connections").columns(["connection_id"]).execute(),await $.schema.createIndex("idx_gateway_connections_unique").on("gateway_connections").columns(["gateway_id","connection_id"]).unique().execute()}async function Ug6($){await $.schema.dropIndex("idx_gateway_connections_unique").execute(),await $.schema.dropIndex("idx_gateway_connections_connection").execute(),await $.schema.dropIndex("idx_gateway_connections_gateway").execute(),await $.schema.dropIndex("idx_gateways_default_per_org").execute(),await $.schema.dropIndex("idx_gateways_org_status").execute(),await $.schema.dropIndex("idx_gateways_org").execute(),await $.schema.dropTable("gateway_connections").execute(),await $.schema.dropTable("gateways").execute()}var zi1=()=>{};var au0={};B0(au0,{up:()=>Ng6,down:()=>Fg6});async function Ng6($){await $.schema.alterTable("gateways").addColumn("icon","text").execute()}async function Fg6($){await $.schema.alterTable("gateways").dropColumn("icon").execute()}var su0={};B0(su0,{up:()=>wg6,down:()=>Bg6});import{sql as j90}from"kysely";async function wg6($){await $.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(Z)=>Z.notNull().defaultTo("inclusion")).execute(),await j90`
|
|
180
180
|
UPDATE gateways
|
|
181
181
|
SET tool_selection_mode = CASE
|
|
182
182
|
WHEN tool_selection_strategy = 'exclusion' THEN 'exclusion'
|
|
@@ -1332,7 +1332,7 @@ Usage: deco services <up|down|status>`),process.exit(1)}}var vd1=O(()=>{px()});f
|
|
|
1332
1332
|
`.execute($);if(Number(W.rows[0]?.cnt)===0){console.warn(`Failed to migrate ${J}/${K}, keeping in old table`);continue}}await Pb`
|
|
1333
1333
|
DELETE FROM kysely_migration WHERE name = ${X}
|
|
1334
1334
|
`.execute($)}}async function ap1($){await pm6($),await tm6($);let Z=new op1({db:$,provider:{getMigrations:()=>Promise.resolve(Om0)}}),{error:X,results:Q}=await Z.migrateToLatest(),Y=0;if(Q?.forEach((G)=>{if(G.status==="Success")Y++;else if(G.status==="Error")console.error(`Failed to execute migration "${G.migrationName}"`)}),X)throw console.error("Failed to migrate"),console.error(X),X;return Y}async function om6($){let{keepOpen:Z=!1,database:X,skipBetterAuth:Q=!1}=$??{},Y="skipped";if(!Q&&!X)Y=await hu0();let G=X??N6(),J=async()=>{if(!Z&&!X)await Tw(G).catch((K)=>{console.warn("Warning: Error closing database:",K)})};try{let K=await ap1(G.db);return await J(),{betterAuth:Y,kysely:K}}catch(K){throw await J(),K}}async function rm6(){let $=N6(),Z=new op1({db:$.db,provider:{getMigrations:()=>Promise.resolve(Om0)}}),{error:X,results:Q}=await Z.migrateDown();if(Q?.forEach((Y)=>{if(Y.status==="Success")console.log(`\u2705 Migration "${Y.migrationName}" rolled back successfully`);else if(Y.status==="Error")console.error(`\u274C Failed to rollback migration "${Y.migrationName}"`)}),X)throw console.error("Failed to rollback migration"),console.error(X),X}var ep1=O(()=>{tp1();uu0();e7()});async function h90($){let Z={...process.env},X=_10($,Z);console.log(wB1(X.settings.encryptionKey));let Q=X.settings.betterAuthSecret||(X.settings.localMode?Ui1(X.settings.dataDir):""),{ensureServices:Y}=await Promise.resolve().then(() => (o50(),t50)),{outputs:G,services:J}=await Y({home:X.settings.dataDir,externalDatabaseUrl:X.externalDatabaseUrl,externalNatsUrl:X.externalNatsUrl});if(!X.skipMigrations){let{migrateBetterAuth:W}=await Promise.resolve().then(() => (uu0(),Fi1));await W(G.databaseUrl);let{createDatabase:H}=await Promise.resolve().then(() => (e7(),Vm1)),{migrateToLatest:U}=await Promise.resolve().then(() => (ep1(),sp1)),N=H(G.databaseUrl);await U({keepOpen:!0,database:N,skipBetterAuth:!0})}let K={...X.settings,betterAuthSecret:Q,databaseUrl:G.databaseUrl,natsUrls:G.natsUrls,...G.s3?{s3Endpoint:G.s3.endpoint,s3Bucket:G.s3.bucket,s3AccessKeyId:G.s3.accessKeyId,s3SecretAccessKey:G.s3.secretAccessKey,s3ForcePathStyle:G.s3.forcePathStyle}:{},...G.natsTunnel?{natsPublicUrl:G.natsTunnel.publicUrl,natsAccountJwt:G.natsTunnel.accountJwt,natsAccountSigningKey:G.natsTunnel.accountSigningKey,natsOperatorJwt:G.natsTunnel.operatorJwt,natsTunnelPublicEnabled:!0,natsCredsPath:G.natsTunnel.credsPath}:{}};return xd1(K),{settings:K,services:J.map((W)=>({name:W.name==="PostgreSQL"?"Postgres":W.name,port:W.port})),managedServiceNames:J.filter((W)=>W.owner==="managed").map((W)=>W.name)}}var Lm0=O(()=>{px();Ni1();k8()});var Xt1={};B0(Xt1,{updateService:()=>GE,subscribeCliState:()=>zm0,setTuiConsoleIntercepted:()=>u90,setServerUrl:()=>Xi,setMigrationsDone:()=>Zi,setDevMode:()=>em6,resetCliStateForTests:()=>am6,isTuiConsoleIntercepted:()=>c90,getCliState:()=>Em0,addLogEntry:()=>Vw});function $t1(){return{services:[{name:"Postgres",status:"pending",port:0},{name:"NATS",status:"pending",port:0}],migrationsStatus:"pending",serverUrl:null,logs:[]}}function am6(){bQ=$t1()}function sm6(){return[{name:"Postgres",status:"pending",port:0},{name:"NATS",status:"pending",port:0}]}function $i(){for(let $ of Dm0)$()}function Em0(){return bQ}function zm0($){return Dm0.add($),()=>Dm0.delete($)}function GE($){bQ={...bQ,services:bQ.services.map((Z)=>Z.name===$.name?$:Z)},$i()}function Zi(){bQ={...bQ,migrationsStatus:"done"},$i()}function Xi($){bQ={...bQ,serverUrl:$},$i()}function Vw($){let Z=[...bQ.logs,$];bQ={...bQ,logs:Z.length>500?Z.slice(-500):Z},$i()}function em6(){bQ={...bQ,services:[...sm6(),{name:"API",status:"pending",port:0},{name:"Vite",status:"pending",port:0}]},$i()}function u90($){Zt1=$}function c90(){return Zt1}var bQ,Dm0,Zt1=!1;var JE=O(()=>{bQ=$t1();Dm0=new Set});import{createServer as Qt1}from"net";function $i6($){return new Promise((Z)=>{let X=Qt1();X.once("error",()=>Z(!1)),X.listen($,"0.0.0.0",()=>{X.close(()=>Z(!0))})})}async function Qi($){if(await $i6($))return $;let Z=await new Promise((X,Q)=>{let Y=Qt1();Y.once("error",Q),Y.listen(0,"0.0.0.0",()=>{let G=Y.address(),J=typeof G==="object"&&G?G.port:0;Y.close(()=>X(J))})});return console.warn(`Port ${$} is in use, using port ${Z} instead.`),Z}var jm0=()=>{};function Yi($){return $.replace(/\x1b\[[0-9;]*m/g,"")}var Pm0={};B0(Pm0,{startDevServer:()=>Xi6});import{join as Zi6}from"path";function Yt1($){let Z=$.getReader(),X=new TextDecoder,Q="";function Y(){let G=Q.split(`
|
|
1335
|
-
`);Q=G.pop()??"";for(let J of G){let K=Yi(J).replace(/^\[\d+\]\s*/,"").trim();if(!K)continue;Vw({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:K})}}(async()=>{for(;;){let{done:G,value:J}=await Z.read();if(G)break;Q+=X.decode(J,{stream:!0}),Y()}if(Q.trim()){let G=Yi(Q).replace(/^\[\d+\]\s*/,"").trim();if(G)Vw({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:G})}})()}async function Xi6($){let{baseUrl:Z,noTui:X}=$,Q=process.env.HOST==="0.0.0.0"&&Boolean(process.env.PORT),Y=Q?process.env.PORT:$.vitePort,G=Z||`http://localhost:${Y}`,J=Q?await Qi(Number(Y)+1):await Qi(Number($.port)),{settings:K,services:W,managedServiceNames:H}=await h90({port:String(J),home:$.home,baseUrl:$.baseUrl,localMode:$.localMode,skipMigrations:$.skipMigrations,noTui:$.noTui,vitePort:$.vitePort});for(let L of W)GE({name:L.name,status:"ready",port:L.port});Zi();let U=Zi6(import.meta.dir,"..","..","..","..",".."),N=X===!0,F=Bun.spawn(["bun","run","dev:servers"],{cwd:U,env:{...process.env,PORT:String(K.port),VITE_PORT:String(Y),DATABASE_URL:K.databaseUrl,NATS_URL:K.natsUrls.join(","),NODE_ENV:K.nodeEnv,BASE_URL:G,DECOCMS_LOCAL_MODE:String(K.localMode),DECOCMS_HOME:K.dataDir,DATA_DIR:K.dataDir,DECO_CLI:"1",...K.betterAuthSecret?{BETTER_AUTH_SECRET:K.betterAuthSecret}:{},...K.s3Endpoint?{S3_ENDPOINT:K.s3Endpoint,S3_BUCKET:K.s3Bucket??"",S3_ACCESS_KEY_ID:K.s3AccessKeyId??"",S3_SECRET_ACCESS_KEY:K.s3SecretAccessKey??"",S3_FORCE_PATH_STYLE:String(K.s3ForcePathStyle)}:{},...K.natsPublicUrl&&K.natsAccountJwt&&K.natsAccountSigningKey?{NATS_PUBLIC_URL:K.natsPublicUrl,NATS_ACCOUNT_JWT:K.natsAccountJwt,NATS_ACCOUNT_SIGNING_KEY:K.natsAccountSigningKey,NATS_OPERATOR_JWT:K.natsOperatorJwt??"",NATS_TUNNEL_PUBLIC_ENABLED:"true",...K.natsCredsPath?{NATS_CREDS:K.natsCredsPath}:{}}:{}},stdio:["inherit",N?"inherit":"pipe",N?"inherit":"pipe"]});if(!N)Yt1(F.stdout),Yt1(F.stderr);Xi(G),GE({name:"Vite",status:"ready",port:Number(Y)}),GE({name:"API",status:"ready",port:Number(K.port)});let B=async(L)=>{if(F.kill(L),await F.exited,H.length>0){let{stopServices:D}=await Promise.resolve().then(() => (o50(),t50));await D(K.dataDir)}};return process.on("SIGINT",()=>B("SIGINT")),process.on("SIGTERM",()=>B("SIGTERM")),{port:Number(Y),process:F}}var Am0=O(()=>{Lm0();JE();jm0()});var l90;var Tm0=O(()=>{l90={name:"decocms",version:"4.217.7",description:"Deco CMS \u2014 Self-hostable MCP Gateway for managing AI connections and tools",author:"Deco team",repository:{type:"git",url:"git+https://github.com/decocms/studio.git",directory:"apps/api"},bugs:{url:"https://github.com/decocms/studio/issues"},type:"module",bin:{deco:"./dist/server/cli.js"},files:["dist/**/*"],scripts:{dev:"bun run migrate && bun run dev:server","dev:server":"bun run --cwd=../../packages/sandbox build && NODE_ENV=development bun --env-file=.env --hot run src/index.ts",build:"bun run build:server","build:server":"bun run scripts/bundle-server-script.ts --dist ./dist/server","generate:tool-contracts":"bun run scripts/generate-tool-contracts.ts","db:migrate":"bun run ./dist/server/migrate.js",check:"tsc --noEmit",start:"bun run ./dist/server/server.js",migrate:"bun run src/database/migrate.ts",test:"bun test src","better-auth:migrate":"bunx --bun @better-auth/cli migrate -y --config src/auth/index.ts",prepublishOnly:"bun run --cwd=../.. build:studio"},optionalDependencies:{"@duckdb/node-api":"^1.5.0-r.1"},dependencies:{"@ai-sdk/anthropic":"^3.0.85","@ai-sdk/google":"^3.0.83","@ai-sdk/openai":"^3.0.73","@anthropic-ai/sdk":"^0.105.0","@aws-sdk/client-s3":"^3.1013.0","@aws-sdk/client-sts":"^3.1013.0","@aws-sdk/lib-storage":"^3.1013.0","@aws-sdk/s3-request-presigner":"^3.1013.0","@clickhouse/client":"^1.8.1","@dbos-inc/dbos-sdk":"^4.21.6","@inkjs/ui":"^2.0.0","@nats-io/jetstream":"3.4.0","@nats-io/kv":"3.4.0","@nats-io/nats-core":"3.4.0","@nats-io/transport-node":"3.4.0","@openrouter/ai-sdk-provider":"^2.9.1","@opentelemetry/core":"^2.6.0","embedded-postgres":"^18.3.0-beta.16",ink:"^6.8.0",kysely:"^0.28.12","posthog-node":"^5.0.0",react:"^19.2.6","react-dom":"^19.2.6"},devDependencies:{"@ai-sdk/provider":"^3.0.10","@better-auth/sso":"1.4.1","@decocms/better-auth":"1.5.17","@decocms/bindings":"workspace:*","@decocms/mcp-utils":"workspace:*","@decocms/runtime":"workspace:*","@decocms/sandbox":"workspace:*","@decocms/shared":"workspace:*","@jitl/quickjs-wasmfile-release-sync":"0.31.0","@modelcontextprotocol/sdk":"1.29.0","@nats-io/jwt":"0.0.10-5","@opentelemetry/api":"^1.9.0","@opentelemetry/api-logs":"^0.211.0","@opentelemetry/exporter-logs-otlp-proto":"^0.211.0","@opentelemetry/exporter-prometheus":"^0.208.0","@opentelemetry/exporter-trace-otlp-proto":"^0.207.0","@opentelemetry/instrumentation-runtime-node":"^0.24.0","@opentelemetry/resources":"^2.6.0","@opentelemetry/sdk-logs":"^0.211.0","@opentelemetry/sdk-metrics":"^2.2.0","@opentelemetry/sdk-node":"^0.207.0","@opentelemetry/sdk-trace-base":"^2.5.0","@types/bun":"^1.3.1","@types/google.maps":"^3.65.2","@types/pg":"^8.15.6","@types/react-syntax-highlighter":"^15.5.13","@vercel/nft":"^1.1.1",ai:"^6.0.208","better-auth":"1.4.22",croner:"^9.1.0",degit:"^2.8.4",hono:"^4.10.7",jose:"^6.0.11",nanoid:"^5.1.6",pg:"^8.16.3",typescript:"^7.0.2",typescript5:"npm:typescript@^5.9.3",zod:"4.3.6"},homepage:"https://github.com/decocms/studio",keywords:["mcp","model-context-protocol","ai","gateway","self-hosted","tools"],license:"MIT",publishConfig:{access:"public"}}});import{Box as Yi6,Text as Gt1}from"ink";import{jsx as Gi6,jsxs as Jt1}from"react/jsx-runtime";function Kt1({version:$}){return Jt1(Yi6,{flexDirection:"column",marginTop:1,children:[L90.map((Z,X)=>Gi6(Gt1,{color:D90[X],children:Z},X)),Jt1(Gt1,{dimColor:!0,children:[" v",$]})]})}var Wt1=O(()=>{dm()});import{Box as KE,Text as kw}from"ink";import{Spinner as Ji6}from"@inkjs/ui";import{jsx as nY,jsxs as Ab}from"react/jsx-runtime";function Ht1({status:$}){if($==="pending")return nY(Ji6,{label:""});return nY(kw,{color:"green",children:"\u2713"})}function Ki6($){return`${$.name}: ${$.port||"...."}`}function Ut1({services:$,migrationsStatus:Z,home:X,serverUrl:Q}){return Ab(KE,{flexDirection:"column",paddingBottom:1,children:[nY(Kt1,{version:l90.version}),nY(KE,{marginBottom:1,children:nY(kw,{dimColor:!0,children:"\u2500".repeat(80)})}),nY(KE,{children:Ab(kw,{dimColor:!0,children:["Home: ",X]})}),Ab(KE,{gap:2,children:[$.map((Y)=>Ab(KE,{gap:1,children:[nY(kw,{children:Ki6(Y)}),nY(Ht1,{status:Y.status})]},Y.name)),Ab(KE,{gap:1,children:[nY(kw,{children:"Migrations"}),nY(Ht1,{status:Z})]})]}),nY(KE,{children:Q?Ab(kw,{children:["Open in browser: ",nY(kw,{color:"cyan",children:Q})]}):nY(kw,{dimColor:!0,children:"Starting..."})})]})}var Nt1=O(()=>{Tm0();Wt1()});import{Box as Wi6,Text as Gi}from"ink";import{jsx as Rm0,jsxs as Im0}from"react/jsx-runtime";function Hi6($){if($>=500)return"red";if($>=400)return"yellow";if($>=300)return"cyan";return"green"}function Ft1({logs:$}){return Rm0(Wi6,{flexDirection:"column",children:$.map((Z,X)=>{if(Z.rawLine)return Rm0(Gi,{dimColor:!0,children:Z.rawLine},X);let Q=Z.duration<1000?`${Z.duration}ms`:`${(Z.duration/1000).toFixed(1)}s`;return Im0(Gi,{children:[Im0(Gi,{dimColor:!0,children:[Z.method.padEnd(6)," ",Z.path.padEnd(30)," "]}),Rm0(Gi,{color:Hi6(Z.status),children:Z.status}),Im0(Gi,{dimColor:!0,children:[" ",Q.padStart(8)]})]},X)})})}var wt1=()=>{};var qm0={};B0(qm0,{App:()=>Fi6});import{Box as Ui6}from"ink";import{useSyncExternalStore as Ni6}from"react";import{jsx as Bt1,jsxs as wi6}from"react/jsx-runtime";function Fi6({home:$}){let Z=Ni6(zm0,Em0);return wi6(Ui6,{flexDirection:"column",children:[Bt1(Ut1,{services:Z.services,migrationsStatus:Z.migrationsStatus,home:$,serverUrl:Z.serverUrl}),Bt1(Ft1,{logs:Z.logs})]})}var Mm0=O(()=>{Nt1();wt1();JE()});var RJ="thread-gate",hU="decopilot-hosted-harness",X3="automations",Sw="background-tools",WE="task-board-github-reads";var Ot1="7";function Lt1($){return{name:"decocms",systemDatabaseUrl:$.systemDatabaseUrl,systemDatabaseSchemaName:"dbos",systemDatabasePoolSize:$.poolSize,runAdminServer:!1,executorID:$.executorID,applicationVersion:Ot1,...$.listenQueues!==void 0?{listenQueues:$.listenQueues}:{}}}var Dt1=()=>{};function Bi6(){let $=(process.env.BUN_OPTIONS??"").split(/\s+/).filter(Boolean);return[...process.argv.slice(1),...$]}function Vm0($,Z){for(let X=0;X<$.length;X++){let Q=$[X];if(Q===void 0)continue;if(Q===Z)return $[X+1];if(Q.startsWith(`${Z}=`))return Q.slice(Z.length+1)}return}function Et1(){let $=Bi6();if($.includes("--cpu-prof")){console.log(JSON.stringify({msg:"cpu-profiling-active",dir:Vm0($,"--cpu-prof-dir")??process.cwd(),name:Vm0($,"--cpu-prof-name"),markdown:$.includes("--cpu-prof-md"),intervalUs:Number(Vm0($,"--cpu-prof-interval")??1000),note:"profile is written on process exit"}));return}if(process.env.CPU_PROFILE)console.warn(JSON.stringify({msg:"cpu-profiling-requested-but-inactive",hint:'CPU profiling is a Bun launch flag. Set BUN_OPTIONS="--cpu-prof --cpu-prof-md --cpu-prof-dir=/tmp" before starting the process.'}))}function zt1(){if(process.env.HEAP_WATCH!=="1")return()=>{};let $=Number(process.env.HEAP_WATCH_INTERVAL_MS??60000),Z=async()=>{let X=ZE();if(!X)return;let Q={};try{let{heapStats:Y}=await import("bun:jsc"),G=Y(),J=Object.entries(G.objectTypeCounts).sort((K,W)=>W[1]-K[1]).slice(0,20);Q={objectCount:G.objectCount,heapSize:G.heapSize,top:Object.fromEntries(J)}}catch{}console.log(JSON.stringify({msg:"heap-watch",ts:new Date().toISOString(),uptimeS:Math.round(process.uptime()),rss:X.rss,heapUsed:X.heapUsed,heapTotal:X.heapTotal,external:X.external,arrayBuffers:X.arrayBuffers,...Q}))};return Z().catch(()=>{}),d90=setInterval(()=>void Z().catch(()=>{}),$),d90.unref?.(),process.on("SIGUSR2",()=>{try{let X=Bun.generateHeapSnapshot("v8"),Q=typeof X==="string"?X:JSON.stringify(X),Y=`/tmp/heap-${process.pid}-${Date.now()}.heapsnapshot`;Bun.write(Y,Q),console.log(JSON.stringify({msg:"heap-snapshot-written",path:Y}))}catch(X){console.error("[heap-watch] snapshot failed:",X)}}),()=>{if(d90)clearInterval(d90)}}var d90;var jt1=()=>{};import*as Oi6 from"bun:jsc";function Pt1(){if(process.env.STALL_WATCHDOG!=="1")return()=>{};let $=Number(process.env.STALL_WATCHDOG_MS??100),Z=Number(process.env.STALL_WATCHDOG_TICK_MS??50);try{Li6()}catch(G){return console.error("[stall-watchdog] failed to start sampling profiler:",G),()=>{}}let X,Q=performance.now()+Z,Y=()=>{let G=performance.now(),J=G-Q;Q=G+Z;let K=[];try{K=Di6()?.traces??[]}catch{}if(J>$&&K.length>0){let W=new Map;for(let U of K){let N=U.frames.find((B)=>B.sourceURL&&!/Unknown Executable/.test(B.category??""))??U.frames[0];if(!N)continue;let F=(N.sourceURL??"?").replace(/^.*\/node_modules\//,"node_modules/"),w=`${N.name??"?"} @ ${F}:${N.line??"?"}`;W.set(w,(W.get(w)??0)+1)}let H=[...W.entries()].sort((U,N)=>N[1]-U[1]).slice(0,8).map(([U,N])=>({frame:U,count:N}));console.warn(JSON.stringify({msg:"stall-stack",ts:new Date().toISOString(),lagMs:Math.round(J),samplesInWindow:K.length,top:H}))}X=setTimeout(Y,Z),X.unref?.()};return X=setTimeout(Y,Z),X.unref?.(),()=>{if(X)clearTimeout(X)}}var Li6,Di6;var At1=O(()=>{({startSamplingProfiler:Li6,samplingProfilerStackTraces:Di6}=Oi6)});function Tt1(){Et1();let $=[zt1(),jm1(),Pt1()];return()=>{for(let Z of $)Z()}}var Rt1=O(()=>{ku0();jt1();At1()});var HE=_((It1)=>{Object.defineProperty(It1,"__esModule",{value:!0});It1.RepublishHeaders=It1.DirectMsgHeaders=It1.JsHeaders=It1.AdvisoryKind=void 0;It1.isOrderedPushConsumerOptions=Ei6;It1.isPullConsumer=zi6;It1.isPushConsumer=ji6;It1.isBoundPushConsumerOptions=Pi6;function Ei6($){if($&&typeof $==="object")return"name_prefix"in $||"deliver_subject_prefix"in $||"filter_subjects"in $||"filter_subject"in $||"deliver_policy"in $||"opt_start_seq"in $||"opt_start_time"in $||"replay_policy"in $||"inactive_threshold"in $||"headers_only"in $||"deliver_prefix"in $;return!1}function zi6($){return $.isPullConsumer()}function ji6($){return $.isPushConsumer()}function Pi6($){if($&&typeof $==="object")return"deliver_subject"in $||"deliver_group"in $||"idle_heartbeat"in $;return!1}It1.AdvisoryKind={API:"api_audit",StreamAction:"stream_action",ConsumerAction:"consumer_action",SnapshotCreate:"snapshot_create",SnapshotComplete:"snapshot_complete",RestoreCreate:"restore_create",RestoreComplete:"restore_complete",MaxDeliver:"max_deliver",Terminated:"terminated",Ack:"consumer_ack",StreamLeaderElected:"stream_leader_elected",StreamQuorumLost:"stream_quorum_lost",ConsumerLeaderElected:"consumer_leader_elected",ConsumerQuorumLost:"consumer_quorum_lost"};It1.JsHeaders={StreamSourceHdr:"Nats-Stream-Source",LastConsumerSeqHdr:"Nats-Last-Consumer",LastStreamSeqHdr:"Nats-Last-Stream",ConsumerStalledHdr:"Nats-Consumer-Stalled",MessageSizeHdr:"Nats-Msg-Size",RollupHdr:"Nats-Rollup",RollupValueSubject:"sub",RollupValueAll:"all",PendingMessagesHdr:"Nats-Pending-Messages",PendingBytesHdr:"Nats-Pending-Bytes",RequiredApiLevel:"Nats-Required-Api-Level"};It1.DirectMsgHeaders={Stream:"Nats-Stream",Sequence:"Nats-Sequence",TimeStamp:"Nats-Time-Stamp",Subject:"Nats-Subject",LastSequence:"Nats-Last-Sequence",NumPending:"Nats-Num-Pending"};It1.RepublishHeaders={Stream:"Nats-Stream",Subject:"Nats-Subject",Sequence:"Nats-Sequence",LastSequence:"Nats-Last-Sequence",Size:"Nats-Msg-Size"}});var pY=_((Mt1)=>{Object.defineProperty(Mt1,"__esModule",{value:!0});Mt1.TD=Mt1.TE=Mt1.Empty=void 0;Mt1.encode=Si6;Mt1.decode=Ci6;Mt1.Empty=new Uint8Array(0);Mt1.TE=new TextEncoder;Mt1.TD=new TextDecoder;function ki6(...$){let Z=0;for(let Y=0;Y<$.length;Y++)Z+=$[Y].length;let X=new Uint8Array(Z),Q=0;for(let Y=0;Y<$.length;Y++)X.set($[Y],Q),Q+=$[Y].length;return X}function Si6(...$){let Z=[];for(let X=0;X<$.length;X++)Z.push(Mt1.TE.encode($[X]));if(Z.length===0)return Mt1.Empty;if(Z.length===1)return Z[0];return ki6(...Z)}function Ci6($){if(!$||$.length===0)return"";return Mt1.TD.decode($)}});var tY=_((St1)=>{Object.defineProperty(St1,"__esModule",{value:!0});St1.errors=St1.PermissionViolationError=St1.NoRespondersError=St1.TimeoutError=St1.RequestError=St1.ProtocolError=St1.ConnectionError=St1.DrainingConnectionError=St1.ClosedConnectionError=St1.AuthorizationError=St1.UserAuthenticationExpiredError=St1.InvalidOperationError=St1.InvalidArgumentError=St1.InvalidSubjectError=void 0;class Sm0 extends Error{constructor($,Z){super(`illegal subject: '${$}'`,Z);this.name="InvalidSubjectError"}}St1.InvalidSubjectError=Sm0;class m90 extends Error{constructor($,Z){super($,Z);this.name="InvalidArgumentError"}static format($,Z,X){if(Array.isArray(Z)&&Z.length>1)Z=Z[0];if(Array.isArray($))$=$.map((Q)=>`'${Q}'`),$=$.join(",");else $=`'${$}'`;return new m90(`${$} ${Z}`,X)}}St1.InvalidArgumentError=m90;class Cm0 extends Error{constructor($,Z){super($,Z);this.name="InvalidOperationError"}}St1.InvalidOperationError=Cm0;class i90 extends Error{constructor($,Z){super($,Z);this.name="UserAuthenticationExpiredError"}static parse($){if($.toLowerCase().indexOf("user authentication expired")!==-1)return new i90($);return null}}St1.UserAuthenticationExpiredError=i90;class n90 extends Error{constructor($,Z){super($,Z);this.name="AuthorizationError"}static parse($){let Z=["authorization violation","account authentication expired","authentication timeout"],X=$.toLowerCase();for(let Q=0;Q<Z.length;Q++)if(X.indexOf(Z[Q])!==-1)return new n90($);return null}}St1.AuthorizationError=n90;class _m0 extends Error{constructor(){super("closed connection");this.name="ClosedConnectionError"}}St1.ClosedConnectionError=_m0;class vm0 extends Error{constructor(){super("connection draining");this.name="DrainingConnectionError"}}St1.DrainingConnectionError=vm0;class xm0 extends Error{constructor($,Z){super($,Z);this.name="ConnectionError"}}St1.ConnectionError=xm0;class fm0 extends Error{constructor($,Z){super($,Z);this.name="ProtocolError"}}St1.ProtocolError=fm0;class bm0 extends Error{constructor($="",Z){super($,Z);this.name="RequestError"}isNoResponders(){return this.cause instanceof p90}}St1.RequestError=bm0;class ym0 extends Error{constructor($){super("timeout",$);this.name="TimeoutError"}}St1.TimeoutError=ym0;class p90 extends Error{subject;constructor($,Z){super(`no responders: '${$}'`,Z);this.subject=$,this.name="NoResponders"}}St1.NoRespondersError=p90;class t90 extends Error{operation;subject;queue;constructor($,Z,X,Q,Y){super($,Y);this.name="PermissionViolationError",this.operation=Z,this.subject=X,this.queue=Q}static parse($){if(($?$.toLowerCase():"").indexOf("permissions violation")===-1)return null;let X="publish",Q="",Y=void 0,G=$.match(/(Publish|Subscription) to "(\S+)"/);if(G){if(X=G[1].toLowerCase(),Q=G[2],X==="subscription"){let J=$.match(/using queue "(\S+)"/);if(J)Y=J[1]}}return new t90($,X,Q,Y)}}St1.PermissionViolationError=t90;St1.errors={AuthorizationError:n90,ClosedConnectionError:_m0,ConnectionError:xm0,DrainingConnectionError:vm0,InvalidArgumentError:m90,InvalidOperationError:Cm0,InvalidSubjectError:Sm0,NoRespondersError:p90,PermissionViolationError:t90,ProtocolError:fm0,RequestError:bm0,TimeoutError:ym0,UserAuthenticationExpiredError:i90}});var IJ=_((ft1)=>{Object.defineProperty(ft1,"__esModule",{value:!0});ft1.SimpleMutex=ft1.Perf=void 0;ft1.extend=ti6;ft1.render=oi6;ft1.timeout=ri6;ft1.delay=ai6;ft1.deadline=si6;ft1.deferred=hm0;ft1.debugDeferred=ei6;ft1.shuffle=$n6;ft1.collect=Zn6;ft1.jitter=xt1;ft1.backoff=Xn6;ft1.nanos=Qn6;ft1.millis=Yn6;ft1.randomToken=Kn6;var pi6=pY(),gm0=tY();function ti6($,...Z){for(let X=0;X<Z.length;X++){let Q=Z[X];Object.keys(Q).forEach(function(Y){$[Y]=Q[Y]})}return $}function oi6($){return pi6.TD.decode($).replace(/\n/g,"\u240A").replace(/\r/g,"\u240D")}function ri6($,Z=!0){let X=Z?new gm0.TimeoutError:null,Q,Y,G=new Promise((J,K)=>{Q={cancel:()=>{if(Y)clearTimeout(Y)}},Y=setTimeout(()=>{if(X===null)K(new gm0.TimeoutError);else K(X)},$)});return Object.assign(G,Q)}function ai6($=0){let Z,X=new Promise((Q)=>{let Y=setTimeout(()=>{Q()},$);Z={cancel:()=>{if(Y)clearTimeout(Y),Q()}}});return Object.assign(X,Z)}async function si6($,Z=1000){let X=hm0(),Q=setTimeout(()=>{X.reject(new gm0.TimeoutError)},Z);try{return await Promise.race([$,X])}finally{clearTimeout(Q)}}function hm0(){let $={},Z=new Promise((X,Q)=>{$={resolve:X,reject:Q}});return Object.assign(Z,$)}function ei6(){let $={},Z=new Promise((X,Q)=>{$={resolve:(Y)=>{console.trace("resolve",Y),X(Y)},reject:(Y)=>{console.trace("reject"),Q(Y)}}});return Object.assign(Z,$)}function $n6($){for(let Z=$.length-1;Z>0;Z--){let X=Math.floor(Math.random()*(Z+1));[$[Z],$[X]]=[$[X],$[Z]]}return $}async function Zn6($){let Z=[];for await(let X of $)Z.push(X);return Z}class _t1{timers;measures;constructor(){this.timers=new Map,this.measures=new Map}mark($){this.timers.set($,performance.now())}measure($,Z,X){let Q=this.timers.get(Z);if(Q===void 0)throw Error(`${Z} is not defined`);let Y=this.timers.get(X);if(Y===void 0)throw Error(`${X} is not defined`);this.measures.set($,Y-Q)}getEntries(){let $=[];return this.measures.forEach((Z,X)=>{$.push({name:X,duration:Z})}),$}}ft1.Perf=_t1;class vt1{max;current;waiting;constructor($=1){this.max=$,this.current=0,this.waiting=[]}lock(){if(this.current++,this.current<=this.max)return Promise.resolve();let $=hm0();return this.waiting.push($),$}unlock(){this.current--,this.waiting.pop()?.resolve()}}ft1.SimpleMutex=vt1;function xt1($){if($===0)return 0;return Math.floor($/2+Math.random()*$)}function Xn6($=[0,250,250,500,500,3000,5000]){if(!Array.isArray($))$=[0,250,250,500,500,3000,5000];let Z=$.length-1;return{backoff(X){return xt1(X>Z?$[Z]:$[X])}}}function Qn6($){return $*1e6}function Yn6($){return Math.floor($/1e6)}var Gn6="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",uU=new Uint8Array(62);for(let $=0;$<62;$++)uU[$]=Gn6.charCodeAt($);var Jn6=218340105584896;function Kn6(){let $=Math.floor(Math.random()*Jn6),Z=$%62,X=uU[Z];$=($-Z)/62,Z=$%62;let Q=uU[Z];$=($-Z)/62,Z=$%62;let Y=uU[Z];$=($-Z)/62,Z=$%62;let G=uU[Z];$=($-Z)/62,Z=$%62;let J=uU[Z];$=($-Z)/62,Z=$%62;let K=uU[Z];$=($-Z)/62,Z=$%62;let W=uU[Z];$=($-Z)/62;let H=uU[$];return String.fromCharCode(X,Q,Y,G,J,K,W,H)}});var dt1=_((ct1)=>{Object.defineProperty(ct1,"__esModule",{value:!0});ct1.nuid=ct1.NuidImpl=void 0;var Tn6="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",Cw=62,r90=12,ht1=10,yt1=33,Rn6=333,gt1=r90+ht1,cm0=new Uint8Array(Cw);for(let $=0;$<Cw;$++)cm0[$]=Tn6.charCodeAt($);var o90=4294967296,ut1=BigInt(Cw)**BigInt(ht1),Ji=Number(ut1/(1n<<32n)),um0=Number(ut1%(1n<<32n));function In6($){for(let Z=0;Z<$.length;Z++)$[Z]=Math.floor(Math.random()*256)}function qn6($){if(globalThis?.crypto?.getRandomValues)globalThis.crypto.getRandomValues($);else In6($)}class lm0{buf;cbuf;seqHi;seqLo;inc;inited;constructor(){this.buf=new Uint8Array(gt1),this.cbuf=new Uint8Array(r90),this.inited=!1}init(){this.inited=!0,this.setPre(),this.initSeqAndInc(),this.fillSeq()}initSeqAndInc(){let $=0;do this.seqHi=Math.floor(Math.random()*(Ji+1)),this.seqLo=Math.floor(Math.random()*o90);while($++<8&&this.seqHi===Ji&&this.seqLo>=um0);if(this.seqHi===Ji&&this.seqLo>=um0)this.seqLo=0;this.inc=Math.random()*(Rn6-yt1)+yt1|0}setPre(){qn6(this.cbuf);for(let $=0;$<r90;$++)this.buf[$]=cm0[this.cbuf[$]%Cw]}fillSeq(){let $=this.seqHi,Z=this.seqLo;for(let X=gt1-1;X>=r90;X--){let Q=Math.floor($/Cw),G=($-Q*Cw)*o90+Z,J=Math.floor(G/Cw),K=G-J*Cw;this.buf[X]=cm0[K],$=Q,Z=J}}next(){if(!this.inited)this.init();if(this.seqLo+=this.inc,this.seqLo>=o90)this.seqLo-=o90,this.seqHi+=1;if(this.seqHi>Ji||this.seqHi===Ji&&this.seqLo>=um0)this.setPre(),this.initSeqAndInc();this.fillSeq();let $=this.buf;return String.fromCharCode($[0],$[1],$[2],$[3],$[4],$[5],$[6],$[7],$[8],$[9],$[10],$[11],$[12],$[13],$[14],$[15],$[16],$[17],$[18],$[19],$[20],$[21])}reset(){this.init()}}ct1.NuidImpl=lm0;ct1.nuid=new lm0});var pt1=_((it1)=>{Object.defineProperty(it1,"__esModule",{value:!0});it1.nuid=it1.Nuid=void 0;var mt1=dt1();it1.Nuid=mt1.NuidImpl;it1.nuid=mt1.nuid});var s90=_((a90)=>{Object.defineProperty(a90,"__esModule",{value:!0});a90.nuid=a90.Nuid=void 0;var tt1=pt1();Object.defineProperty(a90,"Nuid",{enumerable:!0,get:function(){return tt1.Nuid}});Object.defineProperty(a90,"nuid",{enumerable:!0,get:function(){return tt1.nuid}})});var _w=_((ot1)=>{Object.defineProperty(ot1,"__esModule",{value:!0});ot1.DEFAULT_HOST=ot1.DEFAULT_PORT=ot1.Match=void 0;ot1.syncIterator=_n6;ot1.createInbox=vn6;var Sn6=s90(),Cn6=tY();ot1.Match={Exact:"exact",CanonicalMIME:"canonical",IgnoreCase:"insensitive"};function _n6($){let Z=$[Symbol.asyncIterator]();return{async next(){let X=await Z.next();if(X.done)return Promise.resolve(null);return Promise.resolve(X.value)}}}function vn6($=""){if($=$||"_INBOX",typeof $!=="string")throw TypeError("prefix must be a string");return $.split(".").forEach((Z)=>{if(Z==="*"||Z===">")throw Cn6.InvalidArgumentError.format("prefix",`cannot have wildcards ('${$}')`)}),`${$}.${Sn6.nuid.next()}`}ot1.DEFAULT_PORT=4222;ot1.DEFAULT_HOST="127.0.0.1"});var Ki=_((et1)=>{Object.defineProperty(et1,"__esModule",{value:!0});et1.DataBuffer=void 0;var at1=pY();class st1{buffers;byteLength;constructor(){this.buffers=[],this.byteLength=0}static concat(...$){let Z=0;for(let Y=0;Y<$.length;Y++)Z+=$[Y].length;let X=new Uint8Array(Z),Q=0;for(let Y=0;Y<$.length;Y++)X.set($[Y],Q),Q+=$[Y].length;return X}static fromAscii($){if(!$)$="";return at1.TE.encode($)}static toAscii($){return at1.TD.decode($)}reset(){this.buffers.length=0,this.byteLength=0}pack(){if(this.buffers.length>1){let $=new Uint8Array(this.byteLength),Z=0;for(let X=0;X<this.buffers.length;X++)$.set(this.buffers[X],Z),Z+=this.buffers[X].length;this.buffers.length=0,this.buffers.push($)}}shift(){if(this.buffers.length){let $=this.buffers.shift();if($)return this.byteLength-=$.length,$}return new Uint8Array(0)}drain($){if(this.buffers.length){this.pack();let Z=this.buffers.pop();if(Z){let X=this.byteLength;if($===void 0||$>X)$=X;let Q=Z.subarray(0,$);if(X>$)this.buffers.push(Z.subarray($));return this.byteLength=X-$,Q}}return new Uint8Array(0)}fill($,...Z){if($)this.buffers.push($),this.byteLength+=$.length;for(let X=0;X<Z.length;X++)if(Z[X]&&Z[X].length)this.buffers.push(Z[X]),this.byteLength+=Z[X].length}peek(){if(this.buffers.length)return this.pack(),this.buffers[0];return new Uint8Array(0)}size(){return this.byteLength}length(){return this.buffers.length}}et1.DataBuffer=st1});var UE=_((Xo1)=>{Object.defineProperty(Xo1,"__esModule",{value:!0});Xo1.LF=Xo1.CR=Xo1.CRLF=Xo1.CR_LF_LEN=Xo1.CR_LF=void 0;Xo1.setTransportFactory=cn6;Xo1.defaultPort=ln6;Xo1.getUrlParseFn=dn6;Xo1.newTransport=mn6;Xo1.getResolveFn=in6;Xo1.protoLen=Zo1;Xo1.extractProtocolMessage=nn6;var gn6=pY(),hn6=_w(),un6=Ki(),oY;function cn6($){oY=$}function ln6(){return oY!==void 0&&oY.defaultPort!==void 0?oY.defaultPort:hn6.DEFAULT_PORT}function dn6(){return oY!==void 0&&oY.urlParseFn?oY.urlParseFn:void 0}function mn6(){if(!oY||typeof oY.factory!=="function")throw Error("transport fn is not set");return oY.factory()}function in6(){return oY!==void 0&&oY.dnsResolveFn?oY.dnsResolveFn:void 0}Xo1.CR_LF=`\r
|
|
1335
|
+
`);Q=G.pop()??"";for(let J of G){let K=Yi(J).replace(/^\[\d+\]\s*/,"").trim();if(!K)continue;Vw({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:K})}}(async()=>{for(;;){let{done:G,value:J}=await Z.read();if(G)break;Q+=X.decode(J,{stream:!0}),Y()}if(Q.trim()){let G=Yi(Q).replace(/^\[\d+\]\s*/,"").trim();if(G)Vw({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:G})}})()}async function Xi6($){let{baseUrl:Z,noTui:X}=$,Q=process.env.HOST==="0.0.0.0"&&Boolean(process.env.PORT),Y=Q?process.env.PORT:$.vitePort,G=Z||`http://localhost:${Y}`,J=Q?await Qi(Number(Y)+1):await Qi(Number($.port)),{settings:K,services:W,managedServiceNames:H}=await h90({port:String(J),home:$.home,baseUrl:$.baseUrl,localMode:$.localMode,skipMigrations:$.skipMigrations,noTui:$.noTui,vitePort:$.vitePort});for(let L of W)GE({name:L.name,status:"ready",port:L.port});Zi();let U=Zi6(import.meta.dir,"..","..","..","..",".."),N=X===!0,F=Bun.spawn(["bun","run","dev:servers"],{cwd:U,env:{...process.env,PORT:String(K.port),VITE_PORT:String(Y),DATABASE_URL:K.databaseUrl,NATS_URL:K.natsUrls.join(","),NODE_ENV:K.nodeEnv,BASE_URL:G,DECOCMS_LOCAL_MODE:String(K.localMode),DECOCMS_HOME:K.dataDir,DATA_DIR:K.dataDir,DECO_CLI:"1",...K.betterAuthSecret?{BETTER_AUTH_SECRET:K.betterAuthSecret}:{},...K.s3Endpoint?{S3_ENDPOINT:K.s3Endpoint,S3_BUCKET:K.s3Bucket??"",S3_ACCESS_KEY_ID:K.s3AccessKeyId??"",S3_SECRET_ACCESS_KEY:K.s3SecretAccessKey??"",S3_FORCE_PATH_STYLE:String(K.s3ForcePathStyle)}:{},...K.natsPublicUrl&&K.natsAccountJwt&&K.natsAccountSigningKey?{NATS_PUBLIC_URL:K.natsPublicUrl,NATS_ACCOUNT_JWT:K.natsAccountJwt,NATS_ACCOUNT_SIGNING_KEY:K.natsAccountSigningKey,NATS_OPERATOR_JWT:K.natsOperatorJwt??"",NATS_TUNNEL_PUBLIC_ENABLED:"true",...K.natsCredsPath?{NATS_CREDS:K.natsCredsPath}:{}}:{}},stdio:["inherit",N?"inherit":"pipe",N?"inherit":"pipe"]});if(!N)Yt1(F.stdout),Yt1(F.stderr);Xi(G),GE({name:"Vite",status:"ready",port:Number(Y)}),GE({name:"API",status:"ready",port:Number(K.port)});let B=async(L)=>{if(F.kill(L),await F.exited,H.length>0){let{stopServices:D}=await Promise.resolve().then(() => (o50(),t50));await D(K.dataDir)}};return process.on("SIGINT",()=>B("SIGINT")),process.on("SIGTERM",()=>B("SIGTERM")),{port:Number(Y),process:F}}var Am0=O(()=>{Lm0();JE();jm0()});var l90;var Tm0=O(()=>{l90={name:"decocms",version:"4.217.9",description:"Deco CMS \u2014 Self-hostable MCP Gateway for managing AI connections and tools",author:"Deco team",repository:{type:"git",url:"git+https://github.com/decocms/studio.git",directory:"apps/api"},bugs:{url:"https://github.com/decocms/studio/issues"},type:"module",bin:{deco:"./dist/server/cli.js"},files:["dist/**/*"],scripts:{dev:"bun run migrate && bun run dev:server","dev:server":"bun run --cwd=../../packages/sandbox build && NODE_ENV=development bun --env-file=.env --hot run src/index.ts",build:"bun run build:server","build:server":"bun run scripts/bundle-server-script.ts --dist ./dist/server","generate:tool-contracts":"bun run scripts/generate-tool-contracts.ts","db:migrate":"bun run ./dist/server/migrate.js",check:"tsc --noEmit",start:"bun run ./dist/server/server.js",migrate:"bun run src/database/migrate.ts",test:"bun test src","better-auth:migrate":"bunx --bun @better-auth/cli migrate -y --config src/auth/index.ts",prepublishOnly:"bun run --cwd=../.. build:studio"},optionalDependencies:{"@duckdb/node-api":"^1.5.0-r.1"},dependencies:{"@ai-sdk/anthropic":"^3.0.85","@ai-sdk/google":"^3.0.83","@ai-sdk/openai":"^3.0.73","@anthropic-ai/sdk":"^0.105.0","@aws-sdk/client-s3":"^3.1013.0","@aws-sdk/client-sts":"^3.1013.0","@aws-sdk/lib-storage":"^3.1013.0","@aws-sdk/s3-request-presigner":"^3.1013.0","@clickhouse/client":"^1.8.1","@dbos-inc/dbos-sdk":"^4.21.6","@inkjs/ui":"^2.0.0","@nats-io/jetstream":"3.4.0","@nats-io/kv":"3.4.0","@nats-io/nats-core":"3.4.0","@nats-io/transport-node":"3.4.0","@openrouter/ai-sdk-provider":"^2.9.1","@opentelemetry/core":"^2.6.0","embedded-postgres":"^18.3.0-beta.16",ink:"^6.8.0",kysely:"^0.28.12","posthog-node":"^5.0.0",react:"^19.2.6","react-dom":"^19.2.6"},devDependencies:{"@ai-sdk/provider":"^3.0.10","@better-auth/sso":"1.4.1","@decocms/better-auth":"1.5.17","@decocms/bindings":"workspace:*","@decocms/mcp-utils":"workspace:*","@decocms/runtime":"workspace:*","@decocms/sandbox":"workspace:*","@decocms/shared":"workspace:*","@jitl/quickjs-wasmfile-release-sync":"0.31.0","@modelcontextprotocol/sdk":"1.29.0","@nats-io/jwt":"0.0.10-5","@opentelemetry/api":"^1.9.0","@opentelemetry/api-logs":"^0.211.0","@opentelemetry/exporter-logs-otlp-proto":"^0.211.0","@opentelemetry/exporter-prometheus":"^0.208.0","@opentelemetry/exporter-trace-otlp-proto":"^0.207.0","@opentelemetry/instrumentation-runtime-node":"^0.24.0","@opentelemetry/resources":"^2.6.0","@opentelemetry/sdk-logs":"^0.211.0","@opentelemetry/sdk-metrics":"^2.2.0","@opentelemetry/sdk-node":"^0.207.0","@opentelemetry/sdk-trace-base":"^2.5.0","@types/bun":"^1.3.1","@types/google.maps":"^3.65.2","@types/pg":"^8.15.6","@types/react-syntax-highlighter":"^15.5.13","@vercel/nft":"^1.1.1",ai:"^6.0.208","better-auth":"1.4.22",croner:"^9.1.0",degit:"^2.8.4",hono:"^4.10.7",jose:"^6.0.11",nanoid:"^5.1.6",pg:"^8.16.3",typescript:"^7.0.2",typescript5:"npm:typescript@^5.9.3",zod:"4.3.6"},homepage:"https://github.com/decocms/studio",keywords:["mcp","model-context-protocol","ai","gateway","self-hosted","tools"],license:"MIT",publishConfig:{access:"public"}}});import{Box as Yi6,Text as Gt1}from"ink";import{jsx as Gi6,jsxs as Jt1}from"react/jsx-runtime";function Kt1({version:$}){return Jt1(Yi6,{flexDirection:"column",marginTop:1,children:[L90.map((Z,X)=>Gi6(Gt1,{color:D90[X],children:Z},X)),Jt1(Gt1,{dimColor:!0,children:[" v",$]})]})}var Wt1=O(()=>{dm()});import{Box as KE,Text as kw}from"ink";import{Spinner as Ji6}from"@inkjs/ui";import{jsx as nY,jsxs as Ab}from"react/jsx-runtime";function Ht1({status:$}){if($==="pending")return nY(Ji6,{label:""});return nY(kw,{color:"green",children:"\u2713"})}function Ki6($){return`${$.name}: ${$.port||"...."}`}function Ut1({services:$,migrationsStatus:Z,home:X,serverUrl:Q}){return Ab(KE,{flexDirection:"column",paddingBottom:1,children:[nY(Kt1,{version:l90.version}),nY(KE,{marginBottom:1,children:nY(kw,{dimColor:!0,children:"\u2500".repeat(80)})}),nY(KE,{children:Ab(kw,{dimColor:!0,children:["Home: ",X]})}),Ab(KE,{gap:2,children:[$.map((Y)=>Ab(KE,{gap:1,children:[nY(kw,{children:Ki6(Y)}),nY(Ht1,{status:Y.status})]},Y.name)),Ab(KE,{gap:1,children:[nY(kw,{children:"Migrations"}),nY(Ht1,{status:Z})]})]}),nY(KE,{children:Q?Ab(kw,{children:["Open in browser: ",nY(kw,{color:"cyan",children:Q})]}):nY(kw,{dimColor:!0,children:"Starting..."})})]})}var Nt1=O(()=>{Tm0();Wt1()});import{Box as Wi6,Text as Gi}from"ink";import{jsx as Rm0,jsxs as Im0}from"react/jsx-runtime";function Hi6($){if($>=500)return"red";if($>=400)return"yellow";if($>=300)return"cyan";return"green"}function Ft1({logs:$}){return Rm0(Wi6,{flexDirection:"column",children:$.map((Z,X)=>{if(Z.rawLine)return Rm0(Gi,{dimColor:!0,children:Z.rawLine},X);let Q=Z.duration<1000?`${Z.duration}ms`:`${(Z.duration/1000).toFixed(1)}s`;return Im0(Gi,{children:[Im0(Gi,{dimColor:!0,children:[Z.method.padEnd(6)," ",Z.path.padEnd(30)," "]}),Rm0(Gi,{color:Hi6(Z.status),children:Z.status}),Im0(Gi,{dimColor:!0,children:[" ",Q.padStart(8)]})]},X)})})}var wt1=()=>{};var qm0={};B0(qm0,{App:()=>Fi6});import{Box as Ui6}from"ink";import{useSyncExternalStore as Ni6}from"react";import{jsx as Bt1,jsxs as wi6}from"react/jsx-runtime";function Fi6({home:$}){let Z=Ni6(zm0,Em0);return wi6(Ui6,{flexDirection:"column",children:[Bt1(Ut1,{services:Z.services,migrationsStatus:Z.migrationsStatus,home:$,serverUrl:Z.serverUrl}),Bt1(Ft1,{logs:Z.logs})]})}var Mm0=O(()=>{Nt1();wt1();JE()});var RJ="thread-gate",hU="decopilot-hosted-harness",X3="automations",Sw="background-tools",WE="task-board-github-reads";var Ot1="7";function Lt1($){return{name:"decocms",systemDatabaseUrl:$.systemDatabaseUrl,systemDatabaseSchemaName:"dbos",systemDatabasePoolSize:$.poolSize,runAdminServer:!1,executorID:$.executorID,applicationVersion:Ot1,...$.listenQueues!==void 0?{listenQueues:$.listenQueues}:{}}}var Dt1=()=>{};function Bi6(){let $=(process.env.BUN_OPTIONS??"").split(/\s+/).filter(Boolean);return[...process.argv.slice(1),...$]}function Vm0($,Z){for(let X=0;X<$.length;X++){let Q=$[X];if(Q===void 0)continue;if(Q===Z)return $[X+1];if(Q.startsWith(`${Z}=`))return Q.slice(Z.length+1)}return}function Et1(){let $=Bi6();if($.includes("--cpu-prof")){console.log(JSON.stringify({msg:"cpu-profiling-active",dir:Vm0($,"--cpu-prof-dir")??process.cwd(),name:Vm0($,"--cpu-prof-name"),markdown:$.includes("--cpu-prof-md"),intervalUs:Number(Vm0($,"--cpu-prof-interval")??1000),note:"profile is written on process exit"}));return}if(process.env.CPU_PROFILE)console.warn(JSON.stringify({msg:"cpu-profiling-requested-but-inactive",hint:'CPU profiling is a Bun launch flag. Set BUN_OPTIONS="--cpu-prof --cpu-prof-md --cpu-prof-dir=/tmp" before starting the process.'}))}function zt1(){if(process.env.HEAP_WATCH!=="1")return()=>{};let $=Number(process.env.HEAP_WATCH_INTERVAL_MS??60000),Z=async()=>{let X=ZE();if(!X)return;let Q={};try{let{heapStats:Y}=await import("bun:jsc"),G=Y(),J=Object.entries(G.objectTypeCounts).sort((K,W)=>W[1]-K[1]).slice(0,20);Q={objectCount:G.objectCount,heapSize:G.heapSize,top:Object.fromEntries(J)}}catch{}console.log(JSON.stringify({msg:"heap-watch",ts:new Date().toISOString(),uptimeS:Math.round(process.uptime()),rss:X.rss,heapUsed:X.heapUsed,heapTotal:X.heapTotal,external:X.external,arrayBuffers:X.arrayBuffers,...Q}))};return Z().catch(()=>{}),d90=setInterval(()=>void Z().catch(()=>{}),$),d90.unref?.(),process.on("SIGUSR2",()=>{try{let X=Bun.generateHeapSnapshot("v8"),Q=typeof X==="string"?X:JSON.stringify(X),Y=`/tmp/heap-${process.pid}-${Date.now()}.heapsnapshot`;Bun.write(Y,Q),console.log(JSON.stringify({msg:"heap-snapshot-written",path:Y}))}catch(X){console.error("[heap-watch] snapshot failed:",X)}}),()=>{if(d90)clearInterval(d90)}}var d90;var jt1=()=>{};import*as Oi6 from"bun:jsc";function Pt1(){if(process.env.STALL_WATCHDOG!=="1")return()=>{};let $=Number(process.env.STALL_WATCHDOG_MS??100),Z=Number(process.env.STALL_WATCHDOG_TICK_MS??50);try{Li6()}catch(G){return console.error("[stall-watchdog] failed to start sampling profiler:",G),()=>{}}let X,Q=performance.now()+Z,Y=()=>{let G=performance.now(),J=G-Q;Q=G+Z;let K=[];try{K=Di6()?.traces??[]}catch{}if(J>$&&K.length>0){let W=new Map;for(let U of K){let N=U.frames.find((B)=>B.sourceURL&&!/Unknown Executable/.test(B.category??""))??U.frames[0];if(!N)continue;let F=(N.sourceURL??"?").replace(/^.*\/node_modules\//,"node_modules/"),w=`${N.name??"?"} @ ${F}:${N.line??"?"}`;W.set(w,(W.get(w)??0)+1)}let H=[...W.entries()].sort((U,N)=>N[1]-U[1]).slice(0,8).map(([U,N])=>({frame:U,count:N}));console.warn(JSON.stringify({msg:"stall-stack",ts:new Date().toISOString(),lagMs:Math.round(J),samplesInWindow:K.length,top:H}))}X=setTimeout(Y,Z),X.unref?.()};return X=setTimeout(Y,Z),X.unref?.(),()=>{if(X)clearTimeout(X)}}var Li6,Di6;var At1=O(()=>{({startSamplingProfiler:Li6,samplingProfilerStackTraces:Di6}=Oi6)});function Tt1(){Et1();let $=[zt1(),jm1(),Pt1()];return()=>{for(let Z of $)Z()}}var Rt1=O(()=>{ku0();jt1();At1()});var HE=_((It1)=>{Object.defineProperty(It1,"__esModule",{value:!0});It1.RepublishHeaders=It1.DirectMsgHeaders=It1.JsHeaders=It1.AdvisoryKind=void 0;It1.isOrderedPushConsumerOptions=Ei6;It1.isPullConsumer=zi6;It1.isPushConsumer=ji6;It1.isBoundPushConsumerOptions=Pi6;function Ei6($){if($&&typeof $==="object")return"name_prefix"in $||"deliver_subject_prefix"in $||"filter_subjects"in $||"filter_subject"in $||"deliver_policy"in $||"opt_start_seq"in $||"opt_start_time"in $||"replay_policy"in $||"inactive_threshold"in $||"headers_only"in $||"deliver_prefix"in $;return!1}function zi6($){return $.isPullConsumer()}function ji6($){return $.isPushConsumer()}function Pi6($){if($&&typeof $==="object")return"deliver_subject"in $||"deliver_group"in $||"idle_heartbeat"in $;return!1}It1.AdvisoryKind={API:"api_audit",StreamAction:"stream_action",ConsumerAction:"consumer_action",SnapshotCreate:"snapshot_create",SnapshotComplete:"snapshot_complete",RestoreCreate:"restore_create",RestoreComplete:"restore_complete",MaxDeliver:"max_deliver",Terminated:"terminated",Ack:"consumer_ack",StreamLeaderElected:"stream_leader_elected",StreamQuorumLost:"stream_quorum_lost",ConsumerLeaderElected:"consumer_leader_elected",ConsumerQuorumLost:"consumer_quorum_lost"};It1.JsHeaders={StreamSourceHdr:"Nats-Stream-Source",LastConsumerSeqHdr:"Nats-Last-Consumer",LastStreamSeqHdr:"Nats-Last-Stream",ConsumerStalledHdr:"Nats-Consumer-Stalled",MessageSizeHdr:"Nats-Msg-Size",RollupHdr:"Nats-Rollup",RollupValueSubject:"sub",RollupValueAll:"all",PendingMessagesHdr:"Nats-Pending-Messages",PendingBytesHdr:"Nats-Pending-Bytes",RequiredApiLevel:"Nats-Required-Api-Level"};It1.DirectMsgHeaders={Stream:"Nats-Stream",Sequence:"Nats-Sequence",TimeStamp:"Nats-Time-Stamp",Subject:"Nats-Subject",LastSequence:"Nats-Last-Sequence",NumPending:"Nats-Num-Pending"};It1.RepublishHeaders={Stream:"Nats-Stream",Subject:"Nats-Subject",Sequence:"Nats-Sequence",LastSequence:"Nats-Last-Sequence",Size:"Nats-Msg-Size"}});var pY=_((Mt1)=>{Object.defineProperty(Mt1,"__esModule",{value:!0});Mt1.TD=Mt1.TE=Mt1.Empty=void 0;Mt1.encode=Si6;Mt1.decode=Ci6;Mt1.Empty=new Uint8Array(0);Mt1.TE=new TextEncoder;Mt1.TD=new TextDecoder;function ki6(...$){let Z=0;for(let Y=0;Y<$.length;Y++)Z+=$[Y].length;let X=new Uint8Array(Z),Q=0;for(let Y=0;Y<$.length;Y++)X.set($[Y],Q),Q+=$[Y].length;return X}function Si6(...$){let Z=[];for(let X=0;X<$.length;X++)Z.push(Mt1.TE.encode($[X]));if(Z.length===0)return Mt1.Empty;if(Z.length===1)return Z[0];return ki6(...Z)}function Ci6($){if(!$||$.length===0)return"";return Mt1.TD.decode($)}});var tY=_((St1)=>{Object.defineProperty(St1,"__esModule",{value:!0});St1.errors=St1.PermissionViolationError=St1.NoRespondersError=St1.TimeoutError=St1.RequestError=St1.ProtocolError=St1.ConnectionError=St1.DrainingConnectionError=St1.ClosedConnectionError=St1.AuthorizationError=St1.UserAuthenticationExpiredError=St1.InvalidOperationError=St1.InvalidArgumentError=St1.InvalidSubjectError=void 0;class Sm0 extends Error{constructor($,Z){super(`illegal subject: '${$}'`,Z);this.name="InvalidSubjectError"}}St1.InvalidSubjectError=Sm0;class m90 extends Error{constructor($,Z){super($,Z);this.name="InvalidArgumentError"}static format($,Z,X){if(Array.isArray(Z)&&Z.length>1)Z=Z[0];if(Array.isArray($))$=$.map((Q)=>`'${Q}'`),$=$.join(",");else $=`'${$}'`;return new m90(`${$} ${Z}`,X)}}St1.InvalidArgumentError=m90;class Cm0 extends Error{constructor($,Z){super($,Z);this.name="InvalidOperationError"}}St1.InvalidOperationError=Cm0;class i90 extends Error{constructor($,Z){super($,Z);this.name="UserAuthenticationExpiredError"}static parse($){if($.toLowerCase().indexOf("user authentication expired")!==-1)return new i90($);return null}}St1.UserAuthenticationExpiredError=i90;class n90 extends Error{constructor($,Z){super($,Z);this.name="AuthorizationError"}static parse($){let Z=["authorization violation","account authentication expired","authentication timeout"],X=$.toLowerCase();for(let Q=0;Q<Z.length;Q++)if(X.indexOf(Z[Q])!==-1)return new n90($);return null}}St1.AuthorizationError=n90;class _m0 extends Error{constructor(){super("closed connection");this.name="ClosedConnectionError"}}St1.ClosedConnectionError=_m0;class vm0 extends Error{constructor(){super("connection draining");this.name="DrainingConnectionError"}}St1.DrainingConnectionError=vm0;class xm0 extends Error{constructor($,Z){super($,Z);this.name="ConnectionError"}}St1.ConnectionError=xm0;class fm0 extends Error{constructor($,Z){super($,Z);this.name="ProtocolError"}}St1.ProtocolError=fm0;class bm0 extends Error{constructor($="",Z){super($,Z);this.name="RequestError"}isNoResponders(){return this.cause instanceof p90}}St1.RequestError=bm0;class ym0 extends Error{constructor($){super("timeout",$);this.name="TimeoutError"}}St1.TimeoutError=ym0;class p90 extends Error{subject;constructor($,Z){super(`no responders: '${$}'`,Z);this.subject=$,this.name="NoResponders"}}St1.NoRespondersError=p90;class t90 extends Error{operation;subject;queue;constructor($,Z,X,Q,Y){super($,Y);this.name="PermissionViolationError",this.operation=Z,this.subject=X,this.queue=Q}static parse($){if(($?$.toLowerCase():"").indexOf("permissions violation")===-1)return null;let X="publish",Q="",Y=void 0,G=$.match(/(Publish|Subscription) to "(\S+)"/);if(G){if(X=G[1].toLowerCase(),Q=G[2],X==="subscription"){let J=$.match(/using queue "(\S+)"/);if(J)Y=J[1]}}return new t90($,X,Q,Y)}}St1.PermissionViolationError=t90;St1.errors={AuthorizationError:n90,ClosedConnectionError:_m0,ConnectionError:xm0,DrainingConnectionError:vm0,InvalidArgumentError:m90,InvalidOperationError:Cm0,InvalidSubjectError:Sm0,NoRespondersError:p90,PermissionViolationError:t90,ProtocolError:fm0,RequestError:bm0,TimeoutError:ym0,UserAuthenticationExpiredError:i90}});var IJ=_((ft1)=>{Object.defineProperty(ft1,"__esModule",{value:!0});ft1.SimpleMutex=ft1.Perf=void 0;ft1.extend=ti6;ft1.render=oi6;ft1.timeout=ri6;ft1.delay=ai6;ft1.deadline=si6;ft1.deferred=hm0;ft1.debugDeferred=ei6;ft1.shuffle=$n6;ft1.collect=Zn6;ft1.jitter=xt1;ft1.backoff=Xn6;ft1.nanos=Qn6;ft1.millis=Yn6;ft1.randomToken=Kn6;var pi6=pY(),gm0=tY();function ti6($,...Z){for(let X=0;X<Z.length;X++){let Q=Z[X];Object.keys(Q).forEach(function(Y){$[Y]=Q[Y]})}return $}function oi6($){return pi6.TD.decode($).replace(/\n/g,"\u240A").replace(/\r/g,"\u240D")}function ri6($,Z=!0){let X=Z?new gm0.TimeoutError:null,Q,Y,G=new Promise((J,K)=>{Q={cancel:()=>{if(Y)clearTimeout(Y)}},Y=setTimeout(()=>{if(X===null)K(new gm0.TimeoutError);else K(X)},$)});return Object.assign(G,Q)}function ai6($=0){let Z,X=new Promise((Q)=>{let Y=setTimeout(()=>{Q()},$);Z={cancel:()=>{if(Y)clearTimeout(Y),Q()}}});return Object.assign(X,Z)}async function si6($,Z=1000){let X=hm0(),Q=setTimeout(()=>{X.reject(new gm0.TimeoutError)},Z);try{return await Promise.race([$,X])}finally{clearTimeout(Q)}}function hm0(){let $={},Z=new Promise((X,Q)=>{$={resolve:X,reject:Q}});return Object.assign(Z,$)}function ei6(){let $={},Z=new Promise((X,Q)=>{$={resolve:(Y)=>{console.trace("resolve",Y),X(Y)},reject:(Y)=>{console.trace("reject"),Q(Y)}}});return Object.assign(Z,$)}function $n6($){for(let Z=$.length-1;Z>0;Z--){let X=Math.floor(Math.random()*(Z+1));[$[Z],$[X]]=[$[X],$[Z]]}return $}async function Zn6($){let Z=[];for await(let X of $)Z.push(X);return Z}class _t1{timers;measures;constructor(){this.timers=new Map,this.measures=new Map}mark($){this.timers.set($,performance.now())}measure($,Z,X){let Q=this.timers.get(Z);if(Q===void 0)throw Error(`${Z} is not defined`);let Y=this.timers.get(X);if(Y===void 0)throw Error(`${X} is not defined`);this.measures.set($,Y-Q)}getEntries(){let $=[];return this.measures.forEach((Z,X)=>{$.push({name:X,duration:Z})}),$}}ft1.Perf=_t1;class vt1{max;current;waiting;constructor($=1){this.max=$,this.current=0,this.waiting=[]}lock(){if(this.current++,this.current<=this.max)return Promise.resolve();let $=hm0();return this.waiting.push($),$}unlock(){this.current--,this.waiting.pop()?.resolve()}}ft1.SimpleMutex=vt1;function xt1($){if($===0)return 0;return Math.floor($/2+Math.random()*$)}function Xn6($=[0,250,250,500,500,3000,5000]){if(!Array.isArray($))$=[0,250,250,500,500,3000,5000];let Z=$.length-1;return{backoff(X){return xt1(X>Z?$[Z]:$[X])}}}function Qn6($){return $*1e6}function Yn6($){return Math.floor($/1e6)}var Gn6="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",uU=new Uint8Array(62);for(let $=0;$<62;$++)uU[$]=Gn6.charCodeAt($);var Jn6=218340105584896;function Kn6(){let $=Math.floor(Math.random()*Jn6),Z=$%62,X=uU[Z];$=($-Z)/62,Z=$%62;let Q=uU[Z];$=($-Z)/62,Z=$%62;let Y=uU[Z];$=($-Z)/62,Z=$%62;let G=uU[Z];$=($-Z)/62,Z=$%62;let J=uU[Z];$=($-Z)/62,Z=$%62;let K=uU[Z];$=($-Z)/62,Z=$%62;let W=uU[Z];$=($-Z)/62;let H=uU[$];return String.fromCharCode(X,Q,Y,G,J,K,W,H)}});var dt1=_((ct1)=>{Object.defineProperty(ct1,"__esModule",{value:!0});ct1.nuid=ct1.NuidImpl=void 0;var Tn6="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",Cw=62,r90=12,ht1=10,yt1=33,Rn6=333,gt1=r90+ht1,cm0=new Uint8Array(Cw);for(let $=0;$<Cw;$++)cm0[$]=Tn6.charCodeAt($);var o90=4294967296,ut1=BigInt(Cw)**BigInt(ht1),Ji=Number(ut1/(1n<<32n)),um0=Number(ut1%(1n<<32n));function In6($){for(let Z=0;Z<$.length;Z++)$[Z]=Math.floor(Math.random()*256)}function qn6($){if(globalThis?.crypto?.getRandomValues)globalThis.crypto.getRandomValues($);else In6($)}class lm0{buf;cbuf;seqHi;seqLo;inc;inited;constructor(){this.buf=new Uint8Array(gt1),this.cbuf=new Uint8Array(r90),this.inited=!1}init(){this.inited=!0,this.setPre(),this.initSeqAndInc(),this.fillSeq()}initSeqAndInc(){let $=0;do this.seqHi=Math.floor(Math.random()*(Ji+1)),this.seqLo=Math.floor(Math.random()*o90);while($++<8&&this.seqHi===Ji&&this.seqLo>=um0);if(this.seqHi===Ji&&this.seqLo>=um0)this.seqLo=0;this.inc=Math.random()*(Rn6-yt1)+yt1|0}setPre(){qn6(this.cbuf);for(let $=0;$<r90;$++)this.buf[$]=cm0[this.cbuf[$]%Cw]}fillSeq(){let $=this.seqHi,Z=this.seqLo;for(let X=gt1-1;X>=r90;X--){let Q=Math.floor($/Cw),G=($-Q*Cw)*o90+Z,J=Math.floor(G/Cw),K=G-J*Cw;this.buf[X]=cm0[K],$=Q,Z=J}}next(){if(!this.inited)this.init();if(this.seqLo+=this.inc,this.seqLo>=o90)this.seqLo-=o90,this.seqHi+=1;if(this.seqHi>Ji||this.seqHi===Ji&&this.seqLo>=um0)this.setPre(),this.initSeqAndInc();this.fillSeq();let $=this.buf;return String.fromCharCode($[0],$[1],$[2],$[3],$[4],$[5],$[6],$[7],$[8],$[9],$[10],$[11],$[12],$[13],$[14],$[15],$[16],$[17],$[18],$[19],$[20],$[21])}reset(){this.init()}}ct1.NuidImpl=lm0;ct1.nuid=new lm0});var pt1=_((it1)=>{Object.defineProperty(it1,"__esModule",{value:!0});it1.nuid=it1.Nuid=void 0;var mt1=dt1();it1.Nuid=mt1.NuidImpl;it1.nuid=mt1.nuid});var s90=_((a90)=>{Object.defineProperty(a90,"__esModule",{value:!0});a90.nuid=a90.Nuid=void 0;var tt1=pt1();Object.defineProperty(a90,"Nuid",{enumerable:!0,get:function(){return tt1.Nuid}});Object.defineProperty(a90,"nuid",{enumerable:!0,get:function(){return tt1.nuid}})});var _w=_((ot1)=>{Object.defineProperty(ot1,"__esModule",{value:!0});ot1.DEFAULT_HOST=ot1.DEFAULT_PORT=ot1.Match=void 0;ot1.syncIterator=_n6;ot1.createInbox=vn6;var Sn6=s90(),Cn6=tY();ot1.Match={Exact:"exact",CanonicalMIME:"canonical",IgnoreCase:"insensitive"};function _n6($){let Z=$[Symbol.asyncIterator]();return{async next(){let X=await Z.next();if(X.done)return Promise.resolve(null);return Promise.resolve(X.value)}}}function vn6($=""){if($=$||"_INBOX",typeof $!=="string")throw TypeError("prefix must be a string");return $.split(".").forEach((Z)=>{if(Z==="*"||Z===">")throw Cn6.InvalidArgumentError.format("prefix",`cannot have wildcards ('${$}')`)}),`${$}.${Sn6.nuid.next()}`}ot1.DEFAULT_PORT=4222;ot1.DEFAULT_HOST="127.0.0.1"});var Ki=_((et1)=>{Object.defineProperty(et1,"__esModule",{value:!0});et1.DataBuffer=void 0;var at1=pY();class st1{buffers;byteLength;constructor(){this.buffers=[],this.byteLength=0}static concat(...$){let Z=0;for(let Y=0;Y<$.length;Y++)Z+=$[Y].length;let X=new Uint8Array(Z),Q=0;for(let Y=0;Y<$.length;Y++)X.set($[Y],Q),Q+=$[Y].length;return X}static fromAscii($){if(!$)$="";return at1.TE.encode($)}static toAscii($){return at1.TD.decode($)}reset(){this.buffers.length=0,this.byteLength=0}pack(){if(this.buffers.length>1){let $=new Uint8Array(this.byteLength),Z=0;for(let X=0;X<this.buffers.length;X++)$.set(this.buffers[X],Z),Z+=this.buffers[X].length;this.buffers.length=0,this.buffers.push($)}}shift(){if(this.buffers.length){let $=this.buffers.shift();if($)return this.byteLength-=$.length,$}return new Uint8Array(0)}drain($){if(this.buffers.length){this.pack();let Z=this.buffers.pop();if(Z){let X=this.byteLength;if($===void 0||$>X)$=X;let Q=Z.subarray(0,$);if(X>$)this.buffers.push(Z.subarray($));return this.byteLength=X-$,Q}}return new Uint8Array(0)}fill($,...Z){if($)this.buffers.push($),this.byteLength+=$.length;for(let X=0;X<Z.length;X++)if(Z[X]&&Z[X].length)this.buffers.push(Z[X]),this.byteLength+=Z[X].length}peek(){if(this.buffers.length)return this.pack(),this.buffers[0];return new Uint8Array(0)}size(){return this.byteLength}length(){return this.buffers.length}}et1.DataBuffer=st1});var UE=_((Xo1)=>{Object.defineProperty(Xo1,"__esModule",{value:!0});Xo1.LF=Xo1.CR=Xo1.CRLF=Xo1.CR_LF_LEN=Xo1.CR_LF=void 0;Xo1.setTransportFactory=cn6;Xo1.defaultPort=ln6;Xo1.getUrlParseFn=dn6;Xo1.newTransport=mn6;Xo1.getResolveFn=in6;Xo1.protoLen=Zo1;Xo1.extractProtocolMessage=nn6;var gn6=pY(),hn6=_w(),un6=Ki(),oY;function cn6($){oY=$}function ln6(){return oY!==void 0&&oY.defaultPort!==void 0?oY.defaultPort:hn6.DEFAULT_PORT}function dn6(){return oY!==void 0&&oY.urlParseFn?oY.urlParseFn:void 0}function mn6(){if(!oY||typeof oY.factory!=="function")throw Error("transport fn is not set");return oY.factory()}function in6(){return oY!==void 0&&oY.dnsResolveFn?oY.dnsResolveFn:void 0}Xo1.CR_LF=`\r
|
|
1336
1336
|
`;Xo1.CR_LF_LEN=Xo1.CR_LF.length;Xo1.CRLF=un6.DataBuffer.fromAscii(Xo1.CR_LF);Xo1.CR=new Uint8Array(Xo1.CRLF)[0];Xo1.LF=new Uint8Array(Xo1.CRLF)[1];function Zo1($){for(let Z=0;Z<$.length;Z++){let X=Z+1;if($.byteLength>X&&$[Z]===Xo1.CR&&$[X]===Xo1.LF)return X+1}return 0}function nn6($){let Z=Zo1($);if(Z>0){let Q=new Uint8Array($).slice(0,Z);return gn6.TD.decode(Q)}return""}});var pm0=_((Uo1)=>{Object.defineProperty(Uo1,"__esModule",{value:!0});Uo1.ipV4=Ko1;Uo1.isIP=Qp6;Uo1.parseIP=Wo1;var Wi=4,NE=16,e90=48,Jo1=57,Yo1=65,Zp6=70,Go1=97,Xp6=102,nm0=16777215;function Ko1($,Z,X,Q){let Y=new Uint8Array(NE);return[0,0,0,0,0,0,0,0,0,0,255,255].forEach((J,K)=>{Y[K]=J}),Y[12]=$,Y[13]=Z,Y[14]=X,Y[15]=Q,Y}function Qp6($){return Wo1($)!==void 0}function Wo1($){for(let Z=0;Z<$.length;Z++)switch($[Z]){case".":return Ho1($);case":":return Yp6($)}return}function Ho1($){let Z=new Uint8Array(Wi);for(let X=0;X<Wi;X++){if($.length===0)return;if(X>0){if($[0]!==".")return;$=$.substring(1)}let{n:Q,c:Y,ok:G}=Gp6($);if(!G||Q>255)return;$=$.substring(Y),Z[X]=Q}return Ko1(Z[0],Z[1],Z[2],Z[3])}function Yp6($){let Z=new Uint8Array(NE),X=-1;if($.length>=2&&$[0]===":"&&$[1]===":"){if(X=0,$=$.substring(2),$.length===0)return Z}let Q=0;while(Q<NE){let{n:Y,c:G,ok:J}=Jp6($);if(!J||Y>65535)return;if(G<$.length&&$[G]==="."){if(X<0&&Q!=NE-Wi)return;if(Q+Wi>NE)return;let K=Ho1($);if(K===void 0)return;Z[Q]=K[12],Z[Q+1]=K[13],Z[Q+2]=K[14],Z[Q+3]=K[15],$="",Q+=Wi;break}if(Z[Q]=Y>>8,Z[Q+1]=Y,Q+=2,$=$.substring(G),$.length===0)break;if($[0]!==":"||$.length==1)return;if($=$.substring(1),$[0]===":"){if(X>=0)return;if(X=Q,$=$.substring(1),$.length===0)break}}if($.length!==0)return;if(Q<NE){if(X<0)return;let Y=NE-Q;for(let G=Q-1;G>=X;G--)Z[G+Y]=Z[G];for(let G=X+Y-1;G>=X;G--)Z[G]=0}else if(X>=0)return;return Z}function Gp6($){let Z=0,X=0;for(Z=0;Z<$.length&&e90<=$.charCodeAt(Z)&&$.charCodeAt(Z)<=Jo1;Z++)if(X=X*10+($.charCodeAt(Z)-e90),X>=nm0)return{n:nm0,c:Z,ok:!1};if(Z===0)return{n:0,c:0,ok:!1};return{n:X,c:Z,ok:!0}}function Jp6($){let Z=0,X=0;for(X=0;X<$.length;X++){if(e90<=$.charCodeAt(X)&&$.charCodeAt(X)<=Jo1)Z*=16,Z+=$.charCodeAt(X)-e90;else if(Go1<=$.charCodeAt(X)&&$.charCodeAt(X)<=Xp6)Z*=16,Z+=$.charCodeAt(X)-Go1+10;else if(Yo1<=$.charCodeAt(X)&&$.charCodeAt(X)<=Zp6)Z*=16,Z+=$.charCodeAt(X)-Yo1+10;else break;if(Z>=nm0)return{n:0,c:X,ok:!1}}if(X===0)return{n:0,c:X,ok:!1};return{n:Z,c:X,ok:!0}}});var em0=_((Fo1)=>{Object.defineProperty(Fo1,"__esModule",{value:!0});Fo1.Servers=Fo1.ServerImpl=void 0;Fo1.isIPV4OrHostname=No1;Fo1.hostPort=sm0;var tm0=UE(),om0=IJ(),rm0=pm0(),Up6=_w(),Np6=tY();function No1($){if($.indexOf("[")!==-1||$.indexOf("::")!==-1)return!1;if($.indexOf(".")!==-1)return!0;if($.split(":").length<=2)return!0;return!1}function am0($){return!No1($)}function Fp6($){let X=$.toUpperCase().indexOf("::FFFF:");if(X!==-1&&$.indexOf(".")!==-1){let Q=$.substring(X+7);return Q=Q.replace("[",""),Q.replace("]","")}return $}function sm0($){if($=$.trim(),$.match(/^(.*:\/\/)(.*)/m))$=$.replace(/^(.*:\/\/)(.*)/gm,"$2");if($=Fp6($),am0($)&&$.indexOf("[")===-1)$=`[${$}]`;let Z=am0($)?$.match(/(]:)(\d+)/):$.match(/(:)(\d+)/),X=Z&&Z.length===3&&Z[1]&&Z[2]?parseInt(Z[2]):Up6.DEFAULT_PORT,Y=new URL(`${X===80?"https":"http"}://${$}`);Y.port=`${X}`;let G=Y.hostname;if(G.charAt(0)==="[")G=G.substring(1,G.length-1);return{listen:Y.host,hostname:G,port:X}}class Tb{src;listen;hostname;port;didConnect;reconnects;lastConnect;gossiped;tlsName;resolves;constructor($,Z=!1){this.src=$,this.tlsName="";let X=sm0($);this.listen=X.listen,this.hostname=X.hostname,this.port=X.port,this.didConnect=!1,this.reconnects=0,this.lastConnect=0,this.gossiped=Z}toString(){return this.listen}async resolve($){if(!$.fn||$.resolve===!1)return[this];let Z=[];if((0,rm0.isIP)(this.hostname))return[this];else{let X=await $.fn(this.hostname);if($.debug)console.log(`resolve ${this.hostname} = ${X.join(",")}`);for(let Q of X){let Y=this.port===80?"https":"http",G=new URL(`${Y}://${am0(Q)?"["+Q+"]":Q}`);G.port=`${this.port}`;let J=new Tb(G.host,!1);J.tlsName=this.hostname,Z.push(J)}}if($.randomize)(0,om0.shuffle)(Z);return this.resolves=Z,Z}}Fo1.ServerImpl=Tb;class $Z0{firstSelect;servers;currentServer;tlsName;randomize;constructor($={}){this.firstSelect=!0,this.servers=[],this.tlsName="",this.randomize=$.randomize||!1}setServers($){if(!Array.isArray($)||$.length===0)throw Np6.InvalidArgumentError.format("servers","cannot be empty");let Z=(0,tm0.getUrlParseFn)(),X=new Map;for(let Y of this.servers)X.set(Y.listen,Y);let Q=[];for(let Y of $){Y=Z?Z(Y):Y;let{listen:G}=sm0(Y),J=X.get(G);if(J)J.gossiped=!1,Q.push(J);else Q.push(new Tb(Y))}if(this.randomize)(0,om0.shuffle)(Q);if(this.servers=Q,this.currentServer===void 0||!Q.includes(this.currentServer))this.currentServer=Q[0],this.firstSelect=!0}clear(){this.servers.length=0}updateTLSName(){let $=this.getCurrentServer();if(!(0,rm0.isIP)($.hostname))this.tlsName=$.hostname,this.servers.forEach((Z)=>{if(Z.gossiped)Z.tlsName=this.tlsName})}getCurrentServer(){return this.currentServer}addServer($,Z=!1){let X=(0,tm0.getUrlParseFn)();$=X?X($):$;let Q=new Tb($,Z);if((0,rm0.isIP)(Q.hostname))Q.tlsName=this.tlsName;this.servers.push(Q)}selectServer(){if(this.firstSelect)return this.firstSelect=!1,this.currentServer;let $=this.servers.shift();if($)this.servers.push($),this.currentServer=$;return $}removeCurrentServer(){this.removeServer(this.currentServer)}removeServer($){if($){let Z=this.servers.indexOf($);this.servers.splice(Z,1)}}snapshot(){return $Z0.freezeAll(this.servers)}snapshotForHandler(){let $=this.currentServer;if(!$)return this.snapshot();let Z=this.servers.indexOf($);if(Z<=0)return this.snapshot();return $Z0.freezeAll([$,...this.servers.slice(0,Z),...this.servers.slice(Z+1)])}static freezeAll($){return $.map((Z)=>Object.freeze({hostname:Z.hostname,port:Z.port,listen:Z.listen,src:Z.src,tlsName:Z.tlsName,reconnects:Z.reconnects,lastConnect:Z.lastConnect,gossiped:Z.gossiped,didConnect:Z.didConnect}))}find($){return this.servers.find((Z)=>Z.listen===$.listen)}setCurrent($){this.currentServer=$}length(){return this.servers.length}next(){return this.servers.length?this.servers[0]:void 0}getServers(){return this.servers}update($,Z){let X=[],Q=[],Y=(0,tm0.getUrlParseFn)(),G=new Map;if($.connect_urls&&$.connect_urls.length>0)$.connect_urls.forEach((K)=>{K=Y?Y(K,Z):K;let W=new Tb(K,!0);G.set(K,W)});let J=[];if(this.servers.forEach((K,W)=>{let H=K.listen;if(K.gossiped&&this.currentServer.listen!==H&&G.get(H)===void 0)J.push(W);G.delete(H)}),J.reverse(),J.forEach((K)=>{let W=this.servers.splice(K,1);Q=Q.concat(W[0].listen)}),G.forEach((K,W)=>{this.servers.push(K),X.push(W)}),this.randomize&&X.length>0){let K=this.currentServer,W=this.servers.filter((H)=>H!==K);(0,om0.shuffle)(W),this.servers=K?[K,...W]:W}return{added:X,deleted:Q}}}Fo1.Servers=$Z0});var ZZ0=_((Lo1)=>{Object.defineProperty(Lo1,"__esModule",{value:!0});Lo1.QueuedIteratorImpl=void 0;var $i0=IJ(),Bo1=tY();class Oo1{inflight;processed;received;noIterator;iterClosed;done;signal;yields;filtered;pendingFiltered;ctx;_data;err;time;profile;yielding;didBreak;constructor(){this.inflight=0,this.filtered=0,this.pendingFiltered=0,this.processed=0,this.received=0,this.noIterator=!1,this.done=!1,this.signal=(0,$i0.deferred)(),this.yields=[],this.iterClosed=(0,$i0.deferred)(),this.time=0,this.yielding=!1,this.didBreak=!1,this.profile=!1}[Symbol.asyncIterator](){return this.iterate()}push($){if(this.done)return;if(this.didBreak){if(typeof $==="function"){let Z=$;try{Z()}catch(X){}}return}if(typeof $==="function")this.pendingFiltered++;this.yields.push($),this.signal.resolve()}async*iterate(){if(this.noIterator)throw new Bo1.InvalidOperationError("iterator cannot be used when a callback is registered");if(this.yielding)throw new Bo1.InvalidOperationError("iterator is already yielding");this.yielding=!0;try{while(!0){if(this.yields.length===0)await this.signal;if(this.err)throw this.err;let $=this.yields;this.inflight=$.length,this.yields=[];for(let Z=0;Z<$.length;Z++){if(typeof $[Z]==="function"){this.pendingFiltered--;let Q=$[Z];try{Q()}catch(Y){throw Y}if(this.err)throw this.err;continue}this.processed++,this.inflight--;let X=this.profile?Date.now():0;yield $[Z],this.time=this.profile?Date.now()-X:0}if(this.done)break;else if(this.yields.length===0)$.length=0,this.yields=$,this.signal=(0,$i0.deferred)()}}finally{this.didBreak=!0,this.stop()}}stop($){if(this.done)return;this.err=$,this.done=!0,this.signal.resolve(),this.iterClosed.resolve($)}getProcessed(){return this.noIterator?this.received:this.processed}getPending(){return this.yields.length+this.inflight-this.pendingFiltered}getReceived(){return this.received-this.filtered}}Lo1.QueuedIteratorImpl=Oo1});var Zi0=_((jo1)=>{Object.defineProperty(jo1,"__esModule",{value:!0});jo1.MuxSubscription=void 0;var Lp6=_w(),Eo1=tY();class zo1{baseInbox;reqs;constructor(){this.reqs=new Map}size(){return this.reqs.size}init($){return this.baseInbox=`${(0,Lp6.createInbox)($)}.`,this.baseInbox}add($){if(!isNaN($.received))$.received=0;this.reqs.set($.token,$)}get($){return this.reqs.get($)}cancel($){this.reqs.delete($.token)}getToken($){let Z=$.subject||"";if(Z.indexOf(this.baseInbox)===0)return Z.substring(this.baseInbox.length);return null}all(){return Array.from(this.reqs.values())}handleError($,Z){if($)return this.all().forEach((X)=>{X.resolver(Z,{})}),!0;if(Z.operation==="publish"){let X=this.all().find((Q)=>{return Q.requestSubject===Z.subject});if(X)return X.resolver(Z,{}),!0}return!1}dispatcher(){return($,Z)=>{let X=this.getToken(Z);if(X){let Q=this.get(X);if(Q){if($===null)$=Z?.data?.length===0&&Z.headers?.code===503?new Eo1.NoRespondersError(Q.requestSubject):null;Q.resolver($,Z)}}}}close(){let $=new Eo1.RequestError("connection closed");this.reqs.forEach((Z)=>{Z.resolver($,{})})}}jo1.MuxSubscription=zo1});var Xi0=_((To1)=>{Object.defineProperty(To1,"__esModule",{value:!0});To1.Heartbeat=void 0;var Dp6=IJ();class Ao1{ph;interval;maxOut;timer;pendings;constructor($,Z,X){this.ph=$,this.interval=Z,this.maxOut=X,this.pendings=[]}start(){this.cancel(),this._schedule()}cancel($){if(this.timer)clearTimeout(this.timer),this.timer=void 0;if(this._reset(),$)this.ph.disconnect()}_schedule(){this.timer=setTimeout(()=>{if(this.ph.dispatchStatus({type:"ping",pendingPings:this.pendings.length+1}),this.pendings.length===this.maxOut){this.cancel(!0);return}let $=(0,Dp6.deferred)();this.ph.flush($).then(()=>{this._reset()}).catch(()=>{this.cancel()}),this.pendings.push($),this._schedule()},this.interval)}_reset(){this.pendings=this.pendings.filter(($)=>{return $.resolve(),!1})}}To1.Heartbeat=Ao1});var Gi0=_((Vo1)=>{Object.defineProperty(Vo1,"__esModule",{value:!0});Vo1.DenoBuffer=Vo1.MAX_SIZE=Vo1.AssertionError=void 0;Vo1.assert=qo1;Vo1.concat=Mo1;Vo1.append=zp6;Vo1.readAll=jp6;Vo1.writeAll=Pp6;var Ep6=pY();class Qi0 extends Error{constructor($){super($);this.name="AssertionError"}}Vo1.AssertionError=Qi0;function qo1($,Z="Assertion failed."){if(!$)throw new Qi0(Z)}var Io1=32768;Vo1.MAX_SIZE=4294967294;function XZ0($,Z,X=0){let Q=Z.byteLength-X;if($.byteLength>Q)$=$.subarray(0,Q);return Z.set($,X),$.byteLength}function Mo1($,Z){if($===void 0&&Z===void 0)return new Uint8Array(0);if($===void 0)return Z;if(Z===void 0)return $;let X=new Uint8Array($.length+Z.length);return X.set($,0),X.set(Z,$.length),X}function zp6($,Z){return Mo1($,Uint8Array.of(Z))}class Yi0{_buf;_off;constructor($){if(this._off=0,$==null){this._buf=new Uint8Array(0);return}this._buf=new Uint8Array($)}bytes($={copy:!0}){if($.copy===!1)return this._buf.subarray(this._off);return this._buf.slice(this._off)}empty(){return this._buf.byteLength<=this._off}get length(){return this._buf.byteLength-this._off}get capacity(){return this._buf.buffer.byteLength}truncate($){if($===0){this.reset();return}if($<0||$>this.length)throw Error("bytes.Buffer: truncation out of range");this._reslice(this._off+$)}reset(){this._reslice(0),this._off=0}_tryGrowByReslice($){let Z=this._buf.byteLength;if($<=this.capacity-Z)return this._reslice(Z+$),Z;return-1}_reslice($){qo1($<=this._buf.buffer.byteLength),this._buf=new Uint8Array(this._buf.buffer,0,$)}readByte(){let $=new Uint8Array(1);if(this.read($))return $[0];return null}read($){if(this.empty()){if(this.reset(),$.byteLength===0)return 0;return null}let Z=XZ0(this._buf.subarray(this._off),$);return this._off+=Z,Z}writeByte($){return this.write(Uint8Array.of($))}writeString($){return this.write(Ep6.TE.encode($))}write($){let Z=this._grow($.byteLength);return XZ0($,this._buf,Z)}_grow($){let Z=this.length;if(Z===0&&this._off!==0)this.reset();let X=this._tryGrowByReslice($);if(X>=0)return X;let Q=this.capacity;if($<=Math.floor(Q/2)-Z)XZ0(this._buf.subarray(this._off),this._buf);else if(Q+$>Vo1.MAX_SIZE)throw Error("The buffer cannot be grown beyond the maximum size.");else{let Y=new Uint8Array(Math.min(2*Q+$,Vo1.MAX_SIZE));XZ0(this._buf.subarray(this._off),Y),this._buf=Y}return this._off=0,this._reslice(Math.min(Z+$,Vo1.MAX_SIZE)),Z}grow($){if($<0)throw Error("Buffer._grow: negative count");let Z=this._grow($);this._reslice(Z)}readFrom($){let Z=0,X=new Uint8Array(Io1);while(!0){let Q=this.capacity-this.length<Io1,Y=Q?X:new Uint8Array(this._buf.buffer,this.length),G=$.read(Y);if(G===null)return Z;if(Q)this.write(Y.subarray(0,G));else this._reslice(this.length+G);Z+=G}}}Vo1.DenoBuffer=Yi0;function jp6($){let Z=new Yi0;return Z.readFrom($),Z.bytes()}function Pp6($,Z){let X=0;while(X<Z.length)X+=$.write(Z.subarray(X))}});var Wi0=_((vo1)=>{Object.defineProperty(vo1,"__esModule",{value:!0});vo1.cc=vo1.State=vo1.Parser=vo1.Kind=void 0;vo1.describe=Vp6;var Ji0=Gi0(),Ki0=pY();vo1.Kind={OK:0,ERR:1,MSG:2,INFO:3,PING:4,PONG:5};function Vp6($){let Z,X="";switch($.kind){case vo1.Kind.MSG:Z="MSG";break;case vo1.Kind.OK:Z="OK";break;case vo1.Kind.ERR:Z="ERR",X=Ki0.TD.decode($.data);break;case vo1.Kind.PING:Z="PING";break;case vo1.Kind.PONG:Z="PONG";break;case vo1.Kind.INFO:Z="INFO",X=Ki0.TD.decode($.data)}return`${Z}: ${X}`}function So1(){let $={};return $.sid=-1,$.hdr=-1,$.size=-1,$}var Co1=48,kp6=57,Rb=67108864;class _o1{dispatcher;state;as;drop;hdr;ma;argBuf;msgBuf;constructor($){this.dispatcher=$,this.state=vo1.State.OP_START,this.as=0,this.drop=0,this.hdr=0}parse($){let Z;for(Z=0;Z<$.length;Z++){let X=$[Z];switch(this.state){case vo1.State.OP_START:switch(X){case vo1.cc.M:case vo1.cc.m:this.state=vo1.State.OP_M,this.hdr=-1,this.ma=So1();break;case vo1.cc.H:case vo1.cc.h:this.state=vo1.State.OP_H,this.hdr=0,this.ma=So1();break;case vo1.cc.P:case vo1.cc.p:this.state=vo1.State.OP_P;break;case vo1.cc.PLUS:this.state=vo1.State.OP_PLUS;break;case vo1.cc.MINUS:this.state=vo1.State.OP_MINUS;break;case vo1.cc.I:case vo1.cc.i:this.state=vo1.State.OP_I;break;default:throw this.fail($.subarray(Z))}break;case vo1.State.OP_H:switch(X){case vo1.cc.M:case vo1.cc.m:this.state=vo1.State.OP_M;break;default:throw this.fail($.subarray(Z))}break;case vo1.State.OP_M:switch(X){case vo1.cc.S:case vo1.cc.s:this.state=vo1.State.OP_MS;break;default:throw this.fail($.subarray(Z))}break;case vo1.State.OP_MS:switch(X){case vo1.cc.G:case vo1.cc.g:this.state=vo1.State.OP_MSG;break;default:throw this.fail($.subarray(Z))}break;case vo1.State.OP_MSG:switch(X){case vo1.cc.SPACE:case vo1.cc.TAB:this.state=vo1.State.OP_MSG_SPC;break;default:throw this.fail($.subarray(Z))}break;case vo1.State.OP_MSG_SPC:switch(X){case vo1.cc.SPACE:case vo1.cc.TAB:continue;default:this.state=vo1.State.MSG_ARG,this.as=Z}break;case vo1.State.MSG_ARG:switch(X){case vo1.cc.CR:this.drop=1;break;case vo1.cc.NL:{let Q=this.argBuf?this.argBuf.bytes():$.subarray(this.as,Z-this.drop);this.processMsgArgs(Q),this.drop=0,this.as=Z+1,this.state=vo1.State.MSG_PAYLOAD,Z=this.as+this.ma.size-1;break}default:if(this.argBuf)this.argBuf.writeByte(X)}break;case vo1.State.MSG_PAYLOAD:if(this.msgBuf)if(this.msgBuf.length>=this.ma.size){let Q=this.msgBuf.bytes({copy:!1});this.dispatcher.push({kind:vo1.Kind.MSG,msg:this.ma,data:Q}),this.argBuf=void 0,this.msgBuf=void 0,this.state=vo1.State.MSG_END}else{let Q=this.ma.size-this.msgBuf.length,Y=$.length-Z;if(Y<Q)Q=Y;if(Q>0)this.msgBuf.write($.subarray(Z,Z+Q)),Z=Z+Q-1;else this.msgBuf.writeByte(X)}else if(Z-this.as>=this.ma.size)this.dispatcher.push({kind:vo1.Kind.MSG,msg:this.ma,data:$.subarray(this.as,Z)}),this.argBuf=void 0,this.msgBuf=void 0,this.state=vo1.State.MSG_END;break;case vo1.State.MSG_END:switch(X){case vo1.cc.NL:this.drop=0,this.as=Z+1,this.state=vo1.State.OP_START;break;default:continue}break;case vo1.State.OP_PLUS:switch(X){case vo1.cc.O:case vo1.cc.o:this.state=vo1.State.OP_PLUS_O;break;default:throw this.fail($.subarray(Z))}break;case vo1.State.OP_PLUS_O:switch(X){case vo1.cc.K:case vo1.cc.k:this.state=vo1.State.OP_PLUS_OK;break;default:throw this.fail($.subarray(Z))}break;case vo1.State.OP_PLUS_OK:switch(X){case vo1.cc.NL:this.dispatcher.push({kind:vo1.Kind.OK}),this.drop=0,this.state=vo1.State.OP_START;break}break;case vo1.State.OP_MINUS:switch(X){case vo1.cc.E:case vo1.cc.e:this.state=vo1.State.OP_MINUS_E;break;default:throw this.fail($.subarray(Z))}break;case vo1.State.OP_MINUS_E:switch(X){case vo1.cc.R:case vo1.cc.r:this.state=vo1.State.OP_MINUS_ER;break;default:throw this.fail($.subarray(Z))}break;case vo1.State.OP_MINUS_ER:switch(X){case vo1.cc.R:case vo1.cc.r:this.state=vo1.State.OP_MINUS_ERR;break;default:throw this.fail($.subarray(Z))}break;case vo1.State.OP_MINUS_ERR:switch(X){case vo1.cc.SPACE:case vo1.cc.TAB:this.state=vo1.State.OP_MINUS_ERR_SPC;break;default:throw this.fail($.subarray(Z))}break;case vo1.State.OP_MINUS_ERR_SPC:switch(X){case vo1.cc.SPACE:case vo1.cc.TAB:continue;default:this.state=vo1.State.MINUS_ERR_ARG,this.as=Z}break;case vo1.State.MINUS_ERR_ARG:switch(X){case vo1.cc.CR:this.drop=1;break;case vo1.cc.NL:{let Q;if(this.argBuf)Q=this.argBuf.bytes(),this.argBuf=void 0;else Q=$.subarray(this.as,Z-this.drop);this.dispatcher.push({kind:vo1.Kind.ERR,data:Q}),this.drop=0,this.as=Z+1,this.state=vo1.State.OP_START;break}default:if(this.argBuf)this.argBuf.write(Uint8Array.of(X))}break;case vo1.State.OP_P:switch(X){case vo1.cc.I:case vo1.cc.i:this.state=vo1.State.OP_PI;break;case vo1.cc.O:case vo1.cc.o:this.state=vo1.State.OP_PO;break;default:throw this.fail($.subarray(Z))}break;case vo1.State.OP_PO:switch(X){case vo1.cc.N:case vo1.cc.n:this.state=vo1.State.OP_PON;break;default:throw this.fail($.subarray(Z))}break;case vo1.State.OP_PON:switch(X){case vo1.cc.G:case vo1.cc.g:this.state=vo1.State.OP_PONG;break;default:throw this.fail($.subarray(Z))}break;case vo1.State.OP_PONG:switch(X){case vo1.cc.NL:this.dispatcher.push({kind:vo1.Kind.PONG}),this.drop=0,this.state=vo1.State.OP_START;break}break;case vo1.State.OP_PI:switch(X){case vo1.cc.N:case vo1.cc.n:this.state=vo1.State.OP_PIN;break;default:throw this.fail($.subarray(Z))}break;case vo1.State.OP_PIN:switch(X){case vo1.cc.G:case vo1.cc.g:this.state=vo1.State.OP_PING;break;default:throw this.fail($.subarray(Z))}break;case vo1.State.OP_PING:switch(X){case vo1.cc.NL:this.dispatcher.push({kind:vo1.Kind.PING}),this.drop=0,this.state=vo1.State.OP_START;break}break;case vo1.State.OP_I:switch(X){case vo1.cc.N:case vo1.cc.n:this.state=vo1.State.OP_IN;break;default:throw this.fail($.subarray(Z))}break;case vo1.State.OP_IN:switch(X){case vo1.cc.F:case vo1.cc.f:this.state=vo1.State.OP_INF;break;default:throw this.fail($.subarray(Z))}break;case vo1.State.OP_INF:switch(X){case vo1.cc.O:case vo1.cc.o:this.state=vo1.State.OP_INFO;break;default:throw this.fail($.subarray(Z))}break;case vo1.State.OP_INFO:switch(X){case vo1.cc.SPACE:case vo1.cc.TAB:this.state=vo1.State.OP_INFO_SPC;break;default:throw this.fail($.subarray(Z))}break;case vo1.State.OP_INFO_SPC:switch(X){case vo1.cc.SPACE:case vo1.cc.TAB:continue;default:this.state=vo1.State.INFO_ARG,this.as=Z}break;case vo1.State.INFO_ARG:switch(X){case vo1.cc.CR:this.drop=1;break;case vo1.cc.NL:{let Q;if(this.argBuf)Q=this.argBuf.bytes(),this.argBuf=void 0;else Q=$.subarray(this.as,Z-this.drop);this.dispatcher.push({kind:vo1.Kind.INFO,data:Q}),this.drop=0,this.as=Z+1,this.state=vo1.State.OP_START;break}default:if(this.argBuf)this.argBuf.writeByte(X)}break;default:throw this.fail($.subarray(Z))}}if((this.state===vo1.State.MSG_ARG||this.state===vo1.State.MINUS_ERR_ARG||this.state===vo1.State.INFO_ARG)&&!this.argBuf)this.argBuf=new Ji0.DenoBuffer($.subarray(this.as,Z-this.drop));if(this.state===vo1.State.MSG_PAYLOAD&&!this.msgBuf){if(!this.argBuf)this.cloneMsgArg();this.msgBuf=new Ji0.DenoBuffer($.subarray(this.as))}}cloneMsgArg(){let $=this.ma.subject.length,Z=this.ma.reply?this.ma.reply.length:0,X=new Uint8Array($+Z);if(X.set(this.ma.subject),this.ma.reply)X.set(this.ma.reply,$);if(this.argBuf=new Ji0.DenoBuffer(X),this.ma.subject=X.subarray(0,$),this.ma.reply)this.ma.reply=X.subarray($)}processMsgArgs($){if(this.hdr>=0)return this.processHeaderMsgArgs($);let Z=[],X=-1;for(let Q=0;Q<$.length;Q++)switch($[Q]){case vo1.cc.SPACE:case vo1.cc.TAB:case vo1.cc.CR:case vo1.cc.NL:if(X>=0)Z.push($.subarray(X,Q)),X=-1;break;default:if(X<0)X=Q}if(X>=0)Z.push($.subarray(X));switch(Z.length){case 3:this.ma.subject=Z[0],this.ma.sid=this.protoParseInt(Z[1]),this.ma.reply=void 0,this.ma.size=this.protoParseInt(Z[2],Rb);break;case 4:this.ma.subject=Z[0],this.ma.sid=this.protoParseInt(Z[1]),this.ma.reply=Z[2],this.ma.size=this.protoParseInt(Z[3],Rb);break;default:throw this.fail($,"processMsgArgs Parse Error")}if(this.ma.sid<0)throw this.fail($,"processMsgArgs Bad or Missing Sid Error");if(this.ma.size<0)throw this.fail($,"processMsgArgs Bad or Missing Size Error")}fail($,Z=""){if(!Z)Z=`parse error [${this.state}]`;else Z=`${Z} [${this.state}]`;return Error(`${Z}: ${Ki0.TD.decode($)}`)}processHeaderMsgArgs($){let Z=[],X=-1;for(let Q=0;Q<$.length;Q++)switch($[Q]){case vo1.cc.SPACE:case vo1.cc.TAB:case vo1.cc.CR:case vo1.cc.NL:if(X>=0)Z.push($.subarray(X,Q)),X=-1;break;default:if(X<0)X=Q}if(X>=0)Z.push($.subarray(X));switch(Z.length){case 4:this.ma.subject=Z[0],this.ma.sid=this.protoParseInt(Z[1]),this.ma.reply=void 0,this.ma.hdr=this.protoParseInt(Z[2],Rb),this.ma.size=this.protoParseInt(Z[3],Rb);break;case 5:this.ma.subject=Z[0],this.ma.sid=this.protoParseInt(Z[1]),this.ma.reply=Z[2],this.ma.hdr=this.protoParseInt(Z[3],Rb),this.ma.size=this.protoParseInt(Z[4],Rb);break;default:throw this.fail($,"processHeaderMsgArgs Parse Error")}if(this.ma.sid<0)throw this.fail($,"processHeaderMsgArgs Bad or Missing Sid Error");if(this.ma.hdr<0||this.ma.hdr>this.ma.size)throw this.fail($,"processHeaderMsgArgs Bad or Missing Header Size Error");if(this.ma.size<0)throw this.fail($,"processHeaderMsgArgs Bad or Missing Size Error")}protoParseInt($,Z){if($.length===0||$.length>15)return-1;let X=0;for(let Q=0;Q<$.length;Q++){if($[Q]<Co1||$[Q]>kp6)return-1;X=X*10+($[Q]-Co1)}return Z!==void 0&&X>Z?-1:X}}vo1.Parser=_o1;vo1.State={OP_START:0,OP_PLUS:1,OP_PLUS_O:2,OP_PLUS_OK:3,OP_MINUS:4,OP_MINUS_E:5,OP_MINUS_ER:6,OP_MINUS_ERR:7,OP_MINUS_ERR_SPC:8,MINUS_ERR_ARG:9,OP_M:10,OP_MS:11,OP_MSG:12,OP_MSG_SPC:13,MSG_ARG:14,MSG_PAYLOAD:15,MSG_END:16,OP_H:17,OP_P:18,OP_PI:19,OP_PIN:20,OP_PING:21,OP_PO:22,OP_PON:23,OP_PONG:24,OP_I:25,OP_IN:26,OP_INF:27,OP_INFO:28,OP_INFO_SPC:29,INFO_ARG:30};vo1.cc={CR:13,E:69,e:101,F:70,f:102,G:71,g:103,H:72,h:104,I:73,i:105,K:75,k:107,M:77,m:109,MINUS:45,N:78,n:110,NL:10,O:79,o:111,P:80,p:112,PLUS:43,R:82,r:114,S:83,s:115,SPACE:32,TAB:9}});var GZ0=_((fo1)=>{Object.defineProperty(fo1,"__esModule",{value:!0});fo1.MsgHdrsImpl=void 0;fo1.canonicalMIMEHeaderKey=Ui0;fo1.headers=_p6;var xo1=pY(),qJ=_w(),YZ0=tY();function Ui0($){let U=!0,N=Array($.length);for(let F=0;F<$.length;F++){let w=$.charCodeAt(F);if(w===58||w<33||w>126)throw YZ0.InvalidArgumentError.format("header",`'${$[F]}' is not a valid character in a header name`);if(U&&97<=w&&w<=122)w-=32;else if(!U&&65<=w&&w<=90)w+=32;N[F]=w,U=w==45}return String.fromCharCode(...N)}function _p6($=0,Z=""){if($===0&&Z!=="")throw YZ0.InvalidArgumentError.format("code","is required");else if($>0&&Z==="")throw YZ0.InvalidArgumentError.format("description","is required");return new Ib($,Z)}var Hi0="NATS/1.0";class Ib{_code;headers;_description;constructor($=0,Z=""){this._code=$,this._description=Z,this.headers=new Map}[Symbol.iterator](){return this.headers.entries()}size(){return this.headers.size}equals($){if($&&this.headers.size===$.headers.size&&this._code===$._code){for(let[Z,X]of this.headers){let Q=$.values(Z);if(X.length!==Q.length)return!1;let Y=[...X].sort(),G=[...Q].sort();for(let J=0;J<Y.length;J++)if(Y[J]!==G[J])return!1}return!0}return!1}static decode($){let Z=new Ib,Q=xo1.TD.decode($).split(`\r
|
|
1337
1337
|
`),Y=Q[0];if(Y!==Hi0){let G=Y.replace(Hi0,"").trim();if(G.length>0){if(Z._code=parseInt(G,10),isNaN(Z._code))Z._code=0;let J=Z._code.toString();G=G.replace(J,""),Z._description=G.trim()}}if(Q.length>=1)Q.slice(1).map((G)=>{if(G){let J=G.indexOf(":");if(J>-1){let K=G.slice(0,J),W=G.slice(J+1).trim();Z.append(K,W)}}});return Z}toString(){if(this.headers.size===0&&this._code===0)return"";let $=Hi0;if(this._code>0&&this._description!=="")$+=` ${this._code} ${this._description}`;for(let[Z,X]of this.headers)for(let Q=0;Q<X.length;Q++)$=`${$}\r
|
|
1338
1338
|
${Z}: ${X[Q]}`;return`${$}\r
|
|
@@ -1641,7 +1641,7 @@ ${Y}`}return $}});var TQ0=_((Yz)=>{var $K4=Yz&&Yz.__createBinding||(Object.creat
|
|
|
1641
1641
|
${S8.ref("meta_json")}::jsonb->'mcp.studio'->>'verified',
|
|
1642
1642
|
${S8.ref("meta_json")}::jsonb->'mcp.mesh'->>'verified'
|
|
1643
1643
|
) = 'true' THEN 1 ELSE 0 END
|
|
1644
|
-
) desc`}class Tg{db;constructor($){this.db=$}async create($){let Z=new Date().toISOString(),X=NQ8($._meta??{}),Q=nQ0(X),Y=tQ(Q.tags),G=tQ(Q.categories),J={id:$.id,organization_id:$.organization_id,title:$.title,description:$.description??null,server_json:JSON.stringify($.server),meta_json:JSON.stringify(X),tags:mQ0(Y),categories:mQ0(G),is_public:$.is_public?1:0,is_unlisted:$.is_unlisted?1:0,created_at:Z,updated_at:Z,created_by:$.created_by??null};await this.db.insertInto("private_registry_item").values(J).execute();let K=await this.findById($.organization_id,$.id);if(!K)throw Error(`Failed to create registry item "${$.id}"`);return K}async findById($,Z){let X=await this.db.selectFrom("private_registry_item").selectAll().where("organization_id","=",$).where("id","=",Z).executeTakeFirst();return X?this.deserialize(X):null}async findByIdOrName($,Z){let X=await this.findById($,Z);if(X)return X;let Q=await this.db.selectFrom("private_registry_item").selectAll().where("organization_id","=",$).where("title","=",Z).executeTakeFirst();return Q?this.deserialize(Q):null}async update($,Z,X){let Q=await this.findById($,Z);if(!Q)throw Error(`Registry item not found: ${Z}`);let Y=NQ8(X._meta??Q._meta??{}),G=nQ0(Y),J=tQ(G.tags),K=tQ(G.categories),W={updated_at:new Date().toISOString()};if(X.title!==void 0)W.title=X.title;if(X.description!==void 0)W.description=X.description;if(X.server!==void 0)W.server_json=JSON.stringify(X.server);if(X._meta!==void 0)W.meta_json=JSON.stringify(Y);if(X._meta!==void 0)W.tags=mQ0(J),W.categories=mQ0(K);if(X.is_public!==void 0)W.is_public=X.is_public?1:0;if(X.is_unlisted!==void 0)W.is_unlisted=X.is_unlisted?1:0;await this.db.updateTable("private_registry_item").set(W).where("organization_id","=",$).where("id","=",Z).execute();let H=await this.findById($,Z);if(!H)throw Error(`Registry item not found after update: ${Z}`);return H}async delete($,Z){let X=await this.findById($,Z);if(!X)return null;return await this.db.deleteFrom("private_registry_item").where("organization_id","=",$).where("id","=",Z).execute(),X}async list($,Z={}){let X=this.db.selectFrom("private_registry_item").selectAll().where("organization_id","=",$);if(!Z.includeUnlisted)X=X.where("is_unlisted","=",0);let Q=tQ(Z.tags);if(Q.length>0)X=X.where(iQ0("tags",Q));let Y=tQ(Z.categories);if(Y.length>0)X=X.where(iQ0("categories",Y));if(Z.where)X=X.where(va0(Z.where));let K=(await this.db.selectFrom(X.as("filtered")).select(S8`count(*)::int`.as("count")).executeTakeFirst())?.count??0;X=X.orderBy(FQ8()).orderBy("created_at","desc");let H=lQ0(Z.cursor)??Z.offset??0,U=Z.limit??24;X=X.limit(U).offset(H);let F=(await X.execute()).map((L)=>this.deserialize(L)),w=H+U<K,B=w?cQ0(H+U):void 0;return{items:F,totalCount:K,hasMore:w,nextCursor:B}}async listPublic($,Z={}){let X=this.db.selectFrom("private_registry_item").selectAll().where("organization_id","=",$).where("is_public","=",1).where("is_unlisted","=",0),Q=tQ(Z.tags);if(Q.length>0)X=X.where(iQ0("tags",Q));let Y=tQ(Z.categories);if(Y.length>0)X=X.where(iQ0("categories",Y));if(Z.where)X=X.where(va0(Z.where));let K=(await this.db.selectFrom(X.as("filtered")).select(S8`count(*)::int`.as("count")).executeTakeFirst())?.count??0;X=X.orderBy(FQ8()).orderBy("created_at","desc");let H=lQ0(Z.cursor)??Z.offset??0,U=Z.limit??24;X=X.limit(U).offset(H);let F=(await X.execute()).map((L)=>this.deserialize(L)),w=H+U<K,B=w?cQ0(H+U):void 0;return{items:F,totalCount:K,hasMore:w,nextCursor:B}}async getFilters($,Z){let X=this.db.selectFrom("private_registry_item").select(["tags","categories"]).where("organization_id","=",$);if(Z?.publicOnly)X=X.where("is_public","=",1);if(!Z?.includeUnlisted)X=X.where("is_unlisted","=",0);let Q=await X.execute(),Y=new Map,G=new Map;for(let K of Q){for(let W of Wz(K.tags))Y.set(W,(Y.get(W)??0)+1);for(let W of Wz(K.categories))G.set(W,(G.get(W)??0)+1)}let J=(K)=>Array.from(K.entries()).map(([W,H])=>({value:W,count:H})).sort((W,H)=>W.value.localeCompare(H.value));return{tags:J(Y),categories:J(G)}}async search($,Z={},X){let Q=this.db.selectFrom("private_registry_item").select(["id","title","description","meta_json","server_json","tags","categories","is_public","is_unlisted"]).where("organization_id","=",$).orderBy("created_at","desc");if(X?.publicOnly)Q=Q.where("is_public","=",1);if(!X?.includeUnlisted)Q=Q.where("is_unlisted","=",0);let Y=await Q.execute(),G=Z.query?.trim().toLowerCase(),J=tQ(Z.tags),K=tQ(Z.categories),W=Y.filter((D)=>{if(G){let E=dQ0(D.server_json,{}),z=dQ0(D.meta_json,{}),j=nQ0(z).short_description??"";if(![D.id,D.title,D.description??"",E.name??"",E.description??"",j].join(" ").toLowerCase().includes(G))return!1}if(J.length>0){let E=tQ(Wz(D.tags));if(!J.every((z)=>E.includes(z)))return!1}if(K.length>0){let E=tQ(Wz(D.categories));if(!K.every((z)=>E.includes(z)))return!1}return!0}),U=lQ0(Z.cursor)??0,N=Z.limit??20,F=W.slice(U,U+N),w=U+N<W.length,B=w?cQ0(U+N):void 0;return{items:F.map((D)=>({id:D.id,title:D.title,tags:Wz(D.tags),categories:Wz(D.categories),is_public:D.is_public===1,is_unlisted:D.is_unlisted===1})),totalCount:W.length,hasMore:w,nextCursor:B}}deserialize($){let Z=dQ0($.server_json,{}),X=dQ0($.meta_json,{});return{id:$.id,name:typeof Z.name==="string"?Z.name:void 0,title:$.title,description:$.description,_meta:X,server:Z,is_public:$.is_public===1,is_unlisted:$.is_unlisted===1,created_at:$.created_at,updated_at:$.updated_at,...$.created_by?{created_by:$.created_by}:{}}}}var RH4,IH4,qH4;var xa0=O(()=>{RH4=new Set(["id","title","description","is_public","is_unlisted","created_at","updated_at","created_by"]),IH4=new Set(["is_public","is_unlisted"]),qH4={_meta:"meta_json",server:"server_json"}});import{randomUUID as kH4}from"crypto";function wQ8($,Z){if(!$)return Z;try{return JSON.parse($)}catch{return Z}}function BQ8($){if(!$)return null;let Z=dW($);return JSON.stringify(Z?uQ0($,Z):$)}class Rg{db;constructor($){this.db=$}async createOrUpdate($){let Z=new Date().toISOString(),X=await this.findPendingByRequestedId($.organization_id,$.requested_id);if(X){let J={title:$.title,description:$.description??null,server_json:JSON.stringify($.server),meta_json:BQ8($._meta),requester_name:$.requester_name??null,requester_email:$.requester_email??null,updated_at:Z};await this.db.updateTable("private_registry_publish_request").set(J).where("organization_id","=",$.organization_id).where("id","=",X.id).execute();let K=await this.findById($.organization_id,X.id);if(!K)throw Error("Failed to update publish request");return K}let Q=kH4(),Y={id:Q,organization_id:$.organization_id,requested_id:$.requested_id,status:"pending",title:$.title,description:$.description??null,server_json:JSON.stringify($.server),meta_json:BQ8($._meta),requester_name:$.requester_name??null,requester_email:$.requester_email??null,reviewer_notes:null,created_at:Z,updated_at:Z};await this.db.insertInto("private_registry_publish_request").values(Y).execute();let G=await this.findById($.organization_id,Q);if(!G)throw Error("Failed to create publish request");return G}async findPendingByRequestedId($,Z){let X=await this.db.selectFrom("private_registry_publish_request").selectAll().where("organization_id","=",$).where("requested_id","=",Z).where("status","=","pending").executeTakeFirst();return X?this.deserialize(X):null}async findById($,Z){let X=await this.db.selectFrom("private_registry_publish_request").selectAll().where("organization_id","=",$).where("id","=",Z).executeTakeFirst();return X?this.deserialize(X):null}async list($,Z={}){let X=this.db.selectFrom("private_registry_publish_request").selectAll().where("organization_id","=",$),Q=this.db.selectFrom("private_registry_publish_request").select((H)=>H.fn.countAll().as("count")).where("organization_id","=",$);if(Z.status)X=X.where("status","=",Z.status),Q=Q.where("status","=",Z.status);let Y=await Q.executeTakeFirst(),G=Number(Y?.count??0),J=Z.sortBy??"created_at",K=Z.sortDirection??"desc";if(J==="title")X=X.orderBy("title",K);else X=X.orderBy("created_at",K);return{items:(await X.limit(Z.limit??24).offset(Z.offset??0).execute()).map((H)=>this.deserialize(H)),totalCount:G}}async updateStatus($,Z,X,Q){let Y={status:X,updated_at:new Date().toISOString(),reviewer_notes:Q??null};await this.db.updateTable("private_registry_publish_request").set(Y).where("organization_id","=",$).where("id","=",Z).execute();let G=await this.findById($,Z);if(!G)throw Error(`Publish request not found: ${Z}`);return G}async countPending($){let Z=await this.db.selectFrom("private_registry_publish_request").select((X)=>X.fn.countAll().as("count")).where("organization_id","=",$).where("status","=","pending").executeTakeFirst();return Number(Z?.count??0)}async delete($,Z){let X=await this.findById($,Z);if(!X)return null;return await this.db.deleteFrom("private_registry_publish_request").where("organization_id","=",$).where("id","=",Z).execute(),X}deserialize($){return{id:$.id,organization_id:$.organization_id,requested_id:$.requested_id??null,status:$.status,title:$.title,description:$.description,_meta:wQ8($.meta_json,{}),server:wQ8($.server_json,{name:""}),requester_name:$.requester_name,requester_email:$.requester_email,reviewer_notes:$.reviewer_notes,created_at:$.created_at,updated_at:$.updated_at}}}var fa0=()=>{};import{createHash as SH4,randomBytes as CH4,randomUUID as _H4}from"crypto";function OQ8($){return SH4("sha256").update($).digest("hex")}function vH4(){return`prk_${CH4(32).toString("hex")}`}class Ig{db;constructor($){this.db=$}async generate($,Z){let X=_H4(),Q=vH4(),Y=await OQ8(Q),G=Q.slice(0,12),J=new Date().toISOString();return await this.db.insertInto("private_registry_publish_api_key").values({id:X,organization_id:$,name:Z,key_hash:Y,prefix:G,created_at:J}).execute(),{entity:{id:X,organization_id:$,name:Z,prefix:G,created_at:J},key:Q}}async list($){return await this.db.selectFrom("private_registry_publish_api_key").select(["id","organization_id","name","prefix","created_at"]).where("organization_id","=",$).orderBy("created_at","desc").execute()}async revoke($,Z){return(await this.db.deleteFrom("private_registry_publish_api_key").where("organization_id","=",$).where("id","=",Z).execute()).length>0}async validate($,Z){let X=await OQ8(Z),Q=await this.db.selectFrom("private_registry_publish_api_key").select(["id"]).where("organization_id","=",$).where("key_hash","=",X).executeTakeFirst();return Boolean(Q)}async hasKeys($){let Z=await this.db.selectFrom("private_registry_publish_api_key").select((X)=>X.fn.countAll().as("count")).where("organization_id","=",$).executeTakeFirst();return Number(Z?.count??0)>0}}var ba0=()=>{};import{randomUUID as LQ8}from"crypto";function DQ8($,Z){if(!$)return Z;try{return JSON.parse($)}catch{return Z}}class pQ0{db;constructor($){this.db=$}async create($){let Z=LQ8(),X=new Date().toISOString(),Q={id:Z,organization_id:$.organization_id,status:$.status??"pending",config_snapshot:$.config_snapshot?JSON.stringify($.config_snapshot):null,total_items:$.total_items??0,tested_items:0,passed_items:0,failed_items:0,skipped_items:0,current_item_id:null,started_at:$.started_at??null,finished_at:null,created_at:X};await this.db.insertInto("private_registry_monitor_run").values(Q).execute();let Y=await this.findById($.organization_id,Z);if(!Y)throw Error(`Failed to create monitor run ${Z}`);return Y}async findById($,Z){let X=await this.db.selectFrom("private_registry_monitor_run").selectAll().where("organization_id","=",$).where("id","=",Z).executeTakeFirst();return X?this.deserializeRun(X):null}async list($,Z={}){let X=this.db.selectFrom("private_registry_monitor_run").selectAll().where("organization_id","=",$),Q=this.db.selectFrom("private_registry_monitor_run").select((K)=>K.fn.countAll().as("count")).where("organization_id","=",$);if(Z.status)X=X.where("status","=",Z.status),Q=Q.where("status","=",Z.status);let Y=await Q.executeTakeFirst(),G=Number(Y?.count??0);return{items:(await X.orderBy("created_at","desc").limit(Z.limit??24).offset(Z.offset??0).execute()).map((K)=>this.deserializeRun(K)),totalCount:G}}async update($,Z,X){let Q={};if(X.total_items!==void 0)Q.total_items=X.total_items;if(X.status!==void 0)Q.status=X.status;if(X.tested_items!==void 0)Q.tested_items=X.tested_items;if(X.passed_items!==void 0)Q.passed_items=X.passed_items;if(X.failed_items!==void 0)Q.failed_items=X.failed_items;if(X.skipped_items!==void 0)Q.skipped_items=X.skipped_items;if(X.current_item_id!==void 0)Q.current_item_id=X.current_item_id;if(X.started_at!==void 0)Q.started_at=X.started_at;if(X.finished_at!==void 0)Q.finished_at=X.finished_at;await this.db.updateTable("private_registry_monitor_run").set(Q).where("organization_id","=",$).where("id","=",Z).execute();let Y=await this.findById($,Z);if(!Y)throw Error(`Monitor run not found: ${Z}`);return Y}deserializeRun($){return{id:$.id,organization_id:$.organization_id,status:$.status,config_snapshot:DQ8($.config_snapshot,null),total_items:Number($.total_items??0),tested_items:Number($.tested_items??0),passed_items:Number($.passed_items??0),failed_items:Number($.failed_items??0),skipped_items:Number($.skipped_items??0),current_item_id:$.current_item_id,started_at:$.started_at,finished_at:$.finished_at,created_at:$.created_at}}}class tQ0{db;constructor($){this.db=$}async create($){let Z=LQ8(),X=new Date().toISOString(),Q={id:Z,run_id:$.run_id,organization_id:$.organization_id,item_id:$.item_id,item_title:$.item_title,status:$.status,error_message:$.error_message??null,connection_ok:$.connection_ok?1:0,tools_listed:$.tools_listed?1:0,tool_results:$.tool_results?JSON.stringify($.tool_results):null,agent_summary:$.agent_summary??null,duration_ms:$.duration_ms??0,action_taken:$.action_taken??"none",tested_at:X};await this.db.insertInto("private_registry_monitor_result").values(Q).execute();let Y=await this.findById($.organization_id,Z);if(!Y)throw Error("Failed to create test result");return Y}async findById($,Z){let X=await this.db.selectFrom("private_registry_monitor_result").selectAll().where("organization_id","=",$).where("id","=",Z).executeTakeFirst();return X?this.deserialize(X):null}async listByRun($,Z,X={}){let Q=this.db.selectFrom("private_registry_monitor_result").selectAll().where("organization_id","=",$).where("run_id","=",Z),Y=this.db.selectFrom("private_registry_monitor_result").select((W)=>W.fn.countAll().as("count")).where("organization_id","=",$).where("run_id","=",Z);if(X.status)Q=Q.where("status","=",X.status),Y=Y.where("status","=",X.status);let G=await Y.executeTakeFirst(),J=Number(G?.count??0);return{items:(await Q.orderBy("tested_at","desc").limit(X.limit??50).offset(X.offset??0).execute()).map((W)=>this.deserialize(W)),totalCount:J}}async update($,Z,X){let Q={};if(X.status!==void 0)Q.status=X.status;if(X.error_message!==void 0)Q.error_message=X.error_message;if(X.connection_ok!==void 0)Q.connection_ok=X.connection_ok?1:0;if(X.tools_listed!==void 0)Q.tools_listed=X.tools_listed?1:0;if(X.tool_results!==void 0)Q.tool_results=JSON.stringify(X.tool_results);if(X.agent_summary!==void 0)Q.agent_summary=X.agent_summary;if(X.duration_ms!==void 0)Q.duration_ms=X.duration_ms;if(X.action_taken!==void 0)Q.action_taken=X.action_taken;await this.db.updateTable("private_registry_monitor_result").set(Q).where("organization_id","=",$).where("id","=",Z).execute();let Y=await this.findById($,Z);if(!Y)throw Error(`Monitor result not found: ${Z}`);return Y}deserialize($){return{id:$.id,run_id:$.run_id,organization_id:$.organization_id,item_id:$.item_id,item_title:$.item_title,status:$.status,error_message:$.error_message,connection_ok:$.connection_ok===1,tools_listed:$.tools_listed===1,tool_results:DQ8($.tool_results,[]),agent_summary:$.agent_summary,duration_ms:Number($.duration_ms??0),action_taken:$.action_taken,tested_at:$.tested_at}}}var EQ8=()=>{};import{randomUUID as xH4}from"crypto";class oQ0{db;constructor($){this.db=$}async findByItemId($,Z){let X=await this.db.selectFrom("private_registry_monitor_connection").selectAll().where("organization_id","=",$).where("item_id","=",Z).executeTakeFirst();return X?this.deserialize(X):null}async list($){return(await this.db.selectFrom("private_registry_monitor_connection").selectAll().where("organization_id","=",$).orderBy("updated_at","desc").execute()).map((X)=>this.deserialize(X))}async findByConnectionId($,Z){let X=await this.db.selectFrom("private_registry_monitor_connection").selectAll().where("organization_id","=",$).where("connection_id","=",Z).executeTakeFirst();return X?this.deserialize(X):null}async upsert($){let Z=await this.findByItemId($.organization_id,$.item_id),X=new Date().toISOString();if(!Z){let Y={id:xH4(),organization_id:$.organization_id,item_id:$.item_id,connection_id:$.connection_id,auth_status:$.auth_status??"none",created_at:X,updated_at:X};await this.db.insertInto("private_registry_monitor_connection").values(Y).execute()}else{let Y={connection_id:$.connection_id,auth_status:$.auth_status??Z.auth_status,updated_at:X};await this.db.updateTable("private_registry_monitor_connection").set(Y).where("organization_id","=",$.organization_id).where("item_id","=",$.item_id).execute()}let Q=await this.findByItemId($.organization_id,$.item_id);if(!Q)throw Error("Failed to save monitor connection");return Q}async updateAuthStatus($,Z,X){return await this.db.updateTable("private_registry_monitor_connection").set({auth_status:X,updated_at:new Date().toISOString()}).where("organization_id","=",$).where("item_id","=",Z).execute(),this.findByItemId($,Z)}deserialize($){return{id:$.id,organization_id:$.organization_id,item_id:$.item_id,connection_id:$.connection_id,auth_status:$.auth_status,created_at:$.created_at,updated_at:$.updated_at}}}var zQ8=()=>{};var jQ8=O(()=>{xa0();fa0();ba0();EQ8();zQ8()});class ap{db;constructor($){this.db=$}async listOrgTags($){return(await this.db.selectFrom("organization_tags").selectAll().where("organization_id","=",$).orderBy("name","asc").execute()).map((X)=>this.tagFromDbRow(X))}async getTag($){let Z=await this.db.selectFrom("organization_tags").selectAll().where("id","=",$).executeTakeFirst();return Z?this.tagFromDbRow(Z):null}async getTagByName($,Z){let X=await this.db.selectFrom("organization_tags").selectAll().where("organization_id","=",$).where("name","=",Z).executeTakeFirst();return X?this.tagFromDbRow(X):null}async createTag($,Z,X){let Q=Z4("tag"),Y=new Date().toISOString();await this.db.insertInto("organization_tags").values({id:Q,organization_id:$,name:Z,color:X??null,created_at:Y}).onConflict((J)=>J.columns(["organization_id","name"]).doNothing()).execute();let G=await this.getTagByName($,Z);if(!G)throw Error(`Failed to create or retrieve tag: ${Z}`);return G}async deleteTag($){await this.db.deleteFrom("organization_tags").where("id","=",$).execute()}async getMemberTags($){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.color","organization_tags.created_at"]).where("member_tags.member_id","=",$).orderBy("organization_tags.name","asc").execute()).map((X)=>this.tagFromDbRow(X))}async setMemberTags($,Z){await this.db.transaction().execute(async(X)=>{if(await X.deleteFrom("member_tags").where("member_id","=",$).execute(),Z.length>0){let Q=new Date().toISOString();await X.insertInto("member_tags").values(Z.map((Y)=>({id:Z4("mtag"),member_id:$,tag_id:Y,created_at:Q}))).execute()}})}async addMemberTag($,Z){let X=new Date().toISOString();await this.db.insertInto("member_tags").values({id:Z4("mtag"),member_id:$,tag_id:Z,created_at:X}).onConflict((Q)=>Q.columns(["member_id","tag_id"]).doNothing()).execute()}async removeMemberTag($,Z){await this.db.deleteFrom("member_tags").where("member_id","=",$).where("tag_id","=",Z).execute()}async verifyMemberOrg($,Z){return await this.db.selectFrom("member").select("id").where("id","=",$).where("organizationId","=",Z).executeTakeFirst()!==void 0}async getUserTagsInOrg($,Z){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.color","organization_tags.created_at"]).where("member.userId","=",$).where("member.organizationId","=",Z).orderBy("organization_tags.name","asc").execute()).map((Q)=>this.tagFromDbRow(Q))}async getMembersWithTags($){let Z=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","=",$).execute(),X=new Map;for(let Q of Z){if(!X.has(Q.memberId))X.set(Q.memberId,[]);if(Q.tagName)X.get(Q.memberId).push(Q.tagName)}return X}tagFromDbRow($){return{id:$.id,organizationId:$.organization_id,name:$.name,color:$.color??null,createdAt:$.created_at}}}var ya0=O(()=>{$Q()});import{sql as fH4}from"kysely";function PQ8($){return{organizationId:$.organization_id,status:$.status,stripeCustomerId:$.stripe_customer_id,stripeSubscriptionId:$.stripe_subscription_id,currentPeriodEnd:$.current_period_end,lastStripeEventAt:$.last_stripe_event_at,freeTaskExecutions:$.free_task_executions,monthlyTaskExecutions:$.monthly_task_executions}}class mW{db;constructor($){this.db=$}async getBilling($){let Z=await this.db.selectFrom("organization_billing").selectAll().where("organization_id","=",$).executeTakeFirst();return Z?PQ8(Z):null}async getBillingByStripeSubscriptionId($){let Z=await this.db.selectFrom("organization_billing").selectAll().where("stripe_subscription_id","=",$).executeTakeFirst();return Z?PQ8(Z):null}async updateStripeState($,Z){return((await this.db.updateTable("organization_billing").set({...Z.stripeCustomerId!==void 0&&{stripe_customer_id:Z.stripeCustomerId},...Z.stripeSubscriptionId!==void 0&&{stripe_subscription_id:Z.stripeSubscriptionId},...Z.status!==void 0&&{status:Z.status},...Z.currentPeriodEnd!==void 0&&{current_period_end:Z.currentPeriodEnd},...Z.lastStripeEventAt!==void 0&&{last_stripe_event_at:Z.lastStripeEventAt},updated_at:new Date}).where("organization_id","=",$).executeTakeFirst()).numUpdatedRows??0n)>0n}async taskClaim($){let Z=await this.db.selectFrom("task_quota_claims").select(["run_count","state"]).where("task_board_item_id","=",$).executeTakeFirst();return Z?{runCount:Z.run_count,state:Z.state}:null}static liveClaimCount($,Z,X){return $.selectFrom("task_quota_claims").select((Q)=>Q.fn.countAll().as("count")).where("organization_id","=",Z).where("period_key","=",X).where("state","<>","released").executeTakeFirst().then((Q)=>Number(Q?.count??0))}async countTaskClaims($,Z){return await mW.liveClaimCount(this.db,$,Z)}async claimTaskUnderLimit($,Z,X,Q,Y){return await this.db.transaction().execute(async(G)=>{await G.insertInto("organization_billing").values({organization_id:$}).onConflict((W)=>W.column("organization_id").doNothing()).execute(),await G.selectFrom("organization_billing").select("organization_id").where("organization_id","=",$).forUpdate().executeTakeFirstOrThrow();let J=await G.selectFrom("task_quota_claims").select(["run_count","state"]).where("task_board_item_id","=",Z).executeTakeFirst();if(J&&J.run_count>=Y)return"runs_exhausted";let K=()=>mW.liveClaimCount(G,$,X);if(J&&J.state!=="released")return await G.updateTable("task_quota_claims").set({run_count:J.run_count+1}).where("task_board_item_id","=",Z).execute(),"rerun";if(await K()>=Q)return"exhausted";if(J)return await G.updateTable("task_quota_claims").set({state:"held",period_key:X,run_count:J.run_count+1}).where("task_board_item_id","=",Z).execute(),"claimed";return await G.insertInto("task_quota_claims").values({task_board_item_id:Z,organization_id:$,period_key:X,state:"held"}).execute(),"claimed"})}async releaseTaskClaim($,Z){return((await this.db.updateTable("task_quota_claims").set({state:"released"}).where("organization_id","=",$).where("task_board_item_id","=",Z).where("state","=","held").executeTakeFirst()).numUpdatedRows??0n)>0n}async rollbackTaskClaim($,Z,{releaseSlot:X}){await this.db.updateTable("task_quota_claims").set(()=>({...X?{state:"released"}:{},run_count:fH4`greatest(run_count - 1, 0)`})).where("organization_id","=",$).where("task_board_item_id","=",Z).where("state","=","held").execute()}}var rQ0=()=>{};class ga0{db;constructor($){this.db=$}async findById($,Z){let X=await this.db.selectFrom("user").select(["user.id","user.name","user.email","user.image","user.createdAt","user.updatedAt"]).where("user.id","=",$).where((Q)=>Q.exists(Q.selectFrom("member as m1").innerJoin("member as m2","m1.organizationId","m2.organizationId").select("m1.id").where("m1.userId","=",$).where("m2.userId","=",Z))).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}}}function TQ8(){let $={};for(let Z of aQ0){if(Z.id==="basic-usage")continue;$[Z.id]=!0}return $}function ua0($){let Z=(G)=>{let J=$[G];return Array.isArray(J)?J:[]},X=Z("*").includes("*")||Z("self").includes("*"),Q=new Set;if(!X)for(let G of Object.values($)){if(!Array.isArray(G))continue;for(let J of G)Q.add(J)}let Y={};for(let G of aQ0){if(G.id==="basic-usage")continue;Y[G.id]=X||G.tools.every((J)=>Q.has(J))}return Y}function Hz(){let $={Organizations:[],Connections:[],"Virtual MCPs":[],Threads:[],Monitoring:[],Users:[],"API Keys":[],Tags:[],"AI Providers":[],Secrets:[],"File Configs":[],Automations:[],"Object Storage":[],Registry:[],GitHub:[],VM:[],Search:[],"Task Board":[]};for(let Z of ha0)$[Z.category].push(Z);return $}var ha0,aQ0,AQ8,bH4,sQ0;var qg=O(()=>{ha0=[{name:"ORGANIZATION_CREATE",description:"Create a new organization",category:"Organizations"},{name:"ORGANIZATION_LIST",description:"List organizations",category:"Organizations"},{name:"ORGANIZATION_GET",description:"View organization details",category:"Organizations"},{name:"ORGANIZATION_UPDATE",description:"Update organization",category:"Organizations"},{name:"ORGANIZATION_DELETE",description:"Delete organization",category:"Organizations",dangerous:!0},{name:"ORGANIZATION_SETTINGS_GET",description:"View organization settings",category:"Organizations"},{name:"ORGANIZATION_SETTINGS_UPDATE",description:"Update organization settings",category:"Organizations"},{name:"BRAND_CONTEXT_LIST",description:"List brand contexts",category:"Organizations"},{name:"BRAND_CONTEXT_GET",description:"View brand context",category:"Organizations"},{name:"BRAND_CONTEXT_CREATE",description:"Create brand context",category:"Organizations"},{name:"BRAND_CONTEXT_UPDATE",description:"Update brand context",category:"Organizations"},{name:"BRAND_CONTEXT_DELETE",description:"Delete brand context",category:"Organizations",dangerous:!0},{name:"BRAND_CONTEXT_EXTRACT",description:"Extract brand context from website",category:"Organizations"},{name:"BRAND_GET",description:"Get brand (binding)",category:"Organizations"},{name:"BRAND_LIST",description:"List brands (binding)",category:"Organizations"},{name:"ORGANIZATION_DOMAIN_LIST",description:"List organization domain claims",category:"Organizations"},{name:"ORGANIZATION_DOMAIN_ADD",description:"Claim an email domain for the organization",category:"Organizations"},{name:"ORGANIZATION_DOMAIN_UPDATE",description:"Set a domain's join mode",category:"Organizations"},{name:"ORGANIZATION_DOMAIN_VERIFY",description:"Verify a domain via DNS TXT record",category:"Organizations"},{name:"ORGANIZATION_DOMAIN_REMOVE",description:"Remove an organization domain claim",category:"Organizations",dangerous:!0},{name:"ORGANIZATION_JOIN_REQUEST_LIST",description:"List pending requests to join the organization",category:"Organizations"},{name:"ORGANIZATION_JOIN_REQUEST_APPROVE",description:"Approve a request to join the organization",category:"Organizations"},{name:"ORGANIZATION_JOIN_REQUEST_DENY",description:"Deny a request to join the organization",category:"Organizations",dangerous:!0},{name:"ORGANIZATION_MEMBER_ADD",description:"Add members",category:"Organizations"},{name:"ORGANIZATION_MEMBER_REMOVE",description:"Remove members",category:"Organizations",dangerous:!0},{name:"ORGANIZATION_MEMBER_LIST",description:"List members",category:"Organizations"},{name:"ORGANIZATION_MEMBER_UPDATE_ROLE",description:"Update member roles",category:"Organizations"},{name:"ORGANIZATION_BILLING_CHECKOUT_START",description:"Start the org subscription checkout",category:"Organizations",dangerous:!0},{name:"ORGANIZATION_BILLING_PORTAL",description:"Open the Stripe billing portal",category:"Organizations"},{name:"ORGANIZATION_TASK_QUOTA_GET",description:"Get the org's auto-task quota usage",category:"Organizations"},{name:"COLLECTION_CONNECTIONS_CREATE",description:"Create connections",category:"Connections"},{name:"COLLECTION_CONNECTIONS_LIST",description:"List connections",category:"Connections"},{name:"COLLECTION_CONNECTIONS_GET",description:"View connection details",category:"Connections"},{name:"COLLECTION_CONNECTIONS_UPDATE",description:"Update connections",category:"Connections"},{name:"COLLECTION_CONNECTIONS_DELETE",description:"Delete connections",category:"Connections",dangerous:!0},{name:"CONNECTION_TEST",description:"Test connections",category:"Connections"},{name:"COMMERCE_DISCOVERY_SETUP",description:"Set up Commerce Discovery",category:"Connections"},{name:"COMMERCE_DISCOVERY_RUN",description:"Run Commerce Discovery",category:"Connections"},{name:"COMMERCE_DISCOVERY_BIND",description:"Bind Commerce Discovery data source",category:"Connections"},{name:"COMMERCE_DISCOVERY_CONNECTION_STATUS",description:"Read Commerce Discovery connection status",category:"Connections"},{name:"DATABASES_RUN_SQL",description:"Run SQL queries",category:"Connections",dangerous:!0},{name:"COLLECTION_VIRTUAL_MCP_CREATE",description:"Create virtual MCPs",category:"Virtual MCPs"},{name:"COLLECTION_VIRTUAL_MCP_LIST",description:"List virtual MCPs",category:"Virtual MCPs"},{name:"COLLECTION_VIRTUAL_MCP_GET",description:"View virtual MCP details",category:"Virtual MCPs"},{name:"COLLECTION_VIRTUAL_MCP_UPDATE",description:"Update virtual MCPs",category:"Virtual MCPs"},{name:"COLLECTION_VIRTUAL_MCP_DELETE",description:"Delete virtual MCPs",category:"Virtual MCPs",dangerous:!0},{name:"MONITORING_HEATMAP",description:"View tool-call volume by agent and tool",category:"Monitoring"},{name:"MONITORING_LOG_GET",description:"View monitoring log details",category:"Monitoring"},{name:"MONITORING_LOGS_LIST",description:"List monitoring logs",category:"Monitoring"},{name:"MONITORING_STATS",description:"View monitoring statistics",category:"Monitoring"},{name:"MONITORING_THREAD_USAGE",description:"View per-thread token usage and cost",category:"Monitoring"},{name:"API_KEY_CREATE",description:"Create API key",category:"API Keys"},{name:"API_KEY_LIST",description:"List API keys",category:"API Keys"},{name:"API_KEY_UPDATE",description:"Update API key",category:"API Keys"},{name:"API_KEY_DELETE",description:"Delete API key",category:"API Keys",dangerous:!0},{name:"USER_GET",description:"Get a user by id",category:"Users"},{name:"USER_MODEL_PREFERENCES_GET",description:"Get the calling user's chat tier \u2192 model overrides",category:"Users"},{name:"USER_MODEL_PREFERENCES_UPDATE",description:"Set the calling user's chat tier \u2192 model overrides",category:"Users"},{name:"COLLECTION_THREADS_CREATE",description:"Create threads",category:"Threads"},{name:"COLLECTION_THREADS_LIST",description:"List threads",category:"Threads"},{name:"COLLECTION_THREADS_GET",description:"View thread details",category:"Threads"},{name:"COLLECTION_THREADS_UPDATE",description:"Update threads",category:"Threads"},{name:"COLLECTION_THREADS_DELETE",description:"Delete threads",category:"Threads",dangerous:!0},{name:"COLLECTION_THREAD_MESSAGES_LIST",description:"List thread messages",category:"Threads"},{name:"TAGS_LIST",description:"List organization tags",category:"Tags"},{name:"TAGS_CREATE",description:"Create organization tag",category:"Tags"},{name:"TAGS_DELETE",description:"Delete organization tag",category:"Tags",dangerous:!0},{name:"MEMBER_TAGS_GET",description:"Get member tags",category:"Tags"},{name:"MEMBER_TAGS_SET",description:"Set member tags",category:"Tags"},{name:"AUTOMATION_CREATE",description:"Create automation",category:"Automations"},{name:"AUTOMATION_GET",description:"View automation details",category:"Automations"},{name:"AUTOMATION_LIST",description:"List automations",category:"Automations"},{name:"AUTOMATION_UPDATE",description:"Update automation",category:"Automations"},{name:"AUTOMATION_DELETE",description:"Delete automation",category:"Automations",dangerous:!0},{name:"AUTOMATION_TRIGGER_ADD",description:"Add trigger to automation",category:"Automations"},{name:"AUTOMATION_TRIGGER_REMOVE",description:"Remove trigger from automation",category:"Automations"},{name:"AUTOMATION_TRIGGER_ROTATE_TOKEN",description:"Rotate the secret token for a webhook automation trigger",category:"Automations"},{name:"AUTOMATION_RUN",description:"Manually trigger an automation run",category:"Automations"},{name:"AUTOMATION_RUN_STATS",description:"View aggregated run counts and token/cost for an automation",category:"Automations"},{name:"VIRTUAL_MCP_PLUGIN_CONFIG_GET",description:"View virtual MCP plugin configuration",category:"Virtual MCPs"},{name:"VIRTUAL_MCP_PLUGIN_CONFIG_UPDATE",description:"Update virtual MCP plugin configuration",category:"Virtual MCPs"},{name:"VIRTUAL_MCP_PINNED_VIEWS_UPDATE",description:"Update virtual MCP pinned sidebar views",category:"Virtual MCPs"},{name:"VIRTUAL_MCP_LAST_USED_LIST",description:"Get last-used info for one or more virtual MCPs",category:"Virtual MCPs"},{name:"AI_PROVIDERS_LIST",description:"List available AI providers",category:"AI Providers"},{name:"AI_PROVIDERS_LIST_MODELS",description:"List AI provider models",category:"AI Providers"},{name:"AI_PROVIDERS_ACTIVE",description:"List active AI providers",category:"AI Providers"},{name:"AI_PROVIDER_KEY_CREATE",description:"Store AI provider API key",category:"AI Providers"},{name:"AI_PROVIDER_KEY_LIST",description:"List AI provider API keys",category:"AI Providers"},{name:"AI_PROVIDER_KEY_DELETE",description:"Delete AI provider API key",category:"AI Providers",dangerous:!0},{name:"AI_PROVIDER_KEY_UPDATE",description:"Update AI provider API key label or credential",category:"AI Providers"},{name:"AI_PROVIDER_KEY_PREVIEW",description:"Get masked preview of AI provider API key",category:"AI Providers"},{name:"AI_PROVIDER_OAUTH_URL",description:"Get OAuth URL for provider",category:"AI Providers"},{name:"AI_PROVIDER_OAUTH_EXCHANGE",description:"Exchange OAuth code for API key",category:"AI Providers"},{name:"AI_PROVIDER_PROVISION_KEY",description:"Auto-provision API key for a provider",category:"AI Providers"},{name:"AI_PROVIDER_TOPUP_URL",description:"Get checkout URL to top up provider credits",category:"AI Providers"},{name:"CLAUDE_SUBSCRIPTION_CONNECT",description:"Link your own Claude subscription with a setup token",category:"AI Providers"},{name:"CLAUDE_SUBSCRIPTION_STATUS",description:"Whether your Claude subscription is linked, and since when",category:"AI Providers"},{name:"CLAUDE_SUBSCRIPTION_DISCONNECT",description:"Unlink your Claude subscription",category:"AI Providers"},{name:"AI_PROVIDER_CREDITS",description:"Get current credit balance for a provider",category:"AI Providers"},{name:"SECRET_CREATE",description:"Create a secret in the credential vault",category:"Secrets"},{name:"SECRET_LIST",description:"List secrets visible to the caller (no values returned)",category:"Secrets"},{name:"FILE_CONFIG_CREATE",description:"Create an S3-compatible bucket configuration for the org",category:"File Configs"},{name:"FILE_CONFIG_LIST",description:"List S3 bucket configurations for the org (no creds returned)",category:"File Configs"},{name:"ORG_FS_PUBLIC_SETS_SYNC",description:"Re-sync the shared public skill-set volumes from their GitHub sources",category:"File Configs"},{name:"ORG_REPO_SYNC_CREATE",description:"Keep a GitHub repository mirrored into a new org-fs volume",category:"File Configs"},{name:"ORG_REPO_SYNC_LIST",description:"List the org's synced repositories and their sync status",category:"File Configs"},{name:"ORG_REPO_SYNC_UPDATE",description:"Update a synced repository's ref, paths, or enabled flag",category:"File Configs"},{name:"ORG_REPO_SYNC_DELETE",description:"Stop syncing a repository (already-synced files are kept)",category:"File Configs"},{name:"ORG_REPO_SYNC_RUN",description:"Sync a repository into its volume right now",category:"File Configs"},{name:"FILE_CONFIG_UPDATE",description:"Update an S3 bucket configuration, optionally rotating credentials",category:"File Configs"},{name:"FILE_CONFIG_DELETE",description:"Delete an S3 bucket configuration",category:"File Configs"},{name:"FILE_OBJECTS_LIST",description:"List existing objects in a configured bucket",category:"File Configs"},{name:"LIST_OBJECTS",description:"List objects in storage",category:"Object Storage"},{name:"GET_OBJECT_METADATA",description:"Get object metadata",category:"Object Storage"},{name:"GET_PRESIGNED_URL",description:"Generate download URL",category:"Object Storage"},{name:"PUT_PRESIGNED_URL",description:"Generate upload URL",category:"Object Storage"},{name:"DELETE_OBJECT",description:"Delete object",category:"Object Storage",dangerous:!0},{name:"DELETE_OBJECTS",description:"Delete multiple objects",category:"Object Storage",dangerous:!0},{name:"COLLECTION_REGISTRY_APP_LIST",description:"List registry apps",category:"Registry"},{name:"COLLECTION_REGISTRY_APP_GET",description:"Get registry app details",category:"Registry"},{name:"COLLECTION_REGISTRY_APP_VERSIONS",description:"List registry app versions",category:"Registry"},{name:"COLLECTION_REGISTRY_APP_FILTERS",description:"Get registry app filters",category:"Registry"},{name:"REGISTRY_ITEM_LIST",description:"List private registry items",category:"Registry"},{name:"REGISTRY_ITEM_SEARCH",description:"Search registry items",category:"Registry"},{name:"REGISTRY_ITEM_GET",description:"Get registry item details",category:"Registry"},{name:"REGISTRY_ITEM_VERSIONS",description:"List registry item versions",category:"Registry"},{name:"REGISTRY_ITEM_CREATE",description:"Create registry item",category:"Registry"},{name:"REGISTRY_ITEM_BULK_CREATE",description:"Bulk create registry items",category:"Registry"},{name:"REGISTRY_ITEM_UPDATE",description:"Update registry item",category:"Registry"},{name:"REGISTRY_ITEM_DELETE",description:"Delete registry item",category:"Registry",dangerous:!0},{name:"REGISTRY_ITEM_FILTERS",description:"Get registry item filters",category:"Registry"},{name:"REGISTRY_DISCOVER_TOOLS",description:"Discover tools from MCP server",category:"Registry"},{name:"REGISTRY_AI_GENERATE",description:"AI-generate registry content",category:"Registry"},{name:"REGISTRY_PUBLISH_REQUEST_LIST",description:"List publish requests",category:"Registry"},{name:"REGISTRY_PUBLISH_REQUEST_REVIEW",description:"Review publish request",category:"Registry"},{name:"REGISTRY_PUBLISH_REQUEST_COUNT",description:"Count pending publish requests",category:"Registry"},{name:"REGISTRY_PUBLISH_REQUEST_DELETE",description:"Delete publish request",category:"Registry",dangerous:!0},{name:"REGISTRY_PUBLISH_API_KEY_GENERATE",description:"Generate publish API key",category:"Registry"},{name:"REGISTRY_PUBLISH_API_KEY_LIST",description:"List publish API keys",category:"Registry"},{name:"REGISTRY_PUBLISH_API_KEY_REVOKE",description:"Revoke publish API key",category:"Registry",dangerous:!0},{name:"REGISTRY_MONITOR_RUN_START",description:"Start monitor run",category:"Registry"},{name:"REGISTRY_MONITOR_RUN_LIST",description:"List monitor runs",category:"Registry"},{name:"REGISTRY_MONITOR_RUN_GET",description:"Get monitor run details",category:"Registry"},{name:"REGISTRY_MONITOR_RUN_CANCEL",description:"Cancel monitor run",category:"Registry"},{name:"REGISTRY_MONITOR_RESULT_LIST",description:"List monitor results",category:"Registry"},{name:"REGISTRY_MONITOR_CONNECTION_LIST",description:"List monitor connections",category:"Registry"},{name:"REGISTRY_MONITOR_CONNECTION_SYNC",description:"Sync monitor connections",category:"Registry"},{name:"REGISTRY_MONITOR_CONNECTION_UPDATE_AUTH",description:"Update monitor connection auth",category:"Registry"},{name:"SANDBOX_START",description:"Start a sandbox VM with dev server preview",category:"VM"},{name:"SANDBOX_DELETE",description:"Stop and delete a sandbox VM",category:"VM"},{name:"GITHUB_LIST_USER_ORGS",description:"List GitHub user's personal account and organizations",category:"GitHub"},{name:"GLOBAL_SEARCH",description:"Search across organization resources (currently threads). Returns a typed union of matches.",category:"Search"},{name:"TASK_BOARD_ITEM_CREATE",description:"Create task board item",category:"Task Board"},{name:"TASK_BOARD_ITEM_LIST",description:"List task board items",category:"Task Board"},{name:"TASK_BOARD_ITEM_UPDATE",description:"Update task board item",category:"Task Board"},{name:"TASK_BOARD_ITEM_DELETE",description:"Delete task board item",category:"Task Board",dangerous:!0},{name:"TASK_BOARD_ITEM_PRS_GET",description:"Get a task board item's linked pull requests with live state",category:"Task Board"},{name:"TASK_BOARD_ITEM_PR_LINK",description:"Link a pull request a task run opened to its task board item",category:"Task Board"},{name:"TASK_BOARD_ITEM_RERUN",description:"Re-run a task with the Super Agent, failing any run still holding it open",category:"Task Board",dangerous:!0},{name:"TASK_BOARD_REVIEW_DECISION",description:"Record a reviewer's decision (approve or request changes) for a task under review",category:"Task Board",dangerous:!0},{name:"TASK_BOARD_PROMOTE_TO_PRODUCTION",description:"Merge a reviewed task's pull request and move the task to Done",category:"Task Board",dangerous:!0},{name:"TASK_BOARD_ACTIVITY_LIST",description:"List a task board item's change history",category:"Task Board"},{name:"TASK_BOARD_COMMENT_LIST",description:"List a task board item's comment threads",category:"Task Board"},{name:"TASK_BOARD_COMMENT_CREATE",description:"Post a comment or a reply on a task board item",category:"Task Board"},{name:"TASK_BOARD_COMMENT_UPDATE",description:"Edit a comment, or resolve/unresolve a comment thread",category:"Task Board"},{name:"TASK_BOARD_COMMENT_DELETE",description:"Delete a comment (a thread root takes its replies)",category:"Task Board"},{name:"TASK_BOARD_DISMISSED_LIST",description:"List diagnostic findings dismissed by deleting their task board cards",category:"Task Board"},{name:"TASK_BOARD_DISMISSED_RESTORE",description:"Un-dismiss diagnostic findings so the next report import pushes them again",category:"Task Board"},{name:"TASK_ADD_REPO",description:"Clone an organization repository into the sandbox of the task run calling it",category:"Task Board"}],aQ0=[{id:"basic-usage",label:"Basic Usage",description:"Tools all org members can access by default",section:"Basic Usage",tools:["COLLECTION_CONNECTIONS_LIST","COLLECTION_CONNECTIONS_GET","CONNECTION_TEST","COLLECTION_VIRTUAL_MCP_LIST","COLLECTION_VIRTUAL_MCP_GET","VIRTUAL_MCP_PLUGIN_CONFIG_GET","VIRTUAL_MCP_LAST_USED_LIST","AUTOMATION_GET","AUTOMATION_LIST","AUTOMATION_RUN_STATS","AI_PROVIDERS_LIST","AI_PROVIDERS_LIST_MODELS","AI_PROVIDERS_ACTIVE","AI_PROVIDER_KEY_LIST","AI_PROVIDER_CREDITS","AI_PROVIDER_TOPUP_URL","LIST_OBJECTS","GET_OBJECT_METADATA","GET_PRESIGNED_URL","PUT_PRESIGNED_URL","FILE_OBJECTS_LIST","ORG_REPO_SYNC_LIST","SANDBOX_START","SANDBOX_DELETE","GLOBAL_SEARCH","ORGANIZATION_SETTINGS_GET","USER_GET","BRAND_CONTEXT_LIST","COLLECTION_THREADS_CREATE","COLLECTION_THREADS_LIST","COLLECTION_THREADS_GET","COLLECTION_THREADS_UPDATE","COLLECTION_THREADS_DELETE","COLLECTION_THREAD_MESSAGES_LIST","TASK_BOARD_ITEM_CREATE","TASK_BOARD_ITEM_LIST","TASK_BOARD_ITEM_UPDATE","TASK_BOARD_ITEM_DELETE","TASK_BOARD_ITEM_PRS_GET","TASK_BOARD_ITEM_PR_LINK","TASK_BOARD_ITEM_RERUN","TASK_BOARD_REVIEW_DECISION","TASK_BOARD_PROMOTE_TO_PRODUCTION","TASK_BOARD_ACTIVITY_LIST","TASK_BOARD_COMMENT_LIST","TASK_BOARD_COMMENT_CREATE","TASK_BOARD_COMMENT_UPDATE","TASK_BOARD_COMMENT_DELETE","TASK_BOARD_DISMISSED_LIST","TASK_BOARD_DISMISSED_RESTORE"]},{id:"org:manage",label:"Manage organization",description:"Edit organization settings, brand context, and domain configuration",section:"Organization",tools:["ORGANIZATION_GET","ORGANIZATION_LIST","ORGANIZATION_UPDATE","ORGANIZATION_SETTINGS_GET","ORGANIZATION_SETTINGS_UPDATE","BRAND_CONTEXT_LIST","BRAND_CONTEXT_GET","BRAND_CONTEXT_CREATE","BRAND_CONTEXT_UPDATE","BRAND_CONTEXT_DELETE","BRAND_CONTEXT_EXTRACT","BRAND_GET","BRAND_LIST","ORGANIZATION_DOMAIN_LIST","ORGANIZATION_DOMAIN_ADD","ORGANIZATION_DOMAIN_UPDATE","ORGANIZATION_DOMAIN_VERIFY","ORGANIZATION_DOMAIN_REMOVE"]},{id:"members:manage",label:"Manage members",description:"Invite members, remove them, and change their roles",section:"Organization",tools:["ORGANIZATION_MEMBER_LIST","ORGANIZATION_MEMBER_ADD","ORGANIZATION_MEMBER_REMOVE","ORGANIZATION_MEMBER_UPDATE_ROLE","ORGANIZATION_BILLING_CHECKOUT_START","ORGANIZATION_BILLING_PORTAL","ORGANIZATION_TASK_QUOTA_GET","ORGANIZATION_JOIN_REQUEST_LIST","ORGANIZATION_JOIN_REQUEST_APPROVE","ORGANIZATION_JOIN_REQUEST_DENY"],dangerous:!0},{id:"connections:manage",label:"Manage connections",description:"Create, update, and delete connections",section:"Connections & Agents",tools:["COLLECTION_CONNECTIONS_CREATE","COLLECTION_CONNECTIONS_UPDATE","COLLECTION_CONNECTIONS_DELETE","COMMERCE_DISCOVERY_SETUP","COMMERCE_DISCOVERY_RUN","COMMERCE_DISCOVERY_BIND","COMMERCE_DISCOVERY_CONNECTION_STATUS"],dangerous:!0},{id:"agents:manage",label:"Manage agents",description:"Create, configure, and delete agents",section:"Connections & Agents",tools:["COLLECTION_VIRTUAL_MCP_CREATE","COLLECTION_VIRTUAL_MCP_UPDATE","COLLECTION_VIRTUAL_MCP_DELETE","VIRTUAL_MCP_PLUGIN_CONFIG_UPDATE","VIRTUAL_MCP_PINNED_VIEWS_UPDATE"],dangerous:!0},{id:"automations:manage",label:"Manage automations",description:"Create, update, run, and delete automations",section:"Automations",tools:["AUTOMATION_CREATE","AUTOMATION_UPDATE","AUTOMATION_DELETE","AUTOMATION_TRIGGER_ADD","AUTOMATION_TRIGGER_REMOVE","AUTOMATION_TRIGGER_ROTATE_TOKEN","AUTOMATION_RUN"],dangerous:!0},{id:"monitoring:view",label:"View monitoring",description:"Access logs and usage statistics",section:"Monitoring",tools:["MONITORING_HEATMAP","MONITORING_LOG_GET","MONITORING_LOGS_LIST","MONITORING_STATS","MONITORING_THREAD_USAGE"]},{id:"secrets:manage",label:"Manage secrets",description:"Create and list secrets stored in the credential vault",section:"Organization",tools:["SECRET_CREATE","SECRET_LIST"]},{id:"file-configs:manage",label:"Manage file configs",description:"Create, list, update and delete S3 bucket configurations and synced GitHub repositories",section:"Organization",tools:["FILE_CONFIG_CREATE","FILE_CONFIG_LIST","FILE_CONFIG_UPDATE","FILE_CONFIG_DELETE","FILE_OBJECTS_LIST","ORG_REPO_SYNC_CREATE","ORG_REPO_SYNC_LIST","ORG_REPO_SYNC_UPDATE","ORG_REPO_SYNC_DELETE","ORG_REPO_SYNC_RUN"]},{id:"ai-providers:manage",label:"Manage AI providers",description:"Add or remove API keys and provision provider credentials",section:"AI Providers",tools:["AI_PROVIDER_KEY_CREATE","AI_PROVIDER_KEY_LIST","AI_PROVIDER_KEY_DELETE","AI_PROVIDER_KEY_UPDATE","AI_PROVIDER_KEY_PREVIEW","AI_PROVIDER_OAUTH_URL","AI_PROVIDER_OAUTH_EXCHANGE","AI_PROVIDER_PROVISION_KEY","AI_PROVIDER_TOPUP_URL","AI_PROVIDER_CREDITS","CLAUDE_SUBSCRIPTION_CONNECT","CLAUDE_SUBSCRIPTION_STATUS","CLAUDE_SUBSCRIPTION_DISCONNECT"]},{id:"tags:manage",label:"Manage tags",description:"Create, assign, and delete organization tags",section:"Organization",tools:["TAGS_LIST","TAGS_CREATE","TAGS_DELETE","MEMBER_TAGS_GET","MEMBER_TAGS_SET"]},{id:"registry:manage",label:"Manage registry",description:"Browse, publish, and manage items in the registry",section:"Store & Registry",tools:["COLLECTION_REGISTRY_APP_LIST","COLLECTION_REGISTRY_APP_GET","COLLECTION_REGISTRY_APP_VERSIONS","COLLECTION_REGISTRY_APP_FILTERS","REGISTRY_ITEM_LIST","REGISTRY_ITEM_SEARCH","REGISTRY_ITEM_GET","REGISTRY_ITEM_VERSIONS","REGISTRY_ITEM_FILTERS","REGISTRY_DISCOVER_TOOLS","REGISTRY_ITEM_CREATE","REGISTRY_ITEM_BULK_CREATE","REGISTRY_ITEM_UPDATE","REGISTRY_ITEM_DELETE","REGISTRY_AI_GENERATE","REGISTRY_PUBLISH_REQUEST_LIST","REGISTRY_PUBLISH_REQUEST_REVIEW","REGISTRY_PUBLISH_REQUEST_COUNT","REGISTRY_PUBLISH_REQUEST_DELETE","REGISTRY_PUBLISH_API_KEY_GENERATE","REGISTRY_PUBLISH_API_KEY_LIST","REGISTRY_PUBLISH_API_KEY_REVOKE"],dangerous:!0},{id:"registry:monitor",label:"Monitor registry health",description:"Run health checks on registry connections and view results",section:"Store & Registry",tools:["REGISTRY_MONITOR_RUN_START","REGISTRY_MONITOR_RUN_LIST","REGISTRY_MONITOR_RUN_GET","REGISTRY_MONITOR_RUN_CANCEL","REGISTRY_MONITOR_RESULT_LIST","REGISTRY_MONITOR_CONNECTION_LIST","REGISTRY_MONITOR_CONNECTION_SYNC","REGISTRY_MONITOR_CONNECTION_UPDATE_AUTH"]},{id:"api-keys:manage",label:"Manage API keys",description:"Create, update, and revoke API keys",section:"Developer",tools:["API_KEY_CREATE","API_KEY_LIST","API_KEY_UPDATE","API_KEY_DELETE"]},{id:"storage:delete",label:"Delete from storage",description:"Permanently delete files from object storage",section:"Developer",tools:["DELETE_OBJECT","DELETE_OBJECTS"],dangerous:!0},{id:"connections:sql",label:"Run SQL queries",description:"Execute raw SQL against connected databases",section:"Developer",tools:["DATABASES_RUN_SQL"],dangerous:!0}],AQ8=new Set([...aQ0.find(($)=>$.id==="basic-usage")?.tools??[],"ORG_FS_READ","ORG_FS_WRITE"]),bH4=["agents:manage","connections:manage"],sQ0=new Set(aQ0.filter(($)=>bH4.includes($.id)).flatMap(($)=>$.tools))});function B3($){if(!$)return!1;return $.split(",").some((X)=>sp.includes(X))}function eQ0($,Z){let X=Array.isArray(Z)?Z:[Z];if(X.length===0)return!1;let Q=$?$.split(","):[];if(Q.includes("owner"))return!0;if(Q.includes("admin"))return X.every((Y)=>Y!=="owner");return!1}var Mg,sp;var O3=O(()=>{Mg=["owner","admin","user"],sp=["owner","admin"]});class Uz{userId;toolName;boundAuth;role;connectionId;getToolMeta;organizationId;_granted=!1;constructor($,Z,X,Q,Y="self",G,J){this.userId=$;this.toolName=Z;this.boundAuth=X;this.role=Q;this.connectionId=Y;this.getToolMeta=G;this.organizationId=J}setToolName($){this.toolName=$}setOrganizationId($){this.organizationId=$}getOrganizationId(){return this.organizationId}setRole($){this.role=$}getRole(){return this.role}grant(){this._granted=!0}async check(...$){if(this._granted)return;if(this.toolName?.startsWith("STUDIO_PUBLIC_")||this.toolName?.startsWith("MESH_PUBLIC_")){this.grant();return}if(!this.userId&&!this.boundAuth){if(this.getToolMeta&&await this.isToolPublic()){this.grant();return}throw new Vg("Authentication required. Please provide a valid OAuth token or API key.")}let Z=$.length>0?$:this.toolName?[this.toolName]:[];if(Z.length===0)throw new HN("No resources specified for access check");for(let X of Z)if(await this.checkResource(X)){this.grant();return}throw new HN(`Access denied to: ${Z.join(", ")}`)}async checkResource($){if(!this.userId&&!this.boundAuth)return!1;return this.boundAuth?.isApiKeyPrincipal?this.checkApiKeyAccess($):this.checkMemberAccess($)}async checkApiKeyAccess($){if(!this.boundAuth)return!1;return this.boundAuth.hasPermission({[this.connectionId]:[$]})}async checkMemberAccess($){if(this.userId&&this.role&&AQ8.has($))return!0;if(B3(this.role))return!0;if(!this.boundAuth)return!1;return this.boundAuth.hasPermission({[this.connectionId]:[$]},{organizationId:this.organizationId,role:this.role})}async isToolPublic(){if(this.toolName?.startsWith("STUDIO_PUBLIC_")||this.toolName?.startsWith("MESH_PUBLIC_"))return!0;if(!this.getToolMeta)return!1;try{let $=await this.getToolMeta();if(!$)return!1;let X=dW($)?.public_tool;return X===!0||X==="true"}catch{return!1}}granted(){return this._granted}}var Vg,HN;var Nz=O(()=>{qg();O3();Vg=class Vg extends Error{constructor($){super($);this.name="UnauthorizedError"}};HN=class HN extends Error{constructor($){super($);this.name="ForbiddenError"}}});function RQ8($){let Z={};for(let X of Object.keys($))Z[X]=["*"];return Z}function XQ($){let Z=$?.metadata;if(!Z)return!1;try{return(typeof Z==="string"?JSON.parse(Z):Z).archived===!0}catch{return!1}}function $Y0($,Z){return $.get(IQ8[Z])??$.get(qQ8[Z])}function ca0($,Z,X){$[IQ8[Z]]=X,$[qQ8[Z]]=X}var IQ8,qQ8;var la0=O(()=>{IQ8={token:"x-studio-token",client:"x-studio-client",properties:"x-studio-properties",runMetadata:"x-studio-run-metadata"},qQ8={token:"x-mesh-token",client:"x-mesh-client",properties:"x-mesh-properties",runMetadata:"x-mesh-run-metadata"}});function ZY0($){let Z=vB.get($);if(!Z||Z.state==="CLOSED")return;if(Z.state==="HALF_OPEN"){if(Z.halfOpenInFlight){if(Date.now()-Z.halfOpenStartedAt<e$8)throw new kg($,0)}Z.halfOpenInFlight=!0,Z.halfOpenStartedAt=Date.now();return}let X=Date.now()-Z.lastFailureTime;if(X>=Co0){Z.state="HALF_OPEN",Z.halfOpenInFlight=!0,Z.halfOpenStartedAt=Date.now();return}throw new kg($,Co0-X)}function XY0($){vB.delete($)}function QY0($){let Z=vB.get($);if(!Z){yH4(),vB.set($,{state:1>=So0?"OPEN":"CLOSED",consecutiveFailures:1,lastFailureTime:Date.now(),halfOpenInFlight:!1,halfOpenStartedAt:0});return}if(Z.consecutiveFailures++,Z.lastFailureTime=Date.now(),Z.halfOpenInFlight=!1,Z.consecutiveFailures>=So0)Z.state="OPEN"}function yH4(){if(vB.size<bX0)return;let $=null,Z=1/0;for(let[X,Q]of vB)if(Q.lastFailureTime<Z)Z=Q.lastFailureTime,$=X;if($)vB.delete($)}var vB,kg;var da0=O(()=>{t$();vB=new Map;y8.createObservableGauge("mcp_circuit_breaker.circuits",{description:"MCP connection circuits by state (open, half_open)",unit:"{circuits}"}).addCallback(($)=>{let Z=0,X=0;for(let Q of vB.values())if(Q.state==="OPEN")Z++;else if(Q.state==="HALF_OPEN")X++;$.observe(Z,{state:"open"}),$.observe(X,{state:"half_open"})});kg=class kg extends Error{cooldownRemainingMs;constructor($,Z){super(`Connection ${$} circuit breaker is open \u2014 downstream server unreachable. `+`Retry in ${Math.ceil(Z/1000)}s.`);this.name="CircuitOpenError",this.cooldownRemainingMs=Z}}});var ep=($,Z)=>{if(Z===null||Z===void 0)return;let X=$.replace(/\[(\w+)\]/g,".$1").split(".").filter(Boolean),Q=Z;for(let Y of X){if(Q===null||Q===void 0||typeof Q!=="object")return;Q=Q[Y]}return Q};function YY0($){let Z=$.split("::");if(Z.length!==2||!Z[0]||!Z[1])throw Error(`Invalid scope format: ${$}. Expected format: "KEY::SCOPE"`);return Z}function gH4($){try{return YY0($)}catch{return null}}function hH4($){if(typeof $==="object"&&$!==null&&"value"in $){let Z=$.value;if(typeof Z==="string")return Z}return null}function ma0($,Z){let X={};if(!$||!Z)return X;for(let Q of Z){if(Q==="*"){X["*"]=["*"];continue}let Y=gH4(Q);if(!Y)continue;let[G,J]=Y,K=ep(G,$),W=hH4(K);if(W){if(!X[W])X[W]=[];X[W].push(J)}}return X}function MQ8($,Z){let X=ma0($,Z);return new Set(Object.keys(X).filter((Q)=>Q!=="*"))}var ia0=()=>{};async function VQ8($){if(!$.refreshToken)return{success:!1,permanent:!1,error:"No refresh token available"};if(!$.tokenEndpoint)return{success:!1,permanent:!1,error:"No token endpoint available"};if(!$.clientId)return{success:!1,permanent:!1,error:"No client ID available"};try{let Z=new URLSearchParams({grant_type:"refresh_token",refresh_token:$.refreshToken,client_id:$.clientId});if($.clientSecret)Z.set("client_secret",$.clientSecret);if($.scope)Z.set("scope",$.scope);let X=await fetch($.tokenEndpoint,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:Z.toString(),signal:AbortSignal.timeout(1e4)});if(!X.ok){let G=await X.text(),J,K;try{let H=JSON.parse(G);J=H.error,K=H.error_description}catch{}let W=X.status===400&&!!J&&uH4.has(J);return(W?console.error:console.warn)("[TokenRefresh] refresh failed",{connectionId:$.connectionId,tokenEndpoint:$.tokenEndpoint,status:X.status,errorCode:J,errorDescription:K,permanent:W}),{success:!1,permanent:W,status:X.status,errorCode:J,error:K||J||`Token refresh failed: ${X.status}`}}let Q=await X.json();if(!Q.access_token)return console.warn("[TokenRefresh] 200 response missing access_token",{connectionId:$.connectionId,tokenEndpoint:$.tokenEndpoint}),{success:!1,permanent:!1,status:X.status,error:"Token endpoint returned no access_token"};let Y;if(Q.expires_in!==void 0){let G=Number(Q.expires_in);if(Number.isFinite(G)&&G>0)Y=G;else console.warn("[TokenRefresh] ignoring malformed expires_in",{connectionId:$.connectionId,tokenEndpoint:$.tokenEndpoint,expiresIn:Q.expires_in})}return{success:!0,accessToken:Q.access_token,refreshToken:Q.refresh_token||$.refreshToken,expiresIn:Y,scope:Q.scope}}catch(Z){return console.warn("[TokenRefresh] network/parse error",{connectionId:$.connectionId,tokenEndpoint:$.tokenEndpoint,message:Z instanceof Error?Z.message:String(Z)}),{success:!1,permanent:!1,error:Z instanceof Error?Z.message:"Token refresh failed"}}}var uH4;var kQ8=O(()=>{uH4=new Set(["invalid_grant","bad_refresh_token"])});var na0=($,Z,X)=>{return(Q,Y)=>{let G=-1;return J(0);async function J(K){if(K<=G)throw Error("next() called multiple times");G=K;let W,H=!1,U;if($[K])U=$[K][0][0],Q.req.routeIndex=K;else U=K===$.length&&Y||void 0;if(U)try{W=await U(Q,()=>J(K+1))}catch(N){if(N instanceof Error&&Z)Q.error=N,W=await Z(N,Q),H=!0;else throw N}else if(Q.finalized===!1&&X)W=await X(Q);if(W&&(Q.finalized===!1||H))Q.res=W;return Q}}};var SQ8=()=>{};var J8;var aJ=O(()=>{J8=class extends Error{res;status;constructor($=500,Z){super(Z?.message,{cause:Z?.cause});this.res=Z?.res,this.status=$}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 CQ8;var _Q8=O(()=>{CQ8=Symbol()});async function cH4($,Z){let X=await $.formData();if(X)return lH4(X,Z);return{}}function lH4($,Z){let X=Object.create(null);if($.forEach((Q,Y)=>{if(!(Z.all||Y.endsWith("[]")))X[Y]=Q;else dH4(X,Y,Q)}),Z.dot)Object.entries(X).forEach(([Q,Y])=>{if(Q.includes("."))mH4(X,Q,Y),delete X[Q]});return X}var vQ8=async($,Z=Object.create(null))=>{let{all:X=!1,dot:Q=!1}=Z,G=($ instanceof GY0?$.raw.headers:$.headers).get("Content-Type");if(G?.startsWith("multipart/form-data")||G?.startsWith("application/x-www-form-urlencoded"))return cH4($,{all:X,dot:Q});return{}},dH4=($,Z,X)=>{if($[Z]!==void 0)if(Array.isArray($[Z]))$[Z].push(X);else $[Z]=[$[Z],X];else if(!Z.endsWith("[]"))$[Z]=X;else $[Z]=[X]},mH4=($,Z,X)=>{if(/(?:^|\.)__proto__\./.test(Z))return;let Q=$,Y=Z.split(".");Y.forEach((G,J)=>{if(J===Y.length-1)Q[G]=X;else{if(!Q[G]||typeof Q[G]!=="object"||Array.isArray(Q[G])||Q[G]instanceof File)Q[G]=Object.create(null);Q=Q[G]}})};var xQ8=O(()=>{pa0()});var oa0=($)=>{let Z=$.split("/");if(Z[0]==="")Z.shift();return Z},fQ8=($)=>{let{groups:Z,path:X}=iH4($),Q=oa0(X);return nH4(Q,Z)},iH4=($)=>{let Z=[];return $=$.replace(/\{[^}]+\}/g,(X,Q)=>{let Y=`@${Q}`;return Z.push([Y,X]),Y}),{groups:Z,path:$}},nH4=($,Z)=>{for(let X=Z.length-1;X>=0;X--){let[Q]=Z[X];for(let Y=$.length-1;Y>=0;Y--)if($[Y].includes(Q)){$[Y]=$[Y].replace(Q,Z[X][1]);break}}return $},JY0,bQ8=($,Z)=>{if($==="*")return"*";let X=$.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/);if(X){let Q=`${$}#${Z}`;if(!JY0[Q])if(X[2])JY0[Q]=Z&&Z[0]!==":"&&Z[0]!=="*"?[Q,X[1],new RegExp(`^${X[2]}(?=/${Z})`)]:[$,X[1],new RegExp(`^${X[2]}$`)];else JY0[Q]=[$,X[1],!0];return JY0[Q]}return null},Sg=($,Z)=>{try{return Z($)}catch{return $.replace(/(?:%[0-9A-Fa-f]{2})+/g,(X)=>{try{return Z(X)}catch{return X}})}},yQ8=($)=>Sg($,decodeURI),ra0=($)=>{let Z=$.url,X=Z.indexOf("/",Z.indexOf(":")+4),Q=X;for(;Q<Z.length;Q++){let Y=Z.charCodeAt(Q);if(Y===37){let G=Z.indexOf("?",Q),J=Z.indexOf("#",Q),K=G===-1?J===-1?void 0:J:J===-1?G:Math.min(G,J),W=Z.slice(X,K);return yQ8(W.includes("%25")?W.replace(/%25/g,"%2525"):W)}else if(Y===63||Y===35)break}return Z.slice(X,Q)},gQ8=($)=>{let Z=ra0($);return Z.length>1&&Z.at(-1)==="/"?Z.slice(0,-1):Z},Fz=($,Z,...X)=>{if(X.length)Z=Fz(Z,...X);return`${$?.[0]==="/"?"":"/"}${$}${Z==="/"?"":`${$?.at(-1)==="/"?"":"/"}${Z?.[0]==="/"?Z.slice(1):Z}`}`},KY0=($)=>{if($.charCodeAt($.length-1)!==63||!$.includes(":"))return null;let Z=$.split("/"),X=[],Q="";return Z.forEach((Y)=>{if(Y!==""&&!/\:/.test(Y))Q+="/"+Y;else if(/\:/.test(Y))if(/\?/.test(Y)){if(X.length===0&&Q==="")X.push("/");else X.push(Q);let G=Y.replace("?","");Q+="/"+G,X.push(Q)}else Q+="/"+Y}),X.filter((Y,G,J)=>J.indexOf(Y)===G)},ta0=($)=>{if(!/[%+]/.test($))return $;if($.indexOf("+")!==-1)$=$.replace(/\+/g," ");return $.indexOf("%")!==-1?Sg($,$t):$},hQ8=($,Z,X)=>{let Q;if(!X&&Z&&!/[%+]/.test(Z)){let J=$.indexOf("?",8);if(J===-1)return;if(!$.startsWith(Z,J+1))J=$.indexOf(`&${Z}`,J+1);while(J!==-1){let K=$.charCodeAt(J+Z.length+1);if(K===61){let W=J+Z.length+2,H=$.indexOf("&",W);return ta0($.slice(W,H===-1?void 0:H))}else if(K==38||isNaN(K))return"";J=$.indexOf(`&${Z}`,J+1)}if(Q=/[%+]/.test($),!Q)return}let Y={};Q??=/[%+]/.test($);let G=$.indexOf("?",8);while(G!==-1){let J=$.indexOf("&",G+1),K=$.indexOf("=",G);if(K>J&&J!==-1)K=-1;let W=$.slice(G+1,K===-1?J===-1?void 0:J:K);if(Q)W=ta0(W);if(G=J,W==="")continue;let H;if(K===-1)H="";else if(H=$.slice(K+1,J===-1?void 0:J),Q)H=ta0(H);if(X){if(!(Y[W]&&Array.isArray(Y[W])))Y[W]=[];Y[W].push(H)}else Y[W]??=H}return Z?Y[Z]:Y},uQ8,cQ8=($,Z)=>{return hQ8($,Z,!0)},$t;var xB=O(()=>{JY0={},uQ8=hQ8,$t=decodeURIComponent});var lQ8=($)=>Sg($,$t),GY0;var pa0=O(()=>{aJ();_Q8();xQ8();xB();GY0=class{raw;#$;#Z;routeIndex=0;path;bodyCache={};constructor($,Z="/",X=[[]]){this.raw=$,this.path=Z,this.#Z=X,this.#$={}}param($){return $?this.#X($):this.#G()}#X($){let Z=this.#Z[0][this.routeIndex][1][$],X=this.#Y(Z);return X&&/\%/.test(X)?lQ8(X):X}#G(){let $={},Z=Object.keys(this.#Z[0][this.routeIndex][1]);for(let X of Z){let Q=this.#Y(this.#Z[0][this.routeIndex][1][X]);if(Q!==void 0)$[X]=/\%/.test(Q)?lQ8(Q):Q}return $}#Y($){return this.#Z[1]?this.#Z[1][$]:$}query($){return uQ8(this.url,$)}queries($){return cQ8(this.url,$)}header($){if($)return this.raw.headers.get($)??void 0;let Z={};return this.raw.headers.forEach((X,Q)=>{Z[Q]=X}),Z}async parseBody($){return vQ8(this,$)}#Q=($)=>{let{bodyCache:Z,raw:X}=this,Q=Z[$];if(Q)return Q;let Y=Object.keys(Z)[0];if(Y)return Z[Y].then((G)=>{if(Y==="json")G=JSON.stringify(G);return new Response(G)[$]()});return Z[$]=X[$]()};json(){return this.#Q("text").then(($)=>JSON.parse($))}text(){return this.#Q("text")}arrayBuffer(){return this.#Q("arrayBuffer")}blob(){return this.#Q("blob")}formData(){return this.#Q("formData")}addValidatedData($,Z){this.#$[$]=Z}valid($){return this.#$[$]}get url(){return this.raw.url}get method(){return this.raw.method}get[CQ8](){return this.#Z}get matchedRoutes(){return this.#Z[0].map(([[,$]])=>$)}get routePath(){return this.#Z[0].map(([[,$]])=>$)[this.routeIndex].path}}});var WY0,dQ8=($,Z)=>{let X=new String($);return X.isEscaped=!0,X.callbacks=Z,X},Zt=async($,Z,X,Q,Y)=>{if(typeof $==="object"&&!($ instanceof String)){if(!($ instanceof Promise))$=$.toString();if($ instanceof Promise)$=await $}let G=$.callbacks;if(!G?.length)return Promise.resolve($);if(Y)Y[0]+=$;else Y=[$];let J=Promise.all(G.map((K)=>K({phase:Z,buffer:Y,context:Q}))).then((K)=>Promise.all(K.filter(Boolean).map((W)=>Zt(W,Z,!1,Q,Y))).then(()=>Y[0]));if(X)return dQ8(await J,G);else return J};var HY0=O(()=>{WY0={Stringify:1,BeforeStream:2,Stream:3}});var mQ8="text/plain; charset=UTF-8",aa0=($,Z)=>{return{"Content-Type":$,...Z}},Xt=($,Z)=>new Response($,Z),iQ8=class{#$;#Z;env={};#X;finalized=!1;error;#G;#Y;#Q;#J;#K;#W;#U;#N;#F;constructor($,Z){if(this.#$=$,Z)this.#Y=Z.executionCtx,this.env=Z.env,this.#W=Z.notFoundHandler,this.#F=Z.path,this.#N=Z.matchResult}get req(){return this.#Z??=new GY0(this.#$,this.#F,this.#N),this.#Z}get event(){if(this.#Y&&"respondWith"in this.#Y)return this.#Y;else throw Error("This context has no FetchEvent")}get executionCtx(){if(this.#Y)return this.#Y;else throw Error("This context has no ExecutionContext")}get res(){return this.#Q||=Xt(null,{headers:this.#U??=new Headers})}set res($){if(this.#Q&&$){$=Xt($.body,$);for(let[Z,X]of this.#Q.headers.entries()){if(Z==="content-type")continue;if(Z==="set-cookie"){let Q=this.#Q.headers.getSetCookie();$.headers.delete("set-cookie");for(let Y of Q)$.headers.append("set-cookie",Y)}else $.headers.set(Z,X)}}this.#Q=$,this.finalized=!0}render=(...$)=>{return this.#K??=(Z)=>this.html(Z),this.#K(...$)};setLayout=($)=>this.#J=$;getLayout=()=>this.#J;setRenderer=($)=>{this.#K=$};header=($,Z,X)=>{if(this.finalized)this.#Q=Xt(this.#Q.body,this.#Q);let Q=this.#Q?this.#Q.headers:this.#U??=new Headers;if(Z===void 0)Q.delete($);else if(X?.append)Q.append($,Z);else Q.set($,Z)};status=($)=>{this.#G=$};set=($,Z)=>{this.#X??=new Map,this.#X.set($,Z)};get=($)=>{return this.#X?this.#X.get($):void 0};get var(){if(!this.#X)return{};return Object.fromEntries(this.#X)}#H($,Z,X){let Q=this.#Q?new Headers(this.#Q.headers):this.#U??new Headers;if(typeof Z==="object"&&"headers"in Z){let G=Z.headers instanceof Headers?Z.headers:new Headers(Z.headers);for(let[J,K]of G)if(J.toLowerCase()==="set-cookie")Q.append(J,K);else Q.set(J,K)}if(X)for(let[G,J]of Object.entries(X))if(typeof J==="string")Q.set(G,J);else{Q.delete(G);for(let K of J)Q.append(G,K)}let Y=typeof Z==="number"?Z:Z?.status??this.#G;return Xt($,{status:Y,headers:Q})}newResponse=(...$)=>this.#H(...$);body=($,Z,X)=>this.#H($,Z,X);text=($,Z,X)=>{return!this.#U&&!this.#G&&!Z&&!X&&!this.finalized?new Response($):this.#H($,Z,aa0(mQ8,X))};json=($,Z,X)=>{return this.#H(JSON.stringify($),Z,aa0("application/json",X))};html=($,Z,X)=>{let Q=(Y)=>this.#H(Y,Z,aa0("text/html; charset=UTF-8",X));return typeof $==="object"?Zt($,WY0.Stringify,!1,{}).then(Q):Q($)};redirect=($,Z)=>{let X=String($);return this.header("Location",!/[^\x00-\xFF]/.test(X)?X:encodeURI(X)),this.newResponse(null,Z??302)};notFound=()=>{return this.#W??=()=>Xt(),this.#W(this)}};var UY0=O(()=>{pa0();HY0()});var b$="ALL",nQ8="all",pQ8,NY0="Can not add a route since the matcher is already built.",FY0;var fB=O(()=>{pQ8=["get","post","put","delete","options","patch"],FY0=class extends Error{}});var sa0="__COMPOSED_HANDLER";var ea0=()=>{};var pH4=($)=>{return $.text("404 Not Found",404)},tQ8=($,Z)=>{if("getResponse"in $){let X=$.getResponse();return Z.newResponse(X.body,X)}return console.error($),Z.text("Internal Server Error",500)},oQ8=class ${get;post;put;delete;options;patch;all;on;use;router;getPath;_basePath="/";#$="/";routes=[];constructor(Z={}){[...pQ8,nQ8].forEach((G)=>{this[G]=(J,...K)=>{if(typeof J==="string")this.#$=J;else this.#G(G,this.#$,J);return K.forEach((W)=>{this.#G(G,this.#$,W)}),this}}),this.on=(G,J,...K)=>{for(let W of[J].flat()){this.#$=W;for(let H of[G].flat())K.map((U)=>{this.#G(H.toUpperCase(),this.#$,U)})}return this},this.use=(G,...J)=>{if(typeof G==="string")this.#$=G;else this.#$="*",J.unshift(G);return J.forEach((K)=>{this.#G(b$,this.#$,K)}),this};let{strict:Q,...Y}=Z;Object.assign(this,Y),this.getPath=Q??!0?Z.getPath??ra0:gQ8}#Z(){let Z=new $({router:this.router,getPath:this.getPath});return Z.errorHandler=this.errorHandler,Z.#X=this.#X,Z.routes=this.routes,Z}#X=pH4;errorHandler=tQ8;route(Z,X){let Q=this.basePath(Z);return X.routes.map((Y)=>{let G;if(X.errorHandler===tQ8)G=Y.handler;else G=async(J,K)=>(await na0([],X.errorHandler)(J,()=>Y.handler(J,K))).res,G[sa0]=Y.handler;Q.#G(Y.method,Y.path,G)}),this}basePath(Z){let X=this.#Z();return X._basePath=Fz(this._basePath,Z),X}onError=(Z)=>{return this.errorHandler=Z,this};notFound=(Z)=>{return this.#X=Z,this};mount(Z,X,Q){let Y,G;if(Q)if(typeof Q==="function")G=Q;else if(G=Q.optionHandler,Q.replaceRequest===!1)Y=(W)=>W;else Y=Q.replaceRequest;let J=G?(W)=>{let H=G(W);return Array.isArray(H)?H:[H]}:(W)=>{let H=void 0;try{H=W.executionCtx}catch{}return[W.env,H]};Y||=(()=>{let W=Fz(this._basePath,Z),H=W==="/"?0:W.length;return(U)=>{let N=new URL(U.url);return N.pathname=N.pathname.slice(H)||"/",new Request(N,U)}})();let K=async(W,H)=>{let U=await X(Y(W.req.raw),...J(W));if(U)return U;await H()};return this.#G(b$,Fz(Z,"*"),K),this}#G(Z,X,Q){Z=Z.toUpperCase(),X=Fz(this._basePath,X);let Y={basePath:this._basePath,path:X,method:Z,handler:Q};this.router.add(Z,X,[Q,Y]),this.routes.push(Y)}#Y(Z,X){if(Z instanceof Error)return this.errorHandler(Z,X);throw Z}#Q(Z,X,Q,Y){if(Y==="HEAD")return(async()=>new Response(null,await this.#Q(Z,X,Q,"GET")))();let G=this.getPath(Z,{env:Q}),J=this.router.match(Y,G),K=new iQ8(Z,{path:G,matchResult:J,env:Q,executionCtx:X,notFoundHandler:this.#X});if(J[0].length===1){let H;try{H=J[0][0][0][0](K,async()=>{K.res=await this.#X(K)})}catch(U){return this.#Y(U,K)}return H instanceof Promise?H.then((U)=>U||(K.finalized?K.res:this.#X(K))).catch((U)=>this.#Y(U,K)):H??this.#X(K)}let W=na0(J[0],this.errorHandler,this.#X);return(async()=>{try{let H=await W(K);if(!H.finalized)throw Error("Context is not finalized. Did you forget to return a Response object or `await next()`?");return H.res}catch(H){return this.#Y(H,K)}})()}fetch=(Z,...X)=>{return this.#Q(Z,X[1],X[0],Z.method)};request=(Z,X,Q,Y)=>{if(Z instanceof Request)return this.fetch(X?new Request(Z,X):Z,Q,Y);return Z=Z.toString(),this.fetch(new Request(/^https?:\/\//.test(Z)?Z:`http://localhost${Fz("/",Z)}`,X),Q,Y)};fire=()=>{addEventListener("fetch",(Z)=>{Z.respondWith(this.#Q(Z.request,Z,void 0,Z.request.method))})}};var rQ8=O(()=>{SQ8();UY0();fB();ea0();xB()});function wY0($,Z){let X=this.buildAllMatchers(),Q=(Y,G)=>{let J=X[Y]||X[b$],K=J[2][G];if(K)return K;let W=G.match(J[0]);if(!W)return[[],Qt];let H=W.indexOf("",1);return[J[1][H],W]};return this.match=Q,Q($,Z)}var Qt;var $s0=O(()=>{fB();Qt=[]});function oH4($,Z){if($.length===1)return Z.length===1?$<Z?-1:1:-1;if(Z.length===1)return 1;if($===Yt||$===Gt)return 1;else if(Z===Yt||Z===Gt)return-1;if($===BY0)return 1;else if(Z===BY0)return-1;return $.length===Z.length?$<Z?-1:1:Z.length-$.length}var BY0="[^/]+",Yt=".*",Gt="(?:|/.*)",wz,tH4,aQ8=class ${#$;#Z;#X=Object.create(null);insert(Z,X,Q,Y,G){if(Z.length===0){if(this.#$!==void 0)throw wz;if(G)return;this.#$=X;return}let[J,...K]=Z,W=J==="*"?K.length===0?["","",Yt]:["","",BY0]:J==="/*"?["","",Gt]:J.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/),H;if(W){let U=W[1],N=W[2]||BY0;if(U&&W[2]){if(N===".*")throw wz;if(N=N.replace(/^\((?!\?:)(?=[^)]+\)$)/,"(?:"),/\((?!\?:)/.test(N))throw wz}if(H=this.#X[N],!H){if(Object.keys(this.#X).some((F)=>F!==Yt&&F!==Gt))throw wz;if(G)return;if(H=this.#X[N]=new $,U!=="")H.#Z=Y.varIndex++}if(!G&&U!=="")Q.push([U,H.#Z])}else if(H=this.#X[J],!H){if(Object.keys(this.#X).some((U)=>U.length>1&&U!==Yt&&U!==Gt))throw wz;if(G)return;H=this.#X[J]=new $}H.insert(K,X,Q,Y,G)}buildRegExpStr(){let X=Object.keys(this.#X).sort(oH4).map((Q)=>{let Y=this.#X[Q];return(typeof Y.#Z==="number"?`(${Q})@${Y.#Z}`:tH4.has(Q)?`\\${Q}`:Q)+Y.buildRegExpStr()});if(typeof this.#$==="number")X.unshift(`#${this.#$}`);if(X.length===0)return"";if(X.length===1)return X[0];return"(?:"+X.join("|")+")"}};var Zs0=O(()=>{wz=Symbol(),tH4=new Set(".\\+*[^]$()")});var sQ8=class{#$={varIndex:0};#Z=new aQ8;insert($,Z,X){let Q=[],Y=[];for(let J=0;;){let K=!1;if($=$.replace(/\{[^}]+\}/g,(W)=>{let H=`@\\${J}`;return Y[J]=[H,W],J++,K=!0,H}),!K)break}let G=$.match(/(?::[^\/]+)|(?:\/\*$)|./g)||[];for(let J=Y.length-1;J>=0;J--){let[K]=Y[J];for(let W=G.length-1;W>=0;W--)if(G[W].indexOf(K)!==-1){G[W]=G[W].replace(K,Y[J][1]);break}}return this.#Z.insert(G,Z,Q,this.#$,X),Q}buildRegExp(){let $=this.#Z.buildRegExpStr();if($==="")return[/^$/,[],[]];let Z=0,X=[],Q=[];return $=$.replace(/#(\d+)|@(\d+)|\.\*\$/g,(Y,G,J)=>{if(G!==void 0)return X[++Z]=Number(G),"$()";if(J!==void 0)return Q[Number(J)]=++Z,"";return""}),[new RegExp(`^${$}`),X,Q]}};var eQ8=O(()=>{Zs0()});function ZY8($){return $Y8[$]??=new RegExp($==="*"?"":`^${$.replace(/\/\*$|([.\\+*[^\]$()])/g,(Z,X)=>X?`\\${X}`:"(?:|/.*)")}$`)}function aH4(){$Y8=Object.create(null)}function sH4($){let Z=new sQ8,X=[];if($.length===0)return rH4;let Q=$.map((H)=>[!/\*|\/:/.test(H[0]),...H]).sort(([H,U],[N,F])=>H?1:N?-1:U.length-F.length),Y=Object.create(null);for(let H=0,U=-1,N=Q.length;H<N;H++){let[F,w,B]=Q[H];if(F)Y[w]=[B.map(([D])=>[D,Object.create(null)]),Qt];else U++;let L;try{L=Z.insert(w,U,F)}catch(D){throw D===wz?new FY0(w):D}if(F)continue;X[U]=B.map(([D,E])=>{let z=Object.create(null);E-=1;for(;E>=0;E--){let[j,A]=L[E];z[j]=A}return[D,z]})}let[G,J,K]=Z.buildRegExp();for(let H=0,U=X.length;H<U;H++)for(let N=0,F=X[H].length;N<F;N++){let w=X[H][N]?.[1];if(!w)continue;let B=Object.keys(w);for(let L=0,D=B.length;L<D;L++)w[B[L]]=K[w[B[L]]]}let W=[];for(let H in J)W[H]=X[J[H]];return[G,W,Y]}function Cg($,Z){if(!$)return;for(let X of Object.keys($).sort((Q,Y)=>Y.length-Q.length))if(ZY8(X).test(Z))return[...$[X]];return}var rH4,$Y8,OY0=class{name="RegExpRouter";#$;#Z;constructor(){this.#$={[b$]:Object.create(null)},this.#Z={[b$]:Object.create(null)}}add($,Z,X){let Q=this.#$,Y=this.#Z;if(!Q||!Y)throw Error(NY0);if(!Q[$])[Q,Y].forEach((K)=>{K[$]=Object.create(null),Object.keys(K[b$]).forEach((W)=>{K[$][W]=[...K[b$][W]]})});if(Z==="/*")Z="*";let G=(Z.match(/\/:/g)||[]).length;if(/\*$/.test(Z)){let K=ZY8(Z);if($===b$)Object.keys(Q).forEach((W)=>{Q[W][Z]||=Cg(Q[W],Z)||Cg(Q[b$],Z)||[]});else Q[$][Z]||=Cg(Q[$],Z)||Cg(Q[b$],Z)||[];Object.keys(Q).forEach((W)=>{if($===b$||$===W)Object.keys(Q[W]).forEach((H)=>{K.test(H)&&Q[W][H].push([X,G])})}),Object.keys(Y).forEach((W)=>{if($===b$||$===W)Object.keys(Y[W]).forEach((H)=>K.test(H)&&Y[W][H].push([X,G]))});return}let J=KY0(Z)||[Z];for(let K=0,W=J.length;K<W;K++){let H=J[K];Object.keys(Y).forEach((U)=>{if($===b$||$===U)Y[U][H]||=[...Cg(Q[U],H)||Cg(Q[b$],H)||[]],Y[U][H].push([X,G-W+K+1])})}}match=wY0;buildAllMatchers(){let $=Object.create(null);return Object.keys(this.#Z).concat(Object.keys(this.#$)).forEach((Z)=>{$[Z]||=this.#X(Z)}),this.#$=this.#Z=void 0,aH4(),$}#X($){let Z=[],X=$===b$;if([this.#$,this.#Z].forEach((Q)=>{let Y=Q[$]?Object.keys(Q[$]).map((G)=>[G,Q[$][G]]):[];if(Y.length!==0)X||=!0,Z.push(...Y);else if($!==b$)Z.push(...Object.keys(Q[b$]).map((G)=>[G,Q[b$][G]]))}),!X)return null;else return sH4(Z)}};var Xs0=O(()=>{fB();xB();$s0();Zs0();eQ8();rH4=[/^$/,[],Object.create(null)],$Y8=Object.create(null)});var eH4=class{name="PreparedRegExpRouter";#$;#Z;constructor($,Z){this.#$=$,this.#Z=Z}#X($,Z){let X=this.#$[$];X[1].forEach((Q)=>Q&&Q.push(Z)),Object.values(X[2]).forEach((Q)=>Q[0].push(Z))}#G($,Z,X,Q,Y){let G=this.#$[$];if(!Y)G[2][Z][0].push([X,{}]);else Q.forEach((J)=>{if(typeof J==="number")G[1][J].push([X,Y]);else G[2][J||Z][0].push([X,Y])})}add($,Z,X){if(!this.#$[$]){let Y=this.#$[b$],G={};for(let J in Y[2])G[J]=[Y[2][J][0].slice(),Qt];this.#$[$]=[Y[0],Y[1].map((J)=>Array.isArray(J)?J.slice():0),G]}if(Z==="/*"||Z==="*"){let Y=[X,{}];if($===b$)for(let G in this.#$)this.#X(G,Y);else this.#X($,Y);return}let Q=this.#Z[Z];if(!Q)throw Error(`Path ${Z} is not registered`);for(let[Y,G]of Q)if($===b$)for(let J in this.#$)this.#G(J,Z,X,Y,G);else this.#G($,Z,X,Y,G)}buildAllMatchers(){return this.#$}match=wY0};var XY8=O(()=>{fB();$s0();Xs0()});var QY8=O(()=>{Xs0();XY8()});var Qs0=class{name="SmartRouter";#$=[];#Z=[];constructor($){this.#$=$.routers}add($,Z,X){if(!this.#Z)throw Error(NY0);this.#Z.push([$,Z,X])}match($,Z){if(!this.#Z)throw Error("Fatal error");let X=this.#$,Q=this.#Z,Y=X.length,G=0,J;for(;G<Y;G++){let K=X[G];try{for(let W=0,H=Q.length;W<H;W++)K.add(...Q[W]);J=K.match($,Z)}catch(W){if(W instanceof FY0)continue;throw W}this.match=K.match.bind(K),this.#$=[K],this.#Z=void 0;break}if(G===Y)throw Error("Fatal error");return this.name=`SmartRouter + ${this.activeRouter.name}`,J}get activeRouter(){if(this.#Z||this.#$.length!==1)throw Error("No active router has been determined yet.");return this.#$[0]}};var YY8=O(()=>{fB()});var GY8=O(()=>{YY8()});var Jt,$U4=($)=>{for(let Z in $)return!0;return!1},JY8=class ${#$;#Z;#X;#G=0;#Y=Jt;constructor(Z,X,Q){if(this.#Z=Q||Object.create(null),this.#$=[],Z&&X){let Y=Object.create(null);Y[Z]={handler:X,possibleKeys:[],score:0},this.#$=[Y]}this.#X=[]}insert(Z,X,Q){this.#G=++this.#G;let Y=this,G=fQ8(X),J=[];for(let K=0,W=G.length;K<W;K++){let H=G[K],U=G[K+1],N=bQ8(H,U),F=Array.isArray(N)?N[0]:H;if(F in Y.#Z){if(Y=Y.#Z[F],N)J.push(N[1]);continue}if(Y.#Z[F]=new $,N)Y.#X.push(N),J.push(N[1]);Y=Y.#Z[F]}return Y.#$.push({[Z]:{handler:Q,possibleKeys:J.filter((K,W,H)=>H.indexOf(K)===W),score:this.#G}}),Y}#Q(Z,X,Q,Y,G){for(let J=0,K=X.#$.length;J<K;J++){let W=X.#$[J],H=W[Q]||W[b$],U={};if(H!==void 0){if(H.params=Object.create(null),Z.push(H),Y!==Jt||G&&G!==Jt)for(let N=0,F=H.possibleKeys.length;N<F;N++){let w=H.possibleKeys[N],B=U[H.score];H.params[w]=G?.[w]&&!B?G[w]:Y[w]??G?.[w],U[H.score]=!0}}}}search(Z,X){let Q=[];this.#Y=Jt;let G=[this],J=oa0(X),K=[],W=J.length,H=null;for(let U=0;U<W;U++){let N=J[U],F=U===W-1,w=[];for(let L=0,D=G.length;L<D;L++){let E=G[L],z=E.#Z[N];if(z)if(z.#Y=E.#Y,F){if(z.#Z["*"])this.#Q(Q,z.#Z["*"],Z,E.#Y);this.#Q(Q,z,Z,E.#Y)}else w.push(z);for(let j=0,A=E.#X.length;j<A;j++){let P=E.#X[j],I=E.#Y===Jt?{}:{...E.#Y};if(P==="*"){let f=E.#Z["*"];if(f)this.#Q(Q,f,Z,E.#Y),f.#Y=I,w.push(f);continue}let[V,M,C]=P;if(!N&&!(C instanceof RegExp))continue;let m=E.#Z[V];if(C instanceof RegExp){if(H===null){H=Array(W);let o=X[0]==="/"?1:0;for(let b=0;b<W;b++)H[b]=o,o+=J[b].length+1}let f=X.substring(H[U]),y=C.exec(f);if(y){if(I[M]=y[0],this.#Q(Q,m,Z,E.#Y,I),$U4(m.#Z)){m.#Y=I;let o=y[0].match(/\//)?.length??0;(K[o]||=[]).push(m)}continue}}if(C===!0||C.test(N))if(I[M]=N,F){if(this.#Q(Q,m,Z,I,E.#Y),m.#Z["*"])this.#Q(Q,m.#Z["*"],Z,I,E.#Y)}else m.#Y=I,w.push(m)}}let B=K.shift();G=B?w.concat(B):w}if(Q.length>1)Q.sort((U,N)=>{return U.score-N.score});return[Q.map(({handler:U,params:N})=>[U,N])]}};var KY8=O(()=>{fB();xB();Jt=Object.create(null)});var Ys0=class{name="TrieRouter";#$;constructor(){this.#$=new JY8}add($,Z,X){let Q=KY0(Z);if(Q){for(let Y=0,G=Q.length;Y<G;Y++)this.#$.insert($,Q[Y],X);return}this.#$.insert($,Z,X)}match($,Z){return this.#$.search($,Z)}};var WY8=O(()=>{xB();KY8()});var HY8=O(()=>{WY8()});var I1;var Gs0=O(()=>{rQ8();QY8();GY8();HY8();I1=class extends oQ8{constructor($={}){super($);this.router=$.router??new Qs0({routers:[new OY0,new Ys0]})}}});var d6=O(()=>{Gs0()});import{z as W$}from"zod";function UY8(){return XU4.parse(process.env)}var Js0=($)=>W$.enum(["true","false","1","0"]).optional().transform((Z)=>Z===void 0?$:Z==="true"||Z==="1"),ZU4=($)=>W$.string().optional().transform((Z)=>Z?Z.split(",").map((X)=>X.trim()):$),XU4;var NY8=O(()=>{XU4=W$.object({AUTH_EMAIL_PASSWORD_ENABLED:Js0(!0),AUTH_GOOGLE_CLIENT_ID:W$.string().optional(),AUTH_GOOGLE_CLIENT_SECRET:W$.string().optional(),AUTH_GITHUB_CLIENT_ID:W$.string().optional(),AUTH_GITHUB_CLIENT_SECRET:W$.string().optional(),AUTH_RESEND_API_KEY:W$.string().optional(),AUTH_RESEND_FROM_EMAIL:W$.string().optional(),AUTH_SENDGRID_API_KEY:W$.string().optional(),AUTH_SENDGRID_FROM_EMAIL:W$.string().optional(),AUTH_INVITE_EMAIL_PROVIDER:W$.enum(["resend","sendgrid"]).optional(),AUTH_RESET_PASSWORD_EMAIL_PROVIDER:W$.enum(["resend","sendgrid"]).optional(),AUTH_MAGIC_LINK_ENABLED:Js0(!1),AUTH_MAGIC_LINK_EMAIL_PROVIDER:W$.enum(["resend","sendgrid"]).optional(),AUTH_EMAIL_OTP_ENABLED:Js0(!1),AUTH_EMAIL_OTP_EMAIL_PROVIDER:W$.enum(["resend","sendgrid"]).optional(),AUTH_EMAIL_OTP_LENGTH:W$.coerce.number().optional(),AUTH_EMAIL_OTP_EXPIRES_IN:W$.coerce.number().optional(),AUTH_SSO_DOMAIN:W$.string().optional(),AUTH_SSO_MS_TENANT_ID:W$.string().optional(),AUTH_SSO_MS_CLIENT_ID:W$.string().optional(),AUTH_SSO_MS_CLIENT_SECRET:W$.string().optional(),AUTH_SSO_SCOPES:ZU4(["openid","email","profile"]),AUTH_SSO_GOOGLE_CLIENT_ID:W$.string().optional(),AUTH_SSO_GOOGLE_CLIENT_SECRET:W$.string().optional()}).superRefine(($,Z)=>{let X=new Set;if($.AUTH_RESEND_API_KEY)X.add("resend");if($.AUTH_SENDGRID_API_KEY)X.add("sendgrid");let Q=["AUTH_INVITE_EMAIL_PROVIDER","AUTH_RESET_PASSWORD_EMAIL_PROVIDER","AUTH_MAGIC_LINK_EMAIL_PROVIDER","AUTH_EMAIL_OTP_EMAIL_PROVIDER"];for(let Y of Q){let G=$[Y];if(G&&!X.has(G)){let J=G==="resend"?"AUTH_RESEND_API_KEY":"AUTH_SENDGRID_API_KEY";Z.addIssue({code:W$.ZodIssueCode.custom,path:[Y],message:`${Y}="${G}" but ${J} is not set`})}}if($.AUTH_MAGIC_LINK_ENABLED&&X.size===0)Z.addIssue({code:W$.ZodIssueCode.custom,path:["AUTH_MAGIC_LINK_ENABLED"],message:"AUTH_MAGIC_LINK_ENABLED=true requires AUTH_RESEND_API_KEY or AUTH_SENDGRID_API_KEY to be set"});if($.AUTH_EMAIL_OTP_ENABLED&&X.size===0)Z.addIssue({code:W$.ZodIssueCode.custom,path:["AUTH_EMAIL_OTP_ENABLED"],message:"AUTH_EMAIL_OTP_ENABLED=true requires AUTH_RESEND_API_KEY or AUTH_SENDGRID_API_KEY to be set"});if($.AUTH_SSO_MS_CLIENT_ID&&$.AUTH_SSO_DOMAIN){if(!$.AUTH_SSO_MS_CLIENT_SECRET)Z.addIssue({code:W$.ZodIssueCode.custom,path:["AUTH_SSO_MS_CLIENT_SECRET"],message:"AUTH_SSO_MS_CLIENT_ID and AUTH_SSO_DOMAIN are set but AUTH_SSO_MS_CLIENT_SECRET is not"});if(!$.AUTH_SSO_MS_TENANT_ID)Z.addIssue({code:W$.ZodIssueCode.custom,path:["AUTH_SSO_MS_TENANT_ID"],message:"AUTH_SSO_MS_CLIENT_ID and AUTH_SSO_DOMAIN are set but AUTH_SSO_MS_TENANT_ID is not"})}if($.AUTH_SSO_GOOGLE_CLIENT_ID&&$.AUTH_SSO_DOMAIN&&!$.AUTH_SSO_GOOGLE_CLIENT_SECRET)Z.addIssue({code:W$.ZodIssueCode.custom,path:["AUTH_SSO_GOOGLE_CLIENT_SECRET"],message:"AUTH_SSO_GOOGLE_CLIENT_ID and AUTH_SSO_DOMAIN are set but AUTH_SSO_GOOGLE_CLIENT_SECRET is not"});if($.AUTH_EMAIL_OTP_LENGTH!==void 0&&(!Number.isInteger($.AUTH_EMAIL_OTP_LENGTH)||$.AUTH_EMAIL_OTP_LENGTH<1))Z.addIssue({code:W$.ZodIssueCode.custom,path:["AUTH_EMAIL_OTP_LENGTH"],message:"AUTH_EMAIL_OTP_LENGTH must be a positive integer"});if($.AUTH_EMAIL_OTP_EXPIRES_IN!==void 0&&(!Number.isInteger($.AUTH_EMAIL_OTP_EXPIRES_IN)||$.AUTH_EMAIL_OTP_EXPIRES_IN<1))Z.addIssue({code:W$.ZodIssueCode.custom,path:["AUTH_EMAIL_OTP_EXPIRES_IN"],message:"AUTH_EMAIL_OTP_EXPIRES_IN must be a positive integer"})}).transform(($)=>{let Z={};if($.AUTH_GOOGLE_CLIENT_ID)Z.google={clientId:$.AUTH_GOOGLE_CLIENT_ID,clientSecret:$.AUTH_GOOGLE_CLIENT_SECRET??""};if($.AUTH_GITHUB_CLIENT_ID)Z.github={clientId:$.AUTH_GITHUB_CLIENT_ID,clientSecret:$.AUTH_GITHUB_CLIENT_SECRET??""};let X=[];if($.AUTH_RESEND_API_KEY)X.push({id:"resend",provider:"resend",config:{apiKey:$.AUTH_RESEND_API_KEY,fromEmail:$.AUTH_RESEND_FROM_EMAIL??"noreply@example.com"}});if($.AUTH_SENDGRID_API_KEY)X.push({id:"sendgrid",provider:"sendgrid",config:{apiKey:$.AUTH_SENDGRID_API_KEY,fromEmail:$.AUTH_SENDGRID_FROM_EMAIL??"noreply@example.com"}});let Q=X[0]?.id,Y;if($.AUTH_SSO_MS_CLIENT_ID&&$.AUTH_SSO_DOMAIN)Y={providerId:"microsoft",domain:$.AUTH_SSO_DOMAIN,MS_TENANT_ID:$.AUTH_SSO_MS_TENANT_ID??"",MS_CLIENT_ID:$.AUTH_SSO_MS_CLIENT_ID,MS_CLIENT_SECRET:$.AUTH_SSO_MS_CLIENT_SECRET??"",scopes:$.AUTH_SSO_SCOPES};else if($.AUTH_SSO_GOOGLE_CLIENT_ID&&$.AUTH_SSO_DOMAIN)Y={providerId:"google",domain:$.AUTH_SSO_DOMAIN,GOOGLE_CLIENT_ID:$.AUTH_SSO_GOOGLE_CLIENT_ID,GOOGLE_CLIENT_SECRET:$.AUTH_SSO_GOOGLE_CLIENT_SECRET??"",scopes:$.AUTH_SSO_SCOPES};let G;if($.AUTH_MAGIC_LINK_ENABLED)G={enabled:!0,emailProviderId:$.AUTH_MAGIC_LINK_EMAIL_PROVIDER??Q??""};let J;if($.AUTH_EMAIL_OTP_ENABLED)J={enabled:!0,emailProviderId:$.AUTH_EMAIL_OTP_EMAIL_PROVIDER??Q??"",...$.AUTH_EMAIL_OTP_LENGTH!==void 0&&{otpLength:$.AUTH_EMAIL_OTP_LENGTH},...$.AUTH_EMAIL_OTP_EXPIRES_IN!==void 0&&{expiresIn:$.AUTH_EMAIL_OTP_EXPIRES_IN}};return{emailAndPassword:{enabled:$.AUTH_EMAIL_PASSWORD_ENABLED},socialProviders:Object.keys(Z).length>0?Z:void 0,emailProviders:X.length>0?X:void 0,inviteEmailProviderId:$.AUTH_INVITE_EMAIL_PROVIDER,resetPasswordEmailProviderId:$.AUTH_RESET_PASSWORD_EMAIL_PROVIDER,ssoConfig:Y,magicLinkConfig:G,emailOtpConfig:J}})});var LY0;var FY8=O(()=>{LY0={enabled:!0,batchSize:250,flushIntervalMs:300,maxQueueSize:1e4,redactor:"regex"}});import{existsSync as QU4,readFileSync as YU4}from"fs";function GU4(){let $=UY8(),Z=a0().configPath;if(!QU4(Z))return{auth:$,monitoring:LY0};try{let X=JSON.parse(YU4(Z,"utf-8"));if(X.auth)console.warn("[config] DEPRECATION: 'auth' key found in config.json. Auth is now configured via AUTH_* environment variables. The 'auth' key will be ignored.");return{auth:$,monitoring:X.monitoring??LY0,theme:X.theme,logo:X.logo,autoCreateOrganizationOnSignup:X.autoCreateOrganizationOnSignup}}catch{return{auth:$,monitoring:LY0}}}function Bz(){if(!Ks0)Ks0=GU4();return Ks0}function wY8(){return Bz().theme}var Ks0=null;var Ws0=O(()=>{NY8();FY8();k8()});import{dirname as JU4,posix as KU4,sep as WU4}from"path";function OY8(){let $=HU4();return async(Z)=>{for(let X of Z)X.module=$(X.filename);return Z}}function HU4($=process.argv[1]?JU4(process.argv[1]):process.cwd(),Z=WU4==="\\"){let X=Z?BY8($):$;return(Q)=>{if(!Q)return;let Y=Z?BY8(Q):Q,{dir:G,base:J,ext:K}=KU4.parse(Y);if(K===".js"||K===".mjs"||K===".cjs")J=J.slice(0,-1*K.length);let W=decodeURIComponent(J);if(!G)G=".";let H=G.lastIndexOf("/node_modules");if(H>-1)return`${G.slice(H+14).replace(/\//g,".")}:${W}`;if(G.startsWith(X)){let U=G.slice(X.length+1).replace(/\//g,".");return U?`${U}:${W}`:W}return W}}function BY8($){return $.replace(/^[A-Z]:/,"").replace(/\\/g,"/")}var LY8=()=>{};function UU4($,Z,X){return{key:$,enabled:typeof Z=="string"?!0:Z,variant:typeof Z=="string"?Z:void 0,reason:void 0,metadata:{id:void 0,version:void 0,payload:X?JSON.stringify(X):void 0,description:void 0}}}var Hs0=($)=>{if("flags"in $){let Z=DY8($.flags),X=EY8($.flags);return{...$,featureFlags:Z,featureFlagPayloads:X}}{let Z=$.featureFlags??{},X=Object.fromEntries(Object.entries($.featureFlagPayloads||{}).map(([Y,G])=>[Y,Us0(G)])),Q=Object.fromEntries(Object.entries(Z).map(([Y,G])=>[Y,UU4(Y,G,X[Y])]));return{...$,featureFlags:Z,featureFlagPayloads:X,flags:Q}}},DY8=($)=>Object.fromEntries(Object.entries($??{}).map(([Z,X])=>[Z,Kt(X)]).filter(([,Z])=>Z!==void 0)),EY8=($)=>{let Z=$??{};return Object.fromEntries(Object.keys(Z).filter((X)=>{let Q=Z[X];return Q.enabled&&Q.metadata&&Q.metadata.payload!==void 0}).map((X)=>{let Q=Z[X].metadata?.payload;return[X,Q?Us0(Q):void 0]}))},Kt=($)=>$===void 0?void 0:$.variant??$.enabled,Us0=($)=>{if(typeof $!="string")return $;try{return JSON.parse($)}catch{return $}};var DY0=()=>{};function zY8(){return"CompressionStream"in globalThis&&"TextEncoder"in globalThis&&"Response"in globalThis&&typeof Response.prototype.blob=="function"}async function EY0($,Z=!0,X){try{let Q=new CompressionStream("gzip"),Y=Q.writable.getWriter(),G=Y.write(new TextEncoder().encode($)).then(()=>Y.close()).catch(async(W)=>{try{await Y.abort(W)}catch{}throw W}),J=new Response(Q.readable).blob(),[K]=await Promise.all([J,G]);return K}catch(Q){if(X?.rethrow)throw Q;if(Z)console.error("Failed to gzip compress data",Q);return null}}var Ns0=()=>{};var NU4,jY8=function($,Z=[]){if(!$)return!1;let X=$.toLowerCase();return NU4.concat(Z).some((Q)=>{let Y=Q.toLowerCase();return X.indexOf(Y)!==-1})};var PY8=O(()=>{NU4=["amazonbot","amazonproductbot","app.hypefactors.com","applebot","archive.org_bot","awariobot","backlinksextendedbot","baiduspider","bingbot","bingpreview","chrome-lighthouse","dataforseobot","deepscan","duckduckbot","facebookexternal","facebookcatalog","http://yandex.com/bots","hubspot","ia_archiver","leikibot","linkedinbot","meta-externalagent","mj12bot","msnbot","nessus","petalbot","pinterest","prerender","rogerbot","screaming frog","sebot-wa","sitebulb","slackbot","slurp","trendictionbot","turnitin","twitterbot","vercel-screenshot","vercelbot","yahoo! slurp","yandexbot","zoombot","bot.htm","bot.php","(bot;","bot/","crawler","ahrefsbot","ahrefssiteaudit","semrushbot","siteauditbot","splitsignalbot","gptbot","oai-searchbot","chatgpt-user","perplexitybot","better uptime bot","sentryuptimebot","uptimerobot","headlesschrome","cypress","google-hoteladsverifier","adsbot-google","apis-google","duplexweb-google","feedfetcher-google","google favicon","google web preview","google-read-aloud","googlebot","googleother","google-cloudvertexbot","googleweblight","mediapartners-google","storebot-google","google-inspectiontool","bytespider"]});var HX;var Oz=O(()=>{HX=function($){return $.AnonymousId="anonymous_id",$.DistinctId="distinct_id",$.Props="props",$.EnablePersonProcessing="enable_person_processing",$.PersonMode="person_mode",$.FeatureFlagDetails="feature_flag_details",$.FeatureFlags="feature_flags",$.FeatureFlagPayloads="feature_flag_payloads",$.BootstrapFeatureFlagDetails="bootstrap_feature_flag_details",$.BootstrapFeatureFlags="bootstrap_feature_flags",$.BootstrapFeatureFlagPayloads="bootstrap_feature_flag_payloads",$.OverrideFeatureFlags="override_feature_flags",$.Queue="queue",$.LogsQueue="logs_queue",$.OptedOut="opted_out",$.SessionId="session_id",$.SessionStartTimestamp="session_start_timestamp",$.SessionLastTimestamp="session_timestamp",$.PersonProperties="person_properties",$.GroupProperties="group_properties",$.InstalledAppBuild="installed_app_build",$.InstalledAppVersion="installed_app_version",$.SessionReplay="session_replay",$.SurveyLastSeenDate="survey_last_seen_date",$.SurveysSeen="surveys_seen",$.Surveys="surveys",$.RemoteConfig="remote_config",$.FlagsEndpointWasHit="flags_endpoint_was_hit",$.DeviceId="device_id",$}({})});var zY0=()=>{};function PY0($){return $===null||typeof $!="object"}function Lz($,Z){return Object.prototype.toString.call($)===`[object ${Z}]`}function RY8($){return Lz($,"ErrorEvent")}function vg($){return typeof Event<"u"&&BU4($,Event)}function IY8($){return Lz($,"Object")}function BU4($,Z){try{return $ instanceof Z}catch{return!1}}var wU4,AY8,rE5,Fs0,jY0,Wt=($)=>$===Object($)&&!jY0($),_g=($)=>$===void 0,bB=($)=>Fs0.call($)=="[object String]",TY8=($)=>bB($)&&$.trim().length===0,Ht=($)=>Fs0.call($)=="[object Number]"&&$===$,ws0=($)=>$ instanceof Error;var Ut=O(()=>{Oz();zY0();wU4=Array.isArray,AY8=Object.prototype,rE5=AY8.hasOwnProperty,Fs0=AY8.toString,jY0=wU4||function($){return Fs0.call($)==="[object Array]"}});function Nt($,Z,X,Q,Y){if(Z>X)Q.warn("min cannot be greater than max."),Z=X;if(Ht($))if($>X)return Q.warn(" cannot be greater than max: "+X+". Using max value instead."),X;else{if(!($<Z))return $;return Q.warn(" cannot be less than min: "+Z+". Using min value instead."),Z}return Q.warn(" must be a number. using max or fallback. max: "+X+", fallback: "+Y),Nt(Y||X,Z,X,Q)}var Bs0=O(()=>{Ut()});class Os0{constructor($){this._buckets={},this._onBucketRateLimited=$._onBucketRateLimited,this._bucketSize=Nt($.bucketSize,0,100,$._logger),this._refillRate=Nt($.refillRate,0,this._bucketSize,$._logger),this._refillInterval=Nt($.refillInterval,0,OU4,$._logger)}_applyRefill($,Z){let X=Z-$.lastAccess,Q=Math.floor(X/this._refillInterval);if(Q>0){let Y=Q*this._refillRate;$.tokens=Math.min($.tokens+Y,this._bucketSize),$.lastAccess=$.lastAccess+Q*this._refillInterval}}consumeRateLimit($){let Z=Date.now(),X=String($),Q=this._buckets[X];if(Q)this._applyRefill(Q,Z);else Q={tokens:this._bucketSize,lastAccess:Z},this._buckets[X]=Q;if(Q.tokens===0)return!0;if(Q.tokens--,Q.tokens===0)this._onBucketRateLimited?.($);return Q.tokens===0}stop(){this._buckets={}}}var OU4=86400000;var qY8=O(()=>{Bs0()});class Dz{constructor($){this.bytes=$}static ofInner($){if($.length===16)return new Dz($);throw TypeError("not 128-bit length")}static fromFieldsV7($,Z,X,Q){if(!Number.isInteger($)||!Number.isInteger(Z)||!Number.isInteger(X)||!Number.isInteger(Q)||$<0||Z<0||X<0||Q<0||$>281474976710655||Z>4095||X>1073741823||Q>4294967295)throw RangeError("invalid field value");let Y=new Uint8Array(16);return Y[0]=$/1099511627776,Y[1]=$/4294967296,Y[2]=$/16777216,Y[3]=$/65536,Y[4]=$/256,Y[5]=$,Y[6]=112|Z>>>8,Y[7]=Z,Y[8]=128|X>>>24,Y[9]=X>>>16,Y[10]=X>>>8,Y[11]=X,Y[12]=Q>>>24,Y[13]=Q>>>16,Y[14]=Q>>>8,Y[15]=Q,new Dz(Y)}static parse($){let Z;switch($.length){case 32:Z=/^[0-9a-f]{32}$/i.exec($)?.[0];break;case 36:Z=/^([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})$/i.exec($)?.slice(1,6).join("");break;case 38:Z=/^\{([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})\}$/i.exec($)?.slice(1,6).join("");break;case 45:Z=/^urn:uuid:([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})$/i.exec($)?.slice(1,6).join("");break;default:break}if(Z){let X=new Uint8Array(16);for(let Q=0;Q<16;Q+=4){let Y=parseInt(Z.substring(2*Q,2*Q+8),16);X[Q+0]=Y>>>24,X[Q+1]=Y>>>16,X[Q+2]=Y>>>8,X[Q+3]=Y}return new Dz(X)}throw SyntaxError("could not parse UUID string")}toString(){let $="";for(let Z=0;Z<this.bytes.length;Z++)if($+="0123456789abcdef".charAt(this.bytes[Z]>>>4),$+="0123456789abcdef".charAt(15&this.bytes[Z]),Z===3||Z===5||Z===7||Z===9)$+="-";return $}toHex(){let $="";for(let Z=0;Z<this.bytes.length;Z++)$+="0123456789abcdef".charAt(this.bytes[Z]>>>4),$+="0123456789abcdef".charAt(15&this.bytes[Z]);return $}toJSON(){return this.toString()}getVariant(){let $=this.bytes[8]>>>4;if($<0)throw Error("unreachable");if($<=7)return this.bytes.every((Z)=>Z===0)?"NIL":"VAR_0";if($<=11)return"VAR_10";if($<=13)return"VAR_110";if($<=15)return this.bytes.every((Z)=>Z===255)?"MAX":"VAR_RESERVED";else throw Error("unreachable")}getVersion(){return this.getVariant()==="VAR_10"?this.bytes[6]>>>4:void 0}clone(){return new Dz(this.bytes.slice(0))}equals($){return this.compareTo($)===0}compareTo($){for(let Z=0;Z<16;Z++){let X=this.bytes[Z]-$.bytes[Z];if(X!==0)return Math.sign(X)}return 0}}class VY8{constructor($){this.timestamp=0,this.counter=0,this.random=$??LU4()}generate(){return this.generateOrResetCore(Date.now(),1e4)}generateOrAbort(){return this.generateOrAbortCore(Date.now(),1e4)}generateOrResetCore($,Z){let X=this.generateOrAbortCore($,Z);if(X===void 0)this.timestamp=0,X=this.generateOrAbortCore($,Z);return X}generateOrAbortCore($,Z){if(!Number.isInteger($)||$<1||$>281474976710655)throw RangeError("`unixTsMs` must be a 48-bit positive integer");if(Z<0||Z>281474976710655)throw RangeError("`rollbackAllowance` out of reasonable range");if($>this.timestamp)this.timestamp=$,this.resetCounter();else{if(!($+Z>=this.timestamp))return;if(this.counter++,this.counter>4398046511103)this.timestamp++,this.resetCounter()}return Dz.fromFieldsV7(this.timestamp,Math.trunc(this.counter/1073741824),this.counter&1073741823,this.random.nextUint32())}resetCounter(){this.counter=1024*this.random.nextUint32()+(1023&this.random.nextUint32())}generateV4(){let $=new Uint8Array(Uint32Array.of(this.random.nextUint32(),this.random.nextUint32(),this.random.nextUint32(),this.random.nextUint32()).buffer);return $[6]=64|$[6]>>>4,$[8]=128|$[8]>>>2,Dz.ofInner($)}}var LU4=()=>({nextUint32:()=>65536*Math.trunc(65536*Math.random())+Math.trunc(65536*Math.random())}),MY8,yB=()=>DU4().toString(),DU4=()=>(MY8||(MY8=new VY8)).generate();var Ft=O(()=>{/*! For license information please see uuidv7.mjs.LICENSE.txt */});class Ls0{add($){let Z=yB();return this.promiseByIds[Z]=$,$.catch(()=>{}).finally(()=>{delete this.promiseByIds[Z]}),$}async join(){let $=Object.values(this.promiseByIds),Z=$.length;while(Z>0)await Promise.all($),$=Object.values(this.promiseByIds),Z=$.length}get length(){return Object.keys(this.promiseByIds).length}constructor(){this.promiseByIds={}}}var kY8=O(()=>{Ft()});function EU4($=console){return{log:$.log.bind($),warn:$.warn.bind($),error:$.error.bind($),debug:$.debug.bind($)}}function CY8($,Z=zU4){return SY8($,Z,EU4())}var SY8=($,Z,X)=>{function Q(G,...J){Z(()=>{let K=X[G];K($,...J)})}return{info:(...G)=>{Q("log",...G)},warn:(...G)=>{Q("warn",...G)},error:(...G)=>{Q("error",...G)},critical:(...G)=>{X.error($,...G)},createLogger:(G)=>SY8(`${$} ${G}`,Z,X)}},zU4=($)=>$();var _Y8=()=>{};var fg="Mobile",TY0="iOS",xg="Android",vY8="Tablet",Wz5,PU4="Apple",Hz5,xY8="Safari",RY0="BlackBerry",fY8="Samsung",AU4,TU4,IY0="Chrome",RU4,IU4,bY8="Internet Explorer",qU4,Es0="Opera",Uz5,yY8="Edge",MU4,zs0="Firefox",VU4,js0="Nintendo",Ps0="PlayStation",AY0="Xbox",kU4,SU4,wt="Windows",CU4,gY8="Generic",Nz5,Fz5,_U4="Konqueror",QQ="(\\d+(\\.\\d+)?)",Ds0,wz5,Bz5,Oz5,vU4,xU4,Lz5,Dz5;var hY8=O(()=>{zY0();Ut();Wz5=xg+" "+vY8,Hz5=PU4+" Watch",AU4=fY8+"Browser",TU4=fY8+" Internet",RU4=IY0+" OS",IU4=IY0+" "+TY0,qU4=bY8+" "+fg,Uz5=Es0+" Mini",MU4="Microsoft "+yY8,VU4=zs0+" "+TY0,kU4=xg+" "+fg,SU4=fg+" "+xY8,CU4=wt+" Phone",Nz5=gY8+" "+fg.toLowerCase(),Fz5=gY8+" "+vY8.toLowerCase(),Ds0=new RegExp("Version/"+QQ),wz5=new RegExp(AY0,"i"),Bz5=new RegExp(Ps0+" \\w+","i"),Oz5=new RegExp(js0+" \\w+","i"),vU4=new RegExp(RY0+"|PlayBook|BB10","i"),xU4={"NT3.51":"NT 3.11","NT4.0":"NT 4.0","5.0":"2000","5.1":"XP","5.2":"XP","6.0":"Vista","6.1":"7","6.2":"8","6.3":"8.1","6.4":"10","10.0":"10"},Lz5={[qU4]:[new RegExp("rv:"+QQ)],[MU4]:[new RegExp(yY8+"?\\/"+QQ)],[IY0]:[new RegExp("("+IY0+"|CrMo)\\/"+QQ)],[IU4]:[new RegExp("CriOS\\/"+QQ)],"UC Browser":[new RegExp("(UCBrowser|UCWEB)\\/"+QQ)],[xY8]:[Ds0],[SU4]:[Ds0],[Es0]:[new RegExp("("+Es0+"|OPR)\\/"+QQ)],[zs0]:[new RegExp(zs0+"\\/"+QQ)],[VU4]:[new RegExp("FxiOS\\/"+QQ)],[_U4]:[new RegExp("Konqueror[:/]?"+QQ,"i")],[RY0]:[new RegExp(RY0+" "+QQ),Ds0],[kU4]:[new RegExp("android\\s"+QQ,"i")],[TU4]:[new RegExp(AU4+"\\/"+QQ)],[bY8]:[new RegExp("(rv:|MSIE )"+QQ)],Mozilla:[new RegExp("rv:"+QQ)]},Dz5=[[new RegExp(AY0+"; "+AY0+" (.*?)[);]","i"),($)=>[AY0,$&&$[1]||""]],[new RegExp(js0,"i"),[js0,""]],[new RegExp(Ps0,"i"),[Ps0,""]],[vU4,[RY0,""]],[new RegExp(wt,"i"),($,Z)=>{if(/Phone/.test(Z)||/WPDesktop/.test(Z))return[CU4,""];if(new RegExp(fg).test(Z)&&!/IEMobile\b/.test(Z))return[wt+" "+fg,""];let X=/Windows NT ([0-9.]+)/i.exec(Z);if(X&&X[1]){let Q=X[1],Y=xU4[Q]||"";if(/arm/i.test(Z))Y="RT";return[wt,Y]}return[wt,""]}],[/((iPhone|iPad|iPod).*?OS (\d+)_(\d+)_?(\d+)?|iPhone)/,($)=>{if($&&$[3]){let Z=[$[3],$[4],$[5]||"0"];return[TY0,Z.join(".")]}return[TY0,""]}],[/(watch.*\/(\d+\.\d+\.\d+)|watch os,(\d+\.\d+),)/i,($)=>{let Z="";if($&&$.length>=3)Z=_g($[2])?$[3]:$[2];return["watchOS",Z]}],[new RegExp("("+xg+" (\\d+)\\.(\\d+)\\.?(\\d+)?|"+xg+")","i"),($)=>{if($&&$[2]){let Z=[$[2],$[3],$[4]||"0"];return[xg,Z.join(".")]}return[xg,""]}],[/Mac OS X (\d+)[_.](\d+)[_.]?(\d+)?/i,($)=>{let Z=["Mac OS X",""];if($&&$[1]){let X=[$[1],$[2],$[3]||"0"];Z[1]=X.join(".")}return Z}],[/Mac/i,["Mac OS X",""]],[/CrOS/,[RU4,""]],[/Linux|debian/i,["Linux",""]]]});function cY8($){return $?.replace(/\/+$/,"")}async function lY8($,Z){let X=null;for(let Q=0;Q<Z.retryCount+1;Q++){if(Q>0)await new Promise((Y)=>setTimeout(Y,Z.retryDelay));try{return await $()}catch(Y){if(X=Y,!Z.retryCheck(Y))throw Y}}throw X}function qY0(){return new Date().toISOString()}function UN($,Z){let X=setTimeout($,Z);return X?.unref&&X?.unref(),X}function As0($){return Promise.all($.map((Z)=>(Z??Promise.resolve()).then((X)=>({status:"fulfilled",value:X}),(X)=>({status:"rejected",reason:X}))))}var uY8="utf8",dY8=($)=>$ instanceof Error;var YQ=O(()=>{PY8();qY8();Bs0();zY0();Ut();kY8();_Y8();hY8()});var fU4,Cz5;var Ts0=O(()=>{YQ();fU4={trace:{text:"TRACE",number:1},debug:{text:"DEBUG",number:5},info:{text:"INFO",number:9},warn:{text:"WARN",number:13},error:{text:"ERROR",number:17},fatal:{text:"FATAL",number:21}},Cz5=fU4.info});var mY8=O(()=>{Ts0();Oz()});var iY8=O(()=>{Oz()});class Rs0{constructor(){this.events={},this.events={}}on($,Z){if(!this.events[$])this.events[$]=[];return this.events[$].push(Z),()=>{this.events[$]=this.events[$].filter((X)=>X!==Z)}}emit($,Z){for(let X of this.events[$]||[])X(Z);for(let X of this.events["*"]||[])X($,Z)}}var nY8=()=>{};async function pY8($){if($ instanceof bg){let Z="";try{Z=await $.text}catch{}console.error(`Error while flushing PostHog: message=${$.message}, response body=${Z}`,$)}else console.error("Error while flushing PostHog",$);return Promise.resolve()}function Is0($){return typeof $=="object"&&($ instanceof bg||$ instanceof Bt)}function tY8($){return typeof $=="object"&&$ instanceof bg&&$.status===413}class MY0{constructor($,Z={}){this.flushPromise=null,this.shutdownPromise=null,this.promiseQueue=new Ls0,this._events=new Rs0,this._isInitialized=!1;let X=typeof $=="string"?$.trim():"",Q=typeof Z.host=="string"?Z.host.trim():"",Y=!X;if(this._logger=CY8("[PostHog]",this.logMsgIfDebug.bind(this)),Y)this._logger.error("You must pass your PostHog project's api key. The client will be disabled.");if(this.apiKey=X,this.host=cY8(Q||"https://us.i.posthog.com"),this.flushAt=Z.flushAt?Math.max(Z.flushAt,1):20,this.maxBatchSize=Math.max(this.flushAt,Z.maxBatchSize??100),this.maxQueueSize=Math.max(this.flushAt,Z.maxQueueSize??1000),this.flushInterval=Z.flushInterval??1e4,this.preloadFeatureFlags=Z.preloadFeatureFlags??!0,this.defaultOptIn=Z.defaultOptIn??!0,this.disableSurveys=Z.disableSurveys??!1,this._retryOptions={retryCount:Z.fetchRetryCount??3,retryDelay:Z.fetchRetryDelay??3000,retryCheck:Is0},this.requestTimeout=Z.requestTimeout??1e4,this.featureFlagsRequestTimeoutMs=Z.featureFlagsRequestTimeoutMs??3000,this.remoteConfigRequestTimeoutMs=Z.remoteConfigRequestTimeoutMs??3000,this.disableGeoip=Z.disableGeoip??!0,this.disabled=(Z.disabled??!1)||Y,this.historicalMigration=Z?.historicalMigration??!1,this._initPromise=Promise.resolve(),this._isInitialized=!0,this.evaluationContexts=Z?.evaluationContexts??Z?.evaluationEnvironments,Z?.evaluationEnvironments&&!Z?.evaluationContexts)this._logger.warn("evaluationEnvironments is deprecated. Use evaluationContexts instead. This property will be removed in a future version.");this.disableCompression=!zY8()||(Z?.disableCompression??!1)}logMsgIfDebug($){if(this.isDebug)$()}wrap($){if(this.disabled)return void this._logger.warn("The client is disabled");if(this._isInitialized)return $();this._initPromise.then(()=>$())}getCommonEventProperties(){return{$lib:this.getLibraryId(),$lib_version:this.getLibraryVersion()}}get optedOut(){return this.getPersistedProperty(HX.OptedOut)??!this.defaultOptIn}async optIn(){this.wrap(()=>{this.setPersistedProperty(HX.OptedOut,!1)})}async optOut(){this.wrap(()=>{this.setPersistedProperty(HX.OptedOut,!0)})}on($,Z){return this._events.on($,Z)}debug($=!0){if(this.removeDebugCallback?.(),$){let Z=this.on("*",(X,Q)=>this._logger.info(X,Q));this.removeDebugCallback=()=>{Z(),this.removeDebugCallback=void 0}}}get isDebug(){return!!this.removeDebugCallback}get isDisabled(){return this.disabled}buildPayload($){return{distinct_id:$.distinct_id,event:$.event,properties:{...$.properties||{},...this.getCommonEventProperties()}}}addPendingPromise($){return this.promiseQueue.add($)}identifyStateless($,Z,X){this.wrap(()=>{let Q={...this.buildPayload({distinct_id:$,event:"$identify",properties:Z})};this.enqueue("identify",Q,X)})}async identifyStatelessImmediate($,Z,X){let Q={...this.buildPayload({distinct_id:$,event:"$identify",properties:Z})};await this.sendImmediate("identify",Q,X)}captureStateless($,Z,X,Q){this.wrap(()=>{let Y=this.buildPayload({distinct_id:$,event:Z,properties:X});this.enqueue("capture",Y,Q)})}async captureStatelessImmediate($,Z,X,Q){let Y=this.buildPayload({distinct_id:$,event:Z,properties:X});await this.sendImmediate("capture",Y,Q)}aliasStateless($,Z,X,Q){this.wrap(()=>{let Y=this.buildPayload({event:"$create_alias",distinct_id:Z,properties:{...X||{},distinct_id:Z,alias:$}});this.enqueue("alias",Y,Q)})}async aliasStatelessImmediate($,Z,X,Q){let Y=this.buildPayload({event:"$create_alias",distinct_id:Z,properties:{...X||{},distinct_id:Z,alias:$}});await this.sendImmediate("alias",Y,Q)}groupIdentifyStateless($,Z,X,Q,Y,G){this.wrap(()=>{let J=this.buildPayload({distinct_id:Y||`$${$}_${Z}`,event:"$groupidentify",properties:{$group_type:$,$group_key:Z,$group_set:X||{},...G||{}}});this.enqueue("capture",J,Q)})}async getRemoteConfig(){await this._initPromise;let $=this.host;if($==="https://us.i.posthog.com")$="https://us-assets.i.posthog.com";else if($==="https://eu.i.posthog.com")$="https://eu-assets.i.posthog.com";let Z=`${$}/array/${this.apiKey}/config`,X={method:"GET",headers:{...this.getCustomHeaders(),"Content-Type":"application/json"}};return this.fetchWithRetry(Z,X,{retryCount:0},this.remoteConfigRequestTimeoutMs).then((Q)=>Q.json()).catch((Q)=>{this._logger.error("Remote config could not be loaded",Q),this._events.emit("error",Q)})}async getFlags($,Z={},X={},Q={},Y={},G=!1){await this._initPromise;let J=G?"&config=true":"",K=`${this.host}/flags/?v=2${J}`,W={token:this.apiKey,distinct_id:$,groups:Z,person_properties:X,group_properties:Q,...Y};if(X.$device_id)W.$device_id=X.$device_id;if(this.evaluationContexts&&this.evaluationContexts.length>0)W.evaluation_contexts=this.evaluationContexts;let H={method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json"},body:JSON.stringify(W)};return this._logger.info("Flags URL",K),this.fetchWithRetry(K,H,{retryCount:0},this.featureFlagsRequestTimeoutMs).then((U)=>U.json()).then((U)=>({success:!0,response:Hs0(U)})).catch((U)=>{return this._events.emit("error",U),{success:!1,error:this.categorizeRequestError(U)}})}categorizeRequestError($){if($ instanceof bg)return{type:"api_error",statusCode:$.status};if($ instanceof Bt){let Z=$.error;if(Z instanceof Error&&(Z.name==="AbortError"||Z.name==="TimeoutError"))return{type:"timeout"};return{type:"connection_error"}}return{type:"unknown_error"}}async getFeatureFlagStateless($,Z,X={},Q={},Y={},G){await this._initPromise;let J=await this.getFeatureFlagDetailStateless($,Z,X,Q,Y,G);if(J===void 0)return{response:void 0,requestId:void 0};let K=Kt(J.response);if(K===void 0)K=!1;return{response:K,requestId:J.requestId}}async getFeatureFlagDetailStateless($,Z,X={},Q={},Y={},G){await this._initPromise;let J=await this.getFeatureFlagDetailsStateless(Z,X,Q,Y,G,[$]);if(J===void 0)return;return{response:J.flags[$],requestId:J.requestId,evaluatedAt:J.evaluatedAt}}async getFeatureFlagPayloadStateless($,Z,X={},Q={},Y={},G){await this._initPromise;let J=await this.getFeatureFlagPayloadsStateless(Z,X,Q,Y,G,[$]);if(!J)return;let K=J[$];if(K===void 0)return null;return K}async getFeatureFlagPayloadsStateless($,Z={},X={},Q={},Y,G){return await this._initPromise,(await this.getFeatureFlagsAndPayloadsStateless($,Z,X,Q,Y,G)).payloads}async getFeatureFlagsStateless($,Z={},X={},Q={},Y,G){return await this._initPromise,await this.getFeatureFlagsAndPayloadsStateless($,Z,X,Q,Y,G)}async getFeatureFlagsAndPayloadsStateless($,Z={},X={},Q={},Y,G){await this._initPromise;let J=await this.getFeatureFlagDetailsStateless($,Z,X,Q,Y,G);if(!J)return{flags:void 0,payloads:void 0,requestId:void 0};return{flags:J.featureFlags,payloads:J.featureFlagPayloads,requestId:J.requestId}}async getFeatureFlagDetailsStateless($,Z={},X={},Q={},Y,G){await this._initPromise;let J={};if(Y??this.disableGeoip)J.geoip_disable=!0;if(G)J.flag_keys_to_evaluate=G;let K=await this.getFlags($,Z,X,Q,J);if(!K.success)return;let W=K.response;if(W.errorsWhileComputingFlags)console.error("[FEATURE FLAGS] Error while computing feature flags, some flags may be missing or incorrect. Learn more at https://posthog.com/docs/feature-flags/best-practices");if(W.quotaLimited?.includes("feature_flags"))return console.warn("[FEATURE FLAGS] Feature flags quota limit exceeded - feature flags unavailable. Learn more about billing limits at https://posthog.com/docs/billing/limits-alerts"),{flags:{},featureFlags:{},featureFlagPayloads:{},requestId:W?.requestId,quotaLimited:W.quotaLimited};return W}async getSurveysStateless(){if(await this._initPromise,this.disableSurveys===!0)return this._logger.info("Loading surveys is disabled."),[];let $=`${this.host}/api/surveys/?token=${this.apiKey}`,Z={method:"GET",headers:{...this.getCustomHeaders(),"Content-Type":"application/json"}},Q=(await this.fetchWithRetry($,Z).then((Y)=>{if(Y.status!==200||!Y.json){let G=`Surveys API could not be loaded: ${Y.status}`,J=Error(G);this._logger.error(J),this._events.emit("error",Error(G));return}return Y.json()}).catch((Y)=>{this._logger.error("Surveys API could not be loaded",Y),this._events.emit("error",Y)}))?.surveys;if(Q)this._logger.info("Surveys fetched from API: ",JSON.stringify(Q));return Q??[]}get props(){if(!this._props)this._props=this.getPersistedProperty(HX.Props);return this._props||{}}set props($){this._props=$}async register($){this.wrap(()=>{this.props={...this.props,...$},this.setPersistedProperty(HX.Props,this.props)})}async unregister($){this.wrap(()=>{delete this.props[$],this.setPersistedProperty(HX.Props,this.props)})}processBeforeEnqueue($){return $}async flushStorage(){}enqueue($,Z,X){this.wrap(()=>{if(this.optedOut)return void this._events.emit($,"Library is disabled. Not sending event. To re-enable, call posthog.optIn()");let Q=this.prepareMessage($,Z,X);if(Q=this.processBeforeEnqueue(Q),Q===null)return;let Y=this.getPersistedProperty(HX.Queue)||[];if(Y.length>=this.maxQueueSize)Y.shift(),this._logger.info("Queue is full, the oldest event is dropped.");if(Y.push({message:Q}),this.setPersistedProperty(HX.Queue,Y),this._events.emit($,Q),Y.length>=this.flushAt)this.flushBackground();if(this.flushInterval&&!this._flushTimer)this._flushTimer=UN(()=>this.flushBackground(),this.flushInterval)})}async sendImmediate($,Z,X){if(this.disabled)return void this._logger.warn("The client is disabled");if(!this._isInitialized)await this._initPromise;if(this.optedOut)return void this._events.emit($,"Library is disabled. Not sending event. To re-enable, call posthog.optIn()");let Q=this.prepareMessage($,Z,X);if(Q=this.processBeforeEnqueue(Q),Q===null)return;let Y={api_key:this.apiKey,batch:[Q],sent_at:qY0()};if(this.historicalMigration)Y.historical_migration=!0;let G=JSON.stringify(Y),J=`${this.host}/batch/`,K=this.disableCompression?null:await EY0(G,this.isDebug),W={method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",...K!==null&&{"Content-Encoding":"gzip"}},body:K||G};try{await this.fetchWithRetry(J,W)}catch(H){this._events.emit("error",H)}}prepareMessage($,Z,X){let Q={...Z,type:$,library:this.getLibraryId(),library_version:this.getLibraryVersion(),timestamp:X?.timestamp?X?.timestamp:qY0(),uuid:X?.uuid?X.uuid:yB()};if(X?.disableGeoip??this.disableGeoip){if(!Q.properties)Q.properties={};Q.properties.$geoip_disable=!0}if(Q.distinctId)Q.distinct_id=Q.distinctId,delete Q.distinctId;return Q}clearFlushTimer(){if(this._flushTimer)clearTimeout(this._flushTimer),this._flushTimer=void 0}flushBackground(){this.flush().catch(async($)=>{await pY8($)})}async flush(){let $=As0([this.flushPromise]).then(()=>this._flush());return this.flushPromise=$,this.addPendingPromise($),As0([$]).then(()=>{if(this.flushPromise===$)this.flushPromise=null}),$}getCustomHeaders(){let $=this.getCustomUserAgent(),Z={};if($&&$!=="")Z["User-Agent"]=$;return Z}async _flush(){this.clearFlushTimer(),await this._initPromise;let $=this.getPersistedProperty(HX.Queue)||[];if(!$.length)return;let Z=[],X=$.length;while($.length>0&&Z.length<X){let Q=$.slice(0,this.maxBatchSize),Y=Q.map((F)=>F.message),G=async()=>{let w=(this.getPersistedProperty(HX.Queue)||[]).slice(Q.length);this.setPersistedProperty(HX.Queue,w),$=w,await this.flushStorage()},J={api_key:this.apiKey,batch:Y,sent_at:qY0()};if(this.historicalMigration)J.historical_migration=!0;let K=JSON.stringify(J),W=`${this.host}/batch/`,H=this.disableCompression?null:await EY0(K,this.isDebug),U={method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",...H!==null&&{"Content-Encoding":"gzip"}},body:H||K},N={retryCheck:(F)=>{if(tY8(F))return!1;return Is0(F)}};try{await this.fetchWithRetry(W,U,N)}catch(F){if(tY8(F)&&Y.length>1){this.maxBatchSize=Math.max(1,Math.floor(Y.length/2)),this._logger.warn(`Received 413 when sending batch of size ${Y.length}, reducing batch size to ${this.maxBatchSize}`);continue}if(!(F instanceof Bt))await G();throw this._events.emit("error",F),F}await G(),Z.push(...Y)}this._events.emit("flush",Z)}async fetchWithRetry($,Z,X,Q){let Y=Z.body?Z.body:"",G=-1;try{G=Y instanceof Blob?Y.size:Buffer.byteLength(Y,uY8)}catch{if(Y instanceof Blob)G=Y.size;else G=new TextEncoder().encode(Y).length}return await lY8(async()=>{let J=new AbortController,K=Q??this.requestTimeout,W=UN(()=>J.abort(),K),H=null;try{H=await this.fetch($,{signal:J.signal,...Z})}catch(N){throw new Bt(N)}finally{clearTimeout(W)}if(Z.mode!=="no-cors"&&(H.status<200||H.status>=400))throw new bg(H,G);return H},{...this._retryOptions,...X})}async _shutdown($=30000){await this._initPromise;let Z=!1;this.clearFlushTimer();let X=async()=>{try{await this.promiseQueue.join();while(!0){if((this.getPersistedProperty(HX.Queue)||[]).length===0)break;if(await this.flush(),Z)break}}catch(Y){if(!Is0(Y))throw Y;await pY8(Y)}},Q;try{return await Promise.race([new Promise((Y,G)=>{Q=UN(()=>{this._logger.error("Timed out while shutting down PostHog"),Z=!0,G("Timeout while shutting down PostHog. Some events may not have been sent.")},$)}),X()])}finally{clearTimeout(Q)}}async shutdown($=30000){if(this.shutdownPromise)this._logger.warn("shutdown() called while already shutting down. shutdown() is meant to be called once before process exit - use flush() for per-request cleanup");else this.shutdownPromise=this._shutdown($).finally(()=>{this.shutdownPromise=null});return this.shutdownPromise}}var bg,Bt;var qs0=O(()=>{nY8();DY0();Ns0();Oz();YQ();Ft();bg=class bg extends Error{constructor($,Z){super("HTTP error while fetching PostHog: status="+$.status+", reqByteLength="+Z),this.response=$,this.reqByteLength=Z,this.name="PostHogFetchHttpError"}get status(){return this.response.status}get text(){return this.response.text()}get json(){return this.response.json()}};Bt=class Bt extends Error{constructor($){super("Network error while fetching PostHog",$ instanceof Error?{cause:$}:{}),this.error=$,this.name="PostHogFetchNetworkError"}}});var oY8=O(()=>{DY0();Oz();qs0();Ft();YQ()});var rY8=O(()=>{Ut()});function sY8($){let Z=globalThis._posthogChunkIds;if(!Z)return;let X=Object.keys(Z);if(kY0&&X.length===aY8)return kY0;return aY8=X.length,kY0=X.reduce((Q,Y)=>{if(!VY0)VY0={};let G=VY0[Y];if(G)Q[G[0]]=G[1];else{let J=$(Y);for(let K=J.length-1;K>=0;K--){let H=J[K]?.filename,U=Z[Y];if(H&&U){Q[H]=U,VY0[Y]=[H,U];break}}}return Q},{}),kY0}var VY0,aY8,kY0;var eY8=()=>{};class $G8{constructor($,Z,X=[]){this.coercers=$,this.stackParser=Z,this.modifiers=X}buildFromUnknown($,Z={}){let Q=Z&&Z.mechanism||{handled:!0,type:"generic"},G=this.buildCoercingContext(Q,Z,0).apply($),J=this.buildParsingContext(Z),K=this.parseStacktrace(G,J);return{$exception_list:this.convertToExceptionList(K,Q),$exception_level:"error"}}async modifyFrames($){for(let Z of $)if(Z.stacktrace&&Z.stacktrace.frames&&jY0(Z.stacktrace.frames))Z.stacktrace.frames=await this.applyModifiers(Z.stacktrace.frames);return $}coerceFallback($){return{type:"Error",value:"Unknown error",stack:$.syntheticException?.stack,synthetic:!0}}parseStacktrace($,Z){let X;if($.cause!=null)X=this.parseStacktrace($.cause,Z);let Q;if($.stack!=""&&$.stack!=null)Q=this.applyChunkIds(this.stackParser($.stack,$.synthetic?Z.skipFirstLines:0),Z.chunkIdMap);return{...$,cause:X,stack:Q}}applyChunkIds($,Z){return $.map((X)=>{if(X.filename&&Z)X.chunk_id=Z[X.filename];return X})}applyCoercers($,Z){for(let X of this.coercers)if(X.match($))return X.coerce($,Z);return this.coerceFallback(Z)}async applyModifiers($){let Z=$;for(let X of this.modifiers)Z=await X(Z);return Z}convertToExceptionList($,Z){let X={type:$.type,value:$.value,mechanism:{type:Z.type??"generic",handled:Z.handled??!0,synthetic:$.synthetic??!1}};if($.stack)X.stacktrace={type:"raw",frames:$.stack};let Q=[X];if($.cause!=null)Q.push(...this.convertToExceptionList($.cause,{...Z,handled:!0}));return Q}buildParsingContext($){return{chunkIdMap:sY8(this.stackParser),skipFirstLines:$.skipFirstLines??1}}buildCoercingContext($,Z,X=0){let Q=(G,J)=>{if(!(J<=gU4))return;{let K=this.buildCoercingContext($,Z,J);return this.applyCoercers(G,K)}};return{...Z,syntheticException:X==0?Z.syntheticException:void 0,mechanism:$,apply:(G)=>Q(G,X),next:(G)=>Q(G,X+1)}}}var gU4=4;var ZG8=O(()=>{YQ();eY8()});function iW($,Z,X,Q,Y){let G={platform:$,filename:Z,function:X==="<anonymous>"?A7:X,in_app:!0};if(!_g(Q))G.lineno=Q;if(!_g(Y))G.colno=Y;return G}var A7="?";var gB=O(()=>{YQ()});var SY0=($,Z)=>{let X=$.indexOf("safari-extension")!==-1,Q=$.indexOf("safari-web-extension")!==-1;return X||Q?[$.indexOf("@")!==-1?$.split("@")[0]:A7,X?`safari-extension:${Z}`:`safari-web-extension:${Z}`]:[$,Z]};var Ms0=O(()=>{gB()});var hU4,uU4,cU4,Vs0=($,Z)=>{let X=hU4.exec($);if(X){let[,Y,G,J]=X;return iW(Z,Y,A7,+G,+J)}let Q=uU4.exec($);if(Q){if(Q[2]&&Q[2].indexOf("eval")===0){let K=cU4.exec(Q[2]);if(K)Q[2]=K[1],Q[3]=K[2],Q[4]=K[3]}let[G,J]=SY0(Q[1]||A7,Q[2]);return iW(Z,J,G,Q[3]?+Q[3]:void 0,Q[4]?+Q[4]:void 0)}};var XG8=O(()=>{gB();Ms0();hU4=/^\s*at (\S+?)(?::(\d+))(?::(\d+))\s*$/i,uU4=/^\s*at (?:(.+?\)(?: \[.+\])?|.*?) ?\((?:address at )?)?(?:async )?((?:<anonymous>|[-a-z]+:|.*bundle|\/)?.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,cU4=/\((\S*)(?::(\d+))(?::(\d+))\)/});var lU4,dU4,ks0=($,Z)=>{let X=lU4.exec($);if(X){if(X[3]&&X[3].indexOf(" > eval")>-1){let J=dU4.exec(X[3]);if(J)X[1]=X[1]||"eval",X[3]=J[1],X[4]=J[2],X[5]=""}let Y=X[3],G=X[1]||A7;return[G,Y]=SY0(G,Y),iW(Z,Y,G,X[4]?+X[4]:void 0,X[5]?+X[5]:void 0)}};var QG8=O(()=>{gB();Ms0();lU4=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:[-a-z]+)?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i,dU4=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i});var mU4,YG8=($,Z)=>{let X=mU4.exec($);return X?iW(Z,X[2],X[1]||A7,+X[3],X[4]?+X[4]:void 0):void 0};var GG8=O(()=>{gB();mU4=/^\s*at (?:((?:\[object object\])?.+) )?\(?((?:[-a-z]+):.*?):(\d+)(?::(\d+))?\)?\s*$/i});var iU4,JG8=($,Z)=>{let X=iU4.exec($);return X?iW(Z,X[2],X[3]||A7,+X[1]):void 0},nU4,KG8=($,Z)=>{let X=nU4.exec($);return X?iW(Z,X[5],X[3]||X[4]||A7,+X[1],+X[2]):void 0};var WG8=O(()=>{gB();iU4=/ line (\d+).*script (?:in )?(\S+)(?:: in function (\S+))?$/i,nU4=/ line (\d+), column (\d+)\s*(?:in (?:<anonymous function: ([^>]+)>|([^)]+))\(.*\))? in (.*):\s*$/i});function oU4($,Z=!1){return!(Z||$&&!$.startsWith("/")&&!$.match(/^[A-Z]:/)&&!$.startsWith(".")&&!$.match(/^[a-zA-Z]([a-zA-Z0-9.\-+])*:\/\//))&&$!==void 0&&!$.includes("node_modules/")}function HG8($){return parseInt($||"",10)||void 0}var pU4,tU4,UG8=($,Z)=>{let X=$.match(tU4);if(X){let Q,Y,G,J,K;if(X[1]){G=X[1];let U=G.lastIndexOf(".");if(G[U-1]===".")U--;if(U>0){Q=G.slice(0,U),Y=G.slice(U+1);let N=Q.indexOf(".Module");if(N>0)G=G.slice(N+1),Q=Q.slice(0,N)}J=void 0}if(Y)J=Q,K=Y;if(Y==="<anonymous>")K=void 0,G=void 0;if(G===void 0)K=K||A7,G=J?`${J}.${K}`:K;let W=X[2]?.startsWith("file://")?X[2].slice(7):X[2],H=X[5]==="native";if(W?.match(/\/[A-Z]:/))W=W.slice(1);if(!W&&X[5]&&!H)W=X[5];return{filename:W?decodeURI(W):void 0,module:void 0,function:G,lineno:HG8(X[3]),colno:HG8(X[4]),in_app:oU4(W||"",H),platform:Z}}if($.match(pU4))return{filename:$,platform:Z}};var NG8=O(()=>{gB();pU4=/^\s*[-]{4,}$/,tU4=/at (?:async )?(?:(.+?)\s+\()?(?:(.+):(\d+):(\d+)?|([^)]+))\)?/});function BG8($){if(!$.length)return[];let Z=Array.from($);return Z.reverse(),Z.slice(0,wG8).map((X)=>({...X,filename:X.filename||rU4(Z).filename,function:X.function||A7}))}function rU4($){return $[$.length-1]||{}}function aU4(){return OG8("web:javascript",Vs0,ks0)}function OG8($,...Z){return(X,Q=0)=>{let Y=[],G=X.split(`
|
|
1644
|
+
) desc`}class Tg{db;constructor($){this.db=$}async create($){let Z=new Date().toISOString(),X=NQ8($._meta??{}),Q=nQ0(X),Y=tQ(Q.tags),G=tQ(Q.categories),J={id:$.id,organization_id:$.organization_id,title:$.title,description:$.description??null,server_json:JSON.stringify($.server),meta_json:JSON.stringify(X),tags:mQ0(Y),categories:mQ0(G),is_public:$.is_public?1:0,is_unlisted:$.is_unlisted?1:0,created_at:Z,updated_at:Z,created_by:$.created_by??null};await this.db.insertInto("private_registry_item").values(J).execute();let K=await this.findById($.organization_id,$.id);if(!K)throw Error(`Failed to create registry item "${$.id}"`);return K}async findById($,Z){let X=await this.db.selectFrom("private_registry_item").selectAll().where("organization_id","=",$).where("id","=",Z).executeTakeFirst();return X?this.deserialize(X):null}async findByIdOrName($,Z){let X=await this.findById($,Z);if(X)return X;let Q=await this.db.selectFrom("private_registry_item").selectAll().where("organization_id","=",$).where("title","=",Z).executeTakeFirst();return Q?this.deserialize(Q):null}async update($,Z,X){let Q=await this.findById($,Z);if(!Q)throw Error(`Registry item not found: ${Z}`);let Y=NQ8(X._meta??Q._meta??{}),G=nQ0(Y),J=tQ(G.tags),K=tQ(G.categories),W={updated_at:new Date().toISOString()};if(X.title!==void 0)W.title=X.title;if(X.description!==void 0)W.description=X.description;if(X.server!==void 0)W.server_json=JSON.stringify(X.server);if(X._meta!==void 0)W.meta_json=JSON.stringify(Y);if(X._meta!==void 0)W.tags=mQ0(J),W.categories=mQ0(K);if(X.is_public!==void 0)W.is_public=X.is_public?1:0;if(X.is_unlisted!==void 0)W.is_unlisted=X.is_unlisted?1:0;await this.db.updateTable("private_registry_item").set(W).where("organization_id","=",$).where("id","=",Z).execute();let H=await this.findById($,Z);if(!H)throw Error(`Registry item not found after update: ${Z}`);return H}async delete($,Z){let X=await this.findById($,Z);if(!X)return null;return await this.db.deleteFrom("private_registry_item").where("organization_id","=",$).where("id","=",Z).execute(),X}async list($,Z={}){let X=this.db.selectFrom("private_registry_item").selectAll().where("organization_id","=",$);if(!Z.includeUnlisted)X=X.where("is_unlisted","=",0);let Q=tQ(Z.tags);if(Q.length>0)X=X.where(iQ0("tags",Q));let Y=tQ(Z.categories);if(Y.length>0)X=X.where(iQ0("categories",Y));if(Z.where)X=X.where(va0(Z.where));let K=(await this.db.selectFrom(X.as("filtered")).select(S8`count(*)::int`.as("count")).executeTakeFirst())?.count??0;X=X.orderBy(FQ8()).orderBy("created_at","desc");let H=lQ0(Z.cursor)??Z.offset??0,U=Z.limit??24;X=X.limit(U).offset(H);let F=(await X.execute()).map((L)=>this.deserialize(L)),w=H+U<K,B=w?cQ0(H+U):void 0;return{items:F,totalCount:K,hasMore:w,nextCursor:B}}async listPublic($,Z={}){let X=this.db.selectFrom("private_registry_item").selectAll().where("organization_id","=",$).where("is_public","=",1).where("is_unlisted","=",0),Q=tQ(Z.tags);if(Q.length>0)X=X.where(iQ0("tags",Q));let Y=tQ(Z.categories);if(Y.length>0)X=X.where(iQ0("categories",Y));if(Z.where)X=X.where(va0(Z.where));let K=(await this.db.selectFrom(X.as("filtered")).select(S8`count(*)::int`.as("count")).executeTakeFirst())?.count??0;X=X.orderBy(FQ8()).orderBy("created_at","desc");let H=lQ0(Z.cursor)??Z.offset??0,U=Z.limit??24;X=X.limit(U).offset(H);let F=(await X.execute()).map((L)=>this.deserialize(L)),w=H+U<K,B=w?cQ0(H+U):void 0;return{items:F,totalCount:K,hasMore:w,nextCursor:B}}async getFilters($,Z){let X=this.db.selectFrom("private_registry_item").select(["tags","categories"]).where("organization_id","=",$);if(Z?.publicOnly)X=X.where("is_public","=",1);if(!Z?.includeUnlisted)X=X.where("is_unlisted","=",0);let Q=await X.execute(),Y=new Map,G=new Map;for(let K of Q){for(let W of Wz(K.tags))Y.set(W,(Y.get(W)??0)+1);for(let W of Wz(K.categories))G.set(W,(G.get(W)??0)+1)}let J=(K)=>Array.from(K.entries()).map(([W,H])=>({value:W,count:H})).sort((W,H)=>W.value.localeCompare(H.value));return{tags:J(Y),categories:J(G)}}async search($,Z={},X){let Q=this.db.selectFrom("private_registry_item").select(["id","title","description","meta_json","server_json","tags","categories","is_public","is_unlisted"]).where("organization_id","=",$).orderBy("created_at","desc");if(X?.publicOnly)Q=Q.where("is_public","=",1);if(!X?.includeUnlisted)Q=Q.where("is_unlisted","=",0);let Y=await Q.execute(),G=Z.query?.trim().toLowerCase(),J=tQ(Z.tags),K=tQ(Z.categories),W=Y.filter((D)=>{if(G){let E=dQ0(D.server_json,{}),z=dQ0(D.meta_json,{}),j=nQ0(z).short_description??"";if(![D.id,D.title,D.description??"",E.name??"",E.description??"",j].join(" ").toLowerCase().includes(G))return!1}if(J.length>0){let E=tQ(Wz(D.tags));if(!J.every((z)=>E.includes(z)))return!1}if(K.length>0){let E=tQ(Wz(D.categories));if(!K.every((z)=>E.includes(z)))return!1}return!0}),U=lQ0(Z.cursor)??0,N=Z.limit??20,F=W.slice(U,U+N),w=U+N<W.length,B=w?cQ0(U+N):void 0;return{items:F.map((D)=>({id:D.id,title:D.title,tags:Wz(D.tags),categories:Wz(D.categories),is_public:D.is_public===1,is_unlisted:D.is_unlisted===1})),totalCount:W.length,hasMore:w,nextCursor:B}}deserialize($){let Z=dQ0($.server_json,{}),X=dQ0($.meta_json,{});return{id:$.id,name:typeof Z.name==="string"?Z.name:void 0,title:$.title,description:$.description,_meta:X,server:Z,is_public:$.is_public===1,is_unlisted:$.is_unlisted===1,created_at:$.created_at,updated_at:$.updated_at,...$.created_by?{created_by:$.created_by}:{}}}}var RH4,IH4,qH4;var xa0=O(()=>{RH4=new Set(["id","title","description","is_public","is_unlisted","created_at","updated_at","created_by"]),IH4=new Set(["is_public","is_unlisted"]),qH4={_meta:"meta_json",server:"server_json"}});import{randomUUID as kH4}from"crypto";function wQ8($,Z){if(!$)return Z;try{return JSON.parse($)}catch{return Z}}function BQ8($){if(!$)return null;let Z=dW($);return JSON.stringify(Z?uQ0($,Z):$)}class Rg{db;constructor($){this.db=$}async createOrUpdate($){let Z=new Date().toISOString(),X=await this.findPendingByRequestedId($.organization_id,$.requested_id);if(X){let J={title:$.title,description:$.description??null,server_json:JSON.stringify($.server),meta_json:BQ8($._meta),requester_name:$.requester_name??null,requester_email:$.requester_email??null,updated_at:Z};await this.db.updateTable("private_registry_publish_request").set(J).where("organization_id","=",$.organization_id).where("id","=",X.id).execute();let K=await this.findById($.organization_id,X.id);if(!K)throw Error("Failed to update publish request");return K}let Q=kH4(),Y={id:Q,organization_id:$.organization_id,requested_id:$.requested_id,status:"pending",title:$.title,description:$.description??null,server_json:JSON.stringify($.server),meta_json:BQ8($._meta),requester_name:$.requester_name??null,requester_email:$.requester_email??null,reviewer_notes:null,created_at:Z,updated_at:Z};await this.db.insertInto("private_registry_publish_request").values(Y).execute();let G=await this.findById($.organization_id,Q);if(!G)throw Error("Failed to create publish request");return G}async findPendingByRequestedId($,Z){let X=await this.db.selectFrom("private_registry_publish_request").selectAll().where("organization_id","=",$).where("requested_id","=",Z).where("status","=","pending").executeTakeFirst();return X?this.deserialize(X):null}async findById($,Z){let X=await this.db.selectFrom("private_registry_publish_request").selectAll().where("organization_id","=",$).where("id","=",Z).executeTakeFirst();return X?this.deserialize(X):null}async list($,Z={}){let X=this.db.selectFrom("private_registry_publish_request").selectAll().where("organization_id","=",$),Q=this.db.selectFrom("private_registry_publish_request").select((H)=>H.fn.countAll().as("count")).where("organization_id","=",$);if(Z.status)X=X.where("status","=",Z.status),Q=Q.where("status","=",Z.status);let Y=await Q.executeTakeFirst(),G=Number(Y?.count??0),J=Z.sortBy??"created_at",K=Z.sortDirection??"desc";if(J==="title")X=X.orderBy("title",K);else X=X.orderBy("created_at",K);return{items:(await X.limit(Z.limit??24).offset(Z.offset??0).execute()).map((H)=>this.deserialize(H)),totalCount:G}}async updateStatus($,Z,X,Q){let Y={status:X,updated_at:new Date().toISOString(),reviewer_notes:Q??null};await this.db.updateTable("private_registry_publish_request").set(Y).where("organization_id","=",$).where("id","=",Z).execute();let G=await this.findById($,Z);if(!G)throw Error(`Publish request not found: ${Z}`);return G}async countPending($){let Z=await this.db.selectFrom("private_registry_publish_request").select((X)=>X.fn.countAll().as("count")).where("organization_id","=",$).where("status","=","pending").executeTakeFirst();return Number(Z?.count??0)}async delete($,Z){let X=await this.findById($,Z);if(!X)return null;return await this.db.deleteFrom("private_registry_publish_request").where("organization_id","=",$).where("id","=",Z).execute(),X}deserialize($){return{id:$.id,organization_id:$.organization_id,requested_id:$.requested_id??null,status:$.status,title:$.title,description:$.description,_meta:wQ8($.meta_json,{}),server:wQ8($.server_json,{name:""}),requester_name:$.requester_name,requester_email:$.requester_email,reviewer_notes:$.reviewer_notes,created_at:$.created_at,updated_at:$.updated_at}}}var fa0=()=>{};import{createHash as SH4,randomBytes as CH4,randomUUID as _H4}from"crypto";function OQ8($){return SH4("sha256").update($).digest("hex")}function vH4(){return`prk_${CH4(32).toString("hex")}`}class Ig{db;constructor($){this.db=$}async generate($,Z){let X=_H4(),Q=vH4(),Y=await OQ8(Q),G=Q.slice(0,12),J=new Date().toISOString();return await this.db.insertInto("private_registry_publish_api_key").values({id:X,organization_id:$,name:Z,key_hash:Y,prefix:G,created_at:J}).execute(),{entity:{id:X,organization_id:$,name:Z,prefix:G,created_at:J},key:Q}}async list($){return await this.db.selectFrom("private_registry_publish_api_key").select(["id","organization_id","name","prefix","created_at"]).where("organization_id","=",$).orderBy("created_at","desc").execute()}async revoke($,Z){return(await this.db.deleteFrom("private_registry_publish_api_key").where("organization_id","=",$).where("id","=",Z).execute()).length>0}async validate($,Z){let X=await OQ8(Z),Q=await this.db.selectFrom("private_registry_publish_api_key").select(["id"]).where("organization_id","=",$).where("key_hash","=",X).executeTakeFirst();return Boolean(Q)}async hasKeys($){let Z=await this.db.selectFrom("private_registry_publish_api_key").select((X)=>X.fn.countAll().as("count")).where("organization_id","=",$).executeTakeFirst();return Number(Z?.count??0)>0}}var ba0=()=>{};import{randomUUID as LQ8}from"crypto";function DQ8($,Z){if(!$)return Z;try{return JSON.parse($)}catch{return Z}}class pQ0{db;constructor($){this.db=$}async create($){let Z=LQ8(),X=new Date().toISOString(),Q={id:Z,organization_id:$.organization_id,status:$.status??"pending",config_snapshot:$.config_snapshot?JSON.stringify($.config_snapshot):null,total_items:$.total_items??0,tested_items:0,passed_items:0,failed_items:0,skipped_items:0,current_item_id:null,started_at:$.started_at??null,finished_at:null,created_at:X};await this.db.insertInto("private_registry_monitor_run").values(Q).execute();let Y=await this.findById($.organization_id,Z);if(!Y)throw Error(`Failed to create monitor run ${Z}`);return Y}async findById($,Z){let X=await this.db.selectFrom("private_registry_monitor_run").selectAll().where("organization_id","=",$).where("id","=",Z).executeTakeFirst();return X?this.deserializeRun(X):null}async list($,Z={}){let X=this.db.selectFrom("private_registry_monitor_run").selectAll().where("organization_id","=",$),Q=this.db.selectFrom("private_registry_monitor_run").select((K)=>K.fn.countAll().as("count")).where("organization_id","=",$);if(Z.status)X=X.where("status","=",Z.status),Q=Q.where("status","=",Z.status);let Y=await Q.executeTakeFirst(),G=Number(Y?.count??0);return{items:(await X.orderBy("created_at","desc").limit(Z.limit??24).offset(Z.offset??0).execute()).map((K)=>this.deserializeRun(K)),totalCount:G}}async update($,Z,X){let Q={};if(X.total_items!==void 0)Q.total_items=X.total_items;if(X.status!==void 0)Q.status=X.status;if(X.tested_items!==void 0)Q.tested_items=X.tested_items;if(X.passed_items!==void 0)Q.passed_items=X.passed_items;if(X.failed_items!==void 0)Q.failed_items=X.failed_items;if(X.skipped_items!==void 0)Q.skipped_items=X.skipped_items;if(X.current_item_id!==void 0)Q.current_item_id=X.current_item_id;if(X.started_at!==void 0)Q.started_at=X.started_at;if(X.finished_at!==void 0)Q.finished_at=X.finished_at;await this.db.updateTable("private_registry_monitor_run").set(Q).where("organization_id","=",$).where("id","=",Z).execute();let Y=await this.findById($,Z);if(!Y)throw Error(`Monitor run not found: ${Z}`);return Y}deserializeRun($){return{id:$.id,organization_id:$.organization_id,status:$.status,config_snapshot:DQ8($.config_snapshot,null),total_items:Number($.total_items??0),tested_items:Number($.tested_items??0),passed_items:Number($.passed_items??0),failed_items:Number($.failed_items??0),skipped_items:Number($.skipped_items??0),current_item_id:$.current_item_id,started_at:$.started_at,finished_at:$.finished_at,created_at:$.created_at}}}class tQ0{db;constructor($){this.db=$}async create($){let Z=LQ8(),X=new Date().toISOString(),Q={id:Z,run_id:$.run_id,organization_id:$.organization_id,item_id:$.item_id,item_title:$.item_title,status:$.status,error_message:$.error_message??null,connection_ok:$.connection_ok?1:0,tools_listed:$.tools_listed?1:0,tool_results:$.tool_results?JSON.stringify($.tool_results):null,agent_summary:$.agent_summary??null,duration_ms:$.duration_ms??0,action_taken:$.action_taken??"none",tested_at:X};await this.db.insertInto("private_registry_monitor_result").values(Q).execute();let Y=await this.findById($.organization_id,Z);if(!Y)throw Error("Failed to create test result");return Y}async findById($,Z){let X=await this.db.selectFrom("private_registry_monitor_result").selectAll().where("organization_id","=",$).where("id","=",Z).executeTakeFirst();return X?this.deserialize(X):null}async listByRun($,Z,X={}){let Q=this.db.selectFrom("private_registry_monitor_result").selectAll().where("organization_id","=",$).where("run_id","=",Z),Y=this.db.selectFrom("private_registry_monitor_result").select((W)=>W.fn.countAll().as("count")).where("organization_id","=",$).where("run_id","=",Z);if(X.status)Q=Q.where("status","=",X.status),Y=Y.where("status","=",X.status);let G=await Y.executeTakeFirst(),J=Number(G?.count??0);return{items:(await Q.orderBy("tested_at","desc").limit(X.limit??50).offset(X.offset??0).execute()).map((W)=>this.deserialize(W)),totalCount:J}}async update($,Z,X){let Q={};if(X.status!==void 0)Q.status=X.status;if(X.error_message!==void 0)Q.error_message=X.error_message;if(X.connection_ok!==void 0)Q.connection_ok=X.connection_ok?1:0;if(X.tools_listed!==void 0)Q.tools_listed=X.tools_listed?1:0;if(X.tool_results!==void 0)Q.tool_results=JSON.stringify(X.tool_results);if(X.agent_summary!==void 0)Q.agent_summary=X.agent_summary;if(X.duration_ms!==void 0)Q.duration_ms=X.duration_ms;if(X.action_taken!==void 0)Q.action_taken=X.action_taken;await this.db.updateTable("private_registry_monitor_result").set(Q).where("organization_id","=",$).where("id","=",Z).execute();let Y=await this.findById($,Z);if(!Y)throw Error(`Monitor result not found: ${Z}`);return Y}deserialize($){return{id:$.id,run_id:$.run_id,organization_id:$.organization_id,item_id:$.item_id,item_title:$.item_title,status:$.status,error_message:$.error_message,connection_ok:$.connection_ok===1,tools_listed:$.tools_listed===1,tool_results:DQ8($.tool_results,[]),agent_summary:$.agent_summary,duration_ms:Number($.duration_ms??0),action_taken:$.action_taken,tested_at:$.tested_at}}}var EQ8=()=>{};import{randomUUID as xH4}from"crypto";class oQ0{db;constructor($){this.db=$}async findByItemId($,Z){let X=await this.db.selectFrom("private_registry_monitor_connection").selectAll().where("organization_id","=",$).where("item_id","=",Z).executeTakeFirst();return X?this.deserialize(X):null}async list($){return(await this.db.selectFrom("private_registry_monitor_connection").selectAll().where("organization_id","=",$).orderBy("updated_at","desc").execute()).map((X)=>this.deserialize(X))}async findByConnectionId($,Z){let X=await this.db.selectFrom("private_registry_monitor_connection").selectAll().where("organization_id","=",$).where("connection_id","=",Z).executeTakeFirst();return X?this.deserialize(X):null}async upsert($){let Z=await this.findByItemId($.organization_id,$.item_id),X=new Date().toISOString();if(!Z){let Y={id:xH4(),organization_id:$.organization_id,item_id:$.item_id,connection_id:$.connection_id,auth_status:$.auth_status??"none",created_at:X,updated_at:X};await this.db.insertInto("private_registry_monitor_connection").values(Y).execute()}else{let Y={connection_id:$.connection_id,auth_status:$.auth_status??Z.auth_status,updated_at:X};await this.db.updateTable("private_registry_monitor_connection").set(Y).where("organization_id","=",$.organization_id).where("item_id","=",$.item_id).execute()}let Q=await this.findByItemId($.organization_id,$.item_id);if(!Q)throw Error("Failed to save monitor connection");return Q}async updateAuthStatus($,Z,X){return await this.db.updateTable("private_registry_monitor_connection").set({auth_status:X,updated_at:new Date().toISOString()}).where("organization_id","=",$).where("item_id","=",Z).execute(),this.findByItemId($,Z)}deserialize($){return{id:$.id,organization_id:$.organization_id,item_id:$.item_id,connection_id:$.connection_id,auth_status:$.auth_status,created_at:$.created_at,updated_at:$.updated_at}}}var zQ8=()=>{};var jQ8=O(()=>{xa0();fa0();ba0();EQ8();zQ8()});class ap{db;constructor($){this.db=$}async listOrgTags($){return(await this.db.selectFrom("organization_tags").selectAll().where("organization_id","=",$).orderBy("name","asc").execute()).map((X)=>this.tagFromDbRow(X))}async getTag($){let Z=await this.db.selectFrom("organization_tags").selectAll().where("id","=",$).executeTakeFirst();return Z?this.tagFromDbRow(Z):null}async getTagByName($,Z){let X=await this.db.selectFrom("organization_tags").selectAll().where("organization_id","=",$).where("name","=",Z).executeTakeFirst();return X?this.tagFromDbRow(X):null}async createTag($,Z,X){let Q=Z4("tag"),Y=new Date().toISOString();await this.db.insertInto("organization_tags").values({id:Q,organization_id:$,name:Z,color:X??null,created_at:Y}).onConflict((J)=>J.columns(["organization_id","name"]).doNothing()).execute();let G=await this.getTagByName($,Z);if(!G)throw Error(`Failed to create or retrieve tag: ${Z}`);return G}async deleteTag($){await this.db.deleteFrom("organization_tags").where("id","=",$).execute()}async getMemberTags($){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.color","organization_tags.created_at"]).where("member_tags.member_id","=",$).orderBy("organization_tags.name","asc").execute()).map((X)=>this.tagFromDbRow(X))}async setMemberTags($,Z){await this.db.transaction().execute(async(X)=>{if(await X.deleteFrom("member_tags").where("member_id","=",$).execute(),Z.length>0){let Q=new Date().toISOString();await X.insertInto("member_tags").values(Z.map((Y)=>({id:Z4("mtag"),member_id:$,tag_id:Y,created_at:Q}))).execute()}})}async addMemberTag($,Z){let X=new Date().toISOString();await this.db.insertInto("member_tags").values({id:Z4("mtag"),member_id:$,tag_id:Z,created_at:X}).onConflict((Q)=>Q.columns(["member_id","tag_id"]).doNothing()).execute()}async removeMemberTag($,Z){await this.db.deleteFrom("member_tags").where("member_id","=",$).where("tag_id","=",Z).execute()}async verifyMemberOrg($,Z){return await this.db.selectFrom("member").select("id").where("id","=",$).where("organizationId","=",Z).executeTakeFirst()!==void 0}async getUserTagsInOrg($,Z){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.color","organization_tags.created_at"]).where("member.userId","=",$).where("member.organizationId","=",Z).orderBy("organization_tags.name","asc").execute()).map((Q)=>this.tagFromDbRow(Q))}async getMembersWithTags($){let Z=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","=",$).execute(),X=new Map;for(let Q of Z){if(!X.has(Q.memberId))X.set(Q.memberId,[]);if(Q.tagName)X.get(Q.memberId).push(Q.tagName)}return X}tagFromDbRow($){return{id:$.id,organizationId:$.organization_id,name:$.name,color:$.color??null,createdAt:$.created_at}}}var ya0=O(()=>{$Q()});import{sql as fH4}from"kysely";function PQ8($){return{organizationId:$.organization_id,status:$.status,stripeCustomerId:$.stripe_customer_id,stripeSubscriptionId:$.stripe_subscription_id,currentPeriodEnd:$.current_period_end,lastStripeEventAt:$.last_stripe_event_at,freeTaskExecutions:$.free_task_executions,monthlyTaskExecutions:$.monthly_task_executions}}class mW{db;constructor($){this.db=$}async getBilling($){let Z=await this.db.selectFrom("organization_billing").selectAll().where("organization_id","=",$).executeTakeFirst();return Z?PQ8(Z):null}async getBillingByStripeSubscriptionId($){let Z=await this.db.selectFrom("organization_billing").selectAll().where("stripe_subscription_id","=",$).executeTakeFirst();return Z?PQ8(Z):null}async updateStripeState($,Z){return((await this.db.updateTable("organization_billing").set({...Z.stripeCustomerId!==void 0&&{stripe_customer_id:Z.stripeCustomerId},...Z.stripeSubscriptionId!==void 0&&{stripe_subscription_id:Z.stripeSubscriptionId},...Z.status!==void 0&&{status:Z.status},...Z.currentPeriodEnd!==void 0&&{current_period_end:Z.currentPeriodEnd},...Z.lastStripeEventAt!==void 0&&{last_stripe_event_at:Z.lastStripeEventAt},updated_at:new Date}).where("organization_id","=",$).executeTakeFirst()).numUpdatedRows??0n)>0n}async taskClaim($){let Z=await this.db.selectFrom("task_quota_claims").select(["run_count","state"]).where("task_board_item_id","=",$).executeTakeFirst();return Z?{runCount:Z.run_count,state:Z.state}:null}static liveClaimCount($,Z,X){return $.selectFrom("task_quota_claims").select((Q)=>Q.fn.countAll().as("count")).where("organization_id","=",Z).where("period_key","=",X).where("state","<>","released").executeTakeFirst().then((Q)=>Number(Q?.count??0))}async countTaskClaims($,Z){return await mW.liveClaimCount(this.db,$,Z)}async claimTaskUnderLimit($,Z,X,Q,Y){return await this.db.transaction().execute(async(G)=>{await G.insertInto("organization_billing").values({organization_id:$}).onConflict((W)=>W.column("organization_id").doNothing()).execute(),await G.selectFrom("organization_billing").select("organization_id").where("organization_id","=",$).forUpdate().executeTakeFirstOrThrow();let J=await G.selectFrom("task_quota_claims").select(["run_count","state"]).where("task_board_item_id","=",Z).executeTakeFirst();if(J&&J.run_count>=Y)return"runs_exhausted";let K=()=>mW.liveClaimCount(G,$,X);if(J&&J.state!=="released")return await G.updateTable("task_quota_claims").set({run_count:J.run_count+1}).where("task_board_item_id","=",Z).execute(),"rerun";if(await K()>=Q)return"exhausted";if(J)return await G.updateTable("task_quota_claims").set({state:"held",period_key:X,run_count:J.run_count+1}).where("task_board_item_id","=",Z).execute(),"claimed";return await G.insertInto("task_quota_claims").values({task_board_item_id:Z,organization_id:$,period_key:X,state:"held"}).execute(),"claimed"})}async releaseTaskClaim($,Z){return((await this.db.updateTable("task_quota_claims").set({state:"released"}).where("organization_id","=",$).where("task_board_item_id","=",Z).where("state","=","held").executeTakeFirst()).numUpdatedRows??0n)>0n}async rollbackTaskClaim($,Z,{releaseSlot:X}){await this.db.updateTable("task_quota_claims").set(()=>({...X?{state:"released"}:{},run_count:fH4`greatest(run_count - 1, 0)`})).where("organization_id","=",$).where("task_board_item_id","=",Z).where("state","=","held").execute()}}var rQ0=()=>{};class ga0{db;constructor($){this.db=$}async findById($,Z){let X=await this.db.selectFrom("user").select(["user.id","user.name","user.email","user.image","user.createdAt","user.updatedAt"]).where("user.id","=",$).where((Q)=>Q.exists(Q.selectFrom("member as m1").innerJoin("member as m2","m1.organizationId","m2.organizationId").select("m1.id").where("m1.userId","=",$).where("m2.userId","=",Z))).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}}}function TQ8(){let $={};for(let Z of aQ0){if(Z.id==="basic-usage")continue;$[Z.id]=!0}return $}function ua0($){let Z=(G)=>{let J=$[G];return Array.isArray(J)?J:[]},X=Z("*").includes("*")||Z("self").includes("*"),Q=new Set;if(!X)for(let G of Object.values($)){if(!Array.isArray(G))continue;for(let J of G)Q.add(J)}let Y={};for(let G of aQ0){if(G.id==="basic-usage")continue;Y[G.id]=X||G.tools.every((J)=>Q.has(J))}return Y}function Hz(){let $={Organizations:[],Connections:[],"Virtual MCPs":[],Threads:[],Monitoring:[],Users:[],"API Keys":[],Tags:[],"AI Providers":[],Secrets:[],"File Configs":[],Automations:[],"Object Storage":[],Registry:[],GitHub:[],VM:[],Search:[],"Task Board":[]};for(let Z of ha0)$[Z.category].push(Z);return $}var ha0,aQ0,AQ8,bH4,sQ0;var qg=O(()=>{ha0=[{name:"ORGANIZATION_CREATE",description:"Create a new organization",category:"Organizations"},{name:"ORGANIZATION_LIST",description:"List organizations",category:"Organizations"},{name:"ORGANIZATION_GET",description:"View organization details",category:"Organizations"},{name:"ORGANIZATION_UPDATE",description:"Update organization",category:"Organizations"},{name:"ORGANIZATION_DELETE",description:"Delete organization",category:"Organizations",dangerous:!0},{name:"ORGANIZATION_SETTINGS_GET",description:"View organization settings",category:"Organizations"},{name:"ORGANIZATION_SETTINGS_UPDATE",description:"Update organization settings",category:"Organizations"},{name:"BRAND_CONTEXT_LIST",description:"List brand contexts",category:"Organizations"},{name:"BRAND_CONTEXT_GET",description:"View brand context",category:"Organizations"},{name:"BRAND_CONTEXT_CREATE",description:"Create brand context",category:"Organizations"},{name:"BRAND_CONTEXT_UPDATE",description:"Update brand context",category:"Organizations"},{name:"BRAND_CONTEXT_DELETE",description:"Delete brand context",category:"Organizations",dangerous:!0},{name:"BRAND_CONTEXT_EXTRACT",description:"Extract brand context from website",category:"Organizations"},{name:"BRAND_GET",description:"Get brand (binding)",category:"Organizations"},{name:"BRAND_LIST",description:"List brands (binding)",category:"Organizations"},{name:"ORGANIZATION_DOMAIN_LIST",description:"List organization domain claims",category:"Organizations"},{name:"ORGANIZATION_DOMAIN_ADD",description:"Claim an email domain for the organization",category:"Organizations"},{name:"ORGANIZATION_DOMAIN_UPDATE",description:"Set a domain's join mode",category:"Organizations"},{name:"ORGANIZATION_DOMAIN_VERIFY",description:"Verify a domain via DNS TXT record",category:"Organizations"},{name:"ORGANIZATION_DOMAIN_REMOVE",description:"Remove an organization domain claim",category:"Organizations",dangerous:!0},{name:"ORGANIZATION_JOIN_REQUEST_LIST",description:"List pending requests to join the organization",category:"Organizations"},{name:"ORGANIZATION_JOIN_REQUEST_APPROVE",description:"Approve a request to join the organization",category:"Organizations"},{name:"ORGANIZATION_JOIN_REQUEST_DENY",description:"Deny a request to join the organization",category:"Organizations",dangerous:!0},{name:"ORGANIZATION_MEMBER_ADD",description:"Add members",category:"Organizations"},{name:"ORGANIZATION_MEMBER_REMOVE",description:"Remove members",category:"Organizations",dangerous:!0},{name:"ORGANIZATION_MEMBER_LIST",description:"List members",category:"Organizations"},{name:"ORGANIZATION_MEMBER_UPDATE_ROLE",description:"Update member roles",category:"Organizations"},{name:"ORGANIZATION_BILLING_CHECKOUT_START",description:"Start the org subscription checkout",category:"Organizations",dangerous:!0},{name:"ORGANIZATION_BILLING_PORTAL",description:"Open the Stripe billing portal",category:"Organizations"},{name:"ORGANIZATION_TASK_QUOTA_GET",description:"Get the org's auto-task quota usage",category:"Organizations"},{name:"COLLECTION_CONNECTIONS_CREATE",description:"Create connections",category:"Connections"},{name:"COLLECTION_CONNECTIONS_LIST",description:"List connections",category:"Connections"},{name:"COLLECTION_CONNECTIONS_GET",description:"View connection details",category:"Connections"},{name:"COLLECTION_CONNECTIONS_UPDATE",description:"Update connections",category:"Connections"},{name:"COLLECTION_CONNECTIONS_DELETE",description:"Delete connections",category:"Connections",dangerous:!0},{name:"CONNECTION_TEST",description:"Test connections",category:"Connections"},{name:"COMMERCE_DISCOVERY_SETUP",description:"Set up Commerce Discovery",category:"Connections"},{name:"COMMERCE_DISCOVERY_RUN",description:"Run Commerce Discovery",category:"Connections"},{name:"COMMERCE_DISCOVERY_BIND",description:"Bind Commerce Discovery data source",category:"Connections"},{name:"COMMERCE_DISCOVERY_CONNECTION_STATUS",description:"Read Commerce Discovery connection status",category:"Connections"},{name:"DATABASES_RUN_SQL",description:"Run SQL queries",category:"Connections",dangerous:!0},{name:"COLLECTION_VIRTUAL_MCP_CREATE",description:"Create virtual MCPs",category:"Virtual MCPs"},{name:"COLLECTION_VIRTUAL_MCP_LIST",description:"List virtual MCPs",category:"Virtual MCPs"},{name:"COLLECTION_VIRTUAL_MCP_GET",description:"View virtual MCP details",category:"Virtual MCPs"},{name:"COLLECTION_VIRTUAL_MCP_UPDATE",description:"Update virtual MCPs",category:"Virtual MCPs"},{name:"COLLECTION_VIRTUAL_MCP_DELETE",description:"Delete virtual MCPs",category:"Virtual MCPs",dangerous:!0},{name:"MONITORING_HEATMAP",description:"View tool-call volume by agent and tool",category:"Monitoring"},{name:"MONITORING_LOG_GET",description:"View monitoring log details",category:"Monitoring"},{name:"MONITORING_LOGS_LIST",description:"List monitoring logs",category:"Monitoring"},{name:"MONITORING_STATS",description:"View monitoring statistics",category:"Monitoring"},{name:"MONITORING_THREAD_USAGE",description:"View per-thread token usage and cost",category:"Monitoring"},{name:"API_KEY_CREATE",description:"Create API key",category:"API Keys"},{name:"API_KEY_LIST",description:"List API keys",category:"API Keys"},{name:"API_KEY_UPDATE",description:"Update API key",category:"API Keys"},{name:"API_KEY_DELETE",description:"Delete API key",category:"API Keys",dangerous:!0},{name:"USER_GET",description:"Get a user by id",category:"Users"},{name:"USER_MODEL_PREFERENCES_GET",description:"Get the calling user's chat tier \u2192 model overrides",category:"Users"},{name:"USER_MODEL_PREFERENCES_UPDATE",description:"Set the calling user's chat tier \u2192 model overrides",category:"Users"},{name:"COLLECTION_THREADS_CREATE",description:"Create threads",category:"Threads"},{name:"COLLECTION_THREADS_LIST",description:"List threads",category:"Threads"},{name:"COLLECTION_THREADS_GET",description:"View thread details",category:"Threads"},{name:"COLLECTION_THREADS_UPDATE",description:"Update threads",category:"Threads"},{name:"COLLECTION_THREADS_DELETE",description:"Delete threads",category:"Threads",dangerous:!0},{name:"COLLECTION_THREAD_MESSAGES_LIST",description:"List thread messages",category:"Threads"},{name:"TAGS_LIST",description:"List organization tags",category:"Tags"},{name:"TAGS_CREATE",description:"Create organization tag",category:"Tags"},{name:"TAGS_DELETE",description:"Delete organization tag",category:"Tags",dangerous:!0},{name:"MEMBER_TAGS_GET",description:"Get member tags",category:"Tags"},{name:"MEMBER_TAGS_SET",description:"Set member tags",category:"Tags"},{name:"AUTOMATION_CREATE",description:"Create automation",category:"Automations"},{name:"AUTOMATION_GET",description:"View automation details",category:"Automations"},{name:"AUTOMATION_LIST",description:"List automations",category:"Automations"},{name:"AUTOMATION_UPDATE",description:"Update automation",category:"Automations"},{name:"AUTOMATION_DELETE",description:"Delete automation",category:"Automations",dangerous:!0},{name:"AUTOMATION_TRIGGER_ADD",description:"Add trigger to automation",category:"Automations"},{name:"AUTOMATION_TRIGGER_REMOVE",description:"Remove trigger from automation",category:"Automations"},{name:"AUTOMATION_TRIGGER_ROTATE_TOKEN",description:"Rotate the secret token for a webhook automation trigger",category:"Automations"},{name:"AUTOMATION_RUN",description:"Manually trigger an automation run",category:"Automations"},{name:"AUTOMATION_RUN_STATS",description:"View aggregated run counts and token/cost for an automation",category:"Automations"},{name:"VIRTUAL_MCP_PLUGIN_CONFIG_GET",description:"View virtual MCP plugin configuration",category:"Virtual MCPs"},{name:"VIRTUAL_MCP_PLUGIN_CONFIG_UPDATE",description:"Update virtual MCP plugin configuration",category:"Virtual MCPs"},{name:"VIRTUAL_MCP_PINNED_VIEWS_UPDATE",description:"Update virtual MCP pinned sidebar views",category:"Virtual MCPs"},{name:"VIRTUAL_MCP_LAST_USED_LIST",description:"Get last-used info for one or more virtual MCPs",category:"Virtual MCPs"},{name:"AI_PROVIDERS_LIST",description:"List available AI providers",category:"AI Providers"},{name:"AI_PROVIDERS_LIST_MODELS",description:"List AI provider models",category:"AI Providers"},{name:"AI_PROVIDERS_ACTIVE",description:"List active AI providers",category:"AI Providers"},{name:"AI_PROVIDER_KEY_CREATE",description:"Store AI provider API key",category:"AI Providers"},{name:"AI_PROVIDER_KEY_LIST",description:"List AI provider API keys",category:"AI Providers"},{name:"AI_PROVIDER_KEY_DELETE",description:"Delete AI provider API key",category:"AI Providers",dangerous:!0},{name:"AI_PROVIDER_KEY_UPDATE",description:"Update AI provider API key label or credential",category:"AI Providers"},{name:"AI_PROVIDER_KEY_PREVIEW",description:"Get masked preview of AI provider API key",category:"AI Providers"},{name:"AI_PROVIDER_OAUTH_URL",description:"Get OAuth URL for provider",category:"AI Providers"},{name:"AI_PROVIDER_OAUTH_EXCHANGE",description:"Exchange OAuth code for API key",category:"AI Providers"},{name:"AI_PROVIDER_PROVISION_KEY",description:"Auto-provision API key for a provider",category:"AI Providers"},{name:"AI_PROVIDER_TOPUP_URL",description:"Get checkout URL to top up provider credits",category:"AI Providers"},{name:"CLAUDE_SUBSCRIPTION_CONNECT",description:"Link your own Claude subscription with a setup token",category:"AI Providers"},{name:"CLAUDE_SUBSCRIPTION_STATUS",description:"Whether your Claude subscription is linked, and since when",category:"AI Providers"},{name:"CLAUDE_SUBSCRIPTION_DISCONNECT",description:"Unlink your Claude subscription",category:"AI Providers"},{name:"AI_PROVIDER_CREDITS",description:"Get current credit balance for a provider",category:"AI Providers"},{name:"SECRET_CREATE",description:"Create a secret in the credential vault",category:"Secrets"},{name:"SECRET_LIST",description:"List secrets visible to the caller (no values returned)",category:"Secrets"},{name:"FILE_CONFIG_CREATE",description:"Create an S3-compatible bucket configuration for the org",category:"File Configs"},{name:"FILE_CONFIG_LIST",description:"List S3 bucket configurations for the org (no creds returned)",category:"File Configs"},{name:"ORG_FS_PUBLIC_SETS_SYNC",description:"Re-sync the shared public skill-set volumes from their GitHub sources",category:"File Configs"},{name:"ORG_REPO_SYNC_CREATE",description:"Keep a GitHub repository mirrored into a new org-fs volume",category:"File Configs"},{name:"ORG_REPO_SYNC_LIST",description:"List the org's synced repositories and their sync status",category:"File Configs"},{name:"ORG_REPO_SYNC_UPDATE",description:"Update a synced repository's ref, paths, or enabled flag",category:"File Configs"},{name:"ORG_REPO_SYNC_DELETE",description:"Stop syncing a repository (already-synced files are kept)",category:"File Configs"},{name:"ORG_REPO_SYNC_RUN",description:"Sync a repository into its volume right now",category:"File Configs"},{name:"FILE_CONFIG_UPDATE",description:"Update an S3 bucket configuration, optionally rotating credentials",category:"File Configs"},{name:"FILE_CONFIG_DELETE",description:"Delete an S3 bucket configuration",category:"File Configs"},{name:"FILE_OBJECTS_LIST",description:"List existing objects in a configured bucket",category:"File Configs"},{name:"LIST_OBJECTS",description:"List objects in storage",category:"Object Storage"},{name:"GET_OBJECT_METADATA",description:"Get object metadata",category:"Object Storage"},{name:"GET_PRESIGNED_URL",description:"Generate download URL",category:"Object Storage"},{name:"PUT_PRESIGNED_URL",description:"Generate upload URL",category:"Object Storage"},{name:"DELETE_OBJECT",description:"Delete object",category:"Object Storage",dangerous:!0},{name:"DELETE_OBJECTS",description:"Delete multiple objects",category:"Object Storage",dangerous:!0},{name:"COLLECTION_REGISTRY_APP_LIST",description:"List registry apps",category:"Registry"},{name:"COLLECTION_REGISTRY_APP_GET",description:"Get registry app details",category:"Registry"},{name:"COLLECTION_REGISTRY_APP_VERSIONS",description:"List registry app versions",category:"Registry"},{name:"COLLECTION_REGISTRY_APP_FILTERS",description:"Get registry app filters",category:"Registry"},{name:"REGISTRY_ITEM_LIST",description:"List private registry items",category:"Registry"},{name:"REGISTRY_ITEM_SEARCH",description:"Search registry items",category:"Registry"},{name:"REGISTRY_ITEM_GET",description:"Get registry item details",category:"Registry"},{name:"REGISTRY_ITEM_VERSIONS",description:"List registry item versions",category:"Registry"},{name:"REGISTRY_ITEM_CREATE",description:"Create registry item",category:"Registry"},{name:"REGISTRY_ITEM_BULK_CREATE",description:"Bulk create registry items",category:"Registry"},{name:"REGISTRY_ITEM_UPDATE",description:"Update registry item",category:"Registry"},{name:"REGISTRY_ITEM_DELETE",description:"Delete registry item",category:"Registry",dangerous:!0},{name:"REGISTRY_ITEM_FILTERS",description:"Get registry item filters",category:"Registry"},{name:"REGISTRY_DISCOVER_TOOLS",description:"Discover tools from MCP server",category:"Registry"},{name:"REGISTRY_AI_GENERATE",description:"AI-generate registry content",category:"Registry"},{name:"REGISTRY_PUBLISH_REQUEST_LIST",description:"List publish requests",category:"Registry"},{name:"REGISTRY_PUBLISH_REQUEST_REVIEW",description:"Review publish request",category:"Registry"},{name:"REGISTRY_PUBLISH_REQUEST_COUNT",description:"Count pending publish requests",category:"Registry"},{name:"REGISTRY_PUBLISH_REQUEST_DELETE",description:"Delete publish request",category:"Registry",dangerous:!0},{name:"REGISTRY_PUBLISH_API_KEY_GENERATE",description:"Generate publish API key",category:"Registry"},{name:"REGISTRY_PUBLISH_API_KEY_LIST",description:"List publish API keys",category:"Registry"},{name:"REGISTRY_PUBLISH_API_KEY_REVOKE",description:"Revoke publish API key",category:"Registry",dangerous:!0},{name:"REGISTRY_MONITOR_RUN_START",description:"Start monitor run",category:"Registry"},{name:"REGISTRY_MONITOR_RUN_LIST",description:"List monitor runs",category:"Registry"},{name:"REGISTRY_MONITOR_RUN_GET",description:"Get monitor run details",category:"Registry"},{name:"REGISTRY_MONITOR_RUN_CANCEL",description:"Cancel monitor run",category:"Registry"},{name:"REGISTRY_MONITOR_RESULT_LIST",description:"List monitor results",category:"Registry"},{name:"REGISTRY_MONITOR_CONNECTION_LIST",description:"List monitor connections",category:"Registry"},{name:"REGISTRY_MONITOR_CONNECTION_SYNC",description:"Sync monitor connections",category:"Registry"},{name:"REGISTRY_MONITOR_CONNECTION_UPDATE_AUTH",description:"Update monitor connection auth",category:"Registry"},{name:"SANDBOX_START",description:"Start a sandbox VM with dev server preview",category:"VM"},{name:"SANDBOX_DELETE",description:"Stop and delete a sandbox VM",category:"VM"},{name:"GITHUB_LIST_USER_ORGS",description:"List GitHub user's personal account and organizations",category:"GitHub"},{name:"GLOBAL_SEARCH",description:"Search across organization resources (currently threads). Returns a typed union of matches.",category:"Search"},{name:"TASK_BOARD_ITEM_CREATE",description:"Create task board item",category:"Task Board"},{name:"TASK_BOARD_ITEM_LIST",description:"List task board items",category:"Task Board"},{name:"TASK_BOARD_ITEM_UPDATE",description:"Update task board item",category:"Task Board"},{name:"TASK_BOARD_ITEM_DELETE",description:"Delete task board item",category:"Task Board",dangerous:!0},{name:"TASK_BOARD_ITEM_PRS_GET",description:"Get a task board item's linked pull requests with live state",category:"Task Board"},{name:"TASK_BOARD_ITEM_PR_LINK",description:"Link a pull request a task run opened to its task board item",category:"Task Board"},{name:"TASK_BOARD_ITEM_RERUN",description:"Re-run a task with the Super Agent, failing any run still holding it open",category:"Task Board",dangerous:!0},{name:"TASK_BOARD_REVIEW_DECISION",description:"Record a reviewer's decision (approve or request changes) for a task under review",category:"Task Board",dangerous:!0},{name:"TASK_BOARD_PROMOTE_TO_PRODUCTION",description:"Merge a reviewed task's pull request and move the task to Done",category:"Task Board",dangerous:!0},{name:"TASK_BOARD_ACTIVITY_LIST",description:"List a task board item's change history",category:"Task Board"},{name:"TASK_BOARD_COMMENT_LIST",description:"List a task board item's comment threads",category:"Task Board"},{name:"TASK_BOARD_COMMENT_CREATE",description:"Post a comment or a reply on a task board item",category:"Task Board"},{name:"TASK_BOARD_COMMENT_UPDATE",description:"Edit a comment, or resolve/unresolve a comment thread",category:"Task Board"},{name:"TASK_BOARD_COMMENT_DELETE",description:"Delete a comment (a thread root takes its replies)",category:"Task Board"},{name:"TASK_BOARD_DISMISSED_LIST",description:"List diagnostic findings dismissed by deleting their task board cards",category:"Task Board"},{name:"TASK_BOARD_DISMISSED_RESTORE",description:"Un-dismiss diagnostic findings so the next report import pushes them again",category:"Task Board"},{name:"TASK_ADD_REPO",description:"Clone an organization repository into the sandbox of the task run calling it",category:"Task Board"}],aQ0=[{id:"basic-usage",label:"Basic Usage",description:"Tools all org members can access by default",section:"Basic Usage",tools:["COLLECTION_CONNECTIONS_LIST","COLLECTION_CONNECTIONS_GET","CONNECTION_TEST","COLLECTION_VIRTUAL_MCP_LIST","COLLECTION_VIRTUAL_MCP_GET","VIRTUAL_MCP_PLUGIN_CONFIG_GET","VIRTUAL_MCP_LAST_USED_LIST","AUTOMATION_GET","AUTOMATION_LIST","AUTOMATION_RUN_STATS","AI_PROVIDERS_LIST","AI_PROVIDERS_LIST_MODELS","AI_PROVIDERS_ACTIVE","AI_PROVIDER_KEY_LIST","AI_PROVIDER_CREDITS","AI_PROVIDER_TOPUP_URL","LIST_OBJECTS","GET_OBJECT_METADATA","GET_PRESIGNED_URL","PUT_PRESIGNED_URL","FILE_OBJECTS_LIST","ORG_REPO_SYNC_LIST","SANDBOX_START","SANDBOX_DELETE","GLOBAL_SEARCH","ORGANIZATION_SETTINGS_GET","USER_GET","BRAND_CONTEXT_LIST","COLLECTION_THREADS_CREATE","COLLECTION_THREADS_LIST","COLLECTION_THREADS_GET","COLLECTION_THREADS_UPDATE","COLLECTION_THREADS_DELETE","COLLECTION_THREAD_MESSAGES_LIST","TASK_BOARD_ITEM_CREATE","TASK_BOARD_ITEM_LIST","TASK_BOARD_ITEM_UPDATE","TASK_BOARD_ITEM_DELETE","TASK_BOARD_ITEM_PRS_GET","TASK_BOARD_ITEM_PR_LINK","TASK_BOARD_ITEM_RERUN","TASK_BOARD_REVIEW_DECISION","TASK_BOARD_PROMOTE_TO_PRODUCTION","TASK_BOARD_ACTIVITY_LIST","TASK_BOARD_COMMENT_LIST","TASK_BOARD_COMMENT_CREATE","TASK_BOARD_COMMENT_UPDATE","TASK_BOARD_COMMENT_DELETE","TASK_BOARD_DISMISSED_LIST","TASK_BOARD_DISMISSED_RESTORE"]},{id:"org:manage",label:"Manage organization",description:"Edit organization settings, brand context, and domain configuration",section:"Organization",tools:["ORGANIZATION_GET","ORGANIZATION_LIST","ORGANIZATION_UPDATE","ORGANIZATION_SETTINGS_GET","ORGANIZATION_SETTINGS_UPDATE","BRAND_CONTEXT_LIST","BRAND_CONTEXT_GET","BRAND_CONTEXT_CREATE","BRAND_CONTEXT_UPDATE","BRAND_CONTEXT_DELETE","BRAND_CONTEXT_EXTRACT","BRAND_GET","BRAND_LIST","ORGANIZATION_DOMAIN_LIST","ORGANIZATION_DOMAIN_ADD","ORGANIZATION_DOMAIN_UPDATE","ORGANIZATION_DOMAIN_VERIFY","ORGANIZATION_DOMAIN_REMOVE"]},{id:"members:manage",label:"Manage members",description:"Invite members, remove them, and change their roles",section:"Organization",tools:["ORGANIZATION_MEMBER_LIST","ORGANIZATION_MEMBER_ADD","ORGANIZATION_MEMBER_REMOVE","ORGANIZATION_MEMBER_UPDATE_ROLE","ORGANIZATION_BILLING_CHECKOUT_START","ORGANIZATION_BILLING_PORTAL","ORGANIZATION_TASK_QUOTA_GET","ORGANIZATION_JOIN_REQUEST_LIST","ORGANIZATION_JOIN_REQUEST_APPROVE","ORGANIZATION_JOIN_REQUEST_DENY"],dangerous:!0},{id:"connections:manage",label:"Manage connections",description:"Create, update, and delete connections",section:"Connections & Agents",tools:["COLLECTION_CONNECTIONS_CREATE","COLLECTION_CONNECTIONS_UPDATE","COLLECTION_CONNECTIONS_DELETE","COMMERCE_DISCOVERY_SETUP","COMMERCE_DISCOVERY_RUN","COMMERCE_DISCOVERY_BIND","COMMERCE_DISCOVERY_CONNECTION_STATUS"],dangerous:!0},{id:"agents:manage",label:"Manage agents",description:"Create, configure, and delete agents",section:"Connections & Agents",tools:["COLLECTION_VIRTUAL_MCP_CREATE","COLLECTION_VIRTUAL_MCP_UPDATE","COLLECTION_VIRTUAL_MCP_DELETE","VIRTUAL_MCP_PLUGIN_CONFIG_UPDATE","VIRTUAL_MCP_PINNED_VIEWS_UPDATE"],dangerous:!0},{id:"automations:manage",label:"Manage automations",description:"Create, update, run, and delete automations",section:"Automations",tools:["AUTOMATION_CREATE","AUTOMATION_UPDATE","AUTOMATION_DELETE","AUTOMATION_TRIGGER_ADD","AUTOMATION_TRIGGER_REMOVE","AUTOMATION_TRIGGER_ROTATE_TOKEN","AUTOMATION_RUN"],dangerous:!0},{id:"monitoring:view",label:"View monitoring",description:"Access logs and usage statistics",section:"Monitoring",tools:["MONITORING_HEATMAP","MONITORING_LOG_GET","MONITORING_LOGS_LIST","MONITORING_STATS","MONITORING_THREAD_USAGE"]},{id:"secrets:manage",label:"Manage secrets",description:"Create and list secrets stored in the credential vault",section:"Organization",tools:["SECRET_CREATE","SECRET_LIST"]},{id:"file-configs:manage",label:"Manage file configs",description:"Create, list, update and delete S3 bucket configurations and synced GitHub repositories",section:"Organization",tools:["FILE_CONFIG_CREATE","FILE_CONFIG_LIST","FILE_CONFIG_UPDATE","FILE_CONFIG_DELETE","FILE_OBJECTS_LIST","ORG_REPO_SYNC_CREATE","ORG_REPO_SYNC_LIST","ORG_REPO_SYNC_UPDATE","ORG_REPO_SYNC_DELETE","ORG_REPO_SYNC_RUN"]},{id:"ai-providers:manage",label:"Manage AI providers",description:"Add or remove API keys and provision provider credentials",section:"AI Providers",tools:["AI_PROVIDER_KEY_CREATE","AI_PROVIDER_KEY_LIST","AI_PROVIDER_KEY_DELETE","AI_PROVIDER_KEY_UPDATE","AI_PROVIDER_KEY_PREVIEW","AI_PROVIDER_OAUTH_URL","AI_PROVIDER_OAUTH_EXCHANGE","AI_PROVIDER_PROVISION_KEY","AI_PROVIDER_TOPUP_URL","AI_PROVIDER_CREDITS","CLAUDE_SUBSCRIPTION_CONNECT","CLAUDE_SUBSCRIPTION_STATUS","CLAUDE_SUBSCRIPTION_DISCONNECT"]},{id:"tags:manage",label:"Manage tags",description:"Create, assign, and delete organization tags",section:"Organization",tools:["TAGS_LIST","TAGS_CREATE","TAGS_DELETE","MEMBER_TAGS_GET","MEMBER_TAGS_SET"]},{id:"registry:manage",label:"Manage registry",description:"Browse, publish, and manage items in the registry",section:"Store & Registry",tools:["COLLECTION_REGISTRY_APP_LIST","COLLECTION_REGISTRY_APP_GET","COLLECTION_REGISTRY_APP_VERSIONS","COLLECTION_REGISTRY_APP_FILTERS","REGISTRY_ITEM_LIST","REGISTRY_ITEM_SEARCH","REGISTRY_ITEM_GET","REGISTRY_ITEM_VERSIONS","REGISTRY_ITEM_FILTERS","REGISTRY_DISCOVER_TOOLS","REGISTRY_ITEM_CREATE","REGISTRY_ITEM_BULK_CREATE","REGISTRY_ITEM_UPDATE","REGISTRY_ITEM_DELETE","REGISTRY_AI_GENERATE","REGISTRY_PUBLISH_REQUEST_LIST","REGISTRY_PUBLISH_REQUEST_REVIEW","REGISTRY_PUBLISH_REQUEST_COUNT","REGISTRY_PUBLISH_REQUEST_DELETE","REGISTRY_PUBLISH_API_KEY_GENERATE","REGISTRY_PUBLISH_API_KEY_LIST","REGISTRY_PUBLISH_API_KEY_REVOKE"],dangerous:!0},{id:"registry:monitor",label:"Monitor registry health",description:"Run health checks on registry connections and view results",section:"Store & Registry",tools:["REGISTRY_MONITOR_RUN_START","REGISTRY_MONITOR_RUN_LIST","REGISTRY_MONITOR_RUN_GET","REGISTRY_MONITOR_RUN_CANCEL","REGISTRY_MONITOR_RESULT_LIST","REGISTRY_MONITOR_CONNECTION_LIST","REGISTRY_MONITOR_CONNECTION_SYNC","REGISTRY_MONITOR_CONNECTION_UPDATE_AUTH"]},{id:"api-keys:manage",label:"Manage API keys",description:"Create, update, and revoke API keys",section:"Developer",tools:["API_KEY_CREATE","API_KEY_LIST","API_KEY_UPDATE","API_KEY_DELETE"]},{id:"storage:delete",label:"Delete from storage",description:"Permanently delete files from object storage",section:"Developer",tools:["DELETE_OBJECT","DELETE_OBJECTS"],dangerous:!0},{id:"connections:sql",label:"Run SQL queries",description:"Execute raw SQL against connected databases",section:"Developer",tools:["DATABASES_RUN_SQL"],dangerous:!0}],AQ8=new Set([...aQ0.find(($)=>$.id==="basic-usage")?.tools??[],"ORG_FS_READ","ORG_FS_WRITE"]),bH4=["agents:manage","connections:manage"],sQ0=new Set(aQ0.filter(($)=>bH4.includes($.id)).flatMap(($)=>$.tools))});function B3($){if(!$)return!1;return $.split(",").some((X)=>sp.includes(X))}function eQ0($,Z){let X=Array.isArray(Z)?Z:[Z];if(X.length===0)return!1;let Q=$?$.split(","):[];if(Q.includes("owner"))return!0;if(Q.includes("admin"))return X.every((Y)=>Y!=="owner");return!1}var Mg,sp;var O3=O(()=>{Mg=["owner","admin","user"],sp=["owner","admin"]});class Uz{userId;toolName;boundAuth;role;connectionId;getToolMeta;organizationId;_granted=!1;constructor($,Z,X,Q,Y="self",G,J){this.userId=$;this.toolName=Z;this.boundAuth=X;this.role=Q;this.connectionId=Y;this.getToolMeta=G;this.organizationId=J}setToolName($){this.toolName=$}setOrganizationId($){this.organizationId=$}getOrganizationId(){return this.organizationId}setRole($){this.role=$}getRole(){return this.role}grant(){this._granted=!0}async check(...$){if(this._granted)return;if(this.toolName?.startsWith("STUDIO_PUBLIC_")||this.toolName?.startsWith("MESH_PUBLIC_")){this.grant();return}if(!this.userId&&!this.boundAuth){if(this.getToolMeta&&await this.isToolPublic()){this.grant();return}throw new Vg("Authentication required. Please provide a valid OAuth token or API key.")}let Z=$.length>0?$:this.toolName?[this.toolName]:[];if(Z.length===0)throw new HN("No resources specified for access check");for(let X of Z)if(await this.checkResource(X)){this.grant();return}throw new HN(`Access denied to: ${Z.join(", ")}`)}async checkResource($){if(!this.userId&&!this.boundAuth)return!1;return this.boundAuth?.isApiKeyPrincipal?this.checkApiKeyAccess($):this.checkMemberAccess($)}async checkApiKeyAccess($){if(!this.boundAuth)return!1;return this.boundAuth.hasPermission({[this.connectionId]:[$]})}async checkMemberAccess($){if(this.userId&&this.role&&AQ8.has($))return!0;if(B3(this.role))return!0;if(!this.boundAuth)return!1;return this.boundAuth.hasPermission({[this.connectionId]:[$]},{organizationId:this.organizationId,role:this.role})}async isToolPublic(){if(this.toolName?.startsWith("STUDIO_PUBLIC_")||this.toolName?.startsWith("MESH_PUBLIC_"))return!0;if(!this.getToolMeta)return!1;try{let $=await this.getToolMeta();if(!$)return!1;let X=dW($)?.public_tool;return X===!0||X==="true"}catch{return!1}}granted(){return this._granted}}var Vg,HN;var Nz=O(()=>{qg();O3();Vg=class Vg extends Error{constructor($){super($);this.name="UnauthorizedError"}};HN=class HN extends Error{constructor($){super($);this.name="ForbiddenError"}}});function RQ8($){let Z={};for(let X of Object.keys($))Z[X]=["*"];return Z}function XQ($){let Z=$?.metadata;if(!Z)return!1;try{return(typeof Z==="string"?JSON.parse(Z):Z).archived===!0}catch{return!1}}function $Y0($,Z){return $.get(IQ8[Z])??$.get(qQ8[Z])}function ca0($,Z,X){$[IQ8[Z]]=X,$[qQ8[Z]]=X}var IQ8,qQ8;var la0=O(()=>{IQ8={token:"x-studio-token",client:"x-studio-client",properties:"x-studio-properties",runMetadata:"x-studio-run-metadata"},qQ8={token:"x-mesh-token",client:"x-mesh-client",properties:"x-mesh-properties",runMetadata:"x-mesh-run-metadata"}});function ZY0($){let Z=vB.get($);if(!Z||Z.state==="CLOSED")return;if(Z.state==="HALF_OPEN"){if(Z.halfOpenInFlight){if(Date.now()-Z.halfOpenStartedAt<e$8)throw new kg($,0)}Z.halfOpenInFlight=!0,Z.halfOpenStartedAt=Date.now();return}let X=Date.now()-Z.lastFailureTime;if(X>=Co0){Z.state="HALF_OPEN",Z.halfOpenInFlight=!0,Z.halfOpenStartedAt=Date.now();return}throw new kg($,Co0-X)}function XY0($){vB.delete($)}function QY0($){let Z=vB.get($);if(!Z){yH4(),vB.set($,{state:1>=So0?"OPEN":"CLOSED",consecutiveFailures:1,lastFailureTime:Date.now(),halfOpenInFlight:!1,halfOpenStartedAt:0});return}if(Z.consecutiveFailures++,Z.lastFailureTime=Date.now(),Z.halfOpenInFlight=!1,Z.consecutiveFailures>=So0)Z.state="OPEN"}function yH4(){if(vB.size<bX0)return;let $=null,Z=1/0;for(let[X,Q]of vB)if(Q.lastFailureTime<Z)Z=Q.lastFailureTime,$=X;if($)vB.delete($)}var vB,kg;var da0=O(()=>{t$();vB=new Map;y8.createObservableGauge("mcp_circuit_breaker.circuits",{description:"MCP connection circuits by state (open, half_open)",unit:"{circuits}"}).addCallback(($)=>{let Z=0,X=0;for(let Q of vB.values())if(Q.state==="OPEN")Z++;else if(Q.state==="HALF_OPEN")X++;$.observe(Z,{state:"open"}),$.observe(X,{state:"half_open"})});kg=class kg extends Error{cooldownRemainingMs;constructor($,Z){super(`Connection ${$} circuit breaker is open \u2014 downstream server unreachable. `+`Retry in ${Math.ceil(Z/1000)}s.`);this.name="CircuitOpenError",this.cooldownRemainingMs=Z}}});var ep=($,Z)=>{if(Z===null||Z===void 0)return;let X=$.replace(/\[(\w+)\]/g,".$1").split(".").filter(Boolean),Q=Z;for(let Y of X){if(Q===null||Q===void 0||typeof Q!=="object")return;Q=Q[Y]}return Q};function YY0($){let Z=$.split("::");if(Z.length!==2||!Z[0]||!Z[1])throw Error(`Invalid scope format: ${$}. Expected format: "KEY::SCOPE"`);return Z}function gH4($){try{return YY0($)}catch{return null}}function hH4($){if(typeof $==="object"&&$!==null&&"value"in $){let Z=$.value;if(typeof Z==="string")return Z}return null}function ma0($,Z){let X={};if(!$||!Z)return X;for(let Q of Z){if(Q==="*"){X["*"]=["*"];continue}let Y=gH4(Q);if(!Y)continue;let[G,J]=Y,K=ep(G,$),W=hH4(K);if(W){if(!X[W])X[W]=[];X[W].push(J)}}return X}function MQ8($,Z){let X=ma0($,Z);return new Set(Object.keys(X).filter((Q)=>Q!=="*"))}var ia0=()=>{};async function VQ8($){if(!$.refreshToken)return{success:!1,permanent:!1,error:"No refresh token available"};if(!$.tokenEndpoint)return{success:!1,permanent:!1,error:"No token endpoint available"};if(!$.clientId)return{success:!1,permanent:!1,error:"No client ID available"};try{let Z=new URLSearchParams({grant_type:"refresh_token",refresh_token:$.refreshToken,client_id:$.clientId});if($.clientSecret)Z.set("client_secret",$.clientSecret);if($.scope)Z.set("scope",$.scope);let X=await fetch($.tokenEndpoint,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:Z.toString(),signal:AbortSignal.timeout(1e4)});if(!X.ok){let G=await X.text(),J,K;try{let H=JSON.parse(G);J=H.error,K=H.error_description}catch{}let W=X.status===400&&!!J&&uH4.has(J);return(W?console.error:console.warn)("[TokenRefresh] refresh failed",{connectionId:$.connectionId,tokenEndpoint:$.tokenEndpoint,status:X.status,errorCode:J,errorDescription:K,permanent:W}),{success:!1,permanent:W,status:X.status,errorCode:J,error:K||J||`Token refresh failed: ${X.status}`}}let Q=await X.json();if(typeof Q.access_token!=="string"||!Q.access_token)return console.warn("[TokenRefresh] 200 response missing access_token",{connectionId:$.connectionId,tokenEndpoint:$.tokenEndpoint}),{success:!1,permanent:!1,status:X.status,error:"Token endpoint returned no access_token"};let Y;if(Q.expires_in!==void 0){let G=Number(Q.expires_in);if(Number.isFinite(G)&&G>0)Y=G;else console.warn("[TokenRefresh] ignoring malformed expires_in",{connectionId:$.connectionId,tokenEndpoint:$.tokenEndpoint,expiresIn:Q.expires_in})}return{success:!0,accessToken:Q.access_token,refreshToken:typeof Q.refresh_token==="string"&&Q.refresh_token?Q.refresh_token:$.refreshToken,expiresIn:Y,scope:typeof Q.scope==="string"?Q.scope:void 0}}catch(Z){return console.warn("[TokenRefresh] network/parse error",{connectionId:$.connectionId,tokenEndpoint:$.tokenEndpoint,message:Z instanceof Error?Z.message:String(Z)}),{success:!1,permanent:!1,error:Z instanceof Error?Z.message:"Token refresh failed"}}}var uH4;var kQ8=O(()=>{uH4=new Set(["invalid_grant","bad_refresh_token"])});var na0=($,Z,X)=>{return(Q,Y)=>{let G=-1;return J(0);async function J(K){if(K<=G)throw Error("next() called multiple times");G=K;let W,H=!1,U;if($[K])U=$[K][0][0],Q.req.routeIndex=K;else U=K===$.length&&Y||void 0;if(U)try{W=await U(Q,()=>J(K+1))}catch(N){if(N instanceof Error&&Z)Q.error=N,W=await Z(N,Q),H=!0;else throw N}else if(Q.finalized===!1&&X)W=await X(Q);if(W&&(Q.finalized===!1||H))Q.res=W;return Q}}};var SQ8=()=>{};var J8;var aJ=O(()=>{J8=class extends Error{res;status;constructor($=500,Z){super(Z?.message,{cause:Z?.cause});this.res=Z?.res,this.status=$}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 CQ8;var _Q8=O(()=>{CQ8=Symbol()});async function cH4($,Z){let X=await $.formData();if(X)return lH4(X,Z);return{}}function lH4($,Z){let X=Object.create(null);if($.forEach((Q,Y)=>{if(!(Z.all||Y.endsWith("[]")))X[Y]=Q;else dH4(X,Y,Q)}),Z.dot)Object.entries(X).forEach(([Q,Y])=>{if(Q.includes("."))mH4(X,Q,Y),delete X[Q]});return X}var vQ8=async($,Z=Object.create(null))=>{let{all:X=!1,dot:Q=!1}=Z,G=($ instanceof GY0?$.raw.headers:$.headers).get("Content-Type");if(G?.startsWith("multipart/form-data")||G?.startsWith("application/x-www-form-urlencoded"))return cH4($,{all:X,dot:Q});return{}},dH4=($,Z,X)=>{if($[Z]!==void 0)if(Array.isArray($[Z]))$[Z].push(X);else $[Z]=[$[Z],X];else if(!Z.endsWith("[]"))$[Z]=X;else $[Z]=[X]},mH4=($,Z,X)=>{if(/(?:^|\.)__proto__\./.test(Z))return;let Q=$,Y=Z.split(".");Y.forEach((G,J)=>{if(J===Y.length-1)Q[G]=X;else{if(!Q[G]||typeof Q[G]!=="object"||Array.isArray(Q[G])||Q[G]instanceof File)Q[G]=Object.create(null);Q=Q[G]}})};var xQ8=O(()=>{pa0()});var oa0=($)=>{let Z=$.split("/");if(Z[0]==="")Z.shift();return Z},fQ8=($)=>{let{groups:Z,path:X}=iH4($),Q=oa0(X);return nH4(Q,Z)},iH4=($)=>{let Z=[];return $=$.replace(/\{[^}]+\}/g,(X,Q)=>{let Y=`@${Q}`;return Z.push([Y,X]),Y}),{groups:Z,path:$}},nH4=($,Z)=>{for(let X=Z.length-1;X>=0;X--){let[Q]=Z[X];for(let Y=$.length-1;Y>=0;Y--)if($[Y].includes(Q)){$[Y]=$[Y].replace(Q,Z[X][1]);break}}return $},JY0,bQ8=($,Z)=>{if($==="*")return"*";let X=$.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/);if(X){let Q=`${$}#${Z}`;if(!JY0[Q])if(X[2])JY0[Q]=Z&&Z[0]!==":"&&Z[0]!=="*"?[Q,X[1],new RegExp(`^${X[2]}(?=/${Z})`)]:[$,X[1],new RegExp(`^${X[2]}$`)];else JY0[Q]=[$,X[1],!0];return JY0[Q]}return null},Sg=($,Z)=>{try{return Z($)}catch{return $.replace(/(?:%[0-9A-Fa-f]{2})+/g,(X)=>{try{return Z(X)}catch{return X}})}},yQ8=($)=>Sg($,decodeURI),ra0=($)=>{let Z=$.url,X=Z.indexOf("/",Z.indexOf(":")+4),Q=X;for(;Q<Z.length;Q++){let Y=Z.charCodeAt(Q);if(Y===37){let G=Z.indexOf("?",Q),J=Z.indexOf("#",Q),K=G===-1?J===-1?void 0:J:J===-1?G:Math.min(G,J),W=Z.slice(X,K);return yQ8(W.includes("%25")?W.replace(/%25/g,"%2525"):W)}else if(Y===63||Y===35)break}return Z.slice(X,Q)},gQ8=($)=>{let Z=ra0($);return Z.length>1&&Z.at(-1)==="/"?Z.slice(0,-1):Z},Fz=($,Z,...X)=>{if(X.length)Z=Fz(Z,...X);return`${$?.[0]==="/"?"":"/"}${$}${Z==="/"?"":`${$?.at(-1)==="/"?"":"/"}${Z?.[0]==="/"?Z.slice(1):Z}`}`},KY0=($)=>{if($.charCodeAt($.length-1)!==63||!$.includes(":"))return null;let Z=$.split("/"),X=[],Q="";return Z.forEach((Y)=>{if(Y!==""&&!/\:/.test(Y))Q+="/"+Y;else if(/\:/.test(Y))if(/\?/.test(Y)){if(X.length===0&&Q==="")X.push("/");else X.push(Q);let G=Y.replace("?","");Q+="/"+G,X.push(Q)}else Q+="/"+Y}),X.filter((Y,G,J)=>J.indexOf(Y)===G)},ta0=($)=>{if(!/[%+]/.test($))return $;if($.indexOf("+")!==-1)$=$.replace(/\+/g," ");return $.indexOf("%")!==-1?Sg($,$t):$},hQ8=($,Z,X)=>{let Q;if(!X&&Z&&!/[%+]/.test(Z)){let J=$.indexOf("?",8);if(J===-1)return;if(!$.startsWith(Z,J+1))J=$.indexOf(`&${Z}`,J+1);while(J!==-1){let K=$.charCodeAt(J+Z.length+1);if(K===61){let W=J+Z.length+2,H=$.indexOf("&",W);return ta0($.slice(W,H===-1?void 0:H))}else if(K==38||isNaN(K))return"";J=$.indexOf(`&${Z}`,J+1)}if(Q=/[%+]/.test($),!Q)return}let Y={};Q??=/[%+]/.test($);let G=$.indexOf("?",8);while(G!==-1){let J=$.indexOf("&",G+1),K=$.indexOf("=",G);if(K>J&&J!==-1)K=-1;let W=$.slice(G+1,K===-1?J===-1?void 0:J:K);if(Q)W=ta0(W);if(G=J,W==="")continue;let H;if(K===-1)H="";else if(H=$.slice(K+1,J===-1?void 0:J),Q)H=ta0(H);if(X){if(!(Y[W]&&Array.isArray(Y[W])))Y[W]=[];Y[W].push(H)}else Y[W]??=H}return Z?Y[Z]:Y},uQ8,cQ8=($,Z)=>{return hQ8($,Z,!0)},$t;var xB=O(()=>{JY0={},uQ8=hQ8,$t=decodeURIComponent});var lQ8=($)=>Sg($,$t),GY0;var pa0=O(()=>{aJ();_Q8();xQ8();xB();GY0=class{raw;#$;#Z;routeIndex=0;path;bodyCache={};constructor($,Z="/",X=[[]]){this.raw=$,this.path=Z,this.#Z=X,this.#$={}}param($){return $?this.#X($):this.#G()}#X($){let Z=this.#Z[0][this.routeIndex][1][$],X=this.#Y(Z);return X&&/\%/.test(X)?lQ8(X):X}#G(){let $={},Z=Object.keys(this.#Z[0][this.routeIndex][1]);for(let X of Z){let Q=this.#Y(this.#Z[0][this.routeIndex][1][X]);if(Q!==void 0)$[X]=/\%/.test(Q)?lQ8(Q):Q}return $}#Y($){return this.#Z[1]?this.#Z[1][$]:$}query($){return uQ8(this.url,$)}queries($){return cQ8(this.url,$)}header($){if($)return this.raw.headers.get($)??void 0;let Z={};return this.raw.headers.forEach((X,Q)=>{Z[Q]=X}),Z}async parseBody($){return vQ8(this,$)}#Q=($)=>{let{bodyCache:Z,raw:X}=this,Q=Z[$];if(Q)return Q;let Y=Object.keys(Z)[0];if(Y)return Z[Y].then((G)=>{if(Y==="json")G=JSON.stringify(G);return new Response(G)[$]()});return Z[$]=X[$]()};json(){return this.#Q("text").then(($)=>JSON.parse($))}text(){return this.#Q("text")}arrayBuffer(){return this.#Q("arrayBuffer")}blob(){return this.#Q("blob")}formData(){return this.#Q("formData")}addValidatedData($,Z){this.#$[$]=Z}valid($){return this.#$[$]}get url(){return this.raw.url}get method(){return this.raw.method}get[CQ8](){return this.#Z}get matchedRoutes(){return this.#Z[0].map(([[,$]])=>$)}get routePath(){return this.#Z[0].map(([[,$]])=>$)[this.routeIndex].path}}});var WY0,dQ8=($,Z)=>{let X=new String($);return X.isEscaped=!0,X.callbacks=Z,X},Zt=async($,Z,X,Q,Y)=>{if(typeof $==="object"&&!($ instanceof String)){if(!($ instanceof Promise))$=$.toString();if($ instanceof Promise)$=await $}let G=$.callbacks;if(!G?.length)return Promise.resolve($);if(Y)Y[0]+=$;else Y=[$];let J=Promise.all(G.map((K)=>K({phase:Z,buffer:Y,context:Q}))).then((K)=>Promise.all(K.filter(Boolean).map((W)=>Zt(W,Z,!1,Q,Y))).then(()=>Y[0]));if(X)return dQ8(await J,G);else return J};var HY0=O(()=>{WY0={Stringify:1,BeforeStream:2,Stream:3}});var mQ8="text/plain; charset=UTF-8",aa0=($,Z)=>{return{"Content-Type":$,...Z}},Xt=($,Z)=>new Response($,Z),iQ8=class{#$;#Z;env={};#X;finalized=!1;error;#G;#Y;#Q;#J;#K;#W;#U;#N;#F;constructor($,Z){if(this.#$=$,Z)this.#Y=Z.executionCtx,this.env=Z.env,this.#W=Z.notFoundHandler,this.#F=Z.path,this.#N=Z.matchResult}get req(){return this.#Z??=new GY0(this.#$,this.#F,this.#N),this.#Z}get event(){if(this.#Y&&"respondWith"in this.#Y)return this.#Y;else throw Error("This context has no FetchEvent")}get executionCtx(){if(this.#Y)return this.#Y;else throw Error("This context has no ExecutionContext")}get res(){return this.#Q||=Xt(null,{headers:this.#U??=new Headers})}set res($){if(this.#Q&&$){$=Xt($.body,$);for(let[Z,X]of this.#Q.headers.entries()){if(Z==="content-type")continue;if(Z==="set-cookie"){let Q=this.#Q.headers.getSetCookie();$.headers.delete("set-cookie");for(let Y of Q)$.headers.append("set-cookie",Y)}else $.headers.set(Z,X)}}this.#Q=$,this.finalized=!0}render=(...$)=>{return this.#K??=(Z)=>this.html(Z),this.#K(...$)};setLayout=($)=>this.#J=$;getLayout=()=>this.#J;setRenderer=($)=>{this.#K=$};header=($,Z,X)=>{if(this.finalized)this.#Q=Xt(this.#Q.body,this.#Q);let Q=this.#Q?this.#Q.headers:this.#U??=new Headers;if(Z===void 0)Q.delete($);else if(X?.append)Q.append($,Z);else Q.set($,Z)};status=($)=>{this.#G=$};set=($,Z)=>{this.#X??=new Map,this.#X.set($,Z)};get=($)=>{return this.#X?this.#X.get($):void 0};get var(){if(!this.#X)return{};return Object.fromEntries(this.#X)}#H($,Z,X){let Q=this.#Q?new Headers(this.#Q.headers):this.#U??new Headers;if(typeof Z==="object"&&"headers"in Z){let G=Z.headers instanceof Headers?Z.headers:new Headers(Z.headers);for(let[J,K]of G)if(J.toLowerCase()==="set-cookie")Q.append(J,K);else Q.set(J,K)}if(X)for(let[G,J]of Object.entries(X))if(typeof J==="string")Q.set(G,J);else{Q.delete(G);for(let K of J)Q.append(G,K)}let Y=typeof Z==="number"?Z:Z?.status??this.#G;return Xt($,{status:Y,headers:Q})}newResponse=(...$)=>this.#H(...$);body=($,Z,X)=>this.#H($,Z,X);text=($,Z,X)=>{return!this.#U&&!this.#G&&!Z&&!X&&!this.finalized?new Response($):this.#H($,Z,aa0(mQ8,X))};json=($,Z,X)=>{return this.#H(JSON.stringify($),Z,aa0("application/json",X))};html=($,Z,X)=>{let Q=(Y)=>this.#H(Y,Z,aa0("text/html; charset=UTF-8",X));return typeof $==="object"?Zt($,WY0.Stringify,!1,{}).then(Q):Q($)};redirect=($,Z)=>{let X=String($);return this.header("Location",!/[^\x00-\xFF]/.test(X)?X:encodeURI(X)),this.newResponse(null,Z??302)};notFound=()=>{return this.#W??=()=>Xt(),this.#W(this)}};var UY0=O(()=>{pa0();HY0()});var b$="ALL",nQ8="all",pQ8,NY0="Can not add a route since the matcher is already built.",FY0;var fB=O(()=>{pQ8=["get","post","put","delete","options","patch"],FY0=class extends Error{}});var sa0="__COMPOSED_HANDLER";var ea0=()=>{};var pH4=($)=>{return $.text("404 Not Found",404)},tQ8=($,Z)=>{if("getResponse"in $){let X=$.getResponse();return Z.newResponse(X.body,X)}return console.error($),Z.text("Internal Server Error",500)},oQ8=class ${get;post;put;delete;options;patch;all;on;use;router;getPath;_basePath="/";#$="/";routes=[];constructor(Z={}){[...pQ8,nQ8].forEach((G)=>{this[G]=(J,...K)=>{if(typeof J==="string")this.#$=J;else this.#G(G,this.#$,J);return K.forEach((W)=>{this.#G(G,this.#$,W)}),this}}),this.on=(G,J,...K)=>{for(let W of[J].flat()){this.#$=W;for(let H of[G].flat())K.map((U)=>{this.#G(H.toUpperCase(),this.#$,U)})}return this},this.use=(G,...J)=>{if(typeof G==="string")this.#$=G;else this.#$="*",J.unshift(G);return J.forEach((K)=>{this.#G(b$,this.#$,K)}),this};let{strict:Q,...Y}=Z;Object.assign(this,Y),this.getPath=Q??!0?Z.getPath??ra0:gQ8}#Z(){let Z=new $({router:this.router,getPath:this.getPath});return Z.errorHandler=this.errorHandler,Z.#X=this.#X,Z.routes=this.routes,Z}#X=pH4;errorHandler=tQ8;route(Z,X){let Q=this.basePath(Z);return X.routes.map((Y)=>{let G;if(X.errorHandler===tQ8)G=Y.handler;else G=async(J,K)=>(await na0([],X.errorHandler)(J,()=>Y.handler(J,K))).res,G[sa0]=Y.handler;Q.#G(Y.method,Y.path,G)}),this}basePath(Z){let X=this.#Z();return X._basePath=Fz(this._basePath,Z),X}onError=(Z)=>{return this.errorHandler=Z,this};notFound=(Z)=>{return this.#X=Z,this};mount(Z,X,Q){let Y,G;if(Q)if(typeof Q==="function")G=Q;else if(G=Q.optionHandler,Q.replaceRequest===!1)Y=(W)=>W;else Y=Q.replaceRequest;let J=G?(W)=>{let H=G(W);return Array.isArray(H)?H:[H]}:(W)=>{let H=void 0;try{H=W.executionCtx}catch{}return[W.env,H]};Y||=(()=>{let W=Fz(this._basePath,Z),H=W==="/"?0:W.length;return(U)=>{let N=new URL(U.url);return N.pathname=N.pathname.slice(H)||"/",new Request(N,U)}})();let K=async(W,H)=>{let U=await X(Y(W.req.raw),...J(W));if(U)return U;await H()};return this.#G(b$,Fz(Z,"*"),K),this}#G(Z,X,Q){Z=Z.toUpperCase(),X=Fz(this._basePath,X);let Y={basePath:this._basePath,path:X,method:Z,handler:Q};this.router.add(Z,X,[Q,Y]),this.routes.push(Y)}#Y(Z,X){if(Z instanceof Error)return this.errorHandler(Z,X);throw Z}#Q(Z,X,Q,Y){if(Y==="HEAD")return(async()=>new Response(null,await this.#Q(Z,X,Q,"GET")))();let G=this.getPath(Z,{env:Q}),J=this.router.match(Y,G),K=new iQ8(Z,{path:G,matchResult:J,env:Q,executionCtx:X,notFoundHandler:this.#X});if(J[0].length===1){let H;try{H=J[0][0][0][0](K,async()=>{K.res=await this.#X(K)})}catch(U){return this.#Y(U,K)}return H instanceof Promise?H.then((U)=>U||(K.finalized?K.res:this.#X(K))).catch((U)=>this.#Y(U,K)):H??this.#X(K)}let W=na0(J[0],this.errorHandler,this.#X);return(async()=>{try{let H=await W(K);if(!H.finalized)throw Error("Context is not finalized. Did you forget to return a Response object or `await next()`?");return H.res}catch(H){return this.#Y(H,K)}})()}fetch=(Z,...X)=>{return this.#Q(Z,X[1],X[0],Z.method)};request=(Z,X,Q,Y)=>{if(Z instanceof Request)return this.fetch(X?new Request(Z,X):Z,Q,Y);return Z=Z.toString(),this.fetch(new Request(/^https?:\/\//.test(Z)?Z:`http://localhost${Fz("/",Z)}`,X),Q,Y)};fire=()=>{addEventListener("fetch",(Z)=>{Z.respondWith(this.#Q(Z.request,Z,void 0,Z.request.method))})}};var rQ8=O(()=>{SQ8();UY0();fB();ea0();xB()});function wY0($,Z){let X=this.buildAllMatchers(),Q=(Y,G)=>{let J=X[Y]||X[b$],K=J[2][G];if(K)return K;let W=G.match(J[0]);if(!W)return[[],Qt];let H=W.indexOf("",1);return[J[1][H],W]};return this.match=Q,Q($,Z)}var Qt;var $s0=O(()=>{fB();Qt=[]});function oH4($,Z){if($.length===1)return Z.length===1?$<Z?-1:1:-1;if(Z.length===1)return 1;if($===Yt||$===Gt)return 1;else if(Z===Yt||Z===Gt)return-1;if($===BY0)return 1;else if(Z===BY0)return-1;return $.length===Z.length?$<Z?-1:1:Z.length-$.length}var BY0="[^/]+",Yt=".*",Gt="(?:|/.*)",wz,tH4,aQ8=class ${#$;#Z;#X=Object.create(null);insert(Z,X,Q,Y,G){if(Z.length===0){if(this.#$!==void 0)throw wz;if(G)return;this.#$=X;return}let[J,...K]=Z,W=J==="*"?K.length===0?["","",Yt]:["","",BY0]:J==="/*"?["","",Gt]:J.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/),H;if(W){let U=W[1],N=W[2]||BY0;if(U&&W[2]){if(N===".*")throw wz;if(N=N.replace(/^\((?!\?:)(?=[^)]+\)$)/,"(?:"),/\((?!\?:)/.test(N))throw wz}if(H=this.#X[N],!H){if(Object.keys(this.#X).some((F)=>F!==Yt&&F!==Gt))throw wz;if(G)return;if(H=this.#X[N]=new $,U!=="")H.#Z=Y.varIndex++}if(!G&&U!=="")Q.push([U,H.#Z])}else if(H=this.#X[J],!H){if(Object.keys(this.#X).some((U)=>U.length>1&&U!==Yt&&U!==Gt))throw wz;if(G)return;H=this.#X[J]=new $}H.insert(K,X,Q,Y,G)}buildRegExpStr(){let X=Object.keys(this.#X).sort(oH4).map((Q)=>{let Y=this.#X[Q];return(typeof Y.#Z==="number"?`(${Q})@${Y.#Z}`:tH4.has(Q)?`\\${Q}`:Q)+Y.buildRegExpStr()});if(typeof this.#$==="number")X.unshift(`#${this.#$}`);if(X.length===0)return"";if(X.length===1)return X[0];return"(?:"+X.join("|")+")"}};var Zs0=O(()=>{wz=Symbol(),tH4=new Set(".\\+*[^]$()")});var sQ8=class{#$={varIndex:0};#Z=new aQ8;insert($,Z,X){let Q=[],Y=[];for(let J=0;;){let K=!1;if($=$.replace(/\{[^}]+\}/g,(W)=>{let H=`@\\${J}`;return Y[J]=[H,W],J++,K=!0,H}),!K)break}let G=$.match(/(?::[^\/]+)|(?:\/\*$)|./g)||[];for(let J=Y.length-1;J>=0;J--){let[K]=Y[J];for(let W=G.length-1;W>=0;W--)if(G[W].indexOf(K)!==-1){G[W]=G[W].replace(K,Y[J][1]);break}}return this.#Z.insert(G,Z,Q,this.#$,X),Q}buildRegExp(){let $=this.#Z.buildRegExpStr();if($==="")return[/^$/,[],[]];let Z=0,X=[],Q=[];return $=$.replace(/#(\d+)|@(\d+)|\.\*\$/g,(Y,G,J)=>{if(G!==void 0)return X[++Z]=Number(G),"$()";if(J!==void 0)return Q[Number(J)]=++Z,"";return""}),[new RegExp(`^${$}`),X,Q]}};var eQ8=O(()=>{Zs0()});function ZY8($){return $Y8[$]??=new RegExp($==="*"?"":`^${$.replace(/\/\*$|([.\\+*[^\]$()])/g,(Z,X)=>X?`\\${X}`:"(?:|/.*)")}$`)}function aH4(){$Y8=Object.create(null)}function sH4($){let Z=new sQ8,X=[];if($.length===0)return rH4;let Q=$.map((H)=>[!/\*|\/:/.test(H[0]),...H]).sort(([H,U],[N,F])=>H?1:N?-1:U.length-F.length),Y=Object.create(null);for(let H=0,U=-1,N=Q.length;H<N;H++){let[F,w,B]=Q[H];if(F)Y[w]=[B.map(([D])=>[D,Object.create(null)]),Qt];else U++;let L;try{L=Z.insert(w,U,F)}catch(D){throw D===wz?new FY0(w):D}if(F)continue;X[U]=B.map(([D,E])=>{let z=Object.create(null);E-=1;for(;E>=0;E--){let[j,A]=L[E];z[j]=A}return[D,z]})}let[G,J,K]=Z.buildRegExp();for(let H=0,U=X.length;H<U;H++)for(let N=0,F=X[H].length;N<F;N++){let w=X[H][N]?.[1];if(!w)continue;let B=Object.keys(w);for(let L=0,D=B.length;L<D;L++)w[B[L]]=K[w[B[L]]]}let W=[];for(let H in J)W[H]=X[J[H]];return[G,W,Y]}function Cg($,Z){if(!$)return;for(let X of Object.keys($).sort((Q,Y)=>Y.length-Q.length))if(ZY8(X).test(Z))return[...$[X]];return}var rH4,$Y8,OY0=class{name="RegExpRouter";#$;#Z;constructor(){this.#$={[b$]:Object.create(null)},this.#Z={[b$]:Object.create(null)}}add($,Z,X){let Q=this.#$,Y=this.#Z;if(!Q||!Y)throw Error(NY0);if(!Q[$])[Q,Y].forEach((K)=>{K[$]=Object.create(null),Object.keys(K[b$]).forEach((W)=>{K[$][W]=[...K[b$][W]]})});if(Z==="/*")Z="*";let G=(Z.match(/\/:/g)||[]).length;if(/\*$/.test(Z)){let K=ZY8(Z);if($===b$)Object.keys(Q).forEach((W)=>{Q[W][Z]||=Cg(Q[W],Z)||Cg(Q[b$],Z)||[]});else Q[$][Z]||=Cg(Q[$],Z)||Cg(Q[b$],Z)||[];Object.keys(Q).forEach((W)=>{if($===b$||$===W)Object.keys(Q[W]).forEach((H)=>{K.test(H)&&Q[W][H].push([X,G])})}),Object.keys(Y).forEach((W)=>{if($===b$||$===W)Object.keys(Y[W]).forEach((H)=>K.test(H)&&Y[W][H].push([X,G]))});return}let J=KY0(Z)||[Z];for(let K=0,W=J.length;K<W;K++){let H=J[K];Object.keys(Y).forEach((U)=>{if($===b$||$===U)Y[U][H]||=[...Cg(Q[U],H)||Cg(Q[b$],H)||[]],Y[U][H].push([X,G-W+K+1])})}}match=wY0;buildAllMatchers(){let $=Object.create(null);return Object.keys(this.#Z).concat(Object.keys(this.#$)).forEach((Z)=>{$[Z]||=this.#X(Z)}),this.#$=this.#Z=void 0,aH4(),$}#X($){let Z=[],X=$===b$;if([this.#$,this.#Z].forEach((Q)=>{let Y=Q[$]?Object.keys(Q[$]).map((G)=>[G,Q[$][G]]):[];if(Y.length!==0)X||=!0,Z.push(...Y);else if($!==b$)Z.push(...Object.keys(Q[b$]).map((G)=>[G,Q[b$][G]]))}),!X)return null;else return sH4(Z)}};var Xs0=O(()=>{fB();xB();$s0();Zs0();eQ8();rH4=[/^$/,[],Object.create(null)],$Y8=Object.create(null)});var eH4=class{name="PreparedRegExpRouter";#$;#Z;constructor($,Z){this.#$=$,this.#Z=Z}#X($,Z){let X=this.#$[$];X[1].forEach((Q)=>Q&&Q.push(Z)),Object.values(X[2]).forEach((Q)=>Q[0].push(Z))}#G($,Z,X,Q,Y){let G=this.#$[$];if(!Y)G[2][Z][0].push([X,{}]);else Q.forEach((J)=>{if(typeof J==="number")G[1][J].push([X,Y]);else G[2][J||Z][0].push([X,Y])})}add($,Z,X){if(!this.#$[$]){let Y=this.#$[b$],G={};for(let J in Y[2])G[J]=[Y[2][J][0].slice(),Qt];this.#$[$]=[Y[0],Y[1].map((J)=>Array.isArray(J)?J.slice():0),G]}if(Z==="/*"||Z==="*"){let Y=[X,{}];if($===b$)for(let G in this.#$)this.#X(G,Y);else this.#X($,Y);return}let Q=this.#Z[Z];if(!Q)throw Error(`Path ${Z} is not registered`);for(let[Y,G]of Q)if($===b$)for(let J in this.#$)this.#G(J,Z,X,Y,G);else this.#G($,Z,X,Y,G)}buildAllMatchers(){return this.#$}match=wY0};var XY8=O(()=>{fB();$s0();Xs0()});var QY8=O(()=>{Xs0();XY8()});var Qs0=class{name="SmartRouter";#$=[];#Z=[];constructor($){this.#$=$.routers}add($,Z,X){if(!this.#Z)throw Error(NY0);this.#Z.push([$,Z,X])}match($,Z){if(!this.#Z)throw Error("Fatal error");let X=this.#$,Q=this.#Z,Y=X.length,G=0,J;for(;G<Y;G++){let K=X[G];try{for(let W=0,H=Q.length;W<H;W++)K.add(...Q[W]);J=K.match($,Z)}catch(W){if(W instanceof FY0)continue;throw W}this.match=K.match.bind(K),this.#$=[K],this.#Z=void 0;break}if(G===Y)throw Error("Fatal error");return this.name=`SmartRouter + ${this.activeRouter.name}`,J}get activeRouter(){if(this.#Z||this.#$.length!==1)throw Error("No active router has been determined yet.");return this.#$[0]}};var YY8=O(()=>{fB()});var GY8=O(()=>{YY8()});var Jt,$U4=($)=>{for(let Z in $)return!0;return!1},JY8=class ${#$;#Z;#X;#G=0;#Y=Jt;constructor(Z,X,Q){if(this.#Z=Q||Object.create(null),this.#$=[],Z&&X){let Y=Object.create(null);Y[Z]={handler:X,possibleKeys:[],score:0},this.#$=[Y]}this.#X=[]}insert(Z,X,Q){this.#G=++this.#G;let Y=this,G=fQ8(X),J=[];for(let K=0,W=G.length;K<W;K++){let H=G[K],U=G[K+1],N=bQ8(H,U),F=Array.isArray(N)?N[0]:H;if(F in Y.#Z){if(Y=Y.#Z[F],N)J.push(N[1]);continue}if(Y.#Z[F]=new $,N)Y.#X.push(N),J.push(N[1]);Y=Y.#Z[F]}return Y.#$.push({[Z]:{handler:Q,possibleKeys:J.filter((K,W,H)=>H.indexOf(K)===W),score:this.#G}}),Y}#Q(Z,X,Q,Y,G){for(let J=0,K=X.#$.length;J<K;J++){let W=X.#$[J],H=W[Q]||W[b$],U={};if(H!==void 0){if(H.params=Object.create(null),Z.push(H),Y!==Jt||G&&G!==Jt)for(let N=0,F=H.possibleKeys.length;N<F;N++){let w=H.possibleKeys[N],B=U[H.score];H.params[w]=G?.[w]&&!B?G[w]:Y[w]??G?.[w],U[H.score]=!0}}}}search(Z,X){let Q=[];this.#Y=Jt;let G=[this],J=oa0(X),K=[],W=J.length,H=null;for(let U=0;U<W;U++){let N=J[U],F=U===W-1,w=[];for(let L=0,D=G.length;L<D;L++){let E=G[L],z=E.#Z[N];if(z)if(z.#Y=E.#Y,F){if(z.#Z["*"])this.#Q(Q,z.#Z["*"],Z,E.#Y);this.#Q(Q,z,Z,E.#Y)}else w.push(z);for(let j=0,A=E.#X.length;j<A;j++){let P=E.#X[j],I=E.#Y===Jt?{}:{...E.#Y};if(P==="*"){let f=E.#Z["*"];if(f)this.#Q(Q,f,Z,E.#Y),f.#Y=I,w.push(f);continue}let[V,M,C]=P;if(!N&&!(C instanceof RegExp))continue;let m=E.#Z[V];if(C instanceof RegExp){if(H===null){H=Array(W);let o=X[0]==="/"?1:0;for(let b=0;b<W;b++)H[b]=o,o+=J[b].length+1}let f=X.substring(H[U]),y=C.exec(f);if(y){if(I[M]=y[0],this.#Q(Q,m,Z,E.#Y,I),$U4(m.#Z)){m.#Y=I;let o=y[0].match(/\//)?.length??0;(K[o]||=[]).push(m)}continue}}if(C===!0||C.test(N))if(I[M]=N,F){if(this.#Q(Q,m,Z,I,E.#Y),m.#Z["*"])this.#Q(Q,m.#Z["*"],Z,I,E.#Y)}else m.#Y=I,w.push(m)}}let B=K.shift();G=B?w.concat(B):w}if(Q.length>1)Q.sort((U,N)=>{return U.score-N.score});return[Q.map(({handler:U,params:N})=>[U,N])]}};var KY8=O(()=>{fB();xB();Jt=Object.create(null)});var Ys0=class{name="TrieRouter";#$;constructor(){this.#$=new JY8}add($,Z,X){let Q=KY0(Z);if(Q){for(let Y=0,G=Q.length;Y<G;Y++)this.#$.insert($,Q[Y],X);return}this.#$.insert($,Z,X)}match($,Z){return this.#$.search($,Z)}};var WY8=O(()=>{xB();KY8()});var HY8=O(()=>{WY8()});var I1;var Gs0=O(()=>{rQ8();QY8();GY8();HY8();I1=class extends oQ8{constructor($={}){super($);this.router=$.router??new Qs0({routers:[new OY0,new Ys0]})}}});var d6=O(()=>{Gs0()});import{z as W$}from"zod";function UY8(){return XU4.parse(process.env)}var Js0=($)=>W$.enum(["true","false","1","0"]).optional().transform((Z)=>Z===void 0?$:Z==="true"||Z==="1"),ZU4=($)=>W$.string().optional().transform((Z)=>Z?Z.split(",").map((X)=>X.trim()):$),XU4;var NY8=O(()=>{XU4=W$.object({AUTH_EMAIL_PASSWORD_ENABLED:Js0(!0),AUTH_GOOGLE_CLIENT_ID:W$.string().optional(),AUTH_GOOGLE_CLIENT_SECRET:W$.string().optional(),AUTH_GITHUB_CLIENT_ID:W$.string().optional(),AUTH_GITHUB_CLIENT_SECRET:W$.string().optional(),AUTH_RESEND_API_KEY:W$.string().optional(),AUTH_RESEND_FROM_EMAIL:W$.string().optional(),AUTH_SENDGRID_API_KEY:W$.string().optional(),AUTH_SENDGRID_FROM_EMAIL:W$.string().optional(),AUTH_INVITE_EMAIL_PROVIDER:W$.enum(["resend","sendgrid"]).optional(),AUTH_RESET_PASSWORD_EMAIL_PROVIDER:W$.enum(["resend","sendgrid"]).optional(),AUTH_MAGIC_LINK_ENABLED:Js0(!1),AUTH_MAGIC_LINK_EMAIL_PROVIDER:W$.enum(["resend","sendgrid"]).optional(),AUTH_EMAIL_OTP_ENABLED:Js0(!1),AUTH_EMAIL_OTP_EMAIL_PROVIDER:W$.enum(["resend","sendgrid"]).optional(),AUTH_EMAIL_OTP_LENGTH:W$.coerce.number().optional(),AUTH_EMAIL_OTP_EXPIRES_IN:W$.coerce.number().optional(),AUTH_SSO_DOMAIN:W$.string().optional(),AUTH_SSO_MS_TENANT_ID:W$.string().optional(),AUTH_SSO_MS_CLIENT_ID:W$.string().optional(),AUTH_SSO_MS_CLIENT_SECRET:W$.string().optional(),AUTH_SSO_SCOPES:ZU4(["openid","email","profile"]),AUTH_SSO_GOOGLE_CLIENT_ID:W$.string().optional(),AUTH_SSO_GOOGLE_CLIENT_SECRET:W$.string().optional()}).superRefine(($,Z)=>{let X=new Set;if($.AUTH_RESEND_API_KEY)X.add("resend");if($.AUTH_SENDGRID_API_KEY)X.add("sendgrid");let Q=["AUTH_INVITE_EMAIL_PROVIDER","AUTH_RESET_PASSWORD_EMAIL_PROVIDER","AUTH_MAGIC_LINK_EMAIL_PROVIDER","AUTH_EMAIL_OTP_EMAIL_PROVIDER"];for(let Y of Q){let G=$[Y];if(G&&!X.has(G)){let J=G==="resend"?"AUTH_RESEND_API_KEY":"AUTH_SENDGRID_API_KEY";Z.addIssue({code:W$.ZodIssueCode.custom,path:[Y],message:`${Y}="${G}" but ${J} is not set`})}}if($.AUTH_MAGIC_LINK_ENABLED&&X.size===0)Z.addIssue({code:W$.ZodIssueCode.custom,path:["AUTH_MAGIC_LINK_ENABLED"],message:"AUTH_MAGIC_LINK_ENABLED=true requires AUTH_RESEND_API_KEY or AUTH_SENDGRID_API_KEY to be set"});if($.AUTH_EMAIL_OTP_ENABLED&&X.size===0)Z.addIssue({code:W$.ZodIssueCode.custom,path:["AUTH_EMAIL_OTP_ENABLED"],message:"AUTH_EMAIL_OTP_ENABLED=true requires AUTH_RESEND_API_KEY or AUTH_SENDGRID_API_KEY to be set"});if($.AUTH_SSO_MS_CLIENT_ID&&$.AUTH_SSO_DOMAIN){if(!$.AUTH_SSO_MS_CLIENT_SECRET)Z.addIssue({code:W$.ZodIssueCode.custom,path:["AUTH_SSO_MS_CLIENT_SECRET"],message:"AUTH_SSO_MS_CLIENT_ID and AUTH_SSO_DOMAIN are set but AUTH_SSO_MS_CLIENT_SECRET is not"});if(!$.AUTH_SSO_MS_TENANT_ID)Z.addIssue({code:W$.ZodIssueCode.custom,path:["AUTH_SSO_MS_TENANT_ID"],message:"AUTH_SSO_MS_CLIENT_ID and AUTH_SSO_DOMAIN are set but AUTH_SSO_MS_TENANT_ID is not"})}if($.AUTH_SSO_GOOGLE_CLIENT_ID&&$.AUTH_SSO_DOMAIN&&!$.AUTH_SSO_GOOGLE_CLIENT_SECRET)Z.addIssue({code:W$.ZodIssueCode.custom,path:["AUTH_SSO_GOOGLE_CLIENT_SECRET"],message:"AUTH_SSO_GOOGLE_CLIENT_ID and AUTH_SSO_DOMAIN are set but AUTH_SSO_GOOGLE_CLIENT_SECRET is not"});if($.AUTH_EMAIL_OTP_LENGTH!==void 0&&(!Number.isInteger($.AUTH_EMAIL_OTP_LENGTH)||$.AUTH_EMAIL_OTP_LENGTH<1))Z.addIssue({code:W$.ZodIssueCode.custom,path:["AUTH_EMAIL_OTP_LENGTH"],message:"AUTH_EMAIL_OTP_LENGTH must be a positive integer"});if($.AUTH_EMAIL_OTP_EXPIRES_IN!==void 0&&(!Number.isInteger($.AUTH_EMAIL_OTP_EXPIRES_IN)||$.AUTH_EMAIL_OTP_EXPIRES_IN<1))Z.addIssue({code:W$.ZodIssueCode.custom,path:["AUTH_EMAIL_OTP_EXPIRES_IN"],message:"AUTH_EMAIL_OTP_EXPIRES_IN must be a positive integer"})}).transform(($)=>{let Z={};if($.AUTH_GOOGLE_CLIENT_ID)Z.google={clientId:$.AUTH_GOOGLE_CLIENT_ID,clientSecret:$.AUTH_GOOGLE_CLIENT_SECRET??""};if($.AUTH_GITHUB_CLIENT_ID)Z.github={clientId:$.AUTH_GITHUB_CLIENT_ID,clientSecret:$.AUTH_GITHUB_CLIENT_SECRET??""};let X=[];if($.AUTH_RESEND_API_KEY)X.push({id:"resend",provider:"resend",config:{apiKey:$.AUTH_RESEND_API_KEY,fromEmail:$.AUTH_RESEND_FROM_EMAIL??"noreply@example.com"}});if($.AUTH_SENDGRID_API_KEY)X.push({id:"sendgrid",provider:"sendgrid",config:{apiKey:$.AUTH_SENDGRID_API_KEY,fromEmail:$.AUTH_SENDGRID_FROM_EMAIL??"noreply@example.com"}});let Q=X[0]?.id,Y;if($.AUTH_SSO_MS_CLIENT_ID&&$.AUTH_SSO_DOMAIN)Y={providerId:"microsoft",domain:$.AUTH_SSO_DOMAIN,MS_TENANT_ID:$.AUTH_SSO_MS_TENANT_ID??"",MS_CLIENT_ID:$.AUTH_SSO_MS_CLIENT_ID,MS_CLIENT_SECRET:$.AUTH_SSO_MS_CLIENT_SECRET??"",scopes:$.AUTH_SSO_SCOPES};else if($.AUTH_SSO_GOOGLE_CLIENT_ID&&$.AUTH_SSO_DOMAIN)Y={providerId:"google",domain:$.AUTH_SSO_DOMAIN,GOOGLE_CLIENT_ID:$.AUTH_SSO_GOOGLE_CLIENT_ID,GOOGLE_CLIENT_SECRET:$.AUTH_SSO_GOOGLE_CLIENT_SECRET??"",scopes:$.AUTH_SSO_SCOPES};let G;if($.AUTH_MAGIC_LINK_ENABLED)G={enabled:!0,emailProviderId:$.AUTH_MAGIC_LINK_EMAIL_PROVIDER??Q??""};let J;if($.AUTH_EMAIL_OTP_ENABLED)J={enabled:!0,emailProviderId:$.AUTH_EMAIL_OTP_EMAIL_PROVIDER??Q??"",...$.AUTH_EMAIL_OTP_LENGTH!==void 0&&{otpLength:$.AUTH_EMAIL_OTP_LENGTH},...$.AUTH_EMAIL_OTP_EXPIRES_IN!==void 0&&{expiresIn:$.AUTH_EMAIL_OTP_EXPIRES_IN}};return{emailAndPassword:{enabled:$.AUTH_EMAIL_PASSWORD_ENABLED},socialProviders:Object.keys(Z).length>0?Z:void 0,emailProviders:X.length>0?X:void 0,inviteEmailProviderId:$.AUTH_INVITE_EMAIL_PROVIDER,resetPasswordEmailProviderId:$.AUTH_RESET_PASSWORD_EMAIL_PROVIDER,ssoConfig:Y,magicLinkConfig:G,emailOtpConfig:J}})});var LY0;var FY8=O(()=>{LY0={enabled:!0,batchSize:250,flushIntervalMs:300,maxQueueSize:1e4,redactor:"regex"}});import{existsSync as QU4,readFileSync as YU4}from"fs";function GU4(){let $=UY8(),Z=a0().configPath;if(!QU4(Z))return{auth:$,monitoring:LY0};try{let X=JSON.parse(YU4(Z,"utf-8"));if(X.auth)console.warn("[config] DEPRECATION: 'auth' key found in config.json. Auth is now configured via AUTH_* environment variables. The 'auth' key will be ignored.");return{auth:$,monitoring:X.monitoring??LY0,theme:X.theme,logo:X.logo,autoCreateOrganizationOnSignup:X.autoCreateOrganizationOnSignup}}catch{return{auth:$,monitoring:LY0}}}function Bz(){if(!Ks0)Ks0=GU4();return Ks0}function wY8(){return Bz().theme}var Ks0=null;var Ws0=O(()=>{NY8();FY8();k8()});import{dirname as JU4,posix as KU4,sep as WU4}from"path";function OY8(){let $=HU4();return async(Z)=>{for(let X of Z)X.module=$(X.filename);return Z}}function HU4($=process.argv[1]?JU4(process.argv[1]):process.cwd(),Z=WU4==="\\"){let X=Z?BY8($):$;return(Q)=>{if(!Q)return;let Y=Z?BY8(Q):Q,{dir:G,base:J,ext:K}=KU4.parse(Y);if(K===".js"||K===".mjs"||K===".cjs")J=J.slice(0,-1*K.length);let W=decodeURIComponent(J);if(!G)G=".";let H=G.lastIndexOf("/node_modules");if(H>-1)return`${G.slice(H+14).replace(/\//g,".")}:${W}`;if(G.startsWith(X)){let U=G.slice(X.length+1).replace(/\//g,".");return U?`${U}:${W}`:W}return W}}function BY8($){return $.replace(/^[A-Z]:/,"").replace(/\\/g,"/")}var LY8=()=>{};function UU4($,Z,X){return{key:$,enabled:typeof Z=="string"?!0:Z,variant:typeof Z=="string"?Z:void 0,reason:void 0,metadata:{id:void 0,version:void 0,payload:X?JSON.stringify(X):void 0,description:void 0}}}var Hs0=($)=>{if("flags"in $){let Z=DY8($.flags),X=EY8($.flags);return{...$,featureFlags:Z,featureFlagPayloads:X}}{let Z=$.featureFlags??{},X=Object.fromEntries(Object.entries($.featureFlagPayloads||{}).map(([Y,G])=>[Y,Us0(G)])),Q=Object.fromEntries(Object.entries(Z).map(([Y,G])=>[Y,UU4(Y,G,X[Y])]));return{...$,featureFlags:Z,featureFlagPayloads:X,flags:Q}}},DY8=($)=>Object.fromEntries(Object.entries($??{}).map(([Z,X])=>[Z,Kt(X)]).filter(([,Z])=>Z!==void 0)),EY8=($)=>{let Z=$??{};return Object.fromEntries(Object.keys(Z).filter((X)=>{let Q=Z[X];return Q.enabled&&Q.metadata&&Q.metadata.payload!==void 0}).map((X)=>{let Q=Z[X].metadata?.payload;return[X,Q?Us0(Q):void 0]}))},Kt=($)=>$===void 0?void 0:$.variant??$.enabled,Us0=($)=>{if(typeof $!="string")return $;try{return JSON.parse($)}catch{return $}};var DY0=()=>{};function zY8(){return"CompressionStream"in globalThis&&"TextEncoder"in globalThis&&"Response"in globalThis&&typeof Response.prototype.blob=="function"}async function EY0($,Z=!0,X){try{let Q=new CompressionStream("gzip"),Y=Q.writable.getWriter(),G=Y.write(new TextEncoder().encode($)).then(()=>Y.close()).catch(async(W)=>{try{await Y.abort(W)}catch{}throw W}),J=new Response(Q.readable).blob(),[K]=await Promise.all([J,G]);return K}catch(Q){if(X?.rethrow)throw Q;if(Z)console.error("Failed to gzip compress data",Q);return null}}var Ns0=()=>{};var NU4,jY8=function($,Z=[]){if(!$)return!1;let X=$.toLowerCase();return NU4.concat(Z).some((Q)=>{let Y=Q.toLowerCase();return X.indexOf(Y)!==-1})};var PY8=O(()=>{NU4=["amazonbot","amazonproductbot","app.hypefactors.com","applebot","archive.org_bot","awariobot","backlinksextendedbot","baiduspider","bingbot","bingpreview","chrome-lighthouse","dataforseobot","deepscan","duckduckbot","facebookexternal","facebookcatalog","http://yandex.com/bots","hubspot","ia_archiver","leikibot","linkedinbot","meta-externalagent","mj12bot","msnbot","nessus","petalbot","pinterest","prerender","rogerbot","screaming frog","sebot-wa","sitebulb","slackbot","slurp","trendictionbot","turnitin","twitterbot","vercel-screenshot","vercelbot","yahoo! slurp","yandexbot","zoombot","bot.htm","bot.php","(bot;","bot/","crawler","ahrefsbot","ahrefssiteaudit","semrushbot","siteauditbot","splitsignalbot","gptbot","oai-searchbot","chatgpt-user","perplexitybot","better uptime bot","sentryuptimebot","uptimerobot","headlesschrome","cypress","google-hoteladsverifier","adsbot-google","apis-google","duplexweb-google","feedfetcher-google","google favicon","google web preview","google-read-aloud","googlebot","googleother","google-cloudvertexbot","googleweblight","mediapartners-google","storebot-google","google-inspectiontool","bytespider"]});var HX;var Oz=O(()=>{HX=function($){return $.AnonymousId="anonymous_id",$.DistinctId="distinct_id",$.Props="props",$.EnablePersonProcessing="enable_person_processing",$.PersonMode="person_mode",$.FeatureFlagDetails="feature_flag_details",$.FeatureFlags="feature_flags",$.FeatureFlagPayloads="feature_flag_payloads",$.BootstrapFeatureFlagDetails="bootstrap_feature_flag_details",$.BootstrapFeatureFlags="bootstrap_feature_flags",$.BootstrapFeatureFlagPayloads="bootstrap_feature_flag_payloads",$.OverrideFeatureFlags="override_feature_flags",$.Queue="queue",$.LogsQueue="logs_queue",$.OptedOut="opted_out",$.SessionId="session_id",$.SessionStartTimestamp="session_start_timestamp",$.SessionLastTimestamp="session_timestamp",$.PersonProperties="person_properties",$.GroupProperties="group_properties",$.InstalledAppBuild="installed_app_build",$.InstalledAppVersion="installed_app_version",$.SessionReplay="session_replay",$.SurveyLastSeenDate="survey_last_seen_date",$.SurveysSeen="surveys_seen",$.Surveys="surveys",$.RemoteConfig="remote_config",$.FlagsEndpointWasHit="flags_endpoint_was_hit",$.DeviceId="device_id",$}({})});var zY0=()=>{};function PY0($){return $===null||typeof $!="object"}function Lz($,Z){return Object.prototype.toString.call($)===`[object ${Z}]`}function RY8($){return Lz($,"ErrorEvent")}function vg($){return typeof Event<"u"&&BU4($,Event)}function IY8($){return Lz($,"Object")}function BU4($,Z){try{return $ instanceof Z}catch{return!1}}var wU4,AY8,rE5,Fs0,jY0,Wt=($)=>$===Object($)&&!jY0($),_g=($)=>$===void 0,bB=($)=>Fs0.call($)=="[object String]",TY8=($)=>bB($)&&$.trim().length===0,Ht=($)=>Fs0.call($)=="[object Number]"&&$===$,ws0=($)=>$ instanceof Error;var Ut=O(()=>{Oz();zY0();wU4=Array.isArray,AY8=Object.prototype,rE5=AY8.hasOwnProperty,Fs0=AY8.toString,jY0=wU4||function($){return Fs0.call($)==="[object Array]"}});function Nt($,Z,X,Q,Y){if(Z>X)Q.warn("min cannot be greater than max."),Z=X;if(Ht($))if($>X)return Q.warn(" cannot be greater than max: "+X+". Using max value instead."),X;else{if(!($<Z))return $;return Q.warn(" cannot be less than min: "+Z+". Using min value instead."),Z}return Q.warn(" must be a number. using max or fallback. max: "+X+", fallback: "+Y),Nt(Y||X,Z,X,Q)}var Bs0=O(()=>{Ut()});class Os0{constructor($){this._buckets={},this._onBucketRateLimited=$._onBucketRateLimited,this._bucketSize=Nt($.bucketSize,0,100,$._logger),this._refillRate=Nt($.refillRate,0,this._bucketSize,$._logger),this._refillInterval=Nt($.refillInterval,0,OU4,$._logger)}_applyRefill($,Z){let X=Z-$.lastAccess,Q=Math.floor(X/this._refillInterval);if(Q>0){let Y=Q*this._refillRate;$.tokens=Math.min($.tokens+Y,this._bucketSize),$.lastAccess=$.lastAccess+Q*this._refillInterval}}consumeRateLimit($){let Z=Date.now(),X=String($),Q=this._buckets[X];if(Q)this._applyRefill(Q,Z);else Q={tokens:this._bucketSize,lastAccess:Z},this._buckets[X]=Q;if(Q.tokens===0)return!0;if(Q.tokens--,Q.tokens===0)this._onBucketRateLimited?.($);return Q.tokens===0}stop(){this._buckets={}}}var OU4=86400000;var qY8=O(()=>{Bs0()});class Dz{constructor($){this.bytes=$}static ofInner($){if($.length===16)return new Dz($);throw TypeError("not 128-bit length")}static fromFieldsV7($,Z,X,Q){if(!Number.isInteger($)||!Number.isInteger(Z)||!Number.isInteger(X)||!Number.isInteger(Q)||$<0||Z<0||X<0||Q<0||$>281474976710655||Z>4095||X>1073741823||Q>4294967295)throw RangeError("invalid field value");let Y=new Uint8Array(16);return Y[0]=$/1099511627776,Y[1]=$/4294967296,Y[2]=$/16777216,Y[3]=$/65536,Y[4]=$/256,Y[5]=$,Y[6]=112|Z>>>8,Y[7]=Z,Y[8]=128|X>>>24,Y[9]=X>>>16,Y[10]=X>>>8,Y[11]=X,Y[12]=Q>>>24,Y[13]=Q>>>16,Y[14]=Q>>>8,Y[15]=Q,new Dz(Y)}static parse($){let Z;switch($.length){case 32:Z=/^[0-9a-f]{32}$/i.exec($)?.[0];break;case 36:Z=/^([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})$/i.exec($)?.slice(1,6).join("");break;case 38:Z=/^\{([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})\}$/i.exec($)?.slice(1,6).join("");break;case 45:Z=/^urn:uuid:([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})$/i.exec($)?.slice(1,6).join("");break;default:break}if(Z){let X=new Uint8Array(16);for(let Q=0;Q<16;Q+=4){let Y=parseInt(Z.substring(2*Q,2*Q+8),16);X[Q+0]=Y>>>24,X[Q+1]=Y>>>16,X[Q+2]=Y>>>8,X[Q+3]=Y}return new Dz(X)}throw SyntaxError("could not parse UUID string")}toString(){let $="";for(let Z=0;Z<this.bytes.length;Z++)if($+="0123456789abcdef".charAt(this.bytes[Z]>>>4),$+="0123456789abcdef".charAt(15&this.bytes[Z]),Z===3||Z===5||Z===7||Z===9)$+="-";return $}toHex(){let $="";for(let Z=0;Z<this.bytes.length;Z++)$+="0123456789abcdef".charAt(this.bytes[Z]>>>4),$+="0123456789abcdef".charAt(15&this.bytes[Z]);return $}toJSON(){return this.toString()}getVariant(){let $=this.bytes[8]>>>4;if($<0)throw Error("unreachable");if($<=7)return this.bytes.every((Z)=>Z===0)?"NIL":"VAR_0";if($<=11)return"VAR_10";if($<=13)return"VAR_110";if($<=15)return this.bytes.every((Z)=>Z===255)?"MAX":"VAR_RESERVED";else throw Error("unreachable")}getVersion(){return this.getVariant()==="VAR_10"?this.bytes[6]>>>4:void 0}clone(){return new Dz(this.bytes.slice(0))}equals($){return this.compareTo($)===0}compareTo($){for(let Z=0;Z<16;Z++){let X=this.bytes[Z]-$.bytes[Z];if(X!==0)return Math.sign(X)}return 0}}class VY8{constructor($){this.timestamp=0,this.counter=0,this.random=$??LU4()}generate(){return this.generateOrResetCore(Date.now(),1e4)}generateOrAbort(){return this.generateOrAbortCore(Date.now(),1e4)}generateOrResetCore($,Z){let X=this.generateOrAbortCore($,Z);if(X===void 0)this.timestamp=0,X=this.generateOrAbortCore($,Z);return X}generateOrAbortCore($,Z){if(!Number.isInteger($)||$<1||$>281474976710655)throw RangeError("`unixTsMs` must be a 48-bit positive integer");if(Z<0||Z>281474976710655)throw RangeError("`rollbackAllowance` out of reasonable range");if($>this.timestamp)this.timestamp=$,this.resetCounter();else{if(!($+Z>=this.timestamp))return;if(this.counter++,this.counter>4398046511103)this.timestamp++,this.resetCounter()}return Dz.fromFieldsV7(this.timestamp,Math.trunc(this.counter/1073741824),this.counter&1073741823,this.random.nextUint32())}resetCounter(){this.counter=1024*this.random.nextUint32()+(1023&this.random.nextUint32())}generateV4(){let $=new Uint8Array(Uint32Array.of(this.random.nextUint32(),this.random.nextUint32(),this.random.nextUint32(),this.random.nextUint32()).buffer);return $[6]=64|$[6]>>>4,$[8]=128|$[8]>>>2,Dz.ofInner($)}}var LU4=()=>({nextUint32:()=>65536*Math.trunc(65536*Math.random())+Math.trunc(65536*Math.random())}),MY8,yB=()=>DU4().toString(),DU4=()=>(MY8||(MY8=new VY8)).generate();var Ft=O(()=>{/*! For license information please see uuidv7.mjs.LICENSE.txt */});class Ls0{add($){let Z=yB();return this.promiseByIds[Z]=$,$.catch(()=>{}).finally(()=>{delete this.promiseByIds[Z]}),$}async join(){let $=Object.values(this.promiseByIds),Z=$.length;while(Z>0)await Promise.all($),$=Object.values(this.promiseByIds),Z=$.length}get length(){return Object.keys(this.promiseByIds).length}constructor(){this.promiseByIds={}}}var kY8=O(()=>{Ft()});function EU4($=console){return{log:$.log.bind($),warn:$.warn.bind($),error:$.error.bind($),debug:$.debug.bind($)}}function CY8($,Z=zU4){return SY8($,Z,EU4())}var SY8=($,Z,X)=>{function Q(G,...J){Z(()=>{let K=X[G];K($,...J)})}return{info:(...G)=>{Q("log",...G)},warn:(...G)=>{Q("warn",...G)},error:(...G)=>{Q("error",...G)},critical:(...G)=>{X.error($,...G)},createLogger:(G)=>SY8(`${$} ${G}`,Z,X)}},zU4=($)=>$();var _Y8=()=>{};var fg="Mobile",TY0="iOS",xg="Android",vY8="Tablet",Wz5,PU4="Apple",Hz5,xY8="Safari",RY0="BlackBerry",fY8="Samsung",AU4,TU4,IY0="Chrome",RU4,IU4,bY8="Internet Explorer",qU4,Es0="Opera",Uz5,yY8="Edge",MU4,zs0="Firefox",VU4,js0="Nintendo",Ps0="PlayStation",AY0="Xbox",kU4,SU4,wt="Windows",CU4,gY8="Generic",Nz5,Fz5,_U4="Konqueror",QQ="(\\d+(\\.\\d+)?)",Ds0,wz5,Bz5,Oz5,vU4,xU4,Lz5,Dz5;var hY8=O(()=>{zY0();Ut();Wz5=xg+" "+vY8,Hz5=PU4+" Watch",AU4=fY8+"Browser",TU4=fY8+" Internet",RU4=IY0+" OS",IU4=IY0+" "+TY0,qU4=bY8+" "+fg,Uz5=Es0+" Mini",MU4="Microsoft "+yY8,VU4=zs0+" "+TY0,kU4=xg+" "+fg,SU4=fg+" "+xY8,CU4=wt+" Phone",Nz5=gY8+" "+fg.toLowerCase(),Fz5=gY8+" "+vY8.toLowerCase(),Ds0=new RegExp("Version/"+QQ),wz5=new RegExp(AY0,"i"),Bz5=new RegExp(Ps0+" \\w+","i"),Oz5=new RegExp(js0+" \\w+","i"),vU4=new RegExp(RY0+"|PlayBook|BB10","i"),xU4={"NT3.51":"NT 3.11","NT4.0":"NT 4.0","5.0":"2000","5.1":"XP","5.2":"XP","6.0":"Vista","6.1":"7","6.2":"8","6.3":"8.1","6.4":"10","10.0":"10"},Lz5={[qU4]:[new RegExp("rv:"+QQ)],[MU4]:[new RegExp(yY8+"?\\/"+QQ)],[IY0]:[new RegExp("("+IY0+"|CrMo)\\/"+QQ)],[IU4]:[new RegExp("CriOS\\/"+QQ)],"UC Browser":[new RegExp("(UCBrowser|UCWEB)\\/"+QQ)],[xY8]:[Ds0],[SU4]:[Ds0],[Es0]:[new RegExp("("+Es0+"|OPR)\\/"+QQ)],[zs0]:[new RegExp(zs0+"\\/"+QQ)],[VU4]:[new RegExp("FxiOS\\/"+QQ)],[_U4]:[new RegExp("Konqueror[:/]?"+QQ,"i")],[RY0]:[new RegExp(RY0+" "+QQ),Ds0],[kU4]:[new RegExp("android\\s"+QQ,"i")],[TU4]:[new RegExp(AU4+"\\/"+QQ)],[bY8]:[new RegExp("(rv:|MSIE )"+QQ)],Mozilla:[new RegExp("rv:"+QQ)]},Dz5=[[new RegExp(AY0+"; "+AY0+" (.*?)[);]","i"),($)=>[AY0,$&&$[1]||""]],[new RegExp(js0,"i"),[js0,""]],[new RegExp(Ps0,"i"),[Ps0,""]],[vU4,[RY0,""]],[new RegExp(wt,"i"),($,Z)=>{if(/Phone/.test(Z)||/WPDesktop/.test(Z))return[CU4,""];if(new RegExp(fg).test(Z)&&!/IEMobile\b/.test(Z))return[wt+" "+fg,""];let X=/Windows NT ([0-9.]+)/i.exec(Z);if(X&&X[1]){let Q=X[1],Y=xU4[Q]||"";if(/arm/i.test(Z))Y="RT";return[wt,Y]}return[wt,""]}],[/((iPhone|iPad|iPod).*?OS (\d+)_(\d+)_?(\d+)?|iPhone)/,($)=>{if($&&$[3]){let Z=[$[3],$[4],$[5]||"0"];return[TY0,Z.join(".")]}return[TY0,""]}],[/(watch.*\/(\d+\.\d+\.\d+)|watch os,(\d+\.\d+),)/i,($)=>{let Z="";if($&&$.length>=3)Z=_g($[2])?$[3]:$[2];return["watchOS",Z]}],[new RegExp("("+xg+" (\\d+)\\.(\\d+)\\.?(\\d+)?|"+xg+")","i"),($)=>{if($&&$[2]){let Z=[$[2],$[3],$[4]||"0"];return[xg,Z.join(".")]}return[xg,""]}],[/Mac OS X (\d+)[_.](\d+)[_.]?(\d+)?/i,($)=>{let Z=["Mac OS X",""];if($&&$[1]){let X=[$[1],$[2],$[3]||"0"];Z[1]=X.join(".")}return Z}],[/Mac/i,["Mac OS X",""]],[/CrOS/,[RU4,""]],[/Linux|debian/i,["Linux",""]]]});function cY8($){return $?.replace(/\/+$/,"")}async function lY8($,Z){let X=null;for(let Q=0;Q<Z.retryCount+1;Q++){if(Q>0)await new Promise((Y)=>setTimeout(Y,Z.retryDelay));try{return await $()}catch(Y){if(X=Y,!Z.retryCheck(Y))throw Y}}throw X}function qY0(){return new Date().toISOString()}function UN($,Z){let X=setTimeout($,Z);return X?.unref&&X?.unref(),X}function As0($){return Promise.all($.map((Z)=>(Z??Promise.resolve()).then((X)=>({status:"fulfilled",value:X}),(X)=>({status:"rejected",reason:X}))))}var uY8="utf8",dY8=($)=>$ instanceof Error;var YQ=O(()=>{PY8();qY8();Bs0();zY0();Ut();kY8();_Y8();hY8()});var fU4,Cz5;var Ts0=O(()=>{YQ();fU4={trace:{text:"TRACE",number:1},debug:{text:"DEBUG",number:5},info:{text:"INFO",number:9},warn:{text:"WARN",number:13},error:{text:"ERROR",number:17},fatal:{text:"FATAL",number:21}},Cz5=fU4.info});var mY8=O(()=>{Ts0();Oz()});var iY8=O(()=>{Oz()});class Rs0{constructor(){this.events={},this.events={}}on($,Z){if(!this.events[$])this.events[$]=[];return this.events[$].push(Z),()=>{this.events[$]=this.events[$].filter((X)=>X!==Z)}}emit($,Z){for(let X of this.events[$]||[])X(Z);for(let X of this.events["*"]||[])X($,Z)}}var nY8=()=>{};async function pY8($){if($ instanceof bg){let Z="";try{Z=await $.text}catch{}console.error(`Error while flushing PostHog: message=${$.message}, response body=${Z}`,$)}else console.error("Error while flushing PostHog",$);return Promise.resolve()}function Is0($){return typeof $=="object"&&($ instanceof bg||$ instanceof Bt)}function tY8($){return typeof $=="object"&&$ instanceof bg&&$.status===413}class MY0{constructor($,Z={}){this.flushPromise=null,this.shutdownPromise=null,this.promiseQueue=new Ls0,this._events=new Rs0,this._isInitialized=!1;let X=typeof $=="string"?$.trim():"",Q=typeof Z.host=="string"?Z.host.trim():"",Y=!X;if(this._logger=CY8("[PostHog]",this.logMsgIfDebug.bind(this)),Y)this._logger.error("You must pass your PostHog project's api key. The client will be disabled.");if(this.apiKey=X,this.host=cY8(Q||"https://us.i.posthog.com"),this.flushAt=Z.flushAt?Math.max(Z.flushAt,1):20,this.maxBatchSize=Math.max(this.flushAt,Z.maxBatchSize??100),this.maxQueueSize=Math.max(this.flushAt,Z.maxQueueSize??1000),this.flushInterval=Z.flushInterval??1e4,this.preloadFeatureFlags=Z.preloadFeatureFlags??!0,this.defaultOptIn=Z.defaultOptIn??!0,this.disableSurveys=Z.disableSurveys??!1,this._retryOptions={retryCount:Z.fetchRetryCount??3,retryDelay:Z.fetchRetryDelay??3000,retryCheck:Is0},this.requestTimeout=Z.requestTimeout??1e4,this.featureFlagsRequestTimeoutMs=Z.featureFlagsRequestTimeoutMs??3000,this.remoteConfigRequestTimeoutMs=Z.remoteConfigRequestTimeoutMs??3000,this.disableGeoip=Z.disableGeoip??!0,this.disabled=(Z.disabled??!1)||Y,this.historicalMigration=Z?.historicalMigration??!1,this._initPromise=Promise.resolve(),this._isInitialized=!0,this.evaluationContexts=Z?.evaluationContexts??Z?.evaluationEnvironments,Z?.evaluationEnvironments&&!Z?.evaluationContexts)this._logger.warn("evaluationEnvironments is deprecated. Use evaluationContexts instead. This property will be removed in a future version.");this.disableCompression=!zY8()||(Z?.disableCompression??!1)}logMsgIfDebug($){if(this.isDebug)$()}wrap($){if(this.disabled)return void this._logger.warn("The client is disabled");if(this._isInitialized)return $();this._initPromise.then(()=>$())}getCommonEventProperties(){return{$lib:this.getLibraryId(),$lib_version:this.getLibraryVersion()}}get optedOut(){return this.getPersistedProperty(HX.OptedOut)??!this.defaultOptIn}async optIn(){this.wrap(()=>{this.setPersistedProperty(HX.OptedOut,!1)})}async optOut(){this.wrap(()=>{this.setPersistedProperty(HX.OptedOut,!0)})}on($,Z){return this._events.on($,Z)}debug($=!0){if(this.removeDebugCallback?.(),$){let Z=this.on("*",(X,Q)=>this._logger.info(X,Q));this.removeDebugCallback=()=>{Z(),this.removeDebugCallback=void 0}}}get isDebug(){return!!this.removeDebugCallback}get isDisabled(){return this.disabled}buildPayload($){return{distinct_id:$.distinct_id,event:$.event,properties:{...$.properties||{},...this.getCommonEventProperties()}}}addPendingPromise($){return this.promiseQueue.add($)}identifyStateless($,Z,X){this.wrap(()=>{let Q={...this.buildPayload({distinct_id:$,event:"$identify",properties:Z})};this.enqueue("identify",Q,X)})}async identifyStatelessImmediate($,Z,X){let Q={...this.buildPayload({distinct_id:$,event:"$identify",properties:Z})};await this.sendImmediate("identify",Q,X)}captureStateless($,Z,X,Q){this.wrap(()=>{let Y=this.buildPayload({distinct_id:$,event:Z,properties:X});this.enqueue("capture",Y,Q)})}async captureStatelessImmediate($,Z,X,Q){let Y=this.buildPayload({distinct_id:$,event:Z,properties:X});await this.sendImmediate("capture",Y,Q)}aliasStateless($,Z,X,Q){this.wrap(()=>{let Y=this.buildPayload({event:"$create_alias",distinct_id:Z,properties:{...X||{},distinct_id:Z,alias:$}});this.enqueue("alias",Y,Q)})}async aliasStatelessImmediate($,Z,X,Q){let Y=this.buildPayload({event:"$create_alias",distinct_id:Z,properties:{...X||{},distinct_id:Z,alias:$}});await this.sendImmediate("alias",Y,Q)}groupIdentifyStateless($,Z,X,Q,Y,G){this.wrap(()=>{let J=this.buildPayload({distinct_id:Y||`$${$}_${Z}`,event:"$groupidentify",properties:{$group_type:$,$group_key:Z,$group_set:X||{},...G||{}}});this.enqueue("capture",J,Q)})}async getRemoteConfig(){await this._initPromise;let $=this.host;if($==="https://us.i.posthog.com")$="https://us-assets.i.posthog.com";else if($==="https://eu.i.posthog.com")$="https://eu-assets.i.posthog.com";let Z=`${$}/array/${this.apiKey}/config`,X={method:"GET",headers:{...this.getCustomHeaders(),"Content-Type":"application/json"}};return this.fetchWithRetry(Z,X,{retryCount:0},this.remoteConfigRequestTimeoutMs).then((Q)=>Q.json()).catch((Q)=>{this._logger.error("Remote config could not be loaded",Q),this._events.emit("error",Q)})}async getFlags($,Z={},X={},Q={},Y={},G=!1){await this._initPromise;let J=G?"&config=true":"",K=`${this.host}/flags/?v=2${J}`,W={token:this.apiKey,distinct_id:$,groups:Z,person_properties:X,group_properties:Q,...Y};if(X.$device_id)W.$device_id=X.$device_id;if(this.evaluationContexts&&this.evaluationContexts.length>0)W.evaluation_contexts=this.evaluationContexts;let H={method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json"},body:JSON.stringify(W)};return this._logger.info("Flags URL",K),this.fetchWithRetry(K,H,{retryCount:0},this.featureFlagsRequestTimeoutMs).then((U)=>U.json()).then((U)=>({success:!0,response:Hs0(U)})).catch((U)=>{return this._events.emit("error",U),{success:!1,error:this.categorizeRequestError(U)}})}categorizeRequestError($){if($ instanceof bg)return{type:"api_error",statusCode:$.status};if($ instanceof Bt){let Z=$.error;if(Z instanceof Error&&(Z.name==="AbortError"||Z.name==="TimeoutError"))return{type:"timeout"};return{type:"connection_error"}}return{type:"unknown_error"}}async getFeatureFlagStateless($,Z,X={},Q={},Y={},G){await this._initPromise;let J=await this.getFeatureFlagDetailStateless($,Z,X,Q,Y,G);if(J===void 0)return{response:void 0,requestId:void 0};let K=Kt(J.response);if(K===void 0)K=!1;return{response:K,requestId:J.requestId}}async getFeatureFlagDetailStateless($,Z,X={},Q={},Y={},G){await this._initPromise;let J=await this.getFeatureFlagDetailsStateless(Z,X,Q,Y,G,[$]);if(J===void 0)return;return{response:J.flags[$],requestId:J.requestId,evaluatedAt:J.evaluatedAt}}async getFeatureFlagPayloadStateless($,Z,X={},Q={},Y={},G){await this._initPromise;let J=await this.getFeatureFlagPayloadsStateless(Z,X,Q,Y,G,[$]);if(!J)return;let K=J[$];if(K===void 0)return null;return K}async getFeatureFlagPayloadsStateless($,Z={},X={},Q={},Y,G){return await this._initPromise,(await this.getFeatureFlagsAndPayloadsStateless($,Z,X,Q,Y,G)).payloads}async getFeatureFlagsStateless($,Z={},X={},Q={},Y,G){return await this._initPromise,await this.getFeatureFlagsAndPayloadsStateless($,Z,X,Q,Y,G)}async getFeatureFlagsAndPayloadsStateless($,Z={},X={},Q={},Y,G){await this._initPromise;let J=await this.getFeatureFlagDetailsStateless($,Z,X,Q,Y,G);if(!J)return{flags:void 0,payloads:void 0,requestId:void 0};return{flags:J.featureFlags,payloads:J.featureFlagPayloads,requestId:J.requestId}}async getFeatureFlagDetailsStateless($,Z={},X={},Q={},Y,G){await this._initPromise;let J={};if(Y??this.disableGeoip)J.geoip_disable=!0;if(G)J.flag_keys_to_evaluate=G;let K=await this.getFlags($,Z,X,Q,J);if(!K.success)return;let W=K.response;if(W.errorsWhileComputingFlags)console.error("[FEATURE FLAGS] Error while computing feature flags, some flags may be missing or incorrect. Learn more at https://posthog.com/docs/feature-flags/best-practices");if(W.quotaLimited?.includes("feature_flags"))return console.warn("[FEATURE FLAGS] Feature flags quota limit exceeded - feature flags unavailable. Learn more about billing limits at https://posthog.com/docs/billing/limits-alerts"),{flags:{},featureFlags:{},featureFlagPayloads:{},requestId:W?.requestId,quotaLimited:W.quotaLimited};return W}async getSurveysStateless(){if(await this._initPromise,this.disableSurveys===!0)return this._logger.info("Loading surveys is disabled."),[];let $=`${this.host}/api/surveys/?token=${this.apiKey}`,Z={method:"GET",headers:{...this.getCustomHeaders(),"Content-Type":"application/json"}},Q=(await this.fetchWithRetry($,Z).then((Y)=>{if(Y.status!==200||!Y.json){let G=`Surveys API could not be loaded: ${Y.status}`,J=Error(G);this._logger.error(J),this._events.emit("error",Error(G));return}return Y.json()}).catch((Y)=>{this._logger.error("Surveys API could not be loaded",Y),this._events.emit("error",Y)}))?.surveys;if(Q)this._logger.info("Surveys fetched from API: ",JSON.stringify(Q));return Q??[]}get props(){if(!this._props)this._props=this.getPersistedProperty(HX.Props);return this._props||{}}set props($){this._props=$}async register($){this.wrap(()=>{this.props={...this.props,...$},this.setPersistedProperty(HX.Props,this.props)})}async unregister($){this.wrap(()=>{delete this.props[$],this.setPersistedProperty(HX.Props,this.props)})}processBeforeEnqueue($){return $}async flushStorage(){}enqueue($,Z,X){this.wrap(()=>{if(this.optedOut)return void this._events.emit($,"Library is disabled. Not sending event. To re-enable, call posthog.optIn()");let Q=this.prepareMessage($,Z,X);if(Q=this.processBeforeEnqueue(Q),Q===null)return;let Y=this.getPersistedProperty(HX.Queue)||[];if(Y.length>=this.maxQueueSize)Y.shift(),this._logger.info("Queue is full, the oldest event is dropped.");if(Y.push({message:Q}),this.setPersistedProperty(HX.Queue,Y),this._events.emit($,Q),Y.length>=this.flushAt)this.flushBackground();if(this.flushInterval&&!this._flushTimer)this._flushTimer=UN(()=>this.flushBackground(),this.flushInterval)})}async sendImmediate($,Z,X){if(this.disabled)return void this._logger.warn("The client is disabled");if(!this._isInitialized)await this._initPromise;if(this.optedOut)return void this._events.emit($,"Library is disabled. Not sending event. To re-enable, call posthog.optIn()");let Q=this.prepareMessage($,Z,X);if(Q=this.processBeforeEnqueue(Q),Q===null)return;let Y={api_key:this.apiKey,batch:[Q],sent_at:qY0()};if(this.historicalMigration)Y.historical_migration=!0;let G=JSON.stringify(Y),J=`${this.host}/batch/`,K=this.disableCompression?null:await EY0(G,this.isDebug),W={method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",...K!==null&&{"Content-Encoding":"gzip"}},body:K||G};try{await this.fetchWithRetry(J,W)}catch(H){this._events.emit("error",H)}}prepareMessage($,Z,X){let Q={...Z,type:$,library:this.getLibraryId(),library_version:this.getLibraryVersion(),timestamp:X?.timestamp?X?.timestamp:qY0(),uuid:X?.uuid?X.uuid:yB()};if(X?.disableGeoip??this.disableGeoip){if(!Q.properties)Q.properties={};Q.properties.$geoip_disable=!0}if(Q.distinctId)Q.distinct_id=Q.distinctId,delete Q.distinctId;return Q}clearFlushTimer(){if(this._flushTimer)clearTimeout(this._flushTimer),this._flushTimer=void 0}flushBackground(){this.flush().catch(async($)=>{await pY8($)})}async flush(){let $=As0([this.flushPromise]).then(()=>this._flush());return this.flushPromise=$,this.addPendingPromise($),As0([$]).then(()=>{if(this.flushPromise===$)this.flushPromise=null}),$}getCustomHeaders(){let $=this.getCustomUserAgent(),Z={};if($&&$!=="")Z["User-Agent"]=$;return Z}async _flush(){this.clearFlushTimer(),await this._initPromise;let $=this.getPersistedProperty(HX.Queue)||[];if(!$.length)return;let Z=[],X=$.length;while($.length>0&&Z.length<X){let Q=$.slice(0,this.maxBatchSize),Y=Q.map((F)=>F.message),G=async()=>{let w=(this.getPersistedProperty(HX.Queue)||[]).slice(Q.length);this.setPersistedProperty(HX.Queue,w),$=w,await this.flushStorage()},J={api_key:this.apiKey,batch:Y,sent_at:qY0()};if(this.historicalMigration)J.historical_migration=!0;let K=JSON.stringify(J),W=`${this.host}/batch/`,H=this.disableCompression?null:await EY0(K,this.isDebug),U={method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",...H!==null&&{"Content-Encoding":"gzip"}},body:H||K},N={retryCheck:(F)=>{if(tY8(F))return!1;return Is0(F)}};try{await this.fetchWithRetry(W,U,N)}catch(F){if(tY8(F)&&Y.length>1){this.maxBatchSize=Math.max(1,Math.floor(Y.length/2)),this._logger.warn(`Received 413 when sending batch of size ${Y.length}, reducing batch size to ${this.maxBatchSize}`);continue}if(!(F instanceof Bt))await G();throw this._events.emit("error",F),F}await G(),Z.push(...Y)}this._events.emit("flush",Z)}async fetchWithRetry($,Z,X,Q){let Y=Z.body?Z.body:"",G=-1;try{G=Y instanceof Blob?Y.size:Buffer.byteLength(Y,uY8)}catch{if(Y instanceof Blob)G=Y.size;else G=new TextEncoder().encode(Y).length}return await lY8(async()=>{let J=new AbortController,K=Q??this.requestTimeout,W=UN(()=>J.abort(),K),H=null;try{H=await this.fetch($,{signal:J.signal,...Z})}catch(N){throw new Bt(N)}finally{clearTimeout(W)}if(Z.mode!=="no-cors"&&(H.status<200||H.status>=400))throw new bg(H,G);return H},{...this._retryOptions,...X})}async _shutdown($=30000){await this._initPromise;let Z=!1;this.clearFlushTimer();let X=async()=>{try{await this.promiseQueue.join();while(!0){if((this.getPersistedProperty(HX.Queue)||[]).length===0)break;if(await this.flush(),Z)break}}catch(Y){if(!Is0(Y))throw Y;await pY8(Y)}},Q;try{return await Promise.race([new Promise((Y,G)=>{Q=UN(()=>{this._logger.error("Timed out while shutting down PostHog"),Z=!0,G("Timeout while shutting down PostHog. Some events may not have been sent.")},$)}),X()])}finally{clearTimeout(Q)}}async shutdown($=30000){if(this.shutdownPromise)this._logger.warn("shutdown() called while already shutting down. shutdown() is meant to be called once before process exit - use flush() for per-request cleanup");else this.shutdownPromise=this._shutdown($).finally(()=>{this.shutdownPromise=null});return this.shutdownPromise}}var bg,Bt;var qs0=O(()=>{nY8();DY0();Ns0();Oz();YQ();Ft();bg=class bg extends Error{constructor($,Z){super("HTTP error while fetching PostHog: status="+$.status+", reqByteLength="+Z),this.response=$,this.reqByteLength=Z,this.name="PostHogFetchHttpError"}get status(){return this.response.status}get text(){return this.response.text()}get json(){return this.response.json()}};Bt=class Bt extends Error{constructor($){super("Network error while fetching PostHog",$ instanceof Error?{cause:$}:{}),this.error=$,this.name="PostHogFetchNetworkError"}}});var oY8=O(()=>{DY0();Oz();qs0();Ft();YQ()});var rY8=O(()=>{Ut()});function sY8($){let Z=globalThis._posthogChunkIds;if(!Z)return;let X=Object.keys(Z);if(kY0&&X.length===aY8)return kY0;return aY8=X.length,kY0=X.reduce((Q,Y)=>{if(!VY0)VY0={};let G=VY0[Y];if(G)Q[G[0]]=G[1];else{let J=$(Y);for(let K=J.length-1;K>=0;K--){let H=J[K]?.filename,U=Z[Y];if(H&&U){Q[H]=U,VY0[Y]=[H,U];break}}}return Q},{}),kY0}var VY0,aY8,kY0;var eY8=()=>{};class $G8{constructor($,Z,X=[]){this.coercers=$,this.stackParser=Z,this.modifiers=X}buildFromUnknown($,Z={}){let Q=Z&&Z.mechanism||{handled:!0,type:"generic"},G=this.buildCoercingContext(Q,Z,0).apply($),J=this.buildParsingContext(Z),K=this.parseStacktrace(G,J);return{$exception_list:this.convertToExceptionList(K,Q),$exception_level:"error"}}async modifyFrames($){for(let Z of $)if(Z.stacktrace&&Z.stacktrace.frames&&jY0(Z.stacktrace.frames))Z.stacktrace.frames=await this.applyModifiers(Z.stacktrace.frames);return $}coerceFallback($){return{type:"Error",value:"Unknown error",stack:$.syntheticException?.stack,synthetic:!0}}parseStacktrace($,Z){let X;if($.cause!=null)X=this.parseStacktrace($.cause,Z);let Q;if($.stack!=""&&$.stack!=null)Q=this.applyChunkIds(this.stackParser($.stack,$.synthetic?Z.skipFirstLines:0),Z.chunkIdMap);return{...$,cause:X,stack:Q}}applyChunkIds($,Z){return $.map((X)=>{if(X.filename&&Z)X.chunk_id=Z[X.filename];return X})}applyCoercers($,Z){for(let X of this.coercers)if(X.match($))return X.coerce($,Z);return this.coerceFallback(Z)}async applyModifiers($){let Z=$;for(let X of this.modifiers)Z=await X(Z);return Z}convertToExceptionList($,Z){let X={type:$.type,value:$.value,mechanism:{type:Z.type??"generic",handled:Z.handled??!0,synthetic:$.synthetic??!1}};if($.stack)X.stacktrace={type:"raw",frames:$.stack};let Q=[X];if($.cause!=null)Q.push(...this.convertToExceptionList($.cause,{...Z,handled:!0}));return Q}buildParsingContext($){return{chunkIdMap:sY8(this.stackParser),skipFirstLines:$.skipFirstLines??1}}buildCoercingContext($,Z,X=0){let Q=(G,J)=>{if(!(J<=gU4))return;{let K=this.buildCoercingContext($,Z,J);return this.applyCoercers(G,K)}};return{...Z,syntheticException:X==0?Z.syntheticException:void 0,mechanism:$,apply:(G)=>Q(G,X),next:(G)=>Q(G,X+1)}}}var gU4=4;var ZG8=O(()=>{YQ();eY8()});function iW($,Z,X,Q,Y){let G={platform:$,filename:Z,function:X==="<anonymous>"?A7:X,in_app:!0};if(!_g(Q))G.lineno=Q;if(!_g(Y))G.colno=Y;return G}var A7="?";var gB=O(()=>{YQ()});var SY0=($,Z)=>{let X=$.indexOf("safari-extension")!==-1,Q=$.indexOf("safari-web-extension")!==-1;return X||Q?[$.indexOf("@")!==-1?$.split("@")[0]:A7,X?`safari-extension:${Z}`:`safari-web-extension:${Z}`]:[$,Z]};var Ms0=O(()=>{gB()});var hU4,uU4,cU4,Vs0=($,Z)=>{let X=hU4.exec($);if(X){let[,Y,G,J]=X;return iW(Z,Y,A7,+G,+J)}let Q=uU4.exec($);if(Q){if(Q[2]&&Q[2].indexOf("eval")===0){let K=cU4.exec(Q[2]);if(K)Q[2]=K[1],Q[3]=K[2],Q[4]=K[3]}let[G,J]=SY0(Q[1]||A7,Q[2]);return iW(Z,J,G,Q[3]?+Q[3]:void 0,Q[4]?+Q[4]:void 0)}};var XG8=O(()=>{gB();Ms0();hU4=/^\s*at (\S+?)(?::(\d+))(?::(\d+))\s*$/i,uU4=/^\s*at (?:(.+?\)(?: \[.+\])?|.*?) ?\((?:address at )?)?(?:async )?((?:<anonymous>|[-a-z]+:|.*bundle|\/)?.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,cU4=/\((\S*)(?::(\d+))(?::(\d+))\)/});var lU4,dU4,ks0=($,Z)=>{let X=lU4.exec($);if(X){if(X[3]&&X[3].indexOf(" > eval")>-1){let J=dU4.exec(X[3]);if(J)X[1]=X[1]||"eval",X[3]=J[1],X[4]=J[2],X[5]=""}let Y=X[3],G=X[1]||A7;return[G,Y]=SY0(G,Y),iW(Z,Y,G,X[4]?+X[4]:void 0,X[5]?+X[5]:void 0)}};var QG8=O(()=>{gB();Ms0();lU4=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:[-a-z]+)?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i,dU4=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i});var mU4,YG8=($,Z)=>{let X=mU4.exec($);return X?iW(Z,X[2],X[1]||A7,+X[3],X[4]?+X[4]:void 0):void 0};var GG8=O(()=>{gB();mU4=/^\s*at (?:((?:\[object object\])?.+) )?\(?((?:[-a-z]+):.*?):(\d+)(?::(\d+))?\)?\s*$/i});var iU4,JG8=($,Z)=>{let X=iU4.exec($);return X?iW(Z,X[2],X[3]||A7,+X[1]):void 0},nU4,KG8=($,Z)=>{let X=nU4.exec($);return X?iW(Z,X[5],X[3]||X[4]||A7,+X[1],+X[2]):void 0};var WG8=O(()=>{gB();iU4=/ line (\d+).*script (?:in )?(\S+)(?:: in function (\S+))?$/i,nU4=/ line (\d+), column (\d+)\s*(?:in (?:<anonymous function: ([^>]+)>|([^)]+))\(.*\))? in (.*):\s*$/i});function oU4($,Z=!1){return!(Z||$&&!$.startsWith("/")&&!$.match(/^[A-Z]:/)&&!$.startsWith(".")&&!$.match(/^[a-zA-Z]([a-zA-Z0-9.\-+])*:\/\//))&&$!==void 0&&!$.includes("node_modules/")}function HG8($){return parseInt($||"",10)||void 0}var pU4,tU4,UG8=($,Z)=>{let X=$.match(tU4);if(X){let Q,Y,G,J,K;if(X[1]){G=X[1];let U=G.lastIndexOf(".");if(G[U-1]===".")U--;if(U>0){Q=G.slice(0,U),Y=G.slice(U+1);let N=Q.indexOf(".Module");if(N>0)G=G.slice(N+1),Q=Q.slice(0,N)}J=void 0}if(Y)J=Q,K=Y;if(Y==="<anonymous>")K=void 0,G=void 0;if(G===void 0)K=K||A7,G=J?`${J}.${K}`:K;let W=X[2]?.startsWith("file://")?X[2].slice(7):X[2],H=X[5]==="native";if(W?.match(/\/[A-Z]:/))W=W.slice(1);if(!W&&X[5]&&!H)W=X[5];return{filename:W?decodeURI(W):void 0,module:void 0,function:G,lineno:HG8(X[3]),colno:HG8(X[4]),in_app:oU4(W||"",H),platform:Z}}if($.match(pU4))return{filename:$,platform:Z}};var NG8=O(()=>{gB();pU4=/^\s*[-]{4,}$/,tU4=/at (?:async )?(?:(.+?)\s+\()?(?:(.+):(\d+):(\d+)?|([^)]+))\)?/});function BG8($){if(!$.length)return[];let Z=Array.from($);return Z.reverse(),Z.slice(0,wG8).map((X)=>({...X,filename:X.filename||rU4(Z).filename,function:X.function||A7}))}function rU4($){return $[$.length-1]||{}}function aU4(){return OG8("web:javascript",Vs0,ks0)}function OG8($,...Z){return(X,Q=0)=>{let Y=[],G=X.split(`
|
|
1645
1645
|
`);for(let J=Q;J<G.length;J++){let K=G[J];if(K.length>1024)continue;let W=FG8.test(K)?K.replace(FG8,"$1"):K;if(!W.match(/\S*Error: /)){for(let H of Z){let U=H(W,$);if(U){Y.push(U);break}}if(Y.length>=wG8)break}}return BG8(Y)}}var FG8,wG8=50;var LG8=O(()=>{gB();XG8();QG8();GG8();WG8();NG8();FG8=/\(error: (.*)\)/});class DG8{match($){return this.isDOMException($)||this.isDOMError($)}coerce($,Z){let X=bB($.stack);return{type:this.getType($),value:this.getValue($),stack:X?$.stack:void 0,cause:$.cause?Z.next($.cause):void 0,synthetic:!1}}getType($){return this.isDOMError($)?"DOMError":"DOMException"}getValue($){let Z=$.name||(this.isDOMError($)?"DOMError":"DOMException");return $.message?`${Z}: ${$.message}`:Z}isDOMException($){return Lz($,"DOMException")}isDOMError($){return Lz($,"DOMError")}}var EG8=O(()=>{YQ()});class zG8{match($){return ws0($)}coerce($,Z){return{type:this.getType($),value:this.getMessage($,Z),stack:this.getStack($),cause:$.cause?Z.next($.cause):void 0,synthetic:!1}}getType($){return $.name||$.constructor.name}getMessage($,Z){let X=$.message;if(X.error&&typeof X.error.message=="string")return String(X.error.message);return String(X)}getStack($){return $.stacktrace||$.stack||void 0}}var jG8=O(()=>{YQ()});class PG8{constructor(){}match($){return RY8($)&&$.error!=null}coerce($,Z){let X=Z.apply($.error);if(!X)return{type:"ErrorEvent",value:$.message,stack:Z.syntheticException?.stack,synthetic:!0};return X}}var AG8=O(()=>{YQ()});class TG8{match($){return typeof $=="string"}coerce($,Z){let[X,Q]=this.getInfos($);return{type:X??"Error",value:Q??$,stack:Z.syntheticException?.stack,synthetic:!0}}getInfos($){let Z="Error",X=$,Q=$.match(sU4);if(Q)Z=Q[1],X=Q[2];return[Z,X]}}var sU4;var RG8=O(()=>{sU4=/^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i});var IG8;var qG8=O(()=>{IG8=["fatal","error","warning","log","info","debug"]});function CY0($,Z=40){let X=Object.keys($);if(X.sort(),!X.length)return"[object has no keys]";for(let Q=X.length;Q>0;Q--){let Y=X.slice(0,Q).join(", ");if(!(Y.length>Z)){if(Q===X.length)return Y;return Y.length<=Z?Y:`${Y.slice(0,Z)}...`}}return""}var Ss0=()=>{};class MG8{match($){return typeof $=="object"&&$!==null}coerce($,Z){let X=this.getErrorPropertyFromObject($);if(X)return Z.apply(X);return{type:this.getType($),value:this.getValue($),stack:Z.syntheticException?.stack,level:this.isSeverityLevel($.level)?$.level:"error",synthetic:!0}}getType($){return vg($)?$.constructor.name:"Error"}getValue($){if("name"in $&&typeof $.name=="string"){let Q=`'${$.name}' captured as exception`;if("message"in $&&typeof $.message=="string")Q+=` with message: '${$.message}'`;return Q}if("message"in $&&typeof $.message=="string")return $.message;let Z=this.getObjectClassName($),X=CY0($);return`${Z&&Z!=="Object"?`'${Z}'`:"Object"} captured as exception with keys: ${X}`}isSeverityLevel($){return bB($)&&!TY8($)&&IG8.indexOf($)>=0}getErrorPropertyFromObject($){for(let Z in $)if(Object.prototype.hasOwnProperty.call($,Z)){let X=$[Z];if(dY8(X))return X}}getObjectClassName($){try{let Z=Object.getPrototypeOf($);return Z?Z.constructor.name:void 0}catch(Z){return}}}var VG8=O(()=>{YQ();qG8();Ss0()});class kG8{match($){return vg($)}coerce($,Z){let X=$.constructor.name;return{type:X,value:`${X} captured as exception with keys: ${CY0($)}`,stack:Z.syntheticException?.stack,synthetic:!0}}}var SG8=O(()=>{YQ();Ss0()});class CG8{match($){return PY0($)}coerce($,Z){return{type:"Error",value:`Primitive value captured as exception: ${String($)}`,stack:Z.syntheticException?.stack,synthetic:!0}}}var _G8=O(()=>{YQ()});class vG8{match($){return Lz($,"PromiseRejectionEvent")||this.isCustomEventWrappingRejection($)}isCustomEventWrappingRejection($){if(!vg($))return!1;try{let Z=$.detail;return Z!=null&&typeof Z=="object"&&"reason"in Z}catch{return!1}}coerce($,Z){let X=this.getUnhandledRejectionReason($);if(PY0(X))return{type:"UnhandledRejection",value:`Non-Error promise rejection captured with value: ${String(X)}`,stack:Z.syntheticException?.stack,synthetic:!0};return Z.apply(X)}getUnhandledRejectionReason($){try{if("reason"in $)return $.reason;if("detail"in $&&$.detail!=null&&typeof $.detail=="object"&&"reason"in $.detail)return $.detail.reason}catch{}return $}}var xG8=O(()=>{YQ()});var fG8=O(()=>{EG8();jG8();AG8();RG8();VG8();SG8();_G8();xG8()});class bG8{constructor($){this._maxSize=$,this._cache=new Map}get($){let Z=this._cache.get($);if(Z===void 0)return;return this._cache.delete($),this._cache.set($,Z),Z}set($,Z){this._cache.set($,Z)}reduce(){while(this._cache.size>=this._maxSize){let $=this._cache.keys().next().value;if($)this._cache.delete($)}}}var yG8=()=>{};function Cs0($){if(!$)return{..._Y0};return{enabled:$.enabled??_Y0.enabled,max_bytes:ZN4($.max_bytes,_Y0.max_bytes)}}function $N4($){if(!$)return{sanitizedProperties:{},droppedKeys:[]};let Z=[];return{sanitizedProperties:Object.keys($).reduce((Q,Y)=>{if(eU4.has(Y))return Z.push(Y),Q;return Q[Y]=$[Y],Q},{}),droppedKeys:Z}}class gG8{constructor($){this._entries=[],this._totalBytes=0,this._config=Cs0($)}setConfig($){this._config=Cs0($),this._trimToMaxBytes()}add($){let Z=XN4($);if(!Z)return;let X=hG8(Z.json);if(X>this._config.max_bytes)return;this._entries.push({step:Z.step,bytes:X}),this._totalBytes+=X,this._trimToMaxBytes()}getAttachable(){return this._entries.map(($)=>$.step)}clear(){this._entries=[],this._totalBytes=0}size(){return this._entries.length}_trimToMaxBytes(){while(this._totalBytes>this._config.max_bytes&&this._entries.length>0){let $=this._entries.shift();if($)this._totalBytes-=$.bytes}}}function ZN4($,Z){if(!Ht($)||$===1/0||$===-1/0)return Z;let X=Math.floor($);if(X<0)return Z;return X}function XN4($){let Z=QN4($);if(!Z)return;try{let X=JSON.parse(Z);if(!Wt(X))return;let Q=X,Y=Q[Ot.MESSAGE],G=Q[Ot.TIMESTAMP];if(!bB(Y)||Y.trim().length===0)return;if(!bB(G)&&!Ht(G))return;return{step:Q,json:Z}}catch{return}}function QN4($){let Z=new WeakSet;try{return JSON.stringify($,(X,Q)=>{if(typeof Q=="bigint")return Q.toString();if(typeof Q=="function"||typeof Q=="symbol")return;if(Q instanceof Date)return Q.toISOString();if(Q instanceof Error)return{name:Q.name,message:Q.message,stack:Q.stack};if(Q&&typeof Q=="object"){if(Z.has(Q))return"[Circular]";Z.add(Q)}return Q})}catch{return}}function hG8($){if(typeof TextEncoder<"u")return new TextEncoder().encode($).length;let Z=encodeURIComponent($),X=0;for(let Q=0;Q<Z.length;Q++)if(Z[Q]==="%")X+=1,Q+=2;else X+=1;return X}var Ot,eU4,_Y0;var uG8=O(()=>{YQ();Ot={MESSAGE:"$message",TIMESTAMP:"$timestamp"},eU4=new Set([Ot.MESSAGE,Ot.TIMESTAMP]),_Y0={enabled:!0,max_bytes:32768}});var oQ={};B0(oQ,{winjsStackLineParser:()=>YG8,stripReservedExceptionStepFields:()=>$N4,reverseAndStripFrames:()=>BG8,resolveExceptionStepsConfig:()=>Cs0,opera11StackLineParser:()=>KG8,opera10StackLineParser:()=>JG8,nodeStackLineParser:()=>UG8,getUtf8ByteLength:()=>hG8,geckoStackLineParser:()=>ks0,createStackParser:()=>OG8,createDefaultStackParser:()=>aU4,chromeStackLineParser:()=>Vs0,StringCoercer:()=>TG8,ReduceableCache:()=>bG8,PromiseRejectionEventCoercer:()=>vG8,PrimitiveCoercer:()=>CG8,ObjectCoercer:()=>MG8,ExceptionStepsBuffer:()=>gG8,EventCoercer:()=>kG8,ErrorPropertiesBuilder:()=>$G8,ErrorEventCoercer:()=>PG8,ErrorCoercer:()=>zG8,EXCEPTION_STEP_INTERNAL_FIELDS:()=>Ot,DOMExceptionCoercer:()=>DG8,DEFAULT_EXCEPTION_STEPS_CONFIG:()=>_Y0});var cG8=O(()=>{ZG8();LG8();fG8();yG8();uG8()});var Ez=O(()=>{DY0();Ns0();Ts0();mY8();Ft();iY8();cG8();YQ();oY8();qs0();rY8();Oz()});import{createReadStream as YN4}from"fs";import{createInterface as GN4}from"readline";async function iG8($){let Z={};for(let Y=$.length-1;Y>=0;Y--){let G=$[Y],J=G?.filename;if(!G||typeof J!="string"||typeof G.lineno!="number"||NN4(J)||FN4(G))continue;if(!Z[J])Z[J]=[];Z[J].push(G.lineno)}let X=Object.keys(Z);if(X.length==0)return $;let Q=[];for(let Y of X){if(mG8.get(Y))continue;let G=Z[Y];if(!G)continue;G.sort((W,H)=>W-H);let J=BN4(G);if(J.every((W)=>wN4(Y,W)))continue;let K=ON4(vY0,Y,{});Q.push(WN4(Y,J,K))}if(await Promise.all(Q).catch(()=>{}),$&&$.length>0)HN4($,vY0);return vY0.reduce(),$}function WN4($,Z,X){return new Promise((Q)=>{let Y=YN4($),G=GN4({input:Y});function J(){Y.destroy(),Q()}let K=0,W=0,H=Z[W];if(H===void 0)return void J();let U=H[0],N=H[1];function F(){mG8.set($,1),G.close(),G.removeAllListeners(),J()}Y.on("error",F),G.on("error",F),G.on("close",J),G.on("line",(w)=>{if(K++,K<U)return;if(X[K]=LN4(w,0),K>=N){if(W===Z.length-1){G.close(),G.removeAllListeners();return}W++;let B=Z[W];if(B===void 0){G.close(),G.removeAllListeners();return}U=B[0],N=B[1]}})})}function HN4($,Z){for(let X of $)if(X.filename&&X.context_line===void 0&&typeof X.lineno=="number"){let Q=Z.get(X.filename);if(Q===void 0)continue;UN4(X.lineno,X,Q)}}function UN4($,Z,X){if(Z.lineno===void 0||X===void 0)return;Z.pre_context=[];for(let Y=nG8($);Y<$;Y++){let G=X[Y];if(G===void 0)return void lG8(Z);Z.pre_context.push(G)}if(X[$]===void 0)return void lG8(Z);Z.context_line=X[$];let Q=pG8($);Z.post_context=[];for(let Y=$+1;Y<=Q;Y++){let G=X[Y];if(G===void 0)break;Z.post_context.push(G)}}function lG8($){delete $.pre_context,delete $.context_line,delete $.post_context}function NN4($){return $.startsWith("node:")||$.endsWith(".min.js")||$.endsWith(".min.cjs")||$.endsWith(".min.mjs")||$.startsWith("data:")}function FN4($){if($.lineno!==void 0&&$.lineno>KN4)return!0;if($.colno!==void 0&&$.colno>JN4)return!0;return!1}function wN4($,Z){let X=vY0.get($);if(X===void 0)return!1;for(let Q=Z[0];Q<=Z[1];Q++)if(X[Q]===void 0)return!1;return!0}function BN4($){if(!$.length)return[];let Z=0,X=$[0];if(typeof X!="number")return[];let Q=dG8(X),Y=[];while(!0){if(Z===$.length-1){Y.push(Q);break}let G=$[Z+1];if(typeof G!="number")break;if(G<=Q[1])Q[1]=G+_s0;else Y.push(Q),Q=dG8(G);Z++}return Y}function dG8($){return[nG8($),pG8($)]}function nG8($){return Math.max(1,$-_s0)}function pG8($){return $+_s0}function ON4($,Z,X){let Q=$.get(Z);if(Q===void 0)return $.set(Z,X),X;return Q}function LN4($,Z){let X=$,Q=X.length;if(Q<=150)return X;if(Z>Q)Z=Q;let Y=Math.max(Z-60,0);if(Y<5)Y=0;let G=Math.min(Y+140,Q);if(G>Q-5)G=Q;if(G===Q)Y=Math.max(G-140,0);if(X=X.slice(Y,G),Y>0)X=`...${X}`;if(G<Q)X+="...";return X}var vY0,mG8,_s0=7,JN4=1000,KN4=1e4;var tG8=O(()=>{Ez();vY0=new oQ.ReduceableCache(25),mG8=new oQ.ReduceableCache(20)});import{isAbsolute as DN4,relative as EN4,sep as zN4}from"path";function oG8($=process.cwd()){let Z=zN4==="\\",X=(Y)=>Z?Y.replace(/\\/g,"/"):Y,Q=X($);return async(Y)=>{for(let G of Y)if(!(!G.filename||G.filename.startsWith("node:")||G.filename.startsWith("data:"))){if(DN4(G.filename))G.filename=X(EN4(Q,X(G.filename)))}return Y}}var rG8=()=>{};function jN4($,Z){let X=!1;return Object.assign((Q)=>{let G=global.process.listeners("uncaughtException").filter((J)=>J.name!=="domainUncaughtExceptionClear"&&J._posthogErrorHandler!==!0).length===0;if($(Q,{mechanism:{type:"onuncaughtexception",handled:!1}}),!X&&G)X=!0,Z(Q)},{_posthogErrorHandler:!0})}function aG8($,Z){globalThis.process?.on("uncaughtException",jN4($,Z))}function sG8($){globalThis.process?.on("unhandledRejection",(Z)=>$(Z,{mechanism:{type:"onunhandledrejection",handled:!1}}))}var eG8=()=>{};class L3{constructor($,Z,X){this.client=$,this._exceptionAutocaptureEnabled=Z.enableExceptionAutocapture||!1,this._logger=X,this._rateLimiter=new Os0({refillRate:1,bucketSize:10,refillInterval:1e4,_logger:this._logger}),this.startAutocaptureIfEnabled()}static isPreviouslyCapturedError($){return Wt($)&&"__posthog_previously_captured_error"in $&&$.__posthog_previously_captured_error===!0}static async buildEventMessage($,Z,X,Q){let Y={...Q},G=this.errorPropertiesBuilder.buildFromUnknown($,Z);return G.$exception_list=await this.errorPropertiesBuilder.modifyFrames(G.$exception_list),{event:"$exception",distinctId:X,properties:{...G,...Y},_originatedFromCaptureException:!0}}startAutocaptureIfEnabled(){if(this.isEnabled())aG8(this.onException.bind(this),this.onFatalError.bind(this)),sG8(this.onException.bind(this))}onException($,Z){this.client.addPendingPromise((async()=>{if(!L3.isPreviouslyCapturedError($)){let X=await L3.buildEventMessage($,Z),Y=X.properties?.$exception_list[0]?.type??"Exception";if(this._rateLimiter.consumeRateLimit(Y))return void this._logger.info("Skipping exception capture because of client rate limiting.",{exception:Y});return this.client.capture(X)}})())}async onFatalError($){console.error($),await this.client.shutdown(PN4),process.exit(1)}isEnabled(){return!this.client.isDisabled&&this._exceptionAutocaptureEnabled}shutdown(){this._rateLimiter.stop()}}var PN4=2000;var xY0=O(()=>{eG8();Ez()});var $38="5.30.6";var Z38=()=>{};var Lt;var vs0=O(()=>{Lt={ERRORS_WHILE_COMPUTING:"errors_while_computing_flags",FLAG_MISSING:"flag_missing",QUOTA_LIMITED:"quota_limited",UNKNOWN_ERROR:"unknown_error"}});async function X38($){let Z=globalThis.crypto?.subtle;if(!Z)throw Error("SubtleCrypto API not available");let X=await Z.digest("SHA-1",new TextEncoder().encode($));return Array.from(new Uint8Array(X)).map((Y)=>Y.toString(16).padStart(2,"0")).join("")}var Q38=()=>{};class xs0{constructor({pollingInterval:$,personalApiKey:Z,projectApiKey:X,timeout:Q,host:Y,customHeaders:G,...J}){this.debugMode=!1,this.shouldBeginExponentialBackoff=!1,this.backOffCount=0,this.pollingInterval=$,this.personalApiKey=Z,this.featureFlags=[],this.featureFlagsByKey={},this.groupTypeMapping={},this.cohorts={},this.loadedSuccessfullyOnce=!1,this.timeout=Q,this.projectApiKey=X,this.host=Y,this.poller=void 0,this.fetch=J.fetch||fetch,this.onError=J.onError,this.customHeaders=G,this.onLoad=J.onLoad,this.cacheProvider=J.cacheProvider,this.strictLocalEvaluation=J.strictLocalEvaluation??!1,this.loadFeatureFlags()}debug($=!0){this.debugMode=$}logMsgIfDebug($){if(this.debugMode)$()}createEvaluationContext($,Z={},X={},Q={},Y={}){return{distinctId:$,groups:Z,personProperties:X,groupProperties:Q,evaluationCache:Y}}async getFeatureFlag($,Z,X={},Q={},Y={}){await this.loadFeatureFlags();let G,J;if(!this.loadedSuccessfullyOnce)return G;if(J=this.featureFlagsByKey[$],J!==void 0){let K=this.createEvaluationContext(Z,X,Q,Y);try{G=(await this.computeFlagAndPayloadLocally(J,K)).value,this.logMsgIfDebug(()=>console.debug(`Successfully computed flag locally: ${$} -> ${G}`))}catch(W){if(W instanceof nW||W instanceof f4)this.logMsgIfDebug(()=>console.debug(`${W.name} when computing flag locally: ${$}: ${W.message}`));else if(W instanceof Error)this.onError?.(Error(`Error computing flag locally: ${$}: ${W}`))}}return G}async getAllFlagsAndPayloads($,Z){await this.loadFeatureFlags();let X={},Q={},Y=this.featureFlags.length==0,G=Z?Z.map((K)=>this.featureFlagsByKey[K]).filter(Boolean):this.featureFlags,J={...$,evaluationCache:$.evaluationCache??{}};return await Promise.all(G.map(async(K)=>{try{let{value:W,payload:H}=await this.computeFlagAndPayloadLocally(K,J);if(X[K.key]=W,H)Q[K.key]=H}catch(W){if(W instanceof nW||W instanceof f4)this.logMsgIfDebug(()=>console.debug(`${W.name} when computing flag locally: ${K.key}: ${W.message}`));else if(W instanceof Error)this.onError?.(Error(`Error computing flag locally: ${K.key}: ${W}`));Y=!0}})),{response:X,payloads:Q,fallbackToFlags:Y}}async computeFlagAndPayloadLocally($,Z,X={}){let{matchValue:Q,skipLoadCheck:Y=!1}=X;if(!Y)await this.loadFeatureFlags();if(!this.loadedSuccessfullyOnce)return{value:!1,payload:null};let G;G=Q!==void 0?Q:await this.computeFlagValueLocally($,Z);let J=this.getFeatureFlagPayload($.key,G);return{value:G,payload:J}}async computeFlagValueLocally($,Z){let{distinctId:X,groups:Q,personProperties:Y,groupProperties:G}=Z;if($.ensure_experience_continuity)throw new f4("Flag has experience continuity enabled");if(!$.active)return!1;let K=($.filters||{}).aggregation_group_type_index;if(K!=null){let W=this.groupTypeMapping[String(K)];if(!W)throw this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Unknown group type index ${K} for feature flag ${$.key}`)),new f4("Flag has unknown group type index");if(!(W in Q))return this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Can't compute group feature flag: ${$.key} without group names passed in`)),!1;if($.bucketing_identifier==="device_id"&&(Y?.$device_id===void 0||Y?.$device_id===null||Y?.$device_id===""))this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Ignoring bucketing_identifier for group flag: ${$.key}`));let H=G[W];return await this.matchFeatureFlagProperties($,Q[W],H,Z)}{let W=this.getBucketingValueForFlag($,X,Y);if(W===void 0)throw this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Can't compute feature flag: ${$.key} without $device_id, falling back to server evaluation`)),new f4(`Can't compute feature flag: ${$.key} without $device_id`);return await this.matchFeatureFlagProperties($,W,Y,Z)}}getBucketingValueForFlag($,Z,X){if($.filters?.aggregation_group_type_index!=null)return Z;if($.bucketing_identifier==="device_id"){let Q=X?.$device_id;if(Q==null||Q==="")return;return Q}return Z}getFeatureFlagPayload($,Z){let X=null;if(Z!==!1&&Z!=null){if(typeof Z=="boolean")X=this.featureFlagsByKey?.[$]?.filters?.payloads?.[Z.toString()]||null;else if(typeof Z=="string")X=this.featureFlagsByKey?.[$]?.filters?.payloads?.[Z]||null;if(X!=null){if(typeof X=="object")return X;if(typeof X=="string")try{return JSON.parse(X)}catch{}return X}}return null}async evaluateFlagDependency($,Z,X){let{evaluationCache:Q}=X,Y=$.key;if(!this.featureFlagsByKey)throw new f4("Feature flags not available for dependency evaluation");if(!("dependency_chain"in $))throw new f4(`Flag dependency property for '${Y}' is missing required 'dependency_chain' field`);let G=$.dependency_chain;if(!Array.isArray(G))throw new f4(`Flag dependency property for '${Y}' has an invalid 'dependency_chain' (expected array, got ${typeof G})`);if(G.length===0)throw new f4(`Circular dependency detected for flag '${Y}' (empty dependency chain)`);for(let K of G){if(!(K in Q)){let H=this.featureFlagsByKey[K];if(H)if(H.active)try{let U=await this.computeFlagValueLocally(H,X);Q[K]=U}catch(U){throw new f4(`Error evaluating flag dependency '${K}' for flag '${Y}': ${U}`)}else Q[K]=!1;else throw new f4(`Missing flag dependency '${K}' for flag '${Y}'`)}if(Q[K]==null)throw new f4(`Dependency '${K}' could not be evaluated`)}let J=Q[Y];return this.flagEvaluatesToExpectedValue($.value,J)}flagEvaluatesToExpectedValue($,Z){if(typeof $=="boolean")return $===Z||typeof Z=="string"&&Z!==""&&$===!0;if(typeof $=="string")return Z===$;return!1}async matchFeatureFlagProperties($,Z,X,Q){let Y=$.filters||{},G=Y.groups||[],J=!1,K;for(let W of G)try{if(await this.isConditionMatch($,Z,W,X,Q)){let H=W.variant,U=Y.multivariate?.variants||[];K=H&&U.some((N)=>N.key===H)?H:await this.getMatchingVariant($,Z)||!0;break}}catch(H){if(H instanceof nW)throw H;if(H instanceof f4)J=!0;else throw H}if(K!==void 0)return K;if(J)throw new f4("Can't determine if feature flag is enabled or not with given properties");return!1}async isConditionMatch($,Z,X,Q,Y){let G=X.rollout_percentage,J=(K)=>{this.logMsgIfDebug(()=>console.warn(K))};if((X.properties||[]).length>0){for(let K of X.properties){let W=K.type,H=!1;if(H=W==="cohort"?W38(K,Q,this.cohorts,this.debugMode):W==="flag"?await this.evaluateFlagDependency(K,Q,Y):K38(K,Q,J),!H)return!1}if(G==null)return!0}if(G!=null&&await Y38($.key,Z)>G/100)return!1;return!0}async getMatchingVariant($,Z){let X=await Y38($.key,Z,"variant"),Q=this.variantLookupTable($).find((Y)=>X>=Y.valueMin&&X<Y.valueMax);if(Q)return Q.key}variantLookupTable($){let Z=[],X=0,Q=0;return(($.filters||{}).multivariate?.variants||[]).forEach((J)=>{Q=X+J.rollout_percentage/100,Z.push({valueMin:X,valueMax:Q,key:J.key}),X=Q}),Z}updateFlagState($){this.featureFlags=$.flags,this.featureFlagsByKey=$.flags.reduce((Z,X)=>(Z[X.key]=X,Z),{}),this.groupTypeMapping=$.groupTypeMapping,this.cohorts=$.cohorts,this.loadedSuccessfullyOnce=!0}warnAboutExperienceContinuityFlags($){if(this.strictLocalEvaluation)return;let Z=$.filter((X)=>X.ensure_experience_continuity);if(Z.length>0)console.warn(`[PostHog] You are using local evaluation but ${Z.length} flag(s) have experience continuity enabled: ${Z.map((X)=>X.key).join(", ")}. Experience continuity is incompatible with local evaluation and will cause a server request on every flag evaluation, negating local evaluation cost savings. To avoid server requests and unexpected costs, either disable experience continuity on these flags in PostHog, use strictLocalEvaluation: true in client init, or pass onlyEvaluateLocally: true per flag call (flags that cannot be evaluated locally will return undefined).`)}async loadFromCache($){if(!this.cacheProvider)return!1;try{let Z=await this.cacheProvider.getFlagDefinitions();if(Z)return this.updateFlagState(Z),this.logMsgIfDebug(()=>console.debug(`[FEATURE FLAGS] ${$} (${Z.flags.length} flags)`)),this.onLoad?.(this.featureFlags.length),this.warnAboutExperienceContinuityFlags(Z.flags),!0;return!1}catch(Z){return this.onError?.(Error(`Failed to load from cache: ${Z}`)),!1}}async loadFeatureFlags($=!1){if(this.loadedSuccessfullyOnce&&!$)return;if(!$&&this.nextFetchAllowedAt&&Date.now()<this.nextFetchAllowedAt)return void this.logMsgIfDebug(()=>console.debug("[FEATURE FLAGS] Skipping fetch, in backoff period"));if(!this.loadingPromise)this.loadingPromise=this._loadFeatureFlags().catch((Z)=>this.logMsgIfDebug(()=>console.debug(`[FEATURE FLAGS] Failed to load feature flags: ${Z}`))).finally(()=>{this.loadingPromise=void 0});return this.loadingPromise}isLocalEvaluationReady(){return(this.loadedSuccessfullyOnce??!1)&&(this.featureFlags?.length??0)>0}getFlagDefinitionsLoadedAt(){return this.flagDefinitionsLoadedAt}getPollingInterval(){if(!this.shouldBeginExponentialBackoff)return this.pollingInterval;return Math.min(AN4,this.pollingInterval*2**this.backOffCount)}beginBackoff(){this.shouldBeginExponentialBackoff=!0,this.backOffCount+=1,this.nextFetchAllowedAt=Date.now()+this.getPollingInterval()}clearBackoff(){this.shouldBeginExponentialBackoff=!1,this.backOffCount=0,this.nextFetchAllowedAt=void 0}async _loadFeatureFlags(){if(this.poller)clearTimeout(this.poller),this.poller=void 0;this.poller=setTimeout(()=>this.loadFeatureFlags(!0),this.getPollingInterval());try{let $=!0;if(this.cacheProvider)try{$=await this.cacheProvider.shouldFetchFlagDefinitions()}catch(X){this.onError?.(Error(`Error in shouldFetchFlagDefinitions: ${X}`))}if(!$){if(await this.loadFromCache("Loaded flags from cache (skipped fetch)"))return;if(this.loadedSuccessfullyOnce)return}let Z=await this._requestFeatureFlagDefinitions();if(!Z)return;switch(Z.status){case 304:this.logMsgIfDebug(()=>console.debug("[FEATURE FLAGS] Flags not modified (304), using cached data")),this.flagsEtag=Z.headers?.get("ETag")??this.flagsEtag,this.loadedSuccessfullyOnce=!0,this.clearBackoff();return;case 401:throw this.beginBackoff(),new yg(`Your project key or personal API key is invalid. Setting next polling interval to ${this.getPollingInterval()}ms. More information: https://posthog.com/docs/api#rate-limiting`);case 402:console.warn("[FEATURE FLAGS] Feature flags quota limit exceeded - unsetting all local flags. Learn more about billing limits at https://posthog.com/docs/billing/limits-alerts"),this.featureFlags=[],this.featureFlagsByKey={},this.groupTypeMapping={},this.cohorts={};return;case 403:throw this.beginBackoff(),new yg(`Your personal API key does not have permission to fetch feature flag definitions for local evaluation. Setting next polling interval to ${this.getPollingInterval()}ms. Are you sure you're using the correct personal and Project API key pair? More information: https://posthog.com/docs/api/overview`);case 429:throw this.beginBackoff(),new yg(`You are being rate limited. Setting next polling interval to ${this.getPollingInterval()}ms. More information: https://posthog.com/docs/api#rate-limiting`);case 200:{let X=await Z.json()??{};if(!("flags"in X))return void this.onError?.(Error(`Invalid response when getting feature flags: ${JSON.stringify(X)}`));this.flagsEtag=Z.headers?.get("ETag")??void 0;let Q={flags:X.flags??[],groupTypeMapping:X.group_type_mapping||{},cohorts:X.cohorts||{}};if(this.updateFlagState(Q),this.flagDefinitionsLoadedAt=Date.now(),this.clearBackoff(),this.cacheProvider&&$)try{await this.cacheProvider.onFlagDefinitionsReceived(Q)}catch(Y){this.onError?.(Error(`Failed to store in cache: ${Y}`))}this.onLoad?.(this.featureFlags.length),this.warnAboutExperienceContinuityFlags(Q.flags);break}default:return}}catch($){if($ instanceof yg)this.onError?.($)}}getPersonalApiKeyRequestOptions($="GET",Z){let X={...this.customHeaders,"Content-Type":"application/json",Authorization:`Bearer ${this.personalApiKey}`};if(Z)X["If-None-Match"]=Z;return{method:$,headers:X}}_requestFeatureFlagDefinitions(){let $=`${this.host}/flags/definitions?token=${this.projectApiKey}&send_cohorts`,Z=this.getPersonalApiKeyRequestOptions("GET",this.flagsEtag),X=null;if(this.timeout&&typeof this.timeout=="number"){let Q=new AbortController;X=UN(()=>{Q.abort()},this.timeout),Z.signal=Q.signal}try{let Q=this.fetch;return Q($,Z)}finally{clearTimeout(X)}}async stopPoller($=30000){if(clearTimeout(this.poller),this.cacheProvider)try{let Z=this.cacheProvider.shutdown();if(Z instanceof Promise)await Promise.race([Z,new Promise((X,Q)=>setTimeout(()=>Q(Error(`Cache shutdown timeout after ${$}ms`)),$))])}catch(Z){this.onError?.(Error(`Error during cache shutdown: ${Z}`))}}}async function Y38($,Z,X=""){let Q=await X38(`${$}.${Z}${X}`);return parseInt(Q.slice(0,15),16)/TN4}function K38($,Z,X){let{key:Q,value:Y}=$,G=$.operator||"exact";if(Q in Z){if(G==="is_not_set")throw new f4("Operator is_not_set is not supported")}else throw new f4(`Property ${Q} not found in propertyValues`);let J=Z[Q];if(J==null&&!RN4.includes(G)){if(X)X(`Property ${Q} cannot have a value of null/undefined with the ${G} operator`);return!1}function K(H,U){if(Array.isArray(H))return H.map((N)=>String(N).toLowerCase()).includes(String(U).toLowerCase());return String(H).toLowerCase()===String(U).toLowerCase()}function W(H,U,N){if(N==="gt")return H>U;if(N==="gte")return H>=U;if(N==="lt")return H<U;if(N==="lte")return H<=U;throw Error(`Invalid operator: ${N}`)}switch(G){case"exact":return K(Y,J);case"is_not":return!K(Y,J);case"is_set":return Q in Z;case"icontains":return String(J).toLowerCase().includes(String(Y).toLowerCase());case"not_icontains":return!String(J).toLowerCase().includes(String(Y).toLowerCase());case"regex":return G38(String(Y))&&String(J).match(String(Y))!==null;case"not_regex":return G38(String(Y))&&String(J).match(String(Y))===null;case"gt":case"gte":case"lt":case"lte":{let H=typeof Y=="number"?Y:null;if(typeof Y=="string")try{H=parseFloat(Y)}catch(U){}if(H==null||J==null)return W(String(J),String(Y),G);if(typeof J=="string")return W(J,String(Y),G);return W(J,H,G)}case"is_date_after":case"is_date_before":{if(typeof Y=="boolean")throw new f4("Date operations cannot be performed on boolean values");let H=kN4(String(Y));if(H==null)H=J38(Y);if(H==null)throw new f4(`Invalid date: ${Y}`);let U=J38(J);if(["is_date_before"].includes(G))return U<H;return U>H}case"semver_eq":return D3(T7(String(J)),T7(String(Y)))===0;case"semver_neq":return D3(T7(String(J)),T7(String(Y)))!==0;case"semver_gt":return D3(T7(String(J)),T7(String(Y)))>0;case"semver_gte":return D3(T7(String(J)),T7(String(Y)))>=0;case"semver_lt":return D3(T7(String(J)),T7(String(Y)))<0;case"semver_lte":return D3(T7(String(J)),T7(String(Y)))<=0;case"semver_tilde":{let H=T7(String(J)),{lower:U,upper:N}=qN4(String(Y));return D3(H,U)>=0&&D3(H,N)<0}case"semver_caret":{let H=T7(String(J)),{lower:U,upper:N}=MN4(String(Y));return D3(H,U)>=0&&D3(H,N)<0}case"semver_wildcard":{let H=T7(String(J)),{lower:U,upper:N}=VN4(String(Y));return D3(H,U)>=0&&D3(H,N)<0}default:throw new f4(`Unknown operator: ${G}`)}}function IN4($,Z){if(!($ in Z))throw new nW(`cohort ${$} not found in local cohorts - likely a static cohort that requires server evaluation`)}function W38($,Z,X,Q=!1){let Y=String($.value);IN4(Y,X);let G=X[Y];return H38(G,Z,X,Q)}function H38($,Z,X,Q=!1){if(!$)return!0;let{type:Y,values:G}=$;if(!G||G.length===0)return!0;let J=!1;if("values"in G[0]){for(let K of G)try{let W=H38(K,Z,X,Q);if(Y==="AND"){if(!W)return!1}else if(W)return!0}catch(W){if(W instanceof nW)throw W;if(W instanceof f4){if(Q)console.debug(`Failed to compute property ${K} locally: ${W}`);J=!0}else throw W}if(J)throw new f4("Can't match cohort without a given cohort property value");return Y==="AND"}for(let K of G)try{let W;if(K.type==="cohort")W=W38(K,Z,X,Q);else if(K.type==="flag"){if(Q)console.warn(`[FEATURE FLAGS] Flag dependency filters are not supported in local evaluation. Skipping condition with dependency on flag '${K.key||"unknown"}'`);continue}else W=K38(K,Z);let H=K.negation||!1;if(Y==="AND"){if(!W&&!H)return!1;if(W&&H)return!1}else{if(W&&!H)return!0;if(!W&&H)return!0}}catch(W){if(W instanceof nW)throw W;if(W instanceof f4){if(Q)console.debug(`Failed to compute property ${K} locally: ${W}`);J=!0}else throw W}if(J)throw new f4("can't match cohort without a given cohort property value");return Y==="AND"}function G38($){try{return new RegExp($),!0}catch(Z){return!1}}function T7($){let X=String($).trim().replace(/^[vV]/,"").split("-")[0].split("+")[0];if(!X||X.startsWith("."))throw new f4(`Invalid semver: ${$}`);let Q=X.split("."),Y=(W)=>{if(W===void 0||W==="")return 0;if(!/^\d+$/.test(W))throw new f4(`Invalid semver: ${$}`);return parseInt(W,10)},G=Y(Q[0]),J=Y(Q[1]),K=Y(Q[2]);return[G,J,K]}function D3($,Z){for(let X=0;X<3;X++){if($[X]<Z[X])return-1;if($[X]>Z[X])return 1}return 0}function qN4($){let Z=T7($),X=[Z[0],Z[1],Z[2]],Q=[Z[0],Z[1]+1,0];return{lower:X,upper:Q}}function MN4($){let Z=T7($),[X,Q,Y]=Z,G=[X,Q,Y],J;return J=X>0?[X+1,0,0]:Q>0?[0,Q+1,0]:[0,0,Y+1],{lower:G,upper:J}}function VN4($){let X=String($).trim().replace(/^[vV]/,"").replace(/\.\*$/,"").replace(/\*$/,"");if(!X)throw new f4(`Invalid wildcard semver: ${$}`);let Q=X.split("."),Y=parseInt(Q[0],10);if(isNaN(Y))throw new f4(`Invalid wildcard semver: ${$}`);let G,J;if(Q.length===1)G=[Y,0,0],J=[Y+1,0,0];else{let K=parseInt(Q[1],10);if(isNaN(K))throw new f4(`Invalid wildcard semver: ${$}`);G=[Y,K,0],J=[Y,K+1,0]}return{lower:G,upper:J}}function J38($){if($ instanceof Date)return $;if(typeof $=="string"||typeof $=="number"){let Z=new Date($);if(!isNaN(Z.valueOf()))return Z;throw new f4(`${$} is in an invalid date format`)}throw new f4(`The date provided ${$} must be a string, number, or date object`)}function kN4($){let Z=/^-?(?<number>[0-9]+)(?<interval>[a-z])$/,X=$.match(Z),Q=new Date(new Date().toISOString());if(!X)return null;{if(!X.groups)return null;let Y=parseInt(X.groups.number);if(Y>=1e4)return null;let G=X.groups.interval;if(G=="h")Q.setUTCHours(Q.getUTCHours()-Y);else if(G=="d")Q.setUTCDate(Q.getUTCDate()-Y);else if(G=="w")Q.setUTCDate(Q.getUTCDate()-7*Y);else if(G=="m")Q.setUTCMonth(Q.getUTCMonth()-Y);else{if(G!="y")return null;Q.setUTCFullYear(Q.getUTCFullYear()-Y)}return Q}}var AN4=60000,TN4=1152921504606847000,RN4,yg,f4,nW;var U38=O(()=>{Ez();Q38();RN4=["is_not"];yg=class yg extends Error{constructor($){super();Error.captureStackTrace(this,this.constructor),this.name="ClientError",this.message=$,Object.setPrototypeOf(this,yg.prototype)}};f4=class f4 extends Error{constructor($){super($);this.name=this.constructor.name,Error.captureStackTrace(this,this.constructor),Object.setPrototypeOf(this,f4.prototype)}};nW=class nW extends Error{constructor($){super($);this.name=this.constructor.name,Error.captureStackTrace(this,this.constructor),Object.setPrototypeOf(this,nW.prototype)}}});class fs0{getProperty($){return this._memoryStorage[$]}setProperty($,Z){this._memoryStorage[$]=Z!==null?Z:void 0}constructor(){this._memoryStorage={}}}var N38=()=>{};function fN4($){return typeof $=="string"?$.trim():""}function bN4($){return(typeof $=="string"?$.trim():"")||void 0}function yN4($){return(typeof $=="string"?$.trim():"")||xN4}var SN4=100,F38=30000,CN4=50000,_N4=50,vN4=500,xN4="https://us.i.posthog.com",bs0;var w38=O(()=>{Z38();Ez();vs0();U38();xY0();N38();bs0=class bs0 extends MY0{constructor($,Z={}){let X=fN4($),Q={...Z,host:yN4(Z.host),personalApiKey:bN4(Z.personalApiKey)};if(super(X,Q),this._memoryStorage=new fs0,this.options=Q,this.context=this.initializeContext(),this.options.featureFlagsPollingInterval=typeof Q.featureFlagsPollingInterval=="number"?Math.max(Q.featureFlagsPollingInterval,SN4):F38,typeof Q.waitUntilDebounceMs=="number")this.options.waitUntilDebounceMs=Math.max(Q.waitUntilDebounceMs,0);if(typeof Q.waitUntilMaxWaitMs=="number")this.options.waitUntilMaxWaitMs=Math.max(Q.waitUntilMaxWaitMs,0);if(Q.personalApiKey){if(Q.personalApiKey.includes("phc_"))throw Error('Your Personal API key is invalid. These keys are prefixed with "phx_" and can be created in PostHog project settings.');if(Q.enableLocalEvaluation!==!1)this.featureFlagsPoller=new xs0({pollingInterval:this.options.featureFlagsPollingInterval,personalApiKey:Q.personalApiKey,projectApiKey:X,timeout:Q.requestTimeout??1e4,host:this.host,fetch:Q.fetch,onError:(G)=>{this._events.emit("error",G)},onLoad:(G)=>{this._events.emit("localEvaluationFlagsLoaded",G)},customHeaders:this.getCustomHeaders(),cacheProvider:Q.flagDefinitionCacheProvider,strictLocalEvaluation:Q.strictLocalEvaluation})}this.errorTracking=new L3(this,Q,this._logger),this.distinctIdHasSentFlagCalls={},this.maxCacheSize=Q.maxCacheSize||CN4}enqueue($,Z,X){super.enqueue($,Z,X),this.scheduleDebouncedFlush()}async flush(){let $=super.flush(),Z=this.options.waitUntil;if(Z&&!this._waitUntilCycle)try{Z($.catch(()=>{}))}catch{}return $}scheduleDebouncedFlush(){let $=this.options.waitUntil;if(!$)return;if(this.disabled||this.optedOut)return;if(!this._waitUntilCycle){let G,J=new Promise((K)=>{G=K});try{$(J)}catch{return}this._waitUntilCycle={resolve:G,startedAt:Date.now(),timer:void 0}}let Z=Date.now()-this._waitUntilCycle.startedAt,X=this.options.waitUntilMaxWaitMs??vN4,Q=Z>=X;if(this._waitUntilCycle.timer!==void 0)clearTimeout(this._waitUntilCycle.timer);if(Q)return void this.resolveWaitUntilFlush();let Y=this.options.waitUntilDebounceMs??_N4;this._waitUntilCycle.timer=UN(()=>{this.resolveWaitUntilFlush()},Y)}_consumeWaitUntilCycle(){let $=this._waitUntilCycle;if($)clearTimeout($.timer),this._waitUntilCycle=void 0;return $?.resolve}async resolveWaitUntilFlush(){let $=this._consumeWaitUntilCycle();try{await super.flush()}catch{}finally{$?.()}}getPersistedProperty($){return this._memoryStorage.getProperty($)}setPersistedProperty($,Z){return this._memoryStorage.setProperty($,Z)}fetch($,Z){return this.options.fetch?this.options.fetch($,Z):fetch($,Z)}getLibraryVersion(){return $38}getCustomUserAgent(){return`${this.getLibraryId()}/${this.getLibraryVersion()}`}enable(){return super.optIn()}disable(){return super.optOut()}debug($=!0){super.debug($),this.featureFlagsPoller?.debug($)}capture($){if(typeof $=="string")this._logger.warn("Called capture() with a string as the first argument when an object was expected.");if($.event==="$exception"&&!$._originatedFromCaptureException)this._logger.warn("Using `posthog.capture('$exception')` is unreliable because it does not attach required metadata. Use `posthog.captureException(error)` instead, which attaches required metadata automatically.");this.addPendingPromise(this.prepareEventMessage($).then(({distinctId:Z,event:X,properties:Q,options:Y})=>super.captureStateless(Z,X,Q,{timestamp:Y.timestamp,disableGeoip:Y.disableGeoip,uuid:Y.uuid})).catch((Z)=>{if(Z)console.error(Z)}))}async captureImmediate($){if(typeof $=="string")this._logger.warn("Called captureImmediate() with a string as the first argument when an object was expected.");if($.event==="$exception"&&!$._originatedFromCaptureException)this._logger.warn("Capturing a `$exception` event via `posthog.captureImmediate('$exception')` is unreliable because it does not attach required metadata. Use `posthog.captureExceptionImmediate(error)` instead, which attaches this metadata by default.");return this.addPendingPromise(this.prepareEventMessage($).then(({distinctId:Z,event:X,properties:Q,options:Y})=>super.captureStatelessImmediate(Z,X,Q,{timestamp:Y.timestamp,disableGeoip:Y.disableGeoip,uuid:Y.uuid})).catch((Z)=>{if(Z)console.error(Z)}))}identify({distinctId:$,properties:Z={},disableGeoip:X}){let{$set:Q,$set_once:Y,$anon_distinct_id:G,...J}=Z,H={$set:Q||J,$set_once:Y||{},$anon_distinct_id:G??void 0};super.identifyStateless($,H,{disableGeoip:X})}async identifyImmediate({distinctId:$,properties:Z={},disableGeoip:X}){let{$set:Q,$set_once:Y,$anon_distinct_id:G,...J}=Z,H={$set:Q||J,$set_once:Y||{},$anon_distinct_id:G??void 0};super.identifyStatelessImmediate($,H,{disableGeoip:X})}alias($){super.aliasStateless($.alias,$.distinctId,void 0,{disableGeoip:$.disableGeoip})}async aliasImmediate($){await super.aliasStatelessImmediate($.alias,$.distinctId,void 0,{disableGeoip:$.disableGeoip})}isLocalEvaluationReady(){return this.featureFlagsPoller?.isLocalEvaluationReady()??!1}async waitForLocalEvaluationReady($=F38){if(this.isLocalEvaluationReady())return!0;if(this.featureFlagsPoller===void 0)return!1;return new Promise((Z)=>{let X=setTimeout(()=>{Q(),Z(!1)},$),Q=this._events.on("localEvaluationFlagsLoaded",(Y)=>{clearTimeout(X),Q(),Z(Y>0)})})}_resolveDistinctId($,Z){if(typeof $=="string")return{distinctId:$,options:Z};return{distinctId:this.context?.get()?.distinctId,options:$}}async _getFeatureFlagResult($,Z,X={},Q){let Y=X.sendFeatureFlagEvents??!0;if(this._flagOverrides!==void 0&&$ in this._flagOverrides){let P=this._flagOverrides[$];if(P===void 0)return;let I=this._payloadOverrides?.[$];return{key:$,enabled:P!==!1,variant:typeof P=="string"?P:void 0,payload:I}}let{groups:G,disableGeoip:J}=X,{onlyEvaluateLocally:K,personProperties:W,groupProperties:H}=X,U=this.addLocalPersonAndGroupProperties(Z,G,W,H);W=U.allPersonProperties,H=U.allGroupProperties;let N=this.createFeatureFlagEvaluationContext(Z,G,W,H);if(K==null)K=this.options.strictLocalEvaluation??!1;let F,w=!1,B,L,D,E,z,j;if(this.featureFlagsPoller!==void 0){await this.featureFlagsPoller?.loadFeatureFlags();let P=this.featureFlagsPoller?.featureFlagsByKey[$];if(P)try{let I=await this.featureFlagsPoller?.computeFlagAndPayloadLocally(P,N,{matchValue:Q});if(I){w=!0;let V=I.value;E=P.id,j="Evaluated locally",F={key:$,enabled:V!==!1,variant:typeof V=="string"?V:void 0,payload:I.payload??void 0}}}catch(I){if(I instanceof nW||I instanceof f4)this._logger?.info(`${I.name} when computing flag locally: ${$}: ${I.message}`);else throw I}}if(!w&&!K){let P=await super.getFeatureFlagDetailsStateless(N.distinctId,N.groups,N.personProperties,N.groupProperties,J,[$]);if(P===void 0)D=Lt.UNKNOWN_ERROR;else{B=P.requestId,L=P.evaluatedAt;let I=[];if(P.errorsWhileComputingFlags)I.push(Lt.ERRORS_WHILE_COMPUTING);if(P.quotaLimited?.includes("feature_flags"))I.push(Lt.QUOTA_LIMITED);let V=P.flags[$];if(V===void 0)I.push(Lt.FLAG_MISSING);else{E=V.metadata?.id,z=V.metadata?.version,j=V.reason?.description??V.reason?.code;let M;if(V.metadata?.payload!==void 0)try{M=JSON.parse(V.metadata.payload)}catch{M=V.metadata.payload}F={key:$,enabled:V.enabled,variant:V.variant,payload:M}}if(I.length>0)D=I.join(",")}}if(Y){let P=F===void 0?void 0:F.enabled===!1?!1:F.variant??!0,I=`${$}_${P}`;if(!(Z in this.distinctIdHasSentFlagCalls)||!this.distinctIdHasSentFlagCalls[Z].includes(I)){if(Object.keys(this.distinctIdHasSentFlagCalls).length>=this.maxCacheSize)this.distinctIdHasSentFlagCalls={};if(Array.isArray(this.distinctIdHasSentFlagCalls[Z]))this.distinctIdHasSentFlagCalls[Z].push(I);else this.distinctIdHasSentFlagCalls[Z]=[I];let V={$feature_flag:$,$feature_flag_response:P,$feature_flag_id:E,$feature_flag_version:z,$feature_flag_reason:j,locally_evaluated:w,[`$feature/${$}`]:P,$feature_flag_request_id:B,$feature_flag_evaluated_at:w?Date.now():L};if(w&&this.featureFlagsPoller){let M=this.featureFlagsPoller.getFlagDefinitionsLoadedAt();if(M!==void 0)V.$feature_flag_definitions_loaded_at=M}if(D)V.$feature_flag_error=D;this.capture({distinctId:Z,event:"$feature_flag_called",properties:V,groups:G,disableGeoip:J})}}if(F!==void 0&&this._payloadOverrides!==void 0&&$ in this._payloadOverrides)F={...F,payload:this._payloadOverrides[$]};return F}async getFeatureFlag($,Z,X){let Q=await this._getFeatureFlagResult($,Z,{...X,sendFeatureFlagEvents:X?.sendFeatureFlagEvents??this.options.sendFeatureFlagEvent??!0});if(Q===void 0)return;if(Q.enabled===!1)return!1;return Q.variant??!0}async getFeatureFlagPayload($,Z,X,Q){if(this._payloadOverrides!==void 0&&$ in this._payloadOverrides)return this._payloadOverrides[$];let Y=await this._getFeatureFlagResult($,Z,{...Q,sendFeatureFlagEvents:!1},X);if(Y===void 0)return;return Y.payload??null}async getFeatureFlagResult($,Z,X){let{distinctId:Q,options:Y}=this._resolveDistinctId(Z,X);if(!Q)return void this._logger.warn("[PostHog] distinctId is required \u2014 pass it explicitly or use withContext()");return this._getFeatureFlagResult($,Q,{...Y,sendFeatureFlagEvents:Y?.sendFeatureFlagEvents??this.options.sendFeatureFlagEvent??!0})}async getRemoteConfigPayload($){if(!this.options.personalApiKey)throw Error("Personal API key is required for remote config payload decryption");let Z=await this._requestRemoteConfigPayload($);if(!Z)return;let X=await Z.json();if(typeof X=="string")try{return JSON.parse(X)}catch(Q){}return X}async isFeatureEnabled($,Z,X){let Q=await this.getFeatureFlag($,Z,X);if(Q===void 0)return;return!!Q||!1}async getAllFlags($,Z){let{distinctId:X,options:Q}=this._resolveDistinctId($,Z);if(!X)return this._logger.warn("[PostHog] distinctId is required to get feature flags \u2014 pass it explicitly or use withContext()"),{};return(await this.getAllFlagsAndPayloads(X,Q)).featureFlags||{}}async getAllFlagsAndPayloads($,Z){let{distinctId:X,options:Q}=this._resolveDistinctId($,Z);if(!X)return this._logger.warn("[PostHog] distinctId is required to get feature flags and payloads \u2014 pass it explicitly or use withContext()"),{featureFlags:{},featureFlagPayloads:{}};let{groups:Y,disableGeoip:G,flagKeys:J}=Q||{},{onlyEvaluateLocally:K,personProperties:W,groupProperties:H}=Q||{},U=this.addLocalPersonAndGroupProperties(X,Y,W,H);W=U.allPersonProperties,H=U.allGroupProperties;let N=this.createFeatureFlagEvaluationContext(X,Y,W,H);if(K==null)K=this.options.strictLocalEvaluation??!1;let F=await this.featureFlagsPoller?.getAllFlagsAndPayloads(N,J),w={},B={},L=!0;if(F)w=F.response,B=F.payloads,L=F.fallbackToFlags;if(L&&!K){let D=await super.getFeatureFlagsAndPayloadsStateless(N.distinctId,N.groups,N.personProperties,N.groupProperties,G,J);w={...w,...D.flags||{}},B={...B,...D.payloads||{}}}if(this._flagOverrides!==void 0)w={...w,...this._flagOverrides};if(this._payloadOverrides!==void 0)B={...B,...this._payloadOverrides};return{featureFlags:w,featureFlagPayloads:B}}groupIdentify({groupType:$,groupKey:Z,properties:X,distinctId:Q,disableGeoip:Y}){super.groupIdentifyStateless($,Z,X,{disableGeoip:Y},Q)}async reloadFeatureFlags(){await this.featureFlagsPoller?.loadFeatureFlags(!0)}overrideFeatureFlags($){let Z=(X)=>Object.fromEntries(X.map((Q)=>[Q,!0]));if($===!1){this._flagOverrides=void 0,this._payloadOverrides=void 0;return}if(Array.isArray($)){this._flagOverrides=Z($);return}if(this._isFeatureFlagOverrideOptions($)){if("flags"in $){if($.flags===!1)this._flagOverrides=void 0;else if(Array.isArray($.flags))this._flagOverrides=Z($.flags);else if($.flags!==void 0)this._flagOverrides={...$.flags}}if("payloads"in $){if($.payloads===!1)this._payloadOverrides=void 0;else if($.payloads!==void 0)this._payloadOverrides={...$.payloads}}return}this._flagOverrides={...$}}_isFeatureFlagOverrideOptions($){if(typeof $!="object"||$===null||Array.isArray($))return!1;let Z=$;if("flags"in Z){let X=Z.flags;if(X===!1||Array.isArray(X)||typeof X=="object"&&X!==null)return!0}if("payloads"in Z){let X=Z.payloads;if(X===!1||typeof X=="object"&&X!==null)return!0}return!1}withContext($,Z,X){if(!this.context)return Z();return this.context.run($,Z,X)}getContext(){return this.context?.get()}enterContext($,Z){this.context?.enter($,Z)}async _shutdown($){let Z=this._consumeWaitUntilCycle();await this.featureFlagsPoller?.stopPoller($),this.errorTracking.shutdown();try{return await super._shutdown($)}finally{Z?.()}}async _requestRemoteConfigPayload($){if(!this.options.personalApiKey)return;let Z=`${this.host}/api/projects/@current/feature_flags/${$}/remote_config?token=${encodeURIComponent(this.apiKey)}`,X={method:"GET",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",Authorization:`Bearer ${this.options.personalApiKey}`}},Q=null;if(this.options.requestTimeout&&typeof this.options.requestTimeout=="number"){let Y=new AbortController;Q=UN(()=>{Y.abort()},this.options.requestTimeout),X.signal=Y.signal}try{return await this.fetch(Z,X)}catch(Y){this._events.emit("error",Y);return}finally{if(Q)clearTimeout(Q)}}extractPropertiesFromEvent($,Z){if(!$)return{personProperties:{},groupProperties:{}};let X={},Q={};for(let[Y,G]of Object.entries($))if(IY8(G)&&Z&&Y in Z){let J={};for(let[K,W]of Object.entries(G))J[String(K)]=String(W);Q[String(Y)]=J}else X[String(Y)]=String(G);return{personProperties:X,groupProperties:Q}}async getFeatureFlagsForEvent($,Z,X,Q){let Y=Q?.personProperties||{},G=Q?.groupProperties||{},J=Q?.flagKeys;if(Q?.onlyEvaluateLocally??this.options.strictLocalEvaluation??!1)if(!((this.featureFlagsPoller?.featureFlags?.length||0)>0))return{};else{let W={};for(let[H,U]of Object.entries(Z||{}))W[H]=String(U);return await this.getAllFlags($,{groups:W,personProperties:Y,groupProperties:G,disableGeoip:X,onlyEvaluateLocally:!0,flagKeys:J})}if((this.featureFlagsPoller?.featureFlags?.length||0)>0){let W={};for(let[H,U]of Object.entries(Z||{}))W[H]=String(U);return await this.getAllFlags($,{groups:W,personProperties:Y,groupProperties:G,disableGeoip:X,onlyEvaluateLocally:!0,flagKeys:J})}return(await super.getFeatureFlagsStateless($,Z,Y,G,X)).flags}addLocalPersonAndGroupProperties($,Z,X,Q){let Y={distinct_id:$,...X||{}},G={};if(Z)for(let J of Object.keys(Z))G[J]={$group_key:Z[J],...Q?.[J]||{}};return{allPersonProperties:Y,allGroupProperties:G}}createFeatureFlagEvaluationContext($,Z,X,Q){return{distinctId:$,groups:Z||{},personProperties:X||{},groupProperties:Q||{},evaluationCache:{}}}captureException($,Z,X,Q){if(!L3.isPreviouslyCapturedError($)){let Y=Error("PostHog syntheticException");this.addPendingPromise(L3.buildEventMessage($,{syntheticException:Y},Z,X).then((G)=>this.capture({...G,uuid:Q})))}}async captureExceptionImmediate($,Z,X){if(!L3.isPreviouslyCapturedError($)){let Q=Error("PostHog syntheticException");return this.addPendingPromise(L3.buildEventMessage($,{syntheticException:Q},Z,X).then((Y)=>this.captureImmediate(Y)))}}async prepareEventMessage($){let{distinctId:Z,event:X,properties:Q,groups:Y,sendFeatureFlags:G,timestamp:J,disableGeoip:K,uuid:W}=$,H=this.context?.get(),U=Z||H?.distinctId,N={...this.props,...H?.properties||{},...Q||{}};if(!U)U=yB(),N.$process_person_profile=!1;if(H?.sessionId&&!N.$session_id)N.$session_id=H.sessionId;let F=this._runBeforeSend({distinctId:U,event:X,properties:N,groups:Y,sendFeatureFlags:G,timestamp:J,disableGeoip:K,uuid:W});if(!F)return Promise.reject(null);let w=await Promise.resolve().then(async()=>{if(G){let B=typeof G=="object"?G:void 0;return await this.getFeatureFlagsForEvent(F.distinctId,Y,K,B)}return F.event,{}}).then((B)=>{let L={};if(B)for(let[E,z]of Object.entries(B))L[`$feature/${E}`]=z;let D=Object.keys(B||{}).filter((E)=>B?.[E]!==!1).sort();if(D.length>0)L.$active_feature_flags=D;return L}).catch(()=>({})).then((B)=>{return{...B,...F.properties||{},$groups:F.groups||Y}});if(F.event==="$pageview"&&this.options.__preview_capture_bot_pageviews&&typeof w.$raw_user_agent=="string"){if(jY8(w.$raw_user_agent,this.options.custom_blocked_useragents||[]))F.event="$bot_pageview",w.$browser_type="bot"}return{distinctId:F.distinctId,event:F.event,properties:w,options:{timestamp:F.timestamp,disableGeoip:F.disableGeoip,uuid:F.uuid}}}_runBeforeSend($){let Z=this.options.before_send;if(!Z)return $;let X=Array.isArray(Z)?Z:[Z],Q=$;for(let Y of X){if(Q=Y(Q),!Q)return this._logger.info(`Event '${$.event}' was rejected in beforeSend function`),null;if(!Q.properties||Object.keys(Q.properties).length===0){let G=`Event '${Q.event}' has no properties after beforeSend function, this is likely an error.`;this._logger.warn(G)}}return Q}}});import{AsyncLocalStorage as gN4}from"async_hooks";class ys0{constructor(){this.storage=new gN4}get(){return this.storage.getStore()}run($,Z,X){return this.storage.run(this.resolve($,X),Z)}enter($,Z){this.storage.enterWith(this.resolve($,Z))}resolve($,Z){if(Z?.fresh===!0)return $;let X=this.get()||{};return{distinctId:$.distinctId??X.distinctId,sessionId:$.sessionId??X.sessionId,properties:{...X.properties||{},...$.properties||{}}}}}var B38=()=>{};function hN4($,{organization:Z,projectId:X,prefix:Q,severityAllowList:Y=["error"],sendExceptionsToPostHog:G=!0}={}){return(J)=>{if(!(Y==="*"||Y.includes(J.level)))return J;if(!J.tags)J.tags={};let W=J.tags[O38.POSTHOG_ID_TAG];if(W===void 0)return J;let H=$.options.host??"https://us.i.posthog.com",U=new URL(`/project/${$.apiKey}/person/${W}`,H).toString();J.tags["PostHog Person URL"]=U;let N=J.exception?.values||[],F=N.map((B)=>({...B,stacktrace:B.stacktrace?{...B.stacktrace,type:"raw",frames:(B.stacktrace.frames||[]).map((L)=>({...L,platform:"node:javascript"}))}:void 0})),w={$exception_message:N[0]?.value||J.message,$exception_type:N[0]?.type,$exception_level:J.level,$exception_list:F,$sentry_event_id:J.event_id,$sentry_exception:J.exception,$sentry_exception_message:N[0]?.value||J.message,$sentry_exception_type:N[0]?.type,$sentry_tags:J.tags};if(Z&&X)w.$sentry_url=(Q||"https://sentry.io/organizations/")+Z+"/issues/?project="+X+"&query="+J.event_id;if(G)$.capture({event:"$exception",distinctId:W,properties:w});return J}}var O38;var L38=O(()=>{O38=class O38{static#$=this.POSTHOG_ID_TAG="posthog_distinct_id";constructor($,Z,X,Q,Y){this.name="posthog-node",this.name="posthog-node",this.setupOnce=function(G,J){let K=J()?.getClient()?.getDsn()?.projectId;G(hN4($,{organization:Z,projectId:K,prefix:X,severityAllowList:Q,sendExceptionsToPostHog:Y??!0}))}}}});var D38=O(()=>{xY0()});var E38=O(()=>{Ez();L38();D38();vs0()});var gs0;var z38=O(()=>{LY8();tG8();rG8();xY0();w38();Ez();B38();E38();L3.errorPropertiesBuilder=new oQ.ErrorPropertiesBuilder([new oQ.EventCoercer,new oQ.ErrorCoercer,new oQ.ObjectCoercer,new oQ.StringCoercer,new oQ.PrimitiveCoercer],oQ.createStackParser("node:javascript",oQ.nodeStackLineParser),[OY8(),iG8,oG8()]);gs0=class gs0 extends bs0{getLibraryId(){return"posthog-node"}initializeContext(){return new ys0}}});import{createHash as uN4}from"crypto";function cN4(){return{capture:()=>{},identify:()=>{},captureException:()=>{},groupIdentify:()=>{},shutdown:async()=>{}}}function P38($){let Z=uN4("sha256").update($).digest();Z[6]=(Z[6]??0)&15|64,Z[8]=(Z[8]??0)&63|128;let X=Z.subarray(0,16).toString("hex");return`${X.slice(0,8)}-${X.slice(8,12)}-${X.slice(12,16)}-${X.slice(16,20)}-${X.slice(20,32)}`}function YG($){n1.capture({distinctId:$.userId??`org:${$.organizationId}`,event:$.event,groups:{organization:$.organizationId},...$.uuid?{uuid:$.uuid}:{},...$.timestamp?{timestamp:$.timestamp}:{},properties:{organization_id:$.organizationId,...$.userId?{}:{$process_person_profile:!1},...$.properties}})}var hs0,j38,n1;var b4=O(()=>{z38();hs0=process.env.POSTHOG_KEY,j38=process.env.POSTHOG_HOST;n1=hs0?new gs0(hs0,{...j38?{host:j38}:{},enableExceptionAutocapture:!0,flushAt:1,flushInterval:0}):cN4();if(hs0){let $=()=>{n1.shutdown().catch(()=>{})};process.on("SIGTERM",$),process.on("SIGINT",$)}});class us0{apiKey;constructor($){this.apiKey=$}async sendEmail({to:$,from:Z,subject:X,html:Q}){let Y=await fetch("https://api.resend.com/emails",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${this.apiKey}`},body:JSON.stringify({to:$,from:Z,subject:X,html:Q})});if(!Y.ok)throw Error(`Failed to send email: ${Y.statusText}`)}}class cs0{apiKey;constructor($){this.apiKey=$}async sendEmail({to:$,from:Z,subject:X,html:Q}){let Y=await fetch("https://api.sendgrid.com/v3/mail/send",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${this.apiKey}`},body:JSON.stringify({personalizations:[{to:[{email:$}]}],from:{email:Z},subject:X,content:[{type:"text/html",value:Q}]})});if(!Y.ok){let G=await Y.text();throw Error(`Failed to send email via SendGrid: ${Y.statusText} - ${G}`)}}}function NN($){switch($.provider){case"resend":{let Z=new us0($.config.apiKey);return({to:X,subject:Q,html:Y})=>Z.sendEmail({to:X,from:$.config.fromEmail,subject:Q,html:Y})}case"sendgrid":{let Z=new cs0($.config.apiKey);return({to:X,subject:Q,html:Y})=>Z.sendEmail({to:X,from:$.config.fromEmail,subject:Q,html:Y})}}}function FN($,Z){return $.find((X)=>X.id===Z)}var Dt=()=>{};function wN({preheader:$="",heading:Z,subheading:X,body:Q,footnote:Y}){return`<!DOCTYPE html>
|
|
1646
1646
|
<html lang="en">
|
|
1647
1647
|
<head>
|