decocms 3.10.0 → 3.10.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/assets/{AlertCircle-BQdZzjHT.js → AlertCircle-Dm12nF6o.js} +1 -1
- package/dist/client/assets/{ArrowUpRight-CeE0rmVq.js → ArrowUpRight-GdT2goj_.js} +1 -1
- package/dist/client/assets/{Check-BC0oyj5b.js → Check-o-zUju1W.js} +1 -1
- package/dist/client/assets/{CheckCircle-DH7rdvLk.js → CheckCircle-BkEI7gFR.js} +1 -1
- package/dist/client/assets/{ChevronDown-R842NQ1U.js → ChevronDown-CNy49i0W.js} +1 -1
- package/dist/client/assets/{ChevronLeft-4yzLonaZ.js → ChevronLeft-BswR_fSO.js} +1 -1
- package/dist/client/assets/{ChevronRight-ZAMgnesO.js → ChevronRight-BgIn57eH.js} +1 -1
- package/dist/client/assets/{ChevronUp-BF-b-Nnx.js → ChevronUp-CItZiPxX.js} +1 -1
- package/dist/client/assets/{Container-DYeY832q.js → Container-BI041HGs.js} +1 -1
- package/dist/client/assets/{DotsVertical-qBVhBkwp.js → DotsVertical-DpyQCfpE.js} +1 -1
- package/dist/client/assets/{Eye-DT8d17_D.js → Eye-CwmAmEba.js} +1 -1
- package/dist/client/assets/{FilterLines-0_3CSvNU.js → FilterLines-_2tlTach.js} +1 -1
- package/dist/client/assets/{Globe01-Dq1s-8U-.js → Globe01-BQiH4pzR.js} +1 -1
- package/dist/client/assets/{HardDrive-BSOkGCav.js → HardDrive-BExU4NVN.js} +1 -1
- package/dist/client/assets/{Key01-6ihQsQH5.js → Key01-BVH8DPhU.js} +1 -1
- package/dist/client/assets/{LayoutLeft-DW_oy1t7.js → LayoutLeft-DNYnEEyq.js} +1 -1
- package/dist/client/assets/{LinkExternal01-Dr7L27C5.js → LinkExternal01-XNIU6-cE.js} +1 -1
- package/dist/client/assets/{Monitor01-B1nvgGLS.js → Monitor01-20Eh6WBW.js} +1 -1
- package/dist/client/assets/{Palette-DgrVm9Lf.js → Palette-vdpnI3pe.js} +1 -1
- package/dist/client/assets/{Play-Irj6Snpi.js → Play-DitjUfoa.js} +1 -1
- package/dist/client/assets/{Plus-282oO62Z.js → Plus-BFGy0Ag-.js} +1 -1
- package/dist/client/assets/{RefreshCcw01-Ucb5geTM.js → RefreshCcw01-86h90ufT.js} +1 -1
- package/dist/client/assets/{SearchMd-QjKlDFdA.js → SearchMd-DcUQwid2.js} +1 -1
- package/dist/client/assets/{Settings02-C6oxZAMK.js → Settings02-CK5ZrDud.js} +1 -1
- package/dist/client/assets/{Shield01-D7qNI860.js → Shield01-DymXSrLL.js} +1 -1
- package/dist/client/assets/{Star01-3amhnFQB.js → Star01-DH1c5eP5.js} +1 -1
- package/dist/client/assets/{Stars01-D-S4IK6K.js → Stars01-9ek2YoUP.js} +1 -1
- package/dist/client/assets/{Stars02-BjwC_VwI.js → Stars02-CON7obeQ.js} +1 -1
- package/dist/client/assets/{Sun-D7IGJ5Qz.js → Sun-BLdidlza.js} +1 -1
- package/dist/client/assets/{SwitchHorizontal01-CgqCR4Yz.js → SwitchHorizontal01-K-7T5m4d.js} +1 -1
- package/dist/client/assets/{Tool01-N1xf4ThS.js → Tool01-D2UZ1Vs-.js} +1 -1
- package/dist/client/assets/{Trash01-C5lXrAXB.js → Trash01-Cx3OtqBr.js} +1 -1
- package/dist/client/assets/{Upload01-CRQffHbJ.js → Upload01-5227NVpL.js} +1 -1
- package/dist/client/assets/{User01-sifBP7dG.js → User01-Dm1O7yuK.js} +1 -1
- package/dist/client/assets/{Users01-CqOg_Qlq.js → Users01-D9KQz9Jg.js} +1 -1
- package/dist/client/assets/{Users03-zhbxBBX-.js → Users03-DcPZW8td.js} +1 -1
- package/dist/client/assets/{X-CY5EOp8o.js → X-BQQplvP0.js} +1 -1
- package/dist/client/assets/{XCircle-C2jaCgsw.js → XCircle-h_tDVdAY.js} +1 -1
- package/dist/client/assets/{XClose-Dp1ChvR4.js → XClose-DRKdv4XS.js} +1 -1
- package/dist/client/assets/{Zap-DQUf40SC.js → Zap-B0rZ1Af9.js} +1 -1
- package/dist/client/assets/{ZapSquare-dqx_OfE2.js → ZapSquare-BZ8deXpK.js} +1 -1
- package/dist/client/assets/{ZoomOut-BRLKFRz0.js → ZoomOut-CpLnwBO_.js} +1 -1
- package/dist/client/assets/{access-gate-CljCKnMv.js → access-gate-GaKCibnP.js} +1 -1
- package/dist/client/assets/{accordion-BU6HxGne.js → accordion-CuBTPd53.js} +1 -1
- package/dist/client/assets/{add-section-modal-Ca9uYkx3.js → add-section-modal-CiPuF_Ea.js} +1 -1
- package/dist/client/assets/{agent-capabilities-CoD6HyyN.js → agent-capabilities-9LqLzAxM.js} +1 -1
- package/dist/client/assets/{agent-icon-Cdddea4y.js → agent-icon-zrokvqQM.js} +1 -1
- package/dist/client/assets/{agent-icons-CKU8GGl2.js → agent-icons-Dv-0lh0p.js} +1 -1
- package/dist/client/assets/{agents-list-BrPrwKER.js → agents-list-D3enC4oc.js} +1 -1
- package/dist/client/assets/{ai-providers-DObQ3JKO.js → ai-providers-DJq0PZPq.js} +1 -1
- package/dist/client/assets/{alert-B4M2bFp4.js → alert-aloz1Luc.js} +1 -1
- package/dist/client/assets/{alert-dialog-wo7djkDg.js → alert-dialog-BoYEsobC.js} +1 -1
- package/dist/client/assets/app-editor-52tpi3rq.js +1 -0
- package/dist/client/assets/{auth-catchall-CARxKUXE.js → auth-catchall-CKECVnSc.js} +1 -1
- package/dist/client/assets/{auth-split-layout-CdjhFpDE.js → auth-split-layout-BXyV4B-B.js} +1 -1
- package/dist/client/assets/{automation-list-row-DrMmYGg2.js → automation-list-row-CCDkT_lb.js} +1 -1
- package/dist/client/assets/{automation-runs-BxnZN2Rp.js → automation-runs-C41UnlIL.js} +1 -1
- package/dist/client/assets/{automations-C9zBfa-L.js → automations-DINiWlko.js} +1 -1
- package/dist/client/assets/{avatar-DZZ4PPWC.js → avatar-CFgeYzCR.js} +1 -1
- package/dist/client/assets/{badge-9pGcMSo9.js → badge-BoRJ8tO_.js} +1 -1
- package/dist/client/assets/{brand-context-AKSB4TFX.js → brand-context-CPjIHvVh.js} +1 -1
- package/dist/client/assets/{buckets-C5lDKn9n.js → buckets-CoK7HZf8.js} +1 -1
- package/dist/client/assets/{calendar-VsOQOecc.js → calendar-CNghNFxX.js} +1 -1
- package/dist/client/assets/{capability-load-error-CjoddyUE.js → capability-load-error-CZ-9nVZ5.js} +1 -1
- package/dist/client/assets/{card-Dj9cg3CK.js → card-BXlKgMlf.js} +1 -1
- package/dist/client/assets/{chat-context-DaxTCgBq.js → chat-context-DV1OjViY.js} +1 -1
- package/dist/client/assets/{checkbox-zURLZ3UX.js → checkbox-B-gaLjHk.js} +1 -1
- package/dist/client/assets/{cli-auth-success-Boc0yBdi.js → cli-auth-success-d78Hzgue.js} +1 -1
- package/dist/client/assets/{collection-detail-DybzD5Xk.js → collection-detail-JuRvgARK.js} +1 -1
- package/dist/client/assets/{collection-display-button-C-0uZ95I.js → collection-display-button-BB9GNATL.js} +1 -1
- package/dist/client/assets/{collection-search-DcKd-0OB.js → collection-search-lmVdsLrv.js} +1 -1
- package/dist/client/assets/{collection-table-wrapper-D16K4NpS.js → collection-table-wrapper-Ch_XvI-y.js} +1 -1
- package/dist/client/assets/{collection-tabs-B68kf5RK.js → collection-tabs-C3D4x7Aa.js} +1 -1
- package/dist/client/assets/{collections-CjKCiyyJ.js → collections-BKr8aq5N.js} +1 -1
- package/dist/client/assets/{command-SwSMex4i.js → command-BFycs2Kb.js} +1 -1
- package/dist/client/assets/{connect-desktop-dialog-BHLyUOHP.js → connect-desktop-dialog-RVZBNR1K.js} +1 -1
- package/dist/client/assets/{connection-card-BMM5SXL2.js → connection-card-CAaHV4Vz.js} +1 -1
- package/dist/client/assets/{connection-detail-01KrAftr.js → connection-detail-PVPF5bbg.js} +1 -1
- package/dist/client/assets/{connection-form-helpers-DQIelH5O.js → connection-form-helpers-D45HQd6Q.js} +1 -1
- package/dist/client/assets/{connections-DXt-OZ2a.js → connections-BvC0Sjf_.js} +1 -1
- package/dist/client/assets/{constants-D3TwDQx3.js → constants-D6Bbr6AT.js} +1 -1
- package/dist/client/assets/{decopilot-sse-pool-BegF480x.js → decopilot-sse-pool-Ce0jkp4a.js} +1 -1
- package/dist/client/assets/{dialog-ZmuU49gf.js → dialog-CB0bO41l.js} +1 -1
- package/dist/client/assets/{domain-settings-MOa5o-N_.js → domain-settings-Ca-ULuYt.js} +1 -1
- package/dist/client/assets/{drawer-gGw1fcoY.js → drawer-DFvei-xn.js} +1 -1
- package/dist/client/assets/{dropdown-menu-CxtJkFj7.js → dropdown-menu-Ci6fdZ_l.js} +1 -1
- package/dist/client/assets/{dynamic-plugin-layout-NAmzVGzy.js → dynamic-plugin-layout-2yoEhZn7.js} +1 -1
- package/dist/client/assets/{empty-state-DypMRY_b.js → empty-state-CmBBVqmb.js} +1 -1
- package/dist/client/assets/{empty-state-Bp53vJ5J.js → empty-state-DgETnZaU.js} +1 -1
- package/dist/client/assets/{extract-connection-data-BxLUPS35.js → extract-connection-data-cVoEqyD8.js} +1 -1
- package/dist/client/assets/{features-DdT_Un6T.js → features-BIUoz6y9.js} +1 -1
- package/dist/client/assets/{file-explorer-C6G0_-8u.js → file-explorer-BhsF_niW.js} +1 -1
- package/dist/client/assets/{file-type-icon-C7hLWFjD.js → file-type-icon-DFx7UFpB.js} +1 -1
- package/dist/client/assets/{files-IHk2X7ln.js → files-CwoEB6jc.js} +1 -1
- package/dist/client/assets/{form-Bb30Dtd4.js → form-Ct0PcXXO.js} +1 -1
- package/dist/client/assets/{general-CyrOfN1n.js → general-DX7bk_55.js} +1 -1
- package/dist/client/assets/{generate-id-DCuwKdwd.js → generate-id-DYV1EuhB.js} +1 -1
- package/dist/client/assets/{github-repo-picker-ukQ8mlgx.js → github-repo-picker-CnntksDO.js} +1 -1
- package/dist/client/assets/{header-tab-button-Ct59Qn2o.js → header-tab-button-B8QItw7F.js} +1 -1
- package/dist/client/assets/{hover-card-BJCPsde9.js → hover-card-8wJLJ7yd.js} +1 -1
- package/dist/client/assets/{image-field-BUiTz_KS.js → image-field-ChNUl-O1.js} +1 -1
- package/dist/client/assets/{index-C-7fxrkj.js → index-BACP8eL8.js} +1 -1
- package/dist/client/assets/{index-c4IWlLfS.js → index-BYYtwaPd.js} +1 -1
- package/dist/client/assets/{index-Cov_Guzr.js → index-BcVgCuba.js} +1 -1
- package/dist/client/assets/{index-DiDlqgd4.js → index-BsO26Vey.js} +1 -1
- package/dist/client/assets/{index-Dji_l0xa.js → index-Bu3pftwN.js} +4 -4
- package/dist/client/assets/{index-CPp-3T8R.js → index-BvwjdL6f.js} +1 -1
- package/dist/client/assets/{index-Czyl40Yo.js → index-BvzS7IRp.js} +1 -1
- package/dist/client/assets/{index-B2iX6hZk.js → index-C9u7t1jZ.js} +1 -1
- package/dist/client/assets/{index-BD0Vs-CA.js → index-D9kgGhq4.js} +3 -3
- package/dist/client/assets/{index-BYpuQugU.js → index-DEy5aba-.js} +1 -1
- package/dist/client/assets/{index-DF_fyalX.js → index-DIAuQeIa.js} +1 -1
- package/dist/client/assets/{index-CQ4OU5SG.js → index-DnwFIrqI.js} +1 -1
- package/dist/client/assets/{index-D3Ribt5F.js → index-DxocBsWJ.js} +1 -1
- package/dist/client/assets/{index-De2W4Fh6.js → index-HSc5X2s9.js} +1 -1
- package/dist/client/assets/{index-C-BjtSEe.js → index-cadeU-4K.js} +1 -1
- package/dist/client/assets/{index-redirect-BvLQ4iq8.js → index-redirect-FdtMY7HX.js} +1 -1
- package/dist/client/assets/{infiniteQueryObserver-sLZJuWs1.js → infiniteQueryObserver-BaYvuSQm.js} +1 -1
- package/dist/client/assets/{input-BdjjFpfr.js → input-D8kdtiC4.js} +1 -1
- package/dist/client/assets/{integration-icon-DjqEnfq3.js → integration-icon-DOYIIElF.js} +1 -1
- package/dist/client/assets/{label-C5JCVP3P.js → label-BpJD7y8S.js} +1 -1
- package/dist/client/assets/{layout-K01ShTmz.js → layout-DtZU5vn4.js} +1 -1
- package/dist/client/assets/{login-Cni2d7NN.js → login-BuVPc8ii.js} +1 -1
- package/dist/client/assets/{members-a7ObwkxU.js → members-DgzAyfl8.js} +1 -1
- package/dist/client/assets/{monaco-editor-D2Cgb5CL.js → monaco-editor-Da7GwOd2.js} +1 -1
- package/dist/client/assets/{monitoring-stats-row-Co_s1URu.js → monitoring-stats-row-DMC3Qfgg.js} +1 -1
- package/dist/client/assets/{oauth-callback-BT0UUcR2.js → oauth-callback-B8N9yuZ3.js} +1 -1
- package/dist/client/assets/{oauth-callback-ai-provider-BMcv6iWf.js → oauth-callback-ai-provider-DGlvLqV2.js} +1 -1
- package/dist/client/assets/{onboarding-BLBFk2ZA.js → onboarding-CsqQa1Du.js} +1 -1
- package/dist/client/assets/{org-install-BrfD2Fv0.js → org-install-DbQVBTAF.js} +1 -1
- package/dist/client/assets/{org-layout-Bn3L93QB.js → org-layout-B-dSShI_.js} +1 -1
- package/dist/client/assets/{org-plugin-layout-Nka8ivWV.js → org-plugin-layout-D8dv4iOR.js} +1 -1
- package/dist/client/assets/{page-seo-form-CpoxmYxQ.js → page-seo-form-DMPm2Bc_.js} +1 -1
- package/dist/client/assets/page-seo-sheet-BJhopuAk.js +1 -0
- package/dist/client/assets/{pair-Bui7pRoY.js → pair-DyoQ9qQT.js} +1 -1
- package/dist/client/assets/{plugin-empty-state-5lCjYrbS.js → plugin-empty-state-DAyYlyt1.js} +1 -1
- package/dist/client/assets/{plugin-header-BFOQBz_i.js → plugin-header-D36KN-4q.js} +1 -1
- package/dist/client/assets/{plugin-layout-ONSas9Ui.js → plugin-layout-D6jOpYTL.js} +1 -1
- package/dist/client/assets/{popover-cTB9T6zY.js → popover-Ar-4ozUT.js} +1 -1
- package/dist/client/assets/{post-editor-N9xx8HEl.js → post-editor-MIJGliNT.js} +1 -1
- package/dist/client/assets/{primitives-BY4b05zg.js → primitives-Dt2PbGWi.js} +1 -1
- package/dist/client/assets/{profile-C-xaCM8D.js → profile-D_3mUpNq.js} +1 -1
- package/dist/client/assets/project-app-view-BwtXgdHT.js +1 -0
- package/dist/client/assets/record-editor-DG5YEX5v.js +1 -0
- package/dist/client/assets/{registry-layout-oMaQFjep.js → registry-layout-DfdkwuGZ.js} +1 -1
- package/dist/client/assets/registry-pvkHql8r.js +2 -0
- package/dist/client/assets/{require-capability-CG52f6R3.js → require-capability-C9yFB8dG.js} +1 -1
- package/dist/client/assets/{required-auth-layout-RkDlrM0L.js → required-auth-layout-DFiOpH8z.js} +1 -1
- package/dist/client/assets/{reset-password-DfZLgZJf.js → reset-password-BsH_SanI.js} +1 -1
- package/dist/client/assets/{resizable-BRPR_6nf.js → resizable-CqxuHIEF.js} +1 -1
- package/dist/client/assets/{roles-iynUa3v9.js → roles-ChKgj-1r.js} +1 -1
- package/dist/client/assets/{save-status-Cs4ql7Lz.js → save-status-CjyNK6PA.js} +1 -1
- package/dist/client/assets/{schema-form-BQLwCXS8.js → schema-form-C7LQIu-l.js} +1 -1
- package/dist/client/assets/{scroll-area-DMkk7C5X.js → scroll-area-B0QeeQ1W.js} +1 -1
- package/dist/client/assets/{search-input-C-P2O70i.js → search-input-zYIhXOXh.js} +1 -1
- package/dist/client/assets/{secrets-mBqxX3ne.js → secrets-Bs_qBrY_.js} +1 -1
- package/dist/client/assets/{sections-editor-CkUdgmBv.js → sections-editor-oX0PTrIX.js} +1 -1
- package/dist/client/assets/{select-877_XRoe.js → select-BMTzbu3R.js} +1 -1
- package/dist/client/assets/{select-model-C_cur-rH.js → select-model-C8-Qol6g.js} +1 -1
- package/dist/client/assets/{seo-editor-D8nPTKAd.js → seo-editor-BmXWSA0f.js} +1 -1
- package/dist/client/assets/{settings-layout-Dbfjpv2r.js → settings-layout-CDKbGpOq.js} +1 -1
- package/dist/client/assets/{settings-section-kr7Y9bP9.js → settings-section-DkCaCHjL.js} +1 -1
- package/dist/client/assets/{sheet-Dsz02SFl.js → sheet-BcNA728n.js} +1 -1
- package/dist/client/assets/{shell-controls-DTLIiy6L.js → shell-controls-DyxUm0QJ.js} +1 -1
- package/dist/client/assets/{shell-layout-CH8oYCM2.js → shell-layout-pG6XpLJU.js} +1 -1
- package/dist/client/assets/{shell-route-loading-Cn0fA0CZ.js → shell-route-loading-DdwIEVqN.js} +1 -1
- package/dist/client/assets/{sidebar-OlCqSXPX.js → sidebar-Bk2jzyI-.js} +1 -1
- package/dist/client/assets/{skeleton-CoJAV87H.js → skeleton-FanER5WJ.js} +1 -1
- package/dist/client/assets/{sortable.esm-ZerYvs9l.js → sortable.esm-C8q-C7LS.js} +1 -1
- package/dist/client/assets/{spinner-CYDSZGqh.js → spinner-Bniq-hdg.js} +1 -1
- package/dist/client/assets/{sso-AzS0X9Dv.js → sso-9cC4498A.js} +1 -1
- package/dist/client/assets/{store-2U1XV2kz.js → store-2muMuSWw.js} +1 -1
- package/dist/client/assets/store-registry-C1k5PTr5.js +2 -0
- package/dist/client/assets/{switch-Bazzokl_.js → switch-Mi9vrG7L.js} +1 -1
- package/dist/client/assets/{tab-id-DrhK90L3.js → tab-id-DoHEKhGX.js} +1 -1
- package/dist/client/assets/{table-Do8GxGTj.js → table-DSgZcufa.js} +1 -1
- package/dist/client/assets/{tabs-D9ntWD-6.js → tabs-DjiD-oR_.js} +1 -1
- package/dist/client/assets/{task-status-Sjdts0gR.js → task-status-jQFHPQ2F.js} +1 -1
- package/dist/client/assets/{textarea-D91MKpZC.js → textarea-B24VAXi2.js} +1 -1
- package/dist/client/assets/{toggle-group-DGrm2vuO.js → toggle-group-BGMT9i62.js} +1 -1
- package/dist/client/assets/{toolbar-Dy7jx2bJ.js → toolbar-FU-ITy2s.js} +1 -1
- package/dist/client/assets/{tools-list-BmmPeFb6.js → tools-list-yUD9btG4.js} +1 -1
- package/dist/client/assets/{tooltip-BXkAyk_s.js → tooltip-M08maXcg.js} +1 -1
- package/dist/client/assets/{types-j6zTjYLW.js → types-C_6yTm2K.js} +1 -1
- package/dist/client/assets/{use-ai-providers-DuBmTMbG.js → use-ai-providers-DgHf7F2h.js} +1 -1
- package/dist/client/assets/{use-automations-ClchBd2q.js → use-automations-DkHpblle.js} +1 -1
- package/dist/client/assets/{use-capability-4Bqq3Ptd.js → use-capability-COb_RW9L.js} +1 -1
- package/dist/client/assets/{use-collections-HtykhO8E.js → use-collections-Dx8F5dop.js} +1 -1
- package/dist/client/assets/{use-connection-CFCjzYr3.js → use-connection-fZwsgZBE.js} +1 -1
- package/dist/client/assets/{use-copy-D2WKzb4n.js → use-copy-ND5nyTQq.js} +1 -1
- package/dist/client/assets/{use-create-virtual-mcp-D8DtJRBD.js → use-create-virtual-mcp-DlD4WTZG.js} +1 -1
- package/dist/client/assets/{use-debounced-autosave-B_zQVx0C.js → use-debounced-autosave-DVgUt2Pb.js} +1 -1
- package/dist/client/assets/{use-delete-connection-CcHH3N6L.js → use-delete-connection-BayYbiEc.js} +1 -1
- package/dist/client/assets/{use-file-configs-BdoGIuji.js → use-file-configs-D4ueLTwx.js} +1 -1
- package/dist/client/assets/{use-infinite-scroll--wh3054T.js → use-infinite-scroll-DxKK_1jX.js} +1 -1
- package/dist/client/assets/{use-list-state-Dgqvi_Qc.js → use-list-state-CcbSUP67.js} +1 -1
- package/dist/client/assets/{use-mcp-prompts-Cs73_aGi.js → use-mcp-prompts-DwWf_cps.js} +1 -1
- package/dist/client/assets/{use-mcp-tools-C1gRGhR_.js → use-mcp-tools-DPaUEjUC.js} +1 -1
- package/dist/client/assets/{use-members-PGJbXmC6.js → use-members-BGhv-lqQ.js} +1 -1
- package/dist/client/assets/{use-navigate-to-agent-BU3cK_V3.js → use-navigate-to-agent-ImCQRVux.js} +1 -1
- package/dist/client/assets/{use-org-auth-client-DDgSMc-B.js → use-org-auth-client-BnMgTkv9.js} +1 -1
- package/dist/client/assets/{use-org-sso-BAFZBkLH.js → use-org-sso-BtiGW1BY.js} +1 -1
- package/dist/client/assets/{use-organization-roles-Dh3C98N-.js → use-organization-roles-Dsopt3rB.js} +1 -1
- package/dist/client/assets/{use-organization-settings-DyFbECeN.js → use-organization-settings-DcOZmJjR.js} +1 -1
- package/dist/client/assets/{use-registry-connections-Bk2SQzaL.js → use-registry-connections-Bued1bGX.js} +1 -1
- package/dist/client/assets/{use-secrets-7GF-cSiL.js → use-secrets-CJfkQ1kY.js} +1 -1
- package/dist/client/assets/{use-status-sounds-CvJbKYn3.js → use-status-sounds-D0RgrQqN.js} +1 -1
- package/dist/client/assets/{use-view-mode-DitlqWxa.js → use-view-mode-DN94zRym.js} +1 -1
- package/dist/client/assets/{use-virtual-mcp-Cvm4KLIO.js → use-virtual-mcp-C7J9vBIx.js} +1 -1
- package/dist/client/assets/useInfiniteQuery-moOazGP7.js +1 -0
- package/dist/client/assets/{useRouterState-ComuFEbk.js → useRouterState-iQdkmhiX.js} +1 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-CoKhcfdG.js +1 -0
- package/dist/client/assets/{user-Bkww3yLN.js → user-BPEhSyTs.js} +1 -1
- package/dist/client/assets/{view-mode-toggle-2ZW6tMJS.js → view-mode-toggle-m2Gtbg0D.js} +1 -1
- package/dist/client/assets/workflow-detail-qHQDG7Ax.js +1 -0
- package/dist/client/assets/{workflow-Dt_Gbo2I.js → workflow-y0X9IGbY.js} +1 -1
- package/dist/client/index.html +1 -1
- package/dist/server/cli.js +2 -2
- package/dist/server/server.js +1 -1
- package/package.json +1 -1
- package/dist/client/assets/app-editor-BivZp6Yr.js +0 -1
- package/dist/client/assets/page-seo-sheet-Cni7GVIz.js +0 -1
- package/dist/client/assets/project-app-view-CLSVHcb8.js +0 -1
- package/dist/client/assets/record-editor-tc1QZAky.js +0 -1
- package/dist/client/assets/registry-HzF1Dkk-.js +0 -2
- package/dist/client/assets/store-registry-DWHj3GiE.js +0 -2
- package/dist/client/assets/useInfiniteQuery-BXWzDcVY.js +0 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-C3HFhtdp.js +0 -1
- package/dist/client/assets/workflow-detail-cuV7fAVn.js +0 -1
package/dist/server/server.js
CHANGED
|
@@ -2197,7 +2197,7 @@ Hint: Configure a valid Google account email in Monitor Configuration > Contexto
|
|
|
2197
2197
|
`);let X=Z.pax;if(X)for(let Q in X)G+=Nd1(" "+Q+"="+X[Q]+`
|
|
2198
2198
|
`);return m4.from(G)};Ze8.decodePax=function(Z){let G={};while(Z.length){let X=0;while(X<Z.length&&Z[X]!==32)X++;let Q=parseInt(m4.toString(Z.subarray(0,X)),10);if(!Q)return G;let Y=m4.toString(Z.subarray(X+1,Q-1)),J=Y.indexOf("=");if(J===-1)return G;G[Y.slice(0,J)]=Y.slice(J+1),Z=Z.subarray(Q)}return G};Ze8.encode=function(Z){let G=m4.alloc(512),X=Z.name,Q="";if(Z.typeflag===5&&X[X.length-1]!=="/")X+="/";if(m4.byteLength(X)!==X.length)return null;while(m4.byteLength(X)>100){let Y=X.indexOf("/");if(Y===-1)return null;Q+=Q?"/"+X.slice(0,Y):X.slice(0,Y),X=X.slice(Y+1)}if(m4.byteLength(X)>100||m4.byteLength(Q)>155)return null;if(Z.linkname&&m4.byteLength(Z.linkname)>100)return null;if(m4.write(G,X),m4.write(G,LO(Z.mode&4095,6),100),m4.write(G,LO(Z.uid,6),108),m4.write(G,LO(Z.gid,6),116),es8(Z.size,G,124),m4.write(G,LO(Z.mtime.getTime()/1000|0,11),136),G[156]=48+as8(Z.type),Z.linkname)m4.write(G,Z.linkname,157);if(m4.copy(F7$,G,257),m4.copy(ms8,G,263),Z.uname)m4.write(G,Z.uname,265);if(Z.gname)m4.write(G,Z.gname,297);if(m4.write(G,LO(Z.devmajor||0,6),329),m4.write(G,LO(Z.devminor||0,6),337),Q)m4.write(G,Q,345);return m4.write(G,LO(N7$(G),6),148),G};Ze8.decode=function(Z,G,X){let Q=Z[156]===0?0:Z[156]-48,Y=Sf(Z,0,100,G),J=DO(Z,100,8),W=DO(Z,108,8),K=DO(Z,116,8),U=DO(Z,124,12),F=DO(Z,136,12),H=rs8(Q),N=Z[157]===0?null:Sf(Z,157,100,G),O=Sf(Z,265,32),B=Sf(Z,297,32),L=DO(Z,329,8),w=DO(Z,337,8),z=N7$(Z);if(z===256)return null;if(z!==DO(Z,148,8))throw Error("Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?");if(ps8(Z)){if(Z[345])Y=Sf(Z,345,155,G)+"/"+Y}else if(ts8(Z));else if(!X)throw Error("Invalid tar header: unknown format.");if(Q===0&&Y&&Y[Y.length-1]==="/")Q=5;return{name:Y,mode:J,uid:W,gid:K,size:U,mtime:new Date(1000*F),type:H,linkname:N,uname:O,gname:B,devmajor:L,devminor:w,pax:null}};function ps8($){return m4.equals(F7$,$.subarray(257,263))}function ts8($){return m4.equals(is8,$.subarray(257,263))&&m4.equals(ns8,$.subarray(263,265))}function os8($,Z,G){if(typeof $!=="number")return G;if($=~~$,$>=Z)return Z;if($>=0)return $;if($+=Z,$>=0)return $;return 0}function rs8($){switch($){case 0:return"file";case 1:return"link";case 2:return"symlink";case 3:return"character-device";case 4:return"block-device";case 5:return"directory";case 6:return"fifo";case 7:return"contiguous-file";case 72:return"pax-header";case 55:return"pax-global-header";case 27:return"gnu-long-link-path";case 28:case 30:return"gnu-long-path"}return null}function as8($){switch($){case"file":return 0;case"link":return 1;case"symlink":return 2;case"character-device":return 3;case"block-device":return 4;case"directory":return 5;case"fifo":return 6;case"contiguous-file":return 7;case"pax-header":return 72}return 0}function H7$($,Z,G,X){for(;G<X;G++)if($[G]===Z)return G;return X}function N7$($){let Z=256;for(let G=0;G<148;G++)Z+=$[G];for(let G=156;G<512;G++)Z+=$[G];return Z}function LO($,Z){if($=$.toString(8),$.length>Z)return"7777777777777777777".slice(0,Z)+" ";return"0000000000000000000".slice(0,Z-$.length)+$+" "}function ss8($,Z,G){Z[G]=128;for(let X=11;X>0;X--)Z[G+X]=$&255,$=Math.floor($/256)}function es8($,Z,G){if($.toString(8).length>11)ss8($,Z,G);else m4.write(Z,LO($,11),G)}function $e8($){let Z;if($[0]===128)Z=!0;else if($[0]===255)Z=!1;else return null;let G=[],X;for(X=$.length-1;X>0;X--){let J=$[X];if(Z)G.push(J);else G.push(255-J)}let Q=0,Y=G.length;for(X=0;X<Y;X++)Q+=G[X]*Math.pow(256,X);return Z?Q:-1*Q}function DO($,Z,G){if($=$.subarray(Z,Z+G),Z=0,$[Z]&128)return $e8($);else{while(Z<$.length&&$[Z]===32)Z++;let X=os8(H7$($,32,Z,$.length),$.length,$.length);while(Z<X&&$[Z]===0)Z++;if(X===Z)return 0;return parseInt(m4.toString($.subarray(Z,X)),8)}}function Sf($,Z,G,X){return m4.toString($.subarray(Z,H7$($,0,Z,Z+G)),X)}function Nd1($){let Z=m4.byteLength($),G=Math.floor(Math.log(Z)/Math.log(10))+1;if(Z+G>=Math.pow(10,G))G++;return Z+G+$}});var j7$=v((Qo5,z7$)=>{var{Writable:We8,Readable:Ke8,getStreamError:O7$}=Hd1(),Ue8=Yd1(),B7$=Vf(),Cf=Od1(),Fe8=B7$.alloc(0);class D7${constructor(){this.buffered=0,this.shifted=0,this.queue=new Ue8,this._offset=0}push($){this.buffered+=$.byteLength,this.queue.push($)}shiftFirst($){return this._buffered===0?null:this._next($)}shift($){if($>this.buffered)return null;if($===0)return Fe8;let Z=this._next($);if($===Z.byteLength)return Z;let G=[Z];while(($-=Z.byteLength)>0)Z=this._next($),G.push(Z);return B7$.concat(G)}_next($){let Z=this.queue.peek(),G=Z.byteLength-this._offset;if($>=G){let X=this._offset?Z.subarray(this._offset,Z.byteLength):Z;return this.queue.shift(),this._offset=0,this.buffered-=G,this.shifted+=G,X}return this.buffered-=$,this.shifted+=$,Z.subarray(this._offset,this._offset+=$)}}class L7$ extends Ke8{constructor($,Z,G){super();this.header=Z,this.offset=G,this._parent=$}_read($){if(this.header.size===0)this.push(null);if(this._parent._stream===this)this._parent._update();$(null)}_predestroy(){this._parent.destroy(O7$(this))}_detach(){if(this._parent._stream===this)this._parent._stream=null,this._parent._missing=w7$(this.header.size),this._parent._update()}_destroy($){this._detach(),$(null)}}class E7$ extends We8{constructor($){super($);if(!$)$={};this._buffer=new D7$,this._offset=0,this._header=null,this._stream=null,this._missing=0,this._longHeader=!1,this._callback=Bd1,this._locked=!1,this._finished=!1,this._pax=null,this._paxGlobal=null,this._gnuLongPath=null,this._gnuLongLinkPath=null,this._filenameEncoding=$.filenameEncoding||"utf-8",this._allowUnknownFormat=!!$.allowUnknownFormat,this._unlockBound=this._unlock.bind(this)}_unlock($){if(this._locked=!1,$){this.destroy($),this._continueWrite($);return}this._update()}_consumeHeader(){if(this._locked)return!1;this._offset=this._buffer.shifted;try{this._header=Cf.decode(this._buffer.shift(512),this._filenameEncoding,this._allowUnknownFormat)}catch($){return this._continueWrite($),!1}if(!this._header)return!0;switch(this._header.type){case"gnu-long-path":case"gnu-long-link-path":case"pax-global-header":case"pax-header":return this._longHeader=!0,this._missing=this._header.size,!0}if(this._locked=!0,this._applyLongHeaders(),this._header.size===0||this._header.type==="directory")return this.emit("entry",this._header,this._createStream(),this._unlockBound),!0;return this._stream=this._createStream(),this._missing=this._header.size,this.emit("entry",this._header,this._stream,this._unlockBound),!0}_applyLongHeaders(){if(this._gnuLongPath)this._header.name=this._gnuLongPath,this._gnuLongPath=null;if(this._gnuLongLinkPath)this._header.linkname=this._gnuLongLinkPath,this._gnuLongLinkPath=null;if(this._pax){if(this._pax.path)this._header.name=this._pax.path;if(this._pax.linkpath)this._header.linkname=this._pax.linkpath;if(this._pax.size)this._header.size=parseInt(this._pax.size,10);this._header.pax=this._pax,this._pax=null}}_decodeLongHeader($){switch(this._header.type){case"gnu-long-path":this._gnuLongPath=Cf.decodeLongPath($,this._filenameEncoding);break;case"gnu-long-link-path":this._gnuLongLinkPath=Cf.decodeLongPath($,this._filenameEncoding);break;case"pax-global-header":this._paxGlobal=Cf.decodePax($);break;case"pax-header":this._pax=this._paxGlobal===null?Cf.decodePax($):Object.assign({},this._paxGlobal,Cf.decodePax($));break}}_consumeLongHeader(){this._longHeader=!1,this._missing=w7$(this._header.size);let $=this._buffer.shift(this._header.size);try{this._decodeLongHeader($)}catch(Z){return this._continueWrite(Z),!1}return!0}_consumeStream(){let $=this._buffer.shiftFirst(this._missing);if($===null)return!1;this._missing-=$.byteLength;let Z=this._stream.push($);if(this._missing===0){if(this._stream.push(null),Z)this._stream._detach();return Z&&this._locked===!1}return Z}_createStream(){return new L7$(this,this._header,this._offset)}_update(){while(this._buffer.buffered>0&&!this.destroying){if(this._missing>0){if(this._stream!==null){if(this._consumeStream()===!1)return;continue}if(this._longHeader===!0){if(this._missing>this._buffer.buffered)break;if(this._consumeLongHeader()===!1)return!1;continue}let $=this._buffer.shiftFirst(this._missing);if($!==null)this._missing-=$.byteLength;continue}if(this._buffer.buffered<512)break;if(this._stream!==null||this._consumeHeader()===!1)return}this._continueWrite(null)}_continueWrite($){let Z=this._callback;this._callback=Bd1,Z($)}_write($,Z){this._callback=Z,this._buffer.push($),this._update()}_final($){this._finished=this._missing===0&&this._buffer.buffered===0,$(this._finished?null:Error("Unexpected end of data"))}_predestroy(){this._continueWrite(null)}_destroy($){if(this._stream)this._stream.destroy(O7$(this));$(null)}[Symbol.asyncIterator](){let $=null,Z=null,G=null,X=null,Q=null,Y=this;return this.on("entry",K),this.on("error",(H)=>{$=H}),this.on("close",U),{[Symbol.asyncIterator](){return this},next(){return new Promise(W)},return(){return F(null)},throw(H){return F(H)}};function J(H){if(!Q)return;let N=Q;Q=null,N(H)}function W(H,N){if($)return N($);if(X){H({value:X,done:!1}),X=null;return}if(Z=H,G=N,J(null),Y._finished&&Z)Z({value:void 0,done:!0}),Z=G=null}function K(H,N,O){if(Q=O,N.on("error",Bd1),Z)Z({value:N,done:!1}),Z=G=null;else X=N}function U(){if(J($),!Z)return;if($)G($);else Z({value:void 0,done:!0});Z=G=null}function F(H){return Y.destroy(H),J(H),new Promise((N,O)=>{if(Y.destroyed)return N({value:void 0,done:!0});Y.once("close",function(){if(H)O(H);else N({value:void 0,done:!0})})})}}}z7$.exports=function(Z){return new E7$(Z)};function Bd1(){}function w7$($){return $&=511,$&&512-$}});var A7$=v((Yo5,Dd1)=>{var P7$={S_IFMT:61440,S_IFDIR:16384,S_IFCHR:8192,S_IFBLK:24576,S_IFIFO:4096,S_IFLNK:40960};try{Dd1.exports=C1("fs").constants||P7$}catch{Dd1.exports=P7$}});var V7$=v((Jo5,k7$)=>{var{Readable:He8,Writable:Ne8,getStreamError:R7$}=Hd1(),AV=Vf(),_f=A7$(),rF1=Od1(),I7$=AV.alloc(1024);class T7$ extends Ne8{constructor($,Z,G){super({mapWritable:Be8,eagerOpen:!0});if(this.written=0,this.header=Z,this._callback=G,this._linkname=null,this._isLinkname=Z.type==="symlink"&&!Z.linkname,this._isVoid=Z.type!=="file"&&Z.type!=="contiguous-file",this._finished=!1,this._pack=$,this._openCallback=null,this._pack._stream===null)this._pack._stream=this;else this._pack._pending.push(this)}_open($){if(this._openCallback=$,this._pack._stream===this)this._continueOpen()}_continuePack($){if(this._callback===null)return;let Z=this._callback;this._callback=null,Z($)}_continueOpen(){if(this._pack._stream===null)this._pack._stream=this;let $=this._openCallback;if(this._openCallback=null,$===null)return;if(this._pack.destroying)return $(Error("pack stream destroyed"));if(this._pack._finalized)return $(Error("pack stream is already finalized"));if(this._pack._stream=this,!this._isLinkname)this._pack._encode(this.header);if(this._isVoid)this._finish(),this._continuePack(null);$(null)}_write($,Z){if(this._isLinkname)return this._linkname=this._linkname?AV.concat([this._linkname,$]):$,Z(null);if(this._isVoid){if($.byteLength>0)return Z(Error("No body allowed for this entry"));return Z()}if(this.written+=$.byteLength,this._pack.push($))return Z();this._pack._drain=Z}_finish(){if(this._finished)return;if(this._finished=!0,this._isLinkname)this.header.linkname=this._linkname?AV.toString(this._linkname,"utf-8"):"",this._pack._encode(this.header);M7$(this._pack,this.header.size),this._pack._done(this)}_final($){if(this.written!==this.header.size)return $(Error("Size mismatch"));this._finish(),$(null)}_getError(){return R7$(this)||Error("tar entry destroyed")}_predestroy(){this._pack.destroy(this._getError())}_destroy($){this._pack._done(this),this._continuePack(this._finished?null:this._getError()),$()}}class q7$ extends He8{constructor($){super($);this._drain=Ld1,this._finalized=!1,this._finalizing=!1,this._pending=[],this._stream=null}entry($,Z,G){if(this._finalized||this.destroying)throw Error("already finalized or destroyed");if(typeof Z==="function")G=Z,Z=null;if(!G)G=Ld1;if(!$.size||$.type==="symlink")$.size=0;if(!$.type)$.type=Oe8($.mode);if(!$.mode)$.mode=$.type==="directory"?493:420;if(!$.uid)$.uid=0;if(!$.gid)$.gid=0;if(!$.mtime)$.mtime=new Date;if(typeof Z==="string")Z=AV.from(Z);let X=new T7$(this,$,G);if(AV.isBuffer(Z))return $.size=Z.byteLength,X.write(Z),X.end(),X;if(X._isVoid)return X;return X}finalize(){if(this._stream||this._pending.length>0){this._finalizing=!0;return}if(this._finalized)return;this._finalized=!0,this.push(I7$),this.push(null)}_done($){if($!==this._stream)return;if(this._stream=null,this._finalizing)this.finalize();if(this._pending.length)this._pending.shift()._continueOpen()}_encode($){if(!$.pax){let Z=rF1.encode($);if(Z){this.push(Z);return}}this._encodePax($)}_encodePax($){let Z=rF1.encodePax({name:$.name,linkname:$.linkname,pax:$.pax}),G={name:"PaxHeader",mode:$.mode,uid:$.uid,gid:$.gid,size:Z.byteLength,mtime:$.mtime,type:"pax-header",linkname:$.linkname&&"PaxHeader",uname:$.uname,gname:$.gname,devmajor:$.devmajor,devminor:$.devminor};this.push(rF1.encode(G)),this.push(Z),M7$(this,Z.byteLength),G.size=$.size,G.type=$.type,this.push(rF1.encode(G))}_doDrain(){let $=this._drain;this._drain=Ld1,$()}_predestroy(){let $=R7$(this);if(this._stream)this._stream.destroy($);while(this._pending.length){let Z=this._pending.shift();Z.destroy($),Z._continueOpen()}this._doDrain()}_read($){this._doDrain(),$()}}k7$.exports=function(Z){return new q7$(Z)};function Oe8($){switch($&_f.S_IFMT){case _f.S_IFBLK:return"block-device";case _f.S_IFCHR:return"character-device";case _f.S_IFDIR:return"directory";case _f.S_IFIFO:return"fifo";case _f.S_IFLNK:return"symlink"}return"file"}function Ld1(){}function M7$($,Z){if(Z&=511,Z)$.push(I7$.subarray(0,512-Z))}function Be8($){return AV.isBuffer($)?$:AV.from($)}});var S7$=v((De8)=>{De8.extract=j7$();De8.pack=V7$()});var b7$=v((Ko5,_7$)=>{_7$.exports=C7$;function C7$($,Z){if($&&Z)return C7$($)(Z);if(typeof $!=="function")throw TypeError("need wrapper function");return Object.keys($).forEach(function(X){G[X]=$[X]}),G;function G(){var X=Array(arguments.length);for(var Q=0;Q<X.length;Q++)X[Q]=arguments[Q];var Y=$.apply(this,X),J=X[X.length-1];if(typeof Y==="function"&&Y!==J)Object.keys(J).forEach(function(W){Y[W]=J[W]});return Y}}});var wd1=v((Uo5,Ed1)=>{var v7$=b7$();Ed1.exports=v7$(aF1);Ed1.exports.strict=v7$(f7$);aF1.proto=aF1(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return aF1(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return f7$(this)},configurable:!0})});function aF1($){var Z=function(){if(Z.called)return Z.value;return Z.called=!0,Z.value=$.apply(this,arguments)};return Z.called=!1,Z}function f7$($){var Z=function(){if(Z.called)throw Error(Z.onceError);return Z.called=!0,Z.value=$.apply(this,arguments)},G=$.name||"Function wrapped with `once`";return Z.onceError=G+" shouldn't be called more than once",Z.called=!1,Z}});var g7$=v((Fo5,y7$)=>{var we8=wd1(),ze8=function(){},je8=global.Bare?queueMicrotask:process.nextTick.bind(process),Pe8=function($){return $.setHeader&&typeof $.abort==="function"},Ae8=function($){return $.stdio&&Array.isArray($.stdio)&&$.stdio.length===3},x7$=function($,Z,G){if(typeof Z==="function")return x7$($,null,Z);if(!Z)Z={};G=we8(G||ze8);var{_writableState:X,_readableState:Q}=$,Y=Z.readable||Z.readable!==!1&&$.readable,J=Z.writable||Z.writable!==!1&&$.writable,W=!1,K=function(){if(!$.writable)U()},U=function(){if(J=!1,!Y)G.call($)},F=function(){if(Y=!1,!J)G.call($)},H=function(w){G.call($,w?Error("exited with error code: "+w):null)},N=function(w){G.call($,w)},O=function(){je8(B)},B=function(){if(W)return;if(Y&&!(Q&&(Q.ended&&!Q.destroyed)))return G.call($,Error("premature close"));if(J&&!(X&&(X.ended&&!X.destroyed)))return G.call($,Error("premature close"))},L=function(){$.req.on("finish",U)};if(Pe8($))if($.on("complete",U),$.on("abort",O),$.req)L();else $.on("request",L);else if(J&&!X)$.on("end",K),$.on("close",K);if(Ae8($))$.on("exit",H);if($.on("end",F),$.on("finish",U),Z.error!==!1)$.on("error",N);return $.on("close",O),function(){if(W=!0,$.removeListener("complete",U),$.removeListener("abort",O),$.removeListener("request",L),$.req)$.req.removeListener("finish",U);$.removeListener("end",K),$.removeListener("close",K),$.removeListener("finish",U),$.removeListener("exit",H),$.removeListener("end",F),$.removeListener("error",N),$.removeListener("close",O)}};y7$.exports=x7$});var c7$=v((Ho5,u7$)=>{var Re8=wd1(),Ie8=g7$(),sF1;try{sF1=C1("fs")}catch($){}var Qi=function(){},Te8=typeof process>"u"?!1:/^v?\.0/.test(process.version),eF1=function($){return typeof $==="function"},qe8=function($){if(!Te8)return!1;if(!sF1)return!1;return($ instanceof(sF1.ReadStream||Qi)||$ instanceof(sF1.WriteStream||Qi))&&eF1($.close)},Me8=function($){return $.setHeader&&eF1($.abort)},ke8=function($,Z,G,X){X=Re8(X);var Q=!1;$.on("close",function(){Q=!0}),Ie8($,{readable:Z,writable:G},function(J){if(J)return X(J);Q=!0,X()});var Y=!1;return function(J){if(Q)return;if(Y)return;if(Y=!0,qe8($))return $.close(Qi);if(Me8($))return $.abort();if(eF1($.destroy))return $.destroy();X(J||Error("stream was destroyed"))}},h7$=function($){$()},Ve8=function($,Z){return $.pipe(Z)},Se8=function(){var $=Array.prototype.slice.call(arguments),Z=eF1($[$.length-1]||Qi)&&$.pop()||Qi;if(Array.isArray($[0]))$=$[0];if($.length<2)throw Error("pump requires two streams per minimum");var G,X=$.map(function(Q,Y){var J=Y<$.length-1,W=Y>0;return ke8(Q,J,W,function(K){if(!G)G=K;if(K)X.forEach(h7$);if(J)return;X.forEach(h7$),Z(G)})});return $.reduce(Ve8)};u7$.exports=Se8});var r7$=v((ve8)=>{var l7$=S7$(),d7$=c7$(),m7$=C1("fs"),B9=C1("path"),Yi=(global.Bare?global.Bare.platform:process.platform)==="win32";ve8.pack=function(Z,G){if(!Z)Z=".";if(!G)G={};let X=G.fs||m7$,Q=G.ignore||G.filter||Ji,Y=G.mapStream||t7$,J=be8(X,G.dereference?X.stat:X.lstat,Z,Q,G.entries,G.sort),W=G.strict!==!1,K=typeof G.umask==="number"?~G.umask:~i7$(),U=G.pack||l7$.pack(),F=G.finish||Ji,H=G.map||Ji,N=typeof G.dmode==="number"?G.dmode:0,O=typeof G.fmode==="number"?G.fmode:0;if(G.strip)H=o7$(H,G.strip);if(G.readable)N|=parseInt(555,8),O|=parseInt(444,8);if(G.writable)N|=parseInt(333,8),O|=parseInt(222,8);w();function B(z,j){X.readlink(B9.join(Z,z),function(P,R){if(P)return U.destroy(P);j.linkname=zd1(R),U.entry(j,w)})}function L(z,j,P){if(U.destroyed)return;if(z)return U.destroy(z);if(!j){if(G.finalize!==!1)U.finalize();return F(U)}if(P.isSocket())return w();let R={name:zd1(j),mode:(P.mode|(P.isDirectory()?N:O))&K,mtime:P.mtime,size:P.size,type:"file",uid:P.uid,gid:P.gid};if(P.isDirectory())return R.size=0,R.type="directory",R=H(R)||R,U.entry(R,w);if(P.isSymbolicLink())return R.size=0,R.type="symlink",R=H(R)||R,B(j,R);if(R=H(R)||R,!P.isFile()){if(W)return U.destroy(Error("unsupported type for "+j));return w()}let A=U.entry(R,w),q=Y(X.createReadStream(B9.join(Z,j),{start:0,end:R.size>0?R.size-1:R.size}),R);q.on("error",function(S){A.destroy(S)}),d7$(q,A)}function w(z){if(z)return U.destroy(z);J(L)}return U};function Ce8($){return $.length?$[$.length-1]:null}function _e8(){return!global.Bare&&process.getuid?process.getuid():-1}function i7$(){return!global.Bare&&process.umask?process.umask():0}ve8.extract=function(Z,G){if(!Z)Z=".";if(!G)G={};Z=B9.resolve(Z);let X=G.fs||m7$,Q=G.ignore||G.filter||Ji,Y=G.mapStream||t7$,J=G.chown!==!1&&!Yi&&_e8()===0,W=G.extract||l7$.extract(),K=[],U=new Date,F=typeof G.umask==="number"?~G.umask:~i7$(),H=G.strict!==!1,N=G.validateSymlinks!==!1,O=G.map||Ji,B=typeof G.dmode==="number"?G.dmode:0,L=typeof G.fmode==="number"?G.fmode:0;if(G.strip)O=o7$(O,G.strip);if(G.readable)B|=parseInt(555,8),L|=parseInt(444,8);if(G.writable)B|=parseInt(333,8),L|=parseInt(222,8);if(W.on("entry",w),G.finish)W.on("finish",G.finish);return W;function w(A,q,S){A=O(A)||A,A.name=zd1(A.name);let k=B9.join(Z,B9.join("/",A.name));if(Q(k,A))return q.resume(),S();let C=B9.join(k,".")===B9.join(Z,".")?Z:B9.dirname(k);p7$(X,C,B9.join(Z,"."),function(p,Q1){if(p)return S(p);if(!Q1)return S(Error(C+" is not a valid path"));if(A.type==="directory")return K.push([k,A.mtime]),R(k,{fs:X,own:J,uid:A.uid,gid:A.gid,mode:A.mode},u);R(C,{fs:X,own:J,uid:A.uid,gid:A.gid,mode:493},function(G1){if(G1)return S(G1);switch(A.type){case"file":return d();case"link":return y();case"symlink":return x()}if(H)return S(Error("unsupported type for "+k+" ("+A.type+")"));q.resume(),S()})});function u(p){if(p)return S(p);j(k,A,function(Q1){if(Q1)return S(Q1);if(Yi)return S();P(k,A,S)})}function x(){if(Yi)return S();X.unlink(k,function(){let p=B9.resolve(B9.dirname(k),A.linkname);if(!e(p)&&N)return S(Error(k+" is not a valid symlink"));n7$(X,p,B9.join(Z,"."),function(Q1,G1){if(Q1)return S(Q1);if(!G1&&N)return S(Error(k+" is not a valid symlink"));X.symlink(A.linkname,k,u)})})}function y(){if(Yi)return S();X.unlink(k,function(){let p=B9.join(Z,B9.join("/",A.linkname));X.realpath(p,function(Q1,G1){if(Q1||!e(G1))return S(Error(k+" is not a valid hardlink"));X.link(G1,k,function(H1){if(H1&&H1.code==="EPERM"&&G.hardlinkAsFilesFallback)return q=X.createReadStream(G1),d();u(H1)})})})}function e(p){return p===Z||p.startsWith(Z+B9.sep)}function d(){let p=X.createWriteStream(k),Q1=Y(q,A);p.on("error",function(G1){Q1.destroy(G1)}),d7$(Q1,p,function(G1){if(G1)return S(G1);p.on("close",u)})}}function z(A,q){let S;while((S=Ce8(K))&&A.slice(0,S[0].length)!==S[0])K.pop();if(!S)return q();X.utimes(S[0],U,S[1],q)}function j(A,q,S){if(G.utimes===!1)return S();if(q.type==="directory")return X.utimes(A,U,q.mtime,S);if(q.type==="symlink")return z(A,S);X.utimes(A,U,q.mtime,function(k){if(k)return S(k);z(A,S)})}function P(A,q,S){let k=q.type==="symlink",C=k?X.lchmod:X.chmod,u=k?X.lchown:X.chown;if(!C)return S();let x=(q.mode|(q.type==="directory"?B:L))&F;if(u&&J)u.call(X,A,q.uid,q.gid,y);else y(null);function y(e){if(e)return S(e);if(!C)return S();C.call(X,A,x,S)}}function R(A,q,S){X.stat(A,function(k){if(!k)return S(null);if(k.code!=="ENOENT")return S(k);X.mkdir(A,{mode:q.mode,recursive:!0},function(C,u){if(C)return S(C);P(A,q,S)})})}};function n7$($,Z,G,X){if(Z===G)return X(null,!0);if(!Z.startsWith(G+B9.sep))return X(null,!1);$.lstat(Z,function(Q,Y){if(Q&&Q.code!=="ENOENT"&&Q.code!=="EPERM")return X(Q);if(Q||!Y.isSymbolicLink())return n7$($,B9.join(Z,".."),G,X);X(null,!1)})}function p7$($,Z,G,X){if(Z===G)return X(null,!0);$.lstat(Z,function(Q,Y){if(Q&&Q.code!=="ENOENT"&&Q.code!=="EPERM")return X(Q);if(Q||Y.isDirectory())return p7$($,B9.join(Z,".."),G,X);X(null,!1)})}function Ji(){}function t7$($){return $}function zd1($){return Yi?$.replace(/\\/g,"/").replace(/[:?<>|]/g,"_"):$}function be8($,Z,G,X,Q,Y){if(!Q)Q=["."];let J=Q.slice(0);return function(K){if(!J.length)return K(null);let U=J.shift(),F=B9.join(G,U);Z.call($,F,function(H,N){if(H)return K(Q.indexOf(U)===-1&&H.code==="ENOENT"?null:H);if(!N.isDirectory())return K(null,U,N);$.readdir(F,function(O,B){if(O)return K(O);if(Y)B.sort();for(let L=0;L<B.length;L++)if(!X(B9.join(G,U,B[L])))J.push(B9.join(U,B[L]));K(null,U,N)})})}}function o7$($,Z){return function(G){G.name=G.name.split("/").slice(Z).join("/");let X=G.linkname;if(X&&(G.type==="link"||B9.isAbsolute(X)))G.linkname=X.split("/").slice(Z).join("/");return $(G)}}});var ye8,ge8;var a7$=D(()=>{Xd1();ye8=f(gZ$(),1),ge8=f(r7$(),1)});var $H1=()=>{};var s7$=D(()=>{BF1()});var e7$=D(()=>{cF1();uF1();$H1()});var $G$=()=>{};var ZG$=()=>{};var jd1=D(()=>{zZ$();Zd1();cF1();IZ$();el1();Xd1();TZ$();qZ$();MZ$();kZ$();$d1();VZ$();a7$();$H1();s7$();e7$();$G$();ZG$();$H1()});var S9,r9,RV,Wi;var Ki=D(()=>{S9={CLAIM_API_GROUP:"extensions.agents.x-k8s.io",CLAIM_API_VERSION:"v1alpha1",CLAIM_PLURAL:"sandboxclaims",SANDBOX_API_GROUP:"agents.x-k8s.io",SANDBOX_API_VERSION:"v1alpha1",SANDBOX_PLURAL:"sandboxes",POD_NAME_ANNOTATION:"agents.x-k8s.io/pod-name"};r9=class r9 extends Error{cause;constructor($,Z){super($);if(this.name="SandboxError",this.cause=Z,Z instanceof Error&&Z.stack)this.stack=`${this.stack}
|
|
2199
2199
|
Caused by: ${Z.stack}`}};RV=class RV extends r9{constructor($,Z){super($,Z);this.name="SandboxTimeoutError"}};Wi=class Wi extends r9{constructor($,Z){super($,Z);this.name="SandboxAlreadyExistsError"}}});async function he8($){let Z=$.getCurrentCluster();if(!Z)throw new r9("No active cluster in kubeconfig");let G={};await $.applyToHTTPSOptions(G);let X={},Q=G.headers??{};for(let[Y,J]of Object.entries(Q))if(Array.isArray(J))X[Y]=J.join(", ");else if(J!==void 0)X[Y]=String(J);if(typeof G.auth==="string"&&!X.Authorization)X.Authorization=`Basic ${Buffer.from(G.auth).toString("base64")}`;return{server:Z.server.replace(/\/+$/,""),headers:X,tls:{cert:Pd1(G.cert),key:Pd1(G.key),ca:Pd1(G.ca),rejectUnauthorized:Z.skipTLSVerify?!1:void 0}}}function Pd1($){if($==null)return;if(typeof $==="string")return $;if(Buffer.isBuffer($))return $.toString("utf8");return String($)}async function IV($,Z){let G=await he8($),X={...G.headers,...Z.headers};if(Z.method==="PATCH")X["content-type"]=Z.patchType==="apply"?"application/apply-patch+yaml":Z.patchType==="strategic-merge"?"application/strategic-merge-patch+json":"application/merge-patch+json";else if(Z.body!==void 0&&!("content-type"in X))X["content-type"]="application/json";let Q={method:Z.method,headers:X,body:Z.body===void 0?void 0:JSON.stringify(Z.body),signal:Z.signal,tls:G.tls};return fetch(`${G.server}${Z.path}`,Q)}async function Ad1($){try{return await $.json()}catch{return null}}async function Rd1($,Z){if($.ok)return;let G=await Ad1($),X=G?.message??`${Z} failed: ${$.status} ${$.statusText}`;throw new GG$($.status,G,X)}async function Ui($,Z,G,X,Q="none"){try{let Y=await IV($,Z);if(Y.status===404)return null;if(await Rd1(Y,G),Q==="json")return await Y.json();return null}catch(Y){throw new r9(X,Y)}}async function Fi($,Z,G){let X=`${XG$}/${encodeURIComponent(Z)}/${S9.CLAIM_PLURAL}`,Q;try{Q=await IV($,{method:"POST",path:X,body:G})}catch(U){let F=U instanceof Error?U.message:String(U);throw console.warn(`[agent-sandbox/client] createSandboxClaim ${G.metadata.name} transport error: ${F}`),new r9(`Failed to create SandboxClaim: ${G.metadata.name} (transport error: ${F})`,U)}if(Q.ok)return;let Y=await Ad1(Q),J=Y?.reason?` ${Y.reason}`:"",W=Y?.message??Q.statusText,K=`Failed to create SandboxClaim: ${G.metadata.name} (${Q.status}${J}: ${W})`;if(console.warn(`[agent-sandbox/client] createSandboxClaim ${G.metadata.name} rejected: status=${Q.status} reason=${Y?.reason??"<none>"} message=${W}`),Q.status===409)throw new Wi(K);throw new r9(K)}async function ZH1($,Z,G,X=60000){let Q=Date.now()+X,Y=500,J;while(!0){let W=await WF($,Z,G).catch(()=>{return});if(!W)return;if(J=W,Date.now()>=Q){let K=J.metadata?.finalizers??[],U=J.metadata?.deletionTimestamp??"<unknown>";throw new RV(`SandboxClaim ${G} still terminating after ${X}ms (deletionTimestamp=${U}, finalizers=[${K.join(", ")}])`)}await new Promise((K)=>setTimeout(K,500))}}function Id1($,Z){return`${XG$}/${encodeURIComponent($)}/${S9.CLAIM_PLURAL}/${encodeURIComponent(Z)}`}async function QG$($,Z,G,X){await Ui($,{method:"PATCH",path:Id1(Z,G),patchType:"merge",body:{spec:{lifecycle:{shutdownPolicy:"Delete",shutdownTime:X}}}},"patchSandboxClaimShutdown",`Failed to patch SandboxClaim shutdownTime: ${G}`)}async function EO($,Z,G){await Ui($,{method:"DELETE",path:Id1(Z,G)},"deleteSandboxClaim",`Failed to delete SandboxClaim: ${G}`)}async function WF($,Z,G){return await Ui($,{method:"GET",path:Id1(Z,G)},"getSandboxClaim",`Failed to get SandboxClaim: ${G}`,"json")??void 0}async function YG$($,Z,G,X=60){let Q=Date.now()+X*1000,Y=200;while(Date.now()<Q){let W=(await WF($,Z,G).catch(()=>{return}))?.status?.sandbox?.name;if(W)return W;await new Promise((K)=>setTimeout(K,200))}throw new RV(`SandboxClaim ${G} did not record an adopted Sandbox (status.sandbox.name) within ${X}s`)}function Td1($,Z){return`${ue8}/${encodeURIComponent($)}/${KG$}/${encodeURIComponent(Z)}`}async function GH1($,Z,G){let X=new URLSearchParams({fieldManager:FG$,force:"true"}),Q=`${Td1(Z,G.metadata.name)}?${X}`;try{let Y=await IV($,{method:"PATCH",path:Q,patchType:"apply",body:G});await Rd1(Y,"applyHttpRoute")}catch(Y){throw new r9(`Failed to apply HTTPRoute: ${G.metadata.name}`,Y)}}async function XH1($,Z,G){await Ui($,{method:"DELETE",path:Td1(Z,G)},"deleteHttpRoute",`Failed to delete HTTPRoute: ${G}`)}async function UG$($,Z,G){return await Ui($,{method:"GET",path:Td1(Z,G)},"getHttpRoute",`Failed to get HTTPRoute: ${G}`,"json")??void 0}async function HG$($,Z,G,X){let Q={apiVersion:"v1",kind:"Service",metadata:{name:G},spec:{ports:[{name:X.name,port:X.port,targetPort:X.targetPort,protocol:X.protocol??"TCP"}]}},Y=new URLSearchParams({fieldManager:FG$,force:"true"}),J=`/api/v1/namespaces/${encodeURIComponent(Z)}/services/${encodeURIComponent(G)}?${Y}`;try{let W=await IV($,{method:"PATCH",path:J,patchType:"apply",body:Q});await Rd1(W,"ensureServicePort")}catch(W){throw new r9(`Failed to apply Service ports: ${G}`,W)}}function QH1($,Z,G,X=180){let Q=`/apis/${S9.SANDBOX_API_GROUP}/${S9.SANDBOX_API_VERSION}/namespaces/${encodeURIComponent(Z)}/${S9.SANDBOX_PLURAL}?watch=true&fieldSelector=${encodeURIComponent(`metadata.name=${G}`)}`,{resolve:Y,reject:J,promise:W}=Promise.withResolvers(),K=new AbortController,U=!1,F=setTimeout(()=>{if(U)return;U=!0,K.abort(),J(new RV(`Sandbox did not become ready within ${X} seconds`))},X*1000),H=(N)=>{if(U)return;U=!0,clearTimeout(F),K.abort(),N()};return(async()=>{let N;try{N=await IV($,{method:"GET",path:Q,signal:K.signal,headers:{accept:"application/json"}})}catch(O){H(()=>J(new r9("Failed to start watch for sandbox readiness",O)));return}if(!N.ok||!N.body){let O=await Ad1(N).catch(()=>null);H(()=>J(new r9(`Watch handshake failed (${N.status}): ${O?.message??N.statusText}`)));return}try{for await(let O of qd1(N.body)){if(U)return;if(O.type==="ERROR"){let j=O.object;H(()=>J(new r9(`Watch stream error while waiting for sandbox: ${j.message??"unknown"}`)));return}if(O.type!=="ADDED"&&O.type!=="MODIFIED")continue;let B=O.object;if(!B.status?.conditions?.find((j)=>j.type==="Ready"&&j.status==="True"))continue;let w=B.metadata?.name;if(!w){H(()=>J(new r9("Sandbox metadata or name is missing")));return}let z=B.metadata?.annotations?.[S9.POD_NAME_ANNOTATION]??w;H(()=>Y({sandboxName:w,podName:z}));return}H(()=>J(new r9("Watch stream closed before sandbox became ready")))}catch(O){if(U)return;if(O instanceof Error&&(O.name==="AbortError"||K.signal.aborted))return;H(()=>J(new r9("Watch stream error while waiting for sandbox",O)))}})(),W}async function*qd1($){let Z=$.getReader(),G=new TextDecoder,X="";try{while(!0){let{value:Y,done:J}=await Z.read();if(J)break;X+=G.decode(Y,{stream:!0});let W;while((W=X.indexOf(`
|
|
2200
|
-
`))>=0){let K=X.slice(0,W).trim();if(X=X.slice(W+1),!K)continue;yield JSON.parse(K)}}let Q=X.trim();if(Q)yield JSON.parse(Q)}finally{Z.releaseLock()}}var GG$,XG$,JG$="gateway.networking.k8s.io",WG$="v1",KG$="httproutes",ue8,Hi,FG$="mesh-sandbox-runner";var YH1=D(()=>{Ki();GG$=class GG$ extends Error{status;body;constructor($,Z,G){super(G);this.status=$;this.body=Z;this.name="KubeHttpError"}};XG$=`/apis/${S9.CLAIM_API_GROUP}/${S9.CLAIM_API_VERSION}/namespaces`;ue8=`/apis/${JG$}/${WG$}/namespaces`;Hi={API_GROUP:JG$,API_VERSION:WG$,PLURAL:KG$}});var JH1=D(()=>{A7();_61()});async function KH1($){try{let Z=await fetch(`${$}/health`,{signal:AbortSignal.timeout(ce8)});if(!Z.ok)return null;let G=await Z.json();if(typeof G==="object"&&G!==null&&typeof G.bootId==="string"&&typeof G.ready==="boolean"&&G.setup&&typeof G.setup.running==="boolean"&&typeof G.setup.done==="boolean")return G;return null}catch{return null}}async function DG$($){for(let Z=0;Z<NG$;Z++){if(await KH1($)!==null)return;let G=(Math.random()*2-1)*le8;await j6(OG$+G)}throw Error(`sandbox daemon at ${$} did not respond on /health within ${NG$*OG$/1000}s`)}async function Ni($,Z,G,X,Q){return de8($,Z,"POST",G,X,Q)}async function de8($,Z,G,X,Q,Y){let J={...X};if(Q&&Q.rotateToken!==void 0)J.auth=Q;let W=await fetch(`${$}/_sandbox/config`,{method:G,headers:{"Content-Type":"application/json",Authorization:`Bearer ${Z}`},body:JSON.stringify(J),signal:AbortSignal.timeout(Y?.timeoutMs??BG$)}),K=await W.text();if(!W.ok)throw new WH1(W.status,K);return JSON.parse(K)}async function LG$($,Z,G){let X=await fetch(`${$}/_sandbox/orgfs-config`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${Z}`},body:G,signal:AbortSignal.timeout(BG$)}),Q=await X.text();if(!X.ok)throw Error(`sandbox daemon /_sandbox/orgfs-config returned ${X.status}: ${Q}`);return JSON.parse(Q)}async function Oi($,Z,G,X){let Q=new Headers(X.headers);for(let W of me8)Q.delete(W);Q.set("authorization",`Bearer ${Z}`);let Y=X.method!=="GET"&&X.method!=="HEAD",J=`${$}${G.startsWith("/")?G:`/${G}`}`;return fetch(J,{method:X.method,headers:Q,body:Y?X.body:void 0,redirect:"manual",signal:X.signal,duplex:Y?"half":void 0})}var WH1,ce8=500,BG$=30000,NG$=25,OG$=200,le8=50,me8;var EG$=D(()=>{JH1();WH1=class WH1 extends Error{status;constructor($,Z){super(`sandbox daemon /_sandbox/config returned ${$}: ${Z}`);this.status=$;this.name="ConfigRequestError"}};me8=["cookie","host","connection","keep-alive","proxy-authenticate","proxy-authorization","te","trailer","transfer-encoding","accept-encoding","content-length"]});async function*jG$($){let Z=$.now??(()=>Date.now()),G=Z(),X=$.schedulingTimeoutMs??pe8,Q={pod:{},sandbox:{},events:{hasPulling:!1,hasPulled:!1},startedAt:G},Y=[],J=null,W=!1,K=(j)=>{if(W)return;if(J){let P=J;J=null,P(j)}else Y.push(j)},U=()=>{if(Y.length>0)return Promise.resolve(Y.shift());if(W)return Promise.resolve(null);return new Promise((j)=>{J=j})},F=()=>{if(W)return;if(W=!0,J){let j=J;J=null,j(null)}},H=new AbortController,N=()=>{H.abort(),F()};if($.signal)if($.signal.aborted)H.abort(),F();else $.signal.addEventListener("abort",N,{once:!0});let O=Math.max(0,X-(Z()-G)),B=setTimeout(()=>K("tick"),O+100),L,w=new Promise((j)=>{L=j}),z=Promise.allSettled([te8($.kc,$.namespace,$.claimName,H.signal,Q,K,Z,L),re8($.kc,$.namespace,$.claimName,H.signal,Q,K),ae8($.kc,$.namespace,$.claimName,w,H.signal,Q,K,Z)]);try{let j=null,P=-1,R=wG$(Q,X,Z);if(j=kd1(R),!Md1(R))P=zG$(R);if(yield R,Md1(R))return;while(!W){if(await U()===null)break;let q=wG$(Q,X,Z);if(Md1(q)){let C=kd1(q);if(C!==j)j=C,yield q;return}let S=zG$(q);if(S<P)continue;let k=kd1(q);if(k!==j)j=k,P=S,yield q}}finally{if(clearTimeout(B),H.abort(),$.signal)$.signal.removeEventListener("abort",N);F(),await z.catch(()=>{})}}function wG$($,Z,G){let{pod:X,sandbox:Q,events:Y,startedAt:J}=$;if(Q.ready)return{kind:"ready"};let W=X.containerWaitingReason;if(W==="ImagePullBackOff"||W==="ErrImagePull")return{kind:"failed",reason:"image-pull-backoff",message:"Sandbox image failed to download. The cluster may be missing pull credentials or the image tag may not exist."};if(W==="CrashLoopBackOff")return{kind:"failed",reason:"crash-loop-backoff",message:"Sandbox crashed during startup and is now in CrashLoopBackOff. Check pod logs."};if(!X.scheduled&&Y.lastFailedSchedulingAt!==void 0&&G()-J>Z)return{kind:"failed",reason:"scheduling-timeout",message:Y.failedSchedulingMessage??`Pod could not be scheduled within ${Math.round(Z/1000)}s.`};if(X.containerRunning&&!X.containerReady)return{kind:"warming-daemon",since:J};if(Y.hasPulling&&!Y.hasPulled)return{kind:"pulling-image",since:J};if(W==="ContainerCreating"||W==="PodInitializing"||X.scheduled&&!X.containerRunning)return{kind:"starting-container",since:J};if(X.scheduledFalseReason==="Unschedulable"||Y.lastFailedSchedulingAt!==void 0&&!X.scheduled)return{kind:"waiting-for-capacity",since:J,message:Y.failedSchedulingMessage??X.scheduledFalseMessage,nodeClaim:Y.nominatedNodeClaim};return{kind:"claiming",since:J}}function Md1($){return $.kind==="ready"||$.kind==="failed"}function zG$($){switch($.kind){case"claiming":return 0;case"waiting-for-capacity":return 1;case"pulling-image":return 2;case"starting-container":return 3;case"warming-daemon":return 4;case"ready":case"failed":return 99}}function kd1($){switch($.kind){case"claiming":case"pulling-image":case"starting-container":case"warming-daemon":return $.kind;case"waiting-for-capacity":return`waiting-for-capacity:${$.message??""}:${$.nodeClaim??""}`;case"ready":return"ready";case"failed":return`failed:${$.reason}:${$.message}`}}async function te8($,Z,G,X,Q,Y,J,W){let K=`/api/v1/namespaces/${encodeURIComponent(Z)}/pods?watch=true&labelSelector=${encodeURIComponent(`${ie8}=${G}`)}`;return UH1({kc:$,path:K,signal:X,label:`pod/${G}`,onEvent:(U)=>{if(U.type!=="ADDED"&&U.type!=="MODIFIED")return;let F=U.object;if(F.metadata?.name)W(F.metadata.name);oe8(F,Q,J),Y("pod")}})}function oe8($,Z,G){let Q=($.status?.conditions??[]).find((J)=>J.type==="PodScheduled");if(Q?.status==="True")Z.pod.scheduled=!0,Z.pod.scheduledFalseReason=void 0,Z.pod.scheduledFalseMessage=void 0;else if(Q?.status==="False")Z.pod.scheduled=!1,Z.pod.scheduledFalseReason=Q.reason,Z.pod.scheduledFalseMessage=Q.message;let Y=($.status?.containerStatuses??[]).find((J)=>J.name===ne8);if(Y)Z.pod.containerWaitingReason=Y.state?.waiting?.reason,Z.pod.containerRunning=!!Y.state?.running,Z.pod.containerReady=Y.ready===!0}async function re8($,Z,G,X,Q,Y){let J=`/apis/${S9.CLAIM_API_GROUP}/${S9.CLAIM_API_VERSION}/namespaces/${encodeURIComponent(Z)}/${S9.CLAIM_PLURAL}?watch=true&fieldSelector=${encodeURIComponent(`metadata.name=${G}`)}`;return UH1({kc:$,path:J,signal:X,label:`sandboxclaim/${G}`,onEvent:(W)=>{if(W.type!=="ADDED"&&W.type!=="MODIFIED")return;let U=W.object.status?.conditions?.find((F)=>F.type==="Ready");if(!U)return;if(U.status==="True")Q.sandbox.ready=!0,Q.sandbox.notReadyReason=void 0,Q.sandbox.notReadyMessage=void 0;else Q.sandbox.ready=!1,Q.sandbox.notReadyReason=U.reason,Q.sandbox.notReadyMessage=U.message;Y("sandbox")}})}async function ae8($,Z,G,X,Q,Y,J,W){let K=await Promise.race([X,new Promise((F)=>{if(Q.aborted){F(G);return}Q.addEventListener("abort",()=>F(G),{once:!0})})]);if(Q.aborted)return;let U=`/api/v1/namespaces/${encodeURIComponent(Z)}/events?watch=true&fieldSelector=${encodeURIComponent(`involvedObject.name=${K},involvedObject.kind=Pod`)}`;return UH1({kc:$,path:U,signal:Q,label:`events/${G}`,onEvent:(F)=>{if(F.type!=="ADDED"&&F.type!=="MODIFIED")return;let H=F.object,N=H.reason;if(!N)return;switch(N){case"Pulling":Y.events.hasPulling=!0;break;case"Pulled":Y.events.hasPulling=!0,Y.events.hasPulled=!0;break;case"FailedScheduling":Y.events.lastFailedSchedulingAt=W(),Y.events.failedSchedulingMessage=H.message;break;case"Nominated":{let O=H.message?.match(/nodeclaim\/([\w-]+)/);if(O)Y.events.nominatedNodeClaim=O[1];break}default:return}J("event")}})}async function PG$($){let{kc:Z,namespace:G,labelSelector:X,signal:Q,onDelete:Y}=$,J=`/apis/${S9.CLAIM_API_GROUP}/${S9.CLAIM_API_VERSION}/namespaces/${encodeURIComponent(G)}/${S9.CLAIM_PLURAL}?watch=true&labelSelector=${encodeURIComponent(X)}`;return UH1({kc:Z,path:J,signal:Q,label:"sandboxclaim-reaper",onEvent:(W)=>{if(W.type!=="DELETED")return;let K=W.object.metadata?.name;if(K)Y(K)}})}async function UH1($){let{kc:Z,path:G,signal:X,label:Q,onEvent:Y}=$,J=0;while(!X.aborted){try{let K=await IV(Z,{method:"GET",path:G,signal:X,headers:{accept:"application/json"}});if(!K.ok||!K.body){try{await K.body?.cancel()}catch{}throw Error(`watch handshake failed: ${K.status} ${K.statusText}`)}J=0;for await(let U of qd1(K.body)){if(X.aborted)return;try{Y(U)}catch(F){console.warn(`[lifecycle-watcher] ${Q} onEvent threw: ${F instanceof Error?F.message:String(F)}`)}}}catch(K){if(X.aborted)return;let U=K instanceof Error?K.message:String(K);console.warn(`[lifecycle-watcher] ${Q} watch ended: ${U}`)}if(X.aborted)return;let W=gZ(5000,250,J,2,0);J+=1,await j6(W,{signal:X}).catch(()=>{})}}var ie8="studio.decocms.com/sandbox-handle",ne8="sandbox",pe8=300000;var AG$=D(()=>{A7();Ki();YH1()});import{createHash as se8,randomBytes as ee8,randomUUID as $14}from"crypto";import*as qG$ from"net";import{PassThrough as Z14}from"stream";function G14($){if($ instanceof Error)return $.message;if($&&typeof $==="object"){let Z=$;if(Z.error instanceof Error)return Z.error.message;if(typeof Z.message==="string"&&Z.message)return Z.message}return String($)}class vd1{kind=kX;records=new Map;inflight=new V61;stateStore;previewUrlPattern;kubeConfig;portForward;namespace;sandboxTemplateName;envName;tokenGenerator;idleTtlMs;metrics;previewGateway;sentinelToken;closed=!1;claimWatchAbort=new AbortController;constructor($={}){this.stateStore=$.stateStore??null,this.previewUrlPattern=$.previewUrlPattern??null,this.kubeConfig=$.kubeConfig??N14(),this.portForward=new Qd1(this.kubeConfig),this.namespace=$.namespace??X14,this.sandboxTemplateName=$.sandboxTemplateName??Q14,this.envName=w14($.envName),this.tokenGenerator=$.tokenGenerator??(()=>ee8(J14).toString("hex")),this.idleTtlMs=$.idleTtlMs??K14,this.metrics=$.meter?H14($.meter):null,this.previewGateway=$.previewGateway&&$.previewUrlPattern?{...$.previewGateway}:null;let Z=$.sentinelToken?.trim()??"";this.sentinelToken=Z.length>0?Z:null,this.startClaimReaper()}startClaimReaper(){let $=["app.kubernetes.io/managed-by=studio","app.kubernetes.io/name=studio-sandbox",...this.envName?[`${hY.env}=${this.envName}`]:[]].join(",");PG$({kc:this.kubeConfig,namespace:this.namespace,labelSelector:$,signal:this.claimWatchAbort.signal,onDelete:(Z)=>this.invalidateRecord(Z)})}async ensure($,Z={}){let G=QO($,Z.branch??Z.repo?.branch??null);return this.inflight.run(G,()=>S61(this.stateStore,$,kX,(X)=>this.ensureLocked($,G,Z,X)))}async delete($){let Z=await this.getRecord($);if(this.records.delete($),Z)this.closeForwarder(Z.daemonForward),this.metrics?.active.add(-1,_d1(Z.tenant));if(await this.deleteHttpRouteIfManaged($).catch((G)=>{console.warn(`[${E7}] HTTPRoute delete failed for ${$}: ${G instanceof Error?G.message:String(G)}`)}),await EO(this.kubeConfig,this.namespace,$),this.stateStore)if(Z)await this.stateStore.delete(Z.id,kX);else await this.stateStore.deleteByHandle(kX,$)}async alive($){return await WF(this.kubeConfig,this.namespace,$)!==void 0}watchClaimLifecycle($,Z){return jG$({kc:this.kubeConfig,namespace:this.namespace,claimName:$,signal:Z})}async getPreviewUrl($){let Z=await this.getRecord($);if(!Z)return null;return this.composePreviewUrl(Z)}async proxyDaemonRequest($,Z,G){let X=await this.getRecord($);if(!X&&this.previewUrlPattern&&this.stateStore){let K=await this.stateStore.getByHandle(kX,$),U=K?.state,F=U?.token;if(K&&F){let N=`http://${U?.adoptedSandboxName??$}.${this.namespace}.svc.cluster.local:${wO}`;try{let O=await Oi(N,F,Z,G);if(O.status!==404)return O;try{await O.body?.cancel()}catch{}}catch{}}}if(!X)X=await this.resurrectByHandle($);if(!X)return new Response(JSON.stringify({error:"sandbox not found"}),{status:404,headers:{"content-type":"application/json"}});let Q=X,Y=performance.now(),J=0,W=!(G.body instanceof ReadableStream);try{let K=await Oi(X.daemonUrl,X.token,Z,G);if(K.status===401&&W){this.invalidateRecord($);let U=await this.getRecord($).catch(()=>null)??await this.resurrectByHandle($).catch(()=>null);if(U)Q=U,K=await Oi(U.daemonUrl,U.token,Z,G)}return J=K.status,K}catch(K){if(!W)throw K;this.invalidateRecord($);let U=await this.resurrectByHandle($)??await this.getRecord($).catch(()=>null);if(!U)throw K;Q=U;let F=await Oi(U.daemonUrl,U.token,Z,G);return J=F.status,F}finally{this.recordProxyDuration("daemon",J,Q,performance.now()-Y)}}async adoptLiveClaim($,Z){if(this.records.has(Z))return!0;let G=await WF(this.kubeConfig,this.namespace,Z).catch(()=>{return});if(!G||G.metadata?.deletionTimestamp)return!1;return await this.inflight.run(Z,async()=>{let Q=this.records.get(Z);if(Q)return this.toSandbox(Q);let Y=await this.adopt($,Z,G);if(!Y)throw Error(`cannot adopt live claim ${Z}`);return S61(this.stateStore,$,kX,(J)=>this.finish(Y,J,!0,!0,"adopt"))}).catch(()=>null)!=null}async resolvePreviewUpstreamUrl($){if(this.previewUrlPattern)return`http://${await this.resolveServiceNameForHandle($)}.${this.namespace}.svc.cluster.local:${wO}`;let Z=await this.getRecord($);if(Z)return Z.daemonUrl;let G=await this.resurrectByHandle($);return G?G.daemonUrl:null}async resolveServiceNameForHandle($){let Z=this.records.get($);if(Z)return Z.adoptedSandboxName;if(this.stateStore){let X=(await this.stateStore.getByHandle(kX,$).catch(()=>null))?.state?.adoptedSandboxName;if(X)return X}return $}async proxyPreviewRequest($,Z){let G=performance.now(),X=this.records.get($)??null,Q=0;try{let Y=await this.resolvePreviewUpstreamUrl($);if(!Y){Q=404;let B=Sd1(404,{error:"sandbox not found"});return B.headers.set(qV,"1"),B}let J=new URL(Z.url);if((J.pathname==="/_sandbox"||J.pathname.startsWith("/_sandbox/")||J.pathname==="/_decopilot_vm"||J.pathname.startsWith("/_decopilot_vm/"))&&Z.method!=="GET")return Q=404,Sd1(404,{error:"not found"});let K=(B)=>`${B}${J.pathname}${J.search}`,U=new Headers(Z.headers);for(let B of U14)U.delete(B);let F=Z.method!=="GET"&&Z.method!=="HEAD",H={method:Z.method,headers:U,body:F?Z.body:void 0,redirect:"manual",signal:Z.signal,duplex:F?"half":void 0},N;try{N=await fetch(K(Y),H)}catch(B){let L=`${Y}${J.pathname}`;if(console.warn(`[${E7}] preview fetch to ${L} failed: ${B instanceof Error?B.message:String(B)}`),Z.method==="GET"||Z.method==="HEAD"){if(this.invalidateRecord($),await this.resurrectByHandle($).catch(()=>null)){let j=await this.resolvePreviewUpstreamUrl($);if(j)try{N=await fetch(K(j),H);let P=new Headers;for(let[R,A]of N.headers.entries())if(!RG$.includes(R.toLowerCase()))P.set(R,A);return Q=N.status,new Response(N.body,{status:N.status,statusText:N.statusText,headers:P})}catch(P){console.warn(`[${E7}] preview fetch retry to ${L} failed: ${P instanceof Error?P.message:String(P)}`)}}}else this.invalidateRecord($);Q=502;let w=Sd1(502,{error:"sandbox daemon unreachable"});return w.headers.set(qV,"1"),w}let O=new Headers;for(let[B,L]of N.headers.entries())if(!RG$.includes(B.toLowerCase()))O.set(B,L);return Q=N.status,new Response(N.body,{status:N.status,statusText:N.statusText,headers:O})}finally{this.recordProxyDuration("preview",Q,X,performance.now()-G,$)}}async ensureLocked($,Z,G,X){if(G.image)console.warn(`[${E7}] opts.image ignored (template ${this.sandboxTemplateName} pins image): got ${G.image}`);if(X){let J=await X.get($,kX);if(J){let W=await this.rehydrate($,Z,J);if(W)return this.finish(W,X,!1,!0,"resume");await X.delete($,kX)}}let Q=await WF(this.kubeConfig,this.namespace,Z).catch(()=>{return});if(Q)if(Q.metadata?.deletionTimestamp)await ZH1(this.kubeConfig,this.namespace,Z).catch((J)=>{console.warn(`[${E7}] wait for terminating claim ${Z} failed: ${J instanceof Error?J.message:String(J)}`)});else{let J=await this.adopt($,Z,Q).catch((W)=>{return console.warn(`[${E7}] adopt ${Z} failed, recreating: ${W instanceof Error?W.message:String(W)}`),null});if(J)return this.finish(J,X,!0,!0,"adopt");await EO(this.kubeConfig,this.namespace,Z).catch(()=>{}),await ZH1(this.kubeConfig,this.namespace,Z).catch((W)=>{console.warn(`[${E7}] wait for deleted claim ${Z} failed: ${W instanceof Error?W.message:String(W)}`)})}let Y=await this.provision($,Z,G);return this.finish(Y,X,!0,!1,"fresh")}async finish($,Z,G,X,Q){let Y=this.records.get($.handle),J=Y!==void 0;if(Y&&Y.daemonForward!==$.daemonForward)this.closeForwarder(Y.daemonForward);if(this.records.set($.handle,$),G)await this.persist(Z,$);if(X)await QG$(this.kubeConfig,this.namespace,$.handle,this.computeShutdownTime()).catch((W)=>console.warn(`[${E7}] TTL refresh failed for ${$.handle}: ${W instanceof Error?W.message:String(W)}`));if(this.metrics){let W=_d1($.tenant);if(this.metrics.ensureOutcome.add(1,{...W,outcome:Q}),!J)this.metrics.active.add(1,W)}return this.toSandbox($)}buildEnvMap($,Z){let G={},X=[];for(let[Q,Y]of Object.entries($.env??{}))if(W14.has(Q))X.push(Q);else G[Q]=Y;if(X.length>0)console.warn(`[${E7}] opts.env keys overlap reserved bootstrap names and were dropped: ${X.join(",")}`);return{...G,DAEMON_TOKEN:Z.token,DAEMON_BOOT_ID:Z.daemonBootId,APP_ROOT:Z.workdir,PROXY_PORT:String(wO)}}buildClaim($,Z,G){let X=this.sentinelToken!==null,Q=X?[]:Object.entries(this.buildEnvMap(Z,G)).sort(([W],[K])=>W<K?-1:W>K?1:0).map(([W,K])=>({name:W,value:K})),Y=P14(Z),J=Object.keys(Y).length>0;return{apiVersion:`${S9.CLAIM_API_GROUP}/${S9.CLAIM_API_VERSION}`,kind:"SandboxClaim",metadata:{name:$,namespace:this.namespace,labels:{"app.kubernetes.io/name":"studio-sandbox","app.kubernetes.io/managed-by":"studio",...this.envName?{[hY.env]:this.envName}:{},...Cd1(Z.tenant)},...J?{annotations:Y}:{}},spec:{sandboxTemplateRef:{name:this.sandboxTemplateName},additionalPodMetadata:{labels:Cd1(Z.tenant,{[hY.role]:"claimed",[hY.sandboxHandle]:$,...this.envName?{[hY.env]:this.envName}:{}}),...J?{annotations:Y}:{}},env:Q,warmpool:X?"default":"none",lifecycle:{shutdownPolicy:"Delete",shutdownTime:this.computeShutdownTime()}}}}async provision($,Z,G){let X=this.tokenGenerator(),Q=$14(),Y=Vd1,J=this.buildClaim(Z,G,{token:X,daemonBootId:Q,workdir:Y});try{await Fi(this.kubeConfig,this.namespace,J)}catch(N){if(N instanceof Wi)await ZH1(this.kubeConfig,this.namespace,Z),await Fi(this.kubeConfig,this.namespace,J);else throw N}let W;try{W=await YG$(this.kubeConfig,this.namespace,Z),await QH1(this.kubeConfig,this.namespace,W)}catch(N){throw await EO(this.kubeConfig,this.namespace,Z).catch(()=>{}),N}try{await this.ensureServicePortForAdoptedSandbox(W),await this.ensureHttpRouteForHandle(Z,W,G.tenant??null)}catch(N){throw await EO(this.kubeConfig,this.namespace,Z).catch(()=>{}),N}let K=await this.openForwarder(W,wO,Z),U=`http://127.0.0.1:${K.localPort}`,F=this.workloadConfigPayload(G),H=Q;try{if(await DG$(U),this.sentinelToken!==null){let N=await KH1(U);if(N)H=N.bootId;await Ni(U,this.sentinelToken,F??{},{rotateToken:X})}else if(F)await Ni(U,X,F);if(G.orgFsConfigJson)await LG$(U,X,G.orgFsConfigJson).catch((N)=>console.warn("[org-fs] sidecar config relay failed",N))}catch(N){throw this.closeForwarder(K),await this.deleteHttpRouteIfManaged(Z).catch(()=>{}),await EO(this.kubeConfig,this.namespace,Z).catch(()=>{}),N}return{id:$,handle:Z,adoptedSandboxName:W,token:X,workdir:Y,daemonUrl:U,daemonForward:K,workload:G.workload??null,daemonBootId:H,tenant:G.tenant??null,ensureOpts:R14(G)}}workloadConfigPayload($){return Ic1({runtime:$?.workload?.runtime??"node",packageManager:$?.workload?.packageManager?{name:$.workload.packageManager,...$.workload.packageManagerPath?{path:$.workload.packageManagerPath}:{}}:null,repo:$?.repo??null,port:$?.workload?.devPort??Y14,tenant:$?.tenant??void 0})}async rebootstrapDaemon($,Z,G){if(this.sentinelToken===null)return!1;let X=this.workloadConfigPayload(G)??{};try{return await Ni($,this.sentinelToken,X,{rotateToken:Z}),!0}catch(Q){if(Q instanceof WH1&&Q.status===401)try{return await Ni($,Z,X,{rotateToken:Z}),!0}catch(Y){return console.warn(`[${E7}] re-bootstrap retry with claim token failed: ${Y instanceof Error?Y.message:String(Y)}`),!1}return console.warn(`[${E7}] re-bootstrap failed: ${Q instanceof Error?Q.message:String(Q)}`),!1}}async ensureServicePortForAdoptedSandbox($){if(!this.previewGateway||!this.previewUrlPattern)return;await HG$(this.kubeConfig,this.namespace,$,{name:"daemon",port:wO,targetPort:wO})}async ensureHttpRouteForHandle($,Z,G){if(!this.previewGateway||!this.previewUrlPattern)return;let X=I14(this.previewUrlPattern,$);if(!X)throw new r9(`Unable to derive preview hostname for ${$} from pattern: ${this.previewUrlPattern}`);let Q={apiVersion:`${Hi.API_GROUP}/${Hi.API_VERSION}`,kind:"HTTPRoute",metadata:{name:$,namespace:this.namespace,labels:Cd1(G??void 0,{[hY.role]:"claimed",[hY.sandboxHandle]:$,"app.kubernetes.io/name":"studio-sandbox","app.kubernetes.io/managed-by":"studio",...this.envName?{[hY.env]:this.envName}:{}})},spec:{parentRefs:[{kind:"Gateway",group:"gateway.networking.k8s.io",name:this.previewGateway.name,namespace:this.previewGateway.namespace}],hostnames:[X],rules:[{backendRefs:[{group:"",kind:"Service",name:Z,port:wO}]}]}};await GH1(this.kubeConfig,this.namespace,Q)}async deleteHttpRouteIfManaged($){if(!this.previewGateway)return;await XH1(this.kubeConfig,this.namespace,$)}async rehydrate($,Z,G){let X=G.state;if(!X.adoptedSandboxName&&!X.podName||!X.token)return null;let Q=await WF(this.kubeConfig,this.namespace,Z).catch(()=>{return});if(!Q||!IG$(Q))return null;let Y=Q.status?.sandbox?.name??X.adoptedSandboxName??X.podName??Z,J=await this.openAndProbeDaemon(Y,Z);if(!J)return null;if(X.daemonBootId&&X.daemonBootId!==J.bootId){if(this.sentinelToken!==null){if(!await this.rebootstrapDaemon(J.daemonUrl,X.token,X.ensureOpts??null))return this.closeForwarder(J.daemonForward),null}else console.warn(`[${E7}] daemon restart detected (handle=${Z}): stored bootId=${X.daemonBootId} live bootId=${J.bootId}`);await this.stateStore?.put($,kX,{handle:Z,state:{...X,daemonBootId:J.bootId}}).catch((W)=>console.warn(`[${E7}] bootId persist failed for ${Z}: ${W instanceof Error?W.message:String(W)}`))}return{id:$,handle:Z,adoptedSandboxName:Y,token:X.token,workdir:X.workdir??Vd1,daemonUrl:J.daemonUrl,daemonForward:J.daemonForward,workload:X.workload??null,daemonBootId:J.bootId,tenant:X.tenant??null,ensureOpts:X.ensureOpts??null}}async adopt($,Z,G){if(!IG$(G))return null;let X=G.status?.sandbox?.name??Z;if(this.sentinelToken!==null)return null;let Q=O14(G);if(!Q)return null;let Y=await this.openAndProbeDaemon(X,Z);if(!Y)return null;let J=A14(G);if(this.previewGateway)await this.ensureServicePortForAdoptedSandbox(X).catch((W)=>{console.warn(`[${E7}] Service port backfill failed for ${Z}: ${W instanceof Error?W.message:String(W)}`)}),await this.ensureHttpRouteForHandle(Z,X,J).catch((W)=>{console.warn(`[${E7}] HTTPRoute backfill failed for ${Z}: ${W instanceof Error?W.message:String(W)}`)});return{id:$,handle:Z,adoptedSandboxName:X,token:Q,workdir:Vd1,daemonUrl:Y.daemonUrl,daemonForward:Y.daemonForward,workload:null,daemonBootId:Y.bootId,tenant:J,ensureOpts:null}}async openAndProbeDaemon($,Z){let G=await this.openForwarder($,wO,Z).catch(()=>null);if(!G)return null;let X=`http://127.0.0.1:${G.localPort}`,Q=await KH1(X);if(!Q)return this.closeForwarder(G),null;return{daemonForward:G,daemonUrl:X,bootId:Q.bootId}}async getRecord($){let Z=this.records.get($);if(Z)return Z;if(!this.stateStore)return null;let G=await this.stateStore.getByHandle(kX,$);if(!G)return null;let X=await this.rehydrate(G.id,$,G);if(X)this.records.set($,X);return X}async resurrectByHandle($){if(!this.stateStore)return null;let Z=await this.stateStore.getByHandle(kX,$);if(!Z)return null;let G=Z.state.ensureOpts;if(!G)return null;return await this.ensure(Z.id,G),this.records.get($)??null}invalidateRecord($){let Z=this.records.get($);if(!Z)return;this.records.delete($),this.closeForwarder(Z.daemonForward)}recordProxyDuration($,Z,G,X,Q){if(!this.metrics)return;this.metrics.proxyDurationMs.record(X,{..._d1(G?.tenant??null),source:$,sandbox_handle:G?.handle??Q??"",status_code:Z||0})}composePreviewUrl($){if(this.previewUrlPattern)return C61(this.previewUrlPattern,$.handle);return`http://127.0.0.1:${$.daemonForward.localPort}/`}toSandbox($){return{handle:$.handle,workdir:$.workdir,previewUrl:this.composePreviewUrl($)}}async persist($,Z){if(!$)return;let G={adoptedSandboxName:Z.adoptedSandboxName,token:Z.token,workdir:Z.workdir,workload:Z.workload,daemonBootId:Z.daemonBootId,tenant:Z.tenant,...Z.ensureOpts?{ensureOpts:Z.ensureOpts}:{}};await $.put(Z.id,kX,{handle:Z.handle,state:G})}computeShutdownTime(){return new Date(Date.now()+this.idleTtlMs).toISOString()}openForwarder($,Z,G=$){let X=B14(G,Z);return new Promise((Q,Y)=>{let J=(W,K)=>{let U=qG$.createServer((F)=>this.handleForwardedConnection(F,$,Z,G));U.once("error",(F)=>{if(F.code==="EADDRINUSE"&&K<F14){try{U.close()}catch{}let H=bd1+(W-bd1+1)%MG$;J(H,K+1);return}Y(F)}),U.listen(W,"127.0.0.1",()=>{let F=U.address();if(!F||typeof F==="string"){U.close(),Y(Error("port-forward listener failed to bind"));return}Q({server:U,localPort:F.port})})};J(X,0)})}handleForwardedConnection($,Z,G,X){let Q=new Z14,Y=null,J=!1,W=()=>{if(J)return;if(J=!0,Q.destroy(),Y)try{Y.close()}catch{}if(!$.destroyed)$.destroy()};$.pipe(Q),$.on("error",W),$.on("close",W),this.portForward.portForward(this.namespace,Z,[G],$,null,Q).then((K)=>{let U=typeof K==="function"?K():K;if(!U){W();return}if(Y=U,Y.on("close",W),Y.on("error",()=>{this.invalidateRecord(X),W()}),J)try{Y.close()}catch{}}).catch((K)=>{console.warn(`[${E7}] port-forward to ${Z}:${G} failed: ${G14(K)}`),this.invalidateRecord(X),W()})}closeForwarder($){$.server.close((Z)=>{if(Z)console.warn(`[${E7}] port-forward close on :${$.localPort} errored: ${Z instanceof Error?Z.message:String(Z)}`)})}close(){if(this.closed)return;this.closed=!0,this.claimWatchAbort.abort();for(let $ of this.records.values())this.closeForwarder($.daemonForward);this.records.clear()}}function H14($){return{active:$.createUpDownCounter("studio.sandbox.active",{description:"Active sandbox count, by runner kind and owning org. Cross-checks the cAdvisor-derived count from the cluster \u2014 divergence between the two indicates orphaned claims (mesh deleted but K8s didn't reap) or unattributed pods.",unit:"{sandbox}"}),ensureOutcome:$.createCounter("studio.sandbox.ensure.outcome",{description:"Outcome of each ensure() call: fresh provision, resume from state-store after restart, or adopt of a cluster-side claim mesh didn't know about. Cold-start ratio is the primary input for warm-pool sizing.",unit:"{call}"}),proxyDurationMs:$.createHistogram("studio.sandbox.proxy.duration_ms",{description:"Wall-clock latency of mesh-mediated requests to the sandbox daemon: tool exec proxies (source=daemon) and preview iframe traffic (source=preview).",unit:"ms"})}}function N14(){let $=new kf;return $.loadFromDefault(),$}function IG$($){return Boolean($.status?.conditions?.some((Z)=>Z.type==="Ready"&&Z.status==="True"))}function O14($){let Z=$.spec?.env;if(!Z)return null;for(let G of Z)if(G.name==="DAEMON_TOKEN"&&G.value)return G.value;return null}function B14($,Z){let G=se8("sha256").update(`${$}:${Z}`).digest();return bd1+G.readUInt32BE(0)%MG$}function Sd1($,Z){return new Response(JSON.stringify(Z),{status:$,headers:{"content-type":"application/json","access-control-allow-origin":"*"}})}function TG$($){let Z=$.slice(0,L14);return D14.test(Z)?Z:""}function w14($){if($===void 0)return null;let Z=$.trim();if(Z==="")return null;if(!E14.test(Z))throw Error(`AgentSandboxProvider: envName=${JSON.stringify(Z)} is not a valid DNS-label-safe environment name (lowercase alphanumeric or '-', starts with a letter, ends alphanumeric, \u226432 chars). Mesh sets this from STUDIO_ENV; check the studio chart's configMap.`);return Z}function Cd1($,Z={}){let G={...Z};if($){let X=TG$($.orgId),Q=TG$($.userId);if(X)G[hY.orgId]=X;if(Q)G[hY.userId]=Q}return G}function TV($){let Z="";for(let G of $){let X=G.codePointAt(0)??0;Z+=X<32||X===127?" ":G}return Z.slice(0,z14)}function j14($){try{let Z=new URL($);return Z.username="",Z.password="",Z.toString()}catch{return""}}function P14($){let Z={},G=$.tenant;if(G?.orgSlug)Z[Q3.orgSlug]=TV(G.orgSlug);if(G?.orgName)Z[Q3.orgName]=TV(G.orgName);if(G?.userEmail)Z[Q3.userEmail]=TV(G.userEmail);if(G?.userName)Z[Q3.userName]=TV(G.userName);let X=$.repo;if(X){if(X.displayName)Z[Q3.gitRepo]=TV(X.displayName);let Q=j14(X.cloneUrl);if(Q)Z[Q3.gitRepoUrl]=TV(Q);let Y=$.branch??X.branch;if(Y)Z[Q3.gitBranch]=TV(Y)}return Z}function A14($){let Z=$.metadata?.labels;if(!Z)return null;let G=Z[hY.orgId],X=Z[hY.userId];if(!G||!X)return null;let Q=$.metadata?.annotations??{};return{orgId:G,userId:X,orgSlug:Q[Q3.orgSlug],orgName:Q[Q3.orgName],userEmail:Q[Q3.userEmail],userName:Q[Q3.userName]}}function _d1($){return{org_id:$?.orgId??"",user_id:$?.userId??"",runner_kind:kX}}function R14($){let Z={};if($.repo)Z.repo=$.repo;if($.workload)Z.workload=$.workload;if($.env&&Object.keys($.env).length>0)Z.env=$.env;if($.tenant)Z.tenant=$.tenant;return Object.keys(Z).length>0?Z:null}function I14($,Z){try{return new URL(C61($,Z)).hostname||null}catch{return null}}var kX="agent-sandbox",E7="AgentSandboxProvider",qV="x-sandbox-preview-not-ready",X14="agent-sandbox-system",Q14="studio-sandbox",wO=9000,Y14=3000,Vd1="/app",J14=32,W14,K14=900000,U14,RG$,bd1=40000,MG$=1e4,F14=256,hY,Q3,D14,L14=63,E14,z14=253;var kG$=D(()=>{jd1();EG$();b61();YH1();Ki();AG$();W14=new Set(["DAEMON_TOKEN","DAEMON_BOOT_ID","APP_ROOT","PROXY_PORT"]),U14=["cookie","host","connection","keep-alive","proxy-authenticate","proxy-authorization","te","trailer","transfer-encoding","accept-encoding","content-length","upgrade"],RG$=["connection","keep-alive","transfer-encoding","content-encoding","content-length"];hY={role:"studio.decocms.com/role",sandboxHandle:"studio.decocms.com/sandbox-handle",orgId:"studio.decocms.com/org-id",userId:"studio.decocms.com/user-id",env:"studio.decocms.com/env"},Q3={orgSlug:"studio.decocms.com/org-slug",orgName:"studio.decocms.com/org-name",userEmail:"studio.decocms.com/user-email",userName:"studio.decocms.com/user-name",gitRepo:"studio.decocms.com/git-repo",gitRepoUrl:"studio.decocms.com/git-repo-url",gitBranch:"studio.decocms.com/git-branch"},D14=/^([A-Za-z0-9]([-A-Za-z0-9_.]*[A-Za-z0-9])?)?$/;E14=/^[a-z]([a-z0-9-]{0,30}[a-z0-9])?$/});var VG$={};p4(VG$,{waitForSandboxReady:()=>QH1,getSandboxClaim:()=>WF,getHttpRoute:()=>UG$,deleteSandboxClaim:()=>EO,deleteHttpRoute:()=>XH1,createSandboxClaim:()=>Fi,applyHttpRoute:()=>GH1,SandboxTimeoutError:()=>RV,SandboxError:()=>r9,PREVIEW_NOT_READY_HEADER:()=>qV,KubeConfig:()=>kf,K8S_CONSTANTS:()=>S9,HTTPROUTE_CONSTANTS:()=>Hi,AgentSandboxProvider:()=>vd1});var fd1=D(()=>{jd1();Ki();YH1();kG$()});class FH1{kind=zO;userSub;dispatch;stateStore;records=new Map;constructor($){if(!$.userSub)throw Error("DesktopSandboxProvider requires userSub");if(!$.dispatch)throw Error("DesktopSandboxProvider requires dispatch");this.userSub=$.userSub,this.dispatch=$.dispatch,this.stateStore=$.stateStore??null}async ensure($,Z={}){let G=Z.branch??Z.repo?.branch,X=QO($,G),Q=this.records.get(X);if(Q){if(await this.probeHealth(X))return this.toSandbox(Q);if(this.records.delete(X),this.stateStore)await this.stateStore.deleteByHandle(zO,X).catch(()=>{})}else if(this.stateStore){let N=(await this.stateStore.getByHandle(zO,X))?.state,O=N?.sandboxApiUrl;if(O){if(await this.probeHealth(X)){let B={handle:X,sandboxApiUrl:O,previewUrl:N?.previewUrl??O};return this.records.set(X,B),this.toSandbox(B)}await this.stateStore.deleteByHandle(zO,X).catch(()=>{})}}let Y=aU({userName:Z.tenant?.userName,userEmail:Z.tenant?.userEmail}),J=JSON.stringify({handle:X,repo:Z.repo,branch:G,...Z.workload?{workload:Z.workload}:{},...Y?{operator:Y}:{},...Z.offloadAllowedHosts?{offloadAllowedHosts:Z.offloadAllowedHosts}:{},...Z.offloadAllowSameHostDev!==void 0?{offloadAllowSameHostDev:Z.offloadAllowSameHostDev}:{},...Z.orgFsConfigJson?{orgFsConfigJson:Z.orgFsConfigJson}:{}}),W=await this.dispatchJson("POST","/api/sandboxes",J),K=JSON.parse(W);if(typeof K.sandboxApiUrl!=="string")throw Error("desktop ensure: daemon did not return a sandboxApiUrl string");let U=typeof K.previewUrl==="string"?K.previewUrl:K.sandboxApiUrl,F={handle:X,sandboxApiUrl:K.sandboxApiUrl,previewUrl:U};if(this.records.set(X,F),this.stateStore)await this.stateStore.put($,zO,{handle:X,state:{handle:X,sandboxApiUrl:K.sandboxApiUrl,previewUrl:U}});return this.toSandbox(F)}async proxyDaemonRequest($,Z,G){let X=Z.startsWith("/")?Z:`/${Z}`,Q=X.startsWith("/_sandbox/")?X.slice(9):X,Y=`/_sandbox/${encodeURIComponent($)}${Q}`,J=new Headers(G.headers);for(let z of["host","cookie","connection","keep-alive","transfer-encoding","upgrade","authorization"])J.delete(z);let W={};J.forEach((z,j)=>{W[j]=z});let K;if(G.body!=null)K=await q14(G.body);let F=this.dispatch(this.userSub,{method:G.method,path:Y,headers:W,body:K},{signal:G.signal})[Symbol.asyncIterator](),H=T14(),N=200,O={"content-type":"application/octet-stream"},B=[];try{while(!0){let z=await F.next();if(z.done)break;let j=z.value;if(j.headers){N=j.headers.status,O=j.headers.headers;break}if(j.data!=null){let P=H.push(j.data);if(P.length)B.push(P)}}}catch(z){let j=z instanceof Error?z.message:"dispatch error";return new Response(JSON.stringify({error:j}),{status:502,headers:{"content-type":"application/json"}})}let L=!1,w=new ReadableStream({async start(z){for(let j of B)z.enqueue(j)},async pull(z){try{while(!0){let j=await F.next();if(L)return;if(j.done){let R=H.flush();if(R.length)z.enqueue(R);z.close();return}let P=j.value;if(P.data!=null){let R=H.push(P.data);if(R.length){z.enqueue(R);return}}}}catch(j){if(!L)z.error(j)}},cancel(){L=!0,F.return?.()}});return new Response(w,{status:N,headers:O})}async alive($){return this.probeHealth($)}async probeHealth($){let Z=new AbortController,G=setTimeout(()=>Z.abort(),3000);try{return await this.dispatchJson("GET",`/api/sandboxes/${encodeURIComponent($)}`,void 0,Z.signal),!0}catch{return!1}finally{clearTimeout(G)}}async forgetHandle($){if(this.records.delete($),this.stateStore)await this.stateStore.deleteByHandle(zO,$).catch(()=>{})}async delete($){if(this.records.delete($),this.stateStore)await this.stateStore.deleteByHandle(zO,$).catch(()=>{});try{await this.dispatchJson("DELETE",`/api/sandboxes/${encodeURIComponent($)}`)}catch(Z){if(!(Z instanceof Error?Z.message:String(Z)).includes("404"))throw Z}}async getPreviewUrl($){return(await this.resolveRecord($))?.previewUrl??null}async localWorkdir($){return null}async*watchClaimLifecycle($,Z){yield{kind:"ready"}}toSandbox($){return{handle:$.handle,workdir:$.sandboxApiUrl,previewUrl:$.previewUrl}}async resolveRecord($){let Z=this.records.get($);if(Z)return Z;if(!this.stateStore)return null;let X=(await this.stateStore.getByHandle(zO,$))?.state,Q=X?.sandboxApiUrl;if(!Q)return null;let Y={handle:$,sandboxApiUrl:Q,previewUrl:X?.previewUrl??Q};return this.records.set($,Y),Y}async dispatchJson($,Z,G,X){let Q={accept:"application/json"};if(G!==void 0)Q["content-type"]="application/json";let Y=this.dispatch(this.userSub,{method:$,path:Z,headers:Q,body:G},{signal:X}),J=null,W="";for await(let U of Y)if(U.headers)J=U.headers.status;else if(U.data!=null)W+=U.data;let K=Buffer.from(W,"base64").toString("utf8");if(J!=null&&(J<200||J>=300))throw Error(`daemon returned ${J}: ${K}`);return K}}function SG$($){return new FH1($)}function T14(){let $="";return{push(Z){if(Z.length===0)return xd1;$+=Z;let G=$.length-$.length%4;if(G===0)return xd1;let X=$.slice(0,G);return $=$.slice(G),new Uint8Array(Buffer.from(X,"base64"))},flush(){if($.length===0)return xd1;let Z=$;return $="",new Uint8Array(Buffer.from(Z,"base64"))}}}async function q14($){if(typeof $==="string")return $;if($ instanceof ArrayBuffer)return Buffer.from($).toString("utf8");if(ArrayBuffer.isView($))return Buffer.from($.buffer,$.byteOffset,$.byteLength).toString("utf8");if($ instanceof URLSearchParams)return $.toString();return await new Response($).text()}var zO="user-desktop",xd1;var CG$=D(()=>{b61();_61();xd1=new Uint8Array(0)});var _G$={};p4(_G$,{createDesktopProvider:()=>SG$,DesktopSandboxProvider:()=>FH1});var bG$=D(()=>{CG$()});var hG$={};p4(hG$,{subscribeLifecycle:()=>Bi,getSandboxProviderByKind:()=>gd1,getOrInitSharedRunner:()=>v14,buildDesktopProvider:()=>HH1,__resetSharedLifecyclesForTesting:()=>h14});function yG$($,Z){let G=vG$[$];if(G)return Promise.resolve(G);let X=yd1[$];if(X)return X;let Q=Z().then((Y)=>{return vG$[$]=Y,Y}).finally(()=>{delete yd1[$]});return yd1[$]=Q,Q}function V14(){let $=process.env.STUDIO_SANDBOX_PREVIEW_URL_PATTERN;return $&&$.trim()!==""?$:void 0}function S14(){let $=process.env.STUDIO_SANDBOX_TEMPLATE_NAME;return $&&$.trim()!==""?$:void 0}function C14(){let $=process.env.STUDIO_ENV;return $&&$.trim()!==""?$:void 0}function _14(){let $=process.env.STUDIO_SANDBOX_SENTINEL_TOKEN;return $&&$.trim()!==""?$:void 0}function b14(){let $=process.env.STUDIO_SANDBOX_PREVIEW_GATEWAY_NAME?.trim(),Z=process.env.STUDIO_SANDBOX_PREVIEW_GATEWAY_NAMESPACE?.trim();if(!$&&!Z)return;if(!$||!Z)throw Error("STUDIO_SANDBOX_PREVIEW_GATEWAY_NAME and STUDIO_SANDBOX_PREVIEW_GATEWAY_NAMESPACE must both be set, or both unset. Half-configured per-claim HTTPRoute routing would silently fail to attach.");return{name:$,namespace:Z}}async function gG$($,Z){let G=new JO(Z),X=V14();switch($){case"agent-sandbox":{let{AgentSandboxProvider:Q}=await Promise.resolve().then(() => (fd1(),VG$));return new Q({stateStore:G,previewUrlPattern:X,sandboxTemplateName:S14(),envName:C14(),previewGateway:b14(),sentinelToken:_14(),meter:m6})}case"user-desktop":throw Error("user-desktop provider cannot be instantiated without a per-run link claim \u2014 call resolveSandboxProvider, which binds the link before constructing the provider.");default:throw Error(`Unknown sandbox provider kind: ${String($)}`)}}async function HH1($,Z){let{DesktopSandboxProvider:G}=await Promise.resolve().then(() => (bG$(),_G$)),{getProxyDispatch:X}=await Promise.resolve().then(() => (ud1(),hd1)),Q=new JO($.db);if(!Z)throw Error("buildDesktopProvider: userSub must be a non-empty string");let Y=X();return new G({userSub:Z,dispatch:Y,stateStore:Q})}function gd1($,Z){return yG$(Z,()=>gG$(Z,$.db))}async function v14(){let $;try{$=bW()}catch(G){return console.warn("[lifecycle] cannot resolve sandbox runner:",G instanceof Error?G.message:String(G)),null}return await yG$($,()=>gG$($,p6().db))}function Bi($,Z,G){let X=jO.get(Z);if(X){if(X.terminated){if(X.lastPhase)try{G(X.lastPhase)}catch{}return{unsubscribe:y14}}if(X.listeners.add(G),X.lastPhase)try{G(X.lastPhase)}catch{}return fG$(Z,X,G)}let Q=new AbortController,Y={lastPhase:null,terminated:!1,listeners:new Set([G]),abort:Q};return jO.set(Z,Y),g14($,Z,Y),fG$(Z,Y,G)}function y14(){}function fG$($,Z,G){return{unsubscribe(){if(jO.get($)!==Z)return;if(Z.listeners.delete(G),Z.listeners.size===0)jO.delete($),Z.abort.abort()}}}async function g14($,Z,G){let X=null;try{for await(let Q of $.watchClaimLifecycle(Z,G.abort.signal)){if(G.abort.signal.aborted)break;G.lastPhase=Q;let Y=Q.kind==="ready"||Q.kind==="failed";if(Y)G.terminated=!0;let J=Array.from(G.listeners);for(let W of J)try{W(Q)}catch{}if(Y)break}}catch(Q){X=Q}finally{if(!G.terminated&&!G.abort.signal.aborted&&G.listeners.size>0){let Q={kind:"failed",reason:"unknown",message:X instanceof Error?X.message:"Lifecycle watcher ended unexpectedly"};G.lastPhase=Q,G.terminated=!0;for(let Y of Array.from(G.listeners))try{Y(Q)}catch{}}if(jO.get(Z)===G)jO.delete(Z)}}function h14(){for(let $ of jO.values())$.abort.abort();jO.clear()}var M14,k14,xG$,vG$,yd1,f14,x14,jO;var Di=D(()=>{RQ();f3();v9();h61();M14=Symbol.for("decocms.sandbox.lifecycle.runners"),k14=Symbol.for("decocms.sandbox.lifecycle.inflight"),xG$=globalThis,vG$=xG$[M14]??={},yd1=xG$[k14]??={};f14=Symbol.for("decocms.sandbox.lifecycle.shared-lifecycles"),x14=globalThis,jO=x14[f14]??=new Map});async function NH1($,Z){if(await Z.linkClaimRegistry.get($))return"user-desktop";return Z.resolveEnvKind()}async function Y3($,Z){let{userId:G,branch:X,virtualMcpMetadata:Q,explicitKind:Y}=Z;if(Y)return{provider:await Li($,G,Y),kind:Y};if($.sandboxPreference==="agent-sandbox")return{provider:await Li($,G,"agent-sandbox"),kind:"agent-sandbox"};if($.sandboxPreference==="user-desktop"&&$.linkForCurrentRun)return{provider:await HH1($,G),kind:"user-desktop"};if($.sandboxPreference==="cluster-default"){let F=bW();return{provider:await Li($,G,F),kind:F}}let[J,...W]=u14(Q,G,X);if(J){let F=W.length===0?J:await c14($,G,J,W);return{provider:await Li($,G,F),kind:F}}let K=await uG$($,G);return{provider:await Li($,G,K),kind:K}}function u14($,Z,G){let X=IQ($)[Z]?.[G];if(!X)return[];let Q=uK(X);return Object.keys(Q)}async function c14($,Z,G,X){let Q=await uG$($,Z);if(Q===G||X.includes(Q))return Q;return G}async function uG$($,Z){if(!$.linkClaimRegistry)return bW();return NH1(Z,{linkClaimRegistry:$.linkClaimRegistry,resolveEnvKind:bW})}async function Li($,Z,G){if(G!=="user-desktop")return gd1($,G);if(!$.linkClaimRegistry)throw Error("user-desktop sandbox provider requires ctx.linkClaimRegistry to be wired (set on StudioContextConfig).");if(!await $.linkClaimRegistry.get(Z))throw Error(`No link daemon registered for user "${Z}". Start one with \`deco link\` (or run \`bun run dev --local-sandbox-provider\` for dev).`);return HH1($,Z)}var bf=D(()=>{_8();RQ();$F();Di()});async function OH1($,Z){if(!$)return{hosts:[],allowSameHostDev:!1};let G;try{G=await $.presignedGetUrl("link-dispatch/_allowlist_probe",60,{requireFetchable:!0})}catch{return{hosts:[],allowSameHostDev:!1}}let X;try{X=new URL(G)}catch{return{hosts:[],allowSameHostDev:!1}}if(X.protocol!=="https:"&&X.protocol!=="http:")return{hosts:[],allowSameHostDev:!1};let Q=X.hostname,Y=l14.has(Q);return{hosts:[Q],allowSameHostDev:Y&&!Z.isProduction}}var l14;var cd1=D(()=>{l14=new Set(["127.0.0.1","localhost","::1","[::1]","0.0.0.0"])});function vf($){if(d14.has($)||!m14.test($))return"home";return $}var d14,m14;var BH1=D(()=>{d14=new Set(["output","upload","public","home"]),m14=/^[A-Za-z0-9][A-Za-z0-9._-]*$/});function t14($){return{baseUrl:$.baseUrl.replace(/\/+$/,""),orgSlug:$.orgSlug,token:$.token,mounts:[{volume:"home",path:vf($.orgSlug)},...p14.map((Z)=>({...Z})),...($.publicSets??[]).map((Z)=>({volume:Ur(Z),path:`public/${Z}`,readonly:!0}))]}}async function DH1($,Z){try{let G=await $.boundAuth.apiKey.create({name:`orgfs-${Z.orgSlug}`,expiresIn:o14,metadata:{organization:{id:Z.orgId,slug:Z.orgSlug}}});return JSON.stringify(t14({baseUrl:Z.baseUrl,orgSlug:Z.orgSlug,token:G.key,publicSets:ZJ().map((X)=>X.set)}))}catch(G){console.warn("[org-fs] token mint failed; mounts disabled for this sandbox",G);return}}var i14=".outputs",n14=".uploads",p14,o14=604800;var ld1=D(()=>{BH1();YC();p14=[{volume:"outputs",path:i14},{volume:"uploads",path:n14}]});import{z as hW}from"zod";async function cG$($,Z){A1(Z);let G=N1(Z),X=L$(Z);if(!X)throw Error("User ID required");let Q=await Z.storage.virtualMcps.findById($.virtualMcpId);if(!Q||Q.organization_id!==G.id)throw Error("Virtual MCP not found");let Y=Q.metadata??{},J=eU(IQ(Y),X,$.branch,$.sandboxProviderKind),W=$.sandboxProviderKind,{provider:K}=await Y3(Z,{userId:X,branch:$.branch,virtualMcpMetadata:Y,explicitKind:W});if(J){if(W!=="user-desktop")return J;if(await K.alive(J.sandboxHandle).catch(()=>!1))return J;await YO(Z.storage.virtualMcps,$.virtualMcpId,X,X,$.branch,W).catch((N)=>{console.warn("[ensureSandbox] failed to reap stale user-desktop entry",N)})}let U=Y.githubRepo??null,{entry:F}=await lG$({ctx:Z,userId:X,orgId:G.id,virtualMcpId:$.virtualMcpId,branch:$.branch,metadata:Y,githubRepo:U,existing:null,providerKind:W,runner:K});return F}async function lG$($){let{ctx:Z,userId:G,orgId:X,virtualMcpId:Q,branch:Y,metadata:J,githubRepo:W,existing:K,runner:U}=$,{runtime:F,packageManager:H,port:N,packageManagerPath:O}=v61(J),B;if(W){if(W.connectionId)await Lf({ctx:Z,connectionId:W.connectionId,organizationId:X,onLegacyMintError:(Q1)=>{console.error("[provisionSandbox] repo-scoped legacy token mint failed",{connectionId:W.connectionId,error:Q1.message})}});let{cloneUrl:e,gitUserName:d,gitUserEmail:p}=W.connectionId?await Ef(W.connectionId,W.owner,W.name,Z.db,Z.vault):x61(W.owner,W.name);if(!H){let Q1=W.connectionId?await A8$(W.connectionId,W.owner,W.name,Z.db,Z.vault):await R8$(W.owner,W.name);if(Q1)H=Q1.packageManager,F=cm[Q1.packageManager].runtime,N=Q1.devPort??N,await a14(Z,Q,G,Q1.packageManager,Q1.devPort)}B={cloneUrl:e,userName:d,userEmail:p,branch:Y,displayName:`${W.owner}/${W.name}`}}let L=F&&H?{runtime:F,packageManager:H,...N!==null?{devPort:Number(N)}:{},...O?{packageManagerPath:O}:{}}:void 0,w=sU({orgId:X,virtualMcpId:Q,branch:Y}),z=U.kind==="user-desktop"?await OH1(Z.objectStorage,{isProduction:q0().nodeEnv==="production"}):null,j=U.kind==="user-desktop"||U.kind==="agent-sandbox"&&q0().orgFsClusterMounts,P;if(j){let e=Z.organization?.slug??(await Z.db.selectFrom("organization").select(["slug"]).where("id","=",X).executeTakeFirst())?.slug;if(e)P=await DH1(Z,{orgSlug:e,orgId:X,baseUrl:R3()})}let R=await U.ensure({userId:G,projectRef:w},{branch:Y,repo:B,workload:L,tenant:{orgId:X,userId:G,...Z.organization?.slug?{orgSlug:Z.organization.slug}:{},...Z.organization?.name?{orgName:Z.organization.name}:{},...Z.auth.user?.email?{userEmail:Z.auth.user.email}:{},...Z.auth.user?.name?{userName:Z.auth.user.name}:{}},...z?{offloadAllowedHosts:z.hosts,offloadAllowSameHostDev:z.allowSameHostDev}:{},...P?{orgFsConfigJson:P}:{}}),A=J.runtime?.env??null;await f61({ctx:Z,runner:U,handle:R.handle,orgId:X,userId:G,entries:A});let S=!!K&&K.sandboxHandle===R.handle&&K?.createdAt?K.createdAt:Date.now(),k=J.runtime?.selected??null,C=J.runtime?.port??null,u=J.runtime?.path??null,x={sandboxHandle:R.handle,previewUrl:R.previewUrl,sandboxApiUrl:R.previewUrl,sandboxProviderKind:U.kind,createdAt:S,startedWith:{packageManager:k,port:C,path:u}};await E8$(Z.storage.virtualMcps,Q,G,G,Y,$.providerKind,x);let y=!K||K.sandboxHandle!==R.handle;return{entry:x,isNewVm:y}}async function a14($,Z,G,X,Q){let Y=await $.storage.virtualMcps.findById(Z);if(!Y)return;let J=Y.metadata??{};await $.storage.virtualMcps.update(Z,G,{metadata:{...J,runtime:{selected:X,port:Q}}})}var r14,dd1;var md1=D(()=>{RQ();n1();lm();Mc1();$F();y61();T8$();fg1();qc1();bf();cd1();M4();mQ();ld1();$F();r14=hW.enum(["agent-sandbox","user-desktop","cluster"]),dd1=Z1({name:"SANDBOX_START",description:"Start a sandbox with the connected GitHub repo and dev server.",annotations:{title:"Start VM Preview",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1,openWorldHint:!0},_meta:{ui:{visibility:"app"}},inputSchema:hW.object({virtualMcpId:hW.string().describe("Virtual MCP ID"),branch:hW.string().min(1).optional().describe("Optional git branch to check out. When omitted the handler generates `deco/<adjective>-<noun>` and uses it. The resolved branch is returned in the response so callers can persist it."),sandboxProviderKind:r14.optional().describe("Explicit runtime choice. Hosted provider is `agent-sandbox`; legacy `cluster` input is accepted only for compatibility and normalized to `agent-sandbox`. When omitted, defaults to `user-desktop` if the acting user's link daemon is online, else the env kind.")}),outputSchema:hW.object({previewUrl:hW.string().nullable(),sandboxHandle:hW.string(),branch:hW.string(),isNewVm:hW.boolean(),sandboxProviderKind:hW.enum(["agent-sandbox","user-desktop"])}),handler:async($,Z)=>{A1(Z);let G=N1(Z);await Z.access.check();let X=$.branch??E41(),Q=L$(Z);if(!Q)throw Error("User ID required");let Y=await Z.storage.virtualMcps.findById($.virtualMcpId);if(!Y||Y.organization_id!==G.id)throw Error("Virtual MCP not found");let J=Y.metadata??{},W=$.sandboxProviderKind?rU($.sandboxProviderKind):void 0,{provider:K,kind:U}=await Y3(Z,{userId:Q,branch:X,virtualMcpMetadata:J,explicitKind:W}),F=eU(IQ(J),Q,X,U),H=J.githubRepo??null,{entry:N,isNewVm:O}=await lG$({ctx:Z,userId:Q,orgId:G.id,virtualMcpId:$.virtualMcpId,branch:X,metadata:J,githubRepo:H,existing:F,providerKind:U,runner:K});return{...N,branch:X,isNewVm:O,sandboxProviderKind:U}}})});import{z as ff}from"zod";var s14,id1;var dG$=D(()=>{RQ();n1();lm();$F();bf();s14=ff.enum(["agent-sandbox","user-desktop","cluster"]),id1=Z1({name:"SANDBOX_DELETE",description:"Delete a sandbox.",annotations:{title:"Delete VM Preview",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!0},_meta:{ui:{visibility:"app"}},inputSchema:ff.object({virtualMcpId:ff.string().describe("Virtual MCP ID that owns this VM"),branch:ff.string().min(1).describe("Branch whose vm should be deleted (sandboxMap[userId][branch])"),sandboxProviderKind:s14.describe("Kind of sandbox provider the VM was started with. Hosted provider is `agent-sandbox`; legacy `cluster` input is accepted only for compatibility and normalized to `agent-sandbox`. Used to locate the correct 3-level sandboxMap entry.")}),outputSchema:ff.object({success:ff.boolean()}),handler:async($,Z)=>{let G=rU($.sandboxProviderKind),X;try{X=await z8$({...$,sandboxProviderKind:G},Z)}catch(W){if(W instanceof Error&&W.message==="Virtual MCP not found")return{success:!0};throw W}let{entry:Q,userId:Y}=X;if(!Q)return{success:!0};let{provider:J}=await Y3(Z,{userId:Y,branch:$.branch,virtualMcpMetadata:X.metadata,explicitKind:G});return await YO(Z.storage.virtualMcps,$.virtualMcpId,Y,Y,$.branch,G),await J.delete(Q.sandboxHandle).catch((W)=>console.error(`[SANDBOX_DELETE] ${G} ${Q.sandboxHandle}: ${W instanceof Error?W.message:String(W)}`)),{success:!0}}})});var mG$=D(()=>{md1();dG$()});import{z as uW}from"zod";var $04="https://api.github.com",nd1;var iG$=D(()=>{n1();kL();vv();zW();nd1=Z1({name:"GITHUB_LIST_USER_ORGS",description:"List GitHub App installations (orgs/accounts) accessible to the authenticated user.",annotations:{title:"List GitHub User Orgs",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!0},_meta:{ui:{visibility:"app"}},inputSchema:uW.object({connectionId:uW.string().describe("ID of the mcp-github connection to use")}),outputSchema:uW.object({installations:uW.array(uW.object({installationId:uW.number(),login:uW.string(),avatarUrl:uW.string(),type:uW.string()})),appSlug:uW.string().optional()}),handler:async($,Z)=>{await Z.access.check();let G=Z.organization?.id;if(!G)throw Error("Organization context required");let X=await Z.storage.connections.findById($.connectionId,G);if(!X)throw Error("Connection not found");if(jW(X))throw Error("Repo-scoped connections cannot list installations \u2014 use an org-level mcp-github connection");let Q=new M9(Z.db,Z.vault),Y=await Q.get($.connectionId);if(!Y)throw Error("No GitHub token found. Ensure the mcp-github connection is authenticated.");let J=Y.accessToken;if(X41(Y)&&Q.isExpired(Y,pd)){let N=await Q41(Y,Q);if(!N)throw Error(p7);J=N,Y=await Q.get($.connectionId)??Y}let W=[],K,U=1,F=100,H=async(N)=>fetch(`${$04}/user/installations?per_page=${F}&page=${U}`,{headers:{Authorization:`Bearer ${N}`,Accept:"application/vnd.github+json","X-GitHub-Api-Version":"2022-11-28"}});while(!0){let N=await H(J);if(N.status===401){let B=await Q.get($.connectionId);if(!B||!X41(B))throw Error(p7);let L=await Q41(B,Q);if(!L)throw Error(p7);if(J=L,N=await H(J),N.status===401)throw Error(p7)}if(!N.ok)throw Error(`GitHub /user/installations failed: ${N.status}`);let O=await N.json();for(let B of O.installations){if(!K)K=B.app_slug??B.app?.slug;W.push({installationId:B.id,login:B.account.login,avatarUrl:B.account.avatar_url,type:B.account.type})}if(O.installations.length<F)break;U++}return{installations:W,...K?{appSlug:K}:{}}}})});var nG$=D(()=>{iG$()});import{z as R0}from"zod";var pd1,pG$,tG$,G04,Ei,X04,wi,Q04,Y04,J04,Ta5;var LH1=D(()=>{pd1=R0.enum(["claude-code","codex","decopilot-sandbox","body-offload"]),pG$=R0.array(R0.string()).catch([]).transform(($)=>$.filter((Z)=>pd1.safeParse(Z).success)),tG$=R0.discriminatedUnion("type",[R0.object({type:R0.literal("ui-message-chunk"),chunk:R0.unknown()}),R0.object({type:R0.literal("error"),code:R0.string(),message:R0.string()}),R0.object({type:R0.literal("done")})]),G04=R0.record(R0.string(),R0.unknown()),Ei=R0.object({id:R0.string(),title:R0.string().optional(),provider:R0.string().nullable().optional(),credentialId:R0.string(),limits:R0.object({contextWindow:R0.number().int().positive().optional(),maxOutputTokens:R0.number().int().positive().optional()}).optional(),capabilities:R0.object({vision:R0.boolean().optional(),text:R0.boolean().optional(),reasoning:R0.boolean().optional()}).optional()}).strict(),X04=R0.object({thinking:Ei.extend({title:R0.string()}),fast:Ei.optional(),smart:Ei.optional(),image:Ei.optional(),deepResearch:Ei.optional()}).strict(),wi=R0.object({kind:R0.literal("secret"),providerId:R0.string(),apiKey:R0.string(),modelId:R0.string(),baseUrl:R0.string().optional(),extraHeaders:R0.record(R0.string(),R0.string()).optional()}),Q04=R0.object({thinking:wi,fast:wi.optional(),smart:wi.optional(),image:wi.optional(),deepResearch:wi.optional()}).strict(),Y04=R0.object({kind:R0.literal("http"),url:R0.string().url(),headers:R0.record(R0.string(),R0.string()),expiresAt:R0.number().int().positive()}),J04=R0.object({kind:R0.literal("http"),baseUrl:R0.string().url(),headers:R0.record(R0.string(),R0.string()),expiresAt:R0.number().int().positive()}),Ta5=R0.object({harnessId:R0.enum(["decopilot","claude-code","codex"]).optional(),threadId:R0.string(),runId:R0.string(),taskId:R0.string(),resumeSessionRef:R0.string().optional(),messages:R0.array(G04),workspace:R0.object({cwd:R0.string().min(1)}).strict(),models:X04,modelSources:Q04.optional(),mcpSource:Y04.optional(),objectStorageSource:J04.optional(),mcp:R0.object({url:R0.string().url(),headers:R0.record(R0.string(),R0.string()),expiresAt:R0.number().int().positive()}).strict(),mode:R0.enum(["default","plan","web-search","gen-image"]),temperature:R0.number(),toolApprovalLevel:R0.enum(["auto","readonly"]),toolAllowlist:R0.array(R0.string()).nullable().optional(),maxAgentSteps:R0.number().int().optional(),user:R0.object({id:R0.string(),email:R0.string()}),organizationId:R0.string(),organizationSlug:R0.string().optional(),virtualMcp:R0.record(R0.string(),R0.unknown()),agent:R0.object({id:R0.string()}),branch:R0.string().nullable().optional(),triggerId:R0.string().optional(),currentThreadTitle:R0.string().optional(),traceparent:R0.string().optional(),runFenceToken:R0.string().optional()}).strip()});import{z as oG$}from"zod";var rG$;var td1=D(()=>{LH1();rG$=oG$.object({seq:oG$.number().int().positive(),event:tG$})});function eG$($){return $>=2}var aG$=2,sG$="x-link-protocol";var $X$=()=>{};var ZX$=D(()=>{$X$();td1();LH1()});var GX$=D(()=>{ZX$()});import MV from"zod";var od1;var XX$=D(()=>{GX$();n1();od1=Z1({name:"LINK_CURRENT_GET",description:"Return the calling user's currently registered desktop link, or `online: false` if no link is registered or the TTL has expired.",inputSchema:MV.object({}),outputSchema:MV.object({online:MV.boolean(),machineId:MV.string().optional(),hostname:MV.string().optional(),cliVersion:MV.string().optional(),capabilities:MV.array(pd1).default([])}),handler:async($,Z)=>{A1(Z),await Z.access.check();let G=Z.linkClaimRegistry;if(!G)return{online:!1,capabilities:[]};let X=await G.get(Z.auth.user.id);if(!X)return{online:!1,capabilities:[]};return{online:!0,machineId:X.machineId,hostname:X.hostname,cliVersion:X.cliVersion,capabilities:X.capabilities}}})});import rd1 from"zod";var ad1;var QX$=D(()=>{n1();ad1=Z1({name:"LINK_DISCONNECT",description:"Disconnect the calling user's desktop link from the Studio side: tells the linked daemon to shut down (via a `shutdown` control frame) and removes the presence claim. The user re-links by running `bunx decocms link` on the desktop.",inputSchema:rd1.object({}),outputSchema:rd1.object({disconnected:rd1.boolean()}),handler:async($,Z)=>{A1(Z),await Z.access.check();let G=Z.auth.user.id,X=Z.linkClaimRegistry;if(!(X?await X.get(G):null))return{disconnected:!1};return Z.publishLinkControlFrame?.(G,{type:"shutdown"}),await X.delete(G),{disconnected:!0}}})});var YX$=D(()=>{XX$();QX$()});import{z as a9}from"zod";function JX$($){if(!$)return"";return typeof $==="string"?$:$.toISOString()}var U04,F04,H04,N04,O04,sd1;var WX$=D(()=>{n1();U04=["thread"],F04=a9.object({type:a9.literal("thread"),id:a9.string(),title:a9.string(),created_at:a9.string(),updated_at:a9.string(),virtual_mcp_id:a9.string().nullable(),run_config:a9.record(a9.string(),a9.unknown()).nullable(),status:a9.string().nullable()}),H04=a9.discriminatedUnion("type",[F04]),N04=a9.object({query:a9.string().min(1).describe("Free-text search query."),limit:a9.number().int().min(1).max(50).optional().describe("Maximum results per resource type (default: 20)."),types:a9.array(a9.enum(U04)).optional().describe("Restrict the search to specific resource types. Omit to search across all available types.")}),O04=a9.object({items:a9.array(H04),totalCount:a9.number()});sd1=Z1({name:"GLOBAL_SEARCH",description:"Search across organization resources by free-text query. Returns a typed union of matches (currently: threads). New resource types may be added over time without changes to the call shape.",annotations:{title:"Global Search",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:N04,outputSchema:O04,handler:async($,Z)=>{await Z.access.check(),N1(Z);let G=$.limit??20,X=$.types?.length?new Set($.types):null,Q=!X||X.has("thread"),Y=[],J=0;if(Q){let{threads:W,total:K}=await Z.storage.threads.list(void 0,{limit:G,offset:0,search:$.query,includeArchived:!1});J+=K;for(let U of W)Y.push({type:"thread",id:U.id,title:U.title??"",created_at:JX$(U.created_at),updated_at:JX$(U.updated_at),virtual_mcp_id:U.virtual_mcp_id??null,run_config:U.run_config??null,status:U.status??null})}return{items:Y,totalCount:J}}})});var KX$=D(()=>{WX$()});var U41={};p4(U41,{managementMCP:()=>ov,listManagementTools:()=>E04,ALL_TOOLS:()=>UX$});import{z as ed1}from"zod";async function E04($){let Z=await ov($),[G,X]=qu.createLinkedPair();await Z.connect(X);let Q=new Y9({name:"tools-hydration",version:"1.0.0"},{jsonSchemaValidator:h9});try{return await Q.connect(G),(await Q.listTools()).tools}finally{await Q.close().catch(()=>{}),await Z.close().catch(()=>{})}}var D04,L04,UX$,ov=async($)=>{let Z=null;if($.organization){let J=await $.storage.organizationSettings.get($.organization.id),W=await $.storage.virtualMcps.listEnabledPlugins($.organization.id),K=new Set(J?.enabled_plugins??[]);for(let U of W)K.add(U);Z=K.size>0?[...K]:null}let G=nS0(UX$,Z),X=new cK({name:"mcp-cms-management",version:"1.0.0"},{capabilities:{tools:{},prompts:{},resources:{}},jsonSchemaValidator:h9});for(let J of G){let W=J.inputSchema&&typeof J.inputSchema==="object"&&"shape"in J.inputSchema?J.inputSchema:ed1.object({}),K=J.outputSchema&&typeof J.outputSchema==="object"&&"shape"in J.outputSchema?J.outputSchema:void 0,U=W.shape,F=K?.shape;X.registerTool(J.name,{description:J.description??"",inputSchema:U,outputSchema:F,annotations:J.annotations,_meta:J._meta},async(H)=>{$.access.setToolName(J.name);try{let N=await J.execute(H,$);return{content:[{type:"text",text:J.modelSummary?J.modelSummary(N):JSON.stringify(N)}],structuredContent:N}}catch(N){return{content:[{type:"text",text:`Error: ${N.message}`}],isError:!0}}})}let Q=t41();for(let J of Q){let W=J.arguments?.length?Object.fromEntries(J.arguments.map((K)=>{let U=K.required?ed1.string():ed1.string().optional();return[K.name,K.description?U.describe(K.description):U]})):void 0;X.registerPrompt(J.name,{title:J.title,description:J.description,...W?{argsSchema:W}:{}},(K)=>{return{messages:[{role:"user",content:{type:"text",text:typeof J.text==="function"?J.text(K??{}):J.text}}]}})}if($.organization?.id){let J=await $.storage.brandContext.list($.organization.id),W=new Set;for(let K of J){let U=K.name.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,""),F=U?`brand-${U}`:`brand-${K.id}`;if(W.has(F))F=`${F}-${K.id.slice(0,8)}`;W.add(F);let H=[`# Brand: ${K.name}`,"",`**Domain:** ${K.domain}`,"","## Overview",K.overview];if(K.colors){let O=Object.entries(K.colors).filter(([,B])=>B);if(O.length>0){H.push("","## Colors");for(let[B,L]of O)H.push(`- **${B}:** ${L}`)}}if(K.fonts){let O=Object.entries(K.fonts).filter(([,B])=>B);if(O.length>0){H.push("","## Fonts");for(let[B,L]of O)H.push(`- ${L} (${B})`)}}if(K.logo)H.push("",`**Logo:** ${K.logo}`);if(K.favicon)H.push(`**Favicon:** ${K.favicon}`);if(K.ogImage)H.push(`**OG Image:** ${K.ogImage}`);if(K.images&&K.images.length>0){H.push("","## Images");for(let O of K.images){let B=Object.entries(O).map(([L,w])=>`${L}: ${w}`).join(", ");H.push(`- ${B}`)}}let N=H.join(`
|
|
2200
|
+
`))>=0){let K=X.slice(0,W).trim();if(X=X.slice(W+1),!K)continue;yield JSON.parse(K)}}let Q=X.trim();if(Q)yield JSON.parse(Q)}finally{Z.releaseLock()}}var GG$,XG$,JG$="gateway.networking.k8s.io",WG$="v1",KG$="httproutes",ue8,Hi,FG$="mesh-sandbox-runner";var YH1=D(()=>{Ki();GG$=class GG$ extends Error{status;body;constructor($,Z,G){super(G);this.status=$;this.body=Z;this.name="KubeHttpError"}};XG$=`/apis/${S9.CLAIM_API_GROUP}/${S9.CLAIM_API_VERSION}/namespaces`;ue8=`/apis/${JG$}/${WG$}/namespaces`;Hi={API_GROUP:JG$,API_VERSION:WG$,PLURAL:KG$}});var JH1=D(()=>{A7();_61()});async function KH1($){try{let Z=await fetch(`${$}/health`,{signal:AbortSignal.timeout(ce8)});if(!Z.ok)return null;let G=await Z.json();if(typeof G==="object"&&G!==null&&typeof G.bootId==="string"&&typeof G.ready==="boolean"&&G.setup&&typeof G.setup.running==="boolean"&&typeof G.setup.done==="boolean")return G;return null}catch{return null}}async function DG$($){for(let Z=0;Z<NG$;Z++){if(await KH1($)!==null)return;let G=(Math.random()*2-1)*le8;await j6(OG$+G)}throw Error(`sandbox daemon at ${$} did not respond on /health within ${NG$*OG$/1000}s`)}async function Ni($,Z,G,X,Q){return de8($,Z,"POST",G,X,Q)}async function de8($,Z,G,X,Q,Y){let J={...X};if(Q&&Q.rotateToken!==void 0)J.auth=Q;let W=await fetch(`${$}/_sandbox/config`,{method:G,headers:{"Content-Type":"application/json",Authorization:`Bearer ${Z}`},body:JSON.stringify(J),signal:AbortSignal.timeout(Y?.timeoutMs??BG$)}),K=await W.text();if(!W.ok)throw new WH1(W.status,K);return JSON.parse(K)}async function LG$($,Z,G){let X=await fetch(`${$}/_sandbox/orgfs-config`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${Z}`},body:G,signal:AbortSignal.timeout(BG$)}),Q=await X.text();if(!X.ok)throw Error(`sandbox daemon /_sandbox/orgfs-config returned ${X.status}: ${Q}`);return JSON.parse(Q)}async function Oi($,Z,G,X){let Q=new Headers(X.headers);for(let W of me8)Q.delete(W);Q.set("authorization",`Bearer ${Z}`);let Y=X.method!=="GET"&&X.method!=="HEAD",J=`${$}${G.startsWith("/")?G:`/${G}`}`;return fetch(J,{method:X.method,headers:Q,body:Y?X.body:void 0,redirect:"manual",signal:X.signal,duplex:Y?"half":void 0})}var WH1,ce8=500,BG$=30000,NG$=25,OG$=200,le8=50,me8;var EG$=D(()=>{JH1();WH1=class WH1 extends Error{status;constructor($,Z){super(`sandbox daemon /_sandbox/config returned ${$}: ${Z}`);this.status=$;this.name="ConfigRequestError"}};me8=["cookie","host","connection","keep-alive","proxy-authenticate","proxy-authorization","te","trailer","transfer-encoding","accept-encoding","content-length"]});async function*jG$($){let Z=$.now??(()=>Date.now()),G=Z(),X=$.schedulingTimeoutMs??pe8,Q={pod:{},sandbox:{},events:{hasPulling:!1,hasPulled:!1},startedAt:G},Y=[],J=null,W=!1,K=(j)=>{if(W)return;if(J){let P=J;J=null,P(j)}else Y.push(j)},U=()=>{if(Y.length>0)return Promise.resolve(Y.shift());if(W)return Promise.resolve(null);return new Promise((j)=>{J=j})},F=()=>{if(W)return;if(W=!0,J){let j=J;J=null,j(null)}},H=new AbortController,N=()=>{H.abort(),F()};if($.signal)if($.signal.aborted)H.abort(),F();else $.signal.addEventListener("abort",N,{once:!0});let O=Math.max(0,X-(Z()-G)),B=setTimeout(()=>K("tick"),O+100),L,w=new Promise((j)=>{L=j}),z=Promise.allSettled([te8($.kc,$.namespace,$.claimName,H.signal,Q,K,Z,L),re8($.kc,$.namespace,$.claimName,H.signal,Q,K),ae8($.kc,$.namespace,$.claimName,w,H.signal,Q,K,Z)]);try{let j=null,P=-1,R=wG$(Q,X,Z);if(j=kd1(R),!Md1(R))P=zG$(R);if(yield R,Md1(R))return;while(!W){if(await U()===null)break;let q=wG$(Q,X,Z);if(Md1(q)){let C=kd1(q);if(C!==j)j=C,yield q;return}let S=zG$(q);if(S<P)continue;let k=kd1(q);if(k!==j)j=k,P=S,yield q}}finally{if(clearTimeout(B),H.abort(),$.signal)$.signal.removeEventListener("abort",N);F(),await z.catch(()=>{})}}function wG$($,Z,G){let{pod:X,sandbox:Q,events:Y,startedAt:J}=$;if(Q.ready)return{kind:"ready"};let W=X.containerWaitingReason;if(W==="ImagePullBackOff"||W==="ErrImagePull")return{kind:"failed",reason:"image-pull-backoff",message:"Sandbox image failed to download. The cluster may be missing pull credentials or the image tag may not exist."};if(W==="CrashLoopBackOff")return{kind:"failed",reason:"crash-loop-backoff",message:"Sandbox crashed during startup and is now in CrashLoopBackOff. Check pod logs."};if(!X.scheduled&&Y.lastFailedSchedulingAt!==void 0&&G()-J>Z)return{kind:"failed",reason:"scheduling-timeout",message:Y.failedSchedulingMessage??`Pod could not be scheduled within ${Math.round(Z/1000)}s.`};if(X.containerRunning&&!X.containerReady)return{kind:"warming-daemon",since:J};if(Y.hasPulling&&!Y.hasPulled)return{kind:"pulling-image",since:J};if(W==="ContainerCreating"||W==="PodInitializing"||X.scheduled&&!X.containerRunning)return{kind:"starting-container",since:J};if(X.scheduledFalseReason==="Unschedulable"||Y.lastFailedSchedulingAt!==void 0&&!X.scheduled)return{kind:"waiting-for-capacity",since:J,message:Y.failedSchedulingMessage??X.scheduledFalseMessage,nodeClaim:Y.nominatedNodeClaim};return{kind:"claiming",since:J}}function Md1($){return $.kind==="ready"||$.kind==="failed"}function zG$($){switch($.kind){case"claiming":return 0;case"waiting-for-capacity":return 1;case"pulling-image":return 2;case"starting-container":return 3;case"warming-daemon":return 4;case"ready":case"failed":return 99}}function kd1($){switch($.kind){case"claiming":case"pulling-image":case"starting-container":case"warming-daemon":return $.kind;case"waiting-for-capacity":return`waiting-for-capacity:${$.message??""}:${$.nodeClaim??""}`;case"ready":return"ready";case"failed":return`failed:${$.reason}:${$.message}`}}async function te8($,Z,G,X,Q,Y,J,W){let K=`/api/v1/namespaces/${encodeURIComponent(Z)}/pods?watch=true&labelSelector=${encodeURIComponent(`${ie8}=${G}`)}`;return UH1({kc:$,path:K,signal:X,label:`pod/${G}`,onEvent:(U)=>{if(U.type!=="ADDED"&&U.type!=="MODIFIED")return;let F=U.object;if(F.metadata?.name)W(F.metadata.name);oe8(F,Q,J),Y("pod")}})}function oe8($,Z,G){let Q=($.status?.conditions??[]).find((J)=>J.type==="PodScheduled");if(Q?.status==="True")Z.pod.scheduled=!0,Z.pod.scheduledFalseReason=void 0,Z.pod.scheduledFalseMessage=void 0;else if(Q?.status==="False")Z.pod.scheduled=!1,Z.pod.scheduledFalseReason=Q.reason,Z.pod.scheduledFalseMessage=Q.message;let Y=($.status?.containerStatuses??[]).find((J)=>J.name===ne8);if(Y)Z.pod.containerWaitingReason=Y.state?.waiting?.reason,Z.pod.containerRunning=!!Y.state?.running,Z.pod.containerReady=Y.ready===!0}async function re8($,Z,G,X,Q,Y){let J=`/apis/${S9.CLAIM_API_GROUP}/${S9.CLAIM_API_VERSION}/namespaces/${encodeURIComponent(Z)}/${S9.CLAIM_PLURAL}?watch=true&fieldSelector=${encodeURIComponent(`metadata.name=${G}`)}`;return UH1({kc:$,path:J,signal:X,label:`sandboxclaim/${G}`,onEvent:(W)=>{if(W.type!=="ADDED"&&W.type!=="MODIFIED")return;let U=W.object.status?.conditions?.find((F)=>F.type==="Ready");if(!U)return;if(U.status==="True")Q.sandbox.ready=!0,Q.sandbox.notReadyReason=void 0,Q.sandbox.notReadyMessage=void 0;else Q.sandbox.ready=!1,Q.sandbox.notReadyReason=U.reason,Q.sandbox.notReadyMessage=U.message;Y("sandbox")}})}async function ae8($,Z,G,X,Q,Y,J,W){let K=await Promise.race([X,new Promise((F)=>{if(Q.aborted){F(G);return}Q.addEventListener("abort",()=>F(G),{once:!0})})]);if(Q.aborted)return;let U=`/api/v1/namespaces/${encodeURIComponent(Z)}/events?watch=true&fieldSelector=${encodeURIComponent(`involvedObject.name=${K},involvedObject.kind=Pod`)}`;return UH1({kc:$,path:U,signal:Q,label:`events/${G}`,onEvent:(F)=>{if(F.type!=="ADDED"&&F.type!=="MODIFIED")return;let H=F.object,N=H.reason;if(!N)return;switch(N){case"Pulling":Y.events.hasPulling=!0;break;case"Pulled":Y.events.hasPulling=!0,Y.events.hasPulled=!0;break;case"FailedScheduling":Y.events.lastFailedSchedulingAt=W(),Y.events.failedSchedulingMessage=H.message;break;case"Nominated":{let O=H.message?.match(/nodeclaim\/([\w-]+)/);if(O)Y.events.nominatedNodeClaim=O[1];break}default:return}J("event")}})}async function PG$($){let{kc:Z,namespace:G,labelSelector:X,signal:Q,onDelete:Y}=$,J=`/apis/${S9.CLAIM_API_GROUP}/${S9.CLAIM_API_VERSION}/namespaces/${encodeURIComponent(G)}/${S9.CLAIM_PLURAL}?watch=true&labelSelector=${encodeURIComponent(X)}`;return UH1({kc:Z,path:J,signal:Q,label:"sandboxclaim-reaper",onEvent:(W)=>{if(W.type!=="DELETED")return;let K=W.object.metadata?.name;if(K)Y(K)}})}async function UH1($){let{kc:Z,path:G,signal:X,label:Q,onEvent:Y}=$,J=0;while(!X.aborted){try{let K=await IV(Z,{method:"GET",path:G,signal:X,headers:{accept:"application/json"}});if(!K.ok||!K.body){try{await K.body?.cancel()}catch{}throw Error(`watch handshake failed: ${K.status} ${K.statusText}`)}J=0;for await(let U of qd1(K.body)){if(X.aborted)return;try{Y(U)}catch(F){console.warn(`[lifecycle-watcher] ${Q} onEvent threw: ${F instanceof Error?F.message:String(F)}`)}}}catch(K){if(X.aborted)return;let U=K instanceof Error?K.message:String(K);console.warn(`[lifecycle-watcher] ${Q} watch ended: ${U}`)}if(X.aborted)return;let W=gZ(5000,250,J,2,0);J+=1,await j6(W,{signal:X}).catch(()=>{})}}var ie8="studio.decocms.com/sandbox-handle",ne8="sandbox",pe8=300000;var AG$=D(()=>{A7();Ki();YH1()});import{createHash as se8,randomBytes as ee8,randomUUID as $14}from"crypto";import*as qG$ from"net";import{PassThrough as Z14}from"stream";function G14($){if($ instanceof Error)return $.message;if($&&typeof $==="object"){let Z=$;if(Z.error instanceof Error)return Z.error.message;if(typeof Z.message==="string"&&Z.message)return Z.message}return String($)}class vd1{kind=kX;records=new Map;inflight=new V61;stateStore;previewUrlPattern;kubeConfig;portForward;namespace;sandboxTemplateName;envName;tokenGenerator;idleTtlMs;metrics;previewGateway;sentinelToken;closed=!1;claimWatchAbort=new AbortController;constructor($={}){this.stateStore=$.stateStore??null,this.previewUrlPattern=$.previewUrlPattern??null,this.kubeConfig=$.kubeConfig??N14(),this.portForward=new Qd1(this.kubeConfig),this.namespace=$.namespace??X14,this.sandboxTemplateName=$.sandboxTemplateName??Q14,this.envName=w14($.envName),this.tokenGenerator=$.tokenGenerator??(()=>ee8(J14).toString("hex")),this.idleTtlMs=$.idleTtlMs??K14,this.metrics=$.meter?H14($.meter):null,this.previewGateway=$.previewGateway&&$.previewUrlPattern?{...$.previewGateway}:null;let Z=$.sentinelToken?.trim()??"";this.sentinelToken=Z.length>0?Z:null,this.startClaimReaper()}startClaimReaper(){let $=["app.kubernetes.io/managed-by=studio","app.kubernetes.io/name=studio-sandbox",...this.envName?[`${hY.env}=${this.envName}`]:[]].join(",");PG$({kc:this.kubeConfig,namespace:this.namespace,labelSelector:$,signal:this.claimWatchAbort.signal,onDelete:(Z)=>this.invalidateRecord(Z)})}async ensure($,Z={}){let G=QO($,Z.branch??Z.repo?.branch??null);return this.inflight.run(G,()=>S61(this.stateStore,$,kX,(X)=>this.ensureLocked($,G,Z,X)))}async delete($){let Z=await this.getRecord($);if(this.records.delete($),Z)this.closeForwarder(Z.daemonForward),this.metrics?.active.add(-1,_d1(Z.tenant));if(await this.deleteHttpRouteIfManaged($).catch((G)=>{console.warn(`[${E7}] HTTPRoute delete failed for ${$}: ${G instanceof Error?G.message:String(G)}`)}),await EO(this.kubeConfig,this.namespace,$),this.stateStore)if(Z)await this.stateStore.delete(Z.id,kX);else await this.stateStore.deleteByHandle(kX,$)}async alive($){return await WF(this.kubeConfig,this.namespace,$)!==void 0}watchClaimLifecycle($,Z){return jG$({kc:this.kubeConfig,namespace:this.namespace,claimName:$,signal:Z})}async getPreviewUrl($){let Z=await this.getRecord($);if(!Z)return null;return this.composePreviewUrl(Z)}async proxyDaemonRequest($,Z,G){let X=await this.getRecord($);if(!X&&this.previewUrlPattern&&this.stateStore){let K=await this.stateStore.getByHandle(kX,$),U=K?.state,F=U?.token;if(K&&F){let N=`http://${U?.adoptedSandboxName??$}.${this.namespace}.svc.cluster.local:${wO}`;try{let O=await Oi(N,F,Z,G);if(O.status!==404)return O;try{await O.body?.cancel()}catch{}}catch{}}}if(!X)X=await this.resurrectByHandle($);if(!X)return new Response(JSON.stringify({error:"sandbox not found"}),{status:404,headers:{"content-type":"application/json"}});let Q=X,Y=performance.now(),J=0,W=!(G.body instanceof ReadableStream);try{let K=await Oi(X.daemonUrl,X.token,Z,G);if(K.status===401&&W){this.invalidateRecord($);let U=await this.getRecord($).catch(()=>null)??await this.resurrectByHandle($).catch(()=>null);if(U)Q=U,K=await Oi(U.daemonUrl,U.token,Z,G)}return J=K.status,K}catch(K){if(!W)throw K;this.invalidateRecord($);let U=await this.resurrectByHandle($)??await this.getRecord($).catch(()=>null);if(!U)throw K;Q=U;let F=await Oi(U.daemonUrl,U.token,Z,G);return J=F.status,F}finally{this.recordProxyDuration("daemon",J,Q,performance.now()-Y)}}async adoptLiveClaim($,Z){if(this.records.has(Z))return!0;let G=await WF(this.kubeConfig,this.namespace,Z).catch(()=>{return});if(!G||G.metadata?.deletionTimestamp)return!1;return await this.inflight.run(Z,async()=>{let Q=this.records.get(Z);if(Q)return this.toSandbox(Q);let Y=await this.adopt($,Z,G);if(!Y)throw Error(`cannot adopt live claim ${Z}`);return S61(this.stateStore,$,kX,(J)=>this.finish(Y,J,!0,!0,"adopt"))}).catch(()=>null)!=null}async resolvePreviewUpstreamUrl($){if(this.previewUrlPattern)return`http://${await this.resolveServiceNameForHandle($)}.${this.namespace}.svc.cluster.local:${wO}`;let Z=await this.getRecord($);if(Z)return Z.daemonUrl;let G=await this.resurrectByHandle($);return G?G.daemonUrl:null}async resolveServiceNameForHandle($){let Z=this.records.get($);if(Z)return Z.adoptedSandboxName;if(this.stateStore){let X=(await this.stateStore.getByHandle(kX,$).catch(()=>null))?.state?.adoptedSandboxName;if(X)return X}return $}async proxyPreviewRequest($,Z){let G=performance.now(),X=this.records.get($)??null,Q=0;try{let Y=await this.resolvePreviewUpstreamUrl($);if(!Y){Q=404;let B=Sd1(404,{error:"sandbox not found"});return B.headers.set(qV,"1"),B}let J=new URL(Z.url);if((J.pathname==="/_sandbox"||J.pathname.startsWith("/_sandbox/")||J.pathname==="/_decopilot_vm"||J.pathname.startsWith("/_decopilot_vm/"))&&Z.method!=="GET")return Q=404,Sd1(404,{error:"not found"});let K=(B)=>`${B}${J.pathname}${J.search}`,U=new Headers(Z.headers);for(let B of U14)U.delete(B);let F=Z.method!=="GET"&&Z.method!=="HEAD",H={method:Z.method,headers:U,body:F?Z.body:void 0,redirect:"manual",signal:Z.signal,duplex:F?"half":void 0},N;try{N=await fetch(K(Y),H)}catch(B){let L=`${Y}${J.pathname}`;if(console.warn(`[${E7}] preview fetch to ${L} failed: ${B instanceof Error?B.message:String(B)}`),Z.method==="GET"||Z.method==="HEAD"){if(this.invalidateRecord($),await this.resurrectByHandle($).catch(()=>null)){let j=await this.resolvePreviewUpstreamUrl($);if(j)try{N=await fetch(K(j),H);let P=new Headers;for(let[R,A]of N.headers.entries())if(!RG$.includes(R.toLowerCase()))P.set(R,A);return Q=N.status,new Response(N.body,{status:N.status,statusText:N.statusText,headers:P})}catch(P){console.warn(`[${E7}] preview fetch retry to ${L} failed: ${P instanceof Error?P.message:String(P)}`)}}}else this.invalidateRecord($);Q=502;let w=Sd1(502,{error:"sandbox daemon unreachable"});return w.headers.set(qV,"1"),w}let O=new Headers;for(let[B,L]of N.headers.entries())if(!RG$.includes(B.toLowerCase()))O.set(B,L);return Q=N.status,new Response(N.body,{status:N.status,statusText:N.statusText,headers:O})}finally{this.recordProxyDuration("preview",Q,X,performance.now()-G,$)}}async ensureLocked($,Z,G,X){if(G.image)console.warn(`[${E7}] opts.image ignored (template ${this.sandboxTemplateName} pins image): got ${G.image}`);if(X){let J=await X.get($,kX);if(J){let W=await this.rehydrate($,Z,J);if(W)return this.finish(W,X,!1,!0,"resume");await X.delete($,kX)}}let Q=await WF(this.kubeConfig,this.namespace,Z).catch(()=>{return});if(Q)if(Q.metadata?.deletionTimestamp)await ZH1(this.kubeConfig,this.namespace,Z).catch((J)=>{console.warn(`[${E7}] wait for terminating claim ${Z} failed: ${J instanceof Error?J.message:String(J)}`)});else{let J=await this.adopt($,Z,Q).catch((W)=>{return console.warn(`[${E7}] adopt ${Z} failed, recreating: ${W instanceof Error?W.message:String(W)}`),null});if(J)return this.finish(J,X,!0,!0,"adopt");await EO(this.kubeConfig,this.namespace,Z).catch(()=>{}),await ZH1(this.kubeConfig,this.namespace,Z).catch((W)=>{console.warn(`[${E7}] wait for deleted claim ${Z} failed: ${W instanceof Error?W.message:String(W)}`)})}let Y=await this.provision($,Z,G);return this.finish(Y,X,!0,!1,"fresh")}async finish($,Z,G,X,Q){let Y=this.records.get($.handle),J=Y!==void 0;if(Y&&Y.daemonForward!==$.daemonForward)this.closeForwarder(Y.daemonForward);if(this.records.set($.handle,$),G)await this.persist(Z,$);if(X)await QG$(this.kubeConfig,this.namespace,$.handle,this.computeShutdownTime()).catch((W)=>console.warn(`[${E7}] TTL refresh failed for ${$.handle}: ${W instanceof Error?W.message:String(W)}`));if(this.metrics){let W=_d1($.tenant);if(this.metrics.ensureOutcome.add(1,{...W,outcome:Q}),!J)this.metrics.active.add(1,W)}return this.toSandbox($)}buildEnvMap($,Z){let G={},X=[];for(let[Q,Y]of Object.entries($.env??{}))if(W14.has(Q))X.push(Q);else G[Q]=Y;if(X.length>0)console.warn(`[${E7}] opts.env keys overlap reserved bootstrap names and were dropped: ${X.join(",")}`);return{...G,DAEMON_TOKEN:Z.token,DAEMON_BOOT_ID:Z.daemonBootId,APP_ROOT:Z.workdir,PROXY_PORT:String(wO)}}buildClaim($,Z,G){let X=this.sentinelToken!==null,Q=X?[]:Object.entries(this.buildEnvMap(Z,G)).sort(([W],[K])=>W<K?-1:W>K?1:0).map(([W,K])=>({name:W,value:K})),Y=P14(Z),J=Object.keys(Y).length>0;return{apiVersion:`${S9.CLAIM_API_GROUP}/${S9.CLAIM_API_VERSION}`,kind:"SandboxClaim",metadata:{name:$,namespace:this.namespace,labels:{"app.kubernetes.io/name":"studio-sandbox","app.kubernetes.io/managed-by":"studio",...this.envName?{[hY.env]:this.envName}:{},...Cd1(Z.tenant)},...J?{annotations:Y}:{}},spec:{sandboxTemplateRef:{name:this.sandboxTemplateName},additionalPodMetadata:{labels:Cd1(Z.tenant,{[hY.role]:"claimed",[hY.sandboxHandle]:$,...this.envName?{[hY.env]:this.envName}:{}}),...J?{annotations:Y}:{}},env:Q,warmpool:X?"default":"none",lifecycle:{shutdownPolicy:"Delete",shutdownTime:this.computeShutdownTime()}}}}async provision($,Z,G){let X=this.tokenGenerator(),Q=$14(),Y=Vd1,J=this.buildClaim(Z,G,{token:X,daemonBootId:Q,workdir:Y});try{await Fi(this.kubeConfig,this.namespace,J)}catch(N){if(N instanceof Wi)await ZH1(this.kubeConfig,this.namespace,Z),await Fi(this.kubeConfig,this.namespace,J);else throw N}let W;try{W=await YG$(this.kubeConfig,this.namespace,Z),await QH1(this.kubeConfig,this.namespace,W)}catch(N){throw await EO(this.kubeConfig,this.namespace,Z).catch(()=>{}),N}try{await this.ensureServicePortForAdoptedSandbox(W),await this.ensureHttpRouteForHandle(Z,W,G.tenant??null)}catch(N){throw await EO(this.kubeConfig,this.namespace,Z).catch(()=>{}),N}let K=await this.openForwarder(W,wO,Z),U=`http://127.0.0.1:${K.localPort}`,F=this.workloadConfigPayload(G),H=Q;try{if(await DG$(U),this.sentinelToken!==null){let N=await KH1(U);if(N)H=N.bootId;await Ni(U,this.sentinelToken,F??{},{rotateToken:X})}else if(F)await Ni(U,X,F);if(G.orgFsConfigJson)await LG$(U,X,G.orgFsConfigJson).catch((N)=>console.warn("[org-fs] sidecar config relay failed",N))}catch(N){throw this.closeForwarder(K),await this.deleteHttpRouteIfManaged(Z).catch(()=>{}),await EO(this.kubeConfig,this.namespace,Z).catch(()=>{}),N}return{id:$,handle:Z,adoptedSandboxName:W,token:X,workdir:Y,daemonUrl:U,daemonForward:K,workload:G.workload??null,daemonBootId:H,tenant:G.tenant??null,ensureOpts:R14(G)}}workloadConfigPayload($){return Ic1({runtime:$?.workload?.runtime??"node",packageManager:$?.workload?.packageManager?{name:$.workload.packageManager,...$.workload.packageManagerPath?{path:$.workload.packageManagerPath}:{}}:null,repo:$?.repo??null,port:$?.workload?.devPort??Y14,tenant:$?.tenant??void 0})}async rebootstrapDaemon($,Z,G){if(this.sentinelToken===null)return!1;let X=this.workloadConfigPayload(G)??{};try{return await Ni($,this.sentinelToken,X,{rotateToken:Z}),!0}catch(Q){if(Q instanceof WH1&&Q.status===401)try{return await Ni($,Z,X,{rotateToken:Z}),!0}catch(Y){return console.warn(`[${E7}] re-bootstrap retry with claim token failed: ${Y instanceof Error?Y.message:String(Y)}`),!1}return console.warn(`[${E7}] re-bootstrap failed: ${Q instanceof Error?Q.message:String(Q)}`),!1}}async ensureServicePortForAdoptedSandbox($){if(!this.previewGateway||!this.previewUrlPattern)return;await HG$(this.kubeConfig,this.namespace,$,{name:"daemon",port:wO,targetPort:wO})}async ensureHttpRouteForHandle($,Z,G){if(!this.previewGateway||!this.previewUrlPattern)return;let X=I14(this.previewUrlPattern,$);if(!X)throw new r9(`Unable to derive preview hostname for ${$} from pattern: ${this.previewUrlPattern}`);let Q={apiVersion:`${Hi.API_GROUP}/${Hi.API_VERSION}`,kind:"HTTPRoute",metadata:{name:$,namespace:this.namespace,labels:Cd1(G??void 0,{[hY.role]:"claimed",[hY.sandboxHandle]:$,"app.kubernetes.io/name":"studio-sandbox","app.kubernetes.io/managed-by":"studio",...this.envName?{[hY.env]:this.envName}:{}})},spec:{parentRefs:[{kind:"Gateway",group:"gateway.networking.k8s.io",name:this.previewGateway.name,namespace:this.previewGateway.namespace}],hostnames:[X],rules:[{backendRefs:[{group:"",kind:"Service",name:Z,port:wO}]}]}};await GH1(this.kubeConfig,this.namespace,Q)}async deleteHttpRouteIfManaged($){if(!this.previewGateway)return;await XH1(this.kubeConfig,this.namespace,$)}async rehydrate($,Z,G){let X=G.state;if(!X.adoptedSandboxName&&!X.podName||!X.token)return null;let Q=await WF(this.kubeConfig,this.namespace,Z).catch(()=>{return});if(!Q||!IG$(Q))return null;let Y=Q.status?.sandbox?.name??X.adoptedSandboxName??X.podName??Z,J=await this.openAndProbeDaemon(Y,Z);if(!J)return null;if(X.daemonBootId&&X.daemonBootId!==J.bootId){if(this.sentinelToken!==null){if(!await this.rebootstrapDaemon(J.daemonUrl,X.token,X.ensureOpts??null))return this.closeForwarder(J.daemonForward),null}else console.warn(`[${E7}] daemon restart detected (handle=${Z}): stored bootId=${X.daemonBootId} live bootId=${J.bootId}`);await this.stateStore?.put($,kX,{handle:Z,state:{...X,daemonBootId:J.bootId}}).catch((W)=>console.warn(`[${E7}] bootId persist failed for ${Z}: ${W instanceof Error?W.message:String(W)}`))}return{id:$,handle:Z,adoptedSandboxName:Y,token:X.token,workdir:X.workdir??Vd1,daemonUrl:J.daemonUrl,daemonForward:J.daemonForward,workload:X.workload??null,daemonBootId:J.bootId,tenant:X.tenant??null,ensureOpts:X.ensureOpts??null}}async adopt($,Z,G){if(!IG$(G))return null;let X=G.status?.sandbox?.name??Z;if(this.sentinelToken!==null)return null;let Q=O14(G);if(!Q)return null;let Y=await this.openAndProbeDaemon(X,Z);if(!Y)return null;let J=A14(G);if(this.previewGateway)await this.ensureServicePortForAdoptedSandbox(X).catch((W)=>{console.warn(`[${E7}] Service port backfill failed for ${Z}: ${W instanceof Error?W.message:String(W)}`)}),await this.ensureHttpRouteForHandle(Z,X,J).catch((W)=>{console.warn(`[${E7}] HTTPRoute backfill failed for ${Z}: ${W instanceof Error?W.message:String(W)}`)});return{id:$,handle:Z,adoptedSandboxName:X,token:Q,workdir:Vd1,daemonUrl:Y.daemonUrl,daemonForward:Y.daemonForward,workload:null,daemonBootId:Y.bootId,tenant:J,ensureOpts:null}}async openAndProbeDaemon($,Z){let G=await this.openForwarder($,wO,Z).catch(()=>null);if(!G)return null;let X=`http://127.0.0.1:${G.localPort}`,Q=await KH1(X);if(!Q)return this.closeForwarder(G),null;return{daemonForward:G,daemonUrl:X,bootId:Q.bootId}}async getRecord($){let Z=this.records.get($);if(Z)return Z;if(!this.stateStore)return null;let G=await this.stateStore.getByHandle(kX,$);if(!G)return null;let X=await this.rehydrate(G.id,$,G);if(X)this.records.set($,X);return X}async resurrectByHandle($){if(!this.stateStore)return null;let Z=await this.stateStore.getByHandle(kX,$);if(!Z)return null;let G=Z.state.ensureOpts;if(!G)return null;return await this.ensure(Z.id,G),this.records.get($)??null}invalidateRecord($){let Z=this.records.get($);if(!Z)return;this.records.delete($),this.closeForwarder(Z.daemonForward)}recordProxyDuration($,Z,G,X,Q){if(!this.metrics)return;this.metrics.proxyDurationMs.record(X,{..._d1(G?.tenant??null),source:$,sandbox_handle:G?.handle??Q??"",status_code:Z||0})}composePreviewUrl($){if(this.previewUrlPattern)return C61(this.previewUrlPattern,$.handle);return`http://127.0.0.1:${$.daemonForward.localPort}/`}toSandbox($){return{handle:$.handle,workdir:$.workdir,previewUrl:this.composePreviewUrl($)}}async persist($,Z){if(!$)return;let G={adoptedSandboxName:Z.adoptedSandboxName,token:Z.token,workdir:Z.workdir,workload:Z.workload,daemonBootId:Z.daemonBootId,tenant:Z.tenant,...Z.ensureOpts?{ensureOpts:Z.ensureOpts}:{}};await $.put(Z.id,kX,{handle:Z.handle,state:G})}computeShutdownTime(){return new Date(Date.now()+this.idleTtlMs).toISOString()}openForwarder($,Z,G=$){let X=B14(G,Z);return new Promise((Q,Y)=>{let J=(W,K)=>{let U=qG$.createServer((F)=>this.handleForwardedConnection(F,$,Z,G));U.once("error",(F)=>{if(F.code==="EADDRINUSE"&&K<F14){try{U.close()}catch{}let H=bd1+(W-bd1+1)%MG$;J(H,K+1);return}Y(F)}),U.listen(W,"127.0.0.1",()=>{let F=U.address();if(!F||typeof F==="string"){U.close(),Y(Error("port-forward listener failed to bind"));return}Q({server:U,localPort:F.port})})};J(X,0)})}handleForwardedConnection($,Z,G,X){let Q=new Z14,Y=null,J=!1,W=()=>{if(J)return;if(J=!0,Q.destroy(),Y)try{Y.close()}catch{}if(!$.destroyed)$.destroy()};$.pipe(Q),$.on("error",W),$.on("close",W),this.portForward.portForward(this.namespace,Z,[G],$,null,Q).then((K)=>{let U=typeof K==="function"?K():K;if(!U){W();return}if(Y=U,Y.on("close",W),Y.on("error",()=>{this.invalidateRecord(X),W()}),J)try{Y.close()}catch{}}).catch((K)=>{console.warn(`[${E7}] port-forward to ${Z}:${G} failed: ${G14(K)}`),this.invalidateRecord(X),W()})}closeForwarder($){$.server.close((Z)=>{if(Z)console.warn(`[${E7}] port-forward close on :${$.localPort} errored: ${Z instanceof Error?Z.message:String(Z)}`)})}close(){if(this.closed)return;this.closed=!0,this.claimWatchAbort.abort();for(let $ of this.records.values())this.closeForwarder($.daemonForward);this.records.clear()}}function H14($){return{active:$.createUpDownCounter("studio.sandbox.active",{description:"Active sandbox count, by runner kind and owning org. Cross-checks the cAdvisor-derived count from the cluster \u2014 divergence between the two indicates orphaned claims (mesh deleted but K8s didn't reap) or unattributed pods.",unit:"{sandbox}"}),ensureOutcome:$.createCounter("studio.sandbox.ensure.outcome",{description:"Outcome of each ensure() call: fresh provision, resume from state-store after restart, or adopt of a cluster-side claim mesh didn't know about. Cold-start ratio is the primary input for warm-pool sizing.",unit:"{call}"}),proxyDurationMs:$.createHistogram("studio.sandbox.proxy.duration_ms",{description:"Wall-clock latency of mesh-mediated requests to the sandbox daemon: tool exec proxies (source=daemon) and preview iframe traffic (source=preview).",unit:"ms"})}}function N14(){let $=new kf;return $.loadFromDefault(),$}function IG$($){return Boolean($.status?.conditions?.some((Z)=>Z.type==="Ready"&&Z.status==="True"))}function O14($){let Z=$.spec?.env;if(!Z)return null;for(let G of Z)if(G.name==="DAEMON_TOKEN"&&G.value)return G.value;return null}function B14($,Z){let G=se8("sha256").update(`${$}:${Z}`).digest();return bd1+G.readUInt32BE(0)%MG$}function Sd1($,Z){return new Response(JSON.stringify(Z),{status:$,headers:{"content-type":"application/json","access-control-allow-origin":"*"}})}function TG$($){let Z=$.slice(0,L14);return D14.test(Z)?Z:""}function w14($){if($===void 0)return null;let Z=$.trim();if(Z==="")return null;if(!E14.test(Z))throw Error(`AgentSandboxProvider: envName=${JSON.stringify(Z)} is not a valid DNS-label-safe environment name (lowercase alphanumeric or '-', starts with a letter, ends alphanumeric, \u226432 chars). Mesh sets this from STUDIO_ENV; check the studio chart's configMap.`);return Z}function Cd1($,Z={}){let G={...Z};if($){let X=TG$($.orgId),Q=TG$($.userId);if(X)G[hY.orgId]=X;if(Q)G[hY.userId]=Q}return G}function TV($){let Z="";for(let G of $){let X=G.codePointAt(0)??0;Z+=X<32||X===127?" ":G}return Z.slice(0,z14)}function j14($){try{let Z=new URL($);return Z.username="",Z.password="",Z.toString()}catch{return""}}function P14($){let Z={},G=$.tenant;if(G?.orgSlug)Z[Q3.orgSlug]=TV(G.orgSlug);if(G?.orgName)Z[Q3.orgName]=TV(G.orgName);if(G?.userEmail)Z[Q3.userEmail]=TV(G.userEmail);if(G?.userName)Z[Q3.userName]=TV(G.userName);let X=$.repo;if(X){if(X.displayName)Z[Q3.gitRepo]=TV(X.displayName);let Q=j14(X.cloneUrl);if(Q)Z[Q3.gitRepoUrl]=TV(Q);let Y=$.branch??X.branch;if(Y)Z[Q3.gitBranch]=TV(Y)}return Z}function A14($){let Z=$.metadata?.labels;if(!Z)return null;let G=Z[hY.orgId],X=Z[hY.userId];if(!G||!X)return null;let Q=$.metadata?.annotations??{};return{orgId:G,userId:X,orgSlug:Q[Q3.orgSlug],orgName:Q[Q3.orgName],userEmail:Q[Q3.userEmail],userName:Q[Q3.userName]}}function _d1($){return{org_id:$?.orgId??"",user_id:$?.userId??"",runner_kind:kX}}function R14($){let Z={};if($.repo)Z.repo=$.repo;if($.workload)Z.workload=$.workload;if($.env&&Object.keys($.env).length>0)Z.env=$.env;if($.tenant)Z.tenant=$.tenant;return Object.keys(Z).length>0?Z:null}function I14($,Z){try{return new URL(C61($,Z)).hostname||null}catch{return null}}var kX="agent-sandbox",E7="AgentSandboxProvider",qV="x-sandbox-preview-not-ready",X14="agent-sandbox-system",Q14="studio-sandbox",wO=9000,Y14=3000,Vd1="/app",J14=32,W14,K14=900000,U14,RG$,bd1=40000,MG$=1e4,F14=256,hY,Q3,D14,L14=63,E14,z14=253;var kG$=D(()=>{jd1();EG$();b61();YH1();Ki();AG$();W14=new Set(["DAEMON_TOKEN","DAEMON_BOOT_ID","APP_ROOT","PROXY_PORT"]),U14=["cookie","host","connection","keep-alive","proxy-authenticate","proxy-authorization","te","trailer","transfer-encoding","accept-encoding","content-length","upgrade"],RG$=["connection","keep-alive","transfer-encoding","content-encoding","content-length"];hY={role:"studio.decocms.com/role",sandboxHandle:"studio.decocms.com/sandbox-handle",orgId:"studio.decocms.com/org-id",userId:"studio.decocms.com/user-id",env:"studio.decocms.com/env"},Q3={orgSlug:"studio.decocms.com/org-slug",orgName:"studio.decocms.com/org-name",userEmail:"studio.decocms.com/user-email",userName:"studio.decocms.com/user-name",gitRepo:"studio.decocms.com/git-repo",gitRepoUrl:"studio.decocms.com/git-repo-url",gitBranch:"studio.decocms.com/git-branch"},D14=/^([A-Za-z0-9]([-A-Za-z0-9_.]*[A-Za-z0-9])?)?$/;E14=/^[a-z]([a-z0-9-]{0,30}[a-z0-9])?$/});var VG$={};p4(VG$,{waitForSandboxReady:()=>QH1,getSandboxClaim:()=>WF,getHttpRoute:()=>UG$,deleteSandboxClaim:()=>EO,deleteHttpRoute:()=>XH1,createSandboxClaim:()=>Fi,applyHttpRoute:()=>GH1,SandboxTimeoutError:()=>RV,SandboxError:()=>r9,PREVIEW_NOT_READY_HEADER:()=>qV,KubeConfig:()=>kf,K8S_CONSTANTS:()=>S9,HTTPROUTE_CONSTANTS:()=>Hi,AgentSandboxProvider:()=>vd1});var fd1=D(()=>{jd1();Ki();YH1();kG$()});class FH1{kind=zO;userSub;dispatch;stateStore;records=new Map;constructor($){if(!$.userSub)throw Error("DesktopSandboxProvider requires userSub");if(!$.dispatch)throw Error("DesktopSandboxProvider requires dispatch");this.userSub=$.userSub,this.dispatch=$.dispatch,this.stateStore=$.stateStore??null}async ensure($,Z={}){let G=Z.branch??Z.repo?.branch,X=QO($,G),Q=this.records.get(X);if(Q){if(await this.probeHealth(X))return this.toSandbox(Q);if(this.records.delete(X),this.stateStore)await this.stateStore.deleteByHandle(zO,X).catch(()=>{})}else if(this.stateStore){let N=(await this.stateStore.getByHandle(zO,X))?.state,O=N?.sandboxApiUrl;if(O){if(await this.probeHealth(X)){let B={handle:X,sandboxApiUrl:O,previewUrl:N?.previewUrl??O};return this.records.set(X,B),this.toSandbox(B)}await this.stateStore.deleteByHandle(zO,X).catch(()=>{})}}let Y=aU({userName:Z.tenant?.userName,userEmail:Z.tenant?.userEmail}),J=JSON.stringify({handle:X,repo:Z.repo,branch:G,...Z.workload?{workload:Z.workload}:{},...Y?{operator:Y}:{},...Z.offloadAllowedHosts?{offloadAllowedHosts:Z.offloadAllowedHosts}:{},...Z.offloadAllowSameHostDev!==void 0?{offloadAllowSameHostDev:Z.offloadAllowSameHostDev}:{},...Z.orgFsConfigJson?{orgFsConfigJson:Z.orgFsConfigJson}:{}}),W=await this.dispatchJson("POST","/api/sandboxes",J),K=JSON.parse(W);if(typeof K.sandboxApiUrl!=="string")throw Error("desktop ensure: daemon did not return a sandboxApiUrl string");let U=typeof K.previewUrl==="string"?K.previewUrl:K.sandboxApiUrl,F={handle:X,sandboxApiUrl:K.sandboxApiUrl,previewUrl:U};if(this.records.set(X,F),this.stateStore)await this.stateStore.put($,zO,{handle:X,state:{handle:X,sandboxApiUrl:K.sandboxApiUrl,previewUrl:U}});return this.toSandbox(F)}async proxyDaemonRequest($,Z,G){let X=Z.startsWith("/")?Z:`/${Z}`,Q=X.startsWith("/_sandbox/")?X.slice(9):X,Y=`/_sandbox/${encodeURIComponent($)}${Q}`,J=new Headers(G.headers);for(let z of["host","cookie","connection","keep-alive","transfer-encoding","upgrade","authorization"])J.delete(z);let W={};J.forEach((z,j)=>{W[j]=z});let K;if(G.body!=null)K=await q14(G.body);let F=this.dispatch(this.userSub,{method:G.method,path:Y,headers:W,body:K},{signal:G.signal})[Symbol.asyncIterator](),H=T14(),N=200,O={"content-type":"application/octet-stream"},B=[];try{while(!0){let z=await F.next();if(z.done)break;let j=z.value;if(j.headers){N=j.headers.status,O=j.headers.headers;break}if(j.data!=null){let P=H.push(j.data);if(P.length)B.push(P)}}}catch(z){let j=z instanceof Error?z.message:"dispatch error";return new Response(JSON.stringify({error:j}),{status:502,headers:{"content-type":"application/json"}})}let L=!1,w=new ReadableStream({async start(z){for(let j of B)z.enqueue(j)},async pull(z){try{while(!0){let j=await F.next();if(L)return;if(j.done){let R=H.flush();if(R.length)z.enqueue(R);z.close();return}let P=j.value;if(P.data!=null){let R=H.push(P.data);if(R.length){z.enqueue(R);return}}}}catch(j){if(!L)z.error(j)}},cancel(){L=!0,F.return?.()}});return new Response(w,{status:N,headers:O})}async alive($){return this.probeHealth($)}async probeHealth($){let Z=new AbortController,G=setTimeout(()=>Z.abort(),3000);try{return await this.dispatchJson("GET",`/api/sandboxes/${encodeURIComponent($)}`,void 0,Z.signal),!0}catch{return!1}finally{clearTimeout(G)}}async forgetHandle($){if(this.records.delete($),this.stateStore)await this.stateStore.deleteByHandle(zO,$).catch(()=>{})}async delete($){if(this.records.delete($),this.stateStore)await this.stateStore.deleteByHandle(zO,$).catch(()=>{});try{await this.dispatchJson("DELETE",`/api/sandboxes/${encodeURIComponent($)}`)}catch(Z){if(!(Z instanceof Error?Z.message:String(Z)).includes("404"))throw Z}}async getPreviewUrl($){return(await this.resolveRecord($))?.previewUrl??null}async localWorkdir($){return null}async*watchClaimLifecycle($,Z){yield{kind:"ready"}}toSandbox($){return{handle:$.handle,workdir:$.sandboxApiUrl,previewUrl:$.previewUrl}}async resolveRecord($){let Z=this.records.get($);if(Z)return Z;if(!this.stateStore)return null;let X=(await this.stateStore.getByHandle(zO,$))?.state,Q=X?.sandboxApiUrl;if(!Q)return null;let Y={handle:$,sandboxApiUrl:Q,previewUrl:X?.previewUrl??Q};return this.records.set($,Y),Y}async dispatchJson($,Z,G,X){let Q={accept:"application/json"};if(G!==void 0)Q["content-type"]="application/json";let Y=this.dispatch(this.userSub,{method:$,path:Z,headers:Q,body:G},{signal:X}),J=null,W="";for await(let U of Y)if(U.headers)J=U.headers.status;else if(U.data!=null)W+=U.data;let K=Buffer.from(W,"base64").toString("utf8");if(J!=null&&(J<200||J>=300))throw Error(`daemon returned ${J}: ${K}`);return K}}function SG$($){return new FH1($)}function T14(){let $="";return{push(Z){if(Z.length===0)return xd1;$+=Z;let G=$.length-$.length%4;if(G===0)return xd1;let X=$.slice(0,G);return $=$.slice(G),new Uint8Array(Buffer.from(X,"base64"))},flush(){if($.length===0)return xd1;let Z=$;return $="",new Uint8Array(Buffer.from(Z,"base64"))}}}async function q14($){if(typeof $==="string")return $;if($ instanceof ArrayBuffer)return Buffer.from($).toString("utf8");if(ArrayBuffer.isView($))return Buffer.from($.buffer,$.byteOffset,$.byteLength).toString("utf8");if($ instanceof URLSearchParams)return $.toString();return await new Response($).text()}var zO="user-desktop",xd1;var CG$=D(()=>{b61();_61();xd1=new Uint8Array(0)});var _G$={};p4(_G$,{createDesktopProvider:()=>SG$,DesktopSandboxProvider:()=>FH1});var bG$=D(()=>{CG$()});var hG$={};p4(hG$,{subscribeLifecycle:()=>Bi,getSandboxProviderByKind:()=>gd1,getOrInitSharedRunner:()=>v14,buildDesktopProvider:()=>HH1,__resetSharedLifecyclesForTesting:()=>h14});function yG$($,Z){let G=vG$[$];if(G)return Promise.resolve(G);let X=yd1[$];if(X)return X;let Q=Z().then((Y)=>{return vG$[$]=Y,Y}).finally(()=>{delete yd1[$]});return yd1[$]=Q,Q}function V14(){let $=process.env.STUDIO_SANDBOX_PREVIEW_URL_PATTERN;return $&&$.trim()!==""?$:void 0}function S14(){let $=process.env.STUDIO_SANDBOX_TEMPLATE_NAME;return $&&$.trim()!==""?$:void 0}function C14(){let $=process.env.STUDIO_ENV;return $&&$.trim()!==""?$:void 0}function _14(){let $=process.env.STUDIO_SANDBOX_SENTINEL_TOKEN;return $&&$.trim()!==""?$:void 0}function b14(){let $=process.env.STUDIO_SANDBOX_PREVIEW_GATEWAY_NAME?.trim(),Z=process.env.STUDIO_SANDBOX_PREVIEW_GATEWAY_NAMESPACE?.trim();if(!$&&!Z)return;if(!$||!Z)throw Error("STUDIO_SANDBOX_PREVIEW_GATEWAY_NAME and STUDIO_SANDBOX_PREVIEW_GATEWAY_NAMESPACE must both be set, or both unset. Half-configured per-claim HTTPRoute routing would silently fail to attach.");return{name:$,namespace:Z}}async function gG$($,Z){let G=new JO(Z),X=V14();switch($){case"agent-sandbox":{let{AgentSandboxProvider:Q}=await Promise.resolve().then(() => (fd1(),VG$));return new Q({stateStore:G,previewUrlPattern:X,sandboxTemplateName:S14(),envName:C14(),previewGateway:b14(),sentinelToken:_14(),meter:m6})}case"user-desktop":throw Error("user-desktop provider cannot be instantiated without a per-run link claim \u2014 call resolveSandboxProvider, which binds the link before constructing the provider.");default:throw Error(`Unknown sandbox provider kind: ${String($)}`)}}async function HH1($,Z){let{DesktopSandboxProvider:G}=await Promise.resolve().then(() => (bG$(),_G$)),{getProxyDispatch:X}=await Promise.resolve().then(() => (ud1(),hd1)),Q=new JO($.db);if(!Z)throw Error("buildDesktopProvider: userSub must be a non-empty string");let Y=X();return new G({userSub:Z,dispatch:Y,stateStore:Q})}function gd1($,Z){return yG$(Z,()=>gG$(Z,$.db))}async function v14(){let $;try{$=bW()}catch(G){return console.warn("[lifecycle] cannot resolve sandbox runner:",G instanceof Error?G.message:String(G)),null}return await yG$($,()=>gG$($,p6().db))}function Bi($,Z,G){let X=jO.get(Z);if(X){if(X.terminated){if(X.lastPhase)try{G(X.lastPhase)}catch{}return{unsubscribe:y14}}if(X.listeners.add(G),X.lastPhase)try{G(X.lastPhase)}catch{}return fG$(Z,X,G)}let Q=new AbortController,Y={lastPhase:null,terminated:!1,listeners:new Set([G]),abort:Q};return jO.set(Z,Y),g14($,Z,Y),fG$(Z,Y,G)}function y14(){}function fG$($,Z,G){return{unsubscribe(){if(jO.get($)!==Z)return;if(Z.listeners.delete(G),Z.listeners.size===0)jO.delete($),Z.abort.abort()}}}async function g14($,Z,G){let X=null;try{for await(let Q of $.watchClaimLifecycle(Z,G.abort.signal)){if(G.abort.signal.aborted)break;G.lastPhase=Q;let Y=Q.kind==="ready"||Q.kind==="failed";if(Y)G.terminated=!0;let J=Array.from(G.listeners);for(let W of J)try{W(Q)}catch{}if(Y)break}}catch(Q){X=Q}finally{if(!G.terminated&&!G.abort.signal.aborted&&G.listeners.size>0){let Q={kind:"failed",reason:"unknown",message:X instanceof Error?X.message:"Lifecycle watcher ended unexpectedly"};G.lastPhase=Q,G.terminated=!0;for(let Y of Array.from(G.listeners))try{Y(Q)}catch{}}if(jO.get(Z)===G)jO.delete(Z)}}function h14(){for(let $ of jO.values())$.abort.abort();jO.clear()}var M14,k14,xG$,vG$,yd1,f14,x14,jO;var Di=D(()=>{RQ();f3();v9();h61();M14=Symbol.for("decocms.sandbox.lifecycle.runners"),k14=Symbol.for("decocms.sandbox.lifecycle.inflight"),xG$=globalThis,vG$=xG$[M14]??={},yd1=xG$[k14]??={};f14=Symbol.for("decocms.sandbox.lifecycle.shared-lifecycles"),x14=globalThis,jO=x14[f14]??=new Map});async function NH1($,Z){if(await Z.linkClaimRegistry.get($))return"user-desktop";return Z.resolveEnvKind()}async function Y3($,Z){let{userId:G,branch:X,virtualMcpMetadata:Q,explicitKind:Y}=Z;if(Y)return{provider:await Li($,G,Y),kind:Y};if($.sandboxPreference==="agent-sandbox")return{provider:await Li($,G,"agent-sandbox"),kind:"agent-sandbox"};if($.sandboxPreference==="user-desktop"&&$.linkForCurrentRun)return{provider:await HH1($,G),kind:"user-desktop"};if($.sandboxPreference==="cluster-default"){let F=bW();return{provider:await Li($,G,F),kind:F}}let[J,...W]=u14(Q,G,X);if(J){let F=W.length===0?J:await c14($,G,J,W);return{provider:await Li($,G,F),kind:F}}let K=await uG$($,G);return{provider:await Li($,G,K),kind:K}}function u14($,Z,G){let X=IQ($)[Z]?.[G];if(!X)return[];let Q=uK(X);return Object.keys(Q)}async function c14($,Z,G,X){let Q=await uG$($,Z);if(Q===G||X.includes(Q))return Q;return G}async function uG$($,Z){if(!$.linkClaimRegistry)return bW();return NH1(Z,{linkClaimRegistry:$.linkClaimRegistry,resolveEnvKind:bW})}async function Li($,Z,G){if(G!=="user-desktop")return gd1($,G);if(!$.linkClaimRegistry)throw Error("user-desktop sandbox provider requires ctx.linkClaimRegistry to be wired (set on StudioContextConfig).");if(!await $.linkClaimRegistry.get(Z))throw Error(`No link daemon registered for user "${Z}". Start one with \`deco link\` (or run \`bun run dev --local-sandbox-provider\` for dev).`);return HH1($,Z)}var bf=D(()=>{_8();RQ();$F();Di()});async function OH1($,Z){if(!$)return{hosts:[],allowSameHostDev:!1};let G;try{G=await $.presignedGetUrl("link-dispatch/_allowlist_probe",60,{requireFetchable:!0})}catch{return{hosts:[],allowSameHostDev:!1}}let X;try{X=new URL(G)}catch{return{hosts:[],allowSameHostDev:!1}}if(X.protocol!=="https:"&&X.protocol!=="http:")return{hosts:[],allowSameHostDev:!1};let Q=X.hostname,Y=l14.has(Q);return{hosts:[Q],allowSameHostDev:Y&&!Z.isProduction}}var l14;var cd1=D(()=>{l14=new Set(["127.0.0.1","localhost","::1","[::1]","0.0.0.0"])});function vf($){if(d14.has($)||!m14.test($))return"home";return $}var d14,m14;var BH1=D(()=>{d14=new Set(["output","upload","public","home"]),m14=/^[A-Za-z0-9][A-Za-z0-9._-]*$/});function t14($){return{baseUrl:$.baseUrl.replace(/\/+$/,""),orgSlug:$.orgSlug,token:$.token,mounts:[{volume:"home",path:vf($.orgSlug)},...p14.map((Z)=>({...Z})),...($.publicSets??[]).map((Z)=>({volume:Ur(Z),path:`public/${Z}`,readonly:!0}))]}}async function DH1($,Z){try{let G=await $.boundAuth.apiKey.create({name:`orgfs-${Z.orgSlug}`,expiresIn:o14,metadata:{organization:{id:Z.orgId,slug:Z.orgSlug}}});return JSON.stringify(t14({baseUrl:Z.baseUrl,orgSlug:Z.orgSlug,token:G.key,publicSets:ZJ().map((X)=>X.set)}))}catch(G){console.warn("[org-fs] token mint failed; mounts disabled for this sandbox",G);return}}var i14=".outputs",n14=".uploads",p14,o14=604800;var ld1=D(()=>{BH1();YC();p14=[{volume:"outputs",path:i14},{volume:"uploads",path:n14}]});import{z as hW}from"zod";async function cG$($,Z){A1(Z);let G=N1(Z),X=L$(Z);if(!X)throw Error("User ID required");let Q=await Z.storage.virtualMcps.findById($.virtualMcpId);if(!Q||Q.organization_id!==G.id)throw Error("Virtual MCP not found");let Y=Q.metadata??{},J=eU(IQ(Y),X,$.branch,$.sandboxProviderKind),W=$.sandboxProviderKind,{provider:K}=await Y3(Z,{userId:X,branch:$.branch,virtualMcpMetadata:Y,explicitKind:W});if(J){if(W!=="user-desktop")return J;if(await K.alive(J.sandboxHandle).catch(()=>!1))return J;await YO(Z.storage.virtualMcps,$.virtualMcpId,X,X,$.branch,W).catch((N)=>{console.warn("[ensureSandbox] failed to reap stale user-desktop entry",N)})}let U=Y.githubRepo??null,{entry:F}=await lG$({ctx:Z,userId:X,orgId:G.id,virtualMcpId:$.virtualMcpId,branch:$.branch,metadata:Y,githubRepo:U,existing:null,providerKind:W,runner:K});return F}async function lG$($){let{ctx:Z,userId:G,orgId:X,virtualMcpId:Q,branch:Y,metadata:J,githubRepo:W,existing:K,runner:U}=$,{runtime:F,packageManager:H,port:N,packageManagerPath:O}=v61(J),B;if(W){if(W.connectionId)await Lf({ctx:Z,connectionId:W.connectionId,organizationId:X,onLegacyMintError:(Q1)=>{console.error("[provisionSandbox] repo-scoped legacy token mint failed",{connectionId:W.connectionId,error:Q1.message})}});let{cloneUrl:e,gitUserName:d,gitUserEmail:p}=W.connectionId?await Ef(W.connectionId,W.owner,W.name,Z.db,Z.vault):x61(W.owner,W.name);if(!H){let Q1=W.connectionId?await A8$(W.connectionId,W.owner,W.name,Z.db,Z.vault):await R8$(W.owner,W.name);if(Q1)H=Q1.packageManager,F=cm[Q1.packageManager].runtime,N=Q1.devPort??N,await a14(Z,Q,G,Q1.packageManager,Q1.devPort)}B={cloneUrl:e,userName:d,userEmail:p,branch:Y,displayName:`${W.owner}/${W.name}`}}let L=F&&H?{runtime:F,packageManager:H,...N!==null?{devPort:Number(N)}:{},...O?{packageManagerPath:O}:{}}:void 0,w=sU({orgId:X,virtualMcpId:Q,branch:Y}),z=U.kind==="user-desktop"?await OH1(Z.objectStorage,{isProduction:q0().nodeEnv==="production"}):null,j=U.kind==="user-desktop"||U.kind==="agent-sandbox"&&q0().orgFsClusterMounts,P;if(j){let e=Z.organization?.slug??(await Z.db.selectFrom("organization").select(["slug"]).where("id","=",X).executeTakeFirst())?.slug;if(e)P=await DH1(Z,{orgSlug:e,orgId:X,baseUrl:R3()})}let R=await U.ensure({userId:G,projectRef:w},{branch:Y,repo:B,workload:L,tenant:{orgId:X,userId:G,...Z.organization?.slug?{orgSlug:Z.organization.slug}:{},...Z.organization?.name?{orgName:Z.organization.name}:{},...Z.auth.user?.email?{userEmail:Z.auth.user.email}:{},...Z.auth.user?.name?{userName:Z.auth.user.name}:{}},...z?{offloadAllowedHosts:z.hosts,offloadAllowSameHostDev:z.allowSameHostDev}:{},...P?{orgFsConfigJson:P}:{}}),A=J.runtime?.env??null;await f61({ctx:Z,runner:U,handle:R.handle,orgId:X,userId:G,entries:A});let S=!!K&&K.sandboxHandle===R.handle&&K?.createdAt?K.createdAt:Date.now(),k=J.runtime?.selected??null,C=J.runtime?.port??null,u=J.runtime?.path??null,x={sandboxHandle:R.handle,previewUrl:R.previewUrl,sandboxApiUrl:R.previewUrl,sandboxProviderKind:U.kind,createdAt:S,startedWith:{packageManager:k,port:C,path:u}};await E8$(Z.storage.virtualMcps,Q,G,G,Y,$.providerKind,x);let y=!K||K.sandboxHandle!==R.handle;return{entry:x,isNewVm:y}}async function a14($,Z,G,X,Q){let Y=await $.storage.virtualMcps.findById(Z);if(!Y)return;let J=Y.metadata??{};await $.storage.virtualMcps.update(Z,G,{metadata:{...J,runtime:{selected:X,port:Q}}})}var r14,dd1;var md1=D(()=>{RQ();n1();lm();Mc1();$F();y61();T8$();fg1();qc1();bf();cd1();M4();mQ();ld1();$F();r14=hW.enum(["agent-sandbox","user-desktop","cluster"]),dd1=Z1({name:"SANDBOX_START",description:"Start a sandbox with the connected GitHub repo and dev server.",annotations:{title:"Start VM Preview",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1,openWorldHint:!0},_meta:{ui:{visibility:"app"}},inputSchema:hW.object({virtualMcpId:hW.string().describe("Virtual MCP ID"),branch:hW.string().min(1).optional().describe("Optional git branch to check out. When omitted the handler generates `deco/<adjective>-<noun>` and uses it. The resolved branch is returned in the response so callers can persist it."),sandboxProviderKind:r14.optional().describe("Explicit runtime choice. Hosted provider is `agent-sandbox`; legacy `cluster` input is accepted only for compatibility and normalized to `agent-sandbox`. When omitted, defaults to `user-desktop` if the acting user's link daemon is online, else the env kind.")}),outputSchema:hW.object({previewUrl:hW.string().nullable(),sandboxHandle:hW.string(),branch:hW.string(),isNewVm:hW.boolean(),sandboxProviderKind:hW.enum(["agent-sandbox","user-desktop"])}),handler:async($,Z)=>{A1(Z);let G=N1(Z);await Z.access.check();let X=$.branch??E41(),Q=L$(Z);if(!Q)throw Error("User ID required");let Y=await Z.storage.virtualMcps.findById($.virtualMcpId);if(!Y||Y.organization_id!==G.id)throw Error("Virtual MCP not found");let J=Y.metadata??{},W=$.sandboxProviderKind?rU($.sandboxProviderKind):void 0,{provider:K,kind:U}=await Y3(Z,{userId:Q,branch:X,virtualMcpMetadata:J,explicitKind:W}),F=eU(IQ(J),Q,X,U),H=J.githubRepo??null,{entry:N,isNewVm:O}=await lG$({ctx:Z,userId:Q,orgId:G.id,virtualMcpId:$.virtualMcpId,branch:X,metadata:J,githubRepo:H,existing:F,providerKind:U,runner:K});return{...N,branch:X,isNewVm:O,sandboxProviderKind:U}}})});import{z as ff}from"zod";var s14,id1;var dG$=D(()=>{RQ();n1();lm();$F();bf();s14=ff.enum(["agent-sandbox","user-desktop","cluster"]),id1=Z1({name:"SANDBOX_DELETE",description:"Delete a sandbox.",annotations:{title:"Delete VM Preview",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!0,openWorldHint:!0},_meta:{ui:{visibility:"app"}},inputSchema:ff.object({virtualMcpId:ff.string().describe("Virtual MCP ID that owns this VM"),branch:ff.string().min(1).describe("Branch whose vm should be deleted (sandboxMap[userId][branch])"),sandboxProviderKind:s14.describe("Kind of sandbox provider the VM was started with. Hosted provider is `agent-sandbox`; legacy `cluster` input is accepted only for compatibility and normalized to `agent-sandbox`. Used to locate the correct 3-level sandboxMap entry.")}),outputSchema:ff.object({success:ff.boolean()}),handler:async($,Z)=>{let G=rU($.sandboxProviderKind),X;try{X=await z8$({...$,sandboxProviderKind:G},Z)}catch(W){if(W instanceof Error&&W.message==="Virtual MCP not found")return{success:!0};throw W}let{entry:Q,userId:Y}=X;if(!Q)return{success:!0};let{provider:J}=await Y3(Z,{userId:Y,branch:$.branch,virtualMcpMetadata:X.metadata,explicitKind:G});return await YO(Z.storage.virtualMcps,$.virtualMcpId,Y,Y,$.branch,G),await J.delete(Q.sandboxHandle).catch((W)=>console.error(`[SANDBOX_DELETE] ${G} ${Q.sandboxHandle}: ${W instanceof Error?W.message:String(W)}`)),{success:!0}}})});var mG$=D(()=>{md1();dG$()});import{z as uW}from"zod";var $04="https://api.github.com",nd1;var iG$=D(()=>{n1();kL();vv();zW();nd1=Z1({name:"GITHUB_LIST_USER_ORGS",description:"List GitHub App installations (orgs/accounts) accessible to the authenticated user.",annotations:{title:"List GitHub User Orgs",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!0},_meta:{ui:{visibility:"app"}},inputSchema:uW.object({connectionId:uW.string().describe("ID of the mcp-github connection to use")}),outputSchema:uW.object({installations:uW.array(uW.object({installationId:uW.number(),login:uW.string(),avatarUrl:uW.string(),type:uW.string()})),appSlug:uW.string().optional()}),handler:async($,Z)=>{await Z.access.check();let G=Z.organization?.id;if(!G)throw Error("Organization context required");let X=await Z.storage.connections.findById($.connectionId,G);if(!X)throw Error("Connection not found");if(jW(X))throw Error("Repo-scoped connections cannot list installations \u2014 use an org-level mcp-github connection");let Q=new M9(Z.db,Z.vault),Y=await Q.get($.connectionId);if(!Y)throw Error("No GitHub token found. Ensure the mcp-github connection is authenticated.");let J=Y.accessToken;if(X41(Y)&&Q.isExpired(Y,pd)){let N=await Q41(Y,Q);if(!N)throw Error(p7);J=N,Y=await Q.get($.connectionId)??Y}let W=[],K,U=1,F=100,H=async(N)=>fetch(`${$04}/user/installations?per_page=${F}&page=${U}`,{headers:{Authorization:`Bearer ${N}`,Accept:"application/vnd.github+json","X-GitHub-Api-Version":"2022-11-28"}});while(!0){let N=await H(J);if(N.status===401){let B=await Q.get($.connectionId);if(!B||!X41(B))throw Error(p7);let L=await Q41(B,Q);if(!L)throw Error(p7);if(J=L,N=await H(J),N.status===401)throw Error(p7)}if(!N.ok)throw Error(`GitHub /user/installations failed: ${N.status}`);let O=await N.json();for(let B of O.installations){if(!K)K=B.app_slug??B.app?.slug;W.push({installationId:B.id,login:B.account.login,avatarUrl:B.account.avatar_url,type:B.account.type})}if(O.installations.length<F)break;U++}return{installations:W,...K?{appSlug:K}:{}}}})});var nG$=D(()=>{iG$()});import{z as R0}from"zod";var pd1,pG$,tG$,G04,Ei,X04,wi,Q04,Y04,J04,Ta5;var LH1=D(()=>{pd1=R0.enum(["claude-code","codex","decopilot-sandbox","body-offload"]),pG$=R0.array(R0.string()).catch([]).transform(($)=>$.filter((Z)=>pd1.safeParse(Z).success)),tG$=R0.discriminatedUnion("type",[R0.object({type:R0.literal("ui-message-chunk"),chunk:R0.unknown()}),R0.object({type:R0.literal("error"),code:R0.string(),message:R0.string()}),R0.object({type:R0.literal("done")})]),G04=R0.record(R0.string(),R0.unknown()),Ei=R0.object({id:R0.string(),title:R0.string().optional(),provider:R0.string().nullable().optional(),credentialId:R0.string(),limits:R0.object({contextWindow:R0.number().int().positive().optional(),maxOutputTokens:R0.number().int().positive().optional()}).optional(),capabilities:R0.object({vision:R0.boolean().optional(),text:R0.boolean().optional(),reasoning:R0.boolean().optional()}).optional()}).strict(),X04=R0.object({thinking:Ei.extend({title:R0.string()}),fast:Ei.optional(),smart:Ei.optional(),image:Ei.optional(),deepResearch:Ei.optional()}).strict(),wi=R0.object({kind:R0.literal("secret"),providerId:R0.string(),apiKey:R0.string(),modelId:R0.string(),baseUrl:R0.string().optional(),extraHeaders:R0.record(R0.string(),R0.string()).optional()}),Q04=R0.object({thinking:wi,fast:wi.optional(),smart:wi.optional(),image:wi.optional(),deepResearch:wi.optional()}).strict(),Y04=R0.object({kind:R0.literal("http"),url:R0.string().url(),headers:R0.record(R0.string(),R0.string()),expiresAt:R0.number().int().positive()}),J04=R0.object({kind:R0.literal("http"),baseUrl:R0.string().url(),headers:R0.record(R0.string(),R0.string()),expiresAt:R0.number().int().positive()}),Ta5=R0.object({harnessId:R0.enum(["decopilot","claude-code","codex"]).optional(),threadId:R0.string(),runId:R0.string(),taskId:R0.string(),resumeSessionRef:R0.string().optional(),messages:R0.array(G04),workspace:R0.object({cwd:R0.string().min(1)}).strict(),models:X04,modelSources:Q04.optional(),mcpSource:Y04.optional(),objectStorageSource:J04.optional(),mcp:R0.object({url:R0.string().url(),headers:R0.record(R0.string(),R0.string()),expiresAt:R0.number().int().positive()}).strict(),mode:R0.enum(["default","plan","web-search","gen-image"]),temperature:R0.number(),toolApprovalLevel:R0.enum(["auto","readonly"]),toolAllowlist:R0.array(R0.string()).nullable().optional(),maxAgentSteps:R0.number().int().optional(),user:R0.object({id:R0.string(),email:R0.string()}),organizationId:R0.string(),organizationSlug:R0.string().optional(),virtualMcp:R0.record(R0.string(),R0.unknown()),agent:R0.object({id:R0.string()}),branch:R0.string().nullable().optional(),triggerId:R0.string().optional(),currentThreadTitle:R0.string().optional(),traceparent:R0.string().optional(),runFenceToken:R0.string().optional()}).strip()});import{z as oG$}from"zod";var rG$;var td1=D(()=>{LH1();rG$=oG$.object({seq:oG$.number().int().positive(),event:tG$})});function eG$($){return $>=2}var aG$=2,sG$="x-link-protocol";var $X$=()=>{};var ZX$=D(()=>{$X$();td1();LH1()});var GX$=D(()=>{ZX$()});import MV from"zod";var od1;var XX$=D(()=>{GX$();n1();od1=Z1({name:"LINK_CURRENT_GET",description:"Return the calling user's currently registered desktop link, or `online: false` if no link is registered or the TTL has expired.",inputSchema:MV.object({}),outputSchema:MV.object({online:MV.boolean(),machineId:MV.string().optional(),hostname:MV.string().optional(),cliVersion:MV.string().optional(),capabilities:MV.array(pd1).default([])}),handler:async($,Z)=>{A1(Z),await Z.access.check();let G=Z.linkClaimRegistry;if(!G)return{online:!1,capabilities:[]};let X=await G.get(Z.auth.user.id);if(!X)return{online:!1,capabilities:[]};return{online:!0,machineId:X.machineId,hostname:X.hostname,cliVersion:X.cliVersion,capabilities:X.capabilities}}})});import rd1 from"zod";var ad1;var QX$=D(()=>{n1();ad1=Z1({name:"LINK_DISCONNECT",description:"Disconnect the calling user's desktop link from the Studio side: tells the linked daemon to shut down (via a `shutdown` control frame) and removes the presence claim. The user re-links by running `bunx decocms link` on the desktop.",inputSchema:rd1.object({}),outputSchema:rd1.object({disconnected:rd1.boolean()}),handler:async($,Z)=>{A1(Z),await Z.access.check();let G=Z.auth.user.id,X=Z.linkClaimRegistry;if(!(X?await X.get(G):null))return{disconnected:!1};return Z.publishLinkControlFrame?.(G,{type:"shutdown"}),await X.delete(G),{disconnected:!0}}})});var YX$=D(()=>{XX$();QX$()});import{z as a9}from"zod";function JX$($){if(!$)return"";return typeof $==="string"?$:$.toISOString()}var U04,F04,H04,N04,O04,sd1;var WX$=D(()=>{n1();U04=["thread"],F04=a9.object({type:a9.literal("thread"),id:a9.string(),title:a9.string(),created_at:a9.string(),updated_at:a9.string(),virtual_mcp_id:a9.string().nullable(),run_config:a9.record(a9.string(),a9.unknown()).nullable(),status:a9.string().nullable()}),H04=a9.discriminatedUnion("type",[F04]),N04=a9.object({query:a9.string().min(1).describe("Free-text search query."),limit:a9.number().int().min(1).max(50).optional().describe("Maximum results per resource type (default: 20)."),types:a9.array(a9.enum(U04)).optional().describe("Restrict the search to specific resource types. Omit to search across all available types.")}),O04=a9.object({items:a9.array(H04),totalCount:a9.number()});sd1=Z1({name:"GLOBAL_SEARCH",description:"Search across organization resources by free-text query. Returns a typed union of matches (currently: threads). New resource types may be added over time without changes to the call shape.",annotations:{title:"Global Search",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:N04,outputSchema:O04,handler:async($,Z)=>{await Z.access.check(),N1(Z);let G=$.limit??20,X=$.types?.length?new Set($.types):null,Q=!X||X.has("thread"),Y=[],J=0;if(Q){let{threads:W,total:K}=await Z.storage.threads.list(void 0,{limit:G,offset:0,search:$.query,includeArchived:!1});J+=K;for(let U of W)Y.push({type:"thread",id:U.id,title:U.title??"",created_at:JX$(U.created_at),updated_at:JX$(U.updated_at),virtual_mcp_id:U.virtual_mcp_id??null,run_config:U.run_config??null,status:U.status??null})}return{items:Y,totalCount:J}}})});var KX$=D(()=>{WX$()});var U41={};p4(U41,{managementMCP:()=>ov,listManagementTools:()=>E04,ALL_TOOLS:()=>UX$});import{z as ed1}from"zod";async function E04($){let Z=await ov($),[G,X]=qu.createLinkedPair();await Z.connect(X);let Q=new Y9({name:"tools-hydration",version:"1.0.0"},{jsonSchemaValidator:h9});try{return await Q.connect(G),(await Q.listTools()).tools}finally{await Q.close().catch(()=>{}),await Z.close().catch(()=>{})}}var D04,L04,UX$,ov=async($)=>{let Z=null;if($.organization){let J=await $.storage.organizationSettings.get($.organization.id),W=await $.storage.virtualMcps.listEnabledPlugins($.organization.id),K=new Set(J?.enabled_plugins??[]);for(let U of W)K.add(U);Z=K.size>0?[...K]:null}let G=nS0(UX$,Z),X=new cK({name:"mcp-cms-management",version:"1.0.0"},{capabilities:{tools:{},prompts:{},resources:{}},jsonSchemaValidator:h9});for(let J of G){let W=J.inputSchema&&typeof J.inputSchema==="object"&&"shape"in J.inputSchema?J.inputSchema:ed1.object({}),K=J.outputSchema&&typeof J.outputSchema==="object"&&"shape"in J.outputSchema?J.outputSchema:void 0;X.registerTool(J.name,{description:J.description??"",inputSchema:W,outputSchema:K,annotations:J.annotations,_meta:J._meta},async(U)=>{$.access.setToolName(J.name);try{let F=await J.execute(U,$);return{content:[{type:"text",text:J.modelSummary?J.modelSummary(F):JSON.stringify(F)}],structuredContent:F}}catch(F){return{content:[{type:"text",text:`Error: ${F.message}`}],isError:!0}}})}let Q=t41();for(let J of Q){let W=J.arguments?.length?Object.fromEntries(J.arguments.map((K)=>{let U=K.required?ed1.string():ed1.string().optional();return[K.name,K.description?U.describe(K.description):U]})):void 0;X.registerPrompt(J.name,{title:J.title,description:J.description,...W?{argsSchema:W}:{}},(K)=>{return{messages:[{role:"user",content:{type:"text",text:typeof J.text==="function"?J.text(K??{}):J.text}}]}})}if($.organization?.id){let J=await $.storage.brandContext.list($.organization.id),W=new Set;for(let K of J){let U=K.name.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,""),F=U?`brand-${U}`:`brand-${K.id}`;if(W.has(F))F=`${F}-${K.id.slice(0,8)}`;W.add(F);let H=[`# Brand: ${K.name}`,"",`**Domain:** ${K.domain}`,"","## Overview",K.overview];if(K.colors){let O=Object.entries(K.colors).filter(([,B])=>B);if(O.length>0){H.push("","## Colors");for(let[B,L]of O)H.push(`- **${B}:** ${L}`)}}if(K.fonts){let O=Object.entries(K.fonts).filter(([,B])=>B);if(O.length>0){H.push("","## Fonts");for(let[B,L]of O)H.push(`- ${L} (${B})`)}}if(K.logo)H.push("",`**Logo:** ${K.logo}`);if(K.favicon)H.push(`**Favicon:** ${K.favicon}`);if(K.ogImage)H.push(`**OG Image:** ${K.ogImage}`);if(K.images&&K.images.length>0){H.push("","## Images");for(let O of K.images){let B=Object.entries(O).map(([L,w])=>`${L}: ${w}`).join(", ");H.push(`- ${B}`)}}let N=H.join(`
|
|
2201
2201
|
`);X.prompt(F,`Brand context for ${K.name}`,()=>({messages:[{role:"user",content:{type:"text",text:N}}]}))}}let Y=rr0();for(let J of Y)X.resource(J.name,J.uri,{description:J.description,mimeType:J.mimeType??"text/markdown"},async(W)=>{return{contents:[{uri:typeof W==="string"?W:W.href,mimeType:J.mimeType??"text/markdown",text:J.text}]}});return X};var uv=D(()=>{D11();HJ();$h();mX();NC0();up0();mp0();$t0();Ot0();wt0();ut0();nt0();Ko0();lo0();mo0();Or0();Lr0();Tr0();Mr0();oh1();Pa0();N8$();mG$();nG$();YX$();KX$();D04=[Jg1,Wg1,Kg1,Ug1,Fg1,Hg1,Ng1,Og1,Bg1,Dg1,Lg1,Eg1,zg1,jg1,Pg1,Ag1,Rg1,Ig1,Tg1,qg1,Mg1,kg1,Vg1,j_1,Vy1,Sy1,_y1,by1,vy1,dy1,iy1,py1,oy1,ay1,dp0,Gg1,Xg1,Qg1,Yg1,SS1,_S1,bS1,CS1,fy1,xy1,yy1,gy1,hy1,uy1,cy1,Ph1,xg1,yg1,gg1,ug1,cg1,lg1,Sg1,Cg1,_g1,bg1,vg1,dg1,mg1,ig1,Bh1,Dh1,Lh1,Eh1,wh1,zh1,jh1,sy1,ey1,$g1,Zg1,Ah1,Th1,qh1,Mh1,kh1,Vh1,Sh1,Ch1,_h1,bh1,vh1,fh1,xh1,gh1,hh1,uh1,lh1,dh1,mh1,th1,qr0,rh1,ah1,sh1,eh1,$u1,Zu1,...H8$,dd1,id1,nd1,od1,ad1,sd1],L04=pS0(),UX$=[...D04,...L04]});import{z as FX$}from"zod";function w04($){return[{permissions:{self:["*"]},getTools:async()=>{let{ALL_TOOLS:Z}=await Promise.resolve().then(() => (uv(),U41));return Z.map((G)=>{return{name:G.name,inputSchema:FX$.toJSONSchema(G.inputSchema,{unrepresentable:"any"}),outputSchema:G.outputSchema?FX$.toJSONSchema(G.outputSchema,{unrepresentable:"any"}):void 0,description:G.description}})},data:Zq1(mG(),$)},{data:$q1()},{data:e21($)}]}async function HX$($,Z){try{let G=p6(),X=q0(),Q=new pB(X.encryptionKey),Y=new fh(G.db,Q),J=w04($);await Promise.all(J.map(async(W)=>{let K=null;if(W.permissions)K=(await h6.api.createApiKey({body:{name:`${W.data.app_name??crypto.randomUUID()}-mcp`,userId:Z,permissions:W.permissions,rateLimitEnabled:!1,metadata:{organization:{id:$},purpose:"default-org-connections"}}}))?.key;let U=await SH({id:"pending",title:W.data.title,connection_type:W.data.connection_type,connection_url:W.data.connection_url,connection_token:W.data.connection_token??K,connection_headers:W.data.connection_headers}).catch(()=>null),F=await W.getTools?.()??U?.tools??null,H=U?.scopes?.length?U.scopes:null,N=W.data.id?W.data.id.startsWith(`${$}_`)?W.data.id:`${$}_${W.data.id}`:void 0;await Y.create({...W.data,id:N,tools:F,configuration_scopes:H,organization_id:$,created_by:Z,connection_token:W.data.connection_token??K})}));try{await Tk1({orgId:$,createdBy:Z})}catch(W){console.error("Failed to enqueue studio pack install:",W)}if(X.aiGatewayEnabled&&X.studioProvisionSecretKey&&_h.provisionKey)try{let W=await CH(Z),K=await _h.provisionKey(W,$);await new vh(G.db,Q).upsert({providerId:"deco",label:"Auto-provisioned",apiKey:K,organizationId:$,createdBy:Z})}catch(W){console.error("Failed to auto-provision Deco AI Gateway key:",W)}}catch(G){console.error("Error creating default MCP connections:",G)}}var NX$=D(()=>{_8();rM1();mQ();f3();Ze();eM1();$k1();lh();M4();cU();He();sB()});function z04($,Z){let G=$.email.split("@")[1]?.toLowerCase()??null;return{distinctId:$.id,properties:{$set:{email:$.email,name:$.name,email_verified:$.emailVerified},$set_once:{first_seen_at:Z.toISOString(),signup_email_domain:G}}}}function $m1($){z$.identify(z04($,new Date))}var OX$=D(()=>{N5()});import{decodeJwt as j04}from"jose";import{sql as zi}from"kysely";async function R04($){let{user:Z,token:G}=$;if(!G?.idToken)return;let X;try{X=j04(G.idToken)}catch{return}let{preferred_username:Q,upn:Y}=X,J=[Q,Y].filter((U)=>typeof U==="string"&&U.length>0&&U.toLowerCase()!==Z.email.toLowerCase()).map((U)=>U.toLowerCase());if(J.length===0)return;let{db:W}=p6(),K=await W.selectFrom("user").selectAll().where("email","in",J).where("id","!=",Z.id).executeTakeFirst();if(!K)return;try{await W.transaction().execute(async(U)=>{await zi`UPDATE "account" SET "userId" = ${K.id} WHERE "userId" = ${Z.id}`.execute(U),await zi`UPDATE "session" SET "userId" = ${K.id} WHERE "userId" = ${Z.id}`.execute(U),await zi`
|
|
2202
2202
|
UPDATE "member" SET "userId" = ${K.id}
|
|
2203
2203
|
WHERE "userId" = ${Z.id}
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{e as M,r as S,j as o,l as q}from"./index-BD0Vs-CA.js";import{S as G}from"./scroll-area-DMkk7C5X.js";import{j as H,a4 as J,d as Q}from"./index-Dji_l0xa.js";import{S as U}from"./schema-form-BQLwCXS8.js";import{S as W}from"./save-status-Cs4ql7Lz.js";import"./select-877_XRoe.js";import"./tooltip-BXkAyk_s.js";import"./Check-BC0oyj5b.js";import"./ChevronDown-R842NQ1U.js";import"./ChevronUp-BF-b-Nnx.js";import"./agent-capabilities-CoD6HyyN.js";import"./pair-Bui7pRoY.js";import"./agent-icon-Cdddea4y.js";import"./AlertCircle-BQdZzjHT.js";import"./Tool01-N1xf4ThS.js";import"./SwitchHorizontal01-CgqCR4Yz.js";import"./RefreshCcw01-Ucb5geTM.js";import"./XCircle-C2jaCgsw.js";import"./ArrowUpRight-CeE0rmVq.js";import"./ZapSquare-dqx_OfE2.js";import"./Users03-zhbxBBX-.js";import"./CheckCircle-DH7rdvLk.js";import"./ChevronLeft-4yzLonaZ.js";import"./ChevronRight-ZAMgnesO.js";import"./DotsVertical-qBVhBkwp.js";import"./Container-DYeY832q.js";import"./Eye-DT8d17_D.js";import"./ZoomOut-BRLKFRz0.js";import"./Globe01-Dq1s-8U-.js";import"./FilterLines-0_3CSvNU.js";import"./Star01-3amhnFQB.js";import"./Palette-DgrVm9Lf.js";import"./HardDrive-BSOkGCav.js";import"./Stars02-BjwC_VwI.js";import"./Key01-6ihQsQH5.js";import"./LayoutLeft-DW_oy1t7.js";import"./LinkExternal01-Dr7L27C5.js";import"./Monitor01-B1nvgGLS.js";import"./Sun-D7IGJ5Qz.js";import"./Play-Irj6Snpi.js";import"./Plus-282oO62Z.js";import"./SearchMd-QjKlDFdA.js";import"./Settings02-C6oxZAMK.js";import"./Shield01-D7qNI860.js";import"./Stars01-D-S4IK6K.js";import"./Trash01-C5lXrAXB.js";import"./Upload01-CRQffHbJ.js";import"./User01-sifBP7dG.js";import"./Users01-CqOg_Qlq.js";import"./XClose-Dp1ChvR4.js";import"./X-CY5EOp8o.js";import"./Zap-DQUf40SC.js";import"./format-time-Cy7tTmZp.js";import"./differenceInSeconds-NQ4PDo0z.js";import"./use-copy-D2WKzb4n.js";import"./file-type-icon-C7hLWFjD.js";import"./dialog-ZmuU49gf.js";import"./content-blocks-o63cs2vh.js";import"./types-j6zTjYLW.js";import"./constants-D3TwDQx3.js";import"./chat-context-DaxTCgBq.js";import"./tab-id-DrhK90L3.js";import"./decopilot-sse-pool-BegF480x.js";import"./create-sse-subscription-BS5983N4.js";import"./unwrap-tool-result-BYXdCQMg.js";import"./use-virtual-mcp-Cvm4KLIO.js";import"./use-collections-HtykhO8E.js";import"./use-ai-providers-DuBmTMbG.js";import"./use-organization-settings-DyFbECeN.js";import"./shell-layout-CH8oYCM2.js";import"./avatar-DZZ4PPWC.js";import"./required-auth-layout-RkDlrM0L.js";import"./useRouterState-ComuFEbk.js";import"./use-org-sso-BAFZBkLH.js";import"./integration-icon-DjqEnfq3.js";import"./use-navigate-to-agent-BU3cK_V3.js";import"./use-connection-CFCjzYr3.js";import"./use-mcp-prompts-Cs73_aGi.js";import"./form-Bb30Dtd4.js";import"./label-C5JCVP3P.js";import"./input-BdjjFpfr.js";import"./spinner-CYDSZGqh.js";import"./drawer-gGw1fcoY.js";import"./collection-search-DcKd-0OB.js";import"./tabs-D9ntWD-6.js";import"./toggle-group-DGrm2vuO.js";import"./connect-desktop-dialog-BHLyUOHP.js";import"./agent-icons-CKU8GGl2.js";import"./checkbox-zURLZ3UX.js";import"./skeleton-CoJAV87H.js";import"./ai-providers-logos-DD3qZ33J.js";import"./settings-section-kr7Y9bP9.js";import"./card-Dj9cg3CK.js";import"./popover-cTB9T6zY.js";import"./command-SwSMex4i.js";import"./index-Czyl40Yo.js";import"./useInfiniteQuery-BXWzDcVY.js";import"./infiniteQueryObserver-sLZJuWs1.js";import"./sortable.esm-ZerYvs9l.js";import"./connection-slug-eyAPH6o3.js";import"./connection-card-BMM5SXL2.js";import"./use-registry-connections-Bk2SQzaL.js";import"./extract-connection-data-BxLUPS35.js";import"./generate-id-DCuwKdwd.js";import"./collections-CjKCiyyJ.js";import"./collection-tabs-B68kf5RK.js";import"./badge-9pGcMSo9.js";import"./textarea-D91MKpZC.js";import"./connection-form-helpers-DQIelH5O.js";import"./use-infinite-scroll--wh3054T.js";import"./useSuspenseInfiniteQuery-C3HFhtdp.js";import"./index-C-7fxrkj.js";import"./dropdown-menu-CxtJkFj7.js";import"./question-004-sINsf4GQ.js";import"./shell-route-loading-Cn0fA0CZ.js";import"./sidebar-OlCqSXPX.js";import"./sheet-Dsz02SFl.js";import"./toolbar-Dy7jx2bJ.js";import"./use-create-virtual-mcp-D8DtJRBD.js";import"./github-repo-picker-ukQ8mlgx.js";import"./use-mcp-tools-C1gRGhR_.js";import"./alert-dialog-wo7djkDg.js";import"./index-Cov_Guzr.js";import"./use-org-auth-client-DDgSMc-B.js";import"./hover-card-BJCPsde9.js";import"./task-status-Sjdts0gR.js";import"./use-status-sounds-CvJbKYn3.js";import"./empty-state-Bp53vJ5J.js";import"./resizable-BRPR_6nf.js";import"./use-capability-4Bqq3Ptd.js";import"./header-tab-button-Ct59Qn2o.js";import"./index-CPp-3T8R.js";import"./user-Bkww3yLN.js";import"./tools-list-BmmPeFb6.js";import"./switch-Bazzokl_.js";import"./use-debounced-autosave-B_zQVx0C.js";import"./index-D3Ribt5F.js";import"./search-input-C-P2O70i.js";import"./use-secrets-7GF-cSiL.js";import"./formatDistanceToNow-Cb2QZZJn.js";import"./accordion-BU6HxGne.js";import"./view-mode-toggle-2ZW6tMJS.js";import"./select-model-C_cur-rH.js";import"./use-automations-ClchBd2q.js";import"./monaco-editor-D2Cgb5CL.js";import"./automation-runs-BxnZN2Rp.js";import"./table-Do8GxGTj.js";import"./use-members-PGJbXmC6.js";import"./automation-list-row-DrMmYGg2.js";import"./calendar-VsOQOecc.js";import"./image-field-BUiTz_KS.js";import"./use-file-configs-BdoGIuji.js";function qo(g){const t=M.c(38),{orgSlug:N,virtualMcpId:_,branch:k,blockKey:r,block:i,meta:m,title:E,excludeFields:n,schemaPending:C}=g,P=C===void 0?!1:C,e=typeof i?.__resolveType=="string"?i.__resolveType:"";let d;if(t[0]!==n||t[1]!==m||t[2]!==e){const c=e?H(e,m):null;d=c&&n?.length?{...c,properties:Object.fromEntries(Object.entries(c.properties??{}).filter(y=>{const[I]=y;return!n.includes(I)}))}:c,t[0]=n,t[1]=m,t[2]=e,t[3]=d}else d=t[3];const f=d;let u;t[4]!==i||t[5]!==r||t[6]!==m||t[7]!==E?(u=E??(i?J(r,i,m):r),t[4]=i,t[5]=r,t[6]=m,t[7]=E,t[8]=u):u=t[8];const B=u;let x;t[9]!==k||t[10]!==N||t[11]!==_?(x={orgSlug:N,virtualMcpId:_,branch:k},t[9]=k,t[10]=N,t[11]=_,t[12]=x):x=t[12];const{save:K,isPending:R}=Q(x),[A,L]=S.useState(r),[z,O]=S.useState(null),[V,D]=S.useState(0);let h;t[13]===Symbol.for("react.memo_cache_sentinel")?(h=[],t[13]=h):h=t[13];const[w,$]=S.useState(h);A!==r&&(L(r),O(null),D(X),$([]));let v;t[14]!==i?(v=i??{},t[14]=i,t[15]=v):v=t[15];const F=z??v;let b;t[16]!==r||t[17]!==e||t[18]!==K?(b=c=>{const y=c;O(y),K(r,{...y,__resolveType:e})},t[16]=r,t[17]=e,t[18]=K,t[19]=b):b=t[19];const T=b;let p;t[20]!==B?(p=o.jsx("span",{className:"text-sm font-medium",children:B}),t[20]=B,t[21]=p):p=t[21];let s;t[22]!==R?(s=o.jsx(W,{isPending:R,isError:!1}),t[22]=R,t[23]=s):s=t[23];let l;t[24]!==p||t[25]!==s?(l=o.jsxs("div",{className:"flex h-12 shrink-0 items-center justify-between border-b px-6",children:[p,s]}),t[24]=p,t[25]=s,t[26]=l):l=t[26];let a;t[27]!==r||t[28]!==w||t[29]!==F||t[30]!==V||t[31]!==T||t[32]!==f||t[33]!==P?(a=o.jsx(G,{className:"min-w-0 flex-1 [&_[data-slot=scroll-area-viewport]>div]:!block",children:o.jsx("div",{className:"px-6 py-6",children:o.jsx("div",{className:"mx-auto max-w-xl",children:f?o.jsx(U,{schema:f,value:F,onChange:T,basePath:"",breadcrumbPath:w,onBreadcrumbChange:$},`${r}:${V}`):P?o.jsxs("div",{className:"flex flex-col items-center gap-2 py-6 text-center text-xs text-muted-foreground",children:[o.jsx(q,{size:16,className:"animate-spin"}),"Loading app schema…"]}):o.jsx("div",{className:"py-6 text-center text-xs text-muted-foreground",children:"No editable schema found for this app."})})})}),t[27]=r,t[28]=w,t[29]=F,t[30]=V,t[31]=T,t[32]=f,t[33]=P,t[34]=a):a=t[34];let j;return t[35]!==l||t[36]!==a?(j=o.jsxs("div",{className:"flex h-full flex-col",children:[l,a]}),t[35]=l,t[36]=a,t[37]=j):j=t[37],j}function X(g){return g+1}export{qo as AppEditor};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{e as it,r as E,j as e,l as rt}from"./index-BD0Vs-CA.js";import{S as mt,d as pt,a as st,b as at}from"./sheet-Dsz02SFl.js";import{S as nt}from"./scroll-area-DMkk7C5X.js";import{r as lt,c as ct,u as dt,a as St,i as ft,f as ut,d as vt,P as ht,S as gt}from"./page-seo-form-CpoxmYxQ.js";import{j as xt}from"./index-Dji_l0xa.js";import"./X-CY5EOp8o.js";import"./select-877_XRoe.js";import"./tooltip-BXkAyk_s.js";import"./Check-BC0oyj5b.js";import"./ChevronDown-R842NQ1U.js";import"./ChevronUp-BF-b-Nnx.js";import"./label-C5JCVP3P.js";import"./switch-Bazzokl_.js";import"./schema-form-BQLwCXS8.js";import"./agent-icon-Cdddea4y.js";import"./AlertCircle-BQdZzjHT.js";import"./Tool01-N1xf4ThS.js";import"./SwitchHorizontal01-CgqCR4Yz.js";import"./RefreshCcw01-Ucb5geTM.js";import"./XCircle-C2jaCgsw.js";import"./ArrowUpRight-CeE0rmVq.js";import"./ZapSquare-dqx_OfE2.js";import"./Users03-zhbxBBX-.js";import"./CheckCircle-DH7rdvLk.js";import"./ChevronLeft-4yzLonaZ.js";import"./ChevronRight-ZAMgnesO.js";import"./DotsVertical-qBVhBkwp.js";import"./Container-DYeY832q.js";import"./Eye-DT8d17_D.js";import"./ZoomOut-BRLKFRz0.js";import"./Globe01-Dq1s-8U-.js";import"./FilterLines-0_3CSvNU.js";import"./Star01-3amhnFQB.js";import"./Palette-DgrVm9Lf.js";import"./HardDrive-BSOkGCav.js";import"./Stars02-BjwC_VwI.js";import"./Key01-6ihQsQH5.js";import"./LayoutLeft-DW_oy1t7.js";import"./LinkExternal01-Dr7L27C5.js";import"./Monitor01-B1nvgGLS.js";import"./Sun-D7IGJ5Qz.js";import"./Play-Irj6Snpi.js";import"./Plus-282oO62Z.js";import"./SearchMd-QjKlDFdA.js";import"./Settings02-C6oxZAMK.js";import"./Shield01-D7qNI860.js";import"./Stars01-D-S4IK6K.js";import"./Trash01-C5lXrAXB.js";import"./Upload01-CRQffHbJ.js";import"./User01-sifBP7dG.js";import"./Users01-CqOg_Qlq.js";import"./XClose-Dp1ChvR4.js";import"./Zap-DQUf40SC.js";import"./calendar-VsOQOecc.js";import"./input-BdjjFpfr.js";import"./popover-cTB9T6zY.js";import"./textarea-D91MKpZC.js";import"./dropdown-menu-CxtJkFj7.js";import"./image-field-BUiTz_KS.js";import"./dialog-ZmuU49gf.js";import"./skeleton-CoJAV87H.js";import"./tabs-D9ntWD-6.js";import"./use-file-configs-BdoGIuji.js";import"./constants-D3TwDQx3.js";import"./unwrap-tool-result-BYXdCQMg.js";import"./useInfiniteQuery-BXWzDcVY.js";import"./infiniteQueryObserver-sLZJuWs1.js";import"./agent-capabilities-CoD6HyyN.js";import"./pair-Bui7pRoY.js";import"./format-time-Cy7tTmZp.js";import"./differenceInSeconds-NQ4PDo0z.js";import"./use-copy-D2WKzb4n.js";import"./file-type-icon-C7hLWFjD.js";import"./content-blocks-o63cs2vh.js";import"./types-j6zTjYLW.js";import"./chat-context-DaxTCgBq.js";import"./tab-id-DrhK90L3.js";import"./decopilot-sse-pool-BegF480x.js";import"./create-sse-subscription-BS5983N4.js";import"./use-virtual-mcp-Cvm4KLIO.js";import"./use-collections-HtykhO8E.js";import"./use-ai-providers-DuBmTMbG.js";import"./use-organization-settings-DyFbECeN.js";import"./shell-layout-CH8oYCM2.js";import"./avatar-DZZ4PPWC.js";import"./required-auth-layout-RkDlrM0L.js";import"./useRouterState-ComuFEbk.js";import"./use-org-sso-BAFZBkLH.js";import"./integration-icon-DjqEnfq3.js";import"./use-navigate-to-agent-BU3cK_V3.js";import"./use-connection-CFCjzYr3.js";import"./use-mcp-prompts-Cs73_aGi.js";import"./form-Bb30Dtd4.js";import"./spinner-CYDSZGqh.js";import"./drawer-gGw1fcoY.js";import"./collection-search-DcKd-0OB.js";import"./toggle-group-DGrm2vuO.js";import"./connect-desktop-dialog-BHLyUOHP.js";import"./agent-icons-CKU8GGl2.js";import"./checkbox-zURLZ3UX.js";import"./ai-providers-logos-DD3qZ33J.js";import"./settings-section-kr7Y9bP9.js";import"./card-Dj9cg3CK.js";import"./command-SwSMex4i.js";import"./index-Czyl40Yo.js";import"./sortable.esm-ZerYvs9l.js";import"./connection-slug-eyAPH6o3.js";import"./connection-card-BMM5SXL2.js";import"./use-registry-connections-Bk2SQzaL.js";import"./extract-connection-data-BxLUPS35.js";import"./generate-id-DCuwKdwd.js";import"./collections-CjKCiyyJ.js";import"./collection-tabs-B68kf5RK.js";import"./badge-9pGcMSo9.js";import"./connection-form-helpers-DQIelH5O.js";import"./use-infinite-scroll--wh3054T.js";import"./useSuspenseInfiniteQuery-C3HFhtdp.js";import"./index-C-7fxrkj.js";import"./question-004-sINsf4GQ.js";import"./shell-route-loading-Cn0fA0CZ.js";import"./sidebar-OlCqSXPX.js";import"./toolbar-Dy7jx2bJ.js";import"./use-create-virtual-mcp-D8DtJRBD.js";import"./github-repo-picker-ukQ8mlgx.js";import"./use-mcp-tools-C1gRGhR_.js";import"./alert-dialog-wo7djkDg.js";import"./index-Cov_Guzr.js";import"./use-org-auth-client-DDgSMc-B.js";import"./hover-card-BJCPsde9.js";import"./task-status-Sjdts0gR.js";import"./use-status-sounds-CvJbKYn3.js";import"./empty-state-Bp53vJ5J.js";import"./resizable-BRPR_6nf.js";import"./use-capability-4Bqq3Ptd.js";import"./header-tab-button-Ct59Qn2o.js";import"./index-CPp-3T8R.js";import"./user-Bkww3yLN.js";import"./tools-list-BmmPeFb6.js";import"./use-debounced-autosave-B_zQVx0C.js";import"./index-D3Ribt5F.js";import"./search-input-C-P2O70i.js";import"./use-secrets-7GF-cSiL.js";import"./formatDistanceToNow-Cb2QZZJn.js";import"./accordion-BU6HxGne.js";import"./view-mode-toggle-2ZW6tMJS.js";import"./select-model-C_cur-rH.js";import"./use-automations-ClchBd2q.js";import"./monaco-editor-D2Cgb5CL.js";import"./automation-runs-BxnZN2Rp.js";import"./table-Do8GxGTj.js";import"./use-members-PGJbXmC6.js";import"./automation-list-row-DrMmYGg2.js";function Si(u){const t=it.c(46),{open:N,onOpenChange:P,orgSlug:Q,virtualMcpId:U,branch:W,decofile:G,meta:s,target:m,onSaved:X}=u,o=lt(G,m,s),k=m.kind==="site"?"site":m.pageKey,[Y,Z]=E.useState(k),[tt,i]=E.useState(null),[J,g]=E.useState(void 0),[x,y]=E.useState(0);Y!==k&&(Z(k),i(null),g(void 0),y(jt));const{persistSeo:a,persistRawSeo:I,flush:K,isPending:D}=ct({orgSlug:Q,virtualMcpId:U,branch:W,target:m,resolved:o,onSaved:X}),j=m.kind==="page",ot=j?o?.rawSeoData:void 0,v=J!==void 0?J:ot,et=j?dt(v)??void 0:void 0,h=tt??et??o?.seoData??{},p=o?St(h,o):null,n=p&&(!j||ft(v))?xt(p,s):null,_=m.kind==="page"?ut(G,s)?.seoData??void 0:void 0;let w;t[0]!==s?(w=vt(s),t[0]=s,t[1]=w):w=t[1];const M=w;let R;t[2]!==a||t[3]!==o||t[4]!==i?(R=r=>{if(!o)return;const L=r;i(L),a(L)},t[2]=a,t[3]=o,t[4]=i,t[5]=R):R=t[5];const V=R;let F;t[6]!==K||t[7]!==P?(F=r=>{r||K(),P(r)},t[6]=K,t[7]=P,t[8]=F):F=t[8];const z=F,A=m.kind==="site"?"Site SEO":"Page SEO",T=j&&o,B=m.kind==="site"&&o&&n,H=m.kind==="site"?"No site-level SEO block found.":o?"SEO schema not found for this page.":"Could not load page SEO.";let C;t[9]!==i?(C=()=>i(null),t[9]=i,t[10]=C):C=t[10];const $=C;let O;t[11]!==y?(O=()=>y(yt),t[11]=y,t[12]=O):O=t[12];const q=O;let l;t[13]!==A?(l=e.jsx(mt,{className:"text-sm font-semibold",children:A}),t[13]=A,t[14]=l):l=t[14];let c;t[15]!==D?(c=D&&e.jsx(rt,{size:14,className:"animate-spin text-muted-foreground"}),t[15]=D,t[16]=c):c=t[16];let d;t[17]!==l||t[18]!==c?(d=e.jsxs(pt,{className:"px-4 py-3 border-b flex-row items-center justify-between space-y-0",children:[l,c]}),t[17]=l,t[18]=c,t[19]=d):d=t[19];let S;t[20]!==p||t[21]!==q||t[22]!==$||t[23]!==M||t[24]!==v||t[25]!==h||t[26]!==H||t[27]!==x||t[28]!==V||t[29]!==I||t[30]!==a||t[31]!==o||t[32]!==n||t[33]!==i||t[34]!==g||t[35]!==T||t[36]!==B||t[37]!==_?(S=!o||!T&&!B?e.jsx("div",{className:"flex h-full items-center justify-center text-sm text-muted-foreground",children:H}):e.jsx(nt,{className:"flex-1 min-h-0 [&_[data-slot=scroll-area-viewport]>div]:!block",children:e.jsx("div",{className:"px-6 py-4",children:e.jsx("div",{className:"mx-auto max-w-sm",children:T?e.jsx(ht,{rawSeo:v,innerSeo:h,defaultResolveType:M,seoSchema:n,activeResolveType:p,seoTypeOptions:o.seoTypeOptions,formResetKey:x,siteDefaultSeo:_,onPersistRaw:r=>{g(r),I(r)},onInnerChange:r=>{i(r),a(r)},onClearForm:$,onBumpFormKey:q}):n&&p&&e.jsx(gt,{schema:n,resolveType:p,value:h,formResetKey:x,onChange:V})})})}),t[20]=p,t[21]=q,t[22]=$,t[23]=M,t[24]=v,t[25]=h,t[26]=H,t[27]=x,t[28]=V,t[29]=I,t[30]=a,t[31]=o,t[32]=n,t[33]=i,t[34]=g,t[35]=T,t[36]=B,t[37]=_,t[38]=S):S=t[38];let f;t[39]!==d||t[40]!==S?(f=e.jsxs(st,{side:"right",className:"w-[400px] sm:max-w-[440px] p-0 gap-0",children:[d,S]}),t[39]=d,t[40]=S,t[41]=f):f=t[41];let b;return t[42]!==z||t[43]!==N||t[44]!==f?(b=e.jsx(at,{open:N,onOpenChange:z,children:f}),t[42]=z,t[43]=N,t[44]=f,t[45]=b):b=t[45],b}function yt(u){return u+1}function jt(u){return u+1}export{Si as SeoSheet};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{e as H,q as $,j}from"./index-BD0Vs-CA.js";import{h as q,g as O,s as b}from"./pair-Bui7pRoY.js";import{u as v}from"./constants-D3TwDQx3.js";import{a as L,c as B}from"./use-mcp-tools-C1gRGhR_.js";import{c as Y}from"./content-blocks-o63cs2vh.js";import{g as k,M as G,b as E}from"./types-j6zTjYLW.js";import{a as V,c as z}from"./chat-context-DaxTCgBq.js";import{u as F}from"./shell-layout-CH8oYCM2.js";import"./agent-icon-Cdddea4y.js";import"./AlertCircle-BQdZzjHT.js";import"./Tool01-N1xf4ThS.js";import"./SwitchHorizontal01-CgqCR4Yz.js";import"./RefreshCcw01-Ucb5geTM.js";import"./XCircle-C2jaCgsw.js";import"./ArrowUpRight-CeE0rmVq.js";import"./ZapSquare-dqx_OfE2.js";import"./Users03-zhbxBBX-.js";import"./CheckCircle-DH7rdvLk.js";import"./Check-BC0oyj5b.js";import"./ChevronDown-R842NQ1U.js";import"./ChevronLeft-4yzLonaZ.js";import"./ChevronRight-ZAMgnesO.js";import"./ChevronUp-BF-b-Nnx.js";import"./DotsVertical-qBVhBkwp.js";import"./Container-DYeY832q.js";import"./Eye-DT8d17_D.js";import"./ZoomOut-BRLKFRz0.js";import"./Globe01-Dq1s-8U-.js";import"./FilterLines-0_3CSvNU.js";import"./Star01-3amhnFQB.js";import"./Palette-DgrVm9Lf.js";import"./HardDrive-BSOkGCav.js";import"./Stars02-BjwC_VwI.js";import"./Key01-6ihQsQH5.js";import"./LayoutLeft-DW_oy1t7.js";import"./LinkExternal01-Dr7L27C5.js";import"./Monitor01-B1nvgGLS.js";import"./Sun-D7IGJ5Qz.js";import"./Play-Irj6Snpi.js";import"./Plus-282oO62Z.js";import"./SearchMd-QjKlDFdA.js";import"./Settings02-C6oxZAMK.js";import"./Shield01-D7qNI860.js";import"./Stars01-D-S4IK6K.js";import"./Trash01-C5lXrAXB.js";import"./Upload01-CRQffHbJ.js";import"./User01-sifBP7dG.js";import"./Users01-CqOg_Qlq.js";import"./XClose-Dp1ChvR4.js";import"./X-CY5EOp8o.js";import"./Zap-DQUf40SC.js";import"./format-time-Cy7tTmZp.js";import"./differenceInSeconds-NQ4PDo0z.js";import"./scroll-area-DMkk7C5X.js";import"./select-877_XRoe.js";import"./tooltip-BXkAyk_s.js";import"./use-copy-D2WKzb4n.js";import"./file-type-icon-C7hLWFjD.js";import"./dialog-ZmuU49gf.js";import"./tab-id-DrhK90L3.js";import"./decopilot-sse-pool-BegF480x.js";import"./create-sse-subscription-BS5983N4.js";import"./integration-icon-DjqEnfq3.js";import"./use-virtual-mcp-Cvm4KLIO.js";import"./use-collections-HtykhO8E.js";import"./use-navigate-to-agent-BU3cK_V3.js";import"./use-connection-CFCjzYr3.js";import"./use-mcp-prompts-Cs73_aGi.js";import"./form-Bb30Dtd4.js";import"./label-C5JCVP3P.js";import"./input-BdjjFpfr.js";import"./spinner-CYDSZGqh.js";import"./unwrap-tool-result-BYXdCQMg.js";import"./use-ai-providers-DuBmTMbG.js";import"./use-organization-settings-DyFbECeN.js";import"./avatar-DZZ4PPWC.js";import"./required-auth-layout-RkDlrM0L.js";import"./useRouterState-ComuFEbk.js";import"./use-org-sso-BAFZBkLH.js";const J={};function K(S){const t=H.c(37),{client:r,resourceURI:g,tool:e,connectionId:s,orgId:a,args:c}=S,{sendMessage:u}=V(),{setAppContext:d,clearAppContext:o}=z(),{setChatOpen:f,openTab:m}=F(),p=`${s}:${e.name}`;let l;t[0]!==m?(l=h=>h==="inline"?(m("0"),"inline"):"fullscreen",t[0]=m,t[1]=l):l=t[1];const i=l,n=c??J;let T;t[2]!==r||t[3]!==e.name||t[4]!==n?(T={client:r,toolName:e.name,toolArguments:n},t[2]=r,t[3]=e.name,t[4]=n,t[5]=T):T=t[5];const{data:x}=B(T);let R;if(t[6]!==e._meta||t[7]!==e.name){const h=O(e._meta);R=b(e.name,h),t[6]=e._meta,t[7]=e.name,t[8]=R}else R=t[8];const U=R;let I;t[9]!==e.inputSchema?(I=e.inputSchema??{type:"object"},t[9]=e.inputSchema,t[10]=I):I=t[10];let N;t[11]!==U||t[12]!==I||t[13]!==e?(N={...e,name:U,inputSchema:I},t[11]=U,t[12]=I,t[13]=e,t[14]=N):N=t[14];const y=N;let _;t[15]!==u||t[16]!==f?(_=h=>{const w=Y(h.content);w.content.length>0&&(f(!0),u({tiptapDoc:w}))},t[15]=u,t[16]=f,t[17]=_):_=t[17];const D=_;let C;t[18]!==y?(C={tool:y},t[18]=y,t[19]=C):C=t[19];let M;t[20]!==d||t[21]!==p?(M=h=>d(p,h),t[20]=d,t[21]=p,t[22]=M):M=t[22];let P;t[23]!==o||t[24]!==p?(P=()=>o(p),t[23]=o,t[24]=p,t[25]=P):P=t[25];let A;return t[26]!==r||t[27]!==D||t[28]!==i||t[29]!==a||t[30]!==g||t[31]!==C||t[32]!==M||t[33]!==P||t[34]!==n||t[35]!==x?(A=j.jsx(G,{resourceURI:g,orgId:a,toolInfo:C,toolInput:n,toolResult:x,displayMode:"fullscreen",minHeight:E.fullscreen.minHeight,maxHeight:E.fullscreen.maxHeight,client:r,onMessage:D,onUpdateModelContext:M,onTeardown:P,onRequestDisplayMode:i,className:"h-full"}),t[26]=r,t[27]=D,t[28]=i,t[29]=a,t[30]=g,t[31]=C,t[32]=M,t[33]=P,t[34]=n,t[35]=x,t[36]=A):A=t[36],A}function Pe(S){const t=H.c(20),{connectionId:r,toolName:g,args:e}=S,{org:s}=$();let a;t[0]!==r||t[1]!==s.id||t[2]!==s.slug?(a={connectionId:r,orgId:s.id,orgSlug:s.slug},t[0]=r,t[1]=s.id,t[2]=s.slug,t[3]=a):a=t[3];const c=v(a);let u;t[4]!==c?(u={client:c},t[4]=c,t[5]=u):u=t[5];const{data:d}=L(u);let o,f,m;t[6]!==g||t[7]!==d.tools?(o=q(decodeURIComponent(g)),m=d.tools.find(i=>i.name===o)??d.tools.find(i=>{const n=O(i._meta);if(!n)return!1;if(b(i.name,n)===o)return!0;const x=b(o,n);return x!==o&&i.name===x}),f=m?._meta?k(m._meta):void 0,t[6]=g,t[7]=d.tools,t[8]=o,t[9]=f,t[10]=m):(o=t[8],f=t[9],m=t[10]);const p=f;if(!m||!p){let i;return t[11]!==o?(i=j.jsx("div",{className:"flex items-center justify-center h-full w-full",children:j.jsxs("p",{className:"text-sm text-muted-foreground",children:['Tool "',o,'" not found or has no UI']})}),t[11]=o,t[12]=i):i=t[12],i}let l;return t[13]!==e||t[14]!==c||t[15]!==r||t[16]!==s.id||t[17]!==p||t[18]!==m?(l=j.jsx(K,{client:c,resourceURI:p,tool:m,connectionId:r,orgId:s.id,args:e}),t[13]=e,t[14]=c,t[15]=r,t[16]=s.id,t[17]=p,t[18]=m,t[19]=l):l=t[19],l}export{Pe as AppViewContent};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{e as C,j as r}from"./index-BD0Vs-CA.js";import{I as F}from"./input-BdjjFpfr.js";import{L as T}from"./label-C5JCVP3P.js";import{T as L}from"./textarea-D91MKpZC.js";import{I as A}from"./image-field-BUiTz_KS.js";import{a7 as R,a8 as D,aa as J}from"./index-Dji_l0xa.js";import{u as K,s as S}from"./primitives-BY4b05zg.js";import{S as M}from"./save-status-Cs4ql7Lz.js";import"./Tool01-N1xf4ThS.js";import"./Trash01-C5lXrAXB.js";import"./Upload01-CRQffHbJ.js";import"./AlertCircle-BQdZzjHT.js";import"./Check-BC0oyj5b.js";import"./Eye-DT8d17_D.js";import"./DotsVertical-qBVhBkwp.js";import"./agent-icon-Cdddea4y.js";import"./SwitchHorizontal01-CgqCR4Yz.js";import"./RefreshCcw01-Ucb5geTM.js";import"./XCircle-C2jaCgsw.js";import"./ArrowUpRight-CeE0rmVq.js";import"./ZapSquare-dqx_OfE2.js";import"./Users03-zhbxBBX-.js";import"./CheckCircle-DH7rdvLk.js";import"./ChevronDown-R842NQ1U.js";import"./ChevronLeft-4yzLonaZ.js";import"./ChevronRight-ZAMgnesO.js";import"./ChevronUp-BF-b-Nnx.js";import"./Container-DYeY832q.js";import"./ZoomOut-BRLKFRz0.js";import"./Globe01-Dq1s-8U-.js";import"./FilterLines-0_3CSvNU.js";import"./Star01-3amhnFQB.js";import"./Palette-DgrVm9Lf.js";import"./HardDrive-BSOkGCav.js";import"./Stars02-BjwC_VwI.js";import"./Key01-6ihQsQH5.js";import"./LayoutLeft-DW_oy1t7.js";import"./LinkExternal01-Dr7L27C5.js";import"./Monitor01-B1nvgGLS.js";import"./Sun-D7IGJ5Qz.js";import"./Play-Irj6Snpi.js";import"./Plus-282oO62Z.js";import"./SearchMd-QjKlDFdA.js";import"./Settings02-C6oxZAMK.js";import"./Shield01-D7qNI860.js";import"./Stars01-D-S4IK6K.js";import"./User01-sifBP7dG.js";import"./Users01-CqOg_Qlq.js";import"./XClose-Dp1ChvR4.js";import"./X-CY5EOp8o.js";import"./Zap-DQUf40SC.js";import"./dialog-ZmuU49gf.js";import"./dropdown-menu-CxtJkFj7.js";import"./skeleton-CoJAV87H.js";import"./tabs-D9ntWD-6.js";import"./use-file-configs-BdoGIuji.js";import"./constants-D3TwDQx3.js";import"./unwrap-tool-result-BYXdCQMg.js";import"./useInfiniteQuery-BXWzDcVY.js";import"./infiniteQueryObserver-sLZJuWs1.js";import"./agent-capabilities-CoD6HyyN.js";import"./pair-Bui7pRoY.js";import"./format-time-Cy7tTmZp.js";import"./differenceInSeconds-NQ4PDo0z.js";import"./scroll-area-DMkk7C5X.js";import"./select-877_XRoe.js";import"./tooltip-BXkAyk_s.js";import"./use-copy-D2WKzb4n.js";import"./file-type-icon-C7hLWFjD.js";import"./content-blocks-o63cs2vh.js";import"./types-j6zTjYLW.js";import"./chat-context-DaxTCgBq.js";import"./tab-id-DrhK90L3.js";import"./decopilot-sse-pool-BegF480x.js";import"./create-sse-subscription-BS5983N4.js";import"./use-virtual-mcp-Cvm4KLIO.js";import"./use-collections-HtykhO8E.js";import"./use-ai-providers-DuBmTMbG.js";import"./use-organization-settings-DyFbECeN.js";import"./shell-layout-CH8oYCM2.js";import"./avatar-DZZ4PPWC.js";import"./required-auth-layout-RkDlrM0L.js";import"./useRouterState-ComuFEbk.js";import"./use-org-sso-BAFZBkLH.js";import"./integration-icon-DjqEnfq3.js";import"./use-navigate-to-agent-BU3cK_V3.js";import"./use-connection-CFCjzYr3.js";import"./use-mcp-prompts-Cs73_aGi.js";import"./form-Bb30Dtd4.js";import"./spinner-CYDSZGqh.js";import"./drawer-gGw1fcoY.js";import"./collection-search-DcKd-0OB.js";import"./toggle-group-DGrm2vuO.js";import"./connect-desktop-dialog-BHLyUOHP.js";import"./agent-icons-CKU8GGl2.js";import"./checkbox-zURLZ3UX.js";import"./ai-providers-logos-DD3qZ33J.js";import"./settings-section-kr7Y9bP9.js";import"./card-Dj9cg3CK.js";import"./popover-cTB9T6zY.js";import"./command-SwSMex4i.js";import"./index-Czyl40Yo.js";import"./sortable.esm-ZerYvs9l.js";import"./connection-slug-eyAPH6o3.js";import"./connection-card-BMM5SXL2.js";import"./use-registry-connections-Bk2SQzaL.js";import"./extract-connection-data-BxLUPS35.js";import"./generate-id-DCuwKdwd.js";import"./collections-CjKCiyyJ.js";import"./collection-tabs-B68kf5RK.js";import"./badge-9pGcMSo9.js";import"./connection-form-helpers-DQIelH5O.js";import"./use-infinite-scroll--wh3054T.js";import"./useSuspenseInfiniteQuery-C3HFhtdp.js";import"./index-C-7fxrkj.js";import"./question-004-sINsf4GQ.js";import"./shell-route-loading-Cn0fA0CZ.js";import"./sidebar-OlCqSXPX.js";import"./sheet-Dsz02SFl.js";import"./toolbar-Dy7jx2bJ.js";import"./use-create-virtual-mcp-D8DtJRBD.js";import"./github-repo-picker-ukQ8mlgx.js";import"./use-mcp-tools-C1gRGhR_.js";import"./alert-dialog-wo7djkDg.js";import"./index-Cov_Guzr.js";import"./use-org-auth-client-DDgSMc-B.js";import"./hover-card-BJCPsde9.js";import"./task-status-Sjdts0gR.js";import"./use-status-sounds-CvJbKYn3.js";import"./empty-state-Bp53vJ5J.js";import"./resizable-BRPR_6nf.js";import"./use-capability-4Bqq3Ptd.js";import"./header-tab-button-Ct59Qn2o.js";import"./index-CPp-3T8R.js";import"./user-Bkww3yLN.js";import"./tools-list-BmmPeFb6.js";import"./switch-Bazzokl_.js";import"./use-debounced-autosave-B_zQVx0C.js";import"./index-D3Ribt5F.js";import"./search-input-C-P2O70i.js";import"./use-secrets-7GF-cSiL.js";import"./formatDistanceToNow-Cb2QZZJn.js";import"./accordion-BU6HxGne.js";import"./view-mode-toggle-2ZW6tMJS.js";import"./select-model-C_cur-rH.js";import"./use-automations-ClchBd2q.js";import"./monaco-editor-D2Cgb5CL.js";import"./automation-runs-BxnZN2Rp.js";import"./table-Do8GxGTj.js";import"./use-members-PGJbXmC6.js";import"./automation-list-row-DrMmYGg2.js";const $={authors:[{key:"name",label:"Name",widget:"text"},{key:"email",label:"Email",widget:"text",placeholder:"author@example.com"},{key:"jobTitle",label:"Job title",widget:"text"},{key:"company",label:"Company",widget:"text"},{key:"avatar",label:"Avatar",widget:"image"}],categories:[{key:"name",label:"Name",widget:"text"},{key:"slug",label:"Slug",widget:"text",placeholder:"my-category"}]},q={authors:"Author",categories:"Category"};function Tr(P){const t=C.c(34),{orgSlug:v,virtualMcpId:j,branch:w,kind:p,blockKey:y,block:f}=P;let u;t[0]!==w||t[1]!==v||t[2]!==j?(u={orgSlug:v,virtualMcpId:j,branch:w},t[0]=w,t[1]=v,t[2]=j,t[3]=u):u=t[3];const m=R(u);let d;t[4]!==f||t[5]!==p?(d=D(f,p),t[4]=f,t[5]=p,t[6]=d):d=t[6];const B=d;let h;t[7]!==y||t[8]!==p||t[9]!==m?(h=e=>{m.mutate({blockKey:y,data:J(y,p,e)})},t[7]=y,t[8]=p,t[9]=m,t[10]=h):h=t[10];const[i,E]=K(B,h);let k;t[11]!==i||t[12]!==E?(k=(e,o)=>E({...i,[e]:o}),t[11]=i,t[12]=E,t[13]=k):k=t[13];const a=k,N=q[p];let s;t[14]!==N?(s=r.jsx("span",{className:"text-sm font-medium",children:N}),t[14]=N,t[15]=s):s=t[15];let l;t[16]!==m.isError||t[17]!==m.isPending?(l=r.jsx(M,{isPending:m.isPending,isError:m.isError}),t[16]=m.isError,t[17]=m.isPending,t[18]=l):l=t[18];let n;t[19]!==s||t[20]!==l?(n=r.jsxs("div",{className:"flex h-12 shrink-0 items-center justify-between border-b px-6",children:[s,l]}),t[19]=s,t[20]=l,t[21]=n):n=t[21];const I=$[p];let c;if(t[22]!==i||t[23]!==a||t[24]!==I){let e;t[26]!==i||t[27]!==a?(e=o=>r.jsx("div",{className:"space-y-2",children:o.widget==="image"?r.jsx(A,{schema:{type:"string",format:"image-uri",title:o.label},value:i[o.key],onChange:x=>a(o.key,x),path:o.key,label:o.label}):r.jsxs(r.Fragment,{children:[r.jsx(T,{htmlFor:o.key,children:o.label}),o.widget==="textarea"?r.jsx(L,{id:o.key,value:S(i[o.key]),onChange:x=>a(o.key,x.target.value),rows:3}):r.jsx(F,{id:o.key,value:S(i[o.key]),placeholder:o.placeholder,onChange:x=>a(o.key,x.target.value),className:"h-10"})]})},o.key),t[26]=i,t[27]=a,t[28]=e):e=t[28],c=I.map(e),t[22]=i,t[23]=a,t[24]=I,t[25]=c}else c=t[25];let g;t[29]!==c?(g=r.jsx("div",{className:"min-w-0 flex-1 overflow-y-auto px-6 py-6",children:r.jsx("div",{className:"mx-auto max-w-xl space-y-6",children:c})}),t[29]=c,t[30]=g):g=t[30];let b;return t[31]!==g||t[32]!==n?(b=r.jsxs("div",{className:"flex h-full flex-col",children:[n,g]}),t[31]=g,t[32]=n,t[33]=b):b=t[33],b}export{Tr as RecordEditor};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/registry-layout-oMaQFjep.js","assets/index-BD0Vs-CA.js","assets/index-D5dv4kfs.css","assets/XCircle-C2jaCgsw.js","assets/CheckCircle-DH7rdvLk.js","assets/Container-DYeY832q.js","assets/Settings02-C6oxZAMK.js","assets/constants-D3TwDQx3.js","assets/useInfiniteQuery-BXWzDcVY.js","assets/infiniteQueryObserver-sLZJuWs1.js","assets/badge-9pGcMSo9.js","assets/input-BdjjFpfr.js","assets/dropdown-menu-CxtJkFj7.js","assets/Check-BC0oyj5b.js","assets/ChevronRight-ZAMgnesO.js","assets/DotsVertical-qBVhBkwp.js","assets/table-Do8GxGTj.js","assets/toggle-group-DGrm2vuO.js","assets/use-view-mode-DitlqWxa.js","assets/tooltip-BXkAyk_s.js","assets/FilterLines-0_3CSvNU.js","assets/Globe01-Dq1s-8U-.js","assets/SearchMd-QjKlDFdA.js","assets/dialog-ZmuU49gf.js","assets/X-CY5EOp8o.js","assets/AlertCircle-BQdZzjHT.js","assets/Upload01-CRQffHbJ.js","assets/alert-dialog-wo7djkDg.js","assets/card-Dj9cg3CK.js","assets/Trash01-C5lXrAXB.js","assets/label-C5JCVP3P.js","assets/select-877_XRoe.js","assets/ChevronDown-R842NQ1U.js","assets/ChevronUp-BF-b-Nnx.js","assets/switch-Bazzokl_.js","assets/textarea-D91MKpZC.js","assets/RefreshCcw01-Ucb5geTM.js","assets/checkbox-zURLZ3UX.js","assets/Eye-DT8d17_D.js","assets/LinkExternal01-Dr7L27C5.js","assets/use-copy-D2WKzb4n.js","assets/Key01-6ihQsQH5.js","assets/Plus-282oO62Z.js","assets/Play-Irj6Snpi.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{e as i,j as e,r as s,l as a,_ as o}from"./index-BD0Vs-CA.js";import{R as l}from"./require-capability-CG52f6R3.js";import"./use-capability-4Bqq3Ptd.js";import"./access-gate-CljCKnMv.js";import"./capability-load-error-CjoddyUE.js";const m=s.lazy(()=>o(()=>import("./registry-layout-oMaQFjep.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43])));function f(){const r=i.c(1);let t;return r[0]===Symbol.for("react.memo_cache_sentinel")?(t=e.jsx(l,{capability:"registry:manage",area:"the registry",children:e.jsx(s.Suspense,{fallback:e.jsx("div",{className:"flex-1 flex items-center justify-center",children:e.jsx(a,{size:20,className:"animate-spin text-muted-foreground"})}),children:e.jsx(m,{})})}),r[0]=t):t=r[0],t}export{f as default};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/registry-layout-oMaQFjep.js","assets/index-BD0Vs-CA.js","assets/index-D5dv4kfs.css","assets/XCircle-C2jaCgsw.js","assets/CheckCircle-DH7rdvLk.js","assets/Container-DYeY832q.js","assets/Settings02-C6oxZAMK.js","assets/constants-D3TwDQx3.js","assets/useInfiniteQuery-BXWzDcVY.js","assets/infiniteQueryObserver-sLZJuWs1.js","assets/badge-9pGcMSo9.js","assets/input-BdjjFpfr.js","assets/dropdown-menu-CxtJkFj7.js","assets/Check-BC0oyj5b.js","assets/ChevronRight-ZAMgnesO.js","assets/DotsVertical-qBVhBkwp.js","assets/table-Do8GxGTj.js","assets/toggle-group-DGrm2vuO.js","assets/use-view-mode-DitlqWxa.js","assets/tooltip-BXkAyk_s.js","assets/FilterLines-0_3CSvNU.js","assets/Globe01-Dq1s-8U-.js","assets/SearchMd-QjKlDFdA.js","assets/dialog-ZmuU49gf.js","assets/X-CY5EOp8o.js","assets/AlertCircle-BQdZzjHT.js","assets/Upload01-CRQffHbJ.js","assets/alert-dialog-wo7djkDg.js","assets/card-Dj9cg3CK.js","assets/Trash01-C5lXrAXB.js","assets/label-C5JCVP3P.js","assets/select-877_XRoe.js","assets/ChevronDown-R842NQ1U.js","assets/ChevronUp-BF-b-Nnx.js","assets/switch-Bazzokl_.js","assets/textarea-D91MKpZC.js","assets/RefreshCcw01-Ucb5geTM.js","assets/checkbox-zURLZ3UX.js","assets/Eye-DT8d17_D.js","assets/LinkExternal01-Dr7L27C5.js","assets/use-copy-D2WKzb4n.js","assets/Key01-6ihQsQH5.js","assets/Plus-282oO62Z.js","assets/Play-Irj6Snpi.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{e as m,f as n,g as c,j as t,l as f,r as l,_ as p}from"./index-BD0Vs-CA.js";import{R as u}from"./require-capability-CG52f6R3.js";import"./use-capability-4Bqq3Ptd.js";import"./access-gate-CljCKnMv.js";import"./capability-load-error-CjoddyUE.js";const g=l.lazy(()=>p(()=>import("./registry-layout-oMaQFjep.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43])));function j(){const e=m.c(5),i=n();let s;e[0]===Symbol.for("react.memo_cache_sentinel")?(s={from:"/shell/$org"},e[0]=s):s=e[0];const{org:o}=c(s);let r;e[1]===Symbol.for("react.memo_cache_sentinel")?(r=t.jsx("div",{className:"h-full flex items-center justify-center",children:t.jsx(f,{size:20,className:"animate-spin text-muted-foreground"})}),e[1]=r):r=e[1];let a;return e[2]!==i||e[3]!==o?(a=t.jsx(u,{capability:"registry:manage",area:"the registry",children:t.jsx(l.Suspense,{fallback:r,children:t.jsx(g,{onBack:()=>i({to:"/$org/settings/store",params:{org:o}})})})}),e[2]=i,e[3]=o,e[4]=a):a=e[4],a}export{j as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{I as u}from"./infiniteQueryObserver-sLZJuWs1.js";import{cv as i}from"./index-BD0Vs-CA.js";function t(e,r){return i(e,u,r)}export{t as u};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{I as s}from"./infiniteQueryObserver-sLZJuWs1.js";import{cv as u,aE as n}from"./index-BD0Vs-CA.js";function a(r,e){return u({...r,enabled:!0,suspense:!0,throwOnError:n},s,e)}export{a as u};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{e as s,g as l,j as o,l as a,E as n,r as c}from"./index-BD0Vs-CA.js";import{a as f}from"./index-De2W4Fh6.js";import"./index-DiDlqgd4.js";import"./constants-D3TwDQx3.js";import"./collections-CjKCiyyJ.js";import"./index-C-BjtSEe.js";import"./use-virtual-mcp-Cvm4KLIO.js";import"./use-collections-HtykhO8E.js";import"./monaco-editor-D2Cgb5CL.js";import"./index-CPp-3T8R.js";import"./spinner-CYDSZGqh.js";import"./resizable-BRPR_6nf.js";import"./ZoomOut-BRLKFRz0.js";import"./badge-9pGcMSo9.js";import"./select-877_XRoe.js";import"./tooltip-BXkAyk_s.js";import"./Check-BC0oyj5b.js";import"./ChevronDown-R842NQ1U.js";import"./ChevronUp-BF-b-Nnx.js";import"./view-mode-toggle-2ZW6tMJS.js";import"./agent-icon-Cdddea4y.js";import"./AlertCircle-BQdZzjHT.js";import"./Tool01-N1xf4ThS.js";import"./SwitchHorizontal01-CgqCR4Yz.js";import"./RefreshCcw01-Ucb5geTM.js";import"./XCircle-C2jaCgsw.js";import"./ArrowUpRight-CeE0rmVq.js";import"./ZapSquare-dqx_OfE2.js";import"./Users03-zhbxBBX-.js";import"./CheckCircle-DH7rdvLk.js";import"./ChevronLeft-4yzLonaZ.js";import"./ChevronRight-ZAMgnesO.js";import"./DotsVertical-qBVhBkwp.js";import"./Container-DYeY832q.js";import"./Eye-DT8d17_D.js";import"./Globe01-Dq1s-8U-.js";import"./FilterLines-0_3CSvNU.js";import"./Star01-3amhnFQB.js";import"./Palette-DgrVm9Lf.js";import"./HardDrive-BSOkGCav.js";import"./Stars02-BjwC_VwI.js";import"./Key01-6ihQsQH5.js";import"./LayoutLeft-DW_oy1t7.js";import"./LinkExternal01-Dr7L27C5.js";import"./Monitor01-B1nvgGLS.js";import"./Sun-D7IGJ5Qz.js";import"./Play-Irj6Snpi.js";import"./Plus-282oO62Z.js";import"./SearchMd-QjKlDFdA.js";import"./Settings02-C6oxZAMK.js";import"./Shield01-D7qNI860.js";import"./Stars01-D-S4IK6K.js";import"./Trash01-C5lXrAXB.js";import"./Upload01-CRQffHbJ.js";import"./User01-sifBP7dG.js";import"./Users01-CqOg_Qlq.js";import"./XClose-Dp1ChvR4.js";import"./X-CY5EOp8o.js";import"./Zap-DQUf40SC.js";import"./layout-K01ShTmz.js";import"./index-D3Ribt5F.js";import"./sidebar-OlCqSXPX.js";import"./sheet-Dsz02SFl.js";import"./use-connection-CFCjzYr3.js";import"./use-mcp-tools-C1gRGhR_.js";import"./dialog-ZmuU49gf.js";import"./scroll-area-DMkk7C5X.js";import"./index-C-7fxrkj.js";import"./hover-card-BJCPsde9.js";import"./dropdown-menu-CxtJkFj7.js";import"./integration-icon-DjqEnfq3.js";import"./accordion-BU6HxGne.js";import"./index-Cov_Guzr.js";import"./empty-state-DypMRY_b.js";import"./create-sse-subscription-BS5983N4.js";import"./input-BdjjFpfr.js";function Bt(){const t=s.c(4);let r;t[0]===Symbol.for("react.memo_cache_sentinel")?(r={from:"/shell/$org/settings/workflows/$itemId"},t[0]=r):r=t[0];const{itemId:e}=l(r);let i;t[1]===Symbol.for("react.memo_cache_sentinel")?(i=o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(a,{size:32,className:"animate-spin text-muted-foreground"})}),t[1]=i):i=t[1];const p=decodeURIComponent(e);let m;return t[2]!==p?(m=o.jsx(n,{children:o.jsx(c.Suspense,{fallback:i,children:o.jsx(f,{itemId:p})})}),t[2]=p,t[3]=m):m=t[3],m}export{Bt as default};
|