decocms 4.510.1 → 4.511.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/assets/ActiveShapeUtils-mwv_2FNw.js +1 -0
- package/dist/client/assets/{AlertCircle-C_5mpJjv.js → AlertCircle-DtuasuLO.js} +1 -1
- package/dist/client/assets/AreaChart-DKO8O8iD.js +1 -0
- package/dist/client/assets/{ArrowLeft-DHCYX1pw.js → ArrowLeft-BFqCKFOZ.js} +1 -1
- package/dist/client/assets/{ArrowUp-DKJQ_RL3.js → ArrowUp-SYUTzwu8.js} +1 -1
- package/dist/client/assets/BarChart-aoGTWY1e.js +1 -0
- package/dist/client/assets/{Building02-IqnVnQlH.js → Building02-B0INzhOK.js} +1 -1
- package/dist/client/assets/CartesianChart-yJJthRct.js +1 -0
- package/dist/client/assets/{CategoricalChart-C66LowCp.js → CategoricalChart-aEjXOekE.js} +2 -2
- package/dist/client/assets/{CheckCircle-BXGWQUO5.js → CheckCircle-D0ZtvGmn.js} +1 -1
- package/dist/client/assets/{ChevronSelectorVertical-BgwBwcIG.js → ChevronSelectorVertical-DG_Q06kO.js} +1 -1
- package/dist/client/assets/{ChevronUp-eUjdLjUY.js → ChevronUp-D36ghv2t.js} +1 -1
- package/dist/client/assets/{Copy01-PY0JiShS.js → Copy01-1-iqu-6x.js} +1 -1
- package/dist/client/assets/{CreditCard01-DlWrANt0.js → CreditCard01-EDo1X5AA.js} +1 -1
- package/dist/client/assets/{DotsVertical-DMmDiPEd.js → DotsVertical-DM6Nc0dV.js} +1 -1
- package/dist/client/assets/{ErrorBarContext-B-z9mpHZ.js → ErrorBarContext-zFVi_tqb.js} +1 -1
- package/dist/client/assets/{Globe04-lPlXx7ae.js → Globe04-tj-aFoQD.js} +1 -1
- package/dist/client/assets/{Image01-CtwwwWt4.js → Image01-BzaAsspf.js} +1 -1
- package/dist/client/assets/{Key01-BCEBdiYn.js → Key01-ClworSEq.js} +1 -1
- package/dist/client/assets/{Link01-D2rKPRqH.js → Link01-C_3I56NR.js} +1 -1
- package/dist/client/assets/{LinkBroken01-DmYIuqU_.js → LinkBroken01-C4TgOrEQ.js} +1 -1
- package/dist/client/assets/{Monitor01-hYg_Be5C.js → Monitor01-D2jcfkyJ.js} +1 -1
- package/dist/client/assets/{Play-9-eWzuhH.js → Play-DNXVmQiT.js} +1 -1
- package/dist/client/assets/{Plus-G2W3_cG_.js → Plus-uAWge3eB.js} +1 -1
- package/dist/client/assets/ReferenceLine-D5eT8BVA.js +1 -0
- package/dist/client/assets/{SearchMd-B4Oqfysk.js → SearchMd-CSh6S25i.js} +1 -1
- package/dist/client/assets/Sector-DgpevW5C.js +28 -0
- package/dist/client/assets/{ShoppingBag01-DLea9vlO.js → ShoppingBag01-Dl4PlAcT.js} +1 -1
- package/dist/client/assets/{Sun-DdjCciIh.js → Sun-CjCYzESp.js} +1 -1
- package/dist/client/assets/{SwitchHorizontal01-DpCg42GD.js → SwitchHorizontal01-CvgScnq-.js} +1 -1
- package/dist/client/assets/{Tool01-Dqha0FcH.js → Tool01-DOvXbUMN.js} +1 -1
- package/dist/client/assets/{Trash01-BGnkoc5x.js → Trash01-B9Qm5BDb.js} +1 -1
- package/dist/client/assets/{Upload01-Ccm0_Yr0.js → Upload01-BUAYoGEA.js} +1 -1
- package/dist/client/assets/{User01-B08N507j.js → User01-Bz9s3Cms.js} +1 -1
- package/dist/client/assets/{UserSquare-CGjgJJpx.js → UserSquare-snlYTCQF.js} +1 -1
- package/dist/client/assets/{Users01-UYY73YZx.js → Users01-CB1Iep5-.js} +1 -1
- package/dist/client/assets/{XClose-BuC3W9yJ.js → XClose-CJyTVouT.js} +1 -1
- package/dist/client/assets/{ZoomOut-CGlQyhZZ.js → ZoomOut-DtGWKkcz.js} +1 -1
- package/dist/client/assets/{access-gate-DI1CHEOd.js → access-gate-CzqP49uU.js} +1 -1
- package/dist/client/assets/{add-connection-dialog-DZOB9TFC.js → add-connection-dialog-m-NKaBEt.js} +1 -1
- package/dist/client/assets/agent-analytics-BZpFr_yN.js +2 -0
- package/dist/client/assets/agent-app-DFil4Bv_.js +1 -0
- package/dist/client/assets/agent-assets-BOHo4n1Q.js +1 -0
- package/dist/client/assets/agent-automation-CMrgL2sm.js +20 -0
- package/dist/client/assets/agent-automations-Nn4cw633.js +1 -0
- package/dist/client/assets/agent-connect-sources-DQy0LrZ3.js +1 -0
- package/dist/client/assets/agent-deck-Bxo_Q-ei.js +1 -0
- package/dist/client/assets/agent-e2e-BCqDkAAh.js +1 -0
- package/dist/client/assets/agent-experiments-CauXSjj6.js +1 -0
- package/dist/client/assets/agent-file-D8aDDj-3.js +1 -0
- package/dist/client/assets/agent-hosting-Becjke89.js +1 -0
- package/dist/client/assets/agent-icon-D3PXiOcC.js +1 -0
- package/dist/client/assets/agent-library-DPqg6u_A.js +1 -0
- package/dist/client/assets/agent-library-file-DbWlEgCo.js +1 -0
- package/dist/client/assets/agent-monitor-BiV7Y5fT.js +1 -0
- package/dist/client/assets/agent-overview-w8tJTrW2.js +1 -0
- package/dist/client/assets/agent-releases-DibyxNP8.js +2 -0
- package/dist/client/assets/agent-settings-DZXnoVvz.js +1 -0
- package/dist/client/assets/{agent-site-editor-UEj9ymdW.js → agent-site-editor-Ch8hsGkV.js} +2 -2
- package/dist/client/assets/agent-site-editor-code-w-62beeu.js +2 -0
- package/dist/client/assets/agent-site-editor-content-FmZpFCN6.js +1 -0
- package/dist/client/assets/agent-site-editor-preview-DT1UPREe.js +1 -0
- package/dist/client/assets/agent-view-DT0g-b8T.js +1 -0
- package/dist/client/assets/{agent-view-guard-CIaDjkgO.js → agent-view-guard-DJzZhTXo.js} +1 -1
- package/dist/client/assets/{agents-list-Ipm949Gu.js → agents-list-CsxnQobw.js} +1 -1
- package/dist/client/assets/{ai-providers-CM6DAS1m.js → ai-providers-y5f2wWwF.js} +2 -2
- package/dist/client/assets/{alert-DlzPIsBG.js → alert-C3kKk-dL.js} +1 -1
- package/dist/client/assets/{alert-dialog-C78VlsS8.js → alert-dialog-CLddpsE0.js} +1 -1
- package/dist/client/assets/analytics-sections-D2oWLI_C.js +1 -0
- package/dist/client/assets/api-keys-BlYX4Voq.js +1 -0
- package/dist/client/assets/{api-keys-2xYpKoN4.js → api-keys-EnXXS_ac.js} +1 -1
- package/dist/client/assets/app-editor-CF9GVqxJ.js +1 -0
- package/dist/client/assets/{asset-utils-BLAfQTG9.js → asset-utils-Aj0AmEaW.js} +1 -1
- package/dist/client/assets/{auth-BflPQKZn.js → auth-JljWUhf4.js} +1 -1
- package/dist/client/assets/{auth-catchall-c1A8qI2L.js → auth-catchall-v-jB5eNi.js} +1 -1
- package/dist/client/assets/{auth-entry-BXhSNyRn.js → auth-entry-UyyVEUrs.js} +1 -1
- package/dist/client/assets/{auth-split-layout-CNxJzuB1.js → auth-split-layout-CMnjpufv.js} +1 -1
- package/dist/client/assets/{authenticate-and-persist-oauth-BzTDtnbZ.js → authenticate-and-persist-oauth-CFjCVa7x.js} +1 -1
- package/dist/client/assets/automation-list-row-C0OwIBYw.js +1 -0
- package/dist/client/assets/{automation-runs-DDwtI2d9.js → automation-runs-CkjINuyS.js} +1 -1
- package/dist/client/assets/{automations-BEqZF6wm.js → automations-B-DwQyrj.js} +1 -1
- package/dist/client/assets/{autosend-CRyjUv4T.js → autosend-P1G4Me3g.js} +1 -1
- package/dist/client/assets/{avatar-CyNf-6_F.js → avatar-C9lu-Y_y.js} +1 -1
- package/dist/client/assets/{badge-BcuZvLCv.js → badge-B6ke8DzO.js} +1 -1
- package/dist/client/assets/{block-document-hVh0X0QB.js → block-document-DfmmmU6v.js} +3 -3
- package/dist/client/assets/{blocks-preview-workspace-context-o15kYDJQ.js → blocks-preview-workspace-context-CjhNfj7F.js} +1 -1
- package/dist/client/assets/{blocks-tab-states-BKwCm9lP.js → blocks-tab-states-BvyAXDNR.js} +3 -3
- package/dist/client/assets/{blog-schema-qHemK5B8.js → blog-schema-DpPR8Wd7.js} +1 -1
- package/dist/client/assets/{board-analytics-78XasW_6.js → board-analytics-DjqX1ptj.js} +1 -1
- package/dist/client/assets/{buckets-BsJikmLt.js → buckets-CN4IL1fI.js} +1 -1
- package/dist/client/assets/{build-improve-prompt-doc-Buqt8O8s.js → build-improve-prompt-doc-X_0TQrgR.js} +1 -1
- package/dist/client/assets/{calendar-CtrIZhAO.js → calendar-jnImf3-F.js} +1 -1
- package/dist/client/assets/{capability-load-error-nzOkcmq4.js → capability-load-error-BLBe8Obk.js} +1 -1
- package/dist/client/assets/category-editor-C00-hmeq.js +1 -0
- package/dist/client/assets/{chart-CMTEHEw6.js → chart-CgMhzJYr.js} +2 -2
- package/dist/client/assets/chat-context-C2q8Xzrd.js +39 -0
- package/dist/client/assets/{chat-draft-Cm_sd3zU.js → chat-draft-lSZv86cr.js} +1 -1
- package/dist/client/assets/{checkbox-CxruOoUP.js → checkbox-DgTWMoNQ.js} +1 -1
- package/dist/client/assets/{choose-editor-Du7XHIuK.js → choose-editor-BSily-0d.js} +1 -1
- package/dist/client/assets/{cli-auth-success-DlriM1Po.js → cli-auth-success-DHZ_qbbK.js} +1 -1
- package/dist/client/assets/{client-icons-HhL2TKMQ.js → client-icons-B81ULCGT.js} +1 -1
- package/dist/client/assets/cms-settings-editor-D6AJ5L86.js +1 -0
- package/dist/client/assets/{collapsible-D-dODAa4.js → collapsible-Bno2lzu1.js} +1 -1
- package/dist/client/assets/collection-detail-D4nkfIMH.js +1 -0
- package/dist/client/assets/{collection-display-button-DS_TxyYM.js → collection-display-button-DVurHTHt.js} +1 -1
- package/dist/client/assets/{collection-search-BDIwJ9FM.js → collection-search-B1Rwoo5a.js} +1 -1
- package/dist/client/assets/{collection-table-wrapper-CbaN9l-0.js → collection-table-wrapper-DNpc0ooH.js} +1 -1
- package/dist/client/assets/{collection-tabs-Bl4lAJm9.js → collection-tabs-D1DeyrYv.js} +1 -1
- package/dist/client/assets/{column-rules-JwowfVQW.js → column-rules-1RsdUJU-.js} +1 -1
- package/dist/client/assets/{combobox-Dllz7re1.js → combobox-SRY8n3hS.js} +1 -1
- package/dist/client/assets/coming-soon-page-DSuyjZsy.js +1 -0
- package/dist/client/assets/{command-B-QWvhA_.js → command-DaCaELsT.js} +1 -1
- package/dist/client/assets/{companion-mcps-section-BjaHOfLs.js → companion-mcps-section-DOC7xMTc.js} +1 -1
- package/dist/client/assets/{config-1pQ5B4Tw.js → config-CuF5dSqc.js} +1 -1
- package/dist/client/assets/{connect-LpHRv3_b.js → connect-B9u1hpyT.js} +2 -2
- package/dist/client/assets/{connect-layout-B-fPcn_x.js → connect-layout-CMM8ifYM.js} +1 -1
- package/dist/client/assets/{connection-DOHxMDNz.js → connection-BwwtdGYY.js} +1 -1
- package/dist/client/assets/{connection-card-DS0hrjdI.js → connection-card-DkgQDzvl.js} +1 -1
- package/dist/client/assets/connection-detail-D0xBtKoa.js +1 -0
- package/dist/client/assets/{connection-form-helpers-CqklAfZ9.js → connection-form-helpers-Dz8qeNpg.js} +1 -1
- package/dist/client/assets/connections-Cl_dMG-8.js +1 -0
- package/dist/client/assets/{content-tab-DcT9_Y3z.js → content-tab-BURbscl-.js} +3 -3
- package/dist/client/assets/context-DeC8Ey1v.js +1 -0
- package/dist/client/assets/{context-menu-DbGA5HxE.js → context-menu-Z8VU03pb.js} +1 -1
- package/dist/client/assets/context-shell-BAsh_PAG.js +30 -0
- package/dist/client/assets/{core.esm-BwCr9_Tw.js → core.esm-DMFKsXUx.js} +1 -1
- package/dist/client/assets/{create-organization-dialog-DLJWbaLa.js → create-organization-dialog-B8ZgAETV.js} +1 -1
- package/dist/client/assets/daily-pulse-9-6Bzywz.js +1 -0
- package/dist/client/assets/discover-dG6m04Wy.js +1 -0
- package/dist/client/assets/{domain-settings-CM8l2WnT.js → domain-settings-BBeXoAin.js} +1 -1
- package/dist/client/assets/{drawer-Cq3BAxls.js → drawer-DfQYw24p.js} +1 -1
- package/dist/client/assets/{editor-NuI0Xn_R.js → editor-D8dmglIK.js} +1 -1
- package/dist/client/assets/{editor-classes-BgXbqk9Z.js → editor-classes-AdVYLXkc.js} +1 -1
- package/dist/client/assets/{empty-state-ISs8x_rx.js → empty-state-BbPv5uNQ.js} +1 -1
- package/dist/client/assets/{empty-state-CIJntdCH.js → empty-state-Cfb0wost.js} +1 -1
- package/dist/client/assets/{extract-connection-data-CoB451kP.js → extract-connection-data-ZLWd2Kp9.js} +1 -1
- package/dist/client/assets/{feature-gate-CtaGJnoP.js → feature-gate-DAq4MBCR.js} +1 -1
- package/dist/client/assets/{feature-paywall-CyONcQL6.js → feature-paywall-DqoNTxTC.js} +1 -1
- package/dist/client/assets/file-explorer-DVjhptju.js +2 -0
- package/dist/client/assets/{file-preview-DvnfEKCF.js → file-preview-D1XAB3QG.js} +1 -1
- package/dist/client/assets/{file-share-button-BA5tUQu2.js → file-share-button-D2yC0Y8a.js} +1 -1
- package/dist/client/assets/{file-type-icon-BL46MEKN.js → file-type-icon-T0ZLi0KO.js} +1 -1
- package/dist/client/assets/flat-project-BjRG4lVt.js +1 -0
- package/dist/client/assets/{folder-icon-4xXHa81i.js → folder-icon-Dp1y9XKP.js} +1 -1
- package/dist/client/assets/{form-Bp7LaVT9.js → form-GDF7KhWe.js} +1 -1
- package/dist/client/assets/{format-time-CAj8AQXM.js → format-time-Cq80KKvY.js} +1 -1
- package/dist/client/assets/{general-Bh6E3V3Q.js → general-CJrsNBBC.js} +1 -1
- package/dist/client/assets/home-B_9-AMte.js +1 -0
- package/dist/client/assets/{hosted-publish-feedback-N9HMDmsT.js → hosted-publish-feedback-3XN_JywG.js} +1 -1
- package/dist/client/assets/{icon-button-C9KrLn0e.js → icon-button-Cs5D8NvB.js} +1 -1
- package/dist/client/assets/{index-bEJ4L1lm.js → index-B4hqDMWY.js} +1 -1
- package/dist/client/assets/index-BBLPdjCE.js +1 -0
- package/dist/client/assets/{index-DJSBq_Lh.js → index-BORmJcP3.js} +1 -1
- package/dist/client/assets/index-BhA3t_Il.js +1 -0
- package/dist/client/assets/{index-CSYc5qME.js → index-Bv2yj57U.js} +1 -1
- package/dist/client/assets/{index-D7iroYkh.js → index-C9vVnzPQ.js} +14 -14
- package/dist/client/assets/{index-BWTgolHq.js → index-CPbmduA8.js} +35 -35
- package/dist/client/assets/{index-BlUNN3Lk.js → index-CRDwdyGl.js} +3 -3
- package/dist/client/assets/{index-DINB6wYL.js → index-CVhWiD-1.js} +2 -2
- package/dist/client/assets/index-Cda4Byiw.js +1 -0
- package/dist/client/assets/{index-YyLm63l8.js → index-CmKtrUDs.js} +1 -1
- package/dist/client/assets/{index-DB390CpI.js → index-CnTMrZ6H.js} +1 -1
- package/dist/client/assets/{index-C6JtWcSk.js → index-CzlgxELX.js} +1 -1
- package/dist/client/assets/index-DOrMqENP.js +4 -0
- package/dist/client/assets/{index-COOrzuhW.js → index-Dc33YQY0.js} +1 -1
- package/dist/client/assets/index-JiORW7MK.css +1 -0
- package/dist/client/assets/{index-BikxvQw0.js → index-rIVg2V0k.js} +1 -1
- package/dist/client/assets/{index-redirect-DM9K3xx_.js → index-redirect-DUMxPg9t.js} +1 -1
- package/dist/client/assets/{infiniteQueryObserver--9_f8LYR.js → infiniteQueryObserver-Cxi7L9ot.js} +1 -1
- package/dist/client/assets/infra-billing-BSREAJnB.js +1 -0
- package/dist/client/assets/{input-C35o3KBd.js → input-3IxnpkQB.js} +1 -1
- package/dist/client/assets/{input-Baf6YXd-.js → input-BWWBSWMZ.js} +4 -4
- package/dist/client/assets/{integration-icon-D-o_SFdv.js → integration-icon-CTeTGAEP.js} +1 -1
- package/dist/client/assets/{jira-icon-EokGbkDG.js → jira-icon-Ceirp_Vf.js} +1 -1
- package/dist/client/assets/{label-CmiFUMkC.js → label-DBthaley.js} +1 -1
- package/dist/client/assets/{layout-BufVtMTm.js → layout-DENbqSMD.js} +1 -1
- package/dist/client/assets/{legacy-agents-deep-C-X9UOFa.js → legacy-agents-deep-rfUK2WZv.js} +1 -1
- package/dist/client/assets/{legacy-main-redirect-BrjKHG_5.js → legacy-main-redirect-C2qoLS_-.js} +1 -1
- package/dist/client/assets/library-Cn3L9H-I.js +1 -0
- package/dist/client/assets/library-tab-CeLDWfOP.js +168 -0
- package/dist/client/assets/{login-ClW-PnuL.js → login-C0VXN3vm.js} +1 -1
- package/dist/client/assets/{markdown-x3uYFoCl.js → markdown-DEYGc24v.js} +1 -1
- package/dist/client/assets/match-site-slug-config-D3fUJ6vX.js +1 -0
- package/dist/client/assets/{mcp-app-renderer-8tc47xXg.js → mcp-app-renderer-CdXSQ5um.js} +1 -1
- package/dist/client/assets/{mcp-oauth-Cl83I81f.js → mcp-oauth-D0HIDgk0.js} +1 -1
- package/dist/client/assets/{mcp-oauth-CZg9EKL6.js → mcp-oauth-k6NAw0Ub.js} +1 -1
- package/dist/client/assets/{members-D3ALurU_.js → members-CVqCwj5f.js} +1 -1
- package/dist/client/assets/memory-CcGeGWHF.js +7 -0
- package/dist/client/assets/{mini-report-page-DB0BuC9H.js → mini-report-page-BPAZcaBj.js} +1 -1
- package/dist/client/assets/{mock-board-fodWPi_O.js → mock-board-Dc1E9hGc.js} +1 -1
- package/dist/client/assets/{monaco-editor-BuOntMxA.js → monaco-editor-NVjLW8Z7.js} +1 -1
- package/dist/client/assets/monitoring-Dkd5TrLP.js +1 -0
- package/dist/client/assets/monitoring-stats-row-BEPDzVh5.js +1 -0
- package/dist/client/assets/{multi-select-CSzkliWp.js → multi-select-BuQ3twUw.js} +1 -1
- package/dist/client/assets/{mustache-CzzEVjeM.js → mustache-B_aj_azb.js} +1 -1
- package/dist/client/assets/{new-project-dialog-CYT_10rE.js → new-project-dialog-OaqxveJn.js} +1 -1
- package/dist/client/assets/{oauth-callback-ClKC6YJz.js → oauth-callback-D-bz41RC.js} +1 -1
- package/dist/client/assets/{oauth-callback-ai-provider-DwrvoIJV.js → oauth-callback-ai-provider-nReh-xnQ.js} +1 -1
- package/dist/client/assets/{onboarding-xsUSMMdi.js → onboarding-D-jSN464.js} +1 -1
- package/dist/client/assets/openai-conversation-Ci049tt5.js +3 -0
- package/dist/client/assets/{optimistic-project-sidebar-views-D-nD1JgV.js → optimistic-project-sidebar-views-BKAlqzxT.js} +1 -1
- package/dist/client/assets/order-monitor-day--ohQi3gE.js +1 -0
- package/dist/client/assets/{organization-choice-NxknLolX.js → organization-choice-CjUXbtGe.js} +1 -1
- package/dist/client/assets/{orgs-C-epyXcl.js → orgs-DtrnJAw1.js} +1 -1
- package/dist/client/assets/{page-seo-form-C5K0Njid.js → page-seo-form-wzQECHi2.js} +1 -1
- package/dist/client/assets/{pair-tIjrf8XF.js → pair-CVodhGQi.js} +1 -1
- package/dist/client/assets/plan-O5S-elGn.js +1 -0
- package/dist/client/assets/{plan-ladder-zOFbRxYr.js → plan-ladder-DVGnZEOW.js} +1 -1
- package/dist/client/assets/{popover-BnVaucj1.js → popover-B_8XLqyZ.js} +1 -1
- package/dist/client/assets/post-calendar-DJVNjJr8.js +1 -0
- package/dist/client/assets/{post-editor-BsLPq9ID.js → post-editor-DZDjtbXP.js} +2 -2
- package/dist/client/assets/{preview-content-B9gKwcXg.js → preview-content-BM3-ZBSU.js} +1 -1
- package/dist/client/assets/{preview-dialog-BbTrjkeP.js → preview-dialog-CC7RAo1g.js} +1 -1
- package/dist/client/assets/{preview-panel-CHxFwJYx.js → preview-panel-dhadN98Y.js} +1 -1
- package/dist/client/assets/{preview-tab-BceXq1F5.js → preview-tab-PUNcBACq.js} +3 -3
- package/dist/client/assets/{product-picker-dialog-CMLuqSB-.js → product-picker-dialog-Cl3cTuzV.js} +1 -1
- package/dist/client/assets/{profile-CFGsczgl.js → profile-Cn1YyigQ.js} +1 -1
- package/dist/client/assets/project-app-view-CtFhMgto.js +1 -0
- package/dist/client/assets/project-apps-Dlom1kkk.js +1 -0
- package/dist/client/assets/project-feed-D4s8id8Q.js +1 -0
- package/dist/client/assets/{project-icon-BjvkvrtX.js → project-icon-Dqc3FhU8.js} +1 -1
- package/dist/client/assets/project-reports-1QQqzweH.js +1 -0
- package/dist/client/assets/project-tasks-D8BzkUei.js +1 -0
- package/dist/client/assets/{projects-1AAh_BlA.js → projects-Cjezaj0U.js} +1 -1
- package/dist/client/assets/{projects-empty-state-zI3ZCNwE.js → projects-empty-state-DHm8LCZE.js} +1 -1
- package/dist/client/assets/{prompts-_ITR86Tr.js → prompts-DmX2JzbX.js} +1 -1
- package/dist/client/assets/record-editor-6Vzt1URt.js +1 -0
- package/dist/client/assets/redirect-editor-B2epC375.js +1 -0
- package/dist/client/assets/reports-BvAHEHPI.js +1 -0
- package/dist/client/assets/{reports-D8tSZcp6.js → reports-D-L_fSli.js} +1 -1
- package/dist/client/assets/{reports-onboarding-BjY7GizY.js → reports-onboarding-DlOzTlpN.js} +1 -1
- package/dist/client/assets/reports-tab-Bow8oNoA.js +2 -0
- package/dist/client/assets/repositories-ChaO6Hfw.js +1 -0
- package/dist/client/assets/repositories-DM5z_5_6.js +1 -0
- package/dist/client/assets/{repository-binding-Cqryn7FJ.js → repository-binding-CNQhpskC.js} +1 -1
- package/dist/client/assets/{repository-import-picker-BmFpmoLq.js → repository-import-picker-AF8p3kVM.js} +1 -1
- package/dist/client/assets/{repository-picker-CPWce3gZ.js → repository-picker-QcYWbpFV.js} +1 -1
- package/dist/client/assets/{require-capability-BCZS-RSh.js → require-capability-DbJTIKMh.js} +1 -1
- package/dist/client/assets/{required-auth-layout-DsBgIeQB.js → required-auth-layout-2_g05NTA.js} +1 -1
- package/dist/client/assets/{reset-password-LBLcdJ66.js → reset-password-BCwdw6Kl.js} +1 -1
- package/dist/client/assets/{resizable-BPpFVX_b.js → resizable-D69BOGKq.js} +1 -1
- package/dist/client/assets/{resolve-tab-icon-BTTEWfwO.js → resolve-tab-icon-CUlNWKnV.js} +1 -1
- package/dist/client/assets/{review-settings-DpQNPKev.js → review-settings-BzhjGZ6W.js} +1 -1
- package/dist/client/assets/{roles-CklezK0_.js → roles-CjTJrN7e.js} +1 -1
- package/dist/client/assets/route-C15564gj.js +1 -0
- package/dist/client/assets/route-DDy05B4y.js +1 -0
- package/dist/client/assets/route-DuC_v8ID.js +1 -0
- package/dist/client/assets/{sandbox-lifecycle-context-DDIPcJfQ.js → sandbox-lifecycle-context-DDOjP1WQ.js} +1 -1
- package/dist/client/assets/{schema-DeSxsAzw.js → schema-AZdD9rpA.js} +1 -1
- package/dist/client/assets/{schema-B-qtNfuo.js → schema-CNm9IoGA.js} +1 -1
- package/dist/client/assets/{scroll-area-CKZ1rYUh.js → scroll-area-BlGr7b6I.js} +1 -1
- package/dist/client/assets/{search-input-yB471vEF.js → search-input-lMAz-4j_.js} +1 -1
- package/dist/client/assets/{search-toggle-vlqdKhgZ.js → search-toggle-FwRkQKFa.js} +1 -1
- package/dist/client/assets/{secret-ciphertext-D1Y2ncaV.js → secret-ciphertext-D5wBCSyp.js} +1 -1
- package/dist/client/assets/{secret-picker-B2fQMZP8.js → secret-picker-vnDe_RQu.js} +1 -1
- package/dist/client/assets/{secrets-B5tFkuGb.js → secrets-D2sc0L0u.js} +1 -1
- package/dist/client/assets/sections-Bm_wV70i.js +1 -0
- package/dist/client/assets/{sections-editor-OWiH9FAm.js → sections-editor-CABxgqBX.js} +2 -2
- package/dist/client/assets/{select-RYdFJcIt.js → select-CCHpsfFL.js} +1 -1
- package/dist/client/assets/{select-model-0SwiHcuC.js → select-model-O8Jn-r2H.js} +1 -1
- package/dist/client/assets/seo-editor-DcXVXpxs.js +1 -0
- package/dist/client/assets/{separator-BKWFQID9.js → separator-D-R0zZI4.js} +1 -1
- package/dist/client/assets/settings-tab-CmHoz9WV.js +1 -0
- package/dist/client/assets/{sheet-BYbOsi06.js → sheet-BuALHxIa.js} +1 -1
- package/dist/client/assets/shell-layout-a9HfPI7R.js +1 -0
- package/dist/client/assets/site-editor-BWVPE8cd.js +1 -0
- package/dist/client/assets/site-editor-toast-CInlYlum.js +1 -0
- package/dist/client/assets/skills-DD29WHfa.js +1 -0
- package/dist/client/assets/{slider-uZ4mVffl.js → slider-iRtu-smf.js} +1 -1
- package/dist/client/assets/{sortable.esm-3O1jIFmq.js → sortable.esm-C1c5FYmc.js} +1 -1
- package/dist/client/assets/{sso-DrReFzDa.js → sso-CXWd_Yo7.js} +1 -1
- package/dist/client/assets/{suggestion-I5ZwNhl_.js → suggestion-CC49ULUS.js} +1 -1
- package/dist/client/assets/{switch-fgRUjREt.js → switch-rDNRmZ0M.js} +1 -1
- package/dist/client/assets/{symbol-B2pDe2FQ.js → symbol-DGtdH9mf.js} +1 -1
- package/dist/client/assets/{synced-repos-D8bNraSV.js → synced-repos-DkHqVKs0.js} +1 -1
- package/dist/client/assets/{tab-icon-glyph-cpTUkhxS.js → tab-icon-glyph-Crx5IHnE.js} +1 -1
- package/dist/client/assets/{table-B9OEL7If.js → table-BkrN1ZSe.js} +1 -1
- package/dist/client/assets/{tabs-D9L3rug4.js → tabs-CAwhKbjd.js} +1 -1
- package/dist/client/assets/{task-board-Bjq5_jz3.js → task-board-DJFi0JXc.js} +1 -1
- package/dist/client/assets/{task-route-DZRvl21p.js → task-route-BfUEwhus.js} +1 -1
- package/dist/client/assets/{task-status-qNVoG3-9.js → task-status-ClS_ybJh.js} +1 -1
- package/dist/client/assets/taskboard-analytics-DZRpcr3V.js +1 -0
- package/dist/client/assets/tasks-APnV722h.js +1 -0
- package/dist/client/assets/{tasks-D4Py0tW9.js → tasks-CIRs6_Pe.js} +3 -3
- package/dist/client/assets/{textarea-Kr4aIi3A.js → textarea-BfUMZtIE.js} +1 -1
- package/dist/client/assets/thread-analytics-DV8tA3hf.js +1 -0
- package/dist/client/assets/{thread-intent-qJ1dqLJM.js → thread-intent-BOIQ3B53.js} +2 -2
- package/dist/client/assets/thread-route-DrcWuOm9.js +1 -0
- package/dist/client/assets/{thread-route-DC0mp3BO.js → thread-route-K6yJcJk5.js} +1 -1
- package/dist/client/assets/{thread-sheet-body-5bC5OZfg.js → thread-sheet-body-Cp7nZJGR.js} +1 -1
- package/dist/client/assets/time-range-picker-CoA0ndtk.js +1 -0
- package/dist/client/assets/{toggle-group-DnaF1PQV.js → toggle-group-DLT9jdhU.js} +1 -1
- package/dist/client/assets/{tool-namespace-DegzbfIi.js → tool-namespace-Myhapgv_.js} +1 -1
- package/dist/client/assets/{toolbar-icon-button-CjG7UFqX.js → toolbar-icon-button-Dmy4JfBj.js} +1 -1
- package/dist/client/assets/{tooltip-B0tBatFZ.js → tooltip-K3ljr4Cw.js} +1 -1
- package/dist/client/assets/{tooltipContext-B5ONSa-l.js → tooltipContext-CKpftZJ5.js} +1 -1
- package/dist/client/assets/{track-LRGDEOn5.js → track-BWBpVOcQ.js} +1 -1
- package/dist/client/assets/{types-A-yzlqDN.js → types-CpRdG9MN.js} +1 -1
- package/dist/client/assets/{url-slug-B7sbsR9H.js → url-slug-BogkV_jr.js} +1 -1
- package/dist/client/assets/{usage-stats-8eWtc14k.js → usage-stats-BgwDcuEm.js} +1 -1
- package/dist/client/assets/{use-ai-providers-BMOLf5Wc.js → use-ai-providers-Dcpvu19a.js} +1 -1
- package/dist/client/assets/{use-automations-5u7y3Hek.js → use-automations-CW0iNjGh.js} +1 -1
- package/dist/client/assets/{use-autosave-CvTS6VPC.js → use-autosave-CtFSvvsc.js} +1 -1
- package/dist/client/assets/use-chat-layout-state-CUQiISez.js +1 -0
- package/dist/client/assets/{use-clock-tick-BbJsFu3S.js → use-clock-tick-D6Bkvbtv.js} +1 -1
- package/dist/client/assets/{use-connect-companion-Caioph4A.js → use-connect-companion-jozTDYFH.js} +1 -1
- package/dist/client/assets/{use-connection-bHRGa4D5.js → use-connection-Drdp4Oae.js} +1 -1
- package/dist/client/assets/{use-content-sync-BshptKwx.js → use-content-sync-Cf-G-HLy.js} +1 -1
- package/dist/client/assets/{use-copy-C9iHKqw8.js → use-copy-OcGQNTqc.js} +1 -1
- package/dist/client/assets/{use-create-virtual-mcp-D-Emba8T.js → use-create-virtual-mcp-DGKOxUnh.js} +1 -1
- package/dist/client/assets/{use-date-fns-locale-Ca8zBjMd.js → use-date-fns-locale-Jp8EFehb.js} +1 -1
- package/dist/client/assets/{use-debounced-autosave-DYdm3TR4.js → use-debounced-autosave-YIvfP9wT.js} +1 -1
- package/dist/client/assets/{use-debounced-value-jBgiXQfM.js → use-debounced-value-Gwk4Ne2C.js} +1 -1
- package/dist/client/assets/use-deco-credits-Dikx1lUd.js +1 -0
- package/dist/client/assets/{use-decopilot-events-ysmV_SCO.js → use-decopilot-events-HXgpTe5E.js} +1 -1
- package/dist/client/assets/{use-delete-connection-DNqpXDgu.js → use-delete-connection-1akTigeP.js} +1 -1
- package/dist/client/assets/{use-deployment-admin-Bd0XTutb.js → use-deployment-admin-Cdrp-Eoq.js} +1 -1
- package/dist/client/assets/{use-ensure-project-folder-D2yC-JzE.js → use-ensure-project-folder-CjepmXm1.js} +1 -1
- package/dist/client/assets/{use-fast-preview-draft-url-CkUGrT_h.js → use-fast-preview-draft-url-zUUbbH36.js} +1 -1
- package/dist/client/assets/{use-file-configs-BCJkIjUG.js → use-file-configs-DAsYJwg1.js} +1 -1
- package/dist/client/assets/{use-infinite-scroll-Dpw4RwvE.js → use-infinite-scroll-Cdv4OhOH.js} +1 -1
- package/dist/client/assets/{use-join-requests-DBLRrDyF.js → use-join-requests-ggWhDjmd.js} +1 -1
- package/dist/client/assets/use-main-panel-tabs-CuF1fqci.js +1 -0
- package/dist/client/assets/use-main-schema-v8-DIVJCCM7.js +1 -0
- package/dist/client/assets/{use-mcp-auth-status-DKUh8Z7y.js → use-mcp-auth-status-AM23Rfrd.js} +1 -1
- package/dist/client/assets/{use-mcp-client-BTt1-Bfm.js → use-mcp-client-rcSUj48s.js} +1 -1
- package/dist/client/assets/{use-mcp-prompts-D9cdv5uS.js → use-mcp-prompts-DVth4qgJ.js} +1 -1
- package/dist/client/assets/{use-mcp-tools-BJPex7_L.js → use-mcp-tools-C_oaQYVh.js} +1 -1
- package/dist/client/assets/{use-members-DBl1yLtB.js → use-members-D-3ReVz2.js} +1 -1
- package/dist/client/assets/{use-mobile-DI4rDMbJ.js → use-mobile-BsFKc79k.js} +1 -1
- package/dist/client/assets/use-navigate-to-agent-DM90tSAB.js +1 -0
- package/dist/client/assets/{use-open-billing-url-Cz3PKkrp.js → use-open-billing-url-DqAcEClU.js} +1 -1
- package/dist/client/assets/{use-org-auth-client-CuzUG7PP.js → use-org-auth-client-D8DO5P0C.js} +1 -1
- package/dist/client/assets/{use-org-fs-CJ1tjqaY.js → use-org-fs-Dgh9z93n.js} +1 -1
- package/dist/client/assets/{use-org-repo-syncs-DGL3dBDQ.js → use-org-repo-syncs-B6HLHnEN.js} +1 -1
- package/dist/client/assets/{use-org-sso-MEPKdW59.js → use-org-sso-B3aedyMX.js} +1 -1
- package/dist/client/assets/{use-organization-roles-DdhRLZ4J.js → use-organization-roles-CHvoZLEJ.js} +1 -1
- package/dist/client/assets/{use-organization-settings-BHJG9JUa.js → use-organization-settings-Di06ldcM.js} +1 -1
- package/dist/client/assets/{use-panel-navigate-D4pXDoq7.js → use-panel-navigate-BXUuA5Ec.js} +1 -1
- package/dist/client/assets/use-project-native-view-presence-CoRioR3P.js +1 -0
- package/dist/client/assets/{use-project-scope-BXg9r_gM.js → use-project-scope-CIQ_5yia.js} +1 -1
- package/dist/client/assets/use-recent-apps-B4IbQq7b.js +1 -0
- package/dist/client/assets/{use-releases-COVKfxrt.js → use-releases-BJH2Fcze.js} +1 -1
- package/dist/client/assets/{use-reports-diagnostic-CUzSO-Ov.js → use-reports-diagnostic-czXQfQFD.js} +1 -1
- package/dist/client/assets/use-secrets-34xBxBrv.js +1 -0
- package/dist/client/assets/{use-section-preview-base-DtWueBQ4.js → use-section-preview-base-V3QjGUxY.js} +1 -1
- package/dist/client/assets/use-sidebar-collapsed-C-9VPIvl.js +1 -0
- package/dist/client/assets/{use-tags-CLep2MYM.js → use-tags-D8zxsmHq.js} +1 -1
- package/dist/client/assets/use-task-board-analytics-h4vz0RZN.js +1 -0
- package/dist/client/assets/{use-task-board-events-NONcWdI0.js → use-task-board-events-CJaU8iB9.js} +1 -1
- package/dist/client/assets/{use-task-board-item-prs-BWE9V8VG.js → use-task-board-item-prs-Bbcz56Cy.js} +1 -1
- package/dist/client/assets/{use-task-board-items-C2mDupi6.js → use-task-board-items-Cjilb3vU.js} +1 -1
- package/dist/client/assets/{use-task-metadata-CZgAw_o9.js → use-task-metadata-5PYU2TV-.js} +1 -1
- package/dist/client/assets/{use-thread-analytics-CArPM_JS.js → use-thread-analytics-Bge2dWCG.js} +1 -1
- package/dist/client/assets/{use-thread-outputs-C7byoUOG.js → use-thread-outputs-dVUFY4Dm.js} +1 -1
- package/dist/client/assets/useInfiniteQuery-BE9sCIYq.js +1 -0
- package/dist/client/assets/{useQueries-BBEEmrg3.js → useQueries-9ywyN6qt.js} +1 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-Dq-LBGK4.js +1 -0
- package/dist/client/assets/{users-D8QTitdA.js → users-RR5nObJH.js} +1 -1
- package/dist/client/assets/{utils-B1Tu2D-6.js → utils-BgIMGxAp.js} +1 -1
- package/dist/client/assets/variant-calendar-ClwCgPPC.js +1 -0
- package/dist/client/assets/{variant-draft-pointer-BuTJy5L-.js → variant-draft-pointer-miKgr3lt.js} +1 -1
- package/dist/client/assets/{view-mode-toggle-ChNomyKu.js → view-mode-toggle-zk0YkHDW.js} +1 -1
- package/dist/client/assets/{virtual-mcp-k92bg8nG.js → virtual-mcp-DQTg0L_z.js} +1 -1
- package/dist/client/assets/{watch-sse-pool--mvXzQUp.js → watch-sse-pool-u85EAaSx.js} +1 -1
- package/dist/client/index.html +2 -2
- package/dist/server/server.js +1 -1
- package/package.json +1 -1
- package/dist/client/assets/ActiveShapeUtils-D90uwixk.js +0 -1
- package/dist/client/assets/AreaChart-DQ8fSDWu.js +0 -1
- package/dist/client/assets/BarChart-Gg2B8Zys.js +0 -1
- package/dist/client/assets/Sector-B1SBgZlq.js +0 -28
- package/dist/client/assets/XAxis-B4VtMcW_.js +0 -1
- package/dist/client/assets/agent-analytics-B5TV-KZu.js +0 -2
- package/dist/client/assets/agent-app-BXzRctUC.js +0 -1
- package/dist/client/assets/agent-assets-ALBqHa_9.js +0 -1
- package/dist/client/assets/agent-automation-CJx7el9c.js +0 -20
- package/dist/client/assets/agent-automations-CBdbFfEA.js +0 -1
- package/dist/client/assets/agent-connect-sources-hl-1-yt3.js +0 -1
- package/dist/client/assets/agent-deck-B_aVburO.js +0 -1
- package/dist/client/assets/agent-e2e-DodSRZBG.js +0 -1
- package/dist/client/assets/agent-experiments-bHBZK30C.js +0 -1
- package/dist/client/assets/agent-file-ChawivAK.js +0 -1
- package/dist/client/assets/agent-hosting-_C9di64Q.js +0 -1
- package/dist/client/assets/agent-icon-BHy2guMB.js +0 -1
- package/dist/client/assets/agent-library-BIyQBYDz.js +0 -1
- package/dist/client/assets/agent-library-file-BeYRAO3O.js +0 -1
- package/dist/client/assets/agent-monitor-RRH0nOFj.js +0 -1
- package/dist/client/assets/agent-overview-DMAPlUkF.js +0 -1
- package/dist/client/assets/agent-releases-BbRXEf9D.js +0 -2
- package/dist/client/assets/agent-settings-DcUC0LZG.js +0 -1
- package/dist/client/assets/agent-site-editor-code-CaeN0nnV.js +0 -2
- package/dist/client/assets/agent-site-editor-content-_LB-LMtV.js +0 -1
- package/dist/client/assets/agent-site-editor-preview-CT1wC41M.js +0 -1
- package/dist/client/assets/agent-view-By-YFMZK.js +0 -1
- package/dist/client/assets/analytics-sections-BzODh-x_.js +0 -1
- package/dist/client/assets/api-keys-DiCCNJ4r.js +0 -1
- package/dist/client/assets/app-editor-DWOa-9BF.js +0 -1
- package/dist/client/assets/automation-list-row-JorhAYZ-.js +0 -1
- package/dist/client/assets/category-editor-BBGiih96.js +0 -1
- package/dist/client/assets/chat-context-Bmqpsy6W.js +0 -39
- package/dist/client/assets/cms-settings-editor-4TD7AqSx.js +0 -1
- package/dist/client/assets/collection-detail-CWNPmZ4y.js +0 -1
- package/dist/client/assets/connection-detail-yk8D2Ycp.js +0 -1
- package/dist/client/assets/connections-DZRME_wK.js +0 -1
- package/dist/client/assets/context-DuyQB36H.js +0 -1
- package/dist/client/assets/daily-pulse-C4KVb8yE.js +0 -1
- package/dist/client/assets/discover-CF0wv3hZ.js +0 -1
- package/dist/client/assets/file-explorer-CCTWbr-M.js +0 -2
- package/dist/client/assets/flat-project-Df6mlDsC.js +0 -1
- package/dist/client/assets/home-CwtQgYEu.js +0 -1
- package/dist/client/assets/index-B8G9G8Hy.js +0 -1
- package/dist/client/assets/index-CdItoagM.css +0 -1
- package/dist/client/assets/index-D3e5iYr8.js +0 -1
- package/dist/client/assets/index-VjHMgva3.js +0 -1
- package/dist/client/assets/infra-billing-D-dZHhrL.js +0 -1
- package/dist/client/assets/library-CrV5fO9b.js +0 -1
- package/dist/client/assets/library-tab-Dm4VUi0b.js +0 -168
- package/dist/client/assets/memory-Bmm18X0J.js +0 -7
- package/dist/client/assets/monitoring-stats-row-8jzTtKCw.js +0 -1
- package/dist/client/assets/openai-conversation-CUWYpCqT.js +0 -3
- package/dist/client/assets/order-monitor-day-CRPxfT1J.js +0 -1
- package/dist/client/assets/post-calendar-CklqBMe1.js +0 -1
- package/dist/client/assets/project-app-view-BlmwFdlj.js +0 -1
- package/dist/client/assets/project-feed-BZ5qEA--.js +0 -1
- package/dist/client/assets/project-reports-XALwLDF4.js +0 -1
- package/dist/client/assets/project-tasks-BfDeKIG_.js +0 -1
- package/dist/client/assets/record-editor-CZIkgsD6.js +0 -1
- package/dist/client/assets/redirect-editor-LEWMCbq4.js +0 -1
- package/dist/client/assets/reports-BW7Hu0gn.js +0 -1
- package/dist/client/assets/reports-tab-CMlaQyAw.js +0 -2
- package/dist/client/assets/repositories-3KkmiQg9.js +0 -1
- package/dist/client/assets/route-CgRduuSn.js +0 -1
- package/dist/client/assets/route-DUAG_rGK.js +0 -1
- package/dist/client/assets/route-I9sr7jYv.js +0 -1
- package/dist/client/assets/seo-editor-BXCK7xdF.js +0 -1
- package/dist/client/assets/settings-tab-lU5sKX0b.js +0 -4
- package/dist/client/assets/shell-layout-Dcul1J_F.js +0 -1
- package/dist/client/assets/site-editor-DrDmGuX8.js +0 -1
- package/dist/client/assets/site-editor-toast-BSfvx_3Z.js +0 -1
- package/dist/client/assets/skills-B4JMW-n4.js +0 -1
- package/dist/client/assets/taskboard-analytics-CTvMhPaL.js +0 -1
- package/dist/client/assets/tasks-COblaCD7.js +0 -1
- package/dist/client/assets/thread-analytics-D3YcXUrL.js +0 -1
- package/dist/client/assets/thread-route-WIP_d1e0.js +0 -1
- package/dist/client/assets/time-range-picker-Dw2gGPU4.js +0 -1
- package/dist/client/assets/use-app-takeover-DsMhIKmL.js +0 -1
- package/dist/client/assets/use-chat-navigation-B8uZT3IY.js +0 -1
- package/dist/client/assets/use-deco-credits-DOas_6vk.js +0 -1
- package/dist/client/assets/use-main-panel-tabs-CEvdjLCw.js +0 -1
- package/dist/client/assets/use-navigate-to-agent-dXBkiNwU.js +0 -1
- package/dist/client/assets/use-project-native-view-presence-IG7UX4r0.js +0 -1
- package/dist/client/assets/use-recent-apps-DEQ4fuNJ.js +0 -1
- package/dist/client/assets/use-secrets-BA4OirG9.js +0 -1
- package/dist/client/assets/use-task-board-analytics-B6tQFJXc.js +0 -1
- package/dist/client/assets/useInfiniteQuery-uo1MiygM.js +0 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-qJNKvmwf.js +0 -1
- package/dist/client/assets/variant-calendar-DuI_DA8j.js +0 -1
package/dist/server/server.js
CHANGED
|
@@ -4491,7 +4491,7 @@ ${X}`:`${Y}
|
|
|
4491
4491
|
|
|
4492
4492
|
${X}
|
|
4493
4493
|
${J.slice(Y.length).trimStart()}`}function uj8($){return $?.match(gK5)?.[1]?.toLowerCase()??null}async function mK5($,Z,Q){let[Y,X]=await Promise.all([$.client.listDecofileEntries(Z,$.packagePath),$.client.listDecofileEntries(Q,$.packagePath)]),J=new Map(hK(Y,$.packagePath).map((H)=>[H.path,H.sha])),G=hK(X,$.packagePath),W=new Set(G.map((H)=>H.path)),K=[];for(let H of G){if(J.get(H.path)===H.sha)continue;K.push({path:H.path,copyFromRef:Q})}for(let H of J.keys())if(!W.has(H))K.push({path:H,deleted:!0});return{changes:K,tree:Y,next:G.map((H)=>({stem:H.stem,sha:H.sha}))}}async function hj8($,Z){try{return await xQ0($.client,$.packagePath,Z)}catch(Q){if(Q instanceof Ms)return null;throw Q}}async function lj8($,Z,Q){let Y=PP($.packagePath),[X,J]=await Promise.all([$.client.getEntriesAtPaths(Z,[Y]),$.client.getEntriesAtPaths(Q,[Y])]);if(X.get(Y)?.sha===J.get(Y)?.sha)return!1;let[G,W]=await Promise.all([hj8($,Z),hj8($,Q)]);return G!==W}async function mj8($,Z){if(!zD0(Z))throw new pu;if(!await BT1($.store,$.site,Z))throw new pu}async function cj8($,Z){await mj8($,Z);let Q=await $9($.client,$.mainBranch);return lj8($,Q,Z)}async function dj8($,Z,Q={},Y={}){await mj8($,Z);let X=await $.client.readCommit(Z);if(!X)throw new pu;let J=await $9($.client,$.mainBranch),G=await mK5($,J,Z);if(G.changes.length===0)return{result:"up-to-date"};let W=await lj8($,J,Z);if(W)console.info("hosted reapply: schema differs",{site:$.site,target:Z,head:J});let K=await DT1($,J,G,lK5(X,Z,Q.coAuthor));return{result:"merged",sha:K,release:await jT1($,K,Y),schemaChanged:W}}var pu,yQ0="Reapply: ",fK5,yK5="Reapplied-From",gK5;var zT1=L(()=>{Jn();T5();fF();$B();fQ0();Ag0();pu=class pu extends Error{constructor(){super("This commit has no release");this.name="NotPublishedError"}};fK5=/^chore\(decofile\):/,gK5=/^Reapplied-From:\s*([0-9a-f]{40})\s*$/im});async function ij8($,Z,Q){let[Y,X,J]=await Promise.all([Rj8($.store,$.site),hq$($.store,$.site),Z.listCommits({ref:$.mainBranch,since:dK5,cursor:Q,limit:cK5})]),G=new Map(J.items.map((H)=>[H.sha,H.date])),W=J.items.map((H)=>uj8(H.body));await Promise.all([...new Set(W)].filter((H)=>H!==null&&!G.has(H)).map(async(H)=>{let F=await $.client.readCommit(H).catch(()=>null);if(F)G.set(H,F.date)}));let K=J.items.map((H,F)=>{let U=W[F];return{sha:H.sha,date:H.date,message:H.message,author:H.author.name??H.author.login,hasRelease:X.has(H.sha),reapplyOf:U?{sha:U,date:G.get(U)??null}:null}});return{current:Y,commits:K,nextCursor:J.nextCursor}}async function pj8($){let Z=await $9($.client,$.mainBranch),Q=await LT1($,Z),Y={revision:Z,schemaHash:Q,publishedAt:new Date().toISOString()};return await OT1($,Y),Y}var cK5=50,dK5="1970-01-01T00:00:00Z";var nj8=L(()=>{T5();$B();fQ0();zT1()});function tj8($){return`site-tokens:${$}`}function iK5($){let Z=$?.tokens;if(!Array.isArray(Z))return[];return Z.filter((Q)=>typeof Q==="object"&&Q!==null&&typeof Q.kid==="string"&&typeof Q.iat==="number")}function oj8($){return crypto.subtle.importKey("pkcs8",Buffer.from($,"base64"),{name:"Ed25519"},!1,["sign"])}async function pK5($,Z){let Q=(J)=>AT1(new TextEncoder().encode(JSON.stringify(J))),Y=`${Q({alg:"EdDSA",typ:"JWT"})}.${Q({site:Z.site,kid:Z.kid,iat:Z.iat})}`,X=await crypto.subtle.sign({name:"Ed25519"},$,new TextEncoder().encode(Y));return`${Y}.${AT1(X)}`}function sj8($){let Z=async(Q,Y)=>iK5(await $.kv.get(Q,tj8(Y)));return{list:Z,async issue(Q,Y){let X=await Z(Q,Y),J={kid:AT1(crypto.getRandomValues(new Uint8Array(16))),iat:Math.floor(Date.now()/1000)},G=await pK5(await $.signingKey(),{site:Y,...J});return await $.kv.set(Q,tj8(Y),{tokens:[...X,J]}),{token:G,record:J}}}}var AT1=($)=>Buffer.from($ instanceof Uint8Array?$:new Uint8Array($)).toString("base64url");function tK5(){let $=Ep();return $?{store:$,purge:Eg0()}:null}async function Vg0($){let Z=$.var.delivery();if(!Z)return null;let Q=$.get("hostedProject"),Y=await $.var.repoClientFor($.var.studioContext,Q.organizationId,Q.repository);return{client:Y,packagePath:Q.packagePath,mainBranch:await Y.getDefaultBranch(),store:Z.store,purge:Z.purge,site:Q.site}}function rj8($){let Z=B0().siteTokenSigningKey;if(!Z)return null;return sj8({kv:$.var.studioContext.storage.kv,signingKey:()=>oj8(Z)})}function Cs($,Z){let Q=Z instanceof Error?Z.message:String(Z);if(Z instanceof Ms)return $.json({error:Q},409);if(Z instanceof Tg0)return console.error("hosted: latest.json update failed",{error:Q}),$.json({error:"latest-update-failed"},502);let Y=_G(Z);if(Y!==null)return $.json({error:Q},Y===404?404:502);return console.error("hosted: request failed",{error:Q}),$.json({error:Q},500)}function aj8($={}){let Z=new Z1,Q=$.repoClientFor??bG,Y=$.insightsFor??$q$,X=$.delivery??tK5;return Z.use("*",async(J,G)=>{J.set("repoClientFor",Q),J.set("delivery",X),await G()}),Z.use("/:virtualMcpId/*",nK5),Z.get("/:virtualMcpId/releases",async(J)=>{try{let G=await Vg0(J);if(!G)return J.json(Mg0,503);let W=J.get("hostedProject"),K=await Y(J.var.studioContext,W.organizationId,W.repository);return J.json(await ij8(G,K,J.req.query("cursor")??null),200,{"Cache-Control":"no-store"})}catch(G){return Cs(J,G)}}),Z.post("/:virtualMcpId/releases/retry",async(J)=>{try{let G=await Vg0(J);if(!G)return J.json(Mg0,503);return J.json({current:await pj8(G)})}catch(G){return Cs(J,G)}}),Z.get("/:virtualMcpId/releases/:sha/reapply",async(J)=>{try{let G=await Vg0(J);if(!G)return J.json(Mg0,503);return J.json({schemaChanged:await cj8(G,J.req.param("sha"))})}catch(G){if(G instanceof pu)return J.json({error:G.message},404);return Cs(J,G)}}),Z.post("/:virtualMcpId/releases/:sha/reapply",async(J)=>{try{let G=await Vg0(J);if(!G)return J.json(Mg0,503);let W=await dj8(G,J.req.param("sha"),{coAuthor:QO(J.var.studioContext)});return J.json(W)}catch(G){if(G instanceof pu)return J.json({error:G.message},404);if(G instanceof Vs)return J.json({error:"main-moved"},409);return Cs(J,G)}}),Z.get("/:virtualMcpId/site-tokens",async(J)=>{let G=J.get("hostedProject"),W=rj8(J);if(!W)return J.json({error:"site tokens not configured"},503);return J.json({site:G.site,tokens:await W.list(G.organizationId,G.site)})}),Z.post("/:virtualMcpId/site-tokens",async(J)=>{let G=J.get("hostedProject"),W=rj8(J);if(!W)return J.json({error:"site tokens not configured"},503);try{let K=await J.var.repoClientFor(J.var.studioContext,G.organizationId,G.repository),H=await ZR(K,G.packagePath,await K.getDefaultBranch());if(await Ap(J.var.studioContext.storage.virtualMcps,{id:G.virtualMcpId,organizationId:G.organizationId,metadata:G.metadata},H,J.var.studioContext.auth?.user?.id??"system"),!H)return J.json({error:"not a Blocks v8 site"},409);return J.json(await W.issue(G.organizationId,G.site))}catch(K){return Cs(J,K)}}),Z}var nK5,Mg0;var ej8=L(()=>{SF();K8();Yg0();IG();_F();T5();$B();NT1();fQ0();Ag0();nj8();zT1();o60();QR();zp();u1();vR();nK5=Ns(async($,Z)=>{let Q=$.var.studioContext,Y=Q.organization;if(!Y)return $.json({error:"Organization scope required"},500);if(!Q.auth?.user?.id)return $.json({error:"Unauthorized"},401);if(!await TQ(Q,Y.id,"cms"))return $.json({error:"This organization's plan does not include the CMS",code:"feature_not_in_plan"},403);let X=$.req.param("virtualMcpId")??"",J=await Q.storage.virtualMcps.findById(X);if(!J||J.organization_id!==Y.id)return $.json({error:"Virtual MCP not found"},404);if(!MQ(await r7(Q),X))return $.json({error:"Virtual MCP not found"},404);let G=J.metadata??null,W=JW(G,J.connections?.map((H)=>H.connection_id)??[]);if(!W)return $.json({error:"Project has no repository"},404);try{let H=await $.var.repoClientFor(Q,Y.id,W);if(!await RD0({projects:Q.storage.virtualMcps,project:{id:X,organizationId:Y.id,metadata:G},by:Q.auth.user.id,client:H,mainBranch:await H.getDefaultBranch()}))return $.json({error:"Not found"},404)}catch(H){return Cs($,H)}let K=await qD0(Q.storage.orgSites,X,Y.id);if(!K)return $.json(Pp,409);return $.set("hostedProject",{organizationId:Y.id,virtualMcpId:X,site:K,packagePath:ZB(G),repository:W,metadata:G}),Z()}),Mg0={error:"hosted delivery not configured"}});var $w8=($)=>{let Z=new Z1;if(Z.use("*",fo),Z.use("*",TU8),Z.route("/",zU8($.voiceSessions)),Z.route("/",Hy0()),Z.route("/",JN8()),Z.route("/",jN8()),Z.route("/",$N8()),Z.route("/",zL8()),Z.route("/",TL8()),Z.route("/",BL8()),Z.route("/",EL8()),Z.route("/",LL8()),Z.route("/",$g0()),Z.route("/tools",CL8()),Z.route("/",VL8()),Z.route("/",nD8({kvStorage:$.kvStorage})),Z.route("/",iD8()),Z.route("/fs",XL8({getConnection:$.getNatsConnection})),Z.route("/sandbox",Jj8()),Z.route("/decofile",yj8()),Z.route("/hosted",aj8()),Z.route("/",FL8()),Z.route("/",GL8()),Z.route("/deco-sites",Uy0()),Z.route("/hosting",bU8()),Z.route("/monitor",pU8()),Z.route("/order-monitor",sU8()),Z.route("/sso",Yy0()),Z.route("/",Zg0({tokenStorage:$.tokenStorage,automationEventDispatcher:$.automationEventDispatcher})),Z.route("/webhooks",kU8()),$.mountDevAssets)Z.route("/dev-assets",wy0({orgFromPath:!0}));Z.use("/mcp/:connectionId?",$.mcpAuth),Z.use("/mcp/:connectionId/ui-resource",$.mcpAuth),Z.use("/mcp/gateway/:virtualMcpId?",$.mcpAuth),Z.use("/mcp/virtual-mcp/:virtualMcpId?",$.mcpAuth),Z.use("/mcp/self",$.mcpAuth);for(let Q of EA1)Z.use(`${Q}/:threadId`,$.mcpAuth);Z.route("/",mW8()),Z.get("/mcp/:gateway?/:connectionId/.well-known/oauth-protected-resource/*",$.betterAuthProtectedResourceHandler),Z.get("/mcp/.well-known/oauth-protected-resource",$.betterAuthProtectedResourceHandler);for(let Q of EA1)Z.route(Q,KL8());return Z.route("/mcp",Yx0()),Z.route("/mcp/self",sy0()),Z.route("/mcp",Gx0()),Z.all("/oauth-proxy/:connectionId/*",$.oauthProxyHandler),Z.get("/watch",$.watchHandler),Z};var Zw8=L(()=>{K8();AU8();qU8();pf0();CU8();pz1();xU8();nU8();rU8();Ey0();w2();lz1();GN8();az1();pD8();tD8();JL8();WL8();eZ0();_z1();Wx0();wA1();HL8();UL8();DL8();OL8();AA1();AL8();qL8();IL8();TA1();SL8();qA1();Xx0();Gj8();gj8();ej8()});import{z as nu}from"zod";class TT1{adapter;getConnection;kvPromise;constructor($,Z){this.adapter=$;this.getConnection=Z}kv(){let $=this.getConnection();if(!$||$.isClosed())throw new R1(503,{message:"Voice transport is unavailable"});return this.kvPromise??=new Xw8.Kvm(Ig0.jetstream($)).create("STUDIO_VOICE_SESSIONS",{storage:Ig0.StorageType.Memory,ttl:Jw8.nanos(zO),max_bytes:10485760}).catch((Z)=>{throw this.kvPromise=void 0,Z}),this.kvPromise}async conversationAgent($){let Z=await this.kv(),Q=`agent.${$.conversationKey}`,Y=Date.now()+45000;while(Date.now()<Y){let X=await Z.get(Q),J=X?.operation==="PUT"?Yw8.parse(X.json()):null;if(J?.state==="ready")return J.agentId;if(J?.state==="creating"&&J.expiresAt>Date.now()){await J$(200);continue}let G=Qw8.encode(JSON.stringify({state:"creating",expiresAt:Date.now()+40000})),W;try{W=X&&J?await Z.update(Q,G,X.revision):await Z.create(Q,G)}catch{await J$(200);continue}try{let K=await $.ensureConversationAgent();return await Z.update(Q,Qw8.encode(JSON.stringify({state:"ready",agentId:K})),W),K}catch(K){throw await Z.delete(Q,{previousSeq:W}).catch(()=>{}),K}}throw new R1(503,{message:"Voice conversation is starting; try again"})}async createSession($){let Z=this.adapter.forConversationModel($.model),Q=await this.conversationAgent(Z);try{return{provider:"elevenlabs",conversationToken:await Z.createConversationToken(Q)}}catch(Y){let X=await this.kv(),J=`agent.${Z.conversationKey}`,G=await X.get(J),W=G?.operation==="PUT"?Yw8.parse(G.json()):null;if(G&&W?.state==="ready"&&W.agentId===Q)await X.delete(J,{previousSeq:G.revision}).catch(()=>{});throw Y}}}var Ig0,Xw8,Jw8,Qw8,Yw8;var Gw8=L(()=>{BG();kB();p$();Ig0=_(xH(),1),Xw8=_(_q(),1),Jw8=_(o2(),1),Qw8=new TextEncoder,Yw8=nu.discriminatedUnion("state",[nu.object({state:nu.literal("ready"),agentId:nu.string()}),nu.object({state:nu.literal("creating"),expiresAt:nu.number()})])});import{z as Ss}from"zod";function oK5($){return{model:$.model,instructions:`${yt$}
|
|
4494
|
-
Start in ${$.language==="pt"?"Brazilian Portuguese":"English"}, and follow the user's language.`,delegation:{type:"client"},audio:{output:{voice:$.voice}},store:!1}}class qT1{config;constructor($){this.config=$}async createSession(){return{provider:"openai",transport:"webrtc"}}async negotiate($){let Z=await fetch("https://api.openai.com/v1/live/sessions",{method:"POST",headers:{Authorization:`Bearer ${this.config.apiKey}`,"Content-Type":"application/json","OpenAI-Safety-Identifier":$.safetyIdentifier},body:JSON.stringify({session:oK5({...this.config,language:$.language,model:$.model}),transport:{type:"webrtc",sdp:$.sdp}}),signal:AbortSignal.timeout(15000)});if(!Z.ok)throw await Z.body?.cancel(),Error(`OpenAI Live request failed (${Z.status})`);return{sdp:Ss.object({session:Ss.object({id:Ss.string().min(1)}),transport:Ss.object({type:Ss.literal("webrtc"),sdp:Ss.string().min(1).max(1e5)})}).parse(await Z.json()).transport.sdp}}}var Ww8=L(()=>{kB()});var Kw8;var Hw8=L(()=>{Kw8=[{name:"delegate_to_agent",description:"Submit a complete request to the selected Studio agent. Returns after acceptance while work continues in the background. Results arrive later.",parameters:{type:"object",properties:{request:{type:"string",description:"The complete user request, with relevant conversational details. Preserve intent and constraints."}},required:["request"]}},{name:"get_agent_status",description:"Read the current chat's work status and known results. This does not track independent organization tasks; delegate fresh task-status queries to the Studio agent. Use when asked, never poll.",parameters:{type:"object",properties:{}}},{name:"stop_agent_work",description:"Request cancellation in the current chat ONLY when the user explicitly asks. Speaking over the companion is not cancellation. To stop independent tasks, delegate that request to the Studio agent.",parameters:{type:"object",properties:{}}}]});function RT1($){return{conversation_config:{agent:{first_message:"",language:"en",prompt:{prompt:xt$,llm:$.conversationModel,thinking_budget:0,max_tokens:512,tools:Kw8.map((Z)=>({...Z,type:"client",expects_response:!0,response_timeout_secs:Z.name==="delegate_to_agent"?20:5,...Z.name==="delegate_to_agent"?{execution_mode:"async",interruption_mode:"allow",pre_tool_speech:"off"}:{}}))}},asr:{provider:"scribe_realtime",quality:"high"},turn:{turn_eagerness:"normal",turn_timeout:-1,silence_end_call_timeout:-1},tts:{voice_id:$.voiceId,model_id:$.model},conversation:{max_duration_seconds:zO/1000,client_events:["audio","interruption","user_transcript","agent_response","client_tool_call","vad_score"]}},platform_settings:{auth:{enable_auth:!0},privacy:{record_voice:!1,retention_days:1,delete_audio:!0,delete_transcript_and_pii:!0},overrides:{conversation_config_override:{agent:{language:!0}}}}}}var Fw8=L(()=>{kB();Hw8()});import{z as pJ}from"zod";import{createHash as sK5,createHmac as rK5}from"crypto";class kg0{config;conversationKey;configurationKey;constructor($){this.config=$;this.configurationKey=sK5("sha256").update(JSON.stringify(RT1($))).digest("hex"),this.conversationKey=rK5("sha256",$.apiKey).update(this.configurationKey).digest("hex")}forConversationModel($){return $===this.config.conversationModel?this:new kg0({...this.config,conversationModel:$})}async request($,Z,Q){let Y=await fetch(`https://api.elevenlabs.io/v1${$}`,{method:Z===void 0?"GET":"POST",headers:{"xi-api-key":this.config.apiKey,"Content-Type":"application/json"},body:JSON.stringify(Z),signal:Q});if(!Y.ok)throw await Y.body?.cancel(),Error(`ElevenLabs request failed (${Y.status})`);return Y}async ensureConversationAgent(){let $=`Studio voice ${this.configurationKey.slice(0,24)}`,Z=await this.request(`/convai/agents?search=${encodeURIComponent($)}&page_size=100`,void 0,AbortSignal.timeout(15000)),{agents:Q}=pJ.object({agents:pJ.array(pJ.object({agent_id:pJ.string(),name:pJ.string()}))}).parse(await Z.json()),Y=Q.find((J)=>J.name===$);if(Y){let J=await this.request(`/convai/agents/${encodeURIComponent(Y.agent_id)}`,void 0,AbortSignal.timeout(15000));return pJ.object({platform_settings:pJ.object({auth:pJ.object({enable_auth:pJ.literal(!0)})})}).parse(await J.json()),Y.agent_id}let X=await this.request("/convai/agents/create",{name:$,...RT1(this.config)},AbortSignal.timeout(15000));return pJ.object({agent_id:pJ.string().min(1)}).parse(await X.json()).agent_id}async createConversationToken($){let Z=await this.request(`/convai/conversation/token?agent_id=${encodeURIComponent($)}`,void 0,AbortSignal.timeout(15000));return pJ.object({token:pJ.string().min(1)}).parse(await Z.json()).token}async createTranscriptionToken(){let $=await this.request("/single-use-token/realtime_scribe",{},AbortSignal.timeout(15000));return pJ.object({token:pJ.string().min(1)}).parse(await $.json()).token}synthesize($,Z){return this.request(`/text-to-speech/${encodeURIComponent(this.config.voiceId)}/stream?output_format=mp3_44100_128`,{text:$,model_id:this.config.model},AbortSignal.any([Z,AbortSignal.timeout(60000)]))}}var Uw8=L(()=>{Fw8()});import{createHmac as aK5,timingSafeEqual as eK5}from"crypto";import{z as _s}from"zod";function Bw8($,Z){if(!Z)throw Error("Voice requires a shared authentication secret");return aK5("sha256",Z).update(`studio-voice-session:v1:${$}`).digest("base64url")}function Dw8($,Z){let Q=Buffer.from(JSON.stringify(Nw8.parse($))).toString("base64url");return`${Q}.${Bw8(Q,Z)}`}function Lw8($,Z,Q=Date.now()){if(!Z||$.length>4096)return null;let Y=$.split(".");if(Y.length!==2)return null;let[X,J]=Y;if(!X||!J)return null;let G=Buffer.from(Bw8(X,Z)),W=Buffer.from(J);if(W.length!==G.length||!eK5(W,G))return null;try{let K=Nw8.safeParse(JSON.parse(Buffer.from(X,"base64url").toString()));if(!K.success||K.data.expiresAt<=Q||K.data.expiresAt>Q+zO)return null;return K.data}catch{return null}}var Nw8;var Ow8=L(()=>{kB();Nw8=_s.object({sessionId:_s.string().uuid(),organizationId:_s.string().min(1).max(256),userId:_s.string().min(1).max(256),threadId:_s.string().min(1).max(256),expiresAt:_s.number().int().positive()})});import{z as MT1}from"zod";function jw8($,Z){if(Z?.voice_model!=null&&Z.voice_provider==null)throw Error("A voice model override requires a provider");let Q=Z?.voice_provider??$.voiceConversationProvider;return VT1.parse({provider:Q,model:Z?.voice_model??(Q==="openai"?$.openaiLiveModel:$.elevenlabsConversationModel)})}var VT1;var ww8=L(()=>{VT1=MT1.object({provider:MT1.enum(["elevenlabs","openai"]),model:MT1.string().trim().min(1).max(128)})});import{createHash as $H5}from"crypto";import{z as vs}from"zod";function bs($){return`user.${$H5("sha256").update(JSON.stringify([$.organizationId,$.userId])).digest("hex")}`}class kT1{deps;kvPromise;constructor($){this.deps=$}kv(){let $=this.deps.getConnection();if(!$||$.isClosed())throw new R1(503,{message:"Voice transport is unavailable"});return this.kvPromise??=new Ew8.Kvm(Sg0.jetstream($)).create("STUDIO_VOICE_SESSIONS",{storage:Sg0.StorageType.Memory,ttl:Pw8.nanos(zO),max_bytes:10485760}).catch((Z)=>{throw this.kvPromise=void 0,Z}),this.kvPromise}adapter(){if(!this.deps.adapter)throw new R1(503,{message:"Voice is not configured on this deployment"});return this.deps.adapter}async create($,Z=!1,Q="en",Y){let X;if(Z)try{X=jw8(this.deps.defaults,Y)}catch{throw new R1(503,{message:"Voice configuration is invalid"})}let J=X?this.deps.conversationAdapters[X.provider]:this.adapter();if(!J)throw new R1(503,{message:"Voice is not configured on this deployment"});let G={...$,sessionId:crypto.randomUUID(),expiresAt:Date.now()+zO},W=Dw8(G,this.deps.secret),K=await this.kv(),H=bs(G),F=await K.get(H),U=F?.operation==="PUT"?Cg0.parse(F.json()):null,N=IT1.encode(JSON.stringify({sessionId:G.sessionId,expiresAt:G.expiresAt,conversation:X,characters:0,requests:0}));try{if(F&&U&&U.expiresAt<=Date.now())await K.update(H,N,F.revision);else await K.create(H,N)}catch{throw new R1(409,{message:"Close your other voice session before starting a new one"})}try{if(X&&"createSession"in J){let D=await J.createSession({language:Q,model:X.model,safetyIdentifier:bs($)});return{token:W,...D,expiresAt:G.expiresAt}}let B=await this.adapter().createTranscriptionToken();return{token:W,transcriptionToken:B,expiresAt:G.expiresAt}}catch(B){throw await this.release(G),B}}authorize($,Z){let Q=Lw8(Z,this.deps.secret);if(!Q||Q.organizationId!==$.organizationId||Q.userId!==$.userId||Q.threadId!==$.threadId)throw new R1(403,{message:"Invalid voice session"});return Q}async connect($,Z){let Q=this.authorize($,Z.token),Y=await this.kv(),X=bs(Q),J=await Y.get(X),G=J?.operation==="PUT"?Cg0.parse(J.json()):null;if(!J||!G||G.sessionId!==Q.sessionId||G.expiresAt<=Date.now())throw new R1(403,{message:"Voice session expired"});let W=G.conversation?this.deps.conversationAdapters[G.conversation.provider]:null;if(!W?.negotiate||!G.conversation)throw new R1(409,{message:"Voice session does not support SDP negotiation"});if(G.connected)throw new R1(409,{message:"Voice session already connected"});try{await Y.update(X,IT1.encode(JSON.stringify({...G,connected:!0})),J.revision)}catch{throw new R1(409,{message:"Voice session is busy"})}return W.negotiate({sdp:Z.sdp,language:Z.language,model:G.conversation.model,safetyIdentifier:X})}async speak($,Z,Q,Y){let X=this.authorize($,Z),J=await this.kv(),G=bs(X);for(let W=0;;W++){let K=await J.get(G),H=K?.operation==="PUT"?Cg0.parse(K.json()):null;if(!K||!H||H.sessionId!==X.sessionId||H.expiresAt<=Date.now())throw new R1(403,{message:"Voice session expired"});if(H.characters+Q.length>24000||H.requests>=120)throw new R1(429,{message:"Voice session speech limit reached"});try{await J.update(G,IT1.encode(JSON.stringify({...H,characters:H.characters+Q.length,requests:H.requests+1})),K.revision);break}catch{if(W>=2)throw new R1(409,{message:"Voice session is busy"})}}return this.adapter().synthesize(Q,Y)}async release($){let Z=await this.kv(),Q=await Z.get(bs($));if(Q?.operation==="PUT"&&Cg0.parse(Q.json()).sessionId===$.sessionId)await Z.delete(bs($),{previousSeq:Q.revision})}async revoke($,Z){await this.release(this.authorize($,Z))}}var Sg0,Ew8,Pw8,Cg0,IT1;var zw8=L(()=>{BG();kB();Ow8();ww8();Sg0=_(xH(),1),Ew8=_(_q(),1),Pw8=_(o2(),1),Cg0=vs.object({sessionId:vs.string().uuid(),expiresAt:vs.number(),connected:vs.boolean().optional(),conversation:VT1.optional(),characters:vs.number().int().nonnegative(),requests:vs.number().int().nonnegative()}),IT1=new TextEncoder});import{z as c1}from"zod";function YD($,Z="invalid_request_error",Q=null,Y=null){return{error:{message:$,type:Z,param:Q,code:Y}}}function FH5($){if(!$)return null;let Z=$.indexOf(":");if(Z===-1)return{credentialId:null,modelId:$};let Q=$.substring(0,Z),Y=$.substring(Z+1);if(!Q||!Y)return null;return{credentialId:Q,modelId:Y}}function UH5($,Z,Q){try{return JSON.parse($)}catch{throw new qw8(`Invalid JSON in tool call arguments for function '${Q}' (tool_call_id: ${Z}): ${$}`)}}function NH5($){let Z={};for(let Q of $)if(Q.role==="assistant"&&Q.tool_calls)for(let Y of Q.tool_calls)Z[Y.id]=Y.function.name;return $.map((Q)=>{switch(Q.role){case"system":return{role:"system",content:Q.content};case"user":if(typeof Q.content==="string")return{role:"user",content:Q.content};return{role:"user",content:Q.content.map((X)=>{if(X.type==="text")return{type:"text",text:X.text};return{type:"image",image:X.image_url.url}})};case"assistant":if(Q.tool_calls&&Q.tool_calls.length>0)return{role:"assistant",content:Q.tool_calls.map((X)=>({type:"tool-call",toolCallId:X.id,toolName:X.function.name,input:UH5(X.function.arguments,X.id,X.function.name)}))};return{role:"assistant",content:Q.content??""};case"tool":let Y=Z[Q.tool_call_id]??"unknown";return{role:"tool",content:[{type:"tool-result",toolCallId:Q.tool_call_id,toolName:Y,output:{type:"text",value:Q.content}}]}}})}function BH5($){let Z=$.map((Q)=>{let Y=Q.function.parameters?qN(Q.function.parameters):qN({type:"object",properties:{}});return[Q.function.name,s$({description:Q.function.description,inputSchema:Y})]});return Object.fromEntries(Z)}function DH5($){if(!$)return;return{openai:{response_format:$}}}function LH5(){return`chatcmpl-${crypto.randomUUID().replace(/-/g,"").substring(0,29)}`}function Aw8($,Z,Q,Y,X,J){let G={model:$,instructions:Z.filter((W)=>W.role==="system"),messages:Z.filter((W)=>W.role!=="system"),tools:Q,temperature:Y.temperature,maxOutputTokens:Y.max_tokens,topP:Y.top_p,frequencyPenalty:Y.frequency_penalty,presencePenalty:Y.presence_penalty,stopSequences:Y.stop?Array.isArray(Y.stop)?Y.stop:[Y.stop]:void 0,abortSignal:J};return X?{...G,providerOptions:X}:G}function Tw8($){if($==="tool-calls")return"tool_calls";if($==="length")return"length";return"stop"}var ZH5=256,QH5,YH5,XH5,JH5,GH5,WH5,KH5,HH5,qw8,Rw8,Mw8;var Vw8=L(()=>{l4();K8();Us();FU();QH5=c1.object({type:c1.literal("function"),function:c1.object({name:c1.string(),description:c1.string().optional(),parameters:c1.record(c1.string(),c1.unknown()).optional()})}),YH5=c1.object({id:c1.string(),type:c1.literal("function"),function:c1.object({name:c1.string(),arguments:c1.string()})}),XH5=c1.discriminatedUnion("role",[c1.object({role:c1.literal("system"),content:c1.string(),name:c1.string().optional()}),c1.object({role:c1.literal("user"),content:c1.union([c1.string(),c1.array(c1.union([c1.object({type:c1.literal("text"),text:c1.string()}),c1.object({type:c1.literal("image_url"),image_url:c1.object({url:c1.string(),detail:c1.string().optional()})})]))]),name:c1.string().optional()}),c1.object({role:c1.literal("assistant"),content:c1.string().nullable().optional(),name:c1.string().optional(),tool_calls:c1.array(YH5).optional()}),c1.object({role:c1.literal("tool"),content:c1.string(),tool_call_id:c1.string()})]),JH5=c1.object({type:c1.literal("text")}),GH5=c1.object({type:c1.literal("json_object")}),WH5=c1.object({type:c1.literal("json_schema"),json_schema:c1.object({name:c1.string(),description:c1.string().optional(),schema:c1.record(c1.string(),c1.unknown()),strict:c1.boolean().optional()})}),KH5=c1.union([JH5,GH5,WH5]),HH5=c1.object({model:c1.string().describe("Format: 'model_id' or 'credential_id:model_id'"),messages:c1.array(XH5),stream:c1.boolean().optional().default(!1),temperature:c1.number().min(0).max(2).optional(),max_tokens:c1.number().positive().optional(),top_p:c1.number().min(0).max(1).optional(),frequency_penalty:c1.number().min(-2).max(2).optional(),presence_penalty:c1.number().min(-2).max(2).optional(),stop:c1.union([c1.string(),c1.array(c1.string())]).optional(),tools:c1.array(QH5).optional(),tool_choice:c1.union([c1.literal("auto"),c1.literal("none"),c1.literal("required"),c1.object({type:c1.literal("function"),function:c1.object({name:c1.string()})})]).optional(),response_format:KH5.optional(),user:c1.string().optional()});qw8=class qw8 extends Error{constructor($){super($);this.name="MessageConversionError"}};Rw8=new Z1;Rw8.post("/:org/v1/chat/completions",async($)=>{let Z=$.get("studioContext"),Q=$.req.param("org");try{if(!Z.auth.apiKey?.id)return $.json(YD("API key authentication required. Provide a valid API key via Authorization header.","authentication_error"),401);if(!Z.organization)return $.json(YD("Organization context is required. Ensure your API key has organization metadata.","invalid_request_error","organization"),400);if((Z.organization.slug??Z.organization.id)!==Q)return $.json(YD("Organization mismatch. The API key's organization does not match the requested organization.","invalid_request_error","organization"),403);let Y=await $.req.json(),X=HH5.safeParse(Y);if(!X.success){let j=X.error.issues[0]??{message:"Invalid request",path:[]};return $.json(YD(`Invalid request: ${j.message}`,"invalid_request_error",j.path.length>0?j.path.join("."):null),400)}let J=X.data,G=FH5(J.model);if(!G)return $.json(YD("Invalid model format. Expected 'model_id' or 'credential_id:model_id' (e.g., 'claude-sonnet-4-6' or 'key_abc123:claude-sonnet-4-6')","invalid_request_error","model"),400);let{credentialId:W}=G,{modelId:K}=G;if(!W){let w=(await Z.storage.aiProviderKeys.list({organizationId:Z.organization.id})).find((E)=>mA(E.providerId));if(!w)return $.json(YD("No AI provider credentials configured for this organization. Add a credential in settings or specify one explicitly via 'credential_id:model_id'.","invalid_request_error","model"),400);W=w.id}let H;try{H=await Z.aiProviders.activate(W,Z.organization.id)}catch{return $.json(YD(`AI provider credential not found or inaccessible: ${W}`,"invalid_request_error","model"),404)}let F=H.aiSdk.languageModel(K),U=NH5(J.messages),N=J.tools?BH5(J.tools):void 0,B=DH5(J.response_format),D=LH5(),O=Math.floor(Date.now()/1000);if(J.stream)return Bj($,async(j)=>{let w=Aw8(F,U,N,J,B,$.req.raw.signal);try{let E=Ut(w),P=!1,T=0,z="",A=async()=>{if(z.length===0)return;let R=z;z="",await j.writeSSE({data:JSON.stringify({id:D,object:"chat.completion.chunk",created:O,model:J.model,choices:[{index:0,delta:{content:R},finish_reason:null}]})})};for await(let R of E.stream){if(!P&&(R.type==="text-delta"||R.type==="tool-call"))await j.writeSSE({data:JSON.stringify({id:D,object:"chat.completion.chunk",created:O,model:J.model,choices:[{index:0,delta:{role:"assistant",content:""},finish_reason:null}]})}),P=!0;if(R.type==="text-delta"){if(z+=R.text,z.length>=ZH5)await A()}else if(R.type==="tool-call"){await A();let f=T++;await j.writeSSE({data:JSON.stringify({id:D,object:"chat.completion.chunk",created:O,model:J.model,choices:[{index:0,delta:{tool_calls:[{index:f,id:R.toolCallId,type:"function",function:{name:R.toolName,arguments:JSON.stringify(R.input)}}]},finish_reason:null}]})})}else if(R.type==="finish")await A(),await j.writeSSE({data:JSON.stringify({id:D,object:"chat.completion.chunk",created:O,model:J.model,choices:[{index:0,delta:{},finish_reason:Tw8(R.finishReason)}],usage:R.totalUsage?{prompt_tokens:R.totalUsage.inputTokens??0,completion_tokens:R.totalUsage.outputTokens??0,total_tokens:R.totalUsage.totalTokens??0}:void 0})})}await A(),await j.writeSSE({data:"[DONE]"})}catch(E){let P=E;console.error("[openai-compat:stream] Error:",P.message),await j.writeSSE({data:JSON.stringify({error:{message:P.message,type:"server_error"}})})}});else{let j=Aw8(F,U,N,J,B,$.req.raw.signal),w=await RO(j),E={role:"assistant",content:w.text||null};if(w.toolCalls&&w.toolCalls.length>0)E.tool_calls=w.toolCalls.map((P)=>({id:P.toolCallId,type:"function",function:{name:P.toolName,arguments:JSON.stringify("input"in P?P.input:{})}})),E.content=null;return $.json({id:D,object:"chat.completion",created:O,model:J.model,choices:[{index:0,message:E,finish_reason:Tw8(w.finishReason)}],usage:{prompt_tokens:w.usage?.inputTokens??0,completion_tokens:w.usage?.outputTokens??0,total_tokens:w.usage?.totalTokens??0}})}}catch(Y){let X=Y;if(X.name==="AbortError")return $.json(YD("Request aborted","invalid_request_error"),400);if(X.name==="MessageConversionError")return $.json(YD(X.message,"invalid_request_error","messages"),400);return console.error("[openai-compat] Error:",X.message,X.stack),$.json(YD(X.message,"server_error"),500)}});Mw8=Rw8});function OH5($){if(typeof $!=="object"||$===null)return!1;let Q=$.repository?.url;return typeof Q==="string"&&Q.length>0}function Iw8(){let $=new Z1;return $.use("*",async(Z,Q)=>{await Q(),Z.header("Cache-Control","private, no-store"),Z.header("Vary","Cookie")}),$.get("/",async(Z)=>{let Q=Z.get("studioContext"),Y=S0(Q);if(!Y)return Z.json({error:"Authentication required"},401);let J=(Z.req.query("site")??"").trim().toLowerCase();if(!_5(J))return Z.json({error:"Invalid site slug"},400);let G=await Q.db.selectFrom("member").innerJoin("organization","organization.id","member.organizationId").select(["organization.id as id","organization.slug as slug","organization.name as name","organization.metadata as metadata"]).where("member.userId","=",Y).execute(),W=[];for(let H of G){if(!H.slug||P9(H))continue;let F=await Q.storage.virtualMcps.list(H.id);for(let U of F){if(nA(U)!==J)continue;if(!OH5(U.metadata))continue;W.push({orgSlug:H.slug,orgName:H.name??H.slug,project:{id:U.id,title:U.title,icon:U.icon??null}})}}let K={matches:W};return Z.json(K)}),$}var kw8=L(()=>{K8();eY()});var _g0;var CT1=L(()=>{_g0={name:"decocms",version:"4.510.1",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 dev:server","dev:server":"NODE_ENV=development bun --env-file=.env --watch 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","db:migrate:dbos":"bun run ./dist/server/migrate-dbos.js",check:"tsc --noEmit",start:"bun run ./dist/server/server.js",migrate:"bun run src/database/migrate.ts","migrate:dbos":"bun run src/database/migrate-dbos.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":"^4.0.58","@ai-sdk/google":"^4.0.76","@ai-sdk/openai":"^4.0.71","@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","@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":"^3.1.0","@opentelemetry/core":"^2.6.0",kysely:"^0.28.12","posthog-node":"^5.0.0"},devDependencies:{"@ai-sdk/provider":"^4.0.17","@better-auth/sso":"1.4.1","@decocms/better-auth":"1.5.17","@decocms/bindings":"workspace:*","@decocms/blocks":"8.5.1","@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","@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:"^7.0.107","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"}}});function EH5(){let $=process.env.POSTHOG_KEY;if(!$)return null;return{key:$,host:process.env.POSTHOG_HOST??wH5}}var Cw8,wH5="https://ph.studio.decocms.com",Sw8;var _w8=L(()=>{K8();q10();Zu();H9();u1();jo();Oz1();CT1();Cw8=new Z1;Cw8.get("/",($)=>{let Z={version:_g0.version,theme:r3$(),...NF().logo&&{logo:NF().logo},...fO()&&{internalUrl:w$$()},...B0().enableDecoImport&&{enableDecoImport:!0},hostingEnabled:!!B0().controlplaneRestUrl&&!!B0().controlplaneServiceToken,hostingControlPlaneGa:B0().hostingControlPlaneGa,monitorEnabled:!!B0().clickhouseAnalyticsUrl&&!!B0().clickhouseAnalyticsPassword,monitorGa:B0().monitorGa,orderMonitorEnabled:!!B0().orderMonitorIngestUrl&&U2(),plansEnabled:B0().plansEnabled,auth:FF8(),posthog:EH5(),googleMapsApiKey:process.env.GOOGLE_MAPS_API_KEY?.trim()||null,runtime:{agentSandbox:qU()}};return $.header("Cache-Control","no-store"),$.json({success:!0,config:Z})});Sw8=Cw8});import{z as R$}from"zod";var PH5,vw8;var bw8=L(()=>{PH5=R$.object({check_id:R$.string(),title:R$.string(),description:R$.string().optional(),impact:R$.string().optional(),why:R$.string().optional(),category:R$.string(),severity:R$.string(),value_band:R$.string().optional(),value_driver:R$.string().optional(),controllability:R$.string().optional(),pages:R$.array(R$.string()),tasks:R$.array(R$.string()),evidence:R$.string(),sample_scope:R$.string().optional(),sources:R$.array(R$.string())}),vw8=R$.object({domain:R$.string(),brand:R$.string(),favicon:R$.string().optional(),scanned_at:R$.string().nullable(),lang:R$.string(),score:R$.number().nullable(),band:R$.string().nullable(),totals:R$.object({measured:R$.number(),registry_total:R$.number(),passed:R$.number(),failed:R$.number(),blocked:R$.number()}),buckets:R$.array(R$.object({id:R$.enum(["critical","important","worth"]),label:R$.string(),items:R$.array(PH5)})),passing:R$.object({count:R$.number(),items:R$.array(R$.object({check_id:R$.string(),title:R$.string()}))}),not_measured:R$.object({count:R$.number(),groups:R$.array(R$.object({reason:R$.string(),label:R$.string(),count:R$.number(),checks:R$.array(R$.string())}))}),categories:R$.array(R$.object({key:R$.string(),label:R$.string(),score:R$.number().nullable(),band:R$.string().nullable(),pass:R$.number(),fail:R$.number()})),screenshots:R$.array(R$.object({url:R$.string(),page_type:R$.string().optional(),viewport:R$.enum(["desktop","mobile"]),image_url:R$.string()}))})});function xw8($,Z,Q){let Y=Q?`?${new URLSearchParams({lang:Q}).toString()}`:"";return`${SK({})}/api/v2/public/diagnostics/${encodeURIComponent($)}/onepager${Z}${Y}`}async function vg0($,Z={}){let Q=await fetch(xw8($,"",Z.lang),{headers:{Accept:"application/json"},signal:Z.signal});if(Q.status===404)return null;if(!Q.ok)throw Error(`onepager read HTTP ${Q.status}`);return vw8.parse(await Q.json())}async function fw8($,Z={}){let Q=await fetch(xw8($,".md",Z.lang),{headers:{Accept:"text/markdown"},signal:Z.signal});if(Q.status===404)return null;if(!Q.ok)throw Error(`onepager markdown HTTP ${Q.status}`);return Q.text()}var ST1=L(()=>{bw8();xL()});import{join as yw8}from"path";async function AH5($){try{let Z=await vg0($,{signal:AbortSignal.timeout(zH5)});if(!Z?.scanned_at)return null;return{brand:Z.brand.trim()||iw1($),...Z.score!==null?{score:Z.score}:{}}}catch{return null}}function J3($){return $.replaceAll("&","&").replaceAll("<","<").replaceAll(">",">").replaceAll('"',""")}function TH5($,Z){let Q=qu($),Y=Z?.brand?.trim()||iw1(Q),X=fG8(Q,128),G=`${(B0().baseUrl??"https://studio.decocms.com").replace(/\/+$/,"")}/report/${encodeURIComponent(Q)}`,{title:W,description:K}=yG8({brand:Y,domain:Q,score:Z?.score}),H=`${G}/og.png`,F=`${Y} Deco Score by decocms`;return[`<title>${J3(W)}</title>`,`<meta name="description" content="${J3(K)}" />`,'<meta name="robots" content="noindex, follow" />','<meta property="og:type" content="website" />','<meta property="og:site_name" content="decocms" />',`<meta property="og:title" content="${J3(W)}" />`,`<meta property="og:description" content="${J3(K)}" />`,`<meta property="og:url" content="${J3(G)}" />`,`<meta property="og:image" content="${J3(H)}" />`,'<meta property="og:image:width" content="1200" />','<meta property="og:image:height" content="630" />',`<meta property="og:image:alt" content="${J3(F)}" />`,'<meta name="twitter:card" content="summary_large_image" />',`<meta name="twitter:title" content="${J3(W)}" />`,`<meta name="twitter:description" content="${J3(K)}" />`,`<meta name="twitter:image" content="${J3(H)}" />`,`<meta name="twitter:image:alt" content="${J3(F)}" />`,`<link rel="canonical" href="${J3(G)}" />`,`<link rel="alternate" type="text/markdown" href="${J3(G)}.md" />`,`<link rel="icon" href="${J3(X)}" sizes="any" />`].join(`
|
|
4494
|
+
Start in ${$.language==="pt"?"Brazilian Portuguese":"English"}, and follow the user's language.`,delegation:{type:"client"},audio:{output:{voice:$.voice}},store:!1}}class qT1{config;constructor($){this.config=$}async createSession(){return{provider:"openai",transport:"webrtc"}}async negotiate($){let Z=await fetch("https://api.openai.com/v1/live/sessions",{method:"POST",headers:{Authorization:`Bearer ${this.config.apiKey}`,"Content-Type":"application/json","OpenAI-Safety-Identifier":$.safetyIdentifier},body:JSON.stringify({session:oK5({...this.config,language:$.language,model:$.model}),transport:{type:"webrtc",sdp:$.sdp}}),signal:AbortSignal.timeout(15000)});if(!Z.ok)throw await Z.body?.cancel(),Error(`OpenAI Live request failed (${Z.status})`);return{sdp:Ss.object({session:Ss.object({id:Ss.string().min(1)}),transport:Ss.object({type:Ss.literal("webrtc"),sdp:Ss.string().min(1).max(1e5)})}).parse(await Z.json()).transport.sdp}}}var Ww8=L(()=>{kB()});var Kw8;var Hw8=L(()=>{Kw8=[{name:"delegate_to_agent",description:"Submit a complete request to the selected Studio agent. Returns after acceptance while work continues in the background. Results arrive later.",parameters:{type:"object",properties:{request:{type:"string",description:"The complete user request, with relevant conversational details. Preserve intent and constraints."}},required:["request"]}},{name:"get_agent_status",description:"Read the current chat's work status and known results. This does not track independent organization tasks; delegate fresh task-status queries to the Studio agent. Use when asked, never poll.",parameters:{type:"object",properties:{}}},{name:"stop_agent_work",description:"Request cancellation in the current chat ONLY when the user explicitly asks. Speaking over the companion is not cancellation. To stop independent tasks, delegate that request to the Studio agent.",parameters:{type:"object",properties:{}}}]});function RT1($){return{conversation_config:{agent:{first_message:"",language:"en",prompt:{prompt:xt$,llm:$.conversationModel,thinking_budget:0,max_tokens:512,tools:Kw8.map((Z)=>({...Z,type:"client",expects_response:!0,response_timeout_secs:Z.name==="delegate_to_agent"?20:5,...Z.name==="delegate_to_agent"?{execution_mode:"async",interruption_mode:"allow",pre_tool_speech:"off"}:{}}))}},asr:{provider:"scribe_realtime",quality:"high"},turn:{turn_eagerness:"normal",turn_timeout:-1,silence_end_call_timeout:-1},tts:{voice_id:$.voiceId,model_id:$.model},conversation:{max_duration_seconds:zO/1000,client_events:["audio","interruption","user_transcript","agent_response","client_tool_call","vad_score"]}},platform_settings:{auth:{enable_auth:!0},privacy:{record_voice:!1,retention_days:1,delete_audio:!0,delete_transcript_and_pii:!0},overrides:{conversation_config_override:{agent:{language:!0}}}}}}var Fw8=L(()=>{kB();Hw8()});import{z as pJ}from"zod";import{createHash as sK5,createHmac as rK5}from"crypto";class kg0{config;conversationKey;configurationKey;constructor($){this.config=$;this.configurationKey=sK5("sha256").update(JSON.stringify(RT1($))).digest("hex"),this.conversationKey=rK5("sha256",$.apiKey).update(this.configurationKey).digest("hex")}forConversationModel($){return $===this.config.conversationModel?this:new kg0({...this.config,conversationModel:$})}async request($,Z,Q){let Y=await fetch(`https://api.elevenlabs.io/v1${$}`,{method:Z===void 0?"GET":"POST",headers:{"xi-api-key":this.config.apiKey,"Content-Type":"application/json"},body:JSON.stringify(Z),signal:Q});if(!Y.ok)throw await Y.body?.cancel(),Error(`ElevenLabs request failed (${Y.status})`);return Y}async ensureConversationAgent(){let $=`Studio voice ${this.configurationKey.slice(0,24)}`,Z=await this.request(`/convai/agents?search=${encodeURIComponent($)}&page_size=100`,void 0,AbortSignal.timeout(15000)),{agents:Q}=pJ.object({agents:pJ.array(pJ.object({agent_id:pJ.string(),name:pJ.string()}))}).parse(await Z.json()),Y=Q.find((J)=>J.name===$);if(Y){let J=await this.request(`/convai/agents/${encodeURIComponent(Y.agent_id)}`,void 0,AbortSignal.timeout(15000));return pJ.object({platform_settings:pJ.object({auth:pJ.object({enable_auth:pJ.literal(!0)})})}).parse(await J.json()),Y.agent_id}let X=await this.request("/convai/agents/create",{name:$,...RT1(this.config)},AbortSignal.timeout(15000));return pJ.object({agent_id:pJ.string().min(1)}).parse(await X.json()).agent_id}async createConversationToken($){let Z=await this.request(`/convai/conversation/token?agent_id=${encodeURIComponent($)}`,void 0,AbortSignal.timeout(15000));return pJ.object({token:pJ.string().min(1)}).parse(await Z.json()).token}async createTranscriptionToken(){let $=await this.request("/single-use-token/realtime_scribe",{},AbortSignal.timeout(15000));return pJ.object({token:pJ.string().min(1)}).parse(await $.json()).token}synthesize($,Z){return this.request(`/text-to-speech/${encodeURIComponent(this.config.voiceId)}/stream?output_format=mp3_44100_128`,{text:$,model_id:this.config.model},AbortSignal.any([Z,AbortSignal.timeout(60000)]))}}var Uw8=L(()=>{Fw8()});import{createHmac as aK5,timingSafeEqual as eK5}from"crypto";import{z as _s}from"zod";function Bw8($,Z){if(!Z)throw Error("Voice requires a shared authentication secret");return aK5("sha256",Z).update(`studio-voice-session:v1:${$}`).digest("base64url")}function Dw8($,Z){let Q=Buffer.from(JSON.stringify(Nw8.parse($))).toString("base64url");return`${Q}.${Bw8(Q,Z)}`}function Lw8($,Z,Q=Date.now()){if(!Z||$.length>4096)return null;let Y=$.split(".");if(Y.length!==2)return null;let[X,J]=Y;if(!X||!J)return null;let G=Buffer.from(Bw8(X,Z)),W=Buffer.from(J);if(W.length!==G.length||!eK5(W,G))return null;try{let K=Nw8.safeParse(JSON.parse(Buffer.from(X,"base64url").toString()));if(!K.success||K.data.expiresAt<=Q||K.data.expiresAt>Q+zO)return null;return K.data}catch{return null}}var Nw8;var Ow8=L(()=>{kB();Nw8=_s.object({sessionId:_s.string().uuid(),organizationId:_s.string().min(1).max(256),userId:_s.string().min(1).max(256),threadId:_s.string().min(1).max(256),expiresAt:_s.number().int().positive()})});import{z as MT1}from"zod";function jw8($,Z){if(Z?.voice_model!=null&&Z.voice_provider==null)throw Error("A voice model override requires a provider");let Q=Z?.voice_provider??$.voiceConversationProvider;return VT1.parse({provider:Q,model:Z?.voice_model??(Q==="openai"?$.openaiLiveModel:$.elevenlabsConversationModel)})}var VT1;var ww8=L(()=>{VT1=MT1.object({provider:MT1.enum(["elevenlabs","openai"]),model:MT1.string().trim().min(1).max(128)})});import{createHash as $H5}from"crypto";import{z as vs}from"zod";function bs($){return`user.${$H5("sha256").update(JSON.stringify([$.organizationId,$.userId])).digest("hex")}`}class kT1{deps;kvPromise;constructor($){this.deps=$}kv(){let $=this.deps.getConnection();if(!$||$.isClosed())throw new R1(503,{message:"Voice transport is unavailable"});return this.kvPromise??=new Ew8.Kvm(Sg0.jetstream($)).create("STUDIO_VOICE_SESSIONS",{storage:Sg0.StorageType.Memory,ttl:Pw8.nanos(zO),max_bytes:10485760}).catch((Z)=>{throw this.kvPromise=void 0,Z}),this.kvPromise}adapter(){if(!this.deps.adapter)throw new R1(503,{message:"Voice is not configured on this deployment"});return this.deps.adapter}async create($,Z=!1,Q="en",Y){let X;if(Z)try{X=jw8(this.deps.defaults,Y)}catch{throw new R1(503,{message:"Voice configuration is invalid"})}let J=X?this.deps.conversationAdapters[X.provider]:this.adapter();if(!J)throw new R1(503,{message:"Voice is not configured on this deployment"});let G={...$,sessionId:crypto.randomUUID(),expiresAt:Date.now()+zO},W=Dw8(G,this.deps.secret),K=await this.kv(),H=bs(G),F=await K.get(H),U=F?.operation==="PUT"?Cg0.parse(F.json()):null,N=IT1.encode(JSON.stringify({sessionId:G.sessionId,expiresAt:G.expiresAt,conversation:X,characters:0,requests:0}));try{if(F&&U&&U.expiresAt<=Date.now())await K.update(H,N,F.revision);else await K.create(H,N)}catch{throw new R1(409,{message:"Close your other voice session before starting a new one"})}try{if(X&&"createSession"in J){let D=await J.createSession({language:Q,model:X.model,safetyIdentifier:bs($)});return{token:W,...D,expiresAt:G.expiresAt}}let B=await this.adapter().createTranscriptionToken();return{token:W,transcriptionToken:B,expiresAt:G.expiresAt}}catch(B){throw await this.release(G),B}}authorize($,Z){let Q=Lw8(Z,this.deps.secret);if(!Q||Q.organizationId!==$.organizationId||Q.userId!==$.userId||Q.threadId!==$.threadId)throw new R1(403,{message:"Invalid voice session"});return Q}async connect($,Z){let Q=this.authorize($,Z.token),Y=await this.kv(),X=bs(Q),J=await Y.get(X),G=J?.operation==="PUT"?Cg0.parse(J.json()):null;if(!J||!G||G.sessionId!==Q.sessionId||G.expiresAt<=Date.now())throw new R1(403,{message:"Voice session expired"});let W=G.conversation?this.deps.conversationAdapters[G.conversation.provider]:null;if(!W?.negotiate||!G.conversation)throw new R1(409,{message:"Voice session does not support SDP negotiation"});if(G.connected)throw new R1(409,{message:"Voice session already connected"});try{await Y.update(X,IT1.encode(JSON.stringify({...G,connected:!0})),J.revision)}catch{throw new R1(409,{message:"Voice session is busy"})}return W.negotiate({sdp:Z.sdp,language:Z.language,model:G.conversation.model,safetyIdentifier:X})}async speak($,Z,Q,Y){let X=this.authorize($,Z),J=await this.kv(),G=bs(X);for(let W=0;;W++){let K=await J.get(G),H=K?.operation==="PUT"?Cg0.parse(K.json()):null;if(!K||!H||H.sessionId!==X.sessionId||H.expiresAt<=Date.now())throw new R1(403,{message:"Voice session expired"});if(H.characters+Q.length>24000||H.requests>=120)throw new R1(429,{message:"Voice session speech limit reached"});try{await J.update(G,IT1.encode(JSON.stringify({...H,characters:H.characters+Q.length,requests:H.requests+1})),K.revision);break}catch{if(W>=2)throw new R1(409,{message:"Voice session is busy"})}}return this.adapter().synthesize(Q,Y)}async release($){let Z=await this.kv(),Q=await Z.get(bs($));if(Q?.operation==="PUT"&&Cg0.parse(Q.json()).sessionId===$.sessionId)await Z.delete(bs($),{previousSeq:Q.revision})}async revoke($,Z){await this.release(this.authorize($,Z))}}var Sg0,Ew8,Pw8,Cg0,IT1;var zw8=L(()=>{BG();kB();Ow8();ww8();Sg0=_(xH(),1),Ew8=_(_q(),1),Pw8=_(o2(),1),Cg0=vs.object({sessionId:vs.string().uuid(),expiresAt:vs.number(),connected:vs.boolean().optional(),conversation:VT1.optional(),characters:vs.number().int().nonnegative(),requests:vs.number().int().nonnegative()}),IT1=new TextEncoder});import{z as c1}from"zod";function YD($,Z="invalid_request_error",Q=null,Y=null){return{error:{message:$,type:Z,param:Q,code:Y}}}function FH5($){if(!$)return null;let Z=$.indexOf(":");if(Z===-1)return{credentialId:null,modelId:$};let Q=$.substring(0,Z),Y=$.substring(Z+1);if(!Q||!Y)return null;return{credentialId:Q,modelId:Y}}function UH5($,Z,Q){try{return JSON.parse($)}catch{throw new qw8(`Invalid JSON in tool call arguments for function '${Q}' (tool_call_id: ${Z}): ${$}`)}}function NH5($){let Z={};for(let Q of $)if(Q.role==="assistant"&&Q.tool_calls)for(let Y of Q.tool_calls)Z[Y.id]=Y.function.name;return $.map((Q)=>{switch(Q.role){case"system":return{role:"system",content:Q.content};case"user":if(typeof Q.content==="string")return{role:"user",content:Q.content};return{role:"user",content:Q.content.map((X)=>{if(X.type==="text")return{type:"text",text:X.text};return{type:"image",image:X.image_url.url}})};case"assistant":if(Q.tool_calls&&Q.tool_calls.length>0)return{role:"assistant",content:Q.tool_calls.map((X)=>({type:"tool-call",toolCallId:X.id,toolName:X.function.name,input:UH5(X.function.arguments,X.id,X.function.name)}))};return{role:"assistant",content:Q.content??""};case"tool":let Y=Z[Q.tool_call_id]??"unknown";return{role:"tool",content:[{type:"tool-result",toolCallId:Q.tool_call_id,toolName:Y,output:{type:"text",value:Q.content}}]}}})}function BH5($){let Z=$.map((Q)=>{let Y=Q.function.parameters?qN(Q.function.parameters):qN({type:"object",properties:{}});return[Q.function.name,s$({description:Q.function.description,inputSchema:Y})]});return Object.fromEntries(Z)}function DH5($){if(!$)return;return{openai:{response_format:$}}}function LH5(){return`chatcmpl-${crypto.randomUUID().replace(/-/g,"").substring(0,29)}`}function Aw8($,Z,Q,Y,X,J){let G={model:$,instructions:Z.filter((W)=>W.role==="system"),messages:Z.filter((W)=>W.role!=="system"),tools:Q,temperature:Y.temperature,maxOutputTokens:Y.max_tokens,topP:Y.top_p,frequencyPenalty:Y.frequency_penalty,presencePenalty:Y.presence_penalty,stopSequences:Y.stop?Array.isArray(Y.stop)?Y.stop:[Y.stop]:void 0,abortSignal:J};return X?{...G,providerOptions:X}:G}function Tw8($){if($==="tool-calls")return"tool_calls";if($==="length")return"length";return"stop"}var ZH5=256,QH5,YH5,XH5,JH5,GH5,WH5,KH5,HH5,qw8,Rw8,Mw8;var Vw8=L(()=>{l4();K8();Us();FU();QH5=c1.object({type:c1.literal("function"),function:c1.object({name:c1.string(),description:c1.string().optional(),parameters:c1.record(c1.string(),c1.unknown()).optional()})}),YH5=c1.object({id:c1.string(),type:c1.literal("function"),function:c1.object({name:c1.string(),arguments:c1.string()})}),XH5=c1.discriminatedUnion("role",[c1.object({role:c1.literal("system"),content:c1.string(),name:c1.string().optional()}),c1.object({role:c1.literal("user"),content:c1.union([c1.string(),c1.array(c1.union([c1.object({type:c1.literal("text"),text:c1.string()}),c1.object({type:c1.literal("image_url"),image_url:c1.object({url:c1.string(),detail:c1.string().optional()})})]))]),name:c1.string().optional()}),c1.object({role:c1.literal("assistant"),content:c1.string().nullable().optional(),name:c1.string().optional(),tool_calls:c1.array(YH5).optional()}),c1.object({role:c1.literal("tool"),content:c1.string(),tool_call_id:c1.string()})]),JH5=c1.object({type:c1.literal("text")}),GH5=c1.object({type:c1.literal("json_object")}),WH5=c1.object({type:c1.literal("json_schema"),json_schema:c1.object({name:c1.string(),description:c1.string().optional(),schema:c1.record(c1.string(),c1.unknown()),strict:c1.boolean().optional()})}),KH5=c1.union([JH5,GH5,WH5]),HH5=c1.object({model:c1.string().describe("Format: 'model_id' or 'credential_id:model_id'"),messages:c1.array(XH5),stream:c1.boolean().optional().default(!1),temperature:c1.number().min(0).max(2).optional(),max_tokens:c1.number().positive().optional(),top_p:c1.number().min(0).max(1).optional(),frequency_penalty:c1.number().min(-2).max(2).optional(),presence_penalty:c1.number().min(-2).max(2).optional(),stop:c1.union([c1.string(),c1.array(c1.string())]).optional(),tools:c1.array(QH5).optional(),tool_choice:c1.union([c1.literal("auto"),c1.literal("none"),c1.literal("required"),c1.object({type:c1.literal("function"),function:c1.object({name:c1.string()})})]).optional(),response_format:KH5.optional(),user:c1.string().optional()});qw8=class qw8 extends Error{constructor($){super($);this.name="MessageConversionError"}};Rw8=new Z1;Rw8.post("/:org/v1/chat/completions",async($)=>{let Z=$.get("studioContext"),Q=$.req.param("org");try{if(!Z.auth.apiKey?.id)return $.json(YD("API key authentication required. Provide a valid API key via Authorization header.","authentication_error"),401);if(!Z.organization)return $.json(YD("Organization context is required. Ensure your API key has organization metadata.","invalid_request_error","organization"),400);if((Z.organization.slug??Z.organization.id)!==Q)return $.json(YD("Organization mismatch. The API key's organization does not match the requested organization.","invalid_request_error","organization"),403);let Y=await $.req.json(),X=HH5.safeParse(Y);if(!X.success){let j=X.error.issues[0]??{message:"Invalid request",path:[]};return $.json(YD(`Invalid request: ${j.message}`,"invalid_request_error",j.path.length>0?j.path.join("."):null),400)}let J=X.data,G=FH5(J.model);if(!G)return $.json(YD("Invalid model format. Expected 'model_id' or 'credential_id:model_id' (e.g., 'claude-sonnet-4-6' or 'key_abc123:claude-sonnet-4-6')","invalid_request_error","model"),400);let{credentialId:W}=G,{modelId:K}=G;if(!W){let w=(await Z.storage.aiProviderKeys.list({organizationId:Z.organization.id})).find((E)=>mA(E.providerId));if(!w)return $.json(YD("No AI provider credentials configured for this organization. Add a credential in settings or specify one explicitly via 'credential_id:model_id'.","invalid_request_error","model"),400);W=w.id}let H;try{H=await Z.aiProviders.activate(W,Z.organization.id)}catch{return $.json(YD(`AI provider credential not found or inaccessible: ${W}`,"invalid_request_error","model"),404)}let F=H.aiSdk.languageModel(K),U=NH5(J.messages),N=J.tools?BH5(J.tools):void 0,B=DH5(J.response_format),D=LH5(),O=Math.floor(Date.now()/1000);if(J.stream)return Bj($,async(j)=>{let w=Aw8(F,U,N,J,B,$.req.raw.signal);try{let E=Ut(w),P=!1,T=0,z="",A=async()=>{if(z.length===0)return;let R=z;z="",await j.writeSSE({data:JSON.stringify({id:D,object:"chat.completion.chunk",created:O,model:J.model,choices:[{index:0,delta:{content:R},finish_reason:null}]})})};for await(let R of E.stream){if(!P&&(R.type==="text-delta"||R.type==="tool-call"))await j.writeSSE({data:JSON.stringify({id:D,object:"chat.completion.chunk",created:O,model:J.model,choices:[{index:0,delta:{role:"assistant",content:""},finish_reason:null}]})}),P=!0;if(R.type==="text-delta"){if(z+=R.text,z.length>=ZH5)await A()}else if(R.type==="tool-call"){await A();let f=T++;await j.writeSSE({data:JSON.stringify({id:D,object:"chat.completion.chunk",created:O,model:J.model,choices:[{index:0,delta:{tool_calls:[{index:f,id:R.toolCallId,type:"function",function:{name:R.toolName,arguments:JSON.stringify(R.input)}}]},finish_reason:null}]})})}else if(R.type==="finish")await A(),await j.writeSSE({data:JSON.stringify({id:D,object:"chat.completion.chunk",created:O,model:J.model,choices:[{index:0,delta:{},finish_reason:Tw8(R.finishReason)}],usage:R.totalUsage?{prompt_tokens:R.totalUsage.inputTokens??0,completion_tokens:R.totalUsage.outputTokens??0,total_tokens:R.totalUsage.totalTokens??0}:void 0})})}await A(),await j.writeSSE({data:"[DONE]"})}catch(E){let P=E;console.error("[openai-compat:stream] Error:",P.message),await j.writeSSE({data:JSON.stringify({error:{message:P.message,type:"server_error"}})})}});else{let j=Aw8(F,U,N,J,B,$.req.raw.signal),w=await RO(j),E={role:"assistant",content:w.text||null};if(w.toolCalls&&w.toolCalls.length>0)E.tool_calls=w.toolCalls.map((P)=>({id:P.toolCallId,type:"function",function:{name:P.toolName,arguments:JSON.stringify("input"in P?P.input:{})}})),E.content=null;return $.json({id:D,object:"chat.completion",created:O,model:J.model,choices:[{index:0,message:E,finish_reason:Tw8(w.finishReason)}],usage:{prompt_tokens:w.usage?.inputTokens??0,completion_tokens:w.usage?.outputTokens??0,total_tokens:w.usage?.totalTokens??0}})}}catch(Y){let X=Y;if(X.name==="AbortError")return $.json(YD("Request aborted","invalid_request_error"),400);if(X.name==="MessageConversionError")return $.json(YD(X.message,"invalid_request_error","messages"),400);return console.error("[openai-compat] Error:",X.message,X.stack),$.json(YD(X.message,"server_error"),500)}});Mw8=Rw8});function OH5($){if(typeof $!=="object"||$===null)return!1;let Q=$.repository?.url;return typeof Q==="string"&&Q.length>0}function Iw8(){let $=new Z1;return $.use("*",async(Z,Q)=>{await Q(),Z.header("Cache-Control","private, no-store"),Z.header("Vary","Cookie")}),$.get("/",async(Z)=>{let Q=Z.get("studioContext"),Y=S0(Q);if(!Y)return Z.json({error:"Authentication required"},401);let J=(Z.req.query("site")??"").trim().toLowerCase();if(!_5(J))return Z.json({error:"Invalid site slug"},400);let G=await Q.db.selectFrom("member").innerJoin("organization","organization.id","member.organizationId").select(["organization.id as id","organization.slug as slug","organization.name as name","organization.metadata as metadata"]).where("member.userId","=",Y).execute(),W=[];for(let H of G){if(!H.slug||P9(H))continue;let F=await Q.storage.virtualMcps.list(H.id);for(let U of F){if(nA(U)!==J)continue;if(!OH5(U.metadata))continue;W.push({orgSlug:H.slug,orgName:H.name??H.slug,project:{id:U.id,title:U.title,icon:U.icon??null}})}}let K={matches:W};return Z.json(K)}),$}var kw8=L(()=>{K8();eY()});var _g0;var CT1=L(()=>{_g0={name:"decocms",version:"4.511.0",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 dev:server","dev:server":"NODE_ENV=development bun --env-file=.env --watch 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","db:migrate:dbos":"bun run ./dist/server/migrate-dbos.js",check:"tsc --noEmit",start:"bun run ./dist/server/server.js",migrate:"bun run src/database/migrate.ts","migrate:dbos":"bun run src/database/migrate-dbos.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":"^4.0.58","@ai-sdk/google":"^4.0.76","@ai-sdk/openai":"^4.0.71","@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","@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":"^3.1.0","@opentelemetry/core":"^2.6.0",kysely:"^0.28.12","posthog-node":"^5.0.0"},devDependencies:{"@ai-sdk/provider":"^4.0.17","@better-auth/sso":"1.4.1","@decocms/better-auth":"1.5.17","@decocms/bindings":"workspace:*","@decocms/blocks":"8.5.1","@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","@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:"^7.0.107","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"}}});function EH5(){let $=process.env.POSTHOG_KEY;if(!$)return null;return{key:$,host:process.env.POSTHOG_HOST??wH5}}var Cw8,wH5="https://ph.studio.decocms.com",Sw8;var _w8=L(()=>{K8();q10();Zu();H9();u1();jo();Oz1();CT1();Cw8=new Z1;Cw8.get("/",($)=>{let Z={version:_g0.version,theme:r3$(),...NF().logo&&{logo:NF().logo},...fO()&&{internalUrl:w$$()},...B0().enableDecoImport&&{enableDecoImport:!0},hostingEnabled:!!B0().controlplaneRestUrl&&!!B0().controlplaneServiceToken,hostingControlPlaneGa:B0().hostingControlPlaneGa,monitorEnabled:!!B0().clickhouseAnalyticsUrl&&!!B0().clickhouseAnalyticsPassword,monitorGa:B0().monitorGa,orderMonitorEnabled:!!B0().orderMonitorIngestUrl&&U2(),plansEnabled:B0().plansEnabled,auth:FF8(),posthog:EH5(),googleMapsApiKey:process.env.GOOGLE_MAPS_API_KEY?.trim()||null,runtime:{agentSandbox:qU()}};return $.header("Cache-Control","no-store"),$.json({success:!0,config:Z})});Sw8=Cw8});import{z as R$}from"zod";var PH5,vw8;var bw8=L(()=>{PH5=R$.object({check_id:R$.string(),title:R$.string(),description:R$.string().optional(),impact:R$.string().optional(),why:R$.string().optional(),category:R$.string(),severity:R$.string(),value_band:R$.string().optional(),value_driver:R$.string().optional(),controllability:R$.string().optional(),pages:R$.array(R$.string()),tasks:R$.array(R$.string()),evidence:R$.string(),sample_scope:R$.string().optional(),sources:R$.array(R$.string())}),vw8=R$.object({domain:R$.string(),brand:R$.string(),favicon:R$.string().optional(),scanned_at:R$.string().nullable(),lang:R$.string(),score:R$.number().nullable(),band:R$.string().nullable(),totals:R$.object({measured:R$.number(),registry_total:R$.number(),passed:R$.number(),failed:R$.number(),blocked:R$.number()}),buckets:R$.array(R$.object({id:R$.enum(["critical","important","worth"]),label:R$.string(),items:R$.array(PH5)})),passing:R$.object({count:R$.number(),items:R$.array(R$.object({check_id:R$.string(),title:R$.string()}))}),not_measured:R$.object({count:R$.number(),groups:R$.array(R$.object({reason:R$.string(),label:R$.string(),count:R$.number(),checks:R$.array(R$.string())}))}),categories:R$.array(R$.object({key:R$.string(),label:R$.string(),score:R$.number().nullable(),band:R$.string().nullable(),pass:R$.number(),fail:R$.number()})),screenshots:R$.array(R$.object({url:R$.string(),page_type:R$.string().optional(),viewport:R$.enum(["desktop","mobile"]),image_url:R$.string()}))})});function xw8($,Z,Q){let Y=Q?`?${new URLSearchParams({lang:Q}).toString()}`:"";return`${SK({})}/api/v2/public/diagnostics/${encodeURIComponent($)}/onepager${Z}${Y}`}async function vg0($,Z={}){let Q=await fetch(xw8($,"",Z.lang),{headers:{Accept:"application/json"},signal:Z.signal});if(Q.status===404)return null;if(!Q.ok)throw Error(`onepager read HTTP ${Q.status}`);return vw8.parse(await Q.json())}async function fw8($,Z={}){let Q=await fetch(xw8($,".md",Z.lang),{headers:{Accept:"text/markdown"},signal:Z.signal});if(Q.status===404)return null;if(!Q.ok)throw Error(`onepager markdown HTTP ${Q.status}`);return Q.text()}var ST1=L(()=>{bw8();xL()});import{join as yw8}from"path";async function AH5($){try{let Z=await vg0($,{signal:AbortSignal.timeout(zH5)});if(!Z?.scanned_at)return null;return{brand:Z.brand.trim()||iw1($),...Z.score!==null?{score:Z.score}:{}}}catch{return null}}function J3($){return $.replaceAll("&","&").replaceAll("<","<").replaceAll(">",">").replaceAll('"',""")}function TH5($,Z){let Q=qu($),Y=Z?.brand?.trim()||iw1(Q),X=fG8(Q,128),G=`${(B0().baseUrl??"https://studio.decocms.com").replace(/\/+$/,"")}/report/${encodeURIComponent(Q)}`,{title:W,description:K}=yG8({brand:Y,domain:Q,score:Z?.score}),H=`${G}/og.png`,F=`${Y} Deco Score by decocms`;return[`<title>${J3(W)}</title>`,`<meta name="description" content="${J3(K)}" />`,'<meta name="robots" content="noindex, follow" />','<meta property="og:type" content="website" />','<meta property="og:site_name" content="decocms" />',`<meta property="og:title" content="${J3(W)}" />`,`<meta property="og:description" content="${J3(K)}" />`,`<meta property="og:url" content="${J3(G)}" />`,`<meta property="og:image" content="${J3(H)}" />`,'<meta property="og:image:width" content="1200" />','<meta property="og:image:height" content="630" />',`<meta property="og:image:alt" content="${J3(F)}" />`,'<meta name="twitter:card" content="summary_large_image" />',`<meta name="twitter:title" content="${J3(W)}" />`,`<meta name="twitter:description" content="${J3(K)}" />`,`<meta name="twitter:image" content="${J3(H)}" />`,`<meta name="twitter:image:alt" content="${J3(F)}" />`,`<link rel="canonical" href="${J3(G)}" />`,`<link rel="alternate" type="text/markdown" href="${J3(G)}.md" />`,`<link rel="icon" href="${J3(X)}" sizes="any" />`].join(`
|
|
4495
4495
|
`)}function qH5($,Z){return $.replace(/<title>[\s\S]*?<\/title>\s*/i,"").replace(/<meta\s+name="(?:description|twitter:[^"]*)"[^>]*>\s*/gi,"").replace(/<meta\s+property="og:[^"]*"[^>]*>\s*/gi,"").replace(/<link\s+rel="icon"[^>]*>\s*/gi,"").replace("</head>",` ${Z}
|
|
4496
4496
|
</head>`)}function gw8($){let Z=new Z1;return Z.get("/:domain/og.png",async(Q)=>{let Y=qu(Q.req.param("domain")),X=async()=>{let J=$?Bun.file(yw8($,"report-og-fallback.png")):null;if(!J||!await J.exists())return Q.notFound();return Q.body(new Uint8Array(await J.arrayBuffer()),200,{"Content-Type":"image/png","Cache-Control":"public, max-age=0, s-maxage=3600"})};try{let J=await fetch(`${SK({})}/api/v2/public/diagnostics/${encodeURIComponent(Y)}/og.png`,{signal:AbortSignal.timeout(RH5)}),G=J.headers.get("content-type")??"";if(!J.ok||!G.startsWith("image/")||!J.body)return X();return Q.body(J.body,200,{"Content-Type":G,"Cache-Control":"public, max-age=0, s-maxage=604800"})}catch{return X()}}),Z.get("/:file{.+\\.md}",async(Q)=>{let Y=qu(Q.req.param("file").replace(/\.md$/,""));try{let X=await fw8(Y,{lang:Q.req.query("lang")?.trim()||void 0,signal:AbortSignal.timeout(MH5)});if(X===null)return Q.text("Deco Score not found",404);return Q.body(X,200,{"Content-Type":"text/markdown; charset=utf-8","Cache-Control":"public, max-age=600, stale-while-revalidate=3600","Access-Control-Allow-Origin":"*"})}catch{return Q.text("Deco Score unavailable",502)}}),Z.get("/:domain",async(Q)=>{let Y=Q.req.param("domain"),X=$?yw8($,"index.html"):null,J=X?Bun.file(X):null;if(!J||!await J.exists())return Q.notFound();let G=await J.text();try{let W=await AH5(qu(Y)),K=TH5(Y,W);return Q.html(qH5(G,K),200,{"Cache-Control":"public, max-age=0, s-maxage=300"})}catch{return Q.html(G)}}),Z}var zH5=2500,RH5=1e4,MH5=1e4;var hw8=L(()=>{K8();xL();ST1();u1()});function bg0($,Z){return fetch(`${SK({})}${$}`,Z)}async function VH5($,Z){let Q=await vg0($,{lang:Z});if(!Q)return{status:"not_found",report:null};return Q.scanned_at?{status:"ready",report:Q}:{status:"empty",report:null}}function CH5($){let Z=typeof $==="object"&&$!==null?$:{},Q=typeof Z.domain==="string"?Z.domain.trim():"",Y=typeof Z.distinctId==="string"&&Z.distinctId.trim()&&Z.distinctId.length<=200?Z.distinctId.trim():void 0;return{domain:Q,distinctId:Y}}var IH5,kH5=8192,Lj,uw8=async($,Z)=>{if(!$.get("reportUser"))return $.json({error:"Authentication required"},401);await Z();return},lw8;var mw8=L(()=>{K8();Q3();nK();xL();ST1();IH5=new Set(["complete","errored","terminated","unknown"]);Lj=new Z1;Lj.use("*",async($,Z)=>{let Q=await B4.api.getSession({headers:$.req.raw.headers});$.set("reportUser",Q?.user?.id?{email:Q.user.email}:void 0),await Z(),$.header("Cache-Control","private, no-store"),$.header("Vary","Cookie");return});Lj.use("/link-token/*",uw8);Lj.use("/suggest",uw8);Lj.get("/site/:domain",async($)=>{let Z=$.req.param("domain").trim();if(!Z)return $.json({error:"domain is required"},400);let Q=$.req.query("lang")?.trim()||void 0;try{return $.json(await VH5(Z,Q))}catch{return $.json({error:"report read failed"},502)}});Lj.post("/run",C6({maxSize:kH5,onError:($)=>$.json({error:"request body too large"},413)}),async($)=>{let Z=$.get("reportUser"),Q;try{Q=await $.req.json()}catch{return $.json({error:"invalid JSON"},400)}let{domain:Y,distinctId:X}=CH5(Q);if(!Y)return $.json({error:"domain is required"},400);let J=Z?.email;try{let G=await bg0("/api/v2/diagnostics/run",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${HP({})}`},body:JSON.stringify({url:Y,...J?{email:J}:{},distinct_id:X})});if(!G.ok)return $.json({error:`run HTTP ${G.status}`},502);let W=await G.json(),K=W.blocked?{state:"blocked"}:W.status==="fresh"?{state:"fresh"}:W.mode==="sync"?{state:"sync"}:{state:"running",id:W.id??null};return $.json(K)}catch{return $.json({error:"run failed"},502)}});Lj.get("/status",async($)=>{let Z=$.req.query("id");if(!Z)return $.json({error:"id is required"},400);try{let Q=await bg0(`/api/v2/diagnostics/status?id=${encodeURIComponent(Z)}`,{headers:{Authorization:`Bearer ${HP({})}`}});if(!Q.ok)return $.json({error:`status HTTP ${Q.status}`},502);let X=(await Q.json()).status??"unknown",J={done:IH5.has(X),status:X};return $.json(J)}catch{return $.json({error:"status failed"},502)}});Lj.get("/link-token/:id",async($)=>{let Z=$.req.param("id");try{let Q=await bg0(`/api/v2/public/link-tokens/${encodeURIComponent(Z)}`,{headers:{Accept:"application/json"}});if(Q.status===404)return $.json(null);if(!Q.ok)return $.json({error:`link token HTTP ${Q.status}`},502);return $.json(await Q.json())}catch{return $.json({error:"link token resolve failed"},502)}});Lj.get("/suggest",async($)=>{let Z=($.req.query("q")??"").trim().slice(0,64);if(Z.length<2)return $.json({suggestions:[]});try{let Q=await bg0(`/api/v2/public/suggest?q=${encodeURIComponent(Z)}`,{headers:{Accept:"application/json"}});if(!Q.ok)return $.json({suggestions:[]});let Y=await Q.json();return $.json({suggestions:Array.isArray(Y.suggestions)?Y.suggestions:[]})}catch{return $.json({suggestions:[]})}});lw8=Lj});var SH5=1048576,_T1;var cw8=L(()=>{K8();Q3();u1();Zz1();_T1=new Z1;_T1.post("/webhook",C6({maxSize:SH5,onError:($)=>$.json({error:"payload too large"},413)}),async($)=>{let Z=B0().stripeWebhookSecret;if(!Z)return $.json({error:"stripe billing not configured"},503);let Q=await $.req.text();if(!TH8(Q,$.req.header("stripe-signature"),Z))return $.json({error:"invalid signature"},400);let X=qH8(Q);if(!X)return $.json({error:"invalid payload"},400);let J=await RH8(X);return console.log("stripe webhook",{eventId:X.id,type:X.type,livemode:X.livemode,...J}),$.json({received:!0})})});import{timingSafeEqual as _H5}from"crypto";function xH5($,Z,Q){if(!Z?.startsWith("sha256="))return!1;let Y=new Bun.CryptoHasher("sha256",Q).update($).digest("hex"),X=Z.slice(7);if(X.length!==Y.length)return!1;return _H5(Buffer.from(X),Buffer.from(Y))}function fH5($,Z){let Q=Z,Y=Q?.repository?.name,X=Q?.repository?.owner?.login;if(typeof Y!=="string"||typeof X!=="string")return[];let J=[];if($==="check_suite"){if(Q.action!=="completed")return[];let G=Q.check_suite?.pull_requests;for(let W of Array.isArray(G)?G:[]){let K=W?.number;if(typeof K==="number")J.push(K)}}else if($==="issue_comment"&&Q.issue?.pull_request){let G=Q.issue.number;if(typeof G==="number")J.push(G)}return[...new Set(J)].map((G)=>({repoOwner:X,repoName:Y,number:G}))}function dw8($){let Z=new Z1;return Z.post("/webhook",C6({maxSize:vH5,onError:(Q)=>Q.json({error:"payload too large"},413)}),async(Q)=>{let Y=process.env.GITHUB_WEBHOOK_SECRET;if(!Y)return Q.json({error:"github webhook not configured"},503);let X=await Q.req.text();if(!xH5(X,Q.req.header("x-hub-signature-256"),Y))return Q.json({error:"invalid signature"},400);let J=Q.req.header("x-github-event");if(J!=="push"&&!bH5.has(J??""))return Q.json({ok:!0,ignored:"event"});let G;try{G=JSON.parse(X)}catch{return Q.json({error:"invalid payload"},400)}if(J==="push"){let H=G.ref,F=G.repository?.full_name;if(!H||!F)return Q.json({ok:!0,ignored:"shape"});return i50().then((U)=>U?.markTenantPoolsDirty(`https://github.com/${F}`,H)).catch((U)=>console.warn(`[github-webhook] tenant pool refresh for ${F}@${H} failed: ${U instanceof Error?U.message:String(U)}`)),Q.json({ok:!0})}let W=fH5(J??"",G);if(W.length===0)return Q.json({ok:!0,ignored:"no-pr"});let K=await yH5($,W);return Q.json({ok:!0,refreshed:K})}),Z}async function yH5($,Z){let Q=0;for(let Y of Z){let X=$.taskBoard(),J;try{J=await X.findPrLinks(Y)}catch(G){console.error("[github-webhook] pr link lookup failed:",G);continue}for(let G of J)try{let W=await X.getById(G.taskBoardItemId,G.organizationId),K=W?await $.contextFactory()(G.organizationId,W.assignedBy??W.createdBy):null;if(!K)continue;if(await X48(K,G.organizationId,G.taskBoardItemId)!==null)Q++}catch(W){console.error(`[github-webhook] pr card refresh failed for ${G.taskBoardItemId}:`,W)}}return Q}var vH5=5242880,bH5;var iw8=L(()=>{K8();Q3();CX();gQ();bH5=new Set(["check_suite","issue_comment"])});import{DBOS as bT1,SchedulerMode as gH5}from"@dbos-inc/dbos-sdk";async function uH5(){try{return await lH5()}catch($){return console.warn(`[sandbox-credential-push] push failed: ${$ instanceof Error?$.message:String($)}`),null}}async function lH5(){if(!d50())return null;let[{RemoteSandboxProvider:$},{SandboxProviderRouter:Z}]=await Promise.all([Promise.resolve().then(() => (YF1(),QF1)),Promise.resolve().then(() => (ZF1(),$F1))]),Q=await i50(),Y=Q instanceof Z?Q.providers.kubernetes:Q;if(!(Y instanceof $))return null;let{db:X}=E8(),{sandboxes:J,pools:G}=await Y.list(),W=Date.now(),K=Bp$({sandboxes:J,pools:G,records:await Dp$(X,J,G),legacyPools:sC0(process.env.STUDIO_SANDBOX_TENANT_POOLS),now:W}),{batches:H,failed:F}=await Lp$(K,wj0(X,new GJ(B0().encryptionKey)),{now:W,orgFsLifetimeMs:eC0}),U=0,N=0,B=0;for(let D of H)try{let O=await Y.pushCredentials(D);U+=O.stored,N+=O.kept}catch(O){B++,console.warn(`[sandbox-credential-push] a push batch failed: ${O instanceof Error?O.message:String(O)}`)}return{sandboxes:J.length,pushed:U,kept:N,refused:K.refused,failed:F+B}}async function mH5($,Z){let Q=await bT1.runStep(uH5,{name:"pushSandboxCredentials"});if(Q&&(Q.refused>0||Q.failed>0))console.warn(`[sandbox-credential-push] ${Q.sandboxes} sandboxes: pushed ${Q.pushed}, kept ${Q.kept}, refused ${Q.refused}, failed ${Q.failed}`)}function pw8(){if(vT1)return;if(!B0().agentSandboxEnabled||!d50())return;vT1=bT1.registerWorkflow(mH5,{name:"sandboxCredentialPushWorkflow"}),bT1.registerScheduled(vT1,{name:"sandboxCredentialPushWorkflow",crontab:hH5,mode:gH5.ExactlyOncePerIntervalWhenActive})}var hH5="1,11,21,31,41,51 * * * *",vT1=null;var nw8=L(()=>{S3();Nw();d31();$S0();rC0();CX();u1()});function tw8($){let Z=new aO($.db,new GJ($.encryptionKey)),Q=new Z1;return Q.get("/attachments/:token",async(Y)=>{let X=H$8(Y.req.param("token"));if(!X)return Y.json({error:"Invalid or expired link"},404);let J=await Z.getByOrg(X.organizationId);if(!J)return Y.json({error:"Jira is not connected"},404);let W=await new ZQ(J.siteUrl,J.email,J.apiToken).downloadAttachment(X.attachmentId);if(!W.ok||!W.body)return Y.json({error:"Jira refused the download"},502);let K=new Headers;for(let H of["content-type","content-length","content-disposition"]){let F=W.headers.get(H);if(F)K.set(H,F)}return K.set("cache-control","no-store"),new Response(W.body,{status:200,headers:K})}),Q}var ow8=L(()=>{K8();Nw();kN1();MO()});function xg0(){try{return B0().jiraSettleSeconds*1000}catch{return ez}}function sw8($,Z){let Q=Z.windowMs??ez,Y=$.at(-1);if(!Y)return null;if(Z.changeId!==void 0&&Y.id!==Z.changeId)return{kind:"superseded"};if(Z.now!==void 0&&Z.now-Y.at<Q)return{kind:"moving"};let X=cH5($,Q);if((X.id&&Y.toId?X.id===Y.toId:!1)||!X.id&&X.name===Y.to)return{kind:"returned",change:Y};return{kind:"moved",change:Y,from:X}}function cH5($,Z){for(let Y=$.length-2;Y>=0;Y--){let X=$[Y],J=$[Y+1];if(X&&J&&J.at-X.at>=Z)return{id:X.toId,name:X.to}}let Q=$[0];return{id:Q?.fromId??null,name:Q?.from??null}}var xT1=L(()=>{gO();u1()});function rw8($){if(typeof $!=="object"||$===null)return null;let Z=$;if(Z.webhookEvent!=="jira:issue_updated")return null;let Q=Z.issue?.id,Y=Z.issue?.key,X=Z.changelog?.id;if(typeof Q!=="string"&&typeof Q!=="number"||typeof Y!=="string"||typeof X!=="string"&&typeof X!=="number")return null;let J=Z.changelog?.items?.find((G)=>G.field==="status");if(!J||typeof J.toString!=="string")return null;return{issueId:String(Q),issueKey:Y,toStatus:J.toString,changelogId:String(X)}}async function fT1($,Z,Q){if(!Z.enabled)return"disabled";let Y=Z.organizationId,X=new ZQ(Z.siteUrl,Z.email,Z.apiToken),J=sw8(await X.listStatusChanges(Q.issueId),{changeId:Q.changelogId,now:Q.now,windowMs:xg0()});if(!J)return"no_rule";if(J.kind!=="moved")return J.kind;let{change:G,from:W}=J,K=(await $.storage.automations.listJiraTransitionTriggers(Y,{jiraStatus:G.to,activeOnly:!0})).map((N)=>({...N,from:az(N)})),H=r98(K)&&Z.boardId?s98(await X.getBoardColumnStatusIds(Z.boardId),W.id,G.toId):null,F=o98(K,W.name,H);if(!F)return"no_rule";if(!await $.storage.jiraIntegrations.claimTrigger(Y,Q.issueId,G.id))return"duplicate";return await XH({automationId:F.automation_id,organizationId:Y,triggerId:F.id,target:{kind:"jira",issues:[Q.issueId],move:{toStatus:G.to,fromStatus:W.name,movedBy:G.by,movedAt:new Date(G.at).toISOString()},eventKey:G.id}},{idempotencyKey:`jira:${F.id}:${G.id}`}),"fired"}var yT1=L(()=>{KU();MO();tt();xT1()});import{DBOS as I2,SchedulerMode as dH5}from"@dbos-inc/dbos-sdk";function aw8($){hT1=$}function lT1(){if(!hT1)throw Error("[jira-trigger] runtime not initialized \u2014 setJiraTriggerSweepRuntime() must run before the workflow fires");return hT1}function mT1(){let $=lT1();return new aO($.db,new GJ($.encryptionKey))}async function oH5($){try{let Z=await mT1().getById($);if(!Z?.enabled||!Z.boardId)return{integrationId:$,fired:0};let Q=await hJ(lT1().db,Z.organizationId);if(!Q)return{integrationId:$,fired:0};if((await Q.storage.automations.listJiraTransitionTriggers(Z.organizationId,{activeOnly:!0})).length===0)return{integrationId:$,fired:0};let X=new ZQ(Z.siteUrl,Z.email,Z.apiToken),G=`(${await X.getBoardScopeJql(Z.boardId)}) AND status CHANGED AFTER "-${pH5}m"`,W=0,K;for(let H=0;H<nH5;H++){let F=await X.searchIssues({jql:G,nextPageToken:K});for(let U of F.issues)if(await fT1(Q,Z,{issueId:U.id,now:Date.now()})==="fired")W++;if(K=F.nextPageToken??void 0,!K)break}return{integrationId:$,fired:W}}catch(Z){return{integrationId:$,fired:0,error:Z instanceof Error?Z.message:String(Z)}}}async function sH5($,Z){let Q=await I2.runStep(()=>mT1().listEnabledIds(),{name:"loadJiraIntegrations"});if(Q.length===0)return;let Y=await Promise.all(Q.map((X)=>I2.runStep(()=>oH5(X),{name:`sweepJira:${X}`})));for(let X of Y)if(X.error)console.warn(`[jira-trigger] integration ${X.integrationId} failed: ${X.error}`);else if(X.fired>0)console.log(`[jira-trigger] integration ${X.integrationId} fired ${X.fired} automation(s) the webhook missed`)}async function rH5($,Z){try{let Q=await mT1().getById($);if(!Q?.enabled)return"disabled";let Y=await hJ(lT1().db,Q.organizationId);if(!Y)return"disabled";let X=await fT1(Y,Q,{issueId:Z.issueId,changelogId:Z.changelogId});if(X==="fired")console.log(`[jira-trigger] fired an automation for ${Z.issueKey} after it settled`);else if(X==="returned")console.log(`[jira-trigger] ${Z.issueKey} went back where it was before settling in "${Z.toStatus}"; no fire`);return X}catch(Q){return console.error(`[jira-trigger] settling ${Z.issueKey} failed`,Q instanceof Error?Q.message:Q),"error"}}async function aH5($,Z){await I2.sleep(xg0()+tH5),await I2.runStep(()=>rH5($,Z),{name:"settleJiraMove"})}async function ew8($,Z){if(!uT1)throw Error("[jira-trigger] settle workflow is not registered");await I2.startWorkflow(uT1,{workflowID:`jira-settle:${$}:${Z.changelogId}`})($,Z)}function $E8(){if(gT1)return;uT1=I2.registerWorkflow(aH5,{name:"jiraSettleWorkflow"}),gT1=I2.registerWorkflow(sH5,{name:"jiraTriggerSweepWorkflow"}),I2.registerScheduled(gT1,{name:"jiraTriggerSweepWorkflow",crontab:iH5,mode:dH5.ExactlyOncePerIntervalWhenActive})}var iH5="*/5 * * * *",pH5=20,nH5=5,tH5=5000,hT1=null,uT1=null,gT1=null;var cT1=L(()=>{Nw();pz();MO();xT1();yT1()});function ZE8($){let Z=new aO($.db,new GJ($.encryptionKey)),Q=ZE($.db);async function Y(J,G){let W=rw8(G);if(!W)return;let K=await Z.getByWebhookSecret(J);if(!K?.enabled)return;if((await Q.listJiraTransitionTriggers(K.organizationId,{activeOnly:!0})).length===0)return;await ew8(K.id,W)}let X=new Z1;return X.post("/webhook/:secret",C6({maxSize:eH5}),async(J)=>{let G=J.req.param("secret");if(!await Z.getByWebhookSecret(G))return J.json({error:"Unknown webhook"},404);let K;try{K=await J.req.json()}catch{return J.json({error:"Body must be JSON"},400)}return Y(G,K).catch((H)=>{console.error("[jira-webhook] trigger failed",H)}),J.body(null,202)}),X}var eH5=1048576;var QE8=L(()=>{K8();Q3();Nw();cT1();yT1();M00()});function YE8($,Z){if(Z.startsWith("text/html")||Z.startsWith("image/svg"))$.set("Content-Security-Policy","sandbox allow-scripts allow-modals allow-same-origin")}var XE8,$F5,ZF5,JE8;var GE8=L(()=>{K8();BG();xt();ii();XE8=new Z1,$F5=["range","if-none-match","if-modified-since"],ZF5=["content-type","content-length","content-range","accept-ranges","etag","last-modified"];XE8.get("/:org/files/*",async($)=>{let Z=$.get("studioContext"),Q=Z.organization?.id;if(!Z.auth?.user?.id){if(xo($))return $.redirect(`/login?next=${encodeURIComponent($.req.path)}`,302);throw new R1(401,{message:"Authentication required"})}if(!Q)throw new R1(401,{message:"Organization context required"});let Y=$.req.path.replace(/^.*\/files\//,"");if(!Y)throw new R1(400,{message:"Missing file key"});let X=await MZ0(Y,Z);if(!X)throw new R1(503,{message:"Object storage not configured"});if(X.startsWith("data:")&&bK()){let K=X.match(/^data:([^;]+);base64,(.+)$/s);if(!K)throw new R1(500,{message:"Invalid data URL from storage"});let[,H,F]=K,U=Buffer.from(F,"base64"),N=new Headers({"Content-Type":H,"Cache-Control":"private, max-age=86400"});return YE8(N,H),new Response(U,{status:200,headers:N})}let J=new Headers;for(let K of $F5){let H=$.req.header(K);if(H)J.set(K,H)}let G=await fetch(X,{headers:J});if(G.status===403||G.status===404)throw new R1(404,{message:"File not found"});if(!G.ok&&G.status!==304&&G.status!==416)throw console.error(`[files] upstream storage error ${G.status} for key:`,Y),new R1(502,{message:"Upstream storage error"});let W=new Headers;for(let K of ZF5){let H=G.headers.get(K);if(H)W.set(K,H)}return W.set("Cache-Control","private, max-age=86400"),YE8(W,W.get("content-type")??""),new Response(G.body,{status:G.status,headers:W})});JE8=XE8});var gQ0=y((tu)=>{var QF5=tu&&tu.__createBinding||(Object.create?function($,Z,Q,Y){if(Y===void 0)Y=Q;var X=Object.getOwnPropertyDescriptor(Z,Q);if(!X||("get"in X?!Z.__esModule:X.writable||X.configurable))X={enumerable:!0,get:function(){return Z[Q]}};Object.defineProperty($,Y,X)}:function($,Z,Q,Y){if(Y===void 0)Y=Q;$[Y]=Z[Q]}),YF5=tu&&tu.__exportStar||function($,Z){for(var Q in $)if(Q!=="default"&&!Object.prototype.hasOwnProperty.call(Z,Q))QF5(Z,$,Q)};Object.defineProperty(tu,"__esModule",{value:!0});YF5(B3(),tu)});var HE8=y((WE8)=>{Object.defineProperty(WE8,"__esModule",{value:!0});WE8.version=void 0;WE8.version="3.4.0"});var NE8=y((XD)=>{var XF5=XD&&XD.__importDefault||function($){return $&&$.__esModule?$:{default:$}};Object.defineProperty(XD,"__esModule",{value:!0});XD.NodeTransport=XD.VERSION=void 0;XD.nodeResolveHost=FF5;var J9=gQ0(),JF5=V0("net"),dT1=V0("tls"),GF5=V0("path"),FE8=V0("fs"),WF5=XF5(V0("dns")),KF5=HE8();XD.VERSION=KF5.version;var HF5="nats.js";class UE8{socket;version;lang;yields=[];signal=(0,J9.deferred)();closedNotification=(0,J9.deferred)();options;connected=!1;tlsName="";done=!1;closeError;constructor(){this.lang=HF5,this.version=XD.VERSION}async connect($,Z){this.tlsName=$.tlsName,this.options=Z;let{tls:Q}=this.options,{handshakeFirst:Y}=Q||{};try{if(Y===!0)this.socket=await this.tlsFirst($);else this.socket=await this.dial($);if(this.done)this.socket?.destroy();let X=await this.peekInfo();(0,J9.checkOptions)(X,Z);let{tls_required:J,tls_available:G}=X,W=G===!0&&Z.tls!==null;if(!Y&&(J||W))this.socket=await this.startTLS();if(this.done)this.socket?.destroy();if(J&&this.socket.encrypted!==!0)throw J9.errors.InvalidArgumentError.format("tls","is not available on this server");return this.connected=!0,this.setupHandlers(),this.signal.resolve(),Promise.resolve()}catch(X){let J=X;if(!J)J=new J9.errors.ConnectionError("error connecting - node provided an undefined error");let{code:G}=J,W=G==="ECONNREFUSED"?new J9.errors.ConnectionError("connection refused",{cause:J}):J;throw this.socket?.destroy(),W}}dial($){let Z=(0,J9.deferred)(),Q,Y=(0,JF5.createConnection)($.port,$.hostname,()=>{Z.resolve(Y),Y.removeAllListeners()});return Y.on("error",(X)=>{Q=X}),Y.on("close",()=>{Y.removeAllListeners(),Z.reject(Q)}),Y.setNoDelay(!0),Z}get isClosed(){return this.done}close($){return this._closed($,!1)}peekInfo(){let $=(0,J9.deferred)(),Z;return this.socket.on("data",(Q)=>{this.yields.push(Q);let Y=J9.DataBuffer.concat(...this.yields),X=(0,J9.extractProtocolMessage)(Y);if(X!=="")try{let J=J9.INFO.exec(X);if(!J)throw Error("unexpected response from server");let G=JSON.parse(J[1]);$.resolve(G)}catch(J){$.reject(J)}finally{this.socket.removeAllListeners()}}),this.socket.on("error",(Q)=>{Z=Q}),this.socket.on("close",()=>{this.socket.removeAllListeners(),$.reject(Z)}),$}loadFile($){if(!$)return Promise.resolve();let Z=(0,J9.deferred)();try{if($=(0,GF5.resolve)($),!(0,FE8.existsSync)($))Z.reject(Error(`${$} doesn't exist`));(0,FE8.readFile)($,(Q,Y)=>{if(Q)return Z.reject(Q);Z.resolve(Y)})}catch(Q){Z.reject(Q)}return Z}async loadClientCerts(){let $={},{certFile:Z,cert:Q,caFile:Y,ca:X,keyFile:J,key:G}=this.options.tls;try{if(Z){let W=await this.loadFile(Z);if(W)$.cert=W}else if(Q)$.cert=Q;if(J){let W=await this.loadFile(J);if(W)$.key=W}else if(G)$.key=G;if(Y){let W=await this.loadFile(Y);if(W)$.ca=[W]}else if(X)$.ca=X;return Promise.resolve($)}catch(W){return Promise.reject(W)}}async tlsFirst($){let Z,Q={servername:this.tlsName,rejectUnauthorized:!0};if(this.socket)Q.socket=this.socket;if(typeof this.options.tls==="object")try{let X=await this.loadClientCerts()||{};Q=(0,J9.extend)(Q,this.options.tls,X)}catch(X){return Promise.reject(new J9.errors.ConnectionError(X.message,{cause:X}))}let Y=(0,J9.deferred)();try{let X=(0,dT1.connect)($.port,$.hostname,Q,()=>{X.removeAllListeners(),Y.resolve(X)});X.on("error",(J)=>{Z=J}),X.on("secureConnect",()=>{if(Q.rejectUnauthorized===!1)return;if(!X.authorized)throw X.authorizationError}),X.on("close",()=>{Y.reject(Z),X.removeAllListeners()}),X.setNoDelay(!0)}catch(X){Y.reject(new J9.errors.ConnectionError(X.message,{cause:X}))}return Y}async startTLS(){let $,Z={socket:this.socket,servername:this.tlsName,rejectUnauthorized:!0};if(typeof this.options.tls==="object")try{let Y=await this.loadClientCerts()||{};Z=(0,J9.extend)(Z,this.options.tls,Y)}catch(Y){return Promise.reject(new J9.errors.ConnectionError(Y.message,{cause:Y}))}let Q=(0,J9.deferred)();try{let Y=(0,dT1.connect)(Z,()=>{Y.removeAllListeners(),Q.resolve(Y)});Y.on("error",(X)=>{$=X}),Y.on("secureConnect",()=>{if(Z.rejectUnauthorized===!1)return;if(!Y.authorized)throw Y.authorizationError}),Y.on("close",()=>{Q.reject($),Y.removeAllListeners()})}catch(Y){Q.reject(new J9.errors.ConnectionError(Y.message,{cause:Y}))}return Q}setupHandlers(){let $;this.socket.on("data",(Z)=>{return this.yields.push(Z),this.signal.resolve()}),this.socket.on("error",(Z)=>{$=Z}),this.socket.on("end",()=>{if(this.socket?.destroyed)return;this.socket?.write(new Uint8Array(0),()=>{this.socket?.end()})}),this.socket.on("close",()=>{this._closed($,!1)})}[Symbol.asyncIterator](){return this.iterate()}async*iterate(){while(!0){if(this.yields.length===0)await this.signal;let $=this.yields;this.yields=[];for(let Z=0;Z<$.length;Z++){if(this.options.debug)console.info(`> ${(0,J9.render)($[Z])}`);yield $[Z]}if(this.done)break;else if(this.yields.length===0)$.length=0,this.yields=$,this.signal=(0,J9.deferred)()}}discard(){if(this.done=!0,this.socket)try{this.socket.removeAllListeners(),this.socket.destroy()}catch{}}disconnect(){this._closed(void 0,!0).then().catch()}isEncrypted(){return this.socket instanceof dT1.TLSSocket}_send($){if(this.isClosed||this.socket===void 0)return Promise.resolve();if(this.options.debug)console.info(`< ${(0,J9.render)($)}`);let Z=(0,J9.deferred)();try{this.socket.write($,(Q)=>{if(Q){if(this.options.debug)console.error(`!!! ${(0,J9.render)($)}: ${Q}`);return Z.reject(Q)}return Z.resolve()})}catch(Q){if(this.options.debug)console.error(`!!! ${(0,J9.render)($)}: ${Q}`);Z.reject(Q)}return Z}send($){this._send($).catch((Q)=>{})}async _closed($,Z=!0){if(!this.connected)return;if(this.done){this.socket?.destroy();return}if(this.closeError=$,!$&&this.socket&&Z)try{await this._send(new TextEncoder().encode(""))}catch(Q){if(this.options.debug)console.log("transport close terminated with an error",Q)}try{if(this.socket)this.socket.removeAllListeners(),this.socket?.destroy(),this.socket=void 0}catch(Q){console.log(Q)}this.done=!0,this.closedNotification.resolve(this.closeError)}closed(){return this.closedNotification}}XD.NodeTransport=UE8;function FF5($){let Z=(0,J9.deferred)();return WF5.default.lookup($,{all:!0},(Q,Y)=>{if(Q){Z.reject(Q);return}let X=[];for(let J of Y)X.push(J.address);if(X.length===0)X.push($);Z.resolve(X)}),Z}});var jE8=y((OE8)=>{Object.defineProperty(OE8,"__esModule",{value:!0});OE8.connect=UF5;var BE8=NE8(),DE8=gQ0(),LE8=gQ0();function UF5($={}){if((0,LE8.hasWsProtocol)($))return Promise.reject(LE8.errors.InvalidArgumentError.format("servers","node client doesn't support websockets, use the 'wsconnect' function instead"));return(0,DE8.setTransportFactory)({factory:()=>{return new BE8.NodeTransport},dnsResolveFn:BE8.nodeResolveHost}),DE8.NatsConnectionImpl.connect($)}});var wE8=y((Oj)=>{var BF5=Oj&&Oj.__createBinding||(Object.create?function($,Z,Q,Y){if(Y===void 0)Y=Q;var X=Object.getOwnPropertyDescriptor(Z,Q);if(!X||("get"in X?!Z.__esModule:X.writable||X.configurable))X={enumerable:!0,get:function(){return Z[Q]}};Object.defineProperty($,Y,X)}:function($,Z,Q,Y){if(Y===void 0)Y=Q;$[Y]=Z[Q]}),DF5=Oj&&Oj.__exportStar||function($,Z){for(var Q in $)if(Q!=="default"&&!Object.prototype.hasOwnProperty.call(Z,Q))BF5(Z,$,Q)};Object.defineProperty(Oj,"__esModule",{value:!0});Oj.connect=void 0;var LF5=jE8();Object.defineProperty(Oj,"connect",{enumerable:!0,get:function(){return LF5.connect}});DF5(gQ0(),Oj)});function zE8($){let Z=$?.connectFn??EF5,Q=null,Y=null,X=!1,J=!1,G=!1,W=[];function K(){return Q!==null&&!Q.isClosed()&&!Q.isDraining()&&!G}function H(){console.log(`[NatsProvider] fireReady: ${W.length} callbacks`);for(let N of W)try{N()}catch{}}function F(N){(async()=>{for await(let B of N.status())if(B.type==="disconnect")console.log("[NatsProvider] Disconnected"),G=!0;else if(B.type==="reconnect")console.log("[NatsProvider] Reconnected, re-firing ready callbacks"),G=!1,Y=null,H()})().catch(()=>{})}async function U(N,B){let D=0;while(!J)try{Q=await Z({servers:N,timeout:wF5,reconnect:!0,maxReconnectAttempts:-1,...B?{authenticator:B}:{}}),console.log(`[NatsProvider] Connected to ${Q.getServer()} after ${D} attempt(s)`),Y=null,G=!1,F(Q),H();return}catch{D++;let O=k7(jF5,OF5,D-1,2,0.5);await J$(O)}}return{init(N,B){if(X)return;X=!0,J=!1;let D=B?.creds?fg0.credsAuthenticator(new TextEncoder().encode(B.creds)):B?.user?fg0.usernamePasswordAuthenticator(B.user,B.password):void 0;U(N,D).catch(()=>{})},isConnected(){return K()},getConnection(){return K()?Q:null},getJetStream(){if(!K())return null;if(!Y)Y=PE8.jetstream(Q);return Y},onReady(N){if(W.push(N),K())try{N()}catch{}},async drain(){if(J=!0,X=!1,Y=null,G=!1,Q){let N=Q;Q=null,await N.drain().catch(()=>{})}}}}function EF5($){return EE8.connect($)}var fg0,EE8,PE8,OF5=100,jF5=3000,wF5=3000;var AE8=L(()=>{p$();fg0=_(o2(),1),EE8=_(wE8(),1),PE8=_(xH(),1)});function yg0($,Z){return`${$}.${Z}`}class iT1{cache;constructor($){this.cache=eN({ttlMs:$?.ttlMs??PF5,maxSize:$?.maxSize??zF5})}async get($,Z){return this.cache.get(yg0($,Z))??null}async set($,Z,Q){this.cache.set(yg0($,Z),Q)}async invalidate($,Z){this.cache.delete(yg0($,Z)),this.cache.delete(yg0($,`${Z}:decisions`))}teardown(){this.cache.clear()}}var PF5=600000,zF5=5000;var TE8=()=>{};function gg0($,Z){return`${$}:${Z}`}function pT1($){let Z=eN({ttlMs:$?.ttlMs??AF5,maxSize:$?.maxSize??TF5}),Q=$?.getConnection,Y=crypto.randomUUID(),X=new TextEncoder,J=new TextDecoder,G=null;function W(K,H){let F=Q?.();if(!F)return;try{F.publish(qE8,X.encode(JSON.stringify({organizationId:K,keyId:H,originId:Y})))}catch(U){console.warn("[ProviderKeyCache] Publish failed (non-critical):",U)}}return{get(K,H){return Z.get(gg0(K,H))},set(K,H,F){Z.set(gg0(K,H),F)},invalidate(K,H){Z.delete(gg0(K,H)),W(K,H)},start(){if(G)return;let K=Q?.();if(!K)return;G=K.subscribe(qE8),(async()=>{for await(let H of G)try{let F=JSON.parse(J.decode(H.data));if(F.originId===Y)continue;Z.delete(gg0(F.organizationId,F.keyId))}catch{}})().catch(console.error)},teardown(){G?.unsubscribe(),G=null,Z.clear()}}}var qE8="studio.ai-provider-keys.invalidate",AF5=30000,TF5=5000;var RE8=()=>{};class nT1{options;subscription=null;onCancel=null;encoder=new TextEncoder;originId=crypto.randomUUID();constructor($){this.options=$}async start($){if($)this.onCancel=$;if(this.subscription)return;if(!this.onCancel)return;let Z=this.options.getConnection();if(!Z)return;let Q=new TextDecoder,Y=Z.subscribe("studio.decopilot.cancel");this.subscription=Y,(async()=>{for await(let X of Y)try{let J=JSON.parse(Q.decode(X.data));if(J.originId===this.originId)continue;this.onCancel?.(J.taskId)}catch{}})().catch(console.error)}broadcast($){if(/[.*>\s]/.test($)){console.warn("[NatsCancelBroadcast] Invalid threadId, skipping broadcast");return}this.onCancel?.($);try{let Z=this.options.getConnection();if(!Z)return;let Q=this.encoder.encode(JSON.stringify({taskId:$,originId:this.originId}));Z.publish("studio.decopilot.cancel",Q)}catch(Z){console.warn("[NatsCancelBroadcast] Publish failed (non-critical):",Z)}}async stop(){this.subscription?.unsubscribe(),this.subscription=null,this.onCancel=null}}var ME8=($)=>{let Z;return()=>Z??=$()},tT1,oT1;var VE8=L(()=>{b6();tT1=ME8(()=>G$.createHistogram("decopilot.stream.encode_ms",{description:"Per-chunk JSON.stringify+encode time for decopilot stream",unit:"ms"})),oT1=ME8(()=>G$.createCounter("decopilot.stream.published_chunks",{description:"Logical decopilot stream chunks published to JetStream",unit:"{chunks}"}))});function CF5($=CE8){return{name:hB,subjects:[`${wL1}.>`],storage:zU.StorageType.File,max_age:MF5,max_bytes:IF5,max_msgs_per_subject:kF5,discard:zU.DiscardPolicy.Old,retention:zU.RetentionPolicy.Limits,duplicate_window:VF5,num_replicas:$}}class SE8{chunks=0;encodeMs=0;maxMs=0;bytes=0;windowStart=performance.now();constructor(){setInterval(()=>this.flush(),1e4).unref?.()}record($,Z){if(this.chunks++,this.encodeMs+=$,$>this.maxMs)this.maxMs=$;this.bytes+=Z}flush(){let $=performance.now(),Z=$-this.windowStart;if(this.chunks>0&&Z>0)console.warn(JSON.stringify({msg:"stream-encode-trace",windowMs:Math.round(Z),chunks:this.chunks,encodeMs:Math.round(this.encodeMs),pctOfLoop:+(this.encodeMs/Z*100).toFixed(1),maxChunkMs:+this.maxMs.toFixed(2),mbEncoded:+(this.bytes/1048576).toFixed(2)}));this.chunks=0,this.encodeMs=0,this.maxMs=0,this.bytes=0,this.windowStart=$}}function IE8($){let Z=kE8.headers();for(let[Q,Y]of Object.entries($))Z.set(Q,Y);return Z}function bF5($,Z){let Q=0;return{publish(Y,X,J,G){Y.publish(X,J,G?{headers:G}:void 0).catch((W)=>{if(Q++,RF5().add(1,{"org.id":Z??"unknown"}),Q===1||Q%100===0)console.warn(`[Decopilot] JetStream publish failed for thread ${$} (${Q} total):`,W)})},get errorCount(){return Q}}}function xF5($,Z){return $.info?.cluster?Z:1}function fF5($){if(!($ instanceof Error))return!1;if(/non-clustered/i.test($.message))return!0;return/replicas?\b/i.test($.message)&&/not supported|can ?not|exceed|insufficient|greater than/i.test($.message)}class sT1{options;js=null;jsm=null;constructor($){this.options=$}async init(){let $=this.options.getConnection();if(!$){console.log("[Decopilot] StreamBuffer.init skipped: NATS not connected yet");return}let Z=async(Y,X)=>{let J=CF5(X);try{await Y.streams.info(hB),await Y.streams.update(hB,J)}catch(G){if(G instanceof Error&&G.message.includes("stream not found"))await Y.streams.add(J),await Y.streams.update(hB,J);else if(G instanceof Error&&/can ?not change.*storage|storage type/i.test(G.message))await Y.streams.delete(hB),await Y.streams.add(J);else throw G}},Q=await e$(async()=>{let Y=this.options.getJetStreamManager?await this.options.getJetStreamManager():await zU.jetstreamManager($),X=xF5($,CE8);try{await Z(Y,X)}catch(J){if(X<=1||!fF5(J))throw J;console.warn(`[Decopilot] StreamBuffer: NATS rejected num_replicas=${X} (${J.message}); falling back to an unreplicated stream`),await Z(Y,1)}return Y},{maxAttempts:5,minTimeout:250,maxTimeout:4000,jitter:0.5,isRetriable:nt});this.js=this.options.getJetStream(),this.jsm=Q,console.log(`[Decopilot] StreamBuffer.init ${this.js?"ready":"degraded (js=null)"}`)}pump($,Z,Q,Y){let X=this.js;if(!X)return console.warn(`[Decopilot] pump: JetStream client unavailable for thread ${Z}; chunks NOT published to NATS`),Promise.resolve();let J=bF5(Z,Y),G=!1,W=()=>{if(G)return;G=!0;let H=q98(Z);X.publish(H.subject,H.data).catch(()=>{})};Q.addEventListener("abort",W,{once:!0});let K=(H)=>{let F=performance.now(),U=PL1(H,{runId:Z}),N=performance.now()-F;tT1().record(N),oT1().add(1,{"org.id":Y??"unknown"}),vF5?.record(N,U.reduce((B,D)=>B+D.data.length,0));for(let B of U)J.publish(X,B.subject,B.data,B.headers?IE8(B.headers):void 0)};return(async()=>{let H=$.getReader(),F=0,U=0,N;try{while(!0){let{done:B,value:D}=await H.read();if(B)break;if(K(D),U++,++F>=64)F=0,await new Promise((O)=>setImmediate(O))}}catch(B){N=B,console.warn(`[Decopilot] stream pump error for thread ${Z}:`,B?.message??B)}finally{if(H.releaseLock(),W(),_F5)console.warn(JSON.stringify({msg:"decopilot-stream-diag",event:"pump-done",taskId:Z,publishedChunks:U,publishErrors:J.errorCount}))}if(N!==void 0)throw N})()}async publishSerialized($,Z){try{return await e$(()=>$.publish(Z.subject,Z.data,{...Z.headers?{headers:IE8(Z.headers)}:{},...Z.msgId?{msgID:Z.msgId}:{}}),{maxAttempts:6,minTimeout:250,maxTimeout:5000,jitter:0.5,isRetriable:nt}),!0}catch(Q){return console.error(`[Decopilot] publish failed after retries subject=${Z.subject}`,Q),!1}}async publishRawChunk($,Z,Q){let Y=this.js;if(!Y)return!1;let X=performance.now(),J=PL1(Z,{runId:$,dedup:Q});tT1().record(performance.now()-X),oT1().add(1);for(let G of J)if(!await this.publishSerialized(Y,G))return!1;return!0}async publishDone($,Z,Q){let Y=this.js;if(!Y)return!1;let X=T98({runId:$,fenceToken:Z,finalSeq:Q});return await this.publishSerialized(Y,X)}async createTailStream($,Z,Q){let Y=this.js;if(!Y)return console.warn(`[Decopilot] createTailStream: JetStream client unavailable for thread ${$}; no live tail`),null;let X=Q?.deliverPolicy==="new"?zU.DeliverPolicy.New:zU.DeliverPolicy.All,J=Q?.closeOnDone??!1,G=rz($),W;try{W=await e$(async()=>{return(await Y.consumers.get(hB,{filter_subjects:G,deliver_policy:X})).consume()},{maxAttempts:6,minTimeout:250,maxTimeout:5000,jitter:0.5,isRetriable:nt})}catch(O){return console.warn("[Decopilot] JetStream tail unavailable (non-critical):",O?.message??O),null}let F=zb0({messages:async function*(){try{for await(let O of W)yield{subject:O.subject,data:O.data,headers:O.headers}}finally{W.stop()}}(),onCancel:()=>W.stop()}).pipeThrough(jb0()).pipeThrough(wb0()).getReader(),U=!1,N=()=>{if(U)return;U=!0;try{F.releaseLock()}catch{}},B=!1,D=()=>{if(B)return;B=!0,W.stop(),F.cancel().catch(()=>{}),N()};return Z?.addEventListener("abort",D,{once:!0}),new ReadableStream({async pull(O){for(;;){let{done:j,value:w}=await F.read();if(j){D(),O.close();return}let E=w;if(E.kind==="done"){if(J){D(),O.close();return}continue}O.enqueue(E.chunk);return}},cancel(){D()}})}purge($){if(!this.jsm)return;this.jsm.streams.purge(hB,{filter:rz($)}).catch(()=>{})}teardown(){this.js=null,this.jsm=null}}var zU,kE8,qF5=($)=>{let Z;return()=>Z??=$()},RF5,MF5=86400000000000,VF5=120000000000,IF5=4294967296,CE8,kF5=500000,SF5,_F5,vF5;var _E8=L(()=>{p$();zL1();Ab0();Eb0();b6();VE8();zU=_(xH(),1),kE8=_(o2(),1),RF5=qF5(()=>G$.createCounter("decopilot.stream.publish_errors",{description:"Number of JetStream publish failures for decopilot stream chunks",unit:"{errors}"})),CE8=Math.max(1,Number(process.env.DECOPILOT_STREAM_REPLICAS??3)||3);SF5=process.env.STREAM_ENCODE_TRACE==="1",_F5=process.env.DECOPILOT_STREAM_TRACE==="1";vF5=SF5?new SE8:null});function hg0($,Z,Q,Y){if(!Y)return!1;return $.emit(Z,cU(Q,Y.status,{title:Y.title??void 0,virtualMcpId:Y.virtual_mcp_id??void 0,createdBy:Y.created_by??void 0,triggerId:Y.trigger_id??null,branch:Y.branch??null,harnessId:Y.harness_id??void 0,createdAt:Y.created_at,updatedAt:Y.updated_at})),!0}var vE8=L(()=>{q8()});class rT1{storage;options;timer=null;constructor($,Z={}){this.storage=$;this.options=Z}start(){if(this.timer)return;let $=this.options.intervalMs??300000;this.timer=setInterval(()=>{this.runOnce()},$)}async runOnce(){let $=this.options.staleAfterMs??3600000;try{let Z=await this.storage.sweepAbandoned($);if(Z>0)console.log(`[async-research-sweeper] marked ${Z} stale jobs as abandoned`);return Z}catch(Z){return console.error("[async-research-sweeper] sweep failed",Z),0}}dispose(){if(this.timer)clearInterval(this.timer),this.timer=null}}function yF5($,Z,Q={}){let Y=$.startsWith("thread:")?eF($,Q):$;return[...new Set([Z,Y].filter((X)=>!!X))]}async function aT1($,Z){let Q=Z.organizationId;try{let Y=await $.storage.taskBoard.linkedThreadIds(Z.id,Q);for(let X of Y){let J=await VB($,X);if(!J?.owner||!J?.name)continue;let G=await $.storage.threads.get(X),W=await IB($,{threadId:X,runBranch:G?.branch}),K=await c40($,Q,KD0(J)).catch(()=>null);if(!K){console.warn(`[task-board] no credential for ${J.owner}/${J.name} \u2014 `+`cannot look up ${Z.id}'s change request by branch`);continue}let H=yF5(W,await TS0($,X),{flat:Mh(K.repo.provider)});for(let F of H){let U=await K.readForBranch(F).catch(()=>null);if(!U)continue;return await $.storage.taskBoard.linkPr({taskBoardItemId:Z.id,organizationId:Q,url:U.url,prNumber:U.number,repo:K.repo}),await $.storage.taskBoard.openReviewCycleIfInProgress(Z.id,Q),await wW(Q).catch(()=>{}),console.log(`[task-board] ${Z.id}: linked ${U.url} found on branch ${F}`),!0}}}catch(Y){console.error("[task-board] PR lookup by branch failed",Y)}return!1}var bE8=L(()=>{T5();yQ();gQ()});async function xE8($,Z,Q){let Y=Z.organizationId;if(!uJ(Z))return!1;if(!ah(Q))return!1;if(!await gd($,Y,i10))return!1;if(await $.storage.taskBoard.hasHumanRejectedDone(Z.id,Y))return!1;let X=K1.shipped,J=await $.storage.taskBoard.update(Z.id,Y,{status:X},Z.updatedBy);return await Q9($,{taskBoardItemId:Z.id,action:"status_changed",actorId:null,data:{from:Z.status,to:X,reason:"pr_merged"}}),H8(Y,J),console.log(`[task-board-review-sweeper] ${Z.id}: linked PR already merged \u2014 moved to ${X}`),!0}var fE8=L(()=>{jG();v8();xX();Vt();GU();m5()});function dF5($){return $ instanceof qX}function yE8($,Z){return Z-$>=mF5}class eT1{taskBoard;contextFactory;billing;options;timer=null;running=!1;cursor=null;constructor($,Z,Q,Y={}){this.taskBoard=$;this.contextFactory=Z;this.billing=Q;this.options=Y}start(){if(this.timer)return;let $=this.options.intervalMs??gF5;this.timer=setInterval(()=>{this.runOnce()},$),this.timer.unref()}async runOnce(){if(this.running)return 0;this.running=!0;let $=0;try{let Z=this.options.batchSize??uF5,Q=this.options.itemIntervalMs??hF5,Y=new Date(Date.now()-Q),X=await this.taskBoard.listItemsPendingReview(Z,this.cursor,Y),J=X.at(-1);this.cursor=X.length===Z&&J?{updatedAt:J.updatedAt,id:J.id}:null;for(let{id:G,organizationId:W}of X)try{if(await this.reconcileItem(G,W,Y))$++}catch(K){console.error(`[task-board-review-sweeper] ${G} failed`,K)}await this.reapNeverStartedThreads(Z),$+=await this.dispatchDueRetries(Z),await this.reactToUnhandledFailures(Z),$+=await this.settleFinishedRunsWithoutPr(Z,Y)}catch(Z){console.error("[task-board-review-sweeper] sweep failed",Z)}finally{this.running=!1}return $}async reapNeverStartedThreads($){try{let Z=await this.taskBoard.failNeverStartedLinkedThreads($,new Date(Date.now()-AN1),nB1);for(let Q of Z)console.warn(`[task-board-review-sweeper] failed never-started thread ${Q.threadId} on ${Q.itemId}`)}catch(Z){console.error("[task-board-review-sweeper] reaping failed",Z)}}async reactToUnhandledFailures($){let Z=await this.taskBoard.listItemsStuckAfterFailure($,new Date(Date.now()-cF5));for(let{id:Q,organizationId:Y,threadId:X}of Z)try{console.warn(`[task-board-review-sweeper] reacting to an unhandled failure on ${Q}`),await iB1(this.taskBoard,X,Y),await pB1(this.taskBoard,this.billing,X,Y)}catch(J){console.error(`[task-board-review-sweeper] unhandled-failure reaction for ${Q} failed`,J)}}async settleFinishedRunsWithoutPr($,Z){let Q=0,Y=await this.taskBoard.listItemsFinishedWithoutPr($,Z);for(let{id:X,organizationId:J,finishedAt:G}of Y)try{if(!await this.taskBoard.claimSweep(X,J,Z))continue;let W=await this.taskBoard.getById(X,J);if(!W||W.status!==K1.progress||uJ(W)||W.assigneeId!==o$)continue;let K=await this.contextFactory(J,W.assignedBy??W.createdBy);if(!K)continue;if(await aT1(K,W)){if(await this.taskBoard.clearSweepBudget(X,J),await this.reconcileItem(X,J,Z))Q++;continue}if(!yE8(G.getTime(),Date.now()))continue;let H="the run finished without opening a pull request \u2014 there is "+"nothing for a reviewer to review",F=await this.taskBoard.advanceFromProgress(X,J,K1.review,W.updatedBy);if(!F)continue;await this.taskBoard.recordActivity({taskBoardItemId:X,action:"status_changed",actorId:null,data:{from:K1.progress,to:K1.review,reason:H}}).catch(()=>{}),H8(J,F),await WU(K,F,H)}catch(W){console.error(`[task-board-review-sweeper] settling finished run on ${X} failed`,W)}return Q}async dispatchDueRetries($){let Z=0,Q=await this.taskBoard.listItemsDueForRetry($,new Date);for(let{id:Y,organizationId:X,attempts:J}of Q)try{if(!await this.taskBoard.claimDueRetry(Y,X,new Date))continue;let G=await this.taskBoard.getById(Y,X);if(!G||G.status!==K1.progress||G.assigneeId!==o$)continue;let W=await this.contextFactory(X,G.assignedBy??G.createdBy);if(!W)continue;await _O(W,G,{runClass:"retry"}),Z++,console.warn(`[task-board-review-sweeper] re-dispatched ${Y} after a failure (attempt ${J})`)}catch(G){if(console.error(`[task-board-review-sweeper] retry dispatch for ${Y} failed`,G),dF5(G)){await this.returnToBacklog(Y,X,G instanceof Error?G.message:String(G));continue}await this.taskBoard.scheduleRunRetry(Y,X,J,new Date(Date.now()+lF5)).catch((W)=>console.error(`[task-board-review-sweeper] re-arming ${Y} failed`,W))}return Z}async returnToBacklog($,Z,Q){try{let Y=await this.taskBoard.getById($,Z);if(!Y||Y.status!==K1.progress)return;let X=await this.taskBoard.returnToBacklogAfterFailure($,Z,Y.updatedBy);if(!X)return;await this.taskBoard.recordActivity({taskBoardItemId:$,action:"status_changed",actorId:null,data:{from:K1.progress,to:K1.intake,reason:Q,retriesSpent:Y.retryAttempts}}).catch(()=>{}),H8(Z,X)}catch(Y){console.error(`[task-board-review-sweeper] returning ${$} to backlog failed`,Y)}}async handOffReviewWithoutPr($,Z){let Q=await this.taskBoard.listActivity(Z.id,Z.organizationId);if(!yE8(BL(Q,Z.reviewCycleStartedAt),Date.now()))return;await WU($,Z,"no pull request is linked to this task \u2014 there is nothing for a "+"reviewer to review")}async reconcileItem($,Z,Q){if(!await this.taskBoard.claimSweep($,Z,Q))return!1;let Y=await this.taskBoard.getById($,Z);if(!Y)return!1;if(!uJ(Y))return!1;let X=Y.assigneeId===o$,J=await this.taskBoard.listPrs($,Z),G=await this.contextFactory(Z,Y.assignedBy??Y.createdBy);if(!G)return!1;if(J.length===0){if(await aT1(G,Y))J=await this.taskBoard.listPrs($,Z);if(J.length===0){if(X)await this.handOffReviewWithoutPr(G,Y);return!1}}let W=await Promise.all(J.map(async(K)=>({...K,...await Ct(Z,K)})));if(W.every((K)=>K.state===null))console.warn(`[task-board-review-sweeper] ${$}: no live PR state from GitHub (${W.length} PR(s)) \u2014 proceeding on unknown`);if(await xE8(G,Y,W))return!0;if(!X)return!1;if(await P48(G,Y))return!0;if(!lB1(W))return!1;return await kt(G,Y,{previewMatchesHead:mB1(W)}),!0}dispose(){if(this.timer)clearInterval(this.timer),this.timer=null}}var gF5=60000,hF5=300000,uF5=50,lF5=60000,mF5=900000,cF5=120000;var gE8=L(()=>{v8();jv0();bE8();vO();bt();GU();fE8();m5();WW();tB1();gQ();r90()});async function hE8($,Z,Q=ez){return await lE8($,Z,Q,{})}async function uE8($,Z,Q,Y=ez){return await lE8($,Q,Y,{activityId:Z})}async function lE8($,Z,Q,Y){let X=await $.automations.findActiveBoardColumnTriggers();if(X.length===0)return 0;let J=new Map;for(let K of X){let H=K.automation.organization_id;J.set(H,[...J.get(H)??[],K])}let G=await $.taskBoard.listSettledTransitions({organizationIds:[...J.keys()],since:new Date(Z-iF5),settledBefore:new Date(Z-Q),limit:pF5,...Y}),W=0;for(let K of G)try{let H=(J.get(K.organizationId)??[]).filter((U)=>U.column_key===K.to&&Date.parse(U.created_at)<Date.parse(K.occurredAt));if(H.length===0)continue;let F=await nF5($.taskBoard,K,Q);for(let U of H){if(!e98(U,{from:F,to:K.to}))continue;if(!await $.automations.claimTriggerFire(U.id,K.activityId))continue;await $.fire({automationId:U.automation_id,organizationId:K.organizationId,triggerId:U.id,target:{kind:"card",itemId:K.itemId,columnKey:K.to,eventKey:K.activityId,movedBy:K.actorId}},{idempotencyKey:`board:${U.id}:${K.activityId}`}),W++}}catch(H){console.error(`[automations] board transition ${K.activityId} failed`,H)}return W}async function nF5($,Z,Q){let X=(await $.listActivity(Z.itemId,Z.organizationId)).flatMap((J)=>{let G=J.data;if(J.action!=="status_changed"||typeof G?.to!=="string")return[];let W=typeof G.from==="string"?G.from:null;return W===G.to?[]:[{from:W,to:G.to,occurredAt:J.occurredAt}]});return X.length>0?$Z8(X,Q):Z.from}var iF5=1800000,pF5=200;var mE8=L(()=>{gO()});import{DBOS as k2,DBOSClient as tF5,SchedulerMode as oF5}from"@dbos-inc/dbos-sdk";function cE8($){jj=$}async function aF5($){if(!jj)return 0;try{return await uE8(jj,$,Date.now(),jj.settleMs)}catch(Z){return console.error(`[automations] settling board move ${$} failed`,Z),0}}async function eF5(){if(!jj)return 0;try{return await hE8(jj,Date.now(),jj.settleMs)}catch($){return console.error("[automations] board transition sweep failed",$),0}}async function $U5($){await k2.sleep((jj?.settleMs??ez)+rF5),await k2.runStep(()=>aF5($),{name:"settleBoardMove"})}async function ZU5($,Z){let Q=await k2.runStep(()=>eF5(),{name:"sweepBoardMoves"});if(Q>0)console.log(`[automations] board transition sweep fired ${Q} trigger(s) the settle wait missed`)}async function iE8($){let Z=jj;if(!Z||!Zq1)return;if(!await Z.automations.hasActiveBoardColumnTrigger($.taskBoardItemId,$.to))return;let Q=`board-settle:${$.activityId}`;if(!k2.isWithinWorkflow()){await k2.startWorkflow(Zq1,{workflowID:Q,queueName:f2})($.activityId);return}let Y=await tF5.create({systemDatabaseUrl:Z.systemDatabaseUrl,systemDatabaseSchemaName:"dbos",systemDatabasePoolSize:1});try{await Y.enqueue({workflowName:dE8,queueName:f2,workflowID:Q},$.activityId)}finally{await Y.destroy()}}function pE8(){if($q1)return;Zq1=k2.registerWorkflow($U5,{name:dE8}),$q1=k2.registerWorkflow(ZU5,{name:"boardTransitionSweepWorkflow"}),k2.registerScheduled($q1,{name:"boardTransitionSweepWorkflow",crontab:sF5,mode:oF5.ExactlyOncePerIntervalWhenActive})}var sF5="*/5 * * * *",rF5=2000,jj=null,dE8="boardTransitionSettleWorkflow",Zq1=null,$q1=null;var nE8=L(()=>{gO();mE8()});import{readdir as QU5,rm as ug0}from"fs/promises";import{join as lg0}from"path";async function mg0($){let Z=new Date;Z.setUTCDate(Z.getUTCDate()-YU5),Z.setUTCHours(0,0,0,0);let Q=0;try{let Y=await ou($);for(let X of Y)if(/^\d{4}$/.test(X))Q+=await tE8($,X,Z);else if(!X.startsWith(".")){let J=lg0($,X),G=await ou(J);for(let K of G){if(!/^\d{4}$/.test(K))continue;Q+=await tE8(J,K,Z)}if((await ou(J)).length===0)await ug0(J,{recursive:!0,force:!0})}}catch(Y){console.warn("monitoring retention cleanup failed:",Y)}return Q}async function tE8($,Z,Q){let Y=0,X=lg0($,Z),J=await ou(X);for(let W of J){if(!/^\d{2}$/.test(W))continue;let K=lg0(X,W),H=await ou(K);for(let U of H){if(!/^\d{2}$/.test(U))continue;let N=new Date(`${Z}-${W}-${U}T00:00:00Z`);if(isNaN(N.getTime()))continue;if(N<Q){let B=lg0(K,U);await ug0(B,{recursive:!0,force:!0}),Y++}}if((await ou(K)).length===0)await ug0(K,{recursive:!0,force:!0})}if((await ou(X)).length===0)await ug0(X,{recursive:!0,force:!0});return Y}async function ou($){try{return(await QU5($)).filter((Q)=>!Q.startsWith("."))}catch{return[]}}var YU5=30;var Qq1=()=>{};import{DBOS as Yq1,SchedulerMode as XU5}from"@dbos-inc/dbos-sdk";async function GU5(){let $=[VH(),Xl(),ND()],Z=0;for(let Q of $)try{Z+=await mg0(Q)}catch(Y){console.error("[monitoring-retention] cleanup failed:",Y)}return console.log(`[monitoring-retention] deleted ${Z} day-dir(s) across ${$.length} signal dir(s)`),{deleted:Z,dirs:$.length}}async function WU5($,Z){await Yq1.runStep(()=>GU5(),{name:"monitoringRetention"})}function sE8(){if(oE8)return;oE8=!0;let $=Yq1.registerWorkflow(WU5,{name:"monitoringRetentionWorkflow"});Yq1.registerScheduled($,{name:"monitoringRetentionWorkflow",crontab:JU5,mode:XU5.ExactlyOncePerIntervalWhenActive})}var JU5="23 4 * * *",oE8=!1;var rE8=L(()=>{mW();Qq1()});function aE8($){return async(Z,Q)=>{let Y=await $.db.selectFrom("member").innerJoin("organization","organization.id","member.organizationId").select(["member.role","organization.id as orgId","organization.slug as orgSlug","organization.name as orgName"]).where("member.userId","=",Q).where("member.organizationId","=",Z).executeTakeFirst();if(!Y)return console.warn(`[automationContextFactory] User ${Q} not found in org ${Z} \u2014 returning null`),null;let X=await vY.create();X.auth.user={id:Q,role:Y.role},X.organization={id:Y.orgId,slug:Y.orgSlug,name:Y.orgName};let J=await EP($.db,Z,Y.role);return X.boundAuth=IP1({auth:X.authInstance,headers:new Headers,role:Y.role,permissions:J,userId:Q}),X.access=new RT(Q,void 0,X.boundAuth,Y.role,"self"),nz(X,{id:Y.orgId,slug:Y.orgSlug}),X}}var eE8=L(()=>{XX();vF()});function $P8(){return async($,Z)=>{let Q=Date.now(),Y=$.req.method,X=$.req.path;if(X==="/api/auth/get-session"||X.includes("favicon")){await Z();return}let J="",G=!1;if(X.startsWith("/mcp")&&Y==="POST"){G=!0;try{if($.req.header("Content-Type")?.includes("application/json")){let N=await $.req.raw.clone().json();if(N.method==="tools/call"&&N.params?.name){let B=hQ0(N.params.name),D=N.params.arguments||{},O=Object.keys(D).map((w)=>hQ0(w)),j=O.length>0?O.slice(0,3).join(",")+(O.length>3?"\u2026":""):"";J=`${L9.tool}${B}${L9.dim}(${j})${L9.reset}`}else if(N.method)J=`${L9.dim}${hQ0(N.method)}${L9.reset}`}}catch{}}let W=hQ0(X);if(X.startsWith("/mcp/conn_")){let F=X.split("/")[2]??"";W=`/mcp/${L9.mcp}${hQ0(F.slice(0,12))}\u2026${L9.reset}`}else if(X==="/mcp")W=`${L9.mcp}/mcp${L9.reset}`;else if(X==="/mcp/registry")W=`${L9.mcp}/mcp/registry${L9.reset}`;let K=HU5(Y),H=G?"\u25C0":"\u2190";console.log(`${L9.dim}${H}${L9.reset} ${K}${Y}${L9.reset} ${W}${J?` ${J}`:""}`);try{await Z()}finally{let F=Date.now()-Q,U=$.res.status,N=KU5(U),B=F<1000?`${F}ms`:`${(F/1000).toFixed(1)}s`,D=G?"\u25B6":"\u2192";console.log(`${L9.dim}${D}${L9.reset} ${K}${Y}${L9.reset} ${W}${J?` ${J}`:""} ${N}${U}${L9.reset} ${L9.duration}${B}${L9.reset}`)}}}var L9,KU5=($)=>{if($>=500)return L9.serverError;if($>=400)return L9.clientError;if($>=300)return L9.redirect;return L9.ok},HU5=($)=>{return L9[$]||L9.reset},hQ0=($)=>{return $.replace(/\r/g,"").replace(/\n/g,"").replace(/\x1b\[[0-9;]*m/g,"").replace(/[\x00-\x1f\x7f-\x9f]/g,"")};var ZP8=L(()=>{L9={reset:"\x1B[0m",dim:"\x1B[2m",bold:"\x1B[1m",GET:"\x1B[36m",POST:"\x1B[33m",PUT:"\x1B[35m",DELETE:"\x1B[31m",ok:"\x1B[32m",redirect:"\x1B[36m",clientError:"\x1B[33m",serverError:"\x1B[31m",mcp:"\x1B[35m",tool:"\x1B[96m",duration:"\x1B[90m"}});import{createHmac as JP8}from"crypto";import{mkdir as FU5,readdir as UU5,rm as QP8,stat as GP8}from"fs/promises";import{join as Jq1,relative as NU5}from"path";import{z as J8}from"zod";function KP8($){let Z=$.replace(/[^a-zA-Z0-9_-]/g,"_");return Jq1(BU5,Z)}function HP8($){return $.replace(/^\/+/,"").replace(/\.\./g,"")}function Xq1($,Z){let Q=KP8($),Y=HP8(Z);return Jq1(Q,Y)}function DU5($,Z,Q,Y){let X=B0().encryptionKey||"dev-secret",J=`${$}:${Z}:${Q}:${Y}`;return JP8("sha256",X).update(J).digest("hex")}function XP8($,Z,Q,Y,X){let J=Math.floor(Date.now()/1000)+Y,G=DU5(Z,Q,J,X),W=new URL(`/api/dev-assets/${Z}/${HP8(Q)}`,$);return W.searchParams.set("expires",J.toString()),W.searchParams.set("signature",G),W.searchParams.set("method",X),W.toString()}function FP8($,Z,Q){let Y=`${$}:${Z.getTime()}:${Q}`;return`"${JP8("md5","etag").update(Y).digest("hex")}"`}async function UP8($,Z,Q,Y,X){try{let J=await UU5($,{withFileTypes:!0});for(let G of J){let W=Jq1($,G.name),H=NU5(Z,W).replace(/\\/g,"/");if(Q&&!H.startsWith(Q))continue;if(G.isDirectory())if(Y){let F=H+"/";if(!Q||F.startsWith(Q)){if(!(Q?H.slice(Q.length):H).includes("/"))X.commonPrefixes.add(F)}}else await UP8(W,Z,Q,Y,X);else if(G.isFile()){if(Y&&Q){let F=H.slice(Q.length);if(F.includes(Y)){let U=F.indexOf(Y),N=Q+F.slice(0,U+1);X.commonPrefixes.add(N);continue}}try{let F=await GP8(W);X.objects.push({key:H,size:F.size,lastModified:F.mtime.toISOString(),etag:FP8(W,F.mtime,F.size)})}catch{}}}}catch{}}function NP8($,Z){let Y=Q0($).id;return[{name:"LIST_OBJECTS",description:"List objects in the local assets directory with pagination support",inputSchema:J8.object({prefix:J8.string().optional(),maxKeys:J8.number().optional().default(1000),continuationToken:J8.string().optional(),delimiter:J8.string().optional()}),outputSchema:J8.object({objects:J8.array(J8.object({key:J8.string(),size:J8.number(),lastModified:J8.string(),etag:J8.string()})),nextContinuationToken:J8.string().optional(),isTruncated:J8.boolean(),commonPrefixes:J8.array(J8.string()).optional()}),handler:async(X)=>{let J=X,G=J.prefix||"",W=J.maxKeys??1000,K=J.delimiter,H=J.continuationToken,F=KP8(Y);await FU5(F,{recursive:!0});let U={objects:[],commonPrefixes:new Set};await UP8(F,F,G,K,U),U.objects.sort((j,w)=>j.key.localeCompare(w.key));let N=0;if(H){if(N=U.objects.findIndex((j)=>j.key>H),N===-1)N=U.objects.length}let B=U.objects.slice(N,N+W),D=N+W<U.objects.length,O=D?B[B.length-1]?.key:void 0;return{objects:B,isTruncated:D,nextContinuationToken:O,commonPrefixes:Array.from(U.commonPrefixes).sort()}}},{name:"GET_OBJECT_METADATA",description:"Get metadata for a file in the local assets directory",inputSchema:J8.object({key:J8.string()}),outputSchema:J8.object({contentType:J8.string().optional(),contentLength:J8.number(),lastModified:J8.string(),etag:J8.string(),metadata:J8.record(J8.string(),J8.string()).optional()}),handler:async(X)=>{let J=X,G=Xq1(Y,J.key),W=await GP8(G);return{contentType:sz1(J.key),contentLength:W.size,lastModified:W.mtime.toISOString(),etag:FP8(G,W.mtime,W.size)}}},{name:"GET_PRESIGNED_URL",description:"Generate a presigned URL for downloading a file from local storage",inputSchema:J8.object({key:J8.string(),expiresIn:J8.number().optional()}),outputSchema:J8.object({url:J8.string(),expiresIn:J8.number()}),handler:async(X)=>{let J=X,G=iO(J.expiresIn,YP8);return{url:XP8(Z,Y,J.key,G,"GET"),expiresIn:G}}},{name:"PUT_PRESIGNED_URL",description:"Generate a presigned URL for uploading a file to local storage",inputSchema:J8.object({key:J8.string(),expiresIn:J8.number().optional(),contentType:J8.string().optional()}),outputSchema:J8.object({url:J8.string(),expiresIn:J8.number()}),handler:async(X)=>{let J=X,G=iO(J.expiresIn,YP8);return{url:XP8(Z,Y,J.key,G,"PUT"),expiresIn:G}}},{name:"DELETE_OBJECT",description:"Delete a single file from local storage",inputSchema:J8.object({key:J8.string()}),outputSchema:J8.object({success:J8.boolean(),key:J8.string()}),handler:async(X)=>{let J=X,G=Xq1(Y,J.key);try{return await QP8(G),{success:!0,key:J.key}}catch{return{success:!1,key:J.key}}}},{name:"DELETE_OBJECTS",description:"Delete multiple files from local storage",inputSchema:J8.object({keys:J8.array(J8.string()).max(1000)}),outputSchema:J8.object({deleted:J8.array(J8.string()),errors:J8.array(J8.object({key:J8.string(),message:J8.string()}))}),handler:async(X)=>{let J=X,G=[],W=[];return await Promise.all(J.keys.map(async(K)=>{let H=Xq1(Y,K);try{await QP8(H),G.push(K)}catch(F){W.push({key:K,message:F instanceof Error?F.message:"Unknown error"})}})),{deleted:G,errors:W}}}]}async function Gq1($,Z,Q){let Y=NP8(Z,Q),X=new OE({name:"dev-assets-mcp",version:"1.0.0"},{capabilities:{tools:{}},jsonSchemaValidator:CZ});for(let G of Y){let W="shape"in G.inputSchema?G.inputSchema.shape:J8.object({}).shape,K=G.outputSchema&&"shape"in G.outputSchema?G.outputSchema.shape:J8.object({}).shape;X.registerTool(G.name,{description:G.description??"",inputSchema:W,outputSchema:K,annotations:G.annotations,_meta:G._meta},async(H)=>{try{let F=await G.handler(H);return{content:[{type:"text",text:JSON.stringify(F)}],structuredContent:F}}catch(F){return{content:[{type:"text",text:`Error: ${F.message}`}],isError:!0}}})}let J=new qW({enableJsonResponse:$.headers.get("Accept")?.includes("application/json")??!1});return await X.connect(J),BH(X,J,$,"mcp:dev-assets")}async function BP8($,Z,Q,Y){let J=NP8(Q,Y).find((G)=>G.name===$);if(!J)return{content:[{type:"text",text:`Tool not found: ${$}`}],isError:!0};try{let G=await J.handler(Z);return{content:[{type:"text",text:JSON.stringify(G)}]}}catch(G){return{content:[{type:"text",text:G instanceof Error?G.message:String(G)}],isError:!0}}}var BU5="./data/assets",YP8=3600,WP8,DP8;var LP8=L(()=>{u1();Xo();K8();MH0();Yo();NJ();pO();Ey0();WP8=new Z1;WP8.all("/",async($)=>{let Z=$.get("studioContext"),Q=new URL($.req.url),Y=`${Q.protocol}//${Q.host}`;return Gq1($.req.raw,Z,Y)});DP8=WP8});var OP8={};O6(OP8,{mountDevRoutes:()=>LU5});function LU5($,Z){$.all("/mcp/:connectionId{.*_dev-assets$}",Z,async(Y)=>{let X=Y.get("studioContext"),J=new URL(Y.req.url),G=`${J.protocol}//${J.host}`;return Gq1(Y.req.raw,X,G)}),$.all("/mcp/:connectionId{.*_dev-assets$}/call-tool/:toolName",Z,async(Y)=>{let X=Y.get("studioContext"),J=new URL(Y.req.url),G=`${J.protocol}//${J.host}`,W=Y.req.param("toolName");if(!W)return Y.json({error:"Missing tool name"},400);let K=await Y.req.json(),H=await BP8(W,K,X,G);if(H.isError)return Y.json(H.content,500);return Y.json(H.content)}),$.use("/mcp/dev-assets",Z),$.route("/mcp/dev-assets",DP8);let Q=new Z1;Q.use("*",jU({mountPath:"/api/dev-assets"})),Q.route("/",wy0({orgFromPath:!1})),$.route("/api/dev-assets",Q)}var jP8=L(()=>{K8();mz1();Ey0();LP8()});var VP8={};O6(VP8,{watchHandler:()=>MP8,resolveVoiceSigningSecret:()=>TP8,resolveCorsOrigin:()=>qP8,isSsoExemptPath:()=>AP8,isAllowedOAuthRedirectUri:()=>RP8,createApp:()=>MU5});import{readFileSync as OU5}from"fs";import{randomBytes as jU5}from"crypto";import{PrometheusSerializer as wU5}from"@opentelemetry/exporter-prometheus";import{DBOS as JD}from"@dbos-inc/dbos-sdk";import{oAuthDiscoveryMetadata as zU5,oAuthProtectedResourceMetadata as AU5}from"better-auth/plugins";async function EU5($){let Z=$.connect(),Q;try{Q=await Promise.race([Z,EP8(wP8)])}catch{return Z.then((Y)=>Y.release(!0)).catch(()=>{}),!1}try{return await Promise.race([Q.query("SELECT 1"),EP8(wP8)]),Q.release(),!0}catch{return Q.release(!0),!1}}function EP8($){return new Promise((Z,Q)=>setTimeout(()=>Q(Error("pg health-check timeout")),$))}function AP8($){return $.startsWith("/api/org-sso/")||/^\/api\/[^/]+\/sso\//.test($)||$.startsWith("/api/auth/")||$.startsWith("/api/tools/management")||$.startsWith("/oauth-proxy/")||/^\/api\/[^/]+\/oauth-proxy\//.test($)||$.startsWith(`${$y0}/`)||$.startsWith(`${tf0}/`)}function TP8($){let Z=$.studioJwtSecret||$.betterAuthSecret;if(Z)return Z;return console.warn("STUDIO_JWT_SECRET/BETTER_AUTH_SECRET not set - generating a random secret for voice sessions (not persistent across restarts)"),jU5(32).toString("base64")}function qP8($,{baseUrl:Z,requestOrigin:Q}){let Y;try{Y=new URL($).hostname}catch{return null}if(Y==="localhost"||Y==="127.0.0.1")return $;let X=Z??Q;try{if(new URL(X).origin===$)return $}catch{}return null}function RP8($,Z){return $.origin===new URL(Z).origin||$.hostname==="localhost"}async function MU5($={}){let Z=$.database??E8(),Q=!1;I6.stop().catch((F0)=>{console.error("[SSEHub] Error stopping previous broadcast (HMR cleanup):",F0)});let Y,X,J,G,W=new iT1,K,H,F,U=null;if($.disableNats)K=pT1(),Y={get:async()=>null,set:async()=>{},invalidate:async()=>{},teardown:()=>{}},X=null,J=null,G=new aZ0,H={start:async()=>{},broadcast:()=>{},stop:async()=>{}},F={init:async()=>{},pump:(F0)=>{return(async()=>{let G0=F0.getReader();try{while(!0){let{done:P0}=await G0.read();if(P0)break}}catch{}finally{G0.releaseLock()}})()},publishRawChunk:async()=>!1,publishDone:async()=>!1,createTailStream:async()=>null,purge:()=>{},teardown:()=>{}};else{U=zE8();let F0=B0().natsCredsPath,G0;if(F0)try{G0=OU5(F0,"utf8")}catch(B8){console.error(`[app] failed to read NATS_CREDS at ${F0}; connecting anonymously`,B8)}U.init(B0().natsUrls,{creds:G0,user:B0().natsUser,password:B0().natsPassword});let P0=oZ1()?new vZ1({getJetStream:()=>U.getJetStream(),selfListVersion:_g0.version}):null;P0?.init().catch(()=>{}),Y=P0;let z0=new E71({getJetStream:()=>U.getJetStream()});z0.init().catch(()=>{}),X=z0;let j1=new eh(xB1,{getJetStream:()=>U.getJetStream()}),b$=new eh(a90,{getJetStream:()=>U.getJetStream()});j1.init().catch(()=>{}),b$.init().catch(()=>{}),J={reads:j1,cards:b$};let r$=new Xj1({getJetStream:()=>U.getJetStream()});r$.init().catch(()=>{}),G=r$,K=pT1({getConnection:()=>U.getConnection()}),H=new nT1({getConnection:()=>U.getConnection()}),F=new sT1({getConnection:()=>U.getConnection(),getJetStream:()=>U.getJetStream()}),iH8(U),U.onReady(()=>{P0?.init().catch((B8)=>{console.error("[McpListCache] Deferred init failed:",B8)}),z0.init().catch((B8)=>{console.error("[SkillCatalogCache] Deferred init failed:",B8)}),j1.init().catch((B8)=>{console.error("[PrReadCache] Deferred init failed:",B8)}),b$.init().catch((B8)=>{console.error("[PrCardCache] Deferred init failed:",B8)}),r$.init().catch((B8)=>{console.error("[ConnectionCircuitStore] Deferred init failed:",B8)}),K.start(),l2$(()=>U.getConnection()),F.init().catch((B8)=>{console.warn("[Decopilot] StreamBuffer init failed (late-join disabled):",B8)})})}if(C2)await C2();bZ1(Y),z71(X),T71(()=>U?.getConnection()??null),fB1(J),Jj1(G);let B={storage:new nm(Z.db),sseHub:I6,onThreadFinished:async(F0,G0)=>_t(new jW(Z.db),F0,G0,new C3(Z.db))},D=new hD1(B),O=new I70(Z.db),j=new rT1(O);j.start(),WZ8(H),H.start((F0)=>{Wb0(F0),D.execute({type:"CANCEL",taskId:F0}).catch((G0)=>{console.error("[Decopilot] CancelBroadcast execute failed:",G0)})}).catch((F0)=>{console.error("[Decopilot] CancelBroadcast start failed:",F0)}),U?.onReady(()=>{H.start().catch((F0)=>{console.error("[CancelBroadcast] Deferred start failed:",F0)})});let w=()=>U?.getConnection()??null;fz1(w),U?.onReady(()=>fz1(w)),hj1(w),U?.onReady(()=>hj1(w)),F.init().catch((F0)=>{console.warn("[Decopilot] StreamBuffer init failed, attach/late-join disabled:",F0)}),C2=async()=>{await D.stopAll(),D.dispose(),j.dispose(),H.stop().catch(()=>{}),UU8(),F.teardown(),Y?.teardown(),X?.teardown(),J?.reads.teardown(),J?.cards.teardown(),W.teardown(),K.teardown(),m2$(),G.teardown(),bZ1(null),z71(null),T71(null),fB1(null),Jj1(null)};let E=new Z1;if(E.use("*",Zj1({enabled:(F0)=>bo(F0,"debug")==="1"})),E.use("*",Fh0),E.use("/*",uH8({origin:(F0,G0)=>qP8(F0,{baseUrl:B0().baseUrl,requestOrigin:new URL(G0.req.url).origin}),credentials:!0,allowMethods:["GET","POST","PUT","DELETE","OPTIONS"],allowHeaders:["Content-Type","Authorization","mcp-protocol-version"],exposeHeaders:["WWW-Authenticate"]})),E.use("*",async(F0,G0)=>{if(await G0(),F0.req.path.includes("/files/"))return;if(F0.req.path.includes("/fs/")&&F0.req.path.endsWith("/read"))return;F0.header("X-Frame-Options","DENY"),F0.header("Content-Security-Policy","frame-ancestors 'none'")}),B0().nodeEnv==="development")E.use("*",$P8());E.use("*",async(F0,G0)=>{if(await G0(),ds(F0.req.path))return;if(F0.res.status>=500){let z0=await F0.res.clone().text();console.error(`[5xx Response] ${F0.req.method} ${F0.req.path} - ${F0.res.status}:`,z0)}}),E.get(tX.HEALTH,(F0)=>{if(Q)return F0.json({status:"shutting_down"},503);return F0.json({status:"ok"})}),E.get(tX.HEALTH_LIVE,(F0)=>{return F0.json({status:"ok"})}),E.get(tX.HEALTH_READY,async(F0)=>{if(Q)return F0.json({status:"shutting_down"},503);let G0={};if(G0.postgres={status:await EU5(Z.pool)?"up":"down"},U)G0.nats=U.isConnected()?{status:"up"}:{status:"down"};else G0.nats={status:"down"};let P0=G0.postgres.status==="up",z0=P0?200:503;return F0.json({status:P0?"ready":"not_ready",services:G0},z0)}),E.get(tX.METRICS,async(F0)=>{try{let G0=await Dh0.collect(),P0=PU5.serialize(G0.resourceMetrics);return F0.text(P0,200,{"Content-Type":"text/plain; version=0.0.4; charset=utf-8"})}catch(G0){return console.error("Failed to collect metrics:",G0),F0.text("# Error collecting metrics",500)}});let P=1800000;E.get(`${tX.DBOS_QUEUE_DEPTH_PREFIX}:queueName`,async(F0)=>{let G0=F0.req.param("queueName");if(!TU5.has(G0))return F0.json({error:`Unknown queue: ${G0}`},404);let[P0,z0]=await Promise.all([JD.listQueuedWorkflows({queueName:G0,status:"ENQUEUED",loadInput:!1,loadOutput:!1}),JD.listQueuedWorkflows({queueName:G0,status:"PENDING",loadInput:!1,loadOutput:!1,dequeuedAfter:new Date(Date.now()-P).toISOString()})]);return F0.json({queue_length:P0.length,in_flight:z0.length})}),E.route("/api/config",Sw8),E.route("/api/_reports",lw8),E.route("/api/_stripe",_T1),E.route("/api/_github",dw8({taskBoard:()=>l,contextFactory:()=>b})),E.route("/api/_git",to);let T={db:Z.db,encryptionKey:B0().encryptionKey};E.route("/api/_jira",ZE8(T)),E.route("/api/_jira",tw8(T)),E.route("/report",gw8($.clientDir)),E.route("/api/auth/custom",UF8),E.all("/api/auth/admin/*",aF8),E.all("/api/auth/*",async(F0)=>{return await B4.handler(F0.req.raw)});let z=lW8();z.use("/.well-known/oauth-protected-resource/mcp/:connectionId",c70),z.use("/mcp/:connectionId/.well-known/oauth-protected-resource",c70),E.route("/",z),E.get("/.well-known/oauth-protected-resource/api/:org/mcp/:connectionId",q70),E.route("/",pW8()),E.use("/oauth-proxy/:connectionId/*",c70),E.all("/oauth-proxy/:connectionId/*",PP8);let A=async(F0)=>{let P0=await qU5()(F0.req.raw),z0=await P0.json();return Response.json(z0,P0)};E.use("/mcp/:gateway?/:connectionId/.well-known/oauth-protected-resource/*",c70),E.get("/mcp/:gateway?/:connectionId/.well-known/oauth-protected-resource/*",A);let R=async(F0)=>{let P0=await RU5()(F0.req.raw),z0=await P0.json();return Response.json(z0,P0)};E.get("/.well-known/oauth-authorization-server/*/:gateway?/:connectionId?",R);let f=mH8({ttlMs:120000}),S=await uK8({db:Z.db,auth:B4,encryption:{key:B0().encryptionKey},observability:{tracer:Rj,meter:G$},modelListCache:W,providerKeyCache:K,memberRoleCache:f});vY.set(S),J$$({db:Z.db,baseUrl:B5()}),lK8({db:Z.db}),iK8({db:Z.db}),wH8({db:Z.db}),MH8({db:Z.db}),aw8({db:Z.db,encryptionKey:B0().encryptionKey}),B88({db:Z.db}),_H8({db:Z.db}),d88({db:Z.db});let V=ZE(Z.db),v=new V00(Z.db),b=aE8({db:Z.db});sL1({storage:V,studioContextFactory:b,orgContextFactory:(F0)=>hJ(Z.db,F0),systemDatabaseUrl:y10(B0().databaseUrl,B0().databasePgSsl)}),vL1({systemDatabaseUrl:y10(B0().databaseUrl,B0().databasePgSsl),studioContextFactory:b,deps:{runRegistry:D,cancelBroadcast:H,streamBuffer:F,sseHub:I6}}),VL1({dispatchRunFn:O98,studioContextFactory:b,deps:{runRegistry:D,cancelBroadcast:H,streamBuffer:F,sseHub:I6}});let h=new nm(Z.db),l=new jW(Z.db),d=new C3(Z.db),W0=new eT1(l,b,d);if(B0().taskBoardReviewSweeperEnabled){W0.start();let F0=C2;C2=async()=>{await F0?.(),W0.dispose()}}cE8({automations:V,taskBoard:l,fire:XH,systemDatabaseUrl:y10(B0().databaseUrl,B0().databasePgSsl),settleMs:B0().boardTransitionSettleSeconds*1000}),A88(iE8),y98({getJetStream:()=>U?.getJetStream()??null,getJetStreamManager:async()=>{let F0=U?.getConnection();return F0?await zP8.jetstreamManager(F0):null},messageParts:h.messageParts(),resolveRun:async(F0)=>{let G0=await Z.db.selectFrom("threads").select(["organization_id","created_by","message_storage_version","status","run_fence_token","title"]).where("id","=",F0).executeTakeFirst();return G0?{orgId:G0.organization_id,createdBy:G0.created_by,version:G0.message_storage_version??1,status:G0.status,runFenceToken:G0.run_fence_token,title:G0.title??null}:null},completeRunIfNotCompleted:async(F0,G0)=>{let P0=await h.completeRunIfNotCompleted(F0,G0);if(hg0(I6,G0,F0,P0),P0)await _t(l,F0,G0,d);return P0},markRunRequiresAction:async(F0,G0)=>{let P0=await h.requiresActionIfInProgress(F0,G0);return hg0(I6,G0,F0,P0),P0},markRunFailed:async(F0,G0,P0,z0)=>{let j1=await h.markRunFailed(F0,G0,P0,z0);if(hg0(I6,G0,F0,j1),j1)await _t(l,F0,G0,d);return j1},clearSynthesizedError:async(F0,G0)=>{await h.messageParts().replaceMessageParts(F0,sz(F0,G0),[])},persistTitle:(F0,G0,P0)=>h.update(F0,G0,{title:P0}),onTitleUpdated:async({runId:F0,orgId:G0,title:P0})=>{let z0=await h.get(F0,G0).catch(()=>null);I6.emit(G0,cU(F0,z0?.status??"in_progress",{title:P0,virtualMcpId:z0?.virtual_mcp_id??void 0,createdBy:z0?.created_by,triggerId:z0?.trigger_id,branch:z0?.branch??null,harnessId:z0?.harness_id??void 0,createdAt:z0?.created_at,updatedAt:z0?.updated_at}))},bumpProgress:async({runId:F0,orgId:G0})=>{await h.bumpProgress(F0,G0)},recordCompleted:async({runId:F0,orgId:G0,distinctId:P0,usage:z0})=>{m1.capture({distinctId:P0,event:"chat_message_completed",groups:{organization:G0},properties:{organization_id:G0,thread_id:F0,transport:"projector",input_tokens:z0.inputTokens,output_tokens:z0.outputTokens,total_tokens:z0.totalTokens}})},recordFailed:async({runId:F0,orgId:G0,distinctId:P0,reason:z0,kind:j1})=>{m1.capture({distinctId:P0,event:"chat_message_failed",groups:{organization:G0},properties:{organization_id:G0,thread_id:F0,transport:"projector",error_category:j1,error_message:z0}})},purgeRun:async(F0)=>{F.purge(F0)}}),h58({studioContextFactory:b,systemDatabaseUrl:y10(B0().databaseUrl,B0().databasePgSsl),streamBuffer:F}),sE8(),G$$(),cK8(),nK8(),PH8(),IH8(),$E8(),pE8(),w88(),bH8(),i88(),pw8();let I0=async(F0,G0,P0)=>{let z0=await V.findById(F0,G0);if(!z0)throw Error("Automation not found");return ZO1({automationId:z0.id,organizationId:z0.organization_id,triggerId:null})},J0=new lo(V,({automation:F0,trigger:G0,contextMessages:P0,idempotencyKey:z0})=>XH({automationId:F0.id,organizationId:F0.organization_id,triggerId:G0.id,contextMessages:P0},{idempotencyKey:z0})),U0=[VH(),Xl(),ND()];for(let F0 of U0)mg0(F0).then(()=>{}).catch((G0)=>console.error("[monitoring] Retention cleanup failed:",G0));let o=()=>B4.api.deleteAllExpiredApiKeys().catch((F0)=>console.error("[auth] Expired API key cleanup failed:",F0));o(),setInterval(o,86400000).unref(),E.use("*",async(F0,G0)=>{if(Kh0(F0.req.path))return G0();let P0={measure:async(j1,b$)=>{NH(F0,j1);try{return await b$()}finally{RW(F0,j1)}}},z0=await vY.create(F0.req.raw,{timings:P0});z0.automationRunner=I0,F0.set("studioContext",z0);try{await G0()}finally{let j1=z0.pendingRevalidations;if(j1.length>0)Promise.race([Promise.allSettled(j1),J$(30000)]).catch((r$)=>console.error("[studio] revalidation cleanup error:",r$))}}),E.use("/api/:org/decopilot/*",fo),E.use("/api/:org/v1/*",fo),E.use("/api/:org/files/*",fo),E.use("*",async(F0,G0)=>{if(AP8(F0.req.path))return G0();let P0=F0.get("studioContext");if(!P0?.organization?.id||!P0?.auth?.user?.id)return G0();if(!(await P0.storage.orgSsoConfig.getByOrgId(P0.organization.id))?.enforced)return G0();if(!await P0.storage.orgSsoSessions.isValid(P0.auth.user.id,P0.organization.id))return F0.json({error:"SSO authentication required for this organization"},403);return G0()});let t=new Z1;t.use("*",jU({mountPath:"/api/org-sso"})),t.route("/",Yy0()),E.route("/api/org-sso",t),E.get("/api/tools/management",(F0)=>{return F0.json({tools:_00,grouped:TT()})}),E.use("/mcp/*",async(F0,G0)=>{NH(F0,"mcp");try{return await G0()}finally{RW(F0,"mcp")}});let r=async(F0,G0)=>{let P0=F0.var.studioContext;if(!P0.auth.user?.id&&!P0.auth.apiKey?.id){let z0=new URL(F0.req.url),j1=F0.req.header("x-forwarded-proto")?.split(",")[0]?.trim(),b$=j1?`${j1}://${z0.host}`:z0.origin;return F0.res=new Response(null,{status:401,headers:{"WWW-Authenticate":`Bearer realm="mcp",resource_metadata="${b$}${z0.pathname}/.well-known/oauth-protected-resource"`}})}return await G0()};if(E.use("/mcp/:connectionId?",r),E.use("/mcp/gateway/:virtualMcpId?",r),E.use("/mcp/virtual-mcp/:virtualMcpId?",r),E.use("/mcp/self",r),bK()){let{mountDevRoutes:F0}=(jP8(),sg0(OP8));F0(E,r)}let $0=new Z1;$0.use("*",jU({mountPath:"/mcp"})),$0.route("/",Yx0()),E.route("/mcp",$0);let X0=new Z1;X0.use("*",jU({mountPath:"/mcp/self"})),X0.route("/",sy0()),E.route("/mcp/self",X0);let h0=new Z1;h0.use("*",jU({mountPath:"/mcp"})),h0.route("/",Gx0()),E.route("/mcp",h0),E.use("/api/:org/models/*",async(F0,G0)=>{NH(F0,"llm_models");try{return await G0()}finally{RW(F0,"llm_models")}});let C0=jU8({cancelBroadcast:H,streamBuffer:F,runRegistry:D});E.route("/api",C0),E.route("/api",JE8);let H1=new Z1;H1.use("*",jU({mountPath:"/api"})),H1.route("/",$g0()),E.route("/api",H1),E.route("/api",Mw8);let m0=new Z1;m0.use("*",jU({mountPath:"/api"})),m0.route("/",Zg0({tokenStorage:v,automationEventDispatcher:J0})),E.route("/api",m0);let j0=new I00(Z.db),E0=new Z1;E0.use("*",jU({mountPath:"/api"})),E0.route("/",Hy0()),E.route("/api",E0),E.route("/api/deco-sites",_U8());let n0=new Z1;n0.use("*",jU({mountPath:"/api/deco-sites"})),n0.route("/",Uy0()),E.route("/api/deco-sites",n0),E.route($y0,eF8()),E.route(jL8,PL8()),E.route("/api/_editor-resolve",Iw8()),E.route(jF8,wF8()),E.route(tf0,vF8());let O1=B0(),o0=O1.elevenlabsApiKey?new kg0({apiKey:O1.elevenlabsApiKey,model:O1.elevenlabsVoiceModel,conversationModel:O1.elevenlabsConversationModel,voiceId:O1.elevenlabsVoiceId}):null,x0={openai:O1.openaiLiveApiKey?new qT1({apiKey:O1.openaiLiveApiKey,voice:O1.openaiLiveVoice}):null,elevenlabs:o0?new TT1(o0,()=>U?.getConnection()??null):null},d0=new kT1({adapter:o0,conversationAdapters:x0,defaults:O1,secret:TP8(O1),getConnection:()=>U?.getConnection()??null}),i0=$w8({voiceSessions:d0,kvStorage:j0,runRegistry:D,streamBuffer:F,sseHub:I6,cancelBroadcast:H,tokenStorage:v,automationEventDispatcher:J0,mountDevAssets:bK(),mcpAuth:r,oauthProxyHandler:PP8,watchHandler:MP8,betterAuthProtectedResourceHandler:A,getNatsConnection:()=>U?.getConnection()??null});return E.route("/api/:org",i0),E.notFound((F0)=>{return F0.json({error:"Not Found",path:F0.req.path},404)}),E.onError(EU8),Object.assign(E,{markShuttingDown:()=>{Q=!0},shutdown:async()=>{if(console.log("[shutdown] Stopping workers..."),await Promise.allSettled([I6.stop(),C2?Promise.resolve(C2()).finally(()=>{C2=null}):Promise.resolve()]),U)await U.drain().catch((F0)=>console.error("[shutdown] NATS drain error:",F0));console.log("[shutdown] Flushing telemetry..."),await tJ().catch((F0)=>console.error("[shutdown] Telemetry flush error:",F0)),console.log("[shutdown] Closing database..."),await BH$(Z).catch((F0)=>console.error("[shutdown] Database close error:",F0)),console.log("[shutdown] Cleanup complete.")},initDbos:async()=>{await JD.registerQueue(H3,{partitionQueue:!0,concurrency:nL1,minPollingIntervalMs:tL1}),await JD.registerQueue(uW,{partitionQueue:!0,concurrency:SL1,priorityEnabled:!0}),await JD.registerQueue(FD,{workerConcurrency:B0().decopilotMaxConcurrentHostedRuns,priorityEnabled:!0}),await JD.registerQueue(UD,{workerConcurrency:B0().sandboxMaxConcurrentHostedRuns,priorityEnabled:!0}),await JD.registerQueue(qj,{partitionQueue:!0,concurrency:g58}),await JD.registerQueue(x2,c88),await JD.registerQueue(f2),await cz1(V),await Promise.allSettled(["automations-gate","automations-global","jira-push"].map((F0)=>JD.deleteQueue(F0))),await oL1(Z.pool),sN$().catch((F0)=>{console.error("[studio-pack-backfill] failed:",F0)}),yd(Z.db).catch((F0)=>{console.error("[automations] built-in seed failed:",F0)}),W$$().catch((F0)=>{console.error("[org-fs] public-sets boot sync kick failed:",F0)})}})}var zP8,wP8=5000,C2=null,PP8=async($)=>{let Z=$.req.param("connectionId");if(!Z)return $.json({error:"Missing connectionId"},400);let Q=$.req.path.split("/").filter(Boolean),Y=Q[Q.length-1],X=$.get("studioContext");if(!X)X=await vY.create($.req.raw),$.set("studioContext",X);let J=$.req.param("org")?X.organization?.id:void 0,G=await X.storage.connections.findById(Z,J);if(!G?.connection_url)return $.json({error:"Connection not found"},404);if(Y==="register"&&G.oauth_config?.clientId){let v=await $.req.json().catch(()=>({}));return $.json({...typeof v==="object"&&v!==null?v:{},client_id:G.oauth_config.clientId,...G.oauth_config.clientSecret?{client_secret:G.oauth_config.clientSecret}:{},client_secret_expires_at:0})}let W=await Io(G.connection_url),K,H=new URL(G.connection_url),U=(typeof G.metadata?.oauthResource==="string"&&G.metadata.oauthResource.length>0?G.metadata.oauthResource:void 0)??G.connection_url;if(W.ok)K=sE1(await W.json());if(!K)K=H.origin;let N=await R70(K);if(!N.ok)return $.json({error:"Failed to get auth server metadata"},502);let B=await N.json(),D;if(Y==="authorize")D=B.authorization_endpoint;else if(Y==="token")D=B.token_endpoint;else if(Y==="register")D=B.registration_endpoint;if(!D)return $.json({error:`Unknown OAuth endpoint: ${Y}`},404);let O=iW8(D);if(O)return O;let j=new URL(D),w=new URL($.req.url);if(j.search=w.search,Y==="authorize"){let v=j.searchParams.get("redirect_uri");if(v){let b=B0().baseUrl??w.origin;try{if(!RP8(new URL(v),b))return $.json({error:"invalid_request",error_description:"redirect_uri is not allowed"},400)}catch{return $.json({error:"invalid_request",error_description:"redirect_uri is malformed"},400)}j.searchParams.set("redirect_uri",v)}if(j.searchParams.has("resource"))j.searchParams.set("resource",U);if(fH8(G.connection_url))j.searchParams.set("auto_personal","true"),j.searchParams.set("force_new","true");return $.redirect(j.toString(),302)}let E={Accept:$.req.header("Accept")||"application/json"},P=$.req.header("Content-Type");if(P)E["Content-Type"]=P;let T=$.req.header("Authorization");if(T)E.Authorization=T;let z,A=null,R=null;if($.req.method!=="GET"&&$.req.method!=="HEAD")if(Y==="token"&&P?.includes("application/x-www-form-urlencoded")){if(T?.toLowerCase().startsWith("basic "))try{let d=atob(T.slice(6).trim()),W0=d.indexOf(":");if(W0!==-1){let I0=decodeURIComponent(d.slice(0,W0)),J0=decodeURIComponent(d.slice(W0+1));A=I0||null,R=J0||null}}catch{}let v=await $.req.formData();if(v.has("resource"))v.set("resource",U);let b=v.get("client_id"),h=v.get("client_secret");if(typeof b==="string"&&b)A=b;if(typeof h==="string"&&h)R=h;let l=new URLSearchParams;for(let[d,W0]of v.entries())l.append(d,W0.toString());z=l.toString()}else if(Y==="register"&&P?.toLowerCase().includes("application/json")){let v=await X.db.selectFrom("organization").select(["id","slug","name"]).where("id","=",G.organization_id).executeTakeFirst(),b=await $.req.text(),h={};try{h=b?JSON.parse(b):{}}catch{z=b}let l=typeof h==="object"&&h!==null&&!Array.isArray(h);if(z===void 0&&!l)z=b;if(z===void 0){let d=h,W0=d.metadata&&typeof d.metadata==="object"?d.metadata:{};d.metadata={...W0,organization_id:G.organization_id,...v?.slug?{organization_slug:v.slug}:{},...v?.name?{organization_name:v.name}:{}},z=JSON.stringify(d),E["Content-Type"]="application/json"}}else z=$.req.raw.body??void 0;let f=await fetch(j.toString(),{method:$.req.method,headers:E,body:z,duplex:"half",redirect:"manual"}),S=new Headers,V=["connection","keep-alive","transfer-encoding","content-encoding","content-length"];for(let[v,b]of f.headers.entries())if(!V.includes(v.toLowerCase()))S.set(v,b);if(Y==="token"&&f.ok){let v=await f.text();try{let b=JSON.parse(v);if(typeof b.access_token==="string"&&b.access_token){let h=typeof b.expires_in==="number"?new Date(Date.now()+b.expires_in*1000):null,l=null;try{l=await D2(G.connection_url)??D}catch{l=D}let d={connectionId:Z,accessToken:b.access_token,refreshToken:typeof b.refresh_token==="string"?b.refresh_token:null,scope:typeof b.scope==="string"?b.scope:null,expiresAt:h,clientId:A,clientSecret:R,tokenEndpoint:l};await new e5(X.db,X.vault).upsert(d)}}catch(b){console.error("[oauth-proxy] failed to persist downstream token:",b)}return new Response(v,{status:f.status,statusText:f.statusText,headers:S})}return new Response(f.body,{status:f.status,statusText:f.statusText,headers:S})},MP8=async($)=>{let Z=$.var.studioContext,Q=Z.auth.user?.id??Z.auth.apiKey?.userId;if(!Q)return $.json({error:"Unauthorized"},401);let Y=Z.organization?.id;if(!Y)return $.json({error:"organization id missing"},400);let X=$.req.query("types"),J=X?X.split(",").map((H)=>H.trim()).filter(Boolean):null,G=$.req.query("scope")==="all";if(G&&(!xB(Y)||!await fB(Z)))return $.json({error:"forbidden"},403);let W=G?Yv0:Y;if(G)SO({action:"watch_all_orgs",actorUserId:Q,actorOrgId:Y,targetOrgId:"all"});let K=crypto.randomUUID();return Bj($,async(H)=>{if(await H.writeSSE({event:"connected",data:JSON.stringify({listenerId:K,organizationId:Y,typePatterns:J,connectedAt:new Date().toISOString()})}),!I6.add({id:K,organizationId:W,typePatterns:J?.length?J:null,push:(N,B)=>{H.writeSSE({id:N.id,event:N.type,data:JSON.stringify(G?{...N,organizationId:B}:N)}).catch(()=>{I6.remove(W,K)})}})){await H.writeSSE({event:"error",data:JSON.stringify({error:"Too many connections",message:"SSE connection limit reached. Try again later."})});return}let U=setInterval(()=>{H.writeSSE({event:"keepalive",data:""}).catch(()=>{clearInterval(U),I6.remove(W,K)})},30000);await new Promise((N)=>{H.onAbort(()=>{clearInterval(U),I6.remove(W,K),N()})})})},PU5,TU5,qU5=()=>AU5(B4),RU5=()=>zU5(B4);var IP8=L(()=>{p$();u1();K$$();dK8();tK8();zH8();kH8();J70();LB1();xH8();r90();H9();ii();q8();K8();df0();lH8();Qj1();nK();vF();Hz1();S3();b6();Q6();Oz1();EF8();bF8();Tz1();$U8();_z1();uz1();lz1();xK();M70();mz1();PU8();pf0();Zw8();Gw8();Ww8();Uw8();zw8();pz1();Xx0();eZ0();Vw8();Wx0();qA1();kw8();AA1();_w8();hw8();mw8();cw8();iw8();nw8();ow8();QE8();cT1();az1();GE8();TA1();wA1();$Y0();AE8();CT1();TJ();_B0();N40();gB1();G40();K40();Wj1();TE8();RE8();yz1();_E8();sv0();vE8();Ke();S00();CO();m5();NP1();gE8();nE8();jG();pz();rE8();aF0();Qq1();mW();dz1();IO();RL1();aF0();vZ0();M00();O01();eE8();QE();ZP8();Us();Hz1();Rt();dt();Kb0();zP8=_(xH(),1);PU5=new wU5,TU5=new Set([H3,uW,FD,UD,qj,x2])});var _P8={};O6(_P8,{resolveClientDir:()=>vU5,resolveAssetPathWithTraversalCheck:()=>SP8,isPathWithinDirectory:()=>CP8,createAssetHandler:()=>bU5});import{resolve as uQ0,dirname as VU5,join as IU5,extname as kU5,basename as CU5,sep as kP8}from"path";function SU5($,Z){if($===Z||CU5($)==="index.html")return{"Cache-Control":"no-cache"};if($.includes(`${kP8}assets${kP8}`))return{"Cache-Control":"public, max-age=31536000, immutable"};return{}}function CP8($,Z){let Q=uQ0(Z),Y=uQ0($);return Y===Q||Y.startsWith(Q+"/")}function SP8({requestPath:$,clientDir:Z}){let Q=$.startsWith("/")?$.slice(1):$,Y=uQ0(Z,Q);if(!CP8(Y,Z))return null;return Y}function vU5($,Z="../client"){let Q=new URL($),Y=VU5(Q.pathname);return uQ0(Y,Z)}function bU5($={}){let{env:Z="production",clientDir:Q=_U5,isServerPath:Y=()=>!1}=$;if(Z==="development")return async function(J){return null};return async function(J){if(J.method!=="GET")return null;let G=new URL(J.url),W;try{W=decodeURIComponent(G.pathname)}catch{return null}if(Y(W))return null;let K=SP8({requestPath:W,clientDir:Q});if(!K)return null;let H=IU5(K,"index.html"),F=uQ0(Q,"index.html"),U=J.headers.get("accept"),B=U?.includes("text/html")||U?.includes("*/*")&&["",".html"].includes(kU5(K))?[H,F]:[];for(let D of[K,...B])try{let O=Bun.file(D);if(await O.exists())return new Response(O,{headers:SU5(D,F)})}catch{}if(W.includes("/assets/"))return new Response("Not Found",{status:404,headers:{"Cache-Control":"no-store"}});return null}}var _U5="./dist/client";var vP8=()=>{};var bP8={};O6(bP8,{tryUpgradePreviewWs:()=>lU5,tryHandlePreviewHttp:()=>uU5,previewWebSocketHandler:()=>mU5,parsePreviewBaseDomain:()=>hU5,isPreviewWsData:()=>cg0,extractHandleFromHost:()=>Wq1});function yU5($){if($.method!=="GET")return!1;return($.headers.get("accept")??"").includes("text/html")}function gU5(){return new Response(fU5,{status:503,headers:{"content-type":"text/html; charset=utf-8","cache-control":"no-store","retry-after":"1","access-control-allow-origin":"*"}})}function hU5($){if(!$||$.trim()==="")return null;let Z=$.includes("{handle}")?$.replace("{handle}","__handle__"):$,Q;try{Q=new URL(Z)}catch{return null}let Y=Q.hostname;if($.includes("{handle}")){let X=Y.indexOf(".");if(X<=0||X===Y.length-1)return null;return Y.slice(X+1)}return Y}function Wq1($,Z){if(!$||!Z)return null;let Q=$.indexOf(":"),Y=(Q>=0?$.slice(0,Q):$).toLowerCase(),J=`.${Z.toLowerCase().replace(/^\.+|\.+$/g,"")}`;if(!Y.endsWith(J))return null;let G=Y.slice(0,Y.length-J.length);if(!G||G.includes("."))return null;return G}async function uU5($,Z){let Q=Wq1($.headers.get("host"),Z.baseDomain);if(!Q)return null;let Y=await Z.getRunner();if(!Y)return mQ0(503,"preview proxy not configured");let X=await Y.proxyPreviewRequest(Q,$);if(X.headers.get(Sn)&&yU5($))return gU5();return X.headers.delete(Sn),X}function mQ0($,Z){return new Response(JSON.stringify({error:Z}),{status:$,headers:{"content-type":"application/json","access-control-allow-origin":"*"}})}function cg0($){return typeof $==="object"&&$!==null&&$.kind==="preview"}async function lU5($,Z,Q){if(($.headers.get("upgrade")??"").toLowerCase()!=="websocket")return null;let Y=Wq1($.headers.get("host"),Q.baseDomain);if(!Y)return null;let X=await Q.getRunner();if(!X)return mQ0(503,"preview proxy not configured");let J=await X.resolvePreviewUpstreamUrl(Y);if(!J)return mQ0(404,"sandbox not found");let G=new URL($.url);if(G.pathname.startsWith("/_sandbox"))return mQ0(404,"not found");let W=`${J.replace(/^http/,"ws")}${G.pathname}${G.search}`,K=$.headers.get("sec-websocket-protocol"),H=K?K.split(",").map((N)=>N.trim()).filter(Boolean):[],F={kind:"preview",upstreamUrl:W,upstreamProtocols:H,pending:[],upstream:null,closed:!1};if(!Z.upgrade($,{data:F}))return mQ0(426,"upgrade failed");return}function lQ0($,Z,Q,Y){if(Z.closed)return;Z.closed=!0;try{$.close(Q,Y)}catch{}try{Z.upstream?.close()}catch{}}var xU5=256,fU5='<!DOCTYPE html><html><head><meta charset="utf-8"><title>Connecting\u2026</title><style>body{font-family:system-ui,sans-serif;display:flex;align-items:center;justify-content:center;min-height:100vh;margin:0;background:#fafafa;color:#555}div{text-align:center;max-width:420px;padding:24px}h3{margin:0 0 8px}p{margin:0;font-size:14px;color:#999;line-height:1.5}</style></head><body><div><h3>Connecting to sandbox\u2026</h3><p>Waiting for the sandbox to come online. This page refreshes automatically.</p></div><script>setTimeout(function(){window.location.reload()},1500)</script></body></html>',mU5;var xP8=L(()=>{y50();mU5={open($){let Z=$.data;if(!cg0(Z))return;let Q;try{Q=Z.upstreamProtocols.length>0?new WebSocket(Z.upstreamUrl,Z.upstreamProtocols):new WebSocket(Z.upstreamUrl)}catch(Y){console.warn(`[preview-ws] failed to dial upstream ${Z.upstreamUrl}: ${Y instanceof Error?Y.message:String(Y)}`),lQ0($,Z,1011,"upstream connect failed");return}Q.binaryType="arraybuffer",Z.upstream=Q,Q.addEventListener("open",()=>{while(Z.pending.length>0){let Y=Z.pending.shift();if(Y!==void 0)Q.send(Y)}}),Q.addEventListener("message",(Y)=>{if(Z.closed)return;$.send(Y.data)}),Q.addEventListener("close",(Y)=>{lQ0($,Z,Y.code||1000,Y.reason||"")}),Q.addEventListener("error",()=>{lQ0($,Z,1011,"upstream error")})},message($,Z){let Q=$.data;if(!cg0(Q))return;let Y=Q.upstream;if(Y&&Y.readyState===WebSocket.OPEN){Y.send(Z);return}if(Q.pending.length>=xU5){lQ0($,Q,1011,"preview ws backlog overflow");return}Q.pending.push(Z)},close($){let Z=$.data;if(!cg0(Z))return;lQ0($,Z,1000,"")}}});p$();var Pq1="14";function zq1($){return{name:"decocms",systemDatabaseUrl:$.systemDatabaseUrl,systemDatabaseSchemaName:"dbos",systemDatabasePoolSize:$.poolSize,runAdminServer:!1,executorID:$.executorID,applicationVersion:Pq1,...$.listenQueues!==void 0?{listenQueues:$.listenQueues}:{}}}p$();import eP8 from"pg";var Aq1=8314027461559302n,$z8=600000,Zz8=500;async function Tq1($,Z){let{databaseUrl:Q,lockTimeoutMs:Y=$z8}=$,X=$.log??((K)=>console.log(K)),J=new eP8.Client({connectionString:Q});await J.connect();let G=Date.now(),W=!1;try{while(!W){if(W=(await J.query("SELECT pg_try_advisory_lock($1) AS locked",[Aq1.toString()])).rows[0]?.locked===!0,W)break;if(Date.now()-G>=Y)throw Error(`Timed out after ${Y}ms waiting for the DBOS migration lock. Another process is still migrating the dbos schema; this pod will restart and retry.`);await J$(Zz8)}let K=Date.now()-G;if(K>1000)X(`[dbos] waited ${K}ms for the migration lock; another process migrated first`);return await Z()}finally{if(W)try{await J.query("SELECT pg_advisory_unlock($1)",[Aq1.toString()])}catch{}await J.end().catch(()=>{})}}u1();$h0();b6();function ez8(){let $=(process.env.BUN_OPTIONS??"").split(/\s+/).filter(Boolean);return[...process.argv.slice(1),...$]}function jh0($,Z){for(let Q=0;Q<$.length;Q++){let Y=$[Q];if(Y===void 0)continue;if(Y===Z)return $[Q+1];if(Y.startsWith(`${Z}=`))return Y.slice(Z.length+1)}return}function JR1(){let $=ez8();if($.includes("--cpu-prof")){console.log(JSON.stringify({msg:"cpu-profiling-active",dir:jh0($,"--cpu-prof-dir")??process.cwd(),name:jh0($,"--cpu-prof-name"),markdown:$.includes("--cpu-prof-md"),intervalUs:Number(jh0($,"--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.'}))}Ph0();var YY0;function DR1(){if(process.env.HEAP_WATCH!=="1")return()=>{};let $=Number(process.env.HEAP_WATCH_INTERVAL_MS??60000),Z=async()=>{let Q=h2();if(!Q)return;let Y={};try{let{heapStats:X}=await import("bun:jsc"),J=X(),G=Object.entries(J.objectTypeCounts).sort((W,K)=>K[1]-W[1]).slice(0,20);Y={objectCount:J.objectCount,heapSize:J.heapSize,top:Object.fromEntries(G)}}catch{}console.log(JSON.stringify({msg:"heap-watch",ts:new Date().toISOString(),uptimeS:Math.round(process.uptime()),rss:Q.rss,heapUsed:Q.heapUsed,heapTotal:Q.heapTotal,external:Q.external,arrayBuffers:Q.arrayBuffers,...Y}))};return Z().catch(()=>{}),YY0=setInterval(()=>void Z().catch(()=>{}),$),YY0.unref?.(),process.on("SIGUSR2",()=>{try{let Q=Bun.generateHeapSnapshot("v8"),Y=typeof Q==="string"?Q:JSON.stringify(Q),X=`/tmp/heap-${process.pid}-${Date.now()}.heapsnapshot`;Bun.write(X,Y),console.log(JSON.stringify({msg:"heap-snapshot-written",path:X}))}catch(Q){console.error("[heap-watch] snapshot failed:",Q)}}),()=>{if(YY0)clearInterval(YY0)}}import*as Q28 from"bun:jsc";var{startSamplingProfiler:Y28,samplingProfilerStackTraces:X28}=Q28;function LR1(){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{Y28()}catch(J){return console.error("[stall-watchdog] failed to start sampling profiler:",J),()=>{}}let Q,Y=performance.now()+Z,X=()=>{let J=performance.now(),G=J-Y;Y=J+Z;let W=[];try{W=X28()?.traces??[]}catch{}if(G>$&&W.length>0){let K=new Map;for(let F of W){let U=F.frames.find((D)=>D.sourceURL&&!/Unknown Executable/.test(D.category??""))??F.frames[0];if(!U)continue;let N=(U.sourceURL??"?").replace(/^.*\/node_modules\//,"node_modules/"),B=`${U.name??"?"} @ ${N}:${U.line??"?"}`;K.set(B,(K.get(B)??0)+1)}let H=[...K.entries()].sort((F,U)=>U[1]-F[1]).slice(0,8).map(([F,U])=>({frame:F,count:U}));console.warn(JSON.stringify({msg:"stall-stack",ts:new Date().toISOString(),lagMs:Math.round(G),samplesInWindow:W.length,top:H}))}Q=setTimeout(X,Z),Q.unref?.()};return Q=setTimeout(X,Z),Q.unref?.(),()=>{if(Q)clearTimeout(Q)}}function OR1(){JR1();let $=[DR1(),BR1(),LR1()];return()=>{for(let Z of $)Z()}}import{existsSync as sU5}from"fs";var gW=B0();QR1();var{DBOS:cQ0,DBOSClient:cU5}=await import("@dbos-inc/dbos-sdk");function Bq1($,Z){if(!Z)return $;let Q=new URL($);if(!Q.searchParams.has("sslmode"))Q.searchParams.set("sslmode","verify-full");return Q.toString()}var dU5=[H3,uW,FD,UD,qj,x2,f2],iU5=gW.dispatchRole==="worker"?dU5:gW.dispatchRole==="api"?[]:void 0;cQ0.setConfig(zq1({systemDatabaseUrl:Bq1(gW.databaseUrl,gW.databasePgSsl),poolSize:gW.dbosPoolSize,executorID:gW.podName,listenQueues:iU5}));var{createApp:pU5}=await Promise.resolve().then(() => (IP8(),VP8)),{isServerPath:nU5}=await Promise.resolve().then(() => ($Y0(),hq1)),{createAssetHandler:tU5,resolveClientDir:uP8}=await Promise.resolve().then(() => (vP8(),_P8)),oU5=gW.port,fP8=uP8(import.meta.url,"../client"),lP8=sU5(fP8)?fP8:uP8(import.meta.url,"../dist/client"),rU5=tU5({clientDir:lP8,isServerPath:nU5}),aU5={"X-Frame-Options":"DENY","Content-Security-Policy":"frame-ancestors 'none'"};function eU5($){let Z=new Headers($.headers);for(let[Q,Y]of Object.entries(aU5))Z.set(Q,Y);return new Response($.body,{status:$.status,statusText:$.statusText,headers:Z})}var{parsePreviewBaseDomain:$N5,tryHandlePreviewHttp:ZN5,tryUpgradePreviewWs:QN5,previewWebSocketHandler:Kq1,isPreviewWsData:Hq1}=await Promise.resolve().then(() => (xP8(),bP8)),{getOrInitSharedRunner:mP8}=await Promise.resolve().then(() => (CX(),Cn$)),cP8=$N5(process.env.STUDIO_SANDBOX_PREVIEW_URL_PATTERN),yP8={baseDomain:cP8??"",getRunner:mP8};if(process.env.STUDIO_SANDBOX_TENANT_POOLS?.trim())mP8().catch(($)=>{console.warn("[lifecycle] eager sandbox provider init for tenant pools failed:",$ instanceof Error?$.message:String($))});var dg0=await pU5({clientDir:lP8}),Fq1=process.env.DBOS_CONDUCTOR_KEY?.trim(),gP8=process.env.DBOS_CONDUCTOR_URL?.trim();await Tq1({databaseUrl:Bq1(gW.databaseUrl,gW.databasePgSsl)},()=>cQ0.launch({...Fq1?{conductorKey:Fq1}:{},...Fq1&&gP8?{conductorURL:gP8}:{}}));console.log(`[dbos] application version: ${cQ0.applicationVersion}`);var Uq1=5,Nq1=0;await e$(async()=>{Nq1++;try{return await dg0.initDbos()}catch($){let Z=Nq1>=Uq1?"giving up":"retrying";throw console.warn(`[dbos] initDbos attempt ${Nq1}/${Uq1} failed, ${Z}`,$),$}},{maxAttempts:Uq1,minTimeout:1000,maxTimeout:1e4,jitter:0.5});var YN5=Bun.serve({idleTimeout:0,port:oU5,hostname:"0.0.0.0",fetch:async($,Z)=>{if(cP8){let Y=await QN5($,Z,yP8);if(Y===void 0)return;if(Y)return Y;let X=await ZN5($,yP8);if(X)return X}let Q=await rU5($);if(Q)return eU5(Q);return dg0.fetch($,{server:Z})},websocket:{open($){if(Hq1($.data))Kq1.open($)},message($,Z){if(Hq1($.data))Kq1.message($,Z)},close($){if(Hq1($.data))Kq1.close($)}},development:!1}),XN5=OR1();if(gW.localMode)Promise.resolve().then(() => (Zu(),cv0)).then(async({seedLocalMode:$,markSeedComplete:Z,healLocalJwks:Q})=>{try{let Y=await Q();if(Y>0)console.log(`[local-mode] cleared ${Y} undecryptable JWKS key(s); Better Auth will generate a fresh one`);let X=await $()}catch(Y){console.error("Failed to seed local mode:",Y)}finally{Z()}}).catch(async($)=>{console.error("Failed to load local-mode module:",$);try{let{markSeedComplete:Z}=await Promise.resolve().then(() => (Zu(),cv0));Z()}catch{}});var hP8=!1;async function JN5($){let Z;try{Z=await cU5.create({systemDatabaseUrl:Bq1(gW.databaseUrl,gW.databasePgSsl),systemDatabaseSchemaName:"dbos"});let Q=await Z.listWorkflows({status:"PENDING",queueName:uW,executorId:$,loadInput:!1,loadOutput:!1});if(Q.length===0){console.log(`[shutdown] no in-flight thread-gate gates to hand off (executor ${$})`);return}let Y=Q.map((X)=>X.workflowID);await Z.resumeWorkflows(Y,{queueName:uW}),console.log(`[shutdown] re-enqueued ${Y.length} in-flight thread-gate gate(s) for re-adoption by a live executor (from ${$}):`,Y)}catch(Q){console.error("[shutdown] thread-gate handoff failed:",Q)}finally{await Z?.destroy().catch(()=>{})}}async function ig0($){if(hP8)return;hP8=!0,console.log(`
|
|
4497
4497
|
[shutdown] Received ${$}, shutting down gracefully...`);let Z=Number(process.env.SHUTDOWN_GRACE_SECONDS??60)*1000,Q=Math.max(Z-5000,1e4),Y=setTimeout(()=>{console.error(`[shutdown] Timed out after ${Q}ms, forcing exit.`),process.exit(1)},Q);Y.unref?.();let X=0;try{XN5(),dg0.markShuttingDown();let J=qq1(gW.dispatchRole,Q,process.env.SHUTDOWN_DRAIN_MS);await J$(J),await YN5.stop(!0);let G=cQ0.executorID;await cQ0.shutdown(),await JN5(G),await dg0.shutdown()}catch(J){console.error("[shutdown] Error during shutdown:",J),X=1}clearTimeout(Y),process.exit(X)}process.on("SIGTERM",()=>ig0("SIGTERM"));process.on("SIGINT",()=>ig0("SIGINT"));process.on("SIGHUP",()=>ig0("SIGHUP"));process.on("unhandledRejection",($)=>{console.error("[process] Unhandled rejection:",$)});process.on("uncaughtException",($)=>{console.error("[process] Uncaught exception:",$),ig0("uncaughtException")});
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as o,fn as ee,cv as be}from"./index-BWTgolHq.js";import{S as ve,R as ye}from"./Sector-B1SBgZlq.js";import{ai as T,i as w,b0 as re,r as ge,ab as Oe,b1 as Pe,ad as je,b2 as b,ae as v,L as C,aj as he}from"./CategoricalChart-C66LowCp.js";import{S as de,s as we,a as Se,b as Ee,c as Te,d as _e,e as De,f as te}from"./symbol-B2pDe2FQ.js";var Re=["type","size","sizeType"];function _(){return _=Object.assign?Object.assign.bind():function(e){for(var r=1;r<arguments.length;r++){var t=arguments[r];for(var a in t)({}).hasOwnProperty.call(t,a)&&(e[a]=t[a])}return e},_.apply(null,arguments)}function k(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);r&&(a=a.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),t.push.apply(t,a)}return t}function F(e){for(var r=1;r<arguments.length;r++){var t=arguments[r]!=null?arguments[r]:{};r%2?k(Object(t),!0).forEach(function(a){$e(e,a,t[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):k(Object(t)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(t,a))})}return e}function $e(e,r,t){return(r=xe(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function xe(e){var r=Le(e,"string");return typeof r=="symbol"?r:r+""}function Le(e,r){if(typeof e!="object"||!e)return e;var t=e[Symbol.toPrimitive];if(t!==void 0){var a=t.call(e,r);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(r==="string"?String:Number)(e)}function Ne(e,r){if(e==null)return{};var t,a,n=Ae(e,r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)t=i[a],r.indexOf(t)===-1&&{}.propertyIsEnumerable.call(e,t)&&(n[t]=e[t])}return n}function Ae(e,r){if(e==null)return{};var t={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(r.indexOf(a)!==-1)continue;t[a]=e[a]}return t}var ae={symbolCircle:te,symbolCross:De,symbolDiamond:_e,symbolSquare:Te,symbolStar:Ee,symbolTriangle:Se,symbolWye:we},Ie=Math.PI/180,We=e=>{var r="symbol".concat(re(e));return ae[r]||te},Me=(e,r,t)=>{if(r==="area")return e;switch(t){case"cross":return 5*e*e/9;case"diamond":return .5*e*e/Math.sqrt(3);case"square":return e*e;case"star":{var a=18*Ie;return 1.25*e*e*(Math.tan(a)-Math.tan(a*2)*Math.tan(a)**2)}case"triangle":return Math.sqrt(3)*e*e/4;case"wye":return(21-10*Math.sqrt(3))*e*e/8;default:return Math.PI*e*e/4}},qe=(e,r)=>{ae["symbol".concat(re(e))]=r},ne=e=>{var{type:r="circle",size:t=64,sizeType:a="area"}=e,n=Ne(e,Re),i=F(F({},n),{},{type:r,size:t,sizeType:a}),s="circle";typeof r=="string"&&(s=r);var f=()=>{var u=We(s),l=de().type(u).size(Me(t,a,s)),P=l();if(P!==null)return P},{className:p,cx:m,cy:g}=i,O=T(i);return w(m)&&w(g)&&w(t)?o.createElement("path",_({},O,{className:ee("recharts-symbols",p),transform:"translate(".concat(m,", ").concat(g,")"),d:f()})):null};ne.registerSymbol=qe;var S={},K;function Ce(){return K||(K=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function r(t){if(typeof t!="object"||t==null)return!1;if(Object.getPrototypeOf(t)===null)return!0;if(Object.prototype.toString.call(t)!=="[object Object]"){const n=t[Symbol.toStringTag];return n==null||!Object.getOwnPropertyDescriptor(t,Symbol.toStringTag)?.writable?!1:t.toString()===`[object ${n}]`}let a=t;for(;Object.getPrototypeOf(a)!==null;)a=Object.getPrototypeOf(a);return Object.getPrototypeOf(t)===a}e.isPlainObject=r})(S)),S}var E,U;function ke(){return U||(U=1,E=Ce().isPlainObject),E}var Fe=ke();const Ke=be(Fe);var B,H,V,X,Y;function z(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);r&&(a=a.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),t.push.apply(t,a)}return t}function G(e){for(var r=1;r<arguments.length;r++){var t=arguments[r]!=null?arguments[r]:{};r%2?z(Object(t),!0).forEach(function(a){Ue(e,a,t[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):z(Object(t)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(t,a))})}return e}function Ue(e,r,t){return(r=Be(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function Be(e){var r=He(e,"string");return typeof r=="symbol"?r:r+""}function He(e,r){if(typeof e!="object"||!e)return e;var t=e[Symbol.toPrimitive];if(t!==void 0){var a=t.call(e,r);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(r==="string"?String:Number)(e)}function j(){return j=Object.assign?Object.assign.bind():function(e){for(var r=1;r<arguments.length;r++){var t=arguments[r];for(var a in t)({}).hasOwnProperty.call(t,a)&&(e[a]=t[a])}return e},j.apply(null,arguments)}function y(e,r){return r||(r=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(r)}}))}var J=(e,r,t,a,n)=>{var i=t-a,s;return s=b(B||(B=y(["M ",",",""])),e,r),s+=b(H||(H=y(["L ",",",""])),e+t,r),s+=b(V||(V=y(["L ",",",""])),e+t-i/2,r+n),s+=b(X||(X=y(["L ",",",""])),e+t-i/2-a,r+n),s+=b(Y||(Y=y(["L ",","," Z"])),e,r),s},Ve={x:0,y:0,upperWidth:0,lowerWidth:0,height:0,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"},Xe=e=>{var r=ge(e,Ve),{x:t,y:a,upperWidth:n,lowerWidth:i,height:s,className:f}=r,{animationEasing:p,animationDuration:m,animationBegin:g,isUpdateAnimationActive:O}=r,u=o.useRef(null),[l,P]=o.useState(-1),D=o.useRef(n),R=o.useRef(i),$=o.useRef(s),x=o.useRef(t),L=o.useRef(a),N=Oe(e,"trapezoid-");if(o.useEffect(()=>{if(u.current&&u.current.getTotalLength)try{var c=u.current.getTotalLength();c&&P(c)}catch{}},[]),t!==+t||a!==+a||n!==+n||i!==+i||s!==+s||n===0&&i===0||s===0)return null;var A=ee("recharts-trapezoid",f);if(!O)return o.createElement("g",null,o.createElement("path",j({},T(r),{className:A,d:J(t,a,n,i,s)})));var ie=D.current,oe=R.current,se=$.current,ce=x.current,ue=L.current,le="0px ".concat(l===-1?1:l,"px"),pe="".concat(l,"px ").concat(l,"px"),fe=Pe(["strokeDasharray"],m,p);return o.createElement(je,{animationId:N,key:N,canBegin:l>0,duration:m,easing:p,isActive:O,begin:g},c=>{var d=v(ie,n,c),I=v(oe,i,c),W=v(se,s,c),M=v(ce,t,c),q=v(ue,a,c);u.current&&(D.current=d,R.current=I,$.current=W,x.current=M,L.current=q);var me=c>0?{transition:fe,strokeDasharray:pe}:{strokeDasharray:le};return o.createElement("path",j({},T(r),{className:A,d:J(M,q,d,I,W),ref:u,style:G(G({},me),r.style)}))})},Ye=["option","shapeType","activeClassName","inActiveClassName"];function ze(e,r){if(e==null)return{};var t,a,n=Ge(e,r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)t=i[a],r.indexOf(t)===-1&&{}.propertyIsEnumerable.call(e,t)&&(n[t]=e[t])}return n}function Ge(e,r){if(e==null)return{};var t={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(r.indexOf(a)!==-1)continue;t[a]=e[a]}return t}function Z(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);r&&(a=a.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),t.push.apply(t,a)}return t}function h(e){for(var r=1;r<arguments.length;r++){var t=arguments[r]!=null?arguments[r]:{};r%2?Z(Object(t),!0).forEach(function(a){Je(e,a,t[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):Z(Object(t)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(t,a))})}return e}function Je(e,r,t){return(r=Ze(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function Ze(e){var r=Qe(e,"string");return typeof r=="symbol"?r:r+""}function Qe(e,r){if(typeof e!="object"||!e)return e;var t=e[Symbol.toPrimitive];if(t!==void 0){var a=t.call(e,r);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(r==="string"?String:Number)(e)}function er(e,r){return h(h({},r),e)}function rr(e,r){return e==="symbols"}function Q(e){var{shapeType:r,elementProps:t}=e;switch(r){case"rectangle":return o.createElement(ye,t);case"trapezoid":return o.createElement(Xe,t);case"sector":return o.createElement(ve,t);case"symbols":if(rr(r))return o.createElement(ne,t);break;case"curve":return o.createElement(he,t);default:return null}}function tr(e){return o.isValidElement(e)?e.props:e}function sr(e){var{option:r,shapeType:t,activeClassName:a="recharts-active-shape",inActiveClassName:n="recharts-shape"}=e,i=ze(e,Ye),s;if(o.isValidElement(r))s=o.cloneElement(r,h(h({},i),tr(r)));else if(typeof r=="function")s=r(i,i.index);else if(Ke(r)&&typeof r!="boolean"){var f=er(r,i);s=o.createElement(Q,{shapeType:t,elementProps:f})}else{var p=i;s=o.createElement(Q,{shapeType:t,elementProps:p})}return i.isActive?o.createElement(C,{className:a},s):o.createElement(C,{className:n},s)}export{sr as S};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{fn as $,r as s}from"./index-BWTgolHq.js";import{i as S,a as Fe,s as V,D as Z,b as Ye,c as xt,Z as J,L as W,u as L,d as Pt,e as Ot,f as Ve,g as ye,G as kt,h as ce,m as wt,r as te,C as At,j as Et,k as He,l as jt,n as It,o as St,T as Ct,p as ge,q as Xe,t as Dt,v as Nt,w as Tt,x as _t,y as Lt,z as oe,A as Ae,B as Ee,E as je,F as qe,H as Ue,I as zt,J as I,K as $t,M as Wt,N as Ze,O as Je,P as le,Q as be,R as Rt,S as Mt,U as Qe,V as et,W as Gt,X as tt,Y as Ie,_ as Kt,$ as Bt,a0 as rt,a1 as Ft,a2 as Yt,a3 as Vt,a4 as Ht,a5 as at,a6 as Xt,a7 as qt,a8 as Ut,a9 as Se,aa as Ce,ab as Zt,ac as it,ad as Jt,ae as X,af as Qt,ag as er,ah as tr,ai as rr,aj as ue,ak as re,al as ar,am as ir,an as nr,ao as or,ap as lr,aq as sr,ar as cr,as as ur,at as dr,au as vr,av as fr,aw as pr,ax as hr,ay as mr,az as yr,aA as gr,aB as br,aC as xr,aD as Pr}from"./CategoricalChart-C66LowCp.js";function fe(){return fe=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var a in r)({}).hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e},fe.apply(null,arguments)}var nt=e=>{var{cx:t,cy:r,r:a,className:i}=e,n=$("recharts-dot",i);return S(t)&&S(r)&&S(a)?s.createElement("circle",fe({},V(e),Fe(e),{className:n,cx:t,cy:r,r:a})):null},Or=["points"];function De(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,a)}return r}function de(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?De(Object(r),!0).forEach(function(a){kr(e,a,r[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):De(Object(r)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(r,a))})}return e}function kr(e,t,r){return(t=wr(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function wr(e){var t=Ar(e,"string");return typeof t=="symbol"?t:t+""}function Ar(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var a=r.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function ae(){return ae=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var a in r)({}).hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e},ae.apply(null,arguments)}function Er(e,t){if(e==null)return{};var r,a,i=jr(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(a=0;a<n.length;a++)r=n[a],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}function jr(e,t){if(e==null)return{};var r={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(t.indexOf(a)!==-1)continue;r[a]=e[a]}return r}function Ir(e){var{option:t,dotProps:r,className:a}=e;if(s.isValidElement(t))return s.cloneElement(t,r);if(typeof t=="function")return t(r);var i=$(a,typeof t!="boolean"?t.className:""),n=r??{},{points:l}=n,o=Er(n,Or);return s.createElement(nt,ae({},o,{className:i}))}function Sr(e,t){return e==null?!1:t?!0:e.length===1}function Cr(e){var{points:t,dot:r,className:a,dotClassName:i,dataKey:n,baseProps:l,needClip:o,clipPathId:d,zIndex:c=Z.scatter}=e;if(!Sr(t,r))return null;var u=Ye(r),v=xt(r),p=t.map((f,y)=>{var g,x,P=de(de(de({r:3},l),v),{},{index:y,cx:(g=f.x)!==null&&g!==void 0?g:void 0,cy:(x=f.y)!==null&&x!==void 0?x:void 0,dataKey:n,value:f.value,payload:f.payload,points:t});return s.createElement(Ir,{key:"dot-".concat(y),option:r,dotProps:P,className:i})}),h={};return o&&d!=null&&(h.clipPath="url(#clipPath-".concat(u?"":"dots-").concat(d,")")),s.createElement(J,{zIndex:c},s.createElement(W,ae({className:a},h),p))}function Ne(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,a)}return r}function ve(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Ne(Object(r),!0).forEach(function(a){Dr(e,a,r[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ne(Object(r)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(r,a))})}return e}function Dr(e,t,r){return(t=Nr(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Nr(e){var t=Tr(e,"string");return typeof t=="symbol"?t:t+""}function Tr(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var a=r.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var _r=e=>{var{point:t,childIndex:r,mainColor:a,activeDot:i,dataKey:n,clipPath:l}=e;if(i===!1||t.x==null||t.y==null)return null;var o={index:r,dataKey:n,cx:t.x,cy:t.y,r:4,fill:a??"none",strokeWidth:2,stroke:"#fff",payload:t.payload,value:t.value},d=ve(ve(ve({},o),ye(i)),Fe(i)),c;return s.isValidElement(i)?c=s.cloneElement(i,d):typeof i=="function"?c=i(d):c=s.createElement(nt,d),s.createElement(W,{className:"recharts-active-dot",clipPath:l},c)};function Te(e){var{points:t,mainColor:r,activeDot:a,itemDataKey:i,clipPath:n,zIndex:l=Z.activeDot}=e,o=L(Pt),d=Ot();if(t==null||d==null)return null;var c=t.find(u=>d.includes(u.payload));return Ve(c)?null:s.createElement(J,{zIndex:l},s.createElement(_r,{point:c,childIndex:Number(o),mainColor:r,dataKey:i,activeDot:a,clipPath:n}))}var Lr=(e,t)=>{var{x:r,y:a}=e,{x:i,y:n}=t;return{x:Math.min(r,i),y:Math.min(a,n),width:Math.abs(i-r),height:Math.abs(n-a)}},Ii=e=>{var{x1:t,y1:r,x2:a,y2:i}=e;return Lr({x:t,y:r},{x:a,y:i})};function zr(e){return(e%180+180)%180}var $r=function(t){var{width:r,height:a}=t,i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n=zr(i),l=n*Math.PI/180,o=Math.atan(a/r),d=l>o&&l<Math.PI-o?a/Math.sin(l):r/Math.cos(l);return Math.abs(d)};function ot(e,t){if(t<1)return[];if(t===1)return e;for(var r=[],a=0;a<e.length;a+=t){var i=e[a];i!==void 0&&r.push(i)}return r}function Wr(e,t,r){var a={width:e.width+t.width,height:e.height+t.height};return $r(a,r)}function Rr(e,t,r){var a=r==="width",{x:i,y:n,width:l,height:o}=e;return t===1?{start:a?i:n,end:a?i+l:n+o}:{start:a?i+l:n+o,end:a?i:n}}function ee(e,t,r,a,i){if(e*t<e*a||e*t>e*i)return!1;var n=r();return e*(t-e*n/2-a)>=0&&e*(t+e*n/2-i)<=0}function Mr(e,t){return ot(e,t+1)}function Gr(e,t,r,a,i){for(var n=(a||[]).slice(),{start:l,end:o}=t,d=0,c=1,u=l,v=function(){var f=a?.[d];if(f===void 0)return{v:ot(a,c)};var y=d,g,x=()=>(g===void 0&&(g=r(f,y)),g),P=f.coordinate,O=d===0||ee(e,P,x,u,o);O||(d=0,u=l,c+=1),O&&(u=P+e*(x()/2+i),d+=c)},p;c<=n.length;)if(p=v(),p)return p.v;return[]}function Kr(e,t,r,a,i){var n=(a||[]).slice(),l=n.length;if(l===0)return[];for(var{start:o,end:d}=t,c=1;c<=l;c++){for(var u=(l-1)%c,v=o,p=!0,h=function(){var m=a[y];if(m==null)return 0;var k=y,b,w=()=>(b===void 0&&(b=r(m,k)),b),A=m.coordinate,E=y===u||ee(e,A,w,v,d);if(!E)return p=!1,1;E&&(v=A+e*(w()/2+i))},f,y=u;y<l&&(f=h(),!(f!==0&&f===1));y+=c);if(p){for(var g=[],x=u;x<l;x+=c){var P=a[x];P!=null&&g.push(P)}return g}}return[]}function _e(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,a)}return r}function D(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?_e(Object(r),!0).forEach(function(a){Br(e,a,r[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):_e(Object(r)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(r,a))})}return e}function Br(e,t,r){return(t=Fr(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Fr(e){var t=Yr(e,"string");return typeof t=="symbol"?t:t+""}function Yr(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var a=r.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Vr(e,t,r,a,i){for(var n=(a||[]).slice(),l=n.length,{start:o}=t,{end:d}=t,c=function(p){var h=n[p];if(h==null)return 1;var f=h,y,g=()=>(y===void 0&&(y=r(h,p)),y);if(p===l-1){var x=e*(f.coordinate+e*g()/2-d);n[p]=f=D(D({},f),{},{tickCoord:x>0?f.coordinate-x*e:f.coordinate})}else n[p]=f=D(D({},f),{},{tickCoord:f.coordinate});if(f.tickCoord!=null){var P=ee(e,f.tickCoord,g,o,d);P&&(d=f.tickCoord-e*(g()/2+i),n[p]=D(D({},f),{},{isShow:!0}))}},u=l-1;u>=0;u--)c(u);return n}function Hr(e,t,r,a,i,n){var l=(a||[]).slice(),o=l.length,{start:d,end:c}=t;if(n){var u=a[o-1];if(u!=null){var v=r(u,o-1),p=e*(u.coordinate+e*v/2-c);if(l[o-1]=u=D(D({},u),{},{tickCoord:p>0?u.coordinate-p*e:u.coordinate}),u.tickCoord!=null){var h=ee(e,u.tickCoord,()=>v,d,c);h&&(c=u.tickCoord-e*(v/2+i),l[o-1]=D(D({},u),{},{isShow:!0}))}}}for(var f=n?o-1:o,y=function(P){var O=l[P];if(O==null)return 1;var m=O,k,b=()=>(k===void 0&&(k=r(O,P)),k);if(P===0){var w=e*(m.coordinate-e*b()/2-d);l[P]=m=D(D({},m),{},{tickCoord:w<0?m.coordinate-w*e:m.coordinate})}else l[P]=m=D(D({},m),{},{tickCoord:m.coordinate});if(m.tickCoord!=null){var A=ee(e,m.tickCoord,b,d,c);A&&(d=m.tickCoord+e*(b()/2+i),l[P]=D(D({},m),{},{isShow:!0}))}},g=0;g<f;g++)y(g);return l}function xe(e,t,r){var{tick:a,ticks:i,viewBox:n,minTickGap:l,orientation:o,interval:d,tickFormatter:c,unit:u,angle:v}=e;if(!i||!i.length||!a)return[];if(S(d)||kt.isSsr){var p;return(p=Mr(i,S(d)?d:0))!==null&&p!==void 0?p:[]}var h=[],f=o==="top"||o==="bottom"?"width":"height",y=u&&f==="width"?ce(u,{fontSize:t,letterSpacing:r}):{width:0,height:0},g=(k,b)=>{var w=typeof c=="function"?c(k.value,b):k.value;return f==="width"?Wr(ce(w,{fontSize:t,letterSpacing:r}),y,v):ce(w,{fontSize:t,letterSpacing:r})[f]},x=i[0],P=i[1],O=i.length>=2&&x!=null&&P!=null?wt(P.coordinate-x.coordinate):1,m=Rr(n,O,f);return d==="equidistantPreserveStart"?Gr(O,m,g,i,l):d==="equidistantPreserveEnd"?Kr(O,m,g,i,l):(d==="preserveStart"||d==="preserveStartEnd"?h=Hr(O,m,g,i,l,d==="preserveStartEnd"):h=Vr(O,m,g,i,l),h.filter(k=>k.isShow))}var Xr=e=>{var{ticks:t,label:r,labelGapWithTick:a=5,tickSize:i=0,tickMargin:n=0}=e,l=0;if(t){Array.from(t).forEach(u=>{if(u){var v=u.getBoundingClientRect();v.width>l&&(l=v.width)}});var o=r?r.getBoundingClientRect().width:0,d=i+n,c=l+d+o+(r?a:0);return Math.round(c)}return 0},qr=["axisLine","width","height","className","hide","ticks","axisType","axisId"];function Ur(e,t){if(e==null)return{};var r,a,i=Zr(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(a=0;a<n.length;a++)r=n[a],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}function Zr(e,t){if(e==null)return{};var r={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(t.indexOf(a)!==-1)continue;r[a]=e[a]}return r}function Y(){return Y=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var a in r)({}).hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e},Y.apply(null,arguments)}function Le(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,a)}return r}function j(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Le(Object(r),!0).forEach(function(a){Jr(e,a,r[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Le(Object(r)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(r,a))})}return e}function Jr(e,t,r){return(t=Qr(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Qr(e){var t=ea(e,"string");return typeof t=="symbol"?t:t+""}function ea(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var a=r.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var U={x:0,y:0,width:0,height:0,viewBox:{x:0,y:0,width:0,height:0},orientation:"bottom",ticks:[],stroke:"#666",tickLine:!0,axisLine:!0,tick:!0,mirror:!1,minTickGap:5,tickSize:6,tickMargin:2,interval:"preserveEnd",zIndex:Z.axis};function ta(e){var{x:t,y:r,width:a,height:i,orientation:n,mirror:l,axisLine:o,otherSvgProps:d}=e;if(!o)return null;var c=j(j(j({},d),V(o)),{},{fill:"none"});if(n==="top"||n==="bottom"){var u=+(n==="top"&&!l||n==="bottom"&&l);c=j(j({},c),{},{x1:t,y1:r+u*i,x2:t+a,y2:r+u*i})}else{var v=+(n==="left"&&!l||n==="right"&&l);c=j(j({},c),{},{x1:t+v*a,y1:r,x2:t+v*a,y2:r+i})}return s.createElement("line",Y({},c,{className:$("recharts-cartesian-axis-line",He(o,"className"))}))}function ra(e,t,r,a,i,n,l,o,d){var c,u,v,p,h,f,y=o?-1:1,g=e.tickSize||l,x=S(e.tickCoord)?e.tickCoord:e.coordinate;switch(n){case"top":c=u=e.coordinate,p=r+ +!o*i,v=p-y*g,f=v-y*d,h=x;break;case"left":v=p=e.coordinate,u=t+ +!o*a,c=u-y*g,h=c-y*d,f=x;break;case"right":v=p=e.coordinate,u=t+ +o*a,c=u+y*g,h=c+y*d,f=x;break;default:c=u=e.coordinate,p=r+ +o*i,v=p+y*g,f=v+y*d,h=x;break}return{line:{x1:c,y1:v,x2:u,y2:p},tick:{x:h,y:f}}}function aa(e,t){switch(e){case"left":return t?"start":"end";case"right":return t?"end":"start";default:return"middle"}}function ia(e,t){switch(e){case"left":case"right":return"middle";case"top":return t?"start":"end";default:return t?"end":"start"}}function na(e){var{option:t,tickProps:r,value:a}=e,i,n=$(r.className,"recharts-cartesian-axis-tick-value");if(s.isValidElement(t))i=s.cloneElement(t,j(j({},r),{},{className:n}));else if(typeof t=="function")i=t(j(j({},r),{},{className:n}));else{var l="recharts-cartesian-axis-tick-value";typeof t!="boolean"&&(l=$(l,St(t))),i=s.createElement(Ct,Y({},r,{className:l}),a)}return i}function oa(e){var{ticks:t,axisType:r,axisId:a}=e,i=ge();return s.useEffect(()=>{if(a==null||r==null)return Xe;var n=t.map(l=>({value:l.value,coordinate:l.coordinate,offset:l.offset,index:l.index}));return i(Dt({ticks:n,axisId:a,axisType:r})),()=>{i(Nt({axisId:a,axisType:r}))}},[i,t,a,r]),null}var la=s.forwardRef((e,t)=>{var{ticks:r=[],tick:a,tickLine:i,stroke:n,tickFormatter:l,unit:o,padding:d,tickTextProps:c,orientation:u,mirror:v,x:p,y:h,width:f,height:y,tickSize:g,tickMargin:x,fontSize:P,letterSpacing:O,getTicksConfig:m,events:k,axisType:b,axisId:w}=e,A=xe(j(j({},m),{},{ticks:r}),P,O),E=V(m),z=ye(a),T=jt(E.textAnchor)?E.textAnchor:aa(u,v),C=ia(u,v),_={};typeof i=="object"&&(_=i);var M=j(j({},E),{},{fill:"none"},_),R=A.map(H=>j({entry:H},ra(H,p,h,f,y,u,g,v,x))),ke=R.map(H=>{var{entry:G,line:Q}=H;return s.createElement(W,{className:"recharts-cartesian-axis-tick",key:"tick-".concat(G.value,"-").concat(G.coordinate,"-").concat(G.tickCoord)},i&&s.createElement("line",Y({},M,Q,{className:$("recharts-cartesian-axis-tick-line",He(i,"className"))})))}),we=R.map((H,G)=>{var Q,se,{entry:K,tick:yt}=H,gt=j(j(j(j({verticalAnchor:C},E),{},{textAnchor:T,stroke:"none",fill:n},yt),{},{index:G,payload:K,visibleTicksCount:A.length,tickFormatter:l,padding:d},c),{},{angle:(Q=(se=c?.angle)!==null&&se!==void 0?se:E.angle)!==null&&Q!==void 0?Q:0}),bt=j(j({},gt),z);return s.createElement(W,Y({className:"recharts-cartesian-axis-tick-label",key:"tick-label-".concat(K.value,"-").concat(K.coordinate,"-").concat(K.tickCoord)},It(k,K,G)),a&&s.createElement(na,{option:a,tickProps:bt,value:"".concat(typeof l=="function"?l(K.value,G):K.value).concat(o||"")}))});return s.createElement("g",{className:"recharts-cartesian-axis-ticks recharts-".concat(b,"-ticks")},s.createElement(oa,{ticks:A,axisId:w,axisType:b}),we.length>0&&s.createElement(J,{zIndex:Z.label},s.createElement("g",{className:"recharts-cartesian-axis-tick-labels recharts-".concat(b,"-tick-labels"),ref:t},we)),ke.length>0&&s.createElement("g",{className:"recharts-cartesian-axis-tick-lines recharts-".concat(b,"-tick-lines")},ke))}),sa=s.forwardRef((e,t)=>{var{axisLine:r,width:a,height:i,className:n,hide:l,ticks:o,axisType:d,axisId:c}=e,u=Ur(e,qr),[v,p]=s.useState(""),[h,f]=s.useState(""),y=s.useRef(null);s.useImperativeHandle(t,()=>({getCalculatedWidth:()=>{var x;return Xr({ticks:y.current,label:(x=e.labelRef)===null||x===void 0?void 0:x.current,labelGapWithTick:5,tickSize:e.tickSize,tickMargin:e.tickMargin})}}));var g=s.useCallback(x=>{if(x){var P=x.getElementsByClassName("recharts-cartesian-axis-tick-value");y.current=P;var O=P[0];if(O){var m=window.getComputedStyle(O),k=m.fontSize,b=m.letterSpacing;(k!==v||b!==h)&&(p(k),f(b))}}},[v,h]);return l||a!=null&&a<=0||i!=null&&i<=0?null:s.createElement(J,{zIndex:e.zIndex},s.createElement(W,{className:$("recharts-cartesian-axis",n)},s.createElement(ta,{x:e.x,y:e.y,width:a,height:i,orientation:e.orientation,mirror:e.mirror,axisLine:r,otherSvgProps:V(e)}),s.createElement(la,{ref:g,axisType:d,events:u,fontSize:v,getTicksConfig:e,height:e.height,letterSpacing:h,mirror:e.mirror,orientation:e.orientation,padding:e.padding,stroke:e.stroke,tick:e.tick,tickFormatter:e.tickFormatter,tickLine:e.tickLine,tickMargin:e.tickMargin,tickSize:e.tickSize,tickTextProps:e.tickTextProps,ticks:o,unit:e.unit,width:e.width,x:e.x,y:e.y,axisId:c}),s.createElement(At,{x:e.x,y:e.y,width:e.width,height:e.height,lowerWidth:e.width,upperWidth:e.width},s.createElement(Et,{label:e.label,labelRef:e.labelRef}),e.children)))}),lt=s.forwardRef((e,t)=>{var r=te(e,U);return s.createElement(sa,Y({},r,{ref:t}))});lt.displayName="CartesianAxis";var ca=["x1","y1","x2","y2","key"],ua=["offset"],da=["xAxisId","yAxisId"],va=["xAxisId","yAxisId"];function ze(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,a)}return r}function N(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?ze(Object(r),!0).forEach(function(a){fa(e,a,r[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ze(Object(r)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(r,a))})}return e}function fa(e,t,r){return(t=pa(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function pa(e){var t=ha(e,"string");return typeof t=="symbol"?t:t+""}function ha(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var a=r.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function B(){return B=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var a in r)({}).hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e},B.apply(null,arguments)}function ie(e,t){if(e==null)return{};var r,a,i=ma(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(a=0;a<n.length;a++)r=n[a],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}function ma(e,t){if(e==null)return{};var r={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(t.indexOf(a)!==-1)continue;r[a]=e[a]}return r}var ya=e=>{var{fill:t}=e;if(!t||t==="none")return null;var{fillOpacity:r,x:a,y:i,width:n,height:l,ry:o}=e;return s.createElement("rect",{x:a,y:i,ry:o,width:n,height:l,stroke:"none",fill:t,fillOpacity:r,className:"recharts-cartesian-grid-bg"})};function st(e){var{option:t,lineItemProps:r}=e,a;if(s.isValidElement(t))a=s.cloneElement(t,r);else if(typeof t=="function")a=t(r);else{var i,{x1:n,y1:l,x2:o,y2:d,key:c}=r,u=ie(r,ca),v=(i=V(u))!==null&&i!==void 0?i:{},{offset:p}=v,h=ie(v,ua);a=s.createElement("line",B({},h,{x1:n,y1:l,x2:o,y2:d,fill:"none",key:c}))}return a}function ga(e){var{x:t,width:r,horizontal:a=!0,horizontalPoints:i}=e;if(!a||!i||!i.length)return null;var{xAxisId:n,yAxisId:l}=e,o=ie(e,da),d=i.map((c,u)=>{var v=N(N({},o),{},{x1:t,y1:c,x2:t+r,y2:c,key:"line-".concat(u),index:u});return s.createElement(st,{key:"line-".concat(u),option:a,lineItemProps:v})});return s.createElement("g",{className:"recharts-cartesian-grid-horizontal"},d)}function ba(e){var{y:t,height:r,vertical:a=!0,verticalPoints:i}=e;if(!a||!i||!i.length)return null;var{xAxisId:n,yAxisId:l}=e,o=ie(e,va),d=i.map((c,u)=>{var v=N(N({},o),{},{x1:c,y1:t,x2:c,y2:t+r,key:"line-".concat(u),index:u});return s.createElement(st,{option:a,lineItemProps:v,key:"line-".concat(u)})});return s.createElement("g",{className:"recharts-cartesian-grid-vertical"},d)}function xa(e){var{horizontalFill:t,fillOpacity:r,x:a,y:i,width:n,height:l,horizontalPoints:o,horizontal:d=!0}=e;if(!d||!t||!t.length||o==null)return null;var c=o.map(v=>Math.round(v+i-i)).sort((v,p)=>v-p);i!==c[0]&&c.unshift(0);var u=c.map((v,p)=>{var h=c[p+1],f=h==null,y=f?i+l-v:h-v;if(y<=0)return null;var g=p%t.length;return s.createElement("rect",{key:"react-".concat(p),y:v,x:a,height:y,width:n,stroke:"none",fill:t[g],fillOpacity:r,className:"recharts-cartesian-grid-bg"})});return s.createElement("g",{className:"recharts-cartesian-gridstripes-horizontal"},u)}function Pa(e){var{vertical:t=!0,verticalFill:r,fillOpacity:a,x:i,y:n,width:l,height:o,verticalPoints:d}=e;if(!t||!r||!r.length)return null;var c=d.map(v=>Math.round(v+i-i)).sort((v,p)=>v-p);i!==c[0]&&c.unshift(0);var u=c.map((v,p)=>{var h=c[p+1],f=h==null,y=f?i+l-v:h-v;if(y<=0)return null;var g=p%r.length;return s.createElement("rect",{key:"react-".concat(p),x:v,y:n,width:y,height:o,stroke:"none",fill:r[g],fillOpacity:a,className:"recharts-cartesian-grid-bg"})});return s.createElement("g",{className:"recharts-cartesian-gridstripes-vertical"},u)}var Oa=(e,t)=>{var{xAxis:r,width:a,height:i,offset:n}=e;return qe(xe(N(N(N({},U),r),{},{ticks:Ue(r),viewBox:{x:0,y:0,width:a,height:i}})),n.left,n.left+n.width,t)},ka=(e,t)=>{var{yAxis:r,width:a,height:i,offset:n}=e;return qe(xe(N(N(N({},U),r),{},{ticks:Ue(r),viewBox:{x:0,y:0,width:a,height:i}})),n.top,n.top+n.height,t)},wa={horizontal:!0,vertical:!0,horizontalPoints:[],verticalPoints:[],stroke:"#ccc",fill:"none",verticalFill:[],horizontalFill:[],xAxisId:0,yAxisId:0,syncWithTicks:!1,zIndex:Z.grid};function Aa(e){var t=Tt(),r=_t(),a=Lt(),i=N(N({},te(e,wa)),{},{x:S(e.x)?e.x:a.left,y:S(e.y)?e.y:a.top,width:S(e.width)?e.width:a.width,height:S(e.height)?e.height:a.height}),{xAxisId:n,yAxisId:l,x:o,y:d,width:c,height:u,syncWithTicks:v,horizontalValues:p,verticalValues:h}=i,f=oe(),y=L(E=>Ae(E,"xAxis",n,f)),g=L(E=>Ae(E,"yAxis",l,f));if(!Ee(c)||!Ee(u)||!S(o)||!S(d))return null;var x=i.verticalCoordinatesGenerator||Oa,P=i.horizontalCoordinatesGenerator||ka,{horizontalPoints:O,verticalPoints:m}=i;if((!O||!O.length)&&typeof P=="function"){var k=p&&p.length,b=P({yAxis:g?N(N({},g),{},{ticks:k?p:g.ticks}):void 0,width:t??c,height:r??u,offset:a},k?!0:v);je(Array.isArray(b),"horizontalCoordinatesGenerator should return Array but instead it returned [".concat(typeof b,"]")),Array.isArray(b)&&(O=b)}if((!m||!m.length)&&typeof x=="function"){var w=h&&h.length,A=x({xAxis:y?N(N({},y),{},{ticks:w?h:y.ticks}):void 0,width:t??c,height:r??u,offset:a},w?!0:v);je(Array.isArray(A),"verticalCoordinatesGenerator should return Array but instead it returned [".concat(typeof A,"]")),Array.isArray(A)&&(m=A)}return s.createElement(J,{zIndex:i.zIndex},s.createElement("g",{className:"recharts-cartesian-grid"},s.createElement(ya,{fill:i.fill,fillOpacity:i.fillOpacity,x:i.x,y:i.y,width:i.width,height:i.height,ry:i.ry}),s.createElement(xa,B({},i,{horizontalPoints:O})),s.createElement(Pa,B({},i,{verticalPoints:m})),s.createElement(ga,B({},i,{offset:a,horizontalPoints:O,xAxis:y,yAxis:g})),s.createElement(ba,B({},i,{offset:a,verticalPoints:m,xAxis:y,yAxis:g}))))}Aa.displayName="CartesianGrid";function ct(e,t){var r,a,i=L(c=>$t(c,e)),n=L(c=>Wt(c,t)),l=(r=i?.allowDataOverflow)!==null&&r!==void 0?r:zt.allowDataOverflow,o=(a=n?.allowDataOverflow)!==null&&a!==void 0?a:I.allowDataOverflow,d=l||o;return{needClip:d,needClipX:l,needClipY:o}}function Ea(e){var{xAxisId:t,yAxisId:r,clipPathId:a}=e,i=Ze(),{needClipX:n,needClipY:l,needClip:o}=ct(t,r);if(!o||!i)return null;var{x:d,y:c,width:u,height:v}=i;return s.createElement("clipPath",{id:"clipPath-".concat(a)},s.createElement("rect",{x:n?d:d-u/2,y:l?c:c-v/2,width:n?u:u*2,height:l?v:v*2}))}function ja(e){var t=ye(e),r=3,a=2;if(t!=null){var{r:i,strokeWidth:n}=t,l=Number(i),o=Number(n);return(Number.isNaN(l)||l<0)&&(l=r),(Number.isNaN(o)||o<0)&&(o=a),{r:l,strokeWidth:o}}return{r,strokeWidth:a}}function Pe(e,t){var r,a;return(r=(a=e.graphicalItems.cartesianItems.find(i=>i.id===t))===null||a===void 0?void 0:a.xAxisId)!==null&&r!==void 0?r:Je}function Oe(e,t){var r,a;return(r=(a=e.graphicalItems.cartesianItems.find(i=>i.id===t))===null||a===void 0?void 0:a.yAxisId)!==null&&r!==void 0?r:Je}var ut=(e,t,r)=>Qe(e,"xAxis",Pe(e,t),r),dt=(e,t,r)=>et(e,"xAxis",Pe(e,t),r),vt=(e,t,r)=>Qe(e,"yAxis",Oe(e,t),r),ft=(e,t,r)=>et(e,"yAxis",Oe(e,t),r),Ia=le([be,ut,vt,dt,ft],(e,t,r,a,i)=>tt(e,"xAxis")?Ie(t,a,!1):Ie(r,i,!1)),Sa=(e,t)=>t,pt=le([Kt,Sa],(e,t)=>e.filter(r=>r.type==="area").find(r=>r.id===t)),ht=e=>{var t=be(e),r=tt(t,"xAxis");return r?"yAxis":"xAxis"},Ca=(e,t)=>{var r=ht(e);return r==="yAxis"?Oe(e,t):Pe(e,t)},Da=(e,t,r)=>Bt(e,ht(e),Ca(e,t),r),Na=le([pt,Da],(e,t)=>{var r;if(!(e==null||t==null)){var{stackId:a}=e,i=Gt(e);if(!(a==null||i==null)){var n=(r=t[a])===null||r===void 0?void 0:r.stackedData,l=n?.find(o=>o.key===i);if(l!=null)return l.map(o=>[o[0],o[1]])}}}),Ta=le([be,ut,vt,dt,ft,Na,Rt,Ia,pt,Mt],(e,t,r,a,i,n,l,o,d,c)=>{var{chartData:u,dataStartIndex:v,dataEndIndex:p}=l;if(!(d==null||e!=="horizontal"&&e!=="vertical"||t==null||r==null||a==null||i==null||a.length===0||i.length===0||o==null)){var{data:h}=d,f;if(h&&h.length>0?f=h:f=u?.slice(v,p+1),f!=null)return Qa({layout:e,xAxis:t,yAxis:r,xAxisTicks:a,yAxisTicks:i,dataStartIndex:v,areaSettings:d,stackedData:n,displayedData:f,chartBaseValue:c,bandSize:o})}}),_a=["id"],La=["activeDot","animationBegin","animationDuration","animationEasing","connectNulls","dot","fill","fillOpacity","hide","isAnimationActive","legendType","stroke","xAxisId","yAxisId"];function F(){return F=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var a in r)({}).hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e},F.apply(null,arguments)}function mt(e,t){if(e==null)return{};var r,a,i=za(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(a=0;a<n.length;a++)r=n[a],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}function za(e,t){if(e==null)return{};var r={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(t.indexOf(a)!==-1)continue;r[a]=e[a]}return r}function $e(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,a)}return r}function q(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?$e(Object(r),!0).forEach(function(a){$a(e,a,r[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):$e(Object(r)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(r,a))})}return e}function $a(e,t,r){return(t=Wa(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Wa(e){var t=Ra(e,"string");return typeof t=="symbol"?t:t+""}function Ra(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var a=r.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function ne(e,t){return e&&e!=="none"?e:t}var Ma=e=>{var{dataKey:t,name:r,stroke:a,fill:i,legendType:n,hide:l}=e;return[{inactive:l,dataKey:t,type:n,color:ne(a,i),value:at(r,t),payload:e}]},Ga=s.memo(e=>{var{dataKey:t,data:r,stroke:a,strokeWidth:i,fill:n,name:l,hide:o,unit:d,tooltipType:c,id:u}=e,v={dataDefinedOnItem:r,getPosition:Xe,settings:{stroke:a,strokeWidth:i,fill:n,dataKey:t,nameKey:void 0,name:at(l,t),hide:o,type:c,color:ne(a,n),unit:d,graphicalItemId:u}};return s.createElement(Xt,{tooltipEntrySettings:v})});function Ka(e){var{clipPathId:t,points:r,props:a}=e,{needClip:i,dot:n,dataKey:l}=a,o=V(a);return s.createElement(Cr,{points:r,dot:n,className:"recharts-area-dots",dotClassName:"recharts-area-dot",dataKey:l,baseProps:o,needClip:i,clipPathId:t})}function Ba(e){var{showLabels:t,children:r,points:a}=e,i=a.map(n=>{var l,o,d={x:(l=n.x)!==null&&l!==void 0?l:0,y:(o=n.y)!==null&&o!==void 0?o:0,width:0,lowerWidth:0,upperWidth:0,height:0};return q(q({},d),{},{value:n.value,payload:n.payload,parentViewBox:void 0,viewBox:d,fill:void 0})});return s.createElement(tr,{value:t?i:void 0},r)}function We(e){var{points:t,baseLine:r,needClip:a,clipPathId:i,props:n}=e,{layout:l,type:o,stroke:d,connectNulls:c,isRange:u}=n,{id:v}=n,p=mt(n,_a),h=V(p),f=rr(p);return s.createElement(s.Fragment,null,t?.length>1&&s.createElement(W,{clipPath:a?"url(#clipPath-".concat(i,")"):void 0},s.createElement(ue,F({},f,{id:v,points:t,connectNulls:c,type:o,baseLine:r,layout:l,stroke:"none",className:"recharts-area-area"})),d!=="none"&&s.createElement(ue,F({},h,{className:"recharts-area-curve",layout:l,type:o,connectNulls:c,fill:"none",points:t})),d!=="none"&&u&&Array.isArray(r)&&s.createElement(ue,F({},h,{className:"recharts-area-curve",layout:l,type:o,connectNulls:c,fill:"none",points:r}))),s.createElement(Ka,{points:t,props:p,clipPathId:i}))}function Fa(e){var t,r,{alpha:a,baseLine:i,points:n,strokeWidth:l}=e,o=(t=n[0])===null||t===void 0?void 0:t.y,d=(r=n[n.length-1])===null||r===void 0?void 0:r.y;if(!re(o)||!re(d))return null;var c=a*Math.abs(o-d),u=Math.max(...n.map(v=>v.x||0));return S(i)?u=Math.max(i,u):i&&Array.isArray(i)&&i.length&&(u=Math.max(...i.map(v=>v.x||0),u)),S(u)?s.createElement("rect",{x:0,y:o<d?o:o-c,width:u+(l?parseInt("".concat(l),10):1),height:Math.floor(c)}):null}function Ya(e){var t,r,{alpha:a,baseLine:i,points:n,strokeWidth:l}=e,o=(t=n[0])===null||t===void 0?void 0:t.x,d=(r=n[n.length-1])===null||r===void 0?void 0:r.x;if(!re(o)||!re(d))return null;var c=a*Math.abs(o-d),u=Math.max(...n.map(v=>v.y||0));return S(i)?u=Math.max(i,u):i&&Array.isArray(i)&&i.length&&(u=Math.max(...i.map(v=>v.y||0),u)),S(u)?s.createElement("rect",{x:o<d?o:o-c,y:0,width:c,height:Math.floor(u+(l?parseInt("".concat(l),10):1))}):null}function Va(e){var{alpha:t,layout:r,points:a,baseLine:i,strokeWidth:n}=e;return r==="vertical"?s.createElement(Fa,{alpha:t,points:a,baseLine:i,strokeWidth:n}):s.createElement(Ya,{alpha:t,points:a,baseLine:i,strokeWidth:n})}function Ha(e){var{needClip:t,clipPathId:r,props:a,previousPointsRef:i,previousBaselineRef:n}=e,{points:l,baseLine:o,isAnimationActive:d,animationBegin:c,animationDuration:u,animationEasing:v,onAnimationStart:p,onAnimationEnd:h}=a,f=s.useMemo(()=>({points:l,baseLine:o}),[l,o]),y=Zt(f,"recharts-area-"),g=it(),[x,P]=s.useState(!1),O=!x,m=s.useCallback(()=>{typeof h=="function"&&h(),P(!1)},[h]),k=s.useCallback(()=>{typeof p=="function"&&p(),P(!0)},[p]);if(g==null)return null;var b=i.current,w=n.current;return s.createElement(Ba,{showLabels:O,points:l},a.children,s.createElement(Jt,{animationId:y,begin:c,duration:u,isActive:d,easing:v,onAnimationEnd:m,onAnimationStart:k,key:y},A=>{if(b){var E=b.length/l.length,z=A===1?l:l.map((C,_)=>{var M=Math.floor(_*E);if(b[M]){var R=b[M];return q(q({},C),{},{x:X(R.x,C.x,A),y:X(R.y,C.y,A)})}return C}),T;return S(o)?T=X(w,o,A):Ve(o)||Qt(o)?T=X(w,0,A):T=o.map((C,_)=>{var M=Math.floor(_*E);if(Array.isArray(w)&&w[M]){var R=w[M];return q(q({},C),{},{x:X(R.x,C.x,A),y:X(R.y,C.y,A)})}return C}),A>0&&(i.current=z,n.current=T),s.createElement(We,{points:z,baseLine:T,needClip:t,clipPathId:r,props:a})}return A>0&&(i.current=l,n.current=o),s.createElement(W,null,d&&s.createElement("defs",null,s.createElement("clipPath",{id:"animationClipPath-".concat(r)},s.createElement(Va,{alpha:A,points:l,baseLine:o,layout:g,strokeWidth:a.strokeWidth}))),s.createElement(W,{clipPath:"url(#animationClipPath-".concat(r,")")},s.createElement(We,{points:l,baseLine:o,needClip:t,clipPathId:r,props:a})))}),s.createElement(er,{label:a.label}))}function Xa(e){var{needClip:t,clipPathId:r,props:a}=e,i=s.useRef(null),n=s.useRef();return s.createElement(Ha,{needClip:t,clipPathId:r,props:a,previousPointsRef:i,previousBaselineRef:n})}class qa extends s.PureComponent{render(){var{hide:t,dot:r,points:a,className:i,top:n,left:l,needClip:o,xAxisId:d,yAxisId:c,width:u,height:v,id:p,baseLine:h,zIndex:f}=this.props;if(t)return null;var y=$("recharts-area",i),g=p,{r:x,strokeWidth:P}=ja(r),O=Ye(r),m=x*2+P,k=o?"url(#clipPath-".concat(O?"":"dots-").concat(g,")"):void 0;return s.createElement(J,{zIndex:f},s.createElement(W,{className:y},o&&s.createElement("defs",null,s.createElement(Ea,{clipPathId:g,xAxisId:d,yAxisId:c}),!O&&s.createElement("clipPath",{id:"clipPath-dots-".concat(g)},s.createElement("rect",{x:l-m/2,y:n-m/2,width:u+m,height:v+m}))),s.createElement(Xa,{needClip:o,clipPathId:g,props:this.props})),s.createElement(Te,{points:a,mainColor:ne(this.props.stroke,this.props.fill),itemDataKey:this.props.dataKey,activeDot:this.props.activeDot,clipPath:k}),this.props.isRange&&Array.isArray(h)&&s.createElement(Te,{points:h,mainColor:ne(this.props.stroke,this.props.fill),itemDataKey:this.props.dataKey,activeDot:this.props.activeDot,clipPath:k}))}}var Ua={activeDot:!0,animationBegin:0,animationDuration:1500,animationEasing:"ease",connectNulls:!1,dot:!1,fill:"#3182bd",fillOpacity:.6,hide:!1,isAnimationActive:"auto",legendType:"line",stroke:"#3182bd",strokeWidth:1,type:"linear",label:!1,xAxisId:0,yAxisId:0,zIndex:Z.area};function Za(e){var t,{activeDot:r,animationBegin:a,animationDuration:i,animationEasing:n,connectNulls:l,dot:o,fill:d,fillOpacity:c,hide:u,isAnimationActive:v,legendType:p,stroke:h,xAxisId:f,yAxisId:y}=e,g=mt(e,La),x=qt(),P=Ut(),{needClip:O}=ct(f,y),m=oe(),{points:k,isRange:b,baseLine:w}=(t=L(_=>Ta(_,e.id,m)))!==null&&t!==void 0?t:{},A=Ze();if(x!=="horizontal"&&x!=="vertical"||A==null||P!=="AreaChart"&&P!=="ComposedChart")return null;var{height:E,width:z,x:T,y:C}=A;return!k||!k.length?null:s.createElement(qa,F({},g,{activeDot:r,animationBegin:a,animationDuration:i,animationEasing:n,baseLine:w,connectNulls:l,dot:o,fill:d,fillOpacity:c,height:E,hide:u,layout:x,isAnimationActive:v,isRange:b,legendType:p,needClip:O,points:k,stroke:h,width:z,left:T,top:C,xAxisId:f,yAxisId:y}))}var Ja=(e,t,r,a,i)=>{var n=r??t;if(S(n))return n;var l=e==="horizontal"?i:a,o=l.scale.domain();if(l.type==="number"){var d=Math.max(o[0],o[1]),c=Math.min(o[0],o[1]);return n==="dataMin"?c:n==="dataMax"||d<0?d:Math.max(Math.min(o[0],o[1]),0)}return n==="dataMin"?o[0]:n==="dataMax"?o[1]:o[0]};function Qa(e){var{areaSettings:{connectNulls:t,baseValue:r,dataKey:a},stackedData:i,layout:n,chartBaseValue:l,xAxis:o,yAxis:d,displayedData:c,dataStartIndex:u,xAxisTicks:v,yAxisTicks:p,bandSize:h}=e,f=i&&i.length,y=Ja(n,l,r,o,d),g=n==="horizontal",x=!1,P=c.map((m,k)=>{var b,w,A,E;if(f)E=i[u+k];else{var z=Se(m,a);Array.isArray(z)?(E=z,x=!0):E=[y,z]}var T=(b=(w=E)===null||w===void 0?void 0:w[1])!==null&&b!==void 0?b:null,C=T==null||f&&!t&&Se(m,a)==null;if(g){var _;return{x:Ce({axis:o,ticks:v,bandSize:h,entry:m,index:k}),y:C?null:(_=d.scale.map(T))!==null&&_!==void 0?_:null,value:E,payload:m}}return{x:C?null:(A=o.scale.map(T))!==null&&A!==void 0?A:null,y:Ce({axis:d,ticks:p,bandSize:h,entry:m,index:k}),value:E,payload:m}}),O;return f||x?O=P.map(m=>{var k,b=Array.isArray(m.value)?m.value[0]:null;if(g){var w;return{x:m.x,y:b!=null&&m.y!=null&&(w=d.scale.map(b))!==null&&w!==void 0?w:null,payload:m.payload}}return{x:b!=null&&(k=o.scale.map(b))!==null&&k!==void 0?k:null,y:m.y,payload:m.payload}}):O=g?d.scale.map(y):o.scale.map(y),{points:P,baseLine:O??0,isRange:x}}function ei(e){var t=te(e,Ua),r=oe();return s.createElement(Ft,{id:t.id,type:"area"},a=>s.createElement(s.Fragment,null,s.createElement(Yt,{legendPayload:Ma(t)}),s.createElement(Ga,{dataKey:t.dataKey,data:t.data,stroke:t.stroke,strokeWidth:t.strokeWidth,fill:t.fill,name:t.name,hide:t.hide,unit:t.unit,tooltipType:t.tooltipType,id:a}),s.createElement(Vt,{type:"area",id:a,data:t.data,dataKey:t.dataKey,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,stackId:Ht(t.stackId),hide:t.hide,barSize:void 0,baseValue:t.baseValue,isPanorama:r,connectNulls:t.connectNulls}),s.createElement(Za,F({},t,{id:a}))))}var ti=s.memo(ei,rt);ti.displayName="Area";var ri=["domain","range"],ai=["domain","range"];function Re(e,t){if(e==null)return{};var r,a,i=ii(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(a=0;a<n.length;a++)r=n[a],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}function ii(e,t){if(e==null)return{};var r={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(t.indexOf(a)!==-1)continue;r[a]=e[a]}return r}function Me(e,t){return e===t?!0:Array.isArray(e)&&e.length===2&&Array.isArray(t)&&t.length===2?e[0]===t[0]&&e[1]===t[1]:!1}function ni(e,t){if(e===t)return!0;var{domain:r,range:a}=e,i=Re(e,ri),{domain:n,range:l}=t,o=Re(t,ai);return!Me(r,n)||!Me(a,l)?!1:rt(i,o)}var oi=["type"],li=["dangerouslySetInnerHTML","ticks","scale"],si=["id","scale"];function pe(){return pe=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var a in r)({}).hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e},pe.apply(null,arguments)}function Ge(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,a)}return r}function Ke(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Ge(Object(r),!0).forEach(function(a){ci(e,a,r[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ge(Object(r)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(r,a))})}return e}function ci(e,t,r){return(t=ui(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function ui(e){var t=di(e,"string");return typeof t=="symbol"?t:t+""}function di(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var a=r.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function he(e,t){if(e==null)return{};var r,a,i=vi(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(a=0;a<n.length;a++)r=n[a],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}function vi(e,t){if(e==null)return{};var r={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(t.indexOf(a)!==-1)continue;r[a]=e[a]}return r}function fi(e){var t=ge(),r=s.useRef(null),a=it(),{type:i}=e,n=he(e,oi),l=fr(a,"yAxis",i),o=s.useMemo(()=>{if(l!=null)return Ke(Ke({},n),{},{type:l})},[l,n]);return s.useLayoutEffect(()=>{o!=null&&(r.current===null?t(ar(o)):r.current!==o&&t(ir({prev:r.current,next:o})),r.current=o)},[o,t]),s.useLayoutEffect(()=>()=>{r.current&&(t(nr(r.current)),r.current=null)},[t]),null}function pi(e){var{yAxisId:t,className:r,width:a,label:i}=e,n=s.useRef(null),l=s.useRef(null),o=L(or),d=oe(),c=ge(),u="yAxis",v=L(b=>lr(b,t)),p=L(b=>sr(b,t)),h=L(b=>cr(b,u,t,d)),f=L(b=>ur(b,t));if(s.useLayoutEffect(()=>{if(!(a!=="auto"||!v||dr(i)||s.isValidElement(i)||f==null)){var b=n.current;if(b){var w=b.getCalculatedWidth();Math.round(v.width)!==Math.round(w)&&c(vr({id:t,width:w}))}}},[h,v,c,i,t,a,f]),v==null||p==null||f==null)return null;var{dangerouslySetInnerHTML:y,ticks:g,scale:x}=e,P=he(e,li),{id:O,scale:m}=f,k=he(f,si);return s.createElement(lt,pe({},P,k,{ref:n,labelRef:l,x:p.x,y:p.y,tickTextProps:a==="auto"?{width:void 0}:{width:a},width:v.width,height:v.height,className:$("recharts-".concat(u," ").concat(u),r),viewBox:o,ticks:h,axisType:u,axisId:t}))}var hi={allowDataOverflow:I.allowDataOverflow,allowDecimals:I.allowDecimals,allowDuplicatedCategory:I.allowDuplicatedCategory,angle:I.angle,axisLine:U.axisLine,hide:!1,includeHidden:I.includeHidden,interval:I.interval,label:!1,minTickGap:I.minTickGap,mirror:I.mirror,orientation:I.orientation,padding:I.padding,reversed:I.reversed,scale:I.scale,tick:I.tick,tickCount:I.tickCount,tickLine:U.tickLine,tickSize:U.tickSize,type:I.type,niceTicks:I.niceTicks,width:I.width,yAxisId:0},mi=e=>{var t=te(e,hi);return s.createElement(s.Fragment,null,s.createElement(fi,{interval:t.interval,id:t.yAxisId,scale:t.scale,type:t.type,domain:t.domain,allowDataOverflow:t.allowDataOverflow,dataKey:t.dataKey,allowDuplicatedCategory:t.allowDuplicatedCategory,allowDecimals:t.allowDecimals,tickCount:t.tickCount,padding:t.padding,includeHidden:t.includeHidden,reversed:t.reversed,ticks:t.ticks,width:t.width,orientation:t.orientation,mirror:t.mirror,hide:t.hide,unit:t.unit,name:t.name,angle:t.angle,minTickGap:t.minTickGap,tick:t.tick,tickFormatter:t.tickFormatter,niceTicks:t.niceTicks}),s.createElement(pi,t))},yi=s.memo(mi,ni);yi.displayName="YAxis";function me(){return me=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var a in r)({}).hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e},me.apply(null,arguments)}function Be(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,a)}return r}function gi(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Be(Object(r),!0).forEach(function(a){bi(e,a,r[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Be(Object(r)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(r,a))})}return e}function bi(e,t,r){return(t=xi(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function xi(e){var t=Pi(e,"string");return typeof t=="symbol"?t:t+""}function Pi(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var a=r.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var Oi={top:5,right:5,bottom:5,left:5},ki=gi({accessibilityLayer:!0,barCategoryGap:"10%",barGap:4,layout:"horizontal",margin:Oi,responsive:!1,reverseStackOrder:!1,stackOffset:"none",syncMethod:"index"},xr),wi=s.forwardRef(function(t,r){var a,i=te(t.categoricalChartProps,ki),{chartName:n,defaultTooltipEventType:l,validateTooltipEventTypes:o,tooltipPayloadSearcher:d,categoricalChartProps:c}=t,u={chartName:n,defaultTooltipEventType:l,validateTooltipEventTypes:o,tooltipPayloadSearcher:d,eventEmitter:void 0};return s.createElement(pr,{preloadedState:{options:u},reduxStoreName:(a=c.id)!==null&&a!==void 0?a:n},s.createElement(hr,{chartData:c.data}),s.createElement(mr,{layout:i.layout,margin:i.margin}),s.createElement(yr,{throttleDelay:i.throttleDelay,throttledEvents:i.throttledEvents}),s.createElement(gr,{baseValue:i.baseValue,accessibilityLayer:i.accessibilityLayer,barCategoryGap:i.barCategoryGap,maxBarSize:i.maxBarSize,stackOffset:i.stackOffset,barGap:i.barGap,barSize:i.barSize,syncId:i.syncId,syncMethod:i.syncMethod,className:i.className,reverseStackOrder:i.reverseStackOrder}),s.createElement(br,me({},i,{ref:r})))}),Ai=["axis"],Si=s.forwardRef((e,t)=>s.createElement(wi,{chartName:"AreaChart",defaultTooltipEventType:"axis",validateTooltipEventTypes:Ai,tooltipPayloadSearcher:Pr,categoricalChartProps:e,ref:t}));export{ti as A,Aa as C,Cr as D,Ea as G,yi as Y,Si as a,Oe as b,wi as c,U as d,ni as e,lt as f,ja as g,Te as h,Ii as r,Pe as s,ct as u};
|