@vellumai/web 0.11.4-staging.1 → 0.11.4-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/README.md +0 -8
- package/dist/assets/{BundleConfirmPage-BbdN3tFL.js → BundleConfirmPage-Blq6GhVG.js} +1 -1
- package/dist/assets/{Trans-Ch_EPHgV.js → Trans-CPcWO-v6.js} +1 -1
- package/dist/assets/{about-page-B-1ST2gv.js → about-page-CTTTxSzr.js} +1 -1
- package/dist/assets/{access-DgWVDTc-.js → access-wabdRUmQ.js} +1 -1
- package/dist/assets/{account-page-Bjw-Whl-.js → account-page-DINYg3Rl.js} +1 -1
- package/dist/assets/{account-shell-7DXx2oD4.js → account-shell-DQFZ4C79.js} +1 -1
- package/dist/assets/{acp-run-actions-D3BHB3kZ.js → acp-run-actions-CkYR2vBH.js} +1 -1
- package/dist/assets/{acp-run-detail-panel-CMV1hamc.js → acp-run-detail-panel-Dt_Dcegh.js} +4 -4
- package/dist/assets/{acp-run-store-DpbMRWeI.js → acp-run-store-k9Syb04D.js} +1 -1
- package/dist/assets/activity-steps-panel-B9N9npP8.js +1 -0
- package/dist/assets/{add-credential-modal-CAorWf5a.js → add-credential-modal-Bn2SkYV8.js} +1 -1
- package/dist/assets/{add-credits-modal-NK9YUVin.js → add-credits-modal-lFCQGz49.js} +1 -1
- package/dist/assets/ai-page-DuZ_jor4.js +1 -0
- package/dist/assets/{api-xbjYCkk-.js → api-C72Ea0va.js} +1 -1
- package/dist/assets/{api-asaDrkTi.js → api-Dppu0jIX.js} +1 -1
- package/dist/assets/{api-key-screen-BLsynLtR.js → api-key-screen-CbIBGdOH.js} +1 -1
- package/dist/assets/{app-card-oG9LxSg9.js → app-card-BrtrF2PU.js} +1 -1
- package/dist/assets/{assistant-status-panel-CdJKE_VM.js → assistant-status-panel-DUB7x8Cv.js} +1 -1
- package/dist/assets/{auth-store-BDMYc7te.js → auth-store-B9pHhreb.js} +2 -2
- package/dist/assets/{avatar-random-cVA-5Ukx.js → avatar-random-Ux7JUtwk.js} +1 -1
- package/dist/assets/{background-task-actions-Cf2kEaWh.js → background-task-actions-D3TOUuY8.js} +1 -1
- package/dist/assets/{background-task-detail-panel-DWGWcjjS.js → background-task-detail-panel-nHViOVhW.js} +1 -1
- package/dist/assets/{background-task-store-eQZGVUDr.js → background-task-store-r1LOGfBn.js} +1 -1
- package/dist/assets/{billing-page-scyDxDPK.js → billing-page-BtPUFL3X.js} +3 -3
- package/dist/assets/{bookmarks-page-JMPRm3As.js → bookmarks-page-BA7-0dXF.js} +1 -1
- package/dist/assets/{browser-CZ10MkOr.js → browser-DwONNRIj.js} +2 -2
- package/dist/assets/{build-state-DdpPjDMZ.js → build-state-bnyw3m5Y.js} +1 -1
- package/dist/assets/channels-page-route-Da6XgpGs.js +9 -0
- package/dist/assets/{chat-sgiUoK1u.js → chat-BfpNzA77.js} +1 -1
- package/dist/assets/chat-DRdXDFUk.js +3 -0
- package/dist/assets/{chat-avatar-B1G491hG.js → chat-avatar-RM6-aunH.js} +1 -1
- package/dist/assets/chat-markdown-message-DWQZLyLI.js +1 -0
- package/dist/assets/{checkout-continuation-ChMQkpyi.js → checkout-continuation-B34WX6T6.js} +1 -1
- package/dist/assets/{checkout-page-Cpk90EXc.js → checkout-page-ZxCMmuwz.js} +1 -1
- package/dist/assets/checkout-return-target-CpckAKDY.js +1 -0
- package/dist/assets/{client-perf-C4GkD7vz.js → client-perf-Daz5cYUH.js} +1 -1
- package/dist/assets/command-palette-C6h4Ip2u.js +1 -0
- package/dist/assets/{command-palette-window-page-BP9A8L2v.js → command-palette-window-page-BKbM5K6f.js} +1 -1
- package/dist/assets/{companion-surface-page-B0hbyF1T.js → companion-surface-page-BbU9Hj0z.js} +1 -1
- package/dist/assets/{composer-settings-BMKJP4Ik.js → composer-settings-DYfbHO-e.js} +1 -1
- package/dist/assets/{connect-page-DKFPwsN0.js → connect-page-DxRMNc2U.js} +1 -1
- package/dist/assets/{consent-controls-hAYNW2he.js → consent-controls-Dz0ScMsh.js} +1 -1
- package/dist/assets/contacts-page-route-C-7wKpdG.js +1 -0
- package/dist/assets/{conversation-cache-DY3GhyFA.js → conversation-cache-ztu3M4pz.js} +1 -1
- package/dist/assets/{conversation-list-fetchers-CVKv5BpN.js → conversation-list-fetchers-eA7yZMEu.js} +1 -1
- package/dist/assets/{conversation-navigation-Bw3eQBGU.js → conversation-navigation-tCTlvwgs.js} +1 -1
- package/dist/assets/{conversation-queries-7BVaya69.js → conversation-queries-DkkuIyRB.js} +1 -1
- package/dist/assets/{credential-entry-page-BxNWgyvZ.js → credential-entry-page-DqEK_3ve.js} +1 -1
- package/dist/assets/credentials-page-Nx8MKxw7.js +1 -0
- package/dist/assets/{csv-preview-Ba7nV5mb.js → csv-preview-DfyT2oPn.js} +1 -1
- package/dist/assets/{daily-reset-time-i6mZWgVc.js → daily-reset-time-B28vdbVK.js} +1 -1
- package/dist/assets/debug-page-F58Vngs5.js +4 -0
- package/dist/assets/{deploy-dialogs-CG-65xs0.js → deploy-dialogs-Dr5UW72X.js} +1 -1
- package/dist/assets/{deploy-store-eps_MrT7.js → deploy-store-BAIpED5W.js} +1 -1
- package/dist/assets/{detail-card-CC0br9gQ.js → detail-card-BvBqhvvy.js} +1 -1
- package/dist/assets/{detail-drawer-BpdqER__.js → detail-drawer-zQohjzAF.js} +1 -1
- package/dist/assets/{detail-shell-Bmyv2wPh.js → detail-shell-6omiDynS.js} +1 -1
- package/dist/assets/developer-page-BgkajhCF.js +1 -0
- package/dist/assets/{diagnostics-CeLo0IQo.js → diagnostics-B6s70M5A.js} +1 -1
- package/dist/assets/{doctor-handoff-store-D1gIUvVD.js → doctor-handoff-store-DbvChP6h.js} +1 -1
- package/dist/assets/{document-viewer-container-Bywwxt6G.js → document-viewer-container-CiSaZjGT.js} +2 -2
- package/dist/assets/{document-viewer-page-qJKfO2Qb.js → document-viewer-page-B41ybONf.js} +1 -1
- package/dist/assets/{emails-page-B0--yw62.js → emails-page-zqESuC5i.js} +1 -1
- package/dist/assets/{esm-CoB42w1C.js → esm-BAZfwa77.js} +2 -2
- package/dist/assets/{esm-DyAueRRL.js → esm-BpO8b4iY.js} +2 -2
- package/dist/assets/esm-C-oF6bck.js +2 -0
- package/dist/assets/{esm-BbX6z_Bm.js → esm-CuIRAuen.js} +2 -2
- package/dist/assets/{esm-_vI9--3B.js → esm-CyDcfaYH.js} +2 -2
- package/dist/assets/{esm-BKg0nbmu.js → esm-D7eT5n3U.js} +2 -2
- package/dist/assets/{esm-B4xcxzQN.js → esm-tXi8GsTV.js} +2 -2
- package/dist/assets/eye-bbox-BR5NO1BX.js +1 -0
- package/dist/assets/file-editor-B2BJsOt0.js +1 -0
- package/dist/assets/file-markdown-EG3aJEi8.js +2 -0
- package/dist/assets/first-run-scope-mN3YhjgX.js +1 -0
- package/dist/assets/{funnel-events-BddkbWqn.js → funnel-events-CH_O9aTg.js} +1 -1
- package/dist/assets/general-page-C6eGuDih.js +1 -0
- package/dist/assets/{haptics-DafZDCxm.js → haptics-BhuZvnto.js} +2 -2
- package/dist/assets/{hatching-screen-BKfkDhPr.js → hatching-screen-Ceyfxgc-.js} +1 -1
- package/dist/assets/{home-page-route-B6vQYv0r.js → home-page-route-DdXLgyeu.js} +1 -1
- package/dist/assets/{home-tool-permission-card-IF0-aLrT.js → home-tool-permission-card-NAxzVd1l.js} +1 -1
- package/dist/assets/{hosting-screen-BJ5SfJoU.js → hosting-screen-D05jZjLX.js} +1 -1
- package/dist/assets/{i18n-zb2mgr1B.js → i18n-BR-AyG5b.js} +2 -2
- package/dist/assets/identity-page-route-BlKLitBM.js +7 -0
- package/dist/assets/{index-xicEUutS.js → index-CKyw1JVb.js} +3 -3
- package/dist/assets/index-DJ5ObIDJ.css +2 -0
- package/dist/assets/{ingest-B9D2Cyin.js → ingest-BwYkhorN.js} +1 -1
- package/dist/assets/inspect-page-m1poii66.js +9 -0
- package/dist/assets/integrations-page-Duhjka1l.js +1 -0
- package/dist/assets/{intelligence-layout-BESJ3-1s.js → intelligence-layout-ld1yOf08.js} +1 -1
- package/dist/assets/{invalidate-memory-queries-CS15Vuec.js → invalidate-memory-queries-YJf2XJ5P.js} +1 -1
- package/dist/assets/{invalidate-plugin-queries-DvUskShG.js → invalidate-plugin-queries-CySCFK8G.js} +1 -1
- package/dist/assets/latest-assistant-text-CDrxmzc0.js +24 -0
- package/dist/assets/{library-detail-page-BBfYWKvm.js → library-detail-page-v5CrGIps.js} +1 -1
- package/dist/assets/{library-page-BgbT6zej.js → library-page-BUnsZHzU.js} +1 -1
- package/dist/assets/{local-runtime-upgrade-SQQhJhOk.js → local-runtime-upgrade-Bwp6_dxW.js} +1 -1
- package/dist/assets/{login-flow-CTw5lXLx.js → login-flow-imrf1-ub.js} +1 -1
- package/dist/assets/{login-page-D2GAHcR7.js → login-page-C8owPhpB.js} +1 -1
- package/dist/assets/{logout-page-Cukoglve.js → logout-page-DfY78j6S.js} +1 -1
- package/dist/assets/{logs-layout-B4KDB9Sb.js → logs-layout-Dox-b2zq.js} +1 -1
- package/dist/assets/{media-preview-DjetaJpN.js → media-preview-6mD4wHKW.js} +1 -1
- package/dist/assets/{memory-page-route-Bnyvrbhn.js → memory-page-route-Cen_nGPc.js} +1 -1
- package/dist/assets/{memory-router-playground-page-8M60K9iJ.js → memory-router-playground-page-BvNM2MJO.js} +1 -1
- package/dist/assets/{message-files-panel-Cwlkr5w4.js → message-files-panel-CECqngl9.js} +1 -1
- package/dist/assets/{messages-D0PQ2X1S.js → messages-ctx0P03F.js} +1 -1
- package/dist/assets/{metric-card-SnROKwaj.js → metric-card-CRmU_rxS.js} +1 -1
- package/dist/assets/{multi-activity-group-CenHDhpe.js → multi-activity-group-DuW4ziR3.js} +1 -1
- package/dist/assets/native-anchor-BE-YHt8Q.js +1 -0
- package/dist/assets/native-deep-link-DliAfHU5.js +2 -0
- package/dist/assets/{native-file-DWbiI8L-.js → native-file-B9kJgftd.js} +2 -2
- package/dist/assets/{navigation-resolver-jn3fW9IN.js → navigation-resolver-CDeIpFuD.js} +1 -1
- package/dist/assets/{not-found-CRrNNxgD.js → not-found-mMT3d6dm.js} +1 -1
- package/dist/assets/{notifications-D7I0R0Np.js → notifications-Dx3P9a9Q.js} +1 -1
- package/dist/assets/{notifications-page-D6Llk4Q-.js → notifications-page-COU3Z3YY.js} +1 -1
- package/dist/assets/{oauth-complete-page-E47i6-KO.js → oauth-complete-page-D5uYsl41.js} +1 -1
- package/dist/assets/{oauth-connection-utils-BnF9kIoa.js → oauth-connection-utils-SS0qmAK4.js} +1 -1
- package/dist/assets/{oauth-popup-complete-page-Be9bz47B.js → oauth-popup-complete-page-BLw62jns.js} +1 -1
- package/dist/assets/open-workspace-file-DFo0Oq0o.js +2 -0
- package/dist/assets/{operational-status-DswnmGh5.js → operational-status-BsKLhv9Z.js} +1 -1
- package/dist/assets/{page-shell-CUz7vDVT.js → page-shell-DD_mHkHn.js} +1 -1
- package/dist/assets/{pairing-page-B93qLwkU.js → pairing-page-CI_qOlWo.js} +1 -1
- package/dist/assets/{pdf-file-preview-aTyWAALx.js → pdf-file-preview-5NsoLZLI.js} +1 -1
- package/dist/assets/{pdf-preview-CFuSHh-t.js → pdf-preview-DEWKJD0r.js} +2 -2
- package/dist/assets/{personality-page-Do1Q8mUB.js → personality-page-CI8jnXQp.js} +1 -1
- package/dist/assets/{plans-page-CxRb_Kby.js → plans-page-BlxaE-cv.js} +1 -1
- package/dist/assets/{platform-detection-BIfuAgU8.js → platform-detection-D4gxJctC.js} +1 -1
- package/dist/assets/{platform-login-notice-CaNQOYUj.js → platform-login-notice-CM-AbOQ7.js} +1 -1
- package/dist/assets/{platform-loopback-page-205CvkDI.js → platform-loopback-page-BLNuk6f2.js} +1 -1
- package/dist/assets/{preview-error-CdFTgKSI.js → preview-error-B-1p750d.js} +1 -1
- package/dist/assets/{privacy-page-Beg9rE7-.js → privacy-page-0K-bsvKl.js} +1 -1
- package/dist/assets/{privacy-screen-EFJ-aTdl.js → privacy-screen-DgDOXFfw.js} +1 -1
- package/dist/assets/profile-pickers-DBCSE_FG.js +1 -0
- package/dist/assets/{provider-callback-page-BKDWiQis.js → provider-callback-page-BN9NQV7v.js} +1 -1
- package/dist/assets/{provider-signup-page-CsCS7GAV.js → provider-signup-page-CTwmzSoF.js} +1 -1
- package/dist/assets/{provisioning-targets-CSwI177z.js → provisioning-targets-CFe7Jgy1.js} +1 -1
- package/dist/assets/{push-registration-CVotM2hK.js → push-registration-CIhXf1CF.js} +2 -2
- package/dist/assets/{remove-from-device-dialog-BGul1xBz.js → remove-from-device-dialog-DSScuMVd.js} +1 -1
- package/dist/assets/{research-mock-page-DDwmtrZR.js → research-mock-page-bhSrGrBh.js} +1 -1
- package/dist/assets/research-onboarding-route-CKyfP6oo.js +50 -0
- package/dist/assets/{research-results-view-DDjp2hBc.js → research-results-view-7psD5IrG.js} +1 -1
- package/dist/assets/{retire-confirm-dialog-Cz64ywTF.js → retire-confirm-dialog-BD1rkM8j.js} +1 -1
- package/dist/assets/{review-terms-screen-Bros6R87.js → review-terms-screen-XIGeusDw.js} +1 -1
- package/dist/assets/routes-lLsbgbrj.js +24 -0
- package/dist/assets/{runtime-upgrade-banner-WHzYN73y.js → runtime-upgrade-banner-BeO8tW05.js} +2 -2
- package/dist/assets/{sandbox-bridge-ajRoXgYL.js → sandbox-bridge-BismgxxG.js} +1 -1
- package/dist/assets/{schedules-DjkLl0OP.js → schedules-DVJx5NG9.js} +1 -1
- package/dist/assets/schedules-page-DRr8EB5D.js +1 -0
- package/dist/assets/{select-assistant-screen-CALuntMj.js → select-assistant-screen-Cbta9HDV.js} +1 -1
- package/dist/assets/{self-hosted-servers-CsywZANM.js → self-hosted-servers-omz1yNrQ.js} +1 -1
- package/dist/assets/{setting-row-JYdvkVjj.js → setting-row-BgrWOMW9.js} +1 -1
- package/dist/assets/settings-DKVDS49I.js +1 -0
- package/dist/assets/{settings-divider-gaQk2Yl5.js → settings-divider-HtBTQzlA.js} +1 -1
- package/dist/assets/{settings-layout-vTkMzpIY.js → settings-layout-BdUaFkyr.js} +1 -1
- package/dist/assets/{settings-navigation-Dp0sDZAh.js → settings-navigation-vp8wtiyE.js} +1 -1
- package/dist/assets/{share-feedback-modal-DiQP_cCZ.js → share-feedback-modal-D9fAEU5y.js} +2 -2
- package/dist/assets/{sidebar-tree-CSPhTnBf.js → sidebar-tree-9BVzkS4K.js} +1 -1
- package/dist/assets/{signup-page-B2mbu3qd.js → signup-page-lzOszv4S.js} +1 -1
- package/dist/assets/{site-favicon-dST102dp.js → site-favicon-BvIzxzVw.js} +1 -1
- package/dist/assets/{skill-detail-page-BZO12fh5.js → skill-detail-page-BdSINra9.js} +2 -2
- package/dist/assets/skill-detail-panel-88oHOdSH.js +1 -0
- package/dist/assets/{skills-DdBQ-tNs.js → skills-HuNDpwX2.js} +1 -1
- package/dist/assets/{sounds-page-sGA-Nc8o.js → sounds-page-CeZjxvIu.js} +1 -1
- package/dist/assets/{src-DjIqxQVd.js → src-njXJqrpo.js} +3 -3
- package/dist/assets/{start-screen-DeVoGKX1.js → start-screen-B1dP4bbA.js} +1 -1
- package/dist/assets/status-badge-pill-BuiIFTz-.js +1 -0
- package/dist/assets/stt-language-picker-modal-BK_1xcYe.js +1 -0
- package/dist/assets/subagent-detail-panel-CkxNHVOv.js +4 -0
- package/dist/assets/{subagent-store-ChHk8ZsH.js → subagent-store-B0Ftpguk.js} +1 -1
- package/dist/assets/{superpowers-page-Dk3g_Of2.js → superpowers-page-B_1_d4LI.js} +1 -1
- package/dist/assets/{system-events-page-XYxGo8gh.js → system-events-page-BBVNKwBJ.js} +1 -1
- package/dist/assets/{telegram-setup-wizard-DgdjP2o8.js → telegram-setup-wizard-D_Vwl3_I.js} +1 -1
- package/dist/assets/{text-preview-BJRoXOON.js → text-preview-BIeJHE0-.js} +1 -1
- package/dist/assets/{theme-stage-page-DPIsJBUJ.js → theme-stage-page-gWlI1Nzt.js} +1 -1
- package/dist/assets/{tiptap-document-editor-Cjd5FCBm.js → tiptap-document-editor-BunsgiVU.js} +1 -1
- package/dist/assets/toggle-ibKLySIy.js +1 -0
- package/dist/assets/{tool-detail-panel-CeDWOdH-.js → tool-detail-panel-DhzIzJ1Y.js} +2 -2
- package/dist/assets/{upgrade-cancel-page-D24RCdAz.js → upgrade-cancel-page-BiXIXlae.js} +1 -1
- package/dist/assets/{upgrade-success-page-A6d7PRGt.js → upgrade-success-page-C3ptzfvo.js} +1 -1
- package/dist/assets/{use-assistant-capability-CYKqSbfq.js → use-assistant-capability-B55Ji4gD.js} +1 -1
- package/dist/assets/use-assistant-identity-details-0JMOrf_F.js +1 -0
- package/dist/assets/{use-attachment-preview-DvVweDZY.js → use-attachment-preview-jmFGN8h6.js} +2 -2
- package/dist/assets/{use-attachment-squares-ELH7PQrT.js → use-attachment-squares-BSKsILdv.js} +1 -1
- package/dist/assets/{use-bookmarks-B4g9FKC7.js → use-bookmarks-gJWrPT2g.js} +1 -1
- package/dist/assets/{use-checkout-dismiss-refresh-CkeQGnJ0.js → use-checkout-dismiss-refresh-vVysV2xK.js} +1 -1
- package/dist/assets/{use-command-palette-sections-D0RCkx0m.js → use-command-palette-sections-BFV15eUp.js} +1 -1
- package/dist/assets/{use-copy-to-clipboard-oZUc3_ey.js → use-copy-to-clipboard-BeG7f_tZ.js} +1 -1
- package/dist/assets/{use-edge-swipe-Bde-t-dW.js → use-edge-swipe-BxVxJfNS.js} +1 -1
- package/dist/assets/use-edge-swipe-back-DpMHlX97.js +2 -0
- package/dist/assets/{use-edit-app-BZv0JIfX.js → use-edit-app-BlsO9Zav.js} +1 -1
- package/dist/assets/use-element-size-DeouS2c2.js +1 -0
- package/dist/assets/use-invite-link-dialog-TjRVy1GF.js +1 -0
- package/dist/assets/{use-is-org-ready-CWNhmJ2b.js → use-is-org-ready-DyYOTCvQ.js} +1 -1
- package/dist/assets/{use-onboarding-login-Zjbfg9rl.js → use-onboarding-login-DMUDDVUi.js} +1 -1
- package/dist/assets/{use-platform-assistant-id-Bafo85js.js → use-platform-assistant-id-BE6AIost.js} +1 -1
- package/dist/assets/{use-platform-gate-DzpdjzIz.js → use-platform-gate-zft2-meL.js} +1 -1
- package/dist/assets/{use-return-to-short-circuit-pEcvMXUl.js → use-return-to-short-circuit-LcamIc_k.js} +1 -1
- package/dist/assets/use-side-list-room-C1msxm__.js +1 -0
- package/dist/assets/{use-skill-actions-CeeCY9Uf.js → use-skill-actions-oBpczwnY.js} +1 -1
- package/dist/assets/use-sticky-profiles-D6xRVCOS.js +1 -0
- package/dist/assets/use-stt-language-selection-D7DxP7Eo.js +1 -0
- package/dist/assets/{use-subagent-card-data-BIb6t3HE.js → use-subagent-card-data-DOp8Etmj.js} +1 -1
- package/dist/assets/use-touch-mobile-CXJ4hTiW.js +1 -0
- package/dist/assets/{use-transcript-message-by-id-DUV4woMl.js → use-transcript-message-by-id-D5hHvanI.js} +1 -1
- package/dist/assets/{use-transcript-messages-BLtVYqAv.js → use-transcript-messages-BL55GFRr.js} +1 -1
- package/dist/assets/{use-voice-sample-preview-BY_J5WVl.js → use-voice-sample-preview-CLWX7j-h.js} +1 -1
- package/dist/assets/{useTranslation-Dn8TOHE6.js → useTranslation-DxUSOwQs.js} +1 -1
- package/dist/assets/{viewer-store-D3KM2E2N.js → viewer-store-DWY4BtGj.js} +1 -1
- package/dist/assets/voice-page-C3q84Y4H.js +1 -0
- package/dist/assets/{voice-providers-note-BLOdThkh.js → voice-providers-note-CuMBTzti.js} +1 -1
- package/dist/assets/{web-D8nAsA9l.js → web-S8v4qZ8W.js} +1 -1
- package/dist/assets/{web-5yJbtoui.js → web-zM0OZM8V.js} +1 -1
- package/dist/assets/{welcome-screen-U_A3pIDj.js → welcome-screen-Cy46Bw63.js} +1 -1
- package/dist/assets/workflow-detail-panel-CM1Jep4m.js +1 -0
- package/dist/assets/{workflow-store-Dgz97WCS.js → workflow-store-Bpg1fqWU.js} +1 -1
- package/dist/assets/workspace-page-eCfV4q3_.js +1 -0
- package/dist/assets/{workspace-tree-query-C6kx2Bkh.js → workspace-tree-query-BfWSVQB5.js} +1 -1
- package/dist/index.html +109 -108
- package/package.json +1 -1
- package/dist/assets/activity-steps-panel-DEgGLFtM.js +0 -1
- package/dist/assets/ai-page--36Riirz.js +0 -1
- package/dist/assets/channels-page-route-CoHtlp77.js +0 -9
- package/dist/assets/chat-5s_HqBzL.js +0 -3
- package/dist/assets/chat-markdown-message-Btoc6C1G.js +0 -1
- package/dist/assets/checkout-return-target-CYf9SBig.js +0 -1
- package/dist/assets/command-palette-D79Jq26W.js +0 -1
- package/dist/assets/contacts-page-route-9Y1S_HAN.js +0 -1
- package/dist/assets/credentials-page-BVg_keF0.js +0 -1
- package/dist/assets/debug-page-4N-Zj-ts.js +0 -4
- package/dist/assets/developer-page-CQS354Wk.js +0 -1
- package/dist/assets/esm-b7JWOeNl.js +0 -2
- package/dist/assets/file-editor-CSWBRXC5.js +0 -1
- package/dist/assets/file-markdown-CyzsCI8p.js +0 -2
- package/dist/assets/first-run-scope-Cc45jqTq.js +0 -1
- package/dist/assets/general-page-C3gmPYF3.js +0 -1
- package/dist/assets/identity-page-route-D7kzw3D3.js +0 -7
- package/dist/assets/index-BPNYOrwT.css +0 -2
- package/dist/assets/inspect-page-EDi2BOrZ.js +0 -9
- package/dist/assets/integrations-page-DC4dbZvc.js +0 -1
- package/dist/assets/latest-assistant-text-Bhqw0WEB.js +0 -24
- package/dist/assets/mobile-sidebar-drawer-CA_YsRi_.js +0 -1
- package/dist/assets/native-anchor-txt0veYo.js +0 -1
- package/dist/assets/native-deep-link-EZIezcy9.js +0 -1
- package/dist/assets/open-workspace-file-D2FXjNVn.js +0 -2
- package/dist/assets/profile-pickers-CKLILvRc.js +0 -1
- package/dist/assets/research-onboarding-route-BviJKsoz.js +0 -50
- package/dist/assets/routes-Q2DdFIGG.js +0 -24
- package/dist/assets/schedules-page-Bodkcg3J.js +0 -1
- package/dist/assets/settings-DGaRub9k.js +0 -1
- package/dist/assets/skill-detail-panel-CEepQHmY.js +0 -1
- package/dist/assets/status-badge-pill-DxtUb8z3.js +0 -1
- package/dist/assets/stt-language-picker-modal-CihIASi8.js +0 -1
- package/dist/assets/subagent-detail-panel-C9Y7dfKo.js +0 -4
- package/dist/assets/toggle-C-v4x7_A.js +0 -1
- package/dist/assets/use-assistant-identity-details-BVjzLgp6.js +0 -1
- package/dist/assets/use-edge-swipe-back-BWEVQPEJ.js +0 -2
- package/dist/assets/use-element-size-G76uplCp.js +0 -1
- package/dist/assets/use-invite-link-dialog-DgDcqWMz.js +0 -1
- package/dist/assets/use-sticky-profiles-BN2tBekP.js +0 -1
- package/dist/assets/use-touch-mobile-JVxY9M-0.js +0 -1
- package/dist/assets/voice-list-uy2Kwdwg.js +0 -1
- package/dist/assets/voice-page-Bi7r475U.js +0 -1
- package/dist/assets/workflow-detail-panel-fguePScg.js +0 -1
- package/dist/assets/workspace-page-Cp11wrja.js +0 -1
- /package/dist/assets/{a2a-invite-B5XOcUL6.js → a2a-invite-BNCOmr8h.js} +0 -0
- /package/dist/assets/{account-IaNiNsKu.js → account-CtIKBm9p.js} +0 -0
- /package/dist/assets/{android-consumption-only-eY-NLtwG.js → android-consumption-only-CwC2kibz.js} +0 -0
- /package/dist/assets/{animated-avatar-D9mX2duB.js → animated-avatar--_W54iT9.js} +0 -0
- /package/dist/assets/{app-info-xT5AH6o4.js → app-info-DFgKdE7W.js} +0 -0
- /package/dist/assets/{app-types-B4-pVNnY.js → app-types-BY00pXhT.js} +0 -0
- /package/dist/assets/{apple-logo-CVMvoWvp.js → apple-logo-Biu93CTa.js} +0 -0
- /package/dist/assets/{archive-redirect-page-CfCci8ho.js → archive-redirect-page-bx5xRoCl.js} +0 -0
- /package/dist/assets/{avatar-renderer-khj83dWw.js → avatar-renderer-Bja-CJEM.js} +0 -0
- /package/dist/assets/{avatar-subagent-B68bxt0O.js → avatar-subagent-C1J2pUFc.js} +0 -0
- /package/dist/assets/{avatar-tone-CQWYpANf.js → avatar-tone-CTq4cNAY.js} +0 -0
- /package/dist/assets/{billing-redirect-page-XcpsfvIl.js → billing-redirect-page-Dp-j37M1.js} +0 -0
- /package/dist/assets/{build.umd-Bg-JE3PW.js → build.umd-CKImEzO1.js} +0 -0
- /package/dist/assets/{channels-DkTY8D9c.js → channels-C4uOLymq.js} +0 -0
- /package/dist/assets/{common-XXvgM1Lv.js → common-CPxc0tHz.js} +0 -0
- /package/dist/assets/{community-page-CB9oMqgC.js → community-page-D1uzvBFw.js} +0 -0
- /package/dist/assets/{contacts-gateway-D0hHW9dI.js → contacts-gateway-Dp40T_dj.js} +0 -0
- /package/dist/assets/{contacts-Dnxb4zeF.js → contacts-pvrehYPe.js} +0 -0
- /package/dist/assets/{copy-to-clipboard-SOu7HUET.js → copy-to-clipboard-DRZUoOti.js} +0 -0
- /package/dist/assets/{credential-requests-DvnleKK2.js → credential-requests-BsmEdX7t.js} +0 -0
- /package/dist/assets/{danger-zone-redirect-page-BIYa_At7.js → danger-zone-redirect-page-DY3LtITR.js} +0 -0
- /package/dist/assets/{definitions-BLBMbDPd.js → definitions-BNyfuzue.js} +0 -0
- /package/dist/assets/{definitions-BLHO5zVb.js → definitions-DMGv-AVM.js} +0 -0
- /package/dist/assets/{devices-redirect-page-DJtEpVr7.js → devices-redirect-page-BXqfVWSd.js} +0 -0
- /package/dist/assets/{dictation-overlay-page-DLZGCPP_.js → dictation-overlay-page-DR63_PvH.js} +0 -0
- /package/dist/assets/{diff-rows-C_ARHWq3.js → diff-rows-ZG9FwscH.js} +0 -0
- /package/dist/assets/{edit-chat-session-CcwN_rea.js → edit-chat-session-B38z6oPP.js} +0 -0
- /package/dist/assets/{emoji-catalog-data-BGlYkVas.js → emoji-catalog-data-Dqyvj5Ne.js} +0 -0
- /package/dist/assets/{environment-store-CR6vnG9G.js → environment-store-DCU3hheH.js} +0 -0
- /package/dist/assets/{esm-DgDCYysh.js → esm-Bbh10TA1.js} +0 -0
- /package/dist/assets/{esm-BYiovSCx.js → esm-C0OhtIaa.js} +0 -0
- /package/dist/assets/{format-date-Cl5z8sZt.js → format-date-mZFhGVxR.js} +0 -0
- /package/dist/assets/{format-file-size-B3w8pfkS.js → format-file-size-D7QcCVUg.js} +0 -0
- /package/dist/assets/{home-CF1B7GqE.js → home-CoA1W6RA.js} +0 -0
- /package/dist/assets/{intelligence-Dcw50PsN.js → intelligence-Bpz4mQfO.js} +0 -0
- /package/dist/assets/{keyboard-shortcuts-redirect-page-BSNa3QLh.js → keyboard-shortcuts-redirect-page-BUEUuL5W.js} +0 -0
- /package/dist/assets/{library-CCXCwc6z.js → library-CxAscKuj.js} +0 -0
- /package/dist/assets/{link-click-BhQuhukA.js → link-click-c4p6nI2M.js} +0 -0
- /package/dist/assets/{logs-nlP1em1X.js → logs-BlQUbg5S.js} +0 -0
- /package/dist/assets/{machine-sizes-Bx2eSjOW.js → machine-sizes-D5IsW7GE.js} +0 -0
- /package/dist/assets/{onboarding-C6ZFK4YA.js → onboarding-C-LQqXEa.js} +0 -0
- /package/dist/assets/{onboarding-step-layout-CFCN1Nnk.js → onboarding-step-layout-Cksqlmsb.js} +0 -0
- /package/dist/assets/{optimistic-lifecycle-EXwQgNvb.js → optimistic-lifecycle-DIWfvuIw.js} +0 -0
- /package/dist/assets/{page-empty-state-DRbcD4aa.js → page-empty-state-Df3EP_DE.js} +0 -0
- /package/dist/assets/{password-reset-page-Cmbeaggq.js → password-reset-page-0k2eeyou.js} +0 -0
- /package/dist/assets/{pdf-BUxbm1S7.js → pdf-CpDfklza.js} +0 -0
- /package/dist/assets/{plugin-attribution-B_3pbh6m.js → plugin-attribution-TebhIznA.js} +0 -0
- /package/dist/assets/{plugin-detail-page-C0zaBBon.js → plugin-detail-page-N3j9G0yc.js} +0 -0
- /package/dist/assets/{plugins-page-BuN35WCX.js → plugins-page-BPSPELgG.js} +0 -0
- /package/dist/assets/{preview-skeleton-BLpm3j7s.js → preview-skeleton-BreSI6Ln.js} +0 -0
- /package/dist/assets/{profile-metadata-BxP0WOpJ.js → profile-metadata-DAXhAdlI.js} +0 -0
- /package/dist/assets/{provider-key-CzUfGGE_.js → provider-key-CR8jz-eM.js} +0 -0
- /package/dist/assets/{quick-input-page-DYc7eXbP.js → quick-input-page-Mw2f8F3_.js} +0 -0
- /package/dist/assets/{radio-card-nav-BOpJqAoO.js → radio-card-nav-BubfTKOh.js} +0 -0
- /package/dist/assets/{remote-web-COoOfi7K.js → remote-web-Di_UF41i.js} +0 -0
- /package/dist/assets/{schedules-DhrUSTxo.js → schedules-BaUXJBRS.js} +0 -0
- /package/dist/assets/{schedules-630osdOz.js → schedules-JL1Laub-.js} +0 -0
- /package/dist/assets/{security-redirect-page-D9_08zix.js → security-redirect-page-Ce11_hfW.js} +0 -0
- /package/dist/assets/{signup-shell-BLq9UcAD.js → signup-shell-XnqyIHQa.js} +0 -0
- /package/dist/assets/{skill-icon-BEzVeada.js → skill-icon-xO9VGnPV.js} +0 -0
- /package/dist/assets/{skills-page-CpajWLSk.js → skills-page-bnp9x1iR.js} +0 -0
- /package/dist/assets/{system-events-redirect-page-CdqIVW5m.js → system-events-redirect-page-W8knAadR.js} +0 -0
- /package/dist/assets/{terminal-B8-uO_zb.js → terminal-B4go-vP8.js} +0 -0
- /package/dist/assets/{three-dot-indicator-BFNMvd3i.js → three-dot-indicator-BhUevb3V.js} +0 -0
- /package/dist/assets/{usage-redirect-page-Bk755PQU.js → usage-redirect-page-DXcbB81p.js} +0 -0
- /package/dist/assets/{use-active-assistant-id-Cgt1z2rZ.js → use-active-assistant-id-Btl1-4sB.js} +0 -0
- /package/dist/assets/{use-local-file-info-CowxNLsG.js → use-local-file-info-Dz017Fii.js} +0 -0
- /package/dist/assets/{use-skill-detail-files-2agjQ-pp.js → use-skill-detail-files-Bzwall4_.js} +0 -0
- /package/dist/assets/{use-supports-credentials-settings-BBUFotal.js → use-supports-credentials-settings-D9oEIOk9.js} +0 -0
- /package/dist/assets/{weather-forecast-display-BMFPvW83.js → weather-forecast-display-BRi0CN73.js} +0 -0
- /package/dist/assets/{web-DT7CHk3X.js → web-Bc0yxcTg.js} +0 -0
- /package/dist/assets/{web-CnTPI_xz.js → web-DUcCWo6-.js} +0 -0
- /package/dist/assets/{web-CpFPB7iN.js → web-DnUU5XRV.js} +0 -0
- /package/dist/assets/{web-DfzBW3mJ.js → web-DoWs0tX8.js} +0 -0
- /package/dist/assets/{web-BXqKHeFH.js → web-DprnafKw.js} +0 -0
- /package/dist/assets/{web-fHk-S0Kt.js → web-bVuMezJ9.js} +0 -0
- /package/dist/assets/{web-D2fHQj5v.js → web-xXRFVuHp.js} +0 -0
- /package/dist/assets/{workspace-CCzLdd4F.js → workspace-B3DIYRpz.js} +0 -0
- /package/dist/assets/{xterm-CfcAttTO.js → xterm-5SK_xX72.js} +0 -0
- /package/dist/assets/{xterm-addon-fit-CmOTEB5O.js → xterm-addon-fit-Bov_2YwK.js} +0 -0
package/dist/assets/{runtime-upgrade-banner-WHzYN73y.js → runtime-upgrade-banner-BeO8tW05.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-Cdvvw9J5.js";import{t as n}from"./react-BFJW0bSv.js";import{t as r}from"./button-DSjqKLvM.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-CMu7CkQU.js";import{t as s}from"./useQuery-Bz-fbQ-m.js";import{t as c}from"./useMutation-CXGTrp4W.js";import{t as l}from"./jsx-runtime-D3ZM-ToX.js";import{t as u}from"./createLucideIcon-C_IfoPaZ.js";import{t as d}from"./circle-alert-DEIiXMF-.js";import{t as f}from"./circle-check-BG2g8udA.js";import{t as p}from"./cloud-off-CpFUHEgx.js";import{t as m}from"./info-Bjcv3rf9.js";import{t as h}from"./loader-circle-oY5laABh.js";import{t as g}from"./moon-C8Wjcz8V.js";import{t as _}from"./refresh-cw-Cvdm1xeK.js";import{t as v}from"./triangle-alert-C5SOfs-q.js";import{t as y}from"./wrench-Bpk2afMn.js";import{n as b}from"./toast-BrKo5b4d.js";import{t as x}from"./confirm-dialog-DNaRfy4W.js";import{W as S,h as ee,z as te}from"./local-mode-DP-5m-kS.js";import{t as C}from"./is-electron-BSK3AUxG.js";import{n as w,t as T}from"./resolved-assistants-store-BuqctGKE.js";import{t as E}from"./assistant-identity-store-DTP7xfNP.js";import{_t as ne,lt as re,rt as D,tt as O}from"./auth-store-BDMYc7te.js";import{Q as ie,k as ae}from"./sdk.gen-CMy8CiG0.js";import{n as k}from"./event-bus-CibPCHnD.js";import{t as A}from"./client-feature-flag-store-B9Bz0uyL.js";import{k as oe}from"./platform-detection-BIfuAgU8.js";import{i as j,t as M}from"./dist-D8V9YSOm.js";import{d as N}from"./routes-C293MsBG.js";import{r as se,t as P}from"./operational-status-DswnmGh5.js";import{t as F}from"./use-bus-subscription-CBlDL_ew.js";import{O as I,St as L,k as R}from"./react-query.gen-CqLxrlpP.js";import{t as z}from"./misc-wmny7PlA.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-SQQhJhOk.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 C()?window.vellum?.connectivity?.onState(e)??(()=>void 0):()=>void 0}function W(e){C()&&window.vellum?.connectivity?.setDevice(e)}async function G(e){if(!C())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-CpFPB7iN.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=C(),n=oe(),{connectivityState:i,retryConnectivity:a}=he(),o=_e(),s=w.use.activeAssistantId(),c=w.use.selectedAssistantId(),l=w.use.assistants(),u=O.use.currentOrganizationId(),d=ne.use.assistantState(),f=ne.use.operationalStatusAssistantId(),m=(0,H.useMemo)(()=>{let e=T(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:E,isError:ie,refetch:k}=b,[A,j]=(0,H.useState)(!1);(0,H.useEffect)(()=>{E?.state===`sleeping`?j(!0):(E?.state===`active`||E?.state===`crash_loop`||E?.state===`not_found`)&&j(!1)},[E?.state]),(0,H.useEffect)(()=>{if(!A||E?.state!==`unreachable`)return;let e=setTimeout(()=>{j(!1)},6e4);return()=>clearTimeout(e)},[A,E?.state]);let[M,N]=(0,H.useState)(!1);(0,H.useEffect)(()=>{E?.state===`active`?N(!0):(E?.state===`sleeping`||E?.state===`crash_loop`||E?.state===`not_found`)&&N(!1)},[E?.state]),(0,H.useEffect)(()=>{if(!M||E?.state!==`unreachable`)return;let e=setTimeout(()=>{N(!1)},15e3);return()=>clearTimeout(e)},[M,E?.state]);let F=ye(),[I,L]=(0,H.useState)(null);(0,H.useEffect)(()=>{_&&(E?.state===`restarting`?L(E.detail_state===`failed`?null:_):(E?.state===`active`||E?.state===`sleeping`||E?.state===`not_found`)&&L(null))},[_,E?.state,E?.detail_state]);let R=I!==null&&I===_;(0,H.useEffect)(()=>{if(!R||E?.state!==`crash_loop`)return;let e=setTimeout(()=>{L(null)},6e4);return()=>clearTimeout(e)},[R,E?.state]);let[z,B]=(0,H.useState)(null),ce=(0,H.useRef)(E?.state);(0,H.useEffect)(()=>{let e=ce.current;ce.current=E?.state,E?.state!==e&&B(null)},[E?.state]);let le=(0,H.useCallback)(()=>{E?.state&&B(E.state)},[E?.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&&!te()&&$(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&&ee(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&&(!E||P(E));if(ie&&!Y&&!F)return{tone:`error`,title:`Assistant status is unavailable`,actions:y?Oe():void 0};let X=E?.state===`unreachable`&&(A||F)?{...E,state:`waking`}:E?.state===`unreachable`&&M?{...E,state:`sleeping`}:E?.state===`crash_loop`&&R?{...E,state:`restarting`}:E,Z=X?.detail_state===`failed`&&X.state===z,Q=Y?we():Z?null:Ee(X,y,le);return!(E?.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=C()?`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=w.use.activeAssistantId(),p=E.use.version(),m=A.use.previewChannel(),h=e??f,g=t??p,v=w(e=>h?e.assistants.find(e=>e.id===h):null),y=v?.cloud===`local`,S=v?.isPlatformHosted===!0&&v?.isLocal===!1,ee=v?.runtimeVersion??g??null,C=v?.currentReleaseVersion??g??null,T=y?`local`:S?`platform`:null,{data:D}=se(S?h??null:null),O=T===`local`?ee:T===`platform`?C: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&&te()||!!h&&!!O&&S&&j,N=ce(v?.releaseChannel,m),{data:P,refetch:F}=s({...L({query:T===`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)(()=>T===`platform`?P?.find(e=>e.is_stable!==!1)??P?.[0]:ue(P),[T,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=T===`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||!T)){o(!1);try{if(T===`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&&w.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-DnUU5XRV.js","assets/dist-D8V9YSOm.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./capture-error-Cdvvw9J5.js";import{t as n}from"./react-BFJW0bSv.js";import{t as r}from"./button-DSjqKLvM.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-CMu7CkQU.js";import{t as s}from"./useQuery-Bz-fbQ-m.js";import{t as c}from"./useMutation-CXGTrp4W.js";import{t as l}from"./jsx-runtime-D3ZM-ToX.js";import{t as u}from"./createLucideIcon-C_IfoPaZ.js";import{t as d}from"./circle-alert-DEIiXMF-.js";import{t as f}from"./circle-check-BG2g8udA.js";import{t as p}from"./cloud-off-CpFUHEgx.js";import{t as m}from"./info-Bjcv3rf9.js";import{t as h}from"./loader-circle-oY5laABh.js";import{t as g}from"./moon-C8Wjcz8V.js";import{t as _}from"./refresh-cw-Cvdm1xeK.js";import{t as v}from"./triangle-alert-C5SOfs-q.js";import{t as y}from"./wrench-Bpk2afMn.js";import{n as b}from"./toast-BrKo5b4d.js";import{t as x}from"./confirm-dialog-DNaRfy4W.js";import{W as S,h as ee,z as te}from"./local-mode-DP-5m-kS.js";import{t as C}from"./is-electron-BSK3AUxG.js";import{n as w,t as T}from"./resolved-assistants-store-BuqctGKE.js";import{t as E}from"./assistant-identity-store-DTP7xfNP.js";import{_t as ne,lt as re,rt as D,tt as O}from"./auth-store-B9pHhreb.js";import{Q as ie,k as ae}from"./sdk.gen-CMy8CiG0.js";import{n as k}from"./event-bus-CibPCHnD.js";import{t as A}from"./client-feature-flag-store-B9Bz0uyL.js";import{k as oe}from"./platform-detection-D4gxJctC.js";import{i as j,t as M}from"./dist-D8V9YSOm.js";import{d as N}from"./routes-C293MsBG.js";import{r as se,t as P}from"./operational-status-BsKLhv9Z.js";import{t as F}from"./use-bus-subscription-CBlDL_ew.js";import{O as I,St as L,k as R}from"./react-query.gen-CqLxrlpP.js";import{t as z}from"./misc-wmny7PlA.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-Bwp6_dxW.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 C()?window.vellum?.connectivity?.onState(e)??(()=>void 0):()=>void 0}function W(e){C()&&window.vellum?.connectivity?.setDevice(e)}async function G(e){if(!C())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-DnUU5XRV.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=C(),n=oe(),{connectivityState:i,retryConnectivity:a}=he(),o=_e(),s=w.use.activeAssistantId(),c=w.use.selectedAssistantId(),l=w.use.assistants(),u=O.use.currentOrganizationId(),d=ne.use.assistantState(),f=ne.use.operationalStatusAssistantId(),m=(0,H.useMemo)(()=>{let e=T(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:E,isError:ie,refetch:k}=b,[A,j]=(0,H.useState)(!1);(0,H.useEffect)(()=>{E?.state===`sleeping`?j(!0):(E?.state===`active`||E?.state===`crash_loop`||E?.state===`not_found`)&&j(!1)},[E?.state]),(0,H.useEffect)(()=>{if(!A||E?.state!==`unreachable`)return;let e=setTimeout(()=>{j(!1)},6e4);return()=>clearTimeout(e)},[A,E?.state]);let[M,N]=(0,H.useState)(!1);(0,H.useEffect)(()=>{E?.state===`active`?N(!0):(E?.state===`sleeping`||E?.state===`crash_loop`||E?.state===`not_found`)&&N(!1)},[E?.state]),(0,H.useEffect)(()=>{if(!M||E?.state!==`unreachable`)return;let e=setTimeout(()=>{N(!1)},15e3);return()=>clearTimeout(e)},[M,E?.state]);let F=ye(),[I,L]=(0,H.useState)(null);(0,H.useEffect)(()=>{_&&(E?.state===`restarting`?L(E.detail_state===`failed`?null:_):(E?.state===`active`||E?.state===`sleeping`||E?.state===`not_found`)&&L(null))},[_,E?.state,E?.detail_state]);let R=I!==null&&I===_;(0,H.useEffect)(()=>{if(!R||E?.state!==`crash_loop`)return;let e=setTimeout(()=>{L(null)},6e4);return()=>clearTimeout(e)},[R,E?.state]);let[z,B]=(0,H.useState)(null),ce=(0,H.useRef)(E?.state);(0,H.useEffect)(()=>{let e=ce.current;ce.current=E?.state,E?.state!==e&&B(null)},[E?.state]);let le=(0,H.useCallback)(()=>{E?.state&&B(E.state)},[E?.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&&!te()&&$(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&&ee(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&&(!E||P(E));if(ie&&!Y&&!F)return{tone:`error`,title:`Assistant status is unavailable`,actions:y?Oe():void 0};let X=E?.state===`unreachable`&&(A||F)?{...E,state:`waking`}:E?.state===`unreachable`&&M?{...E,state:`sleeping`}:E?.state===`crash_loop`&&R?{...E,state:`restarting`}:E,Z=X?.detail_state===`failed`&&X.state===z,Q=Y?we():Z?null:Ee(X,y,le);return!(E?.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=C()?`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=w.use.activeAssistantId(),p=E.use.version(),m=A.use.previewChannel(),h=e??f,g=t??p,v=w(e=>h?e.assistants.find(e=>e.id===h):null),y=v?.cloud===`local`,S=v?.isPlatformHosted===!0&&v?.isLocal===!1,ee=v?.runtimeVersion??g??null,C=v?.currentReleaseVersion??g??null,T=y?`local`:S?`platform`:null,{data:D}=se(S?h??null:null),O=T===`local`?ee:T===`platform`?C: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&&te()||!!h&&!!O&&S&&j,N=ce(v?.releaseChannel,m),{data:P,refetch:F}=s({...L({query:T===`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)(()=>T===`platform`?P?.find(e=>e.is_stable!==!1)??P?.[0]:ue(P),[T,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=T===`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||!T)){o(!1);try{if(T===`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&&w.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-CMu7CkQU.js";import{t as r}from"./useQuery-Bz-fbQ-m.js";import{n as i}from"./toast-BrKo5b4d.js";import{n as a,t as o}from"./react-query.gen-vkBavCkI.js";import{t as s}from"./deploy-store-
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{n}from"./QueryClientProvider-CMu7CkQU.js";import{t as r}from"./useQuery-Bz-fbQ-m.js";import{n as i}from"./toast-BrKo5b4d.js";import{n as a,t as o}from"./react-query.gen-vkBavCkI.js";import{t as s}from"./deploy-store-BAIpED5W.js";import{t as c}from"./copy-to-clipboard-DRZUoOti.js";var l=e(t(),1);function u(e,t,{enabled:i=!0}={}){let c=n(),u=i&&e!==``&&t!=null,d=r({...o({path:{assistant_id:e,id:t??``}}),enabled:u}),f=s.use.isDeploying(),p=(0,l.useRef)(f);return(0,l.useEffect)(()=>{let n=p.current&&!f;p.current=f,n&&u&&c.invalidateQueries({queryKey:a({path:{assistant_id:e,id:t??``}})})},[f,u,e,t,c]),{deployedUrl:d.data?.published?d.data.publicUrl??null:null,isLoading:u&&d.isPending}}function d(e){c(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
|
-
var e={pastToggle:`Anteriores ({count, number})`,loadFailed:`No se pudieron cargar las programaciones.`,retry:`Reintentar`,emptyTitle:`Aún no hay programaciones`,emptyDescription:`Pide a tu asistente que configure una, o crea una tú mismo.`,newConversation:`Nueva conversación`,emptyActionsSeparator:`o`,createSchedule:`Crear programación`,useProfileForAll:`Usar {profile} para todas las programaciones`,oneTimeHeading:`Únicas`},t={costLoading:`Cargando el coste`,costCaption:`gastado en {days, plural, one {el último # día} other {los últimos # días}}`,minimize:`Minimizar {title}`,expand:`Expandir`},n={close:`Cerrar`,closeAria:`Cerrar los detalles de la programación`,details:`Detalles`,status:`Estado`,toggleAria:`Alternar {name}`,nextRun:`Próxima ejecución`,lastRun:`Última ejecución`,cadence:`Frecuencia`,mode:`Modo`,modelProfile:`Perfil de modelo`,modelProfileWorkflowNote:`Cada paso de un flujo de trabajo elige su propio modelo, así que esta programación no tiene un modelo que cambiar.`,chooseModel:`Elige un modelo`,modelChangeFailed:`No se pudo cambiar el modelo.`,costLabel:`Coste de {days, number} días`,runsLabel:`Ejecuciones de {days, number} días`,conversations:`Conversaciones`,conversation:`Conversación`,conversationArchived:`(archivada)`,conversationUnavailable:`(no disponible)`,output:`Salida`,error:`Error`,openRunConversationAria:`Abrir la conversación de la ejecución de las {time}`,toggleRunDetailsAria:`Alternar los detalles de la ejecución de las {time}`,noRunsYet:`Aún no hay ejecuciones.`,recentRuns:`Ejecuciones recientes`,managedByPlugin:`Gestionada por el plugin {plugin}`,delete:`Eliminar`,deleteConfirmMessage:`¿Eliminar "{name}"? Esta acción no se puede deshacer.`,cancel:`Cancelar`,confirmDelete:`Sí, eliminar`,viewUsage:`Ver el uso`,turnOnToRun:`Activa esta programación para ejecutarla`,running:`Ejecutando…`,runNow:`Ejecutar ahora`,runFailed:`No se pudo ejecutar la programación.`,deleteFailed:`No se pudo eliminar la programación.`,toggleFailed:`No se pudo cambiar el estado de la programación.`,notUsedForWorkflow:`No se usa en ejecuciones de flujo de trabajo`,enabled:`Activada`,disabled:`Desactivada`},r={openMemorySettings:`Abrir la configuración de Memoria`,turnOnMemory:`Activar Memoria`,memorySettings:`Configuración de Memoria`,fallbackModelProfile:`Predeterminado (modelo de tareas del sistema)`,nameHeartbeat:`Latido`,nameConsolidation:`Consolidación`,nameRetrospective:`Retrospectiva de memoria`,statusManagedOn:`Activo · Gestionado por Memoria`,statusPaused:`En pausa`,pausedRetrospectiveSwitchedOff:`Las retrospectivas están desactivadas. Vuelve a activarlas en Memoria, dentro de los ajustes.`,pausedRetrospective:`Memoria está desactivada, así que las retrospectivas están en pausa. Vuelve a activar Memoria para reanudarlas.`,pausedConsolidation:`Memoria está desactivada, así que la consolidación está en pausa. Vuelve a activar Memoria para reanudarla.`},i={toggleAria:`Alternar {name}`},a={schedulesPanel:e,scheduleSummaryCard:t,scheduleDetail:n,systemTaskDetail:r,scheduleRow:i};export{a as default,n as scheduleDetail,i as scheduleRow,t as scheduleSummaryCard,e as schedulesPanel,r as systemTaskDetail};
|
|
1
|
+
var e={pastToggle:`Anteriores ({count, number})`,loadFailed:`No se pudieron cargar las programaciones.`,retry:`Reintentar`,emptyTitle:`Aún no hay programaciones`,emptyDescription:`Pide a tu asistente que configure una, o crea una tú mismo.`,newConversation:`Nueva conversación`,emptyActionsSeparator:`o`,createSchedule:`Crear programación`,useProfileForAll:`Usar {profile} para todas las programaciones`,oneTimeHeading:`Únicas`},t={costLoading:`Cargando el coste`,costCaption:`gastado en {days, plural, one {el último # día} other {los últimos # días}}`,minimize:`Minimizar {title}`,expand:`Expandir`},n={close:`Cerrar`,closeAria:`Cerrar los detalles de la programación`,details:`Detalles`,status:`Estado`,toggleAria:`Alternar {name}`,nextRun:`Próxima ejecución`,lastRun:`Última ejecución`,cadence:`Frecuencia`,mode:`Modo`,modelProfile:`Perfil de modelo`,modelProfileWorkflowNote:`Cada paso de un flujo de trabajo elige su propio modelo, así que esta programación no tiene un modelo que cambiar.`,chooseModel:`Elige un modelo`,modelChangeFailed:`No se pudo cambiar el modelo.`,costLabel:`Coste de {days, number} días`,runsLabel:`Ejecuciones de {days, number} días`,conversations:`Conversaciones`,conversation:`Conversación`,conversationArchived:`(archivada)`,conversationUnavailable:`(no disponible)`,output:`Salida`,error:`Error`,openRunConversationAria:`Abrir la conversación de la ejecución de las {time}`,toggleRunDetailsAria:`Alternar los detalles de la ejecución de las {time}`,noRunsYet:`Aún no hay ejecuciones.`,recentRuns:`Ejecuciones recientes`,managedByPlugin:`Gestionada por el plugin {plugin}`,delete:`Eliminar`,deleteConfirmMessage:`¿Eliminar "{name}"? Esta acción no se puede deshacer.`,cancel:`Cancelar`,confirmDelete:`Sí, eliminar`,viewUsage:`Ver el uso`,turnOnToRun:`Activa esta programación para ejecutarla`,running:`Ejecutando…`,runNow:`Ejecutar ahora`,runFailed:`No se pudo ejecutar la programación.`,deleteFailed:`No se pudo eliminar la programación.`,toggleFailed:`No se pudo cambiar el estado de la programación.`,notUsedForWorkflow:`No se usa en ejecuciones de flujo de trabajo`,enabled:`Activada`,disabled:`Desactivada`},r={openMemorySettings:`Abrir la configuración de Memoria`,turnOnMemory:`Activar Memoria`,memorySettings:`Configuración de Memoria`,fallbackModelProfile:`Predeterminado (modelo de tareas del sistema)`,repeats:`Se repite`,nameHeartbeat:`Latido`,nameConsolidation:`Consolidación`,nameRetrospective:`Retrospectiva de memoria`,statusManagedOn:`Activo · Gestionado por Memoria`,statusPaused:`En pausa`,pausedRetrospectiveSwitchedOff:`Las retrospectivas están desactivadas. Vuelve a activarlas en Memoria, dentro de los ajustes.`,pausedRetrospective:`Memoria está desactivada, así que las retrospectivas están en pausa. Vuelve a activar Memoria para reanudarlas.`,pausedConsolidation:`Memoria está desactivada, así que la consolidación está en pausa. Vuelve a activar Memoria para reanudarla.`},i={toggleAria:`Alternar {name}`},a={schedulesPanel:e,scheduleSummaryCard:t,scheduleDetail:n,systemTaskDetail:r,scheduleRow:i};export{a as default,n as scheduleDetail,i as scheduleRow,t as scheduleSummaryCard,e as schedulesPanel,r as systemTaskDetail};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./capture-error-Cdvvw9J5.js";import{t as n}from"./react-BFJW0bSv.js";import{t as r}from"./button-DSjqKLvM.js";import{d as i,p as a}from"./chunk-5KNZJZUH-BUqIilZr.js";import{n as o}from"./QueryClientProvider-CMu7CkQU.js";import{t as s}from"./useQuery-Bz-fbQ-m.js";import{t as c}from"./useInfiniteQuery-Dk8q0n49.js";import{t as l}from"./useMutation-CXGTrp4W.js";import{t as u}from"./jsx-runtime-D3ZM-ToX.js";import{t as d}from"./cn-DFWryB3N.js";import{t as f}from"./typography-BeUa5Fd-.js";import{t as p}from"./card-q0GJX1HZ.js";import{G as m,R as h,s as g}from"./src-njXJqrpo.js";import{t as _}from"./calendar-DFz-eSzk.js";import{t as v}from"./chart-column-DupTx7Uc.js";import{t as y}from"./chevron-down-B_6pb9kS.js";import{t as b}from"./chevron-right-Dx_5VMo6.js";import{t as x}from"./circle-alert-DEIiXMF-.js";import{t as S}from"./clock-DSx5dIWv.js";import{t as C}from"./coins-B6rJlYQ0.js";import{t as w}from"./loader-circle-oY5laABh.js";import{t as T}from"./play-kF4y_ovX.js";import{t as E}from"./repeat-PaQ1rsKC.js";import{t as D}from"./settings-bHOjP4mt.js";import{t as O}from"./trash-2-DL_3_16e.js";import{t as k}from"./notice-C9v3KOP3.js";import{t as A}from"./tag-D0oiSRye.js";import{t as j}from"./modal-Bt1DPFgW.js";import{n as M,t as N}from"./input-BG94bPcH.js";import{t as ee}from"./toggle-ibKLySIy.js";import{n as P}from"./toast-BrKo5b4d.js";import{t as F}from"./confirm-dialog-DNaRfy4W.js";import{t as I}from"./select-B86W_Hs8.js";import{t as L}from"./skeleton-CzdJByjE.js";import{o as R}from"./i18n-BR-AyG5b.js";import{t as z}from"./useTranslation-DxUSOwQs.js";import{a as te,l as ne,n as re,o as ie,r as ae,s as oe}from"./profile-pickers-DBCSE_FG.js";import{d as B}from"./routes-C293MsBG.js";import{B as se,Ct as ce,I as le,L as ue,R as de,S as fe,Zt as pe,_t as me,an as he,b as ge,bt as _e,on as ve,p as ye,u as be,vt as xe,x as Se,xt as Ce,y as we,yt as Te,z as Ee}from"./react-query.gen-vkBavCkI.js";import{n as De,r as Oe}from"./conversation-navigation-tCTlvwgs.js";import{n as ke}from"./use-is-mobile-BONxmNg6.js";import{t as Ae}from"./effective-timezone-BHJf6K2g.js";import{t as je}from"./assistant-feature-flag-store-j3wC3wtf.js";import{t as Me}from"./use-effective-timezone-CEgnEQb7.js";import{t as Ne}from"./use-assistant-capability-B55Ji4gD.js";import{t as Pe}from"./use-active-assistant-id-Btl1-4sB.js";import{n as Fe}from"./detail-shell-6omiDynS.js";import{n as Ie}from"./schedules-JL1Laub-.js";import{t as Le}from"./detail-card-BvBqhvvy.js";import{n as Re,t as ze}from"./detail-drawer-zQohjzAF.js";import{a as Be,c as Ve,i as He,n as Ue,o as We,r as Ge,s as Ke,t as qe}from"./schedules-BaUXJBRS.js";import{i as Je,n as Ye,t as Xe}from"./profile-metadata-DAXhAdlI.js";import{t as Ze}from"./page-empty-state-Df3EP_DE.js";var V=e(n(),1),Qe={frequency:`daily`,minute:0,hour24:9,weekdays:[1],dayOfMonth:1},$e=[{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`}],et=[1,2,3,4,5];function H(e,t,n){return Number.isFinite(e)?Math.min(n,Math.max(t,Math.round(e))):t}function tt(e){let t=Array.from(new Set(e.map(e=>H(e,0,6)).filter(e=>Number.isInteger(e)))).sort((e,t)=>e-t);return t.length>0?t:[1]}function nt(e){let t=H(e.minute,0,59),n=H(e.hour24,0,23);switch(e.frequency){case`hourly`:return`${t} * * * *`;case`daily`:return`${t} ${n} * * *`;case`weekly`:return`${t} ${n} * * ${tt(e.weekdays).join(`,`)}`;case`monthly`:return e.dayOfMonth===`last`?`${t} ${n} L * *`:`${t} ${n} ${H(e.dayOfMonth,1,28)} * *`}}function rt(e,t){let n=H(e,0,23),r=H(t,0,59),i=n<12?`AM`:`PM`;return`${n%12==0?12:n%12}:${String(r).padStart(2,`0`)} ${i}`}function it(e){let t=[`th`,`st`,`nd`,`rd`],n=e%100;return`${e}${t[(n-20)%10]??t[n]??t[0]}`}function at(e){let t=tt(e),n=new Set(t);if(t.length===7)return`every day`;if(t.length===5&&et.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 ${$e[t[0]]?.full??`day`}`;let r=t.map(e=>$e[e]?.short??``),i=r.pop();return`every ${r.join(`, `)} & ${i}`}function ot(e){let t=rt(e.hour24,e.minute);switch(e.frequency){case`hourly`:{let t=H(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 ${at(e.weekdays)} at ${t}`;case`monthly`:return e.dayOfMonth===`last`?`Runs on the last day of every month at ${t}`:`Runs on the ${it(H(e.dayOfMonth,1,28))} of every month at ${t}`}}var U=u(),st=[{value:`hourly`,label:`Hourly`},{value:`daily`,label:`Daily`},{value:`weekly`,label:`Weekly`},{value:`monthly`,label:`Monthly`}],ct=Array.from({length:12},(e,t)=>{let n=t+1;return{value:String(n),label:String(n)}}),lt=Array.from({length:12},(e,t)=>{let n=t*5,r=String(n).padStart(2,`0`);return{value:r,label:r}}),ut=[...Array.from({length:28},(e,t)=>{let n=t+1;return{value:String(n),label:it(n)}}),{value:`last`,label:`Last day`}],dt=[{value:`AM`,label:`AM`},{value:`PM`,label:`PM`}];function ft(e,t){let n=e%12;return t===`PM`?n+12:n}function pt(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 mt({isOpen:e,assistantId:t,onClose:n,onCreated:r}){return(0,U.jsx)(j.Root,{open:e,onOpenChange:e=>{e||n()},children:e?(0,U.jsx)(ht,{assistantId:t,onClose:n,onCreated:r}):null})}function ht({assistantId:e,onClose:t,onCreated:n}){let i=Me(),[a,o]=(0,V.useState)(``),[s,c]=(0,V.useState)(``),[l,u]=(0,V.useState)(``),[d,f]=(0,V.useState)(`simple`),[p,m]=(0,V.useState)(Qe),[h,g]=(0,V.useState)(``),[_,v]=(0,V.useState)(!1),[y,b]=(0,V.useState)(null),x=a.trim(),S=s.trim(),C=l.trim(),w=h.trim(),T=(0,V.useMemo)(()=>d===`simple`?nt(p):w,[d,p,w]),E=(0,V.useMemo)(()=>d===`simple`?ot(p):w||`Enter a cron expression to continue.`,[d,p,w]),D=(0,V.useMemo)(()=>pt(i),[i]),O=x.length>0&&S.length>0&&C.length>0&&T.length>0&&!_;return(0,U.jsxs)(j.Content,{size:`md`,children:[(0,U.jsxs)(j.Header,{children:[(0,U.jsx)(j.Title,{children:`Create schedule`}),(0,U.jsx)(j.Description,{children:`Schedule a recurring instruction for your assistant. Runs in execute mode — the message is delivered to the assistant on each fire.`})]}),(0,U.jsxs)(`form`,{onSubmit:async t=>{if(t.preventDefault(),O){v(!0),b(null);try{await qe(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,U.jsx)(j.Body,{children:(0,U.jsxs)(`div`,{className:`flex flex-col gap-5`,children:[(0,U.jsx)(N,{label:`Name`,placeholder:`Morning briefing`,value:a,onChange:e=>o(e.target.value),required:!0,autoFocus:!0,fullWidth:!0}),(0,U.jsx)(M,{label:`Description`,placeholder:`What is this schedule for?`,value:s,onChange:e=>c(e.target.value),required:!0,fullWidth:!0,rows:2}),(0,U.jsx)(bt,{label:`Repeat`,children:d===`simple`?(0,U.jsx)(gt,{cadence:p,onChange:m}):(0,U.jsx)(yt,{value:h,onChange:g,onUseSimple:()=>f(`simple`)})}),(0,U.jsx)(xt,{summary:E,mono:d===`advanced`&&w.length>0,timezoneLabel:D}),d===`simple`?(0,U.jsx)(`button`,{type:`button`,onClick:()=>{g(e=>e||nt(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,U.jsx)(M,{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,U.jsx)(`p`,{className:`text-body-small-default text-[var(--system-negative-strong)]`,children:y}):null]})}),(0,U.jsxs)(j.Footer,{children:[(0,U.jsx)(r,{variant:`outlined`,onClick:t,type:`button`,children:`Cancel`}),(0,U.jsx)(r,{variant:`primary`,type:`submit`,disabled:!O,children:_?`Creating…`:`Create schedule`})]})]})]})}function gt({cadence:e,onChange:t}){return(0,U.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,U.jsx)(m,{items:st,value:e.frequency,onChange:n=>t({...e,frequency:n}),ariaLabel:`How often the schedule runs`}),e.frequency===`hourly`?(0,U.jsx)(W,{label:`At minute`,children:(0,U.jsx)(I,{options:lt,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,U.jsx)(W,{label:`On these days`,children:(0,U.jsx)(vt,{value:e.weekdays,onChange:n=>t({...e,weekdays:n})})}):null,e.frequency===`monthly`?(0,U.jsx)(W,{label:`On day`,children:(0,U.jsx)(I,{options:ut,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,U.jsx)(W,{label:`At time`,children:(0,U.jsx)(_t,{hour24:e.hour24,minute:e.minute,onChange:(n,r)=>t({...e,hour24:n,minute:r})})})]})}function _t({hour24:e,minute:t,onChange:n}){let r=e<12?`AM`:`PM`,i=e%12==0?12:e%12;return(0,U.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,U.jsx)(I,{options:ct,value:String(i),onChange:e=>n(ft(Number(e),r),t),"aria-label":`Hour`,className:`w-[72px]`}),(0,U.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:`:`}),(0,U.jsx)(I,{options:lt,value:String(t).padStart(2,`0`),onChange:t=>n(e,Number(t)),"aria-label":`Minute`,className:`w-[72px]`}),(0,U.jsx)(`div`,{className:`w-[112px]`,children:(0,U.jsx)(m,{items:dt,value:r,onChange:e=>n(ft(i,e),t),ariaLabel:`AM or PM`})})]})}function vt({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,U.jsx)(`div`,{className:`flex gap-1.5`,children:$e.map(e=>{let t=n.has(e.value);return(0,U.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 yt({value:e,onChange:t,onUseSimple:n}){return(0,U.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,U.jsx)(N,{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,U.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 bt({label:e,children:t}){return(0,U.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,U.jsx)(`span`,{className:`text-body-small-default text-[var(--content-secondary)]`,children:e}),t]})}function W({label:e,children:t}){return(0,U.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-3 gap-y-1.5`,children:[(0,U.jsx)(`span`,{className:`min-w-[88px] text-body-small-default text-[var(--content-tertiary)]`,children:e}),t]})}function xt({summary:e,mono:t,timezoneLabel:n}){return(0,U.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,U.jsx)(S,{className:`mt-0.5 h-4 w-4 shrink-0 text-[var(--content-tertiary)]`,"aria-hidden":!0}),(0,U.jsxs)(`div`,{className:`min-w-0`,children:[(0,U.jsx)(`p`,{className:d(`text-body-medium-default text-[var(--content-default)]`,t&&`break-all font-mono`),children:e}),(0,U.jsxs)(`p`,{className:`mt-0.5 text-body-small-default text-[var(--content-tertiary)]`,children:[`Times use your timezone — `,n,`.`]})]})]})}function St(e=Ae(),t=Date.now()){return Je(Ye,e,t)}function G(e){return e?new Date(e).toLocaleString(void 0,{month:`short`,day:`numeric`,hour:`numeric`,minute:`2-digit`,hour12:!0}):`—`}function Ct(e){return e==null?`—`:e<1e3?`${e}ms`:`${(e/1e3).toFixed(1)}s`}var wt=new Intl.NumberFormat(void 0,{style:`currency`,currency:`USD`,minimumFractionDigits:2,maximumFractionDigits:2});function K(e){return e==null||!Number.isFinite(e)?`—`:wt.format(e)}function Tt(e){return`${e.toLocaleString()} ${e===1?`run`:`runs`}`}function Et(e){let t=Math.round(e/6e4);return t>=60&&t%60==0?`Every ${t/60} hr`:`Every ${t} min`}function Dt(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 Ot(e){return!!e.conversationId&&e.conversationExists===!0&&e.conversationArchivedAt==null}function kt(e){return Ot(e)?e.conversationId??null:null}function q(e){return typeof e==`string`&&e.length>0}function At(e){return e.status===`pending`||e.status===`superseded`}function jt(e){return e.status!==`skipped`&&e.status!==`missed`&&!At(e)}var Mt={heartbeat:`system-heartbeat`,consolidation:`system-consolidation`,retrospective:`system-memory-retrospective`};function Nt(e){if(e.cronExpression)return e.timezone?`Cron: ${e.cronExpression} (${e.timezone})`:`Cron: ${e.cronExpression}`;let t=Et(e.intervalMs);return e.activeHoursStart!=null&&e.activeHoursEnd!=null&&(t+=` (${e.activeHoursStart}:00–${e.activeHoursEnd}:00)`),t}function Pt(e){return Et(e.intervalMs)}var Ft=`After conversation activity`;function It(e){return e.status!==`fired`&&e.status!==`cancelled`}function Lt(e,t){return It(e)?e.status===`firing`?!1:e.nextRunAt==null||!e.enabled&&e.nextRunAt<=t:!0}function Rt(e,t){let n=[],r=[],i=[];for(let a of e)a.isOneShot?Lt(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 zt(e,t,n=!0){return{queryKey:[{_id:`schedulesUsagesummaryGet`,path:{assistant_id:e??``},_tz:t}],queryFn:()=>e?He(e,St(t)):Promise.resolve([]),enabled:n,staleTime:1e4}}function Bt(e){return{scheduleId:e,runCount:0,totalEstimatedCostUsd:0,eventCount:0}}function Vt(e,t,n){let r=(t??[]).filter(e=>{let t=e.startedAt??e.createdAt;return jt(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 Ht(e,t,n){let r=!!e&&n?.enabled!==!1,{data:i}=s({...ye({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?Xe(a):{})[o]?.displayName??o}}function Ut(e,n,r){let i=Ht(e,`mainAgent`),[a,o]=(0,V.useState)(!1),s=(0,V.useMemo)(()=>i.key?n.filter(e=>It(e)&&e.inferenceProfile!==i.key).length:0,[i.key,n]),c=i.label,u=l({mutationFn:t=>Be(e,null,t),onSuccess:e=>{o(!1),r(),P.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`}),P.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 Wt({open:e,profileLabel:t,offDefaultCount:n,isPending:r,onConfirm:i,onCancel:a}){return(0,U.jsx)(F,{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 Gt({status:e}){return(0,U.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 Kt({scheduleName:e,usage:t,onOpenUsage:n}){if(t.status===`loading`)return(0,U.jsxs)(`div`,{"aria-label":`Loading schedule usage`,className:`flex w-[156px] shrink-0 items-center justify-end gap-3`,children:[(0,U.jsx)(L,{as:`span`,className:`h-5 w-16`}),(0,U.jsx)(L,{as:`span`,className:`h-5 w-16`})]});let r=t.status===`error`,i=r?`--`:K(t.summary.totalEstimatedCostUsd),a=r?`--`:Tt(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,U.jsxs)(`div`,{className:`flex w-[156px] shrink-0 items-center justify-end gap-3 text-right text-body-small-default`,children:[n?(0,U.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,U.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,U.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 J({name:e,subtitle:t,enabled:n,nextRunAt:r,lastRunAt:i,usage:a,helperText:o,statusLabel:s,statusTone:c=`neutral`,onClick:l}){return(0,U.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,U.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,U.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,U.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,U.jsx)(`span`,{className:`truncate text-body-medium-default text-[var(--content-default)]`,children:e})}),(0,U.jsx)(`div`,{className:`mt-0.5 text-body-small-default text-[var(--content-tertiary)]`,children:t}),o?(0,U.jsx)(`div`,{className:`mt-0.5 text-body-small-default text-[var(--content-secondary)]`,children:o}):null,(0,U.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,U.jsxs)(`span`,{children:[`Next: `,G(r)]}):null,i?(0,U.jsxs)(`span`,{children:[`Last: `,G(i)]}):null]})]}),(0,U.jsxs)(`div`,{className:`flex shrink-0 flex-wrap items-center justify-end gap-3`,children:[(0,U.jsx)(Kt,{scheduleName:e,usage:a}),s?(0,U.jsx)(A,{tone:c,children:s}):(0,U.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,U.jsx)(b,{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 _=[...f?[r]:[],...p?[i]:[],...m?[a]:[]].filter(e=>e.status===`ready`),v=_.reduce((e,t)=>e+(t.summary.totalEstimatedCostUsd??0),0),b=o?(0,U.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,U.jsx)(w,{className:`h-5 w-5 animate-spin text-stone-400`})}):s&&!h?(0,U.jsxs)(k,{tone:`error`,children:[`Failed to load system jobs.`,` `,(0,U.jsx)(`button`,{type:`button`,onClick:c,className:`cursor-pointer underline hover:no-underline`,children:`Retry`})]}):(0,U.jsxs)(`div`,{children:[f?(0,U.jsx)(J,{name:`Heartbeat`,subtitle:Nt(e),enabled:e.enabled,nextRunAt:e.nextRunAt,lastRunAt:e.lastRunAt,usage:r,onClick:l}):null,p?(0,U.jsx)(J,{name:`Consolidation`,subtitle:Pt(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,U.jsx)(J,{name:`Memory retrospective`,subtitle:Ft,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,U.jsx)(`div`,{className:`pt-3 first:pt-0`,children:(0,U.jsxs)(k,{tone:`error`,children:[`Some system jobs failed to load.`,` `,(0,U.jsx)(`button`,{type:`button`,onClick:c,className:`cursor-pointer underline hover:no-underline`,children:`Retry`})]})}):null]});return(0,U.jsx)(Le,{children:(0,U.jsx)(g.Root,{type:`multiple`,children:(0,U.jsxs)(g.Item,{value:`system-jobs`,children:[(0,U.jsxs)(g.Trigger,{className:`group justify-between gap-3`,children:[(0,U.jsxs)(`span`,{className:`flex min-w-0 flex-wrap items-baseline gap-x-2 gap-y-1 text-left`,children:[(0,U.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-secondary)]`,children:`System`}),(0,U.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Built-in jobs managed by the assistant runtime`})]}),(0,U.jsxs)(`span`,{className:`flex shrink-0 items-center gap-3`,children:[_.length>0?(0,U.jsxs)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:[K(v),` (7d)`]}):null,(0,U.jsx)(y,{className:`h-4 w-4 shrink-0 text-[var(--content-tertiary)] transition-transform group-data-[state=open]:rotate-180`})]})]}),(0,U.jsx)(g.Content,{children:(0,U.jsx)(`div`,{className:`mt-3`,children:b})})]})})})}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=>!At(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:Vt(n,r,i)}}function en(e,n){let r=o(),i={path:{assistant_id:e??``}},{data:a,isLoading:c,isError:l,refetch:u}=s({...le(i),enabled:!!e,staleTime:X}),{data:d,isLoading:f,isError:p,refetch:m}=s({...we(i),enabled:!!e,staleTime:X}),{data:h,isLoading:g,isError:_,refetch:v}=s({...me(i),enabled:!!e,staleTime:X}),y={path:{assistant_id:e??``},query:{limit:100}},{data:b,isLoading:x,isError:S,refetch:C}=s({...se(y),select:Xt,enabled:!!e&&a!=null,staleTime:X}),{data:w,isLoading:T,isError:E,refetch:D}=s({...fe(y),select:Zt,enabled:!!e&&d?.available===!0,staleTime:X}),{data:O,isLoading:k,isError:A,refetch:j}=s({..._e(y),select:Qt,enabled:!!e&&h?.available===!0,staleTime:X}),M=(0,V.useMemo)(()=>St(n),[n]),N=(0,V.useMemo)(()=>$t(x,S,Mt.heartbeat,b,M),[b,S,x,M]),ee=(0,V.useMemo)(()=>$t(T,E,Mt.consolidation,w,M),[w,E,T,M]),F=(0,V.useMemo)(()=>$t(k,A,Mt.retrospective,O,M),[O,A,k,M]),I=t=>{if(!e)return;let n={heartbeat:{config:le(i).queryKey,runs:se(y).queryKey,infinite:Ee(i)},consolidation:{config:we(i).queryKey,runs:fe(y).queryKey,infinite:Se(i)},retrospective:{config:me(i).queryKey,runs:_e(y).queryKey,infinite:Te(i)}}[t];r.invalidateQueries({queryKey:n.config}),r.invalidateQueries({queryKey:n.runs}),r.invalidateQueries({queryKey:n.infinite})},L=ve({onSuccess:e=>{e.ran?P.success(`Heartbeat started.`):P.info(`Heartbeat skipped.`)},onError:e=>{t(e,{context:`heartbeat_run_now`}),P.error(`Failed to run heartbeat.`)},onSettled:()=>I(`heartbeat`)}),R=pe({onSuccess:e=>{e.ran?P.success(`Consolidation queued.`):P.info(`Consolidation already queued or running.`)},onError:e=>{t(e,{context:`consolidation_run_now`}),P.error(`Failed to run consolidation.`)},onSettled:()=>I(`consolidation`)}),z=he({onSuccess:e=>{ue(r,i,e),P.success(e.enabled?`Heartbeat enabled.`:`Heartbeat disabled.`)},onError:e=>{t(e,{context:`heartbeat_toggle`}),P.error(`Failed to toggle heartbeat.`)}});return{heartbeatConfig:a,consolidationConfig:d,retrospectiveConfig:h,heartbeatUsage:N,consolidationUsage:ee,retrospectiveUsage:F,isLoading:c||f||g,hasError:l||p||_,isHeartbeatRunning:L.isPending,isConsolidationRunning:R.isPending,isHeartbeatLoading:c,isHeartbeatError:l,isConsolidationLoading:f,isConsolidationError:p,isRetrospectiveLoading:g,isRetrospectiveError:_,refetchHeartbeat:u,refetchConsolidation:m,refetchRetrospective:v,runHeartbeatNow:()=>{e&&L.mutate({path:{assistant_id:e}})},runConsolidationNow:()=>{e&&R.mutate({path:{assistant_id:e}})},toggleHeartbeat:t=>{e&&z.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,U.jsx)(p,{asChild:!0,className:d(`rounded-lg`,a),children:(0,U.jsxs)(`section`,{id:e,children:[o&&(0,U.jsxs)(`div`,{className:`flex flex-row items-start justify-between gap-4`,children:[(0,U.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1`,children:[t&&(0,U.jsx)(f,{variant:`title-small`,as:`h2`,className:`text-[var(--content-emphasised)]`,children:t}),n&&(0,U.jsx)(f,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:n})]}),r&&(0,U.jsx)(`div`,{className:`shrink-0`,children:r})]}),i!=null&&(0,U.jsx)(`div`,{className:o?`mt-3`:``,children:i})]})})}function tn(e){return/^plugin:([^/]+)\//.exec(e??``)?.[1]??null}var nn=`Default (assistant's main model)`,rn=`Custom call-site model`;function an(e,t){return t?.[e]?.displayName??e}function on(e,t){if(e==null)return;if(e.provider!=null||e.model!=null)return rn;let n=e.profile?.trim();return n?`Override (${an(n,t)})`:void 0}function sn({assistantId:e,pinnedProfile:t,defaultCallSite:n=`mainAgent`,fallbackLabel:r=nn,respectCallSiteOverride:i=!1}){let a=t==null,{data:o}=s({...be({path:{assistant_id:e}}),enabled:!!e,staleTime:6e4}),c=(0,V.useMemo)(()=>o?Xe(o):{},[o]),{label:l}=Ht(e,n,{enabled:a}),u=a&&i?on(o?.llm?.callSites?.[n],c):void 0,d=t==null?u??(l==null?r:`Default (${l})`):an(t,c);return(0,U.jsxs)(`div`,{className:`flex min-h-6 items-center justify-between gap-4`,children:[(0,U.jsx)(`span`,{className:`shrink-0 text-[var(--content-secondary)]`,children:`Model profile`}),(0,U.jsx)(`span`,{className:`min-w-0 truncate text-right`,title:d,children:d})]})}function cn(e,t,n){let r=ne(e?.profiles??{},e?.profileOrder??[]);return[{value:null,label:`Default`},...ie(r,[t],n).map(e=>{let t=re(e,r,n);return{value:e.name,label:ae(e),...t?{issue:t}:{},...t===`undispatchable`?{reason:te(e)}:{}}})]}function ln(e,t){let{data:n}=s({...be({path:{assistant_id:e}}),enabled:!!e,staleTime:6e4}),r=oe();return(0,V.useMemo)(()=>cn(n?.llm,t,{requireOwnProviderAndModel:r}),[n?.llm,t,r])}function un({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,U.jsx)(I,{value:t,onChange:n,onSelectNone:()=>n(null),options:ln(e,t).filter(e=>o||e.value!=null).map(e=>({...e.issue===`undispatchable`?{icon:(0,U.jsx)(x,{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,U.jsxs)(`div`,{className:`flex min-h-6 items-center justify-between gap-4`,children:[(0,U.jsx)(`span`,{className:`shrink-0 text-body-medium-lighter text-[var(--content-secondary)]`,children:e}),(0,U.jsx)(`span`,{className:`min-w-0 text-right text-body-medium-lighter text-[var(--content-default)]`,children:t})]})}function dn({schedule:e,assistantId:n,isPast:r}){let{t:i}=z(`schedules`),a=o(),s=ce({path:{assistant_id:n}}),c=l({mutationFn:t=>Ve(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`}),P.error(i(`scheduleDetail.modelChangeFailed`))},onSettled:()=>a.invalidateQueries({queryKey:s})});return e.mode===`workflow`?(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(Q,{label:i(`scheduleDetail.modelProfile`),value:i(`scheduleDetail.notUsedForWorkflow`)}),(0,U.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:i(`scheduleDetail.modelProfileWorkflowNote`)})]}):r?(0,U.jsx)(`div`,{className:`text-body-medium-lighter text-[var(--content-default)]`,children:(0,U.jsx)(sn,{assistantId:n,pinnedProfile:e.inferenceProfile})}):(0,U.jsx)(Q,{label:i(`scheduleDetail.modelProfile`),value:(0,U.jsx)(un,{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 fn({icon:e,value:t,label:n}){return(0,U.jsxs)(`div`,{className:`flex items-center gap-3 rounded-lg border border-[var(--border-base)] bg-[var(--surface-lift)] p-3`,children:[(0,U.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,U.jsxs)(`div`,{className:`min-w-0`,children:[(0,U.jsx)(`div`,{className:`truncate text-body-large-default text-[var(--content-default)]`,children:t}),(0,U.jsx)(`div`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:n})]})]})}function pn({usage:e}){let{t}=z(`schedules`);return e.status===`loading`?(0,U.jsx)(`div`,{className:`grid grid-cols-2 gap-3 pt-2`,children:Array.from({length:2},(e,t)=>(0,U.jsx)(L,{className:`h-[60px] rounded-lg`},t))}):e.status===`error`?null:(0,U.jsxs)(`div`,{className:`grid grid-cols-2 gap-3 pt-2`,children:[(0,U.jsx)(fn,{icon:(0,U.jsx)(C,{className:`h-4 w-4`}),value:K(e.summary.totalEstimatedCostUsd),label:t(`scheduleDetail.costLabel`,{days:7})}),(0,U.jsx)(fn,{icon:(0,U.jsx)(E,{className:`h-4 w-4`}),value:Tt(e.summary.runCount),label:t(`scheduleDetail.runsLabel`,{days:7})})]})}function mn(e){return e.exists&&e.archivedAt==null}function hn({run:e,index:t,isExpanded:n,disableDirectOpen:r,onOpenConversation:i,onToggleDetails:a}){let{t:o}=z(`schedules`),s=kt(e),c=e.conversations??(s?[{id:s,title:null,exists:!0,archivedAt:null}]:[]),l=q(e.output),u=q(e.error),f=!r&&c.length===1&&mn(c[0])?c[0].id:null,p=!f&&(c.length>0||l||u),m=`schedule-run-details-${t}`,h=!!f||p,g=(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(Gt,{status:e.status}),(0,U.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,U.jsx)(`div`,{className:`text-body-medium-lighter text-[var(--content-default)]`,children:G(e.startedAt)}),(0,U.jsxs)(`div`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:[Ct(e.durationMs),` ·`,` `,K(e.estimatedCostUsd)]}),e.status===`error`&&e.error?(0,U.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,U.jsx)(b,{className:d(`h-4 w-4 shrink-0 text-[var(--content-tertiary)] transition-transform`,p&&n?`rotate-90`:``)}):null]}),_=p&&n?(0,U.jsx)(`div`,{id:m,className:`px-2 pb-3`,children:(0,U.jsxs)(`div`,{className:`space-y-3 rounded-md border border-[var(--border-subtle)] bg-[var(--surface-sunken)] p-3`,children:[c.length>0?(0,U.jsxs)(`div`,{children:[(0,U.jsx)(`div`,{className:`mb-1 text-body-small-default text-[var(--content-secondary)]`,children:o(`scheduleDetail.conversations`)}),(0,U.jsx)(`div`,{className:`space-y-1`,children:c.map(e=>mn(e)?(0,U.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:q(e.title)?e.title:o(`scheduleDetail.conversation`)},e.id):(0,U.jsxs)(`span`,{className:`block truncate text-body-small-default text-[var(--content-tertiary)] italic`,children:[q(e.title)?e.title:o(`scheduleDetail.conversation`),` `,e.exists?o(`scheduleDetail.conversationArchived`):o(`scheduleDetail.conversationUnavailable`)]},e.id))})]}):null,l?(0,U.jsxs)(`div`,{children:[(0,U.jsx)(`div`,{className:`mb-1 text-body-small-default text-[var(--content-secondary)]`,children:o(`scheduleDetail.output`)}),(0,U.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,U.jsxs)(`div`,{children:[(0,U.jsx)(`div`,{className:`mb-1 text-body-small-default text-[var(--content-secondary)]`,children:o(`scheduleDetail.error`)}),(0,U.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,U.jsx)(`div`,{children:(0,U.jsx)(`button`,{type:`button`,onClick:()=>i(f),"aria-label":o(`scheduleDetail.openRunConversationAria`,{time:G(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,U.jsxs)(`div`,{children:[(0,U.jsx)(`button`,{type:`button`,onClick:()=>a(e.id),"aria-label":o(`scheduleDetail.toggleRunDetailsAria`,{time:G(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,U.jsx)(`div`,{className:`flex items-center gap-3 px-2 py-3`,children:g})}function gn({runs:e,isLoading:t,disableDirectOpen:n,onOpenConversation:r}){let{t:i}=z(`schedules`),[a,o]=(0,V.useState)(null);return t?(0,U.jsx)(`div`,{className:`flex items-center justify-center py-6`,children:(0,U.jsx)(w,{className:`h-5 w-5 animate-spin text-stone-400`})}):!e||e.length===0?(0,U.jsx)(`p`,{className:`py-2 text-body-medium-lighter text-[var(--content-tertiary)] italic`,children:i(`scheduleDetail.noRunsYet`)}):(0,U.jsx)(`div`,{className:`-mx-2 divide-y divide-[var(--border-base)]`,children:e.map((e,t)=>(0,U.jsx)(hn,{run:e,index:t,isExpanded:a===e.id,disableDirectOpen:n,onOpenConversation:r,onToggleDetails:e=>o(t=>t===e?null:e)},e.id))})}function _n({schedule:e,assistantId:n,usage:a,isPast:o=!1,isMobile:c,onClose:l,onDeleted:u}){let{t:f}=z(`schedules`),p=i(),{data:m,isLoading:h}=s({queryKey:Ce({path:{assistant_id:n,id:e.id}}),queryFn:()=>Ge(n,e.id),staleTime:1e4}),[g,_]=(0,V.useState)(!1),[y,b]=(0,V.useState)(!1),[x,S]=(0,V.useState)(!1),C=tn(e.sourceKey),T=C!==null&&!e.enabled,E=async()=>{_(!0);try{await We(n,e.id)}catch(e){t(e,{context:`schedule_run_now`}),P.error(f(`scheduleDetail.runFailed`))}finally{_(!1)}},D=async()=>{S(!0);try{await Ue(n,e.id),u()}catch(e){t(e,{context:`schedule_delete`}),P.error(f(`scheduleDetail.deleteFailed`)),S(!1),b(!1)}};return(0,U.jsxs)(U.Fragment,{children:[(0,U.jsxs)(`div`,{className:d(`flex h-full flex-col bg-[var(--surface-overlay)]`,!c&&`rounded-[var(--radius-xl)] border border-[var(--border-base)]`),children:[(0,U.jsx)(Fe,{title:e.name,headerActions:C?void 0:(0,U.jsx)(r,{variant:`dangerOutline`,iconOnly:(0,U.jsx)(O,{}),"aria-label":f(`scheduleDetail.delete`),tooltip:f(`scheduleDetail.delete`),onClick:()=>b(!0)}),closeLabel:f(`scheduleDetail.closeAria`),closeTooltip:f(`scheduleDetail.close`),onClose:l}),(0,U.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,U.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-secondary)]`,children:e.description}):null,(0,U.jsx)(Z,{title:f(`scheduleDetail.details`),children:(0,U.jsxs)(`div`,{className:`space-y-2`,children:[e.cadenceDescription?(0,U.jsx)(Q,{label:f(`scheduleDetail.cadence`),value:e.cadenceDescription}):null,(0,U.jsx)(Q,{label:f(`scheduleDetail.mode`),value:e.mode}),(0,U.jsx)(dn,{schedule:e,assistantId:n,isPast:o}),(0,U.jsx)(Q,{label:f(`scheduleDetail.status`),value:e.enabled?f(`scheduleDetail.enabled`):f(`scheduleDetail.disabled`)}),(0,U.jsx)(Q,{label:f(`scheduleDetail.nextRun`),value:G(e.nextRunAt)}),e.lastRunAt?(0,U.jsx)(Q,{label:f(`scheduleDetail.lastRun`),value:(0,U.jsxs)(`span`,{className:`flex items-center justify-end gap-2`,children:[(0,U.jsx)(Gt,{status:e.lastStatus}),G(e.lastRunAt)]})}):null]})}),(0,U.jsx)(pn,{usage:a}),(0,U.jsx)(Z,{title:f(`scheduleDetail.recentRuns`),children:(0,U.jsx)(gn,{runs:m?.runs,isLoading:h,disableDirectOpen:e.mode===`script`,onOpenConversation:e=>De(p,e)})})]}),(0,U.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between gap-2 border-t border-[var(--border-hover)] p-[var(--app-spacing-lg)]`,children:[C?(0,U.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:f(`scheduleDetail.managedByPlugin`,{plugin:C})}):(0,U.jsx)(`span`,{}),(0,U.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,U.jsx)(r,{variant:`outlined`,leftIcon:(0,U.jsx)(v,{className:`h-3.5 w-3.5`}),onClick:()=>p(B.settings.usageForSchedule(e.id)),children:f(`scheduleDetail.viewUsage`)}),e.mode===`script`?(0,U.jsxs)(U.Fragment,{children:[T?(0,U.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:f(`scheduleDetail.turnOnToRun`)}):null,(0,U.jsx)(r,{variant:`primary`,leftIcon:g?(0,U.jsx)(w,{className:`h-3.5 w-3.5 animate-spin`}):void 0,onClick:()=>void E(),disabled:g||T,children:f(g?`scheduleDetail.running`:`scheduleDetail.runNow`)})]}):null]})]})]}),(0,U.jsx)(F,{open:y,title:f(`scheduleDetail.delete`),message:f(`scheduleDetail.deleteConfirmMessage`,{name:e.name}),confirmLabel:f(`scheduleDetail.confirmDelete`),cancelLabel:f(`scheduleDetail.cancel`),destructive:!0,isPending:x,onConfirm:()=>void D(),onCancel:()=>b(!1)})]})}function vn(e){if(e.status===`loading`)return(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(L,{as:`span`,className:`h-4 w-12`}),(0,U.jsx)(L,{as:`span`,className:`h-4 w-10`})]});if(e.status===`error`)return(0,U.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`—`});let{summary:t}=e;return(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`span`,{className:`text-body-small-default text-[var(--content-secondary)]`,children:K(t.totalEstimatedCostUsd)}),(0,U.jsx)(`span`,{className:`text-body-small-default text-[var(--content-secondary)]`,children:Tt(t.runCount)})]})}function yn({name:e,badge:t,metaParts:n,usage:r,enabled:i,selected:a,onClick:o,onToggle:s,toggleAriaLabel:c}){return(0,U.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,U.jsx)(ee,{checked:i,onChange:s,"aria-label":c}):null,(0,U.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,U.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-1`,children:[(0,U.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[(0,U.jsx)(`span`,{className:`truncate text-body-medium-default text-[var(--content-default)]`,children:e}),t]}),n.length>0?(0,U.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,U.jsxs)(V.Fragment,{children:[t>0?(0,U.jsx)(`span`,{className:`h-[3px] w-[3px] shrink-0 rounded-full bg-[var(--content-tertiary)]`}):null,(0,U.jsx)(`span`,{className:`truncate`,children:e})]},t))}):null]}),(0,U.jsxs)(`div`,{className:`flex shrink-0 items-center gap-4`,children:[vn(r),(0,U.jsx)(b,{className:`h-4 w-4 text-[var(--content-tertiary)]`})]})]})]})}function bn({schedule:e,usage:t,selected:n,onClick:r,onToggle:i}){let{t:a}=z(`schedules`),o=e.isOneShot?``:e.cadenceDescription.trim(),s=e.lastRunAt??e.nextRunAt,c=[o,s?G(s):``].filter(Boolean),l=tn(e.sourceKey);return(0,U.jsx)(yn,{name:e.name,badge:l?(0,U.jsx)(A,{tone:`info`,children:l}):void 0,metaParts:c,usage:t,enabled:e.enabled,selected:n,onClick:r,onToggle:i,toggleAriaLabel:i?a(`scheduleRow.toggleAria`,{name:e.name}):void 0})}function xn({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:v,systemTasksSlot:y}){let{t:x}=z(`schedules`),S=e=>(0,U.jsx)(bn,{schedule:e,usage:i(e.id),selected:e.id===u,onClick:()=>l(e.id),onToggle:t=>c(e.id,t)},e.id),C=e=>(0,U.jsx)(bn,{schedule:e,usage:i(e.id),selected:e.id===u,onClick:()=>l(e.id)},e.id),w=n.length>0?(0,U.jsx)(g.Root,{type:`single`,collapsible:!0,className:`mt-3`,value:p?`past`:``,onValueChange:e=>m(e===`past`),children:(0,U.jsxs)(g.Item,{value:`past`,children:[(0,U.jsxs)(g.Trigger,{className:`group gap-[var(--app-spacing-xs)] px-2 text-label-small-default text-[var(--content-tertiary)]`,children:[(0,U.jsx)(b,{size:14,"aria-hidden":!0,className:`shrink-0 transition-transform group-data-[state=open]:rotate-90`}),(0,U.jsx)(`span`,{children:x(`schedulesPanel.pastToggle`,{count:n.length})})]}),(0,U.jsx)(g.Content,{children:(0,U.jsx)(`div`,{className:`pt-1`,children:n.map(C)})})]})}):null;return(0,U.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto`,children:[a?(0,U.jsx)(`div`,{className:`space-y-3`,children:Array.from({length:2},(e,t)=>(0,U.jsx)(L,{className:`h-12 rounded-md`},t))}):o&&e.length===0?(0,U.jsx)(k,{tone:`error`,actions:(0,U.jsx)(`button`,{type:`button`,onClick:s,className:`cursor-pointer underline hover:no-underline`,children:x(`schedulesPanel.retry`)}),children:x(`schedulesPanel.loadFailed`)}):e.length===0&&t.length===0&&n.length===0?(0,U.jsx)(Ze,{icon:_,title:x(`schedulesPanel.emptyTitle`),description:x(`schedulesPanel.emptyDescription`),actions:(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(r,{variant:`primary`,size:`regular`,onClick:d,children:x(`schedulesPanel.newConversation`)}),(0,U.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:x(`schedulesPanel.emptyActionsSeparator`)}),(0,U.jsx)(r,{variant:`outlined`,size:`regular`,onClick:f,children:x(`schedulesPanel.createSchedule`)})]})}):(0,U.jsxs)(`div`,{children:[h&&v?(0,U.jsx)(`div`,{className:`mb-1 flex min-w-0 justify-end`,children:(0,U.jsx)(r,{variant:`outlined`,size:`compact`,onClick:h,className:`max-w-full truncate`,children:x(`schedulesPanel.useProfileForAll`,{profile:v})})}):null,e.map(S),t.length>0?(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`p`,{className:`mt-3 px-2 text-label-small-default text-[var(--content-tertiary)]`,children:x(`schedulesPanel.oneTimeHeading`)}),t.map(C)]}):null,w]}),y?(0,U.jsx)(`div`,{className:`mt-[var(--app-spacing-lg)]`,children:y}):null]})}function Sn({runs:e,isLoading:t,emptyMessage:n=`No runs yet.`,hasMore:a=!1,isLoadingMore:o=!1,onLoadMore:s}){let c=i(),[l,u]=(0,V.useState)(null),d=a&&s?(0,U.jsx)(`div`,{className:`flex justify-center pt-3`,children:(0,U.jsx)(r,{variant:`outlined`,size:`compact`,onClick:s,disabled:o,leftIcon:o?(0,U.jsx)(w,{className:`h-3.5 w-3.5 animate-spin`}):void 0,children:o?`Loading…`:`Load more`})}):null;return(0,U.jsx)(Z,{title:`Recent runs`,children:t?(0,U.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,U.jsx)(w,{className:`h-5 w-5 animate-spin text-stone-400`})}):!e||e.length===0?(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`p`,{className:`py-4 text-center text-body-medium-lighter text-[var(--content-tertiary)] italic`,children:n}),d]}):(0,U.jsxs)(`div`,{className:`divide-y divide-[var(--border-base)]`,children:[e.map((e,t)=>{let n=kt(e),r=q(e.output),i=q(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,U.jsxs)(`div`,{children:[(0,U.jsx)(h,{label:(0,U.jsxs)(`span`,{className:`flex min-w-0 flex-1 items-center gap-3`,children:[(0,U.jsx)(Gt,{status:e.status}),(0,U.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,U.jsx)(`span`,{className:`block truncate text-body-medium-lighter text-[var(--content-default)]`,children:q(e.title)?e.title:G(e.startedAt)}),(0,U.jsxs)(`span`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:[q(e.title)?`${G(e.startedAt)} · `:``,a?(0,U.jsx)(U.Fragment,{children:r?e.output:e.status===`missed`?`Missed`:`Skipped`}):(0,U.jsxs)(U.Fragment,{children:[Ct(e.durationMs),` ·`,` `,K(e.estimatedCostUsd)]}),e.status===`error`&&e.error&&(0,U.jsxs)(`span`,{className:`ml-2 text-[var(--system-negative-strong)]`,children:[e.error.slice(0,80),e.error.length>80?`…`:``]})]})]}),n||o?(0,U.jsx)(b,{className:`h-4 w-4 shrink-0 text-[var(--content-tertiary)] transition-transform ${s?`rotate-90`:``}`}):null]}),onSelect:n?()=>De(c,n):o?()=>u(s?null:e.id):void 0,"aria-label":`Run at ${G(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,U.jsx)(`div`,{id:d,className:`px-2 pb-3`,children:(0,U.jsxs)(`div`,{className:`space-y-3 rounded-md border border-[var(--border-subtle)] bg-[var(--surface-sunken)] p-3`,children:[r?(0,U.jsxs)(`div`,{children:[(0,U.jsx)(`div`,{className:`mb-1 text-body-small-default text-[var(--content-secondary)]`,children:`Output`}),(0,U.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,U.jsxs)(`div`,{children:[(0,U.jsx)(`div`,{className:`mb-1 text-body-small-default text-[var(--content-secondary)]`,children:`Error`}),(0,U.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 Cn={heartbeat:`heartbeatAgent`,consolidation:`memoryV2Consolidation`,retrospective:`memoryRetrospective`};function $({label:e,value:t}){return(0,U.jsxs)(`div`,{className:`flex min-h-6 items-center justify-between gap-4`,children:[(0,U.jsx)(`span`,{className:`shrink-0 text-[var(--content-secondary)]`,children:e}),(0,U.jsx)(`span`,{className:`flex min-w-0 items-center justify-end gap-2 text-right text-[var(--content-default)]`,children:t})]})}function wn({kind:e,assistantId:t,systemTasks:n,canOpenMemorySettings:a,isMobile:o,onClose:s}){let{t:l}=z(`schedules`),u=i(),{heartbeatConfig:f,consolidationConfig:p,retrospectiveConfig:m}=n,h,g,_,v,y,b,x;e===`heartbeat`?(h=l(`systemTaskDetail.nameHeartbeat`),g=f?Nt(f):``,_=f?.enabled??!1,v=f?.nextRunAt??null,y=f?.lastRunAt??null,b=n.isHeartbeatRunning,x=n.runHeartbeatNow):e===`consolidation`?(h=l(`systemTaskDetail.nameConsolidation`),g=p?Pt(p):``,_=p?.enabled??!1,v=p?.nextRunAt??null,y=p?.lastRunAt??null,b=n.isConsolidationRunning,x=n.runConsolidationNow):(h=l(`systemTaskDetail.nameRetrospective`),g=Ft,_=m?.enabled??!1,v=m?.nextRunAt??null,y=m?.lastRunAt??null,b=!1,x=void 0);let S=e!==`heartbeat`,C=e===`retrospective`,E=S&&!_,O=b||E,A=l(S?_?`systemTaskDetail.statusManagedOn`:`systemTaskDetail.statusPaused`:_?`scheduleDetail.enabled`:`scheduleDetail.disabled`),j=C&&m?.available===!0,M=l(j?`systemTaskDetail.pausedRetrospectiveSwitchedOff`:C?`systemTaskDetail.pausedRetrospective`:`systemTaskDetail.pausedConsolidation`),N=S&&_&&a,P={path:{assistant_id:t},query:{limit:25}},F=e===`heartbeat`?de(P):e===`consolidation`?ge(P):xe(P),{data:I,isLoading:L,fetchNextPage:R,hasNextPage:te,isFetchingNextPage:ne}=c({queryKey:F.queryKey,queryFn:F.queryFn,initialPageParam:{path:P.path,query:{}},getNextPageParam:e=>e.nextCursor??void 0,staleTime:1e4}),re=Dt(I?.pages.map(t=>({runs:t.runs.filter(e=>!At(e)).map(t=>Y(t,e))}))),ie=re?.find(e=>jt(e)&&e.status!==`running`),ae=y??ie?.finishedAt??ie?.startedAt??null;return(0,U.jsxs)(`div`,{className:d(`flex h-full flex-col bg-[var(--surface-overlay)]`,!o&&`rounded-[var(--radius-xl)] border border-[var(--border-base)]`),children:[(0,U.jsx)(Fe,{title:h,closeLabel:l(`scheduleDetail.closeAria`),closeTooltip:l(`scheduleDetail.close`),onClose:s}),(0,U.jsxs)(`div`,{className:`flex-1 space-y-6 overflow-y-auto px-[var(--app-spacing-lg)] py-[var(--app-spacing-lg)]`,children:[(0,U.jsxs)(`div`,{children:[(0,U.jsx)(Z,{title:l(`scheduleDetail.details`),children:(0,U.jsxs)(`div`,{className:`space-y-2 text-body-medium-lighter`,children:[(0,U.jsx)($,{label:l(`scheduleDetail.status`),value:(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`span`,{className:`truncate`,children:A}),S?null:(0,U.jsx)(ee,{size:`sm`,checked:_,onChange:n.toggleHeartbeat,"aria-label":l(`scheduleDetail.toggleAria`,{name:h})})]})}),(0,U.jsx)(sn,{assistantId:t,defaultCallSite:Cn[e],fallbackLabel:l(`systemTaskDetail.fallbackModelProfile`),respectCallSiteOverride:!0}),g?(0,U.jsx)($,{label:l(`systemTaskDetail.repeats`),value:(0,U.jsx)(`span`,{className:`truncate`,children:g})}):null,C?null:(0,U.jsx)($,{label:l(`scheduleDetail.nextRun`),value:(0,U.jsx)(`span`,{className:`truncate`,children:G(v)})}),(0,U.jsx)($,{label:l(`scheduleDetail.lastRun`),value:(0,U.jsx)(`span`,{className:`truncate`,children:G(ae)})})]})}),E?(0,U.jsx)(k,{tone:`warning`,className:`mt-4`,actions:a?(0,U.jsx)(r,{variant:`outlined`,size:`compact`,onClick:()=>u(`${B.settings.developer}?tab=memory`),children:l(j?`systemTaskDetail.openMemorySettings`:`systemTaskDetail.turnOnMemory`)}):void 0,children:M}):null]}),(0,U.jsx)(Sn,{runs:re,isLoading:L,hasMore:te,isLoadingMore:ne,onLoadMore:()=>void R()})]}),N||x?(0,U.jsxs)(`div`,{className:`flex shrink-0 items-center justify-end gap-2 border-t border-[var(--border-hover)] p-[var(--app-spacing-lg)]`,children:[N?(0,U.jsx)(r,{variant:`outlined`,leftIcon:(0,U.jsx)(D,{className:`h-3.5 w-3.5`}),onClick:()=>u(`${B.settings.developer}?tab=memory`),children:l(`systemTaskDetail.memorySettings`)}):null,x?(0,U.jsx)(r,{variant:`primary`,leftIcon:b?(0,U.jsx)(w,{className:`h-3.5 w-3.5 animate-spin`}):(0,U.jsx)(T,{className:`h-3.5 w-3.5`}),onClick:x,disabled:O,children:l(b?`scheduleDetail.running`:`scheduleDetail.runNow`)}):null]}):null]})}function Tn(e){let n=Me(),[r]=(0,V.useState)(()=>Date.now()),{data:i,isLoading:a,isError:o,refetch:c}=s(Ie(e)),{data:l,isLoading:u,isError:d}=s(zt(e,n,!0)),{recurring:f,oneTime:p,pastOneTime:m}=(0,V.useMemo)(()=>{let e=Rt(i??[],r);return{recurring:e.recurring,oneTime:e.upcomingOneTime,pastOneTime:e.pastOneTime}},[r,i]),h=(0,V.useMemo)(()=>new Map((l??[]).map(e=>[e.scheduleId,e])),[l]);return{recurring:f,oneTime:p,pastOneTime:m,usageForSchedule:(0,V.useCallback)(e=>u?{status:`loading`}:d?{status:`error`}:{status:`ready`,summary:h.get(e)??Bt(e)},[d,u,h]),handleToggle:(0,V.useCallback)(async(n,r)=>{if(e)try{await Ke(e,n,r),c()}catch(e){t(e,{context:`schedule_toggle`}),P.error(R(`schedules:scheduleDetail.toggleFailed`))}},[e,c]),isLoading:a,isError:o,refetch:(0,V.useCallback)(()=>{c()},[c])}}function En(){let e=i(),{scheduleId:t}=a(),n=Pe(),r=ke(),o=Me(),s=Tn(n),c=en(n,o),l=Ne(`memoryOptOut`),u=je.use.settingsDeveloperNav(),d=l&&u===!0,[f,p]=(0,V.useState)(!1),m=t??null,[h,g]=(0,V.useState)(null),[_,v]=(0,V.useState)(!1),y=(0,V.useCallback)(t=>{e(t?B.schedules.detail(t):B.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,V.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,V.useEffect)(()=>{h&&!c.isLoading&&!x&&g(null)},[h,x,c.isLoading]);let S=(0,V.useCallback)(e=>{g(null),y(e)},[y]),C=(0,V.useCallback)(e=>{m&&y(null),g(e)},[y,m]),w=(0,V.useCallback)(()=>{Oe(e)},[e]),T=Ut(n,(0,V.useMemo)(()=>[...s.recurring,...s.oneTime,...s.pastOneTime],[s.recurring,s.oneTime,s.pastOneTime]),s.refetch),E=(b?(0,U.jsx)(_n,{schedule:b,assistantId:n,usage:s.usageForSchedule(b.id),isPast:s.pastOneTime.some(e=>e.id===b.id),isMobile:r,onClose:()=>y(null),onDeleted:()=>{y(null),s.refetch()}}):null)??(h&&x?(0,U.jsx)(wn,{kind:h,assistantId:n,systemTasks:c,canOpenMemorySettings:d,isMobile:r,onClose:()=>g(null)}):null),D=(0,U.jsx)(xn,{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,U.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,U.jsx)(Wt,{...T.dialogProps});return E&&r?(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(Re,{children:E}),O]}):(0,U.jsxs)(U.Fragment,{children:[E&&!r?(0,U.jsx)(ze,{storageKey:`schedulesDetailDrawerWidth`,detailKey:m??h??void 0,section:D,detail:E}):D,(0,U.jsx)(mt,{isOpen:f,assistantId:n,onClose:()=>p(!1),onCreated:()=>{p(!1),s.refetch()}}),O]})}export{En as SchedulesPage};
|
package/dist/assets/{select-assistant-screen-CALuntMj.js → select-assistant-screen-Cbta9HDV.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-DSjqKLvM.js";import{d as r,h as i}from"./chunk-5KNZJZUH-BUqIilZr.js";import{t as a}from"./jsx-runtime-D3ZM-ToX.js";import{t as o}from"./check-CNBoUiyR.js";import{t as s}from"./menu-Gu_6PRrL.js";import{t as c}from"./cloud-BkCUNbc7.js";import{t as l}from"./ellipsis-vertical-CAYfw0qB.js";import{t as u}from"./globe-BQ4oUIDW.js";import{t as d}from"./laptop-BX8NMrC1.js";import{t as f}from"./link-2-CA1w44Gq.js";import{t as p}from"./plus-CwK68LCA.js";import{t as m}from"./notice-C9v3KOP3.js";import{t as h}from"./modal-Bt1DPFgW.js";import{n as g,t as _}from"./input-BG94bPcH.js";import{t as v}from"./confirm-dialog-DNaRfy4W.js";import{$ as y,O as ee,V as b,W as x,_ as te,ct as S,h as ne,m as re,q as ie,t as ae,x as oe,z as se}from"./local-mode-DP-5m-kS.js";import{t as ce}from"./is-electron-BSK3AUxG.js";import{n as le}from"./resolved-assistants-store-BuqctGKE.js";import"./i18n-zb2mgr1B.js";import{t as C}from"./Trans-Ch_EPHgV.js";import{t as w}from"./useTranslation-Dn8TOHE6.js";import{X as ue,i as de,n as fe,tt as pe}from"./auth-store-BDMYc7te.js";import{c as T}from"./remote-gateway-session-DxuSBHli.js";import{t as me}from"./client-feature-flag-store-B9Bz0uyL.js";import{h as he,l as E}from"./platform-detection-BIfuAgU8.js";import{d as D}from"./routes-C293MsBG.js";import{i as O,n as ge,t as _e}from"./remove-from-device-dialog-BGul1xBz.js";import{t as ve}from"./use-onboarding-login-Zjbfg9rl.js";import{n as ye,t as be}from"./retire-confirm-dialog-Cz64ywTF.js";import{t as xe}from"./onboarding-layout-D8Kv-5kM.js";import{i as Se}from"./format-date-Cl5z8sZt.js";import{t as Ce}from"./radio-card-nav-BOpJqAoO.js";import{a as k,i as we,n as Te,o as A,t as Ee}from"./self-hosted-servers-CsywZANM.js";var j=e(t(),1);async function De(e){let t=()=>window.location.assign(`${e.url}${D.assistant}`);if(!E()){t();return}await Te(e.url)||t()}function Oe(e){return k(oe()?T():window.location.origin)===e.url}var M=a(),ke=`Failed to add the assistant. Please try again.`;function N(e){for(let t of[`/assistant/pair`,`/assistant`])if(e.endsWith(t))return e.slice(0,-t.length);return e}function Ae({open:e,onClose:t,onAdded:r}){let{t:i}=w(`onboarding`),[a,o]=(0,j.useState)(``),[s,c]=(0,j.useState)(!1),[l,d]=(0,j.useState)(null);(0,j.useEffect)(()=>{e&&(o(``),c(!1),d(null))},[e]);let f=()=>{s||t()},p=async()=>{if(!a.trim()||s)return;let e=k(a),t=e===null?null:k(N(e));if(t===null){d(`Enter the full https address, like https://example.com/assistant-1.`);return}c(!0),d(null);try{let e=await A.getState().addOrigin({url:t});if(e.ok){r(e.origin);return}d(ke)}catch(e){console.error(`addRemoteOriginDialog.add failed`,e),d(ke)}c(!1)};return(0,M.jsx)(h.Root,{open:e,onOpenChange:e=>{e||f()},children:(0,M.jsxs)(h.Content,{size:`md`,children:[(0,M.jsxs)(h.Header,{icon:u,children:[(0,M.jsx)(h.Title,{children:i(`addRemoteOriginDialog.title`)}),(0,M.jsx)(h.Description,{children:i(`addRemoteOriginDialog.body`)})]}),(0,M.jsx)(h.Body,{children:(0,M.jsxs)(`div`,{className:`space-y-4`,children:[(0,M.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,M.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`add-remote-origin-url`,children:i(`addRemoteOriginDialog.addressLabel`)}),(0,M.jsx)(_,{id:`add-remote-origin-url`,type:`url`,value:a,onChange:e=>o(e.target.value),placeholder:`https://example.com/assistant-1`,fullWidth:!0,autoFocus:!0})]}),l&&(0,M.jsx)(`p`,{className:`text-body-small-default text-[var(--system-negative-strong)]`,children:l})]})}),(0,M.jsxs)(h.Footer,{children:[(0,M.jsx)(n,{variant:`ghost`,onClick:f,disabled:s,children:i(`actions.cancel`)}),(0,M.jsx)(n,{variant:`primary`,onClick:()=>void p(),disabled:!a.trim()||s,children:i(s?`actions.adding`:`actions.add`)})]})]})})}function je({open:e,initialBundle:t,guidanceMessage:r,onClose:i,onImported:a}){let{t:o}=w(`onboarding`),[s,c]=(0,j.useState)(``),[l,u]=(0,j.useState)(``),[d,p]=(0,j.useState)(!1),[v,y]=(0,j.useState)(null),[ee,b]=(0,j.useState)(null);(0,j.useEffect)(()=>{e&&(c(t??``),u(``),p(!1),y(null),b(null))},[e,t]);let x=()=>{d||i()},te=async()=>{let e=s.trim();if(!(!e||d)){p(!0),y(null);try{let t=await re(e,l.trim()||void 0);if(!t.ok)y(t.error);else if(t.accessOnly)b(t.assistantId);else{a(t.assistantId);return}}catch(e){console.error(`connectAssistantDialog.import failed`,e),y(`Failed to import the pairing bundle. Please try again.`)}p(!1)}};return ee==null?(0,M.jsx)(h.Root,{open:e,onOpenChange:e=>{e||x()},children:(0,M.jsxs)(h.Content,{size:`md`,children:[(0,M.jsxs)(h.Header,{icon:f,children:[(0,M.jsx)(h.Title,{children:o(`connectAssistantDialog.title`)}),(0,M.jsx)(h.Description,{children:(0,M.jsx)(C,{i18nKey:`connectAssistantDialog.instruction`,ns:`onboarding`,components:{code:(0,M.jsx)(`code`,{})}})})]}),(0,M.jsx)(h.Body,{children:(0,M.jsxs)(`div`,{className:`space-y-4`,children:[r&&(0,M.jsx)(m,{tone:`info`,children:r}),(0,M.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,M.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`connect-assistant-bundle`,children:o(`connectAssistantDialog.bundleLabel`)}),(0,M.jsx)(g,{id:`connect-assistant-bundle`,value:s,onChange:e=>c(e.target.value),placeholder:`eyJnYXRld2F5...`,rows:4,fullWidth:!0,autoFocus:!0})]}),(0,M.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,M.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`connect-assistant-name`,children:o(`connectAssistantDialog.nameLabel`)}),(0,M.jsx)(_,{id:`connect-assistant-name`,type:`text`,value:l,onChange:e=>u(e.target.value),placeholder:`office-mac`,fullWidth:!0})]}),v&&(0,M.jsx)(`p`,{className:`text-body-small-default text-[var(--system-negative-strong)]`,children:v})]})}),(0,M.jsxs)(h.Footer,{children:[(0,M.jsx)(n,{variant:`ghost`,onClick:x,disabled:d,children:o(`actions.cancel`)}),(0,M.jsx)(n,{variant:`primary`,onClick:()=>void te(),disabled:!s.trim()||d,children:o(d?`actions.connecting`:`actions.connect`)})]})]})}):(0,M.jsx)(h.Root,{open:e,onOpenChange:e=>{e||x()},children:(0,M.jsxs)(h.Content,{size:`sm`,children:[(0,M.jsx)(h.Header,{icon:f,children:(0,M.jsx)(h.Title,{children:o(`connectAssistantDialog.importedTitle`)})}),(0,M.jsx)(h.Body,{children:(0,M.jsx)(m,{tone:`warning`,children:o(`connectAssistantDialog.importedBody`)})}),(0,M.jsx)(h.Footer,{children:(0,M.jsx)(n,{variant:`primary`,onClick:()=>a(ee),children:o(`actions.continue`)})})]})})}function Me({open:e,assistantName:t,isPending:r,errorMessage:i,onCancel:a,onRepair:o,onRetire:s}){let{t:c}=w(`onboarding`),[l,u]=(0,j.useState)(`menu`);(0,j.useEffect)(()=>{e&&u(`menu`)},[e]);let d=i?(0,M.jsx)(`span`,{className:`mt-3 block text-body-small-default text-[var(--system-negative-strong)]`,children:i}):null;return l===`confirm-repair`?(0,M.jsx)(v,{open:e,title:c(`connectRecoveryDialog.repairTitle`),message:(0,M.jsxs)(M.Fragment,{children:[c(`connectRecoveryDialog.repairBody`),d]}),confirmLabel:c(`connectRecoveryDialog.repairConfirm`),isPending:r,onConfirm:o,onCancel:()=>u(`menu`)}):l===`confirm-retire`?(0,M.jsx)(be,{open:e,isPending:r,extraMessage:d,onConfirm:s,onCancel:()=>u(`menu`)}):(0,M.jsx)(h.Root,{open:e,onOpenChange:e=>{!e&&!r&&a()},children:(0,M.jsxs)(h.Content,{size:`sm`,hideCloseButton:!0,onEscapeKeyDown:e=>{e.preventDefault(),e.stopPropagation(),r||a()},children:[(0,M.jsx)(h.Header,{children:(0,M.jsx)(h.Title,{children:c(`connectRecoveryDialog.authFailedTitle`)})}),(0,M.jsxs)(h.Body,{children:[(0,M.jsx)(h.Description,{children:c(`connectRecoveryDialog.authFailedBody`,{name:t})}),d,(0,M.jsxs)(`div`,{className:`mt-5 flex w-full flex-col gap-2`,children:[(0,M.jsx)(n,{variant:`primary`,fullWidth:!0,disabled:r,onClick:()=>u(`confirm-repair`),children:c(`connectRecoveryDialog.wakeAndRepair`)}),(0,M.jsx)(n,{variant:`dangerOutline`,fullWidth:!0,disabled:r,onClick:()=>u(`confirm-retire`),children:c(`connectRecoveryDialog.retire`)}),(0,M.jsx)(n,{variant:`outlined`,fullWidth:!0,disabled:r,onClick:a,children:c(`actions.cancel`)})]})]})]})})}function Ne(e){return e.name?e.name:e.isPaired?`Paired Assistant`:e.isLocal?`Local Assistant`:`Cloud Assistant`}function Pe(e){let t=e.isPaired?S(e.runtimeUrl):e.isLocal?`On this computer`:`Cloud-hosted`;return e.hatchedAt?`${t} · Created ${Se(e.hatchedAt)}`:t}function P(e){return new URL(e.url).hostname}function Fe(e){return e.name??P(e)}function F(e){return`origin:${e.url}`}var I=`origin:vellum-cloud`,Ie=[];function Le(e){let t=new URLSearchParams(e);return t.delete(`register`),t.delete(`name`),t}function L(){let{t:e}=w(`onboarding`),t=r(),[a,o]=i(),s=a.get(`fromLogin`)===`1`,l=a.get(`noAutoSkip`)===`1`,d=ce(),m=te(),h=de(),g=le.use.assistants(),_=pe.use.currentOrganizationId(),v=me.use.assistantSwitcher(),S=me.use.hydrated(),re=A.use.origins(),oe=A.use.hydrated(),C=he(),T=v?re:Ie,{loading:E,error:be,login:Se,cancel:ke}=ve(),[N,Pe]=(0,j.useState)(null),P=v&&N!==null?{url:N,name:`Vellum Cloud`}:null,L=P!==null,R=e=>e.isLocal||e.isPaired||h,z=g.filter(R),He=z.length>0||T.length>0||P!==null,B=se(),Ue=!h&&B,[V,H]=(0,j.useState)(null),[U,We]=(0,j.useState)(!1),[Ge,Ke]=(0,j.useState)(!1),[qe,Je]=(0,j.useState)(null),[W,Ye]=(0,j.useState)(null),[Xe,G]=(0,j.useState)(!1),[Ze,K]=(0,j.useState)(null),[q,J]=(0,j.useState)(null),[Qe,$e]=(0,j.useState)(!1),[et,Y]=(0,j.useState)(null),[tt,nt]=(0,j.useState)(!1),[X,rt]=(0,j.useState)(null),[it,at]=(0,j.useState)(!1),[ot,st]=(0,j.useState)(null),ct=O.use.open(),lt=O.use.initialBundle(),ut=O.use.guidanceMessage(),dt=O.use.deepLinkDrainSettled(),Z=(0,j.useRef)(!1),ft=!m&&(!S||!v);(0,j.useEffect)(()=>{!m&&S&&!v&&t(D.assistant,{replace:!0})},[m,S,v,t]),(0,j.useEffect)(()=>{v&&(Ee(),A.getState().hydrate())},[v]),(0,j.useEffect)(()=>{if(!v||!C)return;let e=!1;return we().then(t=>{e||Pe(t)}),()=>{e=!0}},[v,C]);let Q=(0,j.useRef)(!1);(0,j.useEffect)(()=>{if(!v||Q.current)return;Q.current=!0;let e=a.get(`register`);if(e===null)return;let t=()=>o(Le,{replace:!0}),n=k(e);if(n===null){t();return}A.getState().addOrigin({url:n,name:a.get(`name`)??void 0}).then(e=>{e.ok?t():Q.current=!1}).catch(()=>{Q.current=!1})},[v,a,o]),(0,j.useEffect)(()=>{if(V===I&&L||V!=null&&T.some(e=>F(e)===V))return;if(z.length===0){let e=T[0],t=e?F(e):L?I:null;V!==t&&H(t);return}if(V!=null&&z.some(e=>e.id===V))return;let e=ue(_);H(z.find(t=>t.id===e)?.id??z[0].id)},[V,z,_,T,L]);let $=async e=>{We(!0),Je(null);try{e.isPaired?await fe.getState().connectPairedAssistant(e.id):e.isLocal?await fe.getState().connectLocalAssistant(e.id):await fe.getState().connectPlatformAssistant(e.id),t(D.assistant,{replace:!0})}catch(t){console.error(`selectAssistant.handleConnect failed`,t),e.isLocal&&se()&&(b(t)||y(t)||t instanceof ae)&&ne(e.id)?Ye(e):e.isPaired&&b(t)?Je(`This pairing has expired. Run vellum pair on the assistant's machine and import it again with vellum connect import.`):Je(`Failed to connect. Please try again.`),We(!1)}},pt=()=>{Ye(null),G(!1),K(null),Ke(!1)},mt=async()=>{if(!(!W||Xe)){G(!0),K(null);try{let e=await x(W.id,{repairGuardian:!0});if(e.ok){ie(),pt(),$(W);return}K(e.error||`Repair failed. Please try again.`)}catch(e){console.error(`selectAssistant.recoveryRepair failed`,e),K(`Repair failed. Please try again.`)}G(!1)}},ht=async()=>{if(!(!W||Xe)){G(!0),K(null);try{let e=await ye(W.id);if(e.ok){pt(),t(e.nextRoute,{replace:!0});return}K(e.error)}catch(e){console.error(`selectAssistant.recoveryRetire failed`,e),K(`Failed to retire assistant. Please try again.`)}G(!1)}},gt=()=>{Qe||(J(null),Y(null))},_t=async()=>{if(!(!q||Qe)){if($e(!0),Y(null),q.isPaired){let e=await ge(q.id);e.ok?(Z.current=!0,J(null)):Y(e.error),$e(!1);return}try{let e=await ee(q.id);if(e.ok){let e=le.getState();e.activeAssistantId===q.id&&e.setActiveAssistantId(null),Z.current=!0,J(null)}else Y(e.error??`Failed to remove. Please try again.`)}catch(e){console.error(`selectAssistant.removeFromDevice failed`,e),Y(`Failed to remove. Please try again.`)}$e(!1)}},vt=()=>{it||(rt(null),st(null))},yt=async()=>{!X||it||(at(!0),st(null),await A.getState().removeOrigin(X.url),A.getState().origins.some(e=>e.url===X.url)?st(`Failed to remove. Please try again.`):(Z.current=!0,rt(null)),at(!1))},bt=e=>{O.getState().closeConnectDialog(),$(le.getState().assistants.find(t=>t.id===e)??{id:e,isLocal:!1,isPlatformHosted:!1,isPaired:!0})},xt=e=>{nt(!1),De(e)};(0,j.useEffect)(()=>{s||l||Z.current||m&&S&&(v&&!oe||T.length>0||d&&!dt||U||Ge||ct||g.length!==0&&g.length===1&&z.length===1&&(Ke(!0),$(z[0])))},[g.length,z.length,dt,m,T.length,v,S,oe]);let St=()=>{if(V===I){Te(null).then(e=>{!e&&N!==null&&window.location.assign(N)});return}let e=T.find(e=>F(e)===V);if(e){Oe(e)?t(D.assistant,{replace:!0}):De(e);return}let n=g.find(e=>e.id===V);n&&$(n)},Ct=()=>{t(m?D.welcome:D.assistant)},wt=be??qe;return ft||Ge&&!wt&&!W?(0,M.jsx)(Re,{}):(0,M.jsxs)(xe,{showAvatarWave:!0,children:[(0,M.jsx)(`div`,{className:`mx-auto flex w-full max-w-xl flex-col items-center ${d?`min-h-full px-8 pt-21 pb-4 electron-prechat-type`:`min-h-screen px-6 pb-40 pt-6 md:min-h-full md:pb-6`} text-[var(--content-default)]`,children:(0,M.jsxs)(`div`,{className:`flex w-full flex-col items-center ${d?``:`flex-1 justify-center`}`,children:[(0,M.jsx)(`h1`,{className:`text-center text-5xl font-normal tracking-tight md:text-4xl lg:text-5xl`,style:{fontFamily:`var(--font-serif)`,animation:`fadeInUp 0.5s ease-out 0.1s both`},children:e(`selectAssistantScreen.title`)}),wt&&(0,M.jsx)(`p`,{className:`mt-4 text-body-small-default text-[var(--system-negative-strong)]`,children:wt}),(0,M.jsxs)(`div`,{role:`radiogroup`,"aria-label":e(`selectAssistantScreen.listAriaLabel`),onKeyDown:Ce,className:`flex w-full flex-col ${d?`mt-8 gap-2`:`mt-10 gap-3`}`,style:{animation:`fadeInUp 0.5s ease-out 0.3s both`},children:[g.map(t=>{let n=R(t);return(0,M.jsx)(Be,{assistant:t,selected:V===t.id,locked:!n,tabStop:V==null?z[0]?.id===t.id:V===t.id,onSelect:()=>{n&&H(t.id)},loginLabel:e(E?`actions.cancel`:`actions.loginToUse`),loginDisabled:U,onLogin:!n&&t.isPlatformHosted?E?ke:()=>void Se():void 0,onRemove:t.isPlatformHosted&&Ue||t.isPaired&&B?()=>J(t):void 0},t.id)}),T.map((e,t)=>{let n=F(e),r=Oe(e);return(0,M.jsx)(Ve,{origin:e,selected:V===n,current:r,tabStop:V==null?z.length===0&&t===0:V===n,onSelect:()=>H(n),onRemove:r&&C?void 0:()=>rt(e)},e.url)}),P&&(0,M.jsx)(Ve,{origin:P,icon:(0,M.jsx)(c,{className:`h-5 w-5`}),selected:V===I,current:!1,tabStop:V==null?z.length===0&&T.length===0:V===I,onSelect:()=>H(I)}),m&&(0,M.jsx)(ze,{icon:(0,M.jsx)(p,{className:`h-4 w-4`}),label:e(`selectAssistantScreen.createNew`),disabled:U||E,onClick:()=>void t(`${D.onboarding.hosting}?from=select-assistant`)}),B&&(0,M.jsx)(ze,{icon:(0,M.jsx)(f,{className:`h-4 w-4`}),label:e(`selectAssistantScreen.connectRemote`),disabled:U||E,onClick:()=>O.getState().openConnectDialog()}),v&&!B&&(0,M.jsx)(ze,{icon:(0,M.jsx)(u,{className:`h-4 w-4`}),label:e(`selectAssistantScreen.addRemote`),disabled:U||E,onClick:()=>nt(!0)})]}),He&&(0,M.jsx)(`div`,{className:`mt-8 w-full`,style:{animation:`fadeInUp 0.5s ease-out 0.4s both`},children:(0,M.jsx)(n,{variant:`primary`,size:`regular`,fullWidth:!0,className:d?void 0:`h-11 text-base`,onClick:St,disabled:!V||U,children:e(U?`actions.connecting`:`actions.continue`)})}),(0,M.jsx)(`div`,{className:He?`mt-3`:`mt-8`,style:{animation:`fadeInUp 0.5s ease-out 0.5s both`},children:(0,M.jsx)(n,{variant:`ghost`,size:`regular`,className:`text-[var(--content-tertiary)]`,onClick:Ct,disabled:U||E,children:e(`actions.back`)})})]})}),(0,M.jsx)(Ae,{open:tt,onClose:()=>nt(!1),onAdded:xt}),(0,M.jsx)(je,{open:ct,initialBundle:lt??void 0,guidanceMessage:ut??void 0,onClose:()=>O.getState().closeConnectDialog(),onImported:bt}),(0,M.jsx)(Me,{open:W!=null,assistantName:W?Ne(W):``,isPending:Xe,errorMessage:Ze??void 0,onCancel:pt,onRepair:()=>void mt(),onRetire:()=>void ht()}),(0,M.jsx)(_e,{open:q!=null,kind:q?.isPaired?`paired`:`platform`,assistantName:q?Ne(q):e(`selectAssistantScreen.unnamedAssistant`),errorMessage:et??void 0,isPending:Qe,onConfirm:()=>void _t(),onCancel:gt}),(0,M.jsx)(_e,{open:X!=null,kind:`origin`,assistantName:X?Fe(X):e(`selectAssistantScreen.unnamedAssistant`),errorMessage:ot??void 0,isPending:it,onConfirm:()=>void yt(),onCancel:vt})]})}function Re(){let{t:e}=w(`onboarding`);return(0,M.jsx)(xe,{showAvatarWave:!0,children:(0,M.jsx)(`div`,{className:`mx-auto flex min-h-screen w-full max-w-xl flex-col items-center justify-center px-6 text-[var(--content-default)]`,children:(0,M.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:e(`selectAssistantScreen.connectingToAssistant`)})})})}function ze({icon:e,label:t,disabled:n,onClick:r}){let i=ce();return(0,M.jsxs)(`button`,{type:`button`,onClick:r,disabled:n,className:[`group flex w-full items-center justify-center gap-2 border border-dashed border-[var(--border-element)]/50 text-[var(--content-tertiary)]`,i?`rounded-lg px-3 py-2.5`:`rounded-xl px-5 py-3`,`cursor-pointer transition-all duration-200 ease-out`,`hover:border-[var(--border-element)] hover:bg-[var(--surface-hover)] hover:text-[var(--content-default)]`,`disabled:cursor-not-allowed disabled:opacity-50`].join(` `),children:[e,(0,M.jsx)(`span`,{className:i?`text-body-small-default`:`text-body-medium-default`,children:t})]})}function R({label:e,onRemove:t}){let{t:r}=w(`onboarding`);return(0,M.jsxs)(s.Root,{children:[(0,M.jsx)(s.Trigger,{asChild:!0,children:(0,M.jsx)(n,{variant:`ghost`,size:`regular`,className:`text-[var(--content-tertiary)]`,iconOnly:(0,M.jsx)(l,{}),"aria-label":r(`selectAssistantScreen.rowActionsAriaLabel`,{name:e})})}),(0,M.jsx)(s.Content,{align:`end`,sideOffset:4,children:(0,M.jsx)(s.Item,{onSelect:t,className:`text-[var(--system-negative-strong)] data-[highlighted]:text-[var(--system-negative-strong)]`,children:r(`selectAssistantScreen.removeFromDevice`)})})]})}function z({icon:e,title:t,subtitle:n,selected:r,locked:i=!1,tabStop:a,onSelect:s,action:c,removeMenu:l}){let u=ce();return(0,M.jsxs)(`div`,{role:i?void 0:`radio`,"aria-checked":i?void 0:r,tabIndex:i?void 0:a?0:-1,onClick:i?void 0:s,onKeyDown:i?void 0:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),s())},className:[`group flex w-full items-center border text-left`,u?`gap-3 rounded-lg px-[10px] py-3`:`gap-4 rounded-2xl px-[18px] py-4`,`transition-all duration-200 ease-out`,i?`border-[var(--border-base)] bg-[var(--surface-overlay)]`:`cursor-pointer focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--primary-base)]`,i?``:r?`border-[var(--primary-base)] bg-[var(--surface-lift)]`:`border-[var(--border-base)] bg-[var(--surface-lift)]/60 hover:border-[var(--border-element)] hover:bg-[var(--surface-lift)]`].join(` `),children:[(0,M.jsx)(`div`,{className:[`flex shrink-0 items-center justify-center transition-colors duration-200`,`h-12 w-12 rounded-[10px]`,r&&!i?`bg-[var(--primary-base)] text-[var(--surface-base)]`:`bg-[var(--surface-active)]/40 text-[var(--content-secondary)]`].join(` `),children:e}),(0,M.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,M.jsx)(`span`,{className:`block text-body-medium-default text-[var(--content-default)]`,children:t}),(0,M.jsx)(`span`,{className:`mt-1 block text-[var(--content-tertiary)] ${u?`text-label-medium-default font-normal`:`text-body-small-lighter`}`,children:n})]}),(0,M.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[c,l&&(i?l:(0,M.jsx)(`div`,{onClick:e=>e.stopPropagation(),onKeyDown:e=>e.stopPropagation(),children:l})),!i&&(0,M.jsx)(`div`,{className:[`flex h-5 w-5 shrink-0 items-center justify-center rounded-full border-2 transition-all duration-200`,r?`border-[var(--primary-base)] bg-[var(--primary-base)]`:`border-[var(--border-element)] group-hover:border-[var(--content-tertiary)]`].join(` `),children:r&&(0,M.jsx)(o,{className:`h-3 w-3 text-[var(--surface-base)]`,strokeWidth:3})})]})]})}function Be({assistant:e,selected:t,locked:r,tabStop:i,onSelect:a,loginLabel:o,loginDisabled:s,onLogin:l,onRemove:u}){let p=Ne(e);return(0,M.jsx)(z,{icon:e.isPaired?(0,M.jsx)(f,{className:`h-5 w-5`}):e.isLocal?(0,M.jsx)(d,{className:`h-5 w-5`}):(0,M.jsx)(c,{className:`h-5 w-5`}),title:p,subtitle:Pe(e),selected:t,locked:r,tabStop:i,onSelect:a,action:r&&l?(0,M.jsx)(n,{variant:`primary`,size:`regular`,onClick:l,disabled:s,children:o}):void 0,removeMenu:u&&(0,M.jsx)(R,{label:p,onRemove:u})})}function Ve({origin:e,icon:t,selected:n,current:r,tabStop:i,onSelect:a,onRemove:o}){let s=Fe(e);return(0,M.jsx)(z,{icon:t??(0,M.jsx)(u,{className:`h-5 w-5`}),title:s,subtitle:`${r?`Current`:`Remote`} · ${P(e)}`,selected:n,tabStop:i,onSelect:a,removeMenu:o&&(0,M.jsx)(R,{label:s,onRemove:o})})}export{L as SelectAssistantScreen};
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-DSjqKLvM.js";import{d as r,h as i}from"./chunk-5KNZJZUH-BUqIilZr.js";import{t as a}from"./jsx-runtime-D3ZM-ToX.js";import{t as o}from"./check-CNBoUiyR.js";import{t as s}from"./menu-Gu_6PRrL.js";import{t as c}from"./cloud-BkCUNbc7.js";import{t as l}from"./ellipsis-vertical-CAYfw0qB.js";import{t as u}from"./globe-BQ4oUIDW.js";import{t as d}from"./laptop-BX8NMrC1.js";import{t as f}from"./link-2-CA1w44Gq.js";import{t as p}from"./plus-CwK68LCA.js";import{t as m}from"./notice-C9v3KOP3.js";import{t as h}from"./modal-Bt1DPFgW.js";import{n as g,t as _}from"./input-BG94bPcH.js";import{t as v}from"./confirm-dialog-DNaRfy4W.js";import{$ as y,O as ee,V as b,W as x,_ as te,ct as S,h as ne,m as re,q as ie,t as ae,x as oe,z as se}from"./local-mode-DP-5m-kS.js";import{t as ce}from"./is-electron-BSK3AUxG.js";import{n as le}from"./resolved-assistants-store-BuqctGKE.js";import"./i18n-BR-AyG5b.js";import{t as C}from"./Trans-CPcWO-v6.js";import{t as w}from"./useTranslation-DxUSOwQs.js";import{X as ue,i as de,n as fe,tt as pe}from"./auth-store-B9pHhreb.js";import{c as T}from"./remote-gateway-session-DxuSBHli.js";import{t as me}from"./client-feature-flag-store-B9Bz0uyL.js";import{h as he,l as E}from"./platform-detection-D4gxJctC.js";import{d as D}from"./routes-C293MsBG.js";import{i as O,n as ge,t as _e}from"./remove-from-device-dialog-DSScuMVd.js";import{t as ve}from"./use-onboarding-login-DMUDDVUi.js";import{n as ye,t as be}from"./retire-confirm-dialog-BD1rkM8j.js";import{t as xe}from"./onboarding-layout-D8Kv-5kM.js";import{i as Se}from"./format-date-mZFhGVxR.js";import{t as Ce}from"./radio-card-nav-BubfTKOh.js";import{a as k,i as we,n as Te,o as A,t as Ee}from"./self-hosted-servers-omz1yNrQ.js";var j=e(t(),1);async function De(e){let t=()=>window.location.assign(`${e.url}${D.assistant}`);if(!E()){t();return}await Te(e.url)||t()}function Oe(e){return k(oe()?T():window.location.origin)===e.url}var M=a(),ke=`Failed to add the assistant. Please try again.`;function N(e){for(let t of[`/assistant/pair`,`/assistant`])if(e.endsWith(t))return e.slice(0,-t.length);return e}function Ae({open:e,onClose:t,onAdded:r}){let{t:i}=w(`onboarding`),[a,o]=(0,j.useState)(``),[s,c]=(0,j.useState)(!1),[l,d]=(0,j.useState)(null);(0,j.useEffect)(()=>{e&&(o(``),c(!1),d(null))},[e]);let f=()=>{s||t()},p=async()=>{if(!a.trim()||s)return;let e=k(a),t=e===null?null:k(N(e));if(t===null){d(`Enter the full https address, like https://example.com/assistant-1.`);return}c(!0),d(null);try{let e=await A.getState().addOrigin({url:t});if(e.ok){r(e.origin);return}d(ke)}catch(e){console.error(`addRemoteOriginDialog.add failed`,e),d(ke)}c(!1)};return(0,M.jsx)(h.Root,{open:e,onOpenChange:e=>{e||f()},children:(0,M.jsxs)(h.Content,{size:`md`,children:[(0,M.jsxs)(h.Header,{icon:u,children:[(0,M.jsx)(h.Title,{children:i(`addRemoteOriginDialog.title`)}),(0,M.jsx)(h.Description,{children:i(`addRemoteOriginDialog.body`)})]}),(0,M.jsx)(h.Body,{children:(0,M.jsxs)(`div`,{className:`space-y-4`,children:[(0,M.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,M.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`add-remote-origin-url`,children:i(`addRemoteOriginDialog.addressLabel`)}),(0,M.jsx)(_,{id:`add-remote-origin-url`,type:`url`,value:a,onChange:e=>o(e.target.value),placeholder:`https://example.com/assistant-1`,fullWidth:!0,autoFocus:!0})]}),l&&(0,M.jsx)(`p`,{className:`text-body-small-default text-[var(--system-negative-strong)]`,children:l})]})}),(0,M.jsxs)(h.Footer,{children:[(0,M.jsx)(n,{variant:`ghost`,onClick:f,disabled:s,children:i(`actions.cancel`)}),(0,M.jsx)(n,{variant:`primary`,onClick:()=>void p(),disabled:!a.trim()||s,children:i(s?`actions.adding`:`actions.add`)})]})]})})}function je({open:e,initialBundle:t,guidanceMessage:r,onClose:i,onImported:a}){let{t:o}=w(`onboarding`),[s,c]=(0,j.useState)(``),[l,u]=(0,j.useState)(``),[d,p]=(0,j.useState)(!1),[v,y]=(0,j.useState)(null),[ee,b]=(0,j.useState)(null);(0,j.useEffect)(()=>{e&&(c(t??``),u(``),p(!1),y(null),b(null))},[e,t]);let x=()=>{d||i()},te=async()=>{let e=s.trim();if(!(!e||d)){p(!0),y(null);try{let t=await re(e,l.trim()||void 0);if(!t.ok)y(t.error);else if(t.accessOnly)b(t.assistantId);else{a(t.assistantId);return}}catch(e){console.error(`connectAssistantDialog.import failed`,e),y(`Failed to import the pairing bundle. Please try again.`)}p(!1)}};return ee==null?(0,M.jsx)(h.Root,{open:e,onOpenChange:e=>{e||x()},children:(0,M.jsxs)(h.Content,{size:`md`,children:[(0,M.jsxs)(h.Header,{icon:f,children:[(0,M.jsx)(h.Title,{children:o(`connectAssistantDialog.title`)}),(0,M.jsx)(h.Description,{children:(0,M.jsx)(C,{i18nKey:`connectAssistantDialog.instruction`,ns:`onboarding`,components:{code:(0,M.jsx)(`code`,{})}})})]}),(0,M.jsx)(h.Body,{children:(0,M.jsxs)(`div`,{className:`space-y-4`,children:[r&&(0,M.jsx)(m,{tone:`info`,children:r}),(0,M.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,M.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`connect-assistant-bundle`,children:o(`connectAssistantDialog.bundleLabel`)}),(0,M.jsx)(g,{id:`connect-assistant-bundle`,value:s,onChange:e=>c(e.target.value),placeholder:`eyJnYXRld2F5...`,rows:4,fullWidth:!0,autoFocus:!0})]}),(0,M.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,M.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`connect-assistant-name`,children:o(`connectAssistantDialog.nameLabel`)}),(0,M.jsx)(_,{id:`connect-assistant-name`,type:`text`,value:l,onChange:e=>u(e.target.value),placeholder:`office-mac`,fullWidth:!0})]}),v&&(0,M.jsx)(`p`,{className:`text-body-small-default text-[var(--system-negative-strong)]`,children:v})]})}),(0,M.jsxs)(h.Footer,{children:[(0,M.jsx)(n,{variant:`ghost`,onClick:x,disabled:d,children:o(`actions.cancel`)}),(0,M.jsx)(n,{variant:`primary`,onClick:()=>void te(),disabled:!s.trim()||d,children:o(d?`actions.connecting`:`actions.connect`)})]})]})}):(0,M.jsx)(h.Root,{open:e,onOpenChange:e=>{e||x()},children:(0,M.jsxs)(h.Content,{size:`sm`,children:[(0,M.jsx)(h.Header,{icon:f,children:(0,M.jsx)(h.Title,{children:o(`connectAssistantDialog.importedTitle`)})}),(0,M.jsx)(h.Body,{children:(0,M.jsx)(m,{tone:`warning`,children:o(`connectAssistantDialog.importedBody`)})}),(0,M.jsx)(h.Footer,{children:(0,M.jsx)(n,{variant:`primary`,onClick:()=>a(ee),children:o(`actions.continue`)})})]})})}function Me({open:e,assistantName:t,isPending:r,errorMessage:i,onCancel:a,onRepair:o,onRetire:s}){let{t:c}=w(`onboarding`),[l,u]=(0,j.useState)(`menu`);(0,j.useEffect)(()=>{e&&u(`menu`)},[e]);let d=i?(0,M.jsx)(`span`,{className:`mt-3 block text-body-small-default text-[var(--system-negative-strong)]`,children:i}):null;return l===`confirm-repair`?(0,M.jsx)(v,{open:e,title:c(`connectRecoveryDialog.repairTitle`),message:(0,M.jsxs)(M.Fragment,{children:[c(`connectRecoveryDialog.repairBody`),d]}),confirmLabel:c(`connectRecoveryDialog.repairConfirm`),isPending:r,onConfirm:o,onCancel:()=>u(`menu`)}):l===`confirm-retire`?(0,M.jsx)(be,{open:e,isPending:r,extraMessage:d,onConfirm:s,onCancel:()=>u(`menu`)}):(0,M.jsx)(h.Root,{open:e,onOpenChange:e=>{!e&&!r&&a()},children:(0,M.jsxs)(h.Content,{size:`sm`,hideCloseButton:!0,onEscapeKeyDown:e=>{e.preventDefault(),e.stopPropagation(),r||a()},children:[(0,M.jsx)(h.Header,{children:(0,M.jsx)(h.Title,{children:c(`connectRecoveryDialog.authFailedTitle`)})}),(0,M.jsxs)(h.Body,{children:[(0,M.jsx)(h.Description,{children:c(`connectRecoveryDialog.authFailedBody`,{name:t})}),d,(0,M.jsxs)(`div`,{className:`mt-5 flex w-full flex-col gap-2`,children:[(0,M.jsx)(n,{variant:`primary`,fullWidth:!0,disabled:r,onClick:()=>u(`confirm-repair`),children:c(`connectRecoveryDialog.wakeAndRepair`)}),(0,M.jsx)(n,{variant:`dangerOutline`,fullWidth:!0,disabled:r,onClick:()=>u(`confirm-retire`),children:c(`connectRecoveryDialog.retire`)}),(0,M.jsx)(n,{variant:`outlined`,fullWidth:!0,disabled:r,onClick:a,children:c(`actions.cancel`)})]})]})]})})}function Ne(e){return e.name?e.name:e.isPaired?`Paired Assistant`:e.isLocal?`Local Assistant`:`Cloud Assistant`}function Pe(e){let t=e.isPaired?S(e.runtimeUrl):e.isLocal?`On this computer`:`Cloud-hosted`;return e.hatchedAt?`${t} · Created ${Se(e.hatchedAt)}`:t}function P(e){return new URL(e.url).hostname}function Fe(e){return e.name??P(e)}function F(e){return`origin:${e.url}`}var I=`origin:vellum-cloud`,Ie=[];function Le(e){let t=new URLSearchParams(e);return t.delete(`register`),t.delete(`name`),t}function L(){let{t:e}=w(`onboarding`),t=r(),[a,o]=i(),s=a.get(`fromLogin`)===`1`,l=a.get(`noAutoSkip`)===`1`,d=ce(),m=te(),h=de(),g=le.use.assistants(),_=pe.use.currentOrganizationId(),v=me.use.assistantSwitcher(),S=me.use.hydrated(),re=A.use.origins(),oe=A.use.hydrated(),C=he(),T=v?re:Ie,{loading:E,error:be,login:Se,cancel:ke}=ve(),[N,Pe]=(0,j.useState)(null),P=v&&N!==null?{url:N,name:`Vellum Cloud`}:null,L=P!==null,R=e=>e.isLocal||e.isPaired||h,z=g.filter(R),He=z.length>0||T.length>0||P!==null,B=se(),Ue=!h&&B,[V,H]=(0,j.useState)(null),[U,We]=(0,j.useState)(!1),[Ge,Ke]=(0,j.useState)(!1),[qe,Je]=(0,j.useState)(null),[W,Ye]=(0,j.useState)(null),[Xe,G]=(0,j.useState)(!1),[Ze,K]=(0,j.useState)(null),[q,J]=(0,j.useState)(null),[Qe,$e]=(0,j.useState)(!1),[et,Y]=(0,j.useState)(null),[tt,nt]=(0,j.useState)(!1),[X,rt]=(0,j.useState)(null),[it,at]=(0,j.useState)(!1),[ot,st]=(0,j.useState)(null),ct=O.use.open(),lt=O.use.initialBundle(),ut=O.use.guidanceMessage(),dt=O.use.deepLinkDrainSettled(),Z=(0,j.useRef)(!1),ft=!m&&(!S||!v);(0,j.useEffect)(()=>{!m&&S&&!v&&t(D.assistant,{replace:!0})},[m,S,v,t]),(0,j.useEffect)(()=>{v&&(Ee(),A.getState().hydrate())},[v]),(0,j.useEffect)(()=>{if(!v||!C)return;let e=!1;return we().then(t=>{e||Pe(t)}),()=>{e=!0}},[v,C]);let Q=(0,j.useRef)(!1);(0,j.useEffect)(()=>{if(!v||Q.current)return;Q.current=!0;let e=a.get(`register`);if(e===null)return;let t=()=>o(Le,{replace:!0}),n=k(e);if(n===null){t();return}A.getState().addOrigin({url:n,name:a.get(`name`)??void 0}).then(e=>{e.ok?t():Q.current=!1}).catch(()=>{Q.current=!1})},[v,a,o]),(0,j.useEffect)(()=>{if(V===I&&L||V!=null&&T.some(e=>F(e)===V))return;if(z.length===0){let e=T[0],t=e?F(e):L?I:null;V!==t&&H(t);return}if(V!=null&&z.some(e=>e.id===V))return;let e=ue(_);H(z.find(t=>t.id===e)?.id??z[0].id)},[V,z,_,T,L]);let $=async e=>{We(!0),Je(null);try{e.isPaired?await fe.getState().connectPairedAssistant(e.id):e.isLocal?await fe.getState().connectLocalAssistant(e.id):await fe.getState().connectPlatformAssistant(e.id),t(D.assistant,{replace:!0})}catch(t){console.error(`selectAssistant.handleConnect failed`,t),e.isLocal&&se()&&(b(t)||y(t)||t instanceof ae)&&ne(e.id)?Ye(e):e.isPaired&&b(t)?Je(`This pairing has expired. Run vellum pair on the assistant's machine and import it again with vellum connect import.`):Je(`Failed to connect. Please try again.`),We(!1)}},pt=()=>{Ye(null),G(!1),K(null),Ke(!1)},mt=async()=>{if(!(!W||Xe)){G(!0),K(null);try{let e=await x(W.id,{repairGuardian:!0});if(e.ok){ie(),pt(),$(W);return}K(e.error||`Repair failed. Please try again.`)}catch(e){console.error(`selectAssistant.recoveryRepair failed`,e),K(`Repair failed. Please try again.`)}G(!1)}},ht=async()=>{if(!(!W||Xe)){G(!0),K(null);try{let e=await ye(W.id);if(e.ok){pt(),t(e.nextRoute,{replace:!0});return}K(e.error)}catch(e){console.error(`selectAssistant.recoveryRetire failed`,e),K(`Failed to retire assistant. Please try again.`)}G(!1)}},gt=()=>{Qe||(J(null),Y(null))},_t=async()=>{if(!(!q||Qe)){if($e(!0),Y(null),q.isPaired){let e=await ge(q.id);e.ok?(Z.current=!0,J(null)):Y(e.error),$e(!1);return}try{let e=await ee(q.id);if(e.ok){let e=le.getState();e.activeAssistantId===q.id&&e.setActiveAssistantId(null),Z.current=!0,J(null)}else Y(e.error??`Failed to remove. Please try again.`)}catch(e){console.error(`selectAssistant.removeFromDevice failed`,e),Y(`Failed to remove. Please try again.`)}$e(!1)}},vt=()=>{it||(rt(null),st(null))},yt=async()=>{!X||it||(at(!0),st(null),await A.getState().removeOrigin(X.url),A.getState().origins.some(e=>e.url===X.url)?st(`Failed to remove. Please try again.`):(Z.current=!0,rt(null)),at(!1))},bt=e=>{O.getState().closeConnectDialog(),$(le.getState().assistants.find(t=>t.id===e)??{id:e,isLocal:!1,isPlatformHosted:!1,isPaired:!0})},xt=e=>{nt(!1),De(e)};(0,j.useEffect)(()=>{s||l||Z.current||m&&S&&(v&&!oe||T.length>0||d&&!dt||U||Ge||ct||g.length!==0&&g.length===1&&z.length===1&&(Ke(!0),$(z[0])))},[g.length,z.length,dt,m,T.length,v,S,oe]);let St=()=>{if(V===I){Te(null).then(e=>{!e&&N!==null&&window.location.assign(N)});return}let e=T.find(e=>F(e)===V);if(e){Oe(e)?t(D.assistant,{replace:!0}):De(e);return}let n=g.find(e=>e.id===V);n&&$(n)},Ct=()=>{t(m?D.welcome:D.assistant)},wt=be??qe;return ft||Ge&&!wt&&!W?(0,M.jsx)(Re,{}):(0,M.jsxs)(xe,{showAvatarWave:!0,children:[(0,M.jsx)(`div`,{className:`mx-auto flex w-full max-w-xl flex-col items-center ${d?`min-h-full px-8 pt-21 pb-4 electron-prechat-type`:`min-h-screen px-6 pb-40 pt-6 md:min-h-full md:pb-6`} text-[var(--content-default)]`,children:(0,M.jsxs)(`div`,{className:`flex w-full flex-col items-center ${d?``:`flex-1 justify-center`}`,children:[(0,M.jsx)(`h1`,{className:`text-center text-5xl font-normal tracking-tight md:text-4xl lg:text-5xl`,style:{fontFamily:`var(--font-serif)`,animation:`fadeInUp 0.5s ease-out 0.1s both`},children:e(`selectAssistantScreen.title`)}),wt&&(0,M.jsx)(`p`,{className:`mt-4 text-body-small-default text-[var(--system-negative-strong)]`,children:wt}),(0,M.jsxs)(`div`,{role:`radiogroup`,"aria-label":e(`selectAssistantScreen.listAriaLabel`),onKeyDown:Ce,className:`flex w-full flex-col ${d?`mt-8 gap-2`:`mt-10 gap-3`}`,style:{animation:`fadeInUp 0.5s ease-out 0.3s both`},children:[g.map(t=>{let n=R(t);return(0,M.jsx)(Be,{assistant:t,selected:V===t.id,locked:!n,tabStop:V==null?z[0]?.id===t.id:V===t.id,onSelect:()=>{n&&H(t.id)},loginLabel:e(E?`actions.cancel`:`actions.loginToUse`),loginDisabled:U,onLogin:!n&&t.isPlatformHosted?E?ke:()=>void Se():void 0,onRemove:t.isPlatformHosted&&Ue||t.isPaired&&B?()=>J(t):void 0},t.id)}),T.map((e,t)=>{let n=F(e),r=Oe(e);return(0,M.jsx)(Ve,{origin:e,selected:V===n,current:r,tabStop:V==null?z.length===0&&t===0:V===n,onSelect:()=>H(n),onRemove:r&&C?void 0:()=>rt(e)},e.url)}),P&&(0,M.jsx)(Ve,{origin:P,icon:(0,M.jsx)(c,{className:`h-5 w-5`}),selected:V===I,current:!1,tabStop:V==null?z.length===0&&T.length===0:V===I,onSelect:()=>H(I)}),m&&(0,M.jsx)(ze,{icon:(0,M.jsx)(p,{className:`h-4 w-4`}),label:e(`selectAssistantScreen.createNew`),disabled:U||E,onClick:()=>void t(`${D.onboarding.hosting}?from=select-assistant`)}),B&&(0,M.jsx)(ze,{icon:(0,M.jsx)(f,{className:`h-4 w-4`}),label:e(`selectAssistantScreen.connectRemote`),disabled:U||E,onClick:()=>O.getState().openConnectDialog()}),v&&!B&&(0,M.jsx)(ze,{icon:(0,M.jsx)(u,{className:`h-4 w-4`}),label:e(`selectAssistantScreen.addRemote`),disabled:U||E,onClick:()=>nt(!0)})]}),He&&(0,M.jsx)(`div`,{className:`mt-8 w-full`,style:{animation:`fadeInUp 0.5s ease-out 0.4s both`},children:(0,M.jsx)(n,{variant:`primary`,size:`regular`,fullWidth:!0,className:d?void 0:`h-11 text-base`,onClick:St,disabled:!V||U,children:e(U?`actions.connecting`:`actions.continue`)})}),(0,M.jsx)(`div`,{className:He?`mt-3`:`mt-8`,style:{animation:`fadeInUp 0.5s ease-out 0.5s both`},children:(0,M.jsx)(n,{variant:`ghost`,size:`regular`,className:`text-[var(--content-tertiary)]`,onClick:Ct,disabled:U||E,children:e(`actions.back`)})})]})}),(0,M.jsx)(Ae,{open:tt,onClose:()=>nt(!1),onAdded:xt}),(0,M.jsx)(je,{open:ct,initialBundle:lt??void 0,guidanceMessage:ut??void 0,onClose:()=>O.getState().closeConnectDialog(),onImported:bt}),(0,M.jsx)(Me,{open:W!=null,assistantName:W?Ne(W):``,isPending:Xe,errorMessage:Ze??void 0,onCancel:pt,onRepair:()=>void mt(),onRetire:()=>void ht()}),(0,M.jsx)(_e,{open:q!=null,kind:q?.isPaired?`paired`:`platform`,assistantName:q?Ne(q):e(`selectAssistantScreen.unnamedAssistant`),errorMessage:et??void 0,isPending:Qe,onConfirm:()=>void _t(),onCancel:gt}),(0,M.jsx)(_e,{open:X!=null,kind:`origin`,assistantName:X?Fe(X):e(`selectAssistantScreen.unnamedAssistant`),errorMessage:ot??void 0,isPending:it,onConfirm:()=>void yt(),onCancel:vt})]})}function Re(){let{t:e}=w(`onboarding`);return(0,M.jsx)(xe,{showAvatarWave:!0,children:(0,M.jsx)(`div`,{className:`mx-auto flex min-h-screen w-full max-w-xl flex-col items-center justify-center px-6 text-[var(--content-default)]`,children:(0,M.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:e(`selectAssistantScreen.connectingToAssistant`)})})})}function ze({icon:e,label:t,disabled:n,onClick:r}){let i=ce();return(0,M.jsxs)(`button`,{type:`button`,onClick:r,disabled:n,className:[`group flex w-full items-center justify-center gap-2 border border-dashed border-[var(--border-element)]/50 text-[var(--content-tertiary)]`,i?`rounded-lg px-3 py-2.5`:`rounded-xl px-5 py-3`,`cursor-pointer transition-all duration-200 ease-out`,`hover:border-[var(--border-element)] hover:bg-[var(--surface-hover)] hover:text-[var(--content-default)]`,`disabled:cursor-not-allowed disabled:opacity-50`].join(` `),children:[e,(0,M.jsx)(`span`,{className:i?`text-body-small-default`:`text-body-medium-default`,children:t})]})}function R({label:e,onRemove:t}){let{t:r}=w(`onboarding`);return(0,M.jsxs)(s.Root,{children:[(0,M.jsx)(s.Trigger,{asChild:!0,children:(0,M.jsx)(n,{variant:`ghost`,size:`regular`,className:`text-[var(--content-tertiary)]`,iconOnly:(0,M.jsx)(l,{}),"aria-label":r(`selectAssistantScreen.rowActionsAriaLabel`,{name:e})})}),(0,M.jsx)(s.Content,{align:`end`,sideOffset:4,children:(0,M.jsx)(s.Item,{onSelect:t,className:`text-[var(--system-negative-strong)] data-[highlighted]:text-[var(--system-negative-strong)]`,children:r(`selectAssistantScreen.removeFromDevice`)})})]})}function z({icon:e,title:t,subtitle:n,selected:r,locked:i=!1,tabStop:a,onSelect:s,action:c,removeMenu:l}){let u=ce();return(0,M.jsxs)(`div`,{role:i?void 0:`radio`,"aria-checked":i?void 0:r,tabIndex:i?void 0:a?0:-1,onClick:i?void 0:s,onKeyDown:i?void 0:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),s())},className:[`group flex w-full items-center border text-left`,u?`gap-3 rounded-lg px-[10px] py-3`:`gap-4 rounded-2xl px-[18px] py-4`,`transition-all duration-200 ease-out`,i?`border-[var(--border-base)] bg-[var(--surface-overlay)]`:`cursor-pointer focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--primary-base)]`,i?``:r?`border-[var(--primary-base)] bg-[var(--surface-lift)]`:`border-[var(--border-base)] bg-[var(--surface-lift)]/60 hover:border-[var(--border-element)] hover:bg-[var(--surface-lift)]`].join(` `),children:[(0,M.jsx)(`div`,{className:[`flex shrink-0 items-center justify-center transition-colors duration-200`,`h-12 w-12 rounded-[10px]`,r&&!i?`bg-[var(--primary-base)] text-[var(--surface-base)]`:`bg-[var(--surface-active)]/40 text-[var(--content-secondary)]`].join(` `),children:e}),(0,M.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,M.jsx)(`span`,{className:`block text-body-medium-default text-[var(--content-default)]`,children:t}),(0,M.jsx)(`span`,{className:`mt-1 block text-[var(--content-tertiary)] ${u?`text-label-medium-default font-normal`:`text-body-small-lighter`}`,children:n})]}),(0,M.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[c,l&&(i?l:(0,M.jsx)(`div`,{onClick:e=>e.stopPropagation(),onKeyDown:e=>e.stopPropagation(),children:l})),!i&&(0,M.jsx)(`div`,{className:[`flex h-5 w-5 shrink-0 items-center justify-center rounded-full border-2 transition-all duration-200`,r?`border-[var(--primary-base)] bg-[var(--primary-base)]`:`border-[var(--border-element)] group-hover:border-[var(--content-tertiary)]`].join(` `),children:r&&(0,M.jsx)(o,{className:`h-3 w-3 text-[var(--surface-base)]`,strokeWidth:3})})]})]})}function Be({assistant:e,selected:t,locked:r,tabStop:i,onSelect:a,loginLabel:o,loginDisabled:s,onLogin:l,onRemove:u}){let p=Ne(e);return(0,M.jsx)(z,{icon:e.isPaired?(0,M.jsx)(f,{className:`h-5 w-5`}):e.isLocal?(0,M.jsx)(d,{className:`h-5 w-5`}):(0,M.jsx)(c,{className:`h-5 w-5`}),title:p,subtitle:Pe(e),selected:t,locked:r,tabStop:i,onSelect:a,action:r&&l?(0,M.jsx)(n,{variant:`primary`,size:`regular`,onClick:l,disabled:s,children:o}):void 0,removeMenu:u&&(0,M.jsx)(R,{label:p,onRemove:u})})}function Ve({origin:e,icon:t,selected:n,current:r,tabStop:i,onSelect:a,onRemove:o}){let s=Fe(e);return(0,M.jsx)(z,{icon:t??(0,M.jsx)(u,{className:`h-5 w-5`}),title:s,subtitle:`${r?`Current`:`Remote`} · ${P(e)}`,selected:n,tabStop:i,onSelect:a,removeMenu:o&&(0,M.jsx)(R,{label:s,onRemove:o})})}export{L as SelectAssistantScreen};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{u as e}from"./local-settings-Bx7FsNo5.js";import{n as t,t as n}from"./create-selectors-C7uuHryP.js";import{l as r}from"./platform-detection-
|
|
1
|
+
import{u as e}from"./local-settings-Bx7FsNo5.js";import{n as t,t as n}from"./create-selectors-C7uuHryP.js";import{l as r}from"./platform-detection-D4gxJctC.js";import{i}from"./dist-D8V9YSOm.js";import{i as a}from"./typed-storage-DjhDRFKz.js";var o=`vellum:remembered-origins`;function s(e){let t=e.trim();if(t===``)return null;let n;try{n=new URL(t)}catch{return null}return n.protocol!==`https:`||n.hostname===``?null:`${n.origin}${n.pathname.replace(/\/+$/,``)}`}function c(e,t){let n=[],r=new Set,i=t??new Date().toISOString();for(let t of e){if(typeof t!=`object`||!t)continue;let{url:e,name:a,addedAt:o}=t;if(typeof e!=`string`)continue;let c=s(e);c===null||r.has(c)||(r.add(c),n.push({url:c,...typeof a==`string`&&a!==``?{name:a}:{},addedAt:typeof o==`string`?o:i}))}return n}function l(e){let t=JSON.parse(e);return Array.isArray(t)?c(t):null}var u=a({key:o,scope:`device`,parse:l,serialize:JSON.stringify,fallback:[]}),d={load:async()=>u.load(),save:async e=>{u.save(e)},watch:t=>e(o,t)},f=d,p=null,m=0,h=Promise.resolve(),g=`vellum:remembered-origins:mutate`;async function _(e){let t=typeof navigator>`u`?void 0:navigator.locks;return t?await t.request(g,e):e()}function v(e){let t=()=>_(e),n=h.then(t,t);return h=n.catch(()=>void 0),n}var y=null,b=!1;function x(e){return v(async()=>{try{let t=await f.load();if(e!==m)return;w.getState().hydrated?w.setState({origins:t}):p===null?w.getState().hydrate():b=!0}catch{}})}function S(){y?.();let e=m;y=f.watch?.(()=>void x(e))??null}function C(e){f=e,m+=1,p=null,b=!1,w.setState({hydrated:!1}),S(),w.getState().hydrate()}var w=t()((e,t)=>({origins:[],hydrated:!1,hydrate:()=>(p??=(async()=>{let t=m;await Promise.resolve();try{let n=await f.load();t===m&&(e({origins:n,hydrated:!0}),b&&(b=!1,x(t)))}catch{t===m&&(p=null)}})(),p),addOrigin:async({url:n,name:r})=>{let i=s(n);return i===null?{ok:!1}:v(async()=>{if(await t().hydrate(),!t().hydrated)return{ok:!1};let n=f,a=m,o;try{o=await n.load()}catch{return{ok:!1}}if(a!==m)return{ok:!1};let s=r?.trim(),c=o.find(e=>e.url===i),l=c??{url:i,addedAt:new Date().toISOString()},u=s?{...l,name:s}:l,d=c?o.map(e=>e.url===i?u:e):[...o,u];try{await n.save(d)}catch{return{ok:!1}}return a===m?(e({origins:d}),{ok:!0,origin:u}):{ok:!1}})},removeOrigin:async n=>{let r=s(n);r!==null&&await v(async()=>{if(await t().hydrate(),!t().hydrated)return;let n=f,i=m,a;try{a=await n.load()}catch{return}if(i!==m)return;let o=a.filter(e=>e.url!==r);if(o.length!==a.length)try{await n.save(o)}catch{return}i===m&&e({origins:o})})}}));S();var T=n(w),E=i(`SelfHostedServers`),D=`1970-01-01T00:00:00.000Z`;async function O(){try{return await E.list()}catch(e){return console.debug(`[self-hosted-servers] bridge unavailable:`,e),null}}var k=`vellum:remembered-origins:native-migrated`;function A(){try{return window.localStorage.getItem(k)===`true`}catch{return!0}}function j(){try{window.localStorage.setItem(k,`true`)}catch{}}async function M(e){if(A())return e;let t=[];try{t=await d.load()}catch{t=[]}let n=new Set(e.map(e=>e.url)),r=t.filter(e=>!n.has(e.url)),i=[];for(let t of r){try{await E.add({url:t.url,...t.name?{name:t.name}:{}})}catch(t){return console.debug(`[self-hosted-servers] migration add failed:`,t),[...e,...i]}i.push(t)}return j(),[...e,...i]}function N(){return{load:async()=>{let e=await O();return e===null?d.load():M(c(e.servers,D))},save:async e=>{let t=await O();if(t===null){await d.save(e);return}let n=new Map(c(t.servers,D).map(e=>[e.url,e.name])),r=new Set(e.map(e=>e.url));for(let e of n.keys())r.has(e)||await E.remove({url:e});for(let t of e)(!n.has(t.url)||t.name&&t.name!==n.get(t.url))&&await E.add({url:t.url,...t.name?{name:t.name}:{}})},watch:d.watch}}var P=!1;function F(){P||!r()||(P=!0,C(N()))}async function I(e){if(!r())return!1;try{return await E.switchTo(e===null?{}:{url:e}),!0}catch(e){return console.debug(`[self-hosted-servers] switchTo unavailable:`,e),!1}}async function L(e,t){if(!r())return!1;try{return await E.switchToPath({...e===null?{}:{url:e},path:t}),!0}catch(e){return console.debug(`[self-hosted-servers] switchToPath unavailable:`,e),!1}}async function R(){if(!r())return null;let e=await O();return e===null||!e.activeUrl?null:e.bakedUrl?s(e.bakedUrl):null}export{s as a,R as i,I as n,T as o,L as r,F as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./jsx-runtime-D3ZM-ToX.js";import{t as r}from"./toggle-
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./jsx-runtime-D3ZM-ToX.js";import{t as r}from"./toggle-ibKLySIy.js";var i=e(t(),1),a=n();function o({label:e,helperText:t,checked:n,onChange:o,variant:s=`toggle-leading`}){let c=(0,i.useId)(),l=(0,a.jsx)(r,{checked:n,onChange:o,id:c}),u=(0,a.jsxs)(`label`,{htmlFor:c,className:`min-w-0 flex-1 cursor-pointer`,children:[(0,a.jsx)(`span`,{className:`block text-body-medium-default text-[var(--content-default)]`,children:e}),(0,a.jsx)(`span`,{className:`mt-1 block text-body-small-default text-[var(--content-tertiary)]`,children:t})]});return s===`toggle-trailing`?(0,a.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[u,l]}):(0,a.jsxs)(`div`,{className:`flex items-center gap-4`,children:[l,u]})}export{o as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={chooseProfilePlaceholder:`Elegir perfil…`,description:`El perfil que tu asistente consulta para una segunda opinión cuando quiere revisar un plan o su propio trabajo.`,title:`Asesor`},t={defaultEntryMeta:`Predeterminado`},n={successToast:`¡Pago recibido! Tu saldo de créditos se actualizará en breve.`,topUpCancelToast:`Se canceló el pago. No se añadieron créditos.`,upgradeCancelToast:`Mejora cancelada. No hay cambios en tu plan.`},r={affectedSummary:`{count, plural, one {# acción usa actualmente {profile}} other {# acciones usan actualmente {profile}}}`,applyTo:`{count, plural, one {Aplicar a # acción} other {Aplicar a # acciones}}`,cancel:`Cancelar`,changeToLabel:`Cambiar a`,chooseActions:`Elige qué acciones actualizar.`,clearAll:`Borrar todo`,currentlyUsingLabel:`Usando actualmente`,intro:`Actualiza las acciones que actualmente usan un perfil. El resultado se guarda como anulaciones individuales.`,noticeBody:`Cambia las acciones seleccionadas que usan {sourceLabel} hoy. No crea una regla continua entre perfiles.`,noticeTitle:`Esto ocurre una sola vez.`,selectAll:`Seleccionar todo`,successToast:`Se actualizaron {count, plural, one {# acción} other {# acciones}} a "{targetLabel}".`,targetPlaceholder:`Selecciona un perfil…`,title:`Cambiar anulaciones de acciones`,updateFailedToast:`No se pudieron actualizar las anulaciones. Inténtalo de nuevo.`,viaDefault:`Predeterminado`,viaOverride:`Anulación`,willChange:`{count, plural, one {Cambiará # acción} other {Cambiarán # acciones}}`},i={defaultProfileSuffix:`· Predeterminado: {label}`,modelLabel:`Modelo`,overrideAriaLabel:`Anular {displayName}`,pickModelError:`Elige un modelo`,providerLabel:`Proveedor`,unavailableOption:`{name} (no disponible)`},a={completeFailed:`No se pudo completar el inicio de sesión. Inténtalo de nuevo.`,completeSignIn:`Completar inicio de sesión`,completingSignIn:`Completando inicio de sesión...`,connected:`Suscripción a ChatGPT conectada correctamente.`,intro:`Conecta tu suscripción a ChatGPT para usar modelos de OpenAI sin una clave de API.`,invalidUrl:`URL no válida. Pega la URL completa de la barra de direcciones.`,missingCode:`A la URL le falta el código de autorización. Asegúrate de haber copiado la URL completa.`,missingState:`A la URL le falta el parámetro state. Asegúrate de haber copiado la URL completa.`,pasteUrlError:`Pega la URL de la página de error.`,signInButton:`Iniciar sesión con ChatGPT`,startFailed:`No se pudo iniciar el inicio de sesión con ChatGPT. Inténtalo de nuevo.`,startingSignIn:`Iniciando sesión...`,step1Idle:`1. Haz clic en "Iniciar sesión con ChatGPT" abajo para abrir una ventana emergente`,step1PasteUrl:`1. Haz clic en "Iniciar sesión con ChatGPT" para abrir una ventana emergente`,step2:`2. Inicia sesión; llegarás a una página de error, y eso es normal`,step3:`3. Copia la URL completa de la barra de direcciones de esa página y pégala abajo`,tryAgain:`Intentar de nuevo`,urlPlaceholder:`Pega aquí la URL de devolución de llamada...`},o={body:`Reclama un crédito único de {amount} y lo añadiremos directamente al saldo de tu cuenta. No se requiere ningún pago.`,claim:`Reclamar {amount} en créditos`,decline:`No, gracias`,errorToast:`No se pudieron añadir los créditos. Inténtalo de nuevo.`,grantedToast:`Se añadieron {amount} en créditos a tu cuenta.`,title:`Aquí tienes {amount} de nuestra parte`,unavailableToast:`Esta oferta ya no está disponible.`},s={addressLabel:`Dirección`,checkingSubscription:`Comprobando suscripción…`,confirm:`Confirmar`,create:`Crear`,createEmailFailedFallback:`No se pudo crear la dirección de correo.`,creating:`Creando…`,domainLabel:`Dominio`,domainRegisteredToast:`Dominio {domain} registrado.`,domainReleaseFailedToast:`No se pudo liberar el dominio.`,domainReleasedToast:`Dominio liberado.`,emailAddressLabel:`Dirección de correo`,emailCreatedToast:`Dirección de correo creada.`,emailRemoveFailedToast:`No se pudo eliminar la dirección de correo.`,emailRemovedToast:`Dirección de correo eliminada.`,emailUsernameAriaLabel:`Nombre de usuario del correo`,emailUsernamePlaceholder:`hola`,enterSubdomainError:`Introduce un subdominio.`,enterUsernameError:`Introduce un nombre de usuario de correo.`,register:`Registrar`,registerDomainFailedFallback:`No se pudo registrar el dominio.`,registering:`Registrando…`,releaseConfirm:`Liberar`,releaseDomainAriaLabel:`Liberar dominio`,releaseDomainConfirmMessage:`¿Seguro que quieres liberar <code>{domain}</code>? El subdominio quedará disponible para que otros lo reclamen.`,releaseDomainTitle:`Liberar dominio`,removeAddressFirstToast:`Elimina primero la dirección de correo.`,removeConfirm:`Eliminar`,removeEmailAriaLabel:`Eliminar dirección de correo`,removeEmailConfirmMessage:`¿Seguro que quieres eliminar <code>{address}</code>? Tu asistente ya no podrá enviar ni recibir correo en esta dirección.`,removeEmailTitle:`Eliminar dirección de correo`,retry:`Reintentar`,setSubdomainConfirmMessage:`<code>{subdomain}</code> también será el identificador público de tu asistente. No podrás cambiarlo una vez establecido.`,setSubdomainTitle:`Establecer subdominio`,subdomainExamplePlaceholder:`mi-asistente`,subdomainFallback:`subdominio`,subdomainHint:`Cada asistente tiene su propio subdominio. Solo letras minúsculas, números y guiones.`,subdomainLabel:`Subdominio`,subscriptionWarningBody:`No pudimos contactar con el servicio de facturación. El formulario siguiente asume que el correo gestionado está habilitado para tu organización. Si no lo está, registrar un dominio fallará.`,subscriptionWarningTitle:`No se pudo verificar el estado de la suscripción`,upgradeButton:`Mejorar plan`,upgradeNoticeBody:`Mejora a un plan que incluya una dirección de correo para tu asistente. No hace falta configurar un proveedor.`,upgradeNoticeTitle:`Dale a tu asistente su propia dirección de correo`,usageSummary:`{sent} / {limit} enviados hoy · {received} recibidos`},c={apiKeyConfigured:`Clave API de {providerName} configurada. Para reconfigurar, ejecuta la habilidad <code>{setupSkill}</code>.`,connecting:`Conectando con la plataforma Vellum…`,openProvider:`Abrir {providerName}`,platformLoginNotice:`Inicia sesión en la plataforma Vellum para administrar la configuración de correo.`,providerLabel:`Proveedor`,saveSuccessToast:`Configuración de correo guardada.`,setupInstructions:`Configura {providerName} mediante la CLI del asistente: pídele al asistente que ejecute la habilidad <code>{setupSkill}</code>. Te guiará para guardar la clave API, detectar el dominio y (opcionalmente) configurar un webhook entrante.`,subtitle:`Configura cómo tu asistente envía y recibe correo`,title:`Correo`},l={activeModelLabel:`Modelo activo`,apiKeyLabel:`Clave de API`,configUpdateFailedToast:`No se pudo actualizar la configuración del asistente. Inténtalo de nuevo.`,geminiApiKeyPlaceholder:`Introduce tu clave de API de Gemini`,localPreferencesFailedToast:`Guardado, pero no se pudieron escribir las preferencias locales.`,modelAriaLabel:`Modelo de generación de imágenes`,modelUpdateFailedToast:`No se pudo actualizar el modelo de generación de imágenes. Inténtalo de nuevo.`,openaiApiKeyPlaceholder:`Introduce tu clave de API de OpenAI`,providerAriaLabel:`Proveedor de generación de imágenes`,providerLabel:`Proveedor`,savedToast:`Configuración de generación de imágenes guardada.`,subtitle:`Configura qué modelo usa tu asistente para generar imágenes`,title:`Generación de imágenes`,vellumNote:`La generación de imágenes se ejecuta a través de tu cuenta de Vellum.`},u={filterAriaLabel:`Filtrar integraciones`,filterAll:`Todas`,filterEnabled:`Habilitadas`,filterNotEnabled:`No habilitadas`},d={defaultProviderUnavailable:`Tu proveedor predeterminado no está disponible.`,manage:`Administrar`,overridesTitle:`Anulaciones`,subtitle:`Los perfiles eligen qué modelo responde. Los proveedores dan acceso a él`,title:`Modelo de lenguaje`},f={actionOverridesTitle:`Anulaciones de acciones`,cancel:`Cancelar`,clauseActionOverrides:`lo usa {count, plural, one {# anulación de acción} other {# anulaciones de acciones}}`,clauseDefaultProfile:`es tu perfil predeterminado`,clauseRunsBoth:`ejecuta {schedules, plural, one {# programación} other {# programaciones}} y {reminders, plural, one {# recordatorio} other {# recordatorios}}`,clauseRunsReminders:`ejecuta {count, plural, one {# recordatorio} other {# recordatorios}}`,clauseRunsSchedules:`ejecuta {count, plural, one {# programación} other {# programaciones}}`,disabledTargetTooltip:`Habilita este perfil para mover programaciones a él.`,moreSchedules:`y {count} más`,reassignAndDelete:`Reasignar y eliminar`,replacementLabel:`Perfil de reemplazo`,replacementPlaceholder:`Selecciona un reemplazo…`,saving:`Guardando…`,scheduleLookupFailed:`No pudimos comprobar qué programaciones usan este perfil. Cualquier programación fijada a él también se moverá al reemplazo.`,schedulesTitle:`Programaciones`,summaryNoReferences:`Elige un perfil de reemplazo para "{display}". Todo lo que aún apunte a él se moverá allí antes de eliminarlo.`,summaryOneClause:`"{display}" {clause1}. Elige un reemplazo abajo y esas referencias se moverán a él; después se eliminará "{display}".`,summaryThreeClauses:`"{display}" {clause1}, {clause2} y {clause3}. Elige un reemplazo abajo y esas referencias se moverán a él; después se eliminará "{display}".`,summaryTwoClauses:`"{display}" {clause1} y {clause2}. Elige un reemplazo abajo y esas referencias se moverán a él; después se eliminará "{display}".`,title:`Elige un perfil de reemplazo`},p={emptySearch:`Ninguna acción coincide con tu búsqueda.`},m={advisorSection:`Asesor`,bulkChange:`Cambio masivo`,bulkChangeNoCandidatesTitle:`Ninguna acción usa actualmente un perfil`,bulkChangeUnsavedTitle:`Guarda o restablece tus cambios primero`,customProfileOption:`Personalizado`,description:`Personaliza qué perfil de modelo deben usar acciones concretas. Usa tu perfil predeterminado si no hay anulación.`,loadErrorHint:`Asegúrate de que tu asistente esté en ejecución`,loadErrorTitle:`No se pudieron cargar las acciones`,otherDomain:`Otros`,overridesResetToast:`Anulaciones restablecidas.`,overridesSavedToast:`Anulaciones guardadas.`,resetConfirmMessage:`Todas las anulaciones de acciones se restablecerán y seguirán su valor predeterminado. Esto no se puede deshacer.`,resetFailedToast:`No se pudieron restablecer las anulaciones. Inténtalo de nuevo.`,resetToDefaults:`Restablecer valores predeterminados`,retry:`Reintentar`,save:`Guardar`,saveFailedToast:`No se pudieron guardar las anulaciones. Inténtalo de nuevo.`,searchPlaceholder:`Buscar acciones…`,title:`Anulaciones de acciones`},h={contextWindowLabel:`Ventana de contexto`,defaultValueLabel:`Predeterminado · {value}`,effortLabel:`Esfuerzo`,effortSegmentDefault:`predeterminado`,enableExtendedThinkingLabel:`Habilitar pensamiento extendido`,maxOutputTokensLabel:`Máximo de tokens de salida`,reset:`Restablecer`,snapshotsHint:`Los campos que dejes en su valor predeterminado se guardan con los valores mostrados y no cambiarán si los valores predeterminados del asistente cambian más adelante.`,speedLabel:`Velocidad`,streamThinkingTokensLabel:`Transmitir tokens de pensamiento`,temperatureLabel:`Temperatura`,thinkingLevelInheritHint:`(predeterminado = heredar)`,thinkingLevelLabel:`Nivel de pensamiento`,tokensAriaLabel:`{label} (tokens)`,topPLabel:`Top P`,verbosityLabel:`Verbosidad`},g={createProfile:`Crear perfil`,defaultTitle:`Perfil`,delete:`Eliminar`,deleting:`Eliminando…`,managedTag:`Administrado por Vellum`,newProfileTitle:`Perfil nuevo`,save:`Guardar`,saveAsNew:`Guardar como nuevo`,saveChanges:`Guardar cambios`,saving:`Guardando…`},_={subscriptionSteeringHint:`Tu suscripción a ChatGPT está disponible como el proveedor ChatGPT.`},v={activeLabel:`Activo`,addApiKey:`Añadir clave API`,advanced:`Avanzado`,createNewProvider:`+ Crear proveedor nuevo`,descriptionLabel:`Descripción <optional>(opcional)</optional>`,descriptionPlaceholder:`Describe cuándo usar este perfil`,displayNameLabel:`Nombre para mostrar`,displayNamePlaceholder:`p. ej., Rápido y económico`,keyLabel:`Clave`,keyPlaceholder:`p. ej., rapido-economico`,nameLabel:`Nombre`,newProviderNote:`La nueva conexión de proveedor aparecerá en la sección Proveedores.`,providerLabel:`Proveedor`,selectProviderPlaceholder:`Selecciona un proveedor…`,setUp:`Configurar`},y={cancel:`Cancelar`,close:`Cerrar`,editProfileTitle:`Editar perfil`,newProfileTitle:`Nuevo perfil`,platformTag:`Plataforma`,profileFallbackTitle:`Perfil`,save:`Guardar`,saveAsNew:`Guardar como nuevo`,saving:`Guardando…`},b={chooseFromList:`Elegir de la lista`,connectionNotFound:`Este perfil hacía referencia a una credencial que ya no existe. Al guardar, se restablecerá para usar la clave disponible del proveedor.`,customModelAriaLabel:`ID de modelo personalizado`,customModelPlaceholder:`proveedor/id-modelo`,enterCustomModelIdHint:`Introduce el identificador exacto del modelo que espera tu proveedor. Se envía a la conexión tal cual.`,enterCustomModelIdOption:`Introduce un ID de modelo personalizado…`,modelAriaLabel:`Modelo`,modelEmptyConfigureConnectionHint:`No hay modelos disponibles. Configura modelos en la conexión del proveedor primero.`,modelEmptyConfigureConnectionPlaceholder:`Configura modelos en la conexión`,modelEmptyNoProviderPlaceholder:`Selecciona un proveedor primero`,modelEmptyUnknownHint:`No hay modelos disponibles para este proveedor en esta versión de la app. Actualiza la app o introduce un ID de modelo personalizado.`,modelEmptyUnknownPlaceholder:`No hay modelos disponibles`,modelLabel:`Modelo`,noProviderConnectionsHint:`No hay conexiones de proveedor. Abre Proveedores para añadir una.`,providerLabel:`Proveedor`,providerNotFoundSuffix:`(no encontrado)`,selectModelError:`Selecciona un modelo.`,selectModelPlaceholder:`Selecciona un modelo`,selectProviderPlaceholder:`Selecciona un proveedor…`},x={actionsAriaLabel:`Acciones para {displayName}`,defaultTag:`Predeterminado`,delete:`Eliminar`,disable:`Desactivar`,disabledTag:`Desactivado`,edit:`Editar`,enable:`Activar`,makeDefault:`Hacer predeterminado`,managedByVellum:`Gestionado por Vellum`,openProfileAriaLabel:`Abrir perfil {displayName}`,providerUnavailableDefault:`El proveedor de este perfil no está disponible.`,providerUnavailableFixable:`{message} Haz clic para corregirlo.`,view:`Ver`},S={createProfile:`Crear perfil`,emptyState:`Aún no hay perfiles. Crea uno para empezar.`,loading:`Cargando perfiles…`,title:`Perfiles`},C={add:`Añadir`,addNamed:`Añadir {name}`,addProviderDescription:`Elige un proveedor y pega su clave API.`,addProviderTitle:`Añadir proveedor`,advanced:`Avanzado`,apiKeyPlaceholder:`Introduce tu clave API`,baseUrlLabel:`URL base`,baseUrlPlaceholder:`https://api.x.ai/v1`,cancel:`Cancelar`,customProviderHint:`Los proveedores personalizados se conectan a cualquier endpoint que ofrezca la API compatible con OpenAI: xAI, Groq, LM Studio, vLLM y similares.`,customProviderOption:`Proveedor personalizado`,displayNameLabel:`Nombre para mostrar <optional>(opcional)</optional>`,displayNamePlaceholder:`p. ej., Mi clave de Anthropic`,emptyServerResponse:`El servidor devolvió una respuesta vacía. Inténtalo de nuevo.`,enterApiKeyOrCredential:`Introduce una clave API o selecciona una credencial existente.`,failedSaveApiKey:`No se pudo guardar la clave API. Inténtalo de nuevo.`,failedSaveProvider:`No se pudo guardar el proveedor. Inténtalo de nuevo.`,localEndpointHint:`Deja la clave vacía para endpoints locales: se conectan sin clave.`,modelsHint:`Identificadores de modelo separados por comas expuestos por tu endpoint.`,modelsLabel:`Modelos`,modelsPlaceholder:`modelo-1, modelo-2`,nameLabel:`Nombre`,namePlaceholder:`xAI`,providerAriaLabel:`Proveedor`,providerConnectedToast:`Proveedor conectado`,providerLabel:`Proveedor`,saving:`Guardando…`,useChatgptSignIn:`Usa el botón "Iniciar sesión con ChatGPT" para conectar tu suscripción.`},w={addProviderTitle:`Añadir proveedor`},T={advanced:`Avanzado`,apiKeyLabel:`Clave de API`,cancel:`Cancelar`,credentialReferenceAriaLabel:`Referencia de credencial`,credentialReferenceLabel:`Referencia de credencial`,credentialReferenceSuffix:`· Referencia de credencial`,loading:`Cargando…`,newCredential:`+ Nueva credencial`,newCredentialNameLabel:`Nombre de la nueva credencial`,newCredentialPlaceholder:`p. ej. clave-equipo`,use:`Usar`},E={apiKeyPlaceholder:`Introduce tu clave API`,baseUrlLabel:`URL base`,baseUrlPlaceholder:`https://api.example.com/v1`,cancel:`Cancelar`,displayNameLabel:`Nombre para mostrar <optional>(opcional)</optional>`,displayNamePlaceholder:`p. ej., Mi clave de Anthropic`,editProviderSettingsFallback:`Edita la configuración del proveedor.`,editProviderTitle:`Editar proveedor`,editingConnection:`Editando {name}.`,emptyServerResponse:`El servidor devolvió una respuesta vacía. Inténtalo de nuevo.`,failedSaveApiKey:`No se pudo guardar la clave API. Inténtalo de nuevo.`,failedSaveProvider:`No se pudo guardar el proveedor. Inténtalo de nuevo.`,modelsHint:`Identificadores de modelo separados por comas expuestos por tu endpoint.`,modelsLabel:`Modelos`,modelsPlaceholder:`modelo-1, modelo-2`,nothingToEdit:`No hay nada que editar. Cierra e inténtalo de nuevo.`,saveChanges:`Guardar cambios`,saving:`Guardando…`},D={actionsAriaLabel:`Acciones para {displayName}`,customTag:`Personalizado`,customTagTitle:`Un proveedor que creaste, servido por un endpoint compatible con OpenAI.`,defaultTag:`Predeterminado`,defaultTagTitle:`Los perfiles integrados (Balanced, Quality, Cost, Speed) usan este proveedor.`,delete:`Eliminar`,edit:`Editar`,localTag:`Local`,localTagTitle:`Ejecuta modelos en esta máquina.`,managedTag:`Administrado`,managedTagTitle:`Se ejecuta con las credenciales administradas de Vellum.`,openProviderAriaLabel:`Abrir proveedor {displayName}`,setAsDefault:`Establecer como predeterminado`},O={addProvider:`Añadir proveedor`,empty:`Aún no hay proveedores. Añade uno para empezar.`,loadError:`No se pudieron cargar los proveedores. Inténtalo de nuevo.`,title:`Proveedores`},k={checkingDomain:`Comprobando dominio…`,domainVerified:`Dominio verificado`,failedTitle:`La verificación del dominio falló. Es posible que los registros DNS no se hayan propagado correctamente. Puedes intentar liberar y volver a registrar el dominio.`,managedLabel:`Administrado`,managedServicesBanner:`Los servicios administrados se miden y se deducen del saldo de tu cuenta de Vellum. <link>Ver precios</link>`,modeToggleAriaLabel:`Modo de servicio`,unknownStatus:`Estado desconocido`,unknownStatusTitle:`No se pudo obtener el estado de verificación del dominio.`,verificationFailed:`Verificación fallida`,verifiedTitle:`Los registros DNS se han verificado. Tu dominio está listo para enviar y recibir correo.`,verifyingDomain:`Verificando dominio…`,verifyingTitle:`Los registros DNS se han aprovisionado. Esperando a que el proveedor de correo los verifique; esto suele tardar unos minutos.`,yourOwnLabel:`Propio`},A={subtitle:`Configura cómo tu asistente transcribe el habla`,title:`Voz a texto`},j={subtitle:`Configura cómo habla tu asistente`,title:`Texto a voz`},M={assistantNotReadyToast:`El asistente no está listo. Inténtalo de nuevo.`,saveApiKeyFailedToast:`No se pudo guardar la clave de API de {providerName}. Inténtalo de nuevo.`},N={createdToast:`Perfil "{name}" creado`},P={deleteFailedToast:`No se pudo eliminar el proveedor. Inténtalo de nuevo.`,deleteInUseToast:`Este proveedor está en uso en un perfil o como proveedor predeterminado. Actualiza esas configuraciones antes de eliminarlo.`,setDefaultFailedToast:`No se pudo establecer el proveedor predeterminado. Inténtalo de nuevo.`},F={apiKeyLabel:`Clave de API`,apiKeyPlaceholder:`Introduce tu clave de API`,configUpdateFailedToast:`No se pudo actualizar la configuración del asistente. Inténtalo de nuevo.`,localPreferencesFailedToast:`Guardado, pero no se pudieron escribir las preferencias locales.`,providerLabel:`Proveedor`,savedToast:`Configuración de obtención web guardada.`,subtitle:`Configura cómo tu asistente lee páginas web individuales`,title:`Obtención web`},I={apiKeyLabel:`Clave de API`,apiKeyPlaceholder:`Introduce tu clave de API`,configUpdateFailedToast:`No se pudo actualizar la configuración del asistente. Inténtalo de nuevo.`,localPreferencesFailedToast:`Guardado, pero no se pudieron escribir las preferencias locales.`,providerAriaLabel:`Proveedor de búsqueda web`,providerLabel:`Proveedor`,savedToast:`Configuración de búsqueda web guardada.`,subtitle:`Configura cómo tu asistente debe buscar en la web`,title:`Búsqueda web`,vellumNote:`La búsqueda se ejecuta a través de tu cuenta de Vellum.`},L={advisorProfileRow:e,aiProviderPicker:t,billingStatusHandler:n,bulkOverrideSwapModal:r,callSiteOverridesRow:i,chatgptOauthSection:a,checkoutBonusModal:o,emailManagedContent:s,emailServiceCard:c,imageGenerationCard:l,integrationsPage:u,languageModelCard:d,manageProfilesBlockedDeleteModal:f,overridesCallSiteList:p,overridesDetailPanel:m,profileAdvancedParams:h,profileDetailPanel:g,profileEditor:_,profileEditorFields:v,profileEditorModal:y,profileEditorProviderSection:b,profileRow:x,profilesSection:S,providerCreateForm:C,providerDetailPanel:w,providerEditorApiKeySection:T,providerEditorContent:E,providerRow:D,providersSection:O,sharedUi:k,speechToTextCard:A,textToSpeechCard:j,useDaemonConfig:M,useProfileSave:N,useProviderActions:P,webFetchCard:F,webSearchCard:I};export{e as advisorProfileRow,t as aiProviderPicker,n as billingStatusHandler,r as bulkOverrideSwapModal,i as callSiteOverridesRow,a as chatgptOauthSection,o as checkoutBonusModal,L as default,s as emailManagedContent,c as emailServiceCard,l as imageGenerationCard,u as integrationsPage,d as languageModelCard,f as manageProfilesBlockedDeleteModal,p as overridesCallSiteList,m as overridesDetailPanel,h as profileAdvancedParams,g as profileDetailPanel,_ as profileEditor,v as profileEditorFields,y as profileEditorModal,b as profileEditorProviderSection,x as profileRow,S as profilesSection,C as providerCreateForm,w as providerDetailPanel,T as providerEditorApiKeySection,E as providerEditorContent,D as providerRow,O as providersSection,k as sharedUi,A as speechToTextCard,j as textToSpeechCard,M as useDaemonConfig,N as useProfileSave,P as useProviderActions,F as webFetchCard,I as webSearchCard};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./jsx-runtime-D3ZM-ToX.js";import{t}from"./cn-DFWryB3N.js";import"./src-
|
|
1
|
+
import{t as e}from"./jsx-runtime-D3ZM-ToX.js";import{t}from"./cn-DFWryB3N.js";import"./src-njXJqrpo.js";var n=e();function r({className:e}){return(0,n.jsx)(`div`,{role:`presentation`,className:t(`h-px w-full bg-[var(--border-base)]`,e)})}export{r as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{d as n,r,u as i}from"./chunk-5KNZJZUH-BUqIilZr.js";import{t as a}from"./jsx-runtime-D3ZM-ToX.js";import{t as o}from"./use-supports-bookmarks-SDHU-RBu.js";import{t as s}from"./log-in-BE4abPjq.js";import{t as c}from"./log-out-D4mnwX29.js";import{n as l}from"./resolved-assistants-store-BuqctGKE.js";import{i as u}from"./auth-store-
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{d as n,r,u as i}from"./chunk-5KNZJZUH-BUqIilZr.js";import{t as a}from"./jsx-runtime-D3ZM-ToX.js";import{t as o}from"./use-supports-bookmarks-SDHU-RBu.js";import{t as s}from"./log-in-BE4abPjq.js";import{t as c}from"./log-out-D4mnwX29.js";import{n as l}from"./resolved-assistants-store-BuqctGKE.js";import{i as u}from"./auth-store-B9pHhreb.js";import{p as d}from"./platform-detection-D4gxJctC.js";import{d as f}from"./routes-C293MsBG.js";import{i as p}from"./use-platform-gate-zft2-meL.js";import{r as m,t as h}from"./settings-navigation-vp8wtiyE.js";import{t as g}from"./use-onboarding-login-DMUDDVUi.js";import{t as _}from"./assistant-feature-flag-store-j3wC3wtf.js";import{n as v,t as y}from"./sidebar-tree-9BVzkS4K.js";import{t as b}from"./use-supports-credentials-settings-D9oEIOk9.js";var x=e(t(),1),S=a();function C(){let e=_.use.settingsDeveloperNav(),t=d(),a=l.use.activeAssistantId(),C=o(a),w=b(a),T=p()===`full`?`Billing & Usage`:`Usage`,{pathname:E}=i(),D=n(),O=u(),{login:k}=g(),A=(0,x.useMemo)(()=>h.filter(e=>!(e.id===`notifications`&&!t||e.id===`bookmarks`&&!C||e.id===`credentials`&&!w||e.id===`developer`)).map(e=>e.id===`billing`?{...e,label:T}:e),[t,C,w,T]),j=(0,x.useMemo)(()=>{let t=[];return e&&t.push(...h.filter(e=>e.id===`developer`)),t.push(O?{id:`logout`,label:`Log Out`,icon:c,onSelect:()=>void m(D)}:{id:`login`,label:`Log In`,icon:s,onSelect:()=>void k()}),t},[e,O,D,k]),M=(0,x.useMemo)(()=>{if(E===f.settings.root)return`Settings`;let e=h.find(e=>E===e.href||E.startsWith(e.href+`/`));return e?e.id===`billing`?T:e.label:`Settings`},[E,T]);return(0,S.jsx)(v,{backHref:f.assistant,sidebar:(0,S.jsx)(y,{items:A,bottomItems:j,indexPath:f.settings.root}),title:M,children:(0,S.jsx)(r,{})})}export{C as SettingsLayout};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./bell-CpYZHPGU.js";import{n as t}from"./use-supports-bookmarks-SDHU-RBu.js";import{t as n}from"./bug-DwW8prtd.js";import{t as r}from"./chart-column-DupTx7Uc.js";import{t as i}from"./code-CvwdlCR7.js";import{t as a}from"./cpu-BO_MyzHO.js";import{t as o}from"./key-round-BeLlbSFj.js";import{t as s}from"./mic-BuTY2uVU.js";import{t as c}from"./puzzle-o8S9l_NJ.js";import{t as l}from"./shield-check-CchXTN7c.js";import{t as u}from"./sliders-horizontal-DOPSCMHk.js";import{t as d}from"./users-BI74h_lc.js";import{t as f}from"./volume-2-DgWyCs5f.js";import{_ as p,g as m,n as h}from"./local-mode-DP-5m-kS.js";import{t as g}from"./is-electron-BSK3AUxG.js";import{n as _}from"./auth-store-
|
|
1
|
+
import{t as e}from"./bell-CpYZHPGU.js";import{n as t}from"./use-supports-bookmarks-SDHU-RBu.js";import{t as n}from"./bug-DwW8prtd.js";import{t as r}from"./chart-column-DupTx7Uc.js";import{t as i}from"./code-CvwdlCR7.js";import{t as a}from"./cpu-BO_MyzHO.js";import{t as o}from"./key-round-BeLlbSFj.js";import{t as s}from"./mic-BuTY2uVU.js";import{t as c}from"./puzzle-o8S9l_NJ.js";import{t as l}from"./shield-check-CchXTN7c.js";import{t as u}from"./sliders-horizontal-DOPSCMHk.js";import{t as d}from"./users-BI74h_lc.js";import{t as f}from"./volume-2-DgWyCs5f.js";import{_ as p,g as m,n as h}from"./local-mode-DP-5m-kS.js";import{t as g}from"./is-electron-BSK3AUxG.js";import{n as _}from"./auth-store-B9pHhreb.js";import{j as v}from"./platform-detection-D4gxJctC.js";import{d as y}from"./routes-C293MsBG.js";import"./navigation-resolver-CDeIpFuD.js";import"./build-state-bnyw3m5Y.js";import{t as b}from"./hard-navigate-CpR5x8Nr.js";function x(){return p()?y.welcome:y.onboarding.privacy}function S(e){g()&&window.vellum?.identity?.setName(e)}async function C(e){if(p()){let t=h();if(t&&m(t)){await v(!1),_.setState({platformSession:`absent`});return}await v(!1),await _.getState().logout(),e(x())}else await _.getState().logout(),S(``),b(y.account.login)}var w=[{id:`assistant-status`,label:`General`,href:y.settings.general,icon:u},{id:`model`,label:`Models & Services`,href:y.settings.ai,icon:a},{id:`integrations`,label:`Integrations`,href:y.settings.integrations,icon:c},{id:`credentials`,label:`Credentials`,href:y.settings.credentials,icon:o},{id:`notifications`,label:`Notifications`,href:y.settings.notifications,icon:e},{id:`voice`,label:`Voice`,href:y.settings.voice,icon:s},{id:`sounds`,label:`Sounds`,href:y.settings.sounds,icon:f},{id:`privacy`,label:`Permissions & Privacy`,href:y.settings.privacy,icon:l},{id:`bookmarks`,label:`Bookmarks`,href:y.settings.bookmarks,icon:t},{id:`billing`,label:`Usage`,href:y.settings.usage,icon:r},{id:`community`,label:`Community`,href:y.settings.community,icon:d},{id:`debug`,label:`Debug`,href:y.settings.debug,icon:n},{id:`developer`,label:`Developer`,href:y.settings.developer,icon:i}],T={developer:`debug`,advanced:`debug`,model:`model`,privacy:`privacy`,security:`assistant-status`,"voice & sounds":`voice`,"voice and sounds":`voice`,devices:`assistant-status`,"self-hosted assistants":`assistant-status`},E={"keyboard-shortcuts":`${y.settings.general}?preferences=open`,"keyboard shortcuts":`${y.settings.general}?preferences=open`,services:y.settings.ai,"text-to-speech":y.settings.ai,"speech-to-text":y.settings.ai,archive:`${y.settings.debug}?tab=archive`,billing:y.settings.usageBilling,"billing & usage":y.settings.usageBilling,usage:`${y.settings.usage}?tab=usage`};function D(e){return e.trim().toLowerCase()}function O(e){let t=D(e),n=E[t];if(n)return n;let r=T[t];if(r){let e=w.find(e=>e.id===r);if(e)return e.href}return w.find(e=>D(e.label)===t||e.id===t)?.href??null}export{S as i,O as n,C as r,w as t};
|