@vellumai/web 0.11.4-staging.3 → 0.11.4-staging.4
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-BUsRawhS.js → Trans-FBE1EuwL.js} +1 -1
- package/dist/assets/{access-Cngxal_O.js → access-D0krXly2.js} +1 -1
- package/dist/assets/account-DEWe1CJv.js +1 -0
- package/dist/assets/{account-page-IVZcGHZy.js → account-page-Df1VB34_.js} +1 -1
- package/dist/assets/{account-shell-DdH2Ze4T.js → account-shell-Dk4m-iaE.js} +1 -1
- package/dist/assets/{acp-run-detail-panel-UjpE_MSy.js → acp-run-detail-panel-DsqMAPE4.js} +1 -1
- package/dist/assets/{activity-steps-panel-ChM6OAY8.js → activity-steps-panel-C9z9FMmK.js} +1 -1
- package/dist/assets/{add-credits-modal-ByR0kDly.js → add-credits-modal-RIAYgbOT.js} +1 -1
- package/dist/assets/{ai-page-BmOCqfyq.js → ai-page-CI4LZXTY.js} +1 -1
- package/dist/assets/api-BjYAXdCk.js +1 -0
- package/dist/assets/{api-CQ3nejmH.js → api-Cx3i50oG.js} +1 -1
- package/dist/assets/{api-key-screen-BnQoBDlm.js → api-key-screen-BKFAcyqU.js} +1 -1
- package/dist/assets/{app-card--MsNli_3.js → app-card-CjRGDYCX.js} +1 -1
- package/dist/assets/{assistant-status-panel-BkuUZfnZ.js → assistant-status-panel-BkLYzQAL.js} +1 -1
- package/dist/assets/{auth-store-DDMY1UvK.js → auth-store-CVtcHK0b.js} +2 -2
- package/dist/assets/auth-welcome-screen-Pw3qXxi5.js +1 -0
- package/dist/assets/{avatar-random-D1LU-C7V.js → avatar-random-B5F8Cp2E.js} +1 -1
- package/dist/assets/{background-task-detail-panel-DQeMsdpK.js → background-task-detail-panel-DtJ1ZolD.js} +1 -1
- package/dist/assets/{billing-page-BU6n42tO.js → billing-page-CmVjD4bw.js} +3 -3
- package/dist/assets/{bookmarks-page-DIzvqlcG.js → bookmarks-page-DUbnEAgS.js} +1 -1
- package/dist/assets/{browser-Nd92UvKg.js → browser-Ca2R8csw.js} +2 -2
- package/dist/assets/{build-state-BZ5ujToI.js → build-state-laR44jYU.js} +1 -1
- package/dist/assets/channels-page-route-sLLh-p2k.js +9 -0
- package/dist/assets/{chat-C0-tqEYA.js → chat-1xy90pMn.js} +1 -1
- package/dist/assets/{chat-BWQujip4.js → chat-CHVUM3s0.js} +1 -1
- package/dist/assets/{chat-markdown-message-mIiMHNFn.js → chat-markdown-message-CtLdsT2K.js} +1 -1
- package/dist/assets/{checkout-continuation-UVo_MUjH.js → checkout-continuation-BvY4Kjz7.js} +1 -1
- package/dist/assets/{checkout-page-C1hWo56h.js → checkout-page-CWRkiEj1.js} +1 -1
- package/dist/assets/checkout-return-target-_Y86sfo0.js +1 -0
- package/dist/assets/{client-perf-DHnnpVkx.js → client-perf-BZu5XQCP.js} +1 -1
- package/dist/assets/{command-palette-C6fyPEFS.js → command-palette-B6PZe9A0.js} +1 -1
- package/dist/assets/command-palette-window-page-BYkkAV88.js +1 -0
- package/dist/assets/{community-page-DK1RRzQb.js → community-page-Dd84pjdI.js} +1 -1
- package/dist/assets/companion-surface-CZHv2avR.js +1 -0
- package/dist/assets/companion-surface-page-BvDSOFVH.js +1 -0
- package/dist/assets/{composer-settings-Bs2Ux46E.js → composer-settings-DBAb6W2i.js} +1 -1
- package/dist/assets/{connect-page-DcyvGKph.js → connect-page-DiO1EqEC.js} +1 -1
- package/dist/assets/{consent-controls-BqSz1Rrx.js → consent-controls-B_zCicqo.js} +1 -1
- package/dist/assets/{contacts-page-route--H1bhesC.js → contacts-page-route-fUfbhwZ5.js} +1 -1
- package/dist/assets/{conversation-cache-C3KMXxZQ.js → conversation-cache-qk0nNm6Q.js} +1 -1
- package/dist/assets/{conversation-navigation-DQEOhOXf.js → conversation-navigation-B_4jZ9Z2.js} +1 -1
- package/dist/assets/{conversation-queries-Crrs0Ih6.js → conversation-queries-M4Inozp_.js} +1 -1
- package/dist/assets/{conversation-selection-BFTHfyYb.js → conversation-selection-4ubh2ui-.js} +1 -1
- package/dist/assets/{credential-entry-page-DNW0ZIUD.js → credential-entry-page--HYBfvoW.js} +1 -1
- package/dist/assets/{credentials-page-BUxLoFkv.js → credentials-page-C-e4DqWt.js} +1 -1
- package/dist/assets/{csv-preview-FnIpBtF1.js → csv-preview-T_KT_vef.js} +1 -1
- package/dist/assets/{debug-page-01b8L6vC.js → debug-page-Be5Y5TVM.js} +2 -2
- package/dist/assets/{deploy-dialogs-I_QAK81w.js → deploy-dialogs-CgicOESj.js} +1 -1
- package/dist/assets/{deploy-store-C-WH19q9.js → deploy-store-dyN183E8.js} +1 -1
- package/dist/assets/{desktop-voice-activity-CPOU-25i.js → desktop-voice-activity-D1BSf0I-.js} +1 -1
- package/dist/assets/{detail-card-BzCuPjtL.js → detail-card-Bqnvs6YE.js} +1 -1
- package/dist/assets/{detail-drawer-CYUmZIyK.js → detail-drawer-j2jaITAL.js} +1 -1
- package/dist/assets/{detail-shell-B1BZYIqh.js → detail-shell-D1UEZCzz.js} +1 -1
- package/dist/assets/{developer-page-DshJ0gl6.js → developer-page-DD8xa8mQ.js} +1 -1
- package/dist/assets/{diagnostics-BrWbafo7.js → diagnostics-CwFqcLv_.js} +1 -1
- package/dist/assets/{doctor-handoff-store-CX39mMuw.js → doctor-handoff-store-Cy96Na-O.js} +1 -1
- package/dist/assets/{document-viewer-container-Bb7omFZS.js → document-viewer-container-BMmSidmj.js} +2 -2
- package/dist/assets/{document-viewer-page-Cyul2rIj.js → document-viewer-page-tTTco75r.js} +1 -1
- package/dist/assets/{emails-page-CArz1548.js → emails-page-CJM4OS94.js} +1 -1
- package/dist/assets/{esm-DYyr0ITx.js → esm-BD6nxr-q.js} +2 -2
- package/dist/assets/{esm-DjphWBuP.js → esm-BaEdQNCe.js} +2 -2
- package/dist/assets/esm-CtKndoc9.js +2 -0
- package/dist/assets/{esm-CfdMbmKl.js → esm-DTIJZw37.js} +2 -2
- package/dist/assets/{esm-tSqvpvZa.js → esm-FpGTFn5W.js} +2 -2
- package/dist/assets/{esm-L7cqLUll.js → esm-kYXyJ2zw.js} +2 -2
- package/dist/assets/{esm-DbEwZ3Za.js → esm-nl105Ya0.js} +2 -2
- package/dist/assets/{external-anchor-DQhNmTOb.js → external-anchor-CLy6d_za.js} +1 -1
- package/dist/assets/feed-item-status-actions--CCeCtuw.js +1 -0
- package/dist/assets/file-markdown-C1rEGVrN.js +2 -0
- package/dist/assets/first-run-scope-DdSaiULx.js +1 -0
- package/dist/assets/format-usd-tespTIex.js +1 -0
- package/dist/assets/{funnel-events-BfR30ND5.js → funnel-events-BP3XPaB5.js} +1 -1
- package/dist/assets/general-page-Bi87XguF.js +1 -0
- package/dist/assets/{haptics-Sti0ZroX.js → haptics-D3hzTCtH.js} +2 -2
- package/dist/assets/{hatching-screen-DUCKM3qi.js → hatching-screen-DA0yyXD1.js} +1 -1
- package/dist/assets/home-page-route-BSoWksW0.js +1 -0
- package/dist/assets/{hosting-screen-By2Dt_ov.js → hosting-screen-cfhZ-ct7.js} +1 -1
- package/dist/assets/{i18n--HmJLuhM.js → i18n-C9hRT4Lf.js} +3 -3
- package/dist/assets/{identity-page-route-4IEB7D_s.js → identity-page-route-BjSsi8PM.js} +1 -1
- package/dist/assets/index-BmDctEOW.css +2 -0
- package/dist/assets/{index-CflMsKlP.js → index-I9kwAKzY.js} +3 -3
- package/dist/assets/{ingest-C3QOaKA5.js → ingest-DXklElaR.js} +1 -1
- package/dist/assets/{inspect-page-D3vuZY29.js → inspect-page-naqIziez.js} +3 -3
- package/dist/assets/{integrations-page-Ck4sUGfr.js → integrations-page-zrUmh2xn.js} +1 -1
- package/dist/assets/{intelligence-layout-2iu6OgCh.js → intelligence-layout-CXzIl0Vl.js} +1 -1
- package/dist/assets/{invalidate-memory-queries-CSQ9nfIN.js → invalidate-memory-queries-C4-KSsdB.js} +1 -1
- package/dist/assets/{latest-assistant-text-hKWwKxXi.js → latest-assistant-text-JCjtByys.js} +1 -1
- package/dist/assets/{library-detail-page-DcRn2wsJ.js → library-detail-page-CyWiXwb9.js} +1 -1
- package/dist/assets/{library-page-Db5Pstgx.js → library-page-CzcvMljL.js} +1 -1
- package/dist/assets/{local-runtime-upgrade-T5WFNI2L.js → local-runtime-upgrade-BkoG5uVr.js} +1 -1
- package/dist/assets/{login-flow-Bprf1KQp.js → login-flow-D6ivg6PM.js} +1 -1
- package/dist/assets/login-page-Dmpz0GgT.js +1 -0
- package/dist/assets/{logout-page-HF_SMBkj.js → logout-page-CI3LDcqG.js} +1 -1
- package/dist/assets/{logs-layout-CNyrG8d2.js → logs-layout-BHP-ADUq.js} +1 -1
- package/dist/assets/{markdown-preview-CYSaj1MV.js → markdown-preview-Dx8E021p.js} +1 -1
- package/dist/assets/{memory-page-route-DDdpEiCD.js → memory-page-route-qvBEERTa.js} +1 -1
- package/dist/assets/memory-router-playground-page-Bnxf4hzQ.js +1 -0
- package/dist/assets/{message-files-panel-25T5M1Ct.js → message-files-panel-ZPa7eZHc.js} +1 -1
- package/dist/assets/{messages-DJ6wO978.js → messages-CPTfRZA4.js} +1 -1
- package/dist/assets/{metric-card-Bg72JUq3.js → metric-card-bXd-f58c.js} +1 -1
- package/dist/assets/multi-activity-group-AECQlBbV.js +1 -0
- package/dist/assets/native-anchor-Bn22ZLay.js +1 -0
- package/dist/assets/{native-biometric-BxYhgb-X.js → native-biometric-D9IxNvJM.js} +1 -1
- package/dist/assets/{native-deep-link-C-s7GeV-.js → native-deep-link-IwasVyFQ.js} +2 -2
- package/dist/assets/{native-file-B3U837ed.js → native-file-BpFW1c_c.js} +2 -2
- package/dist/assets/{navigation-resolver-D4kCxpGf.js → navigation-resolver-jIQ5B6JB.js} +1 -1
- package/dist/assets/{not-found-DlCb1TjZ.js → not-found-ui-gcXqK.js} +1 -1
- package/dist/assets/{notifications-CZJragaI.js → notifications-DK6b8YVI.js} +1 -1
- package/dist/assets/{notifications-page-D7nqzDdY.js → notifications-page-GRXZE_lL.js} +1 -1
- package/dist/assets/{oauth-complete-page-4tmCqzLC.js → oauth-complete-page-7NZZRVcj.js} +1 -1
- package/dist/assets/{oauth-connection-utils-DmZFWfiy.js → oauth-connection-utils-19Tfw-lp.js} +1 -1
- package/dist/assets/{oauth-popup-complete-page-CjVEoYgl.js → oauth-popup-complete-page-Ci39YXpe.js} +1 -1
- package/dist/assets/{onboarding-step-layout-BfHbyjc0.js → onboarding-step-layout-2G2ptxpI.js} +1 -1
- package/dist/assets/open-workspace-file-CYf_Tqw3.js +2 -0
- package/dist/assets/{operational-status-T7FDD0t5.js → operational-status-CMN32PL8.js} +1 -1
- package/dist/assets/page-shell-C3ZmdIop.js +1 -0
- package/dist/assets/page-surface-store-DJLLsNFC.js +1 -0
- package/dist/assets/{pairing-page-CweLlHZS.js → pairing-page-YPN7ISIr.js} +1 -1
- package/dist/assets/{pdf-file-preview-6vptz6t6.js → pdf-file-preview-udA0Apx_.js} +1 -1
- package/dist/assets/{pdf-preview-sG04pSiE.js → pdf-preview-6Xfl1tO1.js} +2 -2
- package/dist/assets/{personality-page-DV3W2t42.js → personality-page-CLsRq5L2.js} +1 -1
- package/dist/assets/{plans-page-D-z14zHg.js → plans-page-DkVXE0Jv.js} +1 -1
- package/dist/assets/{platform-detection-Dt0-jSAU.js → platform-detection-zth6eCY8.js} +1 -1
- package/dist/assets/{platform-login-notice-jeJJGuqn.js → platform-login-notice-CvFpWLJY.js} +1 -1
- package/dist/assets/{platform-loopback-page-y_4YDCry.js → platform-loopback-page-B8cGk07e.js} +1 -1
- package/dist/assets/{preview-error-BkNW-Vj0.js → preview-error-gCViZZRw.js} +1 -1
- package/dist/assets/{privacy-page-BXSqDC_-.js → privacy-page-BxJ2Cuev.js} +1 -1
- package/dist/assets/{privacy-screen-BkGGAYzN.js → privacy-screen-DlSj_9FT.js} +1 -1
- package/dist/assets/{provider-callback-page-C-bl_GDk.js → provider-callback-page-BPp1TM7J.js} +1 -1
- package/dist/assets/{provider-signup-page-PSLa_T38.js → provider-signup-page-Cv9_b_58.js} +1 -1
- package/dist/assets/{provisioning-targets-QWEnNCue.js → provisioning-targets-DDUZDQ_a.js} +1 -1
- package/dist/assets/{push-registration-BMwgTQHf.js → push-registration-CH_t0mI8.js} +2 -2
- package/dist/assets/{remove-from-device-dialog-BDRSkSad.js → remove-from-device-dialog-DeJ_gAmf.js} +1 -1
- package/dist/assets/{research-facts-_ZlA6tzF.js → research-facts-C2cY_gU2.js} +1 -1
- package/dist/assets/{research-mock-page-PPKtT6UI.js → research-mock-page-CB1_bEoa.js} +1 -1
- package/dist/assets/research-onboarding-route-BY3X_d2-.js +50 -0
- package/dist/assets/{research-results-view-BFBI--6l.js → research-results-view-BcQs2Zh9.js} +1 -1
- package/dist/assets/{retire-confirm-dialog-DPyqO3ao.js → retire-confirm-dialog-f-A5OVYj.js} +1 -1
- package/dist/assets/{review-terms-screen-Cba1alNi.js → review-terms-screen-CI_29cnc.js} +1 -1
- package/dist/assets/routes-OwGjl0BS.js +24 -0
- package/dist/assets/{runtime-upgrade-banner-BrXnDFJZ.js → runtime-upgrade-banner-Cj9E7kWP.js} +2 -2
- package/dist/assets/{sandbox-bridge-CXqBkVsW.js → sandbox-bridge-Dj1pIOXJ.js} +1 -1
- package/dist/assets/{schedules-page-D81oQFHC.js → schedules-page-0V6ECw0t.js} +1 -1
- package/dist/assets/{section-membership-B23vBXXp.js → section-membership-vg-XaMPS.js} +1 -1
- package/dist/assets/{select-assistant-screen-Bpp_Fhfx.js → select-assistant-screen-BZxPQqe4.js} +1 -1
- package/dist/assets/{self-hosted-servers-DYKQjALI.js → self-hosted-servers-BviPyNnl.js} +1 -1
- package/dist/assets/settings-CEQzAg2m.js +1 -0
- package/dist/assets/{settings-divider-DGdHGRSV.js → settings-divider-C0NZsB-L.js} +1 -1
- package/dist/assets/{settings-layout-Vv6ixknD.js → settings-layout-DgNBNUT7.js} +1 -1
- package/dist/assets/settings-navigation-CVw10LL_.js +1 -0
- package/dist/assets/{share-feedback-modal-BIIdahKH.js → share-feedback-modal-PlN6X3Pm.js} +2 -2
- package/dist/assets/{sidebar-tree-BNzVigoN.js → sidebar-tree-Bp0eeKf2.js} +1 -1
- package/dist/assets/{signup-page-DwghsKON.js → signup-page-gqz5_wG1.js} +1 -1
- package/dist/assets/{site-favicon-D5oxJG4i.js → site-favicon-Cu07pwc9.js} +1 -1
- package/dist/assets/{skill-detail-page-DrVoo07c.js → skill-detail-page-c0s3w3K3.js} +1 -1
- package/dist/assets/{skill-detail-panel-Co6OpnMY.js → skill-detail-panel-NYXq557_.js} +1 -1
- package/dist/assets/{skills-CAAcLlNJ.js → skills-5MnTu98B.js} +1 -1
- package/dist/assets/{src-qDZBwoEm.js → src-CImIAPTd.js} +1 -1
- package/dist/assets/{start-screen-CO55WEqw.js → start-screen-CHO19RCi.js} +1 -1
- package/dist/assets/{status-badge-pill-CoGc_Kjf.js → status-badge-pill-D8m98tJa.js} +1 -1
- package/dist/assets/{stt-language-picker-modal-7-gnUFiL.js → stt-language-picker-modal-BXLEBM7b.js} +1 -1
- package/dist/assets/{subagent-detail-panel-B7yd49jl.js → subagent-detail-panel-CrbpQRzW.js} +1 -1
- package/dist/assets/{subagent-store-D79M-K__.js → subagent-store-DqKEBlAM.js} +1 -1
- package/dist/assets/{superpowers-page-B0zX5FZy.js → superpowers-page-B5WGXphq.js} +1 -1
- package/dist/assets/{swipe-action-reveal-Ctx7MIFN.js → swipe-action-reveal-Ai9lRgUU.js} +1 -1
- package/dist/assets/{system-events-page-7z3m1kM5.js → system-events-page-_aap_0av.js} +1 -1
- package/dist/assets/{telegram-setup-wizard-DhIkHgMe.js → telegram-setup-wizard-BENKNAuh.js} +1 -1
- package/dist/assets/{text-preview-DFo5f2uH.js → text-preview-DUlKYC4u.js} +1 -1
- package/dist/assets/{theme-stage-page-CmF6f7RN.js → theme-stage-page-CbGuxQ23.js} +1 -1
- package/dist/assets/{tiptap-document-editor-DDfxW_SE.js → tiptap-document-editor-0vqw7hch.js} +1 -1
- package/dist/assets/{tool-detail-panel-Zx64Drl4.js → tool-detail-panel-C2wUYsf2.js} +1 -1
- package/dist/assets/{trust-rules-api-BtUxkSk-.js → trust-rules-api-DRJ1qP-y.js} +1 -1
- package/dist/assets/{upgrade-cancel-page-H2SezHRI.js → upgrade-cancel-page-Dbd3VJdm.js} +1 -1
- package/dist/assets/{upgrade-success-page-DoM6CoFp.js → upgrade-success-page-CHbEmpjg.js} +1 -1
- package/dist/assets/{use-assistant-capability-CmwC8eoT.js → use-assistant-capability-C-yHcMH4.js} +1 -1
- package/dist/assets/{use-assistant-identity-details-DqD-wXki.js → use-assistant-identity-details-u9sG9ip2.js} +1 -1
- package/dist/assets/{use-attachment-preview-BfZe160h.js → use-attachment-preview-Cq_IWTdT.js} +2 -2
- package/dist/assets/{use-attachment-squares-jfCXyibr.js → use-attachment-squares-BKi30wmg.js} +1 -1
- package/dist/assets/{use-bookmarks-Dg-dtmf5.js → use-bookmarks-Bl4tx8xK.js} +1 -1
- package/dist/assets/{use-checkout-dismiss-refresh-lXbrGudW.js → use-checkout-dismiss-refresh-BHuxVDUc.js} +1 -1
- package/dist/assets/use-command-palette-sections-CvNjev8s.js +1 -0
- package/dist/assets/{use-edge-swipe-CJ8niuZL.js → use-edge-swipe-C4IrskOL.js} +1 -1
- package/dist/assets/use-edge-swipe-back-CiO9raEw.js +2 -0
- package/dist/assets/{use-edit-app-CAyA09nW.js → use-edit-app-ByAfCYIL.js} +1 -1
- package/dist/assets/{use-is-org-ready-BYJTuCXo.js → use-is-org-ready-GDBxqujc.js} +1 -1
- package/dist/assets/use-onboarding-login-BdVTfZ3o.js +1 -0
- package/dist/assets/{use-platform-assistant-id-CuqHJket.js → use-platform-assistant-id-B7TrEBmf.js} +1 -1
- package/dist/assets/{use-platform-gate-DJ7NtOkG.js → use-platform-gate-DG9Xg3Hs.js} +1 -1
- package/dist/assets/{use-return-to-short-circuit-CXFMS-0F.js → use-return-to-short-circuit-EtY8cSC7.js} +1 -1
- package/dist/assets/{use-side-list-room-DtmLatRX.js → use-side-list-room-CUXPQyjw.js} +1 -1
- package/dist/assets/{use-skill-actions-DjwFUePB.js → use-skill-actions-CdbZjq6a.js} +1 -1
- package/dist/assets/{use-sticky-profiles-BYBk-2VZ.js → use-sticky-profiles-vQLFyEh0.js} +1 -1
- package/dist/assets/{use-stt-language-selection-82DrT6kd.js → use-stt-language-selection-CK6bUfVS.js} +1 -1
- package/dist/assets/{use-subagent-card-data-CTkK6bHj.js → use-subagent-card-data-DlVOBxXw.js} +1 -1
- package/dist/assets/use-transcript-message-by-id-FmIIrRsf.js +1 -0
- package/dist/assets/{use-transcript-messages-BvoNGyuA.js → use-transcript-messages-Q1PBxvSF.js} +1 -1
- package/dist/assets/{use-voice-sample-preview-BHCiYpHq.js → use-voice-sample-preview-CZoWWEeH.js} +1 -1
- package/dist/assets/useTranslation-D9pPv-bA.js +1 -0
- package/dist/assets/{voice-page-CqgBuO-G.js → voice-page-B1mJ2hkc.js} +1 -1
- package/dist/assets/{voice-providers-note-DmCKsoh8.js → voice-providers-note-TDQxSwUj.js} +1 -1
- package/dist/assets/{web-C6ruWL7-.js → web-CxX3pST-.js} +1 -1
- package/dist/assets/{web-ByBZa2-p.js → web-D1mJSG8v.js} +1 -1
- package/dist/assets/welcome-screen-DPXQU47t.js +1 -0
- package/dist/assets/{workflow-detail-panel-CXQymzrA.js → workflow-detail-panel-C0kN-iH3.js} +1 -1
- package/dist/assets/{workflow-store-DMcem5b6.js → workflow-store-BXqyb8CL.js} +1 -1
- package/dist/assets/{workspace-page-CHN0AzFJ.js → workspace-page-Mj_A1eeR.js} +1 -1
- package/dist/assets/{workspace-tree-query-BmugmuTC.js → workspace-tree-query-Dyls8wmV.js} +1 -1
- package/dist/index.html +93 -93
- package/package.json +1 -1
- package/dist/assets/account-C-_tLpl9.js +0 -1
- package/dist/assets/api-Cet3wU2m.js +0 -1
- package/dist/assets/channels-page-route-BVzZL9QF.js +0 -9
- package/dist/assets/checkout-return-target-Bj6qL3Z7.js +0 -1
- package/dist/assets/command-palette-window-page-nIdxmxPV.js +0 -1
- package/dist/assets/companion-surface-page-BZHSeP1U.js +0 -1
- package/dist/assets/esm-B8RIzuiy.js +0 -2
- package/dist/assets/file-markdown-Br-X9E8g.js +0 -2
- package/dist/assets/first-run-scope-CGwas_dv.js +0 -1
- package/dist/assets/format-usd-BSn1PAt3.js +0 -1
- package/dist/assets/general-page-DqxymzlR.js +0 -1
- package/dist/assets/home-page-route--ZWIkqRA.js +0 -1
- package/dist/assets/home-tool-permission-card-BGkMa_5c.js +0 -1
- package/dist/assets/index-yCM21OWQ.css +0 -2
- package/dist/assets/login-page-DsrM-8gG.js +0 -1
- package/dist/assets/memory-router-playground-page-Bvv1GiG1.js +0 -1
- package/dist/assets/multi-activity-group-CvLkSXkq.js +0 -1
- package/dist/assets/native-anchor-WUfwamgX.js +0 -1
- package/dist/assets/native-auth-error-B4gY5JEl.js +0 -1
- package/dist/assets/open-workspace-file-CDO9erng.js +0 -2
- package/dist/assets/page-shell-3Yi5Ezsv.js +0 -1
- package/dist/assets/page-surface-store-d61YqYCV.js +0 -1
- package/dist/assets/research-onboarding-route-Cv91i-43.js +0 -50
- package/dist/assets/routes-Cu81Z_6p.js +0 -24
- package/dist/assets/settings-DWADkKSC.js +0 -1
- package/dist/assets/settings-navigation-Dt128ttq.js +0 -1
- package/dist/assets/use-command-palette-sections-D3ZIddUs.js +0 -1
- package/dist/assets/use-edge-swipe-back-Dl-lRTON.js +0 -2
- package/dist/assets/use-onboarding-login-BosEuDpc.js +0 -1
- package/dist/assets/use-transcript-message-by-id-DTaTEqgT.js +0 -1
- package/dist/assets/useTranslation-DdVCKPgw.js +0 -1
- package/dist/assets/welcome-screen-Cghao5xK.js +0 -1
- /package/dist/assets/{app-types-DhugcUAb.js → app-types-DET4dder.js} +0 -0
- /package/dist/assets/{archive-redirect-page-DddErONf.js → archive-redirect-page-LFqfq3Zx.js} +0 -0
- /package/dist/assets/{billing-redirect-page-CaXtswvd.js → billing-redirect-page-B6zuKMxb.js} +0 -0
- /package/dist/assets/{build.umd-Bnx74y6d.js → build.umd-CwkQd6wk.js} +0 -0
- /package/dist/assets/{channels-BdtsaKuZ.js → channels-CXuBInAc.js} +0 -0
- /package/dist/assets/{common-CYa3Lx5T.js → common-EmSgsWNa.js} +0 -0
- /package/dist/assets/{contacts-Adtv7fIG.js → contacts-BRU7ohw2.js} +0 -0
- /package/dist/assets/{credential-requests-BjLAoauv.js → credential-requests-BbBZKJHx.js} +0 -0
- /package/dist/assets/{danger-zone-redirect-page-C45lMfXW.js → danger-zone-redirect-page-BuIG9f9S.js} +0 -0
- /package/dist/assets/{definitions-BvE4YCqW.js → definitions-Co0yLSy_.js} +0 -0
- /package/dist/assets/{definitions-BOuhvvgh.js → definitions-Yz8Uao4u.js} +0 -0
- /package/dist/assets/{devices-redirect-page-CTLNcuXg.js → devices-redirect-page-BoKYF1E9.js} +0 -0
- /package/dist/assets/{diff-rows-CMQi83GC.js → diff-rows-BrFK496i.js} +0 -0
- /package/dist/assets/{emoji-catalog-data-zwouAP3d.js → emoji-catalog-data-BIIBfSqk.js} +0 -0
- /package/dist/assets/{environment-store-CgcCuCfv.js → environment-store-C4So_j-o.js} +0 -0
- /package/dist/assets/{esm-B3RQnhQB.js → esm-BJhqsukI.js} +0 -0
- /package/dist/assets/{esm-U4mAZE_5.js → esm-CPFvOH-c.js} +0 -0
- /package/dist/assets/{external-urls-B0QJBkzP.js → external-urls-Bg18AU4S.js} +0 -0
- /package/dist/assets/{file-editor-C2Qy2Ujg.js → file-editor-BwdObVSu.js} +0 -0
- /package/dist/assets/{home-DaG8KIqs.js → home-BwSxL4rM.js} +0 -0
- /package/dist/assets/{intelligence-B920vsi4.js → intelligence-DXpXyKbw.js} +0 -0
- /package/dist/assets/{keyboard-shortcuts-redirect-page-DSUfuOqd.js → keyboard-shortcuts-redirect-page-DSnux9sJ.js} +0 -0
- /package/dist/assets/{library-DqQriY4U.js → library-CuKVNDEp.js} +0 -0
- /package/dist/assets/{link-click-3KBltS8g.js → link-click-BsxbQxDe.js} +0 -0
- /package/dist/assets/{logs-s74ABgur.js → logs-Blq4k473.js} +0 -0
- /package/dist/assets/{machine-sizes-BEgYDPIN.js → machine-sizes-DzJ0TVYS.js} +0 -0
- /package/dist/assets/{media-preview-C0jyQw5_.js → media-preview-HgLvcAQ9.js} +0 -0
- /package/dist/assets/{onboarding-orcvuvpJ.js → onboarding-DK0I_g8T.js} +0 -0
- /package/dist/assets/{page-empty-state-BG1VeXc8.js → page-empty-state-CzHxZkBR.js} +0 -0
- /package/dist/assets/{password-reset-page-D4zTOGaM.js → password-reset-page-D8ONrPU-.js} +0 -0
- /package/dist/assets/{pdf-CjG-njep.js → pdf-UON6A_nT.js} +0 -0
- /package/dist/assets/{plugin-attribution-CcHpmela.js → plugin-attribution-C0u-eDRH.js} +0 -0
- /package/dist/assets/{plugin-detail-page-DWr7S8VR.js → plugin-detail-page--CvX0OXv.js} +0 -0
- /package/dist/assets/{plugins-page-BZLdfa7d.js → plugins-page-CZ16U_6n.js} +0 -0
- /package/dist/assets/{profile-metadata-CsakJtzD.js → profile-metadata-D9zzZn4_.js} +0 -0
- /package/dist/assets/{provider-key-CsMdPcM5.js → provider-key-DpdSx5gG.js} +0 -0
- /package/dist/assets/{radio-card-nav-D_-kt3tm.js → radio-card-nav-CrM7VJUk.js} +0 -0
- /package/dist/assets/{remote-web-DxCgPeJc.js → remote-web-DBCYTF2P.js} +0 -0
- /package/dist/assets/{schedules-D3oXqJMY.js → schedules-C3wE8OML.js} +0 -0
- /package/dist/assets/{schedules-rtwsTU7E.js → schedules-Co4-ymK5.js} +0 -0
- /package/dist/assets/{security-redirect-page-DbXxE5Ym.js → security-redirect-page-D6x3MANY.js} +0 -0
- /package/dist/assets/{setting-row-C0mDhzZy.js → setting-row-BvQpFvtr.js} +0 -0
- /package/dist/assets/{signup-shell-DnLhiMGV.js → signup-shell-DW976E_0.js} +0 -0
- /package/dist/assets/{skill-icon-sj-wJGzd.js → skill-icon-yVnZg-J1.js} +0 -0
- /package/dist/assets/{skills-page-yj4WNgG3.js → skills-page-B_VTCiN2.js} +0 -0
- /package/dist/assets/{sounds-page-Co2G6n-5.js → sounds-page-BdSO1UIf.js} +0 -0
- /package/dist/assets/{system-events-redirect-page-Dbxsscgn.js → system-events-redirect-page-DbyqOqe_.js} +0 -0
- /package/dist/assets/{terminal-og9TTXfZ.js → terminal-_tzbWcM4.js} +0 -0
- /package/dist/assets/{usage-redirect-page-NZfMbBv6.js → usage-redirect-page-DyTnwv4x.js} +0 -0
- /package/dist/assets/{use-skill-detail-files-DNaNHaP0.js → use-skill-detail-files-Bg4G44J3.js} +0 -0
- /package/dist/assets/{use-supports-credentials-settings-BCD9S39r.js → use-supports-credentials-settings-Cj-Py42f.js} +0 -0
- /package/dist/assets/{use-truncated-blob-text-CHF4X4vL.js → use-truncated-blob-text-BYAPiP8I.js} +0 -0
- /package/dist/assets/{weather-forecast-display-8i3-jfUZ.js → weather-forecast-display-D3IBgGHv.js} +0 -0
- /package/dist/assets/{web-DXzSQlx4.js → web-B60tNeyj.js} +0 -0
- /package/dist/assets/{web-Crg_ekZH.js → web-BSizndvP.js} +0 -0
- /package/dist/assets/{web-to2ecOqW.js → web-CXad-fWd.js} +0 -0
- /package/dist/assets/{web-xhYMQG7j.js → web-Cpz2h_dP.js} +0 -0
- /package/dist/assets/{web-eg_n1fSm.js → web-Cr238HhI.js} +0 -0
- /package/dist/assets/{web-B5o07_c8.js → web-Nd-L7NoL.js} +0 -0
- /package/dist/assets/{web-Ctf28EEk.js → web-W2HEHjFb.js} +0 -0
- /package/dist/assets/{workspace-BBqltPoi.js → workspace-BFa6JWKe.js} +0 -0
- /package/dist/assets/{xterm-DJn4nvHR.js → xterm-DFQikp5h.js} +0 -0
- /package/dist/assets/{xterm-addon-fit-DEYHenuA.js → xterm-addon-fit-B04vX_IV.js} +0 -0
|
@@ -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,h 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"./useMutation-D2YPyfEH.js";import{t as c}from"./jsx-runtime-BJ8jcmzB.js";import{t as l}from"./typography-DekrYXvs.js";import{t as u}from"./arrow-left-Ciai6BHG.js";import{t as d}from"./circle-check-BlOeCme9.js";import{t as f}from"./coins-CveNnhLe.js";import{A as p,B as m,C as h,D as g,E as _,F as v,I as y,L as b,M as x,N as S,P as C,T as w,V as T,_ as E,a as D,d as O,f as ee,i as te,j as ne,n as re,o as k,r as ie,t as ae,w as oe,x as se,y as A,z as ce}from"./use-checkout-dismiss-refresh-lXbrGudW.js";import{t as j}from"./hard-drive-BV9-fN_J.js";import{t as le}from"./loader-circle-DYe85z3g.js";import{t as M}from"./sliders-horizontal-CQIT2VGH.js";import{t as N}from"./triangle-alert-43gIbLca.js";import{t as P}from"./tag-Ddzwz3ij.js";import{t as F}from"./modal-UYNawsIu.js";import{n as I}from"./toast-DqqWkjsh.js";import{t as ue}from"./select-BKyejRky.js";import{t as L}from"./is-electron-wgAC5Mzb.js";import{l as de}from"./auth-store-DDMY1UvK.js";import{C as fe}from"./native-biometric-BxYhgb-X.js";import{d as pe,t as me}from"./routes-B7wRw3UT.js";import{i as he,r as ge,t as _e}from"./use-platform-gate-DJ7NtOkG.js";import{r as ve}from"./use-is-org-ready-BYJTuCXo.js";import{n as ye}from"./browser-Nd92UvKg.js";import{at as be,ft as xe,gt as Se,ht as Ce,it as we,lt as Te,mt as Ee,ot as De,pt as R,st as Oe}from"./react-query.gen-CwRPAiHT.js";import{t as ke}from"./use-bundled-avatar-components-C_6xUsW1.js";import{t as Ae}from"./native-anchor-WUfwamgX.js";import{t as je}from"./checkout-return-target-Bj6qL3Z7.js";import{i as Me,r as z,s as Ne,t as B}from"./machine-sizes-BEgYDPIN.js";var V=e(t(),1),Pe=`__none__`,H=`No extra credits`,U=`__baseline__`,W=`${Me[B]} machine (${z[B]})`;function Fe(e){let{proPlan:t,seed:n,machineTier:r,storageTier:i,creditChoice:a}=e,o=t.machine_tiers,s=t.storage_tiers,c=t.credit_tiers??[],l=r===U,u=l?null:o.find(e=>e.tier===r)??null,d=l?W:u?.description??null,f=s.find(e=>e.tier===i)??null,p=a&&a!==`__none__`?c.find(e=>e.tier===a)??null:null,m=n!=null&&n.machineTier!=null?o.find(e=>e.tier===n.machineTier)??null:null,h=n==null?null:n.machineTier??`__baseline__`,g=n==null?void 0:n.machineTier==null?W:m?.description,_=n==null?null:s.find(e=>e.tier===n.storageTier)??null,y=n!=null&&n.creditTier!=null?c.find(e=>e.tier===n.creditTier)??null:null,S=n!=null&&n.machineTier!=null&&m==null,C=n!=null&&_==null,w=[{key:`base`,label:`Platform fee: ${v(t.base_price_cents)}`,changed:!1}];if(d!=null){let e=n!=null&&!S&&h!==r;w.push({key:`machine`,label:d,previousLabel:e?g:void 0,changed:e})}if(f!=null){let e=n!=null&&!C&&_?.tier!==f.tier;w.push({key:`storage`,label:b(f.storage_gib),previousLabel:e&&_!=null?b(_.storage_gib):void 0,changed:e})}let T=a===`__none__`?H:p==null?null:x(p.credits_usd);if(T!=null){let e=n!=null&&(n.creditTier??`__none__`)!==a,t=n?.creditTier==null?H:y==null?void 0:x(y.credits_usd);w.push({key:`credit`,label:T,previousLabel:e?t:void 0,changed:e})}let E=t.base_price_cents+(u?.price_cents??0)+(f?.price_cents??0)+(p?.price_cents??0),D=S||C||n!=null&&n.creditTier!=null&&y==null;if(n==null||D)return{totalCents:E,previousTotalCents:null,deltaCents:null,rows:w};let O=t.base_price_cents+(m?.price_cents??0)+(_?.price_cents??0)+(y?.price_cents??0);return{totalCents:E,previousTotalCents:O,deltaCents:E-O,rows:w}}var Ie=`https://www.vellum.ai/docs/pricing`,G=`${Ie}#machine-sizes`,K=`${Ie}#storage`,Le=`${Ie}#credit-bundles`,q=c();function J(e){return(0,q.jsxs)(`span`,{className:`text-[12px] font-medium text-[var(--content-disabled)]`,children:[`+`,v(e)]})}function Y({label:e,docsUrl:t,docsLabel:n}){return(0,q.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,q.jsx)(`span`,{className:`text-[11px] font-medium text-[var(--content-secondary)]`,children:e}),(0,q.jsx)(`a`,{href:t,target:`_blank`,rel:`noopener noreferrer`,"aria-label":n,onClick:e=>Ae(e,t),className:`text-[11px] font-medium text-[var(--content-tertiary)] underline hover:text-[var(--content-default)]`,children:`Learn more`})]})}function Re({open:e,proPlan:t,pending:r,currentStorageGib:i,initialSelection:a,onClose:o,onContinue:s}){let c=e?a??null:null,[l,u]=(0,V.useState)(()=>c?c.machineTier??`__baseline__`:``),[p,m]=(0,V.useState)(()=>c?.storageTier??``),[h,g]=(0,V.useState)(()=>c?c.creditTier??`__none__`:``),[_,y]=(0,V.useState)({open:e,initialSelection:a});(_.open!==e||_.initialSelection!==a)&&(y({open:e,initialSelection:a}),u(c?c.machineTier??`__baseline__`:``),m(c?.storageTier??``),g(c?c.creditTier??`__none__`:``));let b=t.machine_tiers,x=(0,V.useMemo)(()=>t.storage_tiers.filter(e=>!e.legacy||e.tier===a?.storageTier),[t.storage_tiers,a?.storageTier]),w=t.credit_tiers??[],E=(0,V.useMemo)(()=>(t.credit_tiers??[]).filter(e=>!e.legacy),[t.credit_tiers]),D=e=>O(e)||e.legacy&&e.tier!==a?.storageTier||i!=null&&e.storage_gib<i,ee=a!=null&&a.machineTier==null,te=[...ee?[{value:U,label:W,icon:(0,q.jsx)(T,{className:`h-4 w-4`,"aria-hidden":!0}),disabled:!0}]:[],...b.map(e=>({value:e.tier,label:e.description,icon:(0,q.jsx)(T,{className:`h-4 w-4`,"aria-hidden":!0}),suffix:J(e.price_cents),disabled:O(e)}))],ne=x.map(e=>({value:e.tier,label:e.label,icon:(0,q.jsx)(j,{className:`h-4 w-4`,"aria-hidden":!0}),suffix:J(e.price_cents),disabled:D(e)})),re=h&&h!==`__none__`?w.find(e=>e.tier===h)??null:null,k=re?.legacy?re:null,ie=[{value:Pe,label:H,icon:(0,q.jsx)(f,{className:`h-4 w-4`,"aria-hidden":!0})},...E.map(e=>({value:e.tier,label:e.label,icon:(0,q.jsx)(f,{className:`h-4 w-4`,"aria-hidden":!0}),suffix:J(e.price_cents)})),...k?[{value:k.tier,label:k.label,icon:(0,q.jsx)(f,{className:`h-4 w-4`,"aria-hidden":!0}),suffix:J(k.price_cents),disabled:!0}]:[]],ae=l===U,oe=ae?null:b.find(e=>e.tier===l)??null,se=ae?ee?{tier:null}:null:oe==null?null:{tier:oe.tier},A=p!==``&&p===a?.storageTier,ce=x.find(e=>e.tier===p&&(A||!D(e)))??null,le=h===`__none__`||h===a?.creditTier||E.some(e=>e.tier===h),N=h!==``&&le?h:null,P=se!=null&&ce!=null&&N!=null,I=a!=null&&l===(a.machineTier??`__baseline__`)&&p===a.storageTier&&h===(a.creditTier??`__none__`),L=(0,V.useMemo)(()=>Fe({proPlan:t,seed:a??null,machineTier:l,storageTier:p,creditChoice:h}),[t,a,l,p,h]);return(0,q.jsx)(F.Root,{open:e,onOpenChange:e=>{e||o()},children:(0,q.jsx)(F.Content,{size:`lg`,"data-theme":`light`,hideCloseButton:!0,overlayClassName:`backdrop-blur-[2px]`,className:`max-w-[820px] md:min-h-[min(608px,calc(100vh-4rem))]`,children:(0,q.jsx)(F.Body,{className:`p-4`,children:(0,q.jsxs)(`div`,{className:`flex flex-col gap-8 md:flex-row md:gap-12`,children:[(0,q.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-6 md:flex-1`,children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,q.jsx)(`div`,{className:`flex shrink-0 items-center justify-center rounded-xl bg-[var(--surface-active)] p-[14px]`,children:(0,q.jsx)(M,{className:`h-6 w-6 text-[var(--content-emphasised)]`,"aria-hidden":!0})}),(0,q.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1`,children:[(0,q.jsx)(F.Title,{className:`text-[16px] font-medium text-[var(--content-emphasised)]`,children:`Create a custom plan`}),(0,q.jsx)(F.Description,{className:`mt-0 text-[14px] font-medium leading-[18px] text-[var(--content-tertiary)]`,children:`Just better.`})]})]}),(0,q.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,q.jsx)(Y,{label:`Select a machine size:`,docsUrl:G,docsLabel:`Learn more about machine sizes`}),(0,q.jsx)(ue,{"aria-label":`Machine size`,placeholder:`Select a machine size`,value:l,onChange:u,options:te})]}),(0,q.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,q.jsx)(Y,{label:`Select storage:`,docsUrl:K,docsLabel:`Learn more about storage`}),(0,q.jsx)(ue,{"aria-label":`Storage`,placeholder:`Select storage`,value:p,onChange:m,options:ne})]}),(0,q.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,q.jsx)(Y,{label:`Bundle some credits:`,docsUrl:Le,docsLabel:`Learn more about credit bundles`}),(0,q.jsx)(ue,{"aria-label":`Credit bundle`,placeholder:`Select a credit bundle`,value:h,onChange:g,options:ie})]})]}),(0,q.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-16 md:pt-[5px]`,children:[(0,q.jsx)(`span`,{className:`text-[16px] font-medium text-[var(--content-emphasised)]`,children:`Recap`}),(0,q.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,q.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,q.jsx)(`span`,{className:`text-[24px] font-medium text-[var(--content-default)]`,children:v(L.totalCents)}),L.deltaCents!=null&&L.deltaCents!==0&&L.previousTotalCents!=null&&(0,q.jsxs)(`span`,{className:`text-[12px] font-medium ${L.deltaCents>0?`text-[var(--system-positive-strong)]`:`text-[var(--system-negative-strong)]`}`,children:[S(L.deltaCents),` compared to previous (`,C(L.previousTotalCents),`)`]}),(0,q.jsx)(`span`,{className:`text-[11px] font-medium text-[var(--content-tertiary)]`,children:`Total · Billed monthly`})]}),(0,q.jsx)(`div`,{className:`h-px w-full bg-[var(--border-hover)]`}),(0,q.jsx)(`span`,{className:`text-[12px] font-medium text-[var(--content-tertiary)]`,children:`Your selection:`}),(0,q.jsx)(`ul`,{className:`flex flex-col gap-2`,children:L.rows.map(e=>(0,q.jsxs)(`li`,{className:`flex flex-col gap-2`,children:[e.previousLabel!=null&&(0,q.jsxs)(`div`,{className:`relative flex w-fit items-start gap-2`,children:[(0,q.jsx)(d,{className:`mt-0.5 h-4 w-4 shrink-0 text-[var(--content-disabled)]`,"aria-hidden":!0}),(0,q.jsx)(`s`,{className:`text-[14px] font-medium leading-[18px] text-[var(--content-disabled)] no-underline`,children:e.previousLabel}),(0,q.jsx)(`span`,{"aria-hidden":!0,className:`pointer-events-none absolute -left-1 right-0 top-[9px] h-px bg-[var(--content-disabled)]`})]}),(0,q.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,q.jsx)(d,{className:`mt-0.5 h-4 w-4 shrink-0 ${e.changed?`text-[var(--system-positive-strong)]`:`text-[var(--content-secondary)]`}`,"aria-hidden":!0}),(0,q.jsx)(`span`,{className:`text-[14px] font-medium leading-[18px] text-[var(--content-secondary)]`,children:e.label})]})]},e.key))}),(0,q.jsx)(n,{variant:`primary`,fullWidth:!0,disabled:!P||I||r,onClick:()=>{!P||I||r||s({machineTier:se.tier,storageTier:ce.tier,creditTier:N===`__none__`?null:N})},children:`Continue`}),(0,q.jsx)(n,{variant:`ghost`,fullWidth:!0,disabled:r,onClick:o,children:`Cancel`})]})]})]})})})})}var ze=`Select custom CPU power, Ram and Storage. Or just throw in some tokens.`;function Be({className:e,onConfigure:t,configureDisabled:r,isCurrent:i=!1,currentSummary:a}){return(0,q.jsxs)(`div`,{className:`flex w-full flex-col items-center gap-8 ${e??``}`,children:[(0,q.jsx)(`p`,{className:`text-center text-[20px] font-medium text-[var(--content-tertiary)]`,children:`Need something more tailored to your needs?`}),(0,q.jsxs)(`div`,{className:`flex w-[840px] max-w-full flex-col items-start gap-4 rounded-2xl bg-[var(--surface-lift)] p-4 sm:flex-row sm:items-center sm:justify-between sm:gap-6`,children:[(0,q.jsxs)(`div`,{className:`flex min-w-0 items-center gap-4`,children:[(0,q.jsx)(`div`,{className:`flex shrink-0 items-center justify-center rounded-xl bg-[var(--content-disabled)] p-[14px]`,children:(0,q.jsx)(M,{className:`h-6 w-6 text-[var(--aux-white)]`,"aria-hidden":!0})}),(0,q.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1`,children:[(0,q.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,q.jsx)(`span`,{className:`text-[16px] font-medium text-[var(--content-emphasised)]`,children:`Custom Plan`}),i?(0,q.jsx)(P,{className:`bg-[var(--feed-digest-weak)] text-[var(--content-default)]`,children:`Your Current Plan`}):null]}),(0,q.jsx)(`span`,{className:`text-[14px] font-medium text-[var(--content-tertiary)]`,children:a??ze})]})]}),(0,q.jsx)(`div`,{className:`flex shrink-0 items-center gap-3`,children:(0,q.jsx)(n,{variant:`outlined`,onClick:t,disabled:r,children:`Configure`})})]})]})}function Ve({open:e,lostFeatures:t,pending:r,onCancel:i,onConfirm:a}){let o=t.length>0;return(0,q.jsx)(F.Root,{open:e,onOpenChange:e=>{!e&&!r&&i()},children:(0,q.jsxs)(F.Content,{size:`md`,hideCloseButton:!0,children:[(0,q.jsx)(F.Header,{icon:N,children:(0,q.jsx)(F.Title,{children:`Downgrade to Base?`})}),(0,q.jsxs)(F.Body,{children:[(0,q.jsx)(l,{as:`p`,variant:`body-medium-default`,className:`text-(--content-secondary)`,children:o?`Downgrading removes the following Pro features. You'll be taken to Stripe to cancel your subscription.`:`You'll be taken to Stripe to cancel your subscription.`}),o?(0,q.jsx)(`ul`,{className:`mt-4 list-disc space-y-2 pl-5`,children:t.map(e=>(0,q.jsx)(`li`,{children:(0,q.jsx)(l,{as:`span`,variant:`body-medium-default`,children:e})},e))}):null]}),(0,q.jsxs)(F.Footer,{children:[(0,q.jsx)(n,{variant:`outlined`,onClick:i,disabled:r,children:`Cancel`}),(0,q.jsx)(n,{variant:`danger`,onClick:a,disabled:r,"data-testid":`confirm-free-downgrade-button`,children:`Downgrade to Base`})]})]})})}function He({tierKey:e,name:t,tagline:r,priceLabel:i,priceCaption:a,ctaLabel:o,features:s,recommended:c=!1,tone:l=`dark`,isCurrent:u,intent:f=`upgrade`,pending:p,onCta:m}){let h=f===`downgrade`&&!u;return(0,q.jsxs)(`div`,{"data-theme":l,className:`flex w-full flex-col gap-3 rounded-2xl bg-[var(--surface-lift)] p-3 sm:gap-4 sm:p-4`,children:[(0,q.jsx)(w,{tier:e,size:50}),(0,q.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,q.jsxs)(`div`,{className:`flex h-8 items-center gap-2`,children:[(0,q.jsx)(`span`,{className:`text-[20px] font-medium text-[var(--content-emphasised)]`,children:t}),c&&!h&&!u?(0,q.jsx)(P,{className:`bg-[var(--feed-digest-weak)] text-[12px] font-semibold uppercase text-[var(--credits-accent)]`,children:`Recommended`}):null]}),(0,q.jsx)(`p`,{className:`overflow-hidden text-[14px] font-medium leading-[18px] text-[var(--content-tertiary)] sm:h-9`,children:r})]}),(0,q.jsx)(`div`,{className:`h-px w-full bg-[var(--border-hover)]`}),(0,q.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,q.jsx)(`span`,{className:`text-[24px] font-medium text-[var(--content-default)]`,children:i}),(0,q.jsx)(`span`,{className:`text-[11px] font-medium text-[var(--content-tertiary)]`,children:a})]}),(0,q.jsx)(n,{variant:h?`outlined`:`primary`,fullWidth:!0,disabled:u||p,onClick:m,children:u?`Current Plan`:o}),(0,q.jsx)(`div`,{className:`h-px w-full bg-[var(--border-hover)]`}),(0,q.jsxs)(`div`,{className:`flex flex-col gap-2 sm:gap-4`,children:[(0,q.jsx)(`span`,{className:`text-[12px] font-medium text-[var(--content-tertiary)]`,children:`Includes:`}),(0,q.jsx)(`ul`,{className:`flex flex-col gap-2`,children:s.map(e=>(0,q.jsxs)(`li`,{className:`flex items-start gap-2`,children:[(0,q.jsx)(d,{className:`mt-0.5 h-4 w-4 shrink-0 text-[var(--content-secondary)]`,"aria-hidden":!0}),(0,q.jsx)(`span`,{className:`text-[14px] font-medium text-[var(--content-secondary)]`,children:e})]},e))})]})]})}function Ue({enabled:e=!0}={}){let t=a(),n=ve(),r=e&&n,i=o({...Ee(),enabled:r}),c=i.data,l=c!=null&&c.plan_id!==`base`,u=o({...xe(),enabled:r&&l}),d=o({...we(),enabled:r&&l}).data?.plans.find(e=>e.id===`pro`)?.machine_tiers??[],f=e=>d.find(t=>t.tier===e)?.price_cents??null,p=s(Oe()),m=s(Te()),h=s(De()),g={machineTier:u.data?.max_machine_tier??null,storageTier:u.data?.selected_storage_tier??null,storageGib:u.data?.selected_storage_gib??null,creditTier:c?.selected_credit_tier??null},_=c!=null&&c.plan_id!==`base`&&c.status!=null&&te.has(c.status)&&c.cancel_at_period_end!==!0&&!c.cancel_at,v=!l||!u.isPending,y=!l||u.isSuccess&&u.data!=null&&!u.isFetching&&u.dataUpdatedAt>=i.dataUpdatedAt,b=p.isPending||m.isPending||h.isPending,x=()=>Promise.all([t.invalidateQueries({queryKey:Ce()}),t.invalidateQueries({queryKey:R()}),t.invalidateQueries({queryKey:be()})]);return{changeTiers:async e=>{let t=e.machineTier!==g.machineTier,n=e.storageTier!==g.storageTier,r=e.creditTier!==g.creditTier,i=f(e.machineTier),a=f(g.machineTier),o=t&&i!=null&&a!=null&&i<a,s=[];if(t&&s.push(new Promise(t=>{p.mutate({body:{machine_tier:e.machineTier}},{onSuccess:()=>t({dimension:`machine`,ok:!0}),onError:e=>t({dimension:`machine`,ok:!1,error:e})})})),n&&s.push(new Promise(t=>{m.mutate({body:{storage_tier:e.storageTier}},{onSuccess:()=>t({dimension:`storage`,ok:!0}),onError:e=>t({dimension:`storage`,ok:!1,error:e})})})),r&&s.push(new Promise(t=>{h.mutate({body:{credit_tier:e.creditTier}},{onSuccess:()=>t({dimension:`credit`,ok:!0}),onError:e=>t({dimension:`credit`,ok:!1,error:e})})})),s.length===0)return{needsResize:!1,creditChanged:!1};let c=await Promise.all(s);await x();let l=c.some(e=>e.ok&&e.dimension===`machine`)&&!o,u=c.some(e=>e.ok&&e.dimension===`storage`),d=l||u,_=c.some(e=>e.ok&&e.dimension===`credit`),v=c.filter(e=>!e.ok);if(v.length>0){let e=v.map(e=>D(e.error,`Failed to update ${e.dimension} tier.`)).join(` `);return I.error(e),d||_?{needsResize:d,creditChanged:_}:null}return{needsResize:d,creditChanged:_}},isPending:b,current:g,eligible:_,currentReady:v,currentKnown:y,primaryAssistantId:y?u.data?.primary_assistant_id??null:null}}var We=`#0A0A0B`,Ge=8e3,Ke={upgrade:`upgrade`,downgrade:`downgrade`,switch:`change`};ke();var qe=[`Small Computer`,`4 GB Storage`,`Pay-as-you-go credits`];function Je(e){return`${se(e)} Computer`}function Ye(e,t){let n=e.credits_usd??0;return[Je(e),`${e.storage_gib} GB Storage`,`${C(n*100)} in credits included`,...t]}function Xe(e,t){return A(e,t).join(` · `)}function Ze(){let e=r(),[t,c]=i(),l=a(),d=L(),f=he({platformHostedOnly:!0}),m=_e(),v=ge(),b=f===`full`&&m,x=f===`full`&&v,S=o({...Ee(),enabled:b}),C=o({...we(),enabled:b}),w=s(Se()),{changePackage:T,isPending:O}=ie(),{changeTiers:te,isPending:se,current:A,currentReady:j,currentKnown:M,primaryAssistantId:N}=Ue({enabled:b});ae();let[P,F]=(0,V.useState)(!1),[ue,xe]=(0,V.useState)(!1),[Te,De]=(0,V.useState)(!1),[R,Oe]=(0,V.useState)(null),[ke,Ae]=(0,V.useState)(!1),[Me,z]=(0,V.useState)(void 0),B=(0,V.useRef)(!1),[Pe,H]=(0,V.useState)(!1),U=(0,V.useRef)(!1),[W,Fe]=(0,V.useState)(null),G=S.data,K=C.data?.plans.find(e=>e.id===`pro`),Le=K?.packages??[],J=Le.length>0,Y=G?.plan_id===`pro`,ze=ve(),Je=ce(N,b&&ze&&Y&&M),Ze=M?Je:void 0,X=G?G.plan_id===`base`?`free`:g(G.package)?G.package.key:null:null,Qe=E(ee(G)),$e=new Set(C.data?.plans.find(e=>e.id===`base`)?.included_features??[]),et=(K?.included_features??[]).filter(e=>!$e.has(e)),Z=P||O||Qe.isPending,tt=(0,V.useMemo)(()=>!Y||A.storageTier==null?null:{machineTier:A.machineTier,storageTier:A.storageTier,creditTier:A.creditTier},[Y,A.machineTier,A.storageTier,A.creditTier]),Q=t.get(me),nt=!b&&!x,rt=b&&!C.isLoading&&!J,$=nt||!(Q!=null&&!Pe)&&(S.isError||rt);(0,V.useEffect)(()=>{$&&e(nt?pe.settings.usageBilling:`${pe.settings.usageBilling}&adjust_plan`,{replace:!0})},[$,nt,e]);let it=()=>{(window.history.state?.idx??0)>0?e(-1):e(pe.settings.usageBilling)},at=async e=>{F(!0);try{let t=await w.mutateAsync({body:{...e,return_target:je()}});t.status===`redirect`&&t.checkout_url?(fe(e.package?{kind:`package`,packageKey:e.package}:{kind:`custom`,machineTier:e.machine_tier??null,storageTier:e.storage_tier??null,creditTier:e.credit_tier??null}),de(l),ye(t.checkout_url)):(await l.invalidateQueries({queryKey:Ce()}),await l.invalidateQueries({queryKey:be()}))}catch(e){I.error(D(e,`Failed to start the upgrade checkout. Please try again.`))}finally{F(!1)}},ot=(t,n)=>{if(G&&!Z){if(Y){if(t===`free`){De(!0);return}let r=Le.find(e=>e.key===t);if(!r||p(X,r.key)===`current`)return;if(!k(G)){e(`${pe.settings.usageBilling}&adjust_plan`,{replace:n?.replaceOnBail===!0});return}Oe(r);return}t!==`free`&&at({target_plan_id:`pro`,package:t,confirm:!0})}},st=(0,V.useRef)(ot);(0,V.useEffect)(()=>{st.current=ot}),(0,V.useEffect)(()=>{if(Q==null||B.current||$||!b||U.current)return;U.current=!0;let e=setTimeout(()=>{H(!0)},Ge),t=()=>{clearTimeout(e),H(!0)};Promise.all([l.refetchQueries({queryKey:Ce()}),l.refetchQueries({queryKey:be()})]).then(t,t)},[$,Q,b,l]),(0,V.useEffect)(()=>{Q==null||B.current||$||!b||!Pe||(B.current=!0,Y&&Q!==`free`&&Fe(Q),c(e=>{let t=new URLSearchParams(e);return t.delete(me),t},{replace:!0}))},[Pe,$,Q,b,Y,c]),(0,V.useEffect)(()=>{W==null||Q!=null||(Fe(null),st.current(W,{replaceOnBail:!0}))},[Q,W]);let ct;if(G&&K&&J){let e=Y&&X===null&&j&&A.storageGib!=null,t=e?Xe(A,K):void 0,n=()=>{De(!1),Qe.mutate({})},r=()=>({creditTier:A.creditTier,fromSnapshot:{machineSize:Ze?.machine_size??null,storageGib:Ze?.provisioned_storage_gib??null}}),i=R?X===null?`switch`:p(X,R.key)===`downgrade`?`downgrade`:`upgrade`:`upgrade`,a=async()=>{if(!R)return;let e=R,t=r(),n=X===null||!j||!M||Ne(A.machineTier,e.machine_tier),a=await T(e.key);if(!a)return;if(Oe(null),a.status===`no_op`){I.success(`You're already on this plan.`);return}let o=e.credit_tier??null;z({fromSnapshot:t.fromSnapshot,credits:o===t.creditTier?null:{fromTier:t.creditTier,toTier:o},direction:Ke[i],canLowerResources:n}),Ae(!0)},o=e=>at({target_plan_id:`pro`,confirm:!0,machine_tier:e.machineTier,storage_tier:e.storageTier,credit_tier:e.creditTier}),s=async e=>{let t=r(),n=!M||Ne(A.machineTier,e.machineTier),i=await te(e);i&&(xe(!1),i.needsResize||i.creditChanged?(z({fromSnapshot:t.fromSnapshot,credits:i.creditChanged?{fromTier:t.creditTier,toTier:e.creditTier}:null,direction:`change`,canLowerResources:n}),Ae(!0)):I.success(`Plan updated.`))},c=()=>{Z||Y&&!j||xe(!0)},l=[...Le].sort((e,t)=>_.indexOf(e.key)-_.indexOf(t.key)),u=oe(`free`),d=Y?`downgrade`:p(X,`free`);ct=(0,q.jsxs)(`div`,{className:`my-auto flex w-full flex-col items-center`,children:[(0,q.jsxs)(`header`,{className:`flex flex-col items-center gap-2 text-center`,children:[(0,q.jsx)(`h1`,{className:`text-[40px] text-[var(--content-emphasised)] sm:text-[60px]`,style:{fontFamily:`var(--font-serif)`,fontWeight:400,lineHeight:1.2,letterSpacing:`1.2px`},children:`Give your assistant more power`}),(0,q.jsx)(`p`,{className:`text-[20px] font-medium text-[var(--content-tertiary)]`,children:`Choose the level that matches how much you want it to take on.`})]}),(0,q.jsxs)(`div`,{className:`mt-6 grid w-full max-w-[1312px] grid-cols-1 items-start gap-4 sm:mt-10 sm:grid-cols-2 sm:gap-6 lg:grid-cols-4`,children:[(0,q.jsx)(He,{tierKey:`free`,name:`Base`,tagline:u?.tagline??``,priceLabel:`Free`,priceCaption:u?.priceCaption??`Forever`,ctaLabel:d===`downgrade`?h(`Base`):u?.cta??`Start Free`,features:qe,tone:`dark`,isCurrent:X===`free`,intent:d,pending:Z,onCta:()=>ot(`free`)}),l.map(e=>{let t=oe(e.key),n=p(X,e.key);return(0,q.jsx)(He,{tierKey:e.key,name:e.name,tagline:t?.tagline??``,priceLabel:y(e.total_price_cents),priceCaption:t?.priceCaption??`Billed monthly`,ctaLabel:n===`downgrade`?h(e.name):t?.cta??e.name,features:Ye(e,t?.extraFeatures??[]),recommended:t?.recommended,tone:t?.recommended?`light`:`dark`,isCurrent:X===e.key,intent:n,pending:Z,onCta:()=>ot(e.key)},e.key)})]}),(0,q.jsx)(Be,{className:`mt-6 sm:mt-10`,onConfigure:c,configureDisabled:Y&&!j||Z,isCurrent:e,currentSummary:t}),(0,q.jsx)(Re,{open:ue,proPlan:K,pending:P||se,currentStorageGib:Y?A.storageGib:null,initialSelection:tt,onClose:()=>xe(!1),onContinue:e=>{Y?s(e):o(e)}}),(0,q.jsx)(re,{open:R!==null,relation:i,packageName:R?.name??``,targetPackage:R,pending:O,onCancel:()=>Oe(null),onConfirm:()=>void a()}),(0,q.jsx)(Ve,{open:Te,lostFeatures:et,pending:Qe.isPending,onCancel:()=>De(!1),onConfirm:n}),(0,q.jsx)(ne,{mode:`resize`,open:ke,onClose:()=>{Ae(!1),z(void 0)},resizeContext:Me}),(0,q.jsxs)(`p`,{className:`mt-6 text-center text-[12px] font-medium text-[var(--content-tertiary)] sm:mt-10`,children:[`You can cancel or change your plan anytime you want. To learn more`,` `,(0,q.jsx)(`a`,{href:Ie,target:`_blank`,rel:`noopener noreferrer`,className:`text-[var(--content-default)] underline`,children:`Read our Docs.`})]})]})}else ct=(0,q.jsx)(`div`,{className:`my-auto flex items-center justify-center`,children:(0,q.jsx)(le,{className:`h-6 w-6 animate-spin text-[var(--content-tertiary)]`,"aria-label":`Loading plans`})});return(0,q.jsxs)(`div`,{"data-theme":`dark`,className:`plans-takeover-canvas-enter relative h-full w-full overflow-y-auto`,style:{backgroundColor:We},children:[(0,q.jsx)(`div`,{className:`absolute left-8 z-10 [-webkit-app-region:no-drag]`,style:{top:d?`3rem`:`2rem`},children:(0,q.jsx)(n,{variant:`outlined`,leftIcon:(0,q.jsx)(u,{className:`h-4 w-4`,"aria-hidden":!0}),onClick:it,className:`[-webkit-app-region:no-drag]`,children:`Back`})}),(0,q.jsx)(`div`,{className:`plans-takeover-content-enter flex min-h-full flex-col items-center px-4 pb-8 sm:px-6`,style:{paddingTop:d?`5rem`:`4rem`},children:ct})]})}function X(){return(0,q.jsx)(m,{redirectToBilling:!0,children:(0,q.jsx)(Ze,{})})}export{X as PlansPage};
|
|
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,h 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"./useMutation-D2YPyfEH.js";import{t as c}from"./jsx-runtime-BJ8jcmzB.js";import{t as l}from"./typography-DekrYXvs.js";import{t as u}from"./arrow-left-Ciai6BHG.js";import{t as d}from"./circle-check-BlOeCme9.js";import{t as f}from"./coins-CveNnhLe.js";import{A as p,B as m,C as h,D as g,E as _,F as v,I as y,L as b,M as x,N as S,P as C,T as w,V as T,_ as E,a as D,d as O,f as ee,i as te,j as ne,n as re,o as k,r as ie,t as ae,w as oe,x as se,y as A,z as ce}from"./use-checkout-dismiss-refresh-BHuxVDUc.js";import{t as j}from"./hard-drive-BV9-fN_J.js";import{t as le}from"./loader-circle-DYe85z3g.js";import{t as M}from"./sliders-horizontal-CQIT2VGH.js";import{t as N}from"./triangle-alert-43gIbLca.js";import{t as P}from"./tag-Ddzwz3ij.js";import{t as F}from"./modal-UYNawsIu.js";import{n as I}from"./toast-DqqWkjsh.js";import{t as ue}from"./select-BKyejRky.js";import{t as L}from"./is-electron-wgAC5Mzb.js";import{l as de}from"./auth-store-CVtcHK0b.js";import{C as fe}from"./native-biometric-D9IxNvJM.js";import{d as pe,t as me}from"./routes-B7wRw3UT.js";import{i as he,r as ge,t as _e}from"./use-platform-gate-DG9Xg3Hs.js";import{r as ve}from"./use-is-org-ready-GDBxqujc.js";import{n as ye}from"./browser-Ca2R8csw.js";import{at as be,ft as xe,gt as Se,ht as Ce,it as we,lt as Te,mt as Ee,ot as De,pt as R,st as Oe}from"./react-query.gen-CwRPAiHT.js";import{t as ke}from"./use-bundled-avatar-components-C_6xUsW1.js";import{t as Ae}from"./native-anchor-Bn22ZLay.js";import{t as je}from"./checkout-return-target-_Y86sfo0.js";import{i as Me,r as z,s as Ne,t as B}from"./machine-sizes-DzJ0TVYS.js";var V=e(t(),1),Pe=`__none__`,H=`No extra credits`,U=`__baseline__`,W=`${Me[B]} machine (${z[B]})`;function Fe(e){let{proPlan:t,seed:n,machineTier:r,storageTier:i,creditChoice:a}=e,o=t.machine_tiers,s=t.storage_tiers,c=t.credit_tiers??[],l=r===U,u=l?null:o.find(e=>e.tier===r)??null,d=l?W:u?.description??null,f=s.find(e=>e.tier===i)??null,p=a&&a!==`__none__`?c.find(e=>e.tier===a)??null:null,m=n!=null&&n.machineTier!=null?o.find(e=>e.tier===n.machineTier)??null:null,h=n==null?null:n.machineTier??`__baseline__`,g=n==null?void 0:n.machineTier==null?W:m?.description,_=n==null?null:s.find(e=>e.tier===n.storageTier)??null,y=n!=null&&n.creditTier!=null?c.find(e=>e.tier===n.creditTier)??null:null,S=n!=null&&n.machineTier!=null&&m==null,C=n!=null&&_==null,w=[{key:`base`,label:`Platform fee: ${v(t.base_price_cents)}`,changed:!1}];if(d!=null){let e=n!=null&&!S&&h!==r;w.push({key:`machine`,label:d,previousLabel:e?g:void 0,changed:e})}if(f!=null){let e=n!=null&&!C&&_?.tier!==f.tier;w.push({key:`storage`,label:b(f.storage_gib),previousLabel:e&&_!=null?b(_.storage_gib):void 0,changed:e})}let T=a===`__none__`?H:p==null?null:x(p.credits_usd);if(T!=null){let e=n!=null&&(n.creditTier??`__none__`)!==a,t=n?.creditTier==null?H:y==null?void 0:x(y.credits_usd);w.push({key:`credit`,label:T,previousLabel:e?t:void 0,changed:e})}let E=t.base_price_cents+(u?.price_cents??0)+(f?.price_cents??0)+(p?.price_cents??0),D=S||C||n!=null&&n.creditTier!=null&&y==null;if(n==null||D)return{totalCents:E,previousTotalCents:null,deltaCents:null,rows:w};let O=t.base_price_cents+(m?.price_cents??0)+(_?.price_cents??0)+(y?.price_cents??0);return{totalCents:E,previousTotalCents:O,deltaCents:E-O,rows:w}}var Ie=`https://www.vellum.ai/docs/pricing`,G=`${Ie}#machine-sizes`,K=`${Ie}#storage`,Le=`${Ie}#credit-bundles`,q=c();function J(e){return(0,q.jsxs)(`span`,{className:`text-[12px] font-medium text-[var(--content-disabled)]`,children:[`+`,v(e)]})}function Y({label:e,docsUrl:t,docsLabel:n}){return(0,q.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,q.jsx)(`span`,{className:`text-[11px] font-medium text-[var(--content-secondary)]`,children:e}),(0,q.jsx)(`a`,{href:t,target:`_blank`,rel:`noopener noreferrer`,"aria-label":n,onClick:e=>Ae(e,t),className:`text-[11px] font-medium text-[var(--content-tertiary)] underline hover:text-[var(--content-default)]`,children:`Learn more`})]})}function Re({open:e,proPlan:t,pending:r,currentStorageGib:i,initialSelection:a,onClose:o,onContinue:s}){let c=e?a??null:null,[l,u]=(0,V.useState)(()=>c?c.machineTier??`__baseline__`:``),[p,m]=(0,V.useState)(()=>c?.storageTier??``),[h,g]=(0,V.useState)(()=>c?c.creditTier??`__none__`:``),[_,y]=(0,V.useState)({open:e,initialSelection:a});(_.open!==e||_.initialSelection!==a)&&(y({open:e,initialSelection:a}),u(c?c.machineTier??`__baseline__`:``),m(c?.storageTier??``),g(c?c.creditTier??`__none__`:``));let b=t.machine_tiers,x=(0,V.useMemo)(()=>t.storage_tiers.filter(e=>!e.legacy||e.tier===a?.storageTier),[t.storage_tiers,a?.storageTier]),w=t.credit_tiers??[],E=(0,V.useMemo)(()=>(t.credit_tiers??[]).filter(e=>!e.legacy),[t.credit_tiers]),D=e=>O(e)||e.legacy&&e.tier!==a?.storageTier||i!=null&&e.storage_gib<i,ee=a!=null&&a.machineTier==null,te=[...ee?[{value:U,label:W,icon:(0,q.jsx)(T,{className:`h-4 w-4`,"aria-hidden":!0}),disabled:!0}]:[],...b.map(e=>({value:e.tier,label:e.description,icon:(0,q.jsx)(T,{className:`h-4 w-4`,"aria-hidden":!0}),suffix:J(e.price_cents),disabled:O(e)}))],ne=x.map(e=>({value:e.tier,label:e.label,icon:(0,q.jsx)(j,{className:`h-4 w-4`,"aria-hidden":!0}),suffix:J(e.price_cents),disabled:D(e)})),re=h&&h!==`__none__`?w.find(e=>e.tier===h)??null:null,k=re?.legacy?re:null,ie=[{value:Pe,label:H,icon:(0,q.jsx)(f,{className:`h-4 w-4`,"aria-hidden":!0})},...E.map(e=>({value:e.tier,label:e.label,icon:(0,q.jsx)(f,{className:`h-4 w-4`,"aria-hidden":!0}),suffix:J(e.price_cents)})),...k?[{value:k.tier,label:k.label,icon:(0,q.jsx)(f,{className:`h-4 w-4`,"aria-hidden":!0}),suffix:J(k.price_cents),disabled:!0}]:[]],ae=l===U,oe=ae?null:b.find(e=>e.tier===l)??null,se=ae?ee?{tier:null}:null:oe==null?null:{tier:oe.tier},A=p!==``&&p===a?.storageTier,ce=x.find(e=>e.tier===p&&(A||!D(e)))??null,le=h===`__none__`||h===a?.creditTier||E.some(e=>e.tier===h),N=h!==``&&le?h:null,P=se!=null&&ce!=null&&N!=null,I=a!=null&&l===(a.machineTier??`__baseline__`)&&p===a.storageTier&&h===(a.creditTier??`__none__`),L=(0,V.useMemo)(()=>Fe({proPlan:t,seed:a??null,machineTier:l,storageTier:p,creditChoice:h}),[t,a,l,p,h]);return(0,q.jsx)(F.Root,{open:e,onOpenChange:e=>{e||o()},children:(0,q.jsx)(F.Content,{size:`lg`,"data-theme":`light`,hideCloseButton:!0,overlayClassName:`backdrop-blur-[2px]`,className:`max-w-[820px] md:min-h-[min(608px,calc(100vh-4rem))]`,children:(0,q.jsx)(F.Body,{className:`p-4`,children:(0,q.jsxs)(`div`,{className:`flex flex-col gap-8 md:flex-row md:gap-12`,children:[(0,q.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-6 md:flex-1`,children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,q.jsx)(`div`,{className:`flex shrink-0 items-center justify-center rounded-xl bg-[var(--surface-active)] p-[14px]`,children:(0,q.jsx)(M,{className:`h-6 w-6 text-[var(--content-emphasised)]`,"aria-hidden":!0})}),(0,q.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1`,children:[(0,q.jsx)(F.Title,{className:`text-[16px] font-medium text-[var(--content-emphasised)]`,children:`Create a custom plan`}),(0,q.jsx)(F.Description,{className:`mt-0 text-[14px] font-medium leading-[18px] text-[var(--content-tertiary)]`,children:`Just better.`})]})]}),(0,q.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,q.jsx)(Y,{label:`Select a machine size:`,docsUrl:G,docsLabel:`Learn more about machine sizes`}),(0,q.jsx)(ue,{"aria-label":`Machine size`,placeholder:`Select a machine size`,value:l,onChange:u,options:te})]}),(0,q.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,q.jsx)(Y,{label:`Select storage:`,docsUrl:K,docsLabel:`Learn more about storage`}),(0,q.jsx)(ue,{"aria-label":`Storage`,placeholder:`Select storage`,value:p,onChange:m,options:ne})]}),(0,q.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,q.jsx)(Y,{label:`Bundle some credits:`,docsUrl:Le,docsLabel:`Learn more about credit bundles`}),(0,q.jsx)(ue,{"aria-label":`Credit bundle`,placeholder:`Select a credit bundle`,value:h,onChange:g,options:ie})]})]}),(0,q.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-16 md:pt-[5px]`,children:[(0,q.jsx)(`span`,{className:`text-[16px] font-medium text-[var(--content-emphasised)]`,children:`Recap`}),(0,q.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,q.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,q.jsx)(`span`,{className:`text-[24px] font-medium text-[var(--content-default)]`,children:v(L.totalCents)}),L.deltaCents!=null&&L.deltaCents!==0&&L.previousTotalCents!=null&&(0,q.jsxs)(`span`,{className:`text-[12px] font-medium ${L.deltaCents>0?`text-[var(--system-positive-strong)]`:`text-[var(--system-negative-strong)]`}`,children:[S(L.deltaCents),` compared to previous (`,C(L.previousTotalCents),`)`]}),(0,q.jsx)(`span`,{className:`text-[11px] font-medium text-[var(--content-tertiary)]`,children:`Total · Billed monthly`})]}),(0,q.jsx)(`div`,{className:`h-px w-full bg-[var(--border-hover)]`}),(0,q.jsx)(`span`,{className:`text-[12px] font-medium text-[var(--content-tertiary)]`,children:`Your selection:`}),(0,q.jsx)(`ul`,{className:`flex flex-col gap-2`,children:L.rows.map(e=>(0,q.jsxs)(`li`,{className:`flex flex-col gap-2`,children:[e.previousLabel!=null&&(0,q.jsxs)(`div`,{className:`relative flex w-fit items-start gap-2`,children:[(0,q.jsx)(d,{className:`mt-0.5 h-4 w-4 shrink-0 text-[var(--content-disabled)]`,"aria-hidden":!0}),(0,q.jsx)(`s`,{className:`text-[14px] font-medium leading-[18px] text-[var(--content-disabled)] no-underline`,children:e.previousLabel}),(0,q.jsx)(`span`,{"aria-hidden":!0,className:`pointer-events-none absolute -left-1 right-0 top-[9px] h-px bg-[var(--content-disabled)]`})]}),(0,q.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,q.jsx)(d,{className:`mt-0.5 h-4 w-4 shrink-0 ${e.changed?`text-[var(--system-positive-strong)]`:`text-[var(--content-secondary)]`}`,"aria-hidden":!0}),(0,q.jsx)(`span`,{className:`text-[14px] font-medium leading-[18px] text-[var(--content-secondary)]`,children:e.label})]})]},e.key))}),(0,q.jsx)(n,{variant:`primary`,fullWidth:!0,disabled:!P||I||r,onClick:()=>{!P||I||r||s({machineTier:se.tier,storageTier:ce.tier,creditTier:N===`__none__`?null:N})},children:`Continue`}),(0,q.jsx)(n,{variant:`ghost`,fullWidth:!0,disabled:r,onClick:o,children:`Cancel`})]})]})]})})})})}var ze=`Select custom CPU power, Ram and Storage. Or just throw in some tokens.`;function Be({className:e,onConfigure:t,configureDisabled:r,isCurrent:i=!1,currentSummary:a}){return(0,q.jsxs)(`div`,{className:`flex w-full flex-col items-center gap-8 ${e??``}`,children:[(0,q.jsx)(`p`,{className:`text-center text-[20px] font-medium text-[var(--content-tertiary)]`,children:`Need something more tailored to your needs?`}),(0,q.jsxs)(`div`,{className:`flex w-[840px] max-w-full flex-col items-start gap-4 rounded-2xl bg-[var(--surface-lift)] p-4 sm:flex-row sm:items-center sm:justify-between sm:gap-6`,children:[(0,q.jsxs)(`div`,{className:`flex min-w-0 items-center gap-4`,children:[(0,q.jsx)(`div`,{className:`flex shrink-0 items-center justify-center rounded-xl bg-[var(--content-disabled)] p-[14px]`,children:(0,q.jsx)(M,{className:`h-6 w-6 text-[var(--aux-white)]`,"aria-hidden":!0})}),(0,q.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1`,children:[(0,q.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,q.jsx)(`span`,{className:`text-[16px] font-medium text-[var(--content-emphasised)]`,children:`Custom Plan`}),i?(0,q.jsx)(P,{className:`bg-[var(--feed-digest-weak)] text-[var(--content-default)]`,children:`Your Current Plan`}):null]}),(0,q.jsx)(`span`,{className:`text-[14px] font-medium text-[var(--content-tertiary)]`,children:a??ze})]})]}),(0,q.jsx)(`div`,{className:`flex shrink-0 items-center gap-3`,children:(0,q.jsx)(n,{variant:`outlined`,onClick:t,disabled:r,children:`Configure`})})]})]})}function Ve({open:e,lostFeatures:t,pending:r,onCancel:i,onConfirm:a}){let o=t.length>0;return(0,q.jsx)(F.Root,{open:e,onOpenChange:e=>{!e&&!r&&i()},children:(0,q.jsxs)(F.Content,{size:`md`,hideCloseButton:!0,children:[(0,q.jsx)(F.Header,{icon:N,children:(0,q.jsx)(F.Title,{children:`Downgrade to Base?`})}),(0,q.jsxs)(F.Body,{children:[(0,q.jsx)(l,{as:`p`,variant:`body-medium-default`,className:`text-(--content-secondary)`,children:o?`Downgrading removes the following Pro features. You'll be taken to Stripe to cancel your subscription.`:`You'll be taken to Stripe to cancel your subscription.`}),o?(0,q.jsx)(`ul`,{className:`mt-4 list-disc space-y-2 pl-5`,children:t.map(e=>(0,q.jsx)(`li`,{children:(0,q.jsx)(l,{as:`span`,variant:`body-medium-default`,children:e})},e))}):null]}),(0,q.jsxs)(F.Footer,{children:[(0,q.jsx)(n,{variant:`outlined`,onClick:i,disabled:r,children:`Cancel`}),(0,q.jsx)(n,{variant:`danger`,onClick:a,disabled:r,"data-testid":`confirm-free-downgrade-button`,children:`Downgrade to Base`})]})]})})}function He({tierKey:e,name:t,tagline:r,priceLabel:i,priceCaption:a,ctaLabel:o,features:s,recommended:c=!1,tone:l=`dark`,isCurrent:u,intent:f=`upgrade`,pending:p,onCta:m}){let h=f===`downgrade`&&!u;return(0,q.jsxs)(`div`,{"data-theme":l,className:`flex w-full flex-col gap-3 rounded-2xl bg-[var(--surface-lift)] p-3 sm:gap-4 sm:p-4`,children:[(0,q.jsx)(w,{tier:e,size:50}),(0,q.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,q.jsxs)(`div`,{className:`flex h-8 items-center gap-2`,children:[(0,q.jsx)(`span`,{className:`text-[20px] font-medium text-[var(--content-emphasised)]`,children:t}),c&&!h&&!u?(0,q.jsx)(P,{className:`bg-[var(--feed-digest-weak)] text-[12px] font-semibold uppercase text-[var(--credits-accent)]`,children:`Recommended`}):null]}),(0,q.jsx)(`p`,{className:`overflow-hidden text-[14px] font-medium leading-[18px] text-[var(--content-tertiary)] sm:h-9`,children:r})]}),(0,q.jsx)(`div`,{className:`h-px w-full bg-[var(--border-hover)]`}),(0,q.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,q.jsx)(`span`,{className:`text-[24px] font-medium text-[var(--content-default)]`,children:i}),(0,q.jsx)(`span`,{className:`text-[11px] font-medium text-[var(--content-tertiary)]`,children:a})]}),(0,q.jsx)(n,{variant:h?`outlined`:`primary`,fullWidth:!0,disabled:u||p,onClick:m,children:u?`Current Plan`:o}),(0,q.jsx)(`div`,{className:`h-px w-full bg-[var(--border-hover)]`}),(0,q.jsxs)(`div`,{className:`flex flex-col gap-2 sm:gap-4`,children:[(0,q.jsx)(`span`,{className:`text-[12px] font-medium text-[var(--content-tertiary)]`,children:`Includes:`}),(0,q.jsx)(`ul`,{className:`flex flex-col gap-2`,children:s.map(e=>(0,q.jsxs)(`li`,{className:`flex items-start gap-2`,children:[(0,q.jsx)(d,{className:`mt-0.5 h-4 w-4 shrink-0 text-[var(--content-secondary)]`,"aria-hidden":!0}),(0,q.jsx)(`span`,{className:`text-[14px] font-medium text-[var(--content-secondary)]`,children:e})]},e))})]})]})}function Ue({enabled:e=!0}={}){let t=a(),n=ve(),r=e&&n,i=o({...Ee(),enabled:r}),c=i.data,l=c!=null&&c.plan_id!==`base`,u=o({...xe(),enabled:r&&l}),d=o({...we(),enabled:r&&l}).data?.plans.find(e=>e.id===`pro`)?.machine_tiers??[],f=e=>d.find(t=>t.tier===e)?.price_cents??null,p=s(Oe()),m=s(Te()),h=s(De()),g={machineTier:u.data?.max_machine_tier??null,storageTier:u.data?.selected_storage_tier??null,storageGib:u.data?.selected_storage_gib??null,creditTier:c?.selected_credit_tier??null},_=c!=null&&c.plan_id!==`base`&&c.status!=null&&te.has(c.status)&&c.cancel_at_period_end!==!0&&!c.cancel_at,v=!l||!u.isPending,y=!l||u.isSuccess&&u.data!=null&&!u.isFetching&&u.dataUpdatedAt>=i.dataUpdatedAt,b=p.isPending||m.isPending||h.isPending,x=()=>Promise.all([t.invalidateQueries({queryKey:Ce()}),t.invalidateQueries({queryKey:R()}),t.invalidateQueries({queryKey:be()})]);return{changeTiers:async e=>{let t=e.machineTier!==g.machineTier,n=e.storageTier!==g.storageTier,r=e.creditTier!==g.creditTier,i=f(e.machineTier),a=f(g.machineTier),o=t&&i!=null&&a!=null&&i<a,s=[];if(t&&s.push(new Promise(t=>{p.mutate({body:{machine_tier:e.machineTier}},{onSuccess:()=>t({dimension:`machine`,ok:!0}),onError:e=>t({dimension:`machine`,ok:!1,error:e})})})),n&&s.push(new Promise(t=>{m.mutate({body:{storage_tier:e.storageTier}},{onSuccess:()=>t({dimension:`storage`,ok:!0}),onError:e=>t({dimension:`storage`,ok:!1,error:e})})})),r&&s.push(new Promise(t=>{h.mutate({body:{credit_tier:e.creditTier}},{onSuccess:()=>t({dimension:`credit`,ok:!0}),onError:e=>t({dimension:`credit`,ok:!1,error:e})})})),s.length===0)return{needsResize:!1,creditChanged:!1};let c=await Promise.all(s);await x();let l=c.some(e=>e.ok&&e.dimension===`machine`)&&!o,u=c.some(e=>e.ok&&e.dimension===`storage`),d=l||u,_=c.some(e=>e.ok&&e.dimension===`credit`),v=c.filter(e=>!e.ok);if(v.length>0){let e=v.map(e=>D(e.error,`Failed to update ${e.dimension} tier.`)).join(` `);return I.error(e),d||_?{needsResize:d,creditChanged:_}:null}return{needsResize:d,creditChanged:_}},isPending:b,current:g,eligible:_,currentReady:v,currentKnown:y,primaryAssistantId:y?u.data?.primary_assistant_id??null:null}}var We=`#0A0A0B`,Ge=8e3,Ke={upgrade:`upgrade`,downgrade:`downgrade`,switch:`change`};ke();var qe=[`Small Computer`,`4 GB Storage`,`Pay-as-you-go credits`];function Je(e){return`${se(e)} Computer`}function Ye(e,t){let n=e.credits_usd??0;return[Je(e),`${e.storage_gib} GB Storage`,`${C(n*100)} in credits included`,...t]}function Xe(e,t){return A(e,t).join(` · `)}function Ze(){let e=r(),[t,c]=i(),l=a(),d=L(),f=he({platformHostedOnly:!0}),m=_e(),v=ge(),b=f===`full`&&m,x=f===`full`&&v,S=o({...Ee(),enabled:b}),C=o({...we(),enabled:b}),w=s(Se()),{changePackage:T,isPending:O}=ie(),{changeTiers:te,isPending:se,current:A,currentReady:j,currentKnown:M,primaryAssistantId:N}=Ue({enabled:b});ae();let[P,F]=(0,V.useState)(!1),[ue,xe]=(0,V.useState)(!1),[Te,De]=(0,V.useState)(!1),[R,Oe]=(0,V.useState)(null),[ke,Ae]=(0,V.useState)(!1),[Me,z]=(0,V.useState)(void 0),B=(0,V.useRef)(!1),[Pe,H]=(0,V.useState)(!1),U=(0,V.useRef)(!1),[W,Fe]=(0,V.useState)(null),G=S.data,K=C.data?.plans.find(e=>e.id===`pro`),Le=K?.packages??[],J=Le.length>0,Y=G?.plan_id===`pro`,ze=ve(),Je=ce(N,b&&ze&&Y&&M),Ze=M?Je:void 0,X=G?G.plan_id===`base`?`free`:g(G.package)?G.package.key:null:null,Qe=E(ee(G)),$e=new Set(C.data?.plans.find(e=>e.id===`base`)?.included_features??[]),et=(K?.included_features??[]).filter(e=>!$e.has(e)),Z=P||O||Qe.isPending,tt=(0,V.useMemo)(()=>!Y||A.storageTier==null?null:{machineTier:A.machineTier,storageTier:A.storageTier,creditTier:A.creditTier},[Y,A.machineTier,A.storageTier,A.creditTier]),Q=t.get(me),nt=!b&&!x,rt=b&&!C.isLoading&&!J,$=nt||!(Q!=null&&!Pe)&&(S.isError||rt);(0,V.useEffect)(()=>{$&&e(nt?pe.settings.usageBilling:`${pe.settings.usageBilling}&adjust_plan`,{replace:!0})},[$,nt,e]);let it=()=>{(window.history.state?.idx??0)>0?e(-1):e(pe.settings.usageBilling)},at=async e=>{F(!0);try{let t=await w.mutateAsync({body:{...e,return_target:je()}});t.status===`redirect`&&t.checkout_url?(fe(e.package?{kind:`package`,packageKey:e.package}:{kind:`custom`,machineTier:e.machine_tier??null,storageTier:e.storage_tier??null,creditTier:e.credit_tier??null}),de(l),ye(t.checkout_url)):(await l.invalidateQueries({queryKey:Ce()}),await l.invalidateQueries({queryKey:be()}))}catch(e){I.error(D(e,`Failed to start the upgrade checkout. Please try again.`))}finally{F(!1)}},ot=(t,n)=>{if(G&&!Z){if(Y){if(t===`free`){De(!0);return}let r=Le.find(e=>e.key===t);if(!r||p(X,r.key)===`current`)return;if(!k(G)){e(`${pe.settings.usageBilling}&adjust_plan`,{replace:n?.replaceOnBail===!0});return}Oe(r);return}t!==`free`&&at({target_plan_id:`pro`,package:t,confirm:!0})}},st=(0,V.useRef)(ot);(0,V.useEffect)(()=>{st.current=ot}),(0,V.useEffect)(()=>{if(Q==null||B.current||$||!b||U.current)return;U.current=!0;let e=setTimeout(()=>{H(!0)},Ge),t=()=>{clearTimeout(e),H(!0)};Promise.all([l.refetchQueries({queryKey:Ce()}),l.refetchQueries({queryKey:be()})]).then(t,t)},[$,Q,b,l]),(0,V.useEffect)(()=>{Q==null||B.current||$||!b||!Pe||(B.current=!0,Y&&Q!==`free`&&Fe(Q),c(e=>{let t=new URLSearchParams(e);return t.delete(me),t},{replace:!0}))},[Pe,$,Q,b,Y,c]),(0,V.useEffect)(()=>{W==null||Q!=null||(Fe(null),st.current(W,{replaceOnBail:!0}))},[Q,W]);let ct;if(G&&K&&J){let e=Y&&X===null&&j&&A.storageGib!=null,t=e?Xe(A,K):void 0,n=()=>{De(!1),Qe.mutate({})},r=()=>({creditTier:A.creditTier,fromSnapshot:{machineSize:Ze?.machine_size??null,storageGib:Ze?.provisioned_storage_gib??null}}),i=R?X===null?`switch`:p(X,R.key)===`downgrade`?`downgrade`:`upgrade`:`upgrade`,a=async()=>{if(!R)return;let e=R,t=r(),n=X===null||!j||!M||Ne(A.machineTier,e.machine_tier),a=await T(e.key);if(!a)return;if(Oe(null),a.status===`no_op`){I.success(`You're already on this plan.`);return}let o=e.credit_tier??null;z({fromSnapshot:t.fromSnapshot,credits:o===t.creditTier?null:{fromTier:t.creditTier,toTier:o},direction:Ke[i],canLowerResources:n}),Ae(!0)},o=e=>at({target_plan_id:`pro`,confirm:!0,machine_tier:e.machineTier,storage_tier:e.storageTier,credit_tier:e.creditTier}),s=async e=>{let t=r(),n=!M||Ne(A.machineTier,e.machineTier),i=await te(e);i&&(xe(!1),i.needsResize||i.creditChanged?(z({fromSnapshot:t.fromSnapshot,credits:i.creditChanged?{fromTier:t.creditTier,toTier:e.creditTier}:null,direction:`change`,canLowerResources:n}),Ae(!0)):I.success(`Plan updated.`))},c=()=>{Z||Y&&!j||xe(!0)},l=[...Le].sort((e,t)=>_.indexOf(e.key)-_.indexOf(t.key)),u=oe(`free`),d=Y?`downgrade`:p(X,`free`);ct=(0,q.jsxs)(`div`,{className:`my-auto flex w-full flex-col items-center`,children:[(0,q.jsxs)(`header`,{className:`flex flex-col items-center gap-2 text-center`,children:[(0,q.jsx)(`h1`,{className:`text-[40px] text-[var(--content-emphasised)] sm:text-[60px]`,style:{fontFamily:`var(--font-serif)`,fontWeight:400,lineHeight:1.2,letterSpacing:`1.2px`},children:`Give your assistant more power`}),(0,q.jsx)(`p`,{className:`text-[20px] font-medium text-[var(--content-tertiary)]`,children:`Choose the level that matches how much you want it to take on.`})]}),(0,q.jsxs)(`div`,{className:`mt-6 grid w-full max-w-[1312px] grid-cols-1 items-start gap-4 sm:mt-10 sm:grid-cols-2 sm:gap-6 lg:grid-cols-4`,children:[(0,q.jsx)(He,{tierKey:`free`,name:`Base`,tagline:u?.tagline??``,priceLabel:`Free`,priceCaption:u?.priceCaption??`Forever`,ctaLabel:d===`downgrade`?h(`Base`):u?.cta??`Start Free`,features:qe,tone:`dark`,isCurrent:X===`free`,intent:d,pending:Z,onCta:()=>ot(`free`)}),l.map(e=>{let t=oe(e.key),n=p(X,e.key);return(0,q.jsx)(He,{tierKey:e.key,name:e.name,tagline:t?.tagline??``,priceLabel:y(e.total_price_cents),priceCaption:t?.priceCaption??`Billed monthly`,ctaLabel:n===`downgrade`?h(e.name):t?.cta??e.name,features:Ye(e,t?.extraFeatures??[]),recommended:t?.recommended,tone:t?.recommended?`light`:`dark`,isCurrent:X===e.key,intent:n,pending:Z,onCta:()=>ot(e.key)},e.key)})]}),(0,q.jsx)(Be,{className:`mt-6 sm:mt-10`,onConfigure:c,configureDisabled:Y&&!j||Z,isCurrent:e,currentSummary:t}),(0,q.jsx)(Re,{open:ue,proPlan:K,pending:P||se,currentStorageGib:Y?A.storageGib:null,initialSelection:tt,onClose:()=>xe(!1),onContinue:e=>{Y?s(e):o(e)}}),(0,q.jsx)(re,{open:R!==null,relation:i,packageName:R?.name??``,targetPackage:R,pending:O,onCancel:()=>Oe(null),onConfirm:()=>void a()}),(0,q.jsx)(Ve,{open:Te,lostFeatures:et,pending:Qe.isPending,onCancel:()=>De(!1),onConfirm:n}),(0,q.jsx)(ne,{mode:`resize`,open:ke,onClose:()=>{Ae(!1),z(void 0)},resizeContext:Me}),(0,q.jsxs)(`p`,{className:`mt-6 text-center text-[12px] font-medium text-[var(--content-tertiary)] sm:mt-10`,children:[`You can cancel or change your plan anytime you want. To learn more`,` `,(0,q.jsx)(`a`,{href:Ie,target:`_blank`,rel:`noopener noreferrer`,className:`text-[var(--content-default)] underline`,children:`Read our Docs.`})]})]})}else ct=(0,q.jsx)(`div`,{className:`my-auto flex items-center justify-center`,children:(0,q.jsx)(le,{className:`h-6 w-6 animate-spin text-[var(--content-tertiary)]`,"aria-label":`Loading plans`})});return(0,q.jsxs)(`div`,{"data-theme":`dark`,className:`plans-takeover-canvas-enter relative h-full w-full overflow-y-auto`,style:{backgroundColor:We},children:[(0,q.jsx)(`div`,{className:`absolute left-8 z-10 [-webkit-app-region:no-drag]`,style:{top:d?`3rem`:`2rem`},children:(0,q.jsx)(n,{variant:`outlined`,leftIcon:(0,q.jsx)(u,{className:`h-4 w-4`,"aria-hidden":!0}),onClick:it,className:`[-webkit-app-region:no-drag]`,children:`Back`})}),(0,q.jsx)(`div`,{className:`plans-takeover-content-enter flex min-h-full flex-col items-center px-4 pb-8 sm:px-6`,style:{paddingTop:d?`5rem`:`4rem`},children:ct})]})}function X(){return(0,q.jsx)(m,{redirectToBilling:!0,children:(0,q.jsx)(Ze,{})})}export{X as PlansPage};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./is-electron-wgAC5Mzb.js";import{l as r}from"./native-biometric-
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./is-electron-wgAC5Mzb.js";import{l as r}from"./native-biometric-D9IxNvJM.js";import{t as i}from"./dist-D7UWVopK.js";var a=e(t(),1);function o(){if(typeof navigator>`u`)return!1;let e=navigator.userAgent;if(/iPhone|iPod/.test(e)||/iPad/.test(e))return!0;let t=navigator.userAgentData;return(t?.platform?t.platform.toLowerCase().includes(`mac`):navigator.platform.toLowerCase().includes(`mac`))&&navigator.maxTouchPoints>1}function s(){if(typeof navigator>`u`)return!1;let e=navigator.userAgent;return/Safari/.test(e)&&!/CriOS|FxiOS|EdgiOS|OPiOS|Chrome|Chromium/.test(e)}function c(){if(typeof navigator>`u`||o())return!1;let e=navigator.userAgentData;return e?.platform?e.platform.toLowerCase().includes(`mac`):navigator.platform.toLowerCase().includes(`mac`)}function l(){return typeof navigator>`u`?!1:/Android/i.test(navigator.userAgent)}function u(){return n()?window.vellum?.hostOS?window.vellum.hostOS:navigator.platform.toLowerCase().includes(`win`)?`windows`:`macos`:null}function d(){return u()||(r()?i.getPlatform()===`android`?`android`:`ios`:o()?`ios`:l()?`android`:`web`)}function f(){return r()&&i.getPlatform()===`ios`}function p(){return r()&&i.getPlatform()===`android`}function m(){return f()||p()}function h(e){if(!e||e.length===0)return null;for(let{family:t,pattern:n}of[{family:`edge`,pattern:/microsoft edge/i},{family:`chrome`,pattern:/google chrome|chromium/i}]){let r=e.find(e=>n.test(e.brand));if(r){let e=r.version.match(/^\d+/)?.[0];return{family:t,...e?{version:e}:{}}}}return null}function g(e){for(let{family:t,pattern:n}of[{family:`edge`,pattern:/(?:Edg|EdgiOS|EdgA)\/(\d+)/},{family:`chrome`,pattern:/(?:Chrome|CriOS|Chromium)\/(\d+)/},{family:`firefox`,pattern:/(?:Firefox|FxiOS)\/(\d+)/},{family:`safari`,pattern:/Version\/(\d+).*Safari\//}]){let r=e.match(n);if(r)return{family:t,version:r[1]}}return null}function _(){if(typeof navigator>`u`)return{};let e=navigator.userAgentData;return h(e?.brands)??g(navigator.userAgent)??{}}var v=()=>()=>{};function y(){return(0,a.useSyncExternalStore)(v,()=>o()&&!r()&&!s(),()=>!1)}function b(){return(0,a.useSyncExternalStore)(v,()=>l()&&!r(),()=>!1)}function x(){return(0,a.useSyncExternalStore)(v,()=>c()&&!r()&&!n(),()=>!1)}function S(){return(0,a.useSyncExternalStore)(v,f,()=>!1)}function C(){return(0,a.useSyncExternalStore)(v,p,()=>!1)}function w(){return(0,a.useSyncExternalStore)(v,m,()=>!1)}export{o as a,f as c,y as d,x as f,w as h,l as i,m as l,S as m,d as n,c as o,C as p,u as r,p as s,_ as t,b as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./button-VkxVX0DM.js";import{u as t}from"./chunk-5KNZJZUH-BUqIilZr.js";import{t as n}from"./jsx-runtime-BJ8jcmzB.js";import{t as r}from"./log-in-BsEhSW6v.js";import{t as i}from"./notice-BlYF-xU3.js";import{t as a}from"./use-onboarding-login-
|
|
1
|
+
import{t as e}from"./button-VkxVX0DM.js";import{u as t}from"./chunk-5KNZJZUH-BUqIilZr.js";import{t as n}from"./jsx-runtime-BJ8jcmzB.js";import{t as r}from"./log-in-BsEhSW6v.js";import{t as i}from"./notice-BlYF-xU3.js";import{t as a}from"./use-onboarding-login-BdVTfZ3o.js";var o=n();function s({children:n,className:s}){let{pathname:c,search:l,hash:u}=t(),{loading:d,login:f,cancel:p}=a(`${c}${l}${u}`);return(0,o.jsx)(i,{tone:`info`,className:s,actions:(0,o.jsx)(e,{variant:`ghost`,leftIcon:d?void 0:(0,o.jsx)(r,{className:`h-4 w-4`}),onClick:d?p:()=>void f(),children:d?`Cancel`:`Log In`}),children:n})}export{s as t};
|
package/dist/assets/{platform-loopback-page-y_4YDCry.js → platform-loopback-page-B8cGk07e.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{d as n,h as r}from"./chunk-5KNZJZUH-BUqIilZr.js";import{t as i}from"./jsx-runtime-BJ8jcmzB.js";import{F as a,U as o}from"./local-mode-BNr2MrWI.js";import"./i18n
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{d as n,h as r}from"./chunk-5KNZJZUH-BUqIilZr.js";import{t as i}from"./jsx-runtime-BJ8jcmzB.js";import{F as a,U as o}from"./local-mode-BNr2MrWI.js";import"./i18n-C9hRT4Lf.js";import{t as s}from"./useTranslation-D9pPv-bA.js";import{n as c,tt as l}from"./auth-store-CVtcHK0b.js";import{c as u}from"./api-Cx3i50oG.js";import{g as d}from"./native-biometric-D9IxNvJM.js";import{d as f}from"./routes-B7wRw3UT.js";var p=e(t(),1),m=i(),h=`vellum:loopback:state`,g=`vellum:loopback:returnTo`;function _(){let{t:e}=s(`account`),[t]=r(),i=n(),[_,v]=(0,p.useState)(null);return(0,p.useEffect)(()=>{let n=t.get(`state`),r=t.get(`session_token`),s=sessionStorage.getItem(h),p=sessionStorage.getItem(g)||f.assistant;if(sessionStorage.removeItem(h),sessionStorage.removeItem(g),!n||n!==s){v(e(`authErrors.loopbackStateMismatch`));return}if(!r){v(e(`authErrors.loopbackNoToken`));return}if(!/^[a-zA-Z0-9]+$/.test(r)){v(e(`authErrors.loopbackInvalidToken`));return}(async()=>{if(!await o(r)){v(`Login failed: couldn't reach the local Vellum server to store the session. Please try again.`);return}await c.getState().initSession(),await d(!0);try{let e=await u();if(e.ok&&e.data.length>0){await a(e.data,l.getState().currentOrganizationId??void 0),i(f.assistant,{replace:!0});return}}catch{}i(p,{replace:!0})})()},[t,i,e]),_?(0,m.jsx)(`div`,{className:`flex min-h-screen items-center justify-center bg-[var(--surface-base)] text-[var(--content-default)]`,children:(0,m.jsxs)(`div`,{className:`max-w-md text-center`,children:[(0,m.jsx)(`p`,{className:`text-body-medium-default`,children:_}),(0,m.jsx)(`button`,{type:`button`,className:`mt-4 rounded-lg border border-[var(--border-disabled)] px-4 py-2 text-sm hover:bg-[var(--surface-lift)]`,onClick:()=>void i(f.welcome),children:e(`platformLoopbackPage.backToWelcome`)})]})}):(0,m.jsx)(`div`,{className:`flex min-h-screen items-center justify-center bg-[var(--surface-base)] text-[var(--content-default)]`,children:(0,m.jsx)(`p`,{className:`text-body-medium-default`,children:e(`platformLoopbackPage.completing`)})})}export{_ as PlatformLoopbackPage};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./jsx-runtime-BJ8jcmzB.js";import{t}from"./typography-DekrYXvs.js";import{t as n}from"./createLucideIcon-B-ZPaMbU.js";import"./src-
|
|
1
|
+
import{t as e}from"./jsx-runtime-BJ8jcmzB.js";import{t}from"./typography-DekrYXvs.js";import{t as n}from"./createLucideIcon-B-ZPaMbU.js";import"./src-CImIAPTd.js";var r=n(`file-exclamation-point`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M12 9v4`,key:`juzpu7`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]]),i=e(),a=`Can't preview this file`;function o({filename:e}){return(0,i.jsxs)(`div`,{role:`status`,className:`flex items-center gap-2.5 rounded-lg border border-[var(--border-element)] bg-[var(--surface-lift)] p-3`,children:[(0,i.jsx)(r,{"aria-hidden":`true`,className:`h-4 w-4 shrink-0 text-[var(--content-tertiary)]`}),(0,i.jsxs)(`span`,{className:`flex min-w-0 flex-col`,children:[(0,i.jsx)(t,{as:`span`,variant:`body-small-default`,className:`text-[var(--content-default)]`,children:a}),(0,i.jsx)(t,{as:`span`,variant:`label-small-default`,className:`truncate text-[var(--content-tertiary)]`,children:e})]})]})}export{o as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{a as t,n,o as r,r as i,s as a}from"./device-settings-DZvv4pnY.js";import{t as o}from"./react-BFJW0bSv.js";import{W as s,t as c}from"./button-VkxVX0DM.js";import{n as l}from"./QueryClientProvider-EuRl-wrW.js";import{t as u}from"./useQuery-CTSuec5b.js";import{t as d}from"./useMutation-D2YPyfEH.js";import{t as f}from"./jsx-runtime-BJ8jcmzB.js";import{t as p}from"./cn-Cf8SmgbR.js";import{t as m}from"./card-DUsAeHUS.js";import{t as h}from"./chevron-down-CmQCCo_x.js";import{t as g}from"./chevron-right-Dwr_Sx98.js";import{t as _}from"./loader-circle-DYe85z3g.js";import{c as v,o as y,r as b,t as x}from"./threshold-presets-DN0_JIJQ.js";import{t as S}from"./pencil-Ba0D7tjH.js";import{t as C}from"./shield-check-B-3lr0Uj.js";import{t as w}from"./trash-2-V2WT_DbX.js";import{t as T}from"./x-zfSDUG5z.js";import{t as E}from"./notice-BlYF-xU3.js";import{t as D}from"./tag-Ddzwz3ij.js";import{t as O}from"./input-DkgpMeG9.js";import{t as k}from"./toggle-0qt1e_3r.js";import{n as A}from"./toast-DqqWkjsh.js";import{t as j}from"./confirm-dialog-Drw1adml.js";import{t as M}from"./select-BKyejRky.js";import{n as N,r as P,y as F}from"./auth-store-DDMY1UvK.js";import{t as ee}from"./sdk.gen-DWvuzSBW.js";import{a as I,m as te,n as ne,o as re,r as ie,s as ae,t as oe}from"./native-biometric-BxYhgb-X.js";import{d as se,u as ce}from"./routes-B7wRw3UT.js";import{m as le,r as ue}from"./platform-detection-Dt0-jSAU.js";import{i as L,r as de,t as fe}from"./use-platform-gate-DJ7NtOkG.js";import{f as pe,p as R}from"./prefs-BLTugIFN.js";import{n as z,t as B}from"./react-query.gen-CwRPAiHT.js";import{a as me,c as he,f as ge,l as _e,n as ve,o as ye,r as V,s as be,u as xe}from"./trust-rules-api-BtUxkSk-.js";import{t as Se}from"./platform-login-notice-jeJJGuqn.js";import{t as H}from"./use-active-assistant-id-BADYKVyx.js";import{t as U}from"./detail-card-BzCuPjtL.js";import{t as W}from"./setting-row-C0mDhzZy.js";import{t as Ce}from"./settings-divider-DGdHGRSV.js";var G=e(o(),1),K=f(),we=[{id:`accessibility`,type:`system`,sourceKind:`accessibility`,label:`Accessibility`,description:`Allows your assistant to click, type, and control apps on your behalf.`},{id:`screen`,type:`system`,sourceKind:`screen`,label:`Screen Recording`,description:`Allows your assistant to capture screen context during computer-use tasks.`},{id:`microphone`,type:`system`,sourceKind:`microphone`,label:`Microphone`,description:`Allows your assistant to capture audio for voice input and recordings.`,windowsDescription:`Allows your assistant to capture audio for voice input and recordings.`},{id:`speechRecognition`,type:`system`,sourceKind:`speechRecognition`,label:`Speech Recognition`,description:`Allows your assistant to transcribe your speech into text on-device.`,windowsDescription:`Allows your assistant to transcribe your speech into text with Windows speech recognition.`},{id:`notifications`,type:`system`,sourceKind:`notifications`,label:`Notifications`,description:`Allows your assistant to send macOS alerts for approvals, messages, and task updates.`,windowsDescription:`Allows your assistant to show Windows notifications for approvals, messages, and task updates.`}],Te=[{id:`notificationBadges`,type:`local`,label:`Notification Badges`}];function Ee(){let[e,t]=(0,G.useState)(null);return{pendingKind:e,run:async(e,n)=>{t(e);try{await n()}catch{}finally{t(t=>t===e?null:t)}}}}function De(){let[e,r]=(0,G.useState)(()=>n(`dockBadgesEnabled`,!0));return(0,G.useEffect)(()=>a(`dockBadgesEnabled`,()=>{r(n(`dockBadgesEnabled`,!0))}),[]),[e,e=>{r(e),t(`dockBadgesEnabled`,e),e||be(0)}]}function Oe({row:e,onToggle:t}){return(0,K.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,K.jsx)(k,{checked:e.checked,disabled:e.disabled,"aria-label":e.label,onChange:()=>t(e.id)}),(0,K.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,K.jsxs)(`button`,{type:`button`,disabled:e.disabled,onClick:()=>t(e.id),className:p(`block w-full text-left`,e.disabled?`cursor-not-allowed`:`cursor-pointer`),children:[(0,K.jsx)(`span`,{className:`block text-[14px] font-semibold leading-[18px] text-[var(--content-emphasised)]`,children:e.label}),(0,K.jsx)(`span`,{className:`mt-1 block text-[13px] font-medium leading-[18px] text-[var(--content-tertiary)]`,children:e.description})]}),e.error&&(0,K.jsx)(`p`,{className:`mt-1 text-body-small-default text-[var(--system-negative-strong)]`,children:e.error})]})]})}function ke(){return(0,K.jsx)(`span`,{"aria-hidden":`true`,className:`h-4 w-4 animate-spin rounded-full border-2 border-[var(--border-base)] border-t-[var(--content-tertiary)]`})}function Ae({compact:e=!1}){let{state:t,loading:n,error:r,supported:i,refresh:a}=ge(),{pendingKind:o,run:s}=Ee(),[c,l]=De(),u=ue()===`windows`,d=(0,G.useMemo)(()=>we.filter(e=>!u||e.windowsDescription),[u]),f=(0,G.useMemo)(()=>{let e=new Map;if(!t)return e;for(let n of d){let r=t[n.sourceKind];r&&e.set(n.id,{meta:n,item:r})}return e},[t,d]),p=(0,G.useMemo)(()=>{let e=d.map(e=>{let t=f.get(e.id)?.item;return t?{id:e.id,label:e.label,description:u&&e.windowsDescription?e.windowsDescription:e.description,checked:t.status===`granted`,disabled:o===e.id||t.status===`restricted`,...t.error?{error:t.error}:{}}:null}).filter(Boolean),t=he()?Te.map(e=>({id:e.id,label:e.label,description:`Allows your assistant to show unseen conversation counts on the ${ye()}.`,checked:c,disabled:o===e.id})):[];return[...e,...t]},[u,c,o,f,d]);if(!i&&p.length===0)return null;let m=async(e,t)=>{t.status===`granted`||t.status===`denied`||!t.canRequest?await _e(e.sourceKind):await xe(e.sourceKind),await a()},h=e=>{let t=f.get(e);if(t){s(e,()=>m(t.meta,t.item));return}e===`notificationBadges`&&s(e,async()=>{l(!c)})};return(0,K.jsxs)(`section`,{className:`w-full rounded-[20px] border border-[var(--border-hover)] bg-[var(--surface-lift)] px-4 pb-3 pt-5`,children:[(0,K.jsx)(`h2`,{className:`text-[18px] font-semibold leading-[22px] text-[var(--content-emphasised)]`,children:`System Permissions`}),n&&p.length===0?(0,K.jsxs)(`div`,{className:`mt-6 flex items-center gap-2 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,K.jsx)(ke,{}),`Checking permissions...`]}):(0,K.jsx)(`div`,{className:`mt-3 space-y-2`,children:p.map(e=>(0,K.jsx)(Oe,{row:e,onToggle:h},e.id))}),r&&(0,K.jsx)(`div`,{role:`alert`,className:`mt-6 rounded-lg border border-[color-mix(in_srgb,var(--system-negative-strong)_25%,transparent)] bg-[var(--system-negative-weak)] p-3 text-body-medium-lighter text-[var(--content-secondary)]`,children:r})]})}function je(){let e=L({platformHostedOnly:!0}),t=fe(),n=de(),r=l(),{data:i,isLoading:a,isError:o}=u({...B(),enabled:e===`full`&&t}),s=d({mutationFn:async e=>{let{data:t}=await ee({body:{access_consented:e},throwOnError:!0});return t},onSuccess:e=>{z(r,void 0,e),A.success(e?.access_consented?`Admin data access enabled.`:`Admin data access disabled.`)},onError:()=>{A.error(`Failed to update log access consent.`)}});if(e===`gated`)return null;let c=e===`full`&&n,f=i?.access_consented??!1,p=e!==`full`||!t||a||o||s.isPending;return(0,K.jsxs)(`div`,{children:[(0,K.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,K.jsxs)(`div`,{className:`flex-1`,children:[(0,K.jsx)(`div`,{className:`text-body-medium-default text-[var(--content-default)]`,children:`Allow Staff Access`}),(0,K.jsx)(`p`,{className:`mt-1 text-body-small-default text-[var(--content-tertiary)]`,children:`When enabled, Vellum Staff will be able to access your assistant and its data for debugging purposes. It's suggested that you leave this off and only turn it on temporarily if you need Vellum Support's help in investigating an issue.`}),e===`full`&&o&&(0,K.jsx)(`p`,{className:`mt-1 text-body-small-default text-[var(--system-negative-strong)]`,children:`Failed to load consent setting.`})]}),(0,K.jsx)(`div`,{className:`flex items-center gap-2`,children:e===`disabled`?null:(0,K.jsxs)(K.Fragment,{children:[(s.isPending||c)&&(0,K.jsx)(_,{className:`h-4 w-4 animate-spin text-[var(--content-tertiary)]`}),(0,K.jsx)(k,{checked:f,disabled:p,onChange:()=>s.mutate(!f)})]})})]}),e===`disabled`&&(0,K.jsx)(Se,{className:`mt-3`,children:`Log in to the Vellum platform to manage admin data access.`})]})}function Me(){let e=te(),t=le(),[n,r]=(0,G.useState)(()=>ie()),[i,a]=(0,G.useState)(null),[o,s]=(0,G.useState)(!1);if((0,G.useEffect)(()=>{if(!e)return;let t=!0;return ne().then(e=>{t&&a(e)}),()=>{t=!1}},[e]),!e||!i?.available)return null;let c=async()=>{s(!0);try{if(n)I(!1),await oe(),r(!1);else{let e=ae();if(!e||!await re(e)){I(!1),r(!1);return}I(!0),r(!0)}}finally{s(!1)}};return(0,K.jsx)(U,{title:`Security`,children:(0,K.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,K.jsxs)(`div`,{className:`flex-1`,children:[(0,K.jsxs)(`div`,{className:`text-body-medium-default text-[var(--content-default)]`,children:[`Use `,i.label,` for sign-in`]}),(0,K.jsxs)(`p`,{className:`mt-1 text-body-small-default text-[var(--content-tertiary)]`,children:[`When your session expires, verify with `,i.label,t&&` or your device passcode`,` instead of signing in again.`]})]}),(0,K.jsx)(k,{checked:n,onChange:()=>void c(),disabled:o})]})})}var q=[`youtube.com`,`youtu.be`,`vimeo.com`,`loom.com`];function Ne(e){try{let t=JSON.parse(e);if(Array.isArray(t))return t.filter(e=>typeof e==`string`)}catch{}return[...q]}function Pe(){return n(`mediaEmbedsEnabled`,!0)}function Fe(){let e=i(`mediaEmbedDomains`,``);return e?Ne(e):[...q]}function Ie(){let[e,n]=(0,G.useState)(()=>Pe()),[i,a]=(0,G.useState)(()=>Fe()),[o,s]=(0,G.useState)(!1),[l,u]=(0,G.useState)(``),d=(0,G.useMemo)(()=>l.trim().toLowerCase(),[l]),f=e=>{n(e),t(`mediaEmbedsEnabled`,e)},p=e=>{a(e),r(`mediaEmbedDomains`,JSON.stringify(e))},m=()=>{if(d){if(i.includes(d)){u(``);return}p([...i,d]),u(``)}},_=e=>{p(i.filter(t=>t!==e))},v=()=>{p([...q])},y=i.length===q.length&&i.every((e,t)=>e===q[t]);return(0,K.jsxs)(U,{title:`Media Embeds`,subtitle:`Automatically embed images, videos, and other media shared in chat messages.`,children:[(0,K.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,K.jsx)(`div`,{className:`text-body-medium-lighter text-[var(--content-default)]`,children:`Auto Media Embeds`}),(0,K.jsx)(k,{checked:e,onChange:f})]}),e&&(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`div`,{className:`mt-4`,children:(0,K.jsx)(Ce,{})}),(0,K.jsxs)(c,{type:`button`,variant:`ghost`,onClick:()=>s(e=>!e),className:`mt-4 w-full justify-between px-3`,"aria-expanded":o,children:[(0,K.jsxs)(`span`,{className:`flex items-center gap-2`,children:[o?(0,K.jsx)(h,{className:`h-4 w-4`,"aria-hidden":!0}):(0,K.jsx)(g,{className:`h-4 w-4`,"aria-hidden":!0}),`Video Domain Allowlist`]}),(0,K.jsxs)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:[i.length,` domain`,i.length===1?``:`s`]})]}),o&&(0,K.jsxs)(`div`,{className:`mt-3 space-y-3`,children:[(0,K.jsxs)(`div`,{className:`flex items-end gap-2`,children:[(0,K.jsx)(O,{label:`Add Domain`,type:`text`,value:l,onChange:e=>u(e.target.value),onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),m())},placeholder:`Add domain (e.g. example.com)`,fullWidth:!0,wrapperClassName:`flex-1`}),(0,K.jsx)(c,{variant:`primary`,size:`compact`,onClick:m,disabled:!d,children:`Add`})]}),i.length>0&&(0,K.jsx)(`div`,{className:`flex justify-end`,children:(0,K.jsx)(c,{type:`button`,variant:`ghost`,size:`compact`,onClick:v,disabled:y,tintColor:`var(--content-tertiary)`,children:`Reset to Defaults`})}),i.length>0&&(0,K.jsx)(`ul`,{className:`space-y-2`,children:i.map(e=>(0,K.jsxs)(`li`,{className:`flex items-center justify-between rounded-md border border-[var(--border-base)] px-3 py-2 text-body-medium-lighter`,children:[(0,K.jsx)(`span`,{className:`font-mono text-[var(--content-default)]`,children:e}),(0,K.jsx)(c,{variant:`dangerGhost`,size:`compact`,iconOnly:(0,K.jsx)(w,{}),onClick:()=>_(e),"aria-label":`Remove ${e}`})]},e))})]})]})]})}function J(){return(0,K.jsx)(`div`,{className:`h-px bg-[var(--surface-active)] dark:bg-[var(--surface-lift)]`})}var Y=x.map(e=>({value:e.id,label:e.label,icon:(0,K.jsx)(e.icon,{className:`h-3.5 w-3.5`})}));function Le(){let e=H(),t=l(),{data:n,isError:r}=u({queryKey:[`thresholds`,e],queryFn:()=>y(e),staleTime:3e4}),[i,a]=(0,G.useState)(`relaxed`),[o,s]=(0,G.useState)(`conservative`),[c,d]=(0,G.useState)(`strict`),[f,p]=(0,G.useState)(!1),_=(0,G.useRef)(!1),[S,C]=(0,G.useState)(!1),w=(0,G.useRef)(null),T=(0,G.useRef)(null);(0,G.useEffect)(()=>{!n||_.current||(a(b(n.interactive).id),s(b(n.autonomous).id),d(b(n.headless).id),C(!0))},[n]),(0,G.useEffect)(()=>()=>{w.current!==null&&(clearTimeout(w.current),w.current=null,T.current?.(),T.current=null)},[]);let E=(0,G.useCallback)((n,r,i)=>{if(!e||!S)return;let a=x.find(e=>e.id===n)?.riskThreshold,o=x.find(e=>e.id===r)?.riskThreshold,s=x.find(e=>e.id===i)?.riskThreshold;!a||!o||!s||v(e,{interactive:a,autonomous:o,headless:s}).then(()=>{t.invalidateQueries({queryKey:[`thresholds`,e]})}).catch(()=>{})},[e,S,t]),D=(0,G.useCallback)((e,t,n)=>{w.current!==null&&clearTimeout(w.current),T.current=()=>E(e,t,n),w.current=setTimeout(()=>{T.current?.(),w.current=null,T.current=null},500)},[E]),O=(0,G.useCallback)(e=>{_.current=!0,a(e),D(e,o,c)},[o,c,D]),k=(0,G.useCallback)(e=>{_.current=!0,s(e),D(i,e,c)},[i,c,D]),A=(0,G.useCallback)(e=>{_.current=!0,d(e),D(i,o,e)},[i,o,D]),j=x.find(e=>e.id===i),N=x.find(e=>e.id===o),P=x.find(e=>e.id===c),F=!e||!S;return(0,K.jsxs)(m,{children:[(0,K.jsx)(`h2`,{className:`text-title-medium text-[var(--content-default)]`,children:`Assistant Access`}),(0,K.jsx)(`p`,{className:`mt-1 text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Control which actions your assistant can take without asking first. Each action is classified by risk level — your access level determines which levels auto-approve. Trust Rules fine-tune this for specific actions by raising or lowering their risk.`}),r&&(0,K.jsx)(`p`,{className:`mt-2 text-body-small-default text-[var(--system-negative-strong)]`,children:`Could not load threshold settings. Check your connection and reload.`}),(0,K.jsxs)(`div`,{className:`mt-4 space-y-4`,children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`div`,{className:`text-body-medium-default text-[var(--content-default)]`,children:`Conversations`}),(0,K.jsx)(`p`,{className:`mt-0.5 text-body-small-default text-[var(--content-tertiary)]`,children:`When you're chatting with your assistant directly.`}),(0,K.jsx)(`div`,{className:`mt-2`,style:{maxWidth:280},children:(0,K.jsx)(M,{value:i,onChange:O,options:Y,disabled:F})}),j&&(0,K.jsx)(`p`,{className:`mt-2 text-body-small-default text-[var(--content-tertiary)]`,children:j.description})]}),(0,K.jsx)(J,{}),(0,K.jsxs)(`div`,{children:[(0,K.jsxs)(`button`,{type:`button`,onClick:()=>p(e=>!e),className:`flex items-center gap-1 text-[var(--content-secondary)] hover:text-[var(--content-default)] transition-colors`,"aria-expanded":f,children:[f?(0,K.jsx)(h,{className:`h-4 w-4`}):(0,K.jsx)(g,{className:`h-4 w-4`}),(0,K.jsx)(`span`,{className:`text-body-medium-default`,children:`Advanced`})]}),(0,K.jsxs)(`div`,{className:f?`mt-4 space-y-4`:`hidden`,children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`div`,{className:`text-body-medium-default text-[var(--content-default)]`,children:`Background`}),(0,K.jsx)(`p`,{className:`mt-0.5 text-body-small-default text-[var(--content-tertiary)]`,children:`When your assistant acts without you — scheduled tasks, background jobs, and external triggers.`}),(0,K.jsx)(`div`,{className:`mt-2`,style:{maxWidth:280},children:(0,K.jsx)(M,{value:o,onChange:k,options:Y,disabled:F})}),N&&(0,K.jsx)(`p`,{className:`mt-2 text-body-small-default text-[var(--content-tertiary)]`,children:N.description})]}),(0,K.jsx)(J,{}),(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`div`,{className:`text-body-medium-default text-[var(--content-default)]`,children:`Headless`}),(0,K.jsx)(`p`,{className:`mt-0.5 text-body-small-default text-[var(--content-tertiary)]`,children:`When triggered externally with no interactive client.`}),(0,K.jsx)(`div`,{className:`mt-2`,style:{maxWidth:280},children:(0,K.jsx)(M,{value:c,onChange:A,options:Y,disabled:F})}),P&&(0,K.jsx)(`p`,{className:`mt-2 text-body-small-default text-[var(--content-tertiary)]`,children:P.description})]})]})]})]})]})}var X=e(s(),1),Re=[`bash`,`file_read`,`file_write`,`file_edit`,`web_fetch`,`skill_load`],ze=[{value:`low`,label:`Low`,description:`Auto-approve without prompting`},{value:`medium`,label:`Medium`,description:`Prompt before executing`},{value:`high`,label:`High`,description:`Always require explicit approval`}];function Z({assistantId:e,existingRule:t,onClose:n,onSaved:r}){let i=(0,G.useRef)(null),[a,o]=(0,G.useState)(t.tool),[s,c]=(0,G.useState)(t.pattern),[l,u]=(0,G.useState)(t.risk),[d,f]=(0,G.useState)(t.description??``),[p,m]=(0,G.useState)(!1),[h,g]=(0,G.useState)(null),_=s.trim(),v=_.length>0&&!p,y=(0,G.useCallback)(async n=>{if(n.preventDefault(),!v)return;let i=d.trim()||`${a} — ${_}`;m(!0),g(null);try{await me(e,t.id,{risk:l,description:i}),r()}catch(e){g(e instanceof Error?e.message:`Failed to save trust rule.`)}finally{m(!1)}},[e,v,d,t,r,l,a,_]);return(0,X.createPortal)((0,K.jsx)(`div`,{ref:i,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`trust-rule-form-title`,className:`fixed inset-0 z-50 flex items-center justify-center bg-black/50`,onKeyDown:(0,G.useCallback)(e=>{e.key===`Escape`&&!e.defaultPrevented&&(e.preventDefault(),n())},[n]),onClick:(0,G.useCallback)(e=>{e.target===i.current&&n()},[n]),children:(0,K.jsxs)(`div`,{className:`mx-4 flex max-h-[calc(100vh-2rem)] w-full max-w-md flex-col rounded-xl border border-[var(--border-base)] bg-[var(--surface-lift)] shadow-xl`,children:[(0,K.jsxs)(`div`,{className:`flex items-center justify-between gap-3 border-b border-[var(--border-base)] px-6 py-4`,children:[(0,K.jsx)(`h2`,{id:`trust-rule-form-title`,className:`text-title-medium text-[var(--content-default)]`,children:`Edit Trust Rule`}),(0,K.jsx)(`button`,{type:`button`,onClick:n,"aria-label":`Close`,className:`rounded-lg p-1.5 text-[var(--content-tertiary)] transition-colors hover:bg-[var(--surface-base)] hover:text-[var(--content-default)]`,children:(0,K.jsx)(T,{className:`h-4 w-4`})})]}),(0,K.jsxs)(`form`,{onSubmit:e=>void y(e),className:`min-h-0 flex-1 space-y-4 overflow-y-auto px-6 py-4`,children:[h&&(0,K.jsx)(E,{tone:`error`,children:h}),(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`label`,{htmlFor:`trust-rule-tool`,className:`block text-body-medium-default text-[var(--content-default)]`,children:`Tool`}),(0,K.jsx)(`div`,{className:`mt-1`,children:(0,K.jsx)(M,{value:a,onChange:o,disabled:!0,options:Re.map(e=>({value:e,label:e}))})})]}),(0,K.jsx)(O,{label:`Pattern`,type:`text`,value:s,onChange:e=>c(e.target.value),placeholder:`e.g., git *`,disabled:!0}),(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`span`,{className:`block text-body-medium-default text-[var(--content-default)]`,children:`Risk Level`}),(0,K.jsx)(`div`,{className:`mt-2 flex gap-2`,children:ze.map(e=>(0,K.jsxs)(`button`,{type:`button`,onClick:()=>u(e.value),className:`flex-1 rounded-lg border px-3 py-2 text-left text-body-small-default transition-colors ${l===e.value?e.value===`low`?`border-[var(--system-positive-strong)] bg-[var(--system-positive-weak)] text-[var(--system-positive-strong)]`:e.value===`medium`?`border-[var(--system-warning-strong)] bg-[var(--system-warning-weak)] text-[var(--system-warning-strong)]`:`border-[var(--system-negative-strong)] bg-[var(--system-negative-weak)] text-[var(--system-negative-strong)]`:`border-[var(--border-element)] text-[var(--content-default)] hover:bg-[var(--surface-base)]`}`,children:[(0,K.jsx)(`div`,{children:e.label}),(0,K.jsx)(`div`,{className:`mt-0.5 text-label-medium-default leading-tight opacity-70`,children:e.description})]},e.value))})]}),(0,K.jsx)(O,{label:`Description (optional)`,type:`text`,value:d,onChange:e=>f(e.target.value),placeholder:`${a} — ${_||`pattern`}`}),(0,K.jsxs)(`div`,{className:`flex justify-end gap-2 pt-2`,children:[(0,K.jsx)(`button`,{type:`button`,onClick:n,className:`rounded-lg border border-[var(--border-element)] bg-white px-4 py-2 text-body-medium-default text-[var(--content-default)] transition-colors hover:bg-[var(--surface-base)] dark:border-[var(--border-base)] dark:bg-[var(--surface-lift)] dark:hover:bg-[var(--ghost-hover)]`,children:`Cancel`}),(0,K.jsx)(`button`,{type:`submit`,disabled:!v,className:`rounded-lg bg-[var(--system-positive-strong)] px-4 py-2 text-body-medium-default text-white transition-colors hover:bg-[var(--system-positive-strong)] disabled:cursor-not-allowed disabled:opacity-50`,children:p?`Saving…`:`Save`})]})]})]})}),document.body)}function Be(e){return e.origin===`default`&&!e.userModified}function Ve(e,t){let n=new Set,r=[];for(let t of e)n.has(t.id)||(n.add(t.id),r.push(t));for(let e of t)n.has(e.id)||(n.add(e.id),r.push(e));return r.sort((e,t)=>e.tool===t.tool?e.description.localeCompare(t.description):e.tool.localeCompare(t.tool))}function He(e){switch(e){case`low`:return`positive`;case`medium`:return`warning`;case`high`:return`negative`}}function Q(e){return e.charAt(0).toUpperCase()+e.slice(1)}function Ue({assistantId:e,onClose:t}){let n=(0,G.useRef)(null),[r,i]=(0,G.useState)([]),[a,o]=(0,G.useState)(!0),[s,l]=(0,G.useState)(null),[u,d]=(0,G.useState)(null),[f,p]=(0,G.useState)(null),[m,h]=(0,G.useState)(!1),g=(0,G.useCallback)(async t=>{if(t){let[t,n]=await Promise.all([V(e),V(e,{origin:`default`})]);return Ve(t,n)}return V(e)},[e]),_=(0,G.useCallback)(async()=>{o(!0);try{i(await g(m)),l(null)}catch(e){l(e instanceof Error?e.message:`Failed to load trust rules.`)}finally{o(!1)}},[g,m]);(0,G.useEffect)(()=>{let e=!1;return(async()=>{o(!0);try{let t=await g(m);e||(i(t),l(null))}catch(t){e||l(t instanceof Error?t.message:`Failed to load trust rules.`)}finally{e||o(!1)}})(),()=>{e=!0}},[g,m]);let v=(0,G.useCallback)(async()=>{if(f)try{await ve(e,f.id),_()}catch(e){l(e instanceof Error?e.message:`Failed to delete trust rule.`)}finally{p(null)}},[e,f,_]);return(0,X.createPortal)((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`div`,{ref:n,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`trust-rules-title`,className:`fixed inset-0 z-50 flex items-center justify-center bg-black/50`,onKeyDown:(0,G.useCallback)(e=>{e.key===`Escape`&&!e.defaultPrevented&&(e.preventDefault(),t())},[t]),onClick:(0,G.useCallback)(e=>{e.target===n.current&&t()},[t]),children:(0,K.jsxs)(`div`,{className:`mx-4 flex max-h-[80vh] w-full max-w-2xl flex-col rounded-xl border border-[var(--border-base)] bg-[var(--surface-lift)] shadow-xl`,children:[(0,K.jsxs)(`div`,{className:`flex items-center justify-between gap-3 border-b border-[var(--border-base)] px-6 py-4`,children:[(0,K.jsx)(`h2`,{id:`trust-rules-title`,className:`text-title-medium text-[var(--content-default)]`,children:`Trust Rules`}),(0,K.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,K.jsx)(k,{checked:m,onChange:h,label:`Show all defaults`}),(0,K.jsx)(c,{variant:`outlined`,onClick:t,children:`Done`})]})]}),(0,K.jsxs)(`div`,{className:`flex-1 overflow-y-auto px-6 py-4`,children:[s&&(0,K.jsx)(`div`,{className:`mb-3`,children:(0,K.jsx)(E,{tone:`error`,children:s})}),a?(0,K.jsx)(`div`,{className:`flex h-48 items-center justify-center text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Loading…`}):r.length===0?(0,K.jsxs)(`div`,{className:`flex h-48 flex-col items-center justify-center gap-2 px-6 text-[var(--content-tertiary)]`,children:[(0,K.jsx)(C,{className:`h-8 w-8`}),(0,K.jsx)(`p`,{className:`max-w-xs text-center text-body-medium-lighter`,children:`No trust rules yet. Rules are created when you classify actions from permission prompts.`})]}):(0,K.jsx)(`ul`,{className:`divide-y divide-[var(--border-base)]`,children:r.map(e=>{let t=Be(e);return(0,K.jsxs)(`li`,{className:`flex items-start gap-3 py-3`,children:[(0,K.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-default)]`,children:e.tool}),(0,K.jsx)(D,{tone:He(e.risk),children:Q(e.risk)}),e.origin===`default`&&(0,K.jsx)(D,{tone:`neutral`,children:`Default`}),e.userModified&&(0,K.jsx)(D,{tone:`warning`,children:`Modified`})]}),(0,K.jsx)(`div`,{className:`mt-1 truncate font-mono text-body-small-default text-[var(--content-secondary)]`,children:e.pattern}),e.description&&(0,K.jsx)(`div`,{className:`mt-0.5 truncate text-body-small-default text-[var(--content-tertiary)]`,children:e.description})]}),(0,K.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1`,children:[(0,K.jsx)(`button`,{type:`button`,"aria-label":`Edit ${e.tool} rule`,onClick:()=>d(e),className:`rounded-lg p-1.5 text-[var(--content-tertiary)] transition-colors hover:bg-[var(--surface-base)] hover:text-[var(--content-default)]`,children:(0,K.jsx)(S,{className:`h-4 w-4`})}),(!t||e.userModified)&&(0,K.jsx)(c,{variant:`dangerGhost`,size:`compact`,iconOnly:(0,K.jsx)(w,{className:`h-4 w-4`}),"aria-label":`Delete ${e.tool} rule`,onClick:()=>p(e)})]})]},e.id)})})]})]})}),u&&(0,K.jsx)(Z,{assistantId:e,existingRule:u,onClose:()=>d(null),onSaved:()=>{d(null),_()}}),(0,K.jsx)(j,{open:f!==null,title:`Delete Trust Rule?`,message:f?`Remove the ${Q(f.risk).toLowerCase()}-risk rule for ${f.tool} matching "${f.pattern}"?`:``,confirmLabel:`Delete`,cancelLabel:`Cancel`,destructive:!0,onConfirm:()=>void v(),onCancel:()=>p(null)})]}),document.body)}function We(){let e=H(),[t,n]=(0,G.useState)(!1);return(0,K.jsxs)(m,{children:[(0,K.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,K.jsx)(C,{className:`mt-0.5 h-5 w-5 shrink-0 text-[var(--content-secondary)]`}),(0,K.jsxs)(`div`,{className:`flex-1`,children:[(0,K.jsx)(`h2`,{className:`text-title-medium text-[var(--content-default)]`,children:`Trust Rules`}),(0,K.jsx)(`p`,{className:`mt-1 text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Manage per-tool rules that control which actions auto-approve and which require your explicit permission.`})]}),(0,K.jsx)(c,{variant:`outlined`,onClick:()=>n(!0),children:`Manage`})]}),t&&(0,K.jsx)(Ue,{assistantId:e,onClose:()=>n(!1)})]})}var Ge=[{value:`dontRetain`,label:`Don't retain`},{value:`oneHour`,label:`1 hour`},{value:`oneDay`,label:`1 day`},{value:`sevenDays`,label:`7 days`},{value:`thirtyDays`,label:`30 days`},{value:`ninetyDays`,label:`90 days`},{value:`keepForever`,label:`Keep forever`}],Ke=`thirtyDays`;function $(){return(0,K.jsx)(`div`,{className:`h-px bg-[var(--surface-active)] dark:bg-[var(--surface-lift)]`})}function qe(){let e=L({platformHostedOnly:!0}),t=P(),n=t,a=N.use.user()?.id??null,[o]=pe(),[s]=R(),c=o??!0,l=s??!0,[u,d]=(0,G.useState)(()=>i(`llmLogRetention`,Ke));return(0,K.jsxs)(`div`,{className:`space-y-4`,children:[(0,K.jsx)(Me,{}),(0,K.jsx)(Ae,{}),(0,K.jsx)(We,{}),(0,K.jsx)(Le,{}),(0,K.jsx)(Ie,{}),(0,K.jsx)(U,{title:`Privacy`,subtitle:t?(0,K.jsxs)(K.Fragment,{children:[`View details about what data we collect and how it's used in our`,` `,(0,K.jsx)(`a`,{href:ce(se.docs.legal.privacyPolicy),target:`_blank`,rel:`noreferrer`,className:`underline`,children:`privacy policy`}),`.`]}):void 0,children:(0,K.jsxs)(`div`,{className:`space-y-4`,children:[n&&(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(W,{label:`Share Analytics`,helperText:`Send aggregated product usage data`,checked:c,onChange:()=>{F(`share_analytics`,!c,{userId:a,hasPlatformSession:t})},variant:`toggle-trailing`}),(0,K.jsx)($,{}),(0,K.jsx)(W,{label:`Share Diagnostics`,helperText:`Send crash reports, conversation traces, and session replay data`,checked:l,onChange:()=>{F(`share_diagnostics`,!l,{userId:a,hasPlatformSession:t})},variant:`toggle-trailing`}),(0,K.jsx)($,{})]}),(0,K.jsx)(je,{}),e!==`gated`&&(0,K.jsx)($,{}),(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`label`,{htmlFor:`llm-log-retention`,className:`block text-body-medium-default text-[var(--content-default)]`,children:`LLM Request Log Retention`}),(0,K.jsx)(`div`,{className:`mt-2`,style:{maxWidth:280},children:(0,K.jsx)(M,{value:u,onChange:e=>{d(e),r(`llmLogRetention`,e)},options:Ge})}),(0,K.jsx)(`p`,{className:`mt-2 text-body-small-default text-[var(--content-tertiary)]`,children:`How long to keep LLM request and response logs on this device. These logs record the prompts and completions sent to model providers and are used for debugging. Shorter retention improves privacy; longer retention helps troubleshoot issues.`})]})]})})]})}export{qe as PrivacyPage};
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{a as t,n,o as r,r as i,s as a}from"./device-settings-DZvv4pnY.js";import{t as o}from"./react-BFJW0bSv.js";import{W as s,t as c}from"./button-VkxVX0DM.js";import{n as l}from"./QueryClientProvider-EuRl-wrW.js";import{t as u}from"./useQuery-CTSuec5b.js";import{t as d}from"./useMutation-D2YPyfEH.js";import{t as f}from"./jsx-runtime-BJ8jcmzB.js";import{t as p}from"./cn-Cf8SmgbR.js";import{t as m}from"./card-DUsAeHUS.js";import{t as h}from"./chevron-down-CmQCCo_x.js";import{t as g}from"./chevron-right-Dwr_Sx98.js";import{t as _}from"./loader-circle-DYe85z3g.js";import{c as v,o as y,r as b,t as x}from"./threshold-presets-DN0_JIJQ.js";import{t as S}from"./pencil-Ba0D7tjH.js";import{t as C}from"./shield-check-B-3lr0Uj.js";import{t as w}from"./trash-2-V2WT_DbX.js";import{t as T}from"./x-zfSDUG5z.js";import{t as E}from"./notice-BlYF-xU3.js";import{t as D}from"./tag-Ddzwz3ij.js";import{t as O}from"./input-DkgpMeG9.js";import{t as k}from"./toggle-0qt1e_3r.js";import{n as A}from"./toast-DqqWkjsh.js";import{t as j}from"./confirm-dialog-Drw1adml.js";import{t as M}from"./select-BKyejRky.js";import{n as N,r as P,y as F}from"./auth-store-CVtcHK0b.js";import{t as ee}from"./sdk.gen-DWvuzSBW.js";import{a as I,m as te,n as ne,o as re,r as ie,s as ae,t as oe}from"./native-biometric-D9IxNvJM.js";import{d as se,u as ce}from"./routes-B7wRw3UT.js";import{m as le,r as ue}from"./platform-detection-zth6eCY8.js";import{i as L,r as de,t as fe}from"./use-platform-gate-DG9Xg3Hs.js";import{f as pe,p as R}from"./prefs-BLTugIFN.js";import{n as z,t as B}from"./react-query.gen-CwRPAiHT.js";import{a as me,c as he,f as ge,l as _e,n as ve,o as ye,r as V,s as be,u as xe}from"./trust-rules-api-DRJ1qP-y.js";import{t as Se}from"./platform-login-notice-CvFpWLJY.js";import{t as H}from"./use-active-assistant-id-BADYKVyx.js";import{t as U}from"./detail-card-Bqnvs6YE.js";import{t as W}from"./setting-row-BvQpFvtr.js";import{t as Ce}from"./settings-divider-C0NZsB-L.js";var G=e(o(),1),K=f(),we=[{id:`accessibility`,type:`system`,sourceKind:`accessibility`,label:`Accessibility`,description:`Allows your assistant to click, type, and control apps on your behalf.`},{id:`screen`,type:`system`,sourceKind:`screen`,label:`Screen Recording`,description:`Allows your assistant to capture screen context during computer-use tasks.`},{id:`microphone`,type:`system`,sourceKind:`microphone`,label:`Microphone`,description:`Allows your assistant to capture audio for voice input and recordings.`,windowsDescription:`Allows your assistant to capture audio for voice input and recordings.`},{id:`speechRecognition`,type:`system`,sourceKind:`speechRecognition`,label:`Speech Recognition`,description:`Allows your assistant to transcribe your speech into text on-device.`,windowsDescription:`Allows your assistant to transcribe your speech into text with Windows speech recognition.`},{id:`notifications`,type:`system`,sourceKind:`notifications`,label:`Notifications`,description:`Allows your assistant to send macOS alerts for approvals, messages, and task updates.`,windowsDescription:`Allows your assistant to show Windows notifications for approvals, messages, and task updates.`}],Te=[{id:`notificationBadges`,type:`local`,label:`Notification Badges`}];function Ee(){let[e,t]=(0,G.useState)(null);return{pendingKind:e,run:async(e,n)=>{t(e);try{await n()}catch{}finally{t(t=>t===e?null:t)}}}}function De(){let[e,r]=(0,G.useState)(()=>n(`dockBadgesEnabled`,!0));return(0,G.useEffect)(()=>a(`dockBadgesEnabled`,()=>{r(n(`dockBadgesEnabled`,!0))}),[]),[e,e=>{r(e),t(`dockBadgesEnabled`,e),e||be(0)}]}function Oe({row:e,onToggle:t}){return(0,K.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,K.jsx)(k,{checked:e.checked,disabled:e.disabled,"aria-label":e.label,onChange:()=>t(e.id)}),(0,K.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,K.jsxs)(`button`,{type:`button`,disabled:e.disabled,onClick:()=>t(e.id),className:p(`block w-full text-left`,e.disabled?`cursor-not-allowed`:`cursor-pointer`),children:[(0,K.jsx)(`span`,{className:`block text-[14px] font-semibold leading-[18px] text-[var(--content-emphasised)]`,children:e.label}),(0,K.jsx)(`span`,{className:`mt-1 block text-[13px] font-medium leading-[18px] text-[var(--content-tertiary)]`,children:e.description})]}),e.error&&(0,K.jsx)(`p`,{className:`mt-1 text-body-small-default text-[var(--system-negative-strong)]`,children:e.error})]})]})}function ke(){return(0,K.jsx)(`span`,{"aria-hidden":`true`,className:`h-4 w-4 animate-spin rounded-full border-2 border-[var(--border-base)] border-t-[var(--content-tertiary)]`})}function Ae({compact:e=!1}){let{state:t,loading:n,error:r,supported:i,refresh:a}=ge(),{pendingKind:o,run:s}=Ee(),[c,l]=De(),u=ue()===`windows`,d=(0,G.useMemo)(()=>we.filter(e=>!u||e.windowsDescription),[u]),f=(0,G.useMemo)(()=>{let e=new Map;if(!t)return e;for(let n of d){let r=t[n.sourceKind];r&&e.set(n.id,{meta:n,item:r})}return e},[t,d]),p=(0,G.useMemo)(()=>{let e=d.map(e=>{let t=f.get(e.id)?.item;return t?{id:e.id,label:e.label,description:u&&e.windowsDescription?e.windowsDescription:e.description,checked:t.status===`granted`,disabled:o===e.id||t.status===`restricted`,...t.error?{error:t.error}:{}}:null}).filter(Boolean),t=he()?Te.map(e=>({id:e.id,label:e.label,description:`Allows your assistant to show unseen conversation counts on the ${ye()}.`,checked:c,disabled:o===e.id})):[];return[...e,...t]},[u,c,o,f,d]);if(!i&&p.length===0)return null;let m=async(e,t)=>{t.status===`granted`||t.status===`denied`||!t.canRequest?await _e(e.sourceKind):await xe(e.sourceKind),await a()},h=e=>{let t=f.get(e);if(t){s(e,()=>m(t.meta,t.item));return}e===`notificationBadges`&&s(e,async()=>{l(!c)})};return(0,K.jsxs)(`section`,{className:`w-full rounded-[20px] border border-[var(--border-hover)] bg-[var(--surface-lift)] px-4 pb-3 pt-5`,children:[(0,K.jsx)(`h2`,{className:`text-[18px] font-semibold leading-[22px] text-[var(--content-emphasised)]`,children:`System Permissions`}),n&&p.length===0?(0,K.jsxs)(`div`,{className:`mt-6 flex items-center gap-2 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,K.jsx)(ke,{}),`Checking permissions...`]}):(0,K.jsx)(`div`,{className:`mt-3 space-y-2`,children:p.map(e=>(0,K.jsx)(Oe,{row:e,onToggle:h},e.id))}),r&&(0,K.jsx)(`div`,{role:`alert`,className:`mt-6 rounded-lg border border-[color-mix(in_srgb,var(--system-negative-strong)_25%,transparent)] bg-[var(--system-negative-weak)] p-3 text-body-medium-lighter text-[var(--content-secondary)]`,children:r})]})}function je(){let e=L({platformHostedOnly:!0}),t=fe(),n=de(),r=l(),{data:i,isLoading:a,isError:o}=u({...B(),enabled:e===`full`&&t}),s=d({mutationFn:async e=>{let{data:t}=await ee({body:{access_consented:e},throwOnError:!0});return t},onSuccess:e=>{z(r,void 0,e),A.success(e?.access_consented?`Admin data access enabled.`:`Admin data access disabled.`)},onError:()=>{A.error(`Failed to update log access consent.`)}});if(e===`gated`)return null;let c=e===`full`&&n,f=i?.access_consented??!1,p=e!==`full`||!t||a||o||s.isPending;return(0,K.jsxs)(`div`,{children:[(0,K.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,K.jsxs)(`div`,{className:`flex-1`,children:[(0,K.jsx)(`div`,{className:`text-body-medium-default text-[var(--content-default)]`,children:`Allow Staff Access`}),(0,K.jsx)(`p`,{className:`mt-1 text-body-small-default text-[var(--content-tertiary)]`,children:`When enabled, Vellum Staff will be able to access your assistant and its data for debugging purposes. It's suggested that you leave this off and only turn it on temporarily if you need Vellum Support's help in investigating an issue.`}),e===`full`&&o&&(0,K.jsx)(`p`,{className:`mt-1 text-body-small-default text-[var(--system-negative-strong)]`,children:`Failed to load consent setting.`})]}),(0,K.jsx)(`div`,{className:`flex items-center gap-2`,children:e===`disabled`?null:(0,K.jsxs)(K.Fragment,{children:[(s.isPending||c)&&(0,K.jsx)(_,{className:`h-4 w-4 animate-spin text-[var(--content-tertiary)]`}),(0,K.jsx)(k,{checked:f,disabled:p,onChange:()=>s.mutate(!f)})]})})]}),e===`disabled`&&(0,K.jsx)(Se,{className:`mt-3`,children:`Log in to the Vellum platform to manage admin data access.`})]})}function Me(){let e=te(),t=le(),[n,r]=(0,G.useState)(()=>ie()),[i,a]=(0,G.useState)(null),[o,s]=(0,G.useState)(!1);if((0,G.useEffect)(()=>{if(!e)return;let t=!0;return ne().then(e=>{t&&a(e)}),()=>{t=!1}},[e]),!e||!i?.available)return null;let c=async()=>{s(!0);try{if(n)I(!1),await oe(),r(!1);else{let e=ae();if(!e||!await re(e)){I(!1),r(!1);return}I(!0),r(!0)}}finally{s(!1)}};return(0,K.jsx)(U,{title:`Security`,children:(0,K.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,K.jsxs)(`div`,{className:`flex-1`,children:[(0,K.jsxs)(`div`,{className:`text-body-medium-default text-[var(--content-default)]`,children:[`Use `,i.label,` for sign-in`]}),(0,K.jsxs)(`p`,{className:`mt-1 text-body-small-default text-[var(--content-tertiary)]`,children:[`When your session expires, verify with `,i.label,t&&` or your device passcode`,` instead of signing in again.`]})]}),(0,K.jsx)(k,{checked:n,onChange:()=>void c(),disabled:o})]})})}var q=[`youtube.com`,`youtu.be`,`vimeo.com`,`loom.com`];function Ne(e){try{let t=JSON.parse(e);if(Array.isArray(t))return t.filter(e=>typeof e==`string`)}catch{}return[...q]}function Pe(){return n(`mediaEmbedsEnabled`,!0)}function Fe(){let e=i(`mediaEmbedDomains`,``);return e?Ne(e):[...q]}function Ie(){let[e,n]=(0,G.useState)(()=>Pe()),[i,a]=(0,G.useState)(()=>Fe()),[o,s]=(0,G.useState)(!1),[l,u]=(0,G.useState)(``),d=(0,G.useMemo)(()=>l.trim().toLowerCase(),[l]),f=e=>{n(e),t(`mediaEmbedsEnabled`,e)},p=e=>{a(e),r(`mediaEmbedDomains`,JSON.stringify(e))},m=()=>{if(d){if(i.includes(d)){u(``);return}p([...i,d]),u(``)}},_=e=>{p(i.filter(t=>t!==e))},v=()=>{p([...q])},y=i.length===q.length&&i.every((e,t)=>e===q[t]);return(0,K.jsxs)(U,{title:`Media Embeds`,subtitle:`Automatically embed images, videos, and other media shared in chat messages.`,children:[(0,K.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,K.jsx)(`div`,{className:`text-body-medium-lighter text-[var(--content-default)]`,children:`Auto Media Embeds`}),(0,K.jsx)(k,{checked:e,onChange:f})]}),e&&(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`div`,{className:`mt-4`,children:(0,K.jsx)(Ce,{})}),(0,K.jsxs)(c,{type:`button`,variant:`ghost`,onClick:()=>s(e=>!e),className:`mt-4 w-full justify-between px-3`,"aria-expanded":o,children:[(0,K.jsxs)(`span`,{className:`flex items-center gap-2`,children:[o?(0,K.jsx)(h,{className:`h-4 w-4`,"aria-hidden":!0}):(0,K.jsx)(g,{className:`h-4 w-4`,"aria-hidden":!0}),`Video Domain Allowlist`]}),(0,K.jsxs)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:[i.length,` domain`,i.length===1?``:`s`]})]}),o&&(0,K.jsxs)(`div`,{className:`mt-3 space-y-3`,children:[(0,K.jsxs)(`div`,{className:`flex items-end gap-2`,children:[(0,K.jsx)(O,{label:`Add Domain`,type:`text`,value:l,onChange:e=>u(e.target.value),onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),m())},placeholder:`Add domain (e.g. example.com)`,fullWidth:!0,wrapperClassName:`flex-1`}),(0,K.jsx)(c,{variant:`primary`,size:`compact`,onClick:m,disabled:!d,children:`Add`})]}),i.length>0&&(0,K.jsx)(`div`,{className:`flex justify-end`,children:(0,K.jsx)(c,{type:`button`,variant:`ghost`,size:`compact`,onClick:v,disabled:y,tintColor:`var(--content-tertiary)`,children:`Reset to Defaults`})}),i.length>0&&(0,K.jsx)(`ul`,{className:`space-y-2`,children:i.map(e=>(0,K.jsxs)(`li`,{className:`flex items-center justify-between rounded-md border border-[var(--border-base)] px-3 py-2 text-body-medium-lighter`,children:[(0,K.jsx)(`span`,{className:`font-mono text-[var(--content-default)]`,children:e}),(0,K.jsx)(c,{variant:`dangerGhost`,size:`compact`,iconOnly:(0,K.jsx)(w,{}),onClick:()=>_(e),"aria-label":`Remove ${e}`})]},e))})]})]})]})}function J(){return(0,K.jsx)(`div`,{className:`h-px bg-[var(--surface-active)] dark:bg-[var(--surface-lift)]`})}var Y=x.map(e=>({value:e.id,label:e.label,icon:(0,K.jsx)(e.icon,{className:`h-3.5 w-3.5`})}));function Le(){let e=H(),t=l(),{data:n,isError:r}=u({queryKey:[`thresholds`,e],queryFn:()=>y(e),staleTime:3e4}),[i,a]=(0,G.useState)(`relaxed`),[o,s]=(0,G.useState)(`conservative`),[c,d]=(0,G.useState)(`strict`),[f,p]=(0,G.useState)(!1),_=(0,G.useRef)(!1),[S,C]=(0,G.useState)(!1),w=(0,G.useRef)(null),T=(0,G.useRef)(null);(0,G.useEffect)(()=>{!n||_.current||(a(b(n.interactive).id),s(b(n.autonomous).id),d(b(n.headless).id),C(!0))},[n]),(0,G.useEffect)(()=>()=>{w.current!==null&&(clearTimeout(w.current),w.current=null,T.current?.(),T.current=null)},[]);let E=(0,G.useCallback)((n,r,i)=>{if(!e||!S)return;let a=x.find(e=>e.id===n)?.riskThreshold,o=x.find(e=>e.id===r)?.riskThreshold,s=x.find(e=>e.id===i)?.riskThreshold;!a||!o||!s||v(e,{interactive:a,autonomous:o,headless:s}).then(()=>{t.invalidateQueries({queryKey:[`thresholds`,e]})}).catch(()=>{})},[e,S,t]),D=(0,G.useCallback)((e,t,n)=>{w.current!==null&&clearTimeout(w.current),T.current=()=>E(e,t,n),w.current=setTimeout(()=>{T.current?.(),w.current=null,T.current=null},500)},[E]),O=(0,G.useCallback)(e=>{_.current=!0,a(e),D(e,o,c)},[o,c,D]),k=(0,G.useCallback)(e=>{_.current=!0,s(e),D(i,e,c)},[i,c,D]),A=(0,G.useCallback)(e=>{_.current=!0,d(e),D(i,o,e)},[i,o,D]),j=x.find(e=>e.id===i),N=x.find(e=>e.id===o),P=x.find(e=>e.id===c),F=!e||!S;return(0,K.jsxs)(m,{children:[(0,K.jsx)(`h2`,{className:`text-title-medium text-[var(--content-default)]`,children:`Assistant Access`}),(0,K.jsx)(`p`,{className:`mt-1 text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Control which actions your assistant can take without asking first. Each action is classified by risk level — your access level determines which levels auto-approve. Trust Rules fine-tune this for specific actions by raising or lowering their risk.`}),r&&(0,K.jsx)(`p`,{className:`mt-2 text-body-small-default text-[var(--system-negative-strong)]`,children:`Could not load threshold settings. Check your connection and reload.`}),(0,K.jsxs)(`div`,{className:`mt-4 space-y-4`,children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`div`,{className:`text-body-medium-default text-[var(--content-default)]`,children:`Conversations`}),(0,K.jsx)(`p`,{className:`mt-0.5 text-body-small-default text-[var(--content-tertiary)]`,children:`When you're chatting with your assistant directly.`}),(0,K.jsx)(`div`,{className:`mt-2`,style:{maxWidth:280},children:(0,K.jsx)(M,{value:i,onChange:O,options:Y,disabled:F})}),j&&(0,K.jsx)(`p`,{className:`mt-2 text-body-small-default text-[var(--content-tertiary)]`,children:j.description})]}),(0,K.jsx)(J,{}),(0,K.jsxs)(`div`,{children:[(0,K.jsxs)(`button`,{type:`button`,onClick:()=>p(e=>!e),className:`flex items-center gap-1 text-[var(--content-secondary)] hover:text-[var(--content-default)] transition-colors`,"aria-expanded":f,children:[f?(0,K.jsx)(h,{className:`h-4 w-4`}):(0,K.jsx)(g,{className:`h-4 w-4`}),(0,K.jsx)(`span`,{className:`text-body-medium-default`,children:`Advanced`})]}),(0,K.jsxs)(`div`,{className:f?`mt-4 space-y-4`:`hidden`,children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`div`,{className:`text-body-medium-default text-[var(--content-default)]`,children:`Background`}),(0,K.jsx)(`p`,{className:`mt-0.5 text-body-small-default text-[var(--content-tertiary)]`,children:`When your assistant acts without you — scheduled tasks, background jobs, and external triggers.`}),(0,K.jsx)(`div`,{className:`mt-2`,style:{maxWidth:280},children:(0,K.jsx)(M,{value:o,onChange:k,options:Y,disabled:F})}),N&&(0,K.jsx)(`p`,{className:`mt-2 text-body-small-default text-[var(--content-tertiary)]`,children:N.description})]}),(0,K.jsx)(J,{}),(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`div`,{className:`text-body-medium-default text-[var(--content-default)]`,children:`Headless`}),(0,K.jsx)(`p`,{className:`mt-0.5 text-body-small-default text-[var(--content-tertiary)]`,children:`When triggered externally with no interactive client.`}),(0,K.jsx)(`div`,{className:`mt-2`,style:{maxWidth:280},children:(0,K.jsx)(M,{value:c,onChange:A,options:Y,disabled:F})}),P&&(0,K.jsx)(`p`,{className:`mt-2 text-body-small-default text-[var(--content-tertiary)]`,children:P.description})]})]})]})]})]})}var X=e(s(),1),Re=[`bash`,`file_read`,`file_write`,`file_edit`,`web_fetch`,`skill_load`],ze=[{value:`low`,label:`Low`,description:`Auto-approve without prompting`},{value:`medium`,label:`Medium`,description:`Prompt before executing`},{value:`high`,label:`High`,description:`Always require explicit approval`}];function Z({assistantId:e,existingRule:t,onClose:n,onSaved:r}){let i=(0,G.useRef)(null),[a,o]=(0,G.useState)(t.tool),[s,c]=(0,G.useState)(t.pattern),[l,u]=(0,G.useState)(t.risk),[d,f]=(0,G.useState)(t.description??``),[p,m]=(0,G.useState)(!1),[h,g]=(0,G.useState)(null),_=s.trim(),v=_.length>0&&!p,y=(0,G.useCallback)(async n=>{if(n.preventDefault(),!v)return;let i=d.trim()||`${a} — ${_}`;m(!0),g(null);try{await me(e,t.id,{risk:l,description:i}),r()}catch(e){g(e instanceof Error?e.message:`Failed to save trust rule.`)}finally{m(!1)}},[e,v,d,t,r,l,a,_]);return(0,X.createPortal)((0,K.jsx)(`div`,{ref:i,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`trust-rule-form-title`,className:`fixed inset-0 z-50 flex items-center justify-center bg-black/50`,onKeyDown:(0,G.useCallback)(e=>{e.key===`Escape`&&!e.defaultPrevented&&(e.preventDefault(),n())},[n]),onClick:(0,G.useCallback)(e=>{e.target===i.current&&n()},[n]),children:(0,K.jsxs)(`div`,{className:`mx-4 flex max-h-[calc(100vh-2rem)] w-full max-w-md flex-col rounded-xl border border-[var(--border-base)] bg-[var(--surface-lift)] shadow-xl`,children:[(0,K.jsxs)(`div`,{className:`flex items-center justify-between gap-3 border-b border-[var(--border-base)] px-6 py-4`,children:[(0,K.jsx)(`h2`,{id:`trust-rule-form-title`,className:`text-title-medium text-[var(--content-default)]`,children:`Edit Trust Rule`}),(0,K.jsx)(`button`,{type:`button`,onClick:n,"aria-label":`Close`,className:`rounded-lg p-1.5 text-[var(--content-tertiary)] transition-colors hover:bg-[var(--surface-base)] hover:text-[var(--content-default)]`,children:(0,K.jsx)(T,{className:`h-4 w-4`})})]}),(0,K.jsxs)(`form`,{onSubmit:e=>void y(e),className:`min-h-0 flex-1 space-y-4 overflow-y-auto px-6 py-4`,children:[h&&(0,K.jsx)(E,{tone:`error`,children:h}),(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`label`,{htmlFor:`trust-rule-tool`,className:`block text-body-medium-default text-[var(--content-default)]`,children:`Tool`}),(0,K.jsx)(`div`,{className:`mt-1`,children:(0,K.jsx)(M,{value:a,onChange:o,disabled:!0,options:Re.map(e=>({value:e,label:e}))})})]}),(0,K.jsx)(O,{label:`Pattern`,type:`text`,value:s,onChange:e=>c(e.target.value),placeholder:`e.g., git *`,disabled:!0}),(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`span`,{className:`block text-body-medium-default text-[var(--content-default)]`,children:`Risk Level`}),(0,K.jsx)(`div`,{className:`mt-2 flex gap-2`,children:ze.map(e=>(0,K.jsxs)(`button`,{type:`button`,onClick:()=>u(e.value),className:`flex-1 rounded-lg border px-3 py-2 text-left text-body-small-default transition-colors ${l===e.value?e.value===`low`?`border-[var(--system-positive-strong)] bg-[var(--system-positive-weak)] text-[var(--system-positive-strong)]`:e.value===`medium`?`border-[var(--system-warning-strong)] bg-[var(--system-warning-weak)] text-[var(--system-warning-strong)]`:`border-[var(--system-negative-strong)] bg-[var(--system-negative-weak)] text-[var(--system-negative-strong)]`:`border-[var(--border-element)] text-[var(--content-default)] hover:bg-[var(--surface-base)]`}`,children:[(0,K.jsx)(`div`,{children:e.label}),(0,K.jsx)(`div`,{className:`mt-0.5 text-label-medium-default leading-tight opacity-70`,children:e.description})]},e.value))})]}),(0,K.jsx)(O,{label:`Description (optional)`,type:`text`,value:d,onChange:e=>f(e.target.value),placeholder:`${a} — ${_||`pattern`}`}),(0,K.jsxs)(`div`,{className:`flex justify-end gap-2 pt-2`,children:[(0,K.jsx)(`button`,{type:`button`,onClick:n,className:`rounded-lg border border-[var(--border-element)] bg-white px-4 py-2 text-body-medium-default text-[var(--content-default)] transition-colors hover:bg-[var(--surface-base)] dark:border-[var(--border-base)] dark:bg-[var(--surface-lift)] dark:hover:bg-[var(--ghost-hover)]`,children:`Cancel`}),(0,K.jsx)(`button`,{type:`submit`,disabled:!v,className:`rounded-lg bg-[var(--system-positive-strong)] px-4 py-2 text-body-medium-default text-white transition-colors hover:bg-[var(--system-positive-strong)] disabled:cursor-not-allowed disabled:opacity-50`,children:p?`Saving…`:`Save`})]})]})]})}),document.body)}function Be(e){return e.origin===`default`&&!e.userModified}function Ve(e,t){let n=new Set,r=[];for(let t of e)n.has(t.id)||(n.add(t.id),r.push(t));for(let e of t)n.has(e.id)||(n.add(e.id),r.push(e));return r.sort((e,t)=>e.tool===t.tool?e.description.localeCompare(t.description):e.tool.localeCompare(t.tool))}function He(e){switch(e){case`low`:return`positive`;case`medium`:return`warning`;case`high`:return`negative`}}function Q(e){return e.charAt(0).toUpperCase()+e.slice(1)}function Ue({assistantId:e,onClose:t}){let n=(0,G.useRef)(null),[r,i]=(0,G.useState)([]),[a,o]=(0,G.useState)(!0),[s,l]=(0,G.useState)(null),[u,d]=(0,G.useState)(null),[f,p]=(0,G.useState)(null),[m,h]=(0,G.useState)(!1),g=(0,G.useCallback)(async t=>{if(t){let[t,n]=await Promise.all([V(e),V(e,{origin:`default`})]);return Ve(t,n)}return V(e)},[e]),_=(0,G.useCallback)(async()=>{o(!0);try{i(await g(m)),l(null)}catch(e){l(e instanceof Error?e.message:`Failed to load trust rules.`)}finally{o(!1)}},[g,m]);(0,G.useEffect)(()=>{let e=!1;return(async()=>{o(!0);try{let t=await g(m);e||(i(t),l(null))}catch(t){e||l(t instanceof Error?t.message:`Failed to load trust rules.`)}finally{e||o(!1)}})(),()=>{e=!0}},[g,m]);let v=(0,G.useCallback)(async()=>{if(f)try{await ve(e,f.id),_()}catch(e){l(e instanceof Error?e.message:`Failed to delete trust rule.`)}finally{p(null)}},[e,f,_]);return(0,X.createPortal)((0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`div`,{ref:n,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`trust-rules-title`,className:`fixed inset-0 z-50 flex items-center justify-center bg-black/50`,onKeyDown:(0,G.useCallback)(e=>{e.key===`Escape`&&!e.defaultPrevented&&(e.preventDefault(),t())},[t]),onClick:(0,G.useCallback)(e=>{e.target===n.current&&t()},[t]),children:(0,K.jsxs)(`div`,{className:`mx-4 flex max-h-[80vh] w-full max-w-2xl flex-col rounded-xl border border-[var(--border-base)] bg-[var(--surface-lift)] shadow-xl`,children:[(0,K.jsxs)(`div`,{className:`flex items-center justify-between gap-3 border-b border-[var(--border-base)] px-6 py-4`,children:[(0,K.jsx)(`h2`,{id:`trust-rules-title`,className:`text-title-medium text-[var(--content-default)]`,children:`Trust Rules`}),(0,K.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,K.jsx)(k,{checked:m,onChange:h,label:`Show all defaults`}),(0,K.jsx)(c,{variant:`outlined`,onClick:t,children:`Done`})]})]}),(0,K.jsxs)(`div`,{className:`flex-1 overflow-y-auto px-6 py-4`,children:[s&&(0,K.jsx)(`div`,{className:`mb-3`,children:(0,K.jsx)(E,{tone:`error`,children:s})}),a?(0,K.jsx)(`div`,{className:`flex h-48 items-center justify-center text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Loading…`}):r.length===0?(0,K.jsxs)(`div`,{className:`flex h-48 flex-col items-center justify-center gap-2 px-6 text-[var(--content-tertiary)]`,children:[(0,K.jsx)(C,{className:`h-8 w-8`}),(0,K.jsx)(`p`,{className:`max-w-xs text-center text-body-medium-lighter`,children:`No trust rules yet. Rules are created when you classify actions from permission prompts.`})]}):(0,K.jsx)(`ul`,{className:`divide-y divide-[var(--border-base)]`,children:r.map(e=>{let t=Be(e);return(0,K.jsxs)(`li`,{className:`flex items-start gap-3 py-3`,children:[(0,K.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-default)]`,children:e.tool}),(0,K.jsx)(D,{tone:He(e.risk),children:Q(e.risk)}),e.origin===`default`&&(0,K.jsx)(D,{tone:`neutral`,children:`Default`}),e.userModified&&(0,K.jsx)(D,{tone:`warning`,children:`Modified`})]}),(0,K.jsx)(`div`,{className:`mt-1 truncate font-mono text-body-small-default text-[var(--content-secondary)]`,children:e.pattern}),e.description&&(0,K.jsx)(`div`,{className:`mt-0.5 truncate text-body-small-default text-[var(--content-tertiary)]`,children:e.description})]}),(0,K.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1`,children:[(0,K.jsx)(`button`,{type:`button`,"aria-label":`Edit ${e.tool} rule`,onClick:()=>d(e),className:`rounded-lg p-1.5 text-[var(--content-tertiary)] transition-colors hover:bg-[var(--surface-base)] hover:text-[var(--content-default)]`,children:(0,K.jsx)(S,{className:`h-4 w-4`})}),(!t||e.userModified)&&(0,K.jsx)(c,{variant:`dangerGhost`,size:`compact`,iconOnly:(0,K.jsx)(w,{className:`h-4 w-4`}),"aria-label":`Delete ${e.tool} rule`,onClick:()=>p(e)})]})]},e.id)})})]})]})}),u&&(0,K.jsx)(Z,{assistantId:e,existingRule:u,onClose:()=>d(null),onSaved:()=>{d(null),_()}}),(0,K.jsx)(j,{open:f!==null,title:`Delete Trust Rule?`,message:f?`Remove the ${Q(f.risk).toLowerCase()}-risk rule for ${f.tool} matching "${f.pattern}"?`:``,confirmLabel:`Delete`,cancelLabel:`Cancel`,destructive:!0,onConfirm:()=>void v(),onCancel:()=>p(null)})]}),document.body)}function We(){let e=H(),[t,n]=(0,G.useState)(!1);return(0,K.jsxs)(m,{children:[(0,K.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,K.jsx)(C,{className:`mt-0.5 h-5 w-5 shrink-0 text-[var(--content-secondary)]`}),(0,K.jsxs)(`div`,{className:`flex-1`,children:[(0,K.jsx)(`h2`,{className:`text-title-medium text-[var(--content-default)]`,children:`Trust Rules`}),(0,K.jsx)(`p`,{className:`mt-1 text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Manage per-tool rules that control which actions auto-approve and which require your explicit permission.`})]}),(0,K.jsx)(c,{variant:`outlined`,onClick:()=>n(!0),children:`Manage`})]}),t&&(0,K.jsx)(Ue,{assistantId:e,onClose:()=>n(!1)})]})}var Ge=[{value:`dontRetain`,label:`Don't retain`},{value:`oneHour`,label:`1 hour`},{value:`oneDay`,label:`1 day`},{value:`sevenDays`,label:`7 days`},{value:`thirtyDays`,label:`30 days`},{value:`ninetyDays`,label:`90 days`},{value:`keepForever`,label:`Keep forever`}],Ke=`thirtyDays`;function $(){return(0,K.jsx)(`div`,{className:`h-px bg-[var(--surface-active)] dark:bg-[var(--surface-lift)]`})}function qe(){let e=L({platformHostedOnly:!0}),t=P(),n=t,a=N.use.user()?.id??null,[o]=pe(),[s]=R(),c=o??!0,l=s??!0,[u,d]=(0,G.useState)(()=>i(`llmLogRetention`,Ke));return(0,K.jsxs)(`div`,{className:`space-y-4`,children:[(0,K.jsx)(Me,{}),(0,K.jsx)(Ae,{}),(0,K.jsx)(We,{}),(0,K.jsx)(Le,{}),(0,K.jsx)(Ie,{}),(0,K.jsx)(U,{title:`Privacy`,subtitle:t?(0,K.jsxs)(K.Fragment,{children:[`View details about what data we collect and how it's used in our`,` `,(0,K.jsx)(`a`,{href:ce(se.docs.legal.privacyPolicy),target:`_blank`,rel:`noreferrer`,className:`underline`,children:`privacy policy`}),`.`]}):void 0,children:(0,K.jsxs)(`div`,{className:`space-y-4`,children:[n&&(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(W,{label:`Share Analytics`,helperText:`Send aggregated product usage data`,checked:c,onChange:()=>{F(`share_analytics`,!c,{userId:a,hasPlatformSession:t})},variant:`toggle-trailing`}),(0,K.jsx)($,{}),(0,K.jsx)(W,{label:`Share Diagnostics`,helperText:`Send crash reports, conversation traces, and session replay data`,checked:l,onChange:()=>{F(`share_diagnostics`,!l,{userId:a,hasPlatformSession:t})},variant:`toggle-trailing`}),(0,K.jsx)($,{})]}),(0,K.jsx)(je,{}),e!==`gated`&&(0,K.jsx)($,{}),(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`label`,{htmlFor:`llm-log-retention`,className:`block text-body-medium-default text-[var(--content-default)]`,children:`LLM Request Log Retention`}),(0,K.jsx)(`div`,{className:`mt-2`,style:{maxWidth:280},children:(0,K.jsx)(M,{value:u,onChange:e=>{d(e),r(`llmLogRetention`,e)},options:Ge})}),(0,K.jsx)(`p`,{className:`mt-2 text-body-small-default text-[var(--content-tertiary)]`,children:`How long to keep LLM request and response logs on this device. These logs record the prompts and completions sent to model providers and are used for debugging. Shorter retention improves privacy; longer retention helps troubleshoot issues.`})]})]})})]})}export{qe as PrivacyPage};
|
|
@@ -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,h as i}from"./chunk-5KNZJZUH-BUqIilZr.js";import{t as a}from"./jsx-runtime-BJ8jcmzB.js";import{v as o}from"./local-mode-BNr2MrWI.js";import{t as s}from"./is-electron-wgAC5Mzb.js";import"./i18n
|
|
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,h as i}from"./chunk-5KNZJZUH-BUqIilZr.js";import{t as a}from"./jsx-runtime-BJ8jcmzB.js";import{v as o}from"./local-mode-BNr2MrWI.js";import{t as s}from"./is-electron-wgAC5Mzb.js";import"./i18n-C9hRT4Lf.js";import{t as c}from"./useTranslation-D9pPv-bA.js";import{i as l,n as u,v as d}from"./auth-store-CVtcHK0b.js";import{b as f,m as p,v as m,x as h}from"./native-biometric-D9IxNvJM.js";import{d as g,t as _}from"./routes-B7wRw3UT.js";import{d as v,m as y,p as b}from"./prefs-BLTugIFN.js";import{o as x,r as S}from"./navigation-resolver-jIQ5B6JB.js";import{l as C,n as w,o as T}from"./funnel-events-BP3XPaB5.js";import{t as E}from"./onboarding-navigation-C-Kk3_ll.js";import{t as D}from"./onboarding-layout-GTzgLPSo.js";import{t as O}from"./plugin-attribution-C0u-eDRH.js";import{n as k,t as A}from"./consent-controls-B_zCicqo.js";import{r as j,t as M}from"./checkout-continuation-BvY4Kjz7.js";var N=e(t(),1),P=a();function F({current:e,total:t,color:n}){let{t:r}=c(`onboarding`);return(0,P.jsx)(`div`,{className:`flex items-center gap-1.5`,role:`group`,"aria-label":r(`stepIndicator.ariaLabel`,{current:e+1,total:t}),children:Array.from({length:t},(t,r)=>(0,P.jsx)(`div`,{"aria-hidden":`true`,className:`h-[3px] w-8 rounded-full transition-colors`,style:n?{backgroundColor:n,opacity:r<=e?1:.3}:void 0,children:n?null:(0,P.jsx)(`div`,{className:`h-full w-full rounded-full bg-[var(--content-default)] ${r<=e?``:`opacity-20`}`})},r))})}function I(){let{t:e}=c(`onboarding`),t=r(),[a]=i(),m=u.use.user()?.id??null,_=s(),I=p(),[R,z]=b(),B=R??!0,[V,H]=y(),[U,W]=v(),G=l(),K=j();(0,N.useEffect)(()=>{C()},[]);let q=a.get(`preview`)===`true`,J=(0,N.useCallback)(e=>{},[]),Y=q?J:z,X=q?J:H,Z=q?J:W,Q=(0,N.useCallback)(()=>{if(q)return;d({userId:m,tos:V,privacy:U,shareAnalytics:null,shareDiagnostics:B,hasPlatformSession:G}),T(w.privacyTos,{userId:m});let e=S(a.get(`returnTo`));if(e){t(e,E);return}let n=a.get(`hosting`),r=new URLSearchParams;n&&r.set(`hosting`,n);let i=a.get(O);i&&r.set(O,i);let s=r.toString(),c=`${x({isLocalHatch:o()&&n!==null&&n!==`vellum-cloud`})}${s?`?${s}`:``}`,l=h();if(l?.resumeAfterOnboarding===!0)if(K===`disabled`)f();else{let e=L(l);if(e){e.set(M,c),t(`${g.checkout}?${e.toString()}`,E);return}}t(c,E)},[U,G,q,t,a,B,K,V,m]);return(0,P.jsx)(D,{showAvatarWave:!0,children:(0,P.jsxs)(`div`,{className:`mx-auto flex w-full max-w-xl flex-col items-center ${_?`min-h-full px-8 pt-21 pb-4 electron-prechat-type`:`px-6 py-16`} text-[var(--content-default)]`,children:[I&&(0,P.jsx)(`div`,{className:`mb-8 flex w-full justify-center`,style:{animation:`fadeInUp 0.3s ease-out 0.1s both`},children:(0,P.jsx)(F,{current:2,total:3})}),(0,P.jsx)(`h1`,{className:_?`text-title-large`:`text-3xl font-semibold tracking-tight`,style:{animation:`fadeInUp 0.5s ease-out 0.1s both`},children:e(`privacyScreen.title`)}),(0,P.jsx)(`p`,{className:`text-center text-body-medium-lighter text-[var(--content-tertiary)] ${_?`mt-3.5`:`mt-4`}`,style:{animation:`fadeInUp 0.5s ease-out 0.3s both`},children:e(`privacyScreen.body`)}),(0,P.jsx)(k,{electron:_,showAnalytics:!1,shareAnalytics:!1,shareDiagnostics:B,onShareAnalyticsChange:J,onShareDiagnosticsChange:Y,className:`mt-8 w-full`,style:{animation:`fadeInUp 0.5s ease-out 0.4s both`}}),(0,P.jsx)(A,{electron:_,privacyConsent:U,tosAccepted:V,onPrivacyChange:Z,onTosChange:X,className:`mt-6 w-full`,style:{animation:`fadeInUp 0.5s ease-out 0.5s both`}}),(0,P.jsxs)(`div`,{className:`mt-8 flex w-full flex-col ${_?`gap-2.5`:`gap-2`}`,style:{animation:`fadeInUp 0.5s ease-out 0.55s both`},children:[(0,P.jsx)(n,{variant:`primary`,size:`regular`,fullWidth:!0,disabled:!V||!U,onClick:Q,className:_?void 0:`h-11 text-base`,children:e(`actions.start`)}),(0,P.jsx)(n,{variant:`outlined`,size:`regular`,fullWidth:!0,onClick:()=>t(o()?g.onboarding.hosting:g.onboarding.start,E),className:_?void 0:`h-11 text-base`,children:e(`actions.back`)})]})]})})}function L(e){return e.kind===`package`?new URLSearchParams({[_]:e.packageKey}):e.storageTier===null?null:m({machineTier:e.machineTier,storageTier:e.storageTier,creditTier:e.creditTier})}export{I as PrivacyScreen};
|
package/dist/assets/{provider-callback-page-C-bl_GDk.js → provider-callback-page-BPp1TM7J.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./capture-error-DiNp24s6.js";import{t as n}from"./react-BFJW0bSv.js";import{d as r,h as i,t as a}from"./chunk-5KNZJZUH-BUqIilZr.js";import{t as o}from"./jsx-runtime-BJ8jcmzB.js";import{F as s,v as c}from"./local-mode-BNr2MrWI.js";import"./i18n
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./capture-error-DiNp24s6.js";import{t as n}from"./react-BFJW0bSv.js";import{d as r,h as i,t as a}from"./chunk-5KNZJZUH-BUqIilZr.js";import{t as o}from"./jsx-runtime-BJ8jcmzB.js";import{F as s,v as c}from"./local-mode-BNr2MrWI.js";import"./i18n-C9hRT4Lf.js";import{t as l}from"./useTranslation-D9pPv-bA.js";import{n as u,tt as d}from"./auth-store-CVtcHK0b.js";import{c as f}from"./api-Cx3i50oG.js";import{E as p,M as m}from"./native-biometric-D9IxNvJM.js";import{d as h}from"./routes-B7wRw3UT.js";import{i as g,s as _}from"./login-flow-D6ivg6PM.js";import{t as v}from"./external-urls-Bg18AU4S.js";import{r as y,t as b}from"./account-shell-Dk4m-iaE.js";var x=e(n(),1),S=o();function C(){let{t:e}=l(`account`),[n]=i(),o=r(),C=u.use.refreshSession(),w=n.get(`error`),[T,E]=(0,x.useState)(null),D=(0,x.useRef)(!1),O=n.get(`returnTo`),k=g(n);return(0,x.useEffect)(()=>{D.current||w||(D.current=!0,(async()=>{try{let e=await m(),t=p(e.ok&&!!e.data.user,e.ok?[]:e.flows??[]);switch(t.kind){case`authenticated`:{if(await C(),c())try{let e=await f();if(e.ok&&e.data.length>0&&(await s(e.data,d.getState().currentOrganizationId??void 0),!O)){o(h.assistant,{replace:!0});break}}catch{}let e=h.assistant,{destination:t,requiresFullPageNavigation:n}=_({returnTo:O,fallback:e,authIntent:k});n?window.location.href=t:o(t,{replace:!0});break}case`provider_signup`:{let e=n.get(`returnTo`);o(e?`${h.account.providerSignup}?returnTo=${encodeURIComponent(e)}`:h.account.providerSignup,{replace:!0});break}case`error`:E(t.message);break}}catch(e){t(e,{context:`provider_callback`}),E(`Something went wrong. Please try signing in again.`)}})())},[k,w,C,O,o,n]),w===`signup_closed`?(0,S.jsxs)(b,{children:[(0,S.jsx)(y,{title:e(`providerCallbackPage.signupClosedTitle`),subtitle:e(`providerCallbackPage.signupClosedSubtitle`)}),(0,S.jsxs)(`div`,{className:`flex flex-col items-center gap-4`,children:[(0,S.jsx)(`a`,{href:v,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex items-center justify-center gap-2 rounded-lg bg-[var(--primary-base)] px-6 py-3 text-sm font-medium text-[var(--content-inset)] no-underline transition-colors hover:bg-[var(--primary-hover)]`,children:e(`providerCallbackPage.joinCommunity`)}),(0,S.jsx)(a,{to:h.account.login,className:`text-sm font-medium text-[var(--content-emphasised)] hover:underline`,children:e(`providerCallbackPage.backToSignIn`)})]})]}):w||T?(0,S.jsxs)(b,{children:[(0,S.jsx)(y,{title:e(`providerCallbackPage.failedTitle`),subtitle:T??e(`providerCallbackPage.failedSubtitle`)}),(0,S.jsx)(`div`,{className:`flex flex-col items-center gap-4`,children:(0,S.jsx)(a,{to:h.account.login,className:`inline-flex items-center justify-center gap-2 rounded-lg bg-[var(--primary-base)] px-6 py-3 text-sm font-medium text-[var(--content-inset)] no-underline transition-colors hover:bg-[var(--primary-hover)]`,children:e(`providerCallbackPage.backToSignIn`)})})]}):(0,S.jsx)(b,{children:(0,S.jsx)(y,{title:e(`providerCallbackPage.completingTitle`),subtitle:e(`providerCallbackPage.completingSubtitle`)})})}export{C as ProviderCallbackPage};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{d as n,h as r,t as i}from"./chunk-5KNZJZUH-BUqIilZr.js";import{t as a}from"./jsx-runtime-BJ8jcmzB.js";import"./i18n
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{d as n,h as r,t as i}from"./chunk-5KNZJZUH-BUqIilZr.js";import{t as a}from"./jsx-runtime-BJ8jcmzB.js";import"./i18n-C9hRT4Lf.js";import{t as o}from"./useTranslation-D9pPv-bA.js";import{n as s}from"./auth-store-CVtcHK0b.js";import{F as c,N as l,j as u}from"./native-biometric-D9IxNvJM.js";import{d}from"./routes-B7wRw3UT.js";import{c as f,s as p}from"./login-flow-D6ivg6PM.js";import{i as m,n as h,r as g,t as _}from"./account-shell-Dk4m-iaE.js";import{t as v}from"./signup-shell-DW976E_0.js";var y=e(t(),1),b=a();function x(){let{t:e}=o(`account`),t=n(),[a]=r(),x=s.use.refreshSession(),S=a.get(`returnTo`),[C,w]=(0,y.useState)(``),[T,E]=(0,y.useState)(``),[D,O]=(0,y.useState)(``),[k,A]=(0,y.useState)(``),[j,M]=(0,y.useState)(``),[N,P]=(0,y.useState)(null),[F,I]=(0,y.useState)(!1),[L,R]=(0,y.useState)(!0),z=(0,y.useRef)(!1);(0,y.useEffect)(()=>{z.current||(z.current=!0,(async()=>{try{let e=await u();if(!e.ok){t(d.account.login,{replace:!0});return}w(e.data.user.email??``),E(e.data.user.username??``),O(e.data.user.first_name??``),A(e.data.user.last_name??``),R(!1)}catch{t(d.account.login,{replace:!0})}})())},[t]);let B=async()=>{let e=await c({email:C,username:T});if(!e.ok){if(l(e)){await x();let e=f(S,d.account.root);e.requiresFullPageNavigation?window.location.href=e.destination:t(e.destination);return}P(e.errors[0]?.message??`Failed to complete signup.`);return}await x();let n=p({returnTo:S,fallback:d.account.root,authIntent:`signup`});n.requiresFullPageNavigation?window.location.href=n.destination:t(n.destination)},V=async t=>{t.preventDefault(),P(null),I(!0);try{await B()}catch{P(e(`authErrors.genericFailure`))}finally{I(!1)}},H=async t=>{if(t.preventDefault(),j.trim()){P(null),I(!0);try{await B()}catch{P(e(`authErrors.genericFailure`))}finally{I(!1)}}};if(L)return(0,b.jsx)(_,{children:(0,b.jsx)(g,{title:e(`providerSignupPage.completingTitle`),subtitle:e(`providerSignupPage.completingSubtitle`)})});if(C&&T){let t=j.trim().length>0&&!F;return(0,b.jsx)(v,{children:(0,b.jsxs)(`form`,{onSubmit:H,className:`signup-details__thread`,children:[(0,b.jsxs)(`h2`,{className:`signup-details__heading`,children:[e(`providerSignupPage.headingLine1`),(0,b.jsx)(`br`,{}),e(`providerSignupPage.headingLine2`)]}),N&&(0,b.jsx)(`p`,{className:`signup-details__error`,children:N}),(0,b.jsxs)(`div`,{className:`signup-details__step`,children:[(0,b.jsxs)(`span`,{className:`signup-details__label`,children:[e(`providerSignupPage.firstNameQuestion`),` `,(0,b.jsx)(`span`,{className:`signup-details__req`,children:`*`})]}),(0,b.jsx)(`input`,{className:`signup-details__input`,type:`text`,placeholder:e(`providerSignupPage.firstNamePlaceholder`),value:D,readOnly:!0,disabled:!0})]}),(0,b.jsxs)(`div`,{className:`signup-details__step`,children:[(0,b.jsxs)(`span`,{className:`signup-details__label`,children:[e(`providerSignupPage.lastNameQuestion`),` `,(0,b.jsx)(`span`,{className:`signup-details__req`,children:`*`})]}),(0,b.jsx)(`input`,{className:`signup-details__input`,type:`text`,placeholder:e(`providerSignupPage.lastNamePlaceholder`),value:k,readOnly:!0,disabled:!0})]}),(0,b.jsxs)(`div`,{className:`signup-details__step`,children:[(0,b.jsxs)(`span`,{className:`signup-details__label`,children:[e(`providerSignupPage.roleQuestion`),` `,(0,b.jsx)(`span`,{className:`signup-details__req`,children:`*`})]}),(0,b.jsx)(`input`,{className:`signup-details__input`,type:`text`,autoComplete:`organization-title`,placeholder:e(`providerSignupPage.rolePlaceholder`),value:j,onChange:e=>M(e.target.value),autoFocus:!0})]}),(0,b.jsx)(`div`,{className:`signup-details__step`,children:(0,b.jsx)(`button`,{type:`submit`,className:`signup-details__continue`,disabled:!t,children:e(F?`providerSignupPage.submitting`:`providerSignupPage.submit`)})})]})})}return(0,b.jsxs)(_,{children:[(0,b.jsx)(g,{title:e(`providerSignupPage.completeAccountTitle`),subtitle:e(`providerSignupPage.completeAccountSubtitle`)}),(0,b.jsxs)(h,{onSubmit:V,error:N,submitLabel:e(`providerSignupPage.completeSignup`),submittingLabel:e(`providerSignupPage.completingSignup`),isSubmitting:F,footer:(0,b.jsx)(i,{to:d.account.login,className:`text-sm text-[var(--content-secondary)] hover:text-[var(--content-default)]`,children:e(`providerSignupPage.backToSignIn`)}),children:[(0,b.jsx)(m,{id:`email`,type:`email`,autoComplete:`email`,placeholder:e(`providerSignupPage.emailPlaceholder`),value:C,onChange:e=>w(e.target.value),required:!0}),(0,b.jsx)(m,{id:`username`,type:`text`,autoComplete:`username`,placeholder:e(`providerSignupPage.usernamePlaceholder`),value:T,onChange:e=>E(e.target.value),required:!0})]})]})}export{x as ProviderSignupPage};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{l as e}from"./machine-sizes-
|
|
1
|
+
import{l as e}from"./machine-sizes-DzJ0TVYS.js";function t(t,n){return t?{machine:t.machineSize==null||n?.machineSize!=null&&e(n.machineSize)>=e(t.machineSize),storage:t.storageGib==null||n?.storageGib!=null&&n.storageGib>=t.storageGib}:{machine:!1,storage:!1}}function n(e,n){let r=t(e,n);return r.machine&&r.storage}function r(e){if(!e)return!1;if(e.state===`resizing_machine`||e.state===`resizing_storage`)return!0;let t=e.active_operation?.operation;return typeof t==`string`&&t.startsWith(`resize`)}function i(e){if(!e)return{machine:!1,storage:!1};let t=e.active_operation?.operation;return{machine:e.state===`resizing_machine`||t===`resize_machine`,storage:e.state===`resizing_storage`||t===`resize_storage`}}function a(e){return e.state===`not_applicable`&&(e.reason===`no_active_pro`||e.reason===`no_provisionable_assistants`)}export{n as a,i,a as n,r,t};
|
|
@@ -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"./capture-error-DiNp24s6.js";import{t}from"./preload-helper-Cv2QeVDK.js";import{F as n,I as r}from"./sdk.gen-DWvuzSBW.js";import{t as i}from"./event-bus-B-wwSVzo.js";import{l as a}from"./native-biometric-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/esm-kYXyJ2zw.js","assets/chunk-jRWAZmH_.js","assets/preload-helper-Cv2QeVDK.js","assets/dist-D7UWVopK.js","assets/esm-BD6nxr-q.js","assets/esm-BJhqsukI.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{t as e}from"./capture-error-DiNp24s6.js";import{t}from"./preload-helper-Cv2QeVDK.js";import{F as n,I as r}from"./sdk.gen-DWvuzSBW.js";import{t as i}from"./event-bus-B-wwSVzo.js";import{l as a}from"./native-biometric-D9IxNvJM.js";import{i as o,t as s}from"./dist-D7UWVopK.js";import{i as c}from"./typed-storage-BNw603jr.js";import{s as l}from"./platform-detection-zth6eCY8.js";var u=o(`ApnsEnvironment`),d=`.dev`;function f(e){return e.endsWith(d)?`development`:`production`}async function p(e){try{let{environment:e}=await u.get();if(e===`development`||e===`production`)return e;console.debug(`[apns-environment] unreadable APNs entitlement, using bundle-id heuristic:`,e)}catch(e){console.debug(`[apns-environment] ApnsEnvironment bridge unavailable, using bundle-id heuristic:`,e)}return f(e)}var m=`vellum-alerts`,h=`AndroidNotificationChannels`,g=o(h),_=null;async function v(){l()&&(_||=(s.isPluginAvailable(h)?g.ensureAlertsChannel():t(async()=>{let{LocalNotifications:e}=await import(`./esm-kYXyJ2zw.js`).then(e=>e.n);return{LocalNotifications:e}},__vite__mapDeps([0,1,2,3])).then(({LocalNotifications:e})=>e.createChannel({id:m,name:`Alerts`,importance:3}))).catch(e=>{throw _=null,e}),await _)}var y=`AndroidPushRegistration`,b=o(y);function x(e){let t=JSON.parse(e);return typeof t.token==`string`&&typeof t.bundleId==`string`&&typeof t.assistantId==`string`?{token:t.token,bundleId:t.bundleId,assistantId:t.assistantId}:null}var S=c({key:`vellum:push_registration`,scope:`user`,parse:x,serialize:JSON.stringify,fallback:null}),C=!1,w=null,T=null,E=null,D=new Set,O=Promise.resolve();function k(e){D.add(e),e.finally(()=>{D.delete(e)})}function A(e,t){k(s.getPlatform()===`android`?O=O.then(()=>M(e,t)):M(e,t))}function j(){let e=s.getPlatform();return a()&&(e===`ios`||e===`android`)}async function M(n,i){try{let{App:a}=await t(async()=>{let{App:e}=await import(`./esm-BD6nxr-q.js`);return{App:e}},__vite__mapDeps([4,2,3])),{id:o}=await a.getInfo(),c=s.getPlatform(),l=c===`android`?{token:n,platform:`android`,bundle_id:o}:{token:n,platform:`ios`,bundle_id:o,apns_environment:await p(o)},u=await r({path:{assistant_id:i},body:l,throwOnError:!1});if(u.error){e(u.error,{context:`push_registration_upsert`,level:`warning`,bestEffort:!0});return}let d=T??S.load();T={token:n,bundleId:o,assistantId:i},S.save(T),d&&d.bundleId===o&&d.token!==n&&c===`android`&&await P(d)}catch(t){e(t,{context:`push_registration_upsert`,level:`warning`,bestEffort:!0})}}function N(e){if(typeof e!=`object`||!e)return;let t=e,n=t.deep_link;if(typeof n==`string`)try{n=JSON.parse(n)}catch{n=null}if(typeof n==`object`&&n){let e=n.conversationId;if(typeof e==`string`)return e}return typeof t.conversationId==`string`?t.conversationId:void 0}async function P(t){let r=await n({path:{assistant_id:t.assistantId,token:t.token},query:{bundle_id:t.bundleId},throwOnError:!1});r.error&&e(r.error,{context:`push_registration_delete`,level:`warning`,bestEffort:!0,extra:{assistantId:t.assistantId,bundleId:t.bundleId}})}function F(e){E=e}async function I(){if(!C){C=!0;try{let{PushNotifications:n}=await t(async()=>{let{PushNotifications:e}=await import(`./esm-BJhqsukI.js`);return{PushNotifications:e}},__vite__mapDeps([5,3]));await n.addListener(`registration`,e=>{let t=w;t&&A(e.value,t)}),await n.addListener(`registrationError`,t=>{e(t,{context:`push_registration_native`,level:`warning`})}),s.getPlatform()===`android`&&await n.addListener(`pushNotificationReceived`,e=>E?.(e)),await n.addListener(`pushNotificationActionPerformed`,e=>{let t=N(e.notification.data);t&&i(`deeplink.openThread`,{threadId:t})})}catch(t){C=!1,e(t,{context:`push_registration_listeners`,level:`warning`})}}}async function L(n){if(!j())return;let r=s.getPlatform()===`android`;w=n,T&&T.assistantId!==n&&A(T.token,n);try{let{PushNotifications:e}=await t(async()=>{let{PushNotifications:e}=await import(`./esm-BJhqsukI.js`);return{PushNotifications:e}},__vite__mapDeps([5,3]));if(await I(),r&&!s.isPluginAvailable(y)||(await v(),(await e.requestPermissions()).receive!==`granted`))return;r?await b.register():await e.register()}catch(t){e(t,{context:`push_registration_register`,level:`warning`})}}async function R(){for(w=null;D.size>0;)await Promise.allSettled([...D]);let t=T??S.load();if(T=null,S.remove(),j()){if(t)try{await P(t)}catch(t){e(t,{context:`push_registration_delete`,level:`warning`,bestEffort:!0})}if(s.getPlatform()===`android`)try{s.isPluginAvailable(y)&&await b.unregister()}catch(t){e(t,{context:`push_registration_unregister`,level:`warning`})}}}function z(e){return T?.assistantId===e}export{R as a,p as c,F as i,z as n,m as o,L as r,v as s,N as t};
|
package/dist/assets/{remove-from-device-dialog-BDRSkSad.js → remove-from-device-dialog-DeJ_gAmf.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./jsx-runtime-BJ8jcmzB.js";import{t}from"./confirm-dialog-Drw1adml.js";import{n,t as r}from"./create-selectors-CmDroXTn.js";import{C as i,O as a,p as o,s,y as c}from"./local-mode-BNr2MrWI.js";import{r as l}from"./resolved-assistants-store-BNadgXqb.js";import{Z as u,n as d}from"./auth-store-
|
|
1
|
+
import{t as e}from"./jsx-runtime-BJ8jcmzB.js";import{t}from"./confirm-dialog-Drw1adml.js";import{n,t as r}from"./create-selectors-CmDroXTn.js";import{C as i,O as a,p as o,s,y as c}from"./local-mode-BNr2MrWI.js";import{r as l}from"./resolved-assistants-store-BNadgXqb.js";import{Z as u,n as d}from"./auth-store-CVtcHK0b.js";import{d as f}from"./routes-B7wRw3UT.js";var p=r(n()(e=>({open:!1,initialBundle:null,guidanceMessage:null,deepLinkDrainSettled:!1,openConnectDialog:t=>e({open:!0,initialBundle:t?.initialBundle??null,guidanceMessage:t?.guidanceMessage??null}),closeConnectDialog:()=>e({open:!1,initialBundle:null,guidanceMessage:null}),markDeepLinkDrainSettled:()=>e({deepLinkDrainSettled:!0})})));async function m(e){let t=s(e);if(t||=(await i(),s(e)),t&&c(t)){try{await d.getState().connectPairedAssistant(e)}catch(e){return console.error(`switchToAssistant.connectPairedAssistant failed`,e),{ok:!1,error:`Failed to connect to the assistant.`}}return{ok:!0}}return await u(e),{ok:!0}}async function h(e){let t=o()?.assistantId===e,n;try{n=await a(e)}catch(e){return console.error(`removePairedAssistant.removeFromLockfile failed`,e),{ok:!1,error:`Failed to remove assistant.`}}if(!n.ok)return{ok:!1,error:n.error??`Failed to remove assistant.`};let r=l.getState();return r.activeAssistantId===e&&r.setActiveAssistantId(null),{ok:!0,nextRoute:t?`${f.selectAssistant}?noAutoSkip=1`:null}}var g=e();function _({open:e,kind:n,assistantName:r,errorMessage:i,isPending:a,onConfirm:o,onCancel:s}){return(0,g.jsx)(t,{open:e,title:`Remove from this device?`,message:(0,g.jsxs)(g.Fragment,{children:[n===`paired`?(0,g.jsxs)(g.Fragment,{children:[`This won’t affect `,r,` on its host machine. It only forgets the pairing on this device. Pair again anytime with vellum connect import.`]}):n===`origin`?(0,g.jsxs)(g.Fragment,{children:[`This won’t affect `,r,` or sign you out there. It only forgets the entry on this device. Add it again anytime.`]}):(0,g.jsxs)(g.Fragment,{children:[`This won’t delete `,r,`. It only removes it from this device. Logging in will make it available again.`]}),i&&(0,g.jsx)(`span`,{className:`mt-2 block text-[var(--system-negative-strong)]`,children:i})]}),confirmLabel:`Remove`,destructive:!0,isPending:a,onConfirm:o,onCancel:s})}export{p as i,h as n,m as r,_ as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{T as e}from"./native-biometric-
|
|
1
|
+
import{T as e}from"./native-biometric-D9IxNvJM.js";var t={not_me:`Not me`,not_relevant:`Not relevant`};function n(e){try{return new URL(e).hostname.replace(/^www\./,``)}catch{return null}}function r(e){let t=typeof e==`string`?e.trim().toLowerCase():``;return t.startsWith(`conf`)?`confident`:t.startsWith(`guess`)?`guessing`:`maybe`}function i(e){return Array.isArray(e)?e.filter(e=>typeof e==`string`&&e.trim().length>0):[]}var a=[`beenverified.com`,`checkpeople.com`,`clustrmaps.com`,`cyberbackgroundchecks.com`,`fastpeoplesearch.com`,`instantcheckmate.com`,`intelius.com`,`mylife.com`,`nuwber.com`,`peekyou.com`,`peoplefinders.com`,`peoplelooker.com`,`radaris.com`,`spokeo.com`,`thatsthem.com`,`truepeoplesearch.com`,`truthfinder.com`,`usphonebook.com`,`ussearch.com`,`whitepages.com`];function o(t){let r=n(t);return r?a.some(t=>e(r,t)):!1}function s(e){let t=e.search(/```(?:json)?/i);if(t===-1)return e;let n=e.slice(t).replace(/^```(?:json)?/i,``),r=n.indexOf("```");return r===-1?n:n.slice(0,r)}function c(e){let t=[],n=0,r=-1,i=!1,a=!1;for(let o=0;o<e.length;o++){let s=e[o];if(i){a?a=!1:s===`\\`?a=!0:s===`"`&&(i=!1);continue}if(s===`"`)i=!0;else if(s===`{`)n===0&&(r=o),n++;else if(s===`}`&&(n--,n===0&&r>=0)){try{t.push(JSON.parse(e.slice(r,o+1)))}catch{}r=-1}}return t}function l(e){if(!e||typeof e!=`object`)return null;let t=e.claim;if(typeof t!=`string`||!t.trim())return null;let n=t.trim(),a=i(e.sources),s=a.filter(e=>!o(e));if(a.length>0&&s.length===0)return{kind:`dropped`,claim:n};let c=r(e.confidence);return{kind:`fact`,fact:{claim:n,confidence:c===`confident`&&s.length===0?`maybe`:c,sources:s}}}function u(e){let t=[],n=[];if(Array.isArray(e))for(let r of e){let e=l(r);e&&(e.kind===`fact`?t.push(e.fact):n.push(e.claim))}let r=new Set(t.map(e=>e.claim));return{claims:t,droppedClaims:n.filter(e=>!r.has(e))}}function d(e){if(!e||typeof e!=`object`)return null;let t=e.suggestion;if(typeof t!=`string`||!t.trim())return null;let n=e.prompt,r=typeof n==`string`&&n.trim()?n.trim():t.trim();return{suggestion:t.trim(),prompt:r}}function f(e){if(!Array.isArray(e))return[];let t=new Set,n=[];for(let r of e){if(typeof r!=`string`)continue;let e=r.trim();!e||t.has(e)||(t.add(e),n.push(e))}return n}function p(e){let t=m(e,`plugins`);if(t===null)return null;let n=0,r=!1,i=!1;for(let e=0;e<t.length;e++){let a=t[e];if(r){i?i=!1:a===`\\`?i=!0:a===`"`&&(r=!1);continue}if(a===`"`)r=!0;else if(a===`[`)n++;else if(a===`]`){if(n>0){n--;continue}try{return f(JSON.parse(`[${t.slice(0,e+1)}`))}catch{return null}}}return null}function m(e,t){let n=e.indexOf(`"${t}"`);if(n===-1)return null;let r=e.indexOf(`[`,n);return r===-1?null:e.slice(r+1)}function h(e,t){return Array.isArray(e)?e.map(t).filter(e=>e!==null):[]}function g(e){for(let t of c(e))if(t&&typeof t==`object`&&!Array.isArray(t)){let e=t;if(Array.isArray(e.claims)||Array.isArray(e.suggestions))return e}return null}function _(e){if(!e)return{claims:[],droppedClaims:[],suggestions:[],plugins:[],pluginsResolved:!1,complete:!1};let t=s(e),n=g(t);if(n){let{claims:e,droppedClaims:t}=u(n.claims);return{claims:e,droppedClaims:t,suggestions:h(n.suggestions,d),plugins:f(n.plugins),pluginsResolved:!0,complete:!0}}let r=m(t,`claims`)??(()=>{let e=t.indexOf(`[`);return e===-1?null:t.slice(e+1)})(),{claims:i,droppedClaims:a}=u(r===null?[]:c(r)),o=m(t,`suggestions`),l=o===null?[]:c(o).map(d).filter(e=>e!==null),_=p(t);return{claims:i,droppedClaims:a,suggestions:l,plugins:_??[],pluginsResolved:_!==null,complete:!1}}function v(e){return e.split(/[-_\s]+/).filter(e=>e.length>0).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `)}function y(e){switch(e){case`confident`:return{label:`Confident`,tone:`positive`};case`guessing`:return{label:`Guessing`,tone:`neutral`};default:return{label:`Maybe-ish`,tone:`warning`}}}export{v as a,_ as i,y as n,n as r,t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import"./button-VkxVX0DM.js";import{d as n,n as r}from"./chunk-5KNZJZUH-BUqIilZr.js";import{t as i}from"./jsx-runtime-BJ8jcmzB.js";import{d as a}from"./routes-B7wRw3UT.js";import"./conversation-store-DKBwV4bc.js";import"./conversation-selection-
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import"./button-VkxVX0DM.js";import{d as n,n as r}from"./chunk-5KNZJZUH-BUqIilZr.js";import{t as i}from"./jsx-runtime-BJ8jcmzB.js";import{d as a}from"./routes-B7wRw3UT.js";import"./conversation-store-DKBwV4bc.js";import"./conversation-selection-4ubh2ui-.js";import"./research-results-view-BcQs2Zh9.js";var o=e(t(),1),s=i(),c=[{claim:`Software engineer based in Austin, TX`,confidence:`confident`,sources:[`https://github.com/example-dev`]},{claim:`Product engineer at an early-stage AI startup`,confidence:`confident`,sources:[`https://example.com/team`]},{claim:`Maintains an open-source CLI tool for local LLM evaluation and tooling`,confidence:`confident`,sources:[`https://github.com/example-dev`,`https://example.com/project`]},{claim:`Primarily writes TypeScript and Go`,confidence:`confident`,sources:[`https://github.com/example-dev`]},{claim:`Came up through a coding bootcamp rather than a CS degree`,confidence:`maybe`,sources:[]}];function l(){n();let[e,t]=(0,o.useState)(`results`),[i,l]=(0,o.useState)(()=>new Map);return c.map((e,t)=>({fact:e,index:t})),(0,s.jsx)(r,{to:a.assistant,replace:!0})}export{l as ResearchMockPage};
|