@vellumai/web 0.11.5-staging.1 → 0.11.5-staging.2
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/assets/{Trans-Ayy2zoN6.js → Trans-CM5UUgDt.js} +1 -1
- package/dist/assets/{a2a-invite-BnytH07i.js → a2a-invite-CduLLtki.js} +1 -1
- package/dist/assets/{account-page-fksftFTI.js → account-page-CSJOSKzD.js} +1 -1
- package/dist/assets/{account-shell-Cm4mAmQ1.js → account-shell-WRaiE1O8.js} +1 -1
- package/dist/assets/{acp-run-detail-panel-DpY-2IUp.js → acp-run-detail-panel-gR77X6Xm.js} +1 -1
- package/dist/assets/{activity-steps-panel-D9L-wNUS.js → activity-steps-panel-BglLu7wx.js} +1 -1
- package/dist/assets/{add-credential-modal-D2dFz_aq.js → add-credential-modal-DgoBqgwB.js} +1 -1
- package/dist/assets/{add-credits-modal-CmRWmR5E.js → add-credits-modal-BNab_7H9.js} +1 -1
- package/dist/assets/{ai-page-DSvzyRcE.js → ai-page-CLAFnWl5.js} +1 -1
- package/dist/assets/{api-key-screen-8g2vhXCU.js → api-key-screen-CS0KZgP6.js} +1 -1
- package/dist/assets/{app-card-Cz7zkQT3.js → app-card-C7c3c4l4.js} +1 -1
- package/dist/assets/{archive-redirect-page-ClPbJzqu.js → archive-redirect-page-DZkHnLmA.js} +1 -1
- package/dist/assets/{assistant-feature-flag-store-DPde0AIx.js → assistant-feature-flag-store-CdXRp9pV.js} +1 -1
- package/dist/assets/{assistant-status-panel-uGuW1yZK.js → assistant-status-panel-BogBdYLj.js} +1 -1
- package/dist/assets/auth-store-iNnDaLgR.js +2 -0
- package/dist/assets/{auth-welcome-screen-Da31gKxW.js → auth-welcome-screen-BoiE47Sg.js} +1 -1
- package/dist/assets/{avatar-random-BL7Gu5qp.js → avatar-random-C7t2cN3Y.js} +1 -1
- package/dist/assets/{background-task-detail-panel-CxmesGo1.js → background-task-detail-panel-BeXbhHLZ.js} +1 -1
- package/dist/assets/{billing-page-EthbxOpl.js → billing-page-PuFxEptl.js} +3 -3
- package/dist/assets/{billing-redirect-page-DbvbLo7I.js → billing-redirect-page-BFDitQeE.js} +1 -1
- package/dist/assets/bookmarks-page-DY_CJ4I3.js +1 -0
- package/dist/assets/{browser-DH4V-FME.js → browser--x9YKXWo.js} +2 -2
- package/dist/assets/{build-state-DjZj1PEB.js → build-state-Dtia1Hnq.js} +1 -1
- package/dist/assets/{button-VkxVX0DM.js → button-C8CGr0T0.js} +1 -1
- package/dist/assets/{channels-page-route-DzS1In-E.js → channels-page-route-WZWPUfRo.js} +1 -1
- package/dist/assets/{chat-markdown-message-FJAu4s2A.js → chat-markdown-message-JeYI9m3i.js} +1 -1
- package/dist/assets/{checkbox-BkYoVUtf.js → checkbox-BWX_Dnge.js} +1 -1
- package/dist/assets/checkout-continuation-B-A9SoHt.js +1 -0
- package/dist/assets/{checkout-page-WkiUwe7y.js → checkout-page-BYHPD7UJ.js} +1 -1
- package/dist/assets/checkout-return-target-DnT91-Y_.js +1 -0
- package/dist/assets/{client-feature-flag-store-o8FXKc-R.js → client-feature-flag-store-DuVzcD-V.js} +1 -1
- package/dist/assets/{client-perf-EM-2B6Ha.js → client-perf-Bg-CBIVj.js} +1 -1
- package/dist/assets/{command-palette-Tz8bW1Zb.js → command-palette-C8JWMyiC.js} +1 -1
- package/dist/assets/{command-palette-window-page-CICaRPRP.js → command-palette-window-page-C8vw0yIO.js} +1 -1
- package/dist/assets/common-gaw6OefS.js +1 -0
- package/dist/assets/{community-page-CuJypGVc.js → community-page-DvR4X6k9.js} +1 -1
- package/dist/assets/companion-surface-page-iknPQRTu.js +1 -0
- package/dist/assets/{composer-settings-xBD4cVBI.js → composer-settings-B84-FOM1.js} +1 -1
- package/dist/assets/{confirm-dialog--7V28331.js → confirm-dialog-DYmL6FRe.js} +1 -1
- package/dist/assets/{connect-page-Dkitufkv.js → connect-page-CKAizrWr.js} +1 -1
- package/dist/assets/consent-DgQeejGe.js +1 -0
- package/dist/assets/{consent-controls-D7wjMU4g.js → consent-controls-V9Wca6TV.js} +1 -1
- package/dist/assets/{contacts-page-route-Dsb5c0ov.js → contacts-page-route-BceswcoE.js} +1 -1
- package/dist/assets/{conversation-cache-DJbtcDiW.js → conversation-cache-CuEQRyqi.js} +1 -1
- package/dist/assets/{conversation-navigation-Cg1rXwwx.js → conversation-navigation-CfOyMc6W.js} +1 -1
- package/dist/assets/{conversation-queries-YVB1UbYl.js → conversation-queries-CtAFZgFP.js} +1 -1
- package/dist/assets/{conversation-selection-CRqFjCDm.js → conversation-selection-ZuF7NVBR.js} +1 -1
- package/dist/assets/{copy-to-clipboard-wnEkIu5M.js → copy-to-clipboard-yufQqRBL.js} +1 -1
- package/dist/assets/{credential-entry-page-DvSQvCah.js → credential-entry-page-B0NYTomQ.js} +1 -1
- package/dist/assets/{credentials-page-qE6ZVx_g.js → credentials-page-DfOet7SI.js} +1 -1
- package/dist/assets/{csv-preview-CmccW-uE.js → csv-preview-QUU-h2MX.js} +1 -1
- package/dist/assets/{danger-zone-redirect-page-D9ysYxNl.js → danger-zone-redirect-page-B_ZMX7ns.js} +1 -1
- package/dist/assets/{debug-page-BUP88wEB.js → debug-page-DXvFlnqh.js} +1 -1
- package/dist/assets/{deploy-dialogs-DB5LzYcq.js → deploy-dialogs-ilUtMpvf.js} +1 -1
- package/dist/assets/{deploy-store-wUa1-kTk.js → deploy-store-C_y0BvwK.js} +1 -1
- package/dist/assets/{detail-card-DBxsIpmu.js → detail-card-DwBporBs.js} +1 -1
- package/dist/assets/{detail-drawer-PnkAA_sr.js → detail-drawer-Di5V_iLf.js} +1 -1
- package/dist/assets/{detail-shell-BpJzTGvM.js → detail-shell-CcrQic9y.js} +1 -1
- package/dist/assets/developer-page-B_LQmpH7.js +1 -0
- package/dist/assets/{devices-redirect-page-B1K9-KDL.js → devices-redirect-page-BD0VY17t.js} +1 -1
- package/dist/assets/{diagnostics-D82Xy5aG.js → diagnostics-BcQgahbk.js} +1 -1
- package/dist/assets/dist-BFOJNO7w.js +1 -0
- package/dist/assets/{dist-D94ZMew1.js → dist-BsGO-mS7.js} +1 -1
- package/dist/assets/{dist-CzN28mbE.js → dist-DN2Wju98.js} +1 -1
- package/dist/assets/{dist--4Bbb2u3.js → dist-eCSUXDGk.js} +1 -1
- package/dist/assets/{doctor-handoff-store-DsMgYJHu.js → doctor-handoff-store-B_RlFFKC.js} +1 -1
- package/dist/assets/{document-viewer-container-RskGQW6t.js → document-viewer-container-D3aPjnj8.js} +2 -2
- package/dist/assets/{document-viewer-page-CbpsmQWC.js → document-viewer-page-CvQXX7Mp.js} +1 -1
- package/dist/assets/{emails-page-_5YOJc7e.js → emails-page-DbAVQ_jC.js} +1 -1
- package/dist/assets/esm-4Bnaz5rU.js +2 -0
- package/dist/assets/{esm-BNARxlDM.js → esm-C4VoH46A.js} +1 -1
- package/dist/assets/{esm-D5OjXPP0.js → esm-CrXbhSov.js} +2 -2
- package/dist/assets/{esm-BRNK_0Y3.js → esm-Cz8_Dotd.js} +1 -1
- package/dist/assets/esm-DBGqhIh5.js +1 -0
- package/dist/assets/esm-DXPZZih3.js +2 -0
- package/dist/assets/esm-DcJxSeV0.js +2 -0
- package/dist/assets/{esm-8NN8IH0k.js → esm-Ddv_MyHw.js} +2 -2
- package/dist/assets/esm-Do2zrCWJ.js +2 -0
- package/dist/assets/esm-DrXV9mo-.js +2 -0
- package/dist/assets/{external-anchor-BQjaNMxT.js → external-anchor-owoORewf.js} +1 -1
- package/dist/assets/feature-flag-catalog-C1y2RUth.js +1 -0
- package/dist/assets/feed-item-status-actions-C3JfFvZc.js +1 -0
- package/dist/assets/{file-editor-DQtez5BN.js → file-editor-CeYfWNBz.js} +1 -1
- package/dist/assets/{file-markdown-CFQG2IW9.js → file-markdown-B9G_TXX-.js} +1 -1
- package/dist/assets/{first-run-scope-Cs-NWmVG.js → first-run-scope-MD-rEgje.js} +1 -1
- package/dist/assets/{format-usd-Dv-VJP5v.js → format-usd-BYzA1eMJ.js} +1 -1
- package/dist/assets/{funnel-events-DEzFt9ac.js → funnel-events-ClGpFDNM.js} +1 -1
- package/dist/assets/general-page-CzDlVoNx.js +1 -0
- package/dist/assets/{haptics-BR_zMLz2.js → haptics-F-nvqKYf.js} +2 -2
- package/dist/assets/{hatching-screen-BKmwq_y2.js → hatching-screen-FgNbjXOt.js} +1 -1
- package/dist/assets/{home-page-route-BWF6O6BN.js → home-page-route-C7Aeo-Mg.js} +1 -1
- package/dist/assets/{hosting-screen-BI8jdpYg.js → hosting-screen-CLVRdDiX.js} +1 -1
- package/dist/assets/{i18n-7Z5ghN39.js → i18n-C3bX3mTs.js} +1 -1
- package/dist/assets/{identity-page-route-pCMyDEEU.js → identity-page-route-CHncFua2.js} +1 -1
- package/dist/assets/index-C7hCfQpd.css +2 -0
- package/dist/assets/{index-CffZ8_I1.js → index-DS0PEdhO.js} +5 -5
- package/dist/assets/{ingest-BubkTA7j.js → ingest-C1wiUm1l.js} +1 -1
- package/dist/assets/{input-DkgpMeG9.js → input-DlkBtbxm.js} +1 -1
- package/dist/assets/{inspect-page-2b2xMjZ-.js → inspect-page-CNLiZXRt.js} +3 -3
- package/dist/assets/{installed-plugins-query-CmlpXeFG.js → installed-plugins-query-DQKwv-Iz.js} +1 -1
- package/dist/assets/{integrations-page-C6SEZlRH.js → integrations-page-B9SHiomg.js} +1 -1
- package/dist/assets/{intelligence-layout-BltAdOWl.js → intelligence-layout-BoW8JbDc.js} +1 -1
- package/dist/assets/internal-thread-actions-C0S_b7cx.js +1 -0
- package/dist/assets/{invalidate-memory-queries-C_LpIe-7.js → invalidate-memory-queries-uk2gV1m0.js} +1 -1
- package/dist/assets/{invalidate-plugin-queries-DpWKL6e1.js → invalidate-plugin-queries-CI1Cseau.js} +1 -1
- package/dist/assets/{keyboard-shortcuts-redirect-page-BZAeBBT5.js → keyboard-shortcuts-redirect-page-BY3Va4w9.js} +1 -1
- package/dist/assets/{latest-assistant-text-C8nmvw4v.js → latest-assistant-text-fXT5Jkt8.js} +1 -1
- package/dist/assets/{library-detail-page-BTDRSSKy.js → library-detail-page-CX92FKAK.js} +1 -1
- package/dist/assets/{library-page-GoqUkn2E.js → library-page-D2v2j-WU.js} +1 -1
- package/dist/assets/{list-row-D1odQOMJ.js → list-row-6uedKE84.js} +1 -1
- package/dist/assets/{local-runtime-upgrade-BTtW-R95.js → local-runtime-upgrade-BpvLk3HN.js} +1 -1
- package/dist/assets/{login-flow-DIQYXP6A.js → login-flow-BYBqjDap.js} +1 -1
- package/dist/assets/{login-page-hY9FaC1m.js → login-page-fl8rgXFq.js} +1 -1
- package/dist/assets/{logout-page-mVYiyZFE.js → logout-page-DLjLy7Hp.js} +1 -1
- package/dist/assets/{logs-layout-_ycf1xan.js → logs-layout-Du4o-HeH.js} +1 -1
- package/dist/assets/{markdown-preview-CzYn25XC.js → markdown-preview-ukYPAksc.js} +1 -1
- package/dist/assets/{memory-page-route-CA8ygLKs.js → memory-page-route-CvKjQ2FE.js} +1 -1
- package/dist/assets/{memory-router-playground-page-B8rj0dNA.js → memory-router-playground-page-Dh8zVze9.js} +1 -1
- package/dist/assets/{menu-noj9Ohcf.js → menu-Ci8JeI2H.js} +1 -1
- package/dist/assets/{message-files-panel-COyAxMPi.js → message-files-panel-DEAC2iCY.js} +1 -1
- package/dist/assets/{messages-BhT6U312.js → messages-D5oI1yRV.js} +1 -1
- package/dist/assets/{metric-card-BQ-q7_9N.js → metric-card-YqtdN5uX.js} +1 -1
- package/dist/assets/{modal-UYNawsIu.js → modal-DN_Uwwkg.js} +1 -1
- package/dist/assets/native-anchor-C13W_dF5.js +1 -0
- package/dist/assets/{native-biometric-Dk_rOSjU.js → native-biometric-DzQYY-Z2.js} +1 -1
- package/dist/assets/{native-file-Dt4IC5xP.js → native-file-qM32rSz7.js} +2 -2
- package/dist/assets/{navigation-resolver-Cb4Lilq5.js → navigation-resolver-B6QxHAa5.js} +1 -1
- package/dist/assets/{not-found-CV2fs1T6.js → not-found-DXwfp4Yf.js} +1 -1
- package/dist/assets/{notifications-DZCtGip1.js → notifications-DMNpr3pt.js} +1 -1
- package/dist/assets/{notifications-page-BZmovm97.js → notifications-page-DD-175gq.js} +1 -1
- package/dist/assets/{oauth-complete-page-BTWKsjld.js → oauth-complete-page-DBDWL3aD.js} +1 -1
- package/dist/assets/{oauth-connection-utils-9aKLpLet.js → oauth-connection-utils-dPIUOXze.js} +1 -1
- package/dist/assets/{oauth-popup-complete-page-Dn7v4THp.js → oauth-popup-complete-page-Dv0482xp.js} +1 -1
- package/dist/assets/{onboarding-layout-81jlZ1Nr.js → onboarding-layout-CYgAi-S1.js} +1 -1
- package/dist/assets/{open-workspace-file-CINDRVEK.js → open-workspace-file-Ca9gUjoQ.js} +2 -2
- package/dist/assets/{operational-status-D9ExUyuP.js → operational-status-DVK3_kD_.js} +1 -1
- package/dist/assets/{page-shell-DEN0SqaR.js → page-shell-nVp2ogSk.js} +1 -1
- package/dist/assets/{pairing-page-CUdrYuE6.js → pairing-page-CLNSXQ7A.js} +1 -1
- package/dist/assets/{password-reset-page-BkX1L0-o.js → password-reset-page-BNw-K6vZ.js} +1 -1
- package/dist/assets/{personality-page-C6Fs2NDZ.js → personality-page-axIG9Tu_.js} +1 -1
- package/dist/assets/{plans-page-CtUDk34m.js → plans-page-DQu9C86N.js} +1 -1
- package/dist/assets/{platform-detection-CuBj2s81.js → platform-detection-C-a_Mru0.js} +1 -1
- package/dist/assets/{platform-login-notice-V5xsGsbM.js → platform-login-notice-Dmq_2Akt.js} +1 -1
- package/dist/assets/{platform-loopback-page-07jf3mNj.js → platform-loopback-page-B0UOR3ct.js} +1 -1
- package/dist/assets/{plugin-detail-page-hHTbKbVT.js → plugin-detail-page-2ySPND3h.js} +1 -1
- package/dist/assets/{plugins-page-Cg5tKwHZ.js → plugins-page-D7jLWtXv.js} +1 -1
- package/dist/assets/popover-B_nY8VYI.js +1 -0
- package/dist/assets/{prefs-D-MNCWeN.js → prefs-BFDWWNwd.js} +1 -1
- package/dist/assets/{preview-error-UT2_K5co.js → preview-error-B7qHC1Y4.js} +1 -1
- package/dist/assets/{privacy-page-CN-sgiHL.js → privacy-page-B-FaZv9p.js} +1 -1
- package/dist/assets/{privacy-screen-WnmVno78.js → privacy-screen-Ng4c4whW.js} +1 -1
- package/dist/assets/{provider-callback-page-CZfGxI4n.js → provider-callback-page-CwYFxjk3.js} +1 -1
- package/dist/assets/{provider-signup-page-By9jDuQZ.js → provider-signup-page-BORU3SZe.js} +1 -1
- package/dist/assets/{push-registration-CHsDMNLd.js → push-registration-CyLSsbG5.js} +2 -2
- package/dist/assets/{remove-from-device-dialog-C0oKQcpu.js → remove-from-device-dialog-Bpy0yOG4.js} +1 -1
- package/dist/assets/{research-facts-CVSPPobz.js → research-facts-DzELMLzK.js} +1 -1
- package/dist/assets/{research-mock-page-Du5tkfLD.js → research-mock-page-BkcbRMpS.js} +1 -1
- package/dist/assets/{research-onboarding-route-1Gr9h1zU.js → research-onboarding-route-BlBSSOiI.js} +1 -1
- package/dist/assets/{research-results-view-D300rmPl.js → research-results-view-D1hOhfTP.js} +1 -1
- package/dist/assets/{retire-confirm-dialog-Dj9Jz__k.js → retire-confirm-dialog-Zwo-Sjrc.js} +1 -1
- package/dist/assets/{review-terms-screen-CgaEflP1.js → review-terms-screen-DmNdg_zJ.js} +1 -1
- package/dist/assets/routes-BaPyKuTq.js +24 -0
- package/dist/assets/{runtime-upgrade-banner-DeZvRYKI.js → runtime-upgrade-banner-bHSGkzwB.js} +2 -2
- package/dist/assets/{sandbox-bridge-DJb4AAAd.js → sandbox-bridge-BcJiBmUR.js} +1 -1
- package/dist/assets/{schedules-D1Qj_LW9.js → schedules-CgwiGq3x.js} +1 -1
- package/dist/assets/{schedules-page-yQdICdi-.js → schedules-page-Ca_u2KkZ.js} +1 -1
- package/dist/assets/{section-membership-BLXUZceV.js → section-membership-CJlFrKoM.js} +1 -1
- package/dist/assets/{security-redirect-page-C1UvbW-C.js → security-redirect-page-eZ_C_Wf0.js} +1 -1
- package/dist/assets/{select-D133FK9g.js → select-DJDG9pwU.js} +1 -1
- package/dist/assets/select-assistant-screen-DSLQRer8.js +1 -0
- package/dist/assets/{self-hosted-servers-DbufWkqP.js → self-hosted-servers-DJIKPu90.js} +1 -1
- package/dist/assets/settings-BY8t4asx.js +1 -0
- package/dist/assets/{settings-divider-Cps8oOmA.js → settings-divider-BCyO1zmM.js} +1 -1
- package/dist/assets/{settings-layout-BIJoqFh0.js → settings-layout-Cv8u2dv7.js} +1 -1
- package/dist/assets/{settings-navigation-CBm-xDCe.js → settings-navigation-R6E3Weed.js} +1 -1
- package/dist/assets/{share-feedback-modal-CNyAJFsA.js → share-feedback-modal-COH8zwku.js} +2 -2
- package/dist/assets/{sidebar-tree-D2xvxqPq.js → sidebar-tree-Bfvk_uAR.js} +1 -1
- package/dist/assets/{signup-page-CTjLMOgF.js → signup-page-BsMK6h9P.js} +1 -1
- package/dist/assets/{site-favicon-MMcieZs1.js → site-favicon-Bu9L02gb.js} +1 -1
- package/dist/assets/{skill-detail-page-33xPKTfo.js → skill-detail-page-D9WBRKuf.js} +1 -1
- package/dist/assets/{skill-detail-panel-DicPuAYf.js → skill-detail-panel-kCMadngl.js} +1 -1
- package/dist/assets/{skills-CAW10RD_.js → skills-C3-ibGUo.js} +1 -1
- package/dist/assets/{skills-page-DtcZVUgk.js → skills-page-BMYP4Xi0.js} +1 -1
- package/dist/assets/{sounds-page-B1xgQyur.js → sounds-page-Du1t_S8A.js} +1 -1
- package/dist/assets/{src-Ch3HTlFm.js → src-DMnnfLrU.js} +2 -2
- package/dist/assets/{start-screen-1HZMKOoC.js → start-screen-I5HBKHT6.js} +1 -1
- package/dist/assets/{status-badge-pill-C8kQPvkY.js → status-badge-pill-w-ULYfRy.js} +1 -1
- package/dist/assets/{stt-language-picker-modal-0Y0jfxfK.js → stt-language-picker-modal-Cq76JJex.js} +1 -1
- package/dist/assets/{subagent-detail-panel-cG6QAznG.js → subagent-detail-panel-DP4dB-Dz.js} +1 -1
- package/dist/assets/{subagent-store-Bho3BXWd.js → subagent-store-Bn8k7JMr.js} +1 -1
- package/dist/assets/{superpowers-page-CMB1OtM0.js → superpowers-page-COTkr31c.js} +1 -1
- package/dist/assets/{swipe-action-reveal-Dj3B2k-t.js → swipe-action-reveal-CQY9DSup.js} +1 -1
- package/dist/assets/{system-events-page-XOi-gc2G.js → system-events-page-CvoSQs7q.js} +1 -1
- package/dist/assets/{system-events-redirect-page-BrQ1djZt.js → system-events-redirect-page-BjnwAn9h.js} +1 -1
- package/dist/assets/{tag-Ddzwz3ij.js → tag-D2QYCm1p.js} +1 -1
- package/dist/assets/{telegram-setup-wizard-D0bxOb5-.js → telegram-setup-wizard-6UP2MTrh.js} +1 -1
- package/dist/assets/{text-preview-D78CT11A.js → text-preview-BG__pDe7.js} +1 -1
- package/dist/assets/{theme-stage-page-DPIaeTEy.js → theme-stage-page-YfsM529J.js} +1 -1
- package/dist/assets/{tiptap-document-editor-DjSqTI1f.js → tiptap-document-editor-BM6zL6R7.js} +2 -2
- package/dist/assets/{toast-ZCXyBjoj.js → toast-CHtrY-GO.js} +1 -1
- package/dist/assets/{tool-detail-panel-D8Zr9tQz.js → tool-detail-panel-_LC-zFuo.js} +1 -1
- package/dist/assets/{transcript-message-body-shared-DKncF4vA.js → transcript-message-body-shared-D8cmJP1C.js} +1 -1
- package/dist/assets/{trust-rules-api-JydQ2uwR.js → trust-rules-api-CE_KJOp2.js} +1 -1
- package/dist/assets/{upgrade-cancel-page-gyvvmc_X.js → upgrade-cancel-page-DyLSvLsm.js} +1 -1
- package/dist/assets/{upgrade-success-page-_86uG48f.js → upgrade-success-page-BRPyFCq4.js} +1 -1
- package/dist/assets/{usage-redirect-page-DheTMqmF.js → usage-redirect-page-C4O5a5QM.js} +1 -1
- package/dist/assets/use-app-theme-BMyUWfBR.js +1 -0
- package/dist/assets/{use-assistant-identity-details-DUPitZAF.js → use-assistant-identity-details-C3sH1daz.js} +1 -1
- package/dist/assets/{use-attachment-preview-Y4kLa4bZ.js → use-attachment-preview-BUJ9CHqr.js} +2 -2
- package/dist/assets/{use-attachment-squares-C8jwl-uP.js → use-attachment-squares-CFAezuph.js} +1 -1
- package/dist/assets/{use-bookmarks-D-YUJTtH.js → use-bookmarks--Hn0Ty3s.js} +1 -1
- package/dist/assets/{use-checkout-dismiss-refresh-DVs2FMHj.js → use-checkout-dismiss-refresh-CTdb-p9h.js} +1 -1
- package/dist/assets/{use-command-palette-sections-BBglPqI8.js → use-command-palette-sections-_F3pQkoi.js} +1 -1
- package/dist/assets/{use-copy-to-clipboard-CBJ6pmkd.js → use-copy-to-clipboard-BPX7B4SE.js} +1 -1
- package/dist/assets/{use-edge-swipe-C-5S-Uf_.js → use-edge-swipe-CJYjm94h.js} +1 -1
- package/dist/assets/{use-edge-swipe-back-BO5FNCGw.js → use-edge-swipe-back-L6kJ84LI.js} +2 -2
- package/dist/assets/{use-edit-app-Mv9eDXyB.js → use-edit-app-C0wNLJT8.js} +1 -1
- package/dist/assets/{use-invite-link-dialog-Dn0_apkq.js → use-invite-link-dialog-B1oz9iwD.js} +1 -1
- package/dist/assets/{use-is-org-ready-CXChKRKk.js → use-is-org-ready-CEB5IRpO.js} +1 -1
- package/dist/assets/{use-onboarding-login-LxAfxxq4.js → use-onboarding-login-DSP8WCFe.js} +1 -1
- package/dist/assets/{use-platform-assistant-id-DGkEazpv.js → use-platform-assistant-id-n0Yl5uUG.js} +1 -1
- package/dist/assets/{use-platform-gate-dRg4Iaxg.js → use-platform-gate-DNfLk9Xd.js} +1 -1
- package/dist/assets/{use-return-to-short-circuit-BxcUEcT0.js → use-return-to-short-circuit-CY3AuCF9.js} +1 -1
- package/dist/assets/{use-save-twilio-credentials-cvialhOy.js → use-save-twilio-credentials-BWaLXE4J.js} +1 -1
- package/dist/assets/{use-side-list-room-B4aMMgSM.js → use-side-list-room-CO7nxluQ.js} +1 -1
- package/dist/assets/{use-skill-actions-BJnqKPy2.js → use-skill-actions-D7CK9Jhy.js} +1 -1
- package/dist/assets/{use-skill-detail-files-Dr4hogsT.js → use-skill-detail-files-Cop9LnVd.js} +1 -1
- package/dist/assets/{use-sticky-profiles-BzJCyWjh.js → use-sticky-profiles-D3ybBRfX.js} +1 -1
- package/dist/assets/{use-stt-language-selection-CqvYwuRJ.js → use-stt-language-selection-Dkm4Uq69.js} +1 -1
- package/dist/assets/{use-subagent-card-data-Ck-rTbqy.js → use-subagent-card-data-DbKFX1Jc.js} +1 -1
- package/dist/assets/{use-swipe-horizontal-DqSSUt1N.js → use-swipe-horizontal-BwZ0yvoM.js} +1 -1
- package/dist/assets/use-touch-mobile-CaIiM-us.js +1 -0
- package/dist/assets/use-transcript-message-by-id-BbJqGOYZ.js +1 -0
- package/dist/assets/{use-transcript-messages-D2DbIxRi.js → use-transcript-messages-Bp4Jsfks.js} +1 -1
- package/dist/assets/{use-voice-sample-preview-DgOqv2M7.js → use-voice-sample-preview-4vpwPGNW.js} +1 -1
- package/dist/assets/{useTranslation-CJMg4EBF.js → useTranslation-CCDbxnME.js} +1 -1
- package/dist/assets/{voice-page-Cle_chtc.js → voice-page--99ik4mV.js} +1 -1
- package/dist/assets/{voice-providers-note-CtAmFnWb.js → voice-providers-note-7m0LvxmN.js} +1 -1
- package/dist/assets/{web-B3W2e_Vh.js → web-0-rqi4je.js} +1 -1
- package/dist/assets/{web-Dc65176I.js → web-8fcyoNsL.js} +1 -1
- package/dist/assets/{web-CY247JIt.js → web-DCamMnI1.js} +1 -1
- package/dist/assets/{web-67Khnm-P.js → web-DIlEhBsT.js} +1 -1
- package/dist/assets/{web-B1q1ICxT.js → web-Do_X9zWq.js} +1 -1
- package/dist/assets/{web-BTPJ9E5m.js → web-DsVO-tkH.js} +1 -1
- package/dist/assets/{web-BCijmPgJ.js → web-UN0kX9ic.js} +1 -1
- package/dist/assets/{web-DRglVskM.js → web-aW1scjmM.js} +1 -1
- package/dist/assets/{web-BLn6q1jU.js → web-eVpCzMlE.js} +1 -1
- package/dist/assets/{welcome-screen-BLOCzpJp.js → welcome-screen-Drdb1oS6.js} +1 -1
- package/dist/assets/{workflow-detail-panel-C2uCVk6h.js → workflow-detail-panel-DS9_MRNg.js} +1 -1
- package/dist/assets/{workspace-page-DDLacEWd.js → workspace-page-CPDwYVlW.js} +1 -1
- package/dist/assets/{workspace-tree-query-yJYR72mM.js → workspace-tree-query-DzYz0-QE.js} +1 -1
- package/dist/index.html +118 -118
- package/package.json +1 -1
- package/dist/assets/auth-store-DHZaL7sV.js +0 -2
- package/dist/assets/bookmarks-page-d8nnNDbX.js +0 -1
- package/dist/assets/checkout-continuation-Dy6JhKe2.js +0 -1
- package/dist/assets/checkout-return-target-DL3gHGhi.js +0 -1
- package/dist/assets/common-p0vxUnEQ.js +0 -1
- package/dist/assets/companion-surface-page-mFuAra3C.js +0 -1
- package/dist/assets/consent-B28ImHdT.js +0 -1
- package/dist/assets/developer-page-EXPzzlyV.js +0 -1
- package/dist/assets/dist-DMYOKN8y.js +0 -1
- package/dist/assets/esm-0I5Dlpfv.js +0 -2
- package/dist/assets/esm-3UB7kHQk.js +0 -1
- package/dist/assets/esm-ByRflon4.js +0 -2
- package/dist/assets/esm-CQSb4ucv.js +0 -2
- package/dist/assets/esm-Cg0JWVKA.js +0 -2
- package/dist/assets/esm-DRm8O1kL.js +0 -2
- package/dist/assets/feature-flag-catalog-BE_ZpOEG.js +0 -1
- package/dist/assets/feed-item-status-actions-Cz3H5a6L.js +0 -1
- package/dist/assets/general-page-B9DgYoMz.js +0 -1
- package/dist/assets/index-ClaG_N2S.css +0 -2
- package/dist/assets/internal-thread-actions-DNd3HO_g.js +0 -1
- package/dist/assets/native-anchor-BrkS1YE6.js +0 -1
- package/dist/assets/popover-D3A6cIyW.js +0 -1
- package/dist/assets/routes-DyzEBtxt.js +0 -24
- package/dist/assets/select-assistant-screen-Bo3KgcFM.js +0 -1
- package/dist/assets/settings-CNNFT1Oh.js +0 -1
- package/dist/assets/use-app-theme-CMwGeP40.js +0 -1
- package/dist/assets/use-touch-mobile-Dr8DcEJC.js +0 -1
- package/dist/assets/use-transcript-message-by-id-NAxAU6wP.js +0 -1
- /package/dist/assets/{dist-RzxQVwj7.js → dist-D7UWVopK.js} +0 -0
- /package/dist/assets/{native-deep-link-D1B4PPZo.js → native-deep-link-IwasVyFQ.js} +0 -0
- /package/dist/assets/{onboarding-store-CXXioE_U.js → onboarding-store-9CMrOvS2.js} +0 -0
- /package/dist/assets/{react-query.gen-OpeDEMIm.js → react-query.gen-CYP-Tn4K.js} +0 -0
- /package/dist/assets/{routes-Bj1LYNBZ.js → routes-yNhBxUSb.js} +0 -0
- /package/dist/assets/{theme-preferences-DYqPKXf4.js → theme-preferences-CAlH0BJX.js} +0 -0
- /package/dist/assets/{typed-storage-CMa-TZhF.js → typed-storage-BNw603jr.js} +0 -0
- /package/dist/assets/{use-assistant-avatar-By4FjR0h.js → use-assistant-avatar-adekIS8v.js} +0 -0
package/dist/assets/{runtime-upgrade-banner-DeZvRYKI.js → runtime-upgrade-banner-bHSGkzwB.js}
RENAMED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/web-
|
|
2
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./capture-error-VBsIaC5d.js";import{t as n}from"./react-BFJW0bSv.js";import{t as r}from"./button-VkxVX0DM.js";import{t as i}from"./preload-helper-Cv2QeVDK.js";import{t as a}from"./chunk-5KNZJZUH-BUqIilZr.js";import{n as o}from"./QueryClientProvider-EuRl-wrW.js";import{t as s}from"./useQuery-CTSuec5b.js";import{t as c}from"./useMutation-D2YPyfEH.js";import{t as l}from"./jsx-runtime-BJ8jcmzB.js";import{t as u}from"./createLucideIcon-B-ZPaMbU.js";import{t as d}from"./circle-alert-B-Zu9T9V.js";import{t as f}from"./circle-check-BQyrCkaB.js";import{t as p}from"./cloud-off-DioliYf9.js";import{t as m}from"./info-D0qquAkS.js";import{t as h}from"./loader-circle-C9QjVTuc.js";import{t as g}from"./moon-D2HTb8zV.js";import{t as _}from"./refresh-cw-DwfKxRXV.js";import{t as v}from"./triangle-alert-B-18Pims.js";import{t as y}from"./wrench-DEcKnUZl.js";import{n as b}from"./toast-ZCXyBjoj.js";import{t as x}from"./confirm-dialog--7V28331.js";import{H as ee,Y as S,g as te}from"./local-mode-DzIUFjhf.js";import{t as C}from"./assistant-identity-store-DrQJhZh3.js";import{t as w}from"./is-electron-C9-jl_HE.js";import{r as T,t as E}from"./resolved-assistants-store-D57qRwKv.js";import{_t as ne,lt as re,rt as D,tt as O}from"./auth-store-DHZaL7sV.js";import{Q as ie,k as ae}from"./sdk.gen-DXPJc8Xk.js";import{n as k}from"./event-bus-QJe_MFOc.js";import{t as A}from"./client-feature-flag-store-o8FXKc-R.js";import{m as oe}from"./native-biometric-Dk_rOSjU.js";import{i as j,t as M}from"./dist-RzxQVwj7.js";import{d as N}from"./routes-Bj1LYNBZ.js";import{r as se,t as P}from"./operational-status-D9ExUyuP.js";import{t as F}from"./use-bus-subscription-BmtCG3i6.js";import{O as I,Tt as L,k as R}from"./react-query.gen-D3r2fwXH.js";import{t as z}from"./misc-giJA2hbh.js";import{a as B,i as ce,n as le,o as V,r as ue,s as de,t as fe}from"./local-runtime-upgrade-BTtW-R95.js";var pe=u(`wifi-off`,[[`path`,{d:`M12 20h.01`,key:`zekei9`}],[`path`,{d:`M8.5 16.429a5 5 0 0 1 7 0`,key:`1bycff`}],[`path`,{d:`M5 12.859a10 10 0 0 1 5.17-2.69`,key:`1dl1wf`}],[`path`,{d:`M19 12.859a10 10 0 0 0-2.007-1.523`,key:`4k23kn`}],[`path`,{d:`M2 8.82a15 15 0 0 1 4.177-2.643`,key:`1grhjp`}],[`path`,{d:`M22 8.82a15 15 0 0 0-11.288-3.764`,key:`z3jwby`}],[`path`,{d:`m2 2 20 20`,key:`1ooewy`}]]),H=e(n(),1);function U(e){return w()?window.vellum?.connectivity?.onState(e)??(()=>void 0):()=>void 0}function W(e){w()&&window.vellum?.connectivity?.setDevice(e)}async function G(e){if(!w())return null;try{return await e()??null}catch{return null}}function K(){return G(()=>window.vellum?.connectivity?.get())}function me(){return G(()=>window.vellum?.connectivity?.retry())}var q=2e3;function he(){let[e,t]=(0,H.useState)(`online`),n=(0,H.useRef)(null),r=(0,H.useCallback)(()=>{n.current&&=(clearTimeout(n.current),null)},[]),i=(0,H.useCallback)(e=>{e&&(r(),t(e))},[r]),a=(0,H.useCallback)(()=>{K().then(i)},[i]);return F(`app.resume`,a),(0,H.useEffect)(()=>{let e=U(e=>{if(e===`online`){if(n.current)return;n.current=setTimeout(()=>{n.current=null,t(`online`)},q)}else r(),t(e)});return window.addEventListener(`focus`,a),()=>{e(),window.removeEventListener(`focus`,a),r()}},[a,r]),{connectivityState:e,retryConnectivity:(0,H.useCallback)(()=>{me().then(i)},[i])}}var ge=j(`Network`,{web:()=>i(()=>import(`./web-DRglVskM.js`).then(e=>new e.NetworkWeb),__vite__mapDeps([0,1]))});function _e(){let[e,t]=(0,H.useState)(!0);return(0,H.useEffect)(()=>{if(!M.isNativePlatform())return;let e=!1;ge.getStatus().then(n=>{e||t(n.connected)}).catch(()=>{});let n=ge.addListener(`networkStatusChange`,n=>{e||t(n.connected)});return()=>{e=!0,n.then(e=>e.remove()).catch(()=>{})}},[]),e}var ve=15e3;function ye(){let[e,t]=(0,H.useState)(null);return F(`app.resume`,()=>{t(Date.now()+ve)}),(0,H.useEffect)(()=>{if(e===null)return;let n=e-Date.now();if(n<=0){t(null);return}let r=setTimeout(()=>{t(null)},n);return()=>clearTimeout(r)},[e]),e!==null}var J=l(),be=6e4,xe={info:{container:`bg-[var(--system-info-weak)]`,content:`text-[color:var(--system-info-strong)]`,icon:`text-[color:var(--system-info-strong)]`,action:`[--status-banner-action-color:var(--system-info-strong)]`,DefaultIcon:m},success:{container:`bg-[var(--system-positive-weak)]`,content:`text-[color:var(--system-positive-strong)]`,icon:`text-[color:var(--system-positive-strong)]`,action:`[--status-banner-action-color:var(--system-positive-strong)]`,DefaultIcon:f},warning:{container:`bg-[var(--system-mid-weak)]`,content:`text-[color:var(--system-mid-strong)]`,icon:`text-[color:var(--system-mid-strong)]`,action:`[--status-banner-action-color:var(--system-mid-strong)]`,DefaultIcon:d},error:{container:`bg-[var(--system-negative-weak)]`,content:`text-[color:var(--system-negative-strong)]`,icon:`text-[color:var(--system-negative-strong)]`,action:`[--status-banner-action-color:var(--system-negative-strong)]`,DefaultIcon:v},neutral:{container:`bg-[var(--surface-active)]`,content:`text-[color:var(--content-secondary)]`,icon:`text-[color:var(--content-secondary)]`,action:`[--status-banner-action-color:var(--content-secondary)]`,DefaultIcon:null}},Se={web:`min-h-10 rounded-none px-4 py-[10px]`,electron:`min-h-8 rounded-[6px] px-2 py-[7px]`};function Ce({tone:e,title:t,children:n,icon:r,actions:i,placement:a=`web`,className:o,ref:s,...c}){let l=xe[e],u=e===`error`?`alert`:`status`,d=a===`web`?`text-body-medium-default leading-5`:`text-body-small-default leading-[18px]`,f=r===void 0?l.DefaultIcon?(0,J.jsx)(l.DefaultIcon,{"aria-hidden":`true`}):null:r;return(0,J.jsxs)(`div`,{...c,ref:s,role:u,"data-slot":`status-banner-notice`,"data-placement":a,"data-tone":e,className:z(`flex w-full shrink-0 items-center justify-between gap-3 overflow-hidden`,`text-[color:var(--content-default)]`,Se[a],l.container,o),children:[(0,J.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-center gap-2`,children:[f?(0,J.jsx)(`span`,{className:z(`flex size-3.5 shrink-0 items-center justify-center [&_svg]:size-3.5`,l.icon),children:f}):null,(0,J.jsxs)(`div`,{className:`min-w-0`,children:[(0,J.jsx)(`div`,{className:z(`truncate`,l.content,d),children:t}),n?(0,J.jsx)(`div`,{className:`text-body-small-default leading-4 text-[color:var(--content-secondary)]`,children:n}):null]})]}),i?(0,J.jsx)(`div`,{className:z(`flex shrink-0 items-center border-l border-[color-mix(in_srgb,var(--status-banner-action-color)_22%,transparent)] text-label-medium-default`,`text-[color:var(--status-banner-action-color)]`,l.action,a===`web`?`gap-2 pl-4 leading-5`:`gap-1.5 pl-2 leading-[18px]`,`[&_[data-slot=button]]:h-auto [&_[data-slot=button]]:border-0 [&_[data-slot=button]]:bg-transparent`,`[&_[data-slot=button]]:-mx-1 [&_[data-slot=button]]:rounded-sm [&_[data-slot=button]]:px-1 [&_[data-slot=button]]:py-0`,`[&_[data-slot=button]]:text-body-small-default`,`[&_[data-slot=button]]:leading-[inherit] [&_[data-slot=button]]:shadow-none`,`[&_[data-slot=button]]:[--vbtn-fg:var(--status-banner-action-color)]`,`[&_[data-slot=button]]:hover:!bg-transparent [&_[data-slot=button]]:hover:!opacity-100`,`[&_[data-slot=button]]:hover:[--vbtn-fg:var(--status-banner-action-color)]`,`[&_[data-slot=button]]:focus-visible:ring-2 [&_[data-slot=button]]:focus-visible:ring-[var(--ring)] [&_[data-slot=button]]:focus-visible:ring-offset-0`),children:i}):null]})}var Y={initializing:`Assistant is initializing`,migrating:`Assistant is migrating`,provisioning:`Assistant is provisioning`,active:`Assistant is healthy`,sleeping:`Assistant is sleeping`,waking:`Assistant is waking`,restarting:`Assistant is restarting`,restoring_backup:`Assistant is restoring a backup`,upgrading_assistant_version:`Assistant is upgrading`,resizing_machine:`Assistant machine is resizing`,resizing_storage:`Assistant storage is resizing`,maintenance_mode:`Assistant is in maintenance mode`,crash_loop:`Assistant fatal error`,unreachable:`Assistant is unreachable`,not_found:`Assistant was not found`,retiring:`Assistant is retiring`},X={initializing:`Assistant failed to initialize`,migrating:`Assistant migration failed`,provisioning:`Assistant failed to provision`,waking:`Assistant failed to wake`,restarting:`Assistant restart failed`,restoring_backup:`Backup restore failed`,upgrading_assistant_version:`Assistant upgrade failed`,resizing_machine:`Machine resize failed`,resizing_storage:`Storage resize failed`,retiring:`Assistant failed to retire`};function we(){return{tone:`warning`,title:Y.maintenance_mode,icon:(0,J.jsx)(y,{className:`h-4 w-4`,"aria-hidden":`true`})}}function Z(){return(0,J.jsx)(h,{className:`h-4 w-4 animate-spin`,"aria-hidden":`true`})}function Q(){return(0,J.jsx)(`span`,{className:`busy-indicator inline-block size-2 rounded-full bg-current`,"aria-hidden":`true`})}function Te(e,t){if(!(!e&&!t))return(0,J.jsxs)(J.Fragment,{children:[e?Oe():null,e&&t?(0,J.jsx)(`span`,{"aria-hidden":`true`,className:`h-3 w-px bg-[color-mix(in_srgb,var(--status-banner-action-color)_35%,transparent)]`}):null,t?(0,J.jsx)(r,{variant:`ghost`,size:`compact`,onClick:t,children:`Dismiss`}):null]})}function Ee(e,t,n){if(!e||P(e))return null;if(e.detail_state===`failed`){let r=X[e.state];if(r)return{tone:`error`,title:r,children:e.detail?.message??void 0,actions:Te(t,n)}}switch(e.state){case`crash_loop`:case`unreachable`:case`not_found`:return{tone:`error`,title:Y[e.state],actions:t?Oe():void 0};case`sleeping`:return{tone:`neutral`,title:Y[e.state],icon:(0,J.jsx)(g,{className:`h-4 w-4`,"aria-hidden":`true`})};case`maintenance_mode`:return we();case`upgrading_assistant_version`:case`resizing_machine`:case`resizing_storage`:case`initializing`:case`migrating`:case`provisioning`:return{tone:`info`,title:Y[e.state],icon:Z()};case`waking`:return{tone:`info`,title:Y[e.state],icon:Q()};case`restarting`:case`restoring_backup`:case`retiring`:return{tone:`warning`,title:Y[e.state],icon:Z()};default:return{tone:`warning`,title:Y[e.state],icon:Z()}}}function De(e,t,n,r){if(t&&(e===`sleeping`||e===`unreachable`))return{tone:`neutral`,title:`Your assistant can't be reached`,icon:(0,J.jsx)(p,{className:`h-4 w-4`,"aria-hidden":`true`}),children:`The connection to the paired assistant's host is down. Check the host machine and its tunnel.`};switch(e){case`sleeping`:return{tone:r?`error`:`neutral`,title:`Your assistant is asleep`,children:r,icon:(0,J.jsx)(g,{className:`h-4 w-4`,"aria-hidden":`true`}),actions:n};case`starting`:return{tone:`info`,title:`Your assistant is waking up`,icon:Q()};case`upgrading`:return{tone:`warning`,title:`Assistant is upgrading`,icon:(0,J.jsx)(h,{className:`h-4 w-4 animate-spin`,"aria-hidden":`true`})};case`migrating`:return{tone:`info`,title:`Assistant is migrating`,icon:(0,J.jsx)(h,{className:`h-4 w-4 animate-spin`,"aria-hidden":`true`})};case`crashed`:return{tone:`error`,title:`Your assistant crashed`,children:r,actions:n};case`unreachable`:return{tone:r?`error`:`neutral`,title:`Your assistant is asleep`,icon:(0,J.jsx)(g,{className:`h-4 w-4`,"aria-hidden":`true`}),children:r,actions:n};case`unhealthy`:return{tone:`warning`,title:`Assistant is unhealthy`};default:return null}}function Oe(){return(0,J.jsx)(r,{asChild:!0,variant:`outlined`,size:`compact`,children:(0,J.jsx)(a,{to:`${N.settings.debug}?tab=doctor`,children:`Go to Doctor`})})}function $(e){return e===`sleeping`||e===`crashed`||e===`unreachable`}function ke({banner:e,className:t,placement:n}){return(0,J.jsx)(`div`,{className:z(n===`electron`?`px-4 pt-2`:`px-0 pt-0`,t),children:(0,J.jsx)(Ce,{tone:e.tone,title:e.title,icon:e.icon,actions:e.actions,placement:n,children:e.children})})}function Ae(){let e=w(),n=oe(),{connectivityState:i,retryConnectivity:a}=he(),o=_e(),s=T.use.activeAssistantId(),c=T.use.selectedAssistantId(),l=T.use.assistants(),u=O.use.currentOrganizationId(),d=ne.use.assistantState(),f=ne.use.operationalStatusAssistantId(),m=(0,H.useMemo)(()=>{let e=E(l,u).filter(e=>e.isPlatformHosted===!0&&e.isLocal===!1);return e.find(e=>e.id===c)?.id??e[0]?.id??null},[l,u,c]),_=f??s??m,v=(0,H.useMemo)(()=>l.some(e=>e.id===s&&e.isPaired===!0),[l,s]),y=d.kind===`active`&&!d.isLocal&&!!s&&_===s,b=se(_),x=re(),{data:C,isError:ie,refetch:k}=b,[A,j]=(0,H.useState)(!1);(0,H.useEffect)(()=>{C?.state===`sleeping`?j(!0):(C?.state===`active`||C?.state===`crash_loop`||C?.state===`not_found`)&&j(!1)},[C?.state]),(0,H.useEffect)(()=>{if(!A||C?.state!==`unreachable`)return;let e=setTimeout(()=>{j(!1)},6e4);return()=>clearTimeout(e)},[A,C?.state]);let[M,N]=(0,H.useState)(!1);(0,H.useEffect)(()=>{C?.state===`active`?N(!0):(C?.state===`sleeping`||C?.state===`crash_loop`||C?.state===`not_found`)&&N(!1)},[C?.state]),(0,H.useEffect)(()=>{if(!M||C?.state!==`unreachable`)return;let e=setTimeout(()=>{N(!1)},15e3);return()=>clearTimeout(e)},[M,C?.state]);let F=ye(),[I,L]=(0,H.useState)(null);(0,H.useEffect)(()=>{_&&(C?.state===`restarting`?L(C.detail_state===`failed`?null:_):(C?.state===`active`||C?.state===`sleeping`||C?.state===`not_found`)&&L(null))},[_,C?.state,C?.detail_state]);let R=I!==null&&I===_;(0,H.useEffect)(()=>{if(!R||C?.state!==`crash_loop`)return;let e=setTimeout(()=>{L(null)},6e4);return()=>clearTimeout(e)},[R,C?.state]);let[z,B]=(0,H.useState)(null),ce=(0,H.useRef)(C?.state);(0,H.useEffect)(()=>{let e=ce.current;ce.current=C?.state,C?.state!==e&&B(null)},[C?.state]);let le=(0,H.useCallback)(()=>{C?.state&&B(C.state)},[C?.state]),[V,ue]=(0,H.useState)(!1),[de,fe]=(0,H.useState)(null),[U,W]=(0,H.useState)(!1),[G,K]=(0,H.useState)(!1),[me,q]=(0,H.useState)(null);(0,H.useEffect)(()=>{if(!G)return;let e=setTimeout(()=>{K(!1)},be);return()=>clearTimeout(e)},[G]),(0,H.useEffect)(()=>{(x===`healthy`||x===`unhealthy`||x===`sleeping`)&&K(!1)},[x]),(0,H.useEffect)(()=>{K(!1)},[s]);let ge=(0,H.useCallback)(async()=>{if(!(!_||V)){ue(!0),fe(null);try{let{response:e}=await ae({path:{assistant_id:_},throwOnError:!1});if(!e?.ok)throw Error(`Exit maintenance mode returned non-ok response`);await Promise.allSettled([k(),D.checkAssistant()])}catch(e){t(e,{context:`exit_maintenance_mode_status_banner`}),fe(`Failed to exit maintenance mode. Please try again.`)}finally{ue(!1)}}},[_,V,k]),ve=(0,H.useCallback)(async()=>{if(!(!s||U)){W(!0),K(!0),q(null);try{let e=await S(s);if(!e.ok){K(!1),q(e.error||`Wake failed. Try running vellum wake in your terminal.`);return}await Promise.allSettled([k(),a(),D.checkAssistant()]),D.triggerReachabilityProbe()}catch(e){K(!1),t(e,{context:`wake_local_assistant_status_banner`}),q(`Wake failed. Try running vellum wake in your terminal.`)}finally{W(!1)}}},[s,U,k,a]);if((0,H.useEffect)(()=>{$(x)||q(null)},[x]),e&&i===`device-offline`||!e&&n&&!o)return{tone:`error`,title:`You're offline`,icon:(0,J.jsx)(pe,{className:`h-4 w-4`,"aria-hidden":`true`})};if(!v&&!ee()&&$(x))return{tone:`neutral`,title:`Your assistant runs locally`,icon:(0,J.jsx)(g,{className:`h-4 w-4`,"aria-hidden":`true`}),children:`Open the Vellum desktop app or run vellum wake in your terminal to start it.`};let xe=(U||G)&&!v&&$(x)?`starting`:x,Se=De(xe,v,!v&&$(xe)&&s&&te(s)?(0,J.jsx)(r,{variant:`outlined`,size:`compact`,leftIcon:U?(0,J.jsx)(h,{className:`animate-spin`,"aria-hidden":`true`}):void 0,disabled:!s||U,onClick:()=>{ve()},children:`Wake up`}):void 0,me);if(Se)return Se;let Ce=d.kind===`active`&&d.isLocal;if(e&&Ce&&i===`backend-unreachable`)return{tone:`error`,title:`Trying to reach Vellum…`,icon:(0,J.jsx)(p,{className:`h-4 w-4`,"aria-hidden":`true`}),actions:(0,J.jsx)(r,{variant:`outlined`,size:`compact`,onClick:a,children:`Retry now`})};let Y=d.kind===`active`&&d.maintenanceMode?.enabled===!0&&(!C||P(C));if(ie&&!Y&&!F)return{tone:`error`,title:`Assistant status is unavailable`,actions:y?Oe():void 0};let X=C?.state===`unreachable`&&(A||F)?{...C,state:`waking`}:C?.state===`unreachable`&&M?{...C,state:`sleeping`}:C?.state===`crash_loop`&&R?{...C,state:`restarting`}:C,Z=X?.detail_state===`failed`&&X.state===z,Q=Y?we():Z?null:Ee(X,y,le);return!(C?.state===`maintenance_mode`||Y)||!Q?Q:{...Q,tone:de?`error`:Q.tone,children:de,actions:_?(0,J.jsx)(r,{variant:`outlined`,size:`compact`,leftIcon:V?(0,J.jsx)(h,{className:`animate-spin`,"aria-hidden":`true`}):void 0,disabled:V,onClick:()=>{ge()},children:`Resume Assistant`}):void 0}}function je({className:e,placement:t=w()?`electron`:`web`}){let n=Ae();return n?(0,J.jsx)(ke,{banner:n,className:e,placement:t}):null}var Me=3e3;function Ne({assistantId:e,currentVersion:t,placement:n=`web`,className:i}){let[a,o]=(0,H.useState)(!1),[c,l]=(0,H.useState)(null),u=ne(e=>e.assistantState),d=re(),f=T.use.activeAssistantId(),p=C.use.version(),m=A.use.previewChannel(),h=e??f,g=t??p,v=T(e=>h?e.assistants.find(e=>e.id===h):null),y=v?.cloud===`local`,S=v?.isPlatformHosted===!0&&v?.isLocal===!1,te=v?.runtimeVersion??g??null,w=v?.currentReleaseVersion??g??null,E=y?`local`:S?`platform`:null,{data:D}=se(S?h??null:null),O=E===`local`?te:E===`platform`?w:null,ie=y&&v?.isActiveLockfileAssistant===!0,ae=u.kind===`self_hosted`?!u.health||u.health===`healthy`:u.kind===`active`&&u.isLocal?u.reachable!==!1&&(!u.health||u.health===`healthy`):!1,oe=!d||d===`healthy`,j=u.kind===`active`&&!u.isLocal&&u.reachable!==!1&&!u.maintenanceMode?.enabled&&(!u.health||u.health===`healthy`)&&(!D||D.state===`active`),M=!!h&&!!O&&!!v?.isLocal&&ie&&ae&&oe&&ee()||!!h&&!!O&&S&&j,N=ce(v?.releaseChannel,m),{data:P,refetch:F}=s({...L({query:E===`platform`?{channel:N}:{stable:!0,limit:100}}),enabled:M,refetchInterval:fe,refetchOnReconnect:!0,refetchOnWindowFocus:!0});(0,H.useEffect)(()=>{if(!M)return;let e=()=>{F()},t=[k(`app.resume`,e),k(`power.resume`,e),k(`power.unlock`,e)];return()=>{for(let e of t)e()}},[F,M]);let I=(0,H.useMemo)(()=>E===`platform`?P?.find(e=>e.is_stable!==!1)??P?.[0]:ue(P),[E,P])?.version??null,R=h&&I?`${h}:${I}`:null,pe=B(O,I),U=de({assistantId:h,targetVersion:I??void 0}),W=Pe({assistantId:h,targetVersion:I??void 0,shouldStopPolling:D?.detail_state===`failed`}),G=E===`platform`?W.isPending:U.isPending;return(0,H.useEffect)(()=>{if(!h||!I){l(null);return}l(V(h,I)?`${h}:${I}`:null)},[h,I]),!M||!I||!pe||R!==null&&R===c||G?null:(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`div`,{className:z(n===`electron`?`px-4 pt-2`:`px-0 pt-0`,i),children:(0,J.jsx)(Ce,{tone:`info`,title:`New assistant version available: ${I}`,placement:n,icon:(0,J.jsx)(_,{"aria-hidden":`true`}),actions:(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(r,{variant:`ghost`,size:`compact`,onClick:()=>o(!0),children:`Update`}),(0,J.jsx)(`span`,{"aria-hidden":`true`,className:`h-3 w-px bg-[color-mix(in_srgb,var(--status-banner-action-color)_35%,transparent)]`}),(0,J.jsx)(r,{variant:`ghost`,size:`compact`,onClick:()=>{!h||!I||(le(h,I),l(`${h}:${I}`))},children:`Later`})]})})}),(0,J.jsx)(x,{open:a,title:`Update assistant runtime`,message:`Update to version ${I}? The assistant will be briefly unavailable during the update.`,confirmLabel:`Update`,onConfirm:async()=>{if(!(!h||!I||!E)){o(!1);try{if(E===`platform`){let e=await W.upgrade();if(e.detail?.includes(`Already on the latest`)){b.warning(e.detail);return}}else await U.upgrade(),b.success(`Update complete. Your assistant is healthy.`,{id:`runtime-upgrade-complete`,tone:`strong`});l(`${h}:${I}`)}catch(e){b.error(e instanceof Error?e.message:`Failed to trigger update. Please try again.`)}}},onCancel:()=>o(!1)})]})}function Pe({assistantId:e,targetVersion:t,shouldStopPolling:n=!1}){let r=o(),[i,a]=(0,H.useState)(!1),l=(0,H.useRef)(null),u=c({mutationFn:async()=>{if(!e)throw Error(`No assistant is active.`);let{data:n}=await ie({path:{id:e},body:t?{version:t}:{},throwOnError:!0});return n}});return(0,H.useEffect)(()=>{!i||!n||(l.current=null,a(!1))},[i,n]),s({...I({path:{id:e??``}}),enabled:i&&!!e,refetchInterval:e=>{let t=e.state.data?.current_release_version;return t&&l.current&&t===l.current?(queueMicrotask(()=>{e.state.data&&T.getState().upsertFromApi(e.state.data),l.current=null,a(!1),b.success(`Update complete. Your assistant is healthy.`,{id:`runtime-upgrade-complete`,tone:`strong`})}),!1):Me}}),{isPending:u.isPending||i,upgrade:async()=>{if(!e)throw Error(`No assistant is active.`);let n=await u.mutateAsync();return n.detail?.includes(`Already on the latest`)||(l.current=n.version??t??null,l.current&&a(!0),r.invalidateQueries({queryKey:R({path:{id:e}})})),n}}}export{U as a,W as i,je as n,pe as o,ye as r,Ne as t};
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/web-aW1scjmM.js","assets/dist-D7UWVopK.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./capture-error-VBsIaC5d.js";import{t as n}from"./react-BFJW0bSv.js";import{t as r}from"./button-C8CGr0T0.js";import{t as i}from"./preload-helper-Cv2QeVDK.js";import{t as a}from"./chunk-5KNZJZUH-BUqIilZr.js";import{n as o}from"./QueryClientProvider-EuRl-wrW.js";import{t as s}from"./useQuery-CTSuec5b.js";import{t as c}from"./useMutation-D2YPyfEH.js";import{t as l}from"./jsx-runtime-BJ8jcmzB.js";import{t as u}from"./createLucideIcon-B-ZPaMbU.js";import{t as d}from"./circle-alert-B-Zu9T9V.js";import{t as f}from"./circle-check-BQyrCkaB.js";import{t as p}from"./cloud-off-DioliYf9.js";import{t as m}from"./info-D0qquAkS.js";import{t as h}from"./loader-circle-C9QjVTuc.js";import{t as g}from"./moon-D2HTb8zV.js";import{t as _}from"./refresh-cw-DwfKxRXV.js";import{t as v}from"./triangle-alert-B-18Pims.js";import{t as y}from"./wrench-DEcKnUZl.js";import{n as b}from"./toast-CHtrY-GO.js";import{t as x}from"./confirm-dialog-DYmL6FRe.js";import{H as ee,Y as S,g as te}from"./local-mode-DzIUFjhf.js";import{t as C}from"./assistant-identity-store-DrQJhZh3.js";import{t as w}from"./is-electron-C9-jl_HE.js";import{r as T,t as E}from"./resolved-assistants-store-D57qRwKv.js";import{_t as ne,lt as re,rt as D,tt as O}from"./auth-store-iNnDaLgR.js";import{Q as ie,k as ae}from"./sdk.gen-DXPJc8Xk.js";import{n as k}from"./event-bus-QJe_MFOc.js";import{m as oe}from"./native-biometric-DzQYY-Z2.js";import{i as A,t as j}from"./dist-D7UWVopK.js";import{d as M}from"./routes-yNhBxUSb.js";import{t as N}from"./client-feature-flag-store-DuVzcD-V.js";import{r as se,t as P}from"./operational-status-DVK3_kD_.js";import{t as F}from"./use-bus-subscription-BmtCG3i6.js";import{O as I,Tt as L,k as R}from"./react-query.gen-D3r2fwXH.js";import{t as z}from"./misc-giJA2hbh.js";import{a as B,i as ce,n as le,o as V,r as ue,s as de,t as fe}from"./local-runtime-upgrade-BpvLk3HN.js";var pe=u(`wifi-off`,[[`path`,{d:`M12 20h.01`,key:`zekei9`}],[`path`,{d:`M8.5 16.429a5 5 0 0 1 7 0`,key:`1bycff`}],[`path`,{d:`M5 12.859a10 10 0 0 1 5.17-2.69`,key:`1dl1wf`}],[`path`,{d:`M19 12.859a10 10 0 0 0-2.007-1.523`,key:`4k23kn`}],[`path`,{d:`M2 8.82a15 15 0 0 1 4.177-2.643`,key:`1grhjp`}],[`path`,{d:`M22 8.82a15 15 0 0 0-11.288-3.764`,key:`z3jwby`}],[`path`,{d:`m2 2 20 20`,key:`1ooewy`}]]),H=e(n(),1);function U(e){return w()?window.vellum?.connectivity?.onState(e)??(()=>void 0):()=>void 0}function W(e){w()&&window.vellum?.connectivity?.setDevice(e)}async function G(e){if(!w())return null;try{return await e()??null}catch{return null}}function K(){return G(()=>window.vellum?.connectivity?.get())}function me(){return G(()=>window.vellum?.connectivity?.retry())}var q=2e3;function he(){let[e,t]=(0,H.useState)(`online`),n=(0,H.useRef)(null),r=(0,H.useCallback)(()=>{n.current&&=(clearTimeout(n.current),null)},[]),i=(0,H.useCallback)(e=>{e&&(r(),t(e))},[r]),a=(0,H.useCallback)(()=>{K().then(i)},[i]);return F(`app.resume`,a),(0,H.useEffect)(()=>{let e=U(e=>{if(e===`online`){if(n.current)return;n.current=setTimeout(()=>{n.current=null,t(`online`)},q)}else r(),t(e)});return window.addEventListener(`focus`,a),()=>{e(),window.removeEventListener(`focus`,a),r()}},[a,r]),{connectivityState:e,retryConnectivity:(0,H.useCallback)(()=>{me().then(i)},[i])}}var ge=A(`Network`,{web:()=>i(()=>import(`./web-aW1scjmM.js`).then(e=>new e.NetworkWeb),__vite__mapDeps([0,1]))});function _e(){let[e,t]=(0,H.useState)(!0);return(0,H.useEffect)(()=>{if(!j.isNativePlatform())return;let e=!1;ge.getStatus().then(n=>{e||t(n.connected)}).catch(()=>{});let n=ge.addListener(`networkStatusChange`,n=>{e||t(n.connected)});return()=>{e=!0,n.then(e=>e.remove()).catch(()=>{})}},[]),e}var ve=15e3;function ye(){let[e,t]=(0,H.useState)(null);return F(`app.resume`,()=>{t(Date.now()+ve)}),(0,H.useEffect)(()=>{if(e===null)return;let n=e-Date.now();if(n<=0){t(null);return}let r=setTimeout(()=>{t(null)},n);return()=>clearTimeout(r)},[e]),e!==null}var J=l(),be=6e4,xe={info:{container:`bg-[var(--system-info-weak)]`,content:`text-[color:var(--system-info-strong)]`,icon:`text-[color:var(--system-info-strong)]`,action:`[--status-banner-action-color:var(--system-info-strong)]`,DefaultIcon:m},success:{container:`bg-[var(--system-positive-weak)]`,content:`text-[color:var(--system-positive-strong)]`,icon:`text-[color:var(--system-positive-strong)]`,action:`[--status-banner-action-color:var(--system-positive-strong)]`,DefaultIcon:f},warning:{container:`bg-[var(--system-mid-weak)]`,content:`text-[color:var(--system-mid-strong)]`,icon:`text-[color:var(--system-mid-strong)]`,action:`[--status-banner-action-color:var(--system-mid-strong)]`,DefaultIcon:d},error:{container:`bg-[var(--system-negative-weak)]`,content:`text-[color:var(--system-negative-strong)]`,icon:`text-[color:var(--system-negative-strong)]`,action:`[--status-banner-action-color:var(--system-negative-strong)]`,DefaultIcon:v},neutral:{container:`bg-[var(--surface-active)]`,content:`text-[color:var(--content-secondary)]`,icon:`text-[color:var(--content-secondary)]`,action:`[--status-banner-action-color:var(--content-secondary)]`,DefaultIcon:null}},Se={web:`min-h-10 rounded-none px-4 py-[10px]`,electron:`min-h-8 rounded-[6px] px-2 py-[7px]`};function Ce({tone:e,title:t,children:n,icon:r,actions:i,placement:a=`web`,className:o,ref:s,...c}){let l=xe[e],u=e===`error`?`alert`:`status`,d=a===`web`?`text-body-medium-default leading-5`:`text-body-small-default leading-[18px]`,f=r===void 0?l.DefaultIcon?(0,J.jsx)(l.DefaultIcon,{"aria-hidden":`true`}):null:r;return(0,J.jsxs)(`div`,{...c,ref:s,role:u,"data-slot":`status-banner-notice`,"data-placement":a,"data-tone":e,className:z(`flex w-full shrink-0 items-center justify-between gap-3 overflow-hidden`,`text-[color:var(--content-default)]`,Se[a],l.container,o),children:[(0,J.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-center gap-2`,children:[f?(0,J.jsx)(`span`,{className:z(`flex size-3.5 shrink-0 items-center justify-center [&_svg]:size-3.5`,l.icon),children:f}):null,(0,J.jsxs)(`div`,{className:`min-w-0`,children:[(0,J.jsx)(`div`,{className:z(`truncate`,l.content,d),children:t}),n?(0,J.jsx)(`div`,{className:`text-body-small-default leading-4 text-[color:var(--content-secondary)]`,children:n}):null]})]}),i?(0,J.jsx)(`div`,{className:z(`flex shrink-0 items-center border-l border-[color-mix(in_srgb,var(--status-banner-action-color)_22%,transparent)] text-label-medium-default`,`text-[color:var(--status-banner-action-color)]`,l.action,a===`web`?`gap-2 pl-4 leading-5`:`gap-1.5 pl-2 leading-[18px]`,`[&_[data-slot=button]]:h-auto [&_[data-slot=button]]:border-0 [&_[data-slot=button]]:bg-transparent`,`[&_[data-slot=button]]:-mx-1 [&_[data-slot=button]]:rounded-sm [&_[data-slot=button]]:px-1 [&_[data-slot=button]]:py-0`,`[&_[data-slot=button]]:text-body-small-default`,`[&_[data-slot=button]]:leading-[inherit] [&_[data-slot=button]]:shadow-none`,`[&_[data-slot=button]]:[--vbtn-fg:var(--status-banner-action-color)]`,`[&_[data-slot=button]]:hover:!bg-transparent [&_[data-slot=button]]:hover:!opacity-100`,`[&_[data-slot=button]]:hover:[--vbtn-fg:var(--status-banner-action-color)]`,`[&_[data-slot=button]]:focus-visible:ring-2 [&_[data-slot=button]]:focus-visible:ring-[var(--ring)] [&_[data-slot=button]]:focus-visible:ring-offset-0`),children:i}):null]})}var Y={initializing:`Assistant is initializing`,migrating:`Assistant is migrating`,provisioning:`Assistant is provisioning`,active:`Assistant is healthy`,sleeping:`Assistant is sleeping`,waking:`Assistant is waking`,restarting:`Assistant is restarting`,restoring_backup:`Assistant is restoring a backup`,upgrading_assistant_version:`Assistant is upgrading`,resizing_machine:`Assistant machine is resizing`,resizing_storage:`Assistant storage is resizing`,maintenance_mode:`Assistant is in maintenance mode`,crash_loop:`Assistant fatal error`,unreachable:`Assistant is unreachable`,not_found:`Assistant was not found`,retiring:`Assistant is retiring`},X={initializing:`Assistant failed to initialize`,migrating:`Assistant migration failed`,provisioning:`Assistant failed to provision`,waking:`Assistant failed to wake`,restarting:`Assistant restart failed`,restoring_backup:`Backup restore failed`,upgrading_assistant_version:`Assistant upgrade failed`,resizing_machine:`Machine resize failed`,resizing_storage:`Storage resize failed`,retiring:`Assistant failed to retire`};function we(){return{tone:`warning`,title:Y.maintenance_mode,icon:(0,J.jsx)(y,{className:`h-4 w-4`,"aria-hidden":`true`})}}function Z(){return(0,J.jsx)(h,{className:`h-4 w-4 animate-spin`,"aria-hidden":`true`})}function Q(){return(0,J.jsx)(`span`,{className:`busy-indicator inline-block size-2 rounded-full bg-current`,"aria-hidden":`true`})}function Te(e,t){if(!(!e&&!t))return(0,J.jsxs)(J.Fragment,{children:[e?Oe():null,e&&t?(0,J.jsx)(`span`,{"aria-hidden":`true`,className:`h-3 w-px bg-[color-mix(in_srgb,var(--status-banner-action-color)_35%,transparent)]`}):null,t?(0,J.jsx)(r,{variant:`ghost`,size:`compact`,onClick:t,children:`Dismiss`}):null]})}function Ee(e,t,n){if(!e||P(e))return null;if(e.detail_state===`failed`){let r=X[e.state];if(r)return{tone:`error`,title:r,children:e.detail?.message??void 0,actions:Te(t,n)}}switch(e.state){case`crash_loop`:case`unreachable`:case`not_found`:return{tone:`error`,title:Y[e.state],actions:t?Oe():void 0};case`sleeping`:return{tone:`neutral`,title:Y[e.state],icon:(0,J.jsx)(g,{className:`h-4 w-4`,"aria-hidden":`true`})};case`maintenance_mode`:return we();case`upgrading_assistant_version`:case`resizing_machine`:case`resizing_storage`:case`initializing`:case`migrating`:case`provisioning`:return{tone:`info`,title:Y[e.state],icon:Z()};case`waking`:return{tone:`info`,title:Y[e.state],icon:Q()};case`restarting`:case`restoring_backup`:case`retiring`:return{tone:`warning`,title:Y[e.state],icon:Z()};default:return{tone:`warning`,title:Y[e.state],icon:Z()}}}function De(e,t,n,r){if(t&&(e===`sleeping`||e===`unreachable`))return{tone:`neutral`,title:`Your assistant can't be reached`,icon:(0,J.jsx)(p,{className:`h-4 w-4`,"aria-hidden":`true`}),children:`The connection to the paired assistant's host is down. Check the host machine and its tunnel.`};switch(e){case`sleeping`:return{tone:r?`error`:`neutral`,title:`Your assistant is asleep`,children:r,icon:(0,J.jsx)(g,{className:`h-4 w-4`,"aria-hidden":`true`}),actions:n};case`starting`:return{tone:`info`,title:`Your assistant is waking up`,icon:Q()};case`upgrading`:return{tone:`warning`,title:`Assistant is upgrading`,icon:(0,J.jsx)(h,{className:`h-4 w-4 animate-spin`,"aria-hidden":`true`})};case`migrating`:return{tone:`info`,title:`Assistant is migrating`,icon:(0,J.jsx)(h,{className:`h-4 w-4 animate-spin`,"aria-hidden":`true`})};case`crashed`:return{tone:`error`,title:`Your assistant crashed`,children:r,actions:n};case`unreachable`:return{tone:r?`error`:`neutral`,title:`Your assistant is asleep`,icon:(0,J.jsx)(g,{className:`h-4 w-4`,"aria-hidden":`true`}),children:r,actions:n};case`unhealthy`:return{tone:`warning`,title:`Assistant is unhealthy`};default:return null}}function Oe(){return(0,J.jsx)(r,{asChild:!0,variant:`outlined`,size:`compact`,children:(0,J.jsx)(a,{to:`${M.settings.debug}?tab=doctor`,children:`Go to Doctor`})})}function $(e){return e===`sleeping`||e===`crashed`||e===`unreachable`}function ke({banner:e,className:t,placement:n}){return(0,J.jsx)(`div`,{className:z(n===`electron`?`px-4 pt-2`:`px-0 pt-0`,t),children:(0,J.jsx)(Ce,{tone:e.tone,title:e.title,icon:e.icon,actions:e.actions,placement:n,children:e.children})})}function Ae(){let e=w(),n=oe(),{connectivityState:i,retryConnectivity:a}=he(),o=_e(),s=T.use.activeAssistantId(),c=T.use.selectedAssistantId(),l=T.use.assistants(),u=O.use.currentOrganizationId(),d=ne.use.assistantState(),f=ne.use.operationalStatusAssistantId(),m=(0,H.useMemo)(()=>{let e=E(l,u).filter(e=>e.isPlatformHosted===!0&&e.isLocal===!1);return e.find(e=>e.id===c)?.id??e[0]?.id??null},[l,u,c]),_=f??s??m,v=(0,H.useMemo)(()=>l.some(e=>e.id===s&&e.isPaired===!0),[l,s]),y=d.kind===`active`&&!d.isLocal&&!!s&&_===s,b=se(_),x=re(),{data:C,isError:ie,refetch:k}=b,[A,j]=(0,H.useState)(!1);(0,H.useEffect)(()=>{C?.state===`sleeping`?j(!0):(C?.state===`active`||C?.state===`crash_loop`||C?.state===`not_found`)&&j(!1)},[C?.state]),(0,H.useEffect)(()=>{if(!A||C?.state!==`unreachable`)return;let e=setTimeout(()=>{j(!1)},6e4);return()=>clearTimeout(e)},[A,C?.state]);let[M,N]=(0,H.useState)(!1);(0,H.useEffect)(()=>{C?.state===`active`?N(!0):(C?.state===`sleeping`||C?.state===`crash_loop`||C?.state===`not_found`)&&N(!1)},[C?.state]),(0,H.useEffect)(()=>{if(!M||C?.state!==`unreachable`)return;let e=setTimeout(()=>{N(!1)},15e3);return()=>clearTimeout(e)},[M,C?.state]);let F=ye(),[I,L]=(0,H.useState)(null);(0,H.useEffect)(()=>{_&&(C?.state===`restarting`?L(C.detail_state===`failed`?null:_):(C?.state===`active`||C?.state===`sleeping`||C?.state===`not_found`)&&L(null))},[_,C?.state,C?.detail_state]);let R=I!==null&&I===_;(0,H.useEffect)(()=>{if(!R||C?.state!==`crash_loop`)return;let e=setTimeout(()=>{L(null)},6e4);return()=>clearTimeout(e)},[R,C?.state]);let[z,B]=(0,H.useState)(null),ce=(0,H.useRef)(C?.state);(0,H.useEffect)(()=>{let e=ce.current;ce.current=C?.state,C?.state!==e&&B(null)},[C?.state]);let le=(0,H.useCallback)(()=>{C?.state&&B(C.state)},[C?.state]),[V,ue]=(0,H.useState)(!1),[de,fe]=(0,H.useState)(null),[U,W]=(0,H.useState)(!1),[G,K]=(0,H.useState)(!1),[me,q]=(0,H.useState)(null);(0,H.useEffect)(()=>{if(!G)return;let e=setTimeout(()=>{K(!1)},be);return()=>clearTimeout(e)},[G]),(0,H.useEffect)(()=>{(x===`healthy`||x===`unhealthy`||x===`sleeping`)&&K(!1)},[x]),(0,H.useEffect)(()=>{K(!1)},[s]);let ge=(0,H.useCallback)(async()=>{if(!(!_||V)){ue(!0),fe(null);try{let{response:e}=await ae({path:{assistant_id:_},throwOnError:!1});if(!e?.ok)throw Error(`Exit maintenance mode returned non-ok response`);await Promise.allSettled([k(),D.checkAssistant()])}catch(e){t(e,{context:`exit_maintenance_mode_status_banner`}),fe(`Failed to exit maintenance mode. Please try again.`)}finally{ue(!1)}}},[_,V,k]),ve=(0,H.useCallback)(async()=>{if(!(!s||U)){W(!0),K(!0),q(null);try{let e=await S(s);if(!e.ok){K(!1),q(e.error||`Wake failed. Try running vellum wake in your terminal.`);return}await Promise.allSettled([k(),a(),D.checkAssistant()]),D.triggerReachabilityProbe()}catch(e){K(!1),t(e,{context:`wake_local_assistant_status_banner`}),q(`Wake failed. Try running vellum wake in your terminal.`)}finally{W(!1)}}},[s,U,k,a]);if((0,H.useEffect)(()=>{$(x)||q(null)},[x]),e&&i===`device-offline`||!e&&n&&!o)return{tone:`error`,title:`You're offline`,icon:(0,J.jsx)(pe,{className:`h-4 w-4`,"aria-hidden":`true`})};if(!v&&!ee()&&$(x))return{tone:`neutral`,title:`Your assistant runs locally`,icon:(0,J.jsx)(g,{className:`h-4 w-4`,"aria-hidden":`true`}),children:`Open the Vellum desktop app or run vellum wake in your terminal to start it.`};let xe=(U||G)&&!v&&$(x)?`starting`:x,Se=De(xe,v,!v&&$(xe)&&s&&te(s)?(0,J.jsx)(r,{variant:`outlined`,size:`compact`,leftIcon:U?(0,J.jsx)(h,{className:`animate-spin`,"aria-hidden":`true`}):void 0,disabled:!s||U,onClick:()=>{ve()},children:`Wake up`}):void 0,me);if(Se)return Se;let Ce=d.kind===`active`&&d.isLocal;if(e&&Ce&&i===`backend-unreachable`)return{tone:`error`,title:`Trying to reach Vellum…`,icon:(0,J.jsx)(p,{className:`h-4 w-4`,"aria-hidden":`true`}),actions:(0,J.jsx)(r,{variant:`outlined`,size:`compact`,onClick:a,children:`Retry now`})};let Y=d.kind===`active`&&d.maintenanceMode?.enabled===!0&&(!C||P(C));if(ie&&!Y&&!F)return{tone:`error`,title:`Assistant status is unavailable`,actions:y?Oe():void 0};let X=C?.state===`unreachable`&&(A||F)?{...C,state:`waking`}:C?.state===`unreachable`&&M?{...C,state:`sleeping`}:C?.state===`crash_loop`&&R?{...C,state:`restarting`}:C,Z=X?.detail_state===`failed`&&X.state===z,Q=Y?we():Z?null:Ee(X,y,le);return!(C?.state===`maintenance_mode`||Y)||!Q?Q:{...Q,tone:de?`error`:Q.tone,children:de,actions:_?(0,J.jsx)(r,{variant:`outlined`,size:`compact`,leftIcon:V?(0,J.jsx)(h,{className:`animate-spin`,"aria-hidden":`true`}):void 0,disabled:V,onClick:()=>{ge()},children:`Resume Assistant`}):void 0}}function je({className:e,placement:t=w()?`electron`:`web`}){let n=Ae();return n?(0,J.jsx)(ke,{banner:n,className:e,placement:t}):null}var Me=3e3;function Ne({assistantId:e,currentVersion:t,placement:n=`web`,className:i}){let[a,o]=(0,H.useState)(!1),[c,l]=(0,H.useState)(null),u=ne(e=>e.assistantState),d=re(),f=T.use.activeAssistantId(),p=C.use.version(),m=N.use.previewChannel(),h=e??f,g=t??p,v=T(e=>h?e.assistants.find(e=>e.id===h):null),y=v?.cloud===`local`,S=v?.isPlatformHosted===!0&&v?.isLocal===!1,te=v?.runtimeVersion??g??null,w=v?.currentReleaseVersion??g??null,E=y?`local`:S?`platform`:null,{data:D}=se(S?h??null:null),O=E===`local`?te:E===`platform`?w:null,ie=y&&v?.isActiveLockfileAssistant===!0,ae=u.kind===`self_hosted`?!u.health||u.health===`healthy`:u.kind===`active`&&u.isLocal?u.reachable!==!1&&(!u.health||u.health===`healthy`):!1,oe=!d||d===`healthy`,A=u.kind===`active`&&!u.isLocal&&u.reachable!==!1&&!u.maintenanceMode?.enabled&&(!u.health||u.health===`healthy`)&&(!D||D.state===`active`),j=!!h&&!!O&&!!v?.isLocal&&ie&&ae&&oe&&ee()||!!h&&!!O&&S&&A,M=ce(v?.releaseChannel,m),{data:P,refetch:F}=s({...L({query:E===`platform`?{channel:M}:{stable:!0,limit:100}}),enabled:j,refetchInterval:fe,refetchOnReconnect:!0,refetchOnWindowFocus:!0});(0,H.useEffect)(()=>{if(!j)return;let e=()=>{F()},t=[k(`app.resume`,e),k(`power.resume`,e),k(`power.unlock`,e)];return()=>{for(let e of t)e()}},[F,j]);let I=(0,H.useMemo)(()=>E===`platform`?P?.find(e=>e.is_stable!==!1)??P?.[0]:ue(P),[E,P])?.version??null,R=h&&I?`${h}:${I}`:null,pe=B(O,I),U=de({assistantId:h,targetVersion:I??void 0}),W=Pe({assistantId:h,targetVersion:I??void 0,shouldStopPolling:D?.detail_state===`failed`}),G=E===`platform`?W.isPending:U.isPending;return(0,H.useEffect)(()=>{if(!h||!I){l(null);return}l(V(h,I)?`${h}:${I}`:null)},[h,I]),!j||!I||!pe||R!==null&&R===c||G?null:(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`div`,{className:z(n===`electron`?`px-4 pt-2`:`px-0 pt-0`,i),children:(0,J.jsx)(Ce,{tone:`info`,title:`New assistant version available: ${I}`,placement:n,icon:(0,J.jsx)(_,{"aria-hidden":`true`}),actions:(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(r,{variant:`ghost`,size:`compact`,onClick:()=>o(!0),children:`Update`}),(0,J.jsx)(`span`,{"aria-hidden":`true`,className:`h-3 w-px bg-[color-mix(in_srgb,var(--status-banner-action-color)_35%,transparent)]`}),(0,J.jsx)(r,{variant:`ghost`,size:`compact`,onClick:()=>{!h||!I||(le(h,I),l(`${h}:${I}`))},children:`Later`})]})})}),(0,J.jsx)(x,{open:a,title:`Update assistant runtime`,message:`Update to version ${I}? The assistant will be briefly unavailable during the update.`,confirmLabel:`Update`,onConfirm:async()=>{if(!(!h||!I||!E)){o(!1);try{if(E===`platform`){let e=await W.upgrade();if(e.detail?.includes(`Already on the latest`)){b.warning(e.detail);return}}else await U.upgrade(),b.success(`Update complete. Your assistant is healthy.`,{id:`runtime-upgrade-complete`,tone:`strong`});l(`${h}:${I}`)}catch(e){b.error(e instanceof Error?e.message:`Failed to trigger update. Please try again.`)}}},onCancel:()=>o(!1)})]})}function Pe({assistantId:e,targetVersion:t,shouldStopPolling:n=!1}){let r=o(),[i,a]=(0,H.useState)(!1),l=(0,H.useRef)(null),u=c({mutationFn:async()=>{if(!e)throw Error(`No assistant is active.`);let{data:n}=await ie({path:{id:e},body:t?{version:t}:{},throwOnError:!0});return n}});return(0,H.useEffect)(()=>{!i||!n||(l.current=null,a(!1))},[i,n]),s({...I({path:{id:e??``}}),enabled:i&&!!e,refetchInterval:e=>{let t=e.state.data?.current_release_version;return t&&l.current&&t===l.current?(queueMicrotask(()=>{e.state.data&&T.getState().upsertFromApi(e.state.data),l.current=null,a(!1),b.success(`Update complete. Your assistant is healthy.`,{id:`runtime-upgrade-complete`,tone:`strong`})}),!1):Me}}),{isPending:u.isPending||i,upgrade:async()=>{if(!e)throw Error(`No assistant is active.`);let n=await u.mutateAsync();return n.detail?.includes(`Already on the latest`)||(l.current=n.version??t??null,l.current&&a(!0),r.invalidateQueries({queryKey:R({path:{id:e}})})),n}}}export{U as a,W as i,je as n,pe as o,ye as r,Ne as t};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{n}from"./QueryClientProvider-EuRl-wrW.js";import{t as r}from"./useQuery-CTSuec5b.js";import{n as i}from"./toast-
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{n}from"./QueryClientProvider-EuRl-wrW.js";import{t as r}from"./useQuery-CTSuec5b.js";import{n as i}from"./toast-CHtrY-GO.js";import{n as a,t as o}from"./react-query.gen-CYP-Tn4K.js";import{t as s}from"./copy-to-clipboard-yufQqRBL.js";import{t as c}from"./deploy-store-C_y0BvwK.js";var l=e(t(),1);function u(e,t,{enabled:i=!0}={}){let s=n(),u=i&&e!==``&&t!=null,d=r({...o({path:{assistant_id:e,id:t??``}}),enabled:u}),f=c.use.isDeploying(),p=(0,l.useRef)(f);return(0,l.useEffect)(()=>{let n=p.current&&!f;p.current=f,n&&u&&s.invalidateQueries({queryKey:a({path:{assistant_id:e,id:t??``}})})},[f,u,e,t,s]),{deployedUrl:d.data?.published?d.data.publicUrl??null:null,isLoading:u&&d.isPending}}function d(e){s(e,{errorMessage:`Couldn't copy the link. Open it at ${e}`,onCopied:()=>{i.success(`Link copied`,{description:e,action:{label:`Open`,onClick:()=>window.open(e,`_blank`)}})}})}var f=/^\/v1\/x\//,p=/^(https?|mailto|tel):/i;function m(e){return typeof e==`string`&&p.test(e.trim())}function h(e){return JSON.stringify(e).replace(/<\//g,`<\\/`).replace(/<!--/g,`<\\!--`)}function g(){return`<script>
|
|
2
2
|
(function() {
|
|
3
3
|
var store = {};
|
|
4
4
|
var storageShim = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e,n as t,t as n}from"./api-errors-DYGVb-Sh.js";import{ar as r}from"./sdk.gen-hZs6YBR0.js";import{Tt as i}from"./react-query.gen-
|
|
1
|
+
import{i as e,n as t,t as n}from"./api-errors-DYGVb-Sh.js";import{ar as r}from"./sdk.gen-hZs6YBR0.js";import{Tt as i}from"./react-query.gen-CYP-Tn4K.js";function a(e){let t=e,n=t.description??``;return{...e,description:n,cadenceDescription:t.cadenceDescription??n}}async function o(i){let{data:o,error:s,response:c}=await r({path:{assistant_id:i},throwOnError:!1});if(t(c,s,`Failed to load schedules.`),!c.ok)throw new n(c.status,e(s,c,`Failed to load schedules.`));return(o?.schedules??[]).map(a)}function s(e){return{queryKey:i({path:{assistant_id:e??``}}),queryFn:()=>e?o(e):Promise.resolve([]),staleTime:1e4}}export{s as n,o as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./capture-error-VBsIaC5d.js";import{t as n}from"./react-BFJW0bSv.js";import{t as r}from"./button-VkxVX0DM.js";import{d as i,p as a}from"./chunk-5KNZJZUH-BUqIilZr.js";import{n as o}from"./QueryClientProvider-EuRl-wrW.js";import{t as s}from"./useQuery-CTSuec5b.js";import{t as c}from"./useInfiniteQuery-C5Kg1-qX.js";import{t as l}from"./useMutation-D2YPyfEH.js";import{t as u}from"./jsx-runtime-BJ8jcmzB.js";import{t as d}from"./cn-Cf8SmgbR.js";import{t as f}from"./typography-DekrYXvs.js";import{t as p}from"./card-DUsAeHUS.js";import{n as m,o as h}from"./list-row-D1odQOMJ.js";import{t as g}from"./calendar-DUfSq9XY.js";import{t as _}from"./chart-column-nt6xAz18.js";import{t as v}from"./chevron-down-D1ho6wFA.js";import{t as y}from"./chevron-right-DTpkwA4e.js";import{t as b}from"./circle-alert-B-Zu9T9V.js";import{t as x}from"./clock-CNSYP9nm.js";import{t as S}from"./coins-WH-N-3B8.js";import{t as C}from"./loader-circle-C9QjVTuc.js";import{t as w}from"./play-DTmq7Qfg.js";import{t as T}from"./repeat-ORyt0N0E.js";import{t as E}from"./settings-CyYRtP_K.js";import{t as D}from"./trash-2-DnajdgJS.js";import{t as O}from"./notice-C_AsX_o9.js";import{s as k}from"./src-Ch3HTlFm.js";import{t as A}from"./tag-Ddzwz3ij.js";import{n as j,t as M}from"./input-DkgpMeG9.js";import{t as N}from"./toggle-0qt1e_3r.js";import{t as P}from"./modal-UYNawsIu.js";import{n as F}from"./toast-ZCXyBjoj.js";import{t as I}from"./confirm-dialog--7V28331.js";import{t as L}from"./select-D133FK9g.js";import{t as R}from"./skeleton-D8_lkywC.js";import{s as z}from"./i18n-7Z5ghN39.js";import{t as B}from"./useTranslation-CJMg4EBF.js";import{a as ee,l as te,n as ne,o as re,r as ie,s as ae}from"./profile-pickers-BE4eyfmO.js";import{d as V}from"./routes-Bj1LYNBZ.js";import{$t as oe,B as se,Ct as ce,H as le,R as ue,S as de,St as fe,Tt as pe,V as me,b as he,bt as ge,cn as _e,p as ve,sn as ye,u as be,x as xe,xt as Se,y as Ce,yt as we,z as Te}from"./react-query.gen-OpeDEMIm.js";import{n as Ee,r as De}from"./conversation-navigation-Cg1rXwwx.js";import{n as Oe}from"./use-is-mobile-BwSS15lq.js";import{t as ke}from"./effective-timezone-CrnImpLf.js";import{t as Ae}from"./assistant-feature-flag-store-DPde0AIx.js";import{t as je}from"./use-effective-timezone-DaNOF607.js";import{t as Me}from"./use-assistant-capability-Cjd57j4I.js";import{t as Ne}from"./use-active-assistant-id-BFE4r9Rp.js";import{n as Pe}from"./detail-shell-BpJzTGvM.js";import{n as Fe}from"./schedules-D1Qj_LW9.js";import{t as Ie}from"./detail-card-DBxsIpmu.js";import{n as Le,t as Re}from"./detail-drawer-PnkAA_sr.js";import{a as ze,c as Be,i as Ve,n as He,o as Ue,r as We,s as Ge,t as Ke}from"./schedules-DaGS9wMX.js";import{i as qe,n as Je,t as Ye}from"./profile-metadata-B1fA1_W5.js";import{t as Xe}from"./page-empty-state-CpkB0rZ_.js";var H=e(n(),1),Ze={frequency:`daily`,minute:0,hour24:9,weekdays:[1],dayOfMonth:1},Qe=[{value:0,letter:`S`,short:`Sun`,full:`Sunday`},{value:1,letter:`M`,short:`Mon`,full:`Monday`},{value:2,letter:`T`,short:`Tue`,full:`Tuesday`},{value:3,letter:`W`,short:`Wed`,full:`Wednesday`},{value:4,letter:`T`,short:`Thu`,full:`Thursday`},{value:5,letter:`F`,short:`Fri`,full:`Friday`},{value:6,letter:`S`,short:`Sat`,full:`Saturday`}],$e=[1,2,3,4,5];function U(e,t,n){return Number.isFinite(e)?Math.min(n,Math.max(t,Math.round(e))):t}function et(e){let t=Array.from(new Set(e.map(e=>U(e,0,6)).filter(e=>Number.isInteger(e)))).sort((e,t)=>e-t);return t.length>0?t:[1]}function tt(e){let t=U(e.minute,0,59),n=U(e.hour24,0,23);switch(e.frequency){case`hourly`:return`${t} * * * *`;case`daily`:return`${t} ${n} * * *`;case`weekly`:return`${t} ${n} * * ${et(e.weekdays).join(`,`)}`;case`monthly`:return e.dayOfMonth===`last`?`${t} ${n} L * *`:`${t} ${n} ${U(e.dayOfMonth,1,28)} * *`}}function nt(e,t){let n=U(e,0,23),r=U(t,0,59),i=n<12?`AM`:`PM`;return`${n%12==0?12:n%12}:${String(r).padStart(2,`0`)} ${i}`}function rt(e){let t=[`th`,`st`,`nd`,`rd`],n=e%100;return`${e}${t[(n-20)%10]??t[n]??t[0]}`}function it(e){let t=et(e),n=new Set(t);if(t.length===7)return`every day`;if(t.length===5&&$e.every(e=>n.has(e)))return`every weekday`;if(t.length===2&&n.has(0)&&n.has(6))return`every weekend`;if(t.length===1)return`every ${Qe[t[0]]?.full??`day`}`;let r=t.map(e=>Qe[e]?.short??``),i=r.pop();return`every ${r.join(`, `)} & ${i}`}function at(e){let t=nt(e.hour24,e.minute);switch(e.frequency){case`hourly`:{let t=U(e.minute,0,59);return`Runs every hour at :${String(t).padStart(2,`0`)}`}case`daily`:return`Runs every day at ${t}`;case`weekly`:return`Runs ${it(e.weekdays)} at ${t}`;case`monthly`:return e.dayOfMonth===`last`?`Runs on the last day of every month at ${t}`:`Runs on the ${rt(U(e.dayOfMonth,1,28))} of every month at ${t}`}}var W=u(),ot=[{value:`hourly`,label:`Hourly`},{value:`daily`,label:`Daily`},{value:`weekly`,label:`Weekly`},{value:`monthly`,label:`Monthly`}],st=Array.from({length:12},(e,t)=>{let n=t+1;return{value:String(n),label:String(n)}}),ct=Array.from({length:12},(e,t)=>{let n=t*5,r=String(n).padStart(2,`0`);return{value:r,label:r}}),lt=[...Array.from({length:28},(e,t)=>{let n=t+1;return{value:String(n),label:rt(n)}}),{value:`last`,label:`Last day`}],ut=[{value:`AM`,label:`AM`},{value:`PM`,label:`PM`}];function dt(e,t){let n=e%12;return t===`PM`?n+12:n}function ft(e){try{let t=new Intl.DateTimeFormat(`en-US`,{timeZone:e,timeZoneName:`short`}).formatToParts(new Date).find(e=>e.type===`timeZoneName`)?.value;return t&&t!==e?`${e} · ${t}`:e}catch{return e}}function pt({isOpen:e,assistantId:t,onClose:n,onCreated:r}){return(0,W.jsx)(P.Root,{open:e,onOpenChange:e=>{e||n()},children:e?(0,W.jsx)(mt,{assistantId:t,onClose:n,onCreated:r}):null})}function mt({assistantId:e,onClose:t,onCreated:n}){let i=je(),[a,o]=(0,H.useState)(``),[s,c]=(0,H.useState)(``),[l,u]=(0,H.useState)(``),[d,f]=(0,H.useState)(`simple`),[p,m]=(0,H.useState)(Ze),[h,g]=(0,H.useState)(``),[_,v]=(0,H.useState)(!1),[y,b]=(0,H.useState)(null),x=a.trim(),S=s.trim(),C=l.trim(),w=h.trim(),T=(0,H.useMemo)(()=>d===`simple`?tt(p):w,[d,p,w]),E=(0,H.useMemo)(()=>d===`simple`?at(p):w||`Enter a cron expression to continue.`,[d,p,w]),D=(0,H.useMemo)(()=>ft(i),[i]),O=x.length>0&&S.length>0&&C.length>0&&T.length>0&&!_;return(0,W.jsxs)(P.Content,{size:`md`,children:[(0,W.jsxs)(P.Header,{children:[(0,W.jsx)(P.Title,{children:`Create schedule`}),(0,W.jsx)(P.Description,{children:`Schedule a recurring instruction for your assistant. Runs in execute mode — the message is delivered to the assistant on each fire.`})]}),(0,W.jsxs)(`form`,{onSubmit:async t=>{if(t.preventDefault(),O){v(!0),b(null);try{await Ke(e,{name:x,description:S,expression:T,message:C,timezone:i}),v(!1),n()}catch(e){b(e instanceof Error?e.message:`Failed to create schedule.`),v(!1)}}},children:[(0,W.jsx)(P.Body,{children:(0,W.jsxs)(`div`,{className:`flex flex-col gap-5`,children:[(0,W.jsx)(M,{label:`Name`,placeholder:`Morning briefing`,value:a,onChange:e=>o(e.target.value),required:!0,autoFocus:!0,fullWidth:!0}),(0,W.jsx)(j,{label:`Description`,placeholder:`What is this schedule for?`,value:s,onChange:e=>c(e.target.value),required:!0,fullWidth:!0,rows:2}),(0,W.jsx)(yt,{label:`Repeat`,children:d===`simple`?(0,W.jsx)(ht,{cadence:p,onChange:m}):(0,W.jsx)(vt,{value:h,onChange:g,onUseSimple:()=>f(`simple`)})}),(0,W.jsx)(bt,{summary:E,mono:d===`advanced`&&w.length>0,timezoneLabel:D}),d===`simple`?(0,W.jsx)(`button`,{type:`button`,onClick:()=>{g(e=>e||tt(p)),f(`advanced`)},className:`self-start text-body-small-default text-[var(--content-tertiary)] underline-offset-2 transition-colors hover:text-[var(--content-default)] hover:underline`,children:`Advanced — write a cron expression`}):null,(0,W.jsx)(j,{label:`Message`,placeholder:`What should the assistant do on each fire?`,value:l,onChange:e=>u(e.target.value),required:!0,fullWidth:!0,rows:4}),y?(0,W.jsx)(`p`,{className:`text-body-small-default text-[var(--system-negative-strong)]`,children:y}):null]})}),(0,W.jsxs)(P.Footer,{children:[(0,W.jsx)(r,{variant:`outlined`,onClick:t,type:`button`,children:`Cancel`}),(0,W.jsx)(r,{variant:`primary`,type:`submit`,disabled:!O,children:_?`Creating…`:`Create schedule`})]})]})]})}function ht({cadence:e,onChange:t}){return(0,W.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,W.jsx)(h,{items:ot,value:e.frequency,onChange:n=>t({...e,frequency:n}),ariaLabel:`How often the schedule runs`}),e.frequency===`hourly`?(0,W.jsx)(G,{label:`At minute`,children:(0,W.jsx)(L,{options:ct,value:String(e.minute).padStart(2,`0`),onChange:n=>t({...e,minute:Number(n)}),"aria-label":`Minute`,className:`w-24`})}):null,e.frequency===`weekly`?(0,W.jsx)(G,{label:`On these days`,children:(0,W.jsx)(_t,{value:e.weekdays,onChange:n=>t({...e,weekdays:n})})}):null,e.frequency===`monthly`?(0,W.jsx)(G,{label:`On day`,children:(0,W.jsx)(L,{options:lt,value:e.dayOfMonth===`last`?`last`:String(e.dayOfMonth),onChange:n=>t({...e,dayOfMonth:n===`last`?`last`:Number(n)}),"aria-label":`Day of month`,className:`w-32`})}):null,e.frequency===`hourly`?null:(0,W.jsx)(G,{label:`At time`,children:(0,W.jsx)(gt,{hour24:e.hour24,minute:e.minute,onChange:(n,r)=>t({...e,hour24:n,minute:r})})})]})}function gt({hour24:e,minute:t,onChange:n}){let r=e<12?`AM`:`PM`,i=e%12==0?12:e%12;return(0,W.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,W.jsx)(L,{options:st,value:String(i),onChange:e=>n(dt(Number(e),r),t),"aria-label":`Hour`,className:`w-[72px]`}),(0,W.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:`:`}),(0,W.jsx)(L,{options:ct,value:String(t).padStart(2,`0`),onChange:t=>n(e,Number(t)),"aria-label":`Minute`,className:`w-[72px]`}),(0,W.jsx)(`div`,{className:`w-[112px]`,children:(0,W.jsx)(h,{items:ut,value:r,onChange:e=>n(dt(i,e),t),ariaLabel:`AM or PM`})})]})}function _t({value:e,onChange:t}){let n=new Set(e),r=e=>{let r=new Set(n);r.has(e)?r.size>1&&r.delete(e):r.add(e),t([...r].sort((e,t)=>e-t))};return(0,W.jsx)(`div`,{className:`flex gap-1.5`,children:Qe.map(e=>{let t=n.has(e.value);return(0,W.jsx)(`button`,{type:`button`,onClick:()=>r(e.value),"aria-pressed":t,"aria-label":e.full,title:e.full,className:d(`flex h-9 w-9 items-center justify-center rounded-md border text-body-medium-default transition-colors`,t?`border-[var(--border-active)] bg-[var(--surface-active)] text-[var(--content-emphasised)]`:`border-[var(--field-border)] text-[var(--content-tertiary)] hover:border-[var(--border-active)] hover:text-[var(--content-default)]`),children:e.letter},e.value)})})}function vt({value:e,onChange:t,onUseSimple:n}){return(0,W.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,W.jsx)(M,{placeholder:`0 9 * * *`,value:e,onChange:e=>t(e.target.value),fullWidth:!0,className:`font-mono`,"aria-label":`Cron expression`,helperText:`Standard 5-field cron (minute hour day month weekday). RRULE expressions are also accepted.`}),(0,W.jsx)(`button`,{type:`button`,onClick:n,className:`self-start text-body-small-default text-[var(--content-tertiary)] underline-offset-2 transition-colors hover:text-[var(--content-default)] hover:underline`,children:`← Back to the simple builder`})]})}function yt({label:e,children:t}){return(0,W.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,W.jsx)(`span`,{className:`text-body-small-default text-[var(--content-secondary)]`,children:e}),t]})}function G({label:e,children:t}){return(0,W.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-3 gap-y-1.5`,children:[(0,W.jsx)(`span`,{className:`min-w-[88px] text-body-small-default text-[var(--content-tertiary)]`,children:e}),t]})}function bt({summary:e,mono:t,timezoneLabel:n}){return(0,W.jsxs)(`div`,{className:`flex items-start gap-3 rounded-lg border border-[var(--border-subtle)] bg-[var(--surface-lift)] px-3.5 py-3`,children:[(0,W.jsx)(x,{className:`mt-0.5 h-4 w-4 shrink-0 text-[var(--content-tertiary)]`,"aria-hidden":!0}),(0,W.jsxs)(`div`,{className:`min-w-0`,children:[(0,W.jsx)(`p`,{className:d(`text-body-medium-default text-[var(--content-default)]`,t&&`break-all font-mono`),children:e}),(0,W.jsxs)(`p`,{className:`mt-0.5 text-body-small-default text-[var(--content-tertiary)]`,children:[`Times use your timezone — `,n,`.`]})]})]})}function xt(e=ke(),t=Date.now()){return qe(Je,e,t)}function K(e){return e?new Date(e).toLocaleString(void 0,{month:`short`,day:`numeric`,hour:`numeric`,minute:`2-digit`,hour12:!0}):`—`}function St(e){return e==null?`—`:e<1e3?`${e}ms`:`${(e/1e3).toFixed(1)}s`}var Ct=new Intl.NumberFormat(void 0,{style:`currency`,currency:`USD`,minimumFractionDigits:2,maximumFractionDigits:2});function q(e){return e==null||!Number.isFinite(e)?`—`:Ct.format(e)}function wt(e){return`${e.toLocaleString()} ${e===1?`run`:`runs`}`}function Tt(e){let t=Math.round(e/6e4);return t>=60&&t%60==0?`Every ${t/60} hr`:`Every ${t} min`}function Et(e){if(!e)return;let t=new Set,n=[];for(let r of e)for(let e of r.runs)t.has(e.id)||(t.add(e.id),n.push(e));return n}function Dt(e){return!!e.conversationId&&e.conversationExists===!0&&e.conversationArchivedAt==null}function Ot(e){return Dt(e)?e.conversationId??null:null}function J(e){return typeof e==`string`&&e.length>0}function kt(e){return e.status===`pending`||e.status===`superseded`}function At(e){return e.status!==`skipped`&&e.status!==`missed`&&!kt(e)}var jt={heartbeat:`system-heartbeat`,consolidation:`system-consolidation`,retrospective:`system-memory-retrospective`};function Mt(e){if(e.cronExpression)return e.timezone?`Cron: ${e.cronExpression} (${e.timezone})`:`Cron: ${e.cronExpression}`;let t=Tt(e.intervalMs);return e.activeHoursStart!=null&&e.activeHoursEnd!=null&&(t+=` (${e.activeHoursStart}:00–${e.activeHoursEnd}:00)`),t}function Nt(e){return Tt(e.intervalMs)}var Pt=`After conversation activity`;function Ft(e){return e.status!==`fired`&&e.status!==`cancelled`}function It(e,t){return Ft(e)?e.status===`firing`?!1:e.nextRunAt==null||!e.enabled&&e.nextRunAt<=t:!0}function Lt(e,t){let n=[],r=[],i=[];for(let a of e)a.isOneShot?It(a,t)?i.push(a):r.push(a):n.push(a);return n.sort((e,t)=>e.enabled===t.enabled?(e.nextRunAt??1/0)-(t.nextRunAt??1/0):e.enabled?-1:1),r.sort((e,t)=>(e.nextRunAt??1/0)-(t.nextRunAt??1/0)),i.sort((e,t)=>{let n=e.lastRunAt??e.nextRunAt??0;return(t.lastRunAt??t.nextRunAt??0)-n}),{recurring:n,upcomingOneTime:r,pastOneTime:i}}function Rt(e,t,n=!0){return{queryKey:[{_id:`schedulesUsagesummaryGet`,path:{assistant_id:e??``},_tz:t}],queryFn:()=>e?Ve(e,xt(t)):Promise.resolve([]),enabled:n,staleTime:1e4}}function zt(e){return{scheduleId:e,runCount:0,totalEstimatedCostUsd:0,eventCount:0}}function Bt(e,t,n){let r=(t??[]).filter(e=>{let t=e.startedAt??e.createdAt;return At(e)&&t>=n.from&&t<=n.to});return{scheduleId:e,runCount:r.length,totalEstimatedCostUsd:r.reduce((e,t)=>{let n=t.estimatedCostUsd;return typeof n==`number`&&Number.isFinite(n)?e+n:e},0),eventCount:0}}function Vt(e,t,n){let r=!!e&&n?.enabled!==!1,{data:i}=s({...ve({path:{assistant_id:e}}),enabled:r,staleTime:6e4}),{data:a}=s({...be({path:{assistant_id:e}}),enabled:r,staleTime:6e4}),o=i?.callSites.find(e=>e.id===t)?.defaultProfile??null;return o==null?{key:null,label:null}:{key:o,label:(a?Ye(a):{})[o]?.displayName??o}}function Ht(e,n,r){let i=Vt(e,`mainAgent`),[a,o]=(0,H.useState)(!1),s=(0,H.useMemo)(()=>i.key?n.filter(e=>Ft(e)&&e.inferenceProfile!==i.key).length:0,[i.key,n]),c=i.label,u=l({mutationFn:t=>ze(e,null,t),onSuccess:e=>{o(!1),r(),F.success(e===0?`Every schedule already runs on ${c}.`:`Moved ${e} ${e===1?`schedule`:`schedules`} to ${c}.`)},onError:e=>{t(e,{context:`schedules_rebase_inference_profile`}),F.error(`Failed to move the schedules.`)}});return{defaultProfileLabel:c,offDefaultCount:s,canRebase:s>0,requestRebase:()=>o(!0),dialogProps:{open:a&&i.key!=null,profileLabel:c,offDefaultCount:s,isPending:u.isPending,onConfirm:()=>{i.key&&u.mutate(i.key)},onCancel:()=>o(!1)}}}function Ut({open:e,profileLabel:t,offDefaultCount:n,isPending:r,onConfirm:i,onCancel:a}){return(0,W.jsx)(I,{open:e,title:`Use ${t} for every schedule?`,message:`${n} of the schedules below ${n===1?`runs`:`run`} on a different model. This moves every schedule, including reminders your assistant set aside for later, onto ${t}, your current default. Schedules you deliberately put on another model move too.`,confirmLabel:`Move schedules`,isPending:r,onConfirm:i,onCancel:a})}function Wt({status:e}){return(0,W.jsx)(`span`,{className:`inline-block h-2 w-2 rounded-full`,style:{backgroundColor:e===`ok`||e===`completed`?`var(--system-positive-strong)`:e===`error`||e===`failed`?`var(--system-negative-strong)`:`var(--content-tertiary)`},"aria-label":e??`unknown`})}function Gt({scheduleName:e,usage:t,onOpenUsage:n}){if(t.status===`loading`)return(0,W.jsxs)(`div`,{"aria-label":`Loading schedule usage`,className:`flex w-[156px] shrink-0 items-center justify-end gap-3`,children:[(0,W.jsx)(R,{as:`span`,className:`h-5 w-16`}),(0,W.jsx)(R,{as:`span`,className:`h-5 w-16`})]});let r=t.status===`error`,i=r?`--`:q(t.summary.totalEstimatedCostUsd),a=r?`--`:wt(t.summary.runCount),o=t.status===`ready`&&!(t.summary.totalEstimatedCostUsd>0),s=t.status===`ready`&&t.summary.runCount===0,c=o?`text-[var(--content-tertiary)]`:`text-[var(--content-default)]`,l=s?`text-[var(--content-tertiary)]`:`text-[var(--content-default)]`;return(0,W.jsxs)(`div`,{className:`flex w-[156px] shrink-0 items-center justify-end gap-3 text-right text-body-small-default`,children:[n?(0,W.jsx)(`button`,{type:`button`,onClick:n,"aria-label":`View usage for ${e}`,className:`min-w-[64px] cursor-pointer rounded px-1 py-0.5 text-right transition-colors hover:bg-[var(--surface-hover)] ${c}`,children:i}):(0,W.jsx)(`span`,{"aria-label":`Cost for ${e} in the last 7 days: ${i}`,className:`block min-w-[64px] px-1 py-0.5 ${c}`,children:i}),(0,W.jsx)(`span`,{"aria-label":`Runs for ${e} in the last 7 days: ${a}`,className:`block min-w-[64px] px-1 py-0.5 ${l}`,children:a})]})}function Kt({name:e,subtitle:t,enabled:n,nextRunAt:r,lastRunAt:i,usage:a,helperText:o,statusLabel:s,statusTone:c=`neutral`,onClick:l}){return(0,W.jsx)(`div`,{className:`flex flex-wrap items-center gap-3 rounded-md px-2 py-3 transition-colors hover:bg-[var(--surface-hover)] [&+&]:border-t [&+&]:border-[var(--border-base)]`,children:(0,W.jsxs)(`button`,{type:`button`,onClick:l,"aria-label":`Open ${e}`,className:`flex min-w-0 flex-1 cursor-pointer flex-wrap items-center gap-3 text-left focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)]`,children:[(0,W.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,W.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,W.jsx)(`span`,{className:`truncate text-body-medium-default text-[var(--content-default)]`,children:e})}),(0,W.jsx)(`div`,{className:`mt-0.5 text-body-small-default text-[var(--content-tertiary)]`,children:t}),o?(0,W.jsx)(`div`,{className:`mt-0.5 text-body-small-default text-[var(--content-secondary)]`,children:o}):null,(0,W.jsxs)(`div`,{className:`mt-0.5 flex flex-wrap items-center gap-x-3 gap-y-1 text-body-small-default text-[var(--content-tertiary)]`,children:[r?(0,W.jsxs)(`span`,{children:[`Next: `,K(r)]}):null,i?(0,W.jsxs)(`span`,{children:[`Last: `,K(i)]}):null]})]}),(0,W.jsxs)(`div`,{className:`flex shrink-0 flex-wrap items-center justify-end gap-3`,children:[(0,W.jsx)(Gt,{scheduleName:e,usage:a}),s?(0,W.jsx)(A,{tone:c,children:s}):(0,W.jsx)(`span`,{className:`h-2 w-2 rounded-full`,style:{backgroundColor:n?`var(--system-positive-strong)`:`var(--content-disabled)`},"aria-label":n?`enabled`:`disabled`}),(0,W.jsx)(y,{className:`h-4 w-4 text-[var(--content-tertiary)]`})]})]})})}function qt({heartbeatConfig:e,consolidationConfig:t,retrospectiveConfig:n,heartbeatUsage:r,consolidationUsage:i,retrospectiveUsage:a,isLoading:o,hasError:s,onRetry:c,onSelectHeartbeat:l,onSelectConsolidation:u,onSelectRetrospective:d}){let f=e!=null,p=t?.available===!0,m=n?.available===!0,h=f||p||m;if(!o&&!s&&!h)return null;let g=[...f?[r]:[],...p?[i]:[],...m?[a]:[]].filter(e=>e.status===`ready`),_=g.reduce((e,t)=>e+(t.summary.totalEstimatedCostUsd??0),0),y=o?(0,W.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,W.jsx)(C,{className:`h-5 w-5 animate-spin text-stone-400`})}):s&&!h?(0,W.jsxs)(O,{tone:`error`,children:[`Failed to load system jobs.`,` `,(0,W.jsx)(`button`,{type:`button`,onClick:c,className:`cursor-pointer underline hover:no-underline`,children:`Retry`})]}):(0,W.jsxs)(`div`,{children:[f?(0,W.jsx)(Kt,{name:`Heartbeat`,subtitle:Mt(e),enabled:e.enabled,nextRunAt:e.nextRunAt,lastRunAt:e.lastRunAt,usage:r,onClick:l}):null,p?(0,W.jsx)(Kt,{name:`Consolidation`,subtitle:Nt(t),enabled:t.enabled,helperText:t.enabled?void 0:`Memory is off, so consolidation is paused.`,nextRunAt:t.nextRunAt,lastRunAt:t.lastRunAt,usage:i,statusLabel:t.enabled?void 0:`Paused`,statusTone:`warning`,onClick:u}):null,m?(0,W.jsx)(Kt,{name:`Memory retrospective`,subtitle:Pt,enabled:n.enabled,helperText:n.enabled?void 0:`Retrospectives are turned off in Memory settings.`,nextRunAt:n.nextRunAt,lastRunAt:n.lastRunAt,usage:a,statusLabel:n.enabled?void 0:`Paused`,statusTone:`warning`,onClick:d}):null,s?(0,W.jsx)(`div`,{className:`pt-3 first:pt-0`,children:(0,W.jsxs)(O,{tone:`error`,children:[`Some system jobs failed to load.`,` `,(0,W.jsx)(`button`,{type:`button`,onClick:c,className:`cursor-pointer underline hover:no-underline`,children:`Retry`})]})}):null]});return(0,W.jsx)(Ie,{children:(0,W.jsx)(k.Root,{type:`multiple`,children:(0,W.jsxs)(k.Item,{value:`system-jobs`,children:[(0,W.jsxs)(k.Trigger,{className:`group justify-between gap-3`,children:[(0,W.jsxs)(`span`,{className:`flex min-w-0 flex-wrap items-baseline gap-x-2 gap-y-1 text-left`,children:[(0,W.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-secondary)]`,children:`System`}),(0,W.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Built-in jobs managed by the assistant runtime`})]}),(0,W.jsxs)(`span`,{className:`flex shrink-0 items-center gap-3`,children:[g.length>0?(0,W.jsxs)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:[q(_),` (7d)`]}):null,(0,W.jsx)(v,{className:`h-4 w-4 shrink-0 text-[var(--content-tertiary)] transition-transform group-data-[state=open]:rotate-180`})]})]}),(0,W.jsx)(k.Content,{children:(0,W.jsx)(`div`,{className:`mt-3`,children:y})})]})})})}var Jt={disabled:`heartbeat is disabled`,outside_active_hours:`outside active hours`,overlap:`previous run was still active`,pre_first_user_message:`waiting for the first conversation`,max_consecutive_runs:`consecutive-run cap reached`,max_daily_runs:`daily run cap reached`,quiesced:`assistant was shutting down`};function Yt(e){return e.status===`missed`?`Missed while the assistant was offline`:`skipReason`in e&&e.skipReason?`Skipped — ${Jt[e.skipReason]??e.skipReason}`:null}function Y(e,t){return{id:e.id,jobId:t,status:e.status,startedAt:e.startedAt??e.scheduledFor,finishedAt:e.finishedAt,durationMs:e.durationMs,output:Yt(e),error:e.error,conversationId:e.conversationId,conversationExists:e.conversationExists,conversationArchivedAt:e.conversationArchivedAt,estimatedCostUsd:e.estimatedCostUsd,createdAt:e.createdAt,...`title`in e?{title:e.title}:{}}}function Xt(e){return e.runs.filter(e=>!kt(e)).map(e=>Y(e,`heartbeat`))}function Zt(e){return e.runs.map(e=>Y(e,`consolidation`))}function Qt(e){return e.runs.map(e=>Y(e,`retrospective`))}var X=1e4;function $t(e,t,n,r,i){return e?{status:`loading`}:t?{status:`error`}:{status:`ready`,summary:Bt(n,r,i)}}function en(e,n){let r=o(),i={path:{assistant_id:e??``}},{data:a,isLoading:c,isError:l,refetch:u}=s({...ue(i),enabled:!!e,staleTime:X}),{data:d,isLoading:f,isError:p,refetch:m}=s({...Ce(i),enabled:!!e,staleTime:X}),{data:h,isLoading:g,isError:_,refetch:v}=s({...we(i),enabled:!!e,staleTime:X}),y={path:{assistant_id:e??``},query:{limit:100}},{data:b,isLoading:x,isError:S,refetch:C}=s({...le(y),select:Xt,enabled:!!e&&a!=null,staleTime:X}),{data:w,isLoading:T,isError:E,refetch:D}=s({...de(y),select:Zt,enabled:!!e&&d?.available===!0,staleTime:X}),{data:O,isLoading:k,isError:A,refetch:j}=s({...fe(y),select:Qt,enabled:!!e&&h?.available===!0,staleTime:X}),M=(0,H.useMemo)(()=>xt(n),[n]),N=(0,H.useMemo)(()=>$t(x,S,jt.heartbeat,b,M),[b,S,x,M]),P=(0,H.useMemo)(()=>$t(T,E,jt.consolidation,w,M),[w,E,T,M]),I=(0,H.useMemo)(()=>$t(k,A,jt.retrospective,O,M),[O,A,k,M]),L=t=>{if(!e)return;let n={heartbeat:{config:ue(i).queryKey,runs:le(y).queryKey,infinite:me(i)},consolidation:{config:Ce(i).queryKey,runs:de(y).queryKey,infinite:xe(i)},retrospective:{config:we(i).queryKey,runs:fe(y).queryKey,infinite:Se(i)}}[t];r.invalidateQueries({queryKey:n.config}),r.invalidateQueries({queryKey:n.runs}),r.invalidateQueries({queryKey:n.infinite})},R=_e({onSuccess:e=>{e.ran?F.success(`Heartbeat started.`):F.info(`Heartbeat skipped.`)},onError:e=>{t(e,{context:`heartbeat_run_now`}),F.error(`Failed to run heartbeat.`)},onSettled:()=>L(`heartbeat`)}),z=oe({onSuccess:e=>{e.ran?F.success(`Consolidation queued.`):F.info(`Consolidation already queued or running.`)},onError:e=>{t(e,{context:`consolidation_run_now`}),F.error(`Failed to run consolidation.`)},onSettled:()=>L(`consolidation`)}),B=ye({onSuccess:e=>{Te(r,i,e),F.success(e.enabled?`Heartbeat enabled.`:`Heartbeat disabled.`)},onError:e=>{t(e,{context:`heartbeat_toggle`}),F.error(`Failed to toggle heartbeat.`)}});return{heartbeatConfig:a,consolidationConfig:d,retrospectiveConfig:h,heartbeatUsage:N,consolidationUsage:P,retrospectiveUsage:I,isLoading:c||f||g,hasError:l||p||_,isHeartbeatRunning:R.isPending,isConsolidationRunning:z.isPending,isHeartbeatLoading:c,isHeartbeatError:l,isConsolidationLoading:f,isConsolidationError:p,isRetrospectiveLoading:g,isRetrospectiveError:_,refetchHeartbeat:u,refetchConsolidation:m,refetchRetrospective:v,runHeartbeatNow:()=>{e&&R.mutate({path:{assistant_id:e}})},runConsolidationNow:()=>{e&&z.mutate({path:{assistant_id:e}})},toggleHeartbeat:t=>{e&&B.mutate({body:{enabled:t},path:{assistant_id:e}})},refetchAll:()=>{u(),m(),v(),C(),D(),j()}}}function Z({id:e,title:t,subtitle:n,accessory:r,children:i,className:a}){let o=!!(t||n||r);return(0,W.jsx)(p,{asChild:!0,className:d(`rounded-lg`,a),children:(0,W.jsxs)(`section`,{id:e,children:[o&&(0,W.jsxs)(`div`,{className:`flex flex-row items-start justify-between gap-4`,children:[(0,W.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1`,children:[t&&(0,W.jsx)(f,{variant:`title-small`,as:`h2`,className:`text-[var(--content-emphasised)]`,children:t}),n&&(0,W.jsx)(f,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:n})]}),r&&(0,W.jsx)(`div`,{className:`shrink-0`,children:r})]}),i!=null&&(0,W.jsx)(`div`,{className:o?`mt-3`:``,children:i})]})})}function tn(e){return/^plugin:([^/]+)\//.exec(e??``)?.[1]??null}var nn={user_disabled:`scheduleDisarmReason.userDisabled`,plugin_removed:`scheduleDisarmReason.pluginRemoved`,plugin_disabled:`scheduleDisarmReason.pluginDisabled`,declaration_removed:`scheduleDisarmReason.declarationRemoved`,declaration_disabled:`scheduleDisarmReason.declarationDisabled`};function rn(e){return e.enabled||!e.disarmReason?null:nn[e.disarmReason]??null}var an=`Default (assistant's main model)`,on=`Custom call-site model`;function sn(e,t){return t?.[e]?.displayName??e}function cn(e,t){if(e==null)return;if(e.provider!=null||e.model!=null)return on;let n=e.profile?.trim();return n?`Override (${sn(n,t)})`:void 0}function ln({assistantId:e,pinnedProfile:t,defaultCallSite:n=`mainAgent`,fallbackLabel:r=an,respectCallSiteOverride:i=!1}){let a=t==null,{data:o}=s({...be({path:{assistant_id:e}}),enabled:!!e,staleTime:6e4}),c=(0,H.useMemo)(()=>o?Ye(o):{},[o]),{label:l}=Vt(e,n,{enabled:a}),u=a&&i?cn(o?.llm?.callSites?.[n],c):void 0,d=t==null?u??(l==null?r:`Default (${l})`):sn(t,c);return(0,W.jsxs)(`div`,{className:`flex min-h-6 items-center justify-between gap-4`,children:[(0,W.jsx)(`span`,{className:`shrink-0 text-[var(--content-secondary)]`,children:`Model profile`}),(0,W.jsx)(`span`,{className:`min-w-0 truncate text-right`,title:d,children:d})]})}function un(e,t,n){let r=te(e?.profiles??{},e?.profileOrder??[]);return[{value:null,label:`Default`},...re(r,[t],n).map(e=>{let t=ne(e,r,n);return{value:e.name,label:ie(e),...t?{issue:t}:{},...t===`undispatchable`?{reason:ee(e)}:{}}})]}function dn(e,t){let{data:n}=s({...be({path:{assistant_id:e}}),enabled:!!e,staleTime:6e4}),r=ae();return(0,H.useMemo)(()=>un(n?.llm,t,{requireOwnProviderAndModel:r}),[n?.llm,t,r])}function fn({assistantId:e,value:t,onChange:n,disabled:r=!1,isSaving:i=!1,className:a,includeDefaultOption:o=!0,placeholder:s,variant:c,menuAlign:l}){return(0,W.jsx)(L,{value:t,onChange:n,onSelectNone:()=>n(null),options:dn(e,t).filter(e=>o||e.value!=null).map(e=>({...e.issue===`undispatchable`?{icon:(0,W.jsx)(b,{className:`h-3.5 w-3.5 text-[var(--system-mid-strong)]`}),...e.reason?{tooltip:e.reason}:{}}:{},value:e.value,label:e.label})),disabled:r||i,placeholder:s,className:a,variant:c,menuAlign:l,"aria-label":`Model profile`})}function Q({label:e,value:t}){return(0,W.jsxs)(`div`,{className:`flex min-h-6 items-center justify-between gap-4`,children:[(0,W.jsx)(`span`,{className:`shrink-0 text-body-medium-lighter text-[var(--content-secondary)]`,children:e}),(0,W.jsx)(`span`,{className:`min-w-0 text-right text-body-medium-lighter text-[var(--content-default)]`,children:t})]})}function pn({schedule:e,assistantId:n,isPast:r}){let{t:i}=B(`schedules`),a=o(),s=pe({path:{assistant_id:n}}),c=l({mutationFn:t=>Be(n,e.id,{inferenceProfile:t}),onMutate:async t=>{await a.cancelQueries({queryKey:s});let n=a.getQueryData(s)?.find(t=>t.id===e.id)?.inferenceProfile;return a.setQueryData(s,n=>n?.map(n=>n.id===e.id?{...n,inferenceProfile:t}:n)),{previousProfile:n}},onError:(n,r,o)=>{let c=o?.previousProfile;c!==void 0&&a.setQueryData(s,t=>t?.map(t=>t.id===e.id?{...t,inferenceProfile:c}:t)),t(n,{context:`schedule_update_inference_profile`}),F.error(i(`scheduleDetail.modelChangeFailed`))},onSettled:()=>a.invalidateQueries({queryKey:s})});return e.mode===`workflow`?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(Q,{label:i(`scheduleDetail.modelProfile`),value:i(`scheduleDetail.notUsedForWorkflow`)}),(0,W.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:i(`scheduleDetail.modelProfileWorkflowNote`)})]}):r?(0,W.jsx)(`div`,{className:`text-body-medium-lighter text-[var(--content-default)]`,children:(0,W.jsx)(ln,{assistantId:n,pinnedProfile:e.inferenceProfile})}):(0,W.jsx)(Q,{label:i(`scheduleDetail.modelProfile`),value:(0,W.jsx)(fn,{assistantId:n,value:e.inferenceProfile,onChange:t=>{t&&t!==e.inferenceProfile&&c.mutate(t)},includeDefaultOption:!1,placeholder:i(`scheduleDetail.chooseModel`),isSaving:c.isPending,variant:`ghost`,menuAlign:`end`,className:`-my-1 -mr-2`})})}function mn({icon:e,value:t,label:n}){return(0,W.jsxs)(`div`,{className:`flex items-center gap-3 rounded-lg border border-[var(--border-base)] bg-[var(--surface-lift)] p-3`,children:[(0,W.jsx)(`span`,{className:`flex h-8 w-8 shrink-0 items-center justify-center rounded-md bg-[var(--surface-sunken)] text-[var(--content-secondary)]`,children:e}),(0,W.jsxs)(`div`,{className:`min-w-0`,children:[(0,W.jsx)(`div`,{className:`truncate text-body-large-default text-[var(--content-default)]`,children:t}),(0,W.jsx)(`div`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:n})]})]})}function hn({usage:e}){let{t}=B(`schedules`);return e.status===`loading`?(0,W.jsx)(`div`,{className:`grid grid-cols-2 gap-3 pt-2`,children:Array.from({length:2},(e,t)=>(0,W.jsx)(R,{className:`h-[60px] rounded-lg`},t))}):e.status===`error`?null:(0,W.jsxs)(`div`,{className:`grid grid-cols-2 gap-3 pt-2`,children:[(0,W.jsx)(mn,{icon:(0,W.jsx)(S,{className:`h-4 w-4`}),value:q(e.summary.totalEstimatedCostUsd),label:t(`scheduleDetail.costLabel`,{days:7})}),(0,W.jsx)(mn,{icon:(0,W.jsx)(T,{className:`h-4 w-4`}),value:wt(e.summary.runCount),label:t(`scheduleDetail.runsLabel`,{days:7})})]})}function gn(e){return e.exists&&e.archivedAt==null}function _n({run:e,index:t,isExpanded:n,disableDirectOpen:r,onOpenConversation:i,onToggleDetails:a}){let{t:o}=B(`schedules`),s=Ot(e),c=e.conversations??(s?[{id:s,title:null,exists:!0,archivedAt:null}]:[]),l=J(e.output),u=J(e.error),f=!r&&c.length===1&&gn(c[0])?c[0].id:null,p=!f&&(c.length>0||l||u),m=`schedule-run-details-${t}`,h=!!f||p,g=(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(Wt,{status:e.status}),(0,W.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,W.jsx)(`div`,{className:`text-body-medium-lighter text-[var(--content-default)]`,children:K(e.startedAt)}),(0,W.jsxs)(`div`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:[St(e.durationMs),` ·`,` `,q(e.estimatedCostUsd)]}),e.status===`error`&&e.error?(0,W.jsxs)(`div`,{className:`mt-0.5 text-body-small-default text-[var(--system-negative-strong)]`,children:[e.error.slice(0,120),e.error.length>120?`…`:``]}):null]}),h?(0,W.jsx)(y,{className:d(`h-4 w-4 shrink-0 text-[var(--content-tertiary)] transition-transform`,p&&n?`rotate-90`:``)}):null]}),_=p&&n?(0,W.jsx)(`div`,{id:m,className:`px-2 pb-3`,children:(0,W.jsxs)(`div`,{className:`space-y-3 rounded-md border border-[var(--border-subtle)] bg-[var(--surface-sunken)] p-3`,children:[c.length>0?(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`div`,{className:`mb-1 text-body-small-default text-[var(--content-secondary)]`,children:o(`scheduleDetail.conversations`)}),(0,W.jsx)(`div`,{className:`space-y-1`,children:c.map(e=>gn(e)?(0,W.jsx)(`button`,{type:`button`,onClick:()=>i(e.id),className:`block w-full truncate text-left text-body-small-default text-[var(--content-default)] hover:underline`,children:J(e.title)?e.title:o(`scheduleDetail.conversation`)},e.id):(0,W.jsxs)(`span`,{className:`block truncate text-body-small-default text-[var(--content-tertiary)] italic`,children:[J(e.title)?e.title:o(`scheduleDetail.conversation`),` `,e.exists?o(`scheduleDetail.conversationArchived`):o(`scheduleDetail.conversationUnavailable`)]},e.id))})]}):null,l?(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`div`,{className:`mb-1 text-body-small-default text-[var(--content-secondary)]`,children:o(`scheduleDetail.output`)}),(0,W.jsx)(`pre`,{className:`max-h-64 overflow-auto whitespace-pre-wrap break-words text-body-small-default font-mono text-[var(--content-default)]`,children:e.output})]}):null,u?(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`div`,{className:`mb-1 text-body-small-default text-[var(--content-secondary)]`,children:o(`scheduleDetail.error`)}),(0,W.jsx)(`pre`,{className:`max-h-64 overflow-auto whitespace-pre-wrap break-words text-body-small-default font-mono text-[var(--system-negative-strong)]`,children:e.error})]}):null]})}):null;return f?(0,W.jsx)(`div`,{children:(0,W.jsx)(`button`,{type:`button`,onClick:()=>i(f),"aria-label":o(`scheduleDetail.openRunConversationAria`,{time:K(e.startedAt)}),className:`flex w-full cursor-pointer items-center gap-3 px-2 py-3 text-left shadow-none transition-colors hover:bg-[var(--surface-hover)] focus:outline-none`,children:g})}):p?(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`button`,{type:`button`,onClick:()=>a(e.id),"aria-label":o(`scheduleDetail.toggleRunDetailsAria`,{time:K(e.startedAt)}),"aria-expanded":n,"aria-controls":m,className:`flex w-full cursor-pointer items-center gap-3 px-2 py-3 text-left shadow-none transition-colors hover:bg-[var(--surface-hover)] focus:outline-none`,children:g}),_]}):(0,W.jsx)(`div`,{className:`flex items-center gap-3 px-2 py-3`,children:g})}function vn({runs:e,isLoading:t,disableDirectOpen:n,onOpenConversation:r}){let{t:i}=B(`schedules`),[a,o]=(0,H.useState)(null);return t?(0,W.jsx)(`div`,{className:`flex items-center justify-center py-6`,children:(0,W.jsx)(C,{className:`h-5 w-5 animate-spin text-stone-400`})}):!e||e.length===0?(0,W.jsx)(`p`,{className:`py-2 text-body-medium-lighter text-[var(--content-tertiary)] italic`,children:i(`scheduleDetail.noRunsYet`)}):(0,W.jsx)(`div`,{className:`-mx-2 divide-y divide-[var(--border-base)]`,children:e.map((e,t)=>(0,W.jsx)(_n,{run:e,index:t,isExpanded:a===e.id,disableDirectOpen:n,onOpenConversation:r,onToggleDetails:e=>o(t=>t===e?null:e)},e.id))})}function yn({schedule:e,assistantId:n,usage:a,isPast:o=!1,onClose:c,onDeleted:l}){let{t:u}=B(`schedules`),d=i(),{data:f,isLoading:p}=s({queryKey:ce({path:{assistant_id:n,id:e.id}}),queryFn:()=>We(n,e.id),staleTime:1e4}),[m,h]=(0,H.useState)(!1),[g,v]=(0,H.useState)(!1),[y,b]=(0,H.useState)(!1),x=tn(e.sourceKey),S=rn(e),w=x!==null&&!e.enabled,T=async()=>{h(!0);try{await Ue(n,e.id)}catch(e){t(e,{context:`schedule_run_now`}),F.error(u(`scheduleDetail.runFailed`))}finally{h(!1)}},E=async()=>{b(!0);try{await He(n,e.id),l()}catch(e){t(e,{context:`schedule_delete`}),F.error(u(`scheduleDetail.deleteFailed`)),b(!1),v(!1)}};return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsxs)(`div`,{className:`flex h-full flex-col bg-[var(--surface-overlay)] md:rounded-[var(--radius-xl)] md:border md:border-[var(--border-base)]`,children:[(0,W.jsx)(Pe,{title:e.name,headerActions:x?void 0:(0,W.jsx)(r,{variant:`dangerOutline`,iconOnly:(0,W.jsx)(D,{}),"aria-label":u(`scheduleDetail.delete`),tooltip:u(`scheduleDetail.delete`),onClick:()=>v(!0)}),closeLabel:u(`scheduleDetail.closeAria`),closeTooltip:u(`scheduleDetail.close`),onClose:c}),(0,W.jsxs)(`div`,{className:`flex-1 space-y-6 overflow-y-auto px-[var(--app-spacing-lg)] py-[var(--app-spacing-lg)]`,children:[e.description?(0,W.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-secondary)]`,children:e.description}):null,(0,W.jsx)(Z,{title:u(`scheduleDetail.details`),children:(0,W.jsxs)(`div`,{className:`space-y-2`,children:[e.cadenceDescription?(0,W.jsx)(Q,{label:u(`scheduleDetail.cadence`),value:e.cadenceDescription}):null,(0,W.jsx)(Q,{label:u(`scheduleDetail.mode`),value:e.mode}),(0,W.jsx)(pn,{schedule:e,assistantId:n,isPast:o}),(0,W.jsx)(Q,{label:u(`scheduleDetail.status`),value:e.enabled?u(`scheduleDetail.enabled`):u(`scheduleDetail.disabled`)}),(0,W.jsx)(Q,{label:u(`scheduleDetail.nextRun`),value:K(e.nextRunAt)}),e.lastRunAt?(0,W.jsx)(Q,{label:u(`scheduleDetail.lastRun`),value:(0,W.jsxs)(`span`,{className:`flex items-center justify-end gap-2`,children:[(0,W.jsx)(Wt,{status:e.lastStatus}),K(e.lastRunAt)]})}):null]})}),(0,W.jsx)(hn,{usage:a}),(0,W.jsx)(Z,{title:u(`scheduleDetail.recentRuns`),children:(0,W.jsx)(vn,{runs:f?.runs,isLoading:p,disableDirectOpen:e.mode===`script`,onOpenConversation:e=>Ee(d,e)})})]}),(0,W.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between gap-2 border-t border-[var(--border-hover)] p-[var(--app-spacing-lg)]`,children:[x?(0,W.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:S?u(`scheduleDetail.managedByPluginPaused`,{plugin:x,reason:u(S)}):u(`scheduleDetail.managedByPlugin`,{plugin:x})}):(0,W.jsx)(`span`,{}),(0,W.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,W.jsx)(r,{variant:`outlined`,leftIcon:(0,W.jsx)(_,{className:`h-3.5 w-3.5`}),onClick:()=>d(V.settings.usageForSchedule(e.id)),children:u(`scheduleDetail.viewUsage`)}),e.mode===`script`?(0,W.jsxs)(W.Fragment,{children:[w?(0,W.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:u(`scheduleDetail.turnOnToRun`)}):null,(0,W.jsx)(r,{variant:`primary`,leftIcon:m?(0,W.jsx)(C,{className:`h-3.5 w-3.5 animate-spin`}):void 0,onClick:()=>void T(),disabled:m||w,children:u(m?`scheduleDetail.running`:`scheduleDetail.runNow`)})]}):null]})]})]}),(0,W.jsx)(I,{open:g,title:u(`scheduleDetail.delete`),message:u(`scheduleDetail.deleteConfirmMessage`,{name:e.name}),confirmLabel:u(`scheduleDetail.confirmDelete`),cancelLabel:u(`scheduleDetail.cancel`),destructive:!0,isPending:y,onConfirm:()=>void E(),onCancel:()=>v(!1)})]})}function bn(e){if(e.status===`loading`)return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(R,{as:`span`,className:`h-4 w-12`}),(0,W.jsx)(R,{as:`span`,className:`h-4 w-10`})]});if(e.status===`error`)return(0,W.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`—`});let{summary:t}=e;return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`span`,{className:`text-body-small-default text-[var(--content-secondary)]`,children:q(t.totalEstimatedCostUsd)}),(0,W.jsx)(`span`,{className:`text-body-small-default text-[var(--content-secondary)]`,children:wt(t.runCount)})]})}function xn({name:e,badge:t,metaParts:n,usage:r,enabled:i,selected:a,onClick:o,onToggle:s,toggleAriaLabel:c}){return(0,W.jsxs)(`div`,{className:`flex items-center gap-3 rounded-md px-2 py-3 transition-colors [&+&]:border-t [&+&]:border-[var(--border-base)] ${a?`bg-[var(--surface-active)]`:`hover:bg-[var(--surface-hover)]`}`,children:[s?(0,W.jsx)(N,{checked:i,onChange:s,"aria-label":c}):null,(0,W.jsxs)(`button`,{type:`button`,onClick:o,className:`flex min-w-0 flex-1 cursor-pointer items-center gap-4 text-left focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)]`,children:[(0,W.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-1`,children:[(0,W.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[(0,W.jsx)(`span`,{className:`truncate text-body-medium-default text-[var(--content-default)]`,children:e}),t]}),n.length>0?(0,W.jsx)(`span`,{className:`flex min-w-0 items-center gap-2 text-label-small-default text-[var(--content-tertiary)]`,children:n.map((e,t)=>(0,W.jsxs)(H.Fragment,{children:[t>0?(0,W.jsx)(`span`,{className:`h-[3px] w-[3px] shrink-0 rounded-full bg-[var(--content-tertiary)]`}):null,(0,W.jsx)(`span`,{className:`truncate`,children:e})]},t))}):null]}),(0,W.jsxs)(`div`,{className:`flex shrink-0 items-center gap-4`,children:[bn(r),(0,W.jsx)(y,{className:`h-4 w-4 text-[var(--content-tertiary)]`})]})]})]})}function Sn({schedule:e,usage:t,selected:n,onClick:r,onToggle:i}){let{t:a}=B(`schedules`),o=e.isOneShot?``:e.cadenceDescription.trim(),s=e.lastRunAt??e.nextRunAt,c=rn(e),l=[c?a(c):``,o,s?K(s):``].filter(Boolean),u=tn(e.sourceKey);return(0,W.jsx)(xn,{name:e.name,badge:u?(0,W.jsx)(A,{tone:`info`,children:u}):void 0,metaParts:l,usage:t,enabled:e.enabled,selected:n,onClick:r,onToggle:i,toggleAriaLabel:i?a(`scheduleRow.toggleAria`,{name:e.name}):void 0})}function Cn({recurring:e,oneTime:t,pastOneTime:n,usageForSchedule:i,isLoading:a,isError:o,refetch:s,onToggle:c,onSelectSchedule:l,selectedScheduleId:u,onStartNewChat:d,onCreateSchedule:f,pastOpen:p,onPastOpenChange:m,onRebaseProfiles:h,defaultProfileLabel:_,systemTasksSlot:v}){let{t:b}=B(`schedules`),x=e=>(0,W.jsx)(Sn,{schedule:e,usage:i(e.id),selected:e.id===u,onClick:()=>l(e.id),onToggle:t=>c(e.id,t)},e.id),S=e=>(0,W.jsx)(Sn,{schedule:e,usage:i(e.id),selected:e.id===u,onClick:()=>l(e.id)},e.id),C=n.length>0?(0,W.jsx)(k.Root,{type:`single`,collapsible:!0,className:`mt-3`,value:p?`past`:``,onValueChange:e=>m(e===`past`),children:(0,W.jsxs)(k.Item,{value:`past`,children:[(0,W.jsxs)(k.Trigger,{className:`group gap-[var(--app-spacing-xs)] px-2 text-label-small-default text-[var(--content-tertiary)]`,children:[(0,W.jsx)(y,{size:14,"aria-hidden":!0,className:`shrink-0 transition-transform group-data-[state=open]:rotate-90`}),(0,W.jsx)(`span`,{children:b(`schedulesPanel.pastToggle`,{count:n.length})})]}),(0,W.jsx)(k.Content,{children:(0,W.jsx)(`div`,{className:`pt-1`,children:n.map(S)})})]})}):null;return(0,W.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto`,children:[a?(0,W.jsx)(`div`,{className:`space-y-3`,children:Array.from({length:2},(e,t)=>(0,W.jsx)(R,{className:`h-12 rounded-md`},t))}):o&&e.length===0?(0,W.jsx)(O,{tone:`error`,actions:(0,W.jsx)(`button`,{type:`button`,onClick:s,className:`cursor-pointer underline hover:no-underline`,children:b(`schedulesPanel.retry`)}),children:b(`schedulesPanel.loadFailed`)}):e.length===0&&t.length===0&&n.length===0?(0,W.jsx)(Xe,{icon:g,title:b(`schedulesPanel.emptyTitle`),description:b(`schedulesPanel.emptyDescription`),actions:(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(r,{variant:`primary`,size:`regular`,onClick:d,children:b(`schedulesPanel.newConversation`)}),(0,W.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:b(`schedulesPanel.emptyActionsSeparator`)}),(0,W.jsx)(r,{variant:`outlined`,size:`regular`,onClick:f,children:b(`schedulesPanel.createSchedule`)})]})}):(0,W.jsxs)(`div`,{children:[h&&_?(0,W.jsx)(`div`,{className:`mb-1 flex min-w-0 justify-end`,children:(0,W.jsx)(r,{variant:`outlined`,size:`compact`,onClick:h,className:`max-w-full truncate`,children:b(`schedulesPanel.useProfileForAll`,{profile:_})})}):null,e.map(x),t.length>0?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`p`,{className:`mt-3 px-2 text-label-small-default text-[var(--content-tertiary)]`,children:b(`schedulesPanel.oneTimeHeading`)}),t.map(S)]}):null,C]}),v?(0,W.jsx)(`div`,{className:`mt-[var(--app-spacing-lg)]`,children:v}):null]})}function wn({runs:e,isLoading:t,emptyMessage:n=`No runs yet.`,hasMore:a=!1,isLoadingMore:o=!1,onLoadMore:s}){let c=i(),[l,u]=(0,H.useState)(null),d=a&&s?(0,W.jsx)(`div`,{className:`flex justify-center pt-3`,children:(0,W.jsx)(r,{variant:`outlined`,size:`compact`,onClick:s,disabled:o,leftIcon:o?(0,W.jsx)(C,{className:`h-3.5 w-3.5 animate-spin`}):void 0,children:o?`Loading…`:`Load more`})}):null;return(0,W.jsx)(Z,{title:`Recent runs`,children:t?(0,W.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,W.jsx)(C,{className:`h-5 w-5 animate-spin text-stone-400`})}):!e||e.length===0?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`p`,{className:`py-4 text-center text-body-medium-lighter text-[var(--content-tertiary)] italic`,children:n}),d]}):(0,W.jsxs)(`div`,{className:`divide-y divide-[var(--border-base)]`,children:[e.map((e,t)=>{let n=Ot(e),r=J(e.output),i=J(e.error),a=e.status===`skipped`||e.status===`missed`,o=!n&&!a&&(r||i),s=l===e.id,d=`schedule-run-details-${t}`;return(0,W.jsxs)(`div`,{children:[(0,W.jsx)(m,{label:(0,W.jsxs)(`span`,{className:`flex min-w-0 flex-1 items-center gap-3`,children:[(0,W.jsx)(Wt,{status:e.status}),(0,W.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,W.jsx)(`span`,{className:`block truncate text-body-medium-lighter text-[var(--content-default)]`,children:J(e.title)?e.title:K(e.startedAt)}),(0,W.jsxs)(`span`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:[J(e.title)?`${K(e.startedAt)} · `:``,a?(0,W.jsx)(W.Fragment,{children:r?e.output:e.status===`missed`?`Missed`:`Skipped`}):(0,W.jsxs)(W.Fragment,{children:[St(e.durationMs),` ·`,` `,q(e.estimatedCostUsd)]}),e.status===`error`&&e.error&&(0,W.jsxs)(`span`,{className:`ml-2 text-[var(--system-negative-strong)]`,children:[e.error.slice(0,80),e.error.length>80?`…`:``]})]})]}),n||o?(0,W.jsx)(y,{className:`h-4 w-4 shrink-0 text-[var(--content-tertiary)] transition-transform ${s?`rotate-90`:``}`}):null]}),onSelect:n?()=>Ee(c,n):o?()=>u(s?null:e.id):void 0,"aria-label":`Run at ${K(e.startedAt)}`,"aria-expanded":o?s:void 0,"aria-controls":o?d:void 0,className:`h-auto py-2.5 gap-3 -mx-2 px-2`}),o&&s?(0,W.jsx)(`div`,{id:d,className:`px-2 pb-3`,children:(0,W.jsxs)(`div`,{className:`space-y-3 rounded-md border border-[var(--border-subtle)] bg-[var(--surface-sunken)] p-3`,children:[r?(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`div`,{className:`mb-1 text-body-small-default text-[var(--content-secondary)]`,children:`Output`}),(0,W.jsx)(`pre`,{className:`max-h-64 overflow-auto whitespace-pre-wrap break-words text-body-small-default font-mono text-[var(--content-default)]`,children:e.output})]}):null,i?(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`div`,{className:`mb-1 text-body-small-default text-[var(--content-secondary)]`,children:`Error`}),(0,W.jsx)(`pre`,{className:`max-h-64 overflow-auto whitespace-pre-wrap break-words text-body-small-default font-mono text-[var(--system-negative-strong)]`,children:e.error})]}):null]})}):null]},e.id)}),d]})})}var Tn={heartbeat:`heartbeatAgent`,consolidation:`memoryV2Consolidation`,retrospective:`memoryRetrospective`};function $({label:e,value:t}){return(0,W.jsxs)(`div`,{className:`flex min-h-6 items-center justify-between gap-4`,children:[(0,W.jsx)(`span`,{className:`shrink-0 text-[var(--content-secondary)]`,children:e}),(0,W.jsx)(`span`,{className:`flex min-w-0 items-center justify-end gap-2 text-right text-[var(--content-default)]`,children:t})]})}function En({kind:e,assistantId:t,systemTasks:n,canOpenMemorySettings:a,onClose:o}){let{t:s}=B(`schedules`),l=i(),{heartbeatConfig:u,consolidationConfig:d,retrospectiveConfig:f}=n,p,m,h,g,_,v,y;e===`heartbeat`?(p=s(`systemTaskDetail.nameHeartbeat`),m=u?Mt(u):``,h=u?.enabled??!1,g=u?.nextRunAt??null,_=u?.lastRunAt??null,v=n.isHeartbeatRunning,y=n.runHeartbeatNow):e===`consolidation`?(p=s(`systemTaskDetail.nameConsolidation`),m=d?Nt(d):``,h=d?.enabled??!1,g=d?.nextRunAt??null,_=d?.lastRunAt??null,v=n.isConsolidationRunning,y=n.runConsolidationNow):(p=s(`systemTaskDetail.nameRetrospective`),m=Pt,h=f?.enabled??!1,g=f?.nextRunAt??null,_=f?.lastRunAt??null,v=!1,y=void 0);let b=e!==`heartbeat`,x=e===`retrospective`,S=b&&!h,T=v||S,D=s(b?h?`systemTaskDetail.statusManagedOn`:`systemTaskDetail.statusPaused`:h?`scheduleDetail.enabled`:`scheduleDetail.disabled`),k=x&&f?.available===!0,A=s(k?`systemTaskDetail.pausedRetrospectiveSwitchedOff`:x?`systemTaskDetail.pausedRetrospective`:`systemTaskDetail.pausedConsolidation`),j=b&&h&&a,M={path:{assistant_id:t},query:{limit:25}},P=e===`heartbeat`?se(M):e===`consolidation`?he(M):ge(M),{data:F,isLoading:I,fetchNextPage:L,hasNextPage:R,isFetchingNextPage:z}=c({queryKey:P.queryKey,queryFn:P.queryFn,initialPageParam:{path:M.path,query:{}},getNextPageParam:e=>e.nextCursor??void 0,staleTime:1e4}),ee=Et(F?.pages.map(t=>({runs:t.runs.filter(e=>!kt(e)).map(t=>Y(t,e))}))),te=ee?.find(e=>At(e)&&e.status!==`running`),ne=_??te?.finishedAt??te?.startedAt??null;return(0,W.jsxs)(`div`,{className:`flex h-full flex-col bg-[var(--surface-overlay)] md:rounded-[var(--radius-xl)] md:border md:border-[var(--border-base)]`,children:[(0,W.jsx)(Pe,{title:p,closeLabel:s(`scheduleDetail.closeAria`),closeTooltip:s(`scheduleDetail.close`),onClose:o}),(0,W.jsxs)(`div`,{className:`flex-1 space-y-6 overflow-y-auto px-[var(--app-spacing-lg)] py-[var(--app-spacing-lg)]`,children:[(0,W.jsxs)(`div`,{children:[(0,W.jsx)(Z,{title:s(`scheduleDetail.details`),children:(0,W.jsxs)(`div`,{className:`space-y-2 text-body-medium-lighter`,children:[(0,W.jsx)($,{label:s(`scheduleDetail.status`),value:(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`span`,{className:`truncate`,children:D}),b?null:(0,W.jsx)(N,{size:`sm`,checked:h,onChange:n.toggleHeartbeat,"aria-label":s(`scheduleDetail.toggleAria`,{name:p})})]})}),(0,W.jsx)(ln,{assistantId:t,defaultCallSite:Tn[e],fallbackLabel:s(`systemTaskDetail.fallbackModelProfile`),respectCallSiteOverride:!0}),m?(0,W.jsx)($,{label:s(`systemTaskDetail.repeats`),value:(0,W.jsx)(`span`,{className:`truncate`,children:m})}):null,x?null:(0,W.jsx)($,{label:s(`scheduleDetail.nextRun`),value:(0,W.jsx)(`span`,{className:`truncate`,children:K(g)})}),(0,W.jsx)($,{label:s(`scheduleDetail.lastRun`),value:(0,W.jsx)(`span`,{className:`truncate`,children:K(ne)})})]})}),S?(0,W.jsx)(O,{tone:`warning`,className:`mt-4`,actions:a?(0,W.jsx)(r,{variant:`outlined`,size:`compact`,onClick:()=>l(`${V.settings.developer}?tab=memory`),children:s(k?`systemTaskDetail.openMemorySettings`:`systemTaskDetail.turnOnMemory`)}):void 0,children:A}):null]}),(0,W.jsx)(wn,{runs:ee,isLoading:I,hasMore:R,isLoadingMore:z,onLoadMore:()=>void L()})]}),j||y?(0,W.jsxs)(`div`,{className:`flex shrink-0 items-center justify-end gap-2 border-t border-[var(--border-hover)] p-[var(--app-spacing-lg)]`,children:[j?(0,W.jsx)(r,{variant:`outlined`,leftIcon:(0,W.jsx)(E,{className:`h-3.5 w-3.5`}),onClick:()=>l(`${V.settings.developer}?tab=memory`),children:s(`systemTaskDetail.memorySettings`)}):null,y?(0,W.jsx)(r,{variant:`primary`,leftIcon:v?(0,W.jsx)(C,{className:`h-3.5 w-3.5 animate-spin`}):(0,W.jsx)(w,{className:`h-3.5 w-3.5`}),onClick:y,disabled:T,children:s(v?`scheduleDetail.running`:`scheduleDetail.runNow`)}):null]}):null]})}function Dn(e){let n=je(),[r]=(0,H.useState)(()=>Date.now()),{data:i,isLoading:a,isError:o,refetch:c}=s(Fe(e)),{data:l,isLoading:u,isError:d}=s(Rt(e,n,!0)),{recurring:f,oneTime:p,pastOneTime:m}=(0,H.useMemo)(()=>{let e=Lt(i??[],r);return{recurring:e.recurring,oneTime:e.upcomingOneTime,pastOneTime:e.pastOneTime}},[r,i]),h=(0,H.useMemo)(()=>new Map((l??[]).map(e=>[e.scheduleId,e])),[l]);return{recurring:f,oneTime:p,pastOneTime:m,usageForSchedule:(0,H.useCallback)(e=>u?{status:`loading`}:d?{status:`error`}:{status:`ready`,summary:h.get(e)??zt(e)},[d,u,h]),handleToggle:(0,H.useCallback)(async(n,r)=>{if(e)try{await Ge(e,n,r),c()}catch(e){t(e,{context:`schedule_toggle`}),F.error(z(`schedules:scheduleDetail.toggleFailed`))}},[e,c]),isLoading:a,isError:o,refetch:(0,H.useCallback)(()=>{c()},[c])}}function On(){let e=i(),{scheduleId:t}=a(),n=Ne(),r=Oe(),o=je(),s=Dn(n),c=en(n,o),l=Me(`memoryOptOut`),u=Ae.use.settingsDeveloperNav(),d=l&&u===!0,[f,p]=(0,H.useState)(!1),m=t??null,[h,g]=(0,H.useState)(null),[_,v]=(0,H.useState)(!1),y=(0,H.useCallback)(t=>{e(t?V.schedules.detail(t):V.schedules.root)},[e]),b=m?s.recurring.find(e=>e.id===m)??s.oneTime.find(e=>e.id===m)??s.pastOneTime.find(e=>e.id===m)??null:null;(0,H.useEffect)(()=>{m&&!s.isLoading&&!s.isError&&!b&&y(null)},[m,b,s.isLoading,s.isError,y]);let x=h===`heartbeat`?c.heartbeatConfig!=null:h===`consolidation`?c.consolidationConfig?.available===!0:h===`retrospective`?c.retrospectiveConfig?.available===!0:!1;(0,H.useEffect)(()=>{h&&!c.isLoading&&!x&&g(null)},[h,x,c.isLoading]);let S=(0,H.useCallback)(e=>{g(null),y(e)},[y]),C=(0,H.useCallback)(e=>{m&&y(null),g(e)},[y,m]),w=(0,H.useCallback)(()=>{De(e)},[e]),T=Ht(n,(0,H.useMemo)(()=>[...s.recurring,...s.oneTime,...s.pastOneTime],[s.recurring,s.oneTime,s.pastOneTime]),s.refetch),E=(b?(0,W.jsx)(yn,{schedule:b,assistantId:n,usage:s.usageForSchedule(b.id),isPast:s.pastOneTime.some(e=>e.id===b.id),onClose:()=>y(null),onDeleted:()=>{y(null),s.refetch()}}):null)??(h&&x?(0,W.jsx)(En,{kind:h,assistantId:n,systemTasks:c,canOpenMemorySettings:d,onClose:()=>g(null)}):null),D=(0,W.jsx)(Cn,{recurring:s.recurring,oneTime:s.oneTime,pastOneTime:s.pastOneTime,usageForSchedule:s.usageForSchedule,isLoading:s.isLoading,isError:s.isError,refetch:s.refetch,onToggle:s.handleToggle,onSelectSchedule:S,selectedScheduleId:m,onStartNewChat:w,onCreateSchedule:()=>p(!0),pastOpen:_,onPastOpenChange:v,onRebaseProfiles:T.canRebase?T.requestRebase:void 0,defaultProfileLabel:T.defaultProfileLabel??void 0,systemTasksSlot:(0,W.jsx)(qt,{heartbeatConfig:c.heartbeatConfig,consolidationConfig:c.consolidationConfig,retrospectiveConfig:c.retrospectiveConfig,heartbeatUsage:c.heartbeatUsage,consolidationUsage:c.consolidationUsage,retrospectiveUsage:c.retrospectiveUsage,isLoading:c.isLoading,hasError:c.hasError,onRetry:c.refetchAll,onSelectHeartbeat:()=>C(`heartbeat`),onSelectConsolidation:()=>C(`consolidation`),onSelectRetrospective:()=>C(`retrospective`)})}),O=(0,W.jsx)(Ut,{...T.dialogProps});return E&&r?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(Le,{children:E}),O]}):(0,W.jsxs)(W.Fragment,{children:[E&&!r?(0,W.jsx)(Re,{storageKey:`schedulesDetailDrawerWidth`,detailKey:m??h??void 0,section:D,detail:E}):D,(0,W.jsx)(pt,{isOpen:f,assistantId:n,onClose:()=>p(!1),onCreated:()=>{p(!1),s.refetch()}}),O]})}export{On as SchedulesPage};
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./capture-error-VBsIaC5d.js";import{t as n}from"./react-BFJW0bSv.js";import{t as r}from"./button-C8CGr0T0.js";import{d as i,p as a}from"./chunk-5KNZJZUH-BUqIilZr.js";import{n as o}from"./QueryClientProvider-EuRl-wrW.js";import{t as s}from"./useQuery-CTSuec5b.js";import{t as c}from"./useInfiniteQuery-C5Kg1-qX.js";import{t as l}from"./useMutation-D2YPyfEH.js";import{t as u}from"./jsx-runtime-BJ8jcmzB.js";import{t as d}from"./cn-Cf8SmgbR.js";import{t as f}from"./typography-DekrYXvs.js";import{t as p}from"./card-DUsAeHUS.js";import{n as m,o as h}from"./list-row-6uedKE84.js";import{t as g}from"./calendar-DUfSq9XY.js";import{t as _}from"./chart-column-nt6xAz18.js";import{t as v}from"./chevron-down-D1ho6wFA.js";import{t as y}from"./chevron-right-DTpkwA4e.js";import{t as b}from"./circle-alert-B-Zu9T9V.js";import{t as x}from"./clock-CNSYP9nm.js";import{t as S}from"./coins-WH-N-3B8.js";import{t as C}from"./loader-circle-C9QjVTuc.js";import{t as w}from"./play-DTmq7Qfg.js";import{t as T}from"./repeat-ORyt0N0E.js";import{t as E}from"./settings-CyYRtP_K.js";import{t as D}from"./trash-2-DnajdgJS.js";import{t as O}from"./notice-C_AsX_o9.js";import{s as k}from"./src-DMnnfLrU.js";import{t as A}from"./tag-D2QYCm1p.js";import{n as j,t as M}from"./input-DlkBtbxm.js";import{t as N}from"./toggle-0qt1e_3r.js";import{t as P}from"./modal-DN_Uwwkg.js";import{n as F}from"./toast-CHtrY-GO.js";import{t as I}from"./confirm-dialog-DYmL6FRe.js";import{t as L}from"./select-DJDG9pwU.js";import{t as R}from"./skeleton-D8_lkywC.js";import{s as z}from"./i18n-C3bX3mTs.js";import{t as B}from"./useTranslation-CCDbxnME.js";import{a as ee,l as te,n as ne,o as re,r as ie,s as ae}from"./profile-pickers-BE4eyfmO.js";import{d as V}from"./routes-yNhBxUSb.js";import{$t as oe,B as se,Ct as ce,H as le,R as ue,S as de,St as fe,Tt as pe,V as me,b as he,bt as ge,cn as _e,p as ve,sn as ye,u as be,x as xe,xt as Se,y as Ce,yt as we,z as Te}from"./react-query.gen-CYP-Tn4K.js";import{n as Ee,r as De}from"./conversation-navigation-CfOyMc6W.js";import{n as Oe}from"./use-is-mobile-BwSS15lq.js";import{t as ke}from"./effective-timezone-CrnImpLf.js";import{t as Ae}from"./assistant-feature-flag-store-CdXRp9pV.js";import{t as je}from"./use-effective-timezone-DaNOF607.js";import{t as Me}from"./use-assistant-capability-Cjd57j4I.js";import{t as Ne}from"./use-active-assistant-id-BFE4r9Rp.js";import{n as Pe}from"./detail-shell-CcrQic9y.js";import{n as Fe}from"./schedules-CgwiGq3x.js";import{t as Ie}from"./detail-card-DwBporBs.js";import{n as Le,t as Re}from"./detail-drawer-Di5V_iLf.js";import{a as ze,c as Be,i as Ve,n as He,o as Ue,r as We,s as Ge,t as Ke}from"./schedules-DaGS9wMX.js";import{i as qe,n as Je,t as Ye}from"./profile-metadata-B1fA1_W5.js";import{t as Xe}from"./page-empty-state-CpkB0rZ_.js";var H=e(n(),1),Ze={frequency:`daily`,minute:0,hour24:9,weekdays:[1],dayOfMonth:1},Qe=[{value:0,letter:`S`,short:`Sun`,full:`Sunday`},{value:1,letter:`M`,short:`Mon`,full:`Monday`},{value:2,letter:`T`,short:`Tue`,full:`Tuesday`},{value:3,letter:`W`,short:`Wed`,full:`Wednesday`},{value:4,letter:`T`,short:`Thu`,full:`Thursday`},{value:5,letter:`F`,short:`Fri`,full:`Friday`},{value:6,letter:`S`,short:`Sat`,full:`Saturday`}],$e=[1,2,3,4,5];function U(e,t,n){return Number.isFinite(e)?Math.min(n,Math.max(t,Math.round(e))):t}function et(e){let t=Array.from(new Set(e.map(e=>U(e,0,6)).filter(e=>Number.isInteger(e)))).sort((e,t)=>e-t);return t.length>0?t:[1]}function tt(e){let t=U(e.minute,0,59),n=U(e.hour24,0,23);switch(e.frequency){case`hourly`:return`${t} * * * *`;case`daily`:return`${t} ${n} * * *`;case`weekly`:return`${t} ${n} * * ${et(e.weekdays).join(`,`)}`;case`monthly`:return e.dayOfMonth===`last`?`${t} ${n} L * *`:`${t} ${n} ${U(e.dayOfMonth,1,28)} * *`}}function nt(e,t){let n=U(e,0,23),r=U(t,0,59),i=n<12?`AM`:`PM`;return`${n%12==0?12:n%12}:${String(r).padStart(2,`0`)} ${i}`}function rt(e){let t=[`th`,`st`,`nd`,`rd`],n=e%100;return`${e}${t[(n-20)%10]??t[n]??t[0]}`}function it(e){let t=et(e),n=new Set(t);if(t.length===7)return`every day`;if(t.length===5&&$e.every(e=>n.has(e)))return`every weekday`;if(t.length===2&&n.has(0)&&n.has(6))return`every weekend`;if(t.length===1)return`every ${Qe[t[0]]?.full??`day`}`;let r=t.map(e=>Qe[e]?.short??``),i=r.pop();return`every ${r.join(`, `)} & ${i}`}function at(e){let t=nt(e.hour24,e.minute);switch(e.frequency){case`hourly`:{let t=U(e.minute,0,59);return`Runs every hour at :${String(t).padStart(2,`0`)}`}case`daily`:return`Runs every day at ${t}`;case`weekly`:return`Runs ${it(e.weekdays)} at ${t}`;case`monthly`:return e.dayOfMonth===`last`?`Runs on the last day of every month at ${t}`:`Runs on the ${rt(U(e.dayOfMonth,1,28))} of every month at ${t}`}}var W=u(),ot=[{value:`hourly`,label:`Hourly`},{value:`daily`,label:`Daily`},{value:`weekly`,label:`Weekly`},{value:`monthly`,label:`Monthly`}],st=Array.from({length:12},(e,t)=>{let n=t+1;return{value:String(n),label:String(n)}}),ct=Array.from({length:12},(e,t)=>{let n=t*5,r=String(n).padStart(2,`0`);return{value:r,label:r}}),lt=[...Array.from({length:28},(e,t)=>{let n=t+1;return{value:String(n),label:rt(n)}}),{value:`last`,label:`Last day`}],ut=[{value:`AM`,label:`AM`},{value:`PM`,label:`PM`}];function dt(e,t){let n=e%12;return t===`PM`?n+12:n}function ft(e){try{let t=new Intl.DateTimeFormat(`en-US`,{timeZone:e,timeZoneName:`short`}).formatToParts(new Date).find(e=>e.type===`timeZoneName`)?.value;return t&&t!==e?`${e} · ${t}`:e}catch{return e}}function pt({isOpen:e,assistantId:t,onClose:n,onCreated:r}){return(0,W.jsx)(P.Root,{open:e,onOpenChange:e=>{e||n()},children:e?(0,W.jsx)(mt,{assistantId:t,onClose:n,onCreated:r}):null})}function mt({assistantId:e,onClose:t,onCreated:n}){let i=je(),[a,o]=(0,H.useState)(``),[s,c]=(0,H.useState)(``),[l,u]=(0,H.useState)(``),[d,f]=(0,H.useState)(`simple`),[p,m]=(0,H.useState)(Ze),[h,g]=(0,H.useState)(``),[_,v]=(0,H.useState)(!1),[y,b]=(0,H.useState)(null),x=a.trim(),S=s.trim(),C=l.trim(),w=h.trim(),T=(0,H.useMemo)(()=>d===`simple`?tt(p):w,[d,p,w]),E=(0,H.useMemo)(()=>d===`simple`?at(p):w||`Enter a cron expression to continue.`,[d,p,w]),D=(0,H.useMemo)(()=>ft(i),[i]),O=x.length>0&&S.length>0&&C.length>0&&T.length>0&&!_;return(0,W.jsxs)(P.Content,{size:`md`,children:[(0,W.jsxs)(P.Header,{children:[(0,W.jsx)(P.Title,{children:`Create schedule`}),(0,W.jsx)(P.Description,{children:`Schedule a recurring instruction for your assistant. Runs in execute mode — the message is delivered to the assistant on each fire.`})]}),(0,W.jsxs)(`form`,{onSubmit:async t=>{if(t.preventDefault(),O){v(!0),b(null);try{await Ke(e,{name:x,description:S,expression:T,message:C,timezone:i}),v(!1),n()}catch(e){b(e instanceof Error?e.message:`Failed to create schedule.`),v(!1)}}},children:[(0,W.jsx)(P.Body,{children:(0,W.jsxs)(`div`,{className:`flex flex-col gap-5`,children:[(0,W.jsx)(M,{label:`Name`,placeholder:`Morning briefing`,value:a,onChange:e=>o(e.target.value),required:!0,autoFocus:!0,fullWidth:!0}),(0,W.jsx)(j,{label:`Description`,placeholder:`What is this schedule for?`,value:s,onChange:e=>c(e.target.value),required:!0,fullWidth:!0,rows:2}),(0,W.jsx)(yt,{label:`Repeat`,children:d===`simple`?(0,W.jsx)(ht,{cadence:p,onChange:m}):(0,W.jsx)(vt,{value:h,onChange:g,onUseSimple:()=>f(`simple`)})}),(0,W.jsx)(bt,{summary:E,mono:d===`advanced`&&w.length>0,timezoneLabel:D}),d===`simple`?(0,W.jsx)(`button`,{type:`button`,onClick:()=>{g(e=>e||tt(p)),f(`advanced`)},className:`self-start text-body-small-default text-[var(--content-tertiary)] underline-offset-2 transition-colors hover:text-[var(--content-default)] hover:underline`,children:`Advanced — write a cron expression`}):null,(0,W.jsx)(j,{label:`Message`,placeholder:`What should the assistant do on each fire?`,value:l,onChange:e=>u(e.target.value),required:!0,fullWidth:!0,rows:4}),y?(0,W.jsx)(`p`,{className:`text-body-small-default text-[var(--system-negative-strong)]`,children:y}):null]})}),(0,W.jsxs)(P.Footer,{children:[(0,W.jsx)(r,{variant:`outlined`,onClick:t,type:`button`,children:`Cancel`}),(0,W.jsx)(r,{variant:`primary`,type:`submit`,disabled:!O,children:_?`Creating…`:`Create schedule`})]})]})]})}function ht({cadence:e,onChange:t}){return(0,W.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,W.jsx)(h,{items:ot,value:e.frequency,onChange:n=>t({...e,frequency:n}),ariaLabel:`How often the schedule runs`}),e.frequency===`hourly`?(0,W.jsx)(G,{label:`At minute`,children:(0,W.jsx)(L,{options:ct,value:String(e.minute).padStart(2,`0`),onChange:n=>t({...e,minute:Number(n)}),"aria-label":`Minute`,className:`w-24`})}):null,e.frequency===`weekly`?(0,W.jsx)(G,{label:`On these days`,children:(0,W.jsx)(_t,{value:e.weekdays,onChange:n=>t({...e,weekdays:n})})}):null,e.frequency===`monthly`?(0,W.jsx)(G,{label:`On day`,children:(0,W.jsx)(L,{options:lt,value:e.dayOfMonth===`last`?`last`:String(e.dayOfMonth),onChange:n=>t({...e,dayOfMonth:n===`last`?`last`:Number(n)}),"aria-label":`Day of month`,className:`w-32`})}):null,e.frequency===`hourly`?null:(0,W.jsx)(G,{label:`At time`,children:(0,W.jsx)(gt,{hour24:e.hour24,minute:e.minute,onChange:(n,r)=>t({...e,hour24:n,minute:r})})})]})}function gt({hour24:e,minute:t,onChange:n}){let r=e<12?`AM`:`PM`,i=e%12==0?12:e%12;return(0,W.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,W.jsx)(L,{options:st,value:String(i),onChange:e=>n(dt(Number(e),r),t),"aria-label":`Hour`,className:`w-[72px]`}),(0,W.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:`:`}),(0,W.jsx)(L,{options:ct,value:String(t).padStart(2,`0`),onChange:t=>n(e,Number(t)),"aria-label":`Minute`,className:`w-[72px]`}),(0,W.jsx)(`div`,{className:`w-[112px]`,children:(0,W.jsx)(h,{items:ut,value:r,onChange:e=>n(dt(i,e),t),ariaLabel:`AM or PM`})})]})}function _t({value:e,onChange:t}){let n=new Set(e),r=e=>{let r=new Set(n);r.has(e)?r.size>1&&r.delete(e):r.add(e),t([...r].sort((e,t)=>e-t))};return(0,W.jsx)(`div`,{className:`flex gap-1.5`,children:Qe.map(e=>{let t=n.has(e.value);return(0,W.jsx)(`button`,{type:`button`,onClick:()=>r(e.value),"aria-pressed":t,"aria-label":e.full,title:e.full,className:d(`flex h-9 w-9 items-center justify-center rounded-md border text-body-medium-default transition-colors`,t?`border-[var(--border-active)] bg-[var(--surface-active)] text-[var(--content-emphasised)]`:`border-[var(--field-border)] text-[var(--content-tertiary)] hover:border-[var(--border-active)] hover:text-[var(--content-default)]`),children:e.letter},e.value)})})}function vt({value:e,onChange:t,onUseSimple:n}){return(0,W.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,W.jsx)(M,{placeholder:`0 9 * * *`,value:e,onChange:e=>t(e.target.value),fullWidth:!0,className:`font-mono`,"aria-label":`Cron expression`,helperText:`Standard 5-field cron (minute hour day month weekday). RRULE expressions are also accepted.`}),(0,W.jsx)(`button`,{type:`button`,onClick:n,className:`self-start text-body-small-default text-[var(--content-tertiary)] underline-offset-2 transition-colors hover:text-[var(--content-default)] hover:underline`,children:`← Back to the simple builder`})]})}function yt({label:e,children:t}){return(0,W.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,W.jsx)(`span`,{className:`text-body-small-default text-[var(--content-secondary)]`,children:e}),t]})}function G({label:e,children:t}){return(0,W.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-3 gap-y-1.5`,children:[(0,W.jsx)(`span`,{className:`min-w-[88px] text-body-small-default text-[var(--content-tertiary)]`,children:e}),t]})}function bt({summary:e,mono:t,timezoneLabel:n}){return(0,W.jsxs)(`div`,{className:`flex items-start gap-3 rounded-lg border border-[var(--border-subtle)] bg-[var(--surface-lift)] px-3.5 py-3`,children:[(0,W.jsx)(x,{className:`mt-0.5 h-4 w-4 shrink-0 text-[var(--content-tertiary)]`,"aria-hidden":!0}),(0,W.jsxs)(`div`,{className:`min-w-0`,children:[(0,W.jsx)(`p`,{className:d(`text-body-medium-default text-[var(--content-default)]`,t&&`break-all font-mono`),children:e}),(0,W.jsxs)(`p`,{className:`mt-0.5 text-body-small-default text-[var(--content-tertiary)]`,children:[`Times use your timezone — `,n,`.`]})]})]})}function xt(e=ke(),t=Date.now()){return qe(Je,e,t)}function K(e){return e?new Date(e).toLocaleString(void 0,{month:`short`,day:`numeric`,hour:`numeric`,minute:`2-digit`,hour12:!0}):`—`}function St(e){return e==null?`—`:e<1e3?`${e}ms`:`${(e/1e3).toFixed(1)}s`}var Ct=new Intl.NumberFormat(void 0,{style:`currency`,currency:`USD`,minimumFractionDigits:2,maximumFractionDigits:2});function q(e){return e==null||!Number.isFinite(e)?`—`:Ct.format(e)}function wt(e){return`${e.toLocaleString()} ${e===1?`run`:`runs`}`}function Tt(e){let t=Math.round(e/6e4);return t>=60&&t%60==0?`Every ${t/60} hr`:`Every ${t} min`}function Et(e){if(!e)return;let t=new Set,n=[];for(let r of e)for(let e of r.runs)t.has(e.id)||(t.add(e.id),n.push(e));return n}function Dt(e){return!!e.conversationId&&e.conversationExists===!0&&e.conversationArchivedAt==null}function Ot(e){return Dt(e)?e.conversationId??null:null}function J(e){return typeof e==`string`&&e.length>0}function kt(e){return e.status===`pending`||e.status===`superseded`}function At(e){return e.status!==`skipped`&&e.status!==`missed`&&!kt(e)}var jt={heartbeat:`system-heartbeat`,consolidation:`system-consolidation`,retrospective:`system-memory-retrospective`};function Mt(e){if(e.cronExpression)return e.timezone?`Cron: ${e.cronExpression} (${e.timezone})`:`Cron: ${e.cronExpression}`;let t=Tt(e.intervalMs);return e.activeHoursStart!=null&&e.activeHoursEnd!=null&&(t+=` (${e.activeHoursStart}:00–${e.activeHoursEnd}:00)`),t}function Nt(e){return Tt(e.intervalMs)}var Pt=`After conversation activity`;function Ft(e){return e.status!==`fired`&&e.status!==`cancelled`}function It(e,t){return Ft(e)?e.status===`firing`?!1:e.nextRunAt==null||!e.enabled&&e.nextRunAt<=t:!0}function Lt(e,t){let n=[],r=[],i=[];for(let a of e)a.isOneShot?It(a,t)?i.push(a):r.push(a):n.push(a);return n.sort((e,t)=>e.enabled===t.enabled?(e.nextRunAt??1/0)-(t.nextRunAt??1/0):e.enabled?-1:1),r.sort((e,t)=>(e.nextRunAt??1/0)-(t.nextRunAt??1/0)),i.sort((e,t)=>{let n=e.lastRunAt??e.nextRunAt??0;return(t.lastRunAt??t.nextRunAt??0)-n}),{recurring:n,upcomingOneTime:r,pastOneTime:i}}function Rt(e,t,n=!0){return{queryKey:[{_id:`schedulesUsagesummaryGet`,path:{assistant_id:e??``},_tz:t}],queryFn:()=>e?Ve(e,xt(t)):Promise.resolve([]),enabled:n,staleTime:1e4}}function zt(e){return{scheduleId:e,runCount:0,totalEstimatedCostUsd:0,eventCount:0}}function Bt(e,t,n){let r=(t??[]).filter(e=>{let t=e.startedAt??e.createdAt;return At(e)&&t>=n.from&&t<=n.to});return{scheduleId:e,runCount:r.length,totalEstimatedCostUsd:r.reduce((e,t)=>{let n=t.estimatedCostUsd;return typeof n==`number`&&Number.isFinite(n)?e+n:e},0),eventCount:0}}function Vt(e,t,n){let r=!!e&&n?.enabled!==!1,{data:i}=s({...ve({path:{assistant_id:e}}),enabled:r,staleTime:6e4}),{data:a}=s({...be({path:{assistant_id:e}}),enabled:r,staleTime:6e4}),o=i?.callSites.find(e=>e.id===t)?.defaultProfile??null;return o==null?{key:null,label:null}:{key:o,label:(a?Ye(a):{})[o]?.displayName??o}}function Ht(e,n,r){let i=Vt(e,`mainAgent`),[a,o]=(0,H.useState)(!1),s=(0,H.useMemo)(()=>i.key?n.filter(e=>Ft(e)&&e.inferenceProfile!==i.key).length:0,[i.key,n]),c=i.label,u=l({mutationFn:t=>ze(e,null,t),onSuccess:e=>{o(!1),r(),F.success(e===0?`Every schedule already runs on ${c}.`:`Moved ${e} ${e===1?`schedule`:`schedules`} to ${c}.`)},onError:e=>{t(e,{context:`schedules_rebase_inference_profile`}),F.error(`Failed to move the schedules.`)}});return{defaultProfileLabel:c,offDefaultCount:s,canRebase:s>0,requestRebase:()=>o(!0),dialogProps:{open:a&&i.key!=null,profileLabel:c,offDefaultCount:s,isPending:u.isPending,onConfirm:()=>{i.key&&u.mutate(i.key)},onCancel:()=>o(!1)}}}function Ut({open:e,profileLabel:t,offDefaultCount:n,isPending:r,onConfirm:i,onCancel:a}){return(0,W.jsx)(I,{open:e,title:`Use ${t} for every schedule?`,message:`${n} of the schedules below ${n===1?`runs`:`run`} on a different model. This moves every schedule, including reminders your assistant set aside for later, onto ${t}, your current default. Schedules you deliberately put on another model move too.`,confirmLabel:`Move schedules`,isPending:r,onConfirm:i,onCancel:a})}function Wt({status:e}){return(0,W.jsx)(`span`,{className:`inline-block h-2 w-2 rounded-full`,style:{backgroundColor:e===`ok`||e===`completed`?`var(--system-positive-strong)`:e===`error`||e===`failed`?`var(--system-negative-strong)`:`var(--content-tertiary)`},"aria-label":e??`unknown`})}function Gt({scheduleName:e,usage:t,onOpenUsage:n}){if(t.status===`loading`)return(0,W.jsxs)(`div`,{"aria-label":`Loading schedule usage`,className:`flex w-[156px] shrink-0 items-center justify-end gap-3`,children:[(0,W.jsx)(R,{as:`span`,className:`h-5 w-16`}),(0,W.jsx)(R,{as:`span`,className:`h-5 w-16`})]});let r=t.status===`error`,i=r?`--`:q(t.summary.totalEstimatedCostUsd),a=r?`--`:wt(t.summary.runCount),o=t.status===`ready`&&!(t.summary.totalEstimatedCostUsd>0),s=t.status===`ready`&&t.summary.runCount===0,c=o?`text-[var(--content-tertiary)]`:`text-[var(--content-default)]`,l=s?`text-[var(--content-tertiary)]`:`text-[var(--content-default)]`;return(0,W.jsxs)(`div`,{className:`flex w-[156px] shrink-0 items-center justify-end gap-3 text-right text-body-small-default`,children:[n?(0,W.jsx)(`button`,{type:`button`,onClick:n,"aria-label":`View usage for ${e}`,className:`min-w-[64px] cursor-pointer rounded px-1 py-0.5 text-right transition-colors hover:bg-[var(--surface-hover)] ${c}`,children:i}):(0,W.jsx)(`span`,{"aria-label":`Cost for ${e} in the last 7 days: ${i}`,className:`block min-w-[64px] px-1 py-0.5 ${c}`,children:i}),(0,W.jsx)(`span`,{"aria-label":`Runs for ${e} in the last 7 days: ${a}`,className:`block min-w-[64px] px-1 py-0.5 ${l}`,children:a})]})}function Kt({name:e,subtitle:t,enabled:n,nextRunAt:r,lastRunAt:i,usage:a,helperText:o,statusLabel:s,statusTone:c=`neutral`,onClick:l}){return(0,W.jsx)(`div`,{className:`flex flex-wrap items-center gap-3 rounded-md px-2 py-3 transition-colors hover:bg-[var(--surface-hover)] [&+&]:border-t [&+&]:border-[var(--border-base)]`,children:(0,W.jsxs)(`button`,{type:`button`,onClick:l,"aria-label":`Open ${e}`,className:`flex min-w-0 flex-1 cursor-pointer flex-wrap items-center gap-3 text-left focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)]`,children:[(0,W.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,W.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,W.jsx)(`span`,{className:`truncate text-body-medium-default text-[var(--content-default)]`,children:e})}),(0,W.jsx)(`div`,{className:`mt-0.5 text-body-small-default text-[var(--content-tertiary)]`,children:t}),o?(0,W.jsx)(`div`,{className:`mt-0.5 text-body-small-default text-[var(--content-secondary)]`,children:o}):null,(0,W.jsxs)(`div`,{className:`mt-0.5 flex flex-wrap items-center gap-x-3 gap-y-1 text-body-small-default text-[var(--content-tertiary)]`,children:[r?(0,W.jsxs)(`span`,{children:[`Next: `,K(r)]}):null,i?(0,W.jsxs)(`span`,{children:[`Last: `,K(i)]}):null]})]}),(0,W.jsxs)(`div`,{className:`flex shrink-0 flex-wrap items-center justify-end gap-3`,children:[(0,W.jsx)(Gt,{scheduleName:e,usage:a}),s?(0,W.jsx)(A,{tone:c,children:s}):(0,W.jsx)(`span`,{className:`h-2 w-2 rounded-full`,style:{backgroundColor:n?`var(--system-positive-strong)`:`var(--content-disabled)`},"aria-label":n?`enabled`:`disabled`}),(0,W.jsx)(y,{className:`h-4 w-4 text-[var(--content-tertiary)]`})]})]})})}function qt({heartbeatConfig:e,consolidationConfig:t,retrospectiveConfig:n,heartbeatUsage:r,consolidationUsage:i,retrospectiveUsage:a,isLoading:o,hasError:s,onRetry:c,onSelectHeartbeat:l,onSelectConsolidation:u,onSelectRetrospective:d}){let f=e!=null,p=t?.available===!0,m=n?.available===!0,h=f||p||m;if(!o&&!s&&!h)return null;let g=[...f?[r]:[],...p?[i]:[],...m?[a]:[]].filter(e=>e.status===`ready`),_=g.reduce((e,t)=>e+(t.summary.totalEstimatedCostUsd??0),0),y=o?(0,W.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,W.jsx)(C,{className:`h-5 w-5 animate-spin text-stone-400`})}):s&&!h?(0,W.jsxs)(O,{tone:`error`,children:[`Failed to load system jobs.`,` `,(0,W.jsx)(`button`,{type:`button`,onClick:c,className:`cursor-pointer underline hover:no-underline`,children:`Retry`})]}):(0,W.jsxs)(`div`,{children:[f?(0,W.jsx)(Kt,{name:`Heartbeat`,subtitle:Mt(e),enabled:e.enabled,nextRunAt:e.nextRunAt,lastRunAt:e.lastRunAt,usage:r,onClick:l}):null,p?(0,W.jsx)(Kt,{name:`Consolidation`,subtitle:Nt(t),enabled:t.enabled,helperText:t.enabled?void 0:`Memory is off, so consolidation is paused.`,nextRunAt:t.nextRunAt,lastRunAt:t.lastRunAt,usage:i,statusLabel:t.enabled?void 0:`Paused`,statusTone:`warning`,onClick:u}):null,m?(0,W.jsx)(Kt,{name:`Memory retrospective`,subtitle:Pt,enabled:n.enabled,helperText:n.enabled?void 0:`Retrospectives are turned off in Memory settings.`,nextRunAt:n.nextRunAt,lastRunAt:n.lastRunAt,usage:a,statusLabel:n.enabled?void 0:`Paused`,statusTone:`warning`,onClick:d}):null,s?(0,W.jsx)(`div`,{className:`pt-3 first:pt-0`,children:(0,W.jsxs)(O,{tone:`error`,children:[`Some system jobs failed to load.`,` `,(0,W.jsx)(`button`,{type:`button`,onClick:c,className:`cursor-pointer underline hover:no-underline`,children:`Retry`})]})}):null]});return(0,W.jsx)(Ie,{children:(0,W.jsx)(k.Root,{type:`multiple`,children:(0,W.jsxs)(k.Item,{value:`system-jobs`,children:[(0,W.jsxs)(k.Trigger,{className:`group justify-between gap-3`,children:[(0,W.jsxs)(`span`,{className:`flex min-w-0 flex-wrap items-baseline gap-x-2 gap-y-1 text-left`,children:[(0,W.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-secondary)]`,children:`System`}),(0,W.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Built-in jobs managed by the assistant runtime`})]}),(0,W.jsxs)(`span`,{className:`flex shrink-0 items-center gap-3`,children:[g.length>0?(0,W.jsxs)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:[q(_),` (7d)`]}):null,(0,W.jsx)(v,{className:`h-4 w-4 shrink-0 text-[var(--content-tertiary)] transition-transform group-data-[state=open]:rotate-180`})]})]}),(0,W.jsx)(k.Content,{children:(0,W.jsx)(`div`,{className:`mt-3`,children:y})})]})})})}var Jt={disabled:`heartbeat is disabled`,outside_active_hours:`outside active hours`,overlap:`previous run was still active`,pre_first_user_message:`waiting for the first conversation`,max_consecutive_runs:`consecutive-run cap reached`,max_daily_runs:`daily run cap reached`,quiesced:`assistant was shutting down`};function Yt(e){return e.status===`missed`?`Missed while the assistant was offline`:`skipReason`in e&&e.skipReason?`Skipped — ${Jt[e.skipReason]??e.skipReason}`:null}function Y(e,t){return{id:e.id,jobId:t,status:e.status,startedAt:e.startedAt??e.scheduledFor,finishedAt:e.finishedAt,durationMs:e.durationMs,output:Yt(e),error:e.error,conversationId:e.conversationId,conversationExists:e.conversationExists,conversationArchivedAt:e.conversationArchivedAt,estimatedCostUsd:e.estimatedCostUsd,createdAt:e.createdAt,...`title`in e?{title:e.title}:{}}}function Xt(e){return e.runs.filter(e=>!kt(e)).map(e=>Y(e,`heartbeat`))}function Zt(e){return e.runs.map(e=>Y(e,`consolidation`))}function Qt(e){return e.runs.map(e=>Y(e,`retrospective`))}var X=1e4;function $t(e,t,n,r,i){return e?{status:`loading`}:t?{status:`error`}:{status:`ready`,summary:Bt(n,r,i)}}function en(e,n){let r=o(),i={path:{assistant_id:e??``}},{data:a,isLoading:c,isError:l,refetch:u}=s({...ue(i),enabled:!!e,staleTime:X}),{data:d,isLoading:f,isError:p,refetch:m}=s({...Ce(i),enabled:!!e,staleTime:X}),{data:h,isLoading:g,isError:_,refetch:v}=s({...we(i),enabled:!!e,staleTime:X}),y={path:{assistant_id:e??``},query:{limit:100}},{data:b,isLoading:x,isError:S,refetch:C}=s({...le(y),select:Xt,enabled:!!e&&a!=null,staleTime:X}),{data:w,isLoading:T,isError:E,refetch:D}=s({...de(y),select:Zt,enabled:!!e&&d?.available===!0,staleTime:X}),{data:O,isLoading:k,isError:A,refetch:j}=s({...fe(y),select:Qt,enabled:!!e&&h?.available===!0,staleTime:X}),M=(0,H.useMemo)(()=>xt(n),[n]),N=(0,H.useMemo)(()=>$t(x,S,jt.heartbeat,b,M),[b,S,x,M]),P=(0,H.useMemo)(()=>$t(T,E,jt.consolidation,w,M),[w,E,T,M]),I=(0,H.useMemo)(()=>$t(k,A,jt.retrospective,O,M),[O,A,k,M]),L=t=>{if(!e)return;let n={heartbeat:{config:ue(i).queryKey,runs:le(y).queryKey,infinite:me(i)},consolidation:{config:Ce(i).queryKey,runs:de(y).queryKey,infinite:xe(i)},retrospective:{config:we(i).queryKey,runs:fe(y).queryKey,infinite:Se(i)}}[t];r.invalidateQueries({queryKey:n.config}),r.invalidateQueries({queryKey:n.runs}),r.invalidateQueries({queryKey:n.infinite})},R=_e({onSuccess:e=>{e.ran?F.success(`Heartbeat started.`):F.info(`Heartbeat skipped.`)},onError:e=>{t(e,{context:`heartbeat_run_now`}),F.error(`Failed to run heartbeat.`)},onSettled:()=>L(`heartbeat`)}),z=oe({onSuccess:e=>{e.ran?F.success(`Consolidation queued.`):F.info(`Consolidation already queued or running.`)},onError:e=>{t(e,{context:`consolidation_run_now`}),F.error(`Failed to run consolidation.`)},onSettled:()=>L(`consolidation`)}),B=ye({onSuccess:e=>{Te(r,i,e),F.success(e.enabled?`Heartbeat enabled.`:`Heartbeat disabled.`)},onError:e=>{t(e,{context:`heartbeat_toggle`}),F.error(`Failed to toggle heartbeat.`)}});return{heartbeatConfig:a,consolidationConfig:d,retrospectiveConfig:h,heartbeatUsage:N,consolidationUsage:P,retrospectiveUsage:I,isLoading:c||f||g,hasError:l||p||_,isHeartbeatRunning:R.isPending,isConsolidationRunning:z.isPending,isHeartbeatLoading:c,isHeartbeatError:l,isConsolidationLoading:f,isConsolidationError:p,isRetrospectiveLoading:g,isRetrospectiveError:_,refetchHeartbeat:u,refetchConsolidation:m,refetchRetrospective:v,runHeartbeatNow:()=>{e&&R.mutate({path:{assistant_id:e}})},runConsolidationNow:()=>{e&&z.mutate({path:{assistant_id:e}})},toggleHeartbeat:t=>{e&&B.mutate({body:{enabled:t},path:{assistant_id:e}})},refetchAll:()=>{u(),m(),v(),C(),D(),j()}}}function Z({id:e,title:t,subtitle:n,accessory:r,children:i,className:a}){let o=!!(t||n||r);return(0,W.jsx)(p,{asChild:!0,className:d(`rounded-lg`,a),children:(0,W.jsxs)(`section`,{id:e,children:[o&&(0,W.jsxs)(`div`,{className:`flex flex-row items-start justify-between gap-4`,children:[(0,W.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1`,children:[t&&(0,W.jsx)(f,{variant:`title-small`,as:`h2`,className:`text-[var(--content-emphasised)]`,children:t}),n&&(0,W.jsx)(f,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:n})]}),r&&(0,W.jsx)(`div`,{className:`shrink-0`,children:r})]}),i!=null&&(0,W.jsx)(`div`,{className:o?`mt-3`:``,children:i})]})})}function tn(e){return/^plugin:([^/]+)\//.exec(e??``)?.[1]??null}var nn={user_disabled:`scheduleDisarmReason.userDisabled`,plugin_removed:`scheduleDisarmReason.pluginRemoved`,plugin_disabled:`scheduleDisarmReason.pluginDisabled`,declaration_removed:`scheduleDisarmReason.declarationRemoved`,declaration_disabled:`scheduleDisarmReason.declarationDisabled`};function rn(e){return e.enabled||!e.disarmReason?null:nn[e.disarmReason]??null}var an=`Default (assistant's main model)`,on=`Custom call-site model`;function sn(e,t){return t?.[e]?.displayName??e}function cn(e,t){if(e==null)return;if(e.provider!=null||e.model!=null)return on;let n=e.profile?.trim();return n?`Override (${sn(n,t)})`:void 0}function ln({assistantId:e,pinnedProfile:t,defaultCallSite:n=`mainAgent`,fallbackLabel:r=an,respectCallSiteOverride:i=!1}){let a=t==null,{data:o}=s({...be({path:{assistant_id:e}}),enabled:!!e,staleTime:6e4}),c=(0,H.useMemo)(()=>o?Ye(o):{},[o]),{label:l}=Vt(e,n,{enabled:a}),u=a&&i?cn(o?.llm?.callSites?.[n],c):void 0,d=t==null?u??(l==null?r:`Default (${l})`):sn(t,c);return(0,W.jsxs)(`div`,{className:`flex min-h-6 items-center justify-between gap-4`,children:[(0,W.jsx)(`span`,{className:`shrink-0 text-[var(--content-secondary)]`,children:`Model profile`}),(0,W.jsx)(`span`,{className:`min-w-0 truncate text-right`,title:d,children:d})]})}function un(e,t,n){let r=te(e?.profiles??{},e?.profileOrder??[]);return[{value:null,label:`Default`},...re(r,[t],n).map(e=>{let t=ne(e,r,n);return{value:e.name,label:ie(e),...t?{issue:t}:{},...t===`undispatchable`?{reason:ee(e)}:{}}})]}function dn(e,t){let{data:n}=s({...be({path:{assistant_id:e}}),enabled:!!e,staleTime:6e4}),r=ae();return(0,H.useMemo)(()=>un(n?.llm,t,{requireOwnProviderAndModel:r}),[n?.llm,t,r])}function fn({assistantId:e,value:t,onChange:n,disabled:r=!1,isSaving:i=!1,className:a,includeDefaultOption:o=!0,placeholder:s,variant:c,menuAlign:l}){return(0,W.jsx)(L,{value:t,onChange:n,onSelectNone:()=>n(null),options:dn(e,t).filter(e=>o||e.value!=null).map(e=>({...e.issue===`undispatchable`?{icon:(0,W.jsx)(b,{className:`h-3.5 w-3.5 text-[var(--system-mid-strong)]`}),...e.reason?{tooltip:e.reason}:{}}:{},value:e.value,label:e.label})),disabled:r||i,placeholder:s,className:a,variant:c,menuAlign:l,"aria-label":`Model profile`})}function Q({label:e,value:t}){return(0,W.jsxs)(`div`,{className:`flex min-h-6 items-center justify-between gap-4`,children:[(0,W.jsx)(`span`,{className:`shrink-0 text-body-medium-lighter text-[var(--content-secondary)]`,children:e}),(0,W.jsx)(`span`,{className:`min-w-0 text-right text-body-medium-lighter text-[var(--content-default)]`,children:t})]})}function pn({schedule:e,assistantId:n,isPast:r}){let{t:i}=B(`schedules`),a=o(),s=pe({path:{assistant_id:n}}),c=l({mutationFn:t=>Be(n,e.id,{inferenceProfile:t}),onMutate:async t=>{await a.cancelQueries({queryKey:s});let n=a.getQueryData(s)?.find(t=>t.id===e.id)?.inferenceProfile;return a.setQueryData(s,n=>n?.map(n=>n.id===e.id?{...n,inferenceProfile:t}:n)),{previousProfile:n}},onError:(n,r,o)=>{let c=o?.previousProfile;c!==void 0&&a.setQueryData(s,t=>t?.map(t=>t.id===e.id?{...t,inferenceProfile:c}:t)),t(n,{context:`schedule_update_inference_profile`}),F.error(i(`scheduleDetail.modelChangeFailed`))},onSettled:()=>a.invalidateQueries({queryKey:s})});return e.mode===`workflow`?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(Q,{label:i(`scheduleDetail.modelProfile`),value:i(`scheduleDetail.notUsedForWorkflow`)}),(0,W.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:i(`scheduleDetail.modelProfileWorkflowNote`)})]}):r?(0,W.jsx)(`div`,{className:`text-body-medium-lighter text-[var(--content-default)]`,children:(0,W.jsx)(ln,{assistantId:n,pinnedProfile:e.inferenceProfile})}):(0,W.jsx)(Q,{label:i(`scheduleDetail.modelProfile`),value:(0,W.jsx)(fn,{assistantId:n,value:e.inferenceProfile,onChange:t=>{t&&t!==e.inferenceProfile&&c.mutate(t)},includeDefaultOption:!1,placeholder:i(`scheduleDetail.chooseModel`),isSaving:c.isPending,variant:`ghost`,menuAlign:`end`,className:`-my-1 -mr-2`})})}function mn({icon:e,value:t,label:n}){return(0,W.jsxs)(`div`,{className:`flex items-center gap-3 rounded-lg border border-[var(--border-base)] bg-[var(--surface-lift)] p-3`,children:[(0,W.jsx)(`span`,{className:`flex h-8 w-8 shrink-0 items-center justify-center rounded-md bg-[var(--surface-sunken)] text-[var(--content-secondary)]`,children:e}),(0,W.jsxs)(`div`,{className:`min-w-0`,children:[(0,W.jsx)(`div`,{className:`truncate text-body-large-default text-[var(--content-default)]`,children:t}),(0,W.jsx)(`div`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:n})]})]})}function hn({usage:e}){let{t}=B(`schedules`);return e.status===`loading`?(0,W.jsx)(`div`,{className:`grid grid-cols-2 gap-3 pt-2`,children:Array.from({length:2},(e,t)=>(0,W.jsx)(R,{className:`h-[60px] rounded-lg`},t))}):e.status===`error`?null:(0,W.jsxs)(`div`,{className:`grid grid-cols-2 gap-3 pt-2`,children:[(0,W.jsx)(mn,{icon:(0,W.jsx)(S,{className:`h-4 w-4`}),value:q(e.summary.totalEstimatedCostUsd),label:t(`scheduleDetail.costLabel`,{days:7})}),(0,W.jsx)(mn,{icon:(0,W.jsx)(T,{className:`h-4 w-4`}),value:wt(e.summary.runCount),label:t(`scheduleDetail.runsLabel`,{days:7})})]})}function gn(e){return e.exists&&e.archivedAt==null}function _n({run:e,index:t,isExpanded:n,disableDirectOpen:r,onOpenConversation:i,onToggleDetails:a}){let{t:o}=B(`schedules`),s=Ot(e),c=e.conversations??(s?[{id:s,title:null,exists:!0,archivedAt:null}]:[]),l=J(e.output),u=J(e.error),f=!r&&c.length===1&&gn(c[0])?c[0].id:null,p=!f&&(c.length>0||l||u),m=`schedule-run-details-${t}`,h=!!f||p,g=(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(Wt,{status:e.status}),(0,W.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,W.jsx)(`div`,{className:`text-body-medium-lighter text-[var(--content-default)]`,children:K(e.startedAt)}),(0,W.jsxs)(`div`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:[St(e.durationMs),` ·`,` `,q(e.estimatedCostUsd)]}),e.status===`error`&&e.error?(0,W.jsxs)(`div`,{className:`mt-0.5 text-body-small-default text-[var(--system-negative-strong)]`,children:[e.error.slice(0,120),e.error.length>120?`…`:``]}):null]}),h?(0,W.jsx)(y,{className:d(`h-4 w-4 shrink-0 text-[var(--content-tertiary)] transition-transform`,p&&n?`rotate-90`:``)}):null]}),_=p&&n?(0,W.jsx)(`div`,{id:m,className:`px-2 pb-3`,children:(0,W.jsxs)(`div`,{className:`space-y-3 rounded-md border border-[var(--border-subtle)] bg-[var(--surface-sunken)] p-3`,children:[c.length>0?(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`div`,{className:`mb-1 text-body-small-default text-[var(--content-secondary)]`,children:o(`scheduleDetail.conversations`)}),(0,W.jsx)(`div`,{className:`space-y-1`,children:c.map(e=>gn(e)?(0,W.jsx)(`button`,{type:`button`,onClick:()=>i(e.id),className:`block w-full truncate text-left text-body-small-default text-[var(--content-default)] hover:underline`,children:J(e.title)?e.title:o(`scheduleDetail.conversation`)},e.id):(0,W.jsxs)(`span`,{className:`block truncate text-body-small-default text-[var(--content-tertiary)] italic`,children:[J(e.title)?e.title:o(`scheduleDetail.conversation`),` `,e.exists?o(`scheduleDetail.conversationArchived`):o(`scheduleDetail.conversationUnavailable`)]},e.id))})]}):null,l?(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`div`,{className:`mb-1 text-body-small-default text-[var(--content-secondary)]`,children:o(`scheduleDetail.output`)}),(0,W.jsx)(`pre`,{className:`max-h-64 overflow-auto whitespace-pre-wrap break-words text-body-small-default font-mono text-[var(--content-default)]`,children:e.output})]}):null,u?(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`div`,{className:`mb-1 text-body-small-default text-[var(--content-secondary)]`,children:o(`scheduleDetail.error`)}),(0,W.jsx)(`pre`,{className:`max-h-64 overflow-auto whitespace-pre-wrap break-words text-body-small-default font-mono text-[var(--system-negative-strong)]`,children:e.error})]}):null]})}):null;return f?(0,W.jsx)(`div`,{children:(0,W.jsx)(`button`,{type:`button`,onClick:()=>i(f),"aria-label":o(`scheduleDetail.openRunConversationAria`,{time:K(e.startedAt)}),className:`flex w-full cursor-pointer items-center gap-3 px-2 py-3 text-left shadow-none transition-colors hover:bg-[var(--surface-hover)] focus:outline-none`,children:g})}):p?(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`button`,{type:`button`,onClick:()=>a(e.id),"aria-label":o(`scheduleDetail.toggleRunDetailsAria`,{time:K(e.startedAt)}),"aria-expanded":n,"aria-controls":m,className:`flex w-full cursor-pointer items-center gap-3 px-2 py-3 text-left shadow-none transition-colors hover:bg-[var(--surface-hover)] focus:outline-none`,children:g}),_]}):(0,W.jsx)(`div`,{className:`flex items-center gap-3 px-2 py-3`,children:g})}function vn({runs:e,isLoading:t,disableDirectOpen:n,onOpenConversation:r}){let{t:i}=B(`schedules`),[a,o]=(0,H.useState)(null);return t?(0,W.jsx)(`div`,{className:`flex items-center justify-center py-6`,children:(0,W.jsx)(C,{className:`h-5 w-5 animate-spin text-stone-400`})}):!e||e.length===0?(0,W.jsx)(`p`,{className:`py-2 text-body-medium-lighter text-[var(--content-tertiary)] italic`,children:i(`scheduleDetail.noRunsYet`)}):(0,W.jsx)(`div`,{className:`-mx-2 divide-y divide-[var(--border-base)]`,children:e.map((e,t)=>(0,W.jsx)(_n,{run:e,index:t,isExpanded:a===e.id,disableDirectOpen:n,onOpenConversation:r,onToggleDetails:e=>o(t=>t===e?null:e)},e.id))})}function yn({schedule:e,assistantId:n,usage:a,isPast:o=!1,onClose:c,onDeleted:l}){let{t:u}=B(`schedules`),d=i(),{data:f,isLoading:p}=s({queryKey:ce({path:{assistant_id:n,id:e.id}}),queryFn:()=>We(n,e.id),staleTime:1e4}),[m,h]=(0,H.useState)(!1),[g,v]=(0,H.useState)(!1),[y,b]=(0,H.useState)(!1),x=tn(e.sourceKey),S=rn(e),w=x!==null&&!e.enabled,T=async()=>{h(!0);try{await Ue(n,e.id)}catch(e){t(e,{context:`schedule_run_now`}),F.error(u(`scheduleDetail.runFailed`))}finally{h(!1)}},E=async()=>{b(!0);try{await He(n,e.id),l()}catch(e){t(e,{context:`schedule_delete`}),F.error(u(`scheduleDetail.deleteFailed`)),b(!1),v(!1)}};return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsxs)(`div`,{className:`flex h-full flex-col bg-[var(--surface-overlay)] md:rounded-[var(--radius-xl)] md:border md:border-[var(--border-base)]`,children:[(0,W.jsx)(Pe,{title:e.name,headerActions:x?void 0:(0,W.jsx)(r,{variant:`dangerOutline`,iconOnly:(0,W.jsx)(D,{}),"aria-label":u(`scheduleDetail.delete`),tooltip:u(`scheduleDetail.delete`),onClick:()=>v(!0)}),closeLabel:u(`scheduleDetail.closeAria`),closeTooltip:u(`scheduleDetail.close`),onClose:c}),(0,W.jsxs)(`div`,{className:`flex-1 space-y-6 overflow-y-auto px-[var(--app-spacing-lg)] py-[var(--app-spacing-lg)]`,children:[e.description?(0,W.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-secondary)]`,children:e.description}):null,(0,W.jsx)(Z,{title:u(`scheduleDetail.details`),children:(0,W.jsxs)(`div`,{className:`space-y-2`,children:[e.cadenceDescription?(0,W.jsx)(Q,{label:u(`scheduleDetail.cadence`),value:e.cadenceDescription}):null,(0,W.jsx)(Q,{label:u(`scheduleDetail.mode`),value:e.mode}),(0,W.jsx)(pn,{schedule:e,assistantId:n,isPast:o}),(0,W.jsx)(Q,{label:u(`scheduleDetail.status`),value:e.enabled?u(`scheduleDetail.enabled`):u(`scheduleDetail.disabled`)}),(0,W.jsx)(Q,{label:u(`scheduleDetail.nextRun`),value:K(e.nextRunAt)}),e.lastRunAt?(0,W.jsx)(Q,{label:u(`scheduleDetail.lastRun`),value:(0,W.jsxs)(`span`,{className:`flex items-center justify-end gap-2`,children:[(0,W.jsx)(Wt,{status:e.lastStatus}),K(e.lastRunAt)]})}):null]})}),(0,W.jsx)(hn,{usage:a}),(0,W.jsx)(Z,{title:u(`scheduleDetail.recentRuns`),children:(0,W.jsx)(vn,{runs:f?.runs,isLoading:p,disableDirectOpen:e.mode===`script`,onOpenConversation:e=>Ee(d,e)})})]}),(0,W.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between gap-2 border-t border-[var(--border-hover)] p-[var(--app-spacing-lg)]`,children:[x?(0,W.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:S?u(`scheduleDetail.managedByPluginPaused`,{plugin:x,reason:u(S)}):u(`scheduleDetail.managedByPlugin`,{plugin:x})}):(0,W.jsx)(`span`,{}),(0,W.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,W.jsx)(r,{variant:`outlined`,leftIcon:(0,W.jsx)(_,{className:`h-3.5 w-3.5`}),onClick:()=>d(V.settings.usageForSchedule(e.id)),children:u(`scheduleDetail.viewUsage`)}),e.mode===`script`?(0,W.jsxs)(W.Fragment,{children:[w?(0,W.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:u(`scheduleDetail.turnOnToRun`)}):null,(0,W.jsx)(r,{variant:`primary`,leftIcon:m?(0,W.jsx)(C,{className:`h-3.5 w-3.5 animate-spin`}):void 0,onClick:()=>void T(),disabled:m||w,children:u(m?`scheduleDetail.running`:`scheduleDetail.runNow`)})]}):null]})]})]}),(0,W.jsx)(I,{open:g,title:u(`scheduleDetail.delete`),message:u(`scheduleDetail.deleteConfirmMessage`,{name:e.name}),confirmLabel:u(`scheduleDetail.confirmDelete`),cancelLabel:u(`scheduleDetail.cancel`),destructive:!0,isPending:y,onConfirm:()=>void E(),onCancel:()=>v(!1)})]})}function bn(e){if(e.status===`loading`)return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(R,{as:`span`,className:`h-4 w-12`}),(0,W.jsx)(R,{as:`span`,className:`h-4 w-10`})]});if(e.status===`error`)return(0,W.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`—`});let{summary:t}=e;return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`span`,{className:`text-body-small-default text-[var(--content-secondary)]`,children:q(t.totalEstimatedCostUsd)}),(0,W.jsx)(`span`,{className:`text-body-small-default text-[var(--content-secondary)]`,children:wt(t.runCount)})]})}function xn({name:e,badge:t,metaParts:n,usage:r,enabled:i,selected:a,onClick:o,onToggle:s,toggleAriaLabel:c}){return(0,W.jsxs)(`div`,{className:`flex items-center gap-3 rounded-md px-2 py-3 transition-colors [&+&]:border-t [&+&]:border-[var(--border-base)] ${a?`bg-[var(--surface-active)]`:`hover:bg-[var(--surface-hover)]`}`,children:[s?(0,W.jsx)(N,{checked:i,onChange:s,"aria-label":c}):null,(0,W.jsxs)(`button`,{type:`button`,onClick:o,className:`flex min-w-0 flex-1 cursor-pointer items-center gap-4 text-left focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)]`,children:[(0,W.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-1`,children:[(0,W.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[(0,W.jsx)(`span`,{className:`truncate text-body-medium-default text-[var(--content-default)]`,children:e}),t]}),n.length>0?(0,W.jsx)(`span`,{className:`flex min-w-0 items-center gap-2 text-label-small-default text-[var(--content-tertiary)]`,children:n.map((e,t)=>(0,W.jsxs)(H.Fragment,{children:[t>0?(0,W.jsx)(`span`,{className:`h-[3px] w-[3px] shrink-0 rounded-full bg-[var(--content-tertiary)]`}):null,(0,W.jsx)(`span`,{className:`truncate`,children:e})]},t))}):null]}),(0,W.jsxs)(`div`,{className:`flex shrink-0 items-center gap-4`,children:[bn(r),(0,W.jsx)(y,{className:`h-4 w-4 text-[var(--content-tertiary)]`})]})]})]})}function Sn({schedule:e,usage:t,selected:n,onClick:r,onToggle:i}){let{t:a}=B(`schedules`),o=e.isOneShot?``:e.cadenceDescription.trim(),s=e.lastRunAt??e.nextRunAt,c=rn(e),l=[c?a(c):``,o,s?K(s):``].filter(Boolean),u=tn(e.sourceKey);return(0,W.jsx)(xn,{name:e.name,badge:u?(0,W.jsx)(A,{tone:`info`,children:u}):void 0,metaParts:l,usage:t,enabled:e.enabled,selected:n,onClick:r,onToggle:i,toggleAriaLabel:i?a(`scheduleRow.toggleAria`,{name:e.name}):void 0})}function Cn({recurring:e,oneTime:t,pastOneTime:n,usageForSchedule:i,isLoading:a,isError:o,refetch:s,onToggle:c,onSelectSchedule:l,selectedScheduleId:u,onStartNewChat:d,onCreateSchedule:f,pastOpen:p,onPastOpenChange:m,onRebaseProfiles:h,defaultProfileLabel:_,systemTasksSlot:v}){let{t:b}=B(`schedules`),x=e=>(0,W.jsx)(Sn,{schedule:e,usage:i(e.id),selected:e.id===u,onClick:()=>l(e.id),onToggle:t=>c(e.id,t)},e.id),S=e=>(0,W.jsx)(Sn,{schedule:e,usage:i(e.id),selected:e.id===u,onClick:()=>l(e.id)},e.id),C=n.length>0?(0,W.jsx)(k.Root,{type:`single`,collapsible:!0,className:`mt-3`,value:p?`past`:``,onValueChange:e=>m(e===`past`),children:(0,W.jsxs)(k.Item,{value:`past`,children:[(0,W.jsxs)(k.Trigger,{className:`group gap-[var(--app-spacing-xs)] px-2 text-label-small-default text-[var(--content-tertiary)]`,children:[(0,W.jsx)(y,{size:14,"aria-hidden":!0,className:`shrink-0 transition-transform group-data-[state=open]:rotate-90`}),(0,W.jsx)(`span`,{children:b(`schedulesPanel.pastToggle`,{count:n.length})})]}),(0,W.jsx)(k.Content,{children:(0,W.jsx)(`div`,{className:`pt-1`,children:n.map(S)})})]})}):null;return(0,W.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto`,children:[a?(0,W.jsx)(`div`,{className:`space-y-3`,children:Array.from({length:2},(e,t)=>(0,W.jsx)(R,{className:`h-12 rounded-md`},t))}):o&&e.length===0?(0,W.jsx)(O,{tone:`error`,actions:(0,W.jsx)(`button`,{type:`button`,onClick:s,className:`cursor-pointer underline hover:no-underline`,children:b(`schedulesPanel.retry`)}),children:b(`schedulesPanel.loadFailed`)}):e.length===0&&t.length===0&&n.length===0?(0,W.jsx)(Xe,{icon:g,title:b(`schedulesPanel.emptyTitle`),description:b(`schedulesPanel.emptyDescription`),actions:(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(r,{variant:`primary`,size:`regular`,onClick:d,children:b(`schedulesPanel.newConversation`)}),(0,W.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:b(`schedulesPanel.emptyActionsSeparator`)}),(0,W.jsx)(r,{variant:`outlined`,size:`regular`,onClick:f,children:b(`schedulesPanel.createSchedule`)})]})}):(0,W.jsxs)(`div`,{children:[h&&_?(0,W.jsx)(`div`,{className:`mb-1 flex min-w-0 justify-end`,children:(0,W.jsx)(r,{variant:`outlined`,size:`compact`,onClick:h,className:`max-w-full truncate`,children:b(`schedulesPanel.useProfileForAll`,{profile:_})})}):null,e.map(x),t.length>0?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`p`,{className:`mt-3 px-2 text-label-small-default text-[var(--content-tertiary)]`,children:b(`schedulesPanel.oneTimeHeading`)}),t.map(S)]}):null,C]}),v?(0,W.jsx)(`div`,{className:`mt-[var(--app-spacing-lg)]`,children:v}):null]})}function wn({runs:e,isLoading:t,emptyMessage:n=`No runs yet.`,hasMore:a=!1,isLoadingMore:o=!1,onLoadMore:s}){let c=i(),[l,u]=(0,H.useState)(null),d=a&&s?(0,W.jsx)(`div`,{className:`flex justify-center pt-3`,children:(0,W.jsx)(r,{variant:`outlined`,size:`compact`,onClick:s,disabled:o,leftIcon:o?(0,W.jsx)(C,{className:`h-3.5 w-3.5 animate-spin`}):void 0,children:o?`Loading…`:`Load more`})}):null;return(0,W.jsx)(Z,{title:`Recent runs`,children:t?(0,W.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,W.jsx)(C,{className:`h-5 w-5 animate-spin text-stone-400`})}):!e||e.length===0?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`p`,{className:`py-4 text-center text-body-medium-lighter text-[var(--content-tertiary)] italic`,children:n}),d]}):(0,W.jsxs)(`div`,{className:`divide-y divide-[var(--border-base)]`,children:[e.map((e,t)=>{let n=Ot(e),r=J(e.output),i=J(e.error),a=e.status===`skipped`||e.status===`missed`,o=!n&&!a&&(r||i),s=l===e.id,d=`schedule-run-details-${t}`;return(0,W.jsxs)(`div`,{children:[(0,W.jsx)(m,{label:(0,W.jsxs)(`span`,{className:`flex min-w-0 flex-1 items-center gap-3`,children:[(0,W.jsx)(Wt,{status:e.status}),(0,W.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,W.jsx)(`span`,{className:`block truncate text-body-medium-lighter text-[var(--content-default)]`,children:J(e.title)?e.title:K(e.startedAt)}),(0,W.jsxs)(`span`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:[J(e.title)?`${K(e.startedAt)} · `:``,a?(0,W.jsx)(W.Fragment,{children:r?e.output:e.status===`missed`?`Missed`:`Skipped`}):(0,W.jsxs)(W.Fragment,{children:[St(e.durationMs),` ·`,` `,q(e.estimatedCostUsd)]}),e.status===`error`&&e.error&&(0,W.jsxs)(`span`,{className:`ml-2 text-[var(--system-negative-strong)]`,children:[e.error.slice(0,80),e.error.length>80?`…`:``]})]})]}),n||o?(0,W.jsx)(y,{className:`h-4 w-4 shrink-0 text-[var(--content-tertiary)] transition-transform ${s?`rotate-90`:``}`}):null]}),onSelect:n?()=>Ee(c,n):o?()=>u(s?null:e.id):void 0,"aria-label":`Run at ${K(e.startedAt)}`,"aria-expanded":o?s:void 0,"aria-controls":o?d:void 0,className:`h-auto py-2.5 gap-3 -mx-2 px-2`}),o&&s?(0,W.jsx)(`div`,{id:d,className:`px-2 pb-3`,children:(0,W.jsxs)(`div`,{className:`space-y-3 rounded-md border border-[var(--border-subtle)] bg-[var(--surface-sunken)] p-3`,children:[r?(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`div`,{className:`mb-1 text-body-small-default text-[var(--content-secondary)]`,children:`Output`}),(0,W.jsx)(`pre`,{className:`max-h-64 overflow-auto whitespace-pre-wrap break-words text-body-small-default font-mono text-[var(--content-default)]`,children:e.output})]}):null,i?(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`div`,{className:`mb-1 text-body-small-default text-[var(--content-secondary)]`,children:`Error`}),(0,W.jsx)(`pre`,{className:`max-h-64 overflow-auto whitespace-pre-wrap break-words text-body-small-default font-mono text-[var(--system-negative-strong)]`,children:e.error})]}):null]})}):null]},e.id)}),d]})})}var Tn={heartbeat:`heartbeatAgent`,consolidation:`memoryV2Consolidation`,retrospective:`memoryRetrospective`};function $({label:e,value:t}){return(0,W.jsxs)(`div`,{className:`flex min-h-6 items-center justify-between gap-4`,children:[(0,W.jsx)(`span`,{className:`shrink-0 text-[var(--content-secondary)]`,children:e}),(0,W.jsx)(`span`,{className:`flex min-w-0 items-center justify-end gap-2 text-right text-[var(--content-default)]`,children:t})]})}function En({kind:e,assistantId:t,systemTasks:n,canOpenMemorySettings:a,onClose:o}){let{t:s}=B(`schedules`),l=i(),{heartbeatConfig:u,consolidationConfig:d,retrospectiveConfig:f}=n,p,m,h,g,_,v,y;e===`heartbeat`?(p=s(`systemTaskDetail.nameHeartbeat`),m=u?Mt(u):``,h=u?.enabled??!1,g=u?.nextRunAt??null,_=u?.lastRunAt??null,v=n.isHeartbeatRunning,y=n.runHeartbeatNow):e===`consolidation`?(p=s(`systemTaskDetail.nameConsolidation`),m=d?Nt(d):``,h=d?.enabled??!1,g=d?.nextRunAt??null,_=d?.lastRunAt??null,v=n.isConsolidationRunning,y=n.runConsolidationNow):(p=s(`systemTaskDetail.nameRetrospective`),m=Pt,h=f?.enabled??!1,g=f?.nextRunAt??null,_=f?.lastRunAt??null,v=!1,y=void 0);let b=e!==`heartbeat`,x=e===`retrospective`,S=b&&!h,T=v||S,D=s(b?h?`systemTaskDetail.statusManagedOn`:`systemTaskDetail.statusPaused`:h?`scheduleDetail.enabled`:`scheduleDetail.disabled`),k=x&&f?.available===!0,A=s(k?`systemTaskDetail.pausedRetrospectiveSwitchedOff`:x?`systemTaskDetail.pausedRetrospective`:`systemTaskDetail.pausedConsolidation`),j=b&&h&&a,M={path:{assistant_id:t},query:{limit:25}},P=e===`heartbeat`?se(M):e===`consolidation`?he(M):ge(M),{data:F,isLoading:I,fetchNextPage:L,hasNextPage:R,isFetchingNextPage:z}=c({queryKey:P.queryKey,queryFn:P.queryFn,initialPageParam:{path:M.path,query:{}},getNextPageParam:e=>e.nextCursor??void 0,staleTime:1e4}),ee=Et(F?.pages.map(t=>({runs:t.runs.filter(e=>!kt(e)).map(t=>Y(t,e))}))),te=ee?.find(e=>At(e)&&e.status!==`running`),ne=_??te?.finishedAt??te?.startedAt??null;return(0,W.jsxs)(`div`,{className:`flex h-full flex-col bg-[var(--surface-overlay)] md:rounded-[var(--radius-xl)] md:border md:border-[var(--border-base)]`,children:[(0,W.jsx)(Pe,{title:p,closeLabel:s(`scheduleDetail.closeAria`),closeTooltip:s(`scheduleDetail.close`),onClose:o}),(0,W.jsxs)(`div`,{className:`flex-1 space-y-6 overflow-y-auto px-[var(--app-spacing-lg)] py-[var(--app-spacing-lg)]`,children:[(0,W.jsxs)(`div`,{children:[(0,W.jsx)(Z,{title:s(`scheduleDetail.details`),children:(0,W.jsxs)(`div`,{className:`space-y-2 text-body-medium-lighter`,children:[(0,W.jsx)($,{label:s(`scheduleDetail.status`),value:(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`span`,{className:`truncate`,children:D}),b?null:(0,W.jsx)(N,{size:`sm`,checked:h,onChange:n.toggleHeartbeat,"aria-label":s(`scheduleDetail.toggleAria`,{name:p})})]})}),(0,W.jsx)(ln,{assistantId:t,defaultCallSite:Tn[e],fallbackLabel:s(`systemTaskDetail.fallbackModelProfile`),respectCallSiteOverride:!0}),m?(0,W.jsx)($,{label:s(`systemTaskDetail.repeats`),value:(0,W.jsx)(`span`,{className:`truncate`,children:m})}):null,x?null:(0,W.jsx)($,{label:s(`scheduleDetail.nextRun`),value:(0,W.jsx)(`span`,{className:`truncate`,children:K(g)})}),(0,W.jsx)($,{label:s(`scheduleDetail.lastRun`),value:(0,W.jsx)(`span`,{className:`truncate`,children:K(ne)})})]})}),S?(0,W.jsx)(O,{tone:`warning`,className:`mt-4`,actions:a?(0,W.jsx)(r,{variant:`outlined`,size:`compact`,onClick:()=>l(`${V.settings.developer}?tab=memory`),children:s(k?`systemTaskDetail.openMemorySettings`:`systemTaskDetail.turnOnMemory`)}):void 0,children:A}):null]}),(0,W.jsx)(wn,{runs:ee,isLoading:I,hasMore:R,isLoadingMore:z,onLoadMore:()=>void L()})]}),j||y?(0,W.jsxs)(`div`,{className:`flex shrink-0 items-center justify-end gap-2 border-t border-[var(--border-hover)] p-[var(--app-spacing-lg)]`,children:[j?(0,W.jsx)(r,{variant:`outlined`,leftIcon:(0,W.jsx)(E,{className:`h-3.5 w-3.5`}),onClick:()=>l(`${V.settings.developer}?tab=memory`),children:s(`systemTaskDetail.memorySettings`)}):null,y?(0,W.jsx)(r,{variant:`primary`,leftIcon:v?(0,W.jsx)(C,{className:`h-3.5 w-3.5 animate-spin`}):(0,W.jsx)(w,{className:`h-3.5 w-3.5`}),onClick:y,disabled:T,children:s(v?`scheduleDetail.running`:`scheduleDetail.runNow`)}):null]}):null]})}function Dn(e){let n=je(),[r]=(0,H.useState)(()=>Date.now()),{data:i,isLoading:a,isError:o,refetch:c}=s(Fe(e)),{data:l,isLoading:u,isError:d}=s(Rt(e,n,!0)),{recurring:f,oneTime:p,pastOneTime:m}=(0,H.useMemo)(()=>{let e=Lt(i??[],r);return{recurring:e.recurring,oneTime:e.upcomingOneTime,pastOneTime:e.pastOneTime}},[r,i]),h=(0,H.useMemo)(()=>new Map((l??[]).map(e=>[e.scheduleId,e])),[l]);return{recurring:f,oneTime:p,pastOneTime:m,usageForSchedule:(0,H.useCallback)(e=>u?{status:`loading`}:d?{status:`error`}:{status:`ready`,summary:h.get(e)??zt(e)},[d,u,h]),handleToggle:(0,H.useCallback)(async(n,r)=>{if(e)try{await Ge(e,n,r),c()}catch(e){t(e,{context:`schedule_toggle`}),F.error(z(`schedules:scheduleDetail.toggleFailed`))}},[e,c]),isLoading:a,isError:o,refetch:(0,H.useCallback)(()=>{c()},[c])}}function On(){let e=i(),{scheduleId:t}=a(),n=Ne(),r=Oe(),o=je(),s=Dn(n),c=en(n,o),l=Me(`memoryOptOut`),u=Ae.use.settingsDeveloperNav(),d=l&&u===!0,[f,p]=(0,H.useState)(!1),m=t??null,[h,g]=(0,H.useState)(null),[_,v]=(0,H.useState)(!1),y=(0,H.useCallback)(t=>{e(t?V.schedules.detail(t):V.schedules.root)},[e]),b=m?s.recurring.find(e=>e.id===m)??s.oneTime.find(e=>e.id===m)??s.pastOneTime.find(e=>e.id===m)??null:null;(0,H.useEffect)(()=>{m&&!s.isLoading&&!s.isError&&!b&&y(null)},[m,b,s.isLoading,s.isError,y]);let x=h===`heartbeat`?c.heartbeatConfig!=null:h===`consolidation`?c.consolidationConfig?.available===!0:h===`retrospective`?c.retrospectiveConfig?.available===!0:!1;(0,H.useEffect)(()=>{h&&!c.isLoading&&!x&&g(null)},[h,x,c.isLoading]);let S=(0,H.useCallback)(e=>{g(null),y(e)},[y]),C=(0,H.useCallback)(e=>{m&&y(null),g(e)},[y,m]),w=(0,H.useCallback)(()=>{De(e)},[e]),T=Ht(n,(0,H.useMemo)(()=>[...s.recurring,...s.oneTime,...s.pastOneTime],[s.recurring,s.oneTime,s.pastOneTime]),s.refetch),E=(b?(0,W.jsx)(yn,{schedule:b,assistantId:n,usage:s.usageForSchedule(b.id),isPast:s.pastOneTime.some(e=>e.id===b.id),onClose:()=>y(null),onDeleted:()=>{y(null),s.refetch()}}):null)??(h&&x?(0,W.jsx)(En,{kind:h,assistantId:n,systemTasks:c,canOpenMemorySettings:d,onClose:()=>g(null)}):null),D=(0,W.jsx)(Cn,{recurring:s.recurring,oneTime:s.oneTime,pastOneTime:s.pastOneTime,usageForSchedule:s.usageForSchedule,isLoading:s.isLoading,isError:s.isError,refetch:s.refetch,onToggle:s.handleToggle,onSelectSchedule:S,selectedScheduleId:m,onStartNewChat:w,onCreateSchedule:()=>p(!0),pastOpen:_,onPastOpenChange:v,onRebaseProfiles:T.canRebase?T.requestRebase:void 0,defaultProfileLabel:T.defaultProfileLabel??void 0,systemTasksSlot:(0,W.jsx)(qt,{heartbeatConfig:c.heartbeatConfig,consolidationConfig:c.consolidationConfig,retrospectiveConfig:c.retrospectiveConfig,heartbeatUsage:c.heartbeatUsage,consolidationUsage:c.consolidationUsage,retrospectiveUsage:c.retrospectiveUsage,isLoading:c.isLoading,hasError:c.hasError,onRetry:c.refetchAll,onSelectHeartbeat:()=>C(`heartbeat`),onSelectConsolidation:()=>C(`consolidation`),onSelectRetrospective:()=>C(`retrospective`)})}),O=(0,W.jsx)(Ut,{...T.dialogProps});return E&&r?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(Le,{children:E}),O]}):(0,W.jsxs)(W.Fragment,{children:[E&&!r?(0,W.jsx)(Re,{storageKey:`schedulesDetailDrawerWidth`,detailKey:m??h??void 0,section:D,detail:E}):D,(0,W.jsx)(pt,{isOpen:f,assistantId:n,onClose:()=>p(!1),onCreated:()=>{p(!1),s.refetch()}}),O]})}export{On as SchedulesPage};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./queryOptions-DbnOXI51.js";import{a as t,i as n,n as r,t as i}from"./api-errors-DYGVb-Sh.js";import{$ as a,ct as o,rt as s}from"./sdk.gen-hZs6YBR0.js";import{A as c,I as l,j as u,k as d}from"./react-query.gen-
|
|
1
|
+
import{t as e}from"./queryOptions-DbnOXI51.js";import{a as t,i as n,n as r,t as i}from"./api-errors-DYGVb-Sh.js";import{$ as a,ct as o,rt as s}from"./sdk.gen-hZs6YBR0.js";import{A as c,I as l,j as u,k as d}from"./react-query.gen-CYP-Tn4K.js";import{t as f}from"./client-perf-Bg-CBIVj.js";import{a as p}from"./diagnostics-BcQgahbk.js";function m(e){return!!e&&!e.startsWith(`system:`)}function h(e){return e.isPinned===!0||e.groupId===`system:pinned`}function g(e){return e.surfacedAt==null?e.conversationType===`background`||e.conversationType===`scheduled`||e.groupId===`system:background`||e.groupId===`system:scheduled`:!1}function _(e){return e.conversationType===`scheduled`||e.groupId===`system:scheduled`}function v(e){return!e.hasUnseenLatestAssistantMessage&&!g(e)&&e.conversationId!=null&&e.latestAssistantMessageAt!=null}function y(e){return e.hasUnseenLatestAssistantMessage===!0&&!g(e)&&e.conversationId!=null}function b(e){return e.hasUnseenLatestAssistantMessage===!0&&!g(e)&&e.archivedAt==null}function x(e){return e.reduce((e,t)=>b(t)?e+1:e,0)}function S(e){let t=e.headers.get(`content-length`);if(t===null||t.trim()===``)return null;let n=Number(t);return Number.isFinite(n)?n:null}var C={},ee={conversationType:`background`},te={conversationType:`scheduled`},ne={archiveStatus:`archived`},w={archiveStatus:`archived`,conversationType:`background`},T=d({path:{assistant_id:``}})[0]._id;function E(e,t={}){return d({path:{assistant_id:e??``},query:t})}function D(e){return d({path:{assistant_id:e??``}})}function O(e){let t=e[0];if(typeof t!=`object`||!t||t._id!==T)return;let n=t.query;if(!(typeof n!=`object`||!n))return n}function k(e,t){return{queryKey:D(e),predicate:e=>{let n=O(e.queryKey);return n!==void 0&&t(n)}}}function A(e){return e.groupId!==void 0||e.originChannel!==void 0}function j(e){return e.archiveStatus===`archived`}function re(e){return e.conversationType===void 0&&(e.archiveStatus===void 0||e.archiveStatus===`active`)&&e.originChannel===void 0&&e.groupId===void 0&&e.needsAttention===void 0&&e.foregroundOnly===void 0}function M(e){return(t,n)=>(n[e]??0)-(t[e]??0)}var N=M(`lastMessageAt`);function P(e,t){let n=e.findIndex(e=>N(t,e)<=0),r=n===-1?e.length:n;return[...e.slice(0,r),t,...e.slice(r)]}function ie(e,t){let{conversations:n,hasMore:r}=e,i=n[n.length-1];return r&&i!==void 0&&N(t,i)>0?e:{conversations:P(n,t),hasMore:r}}function ae(e,t,{pinnedInjected:n}){if(!t.hasMore)return t;let r=n?t.conversations.filter(e=>e.isPinned!==!0):t.conversations;if(r.length===0)return e;let i=Math.min(...r.map(e=>e.lastMessageAt??0)),a=new Set(t.conversations.map(e=>e.conversationId)),o=e.conversations.filter(e=>!a.has(e.conversationId)&&(e.draft===!0||(e.lastMessageAt??0)<i));return{conversations:[...t.conversations,...o],hasMore:t.hasMore}}function F(e){return typeof e==`number`&&Number.isFinite(e)?e:void 0}function I(e){return typeof e==`string`?e:void 0}function L(e){if(e)return{sourceChannel:e.sourceChannel,externalChatId:e.externalChatId,externalThreadId:e.externalThreadId,externalChatName:e.externalChatName,externalUserId:I(e.externalUserId),displayName:I(e.displayName),username:I(e.username),slackChannel:e.slackChannel?{channelId:e.slackChannel.channelId,name:e.slackChannel.name,link:e.slackChannel.link?.webUrl?{webUrl:e.slackChannel.link.webUrl}:void 0}:void 0,slackThread:e.slackThread?{channelId:e.slackThread.channelId,threadTs:e.slackThread.threadTs,link:e.slackThread.link?.appUrl||e.slackThread.link?.webUrl?{appUrl:e.slackThread.link.appUrl,webUrl:e.slackThread.link.webUrl}:void 0}:void 0}}function R(e){let t=e.assistantAttention,n=e.channelBinding?.sourceChannel??I(e.conversationOriginChannel);return{conversationId:e.id,title:e.title,createdAt:F(e.createdAt),lastMessageAt:F(e.lastMessageAt??e.updatedAt),hasUnseenLatestAssistantMessage:t?.hasUnseenLatestAssistantMessage,latestAssistantMessageAt:F(t?.latestAssistantMessageAt),lastSeenAssistantMessageAt:F(t?.lastSeenAssistantMessageAt),archivedAt:e.archivedAt,surfacedAt:F(e.surfacedAt),groupId:I(e.groupId),source:e.source,isPinned:e.isPinned,conversationType:e.conversationType,scheduleJobId:e.scheduleJobId,displayOrder:F(e.displayOrder),channelBinding:L(e.channelBinding),originChannel:n,isProcessing:e.isProcessing,historyOrphaned:e.historyOrphaned}}function z(e){return R(e)}function B(e){return u({path:{assistant_id:e??``}})}var V=200,H=[`telegram`,`phone`,`vellum`,`whatsapp`,`slack`,`email`,`platform`,`a2a`,`discord`];function U(e){return j(e)?`archived`:e.conversationType===void 0?e.originChannel===void 0?e.groupId===void 0?`foreground`:`section`:`origin_channel`:e.conversationType}function W(e,t){return A(e)?t:[...e.conversationType===`background`&&!j(e)?t.filter(e=>!_(e)):t].sort(M(j(e)?`archivedAt`:`lastMessageAt`))}function G(e,t,n,r){p(`conversation_list_page_fetch`,{assistantId:e,offset:0,status:t.status,count:t.conversations.length,hasMore:t.hasMore,durationMs:t.durationMs,bytes:t.bytes,listKind:n,source:r})}async function K(e,t,o,s={},c=50){let l=performance.now(),{data:u,error:d,response:f}=await a({path:{assistant_id:e},query:{...s,limit:c,offset:t},throwOnError:!1});r(f,d,`Failed to list conversations.`);let m=Math.round(performance.now()-l);if(!f.ok){p(`conversation_list_page_fetch_error`,{assistantId:e,offset:t,status:f.status,durationMs:m,bytes:S(f),listKind:U(s),source:o});let r=n(d,f,`Failed to list conversations.`);throw new i(f.status,r)}return{conversations:(u?.conversations??[]).map(R),hasMore:u?.hasMore??!1,status:f.status,durationMs:m,bytes:S(f)}}async function q(e,t={}){let n=[],r=new Set,i=performance.now(),a=0,o=0,s=null,c=r=>{let c=Math.round(performance.now()-i);p(`conversation_list_drain`,{assistantId:e,outcome:r,pages:a,rows:n.length,totalMs:c,maxPageMs:o,totalBytes:s,listKind:U(t)}),f(`client_list.drain`,c,{outcome:r,pages:a,rows:n.length,max_page_ms:o,total_bytes:s,list_kind:U(t)})};try{for(let i=0;i<V;i++){let c=await K(e,i*50,`drain`,t);a++,o=Math.max(o,c.durationMs),c.bytes!==null&&(s=(s??0)+c.bytes),i===0&&G(e,c,U(t),`drain`);for(let e of c.conversations)r.has(e.conversationId)||(r.add(e.conversationId),n.push(e));if(!c.hasMore||c.conversations.length===0)break}}catch(e){throw c(`error`),e}return c(`ok`),W(t,n)}async function J(e){let{conversations:t}=await K(e,0,`existence_probe`);return t.length>0}async function oe(e){let t=await K(e,0,`landing`,{foregroundOnly:`true`},1);return G(e,t,`foreground`,`landing`),t.conversations[0]??null}var se=`system:pinned`,ce=`system:all`,le=`vellum`;async function ue(e,n){let{data:i,error:a,response:s}=await o({path:{assistant_id:e},throwOnError:!1,signal:n});if(r(s,a,`Failed to fetch unread conversation count.`),!s.ok){if(s.status===404)return null;throw t(a,s)}return i?.count??null}function Y(e){return c({path:{assistant_id:e??``}})}async function de(e,n){let{data:i,error:a,response:o}=await s({path:{assistant_id:e},throwOnError:!1,signal:n});if(r(o,a,`Failed to fetch sidebar sections.`),!o.ok){if(o.status===404)return null;throw t(a,o)}return i?.sections??null}async function fe(e,t={},n=`first_page_refresh`){let r=await K(e,0,n,t);return G(e,r,U(t),n),{conversations:W(t,r.conversations),hasMore:r.hasMore}}async function pe(e,t,n){let r=await K(e,n,`load_more`,t);return{conversations:r.conversations,hasMore:r.hasMore}}var X=3e4;function me(t){return e({queryKey:B(t),queryFn:({signal:e})=>ue(t,e),staleTime:X,refetchOnWindowFocus:!1})}function he(t){return e({queryKey:Y(t),queryFn:({signal:e})=>de(t,e),staleTime:X,refetchOnWindowFocus:!1})}var Z=[`groupId`,`isPinned`,`archivedAt`,`surfacedAt`,`conversationType`,`originChannel`];function ge(e){return Z.some(t=>t in e)}function Q(e){return e.archivedAt!=null||e.conversationType===`private`?!1:e.conversationType!==`background`&&e.conversationType!==`scheduled`&&e.groupId!==`system:background`&&e.groupId!==`system:scheduled`?!0:e.source===`subagent`?!1:e.surfacedAt!=null||m(e.groupId)}function _e(e,t){if(!Q(e))return!1;let{groupId:n,originChannel:r}=t;if(n===`system:pinned`){if(!h(e))return!1}else if(n===`system:all`){if(h(e)||m(e.groupId))return!1}else if(n!==void 0&&e.groupId!==n)return!1;return r===void 0?!0:r===`vellum`?e.originChannel==null||e.originChannel===`vellum`:e.originChannel===r}function $(e,t){if(h(e))return t.kind===`pinned`;if(m(e.groupId))return t.kind===`group`&&t.groupId===e.groupId;let n=e.originChannel;return n==null||n===`vellum`?t.kind===`chats`:t.kind===`channel`&&t.channelId===n}function ve(e,t,n){if(!t)return;let r=Y(t),i=e.getQueryData(r);if(i==null||i.some(e=>$(n,e)))return;if(h(n)){e.setQueryData(r,[{kind:`pinned`,total:1,unread:0},...i]);return}let a=n.groupId;if(m(a)){let n=(e.getQueryData(l({path:{assistant_id:t}}))?.groups)?.find(e=>e.id===a);if(!n)return;e.setQueryData(r,[...i,{kind:`group`,groupId:a,name:n.name,icon:n.icon??null,sortPosition:n.sortPosition??0,total:1,unread:0}]);return}let o=n.originChannel;o==null||o===`vellum`||e.setQueryData(r,[...i,{kind:`channel`,channelId:o,total:1,unread:0}])}function ye(e,t,n){if(!t)return[];let r=[],i=e.getQueriesData({queryKey:D(t)});for(let[t,a]of i){let i=O(t);if(!i||!A(i))continue;if(!a){r.push(t);continue}let o=a.conversations,s=o.findIndex(e=>e.conversationId===n.conversationId),c=_e(n,i);if(c===(s!==-1)){if(c&&o[s]!==n){let r=[...o];r[s]=n,e.setQueryData(t,{conversations:r,hasMore:a.hasMore})}continue}if(c){let r=ie(a,n);if(r===a)continue;e.setQueryData(t,r)}else e.setQueryData(t,{conversations:o.filter(e=>e.conversationId!==n.conversationId),hasMore:a.hasMore});r.push(t)}return r}export{D as A,x as B,ae as C,C as D,ee as E,A as F,h as H,S as I,y as L,E as M,j as N,te as O,re as P,v as R,P as S,ne as T,m as U,g as V,_ as W,me as _,ye as a,M as b,ce as c,oe as d,J as f,Y as g,he as h,ge as i,k as j,O as k,se as l,pe as m,Q as n,le as o,fe as p,$ as r,H as s,ve as t,q as u,B as v,w,N as x,z as y,b as z};
|
package/dist/assets/{security-redirect-page-C1UvbW-C.js → security-redirect-page-eZ_C_Wf0.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{d as n}from"./chunk-5KNZJZUH-BUqIilZr.js";import{d as r}from"./routes-
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{d as n}from"./chunk-5KNZJZUH-BUqIilZr.js";import{d as r}from"./routes-yNhBxUSb.js";var i=e(t(),1);function a(){let e=n();return(0,i.useEffect)(()=>{e(r.settings.general,{replace:!0})},[e]),null}export{a as SecurityRedirectPage};
|