@vellumai/web 0.11.5-staging.1 → 0.11.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{Trans-Ayy2zoN6.js → Trans-CM5UUgDt.js} +1 -1
- package/dist/assets/{a2a-invite-BnytH07i.js → a2a-invite-CduLLtki.js} +1 -1
- package/dist/assets/{account-page-fksftFTI.js → account-page-CSJOSKzD.js} +1 -1
- package/dist/assets/{account-shell-Cm4mAmQ1.js → account-shell-WRaiE1O8.js} +1 -1
- package/dist/assets/{acp-run-detail-panel-DpY-2IUp.js → acp-run-detail-panel-gR77X6Xm.js} +1 -1
- package/dist/assets/{activity-steps-panel-D9L-wNUS.js → activity-steps-panel-BglLu7wx.js} +1 -1
- package/dist/assets/{add-credential-modal-D2dFz_aq.js → add-credential-modal-DgoBqgwB.js} +1 -1
- package/dist/assets/{add-credits-modal-CmRWmR5E.js → add-credits-modal-BNab_7H9.js} +1 -1
- package/dist/assets/{ai-page-DSvzyRcE.js → ai-page-CLAFnWl5.js} +1 -1
- package/dist/assets/{api-key-screen-8g2vhXCU.js → api-key-screen-CS0KZgP6.js} +1 -1
- package/dist/assets/{app-card-Cz7zkQT3.js → app-card-C7c3c4l4.js} +1 -1
- package/dist/assets/{archive-redirect-page-ClPbJzqu.js → archive-redirect-page-DZkHnLmA.js} +1 -1
- package/dist/assets/{assistant-feature-flag-store-DPde0AIx.js → assistant-feature-flag-store-CdXRp9pV.js} +1 -1
- package/dist/assets/{assistant-status-panel-uGuW1yZK.js → assistant-status-panel-BogBdYLj.js} +1 -1
- package/dist/assets/auth-store-iNnDaLgR.js +2 -0
- package/dist/assets/{auth-welcome-screen-Da31gKxW.js → auth-welcome-screen-BoiE47Sg.js} +1 -1
- package/dist/assets/{avatar-random-BL7Gu5qp.js → avatar-random-C7t2cN3Y.js} +1 -1
- package/dist/assets/{background-task-detail-panel-CxmesGo1.js → background-task-detail-panel-BeXbhHLZ.js} +1 -1
- package/dist/assets/{billing-page-EthbxOpl.js → billing-page-PuFxEptl.js} +3 -3
- package/dist/assets/{billing-redirect-page-DbvbLo7I.js → billing-redirect-page-BFDitQeE.js} +1 -1
- package/dist/assets/bookmarks-page-DY_CJ4I3.js +1 -0
- package/dist/assets/{browser-DH4V-FME.js → browser--x9YKXWo.js} +2 -2
- package/dist/assets/{build-state-DjZj1PEB.js → build-state-Dtia1Hnq.js} +1 -1
- package/dist/assets/{button-VkxVX0DM.js → button-C8CGr0T0.js} +1 -1
- package/dist/assets/{channels-page-route-DzS1In-E.js → channels-page-route-WZWPUfRo.js} +1 -1
- package/dist/assets/{chat-markdown-message-FJAu4s2A.js → chat-markdown-message-JeYI9m3i.js} +1 -1
- package/dist/assets/{checkbox-BkYoVUtf.js → checkbox-BWX_Dnge.js} +1 -1
- package/dist/assets/checkout-continuation-B-A9SoHt.js +1 -0
- package/dist/assets/{checkout-page-WkiUwe7y.js → checkout-page-BYHPD7UJ.js} +1 -1
- package/dist/assets/checkout-return-target-DnT91-Y_.js +1 -0
- package/dist/assets/{client-feature-flag-store-o8FXKc-R.js → client-feature-flag-store-DuVzcD-V.js} +1 -1
- package/dist/assets/{client-perf-EM-2B6Ha.js → client-perf-Bg-CBIVj.js} +1 -1
- package/dist/assets/{command-palette-Tz8bW1Zb.js → command-palette-C8JWMyiC.js} +1 -1
- package/dist/assets/{command-palette-window-page-CICaRPRP.js → command-palette-window-page-C8vw0yIO.js} +1 -1
- package/dist/assets/common-gaw6OefS.js +1 -0
- package/dist/assets/{community-page-CuJypGVc.js → community-page-DvR4X6k9.js} +1 -1
- package/dist/assets/companion-surface-page-iknPQRTu.js +1 -0
- package/dist/assets/{composer-settings-xBD4cVBI.js → composer-settings-B84-FOM1.js} +1 -1
- package/dist/assets/{confirm-dialog--7V28331.js → confirm-dialog-DYmL6FRe.js} +1 -1
- package/dist/assets/{connect-page-Dkitufkv.js → connect-page-CKAizrWr.js} +1 -1
- package/dist/assets/consent-DgQeejGe.js +1 -0
- package/dist/assets/{consent-controls-D7wjMU4g.js → consent-controls-V9Wca6TV.js} +1 -1
- package/dist/assets/{contacts-page-route-Dsb5c0ov.js → contacts-page-route-BceswcoE.js} +1 -1
- package/dist/assets/{conversation-cache-DJbtcDiW.js → conversation-cache-CuEQRyqi.js} +1 -1
- package/dist/assets/{conversation-navigation-Cg1rXwwx.js → conversation-navigation-CfOyMc6W.js} +1 -1
- package/dist/assets/{conversation-queries-YVB1UbYl.js → conversation-queries-CtAFZgFP.js} +1 -1
- package/dist/assets/{conversation-selection-CRqFjCDm.js → conversation-selection-ZuF7NVBR.js} +1 -1
- package/dist/assets/{copy-to-clipboard-wnEkIu5M.js → copy-to-clipboard-yufQqRBL.js} +1 -1
- package/dist/assets/{credential-entry-page-DvSQvCah.js → credential-entry-page-B0NYTomQ.js} +1 -1
- package/dist/assets/{credentials-page-qE6ZVx_g.js → credentials-page-DfOet7SI.js} +1 -1
- package/dist/assets/{csv-preview-CmccW-uE.js → csv-preview-QUU-h2MX.js} +1 -1
- package/dist/assets/{danger-zone-redirect-page-D9ysYxNl.js → danger-zone-redirect-page-B_ZMX7ns.js} +1 -1
- package/dist/assets/{debug-page-BUP88wEB.js → debug-page-DXvFlnqh.js} +1 -1
- package/dist/assets/{deploy-dialogs-DB5LzYcq.js → deploy-dialogs-ilUtMpvf.js} +1 -1
- package/dist/assets/{deploy-store-wUa1-kTk.js → deploy-store-C_y0BvwK.js} +1 -1
- package/dist/assets/{detail-card-DBxsIpmu.js → detail-card-DwBporBs.js} +1 -1
- package/dist/assets/{detail-drawer-PnkAA_sr.js → detail-drawer-Di5V_iLf.js} +1 -1
- package/dist/assets/{detail-shell-BpJzTGvM.js → detail-shell-CcrQic9y.js} +1 -1
- package/dist/assets/developer-page-B_LQmpH7.js +1 -0
- package/dist/assets/{devices-redirect-page-B1K9-KDL.js → devices-redirect-page-BD0VY17t.js} +1 -1
- package/dist/assets/{diagnostics-D82Xy5aG.js → diagnostics-BcQgahbk.js} +1 -1
- package/dist/assets/dist-BFOJNO7w.js +1 -0
- package/dist/assets/{dist-D94ZMew1.js → dist-BsGO-mS7.js} +1 -1
- package/dist/assets/{dist-CzN28mbE.js → dist-DN2Wju98.js} +1 -1
- package/dist/assets/{dist--4Bbb2u3.js → dist-eCSUXDGk.js} +1 -1
- package/dist/assets/{doctor-handoff-store-DsMgYJHu.js → doctor-handoff-store-B_RlFFKC.js} +1 -1
- package/dist/assets/{document-viewer-container-RskGQW6t.js → document-viewer-container-D3aPjnj8.js} +2 -2
- package/dist/assets/{document-viewer-page-CbpsmQWC.js → document-viewer-page-CvQXX7Mp.js} +1 -1
- package/dist/assets/{emails-page-_5YOJc7e.js → emails-page-DbAVQ_jC.js} +1 -1
- package/dist/assets/esm-4Bnaz5rU.js +2 -0
- package/dist/assets/{esm-BNARxlDM.js → esm-C4VoH46A.js} +1 -1
- package/dist/assets/{esm-D5OjXPP0.js → esm-CrXbhSov.js} +2 -2
- package/dist/assets/{esm-BRNK_0Y3.js → esm-Cz8_Dotd.js} +1 -1
- package/dist/assets/esm-DBGqhIh5.js +1 -0
- package/dist/assets/esm-DXPZZih3.js +2 -0
- package/dist/assets/esm-DcJxSeV0.js +2 -0
- package/dist/assets/{esm-8NN8IH0k.js → esm-Ddv_MyHw.js} +2 -2
- package/dist/assets/esm-Do2zrCWJ.js +2 -0
- package/dist/assets/esm-DrXV9mo-.js +2 -0
- package/dist/assets/{external-anchor-BQjaNMxT.js → external-anchor-owoORewf.js} +1 -1
- package/dist/assets/feature-flag-catalog-C1y2RUth.js +1 -0
- package/dist/assets/feed-item-status-actions-C3JfFvZc.js +1 -0
- package/dist/assets/{file-editor-DQtez5BN.js → file-editor-CeYfWNBz.js} +1 -1
- package/dist/assets/{file-markdown-CFQG2IW9.js → file-markdown-B9G_TXX-.js} +1 -1
- package/dist/assets/{first-run-scope-Cs-NWmVG.js → first-run-scope-MD-rEgje.js} +1 -1
- package/dist/assets/{format-usd-Dv-VJP5v.js → format-usd-BYzA1eMJ.js} +1 -1
- package/dist/assets/{funnel-events-DEzFt9ac.js → funnel-events-ClGpFDNM.js} +1 -1
- package/dist/assets/general-page-CzDlVoNx.js +1 -0
- package/dist/assets/{haptics-BR_zMLz2.js → haptics-F-nvqKYf.js} +2 -2
- package/dist/assets/{hatching-screen-BKmwq_y2.js → hatching-screen-FgNbjXOt.js} +1 -1
- package/dist/assets/{home-page-route-BWF6O6BN.js → home-page-route-C7Aeo-Mg.js} +1 -1
- package/dist/assets/{hosting-screen-BI8jdpYg.js → hosting-screen-CLVRdDiX.js} +1 -1
- package/dist/assets/{i18n-7Z5ghN39.js → i18n-C3bX3mTs.js} +1 -1
- package/dist/assets/{identity-page-route-pCMyDEEU.js → identity-page-route-CHncFua2.js} +1 -1
- package/dist/assets/index-C7hCfQpd.css +2 -0
- package/dist/assets/{index-CffZ8_I1.js → index-DS0PEdhO.js} +5 -5
- package/dist/assets/{ingest-BubkTA7j.js → ingest-C1wiUm1l.js} +1 -1
- package/dist/assets/{input-DkgpMeG9.js → input-DlkBtbxm.js} +1 -1
- package/dist/assets/{inspect-page-2b2xMjZ-.js → inspect-page-CNLiZXRt.js} +3 -3
- package/dist/assets/{installed-plugins-query-CmlpXeFG.js → installed-plugins-query-DQKwv-Iz.js} +1 -1
- package/dist/assets/{integrations-page-C6SEZlRH.js → integrations-page-B9SHiomg.js} +1 -1
- package/dist/assets/{intelligence-layout-BltAdOWl.js → intelligence-layout-BoW8JbDc.js} +1 -1
- package/dist/assets/internal-thread-actions-C0S_b7cx.js +1 -0
- package/dist/assets/{invalidate-memory-queries-C_LpIe-7.js → invalidate-memory-queries-uk2gV1m0.js} +1 -1
- package/dist/assets/{invalidate-plugin-queries-DpWKL6e1.js → invalidate-plugin-queries-CI1Cseau.js} +1 -1
- package/dist/assets/{keyboard-shortcuts-redirect-page-BZAeBBT5.js → keyboard-shortcuts-redirect-page-BY3Va4w9.js} +1 -1
- package/dist/assets/{latest-assistant-text-C8nmvw4v.js → latest-assistant-text-fXT5Jkt8.js} +1 -1
- package/dist/assets/{library-detail-page-BTDRSSKy.js → library-detail-page-CX92FKAK.js} +1 -1
- package/dist/assets/{library-page-GoqUkn2E.js → library-page-D2v2j-WU.js} +1 -1
- package/dist/assets/{list-row-D1odQOMJ.js → list-row-6uedKE84.js} +1 -1
- package/dist/assets/{local-runtime-upgrade-BTtW-R95.js → local-runtime-upgrade-BpvLk3HN.js} +1 -1
- package/dist/assets/{login-flow-DIQYXP6A.js → login-flow-BYBqjDap.js} +1 -1
- package/dist/assets/{login-page-hY9FaC1m.js → login-page-fl8rgXFq.js} +1 -1
- package/dist/assets/{logout-page-mVYiyZFE.js → logout-page-DLjLy7Hp.js} +1 -1
- package/dist/assets/{logs-layout-_ycf1xan.js → logs-layout-Du4o-HeH.js} +1 -1
- package/dist/assets/{markdown-preview-CzYn25XC.js → markdown-preview-ukYPAksc.js} +1 -1
- package/dist/assets/{memory-page-route-CA8ygLKs.js → memory-page-route-CvKjQ2FE.js} +1 -1
- package/dist/assets/{memory-router-playground-page-B8rj0dNA.js → memory-router-playground-page-Dh8zVze9.js} +1 -1
- package/dist/assets/{menu-noj9Ohcf.js → menu-Ci8JeI2H.js} +1 -1
- package/dist/assets/{message-files-panel-COyAxMPi.js → message-files-panel-DEAC2iCY.js} +1 -1
- package/dist/assets/{messages-BhT6U312.js → messages-D5oI1yRV.js} +1 -1
- package/dist/assets/{metric-card-BQ-q7_9N.js → metric-card-YqtdN5uX.js} +1 -1
- package/dist/assets/{modal-UYNawsIu.js → modal-DN_Uwwkg.js} +1 -1
- package/dist/assets/native-anchor-C13W_dF5.js +1 -0
- package/dist/assets/{native-biometric-Dk_rOSjU.js → native-biometric-DzQYY-Z2.js} +1 -1
- package/dist/assets/{native-file-Dt4IC5xP.js → native-file-qM32rSz7.js} +2 -2
- package/dist/assets/{navigation-resolver-Cb4Lilq5.js → navigation-resolver-B6QxHAa5.js} +1 -1
- package/dist/assets/{not-found-CV2fs1T6.js → not-found-DXwfp4Yf.js} +1 -1
- package/dist/assets/{notifications-DZCtGip1.js → notifications-DMNpr3pt.js} +1 -1
- package/dist/assets/{notifications-page-BZmovm97.js → notifications-page-DD-175gq.js} +1 -1
- package/dist/assets/{oauth-complete-page-BTWKsjld.js → oauth-complete-page-DBDWL3aD.js} +1 -1
- package/dist/assets/{oauth-connection-utils-9aKLpLet.js → oauth-connection-utils-dPIUOXze.js} +1 -1
- package/dist/assets/{oauth-popup-complete-page-Dn7v4THp.js → oauth-popup-complete-page-Dv0482xp.js} +1 -1
- package/dist/assets/{onboarding-layout-81jlZ1Nr.js → onboarding-layout-CYgAi-S1.js} +1 -1
- package/dist/assets/{open-workspace-file-CINDRVEK.js → open-workspace-file-Ca9gUjoQ.js} +2 -2
- package/dist/assets/{operational-status-D9ExUyuP.js → operational-status-DVK3_kD_.js} +1 -1
- package/dist/assets/{page-shell-DEN0SqaR.js → page-shell-nVp2ogSk.js} +1 -1
- package/dist/assets/{pairing-page-CUdrYuE6.js → pairing-page-CLNSXQ7A.js} +1 -1
- package/dist/assets/{password-reset-page-BkX1L0-o.js → password-reset-page-BNw-K6vZ.js} +1 -1
- package/dist/assets/{personality-page-C6Fs2NDZ.js → personality-page-axIG9Tu_.js} +1 -1
- package/dist/assets/{plans-page-CtUDk34m.js → plans-page-DQu9C86N.js} +1 -1
- package/dist/assets/{platform-detection-CuBj2s81.js → platform-detection-C-a_Mru0.js} +1 -1
- package/dist/assets/{platform-login-notice-V5xsGsbM.js → platform-login-notice-Dmq_2Akt.js} +1 -1
- package/dist/assets/{platform-loopback-page-07jf3mNj.js → platform-loopback-page-B0UOR3ct.js} +1 -1
- package/dist/assets/{plugin-detail-page-hHTbKbVT.js → plugin-detail-page-2ySPND3h.js} +1 -1
- package/dist/assets/{plugins-page-Cg5tKwHZ.js → plugins-page-D7jLWtXv.js} +1 -1
- package/dist/assets/popover-B_nY8VYI.js +1 -0
- package/dist/assets/{prefs-D-MNCWeN.js → prefs-BFDWWNwd.js} +1 -1
- package/dist/assets/{preview-error-UT2_K5co.js → preview-error-B7qHC1Y4.js} +1 -1
- package/dist/assets/{privacy-page-CN-sgiHL.js → privacy-page-B-FaZv9p.js} +1 -1
- package/dist/assets/{privacy-screen-WnmVno78.js → privacy-screen-Ng4c4whW.js} +1 -1
- package/dist/assets/{provider-callback-page-CZfGxI4n.js → provider-callback-page-CwYFxjk3.js} +1 -1
- package/dist/assets/{provider-signup-page-By9jDuQZ.js → provider-signup-page-BORU3SZe.js} +1 -1
- package/dist/assets/{push-registration-CHsDMNLd.js → push-registration-CyLSsbG5.js} +2 -2
- package/dist/assets/{remove-from-device-dialog-C0oKQcpu.js → remove-from-device-dialog-Bpy0yOG4.js} +1 -1
- package/dist/assets/{research-facts-CVSPPobz.js → research-facts-DzELMLzK.js} +1 -1
- package/dist/assets/{research-mock-page-Du5tkfLD.js → research-mock-page-BkcbRMpS.js} +1 -1
- package/dist/assets/{research-onboarding-route-1Gr9h1zU.js → research-onboarding-route-BlBSSOiI.js} +1 -1
- package/dist/assets/{research-results-view-D300rmPl.js → research-results-view-D1hOhfTP.js} +1 -1
- package/dist/assets/{retire-confirm-dialog-Dj9Jz__k.js → retire-confirm-dialog-Zwo-Sjrc.js} +1 -1
- package/dist/assets/{review-terms-screen-CgaEflP1.js → review-terms-screen-DmNdg_zJ.js} +1 -1
- package/dist/assets/routes-BaPyKuTq.js +24 -0
- package/dist/assets/{runtime-upgrade-banner-DeZvRYKI.js → runtime-upgrade-banner-bHSGkzwB.js} +2 -2
- package/dist/assets/{sandbox-bridge-DJb4AAAd.js → sandbox-bridge-BcJiBmUR.js} +1 -1
- package/dist/assets/{schedules-D1Qj_LW9.js → schedules-CgwiGq3x.js} +1 -1
- package/dist/assets/{schedules-page-yQdICdi-.js → schedules-page-Ca_u2KkZ.js} +1 -1
- package/dist/assets/{section-membership-BLXUZceV.js → section-membership-CJlFrKoM.js} +1 -1
- package/dist/assets/{security-redirect-page-C1UvbW-C.js → security-redirect-page-eZ_C_Wf0.js} +1 -1
- package/dist/assets/{select-D133FK9g.js → select-DJDG9pwU.js} +1 -1
- package/dist/assets/select-assistant-screen-DSLQRer8.js +1 -0
- package/dist/assets/{self-hosted-servers-DbufWkqP.js → self-hosted-servers-DJIKPu90.js} +1 -1
- package/dist/assets/settings-BY8t4asx.js +1 -0
- package/dist/assets/{settings-divider-Cps8oOmA.js → settings-divider-BCyO1zmM.js} +1 -1
- package/dist/assets/{settings-layout-BIJoqFh0.js → settings-layout-Cv8u2dv7.js} +1 -1
- package/dist/assets/{settings-navigation-CBm-xDCe.js → settings-navigation-R6E3Weed.js} +1 -1
- package/dist/assets/{share-feedback-modal-CNyAJFsA.js → share-feedback-modal-COH8zwku.js} +2 -2
- package/dist/assets/{sidebar-tree-D2xvxqPq.js → sidebar-tree-Bfvk_uAR.js} +1 -1
- package/dist/assets/{signup-page-CTjLMOgF.js → signup-page-BsMK6h9P.js} +1 -1
- package/dist/assets/{site-favicon-MMcieZs1.js → site-favicon-Bu9L02gb.js} +1 -1
- package/dist/assets/{skill-detail-page-33xPKTfo.js → skill-detail-page-D9WBRKuf.js} +1 -1
- package/dist/assets/{skill-detail-panel-DicPuAYf.js → skill-detail-panel-kCMadngl.js} +1 -1
- package/dist/assets/{skills-CAW10RD_.js → skills-C3-ibGUo.js} +1 -1
- package/dist/assets/{skills-page-DtcZVUgk.js → skills-page-BMYP4Xi0.js} +1 -1
- package/dist/assets/{sounds-page-B1xgQyur.js → sounds-page-Du1t_S8A.js} +1 -1
- package/dist/assets/{src-Ch3HTlFm.js → src-DMnnfLrU.js} +2 -2
- package/dist/assets/{start-screen-1HZMKOoC.js → start-screen-I5HBKHT6.js} +1 -1
- package/dist/assets/{status-badge-pill-C8kQPvkY.js → status-badge-pill-w-ULYfRy.js} +1 -1
- package/dist/assets/{stt-language-picker-modal-0Y0jfxfK.js → stt-language-picker-modal-Cq76JJex.js} +1 -1
- package/dist/assets/{subagent-detail-panel-cG6QAznG.js → subagent-detail-panel-DP4dB-Dz.js} +1 -1
- package/dist/assets/{subagent-store-Bho3BXWd.js → subagent-store-Bn8k7JMr.js} +1 -1
- package/dist/assets/{superpowers-page-CMB1OtM0.js → superpowers-page-COTkr31c.js} +1 -1
- package/dist/assets/{swipe-action-reveal-Dj3B2k-t.js → swipe-action-reveal-CQY9DSup.js} +1 -1
- package/dist/assets/{system-events-page-XOi-gc2G.js → system-events-page-CvoSQs7q.js} +1 -1
- package/dist/assets/{system-events-redirect-page-BrQ1djZt.js → system-events-redirect-page-BjnwAn9h.js} +1 -1
- package/dist/assets/{tag-Ddzwz3ij.js → tag-D2QYCm1p.js} +1 -1
- package/dist/assets/{telegram-setup-wizard-D0bxOb5-.js → telegram-setup-wizard-6UP2MTrh.js} +1 -1
- package/dist/assets/{text-preview-D78CT11A.js → text-preview-BG__pDe7.js} +1 -1
- package/dist/assets/{theme-stage-page-DPIaeTEy.js → theme-stage-page-YfsM529J.js} +1 -1
- package/dist/assets/{tiptap-document-editor-DjSqTI1f.js → tiptap-document-editor-BM6zL6R7.js} +2 -2
- package/dist/assets/{toast-ZCXyBjoj.js → toast-CHtrY-GO.js} +1 -1
- package/dist/assets/{tool-detail-panel-D8Zr9tQz.js → tool-detail-panel-_LC-zFuo.js} +1 -1
- package/dist/assets/{transcript-message-body-shared-DKncF4vA.js → transcript-message-body-shared-D8cmJP1C.js} +1 -1
- package/dist/assets/{trust-rules-api-JydQ2uwR.js → trust-rules-api-CE_KJOp2.js} +1 -1
- package/dist/assets/{upgrade-cancel-page-gyvvmc_X.js → upgrade-cancel-page-DyLSvLsm.js} +1 -1
- package/dist/assets/{upgrade-success-page-_86uG48f.js → upgrade-success-page-BRPyFCq4.js} +1 -1
- package/dist/assets/{usage-redirect-page-DheTMqmF.js → usage-redirect-page-C4O5a5QM.js} +1 -1
- package/dist/assets/use-app-theme-BMyUWfBR.js +1 -0
- package/dist/assets/{use-assistant-identity-details-DUPitZAF.js → use-assistant-identity-details-C3sH1daz.js} +1 -1
- package/dist/assets/{use-attachment-preview-Y4kLa4bZ.js → use-attachment-preview-BUJ9CHqr.js} +2 -2
- package/dist/assets/{use-attachment-squares-C8jwl-uP.js → use-attachment-squares-CFAezuph.js} +1 -1
- package/dist/assets/{use-bookmarks-D-YUJTtH.js → use-bookmarks--Hn0Ty3s.js} +1 -1
- package/dist/assets/{use-checkout-dismiss-refresh-DVs2FMHj.js → use-checkout-dismiss-refresh-CTdb-p9h.js} +1 -1
- package/dist/assets/{use-command-palette-sections-BBglPqI8.js → use-command-palette-sections-_F3pQkoi.js} +1 -1
- package/dist/assets/{use-copy-to-clipboard-CBJ6pmkd.js → use-copy-to-clipboard-BPX7B4SE.js} +1 -1
- package/dist/assets/{use-edge-swipe-C-5S-Uf_.js → use-edge-swipe-CJYjm94h.js} +1 -1
- package/dist/assets/{use-edge-swipe-back-BO5FNCGw.js → use-edge-swipe-back-L6kJ84LI.js} +2 -2
- package/dist/assets/{use-edit-app-Mv9eDXyB.js → use-edit-app-C0wNLJT8.js} +1 -1
- package/dist/assets/{use-invite-link-dialog-Dn0_apkq.js → use-invite-link-dialog-B1oz9iwD.js} +1 -1
- package/dist/assets/{use-is-org-ready-CXChKRKk.js → use-is-org-ready-CEB5IRpO.js} +1 -1
- package/dist/assets/{use-onboarding-login-LxAfxxq4.js → use-onboarding-login-DSP8WCFe.js} +1 -1
- package/dist/assets/{use-platform-assistant-id-DGkEazpv.js → use-platform-assistant-id-n0Yl5uUG.js} +1 -1
- package/dist/assets/{use-platform-gate-dRg4Iaxg.js → use-platform-gate-DNfLk9Xd.js} +1 -1
- package/dist/assets/{use-return-to-short-circuit-BxcUEcT0.js → use-return-to-short-circuit-CY3AuCF9.js} +1 -1
- package/dist/assets/{use-save-twilio-credentials-cvialhOy.js → use-save-twilio-credentials-BWaLXE4J.js} +1 -1
- package/dist/assets/{use-side-list-room-B4aMMgSM.js → use-side-list-room-CO7nxluQ.js} +1 -1
- package/dist/assets/{use-skill-actions-BJnqKPy2.js → use-skill-actions-D7CK9Jhy.js} +1 -1
- package/dist/assets/{use-skill-detail-files-Dr4hogsT.js → use-skill-detail-files-Cop9LnVd.js} +1 -1
- package/dist/assets/{use-sticky-profiles-BzJCyWjh.js → use-sticky-profiles-D3ybBRfX.js} +1 -1
- package/dist/assets/{use-stt-language-selection-CqvYwuRJ.js → use-stt-language-selection-Dkm4Uq69.js} +1 -1
- package/dist/assets/{use-subagent-card-data-Ck-rTbqy.js → use-subagent-card-data-DbKFX1Jc.js} +1 -1
- package/dist/assets/{use-swipe-horizontal-DqSSUt1N.js → use-swipe-horizontal-BwZ0yvoM.js} +1 -1
- package/dist/assets/use-touch-mobile-CaIiM-us.js +1 -0
- package/dist/assets/use-transcript-message-by-id-BbJqGOYZ.js +1 -0
- package/dist/assets/{use-transcript-messages-D2DbIxRi.js → use-transcript-messages-Bp4Jsfks.js} +1 -1
- package/dist/assets/{use-voice-sample-preview-DgOqv2M7.js → use-voice-sample-preview-4vpwPGNW.js} +1 -1
- package/dist/assets/{useTranslation-CJMg4EBF.js → useTranslation-CCDbxnME.js} +1 -1
- package/dist/assets/{voice-page-Cle_chtc.js → voice-page--99ik4mV.js} +1 -1
- package/dist/assets/{voice-providers-note-CtAmFnWb.js → voice-providers-note-7m0LvxmN.js} +1 -1
- package/dist/assets/{web-B3W2e_Vh.js → web-0-rqi4je.js} +1 -1
- package/dist/assets/{web-Dc65176I.js → web-8fcyoNsL.js} +1 -1
- package/dist/assets/{web-CY247JIt.js → web-DCamMnI1.js} +1 -1
- package/dist/assets/{web-67Khnm-P.js → web-DIlEhBsT.js} +1 -1
- package/dist/assets/{web-B1q1ICxT.js → web-Do_X9zWq.js} +1 -1
- package/dist/assets/{web-BTPJ9E5m.js → web-DsVO-tkH.js} +1 -1
- package/dist/assets/{web-BCijmPgJ.js → web-UN0kX9ic.js} +1 -1
- package/dist/assets/{web-DRglVskM.js → web-aW1scjmM.js} +1 -1
- package/dist/assets/{web-BLn6q1jU.js → web-eVpCzMlE.js} +1 -1
- package/dist/assets/{welcome-screen-BLOCzpJp.js → welcome-screen-Drdb1oS6.js} +1 -1
- package/dist/assets/{workflow-detail-panel-C2uCVk6h.js → workflow-detail-panel-DS9_MRNg.js} +1 -1
- package/dist/assets/{workspace-page-DDLacEWd.js → workspace-page-CPDwYVlW.js} +1 -1
- package/dist/assets/{workspace-tree-query-yJYR72mM.js → workspace-tree-query-DzYz0-QE.js} +1 -1
- package/dist/index.html +118 -118
- package/package.json +1 -1
- package/dist/assets/auth-store-DHZaL7sV.js +0 -2
- package/dist/assets/bookmarks-page-d8nnNDbX.js +0 -1
- package/dist/assets/checkout-continuation-Dy6JhKe2.js +0 -1
- package/dist/assets/checkout-return-target-DL3gHGhi.js +0 -1
- package/dist/assets/common-p0vxUnEQ.js +0 -1
- package/dist/assets/companion-surface-page-mFuAra3C.js +0 -1
- package/dist/assets/consent-B28ImHdT.js +0 -1
- package/dist/assets/developer-page-EXPzzlyV.js +0 -1
- package/dist/assets/dist-DMYOKN8y.js +0 -1
- package/dist/assets/esm-0I5Dlpfv.js +0 -2
- package/dist/assets/esm-3UB7kHQk.js +0 -1
- package/dist/assets/esm-ByRflon4.js +0 -2
- package/dist/assets/esm-CQSb4ucv.js +0 -2
- package/dist/assets/esm-Cg0JWVKA.js +0 -2
- package/dist/assets/esm-DRm8O1kL.js +0 -2
- package/dist/assets/feature-flag-catalog-BE_ZpOEG.js +0 -1
- package/dist/assets/feed-item-status-actions-Cz3H5a6L.js +0 -1
- package/dist/assets/general-page-B9DgYoMz.js +0 -1
- package/dist/assets/index-ClaG_N2S.css +0 -2
- package/dist/assets/internal-thread-actions-DNd3HO_g.js +0 -1
- package/dist/assets/native-anchor-BrkS1YE6.js +0 -1
- package/dist/assets/popover-D3A6cIyW.js +0 -1
- package/dist/assets/routes-DyzEBtxt.js +0 -24
- package/dist/assets/select-assistant-screen-Bo3KgcFM.js +0 -1
- package/dist/assets/settings-CNNFT1Oh.js +0 -1
- package/dist/assets/use-app-theme-CMwGeP40.js +0 -1
- package/dist/assets/use-touch-mobile-Dr8DcEJC.js +0 -1
- package/dist/assets/use-transcript-message-by-id-NAxAU6wP.js +0 -1
- /package/dist/assets/{dist-RzxQVwj7.js → dist-D7UWVopK.js} +0 -0
- /package/dist/assets/{native-deep-link-D1B4PPZo.js → native-deep-link-IwasVyFQ.js} +0 -0
- /package/dist/assets/{onboarding-store-CXXioE_U.js → onboarding-store-9CMrOvS2.js} +0 -0
- /package/dist/assets/{react-query.gen-OpeDEMIm.js → react-query.gen-CYP-Tn4K.js} +0 -0
- /package/dist/assets/{routes-Bj1LYNBZ.js → routes-yNhBxUSb.js} +0 -0
- /package/dist/assets/{theme-preferences-DYqPKXf4.js → theme-preferences-CAlH0BJX.js} +0 -0
- /package/dist/assets/{typed-storage-CMa-TZhF.js → typed-storage-BNw603jr.js} +0 -0
- /package/dist/assets/{use-assistant-avatar-By4FjR0h.js → use-assistant-avatar-adekIS8v.js} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{i as t,l as n}from"./local-settings-Bx7FsNo5.js";import{o as r,r as i}from"./device-settings-DZvv4pnY.js";import{t as a}from"./capture-error-VBsIaC5d.js";import{t as o}from"./react-BFJW0bSv.js";import{t as s}from"./button-C8CGr0T0.js";import{d as c,h as l,t as u}from"./chunk-5KNZJZUH-BUqIilZr.js";import{n as d}from"./QueryClientProvider-EuRl-wrW.js";import{t as f}from"./useQuery-CTSuec5b.js";import{t as p}from"./useMutation-D2YPyfEH.js";import{t as m}from"./jsx-runtime-BJ8jcmzB.js";import{t as h}from"./cn-Cf8SmgbR.js";import{t as g}from"./card-DUsAeHUS.js";import{d as _,o as v}from"./list-row-6uedKE84.js";import{t as y}from"./createLucideIcon-B-ZPaMbU.js";import{t as b}from"./bell-CHRdx4mp.js";import{t as x}from"./check-NGUguBHp.js";import{t as S}from"./chevron-down-D1ho6wFA.js";import{t as C}from"./circle-alert-B-Zu9T9V.js";import{t as w}from"./circle-check-BQyrCkaB.js";import{t as T}from"./hard-drive-zWkzTs9d.js";import{t as E}from"./heart-DBsRPrRH.js";import{t as D}from"./loader-circle-C9QjVTuc.js";import{t as O}from"./monitor-C7Po319a.js";import{t as k}from"./moon-D2HTb8zV.js";import{C as A,E as j,d as M,g as N,h as P,i as F,l as I,n as L,o as R,t as z,u as ee,w as te,x as ne}from"./composer-settings-B84-FOM1.js";import{t as re}from"./refresh-cw-DwfKxRXV.js";import{t as ie}from"./rotate-ccw-Cc2yZNdm.js";import{t as ae}from"./smartphone-CWnipfJ7.js";import{t as oe}from"./sparkles-DvB22tVW.js";import{t as se}from"./sun-sLCgv7zn.js";import{t as ce}from"./triangle-alert-B-18Pims.js";import{t as le}from"./x-zfSDUG5z.js";import{t as B}from"./notice-C_AsX_o9.js";import{t as ue}from"./progress-bar-C4e3e4vV.js";import{B as de,V as fe,o as pe,r as me,s as V}from"./src-DMnnfLrU.js";import{t as he}from"./tag-D2QYCm1p.js";import{t as H}from"./input-DlkBtbxm.js";import{t as ge}from"./toggle-0qt1e_3r.js";import{t as U}from"./modal-DN_Uwwkg.js";import{n as W}from"./toast-CHtrY-GO.js";import{t as G}from"./confirm-dialog-DYmL6FRe.js";import{t as _e}from"./select-DJDG9pwU.js";import{t as ve}from"./skeleton-D8_lkywC.js";import{C as ye,K as be,M as xe,P as Se,S as Ce,U as we,V as Te,Z as Ee,_ as De,a as Oe,f as ke,i as Ae,p as je,u as Me,v as Ne,z as Pe}from"./local-mode-DzIUFjhf.js";import{t as Fe}from"./is-electron-C9-jl_HE.js";import{r as Ie}from"./resolved-assistants-store-D57qRwKv.js";import{s as K,t as Le}from"./i18n-C3bX3mTs.js";import{t as Re}from"./Trans-CM5UUgDt.js";import{t as ze}from"./useTranslation-CCDbxnME.js";import{i as Be,n as Ve,t as He}from"./api-errors-DYGVb-Sh.js";import{r as Ue,t as We}from"./semver-D1eVfLWz.js";import{i as Ge}from"./utils-wDLoxcBZ.js";import{$ as Ke,E as qe,S as Je,T as Ye,Z as Xe,a as Ze,g as Qe,n as $e,q as et,tt,w as nt,x as rt}from"./auth-store-iNnDaLgR.js";import{t as q}from"./client.gen-C1nf2AIs.js";import{$ as it,C as at,Gt as ot,N as st,P as ct,Q as lt,T as ut,W as dt}from"./sdk.gen-DXPJc8Xk.js";import{a as ft,s as pt}from"./api-ByKY0Cbt.js";import{c as mt}from"./remote-gateway-session-B4C6b4Sx.js";import{d as J}from"./routes-yNhBxUSb.js";import{d as ht,h as gt,o as _t,p as vt,u as yt}from"./platform-detection-C-a_Mru0.js";import{i as bt,r as xt,t as St}from"./use-platform-gate-DNfLk9Xd.js";import{t as Y}from"./client-feature-flag-store-DuVzcD-V.js";import{A as Ct,At as wt,D as Tt,E as Et,Ft as Dt,It as Ot,Lt as kt,N as At,Nt as jt,O as Mt,P as Nt,Pt,Rt as Ft,T as It,Tt as Lt,c as Rt,ht as zt,j as Bt,k as Vt,kt as Ht,pt as Ut,v as Wt,w as Gt}from"./react-query.gen-D3r2fwXH.js";import{t as Kt}from"./hard-navigate-D1rxKLPg.js";import{t as qt}from"./assistant-feature-flag-store-CdXRp9pV.js";import{t as Jt}from"./pointer-Cxac45y6.js";import{n as Yt,t as Xt}from"./retire-confirm-dialog-Zwo-Sjrc.js";import{a as Zt,i as Qt,r as $t,s as en}from"./local-runtime-upgrade-BpvLk3HN.js";import{t as tn}from"./copy-to-clipboard-yufQqRBL.js";import{t as nn}from"./proxy-C_GXGfwL.js";import{t as rn}from"./AnimatePresence-DkZYJl3q.js";import{t as an}from"./use-reduced-motion-DzXyVFAi.js";import{t as on}from"./platform-login-notice-Dmq_2Akt.js";import{t as sn}from"./use-active-assistant-id-BFE4r9Rp.js";import{t as cn}from"./use-copy-to-clipboard-BPX7B4SE.js";import{t as X}from"./detail-card-DwBporBs.js";import{t as ln}from"./app-info-CEe_jK5S.js";import{a as un,i as dn,l as fn,o as pn}from"./machine-sizes-Wnvi4rGR.js";import{t as mn}from"./environment-store-rZ0hkMHt.js";import{a as hn,i as gn,n as _n,r as vn,t as yn}from"./assistant-status-panel-BogBdYLj.js";import{t as bn}from"./use-hotkey-recorder-BgB8ju9u.js";import{t as xn}from"./settings-divider-BCyO1zmM.js";var Sn=y(`fingerprint-pattern`,[[`path`,{d:`M12 10a2 2 0 0 0-2 2c0 1.02-.1 2.51-.26 4`,key:`1nerag`}],[`path`,{d:`M14 13.12c0 2.38 0 6.38-1 8.88`,key:`o46ks0`}],[`path`,{d:`M17.29 21.02c.12-.6.43-2.3.5-3.02`,key:`ptglia`}],[`path`,{d:`M2 12a10 10 0 0 1 18-6`,key:`ydlgp0`}],[`path`,{d:`M2 16h.01`,key:`1gqxmh`}],[`path`,{d:`M21.8 16c.2-2 .131-5.354 0-6`,key:`drycrb`}],[`path`,{d:`M5 19.5C5.5 18 6 15 6 12a6 6 0 0 1 .34-2`,key:`1tidbn`}],[`path`,{d:`M8.65 22c.21-.66.45-1.32.57-2`,key:`13wd9y`}],[`path`,{d:`M9 6.8a6 6 0 0 1 9 5.2v2`,key:`1fr1j5`}]]),Cn=y(`server`,[[`rect`,{width:`20`,height:`8`,x:`2`,y:`2`,rx:`2`,ry:`2`,key:`ngkwjq`}],[`rect`,{width:`20`,height:`8`,x:`2`,y:`14`,rx:`2`,ry:`2`,key:`iecqi9`}],[`line`,{x1:`6`,x2:`6.01`,y1:`6`,y2:`6`,key:`16zg32`}],[`line`,{x1:`6`,x2:`6.01`,y1:`18`,y2:`18`,key:`nzw8ys`}]]),wn=y(`vibrate`,[[`path`,{d:`m2 8 2 2-2 2 2 2-2 2`,key:`sv1b1`}],[`path`,{d:`m22 8-2 2 2 2-2 2 2 2`,key:`101i4y`}],[`rect`,{width:`8`,height:`14`,x:`8`,y:`5`,rx:`1`,key:`1oyrl4`}]]),Z=e(o(),1),Q=m();function Tn(){let e=Y.use.velvet(),{theme:t,setThemePreference:n}=P(),r=[{value:`system`,label:`System`,icon:(0,Q.jsx)(O,{className:`h-4 w-4`})},{value:`light`,label:`Light`,icon:(0,Q.jsx)(se,{className:`h-4 w-4`})},{value:`dark`,label:`Dark`,icon:(0,Q.jsx)(k,{className:`h-4 w-4`})},...e?[{value:`velvet`,label:`Velvet`,icon:(0,Q.jsx)(E,{className:`h-4 w-4`})}]:[]];return(0,Q.jsxs)(`section`,{children:[(0,Q.jsx)(`h3`,{className:`text-title-small text-[var(--content-emphasised)]`,children:`Theme`}),(0,Q.jsx)(`div`,{className:`mt-2 max-w-[360px]`,children:(0,Q.jsx)(v,{ariaLabel:`Theme`,value:t,onChange:n,items:r})})]})}var En=rt,Dn=`Please choose a different handle.`;async function On(e,t){let{data:n,error:r,response:i}=await ct({path:{id:e},body:{handle:t},throwOnError:!1});if(!i)return{kind:`error`,message:Be(r,void 0,`Failed to save handle.`)??`Failed to save handle.`};if(i.ok&&n)return{kind:`ok`,data:n};if(i.status===409){let{message:e}=qe(r,`handle`,En.taken);return{kind:`taken`,message:e}}if(i.status===400){let{code:e,message:t}=qe(r,`handle`,Dn);return{kind:`invalid`,code:e,message:t}}return{kind:`error`,message:Be(r,i,`Failed to save handle.`)}}async function kn(e,t,n){let{data:r,error:i,response:a}=await at({path:{assistant_id:e},query:{handle:t},signal:n,throwOnError:!1});if(Ve(a,i,`Failed to check handle availability.`),!a.ok||!r)throw new He(a.status,a.status===429?`Too many checks — try again in a moment.`:Be(i,a,`Failed to check handle availability.`));return{available:r.available,code:r.code??null,message:r.message??null}}function An(e){return/\d{2,}$/.test(e)}var jn=300,Mn=1400;function Nn({initialHandle:e,inputLabel:t,helperText:n,idleHelperText:r,checkAvailable:i,save:a,onSaved:o,saveSuccessToast:c,fieldId:l}){let[u,d]=(0,Z.useState)(e),[f,p]=(0,Z.useState)(null),[m,h]=(0,Z.useState)(!1),[g,_]=(0,Z.useState)(`idle`),[v,y]=(0,Z.useState)(null),b=an(),S=(0,Z.useRef)(null),w=(0,Z.useMemo)(()=>u.trim().toLowerCase(),[u]),T=w===e.toLowerCase();(0,Z.useEffect)(()=>{if(T||w.length===0){h(!1),S.current?.abort();return}let e=new AbortController;S.current?.abort(),S.current=e,h(!0);let t=window.setTimeout(async()=>{try{let t=await i(w,e.signal);e.signal.aborted||p(t)}catch(t){e.signal.aborted||y(t instanceof Error?t.message:`Couldn't check availability.`)}finally{e.signal.aborted||h(!1)}},jn);return()=>{window.clearTimeout(t),e.abort()}},[w,T,i]);let E=(()=>{if(v)return v;if(f&&!f.available){let e=f.code;return f.message??(e?En[e]:`Please choose a different handle.`)}return null})(),O=E?n:T?r??null:m?`Checking availability…`:f?.available?`Available.`:null,k=!T&&!m&&f?.available!==!1&&g!==`saving`,A=(0,Z.useCallback)(async()=>{if(!k)return;_(`saving`),y(null);let e=await a(w);if(e.kind===`ok`){_(`saved`),o(e.data),W.success(c),window.setTimeout(()=>_(`idle`),Mn);return}if(e.kind===`taken`){_(`idle`),p({available:!1,code:`taken`,message:e.message});return}if(e.kind===`invalid`){_(`idle`),p({available:!1,code:e.code,message:e.message});return}_(`error`),y(e.message),W.error(e.message)},[k,w,o,a,c]),j=(()=>{if(T&&u.length>0||u.length===0)return null;let e=m?`checking`:f?.available?`available`:f?.available===!1?`invalid`:null;return e?(0,Q.jsx)(rn,{mode:`wait`,initial:!1,children:(0,Q.jsxs)(nn.span,{initial:b?!1:{opacity:0,scale:.85},animate:{opacity:1,scale:1},exit:b?void 0:{opacity:0,scale:.85},transition:{duration:.14,ease:`easeOut`},className:`flex items-center`,"aria-hidden":e!==`available`&&e!==`invalid`,children:[e===`checking`&&(0,Q.jsx)(D,{className:`h-4 w-4 animate-spin text-[var(--content-tertiary)]`}),e===`available`&&(0,Q.jsx)(x,{className:`h-4 w-4 text-[var(--system-positive-strong)]`,"aria-label":`Available`}),e===`invalid`&&(0,Q.jsx)(C,{className:`h-4 w-4 text-[var(--system-negative-strong)]`,"aria-label":`Not available`})]},e)}):null})(),M=(()=>{switch(g){case`saving`:return(0,Q.jsxs)(`span`,{className:`inline-flex items-center gap-1.5`,children:[(0,Q.jsx)(D,{className:`h-3.5 w-3.5 animate-spin`,"aria-hidden":!0}),`Saving…`]});case`saved`:return(0,Q.jsxs)(`span`,{className:`inline-flex items-center gap-1.5`,children:[(0,Q.jsx)(x,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),`Saved`]});default:return`Save`}})();return(0,Q.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,Q.jsx)(H,{label:t,value:u,onChange:e=>{d(e.target.value.replace(/\s+/g,``)),p(null),y(null)},autoCorrect:`off`,autoCapitalize:`none`,spellCheck:!1,maxLength:30,leftIcon:(0,Q.jsx)(`span`,{className:`select-none font-mono text-[var(--content-tertiary)]`,"aria-hidden":!0,children:`@`}),rightIcon:j,errorText:E??void 0,helperText:O??void 0,"aria-invalid":!!E,fullWidth:!0,"data-testid":`${l}-input`}),(!T||g!==`idle`)&&(0,Q.jsx)(`div`,{className:`flex justify-end`,children:(0,Q.jsx)(s,{variant:`primary`,size:`compact`,onClick:A,disabled:!k,"aria-live":`polite`,"data-testid":`${l}-save`,children:M})})]})}function Pn({initial:e,onSaved:t}){let n=$e.use.refreshSession(),r=An(e.username)?`Your handle was auto-generated at signup — pick one you like.`:void 0,i=(0,Z.useCallback)(async e=>await Ye({username:e}),[]),a=(0,Z.useCallback)((e,t)=>Je(e,t),[]),o=(0,Z.useCallback)(e=>{t(e),n()},[t,n]);return(0,Q.jsx)(Nn,{initialHandle:e.username,inputLabel:`User handle`,helperText:`Lowercase letters, digits, hyphens, and underscores. 3–30 characters.`,idleHelperText:r,checkAvailable:a,save:i,onSaved:o,saveSuccessToast:`Profile updated.`,fieldId:`user-handle`})}function Fn({assistant:e,onSaved:t}){let n=e.handle??``,r=f({...Rt({path:{assistant_id:e.id}})}).data?.results?.[0],i=!!r&&r.subdomain.toLowerCase()===n.toLowerCase(),a=n.length===0?`Your assistant doesn't have a handle yet — claim one to make it mentionable.`:void 0,o=(0,Z.useCallback)(async t=>await On(e.id,t),[e.id]),s=(0,Z.useCallback)((t,n)=>kn(e.id,t,n),[e.id]);return i?(0,Q.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,Q.jsx)(H,{label:`Assistant handle`,value:n,readOnly:!0,disabled:!0,leftIcon:(0,Q.jsx)(`span`,{className:`select-none font-mono text-[var(--content-tertiary)]`,"aria-hidden":!0,children:`@`}),fullWidth:!0,"data-testid":`assistant-handle-input`}),(0,Q.jsxs)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:[`Your assistant's handle is locked because it's used as its email subdomain. To change it,`,` `,(0,Q.jsx)(u,{to:`${J.settings.ai}?release=1#email`,className:`text-[var(--content-link)] underline hover:text-[var(--content-link-hover)]`,children:`release the subdomain`}),` `,`first.`]})]}):(0,Q.jsx)(Nn,{initialHandle:n,inputLabel:`Assistant handle`,helperText:`Lowercase letters, digits, hyphens, and underscores. 3–30 characters.`,idleHelperText:a,checkAvailable:s,save:o,onSaved:t,saveSuccessToast:`Assistant handle updated.`,fieldId:`assistant-handle`})}function In(){return(0,Q.jsxs)(`div`,{className:`flex flex-col gap-4`,"aria-busy":!0,"aria-live":`polite`,children:[(0,Q.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,Q.jsx)(ve,{className:`h-3 w-16`}),(0,Q.jsx)(ve,{className:`h-9 w-full rounded-md`}),(0,Q.jsx)(ve,{className:`h-3 w-72`})]}),(0,Q.jsx)(ve,{className:`h-9 w-full rounded-md`}),(0,Q.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,Q.jsx)(ve,{className:`h-3 w-60`}),(0,Q.jsx)(ve,{className:`h-7 w-16 rounded-md`})]}),(0,Q.jsx)(`span`,{className:`sr-only`,children:`Loading your profile…`})]})}function Ln(){return(0,Q.jsx)(`div`,{className:`border-t border-[var(--border-subtle)]`})}function Rn({assistant:e,showHandles:t=!0,children:n}={}){let r=$e.use.user?.()?.email??null;return(0,Q.jsx)(X,{title:`Profile`,subtitle:`Manage your account details and preferences.`,children:(0,Q.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[r&&(0,Q.jsx)(`div`,{className:`max-w-[420px]`,children:(0,Q.jsx)(H,{label:`Email`,value:r,disabled:!0,readOnly:!0})}),t&&(0,Q.jsxs)(Q.Fragment,{children:[r&&(0,Q.jsx)(Ln,{}),(0,Q.jsx)(zn,{assistant:e})]}),n!=null&&(0,Q.jsxs)(Q.Fragment,{children:[(r||t)&&(0,Q.jsx)(Ln,{}),n]})]})})}function zn({assistant:e}){let[t,n]=(0,Z.useState)(null),[r,i]=(0,Z.useState)(null),a=an(),[o,s]=(0,Z.useState)(e??null);return(0,Z.useEffect)(()=>{s(e??null)},[e]),(0,Z.useEffect)(()=>{let e=!1;return nt().then(t=>{e||n(t)}).catch(t=>{e||i(t instanceof Error?t.message:`Failed to load profile.`)}),()=>{e=!0}},[]),r?(0,Q.jsx)(`p`,{className:`text-body-small-default text-[var(--system-negative-strong)]`,children:r}):t?(0,Q.jsxs)(nn.div,{initial:a?!1:{opacity:0,y:4},animate:{opacity:1,y:0},transition:{duration:.22,ease:`easeOut`},className:`flex flex-col gap-6`,children:[(0,Q.jsx)(Pn,{initial:t,onSaved:n}),o&&(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`div`,{className:`border-t border-[var(--border-subtle)]`}),(0,Q.jsx)(Fn,{assistant:o,onSaved:s})]})]}):(0,Q.jsx)(In,{})}var Bn=Wt({query:{hosting:`platform`}});function Vn(){let e=sn(),t=f(Bn),n=t.data?.results??[];return t.isPending||n.length<2?null:(0,Q.jsx)(X,{title:`Switch Assistant`,subtitle:`Choose which assistant is active for this account.`,children:(0,Q.jsx)(`div`,{className:`space-y-2`,children:n.map(t=>{let n=t.id===e;return(0,Q.jsxs)(`div`,{className:`flex items-center justify-between gap-4 rounded-lg border px-4 py-3 ${n?`border-[var(--border-focus)] bg-[var(--surface-lift)]`:`border-[var(--border-base)] bg-[var(--surface-default)]`}`,children:[(0,Q.jsxs)(`div`,{className:`flex min-w-0 items-center gap-3`,children:[(0,Q.jsx)(O,{className:`h-4 w-4 shrink-0 text-[var(--content-tertiary)]`}),(0,Q.jsx)(`div`,{className:`min-w-0`,children:(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(`span`,{className:`truncate text-body-medium-default text-[var(--content-default)]`,children:t.name||`Unnamed`}),t.status!==`active`&&(0,Q.jsx)(he,{tone:`warning`,children:t.status})]})})]}),(0,Q.jsx)(`div`,{className:`shrink-0`,children:n?(0,Q.jsxs)(`span`,{className:`flex items-center gap-1.5 text-body-small-default text-[var(--system-positive-default)]`,children:[(0,Q.jsx)(x,{className:`h-4 w-4`}),`Active`]}):(0,Q.jsx)(s,{variant:`outlined`,size:`compact`,disabled:t.status!==`active`,onClick:()=>{Xe(t.id),W.success(`Switched active assistant.`)},children:`Switch`})})]},t.id)})})})}var Hn=[{label:`Never`,seconds:0},{label:`5 min`,seconds:300,devOnly:!0},{label:`10 min`,seconds:600,devOnly:!0},{label:`1 hour`,seconds:3600},{label:`3 hours`,seconds:10800},{label:`1 day`,seconds:86400},{label:`3 days`,seconds:259200},{label:`7 days`,seconds:604800},{label:`14 days`,seconds:1209600},{label:`30 days`,seconds:2592e3}];function Un(e){if(e===0)return`Never (sleep disabled)`;let t=Math.floor(e/86400),n=Math.floor(e%86400/3600);if(t>0&&n>0)return`${t}d ${n}h`;if(t>0)return`${t} day${t===1?``:`s`}`;if(n>0)return`${n} hour${n===1?``:`s`}`;let r=Math.floor(e/60);return r>0?`${r} minute${r===1?``:`s`}`:`${e}s`}function Wn({assistantId:e}){let t=d(),n=mn.use.isNonProduction(),r=(0,Z.useMemo)(()=>Hn.filter(e=>!e.devOnly||n),[n]),{data:i,isLoading:a,isError:o}=f(Ct({path:{id:e}})),c=(0,Z.useMemo)(()=>i?.idle_timeout_seconds??259200,[i]),[l,u]=(0,Z.useState)(null),p=l??c,m=l!==null,h=wt({onSuccess:()=>{W.success(`Sleep policy saved.`),u(null),t.invalidateQueries({queryKey:Bt({path:{id:e}})})},onError:()=>{W.error(`Failed to save sleep policy. Please try again.`)}});return a?(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,Q.jsx)(D,{className:`h-4 w-4 animate-spin`}),`Loading sleep settings...`]}):o?(0,Q.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--system-negative-strong)]`,children:`Failed to load sleep policy. Refresh the page to try again.`}):(0,Q.jsxs)(`div`,{className:`space-y-4`,children:[(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(`label`,{className:`block text-body-medium-default text-[var(--content-default)]`,children:`Idle timeout`}),(0,Q.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`How long the assistant can be idle before it is put to sleep. "Never" disables idle sleep entirely.`}),(0,Q.jsx)(`div`,{className:`mt-2 flex flex-wrap gap-2`,children:r.map(e=>(0,Q.jsx)(s,{variant:`outlined`,active:p===e.seconds,onClick:()=>u(e.seconds),children:e.label},e.seconds))}),(0,Q.jsxs)(`p`,{className:`mt-2 text-body-small-default text-[var(--content-tertiary)]`,children:[`Current: `,Un(p)]})]}),m&&(0,Q.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,Q.jsx)(s,{variant:`primary`,leftIcon:h.isPending?(0,Q.jsx)(D,{className:`animate-spin`}):void 0,onClick:()=>h.mutate({path:{id:e},body:{idle_timeout_seconds:p}}),disabled:h.isPending,children:`Save`}),(0,Q.jsx)(s,{variant:`outlined`,onClick:()=>u(null),disabled:h.isPending,children:`Cancel`})]})]})}function Gn(e,t,n){let r=[e.version];return e.version===n&&r.push(`(latest)`),t&&e.version===t&&r.push(`(current)`),r.join(` `)}var Kn=3e3;function qn({version:e,assistantId:t}){let{onTap:n,message:r}=gn(t);return(0,Q.jsxs)(`div`,{className:`min-w-0`,children:[(0,Q.jsx)(`button`,{type:`button`,className:`block min-w-0 break-all text-left text-body-medium-lighter text-[var(--content-default)]`,onClick:n,children:e??`—`}),r&&(0,Q.jsx)(`p`,{className:`mt-1 text-body-small-default text-[var(--content-accent)]`,children:r})]})}function Jn({assistantId:e,currentVersion:t,releaseChannel:n,onUpgradeComplete:r}){let i=qt.use.rollbackEnabled(),a=Y.use.previewChannel(),o=d(),c=Qt(n,a),l=c===`preview`,[u,m]=(0,Z.useState)(!1),h=(0,Z.useRef)(null),[g,_]=(0,Z.useState)(null),[v,y]=(0,Z.useState)(!1),[b,x]=(0,Z.useState)(!1),[S,C]=(0,Z.useState)(null),w=e=>e&&h.current&&e===h.current?(queueMicrotask(()=>{C(b?`Successfully rolled back to version ${h.current}.`:`Successfully updated to version ${h.current}.`),m(!1),h.current=null,_(null),W.success(b?`Rollback complete. Your assistant is healthy.`:`Update complete. Your assistant is healthy.`,{id:`runtime-upgrade-complete`,tone:`strong`}),r?.()}),!1):Kn;f({...Mt({path:{id:e}}),refetchInterval:u?e=>w(e.state.data?.current_release_version):!1});let{data:T,isLoading:E}=f(Lt({query:{channel:c}})),O=T?.find(e=>e.is_stable!==!1)??T?.[0],k=g??O?.version??null,A=(0,Z.useMemo)(()=>{if(!i||!k||!t)return!1;let e=Ue(k),n=Ue(t);return!e||!n?!1:We(e,n)<0},[i,k,t]),j=(0,Z.useMemo)(()=>{if(!k)return!1;if(!t)return!0;let e=Ue(k),n=Ue(t);if(!e||!n)return k!==t;let r=We(e,n);return i?r!==0:r>0},[i,k,t]),M=p({mutationFn:async t=>{let{data:n}=await lt({path:{id:e},body:t,throwOnError:!0});return n}}),N=p({mutationFn:async t=>{let{data:n}=await dt({path:{id:e},body:t,throwOnError:!0});return n}});return(0,Q.jsxs)(`div`,{className:`space-y-5`,children:[(0,Q.jsxs)(`div`,{className:`flex flex-col gap-4 md:grid md:grid-cols-[auto_minmax(0,1fr)] md:items-center md:gap-x-8 md:gap-y-4`,children:[(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1 md:contents`,children:[(0,Q.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:`Current`}),(0,Q.jsx)(qn,{version:t,assistantId:e})]}),(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1 md:contents`,children:[(0,Q.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:l?`Preview release`:j?A?`Rollback to`:`Update to`:`Selected`}),(0,Q.jsx)(`span`,{className:`block min-w-0`,children:E?(0,Q.jsxs)(`span`,{className:`flex items-center gap-1 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,Q.jsx)(D,{className:`h-3 w-3 animate-spin`}),`Loading...`]}):T&&T.length>0?i?(0,Q.jsx)(_e,{value:k??``,onChange:e=>_(e===O?.version?null:e),disabled:u||M.isPending||N.isPending,options:T.map(e=>({value:e.version,label:Gn(e,t,O?.version)}))}):(0,Q.jsx)(`span`,{className:`block min-w-0 break-all text-body-medium-lighter text-[var(--content-default)]`,children:O?Gn(O,t,O.version):`—`}):`No releases available`})]})]}),(0,Q.jsx)(s,{variant:A?`outlined`:`primary`,className:`min-w-[160px]`,leftIcon:M.isPending||N.isPending||u?(0,Q.jsx)(D,{className:`animate-spin`}):(0,Q.jsx)(re,{}),onClick:()=>y(!0),disabled:!j||M.isPending||N.isPending||u||E||!T?.length,children:u?b?`Rolling back...`:`Updating...`:A?`Rollback`:l?`Update preview`:`Update`}),l&&(0,Q.jsxs)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:[`Using Preview releases.`,` `,(0,Q.jsx)(`a`,{href:`#preview-release-channel`,className:`text-[var(--primary-base)] underline-offset-2 hover:underline`,children:`Switch back to Stable`})]}),!j&&t&&k&&!E&&(0,Q.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--system-positive-strong)]`,children:S??`You are already on this version.`}),(0,Q.jsx)(G,{open:v,title:A?`Rollback assistant`:l?`Update preview release`:`Update assistant`,message:A?`Rollback to version ${k??`unknown`}? The assistant will be briefly unavailable.`:l?`Update to preview version ${k??`latest`}? The assistant will be briefly unavailable during the update.`:`Update to version ${k??`latest`}? The assistant will be briefly unavailable during the update.`,confirmLabel:A?`Rollback`:l?`Update preview`:`Update`,onConfirm:async()=>{y(!1),C(null);let t=i?k??void 0:void 0;try{if(A){let e=await N.mutateAsync({version:t});h.current=e.version??t??null,W.success(e.detail||`Rollback to ${t} initiated.`)}else{let e=await M.mutateAsync({version:t});if(e.detail?.includes(`Already on the latest`)){W.warning(e.detail);return}h.current=e.version??t??null,W.success(e.detail||`Update to ${e.version??t??`latest`} initiated.`)}x(A),m(!0),o.invalidateQueries({queryKey:Vt({path:{id:e}})})}catch{W.error(A?`Failed to trigger rollback. Please try again.`:`Failed to trigger update. Please try again.`)}},onCancel:()=>y(!1)})]})}function Yn({assistantId:e,currentVersion:t,onUpgradeComplete:n}){let[r,i]=(0,Z.useState)(!1),[a,o]=(0,Z.useState)(null),{data:c,isLoading:l}=f(Lt({query:{stable:!0,limit:100}})),u=(0,Z.useMemo)(()=>$t(c),[c]),d=u?.version,p=t?Zt(t,d):!!d,m=en({assistantId:e,targetVersion:d});return(0,Q.jsxs)(`div`,{className:`space-y-5`,children:[(0,Q.jsxs)(`div`,{className:`flex flex-col gap-4 md:grid md:grid-cols-[auto_minmax(0,1fr)] md:items-center md:gap-x-8 md:gap-y-4`,children:[(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1 md:contents`,children:[(0,Q.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:`Current`}),(0,Q.jsx)(qn,{version:t,assistantId:e})]}),(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1 md:contents`,children:[(0,Q.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:`Update to`}),(0,Q.jsx)(`span`,{className:`block min-w-0 break-all text-body-medium-lighter text-[var(--content-default)]`,children:l?`Loading...`:d&&u?Gn(u,t,d):`No releases available`})]})]}),(0,Q.jsx)(s,{variant:`primary`,className:`min-w-[160px]`,leftIcon:m.isPending?(0,Q.jsx)(D,{className:`animate-spin`}):(0,Q.jsx)(re,{}),onClick:()=>i(!0),disabled:m.isPending||l||!d||!p,children:m.isPending?`Updating...`:d?`Update to ${d}`:`Update`}),a&&(0,Q.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--system-positive-strong)]`,children:a}),!a&&!p&&d&&!l&&(0,Q.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--system-positive-strong)]`,children:`You are already on this version.`}),(0,Q.jsx)(G,{open:r,title:`Update assistant`,message:`Update to version ${d??`latest`}? The assistant will be briefly unavailable during the update.`,confirmLabel:`Update`,onConfirm:async()=>{i(!1),o(null);try{let e=await m.upgrade();o(e.version?`Successfully updated to version ${e.version}.`:`Successfully updated to version ${d??`latest`}.`),W.success(`Update complete. Your assistant is healthy.`,{id:`runtime-upgrade-complete`,tone:`strong`}),n?.()}catch(e){W.error(e instanceof Error?e.message:`Failed to trigger update. Please try again.`)}},onCancel:()=>i(!1)})]})}function Xn(){let e=bt({platformHostedOnly:!0}),t=xt(),n=$e.use.user()?.id??null,r=$e.use.logout(),[i,a]=(0,Z.useState)(!1),o=jt({onSuccess:async()=>{W.success(`Account deletion requested. You will be logged out shortly.`),Qe(n),await r(),Kt(J.account.login)},onError:()=>{W.error(`Failed to request account deletion. Please try again.`)}}),c=e===`full`&&t;return(0,Z.useEffect)(()=>{c&&i&&a(!1)},[c,i]),e===`gated`?null:(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsxs)(`section`,{className:`flex flex-col gap-2`,children:[(0,Q.jsx)(`h3`,{className:`text-title-small text-[var(--content-emphasised)]`,children:`Delete Account`}),(0,Q.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:`Permanently delete your account and all associated data.`}),(0,Q.jsx)(`div`,{className:`mt-1`,children:e===`disabled`?(0,Q.jsx)(on,{children:`Log in to the Vellum platform to delete your account.`}):(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(s,{variant:`dangerOutline`,onClick:()=>a(!0),disabled:o.isPending||c,className:`self-start`,children:`Delete My Account`}),c&&(0,Q.jsx)(D,{className:`h-4 w-4 animate-spin text-[var(--content-tertiary)]`})]})})]}),(0,Q.jsx)(G,{open:i,title:`Delete Account`,message:`This will permanently delete your account and all associated data. This action cannot be undone.`,confirmLabel:`Delete Account`,destructive:!0,onConfirm:()=>{if(c){a(!1);return}a(!1),o.mutate({})},onCancel:()=>a(!1)})]})}function Zn({title:e,subtitle:t,benefits:n,ctaLabel:r,ctaLeftIcon:i,onAction:a}){return(0,Q.jsx)(X,{title:e,subtitle:t,children:(0,Q.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,Q.jsx)(`ul`,{className:`space-y-3`,children:n.map(({icon:e,text:t})=>(0,Q.jsxs)(`li`,{className:`flex items-center gap-3`,children:[(0,Q.jsx)(`span`,{className:`flex size-7 shrink-0 items-center justify-center rounded-md`,style:{background:`var(--surface-base)`},children:(0,Q.jsx)(e,{size:14,style:{color:`var(--content-secondary)`},"aria-hidden":!0})}),(0,Q.jsx)(`span`,{className:`text-body-medium-lighter text-[color:var(--content-secondary)]`,children:t})]},t))}),(0,Q.jsx)(s,{variant:`primary`,size:`regular`,leftIcon:i,onClick:a,className:`self-start`,children:r})]})})}function Qn(){let e=ht(),t=yt(),n=e?`ios`:t?`android`:null,r=n?F(n):null;return r?(0,Q.jsx)(Zn,{title:`Get the ${r.appName} App`,subtitle:`The Vellum ${r.appName} app gives you a native experience.`,benefits:[{icon:b,text:`Push notifications`},{icon:Sn,text:`Biometric login`},{icon:wn,text:`Native haptics`},{icon:ae,text:`Home screen access`}],ctaLabel:`Download`,ctaLeftIcon:(0,Q.jsx)(ae,{size:16}),onAction:()=>{I(r.platform),R(r.platform)}}):null}var $n=`0.10.0`;function er(){return Ge($n)}var tr=[`login.tailscale.com`,`tailscale.com`,`www.tailscale.com`,`ngrok.com`,`dashboard.ngrok.com`,`dash.cloudflare.com`,`cloudflare.com`,`www.cloudflare.com`];function nr(e){let t;try{t=new URL(e).hostname}catch{return!1}return tr.includes(t)}function rr(e){let t;try{t=new URL(e).hostname}catch{return null}return tr.includes(t)?t.includes(`tailscale`)?`Tailscale`:t.includes(`ngrok`)?`ngrok`:t.includes(`cloudflare`)?`Cloudflare`:null:null}function ir(e){try{let t=new URL(e).hostname;return t===`localhost`||t===`[::1]`||/^127(?:\.\d{1,3}){3}$/.test(t)}catch{return!1}}function ar(e){let t=new URL(e);t.search=``,t.hash=``;let n=t.pathname.split(`/`).filter(Boolean),r=n.indexOf(`assistant`);return r>=0&&n.splice(r),t.pathname=n.length?`/${n.join(`/`)}`:`/`,t.toString().replace(/\/+$/,``)}function or(e){let t;try{t=ar(e)}catch{return{ok:!1,reason:`unparseable`}}return ir(t)?{ok:!1,reason:`loopback`}:nr(t)?{ok:!1,reason:`service-website`}:new URL(t).protocol===`https:`?{ok:!0,url:t}:{ok:!1,reason:`non-https`}}function sr(e){let t=new URL(e.verificationUri);return t.hash=new URLSearchParams({device_code:e.deviceCode}).toString(),t.toString()}function cr(e,t){switch(e){case`unparseable`:return K(`settings:pairDeviceUrl.unparseable`);case`loopback`:return K(`settings:pairDeviceUrl.loopback`);case`non-https`:return K(`settings:pairDeviceUrl.nonHttps`);case`service-website`:return K(`settings:pairDeviceUrl.serviceWebsite`,{service:t&&rr(t)||K(`settings:pairDeviceUrl.serviceFallbackName`)})}}var lr=`/v1/remote-web/pairing-challenge`,ur=`/v1/remote-web/pairing-verification`,dr=`/v1/remote-web/pairing-requests`,fr=`${dr}/approve`,pr=`${dr}/deny`;function mr(){return K(`settings:pairDeviceClient.connectivityHint`)}var hr=class extends Error{hint;status;code;constructor(e,t={}){super(e),this.name=`PairDeviceError`,this.hint=t.hint,this.status=t.status,this.code=t.code}},gr=5e3;function _r(){if(typeof window>`u`)return null;let e=je(),t=Oe(e);return t?{base:`${window.location.origin}${t}`,assistantName:e?.name?.trim()||null,ingressUrl:e?.ingressUrl?.trim()||null}:null}function vr(e){let t=e?.error?.message;return typeof t==`string`&&t.trim()?t:null}function yr(e){let t=e?.error?.code;return typeof t==`string`&&t?t:void 0}async function br(e,t,n,r){let i;try{i=await fetch(e,{...t,signal:n})}catch(e){throw e instanceof DOMException&&e.name===`AbortError`?e:new hr(K(`settings:pairDeviceClient.networkError`))}let a=await i.json().catch(()=>null);if(!i.ok)throw new hr(vr(a)??K(`settings:pairDeviceClient.httpError`,{status:i.status}),{hint:r,status:i.status,code:yr(a)});if(typeof a!=`object`||!a)throw new hr(K(`settings:pairDeviceClient.unexpectedResponse`));return a}function xr(e,t,n,r){return br(e,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t)},n,r)}async function Sr(e){let{base:t,publicBaseUrl:n,signal:r}=e,i=await xr(`${t}${lr}`,{publicBaseUrl:n},r,mr());try{await xr(`${t}${ur}`,{userCode:i.userCode},r,mr())}catch(e){let n=AbortSignal.timeout(gr);throw e instanceof DOMException&&e.name===`AbortError`?Cr(t,i.userCode,n):await Cr(t,i.userCode,r?AbortSignal.any([r,n]):n),e}return{pairUrl:sr(i),expiresAt:i.expiresAt}}async function Cr(e,t,n){try{let r=(await wr({base:e,signal:n})).find(e=>e.userCode===t);r&&await Dr({base:e,requestId:r.requestId,signal:n})}catch(e){if(e instanceof DOMException&&e.name===`AbortError`)return;a(e,{context:`pair-device-orphan-cleanup`,bestEffort:!0})}}async function wr(e){let t=await br(`${e.base}${dr}`,{method:`GET`},e.signal);return Array.isArray(t.requests)?t.requests:[]}async function Tr(e,t){await xr(`${t.base}${e}`,{requestId:t.requestId},t.signal)}function Er(e){return Tr(fr,e)}function Dr(e){return Tr(pr,e)}var Or=Object.defineProperty,kr=Object.getOwnPropertySymbols,Ar=Object.prototype.hasOwnProperty,jr=Object.prototype.propertyIsEnumerable,Mr=(e,t,n)=>t in e?Or(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Nr=(e,t)=>{for(var n in t||={})Ar.call(t,n)&&Mr(e,n,t[n]);if(kr)for(var n of kr(t))jr.call(t,n)&&Mr(e,n,t[n]);return e},Pr=(e,t)=>{var n={};for(var r in e)Ar.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&kr)for(var r of kr(e))t.indexOf(r)<0&&jr.call(e,r)&&(n[r]=e[r]);return n},Fr;(e=>{let t=class t{constructor(e,n,r,a){if(this.version=e,this.errorCorrectionLevel=n,this.modules=[],this.isFunction=[],e<t.MIN_VERSION||e>t.MAX_VERSION)throw RangeError(`Version value out of range`);if(a<-1||a>7)throw RangeError(`Mask value out of range`);this.size=e*4+17;let o=[];for(let e=0;e<this.size;e++)o.push(!1);for(let e=0;e<this.size;e++)this.modules.push(o.slice()),this.isFunction.push(o.slice());this.drawFunctionPatterns();let s=this.addEccAndInterleave(r);if(this.drawCodewords(s),a==-1){let e=1e9;for(let t=0;t<8;t++){this.applyMask(t),this.drawFormatBits(t);let n=this.getPenaltyScore();n<e&&(a=t,e=n),this.applyMask(t)}}i(0<=a&&a<=7),this.mask=a,this.applyMask(a),this.drawFormatBits(a),this.isFunction=[]}static encodeText(n,r){let i=e.QrSegment.makeSegments(n);return t.encodeSegments(i,r)}static encodeBinary(n,r){let i=e.QrSegment.makeBytes(n);return t.encodeSegments([i],r)}static encodeSegments(e,r,a=1,s=40,c=-1,l=!0){if(!(t.MIN_VERSION<=a&&a<=s&&s<=t.MAX_VERSION)||c<-1||c>7)throw RangeError(`Invalid value`);let u,d;for(u=a;;u++){let n=t.getNumDataCodewords(u,r)*8,i=o.getTotalBits(e,u);if(i<=n){d=i;break}if(u>=s)throw RangeError(`Data too long`)}for(let e of[t.Ecc.MEDIUM,t.Ecc.QUARTILE,t.Ecc.HIGH])l&&d<=t.getNumDataCodewords(u,e)*8&&(r=e);let f=[];for(let t of e){n(t.mode.modeBits,4,f),n(t.numChars,t.mode.numCharCountBits(u),f);for(let e of t.getData())f.push(e)}i(f.length==d);let p=t.getNumDataCodewords(u,r)*8;i(f.length<=p),n(0,Math.min(4,p-f.length),f),n(0,(8-f.length%8)%8,f),i(f.length%8==0);for(let e=236;f.length<p;e^=253)n(e,8,f);let m=[];for(;m.length*8<f.length;)m.push(0);return f.forEach((e,t)=>m[t>>>3]|=e<<7-(t&7)),new t(u,r,m,c)}getModule(e,t){return 0<=e&&e<this.size&&0<=t&&t<this.size&&this.modules[t][e]}getModules(){return this.modules}drawFunctionPatterns(){for(let e=0;e<this.size;e++)this.setFunctionModule(6,e,e%2==0),this.setFunctionModule(e,6,e%2==0);this.drawFinderPattern(3,3),this.drawFinderPattern(this.size-4,3),this.drawFinderPattern(3,this.size-4);let e=this.getAlignmentPatternPositions(),t=e.length;for(let n=0;n<t;n++)for(let r=0;r<t;r++)n==0&&r==0||n==0&&r==t-1||n==t-1&&r==0||this.drawAlignmentPattern(e[n],e[r]);this.drawFormatBits(0),this.drawVersion()}drawFormatBits(e){let t=this.errorCorrectionLevel.formatBits<<3|e,n=t;for(let e=0;e<10;e++)n=n<<1^(n>>>9)*1335;let a=(t<<10|n)^21522;i(a>>>15==0);for(let e=0;e<=5;e++)this.setFunctionModule(8,e,r(a,e));this.setFunctionModule(8,7,r(a,6)),this.setFunctionModule(8,8,r(a,7)),this.setFunctionModule(7,8,r(a,8));for(let e=9;e<15;e++)this.setFunctionModule(14-e,8,r(a,e));for(let e=0;e<8;e++)this.setFunctionModule(this.size-1-e,8,r(a,e));for(let e=8;e<15;e++)this.setFunctionModule(8,this.size-15+e,r(a,e));this.setFunctionModule(8,this.size-8,!0)}drawVersion(){if(this.version<7)return;let e=this.version;for(let t=0;t<12;t++)e=e<<1^(e>>>11)*7973;let t=this.version<<12|e;i(t>>>18==0);for(let e=0;e<18;e++){let n=r(t,e),i=this.size-11+e%3,a=Math.floor(e/3);this.setFunctionModule(i,a,n),this.setFunctionModule(a,i,n)}}drawFinderPattern(e,t){for(let n=-4;n<=4;n++)for(let r=-4;r<=4;r++){let i=Math.max(Math.abs(r),Math.abs(n)),a=e+r,o=t+n;0<=a&&a<this.size&&0<=o&&o<this.size&&this.setFunctionModule(a,o,i!=2&&i!=4)}}drawAlignmentPattern(e,t){for(let n=-2;n<=2;n++)for(let r=-2;r<=2;r++)this.setFunctionModule(e+r,t+n,Math.max(Math.abs(r),Math.abs(n))!=1)}setFunctionModule(e,t,n){this.modules[t][e]=n,this.isFunction[t][e]=!0}addEccAndInterleave(e){let n=this.version,r=this.errorCorrectionLevel;if(e.length!=t.getNumDataCodewords(n,r))throw RangeError(`Invalid argument`);let a=t.NUM_ERROR_CORRECTION_BLOCKS[r.ordinal][n],o=t.ECC_CODEWORDS_PER_BLOCK[r.ordinal][n],s=Math.floor(t.getNumRawDataModules(n)/8),c=a-s%a,l=Math.floor(s/a),u=[],d=t.reedSolomonComputeDivisor(o);for(let n=0,r=0;n<a;n++){let i=e.slice(r,r+l-o+(n<c?0:1));r+=i.length;let a=t.reedSolomonComputeRemainder(i,d);n<c&&i.push(0),u.push(i.concat(a))}let f=[];for(let e=0;e<u[0].length;e++)u.forEach((t,n)=>{(e!=l-o||n>=c)&&f.push(t[e])});return i(f.length==s),f}drawCodewords(e){if(e.length!=Math.floor(t.getNumRawDataModules(this.version)/8))throw RangeError(`Invalid argument`);let n=0;for(let t=this.size-1;t>=1;t-=2){t==6&&(t=5);for(let i=0;i<this.size;i++)for(let a=0;a<2;a++){let o=t-a,s=t+1&2?i:this.size-1-i;!this.isFunction[s][o]&&n<e.length*8&&(this.modules[s][o]=r(e[n>>>3],7-(n&7)),n++)}}i(n==e.length*8)}applyMask(e){if(e<0||e>7)throw RangeError(`Mask value out of range`);for(let t=0;t<this.size;t++)for(let n=0;n<this.size;n++){let r;switch(e){case 0:r=(n+t)%2==0;break;case 1:r=t%2==0;break;case 2:r=n%3==0;break;case 3:r=(n+t)%3==0;break;case 4:r=(Math.floor(n/3)+Math.floor(t/2))%2==0;break;case 5:r=n*t%2+n*t%3==0;break;case 6:r=(n*t%2+n*t%3)%2==0;break;case 7:r=((n+t)%2+n*t%3)%2==0;break;default:throw Error(`Unreachable`)}!this.isFunction[t][n]&&r&&(this.modules[t][n]=!this.modules[t][n])}}getPenaltyScore(){let e=0;for(let n=0;n<this.size;n++){let r=!1,i=0,a=[0,0,0,0,0,0,0];for(let o=0;o<this.size;o++)this.modules[n][o]==r?(i++,i==5?e+=t.PENALTY_N1:i>5&&e++):(this.finderPenaltyAddHistory(i,a),r||(e+=this.finderPenaltyCountPatterns(a)*t.PENALTY_N3),r=this.modules[n][o],i=1);e+=this.finderPenaltyTerminateAndCount(r,i,a)*t.PENALTY_N3}for(let n=0;n<this.size;n++){let r=!1,i=0,a=[0,0,0,0,0,0,0];for(let o=0;o<this.size;o++)this.modules[o][n]==r?(i++,i==5?e+=t.PENALTY_N1:i>5&&e++):(this.finderPenaltyAddHistory(i,a),r||(e+=this.finderPenaltyCountPatterns(a)*t.PENALTY_N3),r=this.modules[o][n],i=1);e+=this.finderPenaltyTerminateAndCount(r,i,a)*t.PENALTY_N3}for(let n=0;n<this.size-1;n++)for(let r=0;r<this.size-1;r++){let i=this.modules[n][r];i==this.modules[n][r+1]&&i==this.modules[n+1][r]&&i==this.modules[n+1][r+1]&&(e+=t.PENALTY_N2)}let n=0;for(let e of this.modules)n=e.reduce((e,t)=>e+ +!!t,n);let r=this.size*this.size,a=Math.ceil(Math.abs(n*20-r*10)/r)-1;return i(0<=a&&a<=9),e+=a*t.PENALTY_N4,i(0<=e&&e<=2568888),e}getAlignmentPatternPositions(){if(this.version==1)return[];{let e=Math.floor(this.version/7)+2,t=this.version==32?26:Math.ceil((this.version*4+4)/(e*2-2))*2,n=[6];for(let r=this.size-7;n.length<e;r-=t)n.splice(1,0,r);return n}}static getNumRawDataModules(e){if(e<t.MIN_VERSION||e>t.MAX_VERSION)throw RangeError(`Version number out of range`);let n=(16*e+128)*e+64;if(e>=2){let t=Math.floor(e/7)+2;n-=(25*t-10)*t-55,e>=7&&(n-=36)}return i(208<=n&&n<=29648),n}static getNumDataCodewords(e,n){return Math.floor(t.getNumRawDataModules(e)/8)-t.ECC_CODEWORDS_PER_BLOCK[n.ordinal][e]*t.NUM_ERROR_CORRECTION_BLOCKS[n.ordinal][e]}static reedSolomonComputeDivisor(e){if(e<1||e>255)throw RangeError(`Degree out of range`);let n=[];for(let t=0;t<e-1;t++)n.push(0);n.push(1);let r=1;for(let i=0;i<e;i++){for(let e=0;e<n.length;e++)n[e]=t.reedSolomonMultiply(n[e],r),e+1<n.length&&(n[e]^=n[e+1]);r=t.reedSolomonMultiply(r,2)}return n}static reedSolomonComputeRemainder(e,n){let r=n.map(e=>0);for(let i of e){let e=i^r.shift();r.push(0),n.forEach((n,i)=>r[i]^=t.reedSolomonMultiply(n,e))}return r}static reedSolomonMultiply(e,t){if(e>>>8||t>>>8)throw RangeError(`Byte out of range`);let n=0;for(let r=7;r>=0;r--)n=n<<1^(n>>>7)*285,n^=(t>>>r&1)*e;return i(n>>>8==0),n}finderPenaltyCountPatterns(e){let t=e[1];i(t<=this.size*3);let n=t>0&&e[2]==t&&e[3]==t*3&&e[4]==t&&e[5]==t;return(n&&e[0]>=t*4&&e[6]>=t?1:0)+(n&&e[6]>=t*4&&e[0]>=t?1:0)}finderPenaltyTerminateAndCount(e,t,n){return e&&(this.finderPenaltyAddHistory(t,n),t=0),t+=this.size,this.finderPenaltyAddHistory(t,n),this.finderPenaltyCountPatterns(n)}finderPenaltyAddHistory(e,t){t[0]==0&&(e+=this.size),t.pop(),t.unshift(e)}};t.MIN_VERSION=1,t.MAX_VERSION=40,t.PENALTY_N1=3,t.PENALTY_N2=3,t.PENALTY_N3=40,t.PENALTY_N4=10,t.ECC_CODEWORDS_PER_BLOCK=[[-1,7,10,15,20,26,18,20,24,30,18,20,24,26,30,22,24,28,30,28,28,28,28,30,30,26,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,10,16,26,18,24,16,18,22,22,26,30,22,22,24,24,28,28,26,26,26,26,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28],[-1,13,22,18,26,18,24,18,22,20,24,28,26,24,20,30,24,28,28,26,30,28,30,30,30,30,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,17,28,22,16,22,28,26,26,24,28,24,28,22,24,24,30,28,28,26,28,30,24,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30]],t.NUM_ERROR_CORRECTION_BLOCKS=[[-1,1,1,1,1,1,2,2,2,2,4,4,4,4,4,6,6,6,6,7,8,8,9,9,10,12,12,12,13,14,15,16,17,18,19,19,20,21,22,24,25],[-1,1,1,1,2,2,4,4,4,5,5,5,8,9,9,10,10,11,13,14,16,17,17,18,20,21,23,25,26,28,29,31,33,35,37,38,40,43,45,47,49],[-1,1,1,2,2,4,4,6,6,8,8,8,10,12,16,12,17,16,18,21,20,23,23,25,27,29,34,34,35,38,40,43,45,48,51,53,56,59,62,65,68],[-1,1,1,2,4,4,4,5,6,8,8,11,11,16,16,18,16,19,21,25,25,25,34,30,32,35,37,40,42,45,48,51,54,57,60,63,66,70,74,77,81]],e.QrCode=t;function n(e,t,n){if(t<0||t>31||e>>>t)throw RangeError(`Value out of range`);for(let r=t-1;r>=0;r--)n.push(e>>>r&1)}function r(e,t){return(e>>>t&1)!=0}function i(e){if(!e)throw Error(`Assertion error`)}let a=class e{constructor(e,t,n){if(this.mode=e,this.numChars=t,this.bitData=n,t<0)throw RangeError(`Invalid argument`);this.bitData=n.slice()}static makeBytes(t){let r=[];for(let e of t)n(e,8,r);return new e(e.Mode.BYTE,t.length,r)}static makeNumeric(t){if(!e.isNumeric(t))throw RangeError(`String contains non-numeric characters`);let r=[];for(let e=0;e<t.length;){let i=Math.min(t.length-e,3);n(parseInt(t.substring(e,e+i),10),i*3+1,r),e+=i}return new e(e.Mode.NUMERIC,t.length,r)}static makeAlphanumeric(t){if(!e.isAlphanumeric(t))throw RangeError(`String contains unencodable characters in alphanumeric mode`);let r=[],i;for(i=0;i+2<=t.length;i+=2){let a=e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(i))*45;a+=e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(i+1)),n(a,11,r)}return i<t.length&&n(e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(i)),6,r),new e(e.Mode.ALPHANUMERIC,t.length,r)}static makeSegments(t){return t==``?[]:e.isNumeric(t)?[e.makeNumeric(t)]:e.isAlphanumeric(t)?[e.makeAlphanumeric(t)]:[e.makeBytes(e.toUtf8ByteArray(t))]}static makeEci(t){let r=[];if(t<0)throw RangeError(`ECI assignment value out of range`);if(t<128)n(t,8,r);else if(t<16384)n(2,2,r),n(t,14,r);else if(t<1e6)n(6,3,r),n(t,21,r);else throw RangeError(`ECI assignment value out of range`);return new e(e.Mode.ECI,0,r)}static isNumeric(t){return e.NUMERIC_REGEX.test(t)}static isAlphanumeric(t){return e.ALPHANUMERIC_REGEX.test(t)}getData(){return this.bitData.slice()}static getTotalBits(e,t){let n=0;for(let r of e){let e=r.mode.numCharCountBits(t);if(r.numChars>=1<<e)return 1/0;n+=4+e+r.bitData.length}return n}static toUtf8ByteArray(e){e=encodeURI(e);let t=[];for(let n=0;n<e.length;n++)e.charAt(n)==`%`?(t.push(parseInt(e.substring(n+1,n+3),16)),n+=2):t.push(e.charCodeAt(n));return t}};a.NUMERIC_REGEX=/^[0-9]*$/,a.ALPHANUMERIC_REGEX=/^[A-Z0-9 $%*+.\/:-]*$/,a.ALPHANUMERIC_CHARSET=`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:`;let o=a;e.QrSegment=a})(Fr||={}),(e=>{(e=>{let t=class{constructor(e,t){this.ordinal=e,this.formatBits=t}};t.LOW=new t(0,1),t.MEDIUM=new t(1,0),t.QUARTILE=new t(2,3),t.HIGH=new t(3,2),e.Ecc=t})(e.QrCode||={})})(Fr||={}),(e=>{(e=>{let t=class{constructor(e,t){this.modeBits=e,this.numBitsCharCount=t}numCharCountBits(e){return this.numBitsCharCount[Math.floor((e+7)/17)]}};t.NUMERIC=new t(1,[10,12,14]),t.ALPHANUMERIC=new t(2,[9,11,13]),t.BYTE=new t(4,[8,16,16]),t.KANJI=new t(8,[8,10,12]),t.ECI=new t(7,[0,0,0]),e.Mode=t})(e.QrSegment||={})})(Fr||={});var Ir=Fr,Lr={L:Ir.QrCode.Ecc.LOW,M:Ir.QrCode.Ecc.MEDIUM,Q:Ir.QrCode.Ecc.QUARTILE,H:Ir.QrCode.Ecc.HIGH},Rr=128,zr=`L`,Br=`#FFFFFF`,Vr=`#000000`,Hr=!1,Ur=1,Wr=4,Gr=0,Kr=.1;function qr(e,t=0){let n=[];return e.forEach(function(e,r){let i=null;e.forEach(function(a,o){if(!a&&i!==null){n.push(`M${i+t} ${r+t}h${o-i}v1H${i+t}z`),i=null;return}if(o===e.length-1){if(!a)return;i===null?n.push(`M${o+t},${r+t} h1v1H${o+t}z`):n.push(`M${i+t},${r+t} h${o+1-i}v1H${i+t}z`);return}a&&i===null&&(i=o)})}),n.join(``)}function Jr(e,t){return e.slice().map((e,n)=>n<t.y||n>=t.y+t.h?e:e.map((e,n)=>n<t.x||n>=t.x+t.w?e:!1))}function Yr(e,t,n,r){if(r==null)return null;let i=e.length+n*2,a=Math.floor(t*Kr),o=i/t,s=(r.width||a)*o,c=(r.height||a)*o,l=r.x==null?e.length/2-s/2:r.x*o,u=r.y==null?e.length/2-c/2:r.y*o,d=r.opacity==null?1:r.opacity,f=null;if(r.excavate){let e=Math.floor(l),t=Math.floor(u);f={x:e,y:t,w:Math.ceil(s+l-e),h:Math.ceil(c+u-t)}}let p=r.crossOrigin;return{x:l,y:u,h:c,w:s,excavation:f,opacity:d,crossOrigin:p}}function Xr(e,t){return t==null?e?Wr:Gr:Math.max(Math.floor(t),0)}function Zr({value:e,level:t,minVersion:n,includeMargin:r,marginSize:i,imageSettings:a,size:o,boostLevel:s}){let c=Z.useMemo(()=>{let r=(Array.isArray(e)?e:[e]).reduce((e,t)=>(e.push(...Ir.QrSegment.makeSegments(t)),e),[]);return Ir.QrCode.encodeSegments(r,Lr[t],n,void 0,void 0,s)},[e,t,n,s]),{cells:l,margin:u,numCells:d,calculatedImageSettings:f}=Z.useMemo(()=>{let e=c.getModules(),t=Xr(r,i);return{cells:e,margin:t,numCells:e.length+t*2,calculatedImageSettings:Yr(e,o,t,a)}},[c,o,a,r,i]);return{qrcode:c,margin:u,cells:l,numCells:d,calculatedImageSettings:f}}var Qr=function(){try{new Path2D().addPath(new Path2D)}catch{return!1}return!0}(),$r=Z.forwardRef(function(e,t){let n=e,{value:r,size:i=Rr,level:a=zr,bgColor:o=Br,fgColor:s=Vr,includeMargin:c=Hr,minVersion:l=Ur,boostLevel:u,marginSize:d,imageSettings:f}=n,p=Pr(n,[`value`,`size`,`level`,`bgColor`,`fgColor`,`includeMargin`,`minVersion`,`boostLevel`,`marginSize`,`imageSettings`]),{style:m}=p,h=Pr(p,[`style`]),g=f?.src,_=Z.useRef(null),v=Z.useRef(null),y=Z.useCallback(e=>{_.current=e,typeof t==`function`?t(e):t&&(t.current=e)},[t]),[b,x]=Z.useState(!1),{margin:S,cells:C,numCells:w,calculatedImageSettings:T}=Zr({value:r,level:a,minVersion:l,boostLevel:u,includeMargin:c,marginSize:d,imageSettings:f,size:i});Z.useEffect(()=>{if(_.current!=null){let e=_.current,t=e.getContext(`2d`);if(!t)return;let n=C,r=v.current,a=T!=null&&r!==null&&r.complete&&r.naturalHeight!==0&&r.naturalWidth!==0;a&&T.excavation!=null&&(n=Jr(C,T.excavation));let c=window.devicePixelRatio||1;e.height=e.width=i*c;let l=i/w*c;t.scale(l,l),t.fillStyle=o,t.fillRect(0,0,w,w),t.fillStyle=s,Qr?t.fill(new Path2D(qr(n,S))):C.forEach(function(e,n){e.forEach(function(e,r){e&&t.fillRect(r+S,n+S,1,1)})}),T&&(t.globalAlpha=T.opacity),a&&t.drawImage(r,T.x+S,T.y+S,T.w,T.h)}}),Z.useEffect(()=>{x(!1)},[g]);let E=Nr({height:i,width:i},m),D=null;return g!=null&&(D=Z.createElement(`img`,{src:g,key:g,style:{display:`none`},onLoad:()=>{x(!0)},ref:v,crossOrigin:T?.crossOrigin})),Z.createElement(Z.Fragment,null,Z.createElement(`canvas`,Nr({style:E,height:i,width:i,ref:y,role:`img`},h)),D)});$r.displayName=`QRCodeCanvas`;var ei=Z.forwardRef(function(e,t){let n=e,{value:r,size:i=Rr,level:a=zr,bgColor:o=Br,fgColor:s=Vr,includeMargin:c=Hr,minVersion:l=Ur,boostLevel:u,title:d,marginSize:f,imageSettings:p}=n,m=Pr(n,[`value`,`size`,`level`,`bgColor`,`fgColor`,`includeMargin`,`minVersion`,`boostLevel`,`title`,`marginSize`,`imageSettings`]),{margin:h,cells:g,numCells:_,calculatedImageSettings:v}=Zr({value:r,level:a,minVersion:l,boostLevel:u,includeMargin:c,marginSize:f,imageSettings:p,size:i}),y=g,b=null;p!=null&&v!=null&&(v.excavation!=null&&(y=Jr(g,v.excavation)),b=Z.createElement(`image`,{href:p.src,height:v.h,width:v.w,x:v.x+h,y:v.y+h,preserveAspectRatio:`none`,opacity:v.opacity,crossOrigin:v.crossOrigin}));let x=qr(y,h);return Z.createElement(`svg`,Nr({height:i,width:i,viewBox:`0 0 ${_} ${_}`,ref:t,role:`img`},m),!!d&&Z.createElement(`title`,null,d),Z.createElement(`path`,{fill:o,d:`M0,0 h${_}v${_}H0z`,shapeRendering:`crispEdges`}),Z.createElement(`path`,{fill:s,d:x,shapeRendering:`crispEdges`}),b)});ei.displayName=`QRCodeSVG`;function ti(e,t){if(!Number.isFinite(t)||t<=0)return e(`pairDeviceReady.singleUse`);let n=Math.ceil(t/1e3);return e(`pairDeviceReady.expiresIn`,{time:`${Math.floor(n/60)}:${(n%60).toString().padStart(2,`0`)}`})}function ni({pairUrl:e,remainingMs:t,expired:n,copied:r,onCopy:i}){let{t:a}=ze(`settings`);return n?(0,Q.jsx)(B,{tone:`warning`,title:a(`pairDeviceReady.expiredTitle`),children:a(`pairDeviceReady.expiredBody`)}):(0,Q.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,Q.jsx)(`div`,{className:`w-fit rounded-lg bg-white p-3`,children:(0,Q.jsx)(ei,{value:e,size:192,level:`M`,title:a(`pairDeviceReady.qrTitle`)})}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(`code`,{"data-testid":`pair-device-url`,className:`min-w-0 flex-1 truncate rounded-md bg-[var(--surface-active)] px-2.5 py-1.5 text-body-small-default text-[var(--content-secondary)]`,children:e}),(0,Q.jsx)(s,{variant:`outlined`,size:`compact`,leftIcon:r?(0,Q.jsx)(x,{}):(0,Q.jsx)(_,{}),onClick:()=>i(e),children:a(r?`pairDeviceReady.copiedButton`:`pairDeviceReady.copyButton`)})]}),(0,Q.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:ti(a,t)})]})}var ri=5e3;function ii({pollWhilePairing:e=!1,revalidateKey:t}={}){let[n,r]=(0,Z.useState)(null),[i,a]=(0,Z.useState)(null),[o,s]=(0,Z.useState)(!1),[c,l]=(0,Z.useState)(null),u=(0,Z.useRef)(!0),d=(0,Z.useRef)(0);(0,Z.useEffect)(()=>(u.current=!0,()=>{u.current=!1}),[]);let f=(0,Z.useCallback)((e=je()?.assistantId)=>{if(!e)return;r(t=>t&&t.assistantId!==e?null:t);let t=++d.current;we(e).then(n=>{!u.current||t!==d.current||r(n.ok?{assistantId:e,devices:n.devices}:null)})},[]),p=Ie.use.selectedAssistantId()??je()?.assistantId;(0,Z.useEffect)(()=>{a(null),l(null),f(p)},[p,f]);let m=(0,Z.useRef)(t);(0,Z.useEffect)(()=>{t!==m.current&&(m.current=t,f(p))},[t,p,f]);let h=(0,Z.useRef)(!1);(0,Z.useEffect)(()=>{if(e&&!o){h.current=!0;let e=setInterval(()=>f(),ri);return()=>clearInterval(e)}!e&&h.current&&(h.current=!1,f())},[e,o,f]);let g=(0,Z.useCallback)(e=>{l(null),a(e)},[]),_=(0,Z.useCallback)(()=>{a(null),l(null)},[]),v=(0,Z.useCallback)(()=>{!n||!i||o||(s(!0),l(null),be(n.assistantId,i.hashedDeviceId).then(e=>{u.current&&(s(!1),e.ok?(a(null),f()):l(e.error))}))},[n,i,o,f]);return{devices:n?.devices??null,confirmTarget:i,isRevoking:o,revokeError:c,requestRevoke:g,cancelRevoke:_,confirmRevoke:v}}function ai(e){return e.slice(0,12)}function oi(e,t){return t?t.charAt(0).toUpperCase()+t.slice(1):e(`pairedDevicesSection.platformUnknown`)}function si(e,t){return t===null?e(`pairedDevicesSection.dateUnknown`):new Date(t).toLocaleDateString(Le())}function ci({pollWhilePairing:e=!1,revalidateKey:t}={}){let{t:n}=ze(`settings`),r=ii({pollWhilePairing:e,revalidateKey:t}),{devices:i,confirmTarget:a}=r;return i===null||i.length===0?null:(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(V.Root,{type:`multiple`,children:(0,Q.jsxs)(V.Item,{value:`paired-devices`,children:[(0,Q.jsxs)(V.Trigger,{className:`group flex w-full items-center justify-between gap-3`,children:[(0,Q.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-secondary)]`,children:n(`pairedDevicesSection.title`,{count:i.length})}),(0,Q.jsx)(S,{className:`h-4 w-4 shrink-0 text-[var(--content-tertiary)] transition-transform group-data-[state=open]:rotate-180`})]}),(0,Q.jsx)(V.Content,{children:(0,Q.jsx)(`div`,{className:`mt-3 flex flex-col gap-3`,children:i.map(e=>(0,Q.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,Q.jsxs)(`div`,{className:`flex min-w-0 flex-col`,children:[(0,Q.jsxs)(`span`,{className:`text-body-medium-default text-[var(--content-secondary)]`,children:[oi(n,e.platform),` `,(0,Q.jsx)(`span`,{className:`font-mono text-[var(--content-tertiary)]`,title:e.hashedDeviceId,children:ai(e.hashedDeviceId)}),e.isCurrentHost&&(0,Q.jsx)(`span`,{className:`text-[var(--content-tertiary)]`,children:` · ${n(`pairedDevicesSection.thisMachine`)}`})]}),(0,Q.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:n(`pairedDevicesSection.datesLine`,{paired:si(n,e.issuedAt),lastUsed:si(n,e.lastUsedAt)})})]}),(0,Q.jsx)(s,{variant:`dangerOutline`,size:`compact`,className:`shrink-0`,disabled:e.isCurrentHost===!0,title:e.isCurrentHost?n(`pairedDevicesSection.hostRevokeDisabledTitle`):void 0,onClick:()=>r.requestRevoke(e),children:n(`pairedDevicesSection.revokeButton`)})]},e.hashedDeviceId))})})]})}),(0,Q.jsx)(G,{open:a!==null,title:n(`pairedDevicesSection.confirmTitle`),message:a&&(0,Q.jsxs)(Q.Fragment,{children:[n(`pairedDevicesSection.confirmMessage`,{platform:oi(n,a.platform),hash:ai(a.hashedDeviceId)}),r.revokeError&&(0,Q.jsx)(`span`,{className:`mt-2 block text-[var(--system-negative-strong)]`,children:r.revokeError})]}),confirmLabel:n(`pairedDevicesSection.revokeButton`),destructive:!0,isPending:r.isRevoking,onConfirm:r.confirmRevoke,onCancel:r.cancelRevoke})]})}var li=[{unit:`year`,ms:365*24*60*60*1e3},{unit:`month`,ms:720*60*60*1e3},{unit:`week`,ms:10080*60*1e3},{unit:`day`,ms:1440*60*1e3},{unit:`hour`,ms:3600*1e3},{unit:`minute`,ms:60*1e3},{unit:`second`,ms:1e3}],ui=new Map;function di(e){let t=e??``,n=ui.get(t);return n===void 0&&(n=typeof Intl<`u`&&`RelativeTimeFormat`in Intl?new Intl.RelativeTimeFormat(e,{style:`long`,numeric:`auto`}):null,ui.set(t,n)),n}function fi(e,t={}){let n=di(t.locale);if(!n)return new Date(e).toLocaleString();let r=e-Date.now(),i=Math.abs(r),a=li.findIndex(({unit:e})=>e===(t.minimumUnit??`second`));for(let{unit:e,ms:t}of li.slice(0,a+1))if(i>=t)return n.format(Math.round(r/t),e);return n.format(0,`second`)}var pi=5e3;function mi(e,t){return e.length===t.length&&t.every((t,n)=>e[n]?.requestId===t.requestId)}function hi(e,t){let[n,r]=(0,Z.useState)([]),[i,o]=(0,Z.useState)(null),[s,c]=(0,Z.useState)(null),[l,u]=(0,Z.useState)(null),d=(0,Z.useRef)(null),f=(0,Z.useRef)(null),[p,m]=(0,Z.useState)(e);e!==p&&(m(e),r([]),o(null),c(null),u(null)),(0,Z.useEffect)(()=>()=>{f.current?.abort(),f.current=null},[e]),(0,Z.useEffect)(()=>{let t=async()=>{d.current?.abort();let t=new AbortController;d.current=t;try{let n=await wr({base:e,signal:t.signal});if(t.signal.aborted)return;r(e=>mi(e,n)?e:n),u(e=>e&&!e.sticky&&!n.some(t=>t.requestId===e.requestId)?null:e),c(null)}catch(e){if(t.signal.aborted)return;if(e instanceof hr){c(e.message);return}a(e,{context:`pair-device-pending-requests-poll`}),c(K(`settings:usePendingPairingRequests.pollErrorFallback`))}};t();let n=setInterval(()=>void t(),pi);return()=>{clearInterval(n),d.current?.abort()}},[e]);let h=(0,Z.useCallback)(async(n,i)=>{if(f.current)return;let s=new AbortController;f.current=s,o({requestId:n,action:i}),u(null);let c=()=>{d.current?.abort(),r(e=>e.filter(e=>e.requestId!==n))};try{if(await(i===`approve`?Er:Dr)({base:e,requestId:n,signal:s.signal}),s.signal.aborted)return;c(),i===`approve`&&t?.()}catch(e){if(s.signal.aborted)return;e instanceof hr?i===`deny`&&e.status===409&&e.code===`ALREADY_APPROVED`?(c(),t?.(),u({requestId:n,message:K(`settings:usePendingPairingRequests.denyAlreadyApproved`),sticky:!0})):e.status===404||e.status===410?c():u({requestId:n,message:e.message}):(a(e,{context:`pair-device-pending-request-action`}),u({requestId:n,message:K(`settings:usePendingPairingRequests.actionErrorFallback`)}))}finally{f.current===s&&(f.current=null),s.signal.aborted||o(null)}},[e,t]),g=(0,Z.useCallback)(e=>h(e,`approve`),[h]),_=(0,Z.useCallback)(e=>h(e,`deny`),[h]);return{requests:n,actingOn:i,error:l?.message??s,approve:g,deny:_}}var gi=3e4;function _i(e){return fi(new Date(e).getTime(),{locale:Le(),minimumUnit:`minute`})}function vi({base:e,onApproved:t}){let{t:n}=ze(`settings`),{requests:r,actingOn:i,error:a,approve:o,deny:c}=hi(e,t),l=r.length>0,[,u]=(0,Z.useState)(0);return(0,Z.useEffect)(()=>{if(!l)return;let e=setInterval(()=>u(e=>e+1),gi);return()=>clearInterval(e)},[l]),r.length===0&&!a?null:(0,Q.jsxs)(`section`,{className:`flex flex-col gap-3 border-t border-[var(--border-element)] pt-4`,children:[(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Q.jsx)(`h3`,{className:`text-title-small text-[var(--content-emphasised)]`,children:n(`pendingPairingRequests.title`)}),(0,Q.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:n(`pendingPairingRequests.instruction`)})]}),a&&(0,Q.jsx)(B,{tone:`error`,title:a}),r.length>0&&(0,Q.jsx)(`ul`,{className:`flex flex-col gap-2`,children:r.map(e=>{let t=i!==null&&i.requestId===e.requestId?i.action:null,r=t===`approve`,a=t===`deny`;return(0,Q.jsxs)(`li`,{className:`flex flex-col gap-2 rounded-lg border border-[var(--border-element)] p-3`,children:[(0,Q.jsx)(`code`,{className:`w-fit rounded-md bg-[var(--surface-active)] px-2.5 py-1.5 text-title-medium tracking-wide text-[var(--content-emphasised)]`,children:e.userCode}),(0,Q.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[(0,Q.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:e.viaEdgeProxy===!1?n(`pendingPairingRequests.requestedMetaHost`,{when:_i(e.requestedAt)}):n(`pendingPairingRequests.requestedMeta`,{when:_i(e.requestedAt),ip:e.requesterIp})}),e.requesterUserAgent&&(0,Q.jsx)(`p`,{className:`truncate text-body-small-default text-[var(--content-tertiary)]`,title:e.requesterUserAgent,children:e.requesterUserAgent})]}),(0,Q.jsxs)(`div`,{className:`flex gap-2`,children:[(0,Q.jsx)(s,{variant:`primary`,size:`compact`,disabled:i!==null,"aria-busy":r||void 0,leftIcon:r?(0,Q.jsx)(D,{className:`animate-spin`}):void 0,onClick:()=>void o(e.requestId),children:n(`pendingPairingRequests.approveButton`)}),(0,Q.jsx)(s,{variant:`dangerOutline`,size:`compact`,disabled:i!==null,"aria-busy":a||void 0,leftIcon:a?(0,Q.jsx)(D,{className:`animate-spin`}):void 0,onClick:()=>void c(e.requestId),children:n(`pendingPairingRequests.denyButton`)})]})]},e.requestId)})})]})}var yi=`vellum:pair-device:public-base-url`;function bi(e){let n=e?.trim();if(n)return{url:n,source:`tunnel`};let r=t(yi,``).trim();return r?{url:r,source:`stored`}:{url:``,source:`none`}}function xi(e,t){let[r]=(0,Z.useState)(()=>bi(t)),[i,o]=(0,Z.useState)(r.url),[s,c]=(0,Z.useState)(null),[l,u]=(0,Z.useState)({kind:`idle`}),[d,f]=(0,Z.useState)(()=>Date.now()),p=(0,Z.useRef)(null);(0,Z.useEffect)(()=>()=>p.current?.abort(),[]),(0,Z.useEffect)(()=>{if(l.kind!==`ready`)return;f(Date.now());let e=setInterval(()=>f(Date.now()),1e3);return()=>clearInterval(e)},[l]);let m=(0,Z.useCallback)(e=>{o(e),c(null)},[]),h=(0,Z.useCallback)(()=>{if(!e)return;let t=i.trim(),r=or(t);if(!r.ok){c(cr(r.reason,t));return}c(null),p.current?.abort();let o=new AbortController;p.current=o,u({kind:`minting`}),(async()=>{try{let t=await Sr({base:e,publicBaseUrl:r.url,signal:o.signal});if(o.signal.aborted)return;n(yi,r.url),u({kind:`ready`,pairUrl:t.pairUrl,expiresAtMs:Date.parse(t.expiresAt)})}catch(e){if(o.signal.aborted)return;if(e instanceof hr){u({kind:`error`,message:e.message,hint:e.hint});return}a(e,{context:`pair-device-mint`}),u({kind:`error`,message:K(`settings:usePairDevice.mintErrorFallback`)})}})()},[e,i]),g=l.kind===`ready`?Math.max(0,l.expiresAtMs-d):0,_=l.kind===`ready`&&g<=0;return{publicBaseUrl:i,setPublicBaseUrl:m,prefillSource:r.source,inputError:s,phase:l,remainingMs:g,expired:_,generate:h}}var Si=`vellum tunnel --provider tailscale`,Ci=`vellum tunnel --help`,wi=`rounded-md bg-[var(--surface-active)] text-body-small-default text-[color:var(--content-primary)]`;function Ti(){let{t:e}=ze(`settings`),t=_r(),n=er(),r=Y.use.pairedDevicesUI(),i=xi(t?.base??null,t?.ingressUrl??null),[a,o]=(0,Z.useState)(0),{copy:c,copied:l}=cn({errorMessage:e(`pairDeviceCard.copyError`)});if(!t||!n)return null;let u=t.assistantName??e(`pairDeviceCard.subtitleFallbackName`),{phase:d}=i,f=d.kind===`minting`,p=d.kind===`ready`,m=i.prefillSource===`tunnel`,g=i.prefillSource===`none`&&i.publicBaseUrl.trim()===``,_=e(f?`pairDeviceCard.generateButtonMinting`:p?`pairDeviceCard.generateButtonRegenerate`:`pairDeviceCard.generateButton`);return(0,Q.jsx)(X,{title:e(`pairDeviceCard.title`),subtitle:e(`pairDeviceCard.subtitle`,{name:u}),children:(0,Q.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[g&&(0,Q.jsx)(B,{tone:`info`,title:e(`pairDeviceCard.noTunnelTitle`),children:(0,Q.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,Q.jsx)(`p`,{children:e(`pairDeviceCard.noTunnelWhy`,{name:u})}),(0,Q.jsx)(`code`,{className:h(wi,`w-fit max-w-full overflow-x-auto px-2.5 py-1.5`),children:Si}),(0,Q.jsx)(`p`,{children:e(`pairDeviceCard.noTunnelNext`)}),(0,Q.jsx)(`p`,{children:(0,Q.jsx)(Re,{i18nKey:`pairDeviceCard.noTunnelMore`,ns:`settings`,values:{command:Ci},components:{code:(0,Q.jsx)(`code`,{className:h(wi,`px-1.5 py-0.5`)})}})})]})}),(0,Q.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,Q.jsx)(H,{label:e(`pairDeviceCard.publicUrlLabel`),fullWidth:!0,placeholder:e(`pairDeviceCard.publicUrlPlaceholder`),helperText:e(m?`pairDeviceCard.publicUrlHelperTunnel`:`pairDeviceCard.publicUrlHelper`),value:i.publicBaseUrl,errorText:i.inputError??void 0,disabled:f,onChange:e=>i.setPublicBaseUrl(e.target.value),onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),i.generate())}}),(0,Q.jsx)(s,{variant:`primary`,className:`self-start`,disabled:f||i.publicBaseUrl.trim()===``,onClick:i.generate,children:_})]}),d.kind===`error`&&(0,Q.jsx)(B,{tone:`error`,title:d.message,children:d.hint}),p&&(0,Q.jsx)(ni,{pairUrl:d.pairUrl,remainingMs:i.remainingMs,expired:i.expired,copied:l,onCopy:c}),(0,Q.jsx)(vi,{base:t.base,onApproved:()=>o(e=>e+1)}),r&&(0,Q.jsx)(ci,{pollWhilePairing:p&&!i.expired,revalidateKey:a})]})})}var Ei=[{scope:`global`,title:`Global shortcuts`,description:`Work anywhere, even when Vellum is in the background.`},{scope:`menu`,title:`App shortcuts`,description:`Work while a Vellum window is focused.`}];function Di({hotkey:e,recording:t,conflictLabel:n,alternateBinding:r,onStartRecording:i,onCancelRecording:a,onReset:o,onRemove:c}){let l=e.accelerator===``,u=e.override!==null;return(0,Q.jsxs)(`div`,{className:`flex items-center justify-between gap-3 py-2`,children:[(0,Q.jsxs)(`div`,{className:`min-w-0`,children:[(0,Q.jsx)(`div`,{className:`truncate text-body-medium-lighter text-[var(--content-default)]`,children:e.label}),n!==null&&(0,Q.jsxs)(`div`,{className:`text-body-small-default text-[var(--system-negative-strong)]`,children:[`Already used by `,n]})]}),(0,Q.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[r,t?(0,Q.jsx)(`span`,{className:`text-body-small-default text-[var(--content-secondary)]`,children:`Recording… press a shortcut, or Esc to cancel`}):l?(0,Q.jsx)(`span`,{className:`text-body-small-default italic text-[var(--content-disabled)]`,children:`None`}):(0,Q.jsx)(me,{accelerator:e.accelerator}),t?(0,Q.jsx)(s,{variant:`ghost`,size:`compact`,onClick:a,children:`Cancel`}):(0,Q.jsx)(s,{variant:`outlined`,size:`compact`,onClick:i,"aria-label":`Record shortcut for ${e.label}`,children:`Record`}),(0,Q.jsx)(s,{variant:`ghost`,size:`compact`,disabled:!u,leftIcon:(0,Q.jsx)(ie,{className:`h-3.5 w-3.5`}),onClick:o,"aria-label":`Reset ${e.label} to default`}),(0,Q.jsx)(s,{variant:`ghost`,size:`compact`,disabled:l,leftIcon:(0,Q.jsx)(le,{className:`h-3.5 w-3.5`}),onClick:c,"aria-label":`Remove ${e.label} binding`})]})]})}function Oi(){let{catalog:e,recordingKey:t,conflict:n,startRecording:r,stopRecording:i,resetHotkey:a,removeHotkey:o}=bn(),s=(0,Z.useMemo)(()=>Ei.map(t=>({...t,commands:e.filter(e=>e.rebindable&&e.scope===t.scope)})).filter(e=>e.commands.length>0),[e]);return(0,Q.jsxs)(`div`,{className:`space-y-4`,children:[n!==null&&(0,Q.jsxs)(B,{tone:`warning`,children:[`That shortcut is already used by `,n.label,`.`,` `,t===null?`Remove or change that binding before resetting.`:`Pick a different combination, or press Esc to cancel.`]}),s.map(e=>(0,Q.jsxs)(g,{bordered:!0,children:[(0,Q.jsxs)(`div`,{className:`mb-2`,children:[(0,Q.jsx)(`div`,{className:`text-body-medium-emphasised text-[var(--content-default)]`,children:e.title}),(0,Q.jsx)(`div`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:e.description})]}),(0,Q.jsx)(`div`,{className:`divide-y divide-[var(--border-base)]`,children:e.commands.map(e=>(0,Q.jsx)(Di,{hotkey:e,recording:t===e.key,conflictLabel:n!==null&&n.key===e.key?n.label:null,onStartRecording:()=>r(e.key),onCancelRecording:i,onReset:()=>a(e.key),onRemove:()=>o(e.key)},e.key))})]},e.scope))]})}async function ki(){if(!Fe())return!1;let e=window.vellum;return e?.launchAtLogin?e.launchAtLogin.get():!1}async function Ai(e){if(!Fe())return;let t=window.vellum;t?.launchAtLogin&&await t.launchAtLogin.set(e)}function ji(){let e=z.useValue(),t=L.useValue(),n=!Jt(),r=_t()?`Cmd`:`Ctrl`;return(0,Q.jsxs)(`section`,{children:[(0,Q.jsx)(`h3`,{className:`text-title-small text-[var(--content-emphasised)]`,children:`Composer`}),(0,Q.jsxs)(`div`,{className:`mt-2 space-y-4`,children:[n&&(0,Q.jsx)(ge,{checked:e,onChange:z.save,label:`Send with ${r}+Enter`,helperText:`When enabled, Enter inserts a new line and ${r}+Enter sends.`}),(0,Q.jsx)(ge,{checked:t,onChange:L.save,label:`Show context window usage`,helperText:`Adds a ring to the composer tracking how full the context window is. Your assistant compacts its context automatically either way.`})]})]})}function Mi(){let[e,t]=(0,Z.useState)(!1);(0,Z.useEffect)(()=>{ki().then(t)},[]);let n=async e=>{t(e);try{await Ai(e)}catch{t(!e)}};return(0,Q.jsxs)(`section`,{children:[(0,Q.jsx)(`h3`,{className:`text-title-small text-[var(--content-emphasised)]`,children:`Launch at Login`}),(0,Q.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:`Automatically start Vellum when you log in to your Mac.`}),(0,Q.jsx)(`div`,{className:`mt-2`,children:(0,Q.jsx)(ge,{checked:e,onChange:e=>void n(e),"aria-label":`Launch at Login`})})]})}function Ni({open:e,onClose:t}){return(0,Q.jsx)(U.Root,{open:e,onOpenChange:e=>{e||t()},children:(0,Q.jsxs)(U.Content,{size:`lg`,children:[(0,Q.jsxs)(U.Header,{children:[(0,Q.jsx)(U.Title,{children:`Preferences`}),(0,Q.jsx)(U.Description,{children:`Customize shortcuts and how Vellum behaves on this device.`})]}),(0,Q.jsx)(U.Body,{children:(0,Q.jsxs)(`div`,{className:`space-y-6`,children:[Fe()&&(0,Q.jsxs)(`section`,{children:[(0,Q.jsx)(`h3`,{className:`text-title-small text-[var(--content-emphasised)]`,children:`Keyboard Shortcuts`}),(0,Q.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:`Customize the shortcuts for Vellum's commands.`}),(0,Q.jsx)(`div`,{className:`mt-2`,children:(0,Q.jsx)(Oi,{})})]}),(0,Q.jsx)(ji,{}),Fe()&&(0,Q.jsx)(Mi,{})]})})]})})}function Pi(e){return e===`preview`?`preview`:`stable`}function Fi(e){if(!e)return`Unknown`;let t=new Date(e);return Number.isNaN(t.getTime())?`Unknown`:t.toLocaleString(void 0,{year:`numeric`,month:`short`,day:`numeric`,hour:`numeric`,minute:`2-digit`})}function Ii(e){return e.source_release_version?`Stable ${e.source_release_version}`:e.snapshot_name}function Li(e){return e.filter(e=>e.ready_to_use)}function Ri(e){return e?.feature_enabled===!1}function zi({assistantId:e,onComplete:t}){let n=Y.use.previewChannel(),r=d(),[i,a]=(0,Z.useState)(),[o,s]=(0,Z.useState)(!1),[c,l]=(0,Z.useState)(!1),[u,m]=(0,Z.useState)(`restore_backup`),[h,g]=(0,Z.useState)(``),_=Et({path:{assistant_id:e}}),v=Tt({path:{assistant_id:e}}),y=Vt({path:{id:e}}),{data:b,isLoading:x,isError:C}=f({..._,enabled:n,retry:!1}),w=b?.preview_backups??[],T=(0,Z.useMemo)(()=>Li(w),[w]),E=T[0],O=T.find(e=>e.snapshot_name===h)??E,k=()=>{r.invalidateQueries({queryKey:v}),r.invalidateQueries({queryKey:y}),t?.()},A=p(Gt()),j=p(It()),M=Pi(b?.current_channel),N=A.isPending||j.isPending,P=N||Ri(b)||!b?.latest_preview_release,F=u===`restore_backup`&&!O;if((0,Z.useEffect)(()=>{a(M===`preview`?`release-channel`:void 0)},[M]),!n)return null;let I=b?.standard_upgrade_available??!1;return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(V.Root,{type:`single`,collapsible:!0,value:i,onValueChange:e=>a(e||void 0),className:`mt-5 border-t border-[var(--border-base)] pt-5`,children:(0,Q.jsxs)(V.Item,{value:`release-channel`,id:`preview-release-channel`,children:[(0,Q.jsxs)(V.Trigger,{className:`group justify-between gap-3`,children:[(0,Q.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[(0,Q.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-secondary)]`,children:`Release Channel`}),b&&(0,Q.jsx)(he,{tone:M===`preview`?`warning`:`neutral`,children:M===`preview`?`Preview`:`Stable`})]}),(0,Q.jsx)(S,{className:`h-4 w-4 shrink-0 text-[var(--content-tertiary)] transition-transform group-data-[state=open]:rotate-180`})]}),(0,Q.jsx)(V.Content,{children:(0,Q.jsxs)(`div`,{className:`mt-4 space-y-4`,children:[x&&(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,Q.jsx)(D,{className:`h-4 w-4 animate-spin`}),`Loading release channel...`]}),C&&(0,Q.jsx)(B,{tone:`error`,title:`Could not load release channel status`,children:`Refresh this page before changing release channels.`}),b&&(0,Q.jsxs)(Q.Fragment,{children:[Ri(b)&&(0,Q.jsx)(B,{tone:`neutral`,title:`Preview channel is unavailable`,children:`The Preview channel is not enabled for this assistant.`}),M===`stable`?(0,Q.jsx)(Bi,{status:b,isChangingChannel:N,optInDisabled:P,onOptIn:()=>s(!0)}):(0,Q.jsx)(Vi,{status:b,isChangingChannel:N,onOptOut:()=>{let e=E;g(e?.snapshot_name??``),m(e?`restore_backup`:I?`standard_upgrade`:`restore_backup`),l(!0)}})]})]})})]})}),(0,Q.jsx)(Ui,{open:o,isPending:A.isPending,previewVersion:b?.latest_preview_release?.version,onConfirm:async()=>{try{let t=await A.mutateAsync({path:{assistant_id:e}});W.success(t.detail||`Preview channel enabled.`),s(!1),k()}catch(e){W.error(Be(e,void 0,`Could not enable Preview channel.`))}},onCancel:()=>s(!1)}),(0,Q.jsx)(Wi,{open:c,backups:T,mode:u,selectedSnapshotName:O?.snapshot_name??``,isPending:j.isPending,restoreModeDisabled:F,standardUpgradeAvailable:I,onModeChange:m,onSnapshotChange:g,onConfirm:async()=>{if(!F)try{let t=await j.mutateAsync({path:{assistant_id:e},body:u===`restore_backup`?{mode:`restore_backup`,snapshot_name:O?.snapshot_name}:{mode:`standard_upgrade`}});W.success(t.detail||`Stable channel enabled.`),l(!1),k()}catch(e){W.error(Be(e,void 0,`Could not switch to Stable.`))}},onCancel:()=>l(!1)})]})}function Bi({status:e,isChangingChannel:t,optInDisabled:n,onOptIn:r}){return(0,Q.jsxs)(`div`,{className:`space-y-4`,children:[(0,Q.jsx)(Hi,{status:e}),!e.latest_preview_release&&(0,Q.jsx)(B,{tone:`neutral`,title:`No Preview release is available`,children:`Stable remains the only available release channel.`}),(0,Q.jsx)(s,{variant:`outlined`,leftIcon:t?(0,Q.jsx)(D,{className:`animate-spin`}):(0,Q.jsx)(j,{}),disabled:n,onClick:r,children:`Opt in to Preview`})]})}function Vi({status:e,isChangingChannel:t,onOptOut:n}){return(0,Q.jsxs)(`div`,{className:`space-y-4`,children:[(0,Q.jsx)(Hi,{status:e}),(0,Q.jsx)(s,{variant:`outlined`,leftIcon:t?(0,Q.jsx)(D,{className:`animate-spin`}):(0,Q.jsx)(ie,{}),disabled:t,onClick:n,children:`Switch back to Stable`})]})}function Hi({status:e}){return(0,Q.jsxs)(`dl`,{className:`grid gap-3 text-body-medium-lighter sm:grid-cols-2`,children:[(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(`dt`,{className:`text-[var(--content-tertiary)]`,children:`Latest Stable`}),(0,Q.jsx)(`dd`,{className:`break-all text-[var(--content-default)]`,children:e.latest_stable_release?.version??`None`})]}),(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(`dt`,{className:`text-[var(--content-tertiary)]`,children:`Latest Preview`}),(0,Q.jsx)(`dd`,{className:`break-all text-[var(--content-default)]`,children:e.latest_preview_release?.version??`None`})]})]})}function Ui({open:e,isPending:t,previewVersion:n,onConfirm:r,onCancel:i}){return(0,Q.jsx)(U.Root,{open:e,onOpenChange:e=>!e&&i(),children:(0,Q.jsxs)(U.Content,{size:`md`,hideCloseButton:t,children:[(0,Q.jsxs)(U.Header,{icon:ce,children:[(0,Q.jsx)(U.Title,{children:`Opt in to Preview`}),(0,Q.jsx)(U.Description,{children:`Preview releases may be unstable. A 90-day safety backup is taken before the image changes.`})]}),(0,Q.jsx)(U.Body,{children:(0,Q.jsxs)(`div`,{className:`space-y-3`,children:[(0,Q.jsx)(B,{tone:`warning`,title:`Data loss may occur when returning to Stable`,children:`Preview data may not be compatible with the Stable channel. The safety backup lets you restore the Stable-channel data that existed before opt-in.`}),(0,Q.jsxs)(`ol`,{className:`list-decimal space-y-2 pl-5 text-body-medium-lighter text-[var(--content-secondary)]`,children:[(0,Q.jsx)(`li`,{children:`Create and verify a Preview safety backup.`}),(0,Q.jsxs)(`li`,{children:[`Switch to Preview image `,n??`latest`,`.`]}),(0,Q.jsx)(`li`,{children:`Run the normal upgrade path and wait for health.`})]})]})}),(0,Q.jsxs)(U.Footer,{children:[(0,Q.jsx)(s,{variant:`outlined`,disabled:t,onClick:i,children:`Cancel`}),(0,Q.jsx)(s,{variant:`primary`,disabled:t,leftIcon:t?(0,Q.jsx)(D,{className:`animate-spin`}):(0,Q.jsx)(j,{}),onClick:r,children:t?`Switching...`:`Take Backup and Switch`})]})]})})}function Wi({open:e,backups:t,mode:n,selectedSnapshotName:r,isPending:i,restoreModeDisabled:a,standardUpgradeAvailable:o,onModeChange:c,onSnapshotChange:l,onConfirm:u,onCancel:d}){return(0,Q.jsx)(U.Root,{open:e,onOpenChange:e=>!e&&d(),children:(0,Q.jsxs)(U.Content,{size:`md`,hideCloseButton:i,children:[(0,Q.jsxs)(U.Header,{icon:ce,children:[(0,Q.jsx)(U.Title,{children:`Switch back to Stable`}),(0,Q.jsx)(U.Description,{children:`Choose how this assistant should leave the Preview channel.`})]}),(0,Q.jsx)(U.Body,{children:(0,Q.jsxs)(`div`,{className:`space-y-4`,children:[(0,Q.jsxs)(fe,{value:n,onValueChange:c,disabled:i,"aria-label":`Stable channel return method`,children:[(0,Q.jsx)(de,{value:`restore_backup`,disabled:t.length===0,label:`Restore safety backup`,helperText:`Return to the Stable-channel data captured before Preview opt-in.`}),(0,Q.jsx)(de,{value:`standard_upgrade`,disabled:!o,label:`Switch to Stable without restoring backup`,helperText:o?`Keep the current data and directly switch to the Stable image.`:`Unavailable because the latest Stable release is older than this assistant's Preview release.`})]}),n===`restore_backup`&&t.length>0&&(0,Q.jsxs)(`label`,{className:`flex flex-col gap-1 text-body-medium-default text-[var(--content-secondary)]`,children:[`Safety backup`,(0,Q.jsx)(_e,{value:r,onChange:l,disabled:i,options:t.map(e=>({value:e.snapshot_name,label:`${Ii(e)} - ${Fi(e.created_at)}`}))})]}),n===`restore_backup`&&t.length===0&&!o&&(0,Q.jsx)(B,{tone:`error`,title:`Stable requires a safety backup`,children:`This Preview release is newer than the latest Stable release, so switching directly is blocked. Wait for a newer Stable release, or run Vellum Doctor if the safety backup is missing.`}),n===`standard_upgrade`&&(0,Q.jsx)(B,{tone:`error`,title:`Preview data may not survive this`,children:`Switching directly to the Stable image without restoring the safety backup may cause data loss or leave the assistant unusable if Preview data is incompatible with Stable.`})]})}),(0,Q.jsxs)(U.Footer,{children:[(0,Q.jsx)(s,{variant:`outlined`,disabled:i,onClick:d,children:`Cancel`}),(0,Q.jsx)(s,{variant:n===`standard_upgrade`?`danger`:`primary`,disabled:i||a||n===`standard_upgrade`&&!o,leftIcon:i?(0,Q.jsx)(D,{className:`animate-spin`}):(0,Q.jsx)(re,{}),onClick:u,children:i?`Switching...`:`Switch to Stable`})]})]})})}var Gi=new Set([`exceeds_machine_tier`,`exceeds_storage_tier`]);function Ki(e,t){return e&&typeof e==`object`&&!Array.isArray(e)&&`error`in e&&typeof e.error==`string`&&Gi.has(e.error)?`That size isn't available on your plan.`:Be(e,void 0,t)}function qi({assistant:e,healthz:t,healthzLoading:n,healthzPolling:r,refetch:i,refetchUntilResized:a}){let o=c(),l=vt(),d=f(zt()),p=d.data,m=!e.is_local,h=p?.plan_id===`pro`,g=f({...Ut(),enabled:h}),_=e.machine_size||`small`,v=un(g.data?.max_machine_tier??null),y=(0,Z.useMemo)(()=>pn(v,_,(0,Q.jsx)(he,{tone:`positive`,children:`Current`})),[v,_]),b=g.data?.selected_storage_gib??null,[x,S]=(0,Z.useState)(!1),C=v.length>0?v[v.length-1]:null,[w,E]=(0,Z.useState)(null),O=w??C??_,[k,A]=(0,Z.useState)(!1),[j,M]=(0,Z.useState)(null),N=Ht({onSuccess:(e,n)=>{W.success(`Resize started. Changes will apply shortly.`,{id:`assistant-resize`}),M(null),E(null),S(!1),n.body?.machine_size==null?i():a(t)},onError:e=>{M(Ki(e,`Failed to resize assistant. Please try again.`))}});if(d.isError&&p==null)return(0,Q.jsx)(X,{id:`storage-resources`,title:`Compute & Resources`,subtitle:`Monitor resource usage and manage your assistant's compute profile.`,children:(0,Q.jsx)(B,{tone:`error`,children:`Could not load your subscription. Please try again.`})});let P=h&&v.includes(O)&&O!==_?O:null,F=h&&b!=null&&!0,I=h&&v.length>0&&fn(_)<fn(v[v.length-1]),L=N.isPending||r,R=b==null?t?.disk?.totalMb??null:b*1024,z=t?.disk&&R!=null?{value:t.disk.usedMb,max:R,caption:`${yn(t.disk.usedMb)} of ${yn(R)}`}:null,ee=t?.cpu?{value:t.cpu.currentPercent,max:100,caption:`${t.cpu.currentPercent.toFixed(1)}%`}:null,te=t?.memory?{value:t.memory.currentMb,max:t.memory.maxMb,caption:`${yn(t.memory.currentMb)} of ${yn(t.memory.maxMb)}`}:null,ne=l?null:(0,Q.jsx)(s,{variant:`ghost`,size:`compact`,onClick:()=>A(!0),children:`Resize`}),ie=m?h?F?(0,Q.jsxs)(`button`,{type:`button`,disabled:L,onClick:()=>S(!0),className:`flex items-center gap-1.5 rounded-lg border border-amber-500/30 bg-amber-500/15 px-3 py-1.5 text-body-small-default font-medium text-amber-400 transition-colors hover:bg-amber-500/25 disabled:opacity-50`,children:[(0,Q.jsx)(oe,{className:`h-3.5 w-3.5`}),`Increase Storage`]}):(0,Q.jsx)(s,{variant:`ghost`,size:`compact`,disabled:L,onClick:()=>S(!0),children:`Resize`}):ne:null,ae=m?h?I?(0,Q.jsxs)(`button`,{type:`button`,disabled:L,onClick:()=>S(!0),className:`flex items-center gap-1.5 rounded-lg border border-amber-500/30 bg-amber-500/15 px-3 py-1.5 text-body-small-default font-medium text-amber-400 transition-colors hover:bg-amber-500/25 disabled:opacity-50`,children:[(0,Q.jsx)(oe,{className:`h-3.5 w-3.5`}),`Increase Size`]}):(0,Q.jsx)(s,{variant:`ghost`,size:`compact`,disabled:L,onClick:()=>S(!0),children:`Resize`}):ne:null;return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(X,{id:`storage-resources`,title:`Compute & Resources`,subtitle:`Monitor resource usage and manage your assistant's compute profile.`,compactAccessory:!0,accessory:(0,Q.jsx)(s,{variant:`ghost`,size:`compact`,iconOnly:n||r?(0,Q.jsx)(D,{className:`animate-spin`}):(0,Q.jsx)(re,{}),tooltip:r?`Applying resize…`:`Refresh resource metrics`,"aria-label":`Refresh resource metrics`,disabled:n||r,onClick:()=>void i()}),children:(0,Q.jsxs)(`div`,{className:`grid grid-cols-1 gap-2 sm:grid-cols-[1fr_2fr]`,children:[(0,Q.jsxs)(`div`,{className:`flex flex-col rounded-lg bg-[var(--surface-base)] p-3`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,Q.jsx)(`span`,{className:`text-[var(--content-tertiary)]`,children:(0,Q.jsx)(T,{className:`h-3.5 w-3.5`})}),(0,Q.jsx)(`span`,{className:`text-label-medium-default text-[var(--content-tertiary)]`,children:`Disk`})]}),ie]}),(0,Q.jsxs)(`div`,{className:`mt-auto flex flex-col gap-1 pt-3`,children:[(0,Q.jsx)(`span`,{className:`text-label-medium-default text-[var(--content-tertiary)]`,children:`Storage`}),z?(0,Q.jsx)(hn,{value:z.value,max:z.max,caption:z.caption}):n?(0,Q.jsx)(`div`,{className:`flex items-center gap-2 text-[var(--content-tertiary)]`,children:(0,Q.jsx)(D,{className:`h-3 w-3 animate-spin`})}):(0,Q.jsx)(`span`,{className:`text-label-medium-default text-[var(--content-tertiary)]`,children:`Unavailable`})]})]}),(0,Q.jsxs)(`div`,{className:`flex flex-col rounded-lg bg-[var(--surface-base)] p-3`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,Q.jsx)(`span`,{className:`text-[var(--content-tertiary)]`,children:(0,Q.jsx)(Cn,{className:`h-3.5 w-3.5`})}),(0,Q.jsx)(`span`,{className:`text-label-medium-default text-[var(--content-tertiary)]`,children:`Machine`}),(0,Q.jsx)(he,{tone:`neutral`,children:dn[_]})]}),ae]}),(0,Q.jsxs)(`div`,{className:`mt-auto grid grid-cols-2 gap-3 pt-3`,children:[(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Q.jsx)(`span`,{className:`text-label-medium-default text-[var(--content-tertiary)]`,children:`CPU`}),ee?(0,Q.jsx)(hn,{value:ee.value,max:ee.max,caption:ee.caption}):n?(0,Q.jsx)(`div`,{className:`flex items-center gap-2 text-[var(--content-tertiary)]`,children:(0,Q.jsx)(D,{className:`h-3 w-3 animate-spin`})}):(0,Q.jsx)(`span`,{className:`text-label-medium-default text-[var(--content-tertiary)]`,children:`—`})]}),(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Q.jsx)(`span`,{className:`text-label-medium-default text-[var(--content-tertiary)]`,children:`Memory`}),te?(0,Q.jsx)(hn,{value:te.value,max:te.max,caption:te.caption}):n?(0,Q.jsx)(`div`,{className:`flex items-center gap-2 text-[var(--content-tertiary)]`,children:(0,Q.jsx)(D,{className:`h-3 w-3 animate-spin`})}):(0,Q.jsx)(`span`,{className:`text-label-medium-default text-[var(--content-tertiary)]`,children:`—`})]})]})]})]})}),(0,Q.jsx)(U.Root,{open:k,onOpenChange:e=>{e||A(!1)},children:(0,Q.jsxs)(U.Content,{size:`sm`,children:[(0,Q.jsxs)(U.Header,{children:[(0,Q.jsx)(U.Title,{children:`Upgrade your plan`}),(0,Q.jsx)(U.Description,{children:`Move to a higher plan for more power, more storage, and a larger credit bundle.`})]}),(0,Q.jsxs)(U.Footer,{children:[(0,Q.jsx)(s,{variant:`ghost`,onClick:()=>A(!1),children:`Cancel`}),(0,Q.jsx)(s,{onClick:()=>{A(!1),o(J.plans)},children:`Upgrade`})]})]})}),(0,Q.jsx)(U.Root,{open:x,onOpenChange:e=>{e||(S(!1),E(null),M(null))},children:(0,Q.jsxs)(U.Content,{size:`sm`,children:[(0,Q.jsxs)(U.Header,{icon:Cn,children:[(0,Q.jsx)(U.Title,{children:`Resize Assistant`}),(0,Q.jsx)(U.Description,{children:`Resize your assistant's compute and storage. Your assistant will briefly restart.`})]}),(0,Q.jsx)(U.Body,{children:(0,Q.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[v.length===0?(0,Q.jsx)(B,{tone:`warning`,children:`No machine tier configured. Visit the community for help.`}):(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,Q.jsx)(`span`,{className:`text-label-medium-default text-[var(--content-secondary)]`,children:`Machine Size`}),(0,Q.jsx)(_e,{options:y,value:O,onChange:E,"aria-label":`Compute machine size`,"data-testid":`resize-machine-size`})]}),F?(0,Q.jsx)(B,{tone:`info`,children:`Storage will be expanded to ${b} GB.`}):(0,Q.jsx)(B,{tone:`neutral`,children:`Storage will not change.`}),j&&(0,Q.jsx)(B,{tone:`error`,children:j})]})}),(0,Q.jsxs)(U.Footer,{className:l?`justify-end`:`items-center justify-between`,children:[l?null:(0,Q.jsxs)(`span`,{className:`text-label-small-default text-[var(--content-tertiary)]`,children:[`Need more?`,` `,(0,Q.jsx)(u,{to:J.plans,className:`text-[var(--content-secondary)] underline decoration-[var(--border-element)] underline-offset-2 transition-colors hover:text-[var(--content-default)]`,onClick:()=>S(!1),children:`Upgrade plan`})]}),(0,Q.jsxs)(`div`,{className:`flex gap-2`,children:[(0,Q.jsx)(s,{variant:`ghost`,onClick:()=>{S(!1),E(null),M(null)},children:`Cancel`}),(0,Q.jsx)(s,{disabled:P==null&&!F||L,leftIcon:L?(0,Q.jsx)(D,{className:`animate-spin`}):void 0,onClick:()=>{M(null);let t={};P!=null&&(t.machine_size=P),F&&b!=null&&(t.storage_gib=b),N.mutate({path:{id:e.id},body:t})},children:j?`Retry`:`Apply`})]})]})]})})]})}function Ji({assistantId:e}){let t=c(),[n,r]=(0,Z.useState)(!1),[i,a]=(0,Z.useState)(!1);return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(s,{variant:`dangerOutline`,onClick:()=>r(!0),className:`shrink-0`,children:`Retire Assistant`}),(0,Q.jsx)(Xt,{open:n,isPending:i,onConfirm:async()=>{a(!0);let n=await Yt(e);if(n.ok){r(!1),t(n.nextRoute,{replace:!0});return}W.error(n.error),a(!1),r(!1)},onCancel:()=>r(!1)})]})}function Yi(){let e=te(),t=ne.useValue();return A(e)?(0,Q.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,Q.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-0.5`,children:[(0,Q.jsx)(`div`,{className:`text-body-medium-lighter text-[var(--content-default)]`,children:`Show tips`}),(0,Q.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Occasional tips in the sidebar that highlight features you haven't tried yet.`})]}),(0,Q.jsx)(ge,{checked:t,onChange:t=>{ne.save(t),t||N(`settings`,`dont_show_again`,e)},"aria-label":`Show tips`})]}):null}var Xi=`UTC.Africa/Cairo.Africa/Johannesburg.Africa/Lagos.Africa/Nairobi.America/Anchorage.America/Argentina/Buenos_Aires.America/Bogota.America/Chicago.America/Denver.America/Halifax.America/Lima.America/Los_Angeles.America/Mexico_City.America/New_York.America/Phoenix.America/Santiago.America/Sao_Paulo.America/Toronto.America/Vancouver.Asia/Bangkok.Asia/Dubai.Asia/Hong_Kong.Asia/Jakarta.Asia/Jerusalem.Asia/Karachi.Asia/Kolkata.Asia/Kuala_Lumpur.Asia/Manila.Asia/Seoul.Asia/Shanghai.Asia/Singapore.Asia/Taipei.Asia/Tokyo.Australia/Melbourne.Australia/Perth.Australia/Sydney.Europe/Amsterdam.Europe/Athens.Europe/Berlin.Europe/Brussels.Europe/Dublin.Europe/Istanbul.Europe/Lisbon.Europe/London.Europe/Madrid.Europe/Moscow.Europe/Paris.Europe/Rome.Europe/Stockholm.Europe/Vienna.Europe/Warsaw.Europe/Zurich.Pacific/Auckland.Pacific/Honolulu`.split(`.`);function Zi(){let e=Intl;if(typeof e.supportedValuesOf==`function`)try{let t=e.supportedValuesOf(`timeZone`);if(t.length>0)return[...t].sort()}catch{}return[...Xi].sort()}function Qi(e){let t=e.split(`/`),n=(t[t.length-1]??e).replace(/_/g,` `),r=t.length>1?(t[0]??``).replace(/_/g,` `):``,i=0,a=``;try{let t=new Intl.DateTimeFormat(`en-US`,{timeZone:e,timeZoneName:`shortOffset`}).formatToParts(new Date).find(e=>e.type===`timeZoneName`)?.value??`GMT`;a=t.startsWith(`GMT`)||t.startsWith(`UTC`)?t:`GMT ${t}`;let n=t.match(/([+-])(\d{1,2})(?::(\d{2}))?/);if(n){let e=n[1]===`-`?-1:1,t=parseInt(n[2]??`0`,10),r=parseInt(n[3]??`0`,10);i=e*(t*60+r)}}catch{return null}return{identifier:e,city:n,region:r,offsetLabel:a,offsetMinutes:i}}function $i(e){try{return new Intl.DateTimeFormat(`en-US`,{timeZone:e,hour:`numeric`,minute:`2-digit`,hour12:!0}).format(new Date)}catch{return``}}function ea(e){if(!e)return`Not set`;try{let t=new Intl.DateTimeFormat(`en-US`,{timeZone:e,timeZoneName:`long`}).formatToParts(new Date).find(e=>e.type===`timeZoneName`)?.value;if(t)return t}catch{}return e.replace(/_/g,` `)}var ta=200;function na({value:e,onChange:t}){let[n,r]=(0,Z.useState)(``),i=(0,Z.useMemo)(()=>Zi().map(e=>Qi(e)).filter(e=>e!==null),[]),a=n.trim().toLowerCase(),o=(0,Z.useMemo)(()=>(a?i.filter(e=>e.city.toLowerCase().includes(a)||e.region.toLowerCase().includes(a)||e.offsetLabel.toLowerCase().includes(a)||e.identifier.toLowerCase().includes(a)):i).slice(0,ta),[i,a]),s=(0,Z.useMemo)(()=>o.map(e=>e.identifier),[o]),c=(0,Z.useMemo)(()=>{if(!e)return``;let t=e.split(`/`);return(t[t.length-1]??e).replace(/_/g,` `)},[e]);return(0,Q.jsxs)(`div`,{className:`space-y-3`,children:[(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1.5 md:flex-row md:items-center md:justify-between md:gap-4`,children:[(0,Q.jsx)(`span`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Closest city`}),(0,Q.jsxs)(pe.Root,{className:`w-full md:max-w-[280px]`,options:s,value:e,onSelect:t,onOpenChange:e=>{e||r(``)},autoActivateFirst:a.length>0,children:[(0,Q.jsx)(pe.Input,{type:`text`,"aria-label":`Closest city`,value:n,placeholder:c||`Search city or country...`,onChange:e=>r(e.target.value),fullWidth:!0}),(0,Q.jsx)(pe.List,{"aria-label":`Cities`,className:`absolute left-0 right-0 top-full z-20 mt-1 max-h-[240px] rounded-md border border-[var(--border-base)] bg-[var(--surface-lift)] shadow-lg`,emptyState:(0,Q.jsx)(`p`,{className:`px-3 py-2 text-body-medium-lighter text-[var(--content-tertiary)]`,children:`No matching cities`}),children:o.map(e=>(0,Q.jsxs)(pe.Option,{value:e.identifier,className:h(`flex w-full items-center justify-between gap-3 px-3 py-2`,`text-body-medium-lighter text-[var(--content-default)] transition-colors`,`hover:bg-[var(--surface-active)]`,`data-[active]:bg-[var(--surface-active)] aria-selected:bg-[var(--surface-active)]`),children:[(0,Q.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Q.jsx)(`div`,{className:`truncate text-body-medium-default`,children:e.city}),e.region&&(0,Q.jsx)(`div`,{className:`truncate text-body-small-default text-[var(--content-tertiary)]`,children:e.region})]}),(0,Q.jsxs)(`div`,{className:`flex shrink-0 flex-col items-end gap-0.5 text-body-small-default text-[var(--content-tertiary)]`,children:[(0,Q.jsx)(`span`,{children:$i(e.identifier)}),(0,Q.jsx)(`span`,{children:e.offsetLabel})]})]},e.identifier))})]})]}),(0,Q.jsx)(xn,{}),(0,Q.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,Q.jsx)(`span`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Time zone`}),(0,Q.jsx)(`span`,{className:`text-body-medium-lighter text-[var(--content-default)]`,children:ea(e)})]})]})}function ra(){let e=Ie.use.activeAssistantId(),[t,n]=(0,Z.useState)(()=>i(`timezone`,``)),o=(0,Z.useRef)(e);(0,Z.useEffect)(()=>{o.current=e},[e]);let s=(0,Z.useRef)(!1),c=(0,Z.useRef)(null),l=(0,Z.useRef)(()=>{}),u=e=>{if(s.current){c.current=e;return}let t=o.current;if(!t){c.current=null;return}s.current=!0,c.current=null,q.patch({url:`/v1/assistants/{assistant_id}/config`,path:{assistant_id:t},body:{ui:{userTimezone:e}},throwOnError:!0}).catch(e=>{a(e,{context:`settings-timezone-override`})}).finally(()=>{s.current=!1;let e=c.current;c.current=null,e!==null&&l.current(e)})};return(0,Z.useEffect)(()=>{l.current=u}),(0,Q.jsxs)(`section`,{className:`flex flex-col gap-2`,children:[(0,Q.jsx)(`h3`,{className:`text-title-small text-[var(--content-emphasised)]`,children:`Timezone`}),(0,Q.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:`Used when displaying times and scheduling reminders.`}),(0,Q.jsx)(`div`,{className:`mt-1`,children:(0,Q.jsx)(na,{value:t,onChange:e=>{n(e),r(`timezone`,e),u(e)}})})]})}var ia=[[`Mon`,0],[`Tue`,1],[`Wed`,2],[`Thu`,3],[`Fri`,4],[`Sat`,5],[`Sun`,6]];function aa(e){let[t,n]=e.split(`:`).map(Number),r=new Date,i=new Date(Date.UTC(r.getUTCFullYear(),r.getUTCMonth(),r.getUTCDate(),t,n));return`${i.getHours().toString().padStart(2,`0`)}:${i.getMinutes().toString().padStart(2,`0`)}`}function oa(e){let[t,n]=e.split(`:`).map(Number),r=new Date,i=new Date(r.getFullYear(),r.getMonth(),r.getDate(),t,n);return`${i.getUTCHours().toString().padStart(2,`0`)}:${i.getUTCMinutes().toString().padStart(2,`0`)}`}function sa(){return Intl.DateTimeFormat(void 0,{timeZoneName:`short`}).formatToParts(new Date).find(e=>e.type===`timeZoneName`)?.value??``}function ca(e){let t=e?.schedule?.window.start??`06:00`,n=e?.schedule?.window.end??`08:00`;return{enabled:e?.enabled??!0,timezone:`UTC`,frequency:e?.schedule?.frequency??`weekly`,daysOfWeek:e?.schedule?.days_of_week??[0],daysOfMonth:e?.schedule?.days_of_month??[],windowStart:aa(t),windowEnd:aa(n)}}function la({assistantId:e}){let t=d(),{data:n,isLoading:r,isError:i}=f(At({path:{id:e}})),a=(0,Z.useMemo)(()=>ca(n),[n]),[o,c]=(0,Z.useState)(null),l=o??a,u=o!==null,m=(0,Z.useMemo)(()=>sa(),[]),[h,g]=(0,Z.useState)(null),_=h??l.daysOfMonth.join(`, `),y=p({mutationFn:async t=>{let{data:n}=await it({path:{id:e},body:t,throwOnError:!0});return n}}),b=e=>{c(t=>({...t??a,...e}))},x=e=>{b({daysOfWeek:l.daysOfWeek.includes(e)?l.daysOfWeek.filter(t=>t!==e):[...l.daysOfWeek,e].sort((e,t)=>e-t)})},S=e=>e.split(`,`).map(e=>parseInt(e.trim(),10)).filter(e=>!isNaN(e)&&e>=1&&e<=31);return r?(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,Q.jsx)(D,{className:`h-4 w-4 animate-spin`}),`Loading update window settings...`]}):i?(0,Q.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--system-negative-strong)]`,children:`Failed to load update window policy. Refresh the page to try again.`}):(0,Q.jsxs)(`div`,{className:`space-y-6`,children:[(0,Q.jsx)(ge,{checked:l.enabled,onChange:e=>b({enabled:e}),label:`Automatic updates`,helperText:`Update automatically during a configured time window`}),l.enabled&&(0,Q.jsxs)(`div`,{className:`space-y-5`,children:[(0,Q.jsxs)(`div`,{className:`space-y-2`,children:[(0,Q.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-secondary)]`,children:`Frequency`}),(0,Q.jsx)(`div`,{className:`max-w-[400px]`,children:(0,Q.jsx)(v,{ariaLabel:`Frequency`,value:l.frequency,onChange:e=>{e!==`monthly`&&g(null),b({frequency:e})},items:[{value:`daily`,label:`Daily`},{value:`weekly`,label:`Weekly`},{value:`monthly`,label:`Monthly`}]})})]}),l.frequency===`weekly`&&(0,Q.jsxs)(`div`,{className:`space-y-2`,children:[(0,Q.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-secondary)]`,children:`Day(s) of week`}),(0,Q.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:ia.map(([e,t])=>(0,Q.jsx)(s,{variant:`outlined`,size:`compact`,active:l.daysOfWeek.includes(t),onClick:()=>x(t),children:e},t))})]}),l.frequency===`monthly`&&(0,Q.jsx)(H,{label:`Day(s) of month`,type:`text`,value:_,onChange:e=>g(e.target.value),onBlur:e=>{let t=S(e.target.value);b({daysOfMonth:t}),g(t.join(`, `))},placeholder:`e.g. 1, 15`,helperText:`Comma-separated day numbers (1–31)`,className:`w-48`}),(0,Q.jsxs)(`div`,{className:`space-y-2`,children:[(0,Q.jsxs)(`label`,{className:`block text-body-small-default text-[var(--content-secondary)]`,children:[`Update window`,m?` (${m})`:``]}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,Q.jsx)(H,{type:`time`,value:l.windowStart,onChange:e=>b({windowStart:e.target.value})}),(0,Q.jsx)(`span`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`to`}),(0,Q.jsx)(H,{type:`time`,value:l.windowEnd,onChange:e=>b({windowEnd:e.target.value})})]})]})]}),(0,Q.jsx)(s,{variant:`primary`,leftIcon:y.isPending?(0,Q.jsx)(D,{className:`animate-spin`}):void 0,onClick:async()=>{let n=l.frequency===`monthly`&&h!==null?S(h):l.daysOfMonth;try{await y.mutateAsync({enabled:l.enabled,timezone:`UTC`,schedule:{frequency:l.frequency,days_of_week:l.frequency===`weekly`?l.daysOfWeek:[],days_of_month:l.frequency===`monthly`?n:[],window:{start:oa(l.windowStart),end:oa(l.windowEnd)}}}),W.success(`Auto-update policy saved.`),c(null),g(null),t.invalidateQueries({queryKey:Nt({path:{id:e}})})}catch{W.error(`Failed to save policy. Please try again.`)}},disabled:y.isPending||!u,children:`Save policy`})]})}function ua({assistantId:e,open:t,onClose:n}){return(0,Q.jsx)(U.Root,{open:t,onOpenChange:e=>{e||n()},children:(0,Q.jsxs)(U.Content,{size:`md`,children:[(0,Q.jsxs)(U.Header,{children:[(0,Q.jsx)(U.Title,{children:`Update Window`}),(0,Q.jsx)(U.Description,{children:`Configure when automatic updates are applied.`})]}),(0,Q.jsx)(U.Body,{children:(0,Q.jsx)(la,{assistantId:e})})]})})}function da(e){if(typeof e==`object`&&e&&`code`in e){let t=e.code;if(typeof t==`string`)return t}}function fa({open:e,onOpenChange:t}){let n=d(),[r,i]=(0,Z.useState)(null),[a,o]=(0,Z.useState)(``),[c,l]=(0,Z.useState)(null),u=(0,Z.useRef)(!1),f=(0,Z.useRef)(e),p=()=>n.invalidateQueries({queryKey:Ft()}),m=e=>{ot({path:{id:e}}).catch(()=>void 0).finally(()=>void p())},h=Pt({onSuccess:e=>{if(!f.current){m(e.factor_id);return}i(e)},onError:e=>{let n=da(e);n===`no_workos_account`?W.error(`Two-factor authentication is only available for Vellum platform accounts.`):n===`throttled`||n===`workos_rate_limited`?W.error(`Too many attempts. Try again in a minute.`):n===`factor_limit_reached`?W.error(`An authenticator app is already set up. Remove it before adding another.`):W.error(`Failed to start setup. Please try again.`),t(!1)}}),g=Ot({onSuccess:e=>{e.valid?(u.current=!0,W.success(`Two-factor authentication is on.`),p(),t(!1)):l(`That code didn't match. Check your authenticator app and try again.`)},onError:e=>{let n=da(e);if(n===`challenge_already_verified`){u.current=!0,W.success(`Two-factor authentication is on.`),p(),t(!1);return}if(n===`challenge_expired`||n===`challenge_not_found`){r&&m(r.factor_id),i(null),o(``),l(`This setup session expired. Scan the new QR code and try again.`),h.mutate({});return}if(n===`throttled`||n===`workos_rate_limited`){l(`Too many attempts. Wait a minute and try again.`);return}l(`Couldn't verify the code. Wait a moment and try again.`)}});(0,Z.useEffect)(()=>{f.current=e,e&&(u.current=!1,i(null),o(``),l(null),h.mutate({}))},[e]);let v=e=>{!e&&g.isPending||(!e&&r&&!u.current&&m(r.factor_id),t(e))},y=()=>{r&&tn(r.secret,{successMessage:`Setup key copied.`,errorMessage:`Couldn't copy the setup key.`})},b=()=>{!r||a.length!==6||g.isPending||(l(null),g.mutate({body:{challenge_id:r.challenge_id,code:a}}))};return(0,Q.jsx)(U.Root,{open:e,onOpenChange:v,children:(0,Q.jsxs)(U.Content,{size:`sm`,children:[(0,Q.jsxs)(U.Header,{children:[(0,Q.jsx)(U.Title,{children:`Set up authenticator app`}),(0,Q.jsx)(U.Description,{children:`Scan the QR code with an authenticator app such as Google Authenticator or 1Password, then enter the 6-digit code it shows.`})]}),(0,Q.jsx)(U.Body,{children:r===null?(0,Q.jsx)(`div`,{className:`flex items-center justify-center py-10`,children:(0,Q.jsx)(D,{className:`h-5 w-5 animate-spin text-[var(--content-tertiary)]`})}):(0,Q.jsxs)(`form`,{className:`flex flex-col items-center gap-4`,onSubmit:e=>{e.preventDefault(),b()},children:[(0,Q.jsx)(`img`,{src:r.qr_code,alt:`QR code for your authenticator app`,className:`h-44 w-44 rounded-lg bg-white p-2`}),(0,Q.jsxs)(`div`,{className:`flex w-full flex-col gap-1`,children:[(0,Q.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Can't scan it? Enter this setup key manually:`}),(0,Q.jsxs)(`button`,{type:`button`,onClick:y,className:`flex cursor-pointer items-center gap-2 self-start font-mono text-body-small-default text-[var(--content-default)] hover:text-[var(--content-emphasised)]`,children:[(0,Q.jsx)(`span`,{className:`break-all text-left`,children:r.secret}),(0,Q.jsx)(_,{className:`h-3.5 w-3.5 shrink-0`})]})]}),(0,Q.jsxs)(`div`,{className:`flex w-full flex-col gap-1`,children:[(0,Q.jsx)(`label`,{htmlFor:`totp-code`,className:`text-body-small-default text-[var(--content-tertiary)]`,children:`6-digit code`}),(0,Q.jsx)(H,{id:`totp-code`,inputMode:`numeric`,autoComplete:`one-time-code`,maxLength:6,placeholder:`123456`,value:a,onChange:e=>o(e.target.value.replace(/\D/g,``).slice(0,6))}),c&&(0,Q.jsx)(`p`,{role:`alert`,className:`text-body-small-default text-[var(--system-negative-strong)]`,children:c})]})]})}),(0,Q.jsxs)(U.Footer,{children:[(0,Q.jsx)(s,{variant:`outlined`,onClick:()=>v(!1),disabled:g.isPending,children:`Cancel`}),(0,Q.jsx)(s,{onClick:b,disabled:r===null||a.length!==6||g.isPending,children:g.isPending?`Verifying…`:`Verify`})]})]})})}function pa(e){let t=new Date(e);return Number.isNaN(t.getTime())?``:t.toLocaleDateString(void 0,{month:`short`,day:`numeric`,year:`numeric`})}function ma(){let e=d(),[t,n]=(0,Z.useState)(!1),[r,i]=(0,Z.useState)(null),a=f({...kt()}),o=a.data??[],c=()=>e.invalidateQueries({queryKey:Ft()}),l=Dt({onSuccess:()=>{W.success(`Authenticator app removed.`),c()},onError:e=>{if(da(e)===`factor_not_found`){c();return}W.error(`Failed to remove the authenticator app. Please try again.`)}});return(0,Q.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[a.isPending?(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 text-[var(--content-tertiary)]`,children:[(0,Q.jsx)(D,{className:`h-4 w-4 animate-spin`}),(0,Q.jsx)(`span`,{className:`text-body-medium-default`,children:`Loading authenticator apps…`})]}):a.isError?(0,Q.jsxs)(B,{tone:`error`,children:[`Couldn't load your authenticator apps.`,` `,(0,Q.jsx)(`button`,{type:`button`,className:`cursor-pointer underline`,onClick:()=>void a.refetch(),children:`Try again`})]}):o.length===0?(0,Q.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:`No authenticator app is set up. Add one to require a one-time code at sign-in.`}):(0,Q.jsx)(`ul`,{className:`flex flex-col divide-y divide-[var(--border-base)]`,children:o.map(e=>(0,Q.jsxs)(`li`,{className:`flex items-center justify-between gap-3 py-3`,children:[(0,Q.jsxs)(`div`,{className:`flex min-w-0 items-center gap-3`,children:[(0,Q.jsx)(ae,{className:`h-5 w-5 shrink-0 text-[var(--content-tertiary)]`}),(0,Q.jsxs)(`div`,{className:`min-w-0`,children:[(0,Q.jsx)(`div`,{className:`text-body-medium-default text-[var(--content-default)]`,children:`Authenticator app`}),(0,Q.jsxs)(`div`,{className:`truncate text-body-small-default text-[var(--content-tertiary)]`,children:[e.user,e.created_at?` · Added ${pa(e.created_at)}`:``]})]})]}),(0,Q.jsx)(s,{variant:`dangerOutline`,onClick:()=>i(e),disabled:l.isPending,children:`Remove`})]},e.id))}),!a.isPending&&!a.isError&&o.length===0&&(0,Q.jsx)(s,{onClick:()=>n(!0),className:`self-start`,children:`Add authenticator app`}),(0,Q.jsx)(fa,{open:t,onOpenChange:n}),(0,Q.jsx)(G,{open:r!==null,title:`Remove authenticator app`,message:`Signing in will no longer ask for a code from this app. You can set up a new authenticator app at any time.`,confirmLabel:`Remove`,destructive:!0,onConfirm:()=>{r&&l.mutate({path:{id:r.id}}),i(null)},onCancel:()=>i(null)})]})}var $=class extends Error{code;constructor(e,t){super(t),this.name=`TeleportError`,this.code=e}},ha=`local`,ga=`docker`,_a=`vellum`;function va(e){switch((e??``).toLowerCase()){case ha:return`local`;case ga:return`docker`;case _a:return`managed`;default:return`other`}}function ya(e){let t=va(e);return t===`managed`?`local`:t===`local`?`platform`:null}function ba(e){switch(e){case`docker`:return`Move to Docker`;case`platform`:return`Move to Cloud (Platform)`;case`local`:return`Move to Local`}}function xa(e){switch(e){case`docker`:return`Run your assistant in a Docker container on this Mac.`;case`platform`:return`Run your assistant in the cloud, managed by the Vellum platform.`;case`local`:return`Run your assistant locally on this Mac.`}}function Sa(e){if(!e||typeof e!=`object`)return null;let t=e;if(t.reason!==`version_mismatch`)return null;let n=t.bundle_compat,r=t.target_runtime_version;if(!n||typeof n!=`object`||typeof r!=`string`)return null;let i=n,a=i.min_runtime_version;if(typeof a!=`string`)return null;let o=typeof i.max_runtime_version==`string`?i.max_runtime_version:null;return`Cannot import: bundle requires runtime ${o?`${a}–${o}`:`${a}+`}, but this local runtime is ${r}. Update your local runtime before importing.`}async function Ca(e,t){let n=Number(e.headers.get(`Content-Length`)??0);if(!e.body||!t||n<=0){let n=await e.arrayBuffer();return t?.(1),n}let r=e.body.getReader(),i=[],a=0;for(;;){let{done:e,value:o}=await r.read();if(e)break;i.push(o),a+=o.length,t(a/n)}let o=new Uint8Array(a),s=0;for(let e of i)o.set(e,s),s+=e.length;return t(1),o.buffer}function wa(e){let t=Oe(e);if(!t)throw new $(`local_assistant_not_found`,`Assistant ${e.assistantId} has no resolved local gateway.`);return`${window.location.origin}${t}`}async function Ta(e,t){let n=await Pe(e.assistantId),r=await fetch(`${t}/auth/token`,{method:`POST`,headers:{Authorization:`Bearer ${n}`}});if(!r.ok)throw new $(`not_signed_in`,`Gateway token request failed (HTTP ${r.status}).`);let{token:i}=await r.json();return i}async function Ea(e,t){let n=wa(e),r=await Ta(e,n),i=await fetch(`${n}/v1/migrations/export`,{method:`POST`,headers:{Authorization:`Bearer ${r}`}});if(!i.ok)throw new $(`export_failed`,`Export failed (HTTP ${i.status}).`);return Ca(i,t)}async function Da(e,t){let n=wa(e),r=await Ta(e,n),i=await fetch(`${n}/v1/migrations/import`,{method:`POST`,headers:{Authorization:`Bearer ${r}`},body:new Blob([t],{type:`application/octet-stream`})});if(!i.ok)throw new $(`import_failed`,`Import failed (HTTP ${i.status}).`);let a=await Aa(i);if(a&&a.success===!1)throw new $(`import_failed`,a.error??`Import reported failure`)}async function Oa(e,t){let{data:n,response:r}=await q.post({url:`/v1/assistants/{assistant_id}/migrations/export-to-gcs/`,path:{assistant_id:e},body:{upload_url:t},throwOnError:!1}),i=r?.status??0;if(!(r?.ok??!1)&&i!==202)throw new $(`export_failed`,`Export failed (HTTP ${i}).`);let a=n?.job_id;if(!a)throw new $(`export_failed`,`Export accepted but no job ID was returned.`);return a}async function ka(e,t){let{data:n,response:r}=await q.get({url:`/v1/assistants/{assistant_id}/migrations/jobs/{job_id}`,path:{assistant_id:e,job_id:t},throwOnError:!1}),i=r?.status??0;if(i>=500)return`processing`;if(!(r?.ok??!1))throw new $(`export_job_failed`,`Job status check failed (HTTP ${i})`);let a=n;if(a?.status===`failed`)throw new $(`export_job_failed`,a.error??`Export job failed`);return a?.status??`processing`}async function Aa(e){try{return await e.json()}catch{return null}}var ja=new Set([500,502,503,504]),Ma=3,Na=e=>new Promise(t=>setTimeout(t,e));async function Pa(e,t=new Set){for(let n=0;n<=Ma;n++){let{response:r,data:i,error:a}=await e(),o=r?.status??0;if(n<Ma&&ja.has(o)&&!t.has(o)){await Na(2**n*1e3);continue}return{status:o,data:i,error:a}}throw new $(`unknown`,`Unexpected retry loop exit`)}async function Fa(e,t){let n={operation:`upload`};e&&(n.min_runtime_version=e,n.max_runtime_version=null),t&&(n.consumer=t);let{status:r,data:i}=await Pa(()=>q.post({url:`/v1/migrations/signed-url/`,body:n,throwOnError:!1}),new Set([404,503]));if(r===503||r===404)throw new $(`export_failed`,`Signed URL uploads are not available — the platform may not support this feature yet.`);if(r!==201)throw new $(`export_failed`,`Migration request failed (HTTP ${r}).`);let a=i;return{url:a.url,bundleKey:a.bundle_key,expiresAt:a.expires_at}}async function Ia(e,t){let{status:n,data:r,error:i}=await Pa(()=>q.post({url:`/v1/migrations/signed-url/`,body:{operation:`download`,bundle_key:e,target_runtime_version:t},throwOnError:!1}),new Set([422]));if(n===422){let e=Sa(i);if(e)throw new $(`version_mismatch`,e)}if(n!==200&&n!==201)throw new $(`import_failed`,`Migration request failed (HTTP ${n}).`);return r.url}async function La(e,t,n){for(let r=0;r<=Ma;r++){let i=await Ra(e,t,n);if(r<Ma&&ja.has(i)){await Na(2**r*1e3),n?.(0);continue}if(i<200||i>=300)throw new $(`export_failed`,`Bundle upload failed (HTTP ${i}).`);return}}function Ra(e,t,n){return new Promise((r,i)=>{let a=new XMLHttpRequest;a.open(`PUT`,e),a.setRequestHeader(`Content-Type`,`application/octet-stream`),a.timeout=36e5,n&&(a.upload.onprogress=e=>{e.lengthComputable&&n(e.loaded/e.total)}),a.onload=()=>{n?.(1),r(a.status)},a.onerror=()=>i(new $(`export_failed`,`Bundle upload failed.`)),a.ontimeout=()=>i(new $(`export_timed_out`,`Bundle upload timed out.`)),a.send(t)})}async function za(e,t){for(let n=0;n<=Ma;n++){let r=await fetch(e,{method:`GET`});if(n<Ma&&ja.has(r.status)){await Na(2**n*1e3),t?.(0);continue}if(!r.ok)throw new $(`import_failed`,`Bundle download failed (HTTP ${r.status}).`);return Ca(r,t)}throw new $(`import_failed`,`Unexpected retry loop exit`)}async function Ba(e){let{status:t,data:n,error:r}=await Pa(()=>q.post({url:`/v1/migrations/import-from-gcs/`,body:{bundle_key:e},throwOnError:!1}));return{status:t,body:n??r??null}}async function Va(e){let{status:t,data:n}=await Pa(()=>q.get({url:`/v1/migrations/jobs/{job_id}/`,path:{job_id:e},throwOnError:!1}));if(t!==200)throw new $(`import_failed`,`Job status check failed (HTTP ${t})`);let r=n??{};return{status:typeof r.status==`string`?r.status:`unknown`,jobId:typeof r.job_id==`string`?r.job_id:null,error:typeof r.error==`string`?r.error:null}}var Ha=5e3,Ua=36e5,Wa=5*6e4,Ga=30,Ka=e=>new Promise(t=>setTimeout(t,e));function qa(){let e=c(),t=je(),n=ya(t?.cloud),[r,i]=(0,Z.useState)({kind:`idle`}),[o,s]=(0,Z.useState)(!1),l=(0,Z.useRef)(null),u=(0,Z.useRef)(null),d=(0,Z.useCallback)(e=>{i({kind:`transferring`,step:e,progress:null})},[]),f=(0,Z.useCallback)(e=>{i(t=>t.kind===`transferring`?{...t,progress:e}:t)},[]),p=(0,Z.useCallback)(async()=>{if(!(!t||!n)){u.current={id:t.assistantId,kind:va(t.cloud)===`managed`?`managed`:`local`,createdFresh:!1};try{if(n===`platform`)await Ja(t,d,f,l);else if(n===`local`)await Ya(t,d,f,l);else throw new $(`unknown`,`Unsupported teleport destination.`);i({kind:`verifying`})}catch(e){i({kind:`failed`,error:`Teleport failed: ${e instanceof $||e instanceof Error?e.message:`Teleport failed.`}`}),a(e,{context:`teleport-execute`}),await Za(l.current,u.current,`teleport-execute-cleanup`),l.current=null}}},[t,n,d,f]),m=(0,Z.useCallback)(()=>s(!0),[]),h=(0,Z.useCallback)(()=>s(!1),[]),g=(0,Z.useCallback)(()=>{s(!1),p()},[p]),_=(0,Z.useCallback)(()=>{l.current=null,u.current=null,i({kind:`idle`})},[]);return{destination:n,phase:r,confirmOpen:o,requestTeleport:m,cancelConfirm:h,confirm:g,confirmAndSwitch:(0,Z.useCallback)(()=>{let t=l.current,n=u.current;t&&(async()=>{try{let e=$e.getState();t.kind===`managed`?await e.connectPlatformAssistant(t.id):(await e.connectLocalAssistant(t.id),et(t.id,{onError:e=>a(e,{context:`teleport-inject-platform-identity`})}))}catch(e){i({kind:`failed`,error:`Switch failed: ${e instanceof Error?e.message:`Failed to switch assistant.`}`}),a(e,{context:`teleport-confirm-switch`});return}n&&Yt(n.id).then(e=>{e.ok||a(Error(e.error),{context:`teleport-retire-source`})}),_(),e(J.assistant,{replace:!0})})()},[e,_]),cancelTeleport:(0,Z.useCallback)(()=>{let e=l.current,t=u.current;l.current=null,u.current=null,i({kind:`idle`}),Za(e,t,`teleport-cancel-retire-target`)},[]),reset:_}}async function Ja(e,t,n,r){t(`Exporting assistant data...`);let i=await Ea(e,n);t(`Resolving organization...`);let a=await $a();t(`Checking for existing assistant...`);let o=(await ut({query:{hosting:`platform`},throwOnError:!1})).data?.results?.[0];if(o)throw new $(`existing_platform_assistant`,`You already have a platform assistant '${o.id}'. Retire it first, then retry the teleport.`);t(`Uploading data to cloud...`);let s=await Fa(e.resources?.runtimeVersion);await La(s.url,i,n),t(`Setting up cloud assistant...`);let c=await pt(void 0,`create`);if(!c.ok)throw new $(`import_failed`,`Failed to set up the cloud assistant.`);if(c.status===200)throw new $(`existing_platform_assistant`,`You already have a platform assistant '${c.data.id}'. Retire it first, then retry the teleport.`);let l=c.data.id;await xe({assistantId:l,name:c.data.name,cloud:`vellum`,runtimeUrl:Ee(),hatchedAt:c.data.created??new Date().toISOString(),organizationId:a}),await Se(e.assistantId),r.current={id:l,kind:`managed`,createdFresh:!0},t(`Finalizing cloud assistant...`),await eo(l),t(`Importing data to cloud...`);let u=await Ba(s.bundleKey);if(u.status<200||u.status>=300){let e=u.body;throw new $(`import_failed`,e?.error??`Import failed (HTTP ${u.status}).`)}if(u.status===202){let e=u.body?.job_id;if(!e)throw new $(`import_failed`,`Import accepted but no job ID returned.`);await to(e)}else{let e=u.body;if(e&&e.success===!1)throw new $(`import_failed`,e.error??`Import reported failure.`)}}async function Ya(e,t,n,r){t(`Preparing export...`);let i=await Fa(await Qa(e.assistantId),`runtime`);t(`Exporting cloud data...`);let a=await Oa(e.assistantId,i.url);await no(e.assistantId,a),t(`Preparing local assistant...`);let{assistant:o,createdFresh:s}=await ro();r.current={id:o.assistantId,kind:`local`,createdFresh:s};let c=await Xa(o,s);if(!c)throw new $(`local_assistant_not_found`,`Could not determine the local assistant's runtime version. Restart or upgrade the local assistant, then retry the teleport.`);t(`Preparing import...`);let l=await Ia(i.bundleKey,c);t(`Downloading data...`);let u=await za(l,n);t(`Importing data...`),await ao(o,u),await Se(e.assistantId)}async function Xa(e,t){if(e.resources?.runtimeVersion)return e.resources.runtimeVersion;if(t)return(await ln())?.version??void 0}async function Za(e,t,n){if(e?.createdFresh){let t=await Yt(e.id);t.ok||a(Error(t.error),{context:n})}t&&await Se(t.id)}async function Qa(e){let t=await ft(e);return t.ok?t.data.version??void 0:void 0}async function $a(){let e=tt.getState();e.organizations.length===0&&await e.fetchOrganizations();let t=tt.getState().organizations,n=Ke();if(n&&t.some(e=>e.id===n))return n;if(t.length===0)throw new $(`no_organizations`,`No organizations found for this account.`);if(t.length>1)throw new $(`multiple_organizations`,`Multiple organizations found — please select one in account settings first.`);let r=t[0].id;return tt.getState().setCurrentOrganizationId(r),r}async function eo(e){let t=Date.now();for(;Date.now()-t<Wa;){let{data:t,response:n}=await st({path:{id:e},throwOnError:!1});if(n?.ok&&t?.state===`active`)return;await Ka(Ha)}}async function to(e){let t=Date.now();for(;Date.now()-t<Ua;){await Ka(Ha);let t=await Va(e);if(t.status===`complete`)return;if(t.status===`failed`)throw new $(`import_failed`,t.error??`Import job failed`)}throw new $(`import_failed`,`Import timed out after 60 minutes.`)}async function no(e,t){let n=Date.now();for(;Date.now()-n<Ua;)if(await Ka(Ha),await ka(e,t)===`complete`)return;throw new $(`export_timed_out`,`Export timed out.`)}async function ro(){let e=await Te(void 0,void 0);if(!e.ok)throw new $(`local_assistant_not_found`,e.error??`Could not create a local assistant.`);await ye();let t=e.assistantId?Ae().find(t=>t.assistantId===e.assistantId):io();if(!t)throw new $(`local_assistant_not_found`,`Could not find or create a local assistant.`);return{assistant:t,createdFresh:!0}}function io(){return Ae().slice().sort((e,t)=>(t.hatchedAt??``).localeCompare(e.hatchedAt??``))[0]}async function ao(e,t){let n;for(let r=0;r<Ga;r++)try{await Da(e,t);return}catch(e){n=e,await Ka(1e3)}throw n instanceof Error?n:new $(`import_failed`,`Import failed.`)}function oo(){let e=qa(),{destination:t,phase:n}=e;return t?(0,Q.jsxs)(X,{title:`Teleport`,subtitle:`Move your assistant to a different hosting environment.`,children:[n.kind===`idle`&&(0,Q.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,Q.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:xa(t)}),(0,Q.jsx)(s,{variant:`outlined`,className:`self-start`,onClick:e.requestTeleport,children:ba(t)})]}),n.kind===`transferring`&&(0,Q.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[n.progress==null&&(0,Q.jsx)(D,{className:`h-4 w-4 animate-spin text-[var(--content-tertiary)]`}),(0,Q.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:n.step})]}),n.progress!=null&&(0,Q.jsx)(ue,{value:n.progress,"aria-label":`Teleport progress`,className:`max-w-[240px]`})]}),n.kind===`verifying`&&(0,Q.jsx)(B,{tone:`success`,icon:(0,Q.jsx)(w,{className:`h-4 w-4`}),title:`Transfer complete — verify your new assistant is working.`,actions:(0,Q.jsxs)(`div`,{className:`flex gap-2`,children:[(0,Q.jsx)(s,{variant:`primary`,onClick:e.confirmAndSwitch,children:`Confirm & Switch`}),(0,Q.jsx)(s,{variant:`outlined`,onClick:e.cancelTeleport,children:`Cancel`})]})}),n.kind===`failed`&&(0,Q.jsx)(B,{tone:`error`,title:n.error,actions:(0,Q.jsx)(s,{variant:`outlined`,onClick:e.reset,children:`Try Again`})}),(0,Q.jsx)(G,{open:e.confirmOpen,title:ba(t),message:`Your data will be copied to the new environment. The current assistant will remain available until you confirm the new one works.`,confirmLabel:`Teleport`,onConfirm:e.confirm,onCancel:e.cancelConfirm})]}):null}function so(){let{t:e}=ze(`settings`),{assistant:t,healthz:n,healthzLoading:r,healthzPolling:i,refetch:a,refetchUntilResized:o}=_n(),u=Y.use.multiPlatformAssistant(),d=Y.use.teleport(),f=Y.use.accountMfa(),p=qt.use.settingsSleepPolicy(),m=Ze(),h=gt(),g=Ne()||m||Ce()||h,_=c(),v=bt(),y=bt({platformHostedOnly:!0}),b=St(),x=vt(),S=M({assistantId:t?.id??null,enabled:y===`full`&&b}),[C,w]=(0,Z.useState)(!1),[T,E]=(0,Z.useState)(!1),[D,O]=l();(0,Z.useEffect)(()=>{if(D.get(`preferences`)!==`open`)return;let e=new URLSearchParams(D);e.delete(`preferences`),O(e,{replace:!0}),E(!0)},[D,O]);let k=t?.is_local&&!Ne()?null:t,A=je(),j=Ne()&&!!t&&!!A&&De(A),N=j,P=j&&!Ce(),F=y===`full`&&!!k||P&&!!t;(0,Z.useEffect)(()=>{!t||window.location.hash!==`#storage-resources`||requestAnimationFrame(()=>{document.getElementById(`storage-resources`)?.scrollIntoView({block:`start`})})},[t]);let I=n?.version??t?.current_release_version??null,L=()=>{let e=ke();if(Ce()&&!h&&e){let t=new URLSearchParams({register:mt()}),n=Me();n&&t.set(`name`,n);let r=new URL(e).origin;window.location.assign(`${r}${J.selectAssistant}?${t.toString()}`);return}_(`${J.selectAssistant}?noAutoSkip=1`)},R=(v===`full`||N)&&!!k||v===`disabled`&&!N,z=y!==`gated`;return(0,Q.jsxs)(`div`,{className:`space-y-4`,children:[S.status&&S.mode!==`inactive`&&(0,Q.jsx)(ee,{status:S.status,mode:S.mode,isAcknowledging:S.isAcknowledging,acknowledgeError:S.acknowledgeError?.message??null,onAcknowledge:()=>void S.acknowledge(),onReviewWorkspaceData:()=>void _(`${J.workspace}?sort=size`),onUpgradeStorage:y===`full`&&!x?()=>void _(J.plans):null}),(0,Q.jsxs)(Rn,{assistant:b?k:null,showHandles:m&&v===`full`,children:[(0,Q.jsx)(ra,{}),f&&v!==`gated`&&(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`div`,{className:`border-t border-[var(--border-subtle)]`}),(0,Q.jsxs)(`section`,{className:`flex flex-col gap-2`,children:[(0,Q.jsx)(`h3`,{className:`text-title-small text-[var(--content-emphasised)]`,children:e(`generalPage.twoFactorTitle`)}),(0,Q.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:e(`generalPage.twoFactorDescription`)}),(0,Q.jsx)(`div`,{className:`mt-1`,children:v===`disabled`?(0,Q.jsx)(on,{children:e(`generalPage.twoFactorLoginNotice`)}):(0,Q.jsx)(ma,{})})]})]})]}),(0,Q.jsx)(X,{title:e(`generalPage.versionTitle`),subtitle:e(`generalPage.versionSubtitle`),accessory:y===`full`&&k?(0,Q.jsx)(s,{variant:`outlined`,onClick:()=>w(!0),children:e(`generalPage.updateWindow`)}):void 0,children:(0,Q.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[y===`full`&&k&&(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(Jn,{assistantId:k.id,currentVersion:I,releaseChannel:k.release_channel,onUpgradeComplete:()=>{a()}}),(0,Q.jsx)(zi,{assistantId:k.id,onComplete:()=>{a()}})]}),P&&t&&(0,Q.jsx)(Yn,{assistantId:t.id,currentVersion:I,onUpgradeComplete:()=>{a()}}),!F&&t&&(0,Q.jsxs)(`div`,{className:`grid grid-cols-[140px_minmax(0,1fr)] gap-y-3`,children:[(0,Q.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:e(`generalPage.current`)}),(0,Q.jsx)(vn,{version:I,loading:r&&!t.current_release_version,assistantId:t.id??null})]}),y===`disabled`&&!P&&(0,Q.jsx)(on,{children:e(`generalPage.updatesLoginNotice`)})]})}),y===`full`&&k&&(0,Q.jsx)(ua,{assistantId:k.id,open:C,onClose:()=>w(!1)}),y===`full`&&t&&(0,Q.jsx)(qi,{assistant:t,healthz:n,healthzLoading:r,healthzPolling:i,refetch:a,refetchUntilResized:o}),y===`disabled`&&(0,Q.jsx)(X,{id:`storage-resources`,title:e(`generalPage.computeResourcesTitle`),subtitle:e(`generalPage.computeResourcesSubtitle`),children:(0,Q.jsx)(on,{children:e(`generalPage.computeResourcesLoginNotice`)})}),(0,Q.jsx)(X,{title:e(`generalPage.preferencesTitle`),subtitle:e(`generalPage.preferencesSubtitle`),accessory:(0,Q.jsx)(s,{variant:`outlined`,onClick:()=>E(!0),children:e(`generalPage.customize`)}),children:(0,Q.jsxs)(`div`,{className:`flex flex-col gap-5`,children:[(0,Q.jsx)(Tn,{}),(0,Q.jsx)(Yi,{})]})}),(0,Q.jsx)(Ni,{open:T,onClose:()=>E(!1)}),d&&Fe()&&(0,Q.jsx)(oo,{}),(0,Q.jsx)(Qn,{}),(0,Q.jsx)(Ti,{}),y===`full`&&k&&p&&(0,Q.jsx)(X,{title:e(`generalPage.sleepPolicyTitle`),subtitle:e(`generalPage.sleepPolicySubtitle`),children:(0,Q.jsx)(Wn,{assistantId:k.id})}),y===`disabled`&&p&&(0,Q.jsx)(X,{title:e(`generalPage.sleepPolicyTitle`),subtitle:e(`generalPage.sleepPolicySubtitle`),children:(0,Q.jsx)(on,{children:e(`generalPage.sleepPolicyLoginNotice`)})}),u&&!g&&(0,Q.jsx)(Vn,{}),g&&(0,Q.jsx)(X,{title:e(`generalPage.switchAssistantTitle`),subtitle:e(`generalPage.switchAssistantSubtitle`),accessory:(0,Q.jsx)(s,{variant:`outlined`,onClick:L,children:e(`generalPage.chooseAssistant`)})}),(R||z)&&(0,Q.jsx)(X,{variant:`danger`,title:e(`generalPage.dangerZoneTitle`),children:(0,Q.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[R&&(0,Q.jsxs)(`section`,{className:`flex flex-col gap-2`,children:[(0,Q.jsx)(`h3`,{className:`text-title-small text-[var(--content-emphasised)]`,children:e(`generalPage.retireAssistantTitle`)}),(0,Q.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:e(`generalPage.retireAssistantDescription`)}),(0,Q.jsx)(`div`,{className:`mt-1`,children:(v===`full`||N)&&k?(0,Q.jsx)(Ji,{assistantId:k.id}):(0,Q.jsx)(on,{children:e(`generalPage.retireAssistantLoginNotice`)})})]}),R&&z&&(0,Q.jsx)(`div`,{className:`border-t border-[var(--border-subtle)]`}),(0,Q.jsx)(Xn,{})]})})]})}export{so as GeneralPage};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/esm-
|
|
2
|
-
import{t as e}from"./preload-helper-Cv2QeVDK.js";import{c as t,l as n}from"./platform-detection-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/esm-DcJxSeV0.js","assets/preload-helper-Cv2QeVDK.js","assets/dist-D7UWVopK.js","assets/definitions-BRiVhEtI.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{t as e}from"./preload-helper-Cv2QeVDK.js";import{c as t,l as n}from"./platform-detection-C-a_Mru0.js";var r=async(e,t)=>{if(e)try{await t()}catch{}},i=t=>r(t,async()=>{let{Haptics:t,ImpactStyle:n}=await e(async()=>{let{Haptics:e,ImpactStyle:t}=await import(`./esm-DcJxSeV0.js`);return{Haptics:e,ImpactStyle:t}},__vite__mapDeps([0,1,2,3]));await t.impact({style:n.Light})}),a={light:()=>i(t()),medium:()=>r(t(),async()=>{let{Haptics:t,ImpactStyle:n}=await e(async()=>{let{Haptics:e,ImpactStyle:t}=await import(`./esm-DcJxSeV0.js`);return{Haptics:e,ImpactStyle:t}},__vite__mapDeps([0,1,2,3]));await t.impact({style:n.Medium})}),success:()=>r(t(),async()=>{let{Haptics:t,NotificationType:n}=await e(async()=>{let{Haptics:e,NotificationType:t}=await import(`./esm-DcJxSeV0.js`);return{Haptics:e,NotificationType:t}},__vite__mapDeps([0,1,2,3]));await t.notification({type:n.Success})}),error:()=>r(t(),async()=>{let{Haptics:t,NotificationType:n}=await e(async()=>{let{Haptics:e,NotificationType:t}=await import(`./esm-DcJxSeV0.js`);return{Haptics:e,NotificationType:t}},__vite__mapDeps([0,1,2,3]));await t.notification({type:n.Error})}),refreshThreshold:()=>i(n())};export{a as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{o as t,t as n}from"./capture-error-VBsIaC5d.js";import{t as r}from"./react-BFJW0bSv.js";import{t as i}from"./button-VkxVX0DM.js";import{d as a,h as o}from"./chunk-5KNZJZUH-BUqIilZr.js";import{n as s}from"./QueryClientProvider-EuRl-wrW.js";import{t as c}from"./jsx-runtime-BJ8jcmzB.js";import{t as l}from"./progress-bar-C4e3e4vV.js";import{C as ee,D as te,N as ne,Q as u,V as re,ct as ie,v as d,w as ae}from"./local-mode-DzIUFjhf.js";import{t as f}from"./is-electron-C9-jl_HE.js";import{r as oe}from"./resolved-assistants-store-D57qRwKv.js";import"./i18n-7Z5ghN39.js";import{t as p}from"./useTranslation-CJMg4EBF.js";import{i as se}from"./api-errors-DYGVb-Sh.js";import{$ as ce,Z as m,dt as le,ft as ue,mt as de,n as h,pt as g,rt as fe,st as _}from"./auth-store-DHZaL7sV.js";import{a as pe,r as v,s as me}from"./api-ByKY0Cbt.js";import{d as y}from"./routes-Bj1LYNBZ.js";import{h as he,o as ge}from"./prefs-D-MNCWeN.js";import{a as b,c as _e,t as x}from"./navigation-resolver-Cb4Lilq5.js";import{t as S}from"./build-state-DjZj1PEB.js";import{t as C}from"./avatar-bundled-components-CAE0CJ9e.js";import{t as w}from"./avatar-svg-compositor-tf4h3-SV.js";import{t as T}from"./onboarding-layout-81jlZ1Nr.js";import{c as ve,n as ye,t as be}from"./provider-key-D0kB_zjf.js";import{a as xe,i as Se,n as E,r as D,t as O}from"./avatar-random-BL7Gu5qp.js";import{t as k}from"./plugin-attribution-rEWhA-PP.js";var A=e(r(),1),j=c(),Ce=800,M=null,N,P=null,F=null;function I(){M=null,N=void 0,P=null,F=null}var we={initializing:0,provisioning:.33,connecting:.66,resizing:.85,ready:1},L=1500,Te={initializing:`hatchingScreen.phase.initializing`,provisioning:`hatchingScreen.phase.provisioning`,connecting:`hatchingScreen.phase.connecting`,resizing:`hatchingScreen.phase.resizing`,ready:`hatchingScreen.phase.ready`};function Ee(e,t,n){if(e>=t)return t;let r=1-(1-Math.min(1,n/L))**3;return e+(t-e)*r}function De(){let e=b(S(),{kind:`hatch-gate`});return e.action===`redirect`?{kind:`redirect`,to:e.to}:e.action===`wait`?{kind:`wait`}:{kind:`proceed`}}function R(){let{t:e}=p(`onboarding`),r=a(),c=s(),[b]=o(),S=b.get(`hosting`),L=b.get(`fail`),R=b.get(k),z=f(),B=d()&&S!==null&&S!==`vellum-cloud`,V=S===`vellum-cloud`,Oe=b.get(x)===`1`,ke=h.use.sessionStatus(),Ae=B?_(ke):ke,[H]=(0,A.useState)(()=>F??=O(C)),je=(0,A.useMemo)(()=>{let e=w(C,H.bodyShape,H.eyeStyle,H.color,320);return`data:image/svg+xml;charset=utf-8,${encodeURIComponent(e)}`},[H]),[U,W]=(0,A.useState)(`initializing`),[G,K]=(0,A.useState)(null),[Me,q]=(0,A.useState)(!1),[Ne,Pe]=(0,A.useState)(!1),[Fe,Ie]=(0,A.useState)(0),[Le,J]=(0,A.useState)(0),[Re,ze]=(0,A.useState)(0),Y=(0,A.useRef)(U),X=(0,A.useRef)(0),Z=(0,A.useRef)(0),Q=(0,A.useRef)(0),$=(0,A.useCallback)(e=>{X.current=Q.current,Z.current=Date.now(),Y.current=e,W(e),ze(e=>e+1)},[]);return(0,A.useEffect)(()=>{if(L!==null){K(`Simulated hatch failure (developer menu → Replay Hatch Failure).`);return}let e=De();if(e.kind===`redirect`){r(e.to,{replace:!0});return}if(e.kind===`wait`)return;V&&d()&&(u(),ie(null)),q(!1),Pe(!1);let i=!1,a=null,o=null,s=null,l=Date.now(),f,p=!1,_=!1,x=ge(),C=e=>{try{he(``)}catch(e){n(e,{context:`onboarding_mark_completed`})}J(1),Q.current=1,X.current=1,W(`ready`),Y.current=`ready`,o=setTimeout(()=>{i||(I(),(async()=>{if(await fe.checkAssistant(),!i){if(_e(b)){r(`${y.assistant}?onboarding=1`,{replace:!0});return}if(B){let t=new URLSearchParams;S&&t.set(`hosting`,S),e&&t.set(`assistant`,e),R&&t.set(k,R);let n=t.toString();r(`${y.onboarding.research}${n?`?${n}`:``}`,{replace:!0});return}r(y.onboarding.research,{replace:!0})}})())},Ce)},w=e=>xe(e,H,c),T=async()=>{if($(`provisioning`),!B){try{let e=await v(),t=g(e);if(!i&&e.ok&&t.kind===`active`){d()&&ne(e.data.id,e.data.name,ce()??void 0),await A(e.data.id);return}t.kind===`auto_hatch`&&(_=!0)}catch{}if(i)return}if(B){try{let e=S===`docker`?`docker`:void 0;M&&N!==e&&I(),M||=(N=e,re(void 0,e));let t=await M;if(i)return;if(!t.ok){I(),K(t.error??`Failed to hatch local assistant.`);return}await ee(),t.assistantId&&m(t.assistantId),$(`connecting`);let r=!1;for(;!i&&!r;){if(await te()){u(),await ae(),r=!0;break}if(Date.now()-l>=3e5){I(),K(`Your assistant is taking longer than expected. Please try again.`);return}await new Promise(e=>{s=setTimeout(e,D)}),s=null}if(i)return;if(t.assistantId)try{await ye(t.assistantId)}catch(e){if(e instanceof be){if(!i){let t=ve(e.provider)?.displayName??e.provider;Pe(!0);let n=`Update your ${t} API key to continue.`;K(e.reason?`${e.reason} ${n}`:n)}return}n(e,{context:`onboarding_apply_provider_key`})}t.assistantId&&await h.getState().connectLocalAssistant(t.assistantId),t.assistantId&&(oe.getState().upsertFromApi({id:t.assistantId,name:t.assistantId,status:`active`,is_local:!0,created:new Date().toISOString()}),m(t.assistantId),w(t.assistantId)),C(t.assistantId)}catch{if(I(),i)return;K(`Failed to hatch local assistant. Check CLI logs for details.`)}return}try{P||=me(x?{version:x}:void 0);let e=await P;if(P=null,i)return;if(e.ok&&(f=e.data.id),p=e.ok&&e.status===201,!e.ok){if(t(`Onboarding hatch request failed`,{level:`warning`,extra:{status:e.status,error:e.error}}),ue(e.status,e.error)){K(le),q(!0);return}if(!de(e.status)){K(se(e.error,void 0,`Failed to start your assistant. Please try again.`));return}}}catch(e){if(P=null,n(e,{context:`onboarding_hatch_assistant`}),i)return}O(0)},O=e=>{i||(a=setTimeout(j,e))},A=async e=>{for($(`connecting`);!i;){try{if((await pe(e)).ok)break}catch{}if(Date.now()-l>=3e5){K(`Your assistant is taking longer than expected. Please try again.`);return}await new Promise(e=>{a=setTimeout(e,D)}),a=null}if(i)return;let n=await Se({assistantId:e,postCheckoutReturn:Oe,managedHatch:V,hatchStartMs:l,isCancelled:()=>i,onResizeWait:()=>$(`resizing`),registerTimer:e=>{a=e}});if(!i){if(n===`health_timeout`){t(`Onboarding hatch wait exceeded timeout`,{level:`warning`,extra:{maxWaitMs:E,stage:`post_resize_health`}}),K(`Your assistant is taking longer than expected. Please try again.`);return}C()}},j=async()=>{if(!i){if(Date.now()-l>=3e5){t(`Onboarding hatch wait exceeded timeout`,{level:`warning`,extra:{maxWaitMs:E}}),K(`Your assistant is taking longer than expected. Please try again.`);return}try{let e=await v(f);if(i||f&&!e.ok&&e.status===404&&(f=void 0,e=await v(),i))return;let t=g(e);if(t.kind===`active`){if(e.ok){let t=e.data.id;oe.getState().upsertFromApi(e.data),m(t),(p||_)&&w(t),d()&&ne(t,e.data.name,ce()??void 0),await A(t);return}C();return}if(t.kind===`error`){K(t.message);return}t.kind!==`auto_hatch`&&Y.current===`provisioning`&&$(`connecting`),O(D)}catch(e){if(n(e,{context:`onboarding_poll_assistant`}),i)return;O(D)}}};return T(),()=>{i=!0,a&&clearTimeout(a),o&&clearTimeout(o),s&&clearTimeout(s)}},[Fe,L,H,V,Oe,Ae,r,c,$,B]),(0,A.useEffect)(()=>{Z.current===0&&(Z.current=Date.now());let e,t=()=>{let n=Date.now()-Z.current,r=we[Y.current],i=Ee(X.current,r,n);Q.current=i,J(i),r-i>1e-6&&(e=requestAnimationFrame(t))};return e=requestAnimationFrame(t),()=>cancelAnimationFrame(e)},[Re]),G?(0,j.jsx)(T,{avatarWave:`beside`,children:(0,j.jsxs)(`div`,{role:`alert`,className:`mx-auto flex w-full max-w-xl flex-col items-center ${z?`min-h-full px-8 pt-21 pb-28 electron-prechat-type`:`min-h-screen justify-center px-6 pb-40 md:min-h-full md:pb-6`} text-center text-[var(--content-default)]`,children:[(0,j.jsx)(`h1`,{className:z?`text-title-large`:`text-3xl font-semibold tracking-tight`,children:e(Ne?`hatchingScreen.apiKeyFailed`:`hatchingScreen.genericFailure`)}),(0,j.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)] ${z?`mt-3.5`:`mt-4`}`,children:G}),Me&&(0,j.jsxs)(`div`,{className:`mt-6 flex w-full max-w-sm flex-col items-center gap-3`,children:[(0,j.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-default)]`,children:e(`hatchingScreen.localFallbackPitch`)}),(0,j.jsx)(i,{asChild:!0,variant:`primary`,size:`regular`,fullWidth:!0,className:z?void 0:`h-11 text-base`,children:(0,j.jsx)(`a`,{href:`${window.location.origin}/download`,children:e(`actions.downloadMacApp`)})})]}),(0,j.jsx)(`img`,{src:je,alt:``,width:160,height:160,className:`${z?`my-auto py-8`:`my-16`} onboarding-avatar-failed`}),(0,j.jsxs)(`div`,{className:`flex w-full flex-col ${z?`gap-2.5 max-w-[280px]`:`gap-2 max-w-sm`}`,children:[Ne?(0,j.jsx)(i,{variant:`primary`,size:`regular`,fullWidth:!0,className:z?void 0:`h-11 text-base`,onClick:()=>void r(S?`${y.onboarding.apiKey}?hosting=${S}`:y.onboarding.apiKey,{replace:!0}),children:e(`hatchingScreen.updateApiKey`)}):(0,j.jsx)(i,{variant:`primary`,size:`regular`,fullWidth:!0,className:z?void 0:`h-11 text-base`,onClick:()=>{X.current=0,Z.current=Date.now(),Y.current=`initializing`,Q.current=0,W(`initializing`),J(0),ze(e=>e+1),K(null),q(!1),Ie(e=>e+1)},children:e(`actions.tryAgain`)}),(0,j.jsx)(i,{variant:`outlined`,size:`regular`,fullWidth:!0,className:z?void 0:`h-11 text-base`,onClick:()=>void r(B?y.onboarding.hosting:y.onboarding.privacy,{replace:!0}),children:e(`actions.back`)})]})]})}):(0,j.jsx)(T,{avatarWave:`beside`,children:(0,j.jsxs)(`div`,{className:`mx-auto flex w-full max-w-xl flex-col items-center ${z?`min-h-full px-8 pt-21 pb-28 electron-prechat-type`:`min-h-screen justify-center px-6 pb-40 md:min-h-full md:pb-6`} text-center text-[var(--content-default)]`,children:[(0,j.jsx)(`h1`,{className:z?`text-title-large`:`text-3xl font-semibold tracking-tight`,children:e(U===`ready`?`hatchingScreen.ready`:`hatchingScreen.waking`)}),U!==`ready`&&(0,j.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)] ${z?`mt-3.5`:`mt-4`}`,children:e(`hatchingScreen.wakingBody`)}),(0,j.jsx)(`img`,{src:je,alt:``,width:160,height:160,className:`${z?`my-auto py-8`:`my-16`} ${U===`ready`?`onboarding-avatar-awake`:`onboarding-avatar-pulse`}`}),(0,j.jsx)(l,{value:Le,height:6,className:`w-full ${z?`max-w-[200px]`:`max-w-sm`}`,"aria-label":e(`hatchingScreen.progressAriaLabel`)}),(0,j.jsx)(`p`,{className:`text-[var(--content-tertiary)] ${z?`mt-4 text-label-small-default`:`mt-3 text-body-small-default`}`,children:e(Te[U])})]})})}export{R as HatchingScreen};
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{o as t,t as n}from"./capture-error-VBsIaC5d.js";import{t as r}from"./react-BFJW0bSv.js";import{t as i}from"./button-C8CGr0T0.js";import{d as a,h as o}from"./chunk-5KNZJZUH-BUqIilZr.js";import{n as s}from"./QueryClientProvider-EuRl-wrW.js";import{t as c}from"./jsx-runtime-BJ8jcmzB.js";import{t as l}from"./progress-bar-C4e3e4vV.js";import{C as ee,D as te,N as ne,Q as u,V as re,ct as ie,v as d,w as ae}from"./local-mode-DzIUFjhf.js";import{t as f}from"./is-electron-C9-jl_HE.js";import{r as oe}from"./resolved-assistants-store-D57qRwKv.js";import"./i18n-C3bX3mTs.js";import{t as p}from"./useTranslation-CCDbxnME.js";import{i as se}from"./api-errors-DYGVb-Sh.js";import{$ as ce,Z as m,dt as le,ft as ue,mt as de,n as h,pt as g,rt as fe,st as _}from"./auth-store-iNnDaLgR.js";import{a as pe,r as v,s as me}from"./api-ByKY0Cbt.js";import{d as y}from"./routes-yNhBxUSb.js";import{h as he,o as ge}from"./prefs-BFDWWNwd.js";import{a as b,c as _e,t as x}from"./navigation-resolver-B6QxHAa5.js";import{t as S}from"./build-state-Dtia1Hnq.js";import{t as C}from"./avatar-bundled-components-CAE0CJ9e.js";import{t as w}from"./avatar-svg-compositor-tf4h3-SV.js";import{t as T}from"./onboarding-layout-CYgAi-S1.js";import{c as ve,n as ye,t as be}from"./provider-key-D0kB_zjf.js";import{a as xe,i as Se,n as E,r as D,t as O}from"./avatar-random-C7t2cN3Y.js";import{t as k}from"./plugin-attribution-rEWhA-PP.js";var A=e(r(),1),j=c(),Ce=800,M=null,N,P=null,F=null;function I(){M=null,N=void 0,P=null,F=null}var we={initializing:0,provisioning:.33,connecting:.66,resizing:.85,ready:1},L=1500,Te={initializing:`hatchingScreen.phase.initializing`,provisioning:`hatchingScreen.phase.provisioning`,connecting:`hatchingScreen.phase.connecting`,resizing:`hatchingScreen.phase.resizing`,ready:`hatchingScreen.phase.ready`};function Ee(e,t,n){if(e>=t)return t;let r=1-(1-Math.min(1,n/L))**3;return e+(t-e)*r}function De(){let e=b(S(),{kind:`hatch-gate`});return e.action===`redirect`?{kind:`redirect`,to:e.to}:e.action===`wait`?{kind:`wait`}:{kind:`proceed`}}function R(){let{t:e}=p(`onboarding`),r=a(),c=s(),[b]=o(),S=b.get(`hosting`),L=b.get(`fail`),R=b.get(k),z=f(),B=d()&&S!==null&&S!==`vellum-cloud`,V=S===`vellum-cloud`,Oe=b.get(x)===`1`,ke=h.use.sessionStatus(),Ae=B?_(ke):ke,[H]=(0,A.useState)(()=>F??=O(C)),je=(0,A.useMemo)(()=>{let e=w(C,H.bodyShape,H.eyeStyle,H.color,320);return`data:image/svg+xml;charset=utf-8,${encodeURIComponent(e)}`},[H]),[U,W]=(0,A.useState)(`initializing`),[G,K]=(0,A.useState)(null),[Me,q]=(0,A.useState)(!1),[Ne,Pe]=(0,A.useState)(!1),[Fe,Ie]=(0,A.useState)(0),[Le,J]=(0,A.useState)(0),[Re,ze]=(0,A.useState)(0),Y=(0,A.useRef)(U),X=(0,A.useRef)(0),Z=(0,A.useRef)(0),Q=(0,A.useRef)(0),$=(0,A.useCallback)(e=>{X.current=Q.current,Z.current=Date.now(),Y.current=e,W(e),ze(e=>e+1)},[]);return(0,A.useEffect)(()=>{if(L!==null){K(`Simulated hatch failure (developer menu → Replay Hatch Failure).`);return}let e=De();if(e.kind===`redirect`){r(e.to,{replace:!0});return}if(e.kind===`wait`)return;V&&d()&&(u(),ie(null)),q(!1),Pe(!1);let i=!1,a=null,o=null,s=null,l=Date.now(),f,p=!1,_=!1,x=ge(),C=e=>{try{he(``)}catch(e){n(e,{context:`onboarding_mark_completed`})}J(1),Q.current=1,X.current=1,W(`ready`),Y.current=`ready`,o=setTimeout(()=>{i||(I(),(async()=>{if(await fe.checkAssistant(),!i){if(_e(b)){r(`${y.assistant}?onboarding=1`,{replace:!0});return}if(B){let t=new URLSearchParams;S&&t.set(`hosting`,S),e&&t.set(`assistant`,e),R&&t.set(k,R);let n=t.toString();r(`${y.onboarding.research}${n?`?${n}`:``}`,{replace:!0});return}r(y.onboarding.research,{replace:!0})}})())},Ce)},w=e=>xe(e,H,c),T=async()=>{if($(`provisioning`),!B){try{let e=await v(),t=g(e);if(!i&&e.ok&&t.kind===`active`){d()&&ne(e.data.id,e.data.name,ce()??void 0),await A(e.data.id);return}t.kind===`auto_hatch`&&(_=!0)}catch{}if(i)return}if(B){try{let e=S===`docker`?`docker`:void 0;M&&N!==e&&I(),M||=(N=e,re(void 0,e));let t=await M;if(i)return;if(!t.ok){I(),K(t.error??`Failed to hatch local assistant.`);return}await ee(),t.assistantId&&m(t.assistantId),$(`connecting`);let r=!1;for(;!i&&!r;){if(await te()){u(),await ae(),r=!0;break}if(Date.now()-l>=3e5){I(),K(`Your assistant is taking longer than expected. Please try again.`);return}await new Promise(e=>{s=setTimeout(e,D)}),s=null}if(i)return;if(t.assistantId)try{await ye(t.assistantId)}catch(e){if(e instanceof be){if(!i){let t=ve(e.provider)?.displayName??e.provider;Pe(!0);let n=`Update your ${t} API key to continue.`;K(e.reason?`${e.reason} ${n}`:n)}return}n(e,{context:`onboarding_apply_provider_key`})}t.assistantId&&await h.getState().connectLocalAssistant(t.assistantId),t.assistantId&&(oe.getState().upsertFromApi({id:t.assistantId,name:t.assistantId,status:`active`,is_local:!0,created:new Date().toISOString()}),m(t.assistantId),w(t.assistantId)),C(t.assistantId)}catch{if(I(),i)return;K(`Failed to hatch local assistant. Check CLI logs for details.`)}return}try{P||=me(x?{version:x}:void 0);let e=await P;if(P=null,i)return;if(e.ok&&(f=e.data.id),p=e.ok&&e.status===201,!e.ok){if(t(`Onboarding hatch request failed`,{level:`warning`,extra:{status:e.status,error:e.error}}),ue(e.status,e.error)){K(le),q(!0);return}if(!de(e.status)){K(se(e.error,void 0,`Failed to start your assistant. Please try again.`));return}}}catch(e){if(P=null,n(e,{context:`onboarding_hatch_assistant`}),i)return}O(0)},O=e=>{i||(a=setTimeout(j,e))},A=async e=>{for($(`connecting`);!i;){try{if((await pe(e)).ok)break}catch{}if(Date.now()-l>=3e5){K(`Your assistant is taking longer than expected. Please try again.`);return}await new Promise(e=>{a=setTimeout(e,D)}),a=null}if(i)return;let n=await Se({assistantId:e,postCheckoutReturn:Oe,managedHatch:V,hatchStartMs:l,isCancelled:()=>i,onResizeWait:()=>$(`resizing`),registerTimer:e=>{a=e}});if(!i){if(n===`health_timeout`){t(`Onboarding hatch wait exceeded timeout`,{level:`warning`,extra:{maxWaitMs:E,stage:`post_resize_health`}}),K(`Your assistant is taking longer than expected. Please try again.`);return}C()}},j=async()=>{if(!i){if(Date.now()-l>=3e5){t(`Onboarding hatch wait exceeded timeout`,{level:`warning`,extra:{maxWaitMs:E}}),K(`Your assistant is taking longer than expected. Please try again.`);return}try{let e=await v(f);if(i||f&&!e.ok&&e.status===404&&(f=void 0,e=await v(),i))return;let t=g(e);if(t.kind===`active`){if(e.ok){let t=e.data.id;oe.getState().upsertFromApi(e.data),m(t),(p||_)&&w(t),d()&&ne(t,e.data.name,ce()??void 0),await A(t);return}C();return}if(t.kind===`error`){K(t.message);return}t.kind!==`auto_hatch`&&Y.current===`provisioning`&&$(`connecting`),O(D)}catch(e){if(n(e,{context:`onboarding_poll_assistant`}),i)return;O(D)}}};return T(),()=>{i=!0,a&&clearTimeout(a),o&&clearTimeout(o),s&&clearTimeout(s)}},[Fe,L,H,V,Oe,Ae,r,c,$,B]),(0,A.useEffect)(()=>{Z.current===0&&(Z.current=Date.now());let e,t=()=>{let n=Date.now()-Z.current,r=we[Y.current],i=Ee(X.current,r,n);Q.current=i,J(i),r-i>1e-6&&(e=requestAnimationFrame(t))};return e=requestAnimationFrame(t),()=>cancelAnimationFrame(e)},[Re]),G?(0,j.jsx)(T,{avatarWave:`beside`,children:(0,j.jsxs)(`div`,{role:`alert`,className:`mx-auto flex w-full max-w-xl flex-col items-center ${z?`min-h-full px-8 pt-21 pb-28 electron-prechat-type`:`min-h-screen justify-center px-6 pb-40 md:min-h-full md:pb-6`} text-center text-[var(--content-default)]`,children:[(0,j.jsx)(`h1`,{className:z?`text-title-large`:`text-3xl font-semibold tracking-tight`,children:e(Ne?`hatchingScreen.apiKeyFailed`:`hatchingScreen.genericFailure`)}),(0,j.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)] ${z?`mt-3.5`:`mt-4`}`,children:G}),Me&&(0,j.jsxs)(`div`,{className:`mt-6 flex w-full max-w-sm flex-col items-center gap-3`,children:[(0,j.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-default)]`,children:e(`hatchingScreen.localFallbackPitch`)}),(0,j.jsx)(i,{asChild:!0,variant:`primary`,size:`regular`,fullWidth:!0,className:z?void 0:`h-11 text-base`,children:(0,j.jsx)(`a`,{href:`${window.location.origin}/download`,children:e(`actions.downloadMacApp`)})})]}),(0,j.jsx)(`img`,{src:je,alt:``,width:160,height:160,className:`${z?`my-auto py-8`:`my-16`} onboarding-avatar-failed`}),(0,j.jsxs)(`div`,{className:`flex w-full flex-col ${z?`gap-2.5 max-w-[280px]`:`gap-2 max-w-sm`}`,children:[Ne?(0,j.jsx)(i,{variant:`primary`,size:`regular`,fullWidth:!0,className:z?void 0:`h-11 text-base`,onClick:()=>void r(S?`${y.onboarding.apiKey}?hosting=${S}`:y.onboarding.apiKey,{replace:!0}),children:e(`hatchingScreen.updateApiKey`)}):(0,j.jsx)(i,{variant:`primary`,size:`regular`,fullWidth:!0,className:z?void 0:`h-11 text-base`,onClick:()=>{X.current=0,Z.current=Date.now(),Y.current=`initializing`,Q.current=0,W(`initializing`),J(0),ze(e=>e+1),K(null),q(!1),Ie(e=>e+1)},children:e(`actions.tryAgain`)}),(0,j.jsx)(i,{variant:`outlined`,size:`regular`,fullWidth:!0,className:z?void 0:`h-11 text-base`,onClick:()=>void r(B?y.onboarding.hosting:y.onboarding.privacy,{replace:!0}),children:e(`actions.back`)})]})]})}):(0,j.jsx)(T,{avatarWave:`beside`,children:(0,j.jsxs)(`div`,{className:`mx-auto flex w-full max-w-xl flex-col items-center ${z?`min-h-full px-8 pt-21 pb-28 electron-prechat-type`:`min-h-screen justify-center px-6 pb-40 md:min-h-full md:pb-6`} text-center text-[var(--content-default)]`,children:[(0,j.jsx)(`h1`,{className:z?`text-title-large`:`text-3xl font-semibold tracking-tight`,children:e(U===`ready`?`hatchingScreen.ready`:`hatchingScreen.waking`)}),U!==`ready`&&(0,j.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)] ${z?`mt-3.5`:`mt-4`}`,children:e(`hatchingScreen.wakingBody`)}),(0,j.jsx)(`img`,{src:je,alt:``,width:160,height:160,className:`${z?`my-auto py-8`:`my-16`} ${U===`ready`?`onboarding-avatar-awake`:`onboarding-avatar-pulse`}`}),(0,j.jsx)(l,{value:Le,height:6,className:`w-full ${z?`max-w-[200px]`:`max-w-sm`}`,"aria-label":e(`hatchingScreen.progressAriaLabel`)}),(0,j.jsx)(`p`,{className:`text-[var(--content-tertiary)] ${z?`mt-4 text-label-small-default`:`mt-3 text-body-small-default`}`,children:e(Te[U])})]})})}export{R as HatchingScreen};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-VkxVX0DM.js";import{d as r,u as i}from"./chunk-5KNZJZUH-BUqIilZr.js";import{n as a}from"./QueryClientProvider-EuRl-wrW.js";import{t as o}from"./useQuery-CTSuec5b.js";import{t as s}from"./jsx-runtime-BJ8jcmzB.js";import{t as c}from"./typography-DekrYXvs.js";import{t as l}from"./arrow-left-Ciai6BHG.js";import{t as u}from"./bell-CHRdx4mp.js";import{t as d}from"./chevron-right-DTpkwA4e.js";import{_ as f,a as p,c as m,d as h,f as g,g as _,h as v,i as y,l as b,n as x,o as S,p as C,r as w,s as T,t as E,u as D,v as O,y as k}from"./feed-item-status-actions-Cz3H5a6L.js";import{s as A}from"./src-Ch3HTlFm.js";import{t as j}from"./tag-Ddzwz3ij.js";import{t as M}from"./skeleton-D8_lkywC.js";import"./i18n-7Z5ghN39.js";import{t as N}from"./useTranslation-CJMg4EBF.js";import{G as P,K as F}from"./react-query.gen-OpeDEMIm.js";import{n as I}from"./conversation-navigation-Cg1rXwwx.js";import{n as L}from"./use-is-mobile-BwSS15lq.js";import{i as R}from"./conversation-cache-DJbtcDiW.js";import{t as z}from"./chat-layout-slots-store-c4ig5vXx.js";import{a as B,n as V,o as H}from"./conversation-queries-YVB1UbYl.js";import{t as U}from"./use-active-assistant-id-BFE4r9Rp.js";import{t as W}from"./detail-shell-BpJzTGvM.js";import{i as G,r as K}from"./format-date-DEIFj6w3.js";import{t as q}from"./page-shell-DEN0SqaR.js";import{n as J,t as Y}from"./detail-drawer-PnkAA_sr.js";import{t as X}from"./page-empty-state-CpkB0rZ_.js";var Z=e(t(),1),Q=s();function ee({item:e,isMobile:t,validConversationIds:r,onClose:i,onGoToThread:a,onUpdateStatus:o,onDismiss:s,entityLinks:u=[],onNavigate:d}){let{t:f}=N(`home`);if(!e)return null;let p=e.detailPanel?.kind,m=O(e.category),h=e.title?e.title:e.category?f(m.labelKey):f(`homeDetailPanel.untitled`),g=m.icon,{label:v,nextStatus:y}=_(e.status===`new`,f),b=e.status===`dismissed`,S=!!e.conversationId&&r.has(e.conversationId);return t?(0,Q.jsxs)(`div`,{className:`flex h-full flex-col bg-[var(--surface-overlay)]`,children:[(0,Q.jsxs)(`div`,{className:`relative flex shrink-0 items-center px-3 py-2`,children:[(0,Q.jsx)(n,{variant:`ghost`,iconOnly:(0,Q.jsx)(l,{}),onClick:i,"aria-label":f(`homeDetailPanel.back`),tooltip:f(`homeDetailPanel.back`)}),(0,Q.jsx)(c,{variant:`body-medium-default`,className:`pointer-events-none absolute inset-x-0 text-center text-[var(--content-secondary)]`,children:f(`homeDetailPanel.heading`)}),(0,Q.jsx)(`div`,{className:`ml-auto flex items-center gap-2`,children:(0,Q.jsx)(E,{item:e,onUpdateStatus:o,onDismiss:s})})]}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-3 px-4 py-3`,children:[(0,Q.jsx)(`span`,{className:`flex shrink-0 items-center justify-center rounded-full`,style:{width:40,height:40,backgroundColor:m.weak},"aria-hidden":`true`,children:(0,Q.jsx)(g,{width:18,height:18,style:{color:m.strong}})}),(0,Q.jsx)(c,{variant:`title-small`,className:`min-w-0 text-[var(--content-default)]`,children:h}),(0,Q.jsx)(j,{tone:`neutral`,className:`shrink-0`,title:K(e.timestamp),children:G(e.timestamp)})]}),(0,Q.jsx)(`div`,{className:`mx-4 border-b border-[var(--border-disabled)]`}),(0,Q.jsx)(`div`,{className:`flex-1 overflow-y-auto p-4`,children:p===`toolPermission`?(0,Q.jsx)(x,{item:e}):(0,Q.jsx)(w,{item:e})}),S||u.length>0?(0,Q.jsxs)(`div`,{className:`flex shrink-0 flex-col gap-2 px-4 pb-4 pt-2`,children:[u.map(e=>(0,Q.jsx)(n,{variant:`outlined`,fullWidth:!0,leftIcon:(0,Q.jsx)(e.icon,{className:`size-4`}),onClick:()=>d?.(e.to),children:f(e.labelKey)},e.kind)),S?(0,Q.jsx)(n,{variant:`primary`,fullWidth:!0,onClick:()=>a(e.conversationId),children:f(`actions.goToConversation`)}):null]}):null]}):(0,Q.jsxs)(W,{icon:(0,Q.jsx)(g,{className:`h-5 w-5 shrink-0 text-[var(--content-secondary)]`,"aria-hidden":!0}),title:h,headerActions:S?(0,Q.jsx)(n,{variant:`outlined`,onClick:()=>a(e.conversationId),children:f(`actions.goToConvo`)}):void 0,closeLabel:f(`homeDetailPanel.closeAriaLabel`),closeTooltip:f(`homeDetailPanel.close`),onClose:i,footer:(0,Q.jsxs)(`div`,{className:`flex items-center justify-between gap-[var(--app-spacing-sm)]`,children:[(0,Q.jsx)(`div`,{className:`flex items-center gap-[var(--app-spacing-sm)]`,children:u.map(e=>(0,Q.jsx)(n,{variant:`outlined`,leftIcon:(0,Q.jsx)(e.icon,{className:`size-4`}),onClick:()=>d?.(e.to),children:f(e.labelKey)},e.kind))}),(0,Q.jsx)(`div`,{className:`flex items-center gap-[var(--app-spacing-sm)]`,children:b?(0,Q.jsx)(n,{variant:`primary`,onClick:()=>o(e.id,`seen`),children:f(`actions.restore`)}):(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(n,{variant:`outlined`,onClick:()=>o(e.id,y),children:v}),(0,Q.jsx)(n,{variant:`primary`,onClick:()=>s(e.id),children:f(`actions.dismiss`)})]})})]}),children:[p===`toolPermission`?(0,Q.jsx)(x,{item:e}):(0,Q.jsx)(w,{item:e}),(0,Q.jsx)(`div`,{className:`mt-[var(--app-spacing-md)]`,children:(0,Q.jsx)(j,{tone:`neutral`,title:K(e.timestamp),children:G(e.timestamp)})})]})}var te={today:`homeFeedList.today`,yesterday:`homeFeedList.yesterday`,older:`homeFeedList.older`},ne=10080*60*1e3;function $(e,t){return e.status===`new`||e.status===`dismissed`?!1:t-new Date(e.createdAt).getTime()>ne}function re({items:e,selectedItemId:t,validConversationIds:n,onSelectItem:r,onDismissItem:i,onRestoreItem:a,onToggleRead:o,onGoToThread:s,archivedOpen:l,onArchivedOpenChange:p,dismissedOpen:h,onDismissedOpenChange:_}){let{t:y}=N(`home`),[x,C]=(0,Z.useState)(null),[w]=(0,Z.useState)(()=>Date.now()),T=m(e.filter(e=>e.status!==`dismissed`)),E=T.filter(e=>!$(e,w)),O=v(T.filter(e=>$(e,w))),k=D(E),j=x&&k.includes(x)?x:null;x!==j&&C(j);let M=g(v(b(E,j))),P=e.filter(e=>e.status===`dismissed`).sort((e,t)=>new Date(t.createdAt).getTime()-new Date(e.createdAt).getTime());return(0,Q.jsxs)(`div`,{className:`flex flex-col gap-[var(--app-spacing-lg)]`,children:[(0,Q.jsx)(f,{categories:k,activeFilter:j,onFilterChange:C}),M.size===0?j?(0,Q.jsx)(c,{variant:`body-medium-lighter`,className:`py-[var(--app-spacing-xl)] text-center text-[var(--content-disabled)]`,children:y(`homeFeedList.noMatches`)}):(0,Q.jsx)(X,{icon:u,title:y(`homeFeedList.emptyTitle`),description:y(`homeFeedList.emptyBody`)}):[...M.entries()].map(([e,a])=>(0,Q.jsxs)(`section`,{className:`flex flex-col gap-[var(--app-spacing-md)]`,children:[(0,Q.jsx)(c,{variant:`body-small-default`,as:`h3`,className:`text-[var(--content-tertiary)]`,children:y(te[e])}),(0,Q.jsx)(`div`,{className:`flex flex-col gap-[var(--app-spacing-sm)]`,children:a.map(e=>(0,Q.jsx)(S,{item:e,isActive:e.id===t,validConversationIds:n,onSelect:r,onDismiss:i,onToggleRead:o,onGoToThread:s},e.id))})]},e)),O.length>0&&(0,Q.jsx)(A.Root,{type:`single`,collapsible:!0,value:l?`archived-read`:``,onValueChange:e=>p?.(e===`archived-read`),children:(0,Q.jsxs)(A.Item,{value:`archived-read`,children:[(0,Q.jsxs)(A.Trigger,{className:`group gap-[var(--app-spacing-xs)] text-body-small-default text-[var(--content-tertiary)]`,children:[(0,Q.jsx)(d,{size:14,"aria-hidden":!0,className:`shrink-0 transition-transform group-data-[state=open]:rotate-90`}),(0,Q.jsx)(`span`,{children:y(`homeFeedList.earlier`,{count:O.length})})]}),(0,Q.jsx)(A.Content,{children:(0,Q.jsx)(`div`,{className:`flex flex-col gap-[var(--app-spacing-sm)] pt-[var(--app-spacing-sm)]`,children:O.map(e=>(0,Q.jsx)(S,{item:e,isActive:e.id===t,validConversationIds:n,onSelect:r,onDismiss:i,onToggleRead:o,onGoToThread:s},e.id))})})]})}),P.length>0&&(0,Q.jsx)(A.Root,{type:`single`,collapsible:!0,value:h?`dismissed`:``,onValueChange:e=>_?.(e===`dismissed`),children:(0,Q.jsxs)(A.Item,{value:`dismissed`,children:[(0,Q.jsxs)(A.Trigger,{className:`group gap-[var(--app-spacing-xs)] text-body-small-default text-[var(--content-tertiary)]`,children:[(0,Q.jsx)(d,{size:14,"aria-hidden":!0,className:`shrink-0 transition-transform group-data-[state=open]:rotate-90`}),(0,Q.jsx)(`span`,{children:y(`homeFeedList.dismissed`,{count:P.length})})]}),(0,Q.jsx)(A.Content,{children:(0,Q.jsx)(`div`,{className:`flex flex-col gap-[var(--app-spacing-sm)] pt-[var(--app-spacing-sm)]`,children:P.map(e=>(0,Q.jsx)(S,{item:e,onSelect:r,onDismiss:a,trailingAction:`restore`},e.id))})})]})})]})}function ie(){let{t:e}=N(`home`);return(0,Q.jsx)(`h1`,{className:`shrink-0 text-title-large text-[var(--content-default)]`,children:e(`homeTopHeader.title`)})}function ae(e){let t=a(),n=(0,Z.useMemo)(()=>F({path:{assistant_id:e??``}}),[e]),r=o({...P({path:{assistant_id:e}}),enabled:!!e,staleTime:6e4}),i=(0,Z.useCallback)(()=>{e&&t.invalidateQueries({queryKey:n})},[e,t,n]);return{...r,invalidate:i}}function oe(){return(0,Q.jsxs)(`div`,{className:`flex flex-col gap-[var(--app-spacing-xl)]`,children:[(0,Q.jsx)(M,{className:`h-7 w-64 rounded-md`}),(0,Q.jsx)(`div`,{className:`flex flex-col gap-[var(--app-spacing-sm)]`,children:Array.from({length:4},(e,t)=>(0,Q.jsx)(M,{className:`h-16 rounded-md`},t))})]})}function se({assistantId:e,validConversationIds:t,onOpenConversation:r,onNavigate:i,initialFeedItemId:a,navigationKey:o,onInitialFeedItemConsumed:s}){let{t:c}=N(`home`),l=L(),u=y(e);ae(e);let[d,f]=(0,Z.useState)(null),[m,g]=(0,Z.useState)(!1),[_,v]=(0,Z.useState)(!1),b=(0,Z.useCallback)(e=>{e.status===`new`?(f({...e,status:`seen`}),u.updateStatus.mutate({itemId:e.id,status:`seen`})):f(e)},[u.updateStatus]),x=(0,Z.useCallback)(()=>{f(null)},[]),S=(0,Z.useCallback)(e=>{u.updateStatus.mutate({itemId:e,status:`dismissed`}),d?.id===e&&f(null)},[u.updateStatus,d?.id]),w=(0,Z.useCallback)(e=>{u.updateStatus.mutate({itemId:e,status:`seen`}),f(t=>t?.id===e?{...t,status:`seen`}:t)},[u.updateStatus]),E=(0,Z.useCallback)((e,t)=>{u.updateStatus.mutate({itemId:e,status:t}),f(n=>n?.id===e?{...n,status:t}:n)},[u.updateStatus]),D=(0,Z.useCallback)(e=>{f(null),r(e)},[r]),O=u.data?.items??[],[A,j]=(0,Z.useState)(null);(0,Z.useEffect)(()=>{if(!a||o===A||u.isLoading)return;j(o??null);let e=O.find(e=>e.id===a);e&&e.status!==`dismissed`&&b(e),s?.()},[a,o,A,u.isLoading,O,b,s]);let M=h(O),P=M.filter(e=>e.status===`new`).length,F=M.length,I=k(),R=(0,Z.useCallback)(()=>{u.markAll.mutate(C(M))},[u.markAll,M]),z=(0,Z.useCallback)(()=>{u.markAll.mutate(T(M)),f(null)},[u.markAll,M]),{links:B,isPending:V}=p(d,e,!0),H=d?(0,Q.jsx)(ee,{item:d,isMobile:l,validConversationIds:t,onClose:x,onGoToThread:D,onUpdateStatus:E,onDismiss:S,entityLinks:V?[]:B,onNavigate:i}):null,U=(0,Q.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-[var(--app-spacing-lg)] overflow-y-auto`,children:[u.isError?(0,Q.jsx)(`div`,{role:`alert`,className:`rounded-md border border-[var(--system-negative-weak)] bg-[var(--system-negative-weak)] px-[var(--app-spacing-lg)] py-[var(--app-spacing-md)] text-[var(--system-negative-strong)]`,children:u.error instanceof Error?c(`homePage.loadFailedDetail`,{message:u.error.message}):c(`homePage.loadFailed`)}):null,I&&(P>0||F>0)&&(0,Q.jsxs)(`div`,{className:`flex items-center justify-end gap-[var(--app-spacing-sm)]`,children:[P>0&&(0,Q.jsx)(n,{variant:`ghost`,size:`compact`,onClick:R,disabled:u.markAll.isPending,children:c(`actions.markAllAsRead`)}),F>0&&(0,Q.jsx)(n,{variant:`ghost`,size:`compact`,onClick:z,disabled:u.markAll.isPending,children:c(`actions.clearAll`)})]}),(0,Q.jsx)(re,{items:O,selectedItemId:d?.id,validConversationIds:t,onSelectItem:b,onDismissItem:S,onRestoreItem:w,onToggleRead:E,onGoToThread:D,archivedOpen:m,onArchivedOpenChange:g,dismissedOpen:_,onDismissedOpenChange:v})]}),W=H&&!l?(0,Q.jsx)(Y,{storageKey:`homeDetailDrawerWidth`,detailKey:d?.id,section:U,detail:H}):U,G=u.isLoading?(0,Q.jsx)(oe,{}):(0,Q.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-[var(--app-spacing-xl)]`,children:[l?null:(0,Q.jsx)(ie,{}),W]});return H&&l?(0,Q.jsx)(J,{children:H}):(0,Q.jsx)(q,{children:G})}function ce(){let e=r(),t=i(),n=U(),a=t.state?.feedItemId??null,o=(0,Z.useCallback)(()=>{e(t.pathname+t.search,{replace:!0})},[e,t.pathname,t.search]),s=z.use.setTopBarCenter(),l=L(),{conversations:u}=B(n),{conversations:d}=V(n,!0),{conversations:f}=H(n,!0),p=(0,Z.useMemo)(()=>new Set(R(u,d,f).map(e=>e.conversationId)),[u,d,f]);return(0,Z.useEffect)(()=>(s(l?(0,Q.jsx)(c,{variant:`body-medium-default`,className:`text-[var(--content-secondary)]`,children:`Activity`}):null),()=>{s(null)}),[l,s]),(0,Q.jsx)(se,{assistantId:n,validConversationIds:p,initialFeedItemId:a,navigationKey:t.key,onInitialFeedItemConsumed:o,onOpenConversation:t=>I(e,t),onNavigate:t=>e(t)})}export{ce as HomePageRoute};
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-C8CGr0T0.js";import{d as r,u as i}from"./chunk-5KNZJZUH-BUqIilZr.js";import{n as a}from"./QueryClientProvider-EuRl-wrW.js";import{t as o}from"./useQuery-CTSuec5b.js";import{t as s}from"./jsx-runtime-BJ8jcmzB.js";import{t as c}from"./typography-DekrYXvs.js";import{t as l}from"./arrow-left-Ciai6BHG.js";import{t as u}from"./bell-CHRdx4mp.js";import{t as d}from"./chevron-right-DTpkwA4e.js";import{_ as f,a as p,c as m,d as h,f as g,g as _,h as v,i as y,l as b,n as x,o as S,p as C,r as w,s as T,t as E,u as D,v as O,y as k}from"./feed-item-status-actions-C3JfFvZc.js";import{s as A}from"./src-DMnnfLrU.js";import{t as j}from"./tag-D2QYCm1p.js";import{t as M}from"./skeleton-D8_lkywC.js";import"./i18n-C3bX3mTs.js";import{t as N}from"./useTranslation-CCDbxnME.js";import{G as P,K as F}from"./react-query.gen-CYP-Tn4K.js";import{n as I}from"./conversation-navigation-CfOyMc6W.js";import{n as L}from"./use-is-mobile-BwSS15lq.js";import{i as R}from"./conversation-cache-CuEQRyqi.js";import{t as z}from"./chat-layout-slots-store-c4ig5vXx.js";import{a as B,n as V,o as H}from"./conversation-queries-CtAFZgFP.js";import{t as U}from"./use-active-assistant-id-BFE4r9Rp.js";import{t as W}from"./detail-shell-CcrQic9y.js";import{i as G,r as K}from"./format-date-DEIFj6w3.js";import{t as q}from"./page-shell-nVp2ogSk.js";import{n as J,t as Y}from"./detail-drawer-Di5V_iLf.js";import{t as X}from"./page-empty-state-CpkB0rZ_.js";var Z=e(t(),1),Q=s();function ee({item:e,isMobile:t,validConversationIds:r,onClose:i,onGoToThread:a,onUpdateStatus:o,onDismiss:s,entityLinks:u=[],onNavigate:d}){let{t:f}=N(`home`);if(!e)return null;let p=e.detailPanel?.kind,m=O(e.category),h=e.title?e.title:e.category?f(m.labelKey):f(`homeDetailPanel.untitled`),g=m.icon,{label:v,nextStatus:y}=_(e.status===`new`,f),b=e.status===`dismissed`,S=!!e.conversationId&&r.has(e.conversationId);return t?(0,Q.jsxs)(`div`,{className:`flex h-full flex-col bg-[var(--surface-overlay)]`,children:[(0,Q.jsxs)(`div`,{className:`relative flex shrink-0 items-center px-3 py-2`,children:[(0,Q.jsx)(n,{variant:`ghost`,iconOnly:(0,Q.jsx)(l,{}),onClick:i,"aria-label":f(`homeDetailPanel.back`),tooltip:f(`homeDetailPanel.back`)}),(0,Q.jsx)(c,{variant:`body-medium-default`,className:`pointer-events-none absolute inset-x-0 text-center text-[var(--content-secondary)]`,children:f(`homeDetailPanel.heading`)}),(0,Q.jsx)(`div`,{className:`ml-auto flex items-center gap-2`,children:(0,Q.jsx)(E,{item:e,onUpdateStatus:o,onDismiss:s})})]}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-3 px-4 py-3`,children:[(0,Q.jsx)(`span`,{className:`flex shrink-0 items-center justify-center rounded-full`,style:{width:40,height:40,backgroundColor:m.weak},"aria-hidden":`true`,children:(0,Q.jsx)(g,{width:18,height:18,style:{color:m.strong}})}),(0,Q.jsx)(c,{variant:`title-small`,className:`min-w-0 text-[var(--content-default)]`,children:h}),(0,Q.jsx)(j,{tone:`neutral`,className:`shrink-0`,title:K(e.timestamp),children:G(e.timestamp)})]}),(0,Q.jsx)(`div`,{className:`mx-4 border-b border-[var(--border-disabled)]`}),(0,Q.jsx)(`div`,{className:`flex-1 overflow-y-auto p-4`,children:p===`toolPermission`?(0,Q.jsx)(x,{item:e}):(0,Q.jsx)(w,{item:e})}),S||u.length>0?(0,Q.jsxs)(`div`,{className:`flex shrink-0 flex-col gap-2 px-4 pb-4 pt-2`,children:[u.map(e=>(0,Q.jsx)(n,{variant:`outlined`,fullWidth:!0,leftIcon:(0,Q.jsx)(e.icon,{className:`size-4`}),onClick:()=>d?.(e.to),children:f(e.labelKey)},e.kind)),S?(0,Q.jsx)(n,{variant:`primary`,fullWidth:!0,onClick:()=>a(e.conversationId),children:f(`actions.goToConversation`)}):null]}):null]}):(0,Q.jsxs)(W,{icon:(0,Q.jsx)(g,{className:`h-5 w-5 shrink-0 text-[var(--content-secondary)]`,"aria-hidden":!0}),title:h,headerActions:S?(0,Q.jsx)(n,{variant:`outlined`,onClick:()=>a(e.conversationId),children:f(`actions.goToConvo`)}):void 0,closeLabel:f(`homeDetailPanel.closeAriaLabel`),closeTooltip:f(`homeDetailPanel.close`),onClose:i,footer:(0,Q.jsxs)(`div`,{className:`flex items-center justify-between gap-[var(--app-spacing-sm)]`,children:[(0,Q.jsx)(`div`,{className:`flex items-center gap-[var(--app-spacing-sm)]`,children:u.map(e=>(0,Q.jsx)(n,{variant:`outlined`,leftIcon:(0,Q.jsx)(e.icon,{className:`size-4`}),onClick:()=>d?.(e.to),children:f(e.labelKey)},e.kind))}),(0,Q.jsx)(`div`,{className:`flex items-center gap-[var(--app-spacing-sm)]`,children:b?(0,Q.jsx)(n,{variant:`primary`,onClick:()=>o(e.id,`seen`),children:f(`actions.restore`)}):(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(n,{variant:`outlined`,onClick:()=>o(e.id,y),children:v}),(0,Q.jsx)(n,{variant:`primary`,onClick:()=>s(e.id),children:f(`actions.dismiss`)})]})})]}),children:[p===`toolPermission`?(0,Q.jsx)(x,{item:e}):(0,Q.jsx)(w,{item:e}),(0,Q.jsx)(`div`,{className:`mt-[var(--app-spacing-md)]`,children:(0,Q.jsx)(j,{tone:`neutral`,title:K(e.timestamp),children:G(e.timestamp)})})]})}var te={today:`homeFeedList.today`,yesterday:`homeFeedList.yesterday`,older:`homeFeedList.older`},ne=10080*60*1e3;function $(e,t){return e.status===`new`||e.status===`dismissed`?!1:t-new Date(e.createdAt).getTime()>ne}function re({items:e,selectedItemId:t,validConversationIds:n,onSelectItem:r,onDismissItem:i,onRestoreItem:a,onToggleRead:o,onGoToThread:s,archivedOpen:l,onArchivedOpenChange:p,dismissedOpen:h,onDismissedOpenChange:_}){let{t:y}=N(`home`),[x,C]=(0,Z.useState)(null),[w]=(0,Z.useState)(()=>Date.now()),T=m(e.filter(e=>e.status!==`dismissed`)),E=T.filter(e=>!$(e,w)),O=v(T.filter(e=>$(e,w))),k=D(E),j=x&&k.includes(x)?x:null;x!==j&&C(j);let M=g(v(b(E,j))),P=e.filter(e=>e.status===`dismissed`).sort((e,t)=>new Date(t.createdAt).getTime()-new Date(e.createdAt).getTime());return(0,Q.jsxs)(`div`,{className:`flex flex-col gap-[var(--app-spacing-lg)]`,children:[(0,Q.jsx)(f,{categories:k,activeFilter:j,onFilterChange:C}),M.size===0?j?(0,Q.jsx)(c,{variant:`body-medium-lighter`,className:`py-[var(--app-spacing-xl)] text-center text-[var(--content-disabled)]`,children:y(`homeFeedList.noMatches`)}):(0,Q.jsx)(X,{icon:u,title:y(`homeFeedList.emptyTitle`),description:y(`homeFeedList.emptyBody`)}):[...M.entries()].map(([e,a])=>(0,Q.jsxs)(`section`,{className:`flex flex-col gap-[var(--app-spacing-md)]`,children:[(0,Q.jsx)(c,{variant:`body-small-default`,as:`h3`,className:`text-[var(--content-tertiary)]`,children:y(te[e])}),(0,Q.jsx)(`div`,{className:`flex flex-col gap-[var(--app-spacing-sm)]`,children:a.map(e=>(0,Q.jsx)(S,{item:e,isActive:e.id===t,validConversationIds:n,onSelect:r,onDismiss:i,onToggleRead:o,onGoToThread:s},e.id))})]},e)),O.length>0&&(0,Q.jsx)(A.Root,{type:`single`,collapsible:!0,value:l?`archived-read`:``,onValueChange:e=>p?.(e===`archived-read`),children:(0,Q.jsxs)(A.Item,{value:`archived-read`,children:[(0,Q.jsxs)(A.Trigger,{className:`group gap-[var(--app-spacing-xs)] text-body-small-default text-[var(--content-tertiary)]`,children:[(0,Q.jsx)(d,{size:14,"aria-hidden":!0,className:`shrink-0 transition-transform group-data-[state=open]:rotate-90`}),(0,Q.jsx)(`span`,{children:y(`homeFeedList.earlier`,{count:O.length})})]}),(0,Q.jsx)(A.Content,{children:(0,Q.jsx)(`div`,{className:`flex flex-col gap-[var(--app-spacing-sm)] pt-[var(--app-spacing-sm)]`,children:O.map(e=>(0,Q.jsx)(S,{item:e,isActive:e.id===t,validConversationIds:n,onSelect:r,onDismiss:i,onToggleRead:o,onGoToThread:s},e.id))})})]})}),P.length>0&&(0,Q.jsx)(A.Root,{type:`single`,collapsible:!0,value:h?`dismissed`:``,onValueChange:e=>_?.(e===`dismissed`),children:(0,Q.jsxs)(A.Item,{value:`dismissed`,children:[(0,Q.jsxs)(A.Trigger,{className:`group gap-[var(--app-spacing-xs)] text-body-small-default text-[var(--content-tertiary)]`,children:[(0,Q.jsx)(d,{size:14,"aria-hidden":!0,className:`shrink-0 transition-transform group-data-[state=open]:rotate-90`}),(0,Q.jsx)(`span`,{children:y(`homeFeedList.dismissed`,{count:P.length})})]}),(0,Q.jsx)(A.Content,{children:(0,Q.jsx)(`div`,{className:`flex flex-col gap-[var(--app-spacing-sm)] pt-[var(--app-spacing-sm)]`,children:P.map(e=>(0,Q.jsx)(S,{item:e,onSelect:r,onDismiss:a,trailingAction:`restore`},e.id))})})]})})]})}function ie(){let{t:e}=N(`home`);return(0,Q.jsx)(`h1`,{className:`shrink-0 text-title-large text-[var(--content-default)]`,children:e(`homeTopHeader.title`)})}function ae(e){let t=a(),n=(0,Z.useMemo)(()=>F({path:{assistant_id:e??``}}),[e]),r=o({...P({path:{assistant_id:e}}),enabled:!!e,staleTime:6e4}),i=(0,Z.useCallback)(()=>{e&&t.invalidateQueries({queryKey:n})},[e,t,n]);return{...r,invalidate:i}}function oe(){return(0,Q.jsxs)(`div`,{className:`flex flex-col gap-[var(--app-spacing-xl)]`,children:[(0,Q.jsx)(M,{className:`h-7 w-64 rounded-md`}),(0,Q.jsx)(`div`,{className:`flex flex-col gap-[var(--app-spacing-sm)]`,children:Array.from({length:4},(e,t)=>(0,Q.jsx)(M,{className:`h-16 rounded-md`},t))})]})}function se({assistantId:e,validConversationIds:t,onOpenConversation:r,onNavigate:i,initialFeedItemId:a,navigationKey:o,onInitialFeedItemConsumed:s}){let{t:c}=N(`home`),l=L(),u=y(e);ae(e);let[d,f]=(0,Z.useState)(null),[m,g]=(0,Z.useState)(!1),[_,v]=(0,Z.useState)(!1),b=(0,Z.useCallback)(e=>{e.status===`new`?(f({...e,status:`seen`}),u.updateStatus.mutate({itemId:e.id,status:`seen`})):f(e)},[u.updateStatus]),x=(0,Z.useCallback)(()=>{f(null)},[]),S=(0,Z.useCallback)(e=>{u.updateStatus.mutate({itemId:e,status:`dismissed`}),d?.id===e&&f(null)},[u.updateStatus,d?.id]),w=(0,Z.useCallback)(e=>{u.updateStatus.mutate({itemId:e,status:`seen`}),f(t=>t?.id===e?{...t,status:`seen`}:t)},[u.updateStatus]),E=(0,Z.useCallback)((e,t)=>{u.updateStatus.mutate({itemId:e,status:t}),f(n=>n?.id===e?{...n,status:t}:n)},[u.updateStatus]),D=(0,Z.useCallback)(e=>{f(null),r(e)},[r]),O=u.data?.items??[],[A,j]=(0,Z.useState)(null);(0,Z.useEffect)(()=>{if(!a||o===A||u.isLoading)return;j(o??null);let e=O.find(e=>e.id===a);e&&e.status!==`dismissed`&&b(e),s?.()},[a,o,A,u.isLoading,O,b,s]);let M=h(O),P=M.filter(e=>e.status===`new`).length,F=M.length,I=k(),R=(0,Z.useCallback)(()=>{u.markAll.mutate(C(M))},[u.markAll,M]),z=(0,Z.useCallback)(()=>{u.markAll.mutate(T(M)),f(null)},[u.markAll,M]),{links:B,isPending:V}=p(d,e,!0),H=d?(0,Q.jsx)(ee,{item:d,isMobile:l,validConversationIds:t,onClose:x,onGoToThread:D,onUpdateStatus:E,onDismiss:S,entityLinks:V?[]:B,onNavigate:i}):null,U=(0,Q.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-[var(--app-spacing-lg)] overflow-y-auto`,children:[u.isError?(0,Q.jsx)(`div`,{role:`alert`,className:`rounded-md border border-[var(--system-negative-weak)] bg-[var(--system-negative-weak)] px-[var(--app-spacing-lg)] py-[var(--app-spacing-md)] text-[var(--system-negative-strong)]`,children:u.error instanceof Error?c(`homePage.loadFailedDetail`,{message:u.error.message}):c(`homePage.loadFailed`)}):null,I&&(P>0||F>0)&&(0,Q.jsxs)(`div`,{className:`flex items-center justify-end gap-[var(--app-spacing-sm)]`,children:[P>0&&(0,Q.jsx)(n,{variant:`ghost`,size:`compact`,onClick:R,disabled:u.markAll.isPending,children:c(`actions.markAllAsRead`)}),F>0&&(0,Q.jsx)(n,{variant:`ghost`,size:`compact`,onClick:z,disabled:u.markAll.isPending,children:c(`actions.clearAll`)})]}),(0,Q.jsx)(re,{items:O,selectedItemId:d?.id,validConversationIds:t,onSelectItem:b,onDismissItem:S,onRestoreItem:w,onToggleRead:E,onGoToThread:D,archivedOpen:m,onArchivedOpenChange:g,dismissedOpen:_,onDismissedOpenChange:v})]}),W=H&&!l?(0,Q.jsx)(Y,{storageKey:`homeDetailDrawerWidth`,detailKey:d?.id,section:U,detail:H}):U,G=u.isLoading?(0,Q.jsx)(oe,{}):(0,Q.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-[var(--app-spacing-xl)]`,children:[l?null:(0,Q.jsx)(ie,{}),W]});return H&&l?(0,Q.jsx)(J,{children:H}):(0,Q.jsx)(q,{children:G})}function ce(){let e=r(),t=i(),n=U(),a=t.state?.feedItemId??null,o=(0,Z.useCallback)(()=>{e(t.pathname+t.search,{replace:!0})},[e,t.pathname,t.search]),s=z.use.setTopBarCenter(),l=L(),{conversations:u}=B(n),{conversations:d}=V(n,!0),{conversations:f}=H(n,!0),p=(0,Z.useMemo)(()=>new Set(R(u,d,f).map(e=>e.conversationId)),[u,d,f]);return(0,Z.useEffect)(()=>(s(l?(0,Q.jsx)(c,{variant:`body-medium-default`,className:`text-[var(--content-secondary)]`,children:`Activity`}):null),()=>{s(null)}),[l,s]),(0,Q.jsx)(se,{assistantId:n,validConversationIds:p,initialFeedItemId:a,navigationKey:t.key,onInitialFeedItemConsumed:o,onOpenConversation:t=>I(e,t),onNavigate:t=>e(t)})}export{ce as HomePageRoute};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-C8CGr0T0.js";import{d as r,h as i}from"./chunk-5KNZJZUH-BUqIilZr.js";import{t as a}from"./jsx-runtime-BJ8jcmzB.js";import{t as o}from"./arrow-left-Ciai6BHG.js";import{t as s}from"./check-NGUguBHp.js";import{t as c}from"./cloud-ByHaCF-x.js";import{t as l}from"./laptop-C9BtnRjX.js";import{Q as u,ct as d}from"./local-mode-DzIUFjhf.js";import{t as f}from"./is-electron-C9-jl_HE.js";import{r as p}from"./resolved-assistants-store-D57qRwKv.js";import"./i18n-C3bX3mTs.js";import{t as m}from"./useTranslation-CCDbxnME.js";import{i as h}from"./auth-store-iNnDaLgR.js";import{d as g,o as _}from"./routes-yNhBxUSb.js";import{t as v}from"./client-feature-flag-store-DuVzcD-V.js";import{t as y}from"./use-onboarding-login-DSP8WCFe.js";import{t as b}from"./onboarding-navigation-CUL0t0Am.js";import{t as x}from"./onboarding-layout-CYgAi-S1.js";import{i as S}from"./provider-key-D0kB_zjf.js";import{t as C}from"./radio-card-nav-hVd-im6E.js";var w=e(t(),1),T=a(),E=`h-5 w-5 shrink-0`;function D(){let e=h(),t=v.use.multiPlatformAssistant(),n=p.use.assistants().some(e=>e.isPlatformHosted);return[{mode:`vellum-cloud`,label:`Vellum Cloud`,subtitle:`Always on, 24/7, even when your computer is off. Runs on Vellum's secure infrastructure.`,icon:(0,T.jsx)(c,{className:E}),...!e||!t&&n?{disabled:!0,badge:e?`Limit Reached`:`Requires Account`}:{}},{mode:`local`,label:`Local`,subtitle:`Runs directly on your machine. Your data never leaves your computer.`,icon:(0,T.jsx)(l,{className:E})}]}function O(){let{t:e}=m(`onboarding`),t=r(),[a]=i(),s=a.get(`from`)===`select-assistant`,c=h(),l=f(),p=D(),v=p.find(e=>e.mode===`vellum-cloud`)?.disabled,[E,O]=(0,w.useState)(c&&!v?`vellum-cloud`:`local`);(0,w.useEffect)(()=>{v&&E===`vellum-cloud`&&O(`local`)},[v,E]);let{loading:A,error:j,login:M,cancel:N}=y(`${g.onboarding.hosting}?from=select-assistant`),P=s&&!c&&!l;return(0,T.jsx)(x,{avatarWave:`beside`,children:(0,T.jsx)(`div`,{className:`mx-auto flex w-full max-w-xl flex-col items-center ${l?`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,T.jsxs)(`div`,{className:`flex w-full flex-col items-center ${l?``:`flex-1 justify-center`}`,children:[(0,T.jsx)(`h1`,{className:l?`text-title-large`:`text-3xl font-semibold tracking-tight`,style:{animation:`fadeInUp 0.5s ease-out 0.1s both`},children:e(`hostingScreen.title`)}),(0,T.jsxs)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)] ${l?`mt-3.5`:`mt-3`}`,style:{animation:`fadeInUp 0.5s ease-out 0.3s both`},children:[e(`hostingScreen.body`),` `,(0,T.jsx)(`a`,{href:_(g.docs.hostingOptions),target:`_blank`,rel:`noreferrer`,className:`underline transition-colors hover:text-[var(--content-default)]`,children:e(`hostingScreen.needHelp`)})]}),j&&(0,T.jsx)(`p`,{className:`mt-4 text-body-small-default text-[var(--system-negative-strong)]`,children:j}),(0,T.jsx)(`div`,{role:`radiogroup`,"aria-label":e(`hostingScreen.optionsAriaLabel`),onKeyDown:C,className:`grid w-full ${l?`mt-8 gap-2`:`auto-rows-fr mt-10 gap-3`}`,style:{animation:`fadeInUp 0.5s ease-out 0.4s both`},children:p.map(t=>(0,T.jsx)(k,{option:t,selected:E===t.mode,tabStop:E===t.mode,onSelect:()=>{t.disabled||O(t.mode)},loginLabel:e(A?`actions.cancel`:`actions.loginToUse`),onLogin:t.disabled&&t.mode===`vellum-cloud`&&P?A?N:()=>void M():void 0},t.mode))}),(0,T.jsx)(`div`,{className:`mt-8 w-full`,style:{animation:`fadeInUp 0.5s ease-out 0.5s both`},children:(0,T.jsx)(n,{variant:`primary`,size:`regular`,fullWidth:!0,className:l?void 0:`h-11 text-base`,onClick:()=>{E===`vellum-cloud`?(u(),d(null),S(null),t(g.onboarding.privacy,b)):t(`${g.onboarding.apiKey}?hosting=${E}`,b)},children:e(`actions.continue`)})}),(0,T.jsx)(`div`,{className:`mt-3`,style:{animation:`fadeInUp 0.5s ease-out 0.5s both`},children:(0,T.jsx)(n,{variant:`ghost`,size:`compact`,className:`text-[var(--content-tertiary)]`,leftIcon:(0,T.jsx)(o,{}),onClick:()=>{t(s?g.selectAssistant:g.welcome,b)},disabled:A,children:e(`actions.back`)})})]})})})}function k({option:e,selected:t,tabStop:r,onSelect:i,loginLabel:a,onLogin:o}){let c=f(),l=!!e.disabled,u=o?void 0:e.badge;return(0,T.jsxs)(`div`,{role:l?void 0:`radio`,"aria-checked":l?void 0:t,tabIndex:l?void 0:r?0:-1,onClick:l?void 0:i,onKeyDown:l?void 0:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),i())},className:[`group flex w-full items-center border text-left`,c?`h-[72px] gap-3 rounded-lg p-3`:`gap-4 rounded-2xl px-5 py-4`,`transition-all duration-200 ease-out`,l?`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)]`,l?``:t?`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,T.jsx)(`div`,{className:[`flex shrink-0 items-center justify-center transition-colors duration-200`,c?`h-8 w-8 rounded-md`:`h-10 w-10 rounded-md`,t&&!l?`bg-[var(--primary-base)] text-[var(--surface-base)]`:`bg-[var(--surface-active)]/40 text-[var(--content-secondary)]`].join(` `),children:e.icon}),(0,T.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,T.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,T.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-default)]`,children:e.label}),u&&(0,T.jsx)(`span`,{className:`rounded-full bg-[var(--surface-active)]/40 px-2 py-0.5 text-[var(--content-tertiary)] ${c?`text-label-medium-default`:`text-body-small-default`}`,children:u})]}),(0,T.jsx)(`span`,{className:`mt-1 line-clamp-2 text-[var(--content-tertiary)] ${c?`text-label-medium-default leading-[14px]`:`text-body-small-default`}`,children:e.subtitle})]}),o&&(0,T.jsx)(n,{variant:`primary`,size:`regular`,className:`shrink-0`,onClick:o,children:a}),!l&&(0,T.jsx)(`div`,{className:[`flex h-5 w-5 shrink-0 items-center justify-center rounded-full border-2 transition-all duration-200`,t?`border-[var(--primary-base)] bg-[var(--primary-base)]`:`border-[var(--border-element)] group-hover:border-[var(--content-tertiary)]`].join(` `),children:t&&(0,T.jsx)(s,{className:`h-3 w-3 text-[var(--surface-base)]`,strokeWidth:3})})]})}export{O as HostingScreen};
|