@vellumai/web 0.11.2 → 0.11.3-staging.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/AnimatePresence-D41IKJOi.js +9 -0
- package/dist/assets/BundleConfirmPage-DSomDpj_.js +1 -0
- package/dist/assets/Combination-BswM2qVy.js +41 -0
- package/dist/assets/a2a-invite-DPoues5o.js +1 -0
- package/dist/assets/about-page-XEhyTfeX.js +1 -0
- package/dist/assets/access-DWtJQvRI.js +1 -0
- package/dist/assets/account-page-D03pCcnz.js +1 -0
- package/dist/assets/account-shell-DmVQwtZ0.js +1 -0
- package/dist/assets/acp-run-actions-BtRROeN9.js +1 -0
- package/dist/assets/acp-run-detail-panel-COs66Yrd.js +5 -0
- package/dist/assets/acp-run-store-DAOLku4B.js +1 -0
- package/dist/assets/activity-steps-panel-CLjBxqNs.js +1 -0
- package/dist/assets/add-credential-modal-DKu25tMg.js +1 -0
- package/dist/assets/add-credits-modal-CPXbw5lH.js +1 -0
- package/dist/assets/ai-page-D4GbPprS.js +1 -0
- package/dist/assets/animate-CEUNjqNk.js +1 -0
- package/dist/assets/animated-avatar-COfAYU4u.js +1 -0
- package/dist/assets/api-DwULK0El.js +1 -0
- package/dist/assets/api-JA_IDAQk.js +1 -0
- package/dist/assets/api-errors-BQX1Pzcm.js +1 -0
- package/dist/assets/api-key-screen-vFF5CrFw.js +1 -0
- package/dist/assets/app-card-B7C46-7O.js +1 -0
- package/dist/assets/app-info-Du9AiJU5.js +1 -0
- package/dist/assets/archive-VIStcSec.js +1 -0
- package/dist/assets/archive-redirect-page-01RJCSug.js +1 -0
- package/dist/assets/arrow-down-to-line-DmG4pLoU.js +1 -0
- package/dist/assets/arrow-left-BikDV6F2.js +1 -0
- package/dist/assets/arrow-right-UTImTy7b.js +1 -0
- package/dist/assets/arrow-up-C0gtfKEK.js +1 -0
- package/dist/assets/assistant-feature-flag-store-qYfAdlBG.js +1 -0
- package/dist/assets/assistant-identity-store-nE-e8KQw.js +1 -0
- package/dist/assets/assistant-status-panel-CDUAp33H.js +1 -0
- package/dist/assets/auth-store-DkOiOQNx.js +2 -0
- package/dist/assets/avatar-random-BiLhcs1I.js +1 -0
- package/dist/assets/avatar-renderer-CsRuhhXn.js +1 -0
- package/dist/assets/background-task-actions-NhVu8iWU.js +1 -0
- package/dist/assets/background-task-detail-panel-xFGqYCUz.js +1 -0
- package/dist/assets/background-task-store-B1MUU_bh.js +1 -0
- package/dist/assets/ban-Dk1OXyCw.js +1 -0
- package/dist/assets/bell-aW0w-ROt.js +1 -0
- package/dist/assets/billing-page-n2hU_EAj.js +3 -0
- package/dist/assets/billing-redirect-page-CXWO9YOz.js +1 -0
- package/dist/assets/bookmarks-page-DqXq2CVJ.js +1 -0
- package/dist/assets/brain-ZiC0HCCF.js +1 -0
- package/dist/assets/browser-BP3Xidk_.js +2 -0
- package/dist/assets/bug-CDEs1Scu.js +1 -0
- package/dist/assets/build-state-B0f3Jn2o.js +1 -0
- package/dist/assets/button-BENY-yx_.js +1 -0
- package/dist/assets/calendar-CTyC1v1L.js +1 -0
- package/dist/assets/capture-error-Cw5vs0Ef.js +4 -0
- package/dist/assets/card-q0GJX1HZ.js +1 -0
- package/dist/assets/channels-page-route-CbV05RLi.js +9 -0
- package/dist/assets/chart-column-CEHOik7U.js +1 -0
- package/dist/assets/chat-avatar-BPhNOZzd.js +1 -0
- package/dist/assets/chat-layout-slots-store-N_sabTbs.js +1 -0
- package/dist/assets/chat-markdown-message-WfT4JUja.js +1 -0
- package/dist/assets/check-DSgjgwlo.js +1 -0
- package/dist/assets/checkbox-C4x4HEp4.js +1 -0
- package/dist/assets/checkout-continuation-GOQDBt2E.js +1 -0
- package/dist/assets/checkout-page-BxYwG3J8.js +1 -0
- package/dist/assets/checkout-return-target-VIzzqviy.js +1 -0
- package/dist/assets/chevron-down-CrFV6lfm.js +1 -0
- package/dist/assets/chevron-left-D-pnIQax.js +1 -0
- package/dist/assets/chevron-right-DBGgpEiZ.js +1 -0
- package/dist/assets/chevron-up-B84s50b8.js +1 -0
- package/dist/assets/chunk-5KNZJZUH-BUqIilZr.js +4 -0
- package/dist/assets/circle-alert-De9q5FVd.js +1 -0
- package/dist/assets/circle-check-big-CpoRGdNz.js +1 -0
- package/dist/assets/circle-check-q8BVdbgw.js +1 -0
- package/dist/assets/circle-minus-Y3lFnfyL.js +1 -0
- package/dist/assets/circle-x-B5rnAOe1.js +1 -0
- package/dist/assets/client-feature-flag-store-C8ieIAKe.js +1 -0
- package/dist/assets/client-perf-C-xVLAvQ.js +1 -0
- package/dist/assets/clipboard-copy-BOU_-XoC.js +1 -0
- package/dist/assets/clock-B8umTTHk.js +1 -0
- package/dist/assets/cloud-DqktQX50.js +1 -0
- package/dist/assets/cloud-off-DyOAnFan.js +1 -0
- package/dist/assets/cn-DFWryB3N.js +1 -0
- package/dist/assets/code-DwZ6Mhdw.js +1 -0
- package/dist/assets/coins-CJ7Ik1IC.js +1 -0
- package/dist/assets/command-palette-DSxHNf_m.js +1 -0
- package/dist/assets/command-palette-window-page-9lbssBKp.js +1 -0
- package/dist/assets/common-wFfOb0rN.js +1 -0
- package/dist/assets/community-page-y8OhCqww.js +1 -0
- package/dist/assets/companion-surface-page-qd2dSp0Y.js +1 -0
- package/dist/assets/composer-settings-MHDtr31Y.js +1 -0
- package/dist/assets/confirm-dialog-zx8L9sUi.js +1 -0
- package/dist/assets/connect-page-D91p52dR.js +1 -0
- package/dist/assets/consent-C4SGGEiM.js +1 -0
- package/dist/assets/consent-controls-SQ8G-LrA.js +1 -0
- package/dist/assets/contacts-gateway-Cz3rbqgT.js +1 -0
- package/dist/assets/contacts-page-route-BE3oNfhk.js +1 -0
- package/dist/assets/conversation-cache-BmhpM_P6.js +1 -0
- package/dist/assets/conversation-list-fetchers-D3FmANI4.js +1 -0
- package/dist/assets/conversation-navigation-DbQqV_fs.js +1 -0
- package/dist/assets/conversation-queries-CMEwcap1.js +1 -0
- package/dist/assets/conversation-selection-DXYpE4U8.js +1 -0
- package/dist/assets/conversation-store-D4pZBwP5.js +1 -0
- package/dist/assets/copy-to-clipboard-DnJHokIa.js +1 -0
- package/dist/assets/cpu-mDttg6J1.js +1 -0
- package/dist/assets/credential-entry-page-FApfdSCG.js +1 -0
- package/dist/assets/credentials-page-DKfIMfUB.js +1 -0
- package/dist/assets/csv-preview-DB8q0b_y.js +4 -0
- package/dist/assets/daily-reset-time-B2-pE2Lv.js +1 -0
- package/dist/assets/danger-zone-redirect-page-BndgqH35.js +1 -0
- package/dist/assets/debug-page-DpWI-aFX.js +4 -0
- package/dist/assets/deploy-dialogs-BhY-urVH.js +1 -0
- package/dist/assets/deploy-store-OFWDAEgC.js +1 -0
- package/dist/assets/desktop-voice-activity-C53ZhMf7.js +1 -0
- package/dist/assets/detail-card-Dsnf52vg.js +1 -0
- package/dist/assets/detail-drawer-AKY7keIJ.js +1 -0
- package/dist/assets/detail-panel-stop-button-Cvnn4hYA.js +1 -0
- package/dist/assets/detail-shell-g6Pw4jiP.js +1 -0
- package/dist/assets/developer-page-CSFTdMiT.js +1 -0
- package/dist/assets/device-settings-DZvv4pnY.js +1 -0
- package/dist/assets/devices-redirect-page-BHCkcGl_.js +1 -0
- package/dist/assets/diagnostics-6dSlxnyU.js +1 -0
- package/dist/assets/dictation-overlay-DQnD0C9N.js +1 -0
- package/dist/assets/dictation-overlay-page-14QkB_bU.js +1 -0
- package/dist/assets/dist-BA9prIz1.js +1 -0
- package/dist/assets/dist-C5_d6Zkz.js +1 -0
- package/dist/assets/dist-DHB1G-V6.js +1 -0
- package/dist/assets/dist-DlYszVmN.js +1 -0
- package/dist/assets/doctor-handoff-store-DeQSIF5u.js +1 -0
- package/dist/assets/document-viewer-container-Bousf9D9.js +2 -0
- package/dist/assets/document-viewer-page-CJuMnNZk.js +1 -0
- package/dist/assets/download-Byg0fi0d.js +1 -0
- package/dist/assets/edge-swipe-arbiter-store-aOM60mqn.js +1 -0
- package/dist/assets/effective-timezone-CjGPHJlt.js +1 -0
- package/dist/assets/ellipsis-C7C3LPFH.js +1 -0
- package/dist/assets/ellipsis-vertical-eVgdKn9z.js +1 -0
- package/dist/assets/emails-page-CMoX6WSY.js +1 -0
- package/dist/assets/environment-store-CFfbiF-5.js +1 -0
- package/dist/assets/esm-B6_bGmvI.js +2 -0
- package/dist/assets/esm-BbMfqncR.js +2 -0
- package/dist/assets/esm-C-UZ0OO7.js +2 -0
- package/dist/assets/esm-C5lNGXsv.js +2 -0
- package/dist/assets/esm-CJlTYv9E.js +1 -0
- package/dist/assets/esm-CxjtrkZ5.js +1 -0
- package/dist/assets/esm-DUw7nXxb.js +2 -0
- package/dist/assets/esm-RwtNn1Lo.js +2 -0
- package/dist/assets/esm-ozIdE2iD.js +2 -0
- package/dist/assets/external-link-vwewPjbo.js +1 -0
- package/dist/assets/eye-GcssNJdY.js +1 -0
- package/dist/assets/eye-off-BwU7XK4M.js +1 -0
- package/dist/assets/feature-flag-catalog-BOqgTYGM.js +1 -0
- package/dist/assets/field-Dq8jxCGe.js +1 -0
- package/dist/assets/file-CTdxLT0k.js +1 -0
- package/dist/assets/file-code-Cw2JhKbm.js +1 -0
- package/dist/assets/file-editor-BwWJX7zO.js +1 -0
- package/dist/assets/file-markdown-CZPyyZhu.js +2 -0
- package/dist/assets/file-plus-D0O_zjgz.js +1 -0
- package/dist/assets/file-text-DDbRSMUn.js +1 -0
- package/dist/assets/first-run-scope-jh9sT0_v.js +1 -0
- package/dist/assets/folder-DBR-Zigu.js +1 -0
- package/dist/assets/folder-open-BBs1-i8r.js +1 -0
- package/dist/assets/format-date-Bi9Bsv-w.js +1 -0
- package/dist/assets/funnel-events-BU99LZEM.js +1 -0
- package/dist/assets/general-page-Biad-auh.js +1 -0
- package/dist/assets/get-memory-stats-CgfjHhot.js +1 -0
- package/dist/assets/globe-COk-NH9x.js +1 -0
- package/dist/assets/haptics-Mqend0Ru.js +2 -0
- package/dist/assets/hard-drive-DsHzx0GK.js +1 -0
- package/dist/assets/hatching-screen-DtMbgBm6.js +1 -0
- package/dist/assets/heart-CRsy5qXC.js +1 -0
- package/dist/assets/home-page-route-k81d1Zsb.js +1 -0
- package/dist/assets/home-tool-permission-card-Bytpm6bE.js +1 -0
- package/dist/assets/hosting-screen-C-6MdEhq.js +1 -0
- package/dist/assets/identity-DTcIPrCK.js +1 -0
- package/dist/assets/identity-page-route-BEobbSBV.js +7 -0
- package/dist/assets/inbox-Zbr4HDc_.js +1 -0
- package/dist/assets/index-BI5VpYa-.js +11 -0
- package/dist/assets/index-_S2T-6in.css +2 -0
- package/dist/assets/info-CXkwGlN_.js +1 -0
- package/dist/assets/ingest-Cv1Pem27.js +1 -0
- package/dist/assets/input-DmHXRXaB.js +1 -0
- package/dist/assets/inspect-page-BSPJgPij.js +9 -0
- package/dist/assets/installed-plugins-query-CIcohCho.js +1 -0
- package/dist/assets/integration-icon-R8opqT3n.js +1 -0
- package/dist/assets/integrations-page-DNYDhZHQ.js +1 -0
- package/dist/assets/intelligence-layout-CDcBeu8K.js +1 -0
- package/dist/assets/invalidate-memory-queries-CdJoJc7n.js +1 -0
- package/dist/assets/invalidate-plugin-queries-zbCn3jP3.js +1 -0
- package/dist/assets/key-round-B-C1Qgxd.js +1 -0
- package/dist/assets/keyboard-shortcuts-redirect-page-C620LY5q.js +1 -0
- package/dist/assets/laptop-BXuIFbVm.js +1 -0
- package/dist/assets/latest-assistant-text-Daw8nrLO.js +24 -0
- package/dist/assets/layout-grid-C3h1DMhl.js +1 -0
- package/dist/assets/library-detail-page-D5EeSRdZ.js +1 -0
- package/dist/assets/library-page-wPVeE7u1.js +1 -0
- package/dist/assets/lightbulb-DqvoPoCk.js +1 -0
- package/dist/assets/link-2-Bm55xvLL.js +1 -0
- package/dist/assets/link-DMi999lz.js +1 -0
- package/dist/assets/list-O_53kvwx.js +1 -0
- package/dist/assets/loader-circle-DOtGXcds.js +1 -0
- package/dist/assets/local-mode-BfEgOekp.js +39 -0
- package/dist/assets/local-runtime-upgrade-DyHUCz7A.js +1 -0
- package/dist/assets/log-in-BkWp0GjS.js +1 -0
- package/dist/assets/log-out-un0hWR_E.js +1 -0
- package/dist/assets/login-flow-B8CUFAeg.js +1 -0
- package/dist/assets/login-page-BgXMUzWB.js +1 -0
- package/dist/assets/logout-page-COe8dRLu.js +1 -0
- package/dist/assets/logs-layout-BGd_aSZ_.js +1 -0
- package/dist/assets/mail-CYjppw70.js +1 -0
- package/dist/assets/media-preview-DVQJVzX3.js +1 -0
- package/dist/assets/memory-page-route-BGEmbUCl.js +6 -0
- package/dist/assets/memory-router-playground-page-B4DX4CON.js +3 -0
- package/dist/assets/menu-DKE_-iVc.js +1 -0
- package/dist/assets/message-circle-C6QWfv9m.js +1 -0
- package/dist/assets/message-content-Beh5mR15.js +1 -0
- package/dist/assets/message-files-panel-DTDXhD0C.js +1 -0
- package/dist/assets/message-square-BjBDqFUX.js +1 -0
- package/dist/assets/message-square-text-Crbwae27.js +1 -0
- package/dist/assets/messages-D2OJUCHs.js +13 -0
- package/dist/assets/metric-card-DgbUgyv7.js +1 -0
- package/dist/assets/mic-bZFqVBA_.js +1 -0
- package/dist/assets/middleware-DiHdH8q1.js +1 -0
- package/dist/assets/minimize-2-D5pX5fY1.js +1 -0
- package/dist/assets/mobile-sidebar-drawer-CRXVtqcP.js +1 -0
- package/dist/assets/modal-DI63s9MQ.js +1 -0
- package/dist/assets/monitor-CPgcKlQP.js +1 -0
- package/dist/assets/moon-D9N1oSgM.js +1 -0
- package/dist/assets/multi-activity-group-Chyfm08f.js +1 -0
- package/dist/assets/native-anchor-CpFd0dIc.js +1 -0
- package/dist/assets/native-auth-error-B9Iha2zU.js +1 -0
- package/dist/assets/native-file-BUoRmAbj.js +2 -0
- package/dist/assets/navigation-resolver-DrNVOkMu.js +1 -0
- package/dist/assets/not-found-ClBCK2Sg.js +4 -0
- package/dist/assets/notice-C0ifrvvJ.js +1 -0
- package/dist/assets/notifications-G7qqgf4f.js +1 -0
- package/dist/assets/notifications-page-AW-ftrs5.js +1 -0
- package/dist/assets/oauth-complete-page-CfuABbuw.js +105 -0
- package/dist/assets/oauth-connection-utils-CPrZGY1J.js +1 -0
- package/dist/assets/oauth-popup-complete-page-C4obhyly.js +105 -0
- package/dist/assets/onboarding-layout-C534GRct.js +1 -0
- package/dist/assets/onboarding-store-_SsI8JK5.js +1 -0
- package/dist/assets/open-workspace-file-C4HWMBzn.js +2 -0
- package/dist/assets/page-empty-state-DtjiuvvO.js +1 -0
- package/dist/assets/page-shell-CkfnwmIw.js +1 -0
- package/dist/assets/page-surface-store-CNB4IeOj.js +1 -0
- package/dist/assets/pairing-page-CGoWIhv7.js +1 -0
- package/dist/assets/paperclip-CQEdxfSq.js +1 -0
- package/dist/assets/password-reset-page-DPLHUy40.js +1 -0
- package/dist/assets/pdf-file-preview-n0uEV6st.js +1 -0
- package/dist/assets/pdf-preview-DNzKWskr.js +2 -0
- package/dist/assets/pencil-DidiUknI.js +1 -0
- package/dist/assets/personality-page-CEbJMhDR.js +1 -0
- package/dist/assets/plans-page-DXCrcLo8.js +1 -0
- package/dist/assets/platform-detection-C_TK32Dw.js +6 -0
- package/dist/assets/platform-login-notice-CIpebDVw.js +1 -0
- package/dist/assets/platform-loopback-page-BJf6yE-E.js +1 -0
- package/dist/assets/play-UYtEUTRg.js +1 -0
- package/dist/assets/plugin-detail-page-CnlqMl6e.js +1 -0
- package/dist/assets/plugins-page-DN9FdRf7.js +1 -0
- package/dist/assets/plugins-surface-C5i913ST.js +1 -0
- package/dist/assets/plus-DnH9Pjq4.js +1 -0
- package/dist/assets/popover-CAbJ9178.js +1 -0
- package/dist/assets/prefs-CrbuxuNI.js +1 -0
- package/dist/assets/preview-error-CihmwI1t.js +1 -0
- package/dist/assets/preview-skeleton-DsTQ51Kh.js +1 -0
- package/dist/assets/privacy-page-CxAYEG0r.js +1 -0
- package/dist/assets/privacy-screen-DAzWoGQI.js +1 -0
- package/dist/assets/profile-pickers-ChG4_Gpc.js +1 -0
- package/dist/assets/progress-bar-CrrJKpWm.js +1 -0
- package/dist/assets/provider-callback-page--oWycq5i.js +1 -0
- package/dist/assets/provider-key-BZOH9D9k.js +1 -0
- package/dist/assets/provider-signup-page-BaGT8Jl4.js +1 -0
- package/dist/assets/provisioning-targets-BQdyCh_j.js +1 -0
- package/dist/assets/proxy-B4sTDdE4.js +1 -0
- package/dist/assets/push-registration-C0GXHrCj.js +2 -0
- package/dist/assets/puzzle-CIWAeBs0.js +1 -0
- package/dist/assets/quick-input-page-BSDKtVff.js +1 -0
- package/dist/assets/react-query.gen-DKb3mEwJ.js +1 -0
- package/dist/assets/react-query.gen-DxjuNs-5.js +1 -0
- package/dist/assets/reduced-motion-DiWTepDn.js +1 -0
- package/dist/assets/refresh-cw-DV6tvYxO.js +1 -0
- package/dist/assets/remote-gateway-session-CgDx1fv1.js +1 -0
- package/dist/assets/remove-from-device-dialog-C0eaWxwl.js +1 -0
- package/dist/assets/repeat-BvvxRT2U.js +1 -0
- package/dist/assets/research-facts-xV6xeZTm.js +1 -0
- package/dist/assets/research-mock-page-EswkjK_L.js +1 -0
- package/dist/assets/research-onboarding-persistence-CiHHjoc-.js +1 -0
- package/dist/assets/research-onboarding-route-CXimVFK6.js +50 -0
- package/dist/assets/research-results-view-CBP6WMg5.js +3 -0
- package/dist/assets/resolved-assistants-store-BFI9c7ip.js +1 -0
- package/dist/assets/retire-confirm-dialog-B1bvTlHS.js +1 -0
- package/dist/assets/review-terms-screen-BxxGJL-B.js +1 -0
- package/dist/assets/rotate-ccw-Dcfo4EC8.js +1 -0
- package/dist/assets/routes-ZeXUrnzY.js +23 -0
- package/dist/assets/routes-iipg2wkc.js +1 -0
- package/dist/assets/runtime-upgrade-banner--bSmfygH.js +2 -0
- package/dist/assets/sandbox-bridge-BlniBIsp.js +266 -0
- package/dist/assets/schedules-CMISpWUM.js +1 -0
- package/dist/assets/schedules-kVuR00ra.js +1 -0
- package/dist/assets/schedules-page-DCUj-YbP.js +1 -0
- package/dist/assets/sdk.gen-CBPZ2IdN.js +6 -0
- package/dist/assets/sdk.gen-DKYWIHI7.js +1 -0
- package/dist/assets/search-D2xMZu1P.js +1 -0
- package/dist/assets/security-redirect-page-B6xNHoo8.js +1 -0
- package/dist/assets/select-B8-i-CZ4.js +1 -0
- package/dist/assets/select-assistant-screen-C5Cl_pCp.js +1 -0
- package/dist/assets/self-hosted-servers-DFgP80iG.js +1 -0
- package/dist/assets/send-BlX2px_R.js +1 -0
- package/dist/assets/setting-row-Be421VTJ.js +1 -0
- package/dist/assets/settings-751LDGs_.js +1 -0
- package/dist/assets/settings-divider-BuDc875f.js +1 -0
- package/dist/assets/settings-layout-Clnlm1aB.js +1 -0
- package/dist/assets/settings-navigation-Cn3KCxOe.js +1 -0
- package/dist/assets/share-feedback-modal-COUhsUqF.js +2 -0
- package/dist/assets/shield-CCHFIJHf.js +1 -0
- package/dist/assets/shield-check-zaoUwOKj.js +1 -0
- package/dist/assets/shim-DQit20z4.js +1 -0
- package/dist/assets/sidebar-tree-BXbcoj07.js +1 -0
- package/dist/assets/signup-page-C9ZrCSVo.js +1 -0
- package/dist/assets/signup-shell-B_xxhiVU.js +1 -0
- package/dist/assets/site-favicon-B3DMFtr3.js +1 -0
- package/dist/assets/skeleton-CJJwPIil.js +1 -0
- package/dist/assets/skill-detail-page-Ckw6_1PG.js +2 -0
- package/dist/assets/skill-detail-panel-DdYbYHuj.js +1 -0
- package/dist/assets/skills-Lf85mR9L.js +1 -0
- package/dist/assets/skills-page-BIFWyp46.js +1 -0
- package/dist/assets/sliders-horizontal-Dd2oGqSf.js +1 -0
- package/dist/assets/smartphone-BTdDwse2.js +1 -0
- package/dist/assets/sound-manager-jVvPdZzE.js +1 -0
- package/dist/assets/sounds-page-BKelzwyH.js +1 -0
- package/dist/assets/sparkles-B94iNYGJ.js +1 -0
- package/dist/assets/square-CE8V_WXJ.js +1 -0
- package/dist/assets/src-hNk11eS3.js +293 -0
- package/dist/assets/start-screen-CXUDtHbL.js +1 -0
- package/dist/assets/stt-language-picker-modal-B5MO-3gk.js +1 -0
- package/dist/assets/subagent-detail-panel-BKhU7VAv.js +4 -0
- package/dist/assets/subagent-store-9SqF-NFa.js +3 -0
- package/dist/assets/sun-DnK4LisT.js +1 -0
- package/dist/assets/superpowers-page-gPiU1fsq.js +1 -0
- package/dist/assets/surface-parse-helpers-Dpxz8G3q.js +1 -0
- package/dist/assets/system-events-page-DbcoH4sh.js +1 -0
- package/dist/assets/system-events-redirect-page-D4H-Pi8R.js +1 -0
- package/dist/assets/tag-DeMzQvCo.js +1 -0
- package/dist/assets/telegram-setup-wizard-C4E0wi1B.js +1 -0
- package/dist/assets/terminal-CkQ9DSF2.js +1 -0
- package/dist/assets/text-preview-KOyX3OrO.js +1 -0
- package/dist/assets/theme-preferences-5grl-uOq.js +1 -0
- package/dist/assets/theme-stage-page-D4DYc_C8.js +1 -0
- package/dist/assets/threshold-presets-DgMnAyqn.js +1 -0
- package/dist/assets/tiptap-document-editor-CDIJTTa_.js +282 -0
- package/dist/assets/toast-BpuLSxyt.js +1 -0
- package/dist/assets/toggle-C-v4x7_A.js +1 -0
- package/dist/assets/tool-detail-panel-CmbBw4_n.js +2 -0
- package/dist/assets/trash-2-BKXSi5Tj.js +1 -0
- package/dist/assets/triangle-alert-CB4pJgCL.js +1 -0
- package/dist/assets/trust-rules-api-DvCWJ952.js +1 -0
- package/dist/assets/typed-storage-lk6_tW16.js +1 -0
- package/dist/assets/typography-BeUa5Fd-.js +1 -0
- package/dist/assets/upgrade-cancel-page-DfjtkvP9.js +1 -0
- package/dist/assets/upgrade-success-page-BDWg5oK4.js +1 -0
- package/dist/assets/upload-CZL0kXl9.js +1 -0
- package/dist/assets/usage-redirect-page-B4weibcd.js +1 -0
- package/dist/assets/use-active-assistant-id-BvHP5Ojg.js +1 -0
- package/dist/assets/use-app-theme-CV9AULGm.js +1 -0
- package/dist/assets/use-assistant-avatar-Dd-EU1FC.js +1 -0
- package/dist/assets/use-assistant-capability-y4ML0NOY.js +1 -0
- package/dist/assets/use-assistant-identity-details-BAgi4MHa.js +1 -0
- package/dist/assets/use-attachment-preview-CB3GsEns.js +2 -0
- package/dist/assets/use-attachment-squares-DPuVHGRC.js +1 -0
- package/dist/assets/use-avatar-accent-var-B7jzoU_Q.js +1 -0
- package/dist/assets/use-bookmarks-C6IlHWIK.js +1 -0
- package/dist/assets/use-bundled-avatar-components-CJR9zw0E.js +2 -0
- package/dist/assets/use-bus-subscription-0lId9jya.js +1 -0
- package/dist/assets/use-checkout-dismiss-refresh-CDwSKr1-.js +1 -0
- package/dist/assets/use-command-palette-sections-DXzS2Tio.js +1 -0
- package/dist/assets/use-copy-to-clipboard-CT4aISCf.js +1 -0
- package/dist/assets/use-discord-nudge-BxJE92fj.js +1 -0
- package/dist/assets/use-edge-swipe-Di2s_nu-.js +1 -0
- package/dist/assets/use-edge-swipe-back-ZgANxgKE.js +2 -0
- package/dist/assets/use-edit-app-BHUYCv4X.js +1 -0
- package/dist/assets/use-effective-timezone-BZgsy8ZD.js +1 -0
- package/dist/assets/use-invite-link-dialog-CdY5FNQa.js +1 -0
- package/dist/assets/use-is-org-ready-BmOdacs1.js +1 -0
- package/dist/assets/use-local-file-info-2nORgZPN.js +1 -0
- package/dist/assets/use-onboarding-login-BUaNGE_u.js +1 -0
- package/dist/assets/use-platform-assistant-id-CEMyKEvV.js +1 -0
- package/dist/assets/use-platform-gate-CdwOyQ8A.js +1 -0
- package/dist/assets/use-reduced-motion-CaGZSwLZ.js +1 -0
- package/dist/assets/use-return-to-short-circuit-CTYRB2Ne.js +1 -0
- package/dist/assets/use-save-twilio-credentials-D5Zb65WS.js +1 -0
- package/dist/assets/use-skill-actions-GbdM3IIw.js +1 -0
- package/dist/assets/use-skill-detail-files-DUcVEycw.js +1 -0
- package/dist/assets/use-sticky-profiles-LVe9u5gh.js +1 -0
- package/dist/assets/use-subagent-card-data-CFKl88ab.js +1 -0
- package/dist/assets/use-supports-bookmarks-z9pfj1Rm.js +1 -0
- package/dist/assets/use-supports-credentials-settings-CEPArXBW.js +1 -0
- package/dist/assets/use-swipe-engine-DkOpo76V.js +1 -0
- package/dist/assets/use-transcript-message-by-id-cDbEJMB-.js +1 -0
- package/dist/assets/use-transcript-messages-vw2Hogaj.js +3 -0
- package/dist/assets/use-voice-sample-preview-BjIqIVEG.js +1 -0
- package/dist/assets/user-Djte2CiZ.js +1 -0
- package/dist/assets/user-plus-DAap8I1c.js +1 -0
- package/dist/assets/users-XI0CRYkf.js +1 -0
- package/dist/assets/utils-CVoSWh7U.js +1 -0
- package/dist/assets/video-BS0zvFDX.js +1 -0
- package/dist/assets/viewer-store-DhrkeZmJ.js +1 -0
- package/dist/assets/voice-list-DnqRx15F.js +1 -0
- package/dist/assets/voice-page-CrrYAE9k.js +1 -0
- package/dist/assets/voice-providers-note-ValSs0nz.js +1 -0
- package/dist/assets/volume-2-CyoXrHNM.js +1 -0
- package/dist/assets/weather-forecast-display-CJR2u0Gd.js +1 -0
- package/dist/assets/web-CXS_l-lJ.js +1 -0
- package/dist/assets/web-CqJa0YiZ.js +1 -0
- package/dist/assets/web-DCPqcuLM.js +1 -0
- package/dist/assets/web-DVqaJeU8.js +1 -0
- package/dist/assets/web-DdnbzgLo.js +1 -0
- package/dist/assets/web-_uNzzGZK.js +1 -0
- package/dist/assets/web-n3kDbr36.js +1 -0
- package/dist/assets/web-wVbU7QGN.js +1 -0
- package/dist/assets/welcome-screen-CiBqE53u.js +1 -0
- package/dist/assets/workflow-CXyPzVz4.js +1 -0
- package/dist/assets/workflow-detail-panel-crM7HRfK.js +1 -0
- package/dist/assets/workflow-store-D0DBQy44.js +1 -0
- package/dist/assets/workspace-page-iAsgehav.js +1 -0
- package/dist/assets/workspace-tree-query-Djht8L1-.js +1 -0
- package/dist/assets/wrench-BIRk4-Cp.js +1 -0
- package/dist/assets/x-338EsJDP.js +1 -0
- package/dist/images/integrations/ATTRIBUTION.md +72 -0
- package/dist/images/integrations/airtable.svg +1 -0
- package/dist/images/integrations/asana.svg +1 -0
- package/dist/images/integrations/discord.svg +1 -0
- package/dist/images/integrations/dropbox.svg +1 -0
- package/dist/images/integrations/hubspot.svg +1 -0
- package/dist/images/integrations/salesforce.svg +5 -0
- package/dist/images/integrations/sanity.svg +1 -0
- package/dist/images/integrations/spotify.svg +1 -0
- package/dist/images/integrations/telegram.svg +1 -0
- package/dist/images/integrations/todoist.svg +1 -0
- package/dist/images/integrations/x.svg +1 -0
- package/dist/index.html +301 -287
- package/package.json +1 -1
- package/dist/assets/AnimatePresence-CHo6D7IH.js +0 -9
- package/dist/assets/BundleConfirmPage-j6ko1Z2E.js +0 -1
- package/dist/assets/Combination-TPH8qx8I.js +0 -41
- package/dist/assets/a2a-invite-Bld7VHkJ.js +0 -1
- package/dist/assets/about-page-BBS2ZLwu.js +0 -1
- package/dist/assets/access-PKx6h0AJ.js +0 -1
- package/dist/assets/account-page-DucijMvM.js +0 -1
- package/dist/assets/account-shell-BBDh-DzD.js +0 -1
- package/dist/assets/acp-run-actions-zSUs8U3N.js +0 -1
- package/dist/assets/acp-run-detail-panel-DJ6moBbf.js +0 -5
- package/dist/assets/acp-run-store-DdzY8U9Y.js +0 -1
- package/dist/assets/activity-steps-panel-C95hN_fd.js +0 -1
- package/dist/assets/add-credential-modal-BbvTHJmF.js +0 -1
- package/dist/assets/add-credits-modal-C5d63VSi.js +0 -1
- package/dist/assets/ai-page-CbNTYziv.js +0 -1
- package/dist/assets/animated-avatar-B0vCEKkY.js +0 -1
- package/dist/assets/api-CGsj1Pig.js +0 -1
- package/dist/assets/api-errors-BRGPPSWw.js +0 -1
- package/dist/assets/api-key-screen-B5zgGiwa.js +0 -1
- package/dist/assets/api-pN-AgY8Q.js +0 -1
- package/dist/assets/app-card-CxO44OqN.js +0 -1
- package/dist/assets/app-info-BDq_9VB8.js +0 -1
- package/dist/assets/archive-BQ3zdIPv.js +0 -1
- package/dist/assets/archive-redirect-page-Cxcg7zGt.js +0 -1
- package/dist/assets/arrow-down-to-line-DMGjBlMw.js +0 -1
- package/dist/assets/arrow-left-W84B6oJL.js +0 -1
- package/dist/assets/arrow-right-ChqGeAaW.js +0 -1
- package/dist/assets/arrow-up-CWzHzcyU.js +0 -1
- package/dist/assets/assistant-feature-flag-store-BojuHxUH.js +0 -1
- package/dist/assets/assistant-identity-store-B51BX78j.js +0 -1
- package/dist/assets/assistant-status-panel-ZdWgKADH.js +0 -1
- package/dist/assets/auth-store-C9aYqB9U.js +0 -2
- package/dist/assets/avatar-random-BR8w4F35.js +0 -1
- package/dist/assets/avatar-renderer-TpNgmnU1.js +0 -1
- package/dist/assets/background-task-actions-DmocXKSr.js +0 -1
- package/dist/assets/background-task-detail-panel-BvgkgKs6.js +0 -1
- package/dist/assets/background-task-store-DpOSZFT8.js +0 -1
- package/dist/assets/ban-BKp90l-0.js +0 -1
- package/dist/assets/bell-2SnK9BVD.js +0 -1
- package/dist/assets/billing-page-CSxWbmCW.js +0 -3
- package/dist/assets/billing-redirect-page-QFlD3jYy.js +0 -1
- package/dist/assets/bookmarks-page-hFDlAWts.js +0 -1
- package/dist/assets/brain-CN4zzNgU.js +0 -1
- package/dist/assets/browser-CcdNg0HN.js +0 -2
- package/dist/assets/bug-DdmWJIkz.js +0 -1
- package/dist/assets/build-state-9uUe0jN5.js +0 -1
- package/dist/assets/button-BwFudwM5.js +0 -1
- package/dist/assets/calendar-qrPKlf1H.js +0 -1
- package/dist/assets/capture-error-CqtAGHQu.js +0 -4
- package/dist/assets/card-DRIctGVs.js +0 -1
- package/dist/assets/channels-page-route-Cxn_zS-J.js +0 -9
- package/dist/assets/chart-column-k8S2UYq8.js +0 -1
- package/dist/assets/chat-avatar-B5fx9Xm3.js +0 -1
- package/dist/assets/chat-layout-slots-store-DP8MgnXi.js +0 -1
- package/dist/assets/chat-markdown-message-BZZsrGyj.js +0 -1
- package/dist/assets/check-Dt2rQhdg.js +0 -1
- package/dist/assets/checkbox-fzrjTRTI.js +0 -1
- package/dist/assets/checkout-continuation-CYDyrqci.js +0 -1
- package/dist/assets/checkout-page-lDrK4V11.js +0 -1
- package/dist/assets/checkout-return-target-BStfEab4.js +0 -1
- package/dist/assets/chevron-down-BNidRDh1.js +0 -1
- package/dist/assets/chevron-left-CrxnPze-.js +0 -1
- package/dist/assets/chevron-right-CANAtgGn.js +0 -1
- package/dist/assets/chevron-up-DofScvyy.js +0 -1
- package/dist/assets/chunk-5KNZJZUH-Bsoom5--.js +0 -4
- package/dist/assets/circle-alert-DQMH8VJH.js +0 -1
- package/dist/assets/circle-check-DvrCdroD.js +0 -1
- package/dist/assets/circle-check-big-DtV6IJuh.js +0 -1
- package/dist/assets/circle-minus-BBDKV6k6.js +0 -1
- package/dist/assets/circle-x-DTjJzoQl.js +0 -1
- package/dist/assets/client-feature-flag-store-Cw39NfCq.js +0 -1
- package/dist/assets/client-identity-BZBfwdGQ.js +0 -1
- package/dist/assets/clipboard-copy-BYpgEh2O.js +0 -1
- package/dist/assets/clock-DeynsyYL.js +0 -1
- package/dist/assets/cloud-off-BFACQbO0.js +0 -1
- package/dist/assets/cloud-q4J30bVb.js +0 -1
- package/dist/assets/cn-CJf7MmLX.js +0 -1
- package/dist/assets/code-D6SOwRrI.js +0 -1
- package/dist/assets/coins-CcTuNVlN.js +0 -1
- package/dist/assets/command-palette-Bzsl-t3p.js +0 -1
- package/dist/assets/command-palette-window-page-DjfAe-7N.js +0 -1
- package/dist/assets/community-page-CktLEQl7.js +0 -1
- package/dist/assets/confirm-dialog-B7WBNDbT.js +0 -1
- package/dist/assets/connect-page-hrIJuX_v.js +0 -1
- package/dist/assets/consent-controls-HYcVhQZ2.js +0 -1
- package/dist/assets/consent-logPJwKV.js +0 -1
- package/dist/assets/contacts-gateway-DRzp5PC6.js +0 -1
- package/dist/assets/contacts-page-route-CX57wU3L.js +0 -1
- package/dist/assets/conversation-cache-D1AJdwZd.js +0 -1
- package/dist/assets/conversation-list-fetchers-C6W8PkvR.js +0 -1
- package/dist/assets/conversation-navigation-CIHBMx2t.js +0 -1
- package/dist/assets/conversation-queries-BBj4FfQn.js +0 -1
- package/dist/assets/conversation-selection-CJs3Fnse.js +0 -1
- package/dist/assets/conversation-store-CTMy9QPV.js +0 -1
- package/dist/assets/copy-to-clipboard-Y0mxY68V.js +0 -1
- package/dist/assets/credential-entry-page-DQOv-Jyx.js +0 -1
- package/dist/assets/credentials-page-C0eeGia5.js +0 -1
- package/dist/assets/csv-preview-C4T5JLx3.js +0 -4
- package/dist/assets/danger-zone-redirect-page-CIt8Y6Rf.js +0 -1
- package/dist/assets/debug-page-DzXHo3zM.js +0 -4
- package/dist/assets/deploy-dialogs-DQGwptOi.js +0 -1
- package/dist/assets/deploy-store-BJh0AR_u.js +0 -1
- package/dist/assets/detail-card-Br_T-73R.js +0 -1
- package/dist/assets/detail-drawer-Cbj_q7o7.js +0 -1
- package/dist/assets/detail-panel-stop-button-DN2NrxEh.js +0 -1
- package/dist/assets/detail-shell-BuJMM-9z.js +0 -1
- package/dist/assets/developer-page-Cj9JWAsX.js +0 -1
- package/dist/assets/device-settings-CUIsZfaf.js +0 -1
- package/dist/assets/devices-redirect-page-DePzNUvG.js +0 -1
- package/dist/assets/diagnostics-DykDXmF3.js +0 -1
- package/dist/assets/dices-C3diFTyP.js +0 -1
- package/dist/assets/dictation-overlay-CnPWVnXc.js +0 -1
- package/dist/assets/dictation-overlay-page-C9yp3YUN.js +0 -1
- package/dist/assets/dist-B5IUaBWa.js +0 -1
- package/dist/assets/dist-BrrL0-_M.js +0 -1
- package/dist/assets/dist-DWcXIgDR.js +0 -1
- package/dist/assets/doctor-handoff-store-CvOwsVRo.js +0 -1
- package/dist/assets/document-viewer-container-CPc9KTln.js +0 -2
- package/dist/assets/document-viewer-page-BqJvQQmH.js +0 -1
- package/dist/assets/download-Cnb8zZrK.js +0 -1
- package/dist/assets/dropdown-CJVkL1Yp.js +0 -1
- package/dist/assets/edge-swipe-arbiter-store-BwC23ScO.js +0 -1
- package/dist/assets/effective-timezone-BX46fWmk.js +0 -1
- package/dist/assets/ellipsis-C5fQnusC.js +0 -1
- package/dist/assets/ellipsis-vertical-qQRDY5dB.js +0 -1
- package/dist/assets/emails-page-DwQ-FnOD.js +0 -1
- package/dist/assets/environment-store-DxX3xxt2.js +0 -1
- package/dist/assets/esm-754moU0G.js +0 -2
- package/dist/assets/esm-Bek1ps3d.js +0 -2
- package/dist/assets/esm-CMkpCv1_.js +0 -2
- package/dist/assets/esm-ChJ8E5v0.js +0 -1
- package/dist/assets/esm-DjeyDwcY.js +0 -2
- package/dist/assets/esm-Jw5qNk7q.js +0 -2
- package/dist/assets/esm-S7iZcDlp.js +0 -1
- package/dist/assets/esm-Tsd0irpJ.js +0 -2
- package/dist/assets/esm-UxVM8v-Z.js +0 -2
- package/dist/assets/external-link-GPGZ1LGU.js +0 -1
- package/dist/assets/eye-B_jBDDRn.js +0 -1
- package/dist/assets/eye-off-DQ4xakzN.js +0 -1
- package/dist/assets/feature-flag-catalog-CpyCubJW.js +0 -1
- package/dist/assets/file-DOePafLU.js +0 -1
- package/dist/assets/file-code-CrtJR2ax.js +0 -1
- package/dist/assets/file-editor-BigdI9HF.js +0 -1
- package/dist/assets/file-markdown-eU8RUJQZ.js +0 -2
- package/dist/assets/file-plus-DjC7wnGp.js +0 -1
- package/dist/assets/file-text-CwGsMgaa.js +0 -1
- package/dist/assets/first-run-scope-DqdWmMO-.js +0 -1
- package/dist/assets/folder-_l8GIyQp.js +0 -1
- package/dist/assets/folder-open-BTlvhHNO.js +0 -1
- package/dist/assets/format-date-CQUMvfqf.js +0 -1
- package/dist/assets/funnel-events-B9hFLlxs.js +0 -1
- package/dist/assets/general-page-uFG7UTqR.js +0 -1
- package/dist/assets/get-memory-stats-BnRGtUPT.js +0 -1
- package/dist/assets/globe-CdLn4IX7.js +0 -1
- package/dist/assets/haptics-C4p_Rjba.js +0 -2
- package/dist/assets/hard-drive-sI2ZzmqM.js +0 -1
- package/dist/assets/hatching-screen-CWZvcZVI.js +0 -1
- package/dist/assets/heart-DFD4eqW-.js +0 -1
- package/dist/assets/home-page-route-zQaUf7gb.js +0 -1
- package/dist/assets/hosting-screen-lGuLVQVG.js +0 -1
- package/dist/assets/identity-BplXBnQ5.js +0 -1
- package/dist/assets/identity-page-route-C64OsL5_.js +0 -7
- package/dist/assets/inbox-OC3STytq.js +0 -1
- package/dist/assets/index-Cn_k9u0x.css +0 -2
- package/dist/assets/index-D-1mlWsA.js +0 -11
- package/dist/assets/info-DkhVkzmK.js +0 -1
- package/dist/assets/ingest-BzFSv_f8.js +0 -1
- package/dist/assets/input-CgGeKtja.js +0 -1
- package/dist/assets/inspect-page-DdXP831Q.js +0 -9
- package/dist/assets/installed-plugins-query-3ACToZeY.js +0 -1
- package/dist/assets/integration-icon-B1G4FQT2.js +0 -1
- package/dist/assets/integrations-page-DmQCd8GV.js +0 -1
- package/dist/assets/intelligence-layout-IptAIgHy.js +0 -1
- package/dist/assets/invalidate-memory-queries-DonPN3eH.js +0 -1
- package/dist/assets/invalidate-plugin-queries-B0OpJSUW.js +0 -1
- package/dist/assets/key-round-BFkuiQGH.js +0 -1
- package/dist/assets/keyboard-shortcuts-redirect-page-DTabmI62.js +0 -1
- package/dist/assets/laptop-BGOychmC.js +0 -1
- package/dist/assets/latest-assistant-text-CwHBWP6s.js +0 -24
- package/dist/assets/layout-grid-Ct4RT2Ea.js +0 -1
- package/dist/assets/library-detail-page-Ddel5wXb.js +0 -1
- package/dist/assets/library-page-B4k0PNa8.js +0 -1
- package/dist/assets/lightbulb-NdZMkb6Y.js +0 -1
- package/dist/assets/link-2-DhyrrFaE.js +0 -1
- package/dist/assets/link-DOobzBVg.js +0 -1
- package/dist/assets/list-D2LnQ7lS.js +0 -1
- package/dist/assets/loader-circle-DWWXcfTQ.js +0 -1
- package/dist/assets/local-mode-DHueA-BJ.js +0 -39
- package/dist/assets/local-runtime-upgrade-CnY-6TiF.js +0 -1
- package/dist/assets/log-in-D4nsqRbG.js +0 -1
- package/dist/assets/log-out-CF9mMMsz.js +0 -1
- package/dist/assets/login-flow-CQhvCbQQ.js +0 -1
- package/dist/assets/login-page-CRIed3qa.js +0 -1
- package/dist/assets/logout-page-Ne05SAbm.js +0 -1
- package/dist/assets/logs-layout-BN5HA58-.js +0 -1
- package/dist/assets/mail-DyUf40pu.js +0 -1
- package/dist/assets/media-preview-D9t2Q84i.js +0 -1
- package/dist/assets/memory-page-route-Mz8GlpcX.js +0 -6
- package/dist/assets/memory-router-playground-page-CeIkpuOW.js +0 -3
- package/dist/assets/menu-Cfi4A3sw.js +0 -1
- package/dist/assets/message-circle-ByXBaIaq.js +0 -1
- package/dist/assets/message-content-B6_GZQl9.js +0 -1
- package/dist/assets/message-files-panel-C8sWLQ58.js +0 -1
- package/dist/assets/message-square-CHUvAEY9.js +0 -1
- package/dist/assets/message-square-text-CN_v46So.js +0 -1
- package/dist/assets/messages-BTSYvzWZ.js +0 -13
- package/dist/assets/metric-card-CczTqF_s.js +0 -1
- package/dist/assets/mic-BZZo0R22.js +0 -1
- package/dist/assets/middleware-Bxr-mmHu.js +0 -1
- package/dist/assets/minimize-2-Dj9FY4aF.js +0 -1
- package/dist/assets/mobile-sidebar-drawer-CSAugzxJ.js +0 -1
- package/dist/assets/modal-DagTZ8xj.js +0 -1
- package/dist/assets/monitor-RX4oi4Nj.js +0 -1
- package/dist/assets/moon-CHW45huN.js +0 -1
- package/dist/assets/mutation-error-Cp0Jaqnt.js +0 -1
- package/dist/assets/native-anchor-D1Sy2PbD.js +0 -1
- package/dist/assets/native-biometric-DetUqtjl.js +0 -6
- package/dist/assets/native-file-B71h3csB.js +0 -2
- package/dist/assets/navigation-resolver-CzEY-5nE.js +0 -1
- package/dist/assets/not-found-C1zvwDkh.js +0 -1
- package/dist/assets/notice-Dslxs3H6.js +0 -1
- package/dist/assets/notifications-BTG4cTbF.js +0 -1
- package/dist/assets/notifications-page-BzoWNM1e.js +0 -1
- package/dist/assets/oauth-complete-page-3xYlafpb.js +0 -105
- package/dist/assets/oauth-connection-utils-BrGz4Zc5.js +0 -1
- package/dist/assets/oauth-popup-complete-page-BtwDCi5P.js +0 -105
- package/dist/assets/onboarding-layout-CNKJRWfe.js +0 -1
- package/dist/assets/onboarding-store-BiTZenvP.js +0 -1
- package/dist/assets/open-workspace-file-DAlt8chN.js +0 -2
- package/dist/assets/page-empty-state-D-y7eP1V.js +0 -1
- package/dist/assets/page-shell-Dx-efyAO.js +0 -1
- package/dist/assets/pairing-page-BqjYohpZ.js +0 -1
- package/dist/assets/panel-item-5YQ3jbso.js +0 -1
- package/dist/assets/paperclip--f908Kg3.js +0 -1
- package/dist/assets/password-reset-page-SsfAE_J-.js +0 -1
- package/dist/assets/pdf-file-preview-Dj8vmmw-.js +0 -1
- package/dist/assets/pdf-preview-pscVmtvX.js +0 -2
- package/dist/assets/pencil-Cm5DdeRM.js +0 -1
- package/dist/assets/personality-page-CB98MeIQ.js +0 -1
- package/dist/assets/plans-page-BcR_kjJL.js +0 -1
- package/dist/assets/platform-detection-AHYibqOx.js +0 -1
- package/dist/assets/platform-login-notice-DvWjpI2S.js +0 -1
- package/dist/assets/platform-loopback-page-BGF_H8f_.js +0 -1
- package/dist/assets/play-Dh6Bw5AP.js +0 -1
- package/dist/assets/plugin-detail-page-UUM9vxvV.js +0 -1
- package/dist/assets/plugins-page-Dae3rghA.js +0 -1
- package/dist/assets/plugins-surface-C_pFzsVo.js +0 -1
- package/dist/assets/plus-EJu6s6xR.js +0 -1
- package/dist/assets/popover-CBYgK7Wt.js +0 -1
- package/dist/assets/prefs-CfRaGUUx.js +0 -1
- package/dist/assets/preview-error-DzUxX6Jy.js +0 -1
- package/dist/assets/preview-skeleton-Biw3dosM.js +0 -1
- package/dist/assets/privacy-page-B9zfD9a-.js +0 -1
- package/dist/assets/privacy-screen-Btqk8OjG.js +0 -1
- package/dist/assets/progress-bar-3GUUAhXi.js +0 -1
- package/dist/assets/provider-callback-page-Jul4gNdZ.js +0 -1
- package/dist/assets/provider-key-BZOwvE14.js +0 -1
- package/dist/assets/provider-signup-page-C47ij2Um.js +0 -1
- package/dist/assets/provisioning-targets-Cah9jNBe.js +0 -1
- package/dist/assets/proxy-DrtKRLtr.js +0 -1
- package/dist/assets/puzzle-4NgH5snP.js +0 -1
- package/dist/assets/quick-input-page-BYf7UWY4.js +0 -1
- package/dist/assets/react-query.gen-BtYBixpk.js +0 -1
- package/dist/assets/react-query.gen-C7om930f.js +0 -1
- package/dist/assets/refresh-cw-EZQqnaxp.js +0 -1
- package/dist/assets/remote-gateway-session-C8pRadB2.js +0 -1
- package/dist/assets/repeat-CP_vsQPN.js +0 -1
- package/dist/assets/research-facts-BUfgocIh.js +0 -1
- package/dist/assets/research-mock-page-DthnGXhi.js +0 -1
- package/dist/assets/research-onboarding-persistence-DwV372yy.js +0 -1
- package/dist/assets/research-onboarding-route-Cql_2-1F.js +0 -50
- package/dist/assets/research-results-view-BYpW36E0.js +0 -3
- package/dist/assets/resolved-assistants-store-C6oDdTxB.js +0 -1
- package/dist/assets/retire-confirm-dialog-PvFzzHrQ.js +0 -1
- package/dist/assets/review-terms-screen-BpE_z8HY.js +0 -1
- package/dist/assets/rotate-ccw-CL6IkaAI.js +0 -1
- package/dist/assets/routes-DRAnvlxS.js +0 -23
- package/dist/assets/routes-DrfnNoYS.js +0 -1
- package/dist/assets/runtime-upgrade-banner-Blp8EyfL.js +0 -2
- package/dist/assets/sandbox-bridge-B5H4c27m.js +0 -266
- package/dist/assets/schedules-_ofAwdnr.js +0 -1
- package/dist/assets/schedules-page-D6KPJIUP.js +0 -1
- package/dist/assets/sdk.gen-CjtCuSlS.js +0 -6
- package/dist/assets/sdk.gen-ies09CqM.js +0 -1
- package/dist/assets/search-DL-2uX3K.js +0 -1
- package/dist/assets/security-redirect-page-B9T_2mcB.js +0 -1
- package/dist/assets/select-assistant-screen-DH6QRKdk.js +0 -1
- package/dist/assets/send-Bdmy_GSE.js +0 -1
- package/dist/assets/setting-row-C4jX7c_4.js +0 -1
- package/dist/assets/settings-6_RIT4kT.js +0 -1
- package/dist/assets/settings-divider-COV4-sHz.js +0 -1
- package/dist/assets/settings-layout-CyMD8Ey7.js +0 -1
- package/dist/assets/settings-navigation-CyH-twYD.js +0 -1
- package/dist/assets/share-feedback-modal-NfuDPoEg.js +0 -2
- package/dist/assets/shield-CAWgGAqm.js +0 -1
- package/dist/assets/shield-check-CNsbiH1v.js +0 -1
- package/dist/assets/sidebar-tree-DTcPYrOG.js +0 -1
- package/dist/assets/signup-page-BAEo45pt.js +0 -1
- package/dist/assets/signup-shell-Dwuv81sx.js +0 -1
- package/dist/assets/site-favicon-DkjZF9mC.js +0 -1
- package/dist/assets/skill-detail-page-CzCcXCkp.js +0 -1
- package/dist/assets/skill-detail-panel-B1Kxa3zf.js +0 -1
- package/dist/assets/skills-CrZ3GlyK.js +0 -1
- package/dist/assets/skills-page-CNYM3Qsj.js +0 -1
- package/dist/assets/slack-setup-wizard-CeBY_rKV.js +0 -1
- package/dist/assets/sliders-horizontal-BwdOIxz8.js +0 -1
- package/dist/assets/smartphone-CIrxb2NM.js +0 -1
- package/dist/assets/sound-manager-Bv6Sc7Ut.js +0 -1
- package/dist/assets/sounds-page-Bpeq0MQn.js +0 -1
- package/dist/assets/sparkles-DfEFn3Bh.js +0 -1
- package/dist/assets/square-DTFrgbZb.js +0 -1
- package/dist/assets/src-CwGlaCIx.js +0 -293
- package/dist/assets/start-screen-wyemTUjV.js +0 -1
- package/dist/assets/subagent-detail-panel-C3II8umu.js +0 -4
- package/dist/assets/subagent-store-DibRR9Ij.js +0 -3
- package/dist/assets/sun-BauGiwdK.js +0 -1
- package/dist/assets/superpowers-page-DmIZ_ed4.js +0 -1
- package/dist/assets/surface-parse-helpers-iPHZ9D7N.js +0 -1
- package/dist/assets/system-events-page-DAbap4FJ.js +0 -1
- package/dist/assets/system-events-redirect-page-CKNhBiUK.js +0 -1
- package/dist/assets/tag-G0ELn_cq.js +0 -1
- package/dist/assets/target-CJU4DUFo.js +0 -1
- package/dist/assets/terminal-BucMVaPU.js +0 -1
- package/dist/assets/text-preview-DLiOtb-y.js +0 -1
- package/dist/assets/theme-preferences-B2X7Xgir.js +0 -1
- package/dist/assets/theme-stage-page-Dt0ShS5G.js +0 -1
- package/dist/assets/threshold-presets-B-RqvhUM.js +0 -1
- package/dist/assets/tiptap-document-editor-LwU6S_hn.js +0 -282
- package/dist/assets/toast-BHjG1kP8.js +0 -1
- package/dist/assets/toggle-BEPV0rQM.js +0 -1
- package/dist/assets/tool-detail-panel-tFQRRPbP.js +0 -2
- package/dist/assets/transcript-message-body-shared-DdXeU1D-.js +0 -1
- package/dist/assets/trash-2-DfVRfykB.js +0 -1
- package/dist/assets/triangle-alert-D6bAGtMw.js +0 -1
- package/dist/assets/trust-rules-api-Dbyz25hE.js +0 -1
- package/dist/assets/typed-storage-OO7emDaU.js +0 -1
- package/dist/assets/typography-DEI9Ra9z.js +0 -1
- package/dist/assets/upgrade-cancel-page-isK2Rvv6.js +0 -1
- package/dist/assets/upgrade-success-page-B7ZaoDsy.js +0 -1
- package/dist/assets/upload-DsWG9TbD.js +0 -1
- package/dist/assets/usage-redirect-page-Cd58Bed0.js +0 -1
- package/dist/assets/use-active-assistant-id-JLsAfn3e.js +0 -1
- package/dist/assets/use-app-theme-yiZ38i4_.js +0 -1
- package/dist/assets/use-assistant-avatar-Bjqx8JUy.js +0 -1
- package/dist/assets/use-assistant-capability-CnI3VItU.js +0 -1
- package/dist/assets/use-assistant-identity-details-BLHiMTpS.js +0 -1
- package/dist/assets/use-attachment-preview-TAzqhvwh.js +0 -2
- package/dist/assets/use-attachment-squares-Cnn6a6er.js +0 -1
- package/dist/assets/use-avatar-accent-var-BafXGBXW.js +0 -1
- package/dist/assets/use-bookmarks-BKYsQrf9.js +0 -1
- package/dist/assets/use-bundled-avatar-components-BcyasJwu.js +0 -2
- package/dist/assets/use-bus-subscription-DiCq1_ki.js +0 -1
- package/dist/assets/use-checkout-dismiss-refresh-ChquCG4n.js +0 -1
- package/dist/assets/use-command-palette-sections-BshFMe0w.js +0 -1
- package/dist/assets/use-copy-to-clipboard-RUBxQIiE.js +0 -1
- package/dist/assets/use-discord-nudge-DED9TaIm.js +0 -1
- package/dist/assets/use-edge-swipe-CRkrRNLg.js +0 -1
- package/dist/assets/use-edge-swipe-back-Dk2xXjh4.js +0 -1
- package/dist/assets/use-edit-app-LCywIVb9.js +0 -1
- package/dist/assets/use-effective-timezone-BM5B7KHp.js +0 -1
- package/dist/assets/use-invite-link-dialog-CnOeFYBH.js +0 -1
- package/dist/assets/use-ios-app-nudge-9Qqz96FD.js +0 -1
- package/dist/assets/use-is-org-ready-3vHDbj4G.js +0 -1
- package/dist/assets/use-local-file-info-D2-ycwyJ.js +0 -1
- package/dist/assets/use-onboarding-login-CiQyxJLM.js +0 -1
- package/dist/assets/use-platform-assistant-id-DgrNmSy2.js +0 -1
- package/dist/assets/use-platform-gate-C5bNA5Pn.js +0 -1
- package/dist/assets/use-reduced-motion-fR0m_opJ.js +0 -1
- package/dist/assets/use-return-to-short-circuit-g88hMnN8.js +0 -1
- package/dist/assets/use-save-twilio-credentials-yqA7lnzq.js +0 -1
- package/dist/assets/use-skill-actions-Ik0rj4or.js +0 -1
- package/dist/assets/use-skill-detail-files-DdWFIu5-.js +0 -1
- package/dist/assets/use-sticky-profiles-BwaZUy6p.js +0 -1
- package/dist/assets/use-subagent-card-data-1nEhEj8_.js +0 -1
- package/dist/assets/use-supports-bookmarks-DwTpI8uM.js +0 -1
- package/dist/assets/use-supports-credentials-settings-3jGHR8fw.js +0 -1
- package/dist/assets/use-swipe-engine-Bkqjs1Zk.js +0 -1
- package/dist/assets/use-transcript-message-by-id-RhDDYgbY.js +0 -1
- package/dist/assets/use-transcript-messages-C5t358ZW.js +0 -3
- package/dist/assets/user-DHC7OLPE.js +0 -1
- package/dist/assets/user-plus-DjxxnQ8G.js +0 -1
- package/dist/assets/users-OcC3p9Jn.js +0 -1
- package/dist/assets/utils-B6xfBCpN.js +0 -1
- package/dist/assets/utils-DtVy-_pB.js +0 -1
- package/dist/assets/video-Dtwi0MD9.js +0 -1
- package/dist/assets/viewer-store-DxLOGAkL.js +0 -1
- package/dist/assets/voice-list-DP4_zhJe.js +0 -1
- package/dist/assets/voice-page-Bn0QH4eT.js +0 -1
- package/dist/assets/voice-providers-note-F4pLO3zK.js +0 -1
- package/dist/assets/volume-2-BXDl4IEg.js +0 -1
- package/dist/assets/weather-forecast-display-DrJp8zrP.js +0 -1
- package/dist/assets/web-CDfRXQwd.js +0 -1
- package/dist/assets/web-Ccq6YqQk.js +0 -1
- package/dist/assets/web-Cw8N9FBf.js +0 -1
- package/dist/assets/web-Cwkvk3kH.js +0 -1
- package/dist/assets/web-KS3MoLo7.js +0 -1
- package/dist/assets/web-PODqCw-i.js +0 -1
- package/dist/assets/web-aKLBqXiN.js +0 -1
- package/dist/assets/web-vlqDFmAp.js +0 -1
- package/dist/assets/welcome-screen-B6BjQt9n.js +0 -1
- package/dist/assets/workflow-Bsy5y3W0.js +0 -1
- package/dist/assets/workflow-detail-panel-H3N7Md_X.js +0 -1
- package/dist/assets/workflow-store-zCcRcvi8.js +0 -1
- package/dist/assets/workspace-page-B4sn6pzo.js +0 -1
- package/dist/assets/workspace-tree-query-Dfkrp_rV.js +0 -1
- package/dist/assets/wrench-DhynFba1.js +0 -1
- package/dist/assets/x-D4O9yIS7.js +0 -1
- /package/dist/assets/{android-consumption-only-D3L1Nc41.js → android-consumption-only-BkXIkXls.js} +0 -0
- /package/dist/assets/{app-types-BGJfNjSJ.js → app-types-BvcxXy_T.js} +0 -0
- /package/dist/assets/{apple-logo-BOBq3-Sn.js → apple-logo-Dz_HmP0n.js} +0 -0
- /package/dist/assets/{avatar-bundled-components-BvKt7I7O.js → avatar-bundled-components-BCCi2IoG.js} +0 -0
- /package/dist/assets/{avatar-subagent-tkmKhEWI.js → avatar-subagent-CvC1Sf9s.js} +0 -0
- /package/dist/assets/{avatar-svg-compositor-axSwKFvf.js → avatar-svg-compositor-BOadabHt.js} +0 -0
- /package/dist/assets/{avatar-tone-D99t9DAP.js → avatar-tone-D1ZiIRxb.js} +0 -0
- /package/dist/assets/{browser-timezone-Br-HawKV.js → browser-timezone-DM1QmwES.js} +0 -0
- /package/dist/assets/{build.umd-CaLt9YHe.js → build.umd-BVsTe_5V.js} +0 -0
- /package/dist/assets/{by-tool-use-id-index-CUFuQqHz.js → by-tool-use-id-index-xzJzBHo0.js} +0 -0
- /package/dist/assets/{chat-Dy2BC2i1.js → chat-DYLliWTB.js} +0 -0
- /package/dist/assets/{client.gen-Dq2brHDV.js → client.gen-C854VG5x.js} +0 -0
- /package/dist/assets/{create-selectors-BfxF8Sx_.js → create-selectors-DBgi9gD3.js} +0 -0
- /package/dist/assets/{createLucideIcon-CAM1RhH8.js → createLucideIcon-C1mdGPB9.js} +0 -0
- /package/dist/assets/{definitions-BfdxiZ6b.js → definitions-LdtemAva.js} +0 -0
- /package/dist/assets/{definitions-Rm_PEX9e.js → definitions-ur8Jy93p.js} +0 -0
- /package/dist/assets/{dist-an0Z446E.js → dist-Br0LBu8Y.js} +0 -0
- /package/dist/assets/{domains-Cwi5sL0m.js → domains-Cmw6F6mt.js} +0 -0
- /package/dist/assets/{edit-chat-session-DVzLQLWl.js → edit-chat-session-DKBzd1lH.js} +0 -0
- /package/dist/assets/{emoji-catalog-data-Cjooln6g.js → emoji-catalog-data-B4mXD1kH.js} +0 -0
- /package/dist/assets/{event-bus-CbDg1VDt.js → event-bus-Cy8AzL-G.js} +0 -0
- /package/dist/assets/{external-urls-BL9qY0s8.js → external-urls-EO9DXoFH.js} +0 -0
- /package/dist/assets/{eye-bbox-CRs175_n.js → eye-bbox-hZoek1Q5.js} +0 -0
- /package/dist/assets/{format-file-size-C5XdzvvA.js → format-file-size-iBkFVy8w.js} +0 -0
- /package/dist/assets/{hard-navigate-BYoBFmE4.js → hard-navigate-BrsAH6PB.js} +0 -0
- /package/dist/assets/{is-electron-DIlIrdJX.js → is-electron-BHXrkjI3.js} +0 -0
- /package/dist/assets/{link-click-aVk_YdAp.js → link-click-DVtp4tRV.js} +0 -0
- /package/dist/assets/{machine-sizes-B9nt_h-U.js → machine-sizes-B2_svsFw.js} +0 -0
- /package/dist/assets/{misc-BBsGq1IU.js → misc-Z0jXGGeY.js} +0 -0
- /package/dist/assets/{native-deep-link-jXO4XsVj.js → native-deep-link-CiI89I5P.js} +0 -0
- /package/dist/assets/{oauth-popup-DAMkjCsP.js → oauth-popup-CBMOU7CT.js} +0 -0
- /package/dist/assets/{onboarding-step-layout-Bsc_5btV.js → onboarding-step-layout-Cpow6WLp.js} +0 -0
- /package/dist/assets/{optimistic-lifecycle-GoMZsAsc.js → optimistic-lifecycle-y2tCk6TM.js} +0 -0
- /package/dist/assets/{pdf-OYDWiYl0.js → pdf-hM7quiQo.js} +0 -0
- /package/dist/assets/{plugin-attribution-DAf_69AU.js → plugin-attribution-Cu32SvNF.js} +0 -0
- /package/dist/assets/{pointer-CQ4DXHXb.js → pointer-CmipOtDe.js} +0 -0
- /package/dist/assets/{prechat-C4MZwKWX.js → prechat-CXmfuQt3.js} +0 -0
- /package/dist/assets/{profile-metadata-CA6wxcVJ.js → profile-metadata-DgH7VoVU.js} +0 -0
- /package/dist/assets/{public-asset-OTnPMErp.js → public-asset-CZ7NhuGg.js} +0 -0
- /package/dist/assets/{radio-card-nav-C_pSc4PD.js → radio-card-nav-B1BF1G_V.js} +0 -0
- /package/dist/assets/{sdk.gen-BpJ1vF7l.js → sdk.gen-CAngxL4a.js} +0 -0
- /package/dist/assets/{semver-Bfq1LtyW.js → semver-7PiLMufW.js} +0 -0
- /package/dist/assets/{status-badge-pill-CFoeNqKo.js → status-badge-pill---iRVZ8q.js} +0 -0
- /package/dist/assets/{three-dot-indicator-CeTxs9-J.js → three-dot-indicator-BQxSg8G2.js} +0 -0
- /package/dist/assets/{use-is-mobile-MmHo-OM6.js → use-is-mobile-BP8UePsY.js} +0 -0
- /package/dist/assets/{workflow-status-D0bBEpGp.js → workflow-status-AIHLnh_i.js} +0 -0
- /package/dist/assets/{workspace-path-links-vDBIljq_.js → workspace-path-links-Dal5QJ_L.js} +0 -0
- /package/dist/assets/{workspace-theme-tokens-dJKcMIdP.js → workspace-theme-tokens-D_dTwxiM.js} +0 -0
- /package/dist/assets/{xterm-DARAJ0SV.js → xterm-B3P1jl19.js} +0 -0
- /package/dist/assets/{xterm-addon-fit-BDf8Eu9n.js → xterm-addon-fit-DrrRJac3.js} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{i as t,l as n}from"./local-settings-Bx7FsNo5.js";import{o as r,r as i}from"./device-settings-DZvv4pnY.js";import{t as a}from"./capture-error-Cw5vs0Ef.js";import{t as o}from"./react-BFJW0bSv.js";import{t as s}from"./button-BENY-yx_.js";import{d as c,h as l,t as u}from"./chunk-5KNZJZUH-BUqIilZr.js";import{n as d}from"./QueryClientProvider-CMu7CkQU.js";import{t as f}from"./useQuery-Bz-fbQ-m.js";import{t as p}from"./useMutation-CXGTrp4W.js";import{t as m}from"./jsx-runtime-D3ZM-ToX.js";import{t as h}from"./card-q0GJX1HZ.js";import{t as g}from"./createLucideIcon-C1mdGPB9.js";import{t as _}from"./bell-aW0w-ROt.js";import{t as v}from"./check-DSgjgwlo.js";import{t as y}from"./chevron-down-CrFV6lfm.js";import{t as b}from"./circle-alert-De9q5FVd.js";import{t as x}from"./circle-check-q8BVdbgw.js";import{G as S,H as C,V as w,a as T,n as E,z as D}from"./src-hNk11eS3.js";import{t as O}from"./hard-drive-DsHzx0GK.js";import{t as k}from"./heart-CRsy5qXC.js";import{t as A}from"./loader-circle-DOtGXcds.js";import{t as j}from"./monitor-CPgcKlQP.js";import{t as M}from"./moon-D9N1oSgM.js";import{C as N,S as P,T as F,b as ee,d as I,h as L,i as R,l as te,m as ne,n as re,o as ie,t as ae,u as oe}from"./composer-settings-MHDtr31Y.js";import{t as se}from"./refresh-cw-DV6tvYxO.js";import{t as ce}from"./rotate-ccw-Dcfo4EC8.js";import{t as le}from"./smartphone-BTdDwse2.js";import{t as ue}from"./sparkles-B94iNYGJ.js";import{t as de}from"./sun-DnK4LisT.js";import{t as fe}from"./triangle-alert-CB4pJgCL.js";import{t as pe}from"./x-338EsJDP.js";import{t as z}from"./notice-C0ifrvvJ.js";import{t as me}from"./progress-bar-CrrJKpWm.js";import{t as he}from"./tag-DeMzQvCo.js";import{t as B}from"./input-DmHXRXaB.js";import{t as ge}from"./toggle-C-v4x7_A.js";import{t as V}from"./modal-DI63s9MQ.js";import{n as H}from"./toast-BpuLSxyt.js";import{t as _e}from"./confirm-dialog-zx8L9sUi.js";import{t as ve}from"./select-B8-i-CZ4.js";import{t as U}from"./skeleton-CJJwPIil.js";import{A as ye,I as be,K as xe,M as Se,R as Ce,S as we,_ as Te,a as Ee,d as De,f as Oe,g as ke,i as Ae,u as je,x as Me}from"./local-mode-BfEgOekp.js";import{t as W}from"./is-electron-BHXrkjI3.js";import{n as Ne}from"./resolved-assistants-store-BFI9c7ip.js";import{r as Pe,t as Fe}from"./semver-7PiLMufW.js";import{i as Ie}from"./utils-CVoSWh7U.js";import{i as G,n as Le,t as Re}from"./api-errors-BQX1Pzcm.js";import{$ as ze,E as Be,S as Ve,T as He,Z as Ue,a as We,g as Ge,n as Ke,q as qe,tt as Je,w as Ye,x as Xe}from"./auth-store-DkOiOQNx.js";import{t as K}from"./client.gen-C854VG5x.js";import{$ as Ze,Bt as Qe,C as $e,N as et,P as tt,Q as nt,T as rt,W as it}from"./sdk.gen-DKYWIHI7.js";import{a as at,o as ot}from"./api-JA_IDAQk.js";import{c as st}from"./remote-gateway-session-CgDx1fv1.js";import{t as q}from"./client-feature-flag-store-C8ieIAKe.js";import{a as ct,f as lt,l as ut,m as dt,u as ft}from"./platform-detection-C_TK32Dw.js";import{d as J}from"./routes-iipg2wkc.js";import{i as pt,r as mt,t as ht}from"./use-platform-gate-CdwOyQ8A.js";import{t as gt}from"./hard-navigate-BrsAH6PB.js";import{A as _t,At as vt,Ct as yt,D as bt,Dt as xt,E as St,Mt as Ct,N as wt,O as Tt,Ot as Et,P as Dt,T as Ot,c as kt,ct as At,j as jt,jt as Mt,k as Nt,kt as Pt,ut as Ft,v as It,w as Lt,wt as Rt,yt as zt}from"./react-query.gen-DKb3mEwJ.js";import{t as Bt}from"./assistant-feature-flag-store-qYfAdlBG.js";import{t as Vt}from"./pointer-CmipOtDe.js";import{n as Ht,t as Ut}from"./retire-confirm-dialog-B1bvTlHS.js";import{a as Wt,i as Gt,r as Kt,s as qt}from"./local-runtime-upgrade-DyHUCz7A.js";import{t as Jt}from"./proxy-B4sTDdE4.js";import{t as Yt}from"./AnimatePresence-D41IKJOi.js";import{t as Xt}from"./use-reduced-motion-CaGZSwLZ.js";import{t as Zt}from"./copy-to-clipboard-DnJHokIa.js";import{t as Y}from"./platform-login-notice-CIpebDVw.js";import{t as Qt}from"./use-active-assistant-id-BvHP5Ojg.js";import{t as $t}from"./use-copy-to-clipboard-CT4aISCf.js";import{t as X}from"./detail-card-Dsnf52vg.js";import{t as en}from"./app-info-Du9AiJU5.js";import{a as tn,i as nn,l as rn,o as an}from"./machine-sizes-B2_svsFw.js";import{t as on}from"./environment-store-CFfbiF-5.js";import{a as sn,i as cn,n as ln,r as un,t as dn}from"./assistant-status-panel-CDUAp33H.js";import{t as fn}from"./settings-divider-BuDc875f.js";var pn=g(`fingerprint-pattern`,[[`path`,{d:`M12 10a2 2 0 0 0-2 2c0 1.02-.1 2.51-.26 4`,key:`1nerag`}],[`path`,{d:`M14 13.12c0 2.38 0 6.38-1 8.88`,key:`o46ks0`}],[`path`,{d:`M17.29 21.02c.12-.6.43-2.3.5-3.02`,key:`ptglia`}],[`path`,{d:`M2 12a10 10 0 0 1 18-6`,key:`ydlgp0`}],[`path`,{d:`M2 16h.01`,key:`1gqxmh`}],[`path`,{d:`M21.8 16c.2-2 .131-5.354 0-6`,key:`drycrb`}],[`path`,{d:`M5 19.5C5.5 18 6 15 6 12a6 6 0 0 1 .34-2`,key:`1tidbn`}],[`path`,{d:`M8.65 22c.21-.66.45-1.32.57-2`,key:`13wd9y`}],[`path`,{d:`M9 6.8a6 6 0 0 1 9 5.2v2`,key:`1fr1j5`}]]),mn=g(`server`,[[`rect`,{width:`20`,height:`8`,x:`2`,y:`2`,rx:`2`,ry:`2`,key:`ngkwjq`}],[`rect`,{width:`20`,height:`8`,x:`2`,y:`14`,rx:`2`,ry:`2`,key:`iecqi9`}],[`line`,{x1:`6`,x2:`6.01`,y1:`6`,y2:`6`,key:`16zg32`}],[`line`,{x1:`6`,x2:`6.01`,y1:`18`,y2:`18`,key:`nzw8ys`}]]),hn=g(`vibrate`,[[`path`,{d:`m2 8 2 2-2 2 2 2-2 2`,key:`sv1b1`}],[`path`,{d:`m22 8-2 2 2 2-2 2 2 2`,key:`101i4y`}],[`rect`,{width:`8`,height:`14`,x:`8`,y:`5`,rx:`1`,key:`1oyrl4`}]]),Z=e(o(),1),Q=m();function gn(){let e=q.use.velvet(),{theme:t,setThemePreference:n}=ne(),r=[{value:`system`,label:`System`,icon:(0,Q.jsx)(j,{className:`h-4 w-4`})},{value:`light`,label:`Light`,icon:(0,Q.jsx)(de,{className:`h-4 w-4`})},{value:`dark`,label:`Dark`,icon:(0,Q.jsx)(M,{className:`h-4 w-4`})},...e?[{value:`velvet`,label:`Velvet`,icon:(0,Q.jsx)(k,{className:`h-4 w-4`})}]:[]];return(0,Q.jsxs)(`section`,{children:[(0,Q.jsx)(`h3`,{className:`text-title-small text-[var(--content-emphasised)]`,children:`Theme`}),(0,Q.jsx)(`div`,{className:`mt-2 max-w-[360px]`,children:(0,Q.jsx)(D,{ariaLabel:`Theme`,value:t,onChange:n,items:r})})]})}var _n=Xe,vn=`Please choose a different handle.`;async function yn(e,t){let{data:n,error:r,response:i}=await tt({path:{id:e},body:{handle:t},throwOnError:!1});if(!i)return{kind:`error`,message:G(r,void 0,`Failed to save handle.`)??`Failed to save handle.`};if(i.ok&&n)return{kind:`ok`,data:n};if(i.status===409){let{message:e}=Be(r,`handle`,_n.taken);return{kind:`taken`,message:e}}if(i.status===400){let{code:e,message:t}=Be(r,`handle`,vn);return{kind:`invalid`,code:e,message:t}}return{kind:`error`,message:G(r,i,`Failed to save handle.`)}}async function bn(e,t,n){let{data:r,error:i,response:a}=await $e({path:{assistant_id:e},query:{handle:t},signal:n,throwOnError:!1});if(Le(a,i,`Failed to check handle availability.`),!a.ok||!r)throw new Re(a.status,a.status===429?`Too many checks — try again in a moment.`:G(i,a,`Failed to check handle availability.`));return{available:r.available,code:r.code??null,message:r.message??null}}function xn(e){return/\d{2,}$/.test(e)}var Sn=300,Cn=1400;function wn({initialHandle:e,inputLabel:t,helperText:n,idleHelperText:r,checkAvailable:i,save:a,onSaved:o,saveSuccessToast:c,fieldId:l}){let[u,d]=(0,Z.useState)(e),[f,p]=(0,Z.useState)(null),[m,h]=(0,Z.useState)(!1),[g,_]=(0,Z.useState)(`idle`),[y,x]=(0,Z.useState)(null),S=Xt(),C=(0,Z.useRef)(null),w=(0,Z.useMemo)(()=>u.trim().toLowerCase(),[u]),T=w===e.toLowerCase();(0,Z.useEffect)(()=>{if(T||w.length===0){h(!1),C.current?.abort();return}let e=new AbortController;C.current?.abort(),C.current=e,h(!0);let t=window.setTimeout(async()=>{try{let t=await i(w,e.signal);e.signal.aborted||p(t)}catch(t){e.signal.aborted||x(t instanceof Error?t.message:`Couldn't check availability.`)}finally{e.signal.aborted||h(!1)}},Sn);return()=>{window.clearTimeout(t),e.abort()}},[w,T,i]);let E=(()=>{if(y)return y;if(f&&!f.available){let e=f.code;return f.message??(e?_n[e]:`Please choose a different handle.`)}return null})(),D=E?n:T?r??null:m?`Checking availability…`:f?.available?`Available.`:null,O=!T&&!m&&f?.available!==!1&&g!==`saving`,k=(0,Z.useCallback)(async()=>{if(!O)return;_(`saving`),x(null);let e=await a(w);if(e.kind===`ok`){_(`saved`),o(e.data),H.success(c),window.setTimeout(()=>_(`idle`),Cn);return}if(e.kind===`taken`){_(`idle`),p({available:!1,code:`taken`,message:e.message});return}if(e.kind===`invalid`){_(`idle`),p({available:!1,code:e.code,message:e.message});return}_(`error`),x(e.message),H.error(e.message)},[O,w,o,a,c]),j=(()=>{if(T&&u.length>0||u.length===0)return null;let e=m?`checking`:f?.available?`available`:f?.available===!1?`invalid`:null;return e?(0,Q.jsx)(Yt,{mode:`wait`,initial:!1,children:(0,Q.jsxs)(Jt.span,{initial:S?!1:{opacity:0,scale:.85},animate:{opacity:1,scale:1},exit:S?void 0:{opacity:0,scale:.85},transition:{duration:.14,ease:`easeOut`},className:`flex items-center`,"aria-hidden":e!==`available`&&e!==`invalid`,children:[e===`checking`&&(0,Q.jsx)(A,{className:`h-4 w-4 animate-spin text-[var(--content-tertiary)]`}),e===`available`&&(0,Q.jsx)(v,{className:`h-4 w-4 text-[var(--system-positive-strong)]`,"aria-label":`Available`}),e===`invalid`&&(0,Q.jsx)(b,{className:`h-4 w-4 text-[var(--system-negative-strong)]`,"aria-label":`Not available`})]},e)}):null})(),M=(()=>{switch(g){case`saving`:return(0,Q.jsxs)(`span`,{className:`inline-flex items-center gap-1.5`,children:[(0,Q.jsx)(A,{className:`h-3.5 w-3.5 animate-spin`,"aria-hidden":!0}),`Saving…`]});case`saved`:return(0,Q.jsxs)(`span`,{className:`inline-flex items-center gap-1.5`,children:[(0,Q.jsx)(v,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),`Saved`]});default:return`Save`}})();return(0,Q.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,Q.jsx)(B,{label:t,value:u,onChange:e=>{d(e.target.value.replace(/\s+/g,``)),p(null),x(null)},autoCorrect:`off`,autoCapitalize:`none`,spellCheck:!1,maxLength:30,leftIcon:(0,Q.jsx)(`span`,{className:`select-none font-mono text-[var(--content-tertiary)]`,"aria-hidden":!0,children:`@`}),rightIcon:j,errorText:E??void 0,helperText:D??void 0,"aria-invalid":!!E,fullWidth:!0,"data-testid":`${l}-input`}),(!T||g!==`idle`)&&(0,Q.jsx)(`div`,{className:`flex justify-end`,children:(0,Q.jsx)(s,{variant:`primary`,size:`compact`,onClick:k,disabled:!O,"aria-live":`polite`,"data-testid":`${l}-save`,children:M})})]})}function Tn({initial:e,onSaved:t}){let n=Ke.use.refreshSession(),r=xn(e.username)?`Your handle was auto-generated at signup — pick one you like.`:void 0,i=(0,Z.useCallback)(async e=>await He({username:e}),[]),a=(0,Z.useCallback)((e,t)=>Ve(e,t),[]),o=(0,Z.useCallback)(e=>{t(e),n()},[t,n]);return(0,Q.jsx)(wn,{initialHandle:e.username,inputLabel:`User handle`,helperText:`Lowercase letters, digits, hyphens, and underscores. 3–30 characters.`,idleHelperText:r,checkAvailable:a,save:i,onSaved:o,saveSuccessToast:`Profile updated.`,fieldId:`user-handle`})}function En({assistant:e,onSaved:t}){let n=e.handle??``,r=f({...kt({path:{assistant_id:e.id}})}).data?.results?.[0],i=!!r&&r.subdomain.toLowerCase()===n.toLowerCase(),a=n.length===0?`Your assistant doesn't have a handle yet — claim one to make it mentionable.`:void 0,o=(0,Z.useCallback)(async t=>await yn(e.id,t),[e.id]),s=(0,Z.useCallback)((t,n)=>bn(e.id,t,n),[e.id]);return i?(0,Q.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,Q.jsx)(B,{label:`Assistant handle`,value:n,readOnly:!0,disabled:!0,leftIcon:(0,Q.jsx)(`span`,{className:`select-none font-mono text-[var(--content-tertiary)]`,"aria-hidden":!0,children:`@`}),fullWidth:!0,"data-testid":`assistant-handle-input`}),(0,Q.jsxs)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:[`Your assistant's handle is locked because it's used as its email subdomain. To change it,`,` `,(0,Q.jsx)(u,{to:`${J.settings.ai}?release=1#email`,className:`text-[var(--content-link)] underline hover:text-[var(--content-link-hover)]`,children:`release the subdomain`}),` `,`first.`]})]}):(0,Q.jsx)(wn,{initialHandle:n,inputLabel:`Assistant handle`,helperText:`Lowercase letters, digits, hyphens, and underscores. 3–30 characters.`,idleHelperText:a,checkAvailable:s,save:o,onSaved:t,saveSuccessToast:`Assistant handle updated.`,fieldId:`assistant-handle`})}function Dn(){return(0,Q.jsxs)(`div`,{className:`flex flex-col gap-4`,"aria-busy":!0,"aria-live":`polite`,children:[(0,Q.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,Q.jsx)(U,{className:`h-3 w-16`}),(0,Q.jsx)(U,{className:`h-9 w-full rounded-md`}),(0,Q.jsx)(U,{className:`h-3 w-72`})]}),(0,Q.jsx)(U,{className:`h-9 w-full rounded-md`}),(0,Q.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,Q.jsx)(U,{className:`h-3 w-60`}),(0,Q.jsx)(U,{className:`h-7 w-16 rounded-md`})]}),(0,Q.jsx)(`span`,{className:`sr-only`,children:`Loading your profile…`})]})}function On(){return(0,Q.jsx)(`div`,{className:`border-t border-[var(--border-subtle)]`})}function kn({assistant:e,showHandles:t=!0,children:n}={}){let r=Ke.use.user?.()?.email??null;return(0,Q.jsx)(X,{title:`Profile`,subtitle:`Manage your account details and preferences.`,children:(0,Q.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[r&&(0,Q.jsx)(`div`,{className:`max-w-[420px]`,children:(0,Q.jsx)(B,{label:`Email`,value:r,disabled:!0,readOnly:!0})}),t&&(0,Q.jsxs)(Q.Fragment,{children:[r&&(0,Q.jsx)(On,{}),(0,Q.jsx)(An,{assistant:e})]}),n!=null&&(0,Q.jsxs)(Q.Fragment,{children:[(r||t)&&(0,Q.jsx)(On,{}),n]})]})})}function An({assistant:e}){let[t,n]=(0,Z.useState)(null),[r,i]=(0,Z.useState)(null),a=Xt(),[o,s]=(0,Z.useState)(e??null);return(0,Z.useEffect)(()=>{s(e??null)},[e]),(0,Z.useEffect)(()=>{let e=!1;return Ye().then(t=>{e||n(t)}).catch(t=>{e||i(t instanceof Error?t.message:`Failed to load profile.`)}),()=>{e=!0}},[]),r?(0,Q.jsx)(`p`,{className:`text-body-small-default text-[var(--system-negative-strong)]`,children:r}):t?(0,Q.jsxs)(Jt.div,{initial:a?!1:{opacity:0,y:4},animate:{opacity:1,y:0},transition:{duration:.22,ease:`easeOut`},className:`flex flex-col gap-6`,children:[(0,Q.jsx)(Tn,{initial:t,onSaved:n}),o&&(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`div`,{className:`border-t border-[var(--border-subtle)]`}),(0,Q.jsx)(En,{assistant:o,onSaved:s})]})]}):(0,Q.jsx)(Dn,{})}var jn=It({query:{hosting:`platform`}});function Mn(){let e=Qt(),t=f(jn),n=t.data?.results??[];return t.isPending||n.length<2?null:(0,Q.jsx)(X,{title:`Switch Assistant`,subtitle:`Choose which assistant is active for this account.`,children:(0,Q.jsx)(`div`,{className:`space-y-2`,children:n.map(t=>{let n=t.id===e;return(0,Q.jsxs)(`div`,{className:`flex items-center justify-between gap-4 rounded-lg border px-4 py-3 ${n?`border-[var(--border-focus)] bg-[var(--surface-lift)]`:`border-[var(--border-base)] bg-[var(--surface-default)]`}`,children:[(0,Q.jsxs)(`div`,{className:`flex min-w-0 items-center gap-3`,children:[(0,Q.jsx)(j,{className:`h-4 w-4 shrink-0 text-[var(--content-tertiary)]`}),(0,Q.jsx)(`div`,{className:`min-w-0`,children:(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(`span`,{className:`truncate text-body-medium-default text-[var(--content-default)]`,children:t.name||`Unnamed`}),t.status!==`active`&&(0,Q.jsx)(he,{tone:`warning`,children:t.status})]})})]}),(0,Q.jsx)(`div`,{className:`shrink-0`,children:n?(0,Q.jsxs)(`span`,{className:`flex items-center gap-1.5 text-body-small-default text-[var(--system-positive-default)]`,children:[(0,Q.jsx)(v,{className:`h-4 w-4`}),`Active`]}):(0,Q.jsx)(s,{variant:`outlined`,size:`compact`,disabled:t.status!==`active`,onClick:()=>{Ue(t.id),H.success(`Switched active assistant.`)},children:`Switch`})})]},t.id)})})})}var Nn=[{label:`Never`,seconds:0},{label:`5 min`,seconds:300,devOnly:!0},{label:`10 min`,seconds:600,devOnly:!0},{label:`1 hour`,seconds:3600},{label:`3 hours`,seconds:10800},{label:`1 day`,seconds:86400},{label:`3 days`,seconds:259200},{label:`7 days`,seconds:604800},{label:`14 days`,seconds:1209600},{label:`30 days`,seconds:2592e3}];function Pn(e){if(e===0)return`Never (sleep disabled)`;let t=Math.floor(e/86400),n=Math.floor(e%86400/3600);if(t>0&&n>0)return`${t}d ${n}h`;if(t>0)return`${t} day${t===1?``:`s`}`;if(n>0)return`${n} hour${n===1?``:`s`}`;let r=Math.floor(e/60);return r>0?`${r} minute${r===1?``:`s`}`:`${e}s`}function Fn({assistantId:e}){let t=d(),n=on.use.isNonProduction(),r=(0,Z.useMemo)(()=>Nn.filter(e=>!e.devOnly||n),[n]),{data:i,isLoading:a,isError:o}=f(_t({path:{id:e}})),c=(0,Z.useMemo)(()=>i?.idle_timeout_seconds??259200,[i]),[l,u]=(0,Z.useState)(null),p=l??c,m=l!==null,h=Rt({onSuccess:()=>{H.success(`Sleep policy saved.`),u(null),t.invalidateQueries({queryKey:jt({path:{id:e}})})},onError:()=>{H.error(`Failed to save sleep policy. Please try again.`)}});return a?(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,Q.jsx)(A,{className:`h-4 w-4 animate-spin`}),`Loading sleep settings...`]}):o?(0,Q.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--system-negative-strong)]`,children:`Failed to load sleep policy. Refresh the page to try again.`}):(0,Q.jsxs)(`div`,{className:`space-y-4`,children:[(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(`label`,{className:`block text-body-medium-default text-[var(--content-default)]`,children:`Idle timeout`}),(0,Q.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`How long the assistant can be idle before it is put to sleep. "Never" disables idle sleep entirely.`}),(0,Q.jsx)(`div`,{className:`mt-2 flex flex-wrap gap-2`,children:r.map(e=>(0,Q.jsx)(s,{variant:`outlined`,active:p===e.seconds,onClick:()=>u(e.seconds),children:e.label},e.seconds))}),(0,Q.jsxs)(`p`,{className:`mt-2 text-body-small-default text-[var(--content-tertiary)]`,children:[`Current: `,Pn(p)]})]}),m&&(0,Q.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,Q.jsx)(s,{variant:`primary`,leftIcon:h.isPending?(0,Q.jsx)(A,{className:`animate-spin`}):void 0,onClick:()=>h.mutate({path:{id:e},body:{idle_timeout_seconds:p}}),disabled:h.isPending,children:`Save`}),(0,Q.jsx)(s,{variant:`outlined`,onClick:()=>u(null),disabled:h.isPending,children:`Cancel`})]})]})}function In(e,t,n){let r=[e.version];return e.version===n&&r.push(`(latest)`),t&&e.version===t&&r.push(`(current)`),r.join(` `)}var Ln=3e3;function Rn({version:e,assistantId:t}){let{onTap:n,message:r}=cn(t);return(0,Q.jsxs)(`div`,{className:`min-w-0`,children:[(0,Q.jsx)(`button`,{type:`button`,className:`block min-w-0 break-all text-left text-body-medium-lighter text-[var(--content-default)]`,onClick:n,children:e??`—`}),r&&(0,Q.jsx)(`p`,{className:`mt-1 text-body-small-default text-[var(--content-accent)]`,children:r})]})}function zn({assistantId:e,currentVersion:t,releaseChannel:n,onUpgradeComplete:r}){let i=Bt.use.rollbackEnabled(),a=q.use.previewChannel(),o=d(),c=Gt(n,a),l=c===`preview`,[u,m]=(0,Z.useState)(!1),h=(0,Z.useRef)(null),[g,_]=(0,Z.useState)(null),[v,y]=(0,Z.useState)(!1),[b,x]=(0,Z.useState)(!1),[S,C]=(0,Z.useState)(null),w=e=>e&&h.current&&e===h.current?(queueMicrotask(()=>{C(b?`Successfully rolled back to version ${h.current}.`:`Successfully updated to version ${h.current}.`),m(!1),h.current=null,_(null),H.success(b?`Rollback complete. Your assistant is healthy.`:`Update complete. Your assistant is healthy.`,{id:`runtime-upgrade-complete`,tone:`strong`}),r?.()}),!1):Ln;f({...Tt({path:{id:e}}),refetchInterval:u?e=>w(e.state.data?.current_release_version):!1});let{data:T,isLoading:E}=f(zt({query:{channel:c}})),D=T?.find(e=>e.is_stable!==!1)??T?.[0],O=g??D?.version??null,k=(0,Z.useMemo)(()=>{if(!i||!O||!t)return!1;let e=Pe(O),n=Pe(t);return!e||!n?!1:Fe(e,n)<0},[i,O,t]),j=(0,Z.useMemo)(()=>{if(!O)return!1;if(!t)return!0;let e=Pe(O),n=Pe(t);if(!e||!n)return O!==t;let r=Fe(e,n);return i?r!==0:r>0},[i,O,t]),M=p({mutationFn:async t=>{let{data:n}=await nt({path:{id:e},body:t,throwOnError:!0});return n}}),N=p({mutationFn:async t=>{let{data:n}=await it({path:{id:e},body:t,throwOnError:!0});return n}});return(0,Q.jsxs)(`div`,{className:`space-y-5`,children:[(0,Q.jsxs)(`div`,{className:`flex flex-col gap-4 md:grid md:grid-cols-[auto_minmax(0,1fr)] md:items-center md:gap-x-8 md:gap-y-4`,children:[(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1 md:contents`,children:[(0,Q.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:`Current`}),(0,Q.jsx)(Rn,{version:t,assistantId:e})]}),(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1 md:contents`,children:[(0,Q.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:l?`Preview release`:j?k?`Rollback to`:`Update to`:`Selected`}),(0,Q.jsx)(`span`,{className:`block min-w-0`,children:E?(0,Q.jsxs)(`span`,{className:`flex items-center gap-1 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,Q.jsx)(A,{className:`h-3 w-3 animate-spin`}),`Loading...`]}):T&&T.length>0?i?(0,Q.jsx)(ve,{value:O??``,onChange:e=>_(e===D?.version?null:e),disabled:u||M.isPending||N.isPending,options:T.map(e=>({value:e.version,label:In(e,t,D?.version)}))}):(0,Q.jsx)(`span`,{className:`block min-w-0 break-all text-body-medium-lighter text-[var(--content-default)]`,children:D?In(D,t,D.version):`—`}):`No releases available`})]})]}),(0,Q.jsx)(s,{variant:k?`outlined`:`primary`,className:`min-w-[160px]`,leftIcon:M.isPending||N.isPending||u?(0,Q.jsx)(A,{className:`animate-spin`}):(0,Q.jsx)(se,{}),onClick:()=>y(!0),disabled:!j||M.isPending||N.isPending||u||E||!T?.length,children:u?b?`Rolling back...`:`Updating...`:k?`Rollback`:l?`Update preview`:`Update`}),l&&(0,Q.jsxs)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:[`Using Preview releases.`,` `,(0,Q.jsx)(`a`,{href:`#preview-release-channel`,className:`text-[var(--primary-base)] underline-offset-2 hover:underline`,children:`Switch back to Stable`})]}),!j&&t&&O&&!E&&(0,Q.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--system-positive-strong)]`,children:S??`You are already on this version.`}),(0,Q.jsx)(_e,{open:v,title:k?`Rollback assistant`:l?`Update preview release`:`Update assistant`,message:k?`Rollback to version ${O??`unknown`}? The assistant will be briefly unavailable.`:l?`Update to preview version ${O??`latest`}? The assistant will be briefly unavailable during the update.`:`Update to version ${O??`latest`}? The assistant will be briefly unavailable during the update.`,confirmLabel:k?`Rollback`:l?`Update preview`:`Update`,onConfirm:async()=>{y(!1),C(null);let t=i?O??void 0:void 0;try{if(k){let e=await N.mutateAsync({version:t});h.current=e.version??t??null,H.success(e.detail||`Rollback to ${t} initiated.`)}else{let e=await M.mutateAsync({version:t});if(e.detail?.includes(`Already on the latest`)){H.warning(e.detail);return}h.current=e.version??t??null,H.success(e.detail||`Update to ${e.version??t??`latest`} initiated.`)}x(k),m(!0),o.invalidateQueries({queryKey:Nt({path:{id:e}})})}catch{H.error(k?`Failed to trigger rollback. Please try again.`:`Failed to trigger update. Please try again.`)}},onCancel:()=>y(!1)})]})}function Bn({assistantId:e,currentVersion:t,onUpgradeComplete:n}){let[r,i]=(0,Z.useState)(!1),[a,o]=(0,Z.useState)(null),{data:c,isLoading:l}=f(zt({query:{stable:!0,limit:100}})),u=(0,Z.useMemo)(()=>Kt(c),[c]),d=u?.version,p=t?Wt(t,d):!!d,m=qt({assistantId:e,targetVersion:d});return(0,Q.jsxs)(`div`,{className:`space-y-5`,children:[(0,Q.jsxs)(`div`,{className:`flex flex-col gap-4 md:grid md:grid-cols-[auto_minmax(0,1fr)] md:items-center md:gap-x-8 md:gap-y-4`,children:[(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1 md:contents`,children:[(0,Q.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:`Current`}),(0,Q.jsx)(Rn,{version:t,assistantId:e})]}),(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1 md:contents`,children:[(0,Q.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:`Update to`}),(0,Q.jsx)(`span`,{className:`block min-w-0 break-all text-body-medium-lighter text-[var(--content-default)]`,children:l?`Loading...`:d&&u?In(u,t,d):`No releases available`})]})]}),(0,Q.jsx)(s,{variant:`primary`,className:`min-w-[160px]`,leftIcon:m.isPending?(0,Q.jsx)(A,{className:`animate-spin`}):(0,Q.jsx)(se,{}),onClick:()=>i(!0),disabled:m.isPending||l||!d||!p,children:m.isPending?`Updating...`:d?`Update to ${d}`:`Update`}),a&&(0,Q.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--system-positive-strong)]`,children:a}),!a&&!p&&d&&!l&&(0,Q.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--system-positive-strong)]`,children:`You are already on this version.`}),(0,Q.jsx)(_e,{open:r,title:`Update assistant`,message:`Update to version ${d??`latest`}? The assistant will be briefly unavailable during the update.`,confirmLabel:`Update`,onConfirm:async()=>{i(!1),o(null);try{let e=await m.upgrade();o(e.version?`Successfully updated to version ${e.version}.`:`Successfully updated to version ${d??`latest`}.`),H.success(`Update complete. Your assistant is healthy.`,{id:`runtime-upgrade-complete`,tone:`strong`}),n?.()}catch(e){H.error(e instanceof Error?e.message:`Failed to trigger update. Please try again.`)}},onCancel:()=>i(!1)})]})}function Vn(){let e=pt({platformHostedOnly:!0}),t=mt(),n=Ke.use.user()?.id??null,r=Ke.use.logout(),[i,a]=(0,Z.useState)(!1),o=xt({onSuccess:async()=>{H.success(`Account deletion requested. You will be logged out shortly.`),Ge(n),await r(),gt(J.account.login)},onError:()=>{H.error(`Failed to request account deletion. Please try again.`)}}),c=e===`full`&&t;return(0,Z.useEffect)(()=>{c&&i&&a(!1)},[c,i]),e===`gated`?null:(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsxs)(`section`,{className:`flex flex-col gap-2`,children:[(0,Q.jsx)(`h3`,{className:`text-title-small text-[var(--content-emphasised)]`,children:`Delete Account`}),(0,Q.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:`Permanently delete your account and all associated data.`}),(0,Q.jsx)(`div`,{className:`mt-1`,children:e===`disabled`?(0,Q.jsx)(Y,{children:`Log in to the Vellum platform to delete your account.`}):(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(s,{variant:`dangerOutline`,onClick:()=>a(!0),disabled:o.isPending||c,className:`self-start`,children:`Delete My Account`}),c&&(0,Q.jsx)(A,{className:`h-4 w-4 animate-spin text-[var(--content-tertiary)]`})]})})]}),(0,Q.jsx)(_e,{open:i,title:`Delete Account`,message:`This will permanently delete your account and all associated data. This action cannot be undone.`,confirmLabel:`Delete Account`,destructive:!0,onConfirm:()=>{if(c){a(!1);return}a(!1),o.mutate({})},onCancel:()=>a(!1)})]})}function Hn({title:e,subtitle:t,benefits:n,ctaLabel:r,ctaLeftIcon:i,onAction:a}){return(0,Q.jsx)(X,{title:e,subtitle:t,children:(0,Q.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,Q.jsx)(`ul`,{className:`space-y-3`,children:n.map(({icon:e,text:t})=>(0,Q.jsxs)(`li`,{className:`flex items-center gap-3`,children:[(0,Q.jsx)(`span`,{className:`flex size-7 shrink-0 items-center justify-center rounded-md`,style:{background:`var(--surface-base)`},children:(0,Q.jsx)(e,{size:14,style:{color:`var(--content-secondary)`},"aria-hidden":!0})}),(0,Q.jsx)(`span`,{className:`text-body-medium-lighter text-[color:var(--content-secondary)]`,children:t})]},t))}),(0,Q.jsx)(s,{variant:`primary`,size:`regular`,leftIcon:i,onClick:a,className:`self-start`,children:r})]})})}function Un(){let e=ft(),t=ut(),n=e?`ios`:t?`android`:null,r=n?R(n):null;return r?(0,Q.jsx)(Hn,{title:`Get the ${r.appName} App`,subtitle:`The Vellum ${r.appName} app gives you a native experience.`,benefits:[{icon:_,text:`Push notifications`},{icon:pn,text:`Biometric login`},{icon:hn,text:`Native haptics`},{icon:le,text:`Home screen access`}],ctaLabel:`Download`,ctaLeftIcon:(0,Q.jsx)(le,{size:16}),onAction:()=>{te(r.platform),ie(r.platform)}}):null}var Wn=`0.10.0`;function Gn(){return Ie(Wn)}var Kn=[`login.tailscale.com`,`tailscale.com`,`www.tailscale.com`,`ngrok.com`,`dashboard.ngrok.com`,`dash.cloudflare.com`,`cloudflare.com`,`www.cloudflare.com`];function qn(e){let t;try{t=new URL(e).hostname}catch{return!1}return Kn.includes(t)}function Jn(e){let t;try{t=new URL(e).hostname}catch{return null}return Kn.includes(t)?t.includes(`tailscale`)?`Tailscale`:t.includes(`ngrok`)?`ngrok`:t.includes(`cloudflare`)?`Cloudflare`:null:null}function Yn(e){try{let t=new URL(e).hostname;return t===`localhost`||t===`[::1]`||/^127(?:\.\d{1,3}){3}$/.test(t)}catch{return!1}}function Xn(e){let t=new URL(e);t.search=``,t.hash=``;let n=t.pathname.split(`/`).filter(Boolean),r=n.indexOf(`assistant`);return r>=0&&n.splice(r),t.pathname=n.length?`/${n.join(`/`)}`:`/`,t.toString().replace(/\/+$/,``)}function Zn(e){let t;try{t=Xn(e)}catch{return{ok:!1,reason:`unparseable`}}return Yn(t)?{ok:!1,reason:`loopback`}:qn(t)?{ok:!1,reason:`service-website`}:new URL(t).protocol===`https:`?{ok:!0,url:t}:{ok:!1,reason:`non-https`}}function Qn(e){let t=new URL(e.verificationUri);return t.hash=new URLSearchParams({device_code:e.deviceCode}).toString(),t.toString()}function $n(e,t){switch(e){case`unparseable`:return`Enter a valid URL, e.g. https://your-assistant.ts.net.`;case`loopback`:return`This is a loopback address other devices can't reach. Enter the assistant's public https URL.`;case`non-https`:return`The URL must use https so your devices can connect securely.`;case`service-website`:return`This is ${t&&Jn(t)||`the tunnel provider`}'s website, not your assistant's address. Run \`vellum tunnel\` on the host to get one.`}}var er=`/v1/remote-web/pairing-challenge`,tr=`/v1/remote-web/pairing-verification`,nr="If a scan can't connect, enable remote web access on the host with `vellum flags set web-remote-ingress true`, then generate a new code.",rr=class extends Error{hint;constructor(e,t){super(e),this.name=`PairDeviceError`,this.hint=t}};function ir(){if(typeof window>`u`)return null;let e=Oe(),t=Ee(e);return t?{base:`${window.location.origin}${t}`,assistantName:e?.name?.trim()||null,ingressUrl:e?.ingressUrl?.trim()||null}:null}function ar(e){let t=e?.error?.message;return typeof t==`string`&&t.trim()?t:null}async function or(e,t,n){let r;try{r=await fetch(e,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t),signal:n})}catch(e){throw e instanceof DOMException&&e.name===`AbortError`?e:new rr(`Couldn't reach the assistant. Make sure it's running and try again.`)}let i=await r.json().catch(()=>null);if(!r.ok)throw new rr(ar(i)??`Pairing failed (HTTP ${r.status}).`,nr);if(typeof i!=`object`||!i)throw new rr(`The assistant returned an unexpected response.`);return i}async function sr(e){let{base:t,publicBaseUrl:n,signal:r}=e,i=await or(`${t}${er}`,{publicBaseUrl:n},r);return await or(`${t}${tr}`,{userCode:i.userCode},r),{pairUrl:Qn(i),expiresAt:i.expiresAt}}var cr=Object.defineProperty,lr=Object.getOwnPropertySymbols,ur=Object.prototype.hasOwnProperty,dr=Object.prototype.propertyIsEnumerable,fr=(e,t,n)=>t in e?cr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,pr=(e,t)=>{for(var n in t||={})ur.call(t,n)&&fr(e,n,t[n]);if(lr)for(var n of lr(t))dr.call(t,n)&&fr(e,n,t[n]);return e},mr=(e,t)=>{var n={};for(var r in e)ur.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&lr)for(var r of lr(e))t.indexOf(r)<0&&dr.call(e,r)&&(n[r]=e[r]);return n},hr;(e=>{let t=class t{constructor(e,n,r,a){if(this.version=e,this.errorCorrectionLevel=n,this.modules=[],this.isFunction=[],e<t.MIN_VERSION||e>t.MAX_VERSION)throw RangeError(`Version value out of range`);if(a<-1||a>7)throw RangeError(`Mask value out of range`);this.size=e*4+17;let o=[];for(let e=0;e<this.size;e++)o.push(!1);for(let e=0;e<this.size;e++)this.modules.push(o.slice()),this.isFunction.push(o.slice());this.drawFunctionPatterns();let s=this.addEccAndInterleave(r);if(this.drawCodewords(s),a==-1){let e=1e9;for(let t=0;t<8;t++){this.applyMask(t),this.drawFormatBits(t);let n=this.getPenaltyScore();n<e&&(a=t,e=n),this.applyMask(t)}}i(0<=a&&a<=7),this.mask=a,this.applyMask(a),this.drawFormatBits(a),this.isFunction=[]}static encodeText(n,r){let i=e.QrSegment.makeSegments(n);return t.encodeSegments(i,r)}static encodeBinary(n,r){let i=e.QrSegment.makeBytes(n);return t.encodeSegments([i],r)}static encodeSegments(e,r,a=1,s=40,c=-1,l=!0){if(!(t.MIN_VERSION<=a&&a<=s&&s<=t.MAX_VERSION)||c<-1||c>7)throw RangeError(`Invalid value`);let u,d;for(u=a;;u++){let n=t.getNumDataCodewords(u,r)*8,i=o.getTotalBits(e,u);if(i<=n){d=i;break}if(u>=s)throw RangeError(`Data too long`)}for(let e of[t.Ecc.MEDIUM,t.Ecc.QUARTILE,t.Ecc.HIGH])l&&d<=t.getNumDataCodewords(u,e)*8&&(r=e);let f=[];for(let t of e){n(t.mode.modeBits,4,f),n(t.numChars,t.mode.numCharCountBits(u),f);for(let e of t.getData())f.push(e)}i(f.length==d);let p=t.getNumDataCodewords(u,r)*8;i(f.length<=p),n(0,Math.min(4,p-f.length),f),n(0,(8-f.length%8)%8,f),i(f.length%8==0);for(let e=236;f.length<p;e^=253)n(e,8,f);let m=[];for(;m.length*8<f.length;)m.push(0);return f.forEach((e,t)=>m[t>>>3]|=e<<7-(t&7)),new t(u,r,m,c)}getModule(e,t){return 0<=e&&e<this.size&&0<=t&&t<this.size&&this.modules[t][e]}getModules(){return this.modules}drawFunctionPatterns(){for(let e=0;e<this.size;e++)this.setFunctionModule(6,e,e%2==0),this.setFunctionModule(e,6,e%2==0);this.drawFinderPattern(3,3),this.drawFinderPattern(this.size-4,3),this.drawFinderPattern(3,this.size-4);let e=this.getAlignmentPatternPositions(),t=e.length;for(let n=0;n<t;n++)for(let r=0;r<t;r++)n==0&&r==0||n==0&&r==t-1||n==t-1&&r==0||this.drawAlignmentPattern(e[n],e[r]);this.drawFormatBits(0),this.drawVersion()}drawFormatBits(e){let t=this.errorCorrectionLevel.formatBits<<3|e,n=t;for(let e=0;e<10;e++)n=n<<1^(n>>>9)*1335;let a=(t<<10|n)^21522;i(a>>>15==0);for(let e=0;e<=5;e++)this.setFunctionModule(8,e,r(a,e));this.setFunctionModule(8,7,r(a,6)),this.setFunctionModule(8,8,r(a,7)),this.setFunctionModule(7,8,r(a,8));for(let e=9;e<15;e++)this.setFunctionModule(14-e,8,r(a,e));for(let e=0;e<8;e++)this.setFunctionModule(this.size-1-e,8,r(a,e));for(let e=8;e<15;e++)this.setFunctionModule(8,this.size-15+e,r(a,e));this.setFunctionModule(8,this.size-8,!0)}drawVersion(){if(this.version<7)return;let e=this.version;for(let t=0;t<12;t++)e=e<<1^(e>>>11)*7973;let t=this.version<<12|e;i(t>>>18==0);for(let e=0;e<18;e++){let n=r(t,e),i=this.size-11+e%3,a=Math.floor(e/3);this.setFunctionModule(i,a,n),this.setFunctionModule(a,i,n)}}drawFinderPattern(e,t){for(let n=-4;n<=4;n++)for(let r=-4;r<=4;r++){let i=Math.max(Math.abs(r),Math.abs(n)),a=e+r,o=t+n;0<=a&&a<this.size&&0<=o&&o<this.size&&this.setFunctionModule(a,o,i!=2&&i!=4)}}drawAlignmentPattern(e,t){for(let n=-2;n<=2;n++)for(let r=-2;r<=2;r++)this.setFunctionModule(e+r,t+n,Math.max(Math.abs(r),Math.abs(n))!=1)}setFunctionModule(e,t,n){this.modules[t][e]=n,this.isFunction[t][e]=!0}addEccAndInterleave(e){let n=this.version,r=this.errorCorrectionLevel;if(e.length!=t.getNumDataCodewords(n,r))throw RangeError(`Invalid argument`);let a=t.NUM_ERROR_CORRECTION_BLOCKS[r.ordinal][n],o=t.ECC_CODEWORDS_PER_BLOCK[r.ordinal][n],s=Math.floor(t.getNumRawDataModules(n)/8),c=a-s%a,l=Math.floor(s/a),u=[],d=t.reedSolomonComputeDivisor(o);for(let n=0,r=0;n<a;n++){let i=e.slice(r,r+l-o+(n<c?0:1));r+=i.length;let a=t.reedSolomonComputeRemainder(i,d);n<c&&i.push(0),u.push(i.concat(a))}let f=[];for(let e=0;e<u[0].length;e++)u.forEach((t,n)=>{(e!=l-o||n>=c)&&f.push(t[e])});return i(f.length==s),f}drawCodewords(e){if(e.length!=Math.floor(t.getNumRawDataModules(this.version)/8))throw RangeError(`Invalid argument`);let n=0;for(let t=this.size-1;t>=1;t-=2){t==6&&(t=5);for(let i=0;i<this.size;i++)for(let a=0;a<2;a++){let o=t-a,s=t+1&2?i:this.size-1-i;!this.isFunction[s][o]&&n<e.length*8&&(this.modules[s][o]=r(e[n>>>3],7-(n&7)),n++)}}i(n==e.length*8)}applyMask(e){if(e<0||e>7)throw RangeError(`Mask value out of range`);for(let t=0;t<this.size;t++)for(let n=0;n<this.size;n++){let r;switch(e){case 0:r=(n+t)%2==0;break;case 1:r=t%2==0;break;case 2:r=n%3==0;break;case 3:r=(n+t)%3==0;break;case 4:r=(Math.floor(n/3)+Math.floor(t/2))%2==0;break;case 5:r=n*t%2+n*t%3==0;break;case 6:r=(n*t%2+n*t%3)%2==0;break;case 7:r=((n+t)%2+n*t%3)%2==0;break;default:throw Error(`Unreachable`)}!this.isFunction[t][n]&&r&&(this.modules[t][n]=!this.modules[t][n])}}getPenaltyScore(){let e=0;for(let n=0;n<this.size;n++){let r=!1,i=0,a=[0,0,0,0,0,0,0];for(let o=0;o<this.size;o++)this.modules[n][o]==r?(i++,i==5?e+=t.PENALTY_N1:i>5&&e++):(this.finderPenaltyAddHistory(i,a),r||(e+=this.finderPenaltyCountPatterns(a)*t.PENALTY_N3),r=this.modules[n][o],i=1);e+=this.finderPenaltyTerminateAndCount(r,i,a)*t.PENALTY_N3}for(let n=0;n<this.size;n++){let r=!1,i=0,a=[0,0,0,0,0,0,0];for(let o=0;o<this.size;o++)this.modules[o][n]==r?(i++,i==5?e+=t.PENALTY_N1:i>5&&e++):(this.finderPenaltyAddHistory(i,a),r||(e+=this.finderPenaltyCountPatterns(a)*t.PENALTY_N3),r=this.modules[o][n],i=1);e+=this.finderPenaltyTerminateAndCount(r,i,a)*t.PENALTY_N3}for(let n=0;n<this.size-1;n++)for(let r=0;r<this.size-1;r++){let i=this.modules[n][r];i==this.modules[n][r+1]&&i==this.modules[n+1][r]&&i==this.modules[n+1][r+1]&&(e+=t.PENALTY_N2)}let n=0;for(let e of this.modules)n=e.reduce((e,t)=>e+ +!!t,n);let r=this.size*this.size,a=Math.ceil(Math.abs(n*20-r*10)/r)-1;return i(0<=a&&a<=9),e+=a*t.PENALTY_N4,i(0<=e&&e<=2568888),e}getAlignmentPatternPositions(){if(this.version==1)return[];{let e=Math.floor(this.version/7)+2,t=this.version==32?26:Math.ceil((this.version*4+4)/(e*2-2))*2,n=[6];for(let r=this.size-7;n.length<e;r-=t)n.splice(1,0,r);return n}}static getNumRawDataModules(e){if(e<t.MIN_VERSION||e>t.MAX_VERSION)throw RangeError(`Version number out of range`);let n=(16*e+128)*e+64;if(e>=2){let t=Math.floor(e/7)+2;n-=(25*t-10)*t-55,e>=7&&(n-=36)}return i(208<=n&&n<=29648),n}static getNumDataCodewords(e,n){return Math.floor(t.getNumRawDataModules(e)/8)-t.ECC_CODEWORDS_PER_BLOCK[n.ordinal][e]*t.NUM_ERROR_CORRECTION_BLOCKS[n.ordinal][e]}static reedSolomonComputeDivisor(e){if(e<1||e>255)throw RangeError(`Degree out of range`);let n=[];for(let t=0;t<e-1;t++)n.push(0);n.push(1);let r=1;for(let i=0;i<e;i++){for(let e=0;e<n.length;e++)n[e]=t.reedSolomonMultiply(n[e],r),e+1<n.length&&(n[e]^=n[e+1]);r=t.reedSolomonMultiply(r,2)}return n}static reedSolomonComputeRemainder(e,n){let r=n.map(e=>0);for(let i of e){let e=i^r.shift();r.push(0),n.forEach((n,i)=>r[i]^=t.reedSolomonMultiply(n,e))}return r}static reedSolomonMultiply(e,t){if(e>>>8||t>>>8)throw RangeError(`Byte out of range`);let n=0;for(let r=7;r>=0;r--)n=n<<1^(n>>>7)*285,n^=(t>>>r&1)*e;return i(n>>>8==0),n}finderPenaltyCountPatterns(e){let t=e[1];i(t<=this.size*3);let n=t>0&&e[2]==t&&e[3]==t*3&&e[4]==t&&e[5]==t;return(n&&e[0]>=t*4&&e[6]>=t?1:0)+(n&&e[6]>=t*4&&e[0]>=t?1:0)}finderPenaltyTerminateAndCount(e,t,n){return e&&(this.finderPenaltyAddHistory(t,n),t=0),t+=this.size,this.finderPenaltyAddHistory(t,n),this.finderPenaltyCountPatterns(n)}finderPenaltyAddHistory(e,t){t[0]==0&&(e+=this.size),t.pop(),t.unshift(e)}};t.MIN_VERSION=1,t.MAX_VERSION=40,t.PENALTY_N1=3,t.PENALTY_N2=3,t.PENALTY_N3=40,t.PENALTY_N4=10,t.ECC_CODEWORDS_PER_BLOCK=[[-1,7,10,15,20,26,18,20,24,30,18,20,24,26,30,22,24,28,30,28,28,28,28,30,30,26,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,10,16,26,18,24,16,18,22,22,26,30,22,22,24,24,28,28,26,26,26,26,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28],[-1,13,22,18,26,18,24,18,22,20,24,28,26,24,20,30,24,28,28,26,30,28,30,30,30,30,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,17,28,22,16,22,28,26,26,24,28,24,28,22,24,24,30,28,28,26,28,30,24,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30]],t.NUM_ERROR_CORRECTION_BLOCKS=[[-1,1,1,1,1,1,2,2,2,2,4,4,4,4,4,6,6,6,6,7,8,8,9,9,10,12,12,12,13,14,15,16,17,18,19,19,20,21,22,24,25],[-1,1,1,1,2,2,4,4,4,5,5,5,8,9,9,10,10,11,13,14,16,17,17,18,20,21,23,25,26,28,29,31,33,35,37,38,40,43,45,47,49],[-1,1,1,2,2,4,4,6,6,8,8,8,10,12,16,12,17,16,18,21,20,23,23,25,27,29,34,34,35,38,40,43,45,48,51,53,56,59,62,65,68],[-1,1,1,2,4,4,4,5,6,8,8,11,11,16,16,18,16,19,21,25,25,25,34,30,32,35,37,40,42,45,48,51,54,57,60,63,66,70,74,77,81]],e.QrCode=t;function n(e,t,n){if(t<0||t>31||e>>>t)throw RangeError(`Value out of range`);for(let r=t-1;r>=0;r--)n.push(e>>>r&1)}function r(e,t){return(e>>>t&1)!=0}function i(e){if(!e)throw Error(`Assertion error`)}let a=class e{constructor(e,t,n){if(this.mode=e,this.numChars=t,this.bitData=n,t<0)throw RangeError(`Invalid argument`);this.bitData=n.slice()}static makeBytes(t){let r=[];for(let e of t)n(e,8,r);return new e(e.Mode.BYTE,t.length,r)}static makeNumeric(t){if(!e.isNumeric(t))throw RangeError(`String contains non-numeric characters`);let r=[];for(let e=0;e<t.length;){let i=Math.min(t.length-e,3);n(parseInt(t.substring(e,e+i),10),i*3+1,r),e+=i}return new e(e.Mode.NUMERIC,t.length,r)}static makeAlphanumeric(t){if(!e.isAlphanumeric(t))throw RangeError(`String contains unencodable characters in alphanumeric mode`);let r=[],i;for(i=0;i+2<=t.length;i+=2){let a=e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(i))*45;a+=e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(i+1)),n(a,11,r)}return i<t.length&&n(e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(i)),6,r),new e(e.Mode.ALPHANUMERIC,t.length,r)}static makeSegments(t){return t==``?[]:e.isNumeric(t)?[e.makeNumeric(t)]:e.isAlphanumeric(t)?[e.makeAlphanumeric(t)]:[e.makeBytes(e.toUtf8ByteArray(t))]}static makeEci(t){let r=[];if(t<0)throw RangeError(`ECI assignment value out of range`);if(t<128)n(t,8,r);else if(t<16384)n(2,2,r),n(t,14,r);else if(t<1e6)n(6,3,r),n(t,21,r);else throw RangeError(`ECI assignment value out of range`);return new e(e.Mode.ECI,0,r)}static isNumeric(t){return e.NUMERIC_REGEX.test(t)}static isAlphanumeric(t){return e.ALPHANUMERIC_REGEX.test(t)}getData(){return this.bitData.slice()}static getTotalBits(e,t){let n=0;for(let r of e){let e=r.mode.numCharCountBits(t);if(r.numChars>=1<<e)return 1/0;n+=4+e+r.bitData.length}return n}static toUtf8ByteArray(e){e=encodeURI(e);let t=[];for(let n=0;n<e.length;n++)e.charAt(n)==`%`?(t.push(parseInt(e.substring(n+1,n+3),16)),n+=2):t.push(e.charCodeAt(n));return t}};a.NUMERIC_REGEX=/^[0-9]*$/,a.ALPHANUMERIC_REGEX=/^[A-Z0-9 $%*+.\/:-]*$/,a.ALPHANUMERIC_CHARSET=`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:`;let o=a;e.QrSegment=a})(hr||={}),(e=>{(e=>{let t=class{constructor(e,t){this.ordinal=e,this.formatBits=t}};t.LOW=new t(0,1),t.MEDIUM=new t(1,0),t.QUARTILE=new t(2,3),t.HIGH=new t(3,2),e.Ecc=t})(e.QrCode||={})})(hr||={}),(e=>{(e=>{let t=class{constructor(e,t){this.modeBits=e,this.numBitsCharCount=t}numCharCountBits(e){return this.numBitsCharCount[Math.floor((e+7)/17)]}};t.NUMERIC=new t(1,[10,12,14]),t.ALPHANUMERIC=new t(2,[9,11,13]),t.BYTE=new t(4,[8,16,16]),t.KANJI=new t(8,[8,10,12]),t.ECI=new t(7,[0,0,0]),e.Mode=t})(e.QrSegment||={})})(hr||={});var gr=hr,_r={L:gr.QrCode.Ecc.LOW,M:gr.QrCode.Ecc.MEDIUM,Q:gr.QrCode.Ecc.QUARTILE,H:gr.QrCode.Ecc.HIGH},vr=128,yr=`L`,br=`#FFFFFF`,xr=`#000000`,Sr=!1,Cr=1,wr=4,Tr=0,Er=.1;function Dr(e,t=0){let n=[];return e.forEach(function(e,r){let i=null;e.forEach(function(a,o){if(!a&&i!==null){n.push(`M${i+t} ${r+t}h${o-i}v1H${i+t}z`),i=null;return}if(o===e.length-1){if(!a)return;i===null?n.push(`M${o+t},${r+t} h1v1H${o+t}z`):n.push(`M${i+t},${r+t} h${o+1-i}v1H${i+t}z`);return}a&&i===null&&(i=o)})}),n.join(``)}function Or(e,t){return e.slice().map((e,n)=>n<t.y||n>=t.y+t.h?e:e.map((e,n)=>n<t.x||n>=t.x+t.w?e:!1))}function kr(e,t,n,r){if(r==null)return null;let i=e.length+n*2,a=Math.floor(t*Er),o=i/t,s=(r.width||a)*o,c=(r.height||a)*o,l=r.x==null?e.length/2-s/2:r.x*o,u=r.y==null?e.length/2-c/2:r.y*o,d=r.opacity==null?1:r.opacity,f=null;if(r.excavate){let e=Math.floor(l),t=Math.floor(u);f={x:e,y:t,w:Math.ceil(s+l-e),h:Math.ceil(c+u-t)}}let p=r.crossOrigin;return{x:l,y:u,h:c,w:s,excavation:f,opacity:d,crossOrigin:p}}function Ar(e,t){return t==null?e?wr:Tr:Math.max(Math.floor(t),0)}function jr({value:e,level:t,minVersion:n,includeMargin:r,marginSize:i,imageSettings:a,size:o,boostLevel:s}){let c=Z.useMemo(()=>{let r=(Array.isArray(e)?e:[e]).reduce((e,t)=>(e.push(...gr.QrSegment.makeSegments(t)),e),[]);return gr.QrCode.encodeSegments(r,_r[t],n,void 0,void 0,s)},[e,t,n,s]),{cells:l,margin:u,numCells:d,calculatedImageSettings:f}=Z.useMemo(()=>{let e=c.getModules(),t=Ar(r,i);return{cells:e,margin:t,numCells:e.length+t*2,calculatedImageSettings:kr(e,o,t,a)}},[c,o,a,r,i]);return{qrcode:c,margin:u,cells:l,numCells:d,calculatedImageSettings:f}}var Mr=function(){try{new Path2D().addPath(new Path2D)}catch{return!1}return!0}(),Nr=Z.forwardRef(function(e,t){let n=e,{value:r,size:i=vr,level:a=yr,bgColor:o=br,fgColor:s=xr,includeMargin:c=Sr,minVersion:l=Cr,boostLevel:u,marginSize:d,imageSettings:f}=n,p=mr(n,[`value`,`size`,`level`,`bgColor`,`fgColor`,`includeMargin`,`minVersion`,`boostLevel`,`marginSize`,`imageSettings`]),{style:m}=p,h=mr(p,[`style`]),g=f?.src,_=Z.useRef(null),v=Z.useRef(null),y=Z.useCallback(e=>{_.current=e,typeof t==`function`?t(e):t&&(t.current=e)},[t]),[b,x]=Z.useState(!1),{margin:S,cells:C,numCells:w,calculatedImageSettings:T}=jr({value:r,level:a,minVersion:l,boostLevel:u,includeMargin:c,marginSize:d,imageSettings:f,size:i});Z.useEffect(()=>{if(_.current!=null){let e=_.current,t=e.getContext(`2d`);if(!t)return;let n=C,r=v.current,a=T!=null&&r!==null&&r.complete&&r.naturalHeight!==0&&r.naturalWidth!==0;a&&T.excavation!=null&&(n=Or(C,T.excavation));let c=window.devicePixelRatio||1;e.height=e.width=i*c;let l=i/w*c;t.scale(l,l),t.fillStyle=o,t.fillRect(0,0,w,w),t.fillStyle=s,Mr?t.fill(new Path2D(Dr(n,S))):C.forEach(function(e,n){e.forEach(function(e,r){e&&t.fillRect(r+S,n+S,1,1)})}),T&&(t.globalAlpha=T.opacity),a&&t.drawImage(r,T.x+S,T.y+S,T.w,T.h)}}),Z.useEffect(()=>{x(!1)},[g]);let E=pr({height:i,width:i},m),D=null;return g!=null&&(D=Z.createElement(`img`,{src:g,key:g,style:{display:`none`},onLoad:()=>{x(!0)},ref:v,crossOrigin:T?.crossOrigin})),Z.createElement(Z.Fragment,null,Z.createElement(`canvas`,pr({style:E,height:i,width:i,ref:y,role:`img`},h)),D)});Nr.displayName=`QRCodeCanvas`;var Pr=Z.forwardRef(function(e,t){let n=e,{value:r,size:i=vr,level:a=yr,bgColor:o=br,fgColor:s=xr,includeMargin:c=Sr,minVersion:l=Cr,boostLevel:u,title:d,marginSize:f,imageSettings:p}=n,m=mr(n,[`value`,`size`,`level`,`bgColor`,`fgColor`,`includeMargin`,`minVersion`,`boostLevel`,`title`,`marginSize`,`imageSettings`]),{margin:h,cells:g,numCells:_,calculatedImageSettings:v}=jr({value:r,level:a,minVersion:l,boostLevel:u,includeMargin:c,marginSize:f,imageSettings:p,size:i}),y=g,b=null;p!=null&&v!=null&&(v.excavation!=null&&(y=Or(g,v.excavation)),b=Z.createElement(`image`,{href:p.src,height:v.h,width:v.w,x:v.x+h,y:v.y+h,preserveAspectRatio:`none`,opacity:v.opacity,crossOrigin:v.crossOrigin}));let x=Dr(y,h);return Z.createElement(`svg`,pr({height:i,width:i,viewBox:`0 0 ${_} ${_}`,ref:t,role:`img`},m),!!d&&Z.createElement(`title`,null,d),Z.createElement(`path`,{fill:o,d:`M0,0 h${_}v${_}H0z`,shapeRendering:`crispEdges`}),Z.createElement(`path`,{fill:s,d:x,shapeRendering:`crispEdges`}),b)});Pr.displayName=`QRCodeSVG`;function Fr(e){if(!Number.isFinite(e)||e<=0)return`Single-use.`;let t=Math.ceil(e/1e3);return`Expires in ${Math.floor(t/60)}:${(t%60).toString().padStart(2,`0`)} · single-use.`}function Ir({pairUrl:e,remainingMs:t,expired:n,copied:r,onCopy:i}){return n?(0,Q.jsx)(z,{tone:`warning`,title:`This pairing code expired.`,children:`Generate a new code to pair a device.`}):(0,Q.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,Q.jsx)(`div`,{className:`w-fit rounded-lg bg-white p-3`,children:(0,Q.jsx)(Pr,{value:e,size:192,level:`M`,title:`Device pairing QR code`})}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(`code`,{"data-testid":`pair-device-url`,className:`min-w-0 flex-1 truncate rounded-md bg-[var(--surface-active)] px-2.5 py-1.5 text-body-small-default text-[var(--content-secondary)]`,children:e}),(0,Q.jsx)(s,{variant:`outlined`,size:`compact`,leftIcon:r?(0,Q.jsx)(v,{}):(0,Q.jsx)(S,{}),onClick:()=>i(e),children:r?`Copied`:`Copy`})]}),(0,Q.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:Fr(t)})]})}var Lr=`vellum:pair-device:public-base-url`;function Rr(e){let n=e?.trim();if(n)return{url:n,source:`tunnel`};let r=t(Lr,``).trim();return r?{url:r,source:`stored`}:{url:``,source:`none`}}function zr(e,t,r){let[i]=(0,Z.useState)(()=>Rr(r)),[o,s]=(0,Z.useState)(i.url),[c,l]=(0,Z.useState)(null),[u,d]=(0,Z.useState)({kind:`idle`}),[f,p]=(0,Z.useState)(()=>Date.now()),m=(0,Z.useRef)(null);(0,Z.useEffect)(()=>()=>m.current?.abort(),[]),(0,Z.useEffect)(()=>{if(u.kind!==`ready`)return;p(Date.now());let e=setInterval(()=>p(Date.now()),1e3);return()=>clearInterval(e)},[u]);let h=(0,Z.useCallback)(e=>{s(e),l(null)},[]),g=(0,Z.useCallback)(()=>{if(!e)return;let r=o.trim(),i=Zn(r);if(!i.ok){l($n(i.reason,r));return}if(l(null),!t){d({kind:`error`,message:`Remote web access is disabled on this assistant, so a scanned code couldn't connect.`,hint:nr});return}m.current?.abort();let s=new AbortController;m.current=s,d({kind:`minting`}),(async()=>{try{let t=await sr({base:e,publicBaseUrl:i.url,signal:s.signal});if(s.signal.aborted)return;n(Lr,i.url),d({kind:`ready`,pairUrl:t.pairUrl,expiresAtMs:Date.parse(t.expiresAt)})}catch(e){if(s.signal.aborted)return;if(e instanceof rr){d({kind:`error`,message:e.message,hint:e.hint});return}a(e,{context:`pair-device-mint`}),d({kind:`error`,message:`Something went wrong while generating the code.`})}})()},[e,o,t]),_=u.kind===`ready`?Math.max(0,u.expiresAtMs-f):0,v=u.kind===`ready`&&_<=0;return{publicBaseUrl:o,setPublicBaseUrl:h,prefillSource:i.source,inputError:c,phase:u,remainingMs:_,expired:v,generate:g}}function Br(){let e=ir(),t=Gn(),n=Bt.use.hasHydrated(),r=Bt.use.webRemoteIngress(),i=zr(e?.base??null,r,e?.ingressUrl??null),{copy:a,copied:o}=$t({errorMessage:`Could not copy the pairing address.`});if(!e||!t||!n||!r)return null;let{phase:c}=i,l=c.kind===`minting`,u=c.kind===`ready`,d=i.prefillSource===`tunnel`,f=i.prefillSource===`none`&&i.publicBaseUrl.trim()===``,p=l?`Generating…`:u?`Generate new code`:`Generate pairing QR`;return(0,Q.jsx)(X,{title:`Pair a device`,subtitle:`Scan with another device's camera — or open the link on it — to use ${e.assistantName??`this assistant`} there.`,children:(0,Q.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[f&&(0,Q.jsx)(z,{tone:`info`,title:`No tunnel detected`,children:"On this computer, run `vellum tunnel --provider tailscale` (or another provider) — its address appears here."}),(0,Q.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,Q.jsx)(B,{label:`Public URL`,fullWidth:!0,placeholder:`https://your-assistant.ts.net`,helperText:d?"This address comes from `vellum tunnel` on this computer. Edit it if your devices reach this assistant at a different URL.":`The https address your devices can reach this assistant at (your Tailscale URL, or another tunnel's).`,value:i.publicBaseUrl,errorText:i.inputError??void 0,disabled:l,onChange:e=>i.setPublicBaseUrl(e.target.value),onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),i.generate())}}),(0,Q.jsx)(s,{variant:`primary`,className:`self-start`,disabled:l||i.publicBaseUrl.trim()===``,onClick:i.generate,children:p})]}),c.kind===`error`&&(0,Q.jsx)(z,{tone:`error`,title:c.message,children:c.hint}),u&&(0,Q.jsx)(Ir,{pairUrl:c.pairUrl,remainingMs:i.remainingMs,expired:i.expired,copied:o,onCopy:a})]})})}async function Vr(){if(!W())return[];let e=window.vellum;return e?.hotkeys?e.hotkeys.get():[]}async function Hr(e,t){if(!W())return;let n=window.vellum;n?.hotkeys&&await n.hotkeys.set(e,t)}function Ur(e){if(!W())return()=>{};let t=window.vellum;return t?.hotkeys?t.hotkeys.onChange(e):()=>{}}var Wr={ArrowUp:`Up`,ArrowDown:`Down`,ArrowLeft:`Left`,ArrowRight:`Right`,Enter:`Return`,NumpadEnter:`Return`,Space:`Space`,Tab:`Tab`,Escape:`Escape`,Backspace:`Backspace`,Delete:`Delete`,Insert:`Insert`,Home:`Home`,End:`End`,PageUp:`PageUp`,PageDown:`PageDown`,Minus:`-`,Equal:`=`,BracketLeft:`[`,BracketRight:`]`,Backslash:`\\`,Semicolon:`;`,Quote:`'`,Backquote:"`",Comma:`,`,Period:`.`,Slash:`/`},Gr=new Set([`MetaLeft`,`MetaRight`,`ControlLeft`,`ControlRight`,`AltLeft`,`AltRight`,`ShiftLeft`,`ShiftRight`]),Kr=e=>{let t=e.code;return Gr.has(t)?null:/^Key[A-Z]$/.test(t)?t.slice(3):/^Digit[0-9]$/.test(t)?t.slice(5):/^Numpad[0-9]$/.test(t)?`num${t.slice(6)}`:/^F[0-9]{1,2}$/.test(t)?t:Wr[t]??null},qr=e=>{let t=Kr(e);if(t===null)return null;let n=[];return e.metaKey&&n.push(`CmdOrCtrl`),e.ctrlKey&&n.push(`Control`),e.altKey&&n.push(`Alt`),e.shiftKey&&n.push(`Shift`),[...n,t].join(`+`)},Jr=(e,t,n)=>n===``?null:e.find(e=>e.key!==t&&e.accelerator===n)??null,Yr=[{scope:`global`,title:`Global shortcuts`,description:`Work anywhere, even when Vellum is in the background.`},{scope:`menu`,title:`App shortcuts`,description:`Work while a Vellum window is focused.`}];function Xr({hotkey:e,recording:t,conflictLabel:n,onStartRecording:r,onCancelRecording:i,onReset:a,onRemove:o}){let c=e.accelerator===``,l=e.override!==null;return(0,Q.jsxs)(`div`,{className:`flex items-center justify-between gap-3 py-2`,children:[(0,Q.jsxs)(`div`,{className:`min-w-0`,children:[(0,Q.jsx)(`div`,{className:`truncate text-body-medium-lighter text-[var(--content-default)]`,children:e.label}),n!==null&&(0,Q.jsxs)(`div`,{className:`text-body-small-default text-[var(--system-negative-strong)]`,children:[`Already used by `,n]})]}),(0,Q.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[t?(0,Q.jsx)(`span`,{className:`text-body-small-default text-[var(--content-secondary)]`,children:`Recording… press a shortcut, or Esc to cancel`}):c?(0,Q.jsx)(`span`,{className:`text-body-small-default italic text-[var(--content-disabled)]`,children:`Disabled`}):(0,Q.jsx)(E,{accelerator:e.accelerator}),t?(0,Q.jsx)(s,{variant:`ghost`,size:`compact`,onClick:i,children:`Cancel`}):(0,Q.jsx)(s,{variant:`outlined`,size:`compact`,onClick:r,"aria-label":`Record shortcut for ${e.label}`,children:`Record`}),(0,Q.jsx)(s,{variant:`ghost`,size:`compact`,disabled:!l,leftIcon:(0,Q.jsx)(ce,{className:`h-3.5 w-3.5`}),onClick:a,"aria-label":`Reset ${e.label} to default`}),(0,Q.jsx)(s,{variant:`ghost`,size:`compact`,disabled:c,leftIcon:(0,Q.jsx)(pe,{className:`h-3.5 w-3.5`}),onClick:o,"aria-label":`Remove ${e.label} binding`})]})]})}function Zr(){let[e,t]=(0,Z.useState)([]),[n,r]=(0,Z.useState)(null),[i,a]=(0,Z.useState)(null),o=(0,Z.useCallback)(()=>{Vr().then(t)},[]);(0,Z.useEffect)(()=>(o(),Ur(t)),[o]);let s=(0,Z.useCallback)(()=>{r(null),a(null)},[]);(0,Z.useEffect)(()=>{if(n===null)return;let t=t=>{if(t.preventDefault(),t.stopPropagation(),t.code===`Escape`){s();return}let r=qr(t);if(r===null)return;let i=Jr(e,n,r);if(i!==null){a({key:n,label:i.label});return}Hr(n,r).then(o),s()};return window.addEventListener(`keydown`,t,!0),()=>window.removeEventListener(`keydown`,t,!0)},[n,e,o,s]);let c=(0,Z.useCallback)(e=>{a(null),r(e)},[]),l=(0,Z.useCallback)(t=>{let n=Jr(e,t,e.find(e=>e.key===t)?.defaultAccelerator??``);if(n!==null){r(null),a({key:t,label:n.label});return}s(),Hr(t,null).then(o)},[e,o,s]),u=(0,Z.useCallback)(e=>{s(),Hr(e,``).then(o)},[o,s]),d=(0,Z.useMemo)(()=>Yr.map(t=>({...t,commands:e.filter(e=>e.rebindable&&e.scope===t.scope)})).filter(e=>e.commands.length>0),[e]);return(0,Q.jsxs)(`div`,{className:`space-y-4`,children:[i!==null&&(0,Q.jsxs)(z,{tone:`warning`,children:[`That shortcut is already used by `,i.label,`.`,` `,n===null?`Remove or change that binding before resetting.`:`Pick a different combination, or press Esc to cancel.`]}),d.map(e=>(0,Q.jsxs)(h,{bordered:!0,children:[(0,Q.jsxs)(`div`,{className:`mb-2`,children:[(0,Q.jsx)(`div`,{className:`text-body-medium-emphasised text-[var(--content-default)]`,children:e.title}),(0,Q.jsx)(`div`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:e.description})]}),(0,Q.jsx)(`div`,{className:`divide-y divide-[var(--border-base)]`,children:e.commands.map(e=>(0,Q.jsx)(Xr,{hotkey:e,recording:n===e.key,conflictLabel:i!==null&&i.key===e.key?i.label:null,onStartRecording:()=>c(e.key),onCancelRecording:s,onReset:()=>l(e.key),onRemove:()=>u(e.key)},e.key))})]},e.scope))]})}async function Qr(){if(!W())return!1;let e=window.vellum;return e?.launchAtLogin?e.launchAtLogin.get():!1}async function $r(e){if(!W())return;let t=window.vellum;t?.launchAtLogin&&await t.launchAtLogin.set(e)}function ei(){let e=ae.useValue(),t=re.useValue(),n=!Vt(),r=ct()?`Cmd`:`Ctrl`;return(0,Q.jsxs)(`section`,{children:[(0,Q.jsx)(`h3`,{className:`text-title-small text-[var(--content-emphasised)]`,children:`Composer`}),(0,Q.jsxs)(`div`,{className:`mt-2 space-y-4`,children:[n&&(0,Q.jsx)(ge,{checked:e,onChange:ae.save,label:`Send with ${r}+Enter`,helperText:`When enabled, Enter inserts a new line and ${r}+Enter sends.`}),(0,Q.jsx)(ge,{checked:t,onChange:re.save,label:`Show context window usage`,helperText:`Adds a ring to the composer tracking how full the context window is. Your assistant compacts its context automatically either way.`})]})]})}function ti(){let[e,t]=(0,Z.useState)(!1);(0,Z.useEffect)(()=>{Qr().then(t)},[]);let n=async e=>{t(e);try{await $r(e)}catch{t(!e)}};return(0,Q.jsxs)(`section`,{children:[(0,Q.jsx)(`h3`,{className:`text-title-small text-[var(--content-emphasised)]`,children:`Launch at Login`}),(0,Q.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:`Automatically start Vellum when you log in to your Mac.`}),(0,Q.jsx)(`div`,{className:`mt-2`,children:(0,Q.jsx)(ge,{checked:e,onChange:e=>void n(e),"aria-label":`Launch at Login`})})]})}function ni({open:e,onClose:t}){return(0,Q.jsx)(V.Root,{open:e,onOpenChange:e=>{e||t()},children:(0,Q.jsxs)(V.Content,{size:`lg`,children:[(0,Q.jsxs)(V.Header,{children:[(0,Q.jsx)(V.Title,{children:`Preferences`}),(0,Q.jsx)(V.Description,{children:`Customize shortcuts and how Vellum behaves on this device.`})]}),(0,Q.jsx)(V.Body,{children:(0,Q.jsxs)(`div`,{className:`space-y-6`,children:[W()&&(0,Q.jsxs)(`section`,{children:[(0,Q.jsx)(`h3`,{className:`text-title-small text-[var(--content-emphasised)]`,children:`Keyboard Shortcuts`}),(0,Q.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:`Customize the shortcuts for Vellum's commands.`}),(0,Q.jsx)(`div`,{className:`mt-2`,children:(0,Q.jsx)(Zr,{})})]}),(0,Q.jsx)(ei,{}),W()&&(0,Q.jsx)(ti,{})]})})]})})}function ri(e){return e===`preview`?`preview`:`stable`}function ii(e){if(!e)return`Unknown`;let t=new Date(e);return Number.isNaN(t.getTime())?`Unknown`:t.toLocaleString(void 0,{year:`numeric`,month:`short`,day:`numeric`,hour:`numeric`,minute:`2-digit`})}function ai(e){return e.source_release_version?`Stable ${e.source_release_version}`:e.snapshot_name}function oi(e){return e.filter(e=>e.ready_to_use)}function si(e){return e?.feature_enabled===!1}function ci({assistantId:e,onComplete:t}){let n=q.use.previewChannel(),r=d(),[i,a]=(0,Z.useState)(),[o,s]=(0,Z.useState)(!1),[c,l]=(0,Z.useState)(!1),[u,m]=(0,Z.useState)(`restore_backup`),[h,g]=(0,Z.useState)(``),_=St({path:{assistant_id:e}}),v=bt({path:{assistant_id:e}}),b=Nt({path:{id:e}}),{data:x,isLoading:S,isError:C}=f({..._,enabled:n,retry:!1}),w=x?.preview_backups??[],E=(0,Z.useMemo)(()=>oi(w),[w]),D=E[0],O=E.find(e=>e.snapshot_name===h)??D,k=()=>{r.invalidateQueries({queryKey:v}),r.invalidateQueries({queryKey:b}),t?.()},j=p(Lt()),M=p(Ot()),N=ri(x?.current_channel),P=j.isPending||M.isPending,F=P||si(x)||!x?.latest_preview_release,ee=u===`restore_backup`&&!O;if((0,Z.useEffect)(()=>{a(N===`preview`?`release-channel`:void 0)},[N]),!n)return null;let I=x?.standard_upgrade_available??!1;return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(T.Root,{type:`single`,collapsible:!0,value:i,onValueChange:e=>a(e||void 0),className:`mt-5 border-t border-[var(--border-base)] pt-5`,children:(0,Q.jsxs)(T.Item,{value:`release-channel`,id:`preview-release-channel`,children:[(0,Q.jsxs)(T.Trigger,{className:`group justify-between gap-3`,children:[(0,Q.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[(0,Q.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-secondary)]`,children:`Release Channel`}),x&&(0,Q.jsx)(he,{tone:N===`preview`?`warning`:`neutral`,children:N===`preview`?`Preview`:`Stable`})]}),(0,Q.jsx)(y,{className:`h-4 w-4 shrink-0 text-[var(--content-tertiary)] transition-transform group-data-[state=open]:rotate-180`})]}),(0,Q.jsx)(T.Content,{children:(0,Q.jsxs)(`div`,{className:`mt-4 space-y-4`,children:[S&&(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,Q.jsx)(A,{className:`h-4 w-4 animate-spin`}),`Loading release channel...`]}),C&&(0,Q.jsx)(z,{tone:`error`,title:`Could not load release channel status`,children:`Refresh this page before changing release channels.`}),x&&(0,Q.jsxs)(Q.Fragment,{children:[si(x)&&(0,Q.jsx)(z,{tone:`neutral`,title:`Preview channel is unavailable`,children:`The Preview channel is not enabled for this assistant.`}),N===`stable`?(0,Q.jsx)(li,{status:x,isChangingChannel:P,optInDisabled:F,onOptIn:()=>s(!0)}):(0,Q.jsx)(ui,{status:x,isChangingChannel:P,onOptOut:()=>{let e=D;g(e?.snapshot_name??``),m(e?`restore_backup`:I?`standard_upgrade`:`restore_backup`),l(!0)}})]})]})})]})}),(0,Q.jsx)(fi,{open:o,isPending:j.isPending,previewVersion:x?.latest_preview_release?.version,onConfirm:async()=>{try{let t=await j.mutateAsync({path:{assistant_id:e}});H.success(t.detail||`Preview channel enabled.`),s(!1),k()}catch(e){H.error(G(e,void 0,`Could not enable Preview channel.`))}},onCancel:()=>s(!1)}),(0,Q.jsx)(pi,{open:c,backups:E,mode:u,selectedSnapshotName:O?.snapshot_name??``,isPending:M.isPending,restoreModeDisabled:ee,standardUpgradeAvailable:I,onModeChange:m,onSnapshotChange:g,onConfirm:async()=>{if(!ee)try{let t=await M.mutateAsync({path:{assistant_id:e},body:u===`restore_backup`?{mode:`restore_backup`,snapshot_name:O?.snapshot_name}:{mode:`standard_upgrade`}});H.success(t.detail||`Stable channel enabled.`),l(!1),k()}catch(e){H.error(G(e,void 0,`Could not switch to Stable.`))}},onCancel:()=>l(!1)})]})}function li({status:e,isChangingChannel:t,optInDisabled:n,onOptIn:r}){return(0,Q.jsxs)(`div`,{className:`space-y-4`,children:[(0,Q.jsx)(di,{status:e}),!e.latest_preview_release&&(0,Q.jsx)(z,{tone:`neutral`,title:`No Preview release is available`,children:`Stable remains the only available release channel.`}),(0,Q.jsx)(s,{variant:`outlined`,leftIcon:t?(0,Q.jsx)(A,{className:`animate-spin`}):(0,Q.jsx)(F,{}),disabled:n,onClick:r,children:`Opt in to Preview`})]})}function ui({status:e,isChangingChannel:t,onOptOut:n}){return(0,Q.jsxs)(`div`,{className:`space-y-4`,children:[(0,Q.jsx)(di,{status:e}),(0,Q.jsx)(s,{variant:`outlined`,leftIcon:t?(0,Q.jsx)(A,{className:`animate-spin`}):(0,Q.jsx)(ce,{}),disabled:t,onClick:n,children:`Switch back to Stable`})]})}function di({status:e}){return(0,Q.jsxs)(`dl`,{className:`grid gap-3 text-body-medium-lighter sm:grid-cols-2`,children:[(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(`dt`,{className:`text-[var(--content-tertiary)]`,children:`Latest Stable`}),(0,Q.jsx)(`dd`,{className:`break-all text-[var(--content-default)]`,children:e.latest_stable_release?.version??`None`})]}),(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(`dt`,{className:`text-[var(--content-tertiary)]`,children:`Latest Preview`}),(0,Q.jsx)(`dd`,{className:`break-all text-[var(--content-default)]`,children:e.latest_preview_release?.version??`None`})]})]})}function fi({open:e,isPending:t,previewVersion:n,onConfirm:r,onCancel:i}){return(0,Q.jsx)(V.Root,{open:e,onOpenChange:e=>!e&&i(),children:(0,Q.jsxs)(V.Content,{size:`md`,hideCloseButton:t,children:[(0,Q.jsxs)(V.Header,{children:[(0,Q.jsx)(V.Title,{icon:fe,children:`Opt in to Preview`}),(0,Q.jsx)(V.Description,{children:`Preview releases may be unstable. A 90-day safety backup is taken before the image changes.`})]}),(0,Q.jsx)(V.Body,{children:(0,Q.jsxs)(`div`,{className:`space-y-3`,children:[(0,Q.jsx)(z,{tone:`warning`,title:`Data loss may occur when returning to Stable`,children:`Preview data may not be compatible with the Stable channel. The safety backup lets you restore the Stable-channel data that existed before opt-in.`}),(0,Q.jsxs)(`ol`,{className:`list-decimal space-y-2 pl-5 text-body-medium-lighter text-[var(--content-secondary)]`,children:[(0,Q.jsx)(`li`,{children:`Create and verify a Preview safety backup.`}),(0,Q.jsxs)(`li`,{children:[`Switch to Preview image `,n??`latest`,`.`]}),(0,Q.jsx)(`li`,{children:`Run the normal upgrade path and wait for health.`})]})]})}),(0,Q.jsxs)(V.Footer,{children:[(0,Q.jsx)(s,{variant:`outlined`,disabled:t,onClick:i,children:`Cancel`}),(0,Q.jsx)(s,{variant:`primary`,disabled:t,leftIcon:t?(0,Q.jsx)(A,{className:`animate-spin`}):(0,Q.jsx)(F,{}),onClick:r,children:t?`Switching...`:`Take Backup and Switch`})]})]})})}function pi({open:e,backups:t,mode:n,selectedSnapshotName:r,isPending:i,restoreModeDisabled:a,standardUpgradeAvailable:o,onModeChange:c,onSnapshotChange:l,onConfirm:u,onCancel:d}){return(0,Q.jsx)(V.Root,{open:e,onOpenChange:e=>!e&&d(),children:(0,Q.jsxs)(V.Content,{size:`md`,hideCloseButton:i,children:[(0,Q.jsxs)(V.Header,{children:[(0,Q.jsx)(V.Title,{icon:fe,children:`Switch back to Stable`}),(0,Q.jsx)(V.Description,{children:`Choose how this assistant should leave the Preview channel.`})]}),(0,Q.jsx)(V.Body,{children:(0,Q.jsxs)(`div`,{className:`space-y-4`,children:[(0,Q.jsxs)(C,{value:n,onValueChange:c,disabled:i,"aria-label":`Stable channel return method`,children:[(0,Q.jsx)(w,{value:`restore_backup`,disabled:t.length===0,label:`Restore safety backup`,helperText:`Return to the Stable-channel data captured before Preview opt-in.`}),(0,Q.jsx)(w,{value:`standard_upgrade`,disabled:!o,label:`Switch to Stable without restoring backup`,helperText:o?`Keep the current data and directly switch to the Stable image.`:`Unavailable because the latest Stable release is older than this assistant's Preview release.`})]}),n===`restore_backup`&&t.length>0&&(0,Q.jsxs)(`label`,{className:`flex flex-col gap-1 text-body-medium-default text-[var(--content-secondary)]`,children:[`Safety backup`,(0,Q.jsx)(ve,{value:r,onChange:l,disabled:i,options:t.map(e=>({value:e.snapshot_name,label:`${ai(e)} - ${ii(e.created_at)}`}))})]}),n===`restore_backup`&&t.length===0&&!o&&(0,Q.jsx)(z,{tone:`error`,title:`Stable requires a safety backup`,children:`This Preview release is newer than the latest Stable release, so switching directly is blocked. Wait for a newer Stable release, or run Vellum Doctor if the safety backup is missing.`}),n===`standard_upgrade`&&(0,Q.jsx)(z,{tone:`error`,title:`Preview data may not survive this`,children:`Switching directly to the Stable image without restoring the safety backup may cause data loss or leave the assistant unusable if Preview data is incompatible with Stable.`})]})}),(0,Q.jsxs)(V.Footer,{children:[(0,Q.jsx)(s,{variant:`outlined`,disabled:i,onClick:d,children:`Cancel`}),(0,Q.jsx)(s,{variant:n===`standard_upgrade`?`danger`:`primary`,disabled:i||a||n===`standard_upgrade`&&!o,leftIcon:i?(0,Q.jsx)(A,{className:`animate-spin`}):(0,Q.jsx)(se,{}),onClick:u,children:i?`Switching...`:`Switch to Stable`})]})]})})}var mi=new Set([`exceeds_machine_tier`,`exceeds_storage_tier`]);function hi(e,t){return e&&typeof e==`object`&&!Array.isArray(e)&&`error`in e&&typeof e.error==`string`&&mi.has(e.error)?`That size isn't available on your plan.`:G(e,void 0,t)}function gi({assistant:e,healthz:t,healthzLoading:n,healthzPolling:r,refetch:i,refetchUntilResized:a}){let o=c(),l=lt(),d=f(Ft()),p=d.data,m=!e.is_local,h=p?.plan_id===`pro`,g=f({...At(),enabled:h}),_=e.machine_size||`small`,v=tn(g.data?.max_machine_tier??null),y=(0,Z.useMemo)(()=>an(v,_,(0,Q.jsx)(he,{tone:`positive`,children:`Current`})),[v,_]),b=g.data?.selected_storage_gib??null,[x,S]=(0,Z.useState)(!1),C=v.length>0?v[v.length-1]:null,[w,T]=(0,Z.useState)(null),E=w??C??_,[D,k]=(0,Z.useState)(!1),[j,M]=(0,Z.useState)(null),N=yt({onSuccess:(e,n)=>{H.success(`Resize started. Changes will apply shortly.`,{id:`assistant-resize`}),M(null),T(null),S(!1),n.body?.machine_size==null?i():a(t)},onError:e=>{M(hi(e,`Failed to resize assistant. Please try again.`))}});if(d.isError&&p==null)return(0,Q.jsx)(X,{id:`storage-resources`,title:`Compute & Resources`,subtitle:`Monitor resource usage and manage your assistant's compute profile.`,children:(0,Q.jsx)(z,{tone:`error`,children:`Could not load your subscription. Please try again.`})});let P=h&&v.includes(E)&&E!==_?E:null,F=h&&b!=null&&!0,ee=h&&v.length>0&&rn(_)<rn(v[v.length-1]),I=N.isPending||r,L=b==null?t?.disk?.totalMb??null:b*1024,R=t?.disk&&L!=null?{value:t.disk.usedMb,max:L,caption:`${dn(t.disk.usedMb)} of ${dn(L)}`}:null,te=t?.cpu?{value:t.cpu.currentPercent,max:100,caption:`${t.cpu.currentPercent.toFixed(1)}%`}:null,ne=t?.memory?{value:t.memory.currentMb,max:t.memory.maxMb,caption:`${dn(t.memory.currentMb)} of ${dn(t.memory.maxMb)}`}:null,re=l?null:(0,Q.jsx)(s,{variant:`ghost`,size:`compact`,onClick:()=>k(!0),children:`Resize`}),ie=m?h?F?(0,Q.jsxs)(`button`,{type:`button`,disabled:I,onClick:()=>S(!0),className:`flex items-center gap-1.5 rounded-lg border border-amber-500/30 bg-amber-500/15 px-3 py-1.5 text-body-small-default font-medium text-amber-400 transition-colors hover:bg-amber-500/25 disabled:opacity-50`,children:[(0,Q.jsx)(ue,{className:`h-3.5 w-3.5`}),`Increase Storage`]}):(0,Q.jsx)(s,{variant:`ghost`,size:`compact`,disabled:I,onClick:()=>S(!0),children:`Resize`}):re:null,ae=m?h?ee?(0,Q.jsxs)(`button`,{type:`button`,disabled:I,onClick:()=>S(!0),className:`flex items-center gap-1.5 rounded-lg border border-amber-500/30 bg-amber-500/15 px-3 py-1.5 text-body-small-default font-medium text-amber-400 transition-colors hover:bg-amber-500/25 disabled:opacity-50`,children:[(0,Q.jsx)(ue,{className:`h-3.5 w-3.5`}),`Increase Size`]}):(0,Q.jsx)(s,{variant:`ghost`,size:`compact`,disabled:I,onClick:()=>S(!0),children:`Resize`}):re:null;return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(X,{id:`storage-resources`,title:`Compute & Resources`,subtitle:`Monitor resource usage and manage your assistant's compute profile.`,compactAccessory:!0,accessory:(0,Q.jsx)(s,{variant:`ghost`,size:`compact`,iconOnly:n||r?(0,Q.jsx)(A,{className:`animate-spin`}):(0,Q.jsx)(se,{}),tooltip:r?`Applying resize…`:`Refresh resource metrics`,"aria-label":`Refresh resource metrics`,disabled:n||r,onClick:()=>void i()}),children:(0,Q.jsxs)(`div`,{className:`grid grid-cols-1 gap-2 sm:grid-cols-[1fr_2fr]`,children:[(0,Q.jsxs)(`div`,{className:`flex flex-col rounded-lg bg-[var(--surface-base)] p-3`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,Q.jsx)(`span`,{className:`text-[var(--content-tertiary)]`,children:(0,Q.jsx)(O,{className:`h-3.5 w-3.5`})}),(0,Q.jsx)(`span`,{className:`text-label-medium-default text-[var(--content-tertiary)]`,children:`Disk`})]}),ie]}),(0,Q.jsxs)(`div`,{className:`mt-auto flex flex-col gap-1 pt-3`,children:[(0,Q.jsx)(`span`,{className:`text-label-medium-default text-[var(--content-tertiary)]`,children:`Storage`}),R?(0,Q.jsx)(sn,{value:R.value,max:R.max,caption:R.caption}):n?(0,Q.jsx)(`div`,{className:`flex items-center gap-2 text-[var(--content-tertiary)]`,children:(0,Q.jsx)(A,{className:`h-3 w-3 animate-spin`})}):(0,Q.jsx)(`span`,{className:`text-label-medium-default text-[var(--content-tertiary)]`,children:`Unavailable`})]})]}),(0,Q.jsxs)(`div`,{className:`flex flex-col rounded-lg bg-[var(--surface-base)] p-3`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,Q.jsx)(`span`,{className:`text-[var(--content-tertiary)]`,children:(0,Q.jsx)(mn,{className:`h-3.5 w-3.5`})}),(0,Q.jsx)(`span`,{className:`text-label-medium-default text-[var(--content-tertiary)]`,children:`Machine`}),(0,Q.jsx)(he,{tone:`neutral`,children:nn[_]})]}),ae]}),(0,Q.jsxs)(`div`,{className:`mt-auto grid grid-cols-2 gap-3 pt-3`,children:[(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Q.jsx)(`span`,{className:`text-label-medium-default text-[var(--content-tertiary)]`,children:`CPU`}),te?(0,Q.jsx)(sn,{value:te.value,max:te.max,caption:te.caption}):n?(0,Q.jsx)(`div`,{className:`flex items-center gap-2 text-[var(--content-tertiary)]`,children:(0,Q.jsx)(A,{className:`h-3 w-3 animate-spin`})}):(0,Q.jsx)(`span`,{className:`text-label-medium-default text-[var(--content-tertiary)]`,children:`—`})]}),(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Q.jsx)(`span`,{className:`text-label-medium-default text-[var(--content-tertiary)]`,children:`Memory`}),ne?(0,Q.jsx)(sn,{value:ne.value,max:ne.max,caption:ne.caption}):n?(0,Q.jsx)(`div`,{className:`flex items-center gap-2 text-[var(--content-tertiary)]`,children:(0,Q.jsx)(A,{className:`h-3 w-3 animate-spin`})}):(0,Q.jsx)(`span`,{className:`text-label-medium-default text-[var(--content-tertiary)]`,children:`—`})]})]})]})]})}),(0,Q.jsx)(V.Root,{open:D,onOpenChange:e=>{e||k(!1)},children:(0,Q.jsxs)(V.Content,{size:`sm`,children:[(0,Q.jsxs)(V.Header,{children:[(0,Q.jsx)(V.Title,{children:`Upgrade your plan`}),(0,Q.jsx)(V.Description,{children:`Move to a higher plan for more power, more storage, and a larger credit bundle.`})]}),(0,Q.jsxs)(V.Footer,{children:[(0,Q.jsx)(s,{variant:`ghost`,onClick:()=>k(!1),children:`Cancel`}),(0,Q.jsx)(s,{onClick:()=>{k(!1),o(J.plans)},children:`Upgrade`})]})]})}),(0,Q.jsx)(V.Root,{open:x,onOpenChange:e=>{e||(S(!1),T(null),M(null))},children:(0,Q.jsxs)(V.Content,{size:`sm`,children:[(0,Q.jsxs)(V.Header,{children:[(0,Q.jsx)(V.Title,{icon:mn,children:`Resize Assistant`}),(0,Q.jsx)(V.Description,{children:`Resize your assistant's compute and storage. Your assistant will briefly restart.`})]}),(0,Q.jsx)(V.Body,{children:(0,Q.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[v.length===0?(0,Q.jsx)(z,{tone:`warning`,children:`No machine tier configured. Visit the community for help.`}):(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,Q.jsx)(`span`,{className:`text-label-medium-default text-[var(--content-secondary)]`,children:`Machine Size`}),(0,Q.jsx)(ve,{options:y,value:E,onChange:T,"aria-label":`Compute machine size`,"data-testid":`resize-machine-size`})]}),F?(0,Q.jsx)(z,{tone:`info`,children:`Storage will be expanded to ${b} GB.`}):(0,Q.jsx)(z,{tone:`neutral`,children:`Storage will not change.`}),j&&(0,Q.jsx)(z,{tone:`error`,children:j})]})}),(0,Q.jsxs)(V.Footer,{className:l?`justify-end`:`items-center justify-between`,children:[l?null:(0,Q.jsxs)(`span`,{className:`text-label-small-default text-[var(--content-tertiary)]`,children:[`Need more?`,` `,(0,Q.jsx)(u,{to:J.plans,className:`text-[var(--content-secondary)] underline decoration-[var(--border-element)] underline-offset-2 transition-colors hover:text-[var(--content-default)]`,onClick:()=>S(!1),children:`Upgrade plan`})]}),(0,Q.jsxs)(`div`,{className:`flex gap-2`,children:[(0,Q.jsx)(s,{variant:`ghost`,onClick:()=>{S(!1),T(null),M(null)},children:`Cancel`}),(0,Q.jsx)(s,{disabled:P==null&&!F||I,leftIcon:I?(0,Q.jsx)(A,{className:`animate-spin`}):void 0,onClick:()=>{M(null);let t={};P!=null&&(t.machine_size=P),F&&b!=null&&(t.storage_gib=b),N.mutate({path:{id:e.id},body:t})},children:j?`Retry`:`Apply`})]})]})]})})]})}function _i({assistantId:e}){let t=c(),[n,r]=(0,Z.useState)(!1),[i,a]=(0,Z.useState)(!1);return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(s,{variant:`dangerOutline`,onClick:()=>r(!0),className:`shrink-0`,children:`Retire Assistant`}),(0,Q.jsx)(Ut,{open:n,isPending:i,onConfirm:async()=>{a(!0);let n=await Ht(e);if(n.ok){r(!1),t(n.nextRoute,{replace:!0});return}H.error(n.error),a(!1),r(!1)},onCancel:()=>r(!1)})]})}function vi(){let e=N(),t=ee.useValue();return P(e)?(0,Q.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,Q.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-0.5`,children:[(0,Q.jsx)(`div`,{className:`text-body-medium-lighter text-[var(--content-default)]`,children:`Show tips`}),(0,Q.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Occasional tips in the sidebar that highlight features you haven't tried yet.`})]}),(0,Q.jsx)(ge,{checked:t,onChange:t=>{ee.save(t),t||L(`settings`,`dont_show_again`,e)},"aria-label":`Show tips`})]}):null}var yi=`UTC.Africa/Cairo.Africa/Johannesburg.Africa/Lagos.Africa/Nairobi.America/Anchorage.America/Argentina/Buenos_Aires.America/Bogota.America/Chicago.America/Denver.America/Halifax.America/Lima.America/Los_Angeles.America/Mexico_City.America/New_York.America/Phoenix.America/Santiago.America/Sao_Paulo.America/Toronto.America/Vancouver.Asia/Bangkok.Asia/Dubai.Asia/Hong_Kong.Asia/Jakarta.Asia/Jerusalem.Asia/Karachi.Asia/Kolkata.Asia/Kuala_Lumpur.Asia/Manila.Asia/Seoul.Asia/Shanghai.Asia/Singapore.Asia/Taipei.Asia/Tokyo.Australia/Melbourne.Australia/Perth.Australia/Sydney.Europe/Amsterdam.Europe/Athens.Europe/Berlin.Europe/Brussels.Europe/Dublin.Europe/Istanbul.Europe/Lisbon.Europe/London.Europe/Madrid.Europe/Moscow.Europe/Paris.Europe/Rome.Europe/Stockholm.Europe/Vienna.Europe/Warsaw.Europe/Zurich.Pacific/Auckland.Pacific/Honolulu`.split(`.`);function bi(){let e=Intl;if(typeof e.supportedValuesOf==`function`)try{let t=e.supportedValuesOf(`timeZone`);if(t.length>0)return[...t].sort()}catch{}return[...yi].sort()}function xi(e){let t=e.split(`/`),n=(t[t.length-1]??e).replace(/_/g,` `),r=t.length>1?(t[0]??``).replace(/_/g,` `):``,i=0,a=``;try{let t=new Intl.DateTimeFormat(`en-US`,{timeZone:e,timeZoneName:`shortOffset`}).formatToParts(new Date).find(e=>e.type===`timeZoneName`)?.value??`GMT`;a=t.startsWith(`GMT`)||t.startsWith(`UTC`)?t:`GMT ${t}`;let n=t.match(/([+-])(\d{1,2})(?::(\d{2}))?/);if(n){let e=n[1]===`-`?-1:1,t=parseInt(n[2]??`0`,10),r=parseInt(n[3]??`0`,10);i=e*(t*60+r)}}catch{return null}return{identifier:e,city:n,region:r,offsetLabel:a,offsetMinutes:i}}function Si(e){try{return new Intl.DateTimeFormat(`en-US`,{timeZone:e,hour:`numeric`,minute:`2-digit`,hour12:!0}).format(new Date)}catch{return``}}function Ci(e){if(!e)return`Not set`;try{let t=new Intl.DateTimeFormat(`en-US`,{timeZone:e,timeZoneName:`long`}).formatToParts(new Date).find(e=>e.type===`timeZoneName`)?.value;if(t)return t}catch{}return e.replace(/_/g,` `)}function wi({value:e,onChange:t}){let[n,r]=(0,Z.useState)(``),[i,a]=(0,Z.useState)(``),[o,s]=(0,Z.useState)(!1),c=(0,Z.useRef)(null),l=(0,Z.useRef)(null),u=(0,Z.useMemo)(()=>bi().map(e=>xi(e)).filter(e=>e!==null),[]);(0,Z.useEffect)(()=>{let e=window.setTimeout(()=>{a(n.trim().toLowerCase())},200);return()=>window.clearTimeout(e)},[n]),(0,Z.useEffect)(()=>{if(!o)return;let e=e=>{c.current&&!c.current.contains(e.target)&&s(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[o]);let d=(0,Z.useMemo)(()=>i?u.filter(e=>e.city.toLowerCase().includes(i)||e.region.toLowerCase().includes(i)||e.offsetLabel.toLowerCase().includes(i)||e.identifier.toLowerCase().includes(i)):u,[u,i]),f=(0,Z.useMemo)(()=>{if(!e)return``;let t=e.split(`/`);return(t[t.length-1]??e).replace(/_/g,` `)},[e]),p=e=>{t(e),r(``),s(!1),l.current?.blur()};return(0,Q.jsxs)(`div`,{ref:c,className:`space-y-3`,children:[(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1.5 md:flex-row md:items-center md:justify-between md:gap-4`,children:[(0,Q.jsx)(`span`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Closest city`}),(0,Q.jsxs)(`div`,{className:`relative w-full md:max-w-[280px]`,children:[(0,Q.jsx)(B,{ref:l,type:`text`,value:n,placeholder:f||`Search city or country...`,onChange:e=>{r(e.target.value),s(!0)},onFocus:()=>s(!0),onKeyDown:e=>{e.key===`Escape`&&(e.preventDefault(),r(``),s(!1),l.current?.blur())},fullWidth:!0}),o&&d.length>0&&(0,Q.jsx)(`div`,{className:`absolute left-0 right-0 top-full z-20 mt-1 max-h-[240px] overflow-y-auto rounded-md border border-[var(--border-base)] bg-[var(--surface-lift)] shadow-lg`,children:d.slice(0,200).map(t=>(0,Q.jsxs)(`button`,{type:`button`,onClick:()=>p(t.identifier),className:`flex w-full cursor-pointer items-center justify-between gap-3 px-3 py-2 text-left text-body-medium-lighter transition-colors ${t.identifier===e?`bg-[var(--surface-active)] text-[var(--content-default)]`:`text-[var(--content-default)] hover:bg-[var(--surface-active)]`}`,children:[(0,Q.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Q.jsx)(`div`,{className:`truncate text-body-medium-default`,children:t.city}),t.region&&(0,Q.jsx)(`div`,{className:`truncate text-body-small-default text-[var(--content-tertiary)]`,children:t.region})]}),(0,Q.jsxs)(`div`,{className:`flex shrink-0 flex-col items-end gap-0.5 text-body-small-default text-[var(--content-tertiary)]`,children:[(0,Q.jsx)(`span`,{children:Si(t.identifier)}),(0,Q.jsx)(`span`,{children:t.offsetLabel})]})]},t.identifier))})]})]}),(0,Q.jsx)(fn,{}),(0,Q.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,Q.jsx)(`span`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Time zone`}),(0,Q.jsx)(`span`,{className:`text-body-medium-lighter text-[var(--content-default)]`,children:Ci(e)})]})]})}function Ti(){let e=Ne.use.activeAssistantId(),[t,n]=(0,Z.useState)(()=>i(`timezone`,``)),o=(0,Z.useRef)(e);(0,Z.useEffect)(()=>{o.current=e},[e]);let s=(0,Z.useRef)(!1),c=(0,Z.useRef)(null),l=(0,Z.useRef)(()=>{}),u=e=>{if(s.current){c.current=e;return}let t=o.current;if(!t){c.current=null;return}s.current=!0,c.current=null,K.patch({url:`/v1/assistants/{assistant_id}/config`,path:{assistant_id:t},body:{ui:{userTimezone:e}},throwOnError:!0}).catch(e=>{a(e,{context:`settings-timezone-override`})}).finally(()=>{s.current=!1;let e=c.current;c.current=null,e!==null&&l.current(e)})};return(0,Z.useEffect)(()=>{l.current=u}),(0,Q.jsxs)(`section`,{className:`flex flex-col gap-2`,children:[(0,Q.jsx)(`h3`,{className:`text-title-small text-[var(--content-emphasised)]`,children:`Timezone`}),(0,Q.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:`Used when displaying times and scheduling reminders.`}),(0,Q.jsx)(`div`,{className:`mt-1`,children:(0,Q.jsx)(wi,{value:t,onChange:e=>{n(e),r(`timezone`,e),u(e)}})})]})}var Ei=[[`Mon`,0],[`Tue`,1],[`Wed`,2],[`Thu`,3],[`Fri`,4],[`Sat`,5],[`Sun`,6]];function Di(e){let[t,n]=e.split(`:`).map(Number),r=new Date,i=new Date(Date.UTC(r.getUTCFullYear(),r.getUTCMonth(),r.getUTCDate(),t,n));return`${i.getHours().toString().padStart(2,`0`)}:${i.getMinutes().toString().padStart(2,`0`)}`}function Oi(e){let[t,n]=e.split(`:`).map(Number),r=new Date,i=new Date(r.getFullYear(),r.getMonth(),r.getDate(),t,n);return`${i.getUTCHours().toString().padStart(2,`0`)}:${i.getUTCMinutes().toString().padStart(2,`0`)}`}function ki(){return Intl.DateTimeFormat(void 0,{timeZoneName:`short`}).formatToParts(new Date).find(e=>e.type===`timeZoneName`)?.value??``}function Ai(e){let t=e?.schedule?.window.start??`06:00`,n=e?.schedule?.window.end??`08:00`;return{enabled:e?.enabled??!0,timezone:`UTC`,frequency:e?.schedule?.frequency??`weekly`,daysOfWeek:e?.schedule?.days_of_week??[0],daysOfMonth:e?.schedule?.days_of_month??[],windowStart:Di(t),windowEnd:Di(n)}}function ji({assistantId:e}){let t=d(),{data:n,isLoading:r,isError:i}=f(wt({path:{id:e}})),a=(0,Z.useMemo)(()=>Ai(n),[n]),[o,c]=(0,Z.useState)(null),l=o??a,u=o!==null,m=(0,Z.useMemo)(()=>ki(),[]),[h,g]=(0,Z.useState)(null),_=h??l.daysOfMonth.join(`, `),v=p({mutationFn:async t=>{let{data:n}=await Ze({path:{id:e},body:t,throwOnError:!0});return n}}),y=e=>{c(t=>({...t??a,...e}))},b=e=>{y({daysOfWeek:l.daysOfWeek.includes(e)?l.daysOfWeek.filter(t=>t!==e):[...l.daysOfWeek,e].sort((e,t)=>e-t)})},x=e=>e.split(`,`).map(e=>parseInt(e.trim(),10)).filter(e=>!isNaN(e)&&e>=1&&e<=31);return r?(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,Q.jsx)(A,{className:`h-4 w-4 animate-spin`}),`Loading update window settings...`]}):i?(0,Q.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--system-negative-strong)]`,children:`Failed to load update window policy. Refresh the page to try again.`}):(0,Q.jsxs)(`div`,{className:`space-y-6`,children:[(0,Q.jsx)(ge,{checked:l.enabled,onChange:e=>y({enabled:e}),label:`Automatic updates`,helperText:`Update automatically during a configured time window`}),l.enabled&&(0,Q.jsxs)(`div`,{className:`space-y-5`,children:[(0,Q.jsxs)(`div`,{className:`space-y-2`,children:[(0,Q.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-secondary)]`,children:`Frequency`}),(0,Q.jsx)(`div`,{className:`max-w-[400px]`,children:(0,Q.jsx)(D,{ariaLabel:`Frequency`,value:l.frequency,onChange:e=>{e!==`monthly`&&g(null),y({frequency:e})},items:[{value:`daily`,label:`Daily`},{value:`weekly`,label:`Weekly`},{value:`monthly`,label:`Monthly`}]})})]}),l.frequency===`weekly`&&(0,Q.jsxs)(`div`,{className:`space-y-2`,children:[(0,Q.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-secondary)]`,children:`Day(s) of week`}),(0,Q.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:Ei.map(([e,t])=>(0,Q.jsx)(s,{variant:`outlined`,size:`compact`,active:l.daysOfWeek.includes(t),onClick:()=>b(t),children:e},t))})]}),l.frequency===`monthly`&&(0,Q.jsx)(B,{label:`Day(s) of month`,type:`text`,value:_,onChange:e=>g(e.target.value),onBlur:e=>{let t=x(e.target.value);y({daysOfMonth:t}),g(t.join(`, `))},placeholder:`e.g. 1, 15`,helperText:`Comma-separated day numbers (1–31)`,className:`w-48`}),(0,Q.jsxs)(`div`,{className:`space-y-2`,children:[(0,Q.jsxs)(`label`,{className:`block text-body-small-default text-[var(--content-secondary)]`,children:[`Update window`,m?` (${m})`:``]}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,Q.jsx)(B,{type:`time`,value:l.windowStart,onChange:e=>y({windowStart:e.target.value})}),(0,Q.jsx)(`span`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`to`}),(0,Q.jsx)(B,{type:`time`,value:l.windowEnd,onChange:e=>y({windowEnd:e.target.value})})]})]})]}),(0,Q.jsx)(s,{variant:`primary`,leftIcon:v.isPending?(0,Q.jsx)(A,{className:`animate-spin`}):void 0,onClick:async()=>{let n=l.frequency===`monthly`&&h!==null?x(h):l.daysOfMonth;try{await v.mutateAsync({enabled:l.enabled,timezone:`UTC`,schedule:{frequency:l.frequency,days_of_week:l.frequency===`weekly`?l.daysOfWeek:[],days_of_month:l.frequency===`monthly`?n:[],window:{start:Oi(l.windowStart),end:Oi(l.windowEnd)}}}),H.success(`Auto-update policy saved.`),c(null),g(null),t.invalidateQueries({queryKey:Dt({path:{id:e}})})}catch{H.error(`Failed to save policy. Please try again.`)}},disabled:v.isPending||!u,children:`Save policy`})]})}function Mi({assistantId:e,open:t,onClose:n}){return(0,Q.jsx)(V.Root,{open:t,onOpenChange:e=>{e||n()},children:(0,Q.jsxs)(V.Content,{size:`md`,children:[(0,Q.jsxs)(V.Header,{children:[(0,Q.jsx)(V.Title,{children:`Update Window`}),(0,Q.jsx)(V.Description,{children:`Configure when automatic updates are applied.`})]}),(0,Q.jsx)(V.Body,{children:(0,Q.jsx)(ji,{assistantId:e})})]})})}function Ni(e){if(typeof e==`object`&&e&&`code`in e){let t=e.code;if(typeof t==`string`)return t}}function Pi({open:e,onOpenChange:t}){let n=d(),[r,i]=(0,Z.useState)(null),[a,o]=(0,Z.useState)(``),[c,l]=(0,Z.useState)(null),u=(0,Z.useRef)(!1),f=(0,Z.useRef)(e),p=()=>n.invalidateQueries({queryKey:Ct()}),m=e=>{Qe({path:{id:e}}).catch(()=>void 0).finally(()=>void p())},h=Et({onSuccess:e=>{if(!f.current){m(e.factor_id);return}i(e)},onError:e=>{let n=Ni(e);n===`no_workos_account`?H.error(`Two-factor authentication is only available for Vellum platform accounts.`):n===`throttled`||n===`workos_rate_limited`?H.error(`Too many attempts. Try again in a minute.`):n===`factor_limit_reached`?H.error(`An authenticator app is already set up. Remove it before adding another.`):H.error(`Failed to start setup. Please try again.`),t(!1)}}),g=vt({onSuccess:e=>{e.valid?(u.current=!0,H.success(`Two-factor authentication is on.`),p(),t(!1)):l(`That code didn't match. Check your authenticator app and try again.`)},onError:e=>{let n=Ni(e);if(n===`challenge_already_verified`){u.current=!0,H.success(`Two-factor authentication is on.`),p(),t(!1);return}if(n===`challenge_expired`||n===`challenge_not_found`){r&&m(r.factor_id),i(null),o(``),l(`This setup session expired. Scan the new QR code and try again.`),h.mutate({});return}if(n===`throttled`||n===`workos_rate_limited`){l(`Too many attempts. Wait a minute and try again.`);return}l(`Couldn't verify the code. Wait a moment and try again.`)}});(0,Z.useEffect)(()=>{f.current=e,e&&(u.current=!1,i(null),o(``),l(null),h.mutate({}))},[e]);let _=e=>{!e&&g.isPending||(!e&&r&&!u.current&&m(r.factor_id),t(e))},v=()=>{r&&Zt(r.secret,{successMessage:`Setup key copied.`,errorMessage:`Couldn't copy the setup key.`})},y=()=>{!r||a.length!==6||g.isPending||(l(null),g.mutate({body:{challenge_id:r.challenge_id,code:a}}))};return(0,Q.jsx)(V.Root,{open:e,onOpenChange:_,children:(0,Q.jsxs)(V.Content,{size:`sm`,children:[(0,Q.jsxs)(V.Header,{children:[(0,Q.jsx)(V.Title,{children:`Set up authenticator app`}),(0,Q.jsx)(V.Description,{children:`Scan the QR code with an authenticator app such as Google Authenticator or 1Password, then enter the 6-digit code it shows.`})]}),(0,Q.jsx)(V.Body,{children:r===null?(0,Q.jsx)(`div`,{className:`flex items-center justify-center py-10`,children:(0,Q.jsx)(A,{className:`h-5 w-5 animate-spin text-[var(--content-tertiary)]`})}):(0,Q.jsxs)(`form`,{className:`flex flex-col items-center gap-4`,onSubmit:e=>{e.preventDefault(),y()},children:[(0,Q.jsx)(`img`,{src:r.qr_code,alt:`QR code for your authenticator app`,className:`h-44 w-44 rounded-lg bg-white p-2`}),(0,Q.jsxs)(`div`,{className:`flex w-full flex-col gap-1`,children:[(0,Q.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Can't scan it? Enter this setup key manually:`}),(0,Q.jsxs)(`button`,{type:`button`,onClick:v,className:`flex cursor-pointer items-center gap-2 self-start font-mono text-body-small-default text-[var(--content-default)] hover:text-[var(--content-emphasised)]`,children:[(0,Q.jsx)(`span`,{className:`break-all text-left`,children:r.secret}),(0,Q.jsx)(S,{className:`h-3.5 w-3.5 shrink-0`})]})]}),(0,Q.jsxs)(`div`,{className:`flex w-full flex-col gap-1`,children:[(0,Q.jsx)(`label`,{htmlFor:`totp-code`,className:`text-body-small-default text-[var(--content-tertiary)]`,children:`6-digit code`}),(0,Q.jsx)(B,{id:`totp-code`,inputMode:`numeric`,autoComplete:`one-time-code`,maxLength:6,placeholder:`123456`,value:a,onChange:e=>o(e.target.value.replace(/\D/g,``).slice(0,6))}),c&&(0,Q.jsx)(`p`,{role:`alert`,className:`text-body-small-default text-[var(--system-negative-strong)]`,children:c})]})]})}),(0,Q.jsxs)(V.Footer,{children:[(0,Q.jsx)(s,{variant:`outlined`,onClick:()=>_(!1),disabled:g.isPending,children:`Cancel`}),(0,Q.jsx)(s,{onClick:y,disabled:r===null||a.length!==6||g.isPending,children:g.isPending?`Verifying…`:`Verify`})]})]})})}function Fi(e){let t=new Date(e);return Number.isNaN(t.getTime())?``:t.toLocaleDateString(void 0,{month:`short`,day:`numeric`,year:`numeric`})}function Ii(){let e=d(),[t,n]=(0,Z.useState)(!1),[r,i]=(0,Z.useState)(null),a=f({...Mt()}),o=a.data??[],c=()=>e.invalidateQueries({queryKey:Ct()}),l=Pt({onSuccess:()=>{H.success(`Authenticator app removed.`),c()},onError:e=>{if(Ni(e)===`factor_not_found`){c();return}H.error(`Failed to remove the authenticator app. Please try again.`)}});return(0,Q.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[a.isPending?(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 text-[var(--content-tertiary)]`,children:[(0,Q.jsx)(A,{className:`h-4 w-4 animate-spin`}),(0,Q.jsx)(`span`,{className:`text-body-medium-default`,children:`Loading authenticator apps…`})]}):a.isError?(0,Q.jsxs)(z,{tone:`error`,children:[`Couldn't load your authenticator apps.`,` `,(0,Q.jsx)(`button`,{type:`button`,className:`cursor-pointer underline`,onClick:()=>void a.refetch(),children:`Try again`})]}):o.length===0?(0,Q.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:`No authenticator app is set up. Add one to require a one-time code at sign-in.`}):(0,Q.jsx)(`ul`,{className:`flex flex-col divide-y divide-[var(--border-base)]`,children:o.map(e=>(0,Q.jsxs)(`li`,{className:`flex items-center justify-between gap-3 py-3`,children:[(0,Q.jsxs)(`div`,{className:`flex min-w-0 items-center gap-3`,children:[(0,Q.jsx)(le,{className:`h-5 w-5 shrink-0 text-[var(--content-tertiary)]`}),(0,Q.jsxs)(`div`,{className:`min-w-0`,children:[(0,Q.jsx)(`div`,{className:`text-body-medium-default text-[var(--content-default)]`,children:`Authenticator app`}),(0,Q.jsxs)(`div`,{className:`truncate text-body-small-default text-[var(--content-tertiary)]`,children:[e.user,e.created_at?` · Added ${Fi(e.created_at)}`:``]})]})]}),(0,Q.jsx)(s,{variant:`dangerOutline`,onClick:()=>i(e),disabled:l.isPending,children:`Remove`})]},e.id))}),!a.isPending&&!a.isError&&o.length===0&&(0,Q.jsx)(s,{onClick:()=>n(!0),className:`self-start`,children:`Add authenticator app`}),(0,Q.jsx)(Pi,{open:t,onOpenChange:n}),(0,Q.jsx)(_e,{open:r!==null,title:`Remove authenticator app`,message:`Signing in will no longer ask for a code from this app. You can set up a new authenticator app at any time.`,confirmLabel:`Remove`,destructive:!0,onConfirm:()=>{r&&l.mutate({path:{id:r.id}}),i(null)},onCancel:()=>i(null)})]})}var $=class extends Error{code;constructor(e,t){super(t),this.name=`TeleportError`,this.code=e}},Li=`local`,Ri=`docker`,zi=`vellum`;function Bi(e){switch((e??``).toLowerCase()){case Li:return`local`;case Ri:return`docker`;case zi:return`managed`;default:return`other`}}function Vi(e){let t=Bi(e);return t===`managed`?`local`:t===`local`?`platform`:null}function Hi(e){switch(e){case`docker`:return`Move to Docker`;case`platform`:return`Move to Cloud (Platform)`;case`local`:return`Move to Local`}}function Ui(e){switch(e){case`docker`:return`Run your assistant in a Docker container on this Mac.`;case`platform`:return`Run your assistant in the cloud, managed by the Vellum platform.`;case`local`:return`Run your assistant locally on this Mac.`}}function Wi(e){if(!e||typeof e!=`object`)return null;let t=e;if(t.reason!==`version_mismatch`)return null;let n=t.bundle_compat,r=t.target_runtime_version;if(!n||typeof n!=`object`||typeof r!=`string`)return null;let i=n,a=i.min_runtime_version;if(typeof a!=`string`)return null;let o=typeof i.max_runtime_version==`string`?i.max_runtime_version:null;return`Cannot import: bundle requires runtime ${o?`${a}–${o}`:`${a}+`}, but this local runtime is ${r}. Update your local runtime before importing.`}async function Gi(e,t){let n=Number(e.headers.get(`Content-Length`)??0);if(!e.body||!t||n<=0){let n=await e.arrayBuffer();return t?.(1),n}let r=e.body.getReader(),i=[],a=0;for(;;){let{done:e,value:o}=await r.read();if(e)break;i.push(o),a+=o.length,t(a/n)}let o=new Uint8Array(a),s=0;for(let e of i)o.set(e,s),s+=e.length;return t(1),o.buffer}function Ki(e){let t=Ee(e);if(!t)throw new $(`local_assistant_not_found`,`Assistant ${e.assistantId} has no resolved local gateway.`);return`${window.location.origin}${t}`}async function qi(e,t){let n=await be(e.assistantId),r=await fetch(`${t}/auth/token`,{method:`POST`,headers:{Authorization:`Bearer ${n}`}});if(!r.ok)throw new $(`not_signed_in`,`Gateway token request failed (HTTP ${r.status}).`);let{token:i}=await r.json();return i}async function Ji(e,t){let n=Ki(e),r=await qi(e,n),i=await fetch(`${n}/v1/migrations/export`,{method:`POST`,headers:{Authorization:`Bearer ${r}`}});if(!i.ok)throw new $(`export_failed`,`Export failed (HTTP ${i.status}).`);return Gi(i,t)}async function Yi(e,t){let n=Ki(e),r=await qi(e,n),i=await fetch(`${n}/v1/migrations/import`,{method:`POST`,headers:{Authorization:`Bearer ${r}`},body:new Blob([t],{type:`application/octet-stream`})});if(!i.ok)throw new $(`import_failed`,`Import failed (HTTP ${i.status}).`);let a=await Qi(i);if(a&&a.success===!1)throw new $(`import_failed`,a.error??`Import reported failure`)}async function Xi(e,t){let{data:n,response:r}=await K.post({url:`/v1/assistants/{assistant_id}/migrations/export-to-gcs/`,path:{assistant_id:e},body:{upload_url:t},throwOnError:!1}),i=r?.status??0;if(!(r?.ok??!1)&&i!==202)throw new $(`export_failed`,`Export failed (HTTP ${i}).`);let a=n?.job_id;if(!a)throw new $(`export_failed`,`Export accepted but no job ID was returned.`);return a}async function Zi(e,t){let{data:n,response:r}=await K.get({url:`/v1/assistants/{assistant_id}/migrations/jobs/{job_id}`,path:{assistant_id:e,job_id:t},throwOnError:!1}),i=r?.status??0;if(i>=500)return`processing`;if(!(r?.ok??!1))throw new $(`export_job_failed`,`Job status check failed (HTTP ${i})`);let a=n;if(a?.status===`failed`)throw new $(`export_job_failed`,a.error??`Export job failed`);return a?.status??`processing`}async function Qi(e){try{return await e.json()}catch{return null}}var $i=new Set([500,502,503,504]),ea=3,ta=e=>new Promise(t=>setTimeout(t,e));async function na(e,t=new Set){for(let n=0;n<=ea;n++){let{response:r,data:i,error:a}=await e(),o=r?.status??0;if(n<ea&&$i.has(o)&&!t.has(o)){await ta(2**n*1e3);continue}return{status:o,data:i,error:a}}throw new $(`unknown`,`Unexpected retry loop exit`)}async function ra(e,t){let n={operation:`upload`};e&&(n.min_runtime_version=e,n.max_runtime_version=null),t&&(n.consumer=t);let{status:r,data:i}=await na(()=>K.post({url:`/v1/migrations/signed-url/`,body:n,throwOnError:!1}),new Set([404,503]));if(r===503||r===404)throw new $(`export_failed`,`Signed URL uploads are not available — the platform may not support this feature yet.`);if(r!==201)throw new $(`export_failed`,`Migration request failed (HTTP ${r}).`);let a=i;return{url:a.url,bundleKey:a.bundle_key,expiresAt:a.expires_at}}async function ia(e,t){let{status:n,data:r,error:i}=await na(()=>K.post({url:`/v1/migrations/signed-url/`,body:{operation:`download`,bundle_key:e,target_runtime_version:t},throwOnError:!1}),new Set([422]));if(n===422){let e=Wi(i);if(e)throw new $(`version_mismatch`,e)}if(n!==200&&n!==201)throw new $(`import_failed`,`Migration request failed (HTTP ${n}).`);return r.url}async function aa(e,t,n){for(let r=0;r<=ea;r++){let i=await oa(e,t,n);if(r<ea&&$i.has(i)){await ta(2**r*1e3),n?.(0);continue}if(i<200||i>=300)throw new $(`export_failed`,`Bundle upload failed (HTTP ${i}).`);return}}function oa(e,t,n){return new Promise((r,i)=>{let a=new XMLHttpRequest;a.open(`PUT`,e),a.setRequestHeader(`Content-Type`,`application/octet-stream`),a.timeout=36e5,n&&(a.upload.onprogress=e=>{e.lengthComputable&&n(e.loaded/e.total)}),a.onload=()=>{n?.(1),r(a.status)},a.onerror=()=>i(new $(`export_failed`,`Bundle upload failed.`)),a.ontimeout=()=>i(new $(`export_timed_out`,`Bundle upload timed out.`)),a.send(t)})}async function sa(e,t){for(let n=0;n<=ea;n++){let r=await fetch(e,{method:`GET`});if(n<ea&&$i.has(r.status)){await ta(2**n*1e3),t?.(0);continue}if(!r.ok)throw new $(`import_failed`,`Bundle download failed (HTTP ${r.status}).`);return Gi(r,t)}throw new $(`import_failed`,`Unexpected retry loop exit`)}async function ca(e){let{status:t,data:n,error:r}=await na(()=>K.post({url:`/v1/migrations/import-from-gcs/`,body:{bundle_key:e},throwOnError:!1}));return{status:t,body:n??r??null}}async function la(e){let{status:t,data:n}=await na(()=>K.get({url:`/v1/migrations/jobs/{job_id}/`,path:{job_id:e},throwOnError:!1}));if(t!==200)throw new $(`import_failed`,`Job status check failed (HTTP ${t})`);let r=n??{};return{status:typeof r.status==`string`?r.status:`unknown`,jobId:typeof r.job_id==`string`?r.job_id:null,error:typeof r.error==`string`?r.error:null}}var ua=5e3,da=36e5,fa=5*6e4,pa=30,ma=e=>new Promise(t=>setTimeout(t,e));function ha(){let e=c(),t=Oe(),n=Vi(t?.cloud),[r,i]=(0,Z.useState)({kind:`idle`}),[o,s]=(0,Z.useState)(!1),l=(0,Z.useRef)(null),u=(0,Z.useRef)(null),d=(0,Z.useCallback)(e=>{i({kind:`transferring`,step:e,progress:null})},[]),f=(0,Z.useCallback)(e=>{i(t=>t.kind===`transferring`?{...t,progress:e}:t)},[]),p=(0,Z.useCallback)(async()=>{if(!(!t||!n)){u.current={id:t.assistantId,kind:Bi(t.cloud)===`managed`?`managed`:`local`,createdFresh:!1};try{if(n===`platform`)await ga(t,d,f,l);else if(n===`local`)await _a(t,d,f,l);else throw new $(`unknown`,`Unsupported teleport destination.`);i({kind:`verifying`})}catch(e){i({kind:`failed`,error:`Teleport failed: ${e instanceof $||e instanceof Error?e.message:`Teleport failed.`}`}),a(e,{context:`teleport-execute`}),await ya(l.current,u.current,`teleport-execute-cleanup`),l.current=null}}},[t,n,d,f]),m=(0,Z.useCallback)(()=>s(!0),[]),h=(0,Z.useCallback)(()=>s(!1),[]),g=(0,Z.useCallback)(()=>{s(!1),p()},[p]),_=(0,Z.useCallback)(()=>{l.current=null,u.current=null,i({kind:`idle`})},[]);return{destination:n,phase:r,confirmOpen:o,requestTeleport:m,cancelConfirm:h,confirm:g,confirmAndSwitch:(0,Z.useCallback)(()=>{let t=l.current,n=u.current;t&&(async()=>{try{let e=Ke.getState();t.kind===`managed`?await e.connectPlatformAssistant(t.id):(await e.connectLocalAssistant(t.id),qe(t.id,{onError:e=>a(e,{context:`teleport-inject-platform-identity`})}))}catch(e){i({kind:`failed`,error:`Switch failed: ${e instanceof Error?e.message:`Failed to switch assistant.`}`}),a(e,{context:`teleport-confirm-switch`});return}n&&Ht(n.id).then(e=>{e.ok||a(Error(e.error),{context:`teleport-retire-source`})}),_(),e(J.assistant,{replace:!0})})()},[e,_]),cancelTeleport:(0,Z.useCallback)(()=>{let e=l.current,t=u.current;l.current=null,u.current=null,i({kind:`idle`}),ya(e,t,`teleport-cancel-retire-target`)},[]),reset:_}}async function ga(e,t,n,r){t(`Exporting assistant data...`);let i=await Ji(e,n);t(`Resolving organization...`);let a=await xa();t(`Checking for existing assistant...`);let o=(await rt({query:{hosting:`platform`},throwOnError:!1})).data?.results?.[0];if(o)throw new $(`existing_platform_assistant`,`You already have a platform assistant '${o.id}'. Retire it first, then retry the teleport.`);t(`Uploading data to cloud...`);let s=await ra(e.resources?.runtimeVersion);await aa(s.url,i,n),t(`Setting up cloud assistant...`);let c=await ot(void 0,`create`);if(!c.ok)throw new $(`import_failed`,`Failed to set up the cloud assistant.`);if(c.status===200)throw new $(`existing_platform_assistant`,`You already have a platform assistant '${c.data.id}'. Retire it first, then retry the teleport.`);let l=c.data.id;await ye({assistantId:l,name:c.data.name,cloud:`vellum`,runtimeUrl:xe(),hatchedAt:c.data.created??new Date().toISOString(),organizationId:a}),await Se(e.assistantId),r.current={id:l,kind:`managed`,createdFresh:!0},t(`Finalizing cloud assistant...`),await Sa(l),t(`Importing data to cloud...`);let u=await ca(s.bundleKey);if(u.status<200||u.status>=300){let e=u.body;throw new $(`import_failed`,e?.error??`Import failed (HTTP ${u.status}).`)}if(u.status===202){let e=u.body?.job_id;if(!e)throw new $(`import_failed`,`Import accepted but no job ID returned.`);await Ca(e)}else{let e=u.body;if(e&&e.success===!1)throw new $(`import_failed`,e.error??`Import reported failure.`)}}async function _a(e,t,n,r){t(`Preparing export...`);let i=await ra(await ba(e.assistantId),`runtime`);t(`Exporting cloud data...`);let a=await Xi(e.assistantId,i.url);await wa(e.assistantId,a),t(`Preparing local assistant...`);let{assistant:o,createdFresh:s}=await Ta();r.current={id:o.assistantId,kind:`local`,createdFresh:s};let c=await va(o,s);if(!c)throw new $(`local_assistant_not_found`,`Could not determine the local assistant's runtime version. Restart or upgrade the local assistant, then retry the teleport.`);t(`Preparing import...`);let l=await ia(i.bundleKey,c);t(`Downloading data...`);let u=await sa(l,n);t(`Importing data...`),await Da(o,u),await Se(e.assistantId)}async function va(e,t){if(e.resources?.runtimeVersion)return e.resources.runtimeVersion;if(t)return(await en())?.version??void 0}async function ya(e,t,n){if(e?.createdFresh){let t=await Ht(e.id);t.ok||a(Error(t.error),{context:n})}t&&await Se(t.id)}async function ba(e){let t=await at(e);return t.ok?t.data.version??void 0:void 0}async function xa(){let e=Je.getState();e.organizations.length===0&&await e.fetchOrganizations();let t=Je.getState().organizations,n=ze();if(n&&t.some(e=>e.id===n))return n;if(t.length===0)throw new $(`no_organizations`,`No organizations found for this account.`);if(t.length>1)throw new $(`multiple_organizations`,`Multiple organizations found — please select one in account settings first.`);let r=t[0].id;return Je.getState().setCurrentOrganizationId(r),r}async function Sa(e){let t=Date.now();for(;Date.now()-t<fa;){let{data:t,response:n}=await et({path:{id:e},throwOnError:!1});if(n?.ok&&t?.state===`active`)return;await ma(ua)}}async function Ca(e){let t=Date.now();for(;Date.now()-t<da;){await ma(ua);let t=await la(e);if(t.status===`complete`)return;if(t.status===`failed`)throw new $(`import_failed`,t.error??`Import job failed`)}throw new $(`import_failed`,`Import timed out after 60 minutes.`)}async function wa(e,t){let n=Date.now();for(;Date.now()-n<da;)if(await ma(ua),await Zi(e,t)===`complete`)return;throw new $(`export_timed_out`,`Export timed out.`)}async function Ta(){let e=await Ce(void 0,void 0);if(!e.ok)throw new $(`local_assistant_not_found`,e.error??`Could not create a local assistant.`);await we();let t=e.assistantId?Ae().find(t=>t.assistantId===e.assistantId):Ea();if(!t)throw new $(`local_assistant_not_found`,`Could not find or create a local assistant.`);return{assistant:t,createdFresh:!0}}function Ea(){return Ae().slice().sort((e,t)=>(t.hatchedAt??``).localeCompare(e.hatchedAt??``))[0]}async function Da(e,t){let n;for(let r=0;r<pa;r++)try{await Yi(e,t);return}catch(e){n=e,await ma(1e3)}throw n instanceof Error?n:new $(`import_failed`,`Import failed.`)}function Oa(){let e=ha(),{destination:t,phase:n}=e;return t?(0,Q.jsxs)(X,{title:`Teleport`,subtitle:`Move your assistant to a different hosting environment.`,children:[n.kind===`idle`&&(0,Q.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,Q.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:Ui(t)}),(0,Q.jsx)(s,{variant:`outlined`,className:`self-start`,onClick:e.requestTeleport,children:Hi(t)})]}),n.kind===`transferring`&&(0,Q.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[n.progress==null&&(0,Q.jsx)(A,{className:`h-4 w-4 animate-spin text-[var(--content-tertiary)]`}),(0,Q.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:n.step})]}),n.progress!=null&&(0,Q.jsx)(me,{value:n.progress,"aria-label":`Teleport progress`,className:`max-w-[240px]`})]}),n.kind===`verifying`&&(0,Q.jsx)(z,{tone:`success`,icon:(0,Q.jsx)(x,{className:`h-4 w-4`}),title:`Transfer complete — verify your new assistant is working.`,actions:(0,Q.jsxs)(`div`,{className:`flex gap-2`,children:[(0,Q.jsx)(s,{variant:`primary`,onClick:e.confirmAndSwitch,children:`Confirm & Switch`}),(0,Q.jsx)(s,{variant:`outlined`,onClick:e.cancelTeleport,children:`Cancel`})]})}),n.kind===`failed`&&(0,Q.jsx)(z,{tone:`error`,title:n.error,actions:(0,Q.jsx)(s,{variant:`outlined`,onClick:e.reset,children:`Try Again`})}),(0,Q.jsx)(_e,{open:e.confirmOpen,title:Hi(t),message:`Your data will be copied to the new environment. The current assistant will remain available until you confirm the new one works.`,confirmLabel:`Teleport`,onConfirm:e.confirm,onCancel:e.cancelConfirm})]}):null}function ka(){let{assistant:e,healthz:t,healthzLoading:n,healthzPolling:r,refetch:i,refetchUntilResized:a}=ln(),o=q.use.multiPlatformAssistant(),u=q.use.assistantSwitcher(),d=q.use.teleport(),f=q.use.accountMfa(),p=Bt.use.settingsSleepPolicy(),m=We(),h=dt(),g=u&&(Te()||m||Me()||h),_=c(),v=pt(),y=pt({platformHostedOnly:!0}),b=ht(),x=lt(),S=I({assistantId:e?.id??null,enabled:y===`full`&&b}),[C,w]=(0,Z.useState)(!1),[T,E]=(0,Z.useState)(!1),[D,O]=l();(0,Z.useEffect)(()=>{if(D.get(`preferences`)!==`open`)return;let e=new URLSearchParams(D);e.delete(`preferences`),O(e,{replace:!0}),E(!0)},[D,O]);let k=e?.is_local&&!Te()?null:e,A=Oe(),j=Te()&&!!e&&!!A&&ke(A),M=j,N=j&&!Me(),P=y===`full`&&!!k||N&&!!e;(0,Z.useEffect)(()=>{!e||window.location.hash!==`#storage-resources`||requestAnimationFrame(()=>{document.getElementById(`storage-resources`)?.scrollIntoView({block:`start`})})},[e]);let F=t?.version??e?.current_release_version??null,ee=()=>{let e=De();if(Me()&&!h&&e){let t=new URLSearchParams({register:st()}),n=je();n&&t.set(`name`,n);let r=new URL(e).origin;window.location.assign(`${r}${J.selectAssistant}?${t.toString()}`);return}_(`${J.selectAssistant}?noAutoSkip=1`)},L=(v===`full`||M)&&!!k||v===`disabled`&&!M,R=y!==`gated`;return(0,Q.jsxs)(`div`,{className:`space-y-4`,children:[S.status&&S.mode!==`inactive`&&(0,Q.jsx)(oe,{status:S.status,mode:S.mode,isAcknowledging:S.isAcknowledging,acknowledgeError:S.acknowledgeError?.message??null,onAcknowledge:()=>void S.acknowledge(),onReviewWorkspaceData:()=>void _(`${J.workspace}?sort=size`),onUpgradeStorage:y===`full`&&!x?()=>void _(J.plans):null}),(0,Q.jsxs)(kn,{assistant:b?k:null,showHandles:m&&v===`full`,children:[(0,Q.jsx)(Ti,{}),f&&v!==`gated`&&(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`div`,{className:`border-t border-[var(--border-subtle)]`}),(0,Q.jsxs)(`section`,{className:`flex flex-col gap-2`,children:[(0,Q.jsx)(`h3`,{className:`text-title-small text-[var(--content-emphasised)]`,children:`Two-Factor Authentication`}),(0,Q.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:`Require a code from an authenticator app when you sign in.`}),(0,Q.jsx)(`div`,{className:`mt-1`,children:v===`disabled`?(0,Q.jsx)(Y,{children:`Log in to the Vellum platform to manage two-factor authentication.`}):(0,Q.jsx)(Ii,{})})]})]})]}),(0,Q.jsx)(X,{title:`Version`,subtitle:`Manage your assistant's software version and updates.`,accessory:y===`full`&&k?(0,Q.jsx)(s,{variant:`outlined`,onClick:()=>w(!0),children:`Update Window`}):void 0,children:(0,Q.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[y===`full`&&k&&(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(zn,{assistantId:k.id,currentVersion:F,releaseChannel:k.release_channel,onUpgradeComplete:()=>{i()}}),(0,Q.jsx)(ci,{assistantId:k.id,onComplete:()=>{i()}})]}),N&&e&&(0,Q.jsx)(Bn,{assistantId:e.id,currentVersion:F,onUpgradeComplete:()=>{i()}}),!P&&e&&(0,Q.jsxs)(`div`,{className:`grid grid-cols-[140px_minmax(0,1fr)] gap-y-3`,children:[(0,Q.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:`Current`}),(0,Q.jsx)(un,{version:F,loading:n&&!e.current_release_version,assistantId:e.id??null})]}),y===`disabled`&&!N&&(0,Q.jsx)(Y,{children:`Log in to the Vellum platform to manage software updates.`})]})}),y===`full`&&k&&(0,Q.jsx)(Mi,{assistantId:k.id,open:C,onClose:()=>w(!1)}),y===`full`&&e&&(0,Q.jsx)(gi,{assistant:e,healthz:t,healthzLoading:n,healthzPolling:r,refetch:i,refetchUntilResized:a}),y===`disabled`&&(0,Q.jsx)(X,{id:`storage-resources`,title:`Compute & Resources`,subtitle:`Monitor resource usage and manage your assistant's compute profile.`,children:(0,Q.jsx)(Y,{children:`Log in to the Vellum platform to manage compute resources.`})}),(0,Q.jsx)(X,{title:`Preferences`,subtitle:`Customize how Vellum looks and behaves on this device.`,accessory:(0,Q.jsx)(s,{variant:`outlined`,onClick:()=>E(!0),children:`Customize`}),children:(0,Q.jsxs)(`div`,{className:`flex flex-col gap-5`,children:[(0,Q.jsx)(gn,{}),(0,Q.jsx)(vi,{})]})}),(0,Q.jsx)(ni,{open:T,onClose:()=>E(!1)}),d&&W()&&(0,Q.jsx)(Oa,{}),(0,Q.jsx)(Un,{}),(0,Q.jsx)(Br,{}),y===`full`&&k&&p&&(0,Q.jsx)(X,{title:`Sleep Policy`,subtitle:`Control how long this assistant stays awake when idle.`,children:(0,Q.jsx)(Fn,{assistantId:k.id})}),y===`disabled`&&p&&(0,Q.jsx)(X,{title:`Sleep Policy`,subtitle:`Control how long this assistant stays awake when idle.`,children:(0,Q.jsx)(Y,{children:`Log in to the Vellum platform to manage sleep policy.`})}),o&&!g&&(0,Q.jsx)(Mn,{}),g&&(0,Q.jsx)(X,{title:`Switch Assistant`,subtitle:`Choose which assistant this device is connected to.`,accessory:(0,Q.jsx)(s,{variant:`outlined`,onClick:ee,children:`Choose Assistant`})}),(L||R)&&(0,Q.jsx)(X,{variant:`danger`,title:`Danger Zone`,children:(0,Q.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[L&&(0,Q.jsxs)(`section`,{className:`flex flex-col gap-2`,children:[(0,Q.jsx)(`h3`,{className:`text-title-small text-[var(--content-emphasised)]`,children:`Retire Assistant`}),(0,Q.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:`Permanently retire this assistant and delete all associated data.`}),(0,Q.jsx)(`div`,{className:`mt-1`,children:(v===`full`||M)&&k?(0,Q.jsx)(_i,{assistantId:k.id}):(0,Q.jsx)(Y,{children:`Log in to the Vellum platform to retire this assistant.`})})]}),L&&R&&(0,Q.jsx)(`div`,{className:`border-t border-[var(--border-subtle)]`}),(0,Q.jsx)(Vn,{})]})})]})}export{ka as GeneralPage};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./queryOptions-CMSBCFOf.js";import{i as t,n,t as r}from"./api-errors-BQX1Pzcm.js";import{pn as i}from"./sdk.gen-CBPZ2IdN.js";function a(e){if(e?.kind===`ready`)return(e.tier?e.tier===`v2`||e.tier===`v3`:e.graphSupported)?e.concepts:void 0}var o=`Failed to load memory stats.`;function s(a){return e({queryKey:[`memory-stats`,a],staleTime:5*6e4,queryFn:async()=>{let{data:e,error:s,response:c}=await i({path:{assistant_id:a},throwOnError:!1});if(n(c,s,o),c.status===404)return{kind:`unsupported`};if(!c.ok)throw new r(c.status,t(s,c,o));return{kind:`ready`,concepts:e?.concepts??0,graphSupported:e?.graph_supported??!0,tier:e?.tier}}})}export{s as n,a as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./createLucideIcon-C1mdGPB9.js";var t=e(`globe`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20`,key:`13o1zl`}],[`path`,{d:`M2 12h20`,key:`9i4pu4`}]]);export{t};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/esm-C5lNGXsv.js","assets/preload-helper-Cv2QeVDK.js","assets/dist-Br0LBu8Y.js","assets/definitions-ur8Jy93p.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{t as e}from"./preload-helper-Cv2QeVDK.js";import{c as t,s as n}from"./platform-detection-C_TK32Dw.js";var r=async(e,t)=>{if(e)try{await t()}catch{}},i=t=>r(t,async()=>{let{Haptics:t,ImpactStyle:n}=await e(async()=>{let{Haptics:e,ImpactStyle:t}=await import(`./esm-C5lNGXsv.js`);return{Haptics:e,ImpactStyle:t}},__vite__mapDeps([0,1,2,3]));await t.impact({style:n.Light})}),a={light:()=>i(n()),medium:()=>r(n(),async()=>{let{Haptics:t,ImpactStyle:n}=await e(async()=>{let{Haptics:e,ImpactStyle:t}=await import(`./esm-C5lNGXsv.js`);return{Haptics:e,ImpactStyle:t}},__vite__mapDeps([0,1,2,3]));await t.impact({style:n.Medium})}),success:()=>r(n(),async()=>{let{Haptics:t,NotificationType:n}=await e(async()=>{let{Haptics:e,NotificationType:t}=await import(`./esm-C5lNGXsv.js`);return{Haptics:e,NotificationType:t}},__vite__mapDeps([0,1,2,3]));await t.notification({type:n.Success})}),error:()=>r(n(),async()=>{let{Haptics:t,NotificationType:n}=await e(async()=>{let{Haptics:e,NotificationType:t}=await import(`./esm-C5lNGXsv.js`);return{Haptics:e,NotificationType:t}},__vite__mapDeps([0,1,2,3]));await t.notification({type:n.Error})}),refreshThreshold:()=>i(t())};export{a as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./createLucideIcon-C1mdGPB9.js";var t=e(`hard-drive`,[[`path`,{d:`M10 16h.01`,key:`1bzywj`}],[`path`,{d:`M2.212 11.577a2 2 0 0 0-.212.896V18a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-5.527a2 2 0 0 0-.212-.896L18.55 5.11A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z`,key:`18tbho`}],[`path`,{d:`M21.946 12.013H2.054`,key:`zqlbp7`}],[`path`,{d:`M6 16h.01`,key:`1pmjb7`}]]);export{t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{o as t,t as n}from"./capture-error-Cw5vs0Ef.js";import{t as r}from"./react-BFJW0bSv.js";import{t as i}from"./button-BENY-yx_.js";import{d as a,h as o}from"./chunk-5KNZJZUH-BUqIilZr.js";import{n as s}from"./QueryClientProvider-CMu7CkQU.js";import{t as c}from"./jsx-runtime-D3ZM-ToX.js";import{t as l}from"./progress-bar-CrrJKpWm.js";import{C as ee,E as te,R as ne,S as re,_ as u,j as d,q as f,rt as ie}from"./local-mode-BfEgOekp.js";import{t as p}from"./is-electron-BHXrkjI3.js";import{n as m}from"./resolved-assistants-store-BFI9c7ip.js";import{i as ae}from"./api-errors-BQX1Pzcm.js";import{$ as oe,Z as h,dt as se,ft as ce,mt as le,n as g,pt as _,rt as ue,st as v}from"./auth-store-DkOiOQNx.js";import{a as de,o as fe,r as y}from"./api-JA_IDAQk.js";import{d as b}from"./routes-iipg2wkc.js";import{h as pe,o as me}from"./prefs-CrbuxuNI.js";import{a as x,t as S}from"./navigation-resolver-DrNVOkMu.js";import{t as C}from"./build-state-B0f3Jn2o.js";import{t as w}from"./avatar-bundled-components-BCCi2IoG.js";import{t as T}from"./avatar-svg-compositor-BOadabHt.js";import{t as E}from"./onboarding-layout-C534GRct.js";import{c as he,n as ge,t as _e}from"./provider-key-BZOH9D9k.js";import{a as ve,i as ye,n as be,r as D,t as O}from"./avatar-random-BiLhcs1I.js";import{t as k}from"./plugin-attribution-Cu32SvNF.js";var A=e(r(),1),j=c(),xe=800,M=null,N,P=null,F=null;function I(){M=null,N=void 0,P=null,F=null}var Se={initializing:0,provisioning:.33,connecting:.66,resizing:.85,ready:1},L=1500,Ce={initializing:`Getting things ready…`,provisioning:`Setting up your assistant…`,connecting:`Connecting to your assistant…`,resizing:`Setting up your machine…`,ready:`Ready`};function we(e,t,n){if(e>=t)return t;let r=1-(1-Math.min(1,n/L))**3;return e+(t-e)*r}function Te(){let e=x(C(),{kind:`hatch-gate`});return e.action===`redirect`?{kind:`redirect`,to:e.to}:e.action===`wait`?{kind:`wait`}:{kind:`proceed`}}function R(){let e=a(),r=s(),[c]=o(),x=c.get(`hosting`),C=c.get(`fail`),L=c.get(k),R=p(),z=u()&&x!==null&&x!==`vellum-cloud`,B=x===`vellum-cloud`,V=c.get(S)===`1`,H=g.use.sessionStatus(),Ee=z?v(H):H,[U]=(0,A.useState)(()=>F??=O(w)),De=(0,A.useMemo)(()=>{let e=T(w,U.bodyShape,U.eyeStyle,U.color,320);return`data:image/svg+xml;charset=utf-8,${encodeURIComponent(e)}`},[U]),[W,G]=(0,A.useState)(`initializing`),[Oe,K]=(0,A.useState)(null),[ke,q]=(0,A.useState)(!1),[Ae,je]=(0,A.useState)(!1),[Me,Ne]=(0,A.useState)(0),[Pe,J]=(0,A.useState)(0),[Fe,Ie]=(0,A.useState)(0),Y=(0,A.useRef)(W),X=(0,A.useRef)(0),Z=(0,A.useRef)(0),Q=(0,A.useRef)(0),$=(0,A.useCallback)(e=>{X.current=Q.current,Z.current=Date.now(),Y.current=e,G(e),Ie(e=>e+1)},[]);return(0,A.useEffect)(()=>{if(C!==null){K(`Simulated hatch failure (developer menu → Replay Hatch Failure).`);return}let i=Te();if(i.kind===`redirect`){e(i.to,{replace:!0});return}if(i.kind===`wait`)return;B&&u()&&(f(),ie(null)),q(!1),je(!1);let a=!1,o=null,s=null,c=null,l=Date.now(),p,v=!1,S=!1,w=me(),T=t=>{try{pe(``)}catch(e){n(e,{context:`onboarding_mark_completed`})}J(1),Q.current=1,X.current=1,G(`ready`),Y.current=`ready`,s=setTimeout(()=>{a||(I(),(async()=>{if(await ue.checkAssistant(),!a){if(z){let n=new URLSearchParams;x&&n.set(`hosting`,x),t&&n.set(`assistant`,t),L&&n.set(k,L);let r=n.toString();e(`${b.onboarding.research}${r?`?${r}`:``}`,{replace:!0});return}e(b.onboarding.research,{replace:!0})}})())},xe)},E=e=>ve(e,U,r),O=async()=>{if($(`provisioning`),!z){try{let e=await y(),t=_(e);if(!a&&e.ok&&t.kind===`active`){u()&&d(e.data.id,e.data.name,oe()??void 0),await j(e.data.id);return}t.kind===`auto_hatch`&&(S=!0)}catch{}if(a)return}if(z){try{let e=x===`docker`?`docker`:void 0;M&&N!==e&&I(),M||=(N=e,ne(void 0,e));let t=await M;if(a)return;if(!t.ok){I(),K(t.error??`Failed to hatch local assistant.`);return}await re(),t.assistantId&&h(t.assistantId),$(`connecting`);let r=!1;for(;!a&&!r;){if(await te()){f(),await ee(),r=!0;break}if(Date.now()-l>=3e5){I(),K(`Your assistant is taking longer than expected. Please try again.`);return}await new Promise(e=>{c=setTimeout(e,D)}),c=null}if(a)return;if(t.assistantId)try{await ge(t.assistantId)}catch(e){if(e instanceof _e){if(!a){let t=he(e.provider)?.displayName??e.provider;je(!0);let n=`Update your ${t} API key to continue.`;K(e.reason?`${e.reason} ${n}`:n)}return}n(e,{context:`onboarding_apply_provider_key`})}t.assistantId&&await g.getState().connectLocalAssistant(t.assistantId),t.assistantId&&(m.getState().upsertFromApi({id:t.assistantId,name:t.assistantId,status:`active`,is_local:!0,created:new Date().toISOString()}),h(t.assistantId),E(t.assistantId)),T(t.assistantId)}catch{if(I(),a)return;K(`Failed to hatch local assistant. Check CLI logs for details.`)}return}try{P||=fe(w?{version:w}:void 0);let e=await P;if(P=null,a)return;if(e.ok&&(p=e.data.id),v=e.ok&&e.status===201,!e.ok){if(t(`Onboarding hatch request failed`,{level:`warning`,extra:{status:e.status,error:e.error}}),ce(e.status,e.error)){K(se),q(!0);return}if(!le(e.status)){K(ae(e.error,void 0,`Failed to start your assistant. Please try again.`));return}}}catch(e){if(P=null,n(e,{context:`onboarding_hatch_assistant`}),a)return}A(0)},A=e=>{a||(o=setTimeout(F,e))},j=async e=>{for($(`connecting`);!a;){try{if((await de(e)).ok)break}catch{}if(Date.now()-l>=3e5){K(`Your assistant is taking longer than expected. Please try again.`);return}await new Promise(e=>{o=setTimeout(e,D)}),o=null}if(a)return;let n=await ye({assistantId:e,postCheckoutReturn:V,managedHatch:B,hatchStartMs:l,isCancelled:()=>a,onResizeWait:()=>$(`resizing`),registerTimer:e=>{o=e}});if(!a){if(n===`health_timeout`){t(`Onboarding hatch wait exceeded timeout`,{level:`warning`,extra:{maxWaitMs:be,stage:`post_resize_health`}}),K(`Your assistant is taking longer than expected. Please try again.`);return}T()}},F=async()=>{if(!a){if(Date.now()-l>=3e5){t(`Onboarding hatch wait exceeded timeout`,{level:`warning`,extra:{maxWaitMs:be}}),K(`Your assistant is taking longer than expected. Please try again.`);return}try{let e=await y(p);if(a||p&&!e.ok&&e.status===404&&(p=void 0,e=await y(),a))return;let t=_(e);if(t.kind===`active`){if(e.ok){let t=e.data.id;m.getState().upsertFromApi(e.data),h(t),(v||S)&&E(t),u()&&d(t,e.data.name,oe()??void 0),await j(t);return}T();return}if(t.kind===`error`){K(t.message);return}t.kind!==`auto_hatch`&&Y.current===`provisioning`&&$(`connecting`),A(D)}catch(e){if(n(e,{context:`onboarding_poll_assistant`}),a)return;A(D)}}};return O(),()=>{a=!0,o&&clearTimeout(o),s&&clearTimeout(s),c&&clearTimeout(c)}},[Me,C,U,B,V,Ee,e,r,$,z]),(0,A.useEffect)(()=>{Z.current===0&&(Z.current=Date.now());let e,t=()=>{let n=Date.now()-Z.current,r=Se[Y.current],i=we(X.current,r,n);Q.current=i,J(i),r-i>1e-6&&(e=requestAnimationFrame(t))};return e=requestAnimationFrame(t),()=>cancelAnimationFrame(e)},[Fe]),Oe?(0,j.jsx)(E,{children:(0,j.jsxs)(`div`,{role:`alert`,className:`mx-auto flex w-full max-w-xl flex-col items-center ${R?`min-h-full px-8 pt-21 pb-28 electron-prechat-type`:`min-h-screen justify-center px-6 pb-40`} text-center text-[var(--content-default)]`,children:[(0,j.jsx)(`h1`,{className:R?`text-title-large`:`text-3xl font-semibold tracking-tight`,children:Ae?`Your API key didn't work`:`Something went wrong`}),(0,j.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)] ${R?`mt-3.5`:`mt-4`}`,children:Oe}),ke&&(0,j.jsxs)(`div`,{className:`mt-6 flex w-full max-w-sm flex-col items-center gap-3`,children:[(0,j.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-default)]`,children:`Get started today with a local assistant`}),(0,j.jsx)(i,{asChild:!0,variant:`primary`,size:`regular`,fullWidth:!0,className:R?void 0:`h-11 text-base`,children:(0,j.jsx)(`a`,{href:`${window.location.origin}/download`,children:`Download the macOS app`})})]}),(0,j.jsx)(`img`,{src:De,alt:``,width:160,height:160,className:`${R?`my-auto py-8`:`my-16`} onboarding-avatar-failed`}),(0,j.jsxs)(`div`,{className:`flex w-full flex-col ${R?`gap-2.5 max-w-[280px]`:`gap-2 max-w-sm`}`,children:[Ae?(0,j.jsx)(i,{variant:`primary`,size:`regular`,fullWidth:!0,className:R?void 0:`h-11 text-base`,onClick:()=>void e(x?`${b.onboarding.apiKey}?hosting=${x}`:b.onboarding.apiKey,{replace:!0}),children:`Update API key`}):(0,j.jsx)(i,{variant:`primary`,size:`regular`,fullWidth:!0,className:R?void 0:`h-11 text-base`,onClick:()=>{X.current=0,Z.current=Date.now(),Y.current=`initializing`,Q.current=0,G(`initializing`),J(0),Ie(e=>e+1),K(null),q(!1),Ne(e=>e+1)},children:`Try again`}),(0,j.jsx)(i,{variant:`outlined`,size:`regular`,fullWidth:!0,className:R?void 0:`h-11 text-base`,onClick:()=>void e(z?b.onboarding.hosting:b.onboarding.privacy,{replace:!0}),children:`Back`})]})]})}):(0,j.jsx)(E,{children:(0,j.jsxs)(`div`,{className:`mx-auto flex w-full max-w-xl flex-col items-center ${R?`min-h-full px-8 pt-21 pb-28 electron-prechat-type`:`min-h-screen justify-center px-6 pb-40`} text-center text-[var(--content-default)]`,children:[(0,j.jsx)(`h1`,{className:R?`text-title-large`:`text-3xl font-semibold tracking-tight`,children:W===`ready`?`Your assistant is ready!`:`Waking up…`}),W!==`ready`&&(0,j.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)] ${R?`mt-3.5`:`mt-4`}`,children:`Hang tight — your assistant will have a few questions for you once it's up.`}),(0,j.jsx)(`img`,{src:De,alt:``,width:160,height:160,className:`${R?`my-auto py-8`:`my-16`} ${W===`ready`?`onboarding-avatar-awake`:`onboarding-avatar-pulse`}`}),(0,j.jsx)(l,{value:Pe,height:6,className:`w-full ${R?`max-w-[200px]`:`max-w-sm`}`,"aria-label":`Assistant startup progress`}),(0,j.jsx)(`p`,{className:`text-[var(--content-tertiary)] ${R?`mt-4 text-label-small-default`:`mt-3 text-body-small-default`}`,children:Ce[W]})]})})}export{R as HatchingScreen};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./createLucideIcon-C1mdGPB9.js";var t=e(`heart`,[[`path`,{d:`M2 9.5a5.5 5.5 0 0 1 9.591-3.676.56.56 0 0 0 .818 0A5.49 5.49 0 0 1 22 9.5c0 2.29-1.5 4-3 5.5l-5.492 5.313a2 2 0 0 1-3 .019L5 15c-1.5-1.5-3-3.2-3-5.5`,key:`mvr1a0`}]]);export{t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-BENY-yx_.js";import{d as r,u as i}from"./chunk-5KNZJZUH-BUqIilZr.js";import{n as a}from"./QueryClientProvider-CMu7CkQU.js";import{t as o}from"./useQuery-Bz-fbQ-m.js";import{t as s}from"./jsx-runtime-D3ZM-ToX.js";import{t as c}from"./typography-BeUa5Fd-.js";import{t as l}from"./arrow-left-BikDV6F2.js";import{t as u}from"./bell-aW0w-ROt.js";import{t as d}from"./calendar-CTyC1v1L.js";import{t as f}from"./chevron-right-DBGgpEiZ.js";import{a as p}from"./src-hNk11eS3.js";import{_ as m,a as h,c as g,d as _,f as v,g as y,h as b,i as x,l as S,m as C,n as w,o as T,r as E,s as D,t as O,u as k,v as A}from"./home-tool-permission-card-Bytpm6bE.js";import{t as j}from"./mail-CYjppw70.js";import{t as M}from"./rotate-ccw-Dcfo4EC8.js";import{t as N}from"./trash-2-BKXSi5Tj.js";import{t as P}from"./x-338EsJDP.js";import{t as F}from"./tag-DeMzQvCo.js";import{t as I}from"./skeleton-CJJwPIil.js";import{d as L}from"./routes-iipg2wkc.js";import{H as R,U as z}from"./react-query.gen-DxjuNs-5.js";import{t as B}from"./conversation-navigation-DbQqV_fs.js";import{n as V}from"./use-is-mobile-BP8UePsY.js";import{a as H}from"./conversation-cache-BmhpM_P6.js";import{t as U}from"./chat-layout-slots-store-N_sabTbs.js";import{a as W,i as G,n as ee}from"./conversation-queries-CMEwcap1.js";import{t as te}from"./use-active-assistant-id-BvHP5Ojg.js";import{s as ne}from"./schedules-kVuR00ra.js";import{i as K,r as q}from"./format-date-Bi9Bsv-w.js";import{t as re}from"./page-shell-CkfnwmIw.js";import{n as J,t as Y}from"./detail-drawer-AKY7keIJ.js";import{t as ie}from"./page-empty-state-DtjiuvvO.js";var X=e(t(),1),Z=s();function ae(e){return e.title?e.title:e.category?e.category.charAt(0).toUpperCase()+e.category.slice(1):`Notification`}function oe({item:e,isMobile:t,validConversationIds:r,onClose:i,onGoToThread:a,onUpdateStatus:o,onDismiss:s,onViewSchedule:u}){if(!e)return null;let f=e.detailPanel?.kind,p=ae(e),m=y(e.category),h=m.icon,g=e.status===`new`,_=e.status===`dismissed`,v=!!e.conversationId&&r.has(e.conversationId);return t?(0,Z.jsxs)(`div`,{className:`flex h-full flex-col bg-[var(--surface-overlay)]`,children:[(0,Z.jsxs)(`div`,{className:`relative flex shrink-0 items-center px-3 py-2`,children:[(0,Z.jsx)(n,{variant:`ghost`,iconOnly:(0,Z.jsx)(l,{}),onClick:i,"aria-label":`Back`,tooltip:`Back`}),(0,Z.jsx)(c,{variant:`body-medium-default`,className:`pointer-events-none absolute inset-x-0 text-center text-[var(--content-secondary)]`,children:`Details`}),(0,Z.jsxs)(`div`,{className:`ml-auto flex items-center gap-2`,children:[(0,Z.jsx)(n,{variant:`ghost`,iconOnly:g?(0,Z.jsx)(A,{}):(0,Z.jsx)(j,{}),onClick:()=>o(e.id,g?`seen`:`new`),"aria-label":g?`Mark as read`:`Mark as unread`,tooltip:g?`Mark as read`:`Mark as unread`}),_?(0,Z.jsx)(n,{variant:`ghost`,iconOnly:(0,Z.jsx)(M,{}),onClick:()=>o(e.id,`seen`),"aria-label":`Restore`,tooltip:`Restore`}):(0,Z.jsx)(n,{variant:`ghost`,iconOnly:(0,Z.jsx)(N,{}),onClick:()=>s(e.id),"aria-label":`Dismiss`,tooltip:`Dismiss`})]})]}),(0,Z.jsxs)(`div`,{className:`flex items-center gap-3 px-4 py-3`,children:[(0,Z.jsx)(`span`,{className:`flex shrink-0 items-center justify-center rounded-full`,style:{width:40,height:40,backgroundColor:m.weak},"aria-hidden":`true`,children:(0,Z.jsx)(h,{width:18,height:18,style:{color:m.strong}})}),(0,Z.jsx)(c,{variant:`title-small`,className:`min-w-0 text-[var(--content-default)]`,children:p}),(0,Z.jsx)(F,{tone:`neutral`,className:`shrink-0`,title:q(e.timestamp),children:K(e.timestamp)})]}),(0,Z.jsx)(`div`,{className:`mx-4 border-b border-[var(--border-disabled)]`}),(0,Z.jsx)(`div`,{className:`flex-1 overflow-y-auto p-4`,children:f===`toolPermission`?(0,Z.jsx)(O,{item:e}):(0,Z.jsx)(w,{item:e})}),v||u?(0,Z.jsxs)(`div`,{className:`flex shrink-0 flex-col gap-2 px-4 pb-4 pt-2`,children:[u?(0,Z.jsx)(n,{variant:`outlined`,fullWidth:!0,leftIcon:(0,Z.jsx)(d,{className:`size-4`}),onClick:u,children:`View schedule`}):null,v?(0,Z.jsx)(n,{variant:`primary`,fullWidth:!0,onClick:()=>a(e.conversationId),children:`Go to Conversation`}):null]}):null]}):(0,Z.jsxs)(`div`,{className:`flex h-full flex-col rounded-[var(--radius-xl)] border border-[var(--border-base)] bg-[var(--surface-overlay)]`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center gap-[var(--app-spacing-sm)] border-b border-[var(--border-base)] p-[var(--app-spacing-lg)]`,children:[(0,Z.jsx)(`span`,{className:`flex shrink-0 items-center justify-center rounded-full`,style:{width:28,height:28,backgroundColor:m.weak},"aria-hidden":`true`,children:(0,Z.jsx)(h,{width:14,height:14,style:{color:m.strong}})}),(0,Z.jsx)(c,{variant:`title-small`,className:`min-w-0 flex-1 truncate text-[var(--content-default)]`,children:p}),v?(0,Z.jsx)(n,{variant:`outlined`,onClick:()=>a(e.conversationId),children:`Go to Convo`}):null,(0,Z.jsx)(n,{variant:`outlined`,iconOnly:(0,Z.jsx)(P,{}),onClick:i,"aria-label":`Close detail panel`,tooltip:`Close`})]}),(0,Z.jsxs)(`div`,{className:`flex-1 overflow-y-auto p-[var(--app-spacing-lg)]`,children:[f===`toolPermission`?(0,Z.jsx)(O,{item:e}):(0,Z.jsx)(w,{item:e}),(0,Z.jsx)(`div`,{className:`mt-[var(--app-spacing-md)]`,children:(0,Z.jsx)(F,{tone:`neutral`,title:q(e.timestamp),children:K(e.timestamp)})})]}),(0,Z.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between gap-[var(--app-spacing-sm)] border-t border-[var(--border-base)] p-[var(--app-spacing-lg)]`,children:[(0,Z.jsx)(`div`,{children:u?(0,Z.jsx)(n,{variant:`outlined`,leftIcon:(0,Z.jsx)(d,{className:`size-4`}),onClick:u,children:`View schedule`}):null}),(0,Z.jsx)(`div`,{className:`flex items-center gap-[var(--app-spacing-sm)]`,children:_?(0,Z.jsx)(n,{variant:`primary`,onClick:()=>o(e.id,`seen`),children:`Restore`}):(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(n,{variant:`outlined`,onClick:()=>o(e.id,g?`seen`:`new`),children:g?`Mark as read`:`Mark as unread`}),(0,Z.jsx)(n,{variant:`primary`,onClick:()=>s(e.id),children:`Dismiss`})]})})]})]})}var se={today:`Today`,yesterday:`Yesterday`,older:`Older`},ce=10080*60*1e3;function Q(e,t){return e.status===`new`||e.status===`dismissed`?!1:t-new Date(e.createdAt).getTime()>ce}function $({items:e,selectedItemId:t,validConversationIds:n,onSelectItem:r,onDismissItem:i,onRestoreItem:a,onToggleRead:o,onGoToThread:s,archivedOpen:l,onArchivedOpenChange:d,dismissedOpen:m,onDismissedOpenChange:h}){let[g,v]=(0,X.useState)(null),[y]=(0,X.useState)(()=>Date.now()),w=T(e.filter(e=>e.status!==`dismissed`)),E=w.filter(e=>!Q(e,y)),O=C(w.filter(e=>Q(e,y))),k=S(E),A=g&&k.includes(g)?g:null;g!==A&&v(A);let j=_(C(D(E,A))),M=e.filter(e=>e.status===`dismissed`).sort((e,t)=>new Date(t.createdAt).getTime()-new Date(e.createdAt).getTime());return(0,Z.jsxs)(`div`,{className:`flex flex-col gap-[var(--app-spacing-lg)]`,children:[(0,Z.jsx)(b,{categories:k,activeFilter:A,onFilterChange:v}),j.size===0?A?(0,Z.jsx)(c,{variant:`body-medium-lighter`,className:`py-[var(--app-spacing-xl)] text-center text-[var(--content-disabled)]`,children:`No items match the selected filter.`}):(0,Z.jsx)(ie,{icon:u,title:`No notifications yet`,description:`Updates and activity from your assistant will appear here.`}):[...j.entries()].map(([e,a])=>(0,Z.jsxs)(`section`,{className:`flex flex-col gap-[var(--app-spacing-md)]`,children:[(0,Z.jsx)(c,{variant:`body-small-default`,as:`h3`,className:`text-[var(--content-tertiary)]`,children:se[e]}),(0,Z.jsx)(`div`,{className:`flex flex-col gap-[var(--app-spacing-sm)]`,children:a.map(e=>(0,Z.jsx)(x,{item:e,isActive:e.id===t,validConversationIds:n,onSelect:r,onDismiss:i,onToggleRead:o,onGoToThread:s},e.id))})]},e)),O.length>0&&(0,Z.jsx)(p.Root,{type:`single`,collapsible:!0,value:l?`archived-read`:``,onValueChange:e=>d?.(e===`archived-read`),children:(0,Z.jsxs)(p.Item,{value:`archived-read`,children:[(0,Z.jsxs)(p.Trigger,{className:`group gap-[var(--app-spacing-xs)] text-body-small-default text-[var(--content-tertiary)]`,children:[(0,Z.jsx)(f,{size:14,"aria-hidden":!0,className:`shrink-0 transition-transform group-data-[state=open]:rotate-90`}),(0,Z.jsxs)(`span`,{children:[`Earlier (`,O.length,`)`]})]}),(0,Z.jsx)(p.Content,{children:(0,Z.jsx)(`div`,{className:`flex flex-col gap-[var(--app-spacing-sm)] pt-[var(--app-spacing-sm)]`,children:O.map(e=>(0,Z.jsx)(x,{item:e,isActive:e.id===t,validConversationIds:n,onSelect:r,onDismiss:i,onToggleRead:o,onGoToThread:s},e.id))})})]})}),M.length>0&&(0,Z.jsx)(p.Root,{type:`single`,collapsible:!0,value:m?`dismissed`:``,onValueChange:e=>h?.(e===`dismissed`),children:(0,Z.jsxs)(p.Item,{value:`dismissed`,children:[(0,Z.jsxs)(p.Trigger,{className:`group gap-[var(--app-spacing-xs)] text-body-small-default text-[var(--content-tertiary)]`,children:[(0,Z.jsx)(f,{size:14,"aria-hidden":!0,className:`shrink-0 transition-transform group-data-[state=open]:rotate-90`}),(0,Z.jsxs)(`span`,{children:[`Dismissed (`,M.length,`)`]})]}),(0,Z.jsx)(p.Content,{children:(0,Z.jsx)(`div`,{className:`flex flex-col gap-[var(--app-spacing-sm)] pt-[var(--app-spacing-sm)]`,children:M.map(e=>(0,Z.jsx)(x,{item:e,onSelect:r,onDismiss:a,trailingAction:`restore`},e.id))})})]})})]})}function le(){return(0,Z.jsx)(`h1`,{className:`shrink-0 text-title-large text-[var(--content-default)]`,children:`Activity`})}function ue(e){let t=a(),n=(0,X.useMemo)(()=>z({path:{assistant_id:e??``}}),[e]),r=o({...R({path:{assistant_id:e}}),enabled:!!e,staleTime:6e4}),i=(0,X.useCallback)(()=>{e&&t.invalidateQueries({queryKey:n})},[e,t,n]);return{...r,invalidate:i}}function de(){return(0,Z.jsxs)(`div`,{className:`flex flex-col gap-[var(--app-spacing-xl)]`,children:[(0,Z.jsx)(I,{className:`h-7 w-64 rounded-md`}),(0,Z.jsx)(`div`,{className:`flex flex-col gap-[var(--app-spacing-sm)]`,children:Array.from({length:4},(e,t)=>(0,Z.jsx)(I,{className:`h-16 rounded-md`},t))})]})}function fe({assistantId:e,validConversationIds:t,onOpenConversation:r,onViewSchedule:i,initialFeedItemId:a,navigationKey:s,onInitialFeedItemConsumed:c}){let l=V(),u=E(e);ue(e);let{data:d}=o(ne(e)),[f,p]=(0,X.useState)(null),[_,y]=(0,X.useState)(!1),[b,x]=(0,X.useState)(!1),S=(0,X.useCallback)(e=>{e.status===`new`?(p({...e,status:`seen`}),u.updateStatus.mutate({itemId:e.id,status:`seen`})):p(e)},[u.updateStatus]),C=(0,X.useCallback)(()=>{p(null)},[]),w=(0,X.useCallback)(e=>{u.updateStatus.mutate({itemId:e,status:`dismissed`}),f?.id===e&&p(null)},[u.updateStatus,f?.id]),T=(0,X.useCallback)(e=>{u.updateStatus.mutate({itemId:e,status:`seen`}),p(t=>t?.id===e?{...t,status:`seen`}:t)},[u.updateStatus]),D=(0,X.useCallback)((e,t)=>{u.updateStatus.mutate({itemId:e,status:t}),p(n=>n?.id===e?{...n,status:t}:n)},[u.updateStatus]),O=(0,X.useCallback)(e=>{p(null),r(e)},[r]),A=u.data?.items??[],[j,M]=(0,X.useState)(null);(0,X.useEffect)(()=>{if(!a||s===j||u.isLoading)return;M(s??null);let e=A.find(e=>e.id===a);e&&e.status!==`dismissed`&&S(e),c?.()},[a,s,j,u.isLoading,A,S,c]);let N=k(A),P=N.filter(e=>e.status===`new`).length,F=N.length,I=m(),L=(0,X.useCallback)(()=>{u.markAll.mutate(v(N))},[u.markAll,N]),R=(0,X.useCallback)(()=>{u.markAll.mutate(h(N)),p(null)},[u.markAll,N]),z=g(f),B=z!=null&&(d??[]).some(e=>e.id===z),H=f?(0,Z.jsx)(oe,{item:f,isMobile:l,validConversationIds:t,onClose:C,onGoToThread:O,onUpdateStatus:D,onDismiss:w,onViewSchedule:B?()=>i(z):void 0}):null,U=(0,Z.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-[var(--app-spacing-lg)] overflow-y-auto`,children:[u.isError?(0,Z.jsxs)(`div`,{role:`alert`,className:`rounded-md border border-[var(--system-negative-weak)] bg-[var(--system-negative-weak)] px-[var(--app-spacing-lg)] py-[var(--app-spacing-md)] text-[var(--system-negative-strong)]`,children:[`Couldn't load home feed`,u.error instanceof Error?`: ${u.error.message}`:`.`]}):null,I&&(P>0||F>0)&&(0,Z.jsxs)(`div`,{className:`flex items-center justify-end gap-[var(--app-spacing-sm)]`,children:[P>0&&(0,Z.jsx)(n,{variant:`ghost`,size:`compact`,onClick:L,disabled:u.markAll.isPending,children:`Mark all as read`}),F>0&&(0,Z.jsx)(n,{variant:`ghost`,size:`compact`,onClick:R,disabled:u.markAll.isPending,children:`Clear all`})]}),(0,Z.jsx)($,{items:A,selectedItemId:f?.id,validConversationIds:t,onSelectItem:S,onDismissItem:w,onRestoreItem:T,onToggleRead:D,onGoToThread:O,archivedOpen:_,onArchivedOpenChange:y,dismissedOpen:b,onDismissedOpenChange:x})]}),W=H&&!l?(0,Z.jsx)(Y,{storageKey:`homeDetailDrawerWidth`,detailKey:f?.id,section:U,detail:H}):U,G=u.isLoading?(0,Z.jsx)(de,{}):(0,Z.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-[var(--app-spacing-xl)]`,children:[l?null:(0,Z.jsx)(le,{}),W]});return H&&l?(0,Z.jsx)(J,{children:H}):(0,Z.jsx)(re,{children:G})}function pe(){let e=r(),t=i(),n=te(),a=t.state?.feedItemId??null,o=(0,X.useCallback)(()=>{e(t.pathname+t.search,{replace:!0})},[e,t.pathname,t.search]),s=U.use.setTopBarCenter(),l=V(),{conversations:u}=G(n),{conversations:d}=ee(n,!0),{conversations:f}=W(n,!0),p=(0,X.useMemo)(()=>new Set(H(u,d,f).map(e=>e.conversationId)),[u,d,f]);return(0,X.useEffect)(()=>(s(l?(0,Z.jsx)(c,{variant:`body-medium-default`,className:`text-[var(--content-secondary)]`,children:`Activity`}):null),()=>{s(null)}),[l,s]),(0,Z.jsx)(fe,{assistantId:n,validConversationIds:p,initialFeedItemId:a,navigationKey:t.key,onInitialFeedItemConsumed:o,onOpenConversation:t=>B(e,t),onViewSchedule:t=>e(L.schedules.detail(t))})}export{pe as HomePageRoute};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{n}from"./button-BENY-yx_.js";import{n as r}from"./QueryClientProvider-CMu7CkQU.js";import{t as i}from"./useQuery-Bz-fbQ-m.js";import{t as a}from"./useMutation-CXGTrp4W.js";import{t as o}from"./jsx-runtime-D3ZM-ToX.js";import{t as s}from"./cn-DFWryB3N.js";import{t as c}from"./typography-BeUa5Fd-.js";import{t as l}from"./createLucideIcon-C1mdGPB9.js";import{t as u}from"./bell-aW0w-ROt.js";import{t as d}from"./clock-B8umTTHk.js";import{h as f,w as p,x as m,y as h,z as g}from"./src-hNk11eS3.js";import{t as _}from"./list-O_53kvwx.js";import{t as v}from"./mail-CYjppw70.js";import{t as ee}from"./message-square-BjBDqFUX.js";import{t as te}from"./rotate-ccw-Dcfo4EC8.js";import{t as ne}from"./settings-751LDGs_.js";import{t as re}from"./shield-check-zaoUwOKj.js";import{t as ie}from"./trash-2-BKXSi5Tj.js";import{t as ae}from"./tag-DeMzQvCo.js";import{i as oe}from"./utils-CVoSWh7U.js";import{Bt as se,Lt as y,Rt as b,zt as ce}from"./sdk.gen-CBPZ2IdN.js";import{B as le,V as x}from"./react-query.gen-DxjuNs-5.js";import{t as S}from"./use-bus-subscription-0lId9jya.js";import{t as ue}from"./native-anchor-CpFd0dIc.js";import{i as de}from"./format-date-Bi9Bsv-w.js";var C=l(`mail-open`,[[`path`,{d:`M21.2 8.4c.5.38.8.97.8 1.6v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V10a2 2 0 0 1 .8-1.6l8-6a2 2 0 0 1 2.4 0l8 6Z`,key:`1jhwl8`}],[`path`,{d:`m22 10-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 10`,key:`1qfld7`}]]),fe=`0.10.5`;function pe(){return oe(fe)}var w=e(t(),1),T=o(),E={security:{icon:re,strong:`var(--feed-nudge-strong)`,weak:`var(--feed-nudge-weak)`},email:{icon:v,strong:`var(--feed-digest-strong)`,weak:`var(--feed-digest-weak)`},scheduling:{icon:d,strong:`var(--feed-thread-strong)`,weak:`var(--feed-thread-weak)`},background:{icon:ne,strong:`var(--system-info-strong)`,weak:`var(--system-info-weak)`},system:{icon:u,strong:`var(--feed-digest-strong)`,weak:`var(--feed-digest-weak)`}};function D(e){return e&&E[e]?E[e]:E.system}var me=[`security`,`email`,`scheduling`,`background`,`system`],O=`all`;function k({categories:e,activeFilter:t,onFilterChange:n}){let r=me.filter(t=>e.includes(t));if(r.length<=1)return null;let i=[{value:O,label:`All`,icon:(0,T.jsx)(_,{className:`h-4 w-4`})},...r.map(e=>{let t=E[e].icon;return{value:e,label:e.charAt(0).toUpperCase()+e.slice(1),icon:(0,T.jsx)(t,{className:`h-4 w-4`})}})];return(0,T.jsx)(g,{ariaLabel:`Filter notifications`,value:t??O,onChange:e=>n(e===O?null:e),items:i,className:`self-start !w-auto [&>*]:!flex-none`})}var A=`system`;function j({category:e}){let t=D(e),n=e??A;return(0,T.jsx)(ae,{className:`bg-[var(--feed-chip-weak)] uppercase tracking-wide leading-none`,style:{"--feed-chip-weak":t.weak},children:n.charAt(0).toUpperCase()+n.slice(1)})}var M=12,N=280,P=4096,F=P*4,I=`.,;:!?-…`,L=/(?:…|\.{3,})$/,R=new Set([`break`,`delete`,`emphasis`,`footnoteReference`,`image`,`imageReference`,`inlineCode`,`link`,`linkReference`,`strong`,`text`]),z=m().use(p).use(f);function B(e){return I.includes(e)}function he(e){let t=e.length;for(;t>0&&B(e[t-1]);)--t;return e.slice(0,t)}function ge(e){if(e.length<=P)return V(e);let t=V(e.slice(0,P));return t.length>0||e.trim().length===0?t:V(e.slice(0,F))}function V(e){return H(z.parse(e)).replace(/\s+/g,` `).trim()}function H(e){switch(e.type){case`code`:case`html`:case`thematicBreak`:case`yaml`:return``;case`inlineCode`:case`text`:return e.value??``;case`break`:return` `;case`delete`:case`emphasis`:case`link`:case`linkReference`:case`strong`:return U(e);case`image`:case`imageReference`:{let t=e.alt??``;return t.trim().length===0?``:t}default:return e.children===void 0?e.value??``:U(e)}}function U(e){let t=``;for(let n of e.children??[]){let e=H(n);e.length!==0&&(t.length>0&&!R.has(n.type)&&(t+=` `),t+=e)}return t}function W(e){let t=[],n=!1;for(let r=0;r<e.length;r+=1){let i=e[r],a=r+1;if(/\s/.test(i)){if(n||t.length===0)continue;n=!0,t.push({char:` `,end:a});continue}n=!1;let o=i.toLowerCase();t.push({char:o.length===1?o:i,end:a})}return t}function G(e){return he(W(e).map(e=>e.char).join(``).trimEnd()).trimEnd()}function _e(e,t){if(t<=0)return e;let n=W(e);return t>n.length?``:e.slice(n[t-1].end)}function ve(e){let t=0;for(;t<e.length;){let n=e[t];if(!/\s/.test(n)&&!B(n))break;t+=1}return e.slice(t)}function K(e){return e!==void 0&&/[\p{L}\p{M}\p{N}]/u.test(e)}function q(e,t){return e.startsWith(t)?!K(e[t.length]):!1}function J(e,t){let n=t;for(;n>0&&K(e[n-1]);)--n;return n}function ye(e){if(e.length<=N)return e;let t=e.slice(0,N),n=K(e[N])?J(t,t.length):t.length,r=t.slice(0,n).trimEnd();return r.length===0?t:r}function Y(e){return ye(ge(e))}function be(e,t){let n=Y(t);if(n.length===0)return null;let r=G(n),i=G(e);if(r===i)return null;let a=L.test(e.trimEnd());if(!(a?r.startsWith(i):q(r,i)))return(a?i.startsWith(r):q(i,r))?null:n;let o=ve(_e(n,a&&K(r[i.length])?J(r,i.length):i.length));return o.length<M?null:o}function xe(e){return[...e].sort((e,t)=>e.priority===t.priority?new Date(t.createdAt).getTime()-new Date(e.createdAt).getTime():t.priority-e.priority)}function Se(e){let t=new Date,n=new Date(t.getFullYear(),t.getMonth(),t.getDate()),r=new Date(t.getFullYear(),t.getMonth(),t.getDate()-1),i={today:[],yesterday:[],older:[]};for(let t of e){let e=new Date(t.createdAt);e>=n?i.today.push(t):e>=r?i.yesterday.push(t):i.older.push(t)}let a=new Map;return i.today.length>0&&a.set(`today`,i.today),i.yesterday.length>0&&a.set(`yesterday`,i.yesterday),i.older.length>0&&a.set(`older`,i.older),a}function Ce(e,t){return t===null?e:e.filter(e=>(e.category??`system`)===t)}function X(e){return e.filter(e=>e.urgency!==`high`&&e.urgency!==`critical`)}function we(e){return X(e.filter(e=>e.status!==`dismissed`))}function Te(e){let t=e?.metadata?.scheduleId;return typeof t==`string`&&t.length>0?t:null}var Ee=`Notification`;function Z(e){let t=e.title??Y(e.summary);return t.length>0?t:Ee}function De(e){return{from:[`new`],to:`seen`,ids:e.filter(e=>e.status===`new`).map(e=>e.id)}}function Oe(e){return{from:[`new`,`seen`,`acted_on`],to:`dismissed`,ids:e.map(e=>e.id)}}function Q(e){let t=new Set;for(let n of e)t.add(n.category??`system`);return[...t]}function $({label:e,onClick:t,className:r,children:i}){return(0,T.jsx)(n,{content:e,children:(0,T.jsx)(`button`,{type:`button`,"aria-label":e,onClick:e=>{e.stopPropagation(),t()},className:s(`flex h-8 w-8 shrink-0 cursor-pointer items-center justify-center rounded-md`,`text-[var(--content-secondary)] transition-colors`,`hover:bg-[var(--surface-hover)] hover:text-[var(--content-default)]`,r),children:i})})}var ke=new Set([`Conversation`,`Other`]),Ae={comfortable:{card:`p-[var(--app-spacing-md)]`,stack:`gap-[var(--app-spacing-xs)]`,titleVariant:`title-small`,clamp:`line-clamp-2`,showsMetaRow:!0},compact:{card:`p-[var(--app-spacing-sm)]`,stack:`gap-[var(--app-spacing-xxs)]`,titleVariant:`body-medium-default`,clamp:`line-clamp-1`,showsMetaRow:!1}};function je({item:e,isActive:t=!1,validConversationIds:n,onSelect:r,onDismiss:i,onToggleRead:a,onGoToThread:o,trailingAction:l=`dismiss`,density:u=`comfortable`}){let d=e.status===`new`,f=l===`restore`,p=Ae[u],m=e.sourceLabel&&!ke.has(e.sourceLabel)?e.sourceLabel:null,h=(0,w.useMemo)(()=>Z({title:e.title,summary:e.summary}),[e.title,e.summary]),g=(0,w.useMemo)(()=>be(h,e.summary),[h,e.summary]),_=(0,T.jsx)(c,{"data-testid":`home-recap-row-title`,variant:p.titleVariant,className:s(`leading-snug text-[var(--content-default)]`,p.showsMetaRow?p.clamp:`min-w-0 flex-1 truncate`),children:h});return(0,T.jsxs)(`div`,{className:s(`group relative flex w-full items-start gap-[var(--app-spacing-sm)]`,`rounded-[var(--radius-lg)] border border-[var(--border-base)]`,`transition-[background-color,opacity] duration-150`,p.card,t?`bg-[var(--surface-active)]`:`bg-[var(--surface-overlay)] hover:bg-[var(--surface-hover)]`,!d&&!t&&`opacity-70`),children:[(0,T.jsx)(`button`,{type:`button`,"aria-label":h,onClick:()=>r(e),className:`absolute inset-0 w-full cursor-pointer rounded-[var(--radius-lg)]`}),(0,T.jsx)(`div`,{"data-testid":`home-recap-row-dot-gutter`,className:`pointer-events-none relative flex h-8 w-2 shrink-0 items-center`,children:d&&(0,T.jsx)(`span`,{"data-testid":`home-recap-row-unread-dot`,"aria-hidden":`true`,className:`h-2 w-2 rounded-full bg-[var(--system-mid-strong)]`})}),(0,T.jsxs)(`div`,{className:s(`pointer-events-none relative flex min-w-0 flex-1 flex-col`,p.stack),children:[(0,T.jsxs)(`div`,{className:`flex items-center gap-[var(--app-spacing-sm)]`,children:[p.showsMetaRow?(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(j,{category:e.category}),m!==null&&(0,T.jsx)(c,{variant:`body-small-default`,className:`min-w-0 truncate text-[var(--content-tertiary)]`,children:m})]}):_,(0,T.jsxs)(`span`,{className:`ml-auto grid shrink-0 items-center justify-items-end`,children:[(0,T.jsx)(c,{variant:`body-small-default`,className:s(`col-start-1 row-start-1 text-[var(--content-tertiary)]`,`transition-opacity duration-150`,`group-hover:opacity-0 group-focus-within:opacity-0`),children:de(e.timestamp)}),(0,T.jsx)(`span`,{className:s(`col-start-1 row-start-1 flex items-center gap-[var(--app-spacing-sm)]`,`pointer-events-none opacity-0 transition-opacity duration-150`,`group-hover:pointer-events-auto group-hover:opacity-100`,`group-focus-within:pointer-events-auto group-focus-within:opacity-100`),children:f?(0,T.jsxs)($,{label:`Restore`,onClick:()=>i(e.id),className:`w-auto gap-[var(--app-spacing-xs)] px-2`,children:[(0,T.jsx)(te,{width:16,height:16,"aria-hidden":`true`}),(0,T.jsx)(`span`,{className:`text-body-small-default`,children:`Restore`})]}):(0,T.jsxs)(T.Fragment,{children:[a&&(0,T.jsx)($,{label:d?`Mark as read`:`Mark as unread`,onClick:()=>a(e.id,d?`seen`:`new`),children:d?(0,T.jsx)(C,{width:16,height:16}):(0,T.jsx)(v,{width:16,height:16})}),o&&e.conversationId&&(!n||n.has(e.conversationId))&&(0,T.jsx)($,{label:`Go to thread`,onClick:()=>{d&&a&&a(e.id,`seen`),o(e.conversationId)},children:(0,T.jsx)(ee,{width:16,height:16})}),(0,T.jsx)($,{label:`Dismiss`,onClick:()=>i(e.id),children:(0,T.jsx)(ie,{width:16,height:16})})]})})]})]}),p.showsMetaRow&&_,g!==null&&(0,T.jsx)(c,{variant:`body-medium-lighter`,className:s(`leading-normal text-[var(--content-secondary)]`,p.clamp),children:g})]})]})}function Me(e){let t=r(),n=(0,w.useRef)(null),o=(0,w.useRef)(0),s=(0,w.useMemo)(()=>({path:{assistant_id:e??``},query:{timeAwaySeconds:0}}),[e]),c=(0,w.useMemo)(()=>le(s),[s]);S(`app.hidden`,()=>{n.current=Date.now()}),S(`app.resume`,({signal:r})=>{r!==`online`&&n.current!==null&&(o.current=Math.round((Date.now()-n.current)/1e3),n.current=null,e&&t.invalidateQueries({queryKey:c}))});let l=i({queryKey:c,queryFn:async({signal:t})=>{let{data:n}=await ce({path:{assistant_id:e},query:{timeAwaySeconds:o.current},signal:t,throwOnError:!0});return n},enabled:!!e,staleTime:3e4}),u=a({mutationFn:async({itemId:t,status:n})=>{let{data:r}=await b({path:{assistant_id:e,id:t},body:{status:n},throwOnError:!0});return r},onMutate:async({itemId:e,status:n})=>{await t.cancelQueries({queryKey:c});let r=t.getQueryData(c);return x(t,s,t=>t&&{...t,items:t.items.map(t=>t.id===e?{...t,status:n}:t)}),{previous:r}},onError:(e,n,r)=>{r?.previous&&x(t,s,r.previous)},onSettled:()=>{t.invalidateQueries({queryKey:c})}}),d=a({mutationFn:async({itemId:t,actionId:n})=>{let{data:r}=await y({path:{assistant_id:e,id:t,actionId:n},throwOnError:!0});return r},onMutate:async({itemId:e})=>{await t.cancelQueries({queryKey:c});let n=t.getQueryData(c);return x(t,s,t=>t&&{...t,items:t.items.map(t=>t.id===e?{...t,status:`acted_on`}:t)}),{previous:n}},onError:(e,n,r)=>{r?.previous&&x(t,s,r.previous)},onSettled:()=>{t.invalidateQueries({queryKey:c})}}),f=a({mutationFn:async({from:t,to:n,ids:r})=>{let{data:i}=await se({path:{assistant_id:e},body:{from:t,to:n,ids:r},throwOnError:!0});return i},onMutate:async({from:e,to:n,ids:r})=>{await t.cancelQueries({queryKey:c});let i=t.getQueryData(c),a=new Set(e),o=r?new Set(r):null;return x(t,s,e=>{if(!e)return e;let t=e.items.map(e=>a.has(e.status)&&e.status!==n&&(!o||o.has(e.id))?{...e,status:n}:e),r=t.filter(e=>e.status===`new`).length;return{...e,items:t,contextBanner:{...e.contextBanner,newCount:r}}}),{previous:i}},onError:(e,n,r)=>{r?.previous&&x(t,s,r.previous)},onSettled:()=>{t.invalidateQueries({queryKey:c})}}),p=(0,w.useCallback)(()=>{e&&t.invalidateQueries({queryKey:c})},[e,t,c]);return{...l,updateStatus:u,triggerAction:d,markAll:f,invalidate:p}}var Ne={p:({children:e})=>(0,T.jsx)(`p`,{className:`mb-2 text-body-medium-default last:mb-0`,style:{color:`var(--content-secondary)`},children:e}),strong:({children:e})=>(0,T.jsx)(`strong`,{style:{color:`var(--content-default)`},children:e}),em:({children:e})=>(0,T.jsx)(`em`,{style:{color:`var(--content-default)`},children:e}),a:({href:e,children:t})=>(0,T.jsx)(`a`,{href:e,className:`underline`,style:{color:`var(--content-link)`},target:`_blank`,rel:`noopener noreferrer`,onClick:t=>ue(t,e),children:t}),ul:({children:e})=>(0,T.jsx)(`ul`,{className:`mb-2 list-disc pl-5 text-body-medium-default`,style:{color:`var(--content-secondary)`},children:e}),ol:({children:e})=>(0,T.jsx)(`ol`,{className:`mb-2 list-decimal pl-5 text-body-medium-default`,style:{color:`var(--content-secondary)`},children:e}),li:({children:e})=>(0,T.jsx)(`li`,{className:`mb-0.5`,children:e}),code:({children:e})=>(0,T.jsx)(`code`,{className:`rounded px-1 py-0.5 font-mono text-[0.85em]`,style:{backgroundColor:`color-mix(in oklab, var(--content-default) 8%, transparent)`,color:`var(--content-default)`},children:e}),pre:({children:e})=>(0,T.jsx)(`pre`,{className:`mb-2 overflow-x-auto rounded p-3 font-mono text-[0.85em]`,style:{backgroundColor:`color-mix(in oklab, var(--content-default) 6%, transparent)`,color:`var(--content-default)`},children:e}),h1:({children:e})=>(0,T.jsx)(`h1`,{className:`mb-2 text-title-medium first:mt-0`,style:{color:`var(--content-default)`},children:e}),h2:({children:e})=>(0,T.jsx)(`h2`,{className:`mb-2 text-title-small first:mt-0`,style:{color:`var(--content-default)`},children:e}),h3:({children:e})=>(0,T.jsx)(`h3`,{className:`mb-1 text-body-medium-default first:mt-0`,style:{color:`var(--content-default)`},children:e}),blockquote:({children:e})=>(0,T.jsx)(`blockquote`,{className:`mb-2 border-l-2 pl-3 text-body-medium-default`,style:{borderColor:`var(--border-base)`,color:`var(--content-tertiary)`},children:e}),table:({children:e})=>(0,T.jsx)(`div`,{className:`mb-2 overflow-x-auto`,children:(0,T.jsx)(`table`,{className:`w-full border-collapse text-body-small-default`,style:{color:`var(--content-secondary)`},children:e})}),thead:({children:e})=>(0,T.jsx)(`thead`,{style:{backgroundColor:`var(--surface-lift)`},children:e}),tbody:({children:e})=>(0,T.jsx)(`tbody`,{children:e}),tr:({children:e})=>(0,T.jsx)(`tr`,{style:{borderBottom:`1px solid var(--border-base)`},children:e}),th:({children:e})=>(0,T.jsx)(`th`,{className:`px-2 py-1.5 text-left font-semibold`,style:{color:`var(--content-default)`},children:e}),td:({children:e})=>(0,T.jsx)(`td`,{className:`px-2 py-1.5 align-top`,children:e})};function Pe({content:e,className:t}){return(0,T.jsx)(`div`,{className:s(`text-body-medium-default`,t),children:(0,T.jsx)(h,{remarkPlugins:[f],components:Ne,children:e})})}function Fe({item:e,className:t}){return(0,T.jsx)(Pe,{content:e.summary,className:t})}function Ie(e){switch(e){case`revoked`:case`expired`:return`var(--system-negative-strong)`;case`missing_scopes`:case`missing_token`:case`ping_failed`:return`var(--system-mid-strong)`;default:return`var(--content-disabled)`}}function Le(e){return e.split(`_`).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `)}function Re({item:e}){let t=e.metadata,n=t?.provider;if(!n)return(0,T.jsx)(c,{variant:`body-medium-default`,className:`text-[var(--content-secondary)]`,children:e.summary});let r=t?.accountInfo??null,i=t?.status??`unreachable`,a=t?.details??``,o=Array.isArray(t?.missingScopes)?t.missingScopes:[];return(0,T.jsxs)(`div`,{className:`flex flex-col gap-[var(--app-spacing-md)]`,children:[(0,T.jsx)(c,{variant:`title-small`,as:`h3`,children:n}),r?(0,T.jsx)(c,{variant:`body-medium-lighter`,className:`text-[var(--content-secondary)]`,children:r}):null,(0,T.jsxs)(`div`,{className:`flex items-center gap-[var(--app-spacing-sm)]`,children:[(0,T.jsx)(`span`,{className:`inline-block shrink-0 rounded-full`,style:{width:8,height:8,backgroundColor:Ie(i)},"aria-hidden":`true`}),(0,T.jsx)(c,{variant:`body-medium-default`,className:`text-[var(--content-default)]`,children:Le(i)})]}),a?(0,T.jsx)(c,{variant:`body-medium-lighter`,className:`text-[var(--content-secondary)]`,children:a}):null,o.length>0?(0,T.jsxs)(`div`,{className:`flex flex-col gap-[var(--app-spacing-xs)]`,children:[(0,T.jsx)(c,{variant:`body-small-emphasised`,className:`text-[var(--content-secondary)]`,children:`Missing scopes`}),(0,T.jsx)(`ul`,{className:`m-0 flex list-disc flex-col gap-[var(--app-spacing-xxs)] pl-[var(--app-spacing-lg)]`,children:o.map(e=>(0,T.jsx)(`li`,{children:(0,T.jsx)(c,{variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,children:e})},e))})]}):null]})}export{pe as _,Oe as a,Te as c,Se as d,De as f,D as g,k as h,je as i,Q as l,xe as m,Fe as n,X as o,Z as p,Me as r,Ce as s,Re as t,we as u,C as v};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-BENY-yx_.js";import{d as r,h as i}from"./chunk-5KNZJZUH-BUqIilZr.js";import{t as a}from"./jsx-runtime-D3ZM-ToX.js";import{t as o}from"./arrow-left-BikDV6F2.js";import{t as s}from"./check-DSgjgwlo.js";import{t as c}from"./cloud-DqktQX50.js";import{t as l}from"./laptop-BXuIFbVm.js";import{q as u,rt as d}from"./local-mode-BfEgOekp.js";import{t as f}from"./is-electron-BHXrkjI3.js";import{n as p}from"./resolved-assistants-store-BFI9c7ip.js";import{i as m}from"./auth-store-DkOiOQNx.js";import{t as h}from"./client-feature-flag-store-C8ieIAKe.js";import{d as g,o as _}from"./routes-iipg2wkc.js";import{t as v}from"./use-onboarding-login-BUaNGE_u.js";import{t as y}from"./onboarding-layout-C534GRct.js";import{i as b}from"./provider-key-BZOH9D9k.js";import{t as x}from"./radio-card-nav-B1BF1G_V.js";var S=e(t(),1),C=a(),w=`h-5 w-5 shrink-0`;function T(){let e=m(),t=h.use.multiPlatformAssistant(),n=p.use.assistants().some(e=>e.isPlatformHosted);return[{mode:`vellum-cloud`,label:`Vellum Cloud`,subtitle:`Always on, 24/7, even when your computer is off. Runs on Vellum's secure infrastructure.`,icon:(0,C.jsx)(c,{className:w}),...!e||!t&&n?{disabled:!0,badge:e?`Limit Reached`:`Requires Account`}:{}},{mode:`local`,label:`Local`,subtitle:`Runs directly on your machine. Your data never leaves your computer.`,icon:(0,C.jsx)(l,{className:w})}]}function E(){let e=r(),[t]=i(),a=t.get(`from`)===`select-assistant`,s=m(),c=f(),l=T(),p=l.find(e=>e.mode===`vellum-cloud`)?.disabled,[h,w]=(0,S.useState)(s&&!p?`vellum-cloud`:`local`);(0,S.useEffect)(()=>{p&&h===`vellum-cloud`&&w(`local`)},[p,h]);let{loading:E,error:O,login:k,cancel:A}=v(`${g.onboarding.hosting}?from=select-assistant`),j=a&&!s&&!c;return(0,C.jsx)(y,{children:(0,C.jsx)(`div`,{className:`mx-auto flex w-full max-w-xl flex-col items-center ${c?`min-h-full px-8 pt-21 pb-4 electron-prechat-type`:`min-h-screen px-6 pb-40 pt-6`} text-[var(--content-default)]`,children:(0,C.jsxs)(`div`,{className:`flex w-full flex-col items-center ${c?``:`flex-1 justify-center`}`,children:[(0,C.jsx)(`h1`,{className:c?`text-title-large`:`text-3xl font-semibold tracking-tight`,style:{animation:`fadeInUp 0.5s ease-out 0.1s both`},children:`Hosting`}),(0,C.jsxs)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)] ${c?`mt-3.5`:`mt-3`}`,style:{animation:`fadeInUp 0.5s ease-out 0.3s both`},children:[`Choose where you want your assistant to live.`,` `,(0,C.jsx)(`a`,{href:_(g.docs.hostingOptions),target:`_blank`,rel:`noreferrer`,className:`underline transition-colors hover:text-[var(--content-default)]`,children:`Need help deciding?`})]}),O&&(0,C.jsx)(`p`,{className:`mt-4 text-body-small-default text-[var(--system-negative-strong)]`,children:O}),(0,C.jsx)(`div`,{role:`radiogroup`,"aria-label":`Hosting options`,onKeyDown:x,className:`grid w-full ${c?`mt-8 gap-2`:`auto-rows-fr mt-10 gap-3`}`,style:{animation:`fadeInUp 0.5s ease-out 0.4s both`},children:l.map(e=>(0,C.jsx)(D,{option:e,selected:h===e.mode,tabStop:h===e.mode,onSelect:()=>{e.disabled||w(e.mode)},loginLabel:E?`Cancel`:`Log in to use`,onLogin:e.disabled&&e.mode===`vellum-cloud`&&j?E?A:()=>void k():void 0},e.mode))}),(0,C.jsx)(`div`,{className:`mt-8 w-full`,style:{animation:`fadeInUp 0.5s ease-out 0.5s both`},children:(0,C.jsx)(n,{variant:`primary`,size:`regular`,fullWidth:!0,className:c?void 0:`h-11 text-base`,onClick:()=>{h===`vellum-cloud`?(u(),d(null),b(null),e(g.onboarding.privacy)):e(`${g.onboarding.apiKey}?hosting=${h}`)},children:`Continue`})}),(0,C.jsx)(`div`,{className:`mt-3`,style:{animation:`fadeInUp 0.5s ease-out 0.5s both`},children:(0,C.jsx)(n,{variant:`ghost`,size:`compact`,className:`text-[var(--content-tertiary)]`,leftIcon:(0,C.jsx)(o,{}),onClick:()=>{e(a?g.selectAssistant:g.welcome)},disabled:E,children:`Back`})})]})})})}function D({option:e,selected:t,tabStop:r,onSelect:i,loginLabel:a,onLogin:o}){let c=f(),l=!!e.disabled,u=o?void 0:e.badge;return(0,C.jsxs)(`div`,{role:l?void 0:`radio`,"aria-checked":l?void 0:t,tabIndex:l?void 0:r?0:-1,onClick:l?void 0:i,onKeyDown:l?void 0:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),i())},className:[`group flex w-full items-center border text-left`,c?`h-[72px] gap-3 rounded-lg p-3`:`gap-4 rounded-2xl px-5 py-4`,`transition-all duration-200 ease-out`,l?`border-[var(--border-base)] bg-[var(--surface-overlay)]`:`cursor-pointer focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--primary-base)]`,l?``:t?`border-[var(--primary-base)] bg-[var(--surface-lift)]`:`border-[var(--border-base)] bg-[var(--surface-lift)]/60 hover:border-[var(--border-element)] hover:bg-[var(--surface-lift)]`].join(` `),children:[(0,C.jsx)(`div`,{className:[`flex shrink-0 items-center justify-center transition-colors duration-200`,c?`h-8 w-8 rounded-lg`:`h-10 w-10 rounded-xl`,t&&!l?`bg-[var(--primary-base)] text-[var(--surface-base)]`:`bg-[var(--surface-active)]/40 text-[var(--content-secondary)]`].join(` `),children:e.icon}),(0,C.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,C.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,C.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-default)]`,children:e.label}),u&&(0,C.jsx)(`span`,{className:`rounded-full bg-[var(--surface-active)]/40 px-2 py-0.5 text-[var(--content-tertiary)] ${c?`text-label-medium-default`:`text-body-small-default`}`,children:u})]}),(0,C.jsx)(`span`,{className:`mt-0.5 line-clamp-2 text-[var(--content-tertiary)] ${c?`text-label-medium-default leading-[14px]`:`text-body-small-default`}`,children:e.subtitle})]}),o&&(0,C.jsx)(n,{variant:`primary`,size:`regular`,className:`shrink-0`,onClick:o,children:a}),!l&&(0,C.jsx)(`div`,{className:[`flex h-5 w-5 shrink-0 items-center justify-center rounded-full border-2 transition-all duration-200`,t?`border-[var(--primary-base)] bg-[var(--primary-base)]`:`border-[var(--border-element)] group-hover:border-[var(--content-tertiary)]`].join(` `),children:t&&(0,C.jsx)(s,{className:`h-3 w-3 text-[var(--surface-base)]`,strokeWidth:3})})]})}export{E as HostingScreen};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e}from"./api-errors-BQX1Pzcm.js";import{Ht as t}from"./sdk.gen-CBPZ2IdN.js";async function n(n){try{let{data:r,error:i,response:a}=await t({path:{assistant_id:n},throwOnError:!1});return e(a,i,`Failed to fetch assistant identity`),!a.ok||!r||typeof r!=`object`?null:r}catch{return null}}export{n as t};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-BENY-yx_.js";import{t as r}from"./chunk-5KNZJZUH-BUqIilZr.js";import{n as i}from"./QueryClientProvider-CMu7CkQU.js";import{t as a}from"./useQuery-Bz-fbQ-m.js";import{t as o}from"./jsx-runtime-D3ZM-ToX.js";import{t as s}from"./card-q0GJX1HZ.js";import{t as c}from"./createLucideIcon-C1mdGPB9.js";import{t as l}from"./brain-ZiC0HCCF.js";import{n as u,t as d}from"./upload-CZL0kXl9.js";import{t as f}from"./chevron-left-D-pnIQax.js";import{t as p}from"./chevron-right-DBGgpEiZ.js";import"./src-hNk11eS3.js";import{n as m,t as h}from"./animate-CEUNjqNk.js";import{t as g}from"./folder-open-BBs1-i8r.js";import{t as _}from"./layout-grid-C3h1DMhl.js";import{t as v}from"./pencil-DidiUknI.js";import{t as y}from"./sparkles-B94iNYGJ.js";import{t as b}from"./users-XI0CRYkf.js";import{n as x,t as S}from"./installed-plugins-query-CIcohCho.js";import{t as C}from"./modal-DI63s9MQ.js";import{n as w}from"./toast-BpuLSxyt.js";import{t as T}from"./assistant-identity-store-nE-e8KQw.js";import{m as E}from"./platform-detection-C_TK32Dw.js";import{d as D,r as O}from"./routes-iipg2wkc.js";import{a as k,n as A,o as ee,r as te}from"./use-assistant-avatar-Dd-EU1FC.js";import{A as j,At as M,C as N,St as P,c as F,r as I,yn as L}from"./react-query.gen-DxjuNs-5.js";import{n as R,t as z}from"./get-memory-stats-CgfjHhot.js";import{t as B}from"./plugins-surface-C5i913ST.js";import{t as V}from"./proxy-B4sTDdE4.js";import{t as H}from"./use-reduced-motion-CaGZSwLZ.js";import{r as ne}from"./avatar-tone-D1ZiIRxb.js";import{n as re,t as ie}from"./eye-bbox-hZoek1Q5.js";import{t as ae}from"./chat-avatar-BPhNOZzd.js";import{t as oe}from"./avatar-renderer-CsRuhhXn.js";import{t as U}from"./use-active-assistant-id-BvHP5Ojg.js";import{t as W}from"./schedules-CMISpWUM.js";import{t as G}from"./page-shell-CkfnwmIw.js";import{a as se,o as K,r as ce,s as le}from"./latest-assistant-text-Daw8nrLO.js";import{a as ue,i as de,n as fe,r as pe,s as me,t as he}from"./use-assistant-identity-details-BAgi4MHa.js";var ge=c(`radio`,[[`path`,{d:`M16.247 7.761a6 6 0 0 1 0 8.478`,key:`1fwjs5`}],[`path`,{d:`M19.075 4.933a10 10 0 0 1 0 14.134`,key:`ehdyv1`}],[`path`,{d:`M4.925 19.067a10 10 0 0 1 0-14.134`,key:`1q22gi`}],[`path`,{d:`M7.753 16.239a6 6 0 0 1 0-8.478`,key:`r2q7qm`}],[`circle`,{cx:`12`,cy:`12`,r:`2`,key:`1c9p78`}]]),q=e(t(),1),J=o();function Y(e,t,n){return n===`forward`?(e+1)%t:(e-1+t)%t}function _e({open:e,onClose:t,assistantId:r,components:i,traits:a,customImageUrl:o,onSaveCharacter:s,onUploadImage:c,assistantName:l,onRenameSubmit:u,isRenaming:f=!1}){let p=(0,q.useRef)(null),[h,g]=(0,q.useState)(null),[_,v]=(0,q.useState)(!1),y=i??h,[b,x]=(0,q.useState)(0),[S,w]=(0,q.useState)(0),[T,E]=(0,q.useState)(0),[D,O]=(0,q.useState)(`character`),[A,j]=(0,q.useState)(null),[M,N]=(0,q.useState)(!1),[P,F]=(0,q.useState)(!1),[I,L]=(0,q.useState)(l??``),R=A??o,z=!!R;(0,q.useEffect)(()=>{e&&L(l??``)},[e,l]);let B=(0,q.useRef)(!1);(0,q.useEffect)(()=>{e&&!B.current&&O(o?`custom`:`character`),B.current=e},[e,o]),(0,q.useEffect)(()=>{if(e)if(y&&a){let e=y.bodyShapes.findIndex(e=>e.id===a.bodyShape),t=y.eyeStyles.findIndex(e=>e.id===a.eyeStyle),n=y.colors.findIndex(e=>e.id===a.color);x(e>=0?e:0),w(t>=0?t:0),E(n>=0?n:0)}else x(0),w(0),E(0)},[e,y,a]),(0,q.useEffect)(()=>{if(!e||y||_)return;let t=!1;return v(!0),te(r).then(e=>{t||(g(e),v(!1))}),()=>{t=!0}},[e,y,_,r]),(0,q.useEffect)(()=>{if(A)return()=>{URL.revokeObjectURL(A)}},[A]),(0,q.useEffect)(()=>{e||j(null)},[e]);let V=I.trim(),H=!!u&&V.length>0&&V!==(l??``),ne=(0,q.useCallback)(()=>{y&&(O(`character`),x(Math.floor(Math.random()*y.bodyShapes.length)),w(Math.floor(Math.random()*y.eyeStyles.length)),E(Math.floor(Math.random()*y.colors.length)))},[y]),re=(0,q.useCallback)(()=>{p.current?.click()},[]),ie=(0,q.useCallback)(async e=>{let t=e.target.files?.[0];if(!t)return;F(!0);let n=await ee(r,t);F(!1),n&&(c(),j(URL.createObjectURL(t)),O(`custom`)),p.current&&(p.current.value=``)},[r,c]),ae=(0,q.useCallback)(async e=>{if(e.preventDefault(),!(M||f)){if(H&&u&&u(V),y&&D===`character`){let e={bodyShape:y.bodyShapes[b].id,eyeStyle:y.eyeStyles[S].id,color:y.colors[T].id};N(!0);try{await k(r,e),j(null),s(e)}finally{N(!1)}}t()}},[M,f,H,u,V,y,D,b,S,T,r,s,t]),U=y?.bodyShapes[b],W=y?.eyeStyles[S],G=y?.colors[T],se=D===`custom`&&z,K=l!==void 0&&u?(0,J.jsx)(ve,{value:I,onChange:L,disabled:f}):null;return(0,J.jsx)(C.Root,{open:e,onOpenChange:e=>!e&&t(),children:(0,J.jsxs)(C.Content,{size:`sm`,children:[(0,J.jsx)(C.Header,{children:(0,J.jsx)(C.Title,{children:`Update Avatar`})}),(0,J.jsxs)(`form`,{className:`flex min-h-0 flex-1 flex-col`,onSubmit:ae,children:[(0,J.jsx)(C.Body,{className:`space-y-4`,children:se?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`div`,{className:`flex justify-center`,children:(0,J.jsx)(`div`,{className:`rounded-2xl bg-[var(--surface-sunken)] p-6`,children:(0,J.jsx)(`img`,{src:R,alt:`Uploaded avatar`,className:`h-40 w-40 rounded-xl object-cover`})})}),(0,J.jsxs)(`div`,{className:`space-y-3`,children:[K,(0,J.jsx)(ye,{label:`Use a character instead`,description:`Pick from our built-in avatars`,onClick:()=>O(`character`),thumbnail:y&&U&&W&&G?(0,J.jsx)(oe,{components:y,bodyShapeId:U.id,eyeStyleId:W.id,colorId:G.id,size:32}):(0,J.jsx)(m,{className:`h-4 w-4`,style:{color:`var(--content-secondary)`}})})]})]}):y?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`div`,{className:`flex justify-center`,children:(0,J.jsx)(`div`,{className:`rounded-2xl bg-[var(--surface-sunken)] p-6`,children:(0,J.jsx)(oe,{components:y,bodyShapeId:U.id,eyeStyleId:W.id,colorId:G.id,size:160})})}),(0,J.jsxs)(`div`,{className:`space-y-3`,children:[K,(0,J.jsx)(be,{label:`Body`,value:U.id,onPrev:()=>x(Y(b,y.bodyShapes.length,`backward`)),onNext:()=>x(Y(b,y.bodyShapes.length,`forward`))}),(0,J.jsx)(be,{label:`Eyes`,value:W.id,onPrev:()=>w(Y(S,y.eyeStyles.length,`backward`)),onNext:()=>w(Y(S,y.eyeStyles.length,`forward`))}),(0,J.jsx)(be,{label:`Color`,value:G.id,colorHex:G.hex,onPrev:()=>E(Y(T,y.colors.length,`backward`)),onNext:()=>E(Y(T,y.colors.length,`forward`))})]}),z&&(0,J.jsx)(ye,{label:`Keep your uploaded image`,description:`Saving the character replaces it`,onClick:()=>O(`custom`),thumbnail:(0,J.jsx)(`img`,{src:R,alt:``,className:`h-8 w-8 rounded-md object-cover`})})]}):(0,J.jsxs)(J.Fragment,{children:[K,_?(0,J.jsx)(`div`,{className:`flex items-center justify-center py-12`,children:(0,J.jsx)(`div`,{className:`h-6 w-6 animate-spin rounded-full border-2 border-[var(--border-element)] border-t-[var(--content-tertiary)]`})}):(0,J.jsx)(`div`,{className:`py-8 text-center text-body-medium-lighter text-[var(--content-quiet)]`,children:`Unable to load avatar components. Make sure your assistant is running.`})]})}),(0,J.jsxs)(C.Footer,{className:`justify-between`,children:[(0,J.jsxs)(`div`,{className:`flex gap-2`,children:[(0,J.jsx)(n,{type:`button`,variant:`outlined`,iconOnly:(0,J.jsx)(m,{}),"aria-label":`Randomize`,tooltip:`Randomize`,onClick:ne,disabled:!y}),(0,J.jsx)(n,{type:`button`,variant:`outlined`,iconOnly:(0,J.jsx)(d,{}),"aria-label":`Upload image`,tooltip:`Upload image`,onClick:re,disabled:P})]}),(0,J.jsx)(n,{type:`submit`,variant:`primary`,disabled:M||f||P,children:M||f?`Saving…`:`Save`})]})]}),(0,J.jsx)(`input`,{ref:p,type:`file`,accept:`image/png,image/jpeg,image/webp,image/gif`,className:`hidden`,onChange:ie})]})})}function ve({value:e,onChange:t,disabled:n}){return(0,J.jsxs)(`label`,{className:`flex items-center justify-between gap-3 rounded-lg border border-[var(--border-subtle)] bg-[var(--surface-lift)] px-3 py-2`,children:[(0,J.jsx)(`span`,{className:`text-body-small-default uppercase tracking-wider text-[var(--content-quiet)]`,children:`Name`}),(0,J.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,J.jsx)(`div`,{className:`flex min-w-[80px] items-center justify-center`,children:(0,J.jsx)(`input`,{value:e,onChange:e=>t(e.target.value),disabled:n,maxLength:40,size:8,placeholder:`Name`,"aria-label":`Name`,className:`h-7 min-w-0 field-sizing-content bg-transparent text-center text-body-medium-default text-[var(--content-strong)] outline-none placeholder:text-[var(--content-tertiary)] disabled:cursor-not-allowed disabled:opacity-60`})}),(0,J.jsx)(`span`,{"aria-hidden":!0,className:`h-7 w-7 shrink-0`})]})]})}function ye({label:e,description:t,thumbnail:n,onClick:r}){return(0,J.jsxs)(`button`,{type:`button`,onClick:r,className:`flex w-full cursor-pointer items-center gap-3 rounded-lg border border-[var(--border-subtle)] bg-[var(--surface-lift)] px-3 py-2 text-left transition-colors hover:bg-[var(--surface-hover)]`,children:[(0,J.jsx)(`span`,{className:`flex h-8 w-8 shrink-0 items-center justify-center overflow-hidden rounded-md bg-[var(--surface-sunken)]`,children:n}),(0,J.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,J.jsx)(`span`,{className:`block truncate text-body-medium-default text-[var(--content-strong)]`,children:e}),(0,J.jsx)(`span`,{className:`block truncate text-body-small-default text-[var(--content-quiet)]`,children:t})]}),(0,J.jsx)(p,{className:`h-4 w-4 shrink-0 text-[var(--content-quiet)]`})]})}function be({label:e,value:t,colorHex:n,onPrev:r,onNext:i}){return(0,J.jsxs)(`div`,{className:`flex items-center justify-between rounded-lg border border-[var(--border-subtle)] bg-[var(--surface-lift)] px-3 py-2`,children:[(0,J.jsx)(`span`,{className:`text-body-small-default uppercase tracking-wider text-[var(--content-quiet)]`,children:e}),(0,J.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,J.jsx)(`button`,{type:`button`,onClick:r,"aria-label":`Previous ${e.toLowerCase()}`,className:`flex h-7 w-7 cursor-pointer items-center justify-center rounded-md text-[var(--content-quiet)] transition-colors hover:bg-[var(--surface-active)]`,children:(0,J.jsx)(f,{className:`h-4 w-4`})}),(0,J.jsxs)(`div`,{className:`flex min-w-[80px] items-center justify-center gap-2`,children:[n&&(0,J.jsx)(`div`,{className:`h-4 w-4 rounded-full border border-[var(--border-element)]`,style:{backgroundColor:n}}),(0,J.jsx)(`span`,{className:`text-body-medium-default capitalize text-[var(--content-strong)]`,children:t})]}),(0,J.jsx)(`button`,{type:`button`,onClick:i,"aria-label":`Next ${e.toLowerCase()}`,className:`flex h-7 w-7 cursor-pointer items-center justify-center rounded-md text-[var(--content-quiet)] transition-colors hover:bg-[var(--surface-active)]`,children:(0,J.jsx)(p,{className:`h-4 w-4`})})]})]})}function xe(e){let t=e.trim();return`<system-message>
|
|
2
|
+
The user renamed you: your name is now ${t}.
|
|
3
|
+
|
|
4
|
+
Update IDENTITY.md so its name line reads exactly \`- **Name:** ${t}\`. This is a rename only — keep everything else in IDENTITY.md and SOUL.md exactly as it is, and do not touch users/ (that is your user's profile, not your identity). If your name appears elsewhere in those files, update those mentions to ${t} too.
|
|
5
|
+
|
|
6
|
+
Reply with a single short sentence acknowledging your new name.
|
|
7
|
+
</system-message>`}async function Se(e,t){return pe({assistantId:e,content:xe(t),title:`Updating name`,context:`identity_overview_rename`})}var Ce=6e4,we=3;function X(e,t,n){return e===1?t:n}function Te(e,{supportsPlugins:t,isNativeMobile:n}){let r={assistant_id:e},i={staleTime:Ce,retry:!1,enabled:!0},o=a({...M({path:r,query:{kind:`installed`}}),select:e=>e.skills.length,...i}),s=a({...S(e),select:e=>e.plugins.length,enabled:t}),c=a({...I({path:r}),select:e=>e.apps.length,...i}),l=a({...j({path:r}),select:e=>e.documents.length,...i}),u=a({...L({path:r}),select:e=>e.entries.length,...i,enabled:!n}),d=a({...N({path:r}),select:e=>e.contacts.length,...i}),f=a({...F({path:r}),select:e=>e.snapshots.filter(e=>e.ready).length,...i}),p=a({queryKey:P({path:r}),queryFn:()=>W(e),select:e=>{let t=e.filter(e=>e.enabled).sort((e,t)=>e.nextRunAt-t.nextRunAt);return{count:t.length,items:t.slice(0,we).map(e=>({id:e.id,name:e.name,cadence:e.cadenceDescription,nextRunAt:e.nextRunAt}))}},...i}),m=a({queryKey:le(e),queryFn:()=>K(e),...i});return{personality:{signature:m.data===void 0?void 0:se(m.data??{})},superpowers:o.data===void 0?void 0:{text:[`${o.data} ${X(o.data,`skill`,`skills`)}`,...s.data===void 0?[]:[`${s.data} ${X(s.data,`plugin`,`plugins`)}`]].join(` · `)},library:c.data===void 0?void 0:{text:[`${c.data} ${X(c.data,`app`,`apps`)}`,...l.data===void 0?[]:[`${l.data} ${X(l.data,`doc`,`docs`)}`]].join(` · `)},workspace:u.data===void 0?void 0:{value:u.data,label:X(u.data,`item`,`items`)},contacts:d.data===void 0?void 0:{value:d.data,label:X(d.data,`person`,`people`)},channels:f.data===void 0?void 0:{value:f.data,label:`connected`},schedules:p.data===void 0?void 0:p.data.count===0?{text:`Nothing scheduled yet`}:{value:p.data.count,label:`active`,schedules:{items:p.data.items,more:p.data.count-p.data.items.length}}}}var Ee=96,De=150,Oe=36,ke=46,Ae=58,je=(e,t,n)=>Math.max(t,Math.min(n,e));function Me(e,t,n){let r=je(n.x-e.left,Ee,e.width-Ee),i=je(n.y-e.top,Ee,e.height-Ee);return{rect:e,facing:t,peek:t===`top`?{x:r,y:0}:t===`bottom`?{x:r,y:e.height}:t===`left`?{x:0,y:i}:{x:e.width,y:i}}}var Ne={top:{x:0,y:-1},bottom:{x:0,y:1},left:{x:-1,y:0},right:{x:1,y:0}},Pe={type:`spring`,stiffness:150,damping:19},Fe=.22,Ie=.15;function Le({hex:e,components:t,traits:n,target:r}){let i=r!==null,[a,o]=(0,q.useState)(null);r&&r!==a&&o(r);let s=r??a,[c,l]=(0,q.useState)(!1);(0,q.useEffect)(()=>{let e=!1,t,n=()=>{t=setTimeout(()=>{e||(l(!0),t=setTimeout(()=>{e||(l(!1),n())},140))},2500+Math.random()*4e3)};return n(),()=>{e=!0,clearTimeout(t)}},[]);let u=(0,q.useMemo)(()=>{let e=t.eyeStyles.find(e=>e.id===n.eyeStyle);return e?{paths:e.paths,bbox:re(e.paths.map(e=>ie(e.svgPath)))}:null},[t,n.eyeStyle]);if(!u||!s)return null;let{rect:d,facing:f,peek:p}=s,m={x:d.left+p.x,y:d.top+p.y},h=Ne[f],g=u.bbox.h/u.bbox.w,_=Ae,v=_*g,y={x:m.x+h.x*Oe,y:m.y+h.y*Oe},b={x:-h.x*ke,y:-h.y*ke},x=u.bbox.x+u.bbox.w/2,S=u.bbox.y+u.bbox.h/2,C=i?{...Pe,delay:Fe,opacity:{duration:.15,delay:Fe}}:{duration:Ie};return(0,J.jsxs)(`div`,{"aria-hidden":`true`,className:`pointer-events-none absolute inset-0 z-0`,children:[(0,J.jsx)(V.div,{className:`absolute top-0 left-0 rounded-full`,style:{backgroundColor:e,width:De,height:De},initial:!1,animate:{x:m.x-De/2+(i?0:b.x),y:m.y-De/2+(i?0:b.y),opacity:+!!i},transition:C}),(0,J.jsx)(V.div,{className:`absolute top-0 left-0`,initial:!1,animate:{x:y.x-_/2+(i?0:b.x),y:y.y-v/2+(i?0:b.y),width:_,height:v,opacity:+!!i},transition:C,children:(0,J.jsx)(`svg`,{viewBox:`${u.bbox.x} ${u.bbox.y} ${u.bbox.w} ${u.bbox.h}`,width:`100%`,height:`100%`,preserveAspectRatio:`xMidYMid meet`,style:{overflow:`visible`,display:`block`},children:(0,J.jsx)(`g`,{style:{transform:c?`scaleY(0.1)`:`scaleY(1)`,transformOrigin:`${x}px ${S}px`,transition:`transform 0.14s ease-in-out`},children:u.paths.map((e,t)=>(0,J.jsx)(`path`,{d:e.svgPath,fill:e.color},t))})})})]})}var Re=65,ze=26;function Be(e,t){let n=H(),[r,i]=(0,q.useState)(n?e.length:0);return(0,q.useEffect)(()=>{if(n){i(e.length);return}i(0);let r=setInterval(()=>{i(t=>t>=e.length?(clearInterval(r),t):t+1)},t);return()=>clearInterval(r)},[e,t,n]),{typed:e.slice(0,r),typing:r<e.length}}function Ve({name:e,isRenaming:t,overrideText:n=null}){let r=n??`Hi, I’m ${e}`,{typed:i,typing:a}=Be(r,n?ze:Re);return(0,J.jsxs)(`div`,{className:`flex items-center justify-center gap-2`,children:[(0,J.jsxs)(`h1`,{"aria-label":r,className:`relative leading-none whitespace-nowrap text-[var(--content-strong)] ${n?`text-[2.1rem] max-sm:text-[1.4rem]`:`text-[3.25rem] max-sm:text-[2rem]`}`,style:{fontFamily:`var(--font-serif)`},children:[(0,J.jsx)(`span`,{className:`invisible`,"aria-hidden":`true`,children:r}),(0,J.jsxs)(`span`,{className:`absolute inset-0`,"aria-hidden":`true`,children:[i,a&&(0,J.jsx)(`span`,{className:`animate-pulse`,children:`▎`})]})]}),!n&&t&&(0,J.jsx)(`div`,{"aria-label":`Renaming in progress`,className:`h-5 w-5 shrink-0 animate-spin rounded-full border-2 border-[var(--border-base)]`,style:{borderTopColor:`var(--content-default)`}})]})}function Z(e,t){let{label:n,to:r}=O(e);return{key:e,label:n,description:t,to:r}}var He=[`memory`,`workspace`];function Ue({isNativeMobile:e=!1}={}){let t=[{key:`personality`,label:`Personality`,description:`Tune how I talk`,to:D.personality},Z(`schedules`,`My routines`),Z(`superpowers`,`What I can do`),Z(`memory`,`What I remember`),Z(`library`,`My apps & docs`),Z(`workspace`,`My files`),Z(`contacts`,`People I know`),Z(`channels`,`Where I listen`)];return e?t.filter(e=>!He.includes(e.key)):t}var We=340,Ge=226,Q=113,Ke=46,qe=58,Je=15,Ye=216,Xe=11.5,Ze=5,$=10,Qe=.42,$e=.26,et=de.map((e,t)=>Ke+t*(We-Ke*2)/(de.length-1));function tt(e,t){let n=e[t]??ue;return Math.max(0,Math.min(100,n))}function nt(e){return Q-(e-50)/50*qe}function rt(e){return e.length>8&&e.includes(` `)?e.split(` `):[e]}function it({x:e,label:t,above:n,leaning:r,neutral:i,magnitude:a}){let o=rt(t),s=n?Je:Ye-(o.length-1)*Xe,c=r&&!i,l=i?Qe:c?.62+.38*a:$e;return(0,J.jsx)(`text`,{x:e,y:s,textAnchor:`middle`,fontSize:10,fontWeight:c?600:400,fill:`currentColor`,fillOpacity:l,children:o.map((t,n)=>(0,J.jsx)(`tspan`,{x:e,dy:n===0?0:Xe,children:t},t))})}function at({values:e,className:t}){let n=H(),r=de.map(t=>{let n=tt(e,t.id),r=n-50;return{axis:t,value:n,lean:r,neutral:Math.abs(r)<=Ze,magnitude:Math.abs(r)/50}}),[i,a]=(0,q.useState)(+!!n);(0,q.useEffect)(()=>{if(n){a(1);return}let e=h(0,1,{type:`spring`,stiffness:140,damping:16,onUpdate:a});return()=>e.stop()},[n]);let o=r.map(e=>nt(50+(e.value-50)*i)),s=r.map(({axis:e,lean:t,neutral:n,magnitude:r})=>n?`${e.left} and ${e.right} balanced`:`${Math.round(r*100)}% ${t>0?e.right:e.left}`).join(`, `);return(0,J.jsxs)(`svg`,{viewBox:`0 0 ${We} ${Ge}`,role:`img`,"aria-label":`Personality: ${s}`,className:t,children:[(0,J.jsx)(`line`,{x1:Ke-14,y1:Q,x2:We-Ke+14,y2:Q,stroke:`currentColor`,strokeOpacity:.3,strokeWidth:1,strokeDasharray:`2 4`}),r.map(({axis:e},t)=>(0,J.jsx)(`rect`,{x:et[t]-$/2,y:Math.min(Q,o[t])-$/2,width:$,height:Math.abs(o[t]-Q)+$,rx:$/2,fill:`var(--card-accent)`},e.id)),r.map(({axis:e,lean:t,neutral:n,magnitude:r},i)=>(0,J.jsxs)(q.Fragment,{children:[(0,J.jsx)(it,{x:et[i],label:e.right,above:!0,leaning:t>0,neutral:n,magnitude:r}),(0,J.jsx)(it,{x:et[i],label:e.left,above:!1,leaning:t<0,neutral:n,magnitude:r})]},e.id))]})}var ot={personality:y,schedules:u,superpowers:x,memory:l,library:_,workspace:g,contacts:b,channels:ge},st={personality:`rounded-3xl`,schedules:`rounded-3xl`,superpowers:`rounded-[1.25rem_2.75rem_1.25rem_2.5rem]`,channels:`rounded-[2.25rem_1rem_2.5rem_1.25rem]`,contacts:`rounded-[1rem_2.5rem_1.25rem_2.75rem]`,workspace:`rounded-[1.25rem_2.5rem_1rem_2.5rem]`},ct=720,lt=480,ut=[`superpowers`,`memory`,`library`,`workspace`,`contacts`,`channels`],dt={personality:`Go ahead, tweak my soul`,superpowers:`Everything I know how to do`,memory:`Everything I remember`,library:`The apps and docs I've made for you`,schedules:`What I do on repeat`,workspace:`All the files that power me`,contacts:`The people I know and trust`,channels:`All the places you can reach me`};function ft(e){return!Number.isFinite(e)||e<=0?`—`:new Date(e).toLocaleString(void 0,{month:`short`,day:`numeric`,hour:`numeric`,minute:`2-digit`})}var pt=280,mt=140,ht=.44,gt=1118,_t=300,vt=.09,yt=14,bt=5,xt=22,St={"--card-bg":`#24292e`,"--card-feature-bg":`rgba(23, 25, 28, 0.35)`,"--card-hover":`#2d3339`,"--card-accent":`#bd4900`,"--card-flood-fg":`#fdfdfc`,"--content-default":`#fdfdfc`,"--content-strong":`#fdfdfc`,"--content-secondary":`#a9b2bb`,"--content-tertiary":`#8d99a5`,"--border-base":`rgba(255, 255, 255, 0.08)`};function Ct({assistantId:e}){let t=i(),{components:n,traits:r,customImageUrl:o,isLoading:s,invalidate:c}=A(e),l=fe(e),u=B(),d=E(),f=Te(e,{supportsPlugins:u,isNativeMobile:d}),p=z(a({...R(e),enabled:!d}).data),m={...f,memory:p===void 0?void 0:{value:p,label:p===1?`memory`:`memories`}},[h,g]=(0,q.useState)(!1),[_,v]=(0,q.useState)(!1),y=(0,q.useCallback)(n=>{v(!0),Se(e,n).then(r=>{if(v(!1),r){t.invalidateQueries({queryKey:he(e)});let{version:r,assistantId:i,setIdentity:a}=T.getState();a(n,r,i),w.success(`Say hi to ${n}!`)}else w.error(`The rename didn't go through. Please try again.`)})},[e,t]),b=(0,q.useCallback)(()=>{c()},[c]),x=Ue({isNativeMobile:d}),S=s||l.isLoading,C=me(n,r),D=!!o&&!C;return(0,J.jsxs)(G,{bleed:!D,className:D?`relative overflow-hidden`:void 0,style:C?{backgroundColor:`color-mix(in srgb, ${C} ${yt}%, var(--surface-overlay))`}:void 0,children:[D&&o&&(0,J.jsx)(`div`,{"aria-hidden":`true`,className:`pointer-events-none absolute inset-0`,children:(0,J.jsx)(`img`,{src:o,alt:``,className:`h-full w-full scale-110 object-cover blur-[60px] brightness-[0.65]`})}),S?(0,J.jsx)(`div`,{className:`relative flex flex-1 items-center justify-center`,children:(0,J.jsx)(`div`,{className:`h-6 w-6 animate-spin rounded-full border-2`,style:{borderColor:`var(--border-base)`,borderTopColor:`var(--content-tertiary)`}})}):(0,J.jsx)(Et,{components:n,traits:r,customImageUrl:o,name:l.data?.identity?.name||`Assistant`,sections:x,stats:m,avatarHex:C,photoBackdrop:D,isRenaming:_,onOpenAvatarModal:()=>g(!0)}),(0,J.jsx)(_e,{open:h,onClose:()=>g(!1),assistantId:e,components:n,traits:r,customImageUrl:o,onSaveCharacter:b,onUploadImage:b,assistantName:l.data?.identity?.name||`Assistant`,onRenameSubmit:y,isRenaming:_})]})}function wt({section:e,stat:t,gridArea:n,cardStyle:i,hoverFill:a,mini:o,flooded:c=!1,floodOrigin:l,photoBackdrop:u=!1,linkRef:d,onHoverChange:f}){let p=ot[e.key]??y,[m,h]=(0,q.useState)({x:50,y:100});l&&l!==m&&h(l);let g=c?`text-[var(--card-flood-fg)]`:`text-[var(--content-default)]`,_=c?`text-[var(--card-flood-fg)]`:`text-[var(--content-strong)]`,v=c?`text-[var(--card-flood-fg)] opacity-75`:`text-[var(--content-secondary)]`,b=(0,J.jsx)(V.span,{"aria-hidden":`true`,className:`pointer-events-none absolute inset-0`,style:{backgroundColor:`var(--card-accent)`},initial:!1,animate:{clipPath:c?`circle(141% at ${m.x}% ${m.y}%)`:`circle(0% at ${m.x}% ${m.y}%)`},transition:c?{duration:.5,ease:`easeOut`}:{duration:.35,ease:`easeIn`}});if(o){let n=t?.value===void 0?t?.text:`${t.value} ${t.label}`;return(0,J.jsx)(s.Root,{asChild:!0,bordered:!1,elevated:!0,clipContents:!0,className:`rounded-[12px] border-0 bg-[var(--card-bg)]`,children:(0,J.jsxs)(r,{to:e.to,ref:d,onMouseEnter:()=>f?.(!0),onMouseLeave:()=>f?.(!1),className:`relative flex h-full flex-1 cursor-pointer items-center gap-2 px-4 py-2.5 transition-all duration-150 active:scale-[0.98] ${a?`hover:bg-[var(--card-hover)]`:``}`,children:[b,(0,J.jsx)(`span`,{className:`relative flex h-10 w-10 shrink-0 items-center justify-center`,children:(0,J.jsx)(p,{className:`h-5 w-5 transition-colors duration-300 ${v}`,"aria-hidden":!0})}),(0,J.jsxs)(`span`,{className:`relative flex min-w-0 flex-col gap-0`,children:[(0,J.jsx)(`span`,{className:`truncate text-title-small leading-normal transition-colors duration-300 ${_}`,children:e.label}),n&&(0,J.jsx)(`span`,{className:`truncate text-[11px] leading-normal font-medium transition-colors duration-300 ${c?`text-[var(--card-flood-fg)] opacity-75`:`text-[var(--content-tertiary)]`}`,children:n})]})]})})}let x=e.key===`personality`||e.key===`schedules`;return(0,J.jsx)(s.Root,{asChild:!0,bordered:!x,elevated:!x,className:`${st[e.key]??``} ${x?`border bg-[var(--card-feature-bg,var(--card-bg))] ${u?`border-transparent backdrop-blur-[32px]`:`border-[var(--border-base)]`}`:`bg-[var(--card-bg)]`}`,style:{...n?{gridArea:n}:{},...i},children:(0,J.jsxs)(r,{to:e.to,ref:d,onMouseEnter:()=>f?.(!0),onMouseLeave:()=>f?.(!1),className:`relative flex h-full w-full cursor-pointer flex-col justify-between gap-3 overflow-hidden p-5 text-left transition-all duration-150 active:scale-[0.98] ${a?`hover:bg-[var(--card-hover)]`:``}`,children:[b,n&&t?.signature&&(0,J.jsxs)(`span`,{className:`absolute inset-x-5 top-14 bottom-9 flex flex-col justify-start transition-colors duration-300 ${c?`text-[var(--card-flood-fg)]`:u?`text-[var(--content-default)]`:`text-[var(--content-secondary)]`}`,style:c?{"--card-accent":`var(--card-flood-fg)`}:void 0,children:[(0,J.jsx)(`span`,{"aria-hidden":!0,className:`max-h-10 flex-1`}),(0,J.jsx)(at,{values:t.signature,className:`h-auto max-h-full w-full`})]}),x?(0,J.jsxs)(`span`,{className:`relative flex items-center gap-2`,children:[(0,J.jsx)(p,{className:`h-5 w-5 transition-colors duration-300 ${g}`,"aria-hidden":!0}),(0,J.jsx)(`span`,{className:`text-body-medium-default transition-colors duration-300 ${g}`,children:e.label})]}):(0,J.jsxs)(`span`,{className:`relative flex flex-col items-start gap-1.5`,children:[(0,J.jsx)(p,{className:`h-6 w-6 transition-colors duration-300 ${g}`,"aria-hidden":!0}),(0,J.jsxs)(`span`,{className:`flex flex-col`,children:[(0,J.jsx)(`span`,{className:`text-body-medium-default transition-colors duration-300 ${g}`,children:e.label}),(0,J.jsx)(`span`,{className:`text-[13px] transition-colors duration-300 ${v}`,children:e.description})]})]}),n&&t?.schedules&&t.schedules.items.length>0&&(0,J.jsxs)(`span`,{className:`relative flex min-h-0 flex-1 flex-col justify-start gap-2 overflow-hidden py-2`,children:[t.schedules.items.map(e=>(0,J.jsxs)(`span`,{className:`flex flex-col gap-0.5 rounded-xl px-3 py-2 transition-colors duration-300`,style:{backgroundColor:c?`color-mix(in srgb, var(--card-flood-fg) 12%, transparent)`:`color-mix(in srgb, var(--content-default) 5%, transparent)`},children:[(0,J.jsx)(`span`,{className:`truncate text-[13px] font-medium transition-colors duration-300 ${g}`,children:e.name}),(0,J.jsxs)(`span`,{className:`truncate text-[12px] transition-colors duration-300 ${v}`,children:[e.cadence,` · next `,ft(e.nextRunAt)]})]},e.id)),t.schedules.more>0&&(0,J.jsxs)(`span`,{className:`text-[12px] font-medium transition-colors duration-300 ${v}`,children:[`View `,t.schedules.more,` more…`]})]}),t?.value===void 0?t?.text?(0,J.jsx)(`span`,{className:`relative text-[14px] font-medium italic transition-colors duration-300 ${g}`,children:t.text}):null:(0,J.jsxs)(`span`,{className:`relative flex flex-col leading-none`,children:[(0,J.jsx)(`span`,{className:`text-[3.25rem] transition-colors duration-300 max-lg:text-[2.5rem] ${_}`,style:{fontFamily:`var(--font-serif)`},children:t.value}),(0,J.jsx)(`span`,{className:`mt-1 text-[13px] transition-colors duration-300 ${v}`,children:t.label})]})]})})}function Tt({components:e,traits:t,customImageUrl:n,name:r,avatarSize:i,isRenaming:a,onEdit:o}){return(0,J.jsxs)(`div`,{className:`relative z-[1] flex flex-col items-center justify-center gap-5`,children:[(0,J.jsx)(Ve,{name:r,isRenaming:a}),(0,J.jsx)(`button`,{type:`button`,"aria-label":`Update avatar and name`,title:`Update avatar and name`,onClick:o,className:`avatar-edit-cursor outline-none keyboard-focus:ring-2 keyboard-focus:ring-[var(--ring)]`,children:n&&!t?(0,J.jsx)(`img`,{src:n,alt:``,width:i,height:i,className:`rounded-[32px] object-cover`,style:{width:i,height:i}}):(0,J.jsx)(ae,{components:e,traits:t,customImageUrl:n,size:i,interactive:!0})})]})}function Et({components:e,traits:t,customImageUrl:n,name:i,sections:a,stats:o,avatarHex:c,photoBackdrop:l,isRenaming:d,onOpenAvatarModal:f}){let{ref:m,size:h}=ce(),g=H(),_=h.w>=ct&&h.h>=lt,b=Math.round(Math.min(pt,Math.max(mt,Math.min(h.w,h.h)*.32))),x=!!(c&&e&&t),S=_&&!g&&x,C=(0,q.useRef)(null),w=(0,q.useRef)({}),[T,E]=(0,q.useState)(null),D=(0,q.useCallback)(e=>{C.current=e,m(e)},[m]),O=(0,q.useCallback)((e,t)=>{if(!S)return;if(!t){E(null);return}let n=C.current,r=w.current[e];if(!n||!r)return;let i=n.getBoundingClientRect(),a=r.getBoundingClientRect(),o={left:a.left-i.left,top:a.top-i.top,width:a.width,height:a.height},s=(o.left+o.width/2-i.width/2)/(i.width/2),c=(o.top+o.height/2-i.height/2)/(i.height/2),l=Me(o,Math.abs(s)>Math.abs(c)?s<0?`right`:`left`:c<0?`bottom`:`top`,{x:i.width/2,y:i.height/2});E({key:e,target:l,origin:{x:l.peek.x/o.width*100,y:l.peek.y/o.height*100}})},[S]),k=S?T:null,A=k?dt[k.key]??null:null,ee=l?St:{"--card-bg":c?`color-mix(in srgb, ${c} var(--card-tint-pct, ${bt}%), var(--card-surface, var(--surface-lift)))`:`var(--surface-lift)`,"--card-feature-bg":c?`color-mix(in srgb, var(--card-accent) 28%, var(--card-surface, var(--surface-lift)))`:`var(--surface-lift)`,"--card-hover":c?`color-mix(in srgb, ${c} ${xt}%, var(--card-surface, var(--surface-lift)))`:`var(--surface-hover)`,"--card-accent":c??`var(--content-default)`,"--card-flood-fg":c?ne(c):`var(--content-default)`},te=(h.h-8)/(1-vt),j=Math.round(Math.min(gt,te,Math.max(_t,h.w*ht))),M=Math.round(j*vt),N=(0,J.jsx)(Tt,{components:e,traits:t,customImageUrl:n,name:i,avatarSize:b,isRenaming:d,onEdit:f});if(!_){let e=a.find(e=>e.key===`schedules`),t=a.find(e=>e.key===`personality`),n=a.filter(e=>e.key!==`schedules`&&e.key!==`personality`),i=o.schedules?.schedules,c=i?i.items.length+i.more:void 0,d=o.personality?.signature,f=`w-full rounded-[12px] border bg-[var(--card-feature-bg,var(--card-bg))] ${l?`border-transparent backdrop-blur-[32px]`:`border-[var(--border-base)]`}`;return(0,J.jsxs)(`div`,{ref:D,className:`identity-bento relative flex min-h-0 flex-1 flex-col items-center gap-6 overflow-y-auto px-2 py-4`,style:l?{...ee,"--card-bg":`#17191c`}:ee,children:[N,(0,J.jsxs)(`div`,{className:`flex w-full max-w-md shrink-0 flex-col gap-2`,children:[e&&(0,J.jsx)(s.Root,{asChild:!0,bordered:!1,elevated:!1,clipContents:!0,className:f,children:(0,J.jsxs)(r,{to:e.to,className:`flex w-full cursor-pointer items-center gap-2 p-4 transition-all duration-150 hover:bg-[var(--card-hover)] active:scale-[0.98]`,children:[(0,J.jsx)(u,{className:`h-5 w-5 shrink-0 text-[var(--content-default)]`,"aria-hidden":!0}),(0,J.jsxs)(`span`,{className:`flex min-w-0 flex-1 items-center gap-2`,children:[(0,J.jsx)(`span`,{className:`truncate text-body-medium-default text-[var(--content-default)]`,children:e.label}),c!==void 0&&(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`span`,{className:`h-[3px] w-[3px] shrink-0 rounded-full bg-[var(--content-tertiary)]`,"aria-hidden":!0}),(0,J.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:c})]})]}),(0,J.jsx)(p,{className:`h-4 w-4 shrink-0 text-[var(--content-default)]`,"aria-hidden":!0})]})}),t&&(0,J.jsx)(s.Root,{asChild:!0,bordered:!1,elevated:!1,clipContents:!0,className:f,children:(0,J.jsxs)(r,{to:t.to,className:`flex w-full cursor-pointer flex-col gap-4 px-4 pt-4 pb-6 transition-all duration-150 hover:bg-[var(--card-hover)] active:scale-[0.98]`,children:[(0,J.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,J.jsx)(y,{className:`h-5 w-5 text-[var(--content-default)]`,"aria-hidden":!0}),(0,J.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-default)]`,children:t.label})]}),d&&(0,J.jsx)(`span`,{className:`flex items-center justify-center ${l?`text-[var(--content-default)]`:`text-[var(--content-secondary)]`}`,children:(0,J.jsx)(at,{values:d,className:`h-auto w-full`})})]})}),(0,J.jsx)(`div`,{className:`grid grid-cols-2 gap-2`,children:n.map(e=>(0,J.jsx)(wt,{section:e,stat:o[e.key],hoverFill:!0,mini:!0},e.key))})]})]})}let P=a.filter(e=>!ut.includes(e.key)),F=a.filter(e=>ut.includes(e.key)),I=[1.15,1,.45,.3],L=(h.h-(I.length-1)*12)/I.reduce((e,t)=>e+t,0),R=Math.round(L*I[0]),z=(x?[`"personality greeting greeting greeting schedules"`,`". . . . schedules"`,`". . . . ."`,`"smalls smalls smalls smalls smalls"`]:[`"personality greeting greeting greeting schedules"`,`". avatar avatar avatar schedules"`,`". avatar avatar avatar ."`,`"smalls smalls smalls smalls smalls"`]).join(` `),B=e=>({section:e,stat:o[e.key],hoverFill:!S,photoBackdrop:l,flooded:k?.key===e.key,floodOrigin:k?.key===e.key?k.origin:void 0,linkRef:t=>{w.current[e.key]=t},onHoverChange:t=>O(e.key,t)});return(0,J.jsxs)(`div`,{ref:D,className:`identity-bento relative grid min-h-0 flex-1 gap-3 overflow-hidden`,style:{...ee,gridTemplateColumns:`1.55fr 1fr 1fr 1fr 1.55fr`,gridTemplateRows:I.map(e=>`${e}fr`).join(` `),gridTemplateAreas:z},children:[x?(0,J.jsx)(V.div,{className:`pointer-events-none absolute left-1/2 z-0`,style:{width:j,height:j,bottom:-M,x:`-50%`},initial:!1,animate:k?{scale:.4,opacity:0}:{scale:1,opacity:1},transition:k?{duration:.15}:{delay:.25,type:`spring`,stiffness:210,damping:18},children:(0,J.jsxs)(`div`,{role:`button`,tabIndex:0,"aria-label":`Update avatar and name`,title:`Update avatar and name`,onClick:f,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),f())},className:`avatar-edit-cursor group pointer-events-auto relative h-full w-full scale-100 outline-none transition-transform duration-200 ease-out hover:scale-105 keyboard-focus:ring-2 keyboard-focus:ring-[var(--ring)]`,children:[(0,J.jsx)(ae,{components:e,traits:t,customImageUrl:n,size:j,interactive:!0}),(0,J.jsx)(`span`,{"aria-hidden":`true`,className:`pointer-events-none absolute inset-0 flex items-center justify-center opacity-0 transition-opacity duration-150 group-hover:opacity-100`,children:(0,J.jsx)(`span`,{className:`flex h-11 w-11 items-center justify-center rounded-full bg-black/40`,children:(0,J.jsx)(v,{className:`h-5 w-5 text-white`})})})]})}):(0,J.jsx)(`div`,{className:`relative z-[1] flex items-start justify-center`,style:{gridArea:`avatar`},children:(0,J.jsx)(`button`,{type:`button`,"aria-label":`Update avatar and name`,title:`Update avatar and name`,onClick:f,className:`avatar-edit-cursor rounded-full outline-none keyboard-focus:ring-2 keyboard-focus:ring-[var(--ring)]`,children:n?(0,J.jsx)(`img`,{src:n,alt:``,width:b,height:b,className:`rounded-full object-cover`,style:{width:b,height:b}}):(0,J.jsx)(ae,{components:e,traits:t,customImageUrl:null,size:b})})}),(0,J.jsx)(`div`,{className:`relative z-[1] flex items-center justify-center`,style:{gridArea:`greeting`},children:(0,J.jsx)(Ve,{name:i,isRenaming:d,overrideText:A})}),S&&c&&e&&t&&(0,J.jsx)(Le,{hex:c,components:e,traits:t,target:k?.target??null}),P.map(e=>(0,J.jsx)(wt,{...B(e),gridArea:e.key,cardStyle:e.key===`schedules`?{alignSelf:`start`,height:`auto`,minHeight:R}:void 0},e.key)),(0,J.jsx)(`div`,{className:`flex min-h-0 items-stretch gap-3`,style:{gridArea:`smalls`},children:F.map(e=>(0,J.jsx)(wt,{...B(e),mini:!0},e.key))})]})}function Dt(){return(0,J.jsx)(Ct,{assistantId:U()})}function Ot(){return(0,J.jsx)(Dt,{},U())}export{Ot as IdentityPageRoute};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./createLucideIcon-C1mdGPB9.js";var t=e(`inbox`,[[`polyline`,{points:`22 12 16 12 14 15 10 15 8 12 2 12`,key:`o97t9d`}],[`path`,{d:`M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z`,key:`oot6mr`}]]);export{t};
|