@vellumai/web 0.11.6-staging.2 → 0.11.6-staging.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{Trans-v2rRKTPL.js → Trans-CBhhVbOk.js} +1 -1
- package/dist/assets/{about-page-Dw0Uwev9.js → about-page-hURQzaZb.js} +1 -1
- package/dist/assets/{account-page-DlvLIypA.js → account-page-BUHRzIQn.js} +1 -1
- package/dist/assets/{acp-run-detail-panel-Iio-GZu9.js → acp-run-detail-panel-CVPDXyP6.js} +1 -1
- package/dist/assets/{activity-steps-panel-PJzUgOtB.js → activity-steps-panel-BzTDFCQ4.js} +1 -1
- package/dist/assets/{add-credential-modal-D7srPAPB.js → add-credential-modal-aeUdZtSp.js} +1 -1
- package/dist/assets/{add-credits-modal-DeNURe8K.js → add-credits-modal-CtS-PzoH.js} +1 -1
- package/dist/assets/{ai-page-DD80M99s.js → ai-page-C6zXOVyP.js} +1 -1
- package/dist/assets/{android-billing-handoff-Bh58jm76.js → android-billing-handoff-BoSQm4gg.js} +1 -1
- package/dist/assets/{api-key-screen-z0y8OmyR.js → api-key-screen-DauZKmq9.js} +1 -1
- package/dist/assets/{app-card-BhEYWzKz.js → app-card-B5AFFdUO.js} +1 -1
- package/dist/assets/{assistant-status-panel-DVk8iz06.js → assistant-status-panel-DYkXgK0D.js} +1 -1
- package/dist/assets/{auth-store-CjmqULlA.js → auth-store-BVjw4Y6z.js} +2 -2
- package/dist/assets/{auth-welcome-screen-CZqGjUcN.js → auth-welcome-screen-DbDu2DKV.js} +1 -1
- package/dist/assets/{avatar-random-BnLwN7Id.js → avatar-random-BOjdaclE.js} +1 -1
- package/dist/assets/background-task-detail-panel-BWAwy3I3.js +1 -0
- package/dist/assets/{billing-page-CKwUJ6q-.js → billing-page-FxI0W3-_.js} +3 -3
- package/dist/assets/{bookmarks-page-Dx3rKSni.js → bookmarks-page-6p-UochF.js} +1 -1
- package/dist/assets/{browser-BEhg-q3w.js → browser-BaGW19xY.js} +2 -2
- package/dist/assets/{build-state-B8LOllfu.js → build-state-ChDL0BPH.js} +1 -1
- package/dist/assets/{bundle-confirm-page-6fk5bxhm.js → bundle-confirm-page-9jTfMrek.js} +1 -1
- package/dist/assets/{channels-page-route-oOKo0PJl.js → channels-page-route-DBtIRtsL.js} +1 -1
- package/dist/assets/{chat-DWHDLB4P.js → chat-4LXYoAUR.js} +2 -2
- package/dist/assets/{chat-D5S5-COJ.js → chat-BG7p3zq1.js} +2 -2
- package/dist/assets/{chat-CBvs4_4y.js → chat-Bfo3dMB3.js} +1 -1
- package/dist/assets/{chat-avatar-UYWpN1Us.js → chat-avatar-DM2DBsml.js} +1 -1
- package/dist/assets/{chat-markdown-message-u0xAGkrJ.js → chat-markdown-message-CTuuKxjN.js} +1 -1
- package/dist/assets/{checkout-continuation-BWg-BcSF.js → checkout-continuation-LLv0HLko.js} +1 -1
- package/dist/assets/{checkout-page-CbYIkUzX.js → checkout-page-B14XHmIb.js} +1 -1
- package/dist/assets/checkout-return-target-BX6588K4.js +1 -0
- package/dist/assets/{client-perf-HISWGXqe.js → client-perf-CL-Sfpnu.js} +1 -1
- package/dist/assets/{command-palette-H8-iGtrr.js → command-palette-C0x3z7aQ.js} +1 -1
- package/dist/assets/{command-palette-window-page-BhTJGf5Z.js → command-palette-window-page-BShi7rwo.js} +1 -1
- package/dist/assets/common-C7YGlfJZ.js +1 -0
- package/dist/assets/common-DFfCPRFe.js +1 -0
- package/dist/assets/{community-page-D5Arbqn5.js → community-page-ChiOX6Op.js} +1 -1
- package/dist/assets/{companion-surface-page-ocmWMzcw.js → companion-surface-page-HYtLs0-t.js} +1 -1
- package/dist/assets/{composer-settings-C-0rpzHA.js → composer-settings-BCehrZgj.js} +1 -1
- package/dist/assets/{connect-page-mZ1hzLhX.js → connect-page-tyHxf7TL.js} +1 -1
- package/dist/assets/{consent-controls-BO5Fuj76.js → consent-controls-C7U2N-h8.js} +1 -1
- package/dist/assets/consent-cuDRWUkB.js +1 -0
- package/dist/assets/{contacts-gateway-DoiRPJZq.js → contacts-gateway-BLGKdcif.js} +1 -1
- package/dist/assets/{contacts-page-route-BsBSdQ8v.js → contacts-page-route-KVjx4fqm.js} +1 -1
- package/dist/assets/{conversation-cache-DOQdWaTg.js → conversation-cache-CrybogTL.js} +1 -1
- package/dist/assets/{conversation-navigation-116d0b9Q.js → conversation-navigation-Ck_iLhjv.js} +1 -1
- package/dist/assets/{conversation-queries-tt9gZId5.js → conversation-queries-Clrll8jF.js} +1 -1
- package/dist/assets/{conversation-selection-DKq2AZf8.js → conversation-selection-BVLi6RIL.js} +1 -1
- package/dist/assets/{copy-to-clipboard-CIyU3zmr.js → copy-to-clipboard-Blihejp9.js} +1 -1
- package/dist/assets/{credential-entry-page-Dd7upL78.js → credential-entry-page-Cs6FHnUn.js} +1 -1
- package/dist/assets/{credentials-page-BVljsi9m.js → credentials-page-D8G-44GI.js} +1 -1
- package/dist/assets/{csv-preview-CeNy614y.js → csv-preview-rpZix2b7.js} +1 -1
- package/dist/assets/debug-page-BMqKvkSo.js +4 -0
- package/dist/assets/{deploy-dialogs-TTQiNB6y.js → deploy-dialogs-DqkTJUGk.js} +1 -1
- package/dist/assets/{deploy-store-Cz20nHuj.js → deploy-store-FijtU8HL.js} +1 -1
- package/dist/assets/detail-panel-stop-button-ClfJeo-s.js +1 -0
- package/dist/assets/{developer-page-DBUNokt3.js → developer-page-C7o31rYB.js} +1 -1
- package/dist/assets/{diagnostics-Bi4k4B8U.js → diagnostics-BC7vRbDB.js} +1 -1
- package/dist/assets/{dictation-overlay-page-BmayMkea.js → dictation-overlay-page-sfEwzU14.js} +1 -1
- package/dist/assets/{doctor-handoff-store-Do2X2LvI.js → doctor-handoff-store-DEirTOZw.js} +1 -1
- package/dist/assets/{document-viewer-container-CrbF9Z_4.js → document-viewer-container-yyhVIyAB.js} +2 -2
- package/dist/assets/{document-viewer-page-DqN6k_UB.js → document-viewer-page-Co_sxuvK.js} +1 -1
- package/dist/assets/effective-timezone-BW38Gdmx.js +1 -0
- package/dist/assets/{emails-page-BSDs_cnf.js → emails-page-a1sfkbkL.js} +1 -1
- package/dist/assets/{esm-Dn6OqJ4P.js → esm-BTQ42Hgz.js} +2 -2
- package/dist/assets/{esm-B7hQuLYV.js → esm-BnXPDdij.js} +2 -2
- package/dist/assets/{esm-BN5PWtBB.js → esm-CC077SPL.js} +2 -2
- package/dist/assets/{esm-B9__Mvsi.js → esm-CbZfwR7m.js} +2 -2
- package/dist/assets/esm-DA5sciAy.js +2 -0
- package/dist/assets/{esm-aHElu69l.js → esm-DbODHbQp.js} +2 -2
- package/dist/assets/{esm-Bcw5HdPN.js → esm-Doko4a-G.js} +2 -2
- package/dist/assets/{external-anchor-DKrqdxff.js → external-anchor-CJ2uCBN2.js} +1 -1
- package/dist/assets/{feed-item-status-actions-CCNKonlC.js → feed-item-status-actions-Bw41rlaj.js} +1 -1
- package/dist/assets/{file-editor-Bn3fjyeW.js → file-editor-Cx3p3Rxf.js} +1 -1
- package/dist/assets/{file-markdown-8-h2vx0G.js → file-markdown-D43Nsqm2.js} +1 -1
- package/dist/assets/{first-run-scope-lw_VDLUA.js → first-run-scope-DITgHc6G.js} +1 -1
- package/dist/assets/{format-usd-B9okvVIq.js → format-usd-Be34KtzB.js} +1 -1
- package/dist/assets/{funnel-events-D-InjbTX.js → funnel-events-Dl6Nt7nA.js} +1 -1
- package/dist/assets/{general-page-DppPvamB.js → general-page-rg_u_yPE.js} +1 -1
- package/dist/assets/{get-memory-stats-BhVFtDQg.js → get-memory-stats-DxspWLxk.js} +1 -1
- package/dist/assets/{haptics-DRyt58c5.js → haptics-BS-glrYv.js} +2 -2
- package/dist/assets/{hatching-screen-1ZOPcV42.js → hatching-screen-8lXCy9WG.js} +1 -1
- package/dist/assets/{home-page-route-D1QbN6M5.js → home-page-route-QunjBmtS.js} +1 -1
- package/dist/assets/{hosting-screen-C-uvieVy.js → hosting-screen-B-5gejYX.js} +1 -1
- package/dist/assets/{i18n-BDfnKs41.js → i18n-BtV8MCsZ.js} +3 -3
- package/dist/assets/{identity-BueQJAR8.js → identity-_6tLszkL.js} +1 -1
- package/dist/assets/{identity-page-route-BOQd6ko9.js → identity-page-route-B0XGpYIE.js} +1 -1
- package/dist/assets/index-C9XKdblY.css +2 -0
- package/dist/assets/{index-CfSEZ8JN.js → index-Gjnx86x6.js} +3 -3
- package/dist/assets/{ingest-BD3GYGpk.js → ingest-OJG7HVUh.js} +1 -1
- package/dist/assets/{inspect-page-CGsWZzun.js → inspect-page-bs_j1c9j.js} +3 -3
- package/dist/assets/{integrations-page-D5H6XJIt.js → integrations-page-D7ENik74.js} +1 -1
- package/dist/assets/{intelligence-layout-_FM08eqn.js → intelligence-layout-gaexcakY.js} +1 -1
- package/dist/assets/{invalidate-memory-queries-DqdhPLUe.js → invalidate-memory-queries-DWuNUXFq.js} +1 -1
- package/dist/assets/{latest-assistant-text-BeS_23nt.js → latest-assistant-text-DCyUvxgH.js} +1 -1
- package/dist/assets/{library-detail-page-DLtBHLA8.js → library-detail-page-DXCZhY4s.js} +1 -1
- package/dist/assets/{library-page-YT1vECkY.js → library-page-CKAu2a08.js} +1 -1
- package/dist/assets/{local-runtime-upgrade-8SxM3rIp.js → local-runtime-upgrade-BXc9x-7Y.js} +1 -1
- package/dist/assets/{login-flow-B8yCe4pl.js → login-flow-CrSxmLFE.js} +1 -1
- package/dist/assets/{login-page-awRRidw5.js → login-page-uUo0uRmJ.js} +1 -1
- package/dist/assets/{logout-page-nRjDnT8Z.js → logout-page-BYZfOpa1.js} +1 -1
- package/dist/assets/{logs-layout-D8c2JBmw.js → logs-layout-B34XKM-k.js} +1 -1
- package/dist/assets/{markdown-preview-BkK4kDdG.js → markdown-preview-eCDa4paC.js} +1 -1
- package/dist/assets/{media-preview-lY5oZbAH.js → media-preview-1xn1SAn9.js} +1 -1
- package/dist/assets/{memory-page-route-j0Dpopb-.js → memory-page-route-DiVaW98S.js} +1 -1
- package/dist/assets/{memory-router-playground-page-BYD7TF11.js → memory-router-playground-page-DgILWgQu.js} +1 -1
- package/dist/assets/{message-files-panel-aRAyF3Ir.js → message-files-panel-Bv-5dvcD.js} +1 -1
- package/dist/assets/{messages-CCAr4He2.js → messages-BXHTKK_v.js} +1 -1
- package/dist/assets/native-anchor-CmnMg6B6.js +1 -0
- package/dist/assets/{native-biometric-ntyxdDLY.js → native-biometric-DEP8Sr4X.js} +1 -1
- package/dist/assets/{native-file-DhgAhuFu.js → native-file-DlQtjxJn.js} +2 -2
- package/dist/assets/{navigation-resolver-dBlKf1YD.js → navigation-resolver-CRsrd5gh.js} +1 -1
- package/dist/assets/{not-found-DWwWs5dL.js → not-found-BXR_4Uja.js} +1 -1
- package/dist/assets/{notifications-CdfIUmqd.js → notifications-Dcgkgn8Q.js} +1 -1
- package/dist/assets/{notifications-page-DqdfKth8.js → notifications-page-CSH6gHaX.js} +1 -1
- package/dist/assets/{oauth-complete-page-O3DSqE_R.js → oauth-complete-page-Bh6VG8SS.js} +1 -1
- package/dist/assets/{oauth-popup-complete-page-Bax7Z0q9.js → oauth-popup-complete-page-6YLSOCV_.js} +1 -1
- package/dist/assets/{onboarding-store-BsVgs3Ut.js → onboarding-store-BhT1z8Wi.js} +1 -1
- package/dist/assets/{open-workspace-file-Cw5RJCCD.js → open-workspace-file-fIr0qcsc.js} +2 -2
- package/dist/assets/{operational-status-DpG5GDPe.js → operational-status-BdcYEcTh.js} +1 -1
- package/dist/assets/{pairing-page-BAjVwQx2.js → pairing-page-fVI54lsD.js} +1 -1
- package/dist/assets/{pdf-file-preview-DOGYGRl6.js → pdf-file-preview-BjbSLoD9.js} +1 -1
- package/dist/assets/{pdf-preview-CSMjNQyq.js → pdf-preview-xa07R01f.js} +2 -2
- package/dist/assets/{personality-page-DHXw49da.js → personality-page-CK3vkhkl.js} +1 -1
- package/dist/assets/{plans-page-CEKWL3n4.js → plans-page-CuZeAQhx.js} +1 -1
- package/dist/assets/{platform-detection-BVSM8PRh.js → platform-detection-DUeD4WFO.js} +1 -1
- package/dist/assets/{platform-login-notice-Dq3m5QWH.js → platform-login-notice-B2ZwcEYp.js} +1 -1
- package/dist/assets/{platform-loopback-page-pQ4fn0Nn.js → platform-loopback-page-CMnaXj8y.js} +1 -1
- package/dist/assets/{prefs-CXvngLdE.js → prefs-CAMw44jD.js} +1 -1
- package/dist/assets/{preview-skeleton-DA_Jj0Wc.js → preview-skeleton-CLI9ptyu.js} +1 -1
- package/dist/assets/{privacy-page-BMzUBvaJ.js → privacy-page-D-a7l0YY.js} +1 -1
- package/dist/assets/{privacy-screen-Dy6bC1QU.js → privacy-screen-CxwxgE4s.js} +1 -1
- package/dist/assets/{provider-callback-page-DI_iDUZB.js → provider-callback-page-65a2DK0l.js} +1 -1
- package/dist/assets/{provider-key-CXIl3HXm.js → provider-key-CcPF1Zqp.js} +1 -1
- package/dist/assets/{provider-signup-page-CEZYja-E.js → provider-signup-page-BC86aF7W.js} +1 -1
- package/dist/assets/{provisioning-targets-BwwKG7Vs.js → provisioning-targets-CE25g21J.js} +1 -1
- package/dist/assets/{push-registration-DSgQ3jMG.js → push-registration-D0zDMpTx.js} +2 -2
- package/dist/assets/{quick-input-page-DCkaYfUc.js → quick-input-page-DAf2lbri.js} +1 -1
- package/dist/assets/{remove-from-device-dialog-CYJV-5IC.js → remove-from-device-dialog-CXmGFbKk.js} +1 -1
- package/dist/assets/{research-facts-DKRZaLQC.js → research-facts-gT4POsZw.js} +1 -1
- package/dist/assets/{research-mock-page-Y0Hec2hX.js → research-mock-page-B41v4MzE.js} +1 -1
- package/dist/assets/{research-onboarding-route-CREwj2sS.js → research-onboarding-route-CbZ14lCf.js} +1 -1
- package/dist/assets/{research-results-view-CBvWhXB8.js → research-results-view-BHXLkoKK.js} +1 -1
- package/dist/assets/{retire-confirm-dialog-B3ZUAlmZ.js → retire-confirm-dialog-1nxn6f4M.js} +1 -1
- package/dist/assets/{review-terms-screen-7OU_S96U.js → review-terms-screen-BsDHdmoO.js} +1 -1
- package/dist/assets/{routes-DvpgDVCJ.js → routes-Cly3ytK4.js} +9 -9
- package/dist/assets/{runtime-upgrade-banner-lbVqs7Te.js → runtime-upgrade-banner-DC63rkQ7.js} +2 -2
- package/dist/assets/{sandbox-bridge-BkKOlHRs.js → sandbox-bridge-DSJSIgUC.js} +1 -1
- package/dist/assets/{schedules-DCr5HsxY.js → schedules-BZzuRuQs.js} +1 -1
- package/dist/assets/{schedules-5MJ4hhjn.js → schedules-DVOFbt86.js} +1 -1
- package/dist/assets/{schedules-page-DRcO3zq3.js → schedules-page-CjqAP78z.js} +1 -1
- package/dist/assets/{section-membership-CyAaLX8V.js → section-membership-Bma0R_Bn.js} +1 -1
- package/dist/assets/{select-assistant-screen-DJHzqmSj.js → select-assistant-screen-CV_3BKEH.js} +1 -1
- package/dist/assets/{self-hosted-servers-DTLMKzVl.js → self-hosted-servers-BMPYPayb.js} +1 -1
- package/dist/assets/{settings-layout-Brb4OeZD.js → settings-layout-CDRF6b06.js} +1 -1
- package/dist/assets/{settings-navigation-eZSfIWFH.js → settings-navigation-DyFIJJGF.js} +1 -1
- package/dist/assets/{share-feedback-modal-DuppDLIt.js → share-feedback-modal-TnZsiNw9.js} +2 -2
- package/dist/assets/{sidebar-tree-hjulk9XJ.js → sidebar-tree-Y1RDeJ9E.js} +1 -1
- package/dist/assets/{signup-page-pBgqV9xZ.js → signup-page-DRzsOblS.js} +1 -1
- package/dist/assets/{site-favicon-zvd-HIsY.js → site-favicon-DLf2W4xi.js} +1 -1
- package/dist/assets/{skill-detail-page-CB5IciZz.js → skill-detail-page-3Wiz9A7q.js} +1 -1
- package/dist/assets/{skill-detail-panel-CxyyNg-F.js → skill-detail-panel-DbLFuSyn.js} +1 -1
- package/dist/assets/{skills-DGBAogub.js → skills-DASSBxT-.js} +1 -1
- package/dist/assets/{sound-manager-BCNOVpEJ.js → sound-manager-D8p3_c3W.js} +1 -1
- package/dist/assets/{sounds-page-B9l4ortG.js → sounds-page-CWBPL1YA.js} +1 -1
- package/dist/assets/{start-screen-BXejiAHk.js → start-screen-OMf-yHG3.js} +1 -1
- package/dist/assets/status-badge-pill-MTA2Lfk-.js +1 -0
- package/dist/assets/{stt-language-picker-modal-DoiPypZS.js → stt-language-picker-modal-CmeO8yxD.js} +1 -1
- package/dist/assets/{subagent-detail-panel-Dgs09-aR.js → subagent-detail-panel-CUW2rBET.js} +1 -1
- package/dist/assets/{subagent-store-B3w3yLSH.js → subagent-store-BcbcFnS8.js} +1 -1
- package/dist/assets/{superpowers-page-DqtKtLl_.js → superpowers-page-CuvXfGPO.js} +1 -1
- package/dist/assets/{swipe-action-reveal-rwiWQgU_.js → swipe-action-reveal-BhA-hrfj.js} +1 -1
- package/dist/assets/{system-events-page-DVQ_Igth.js → system-events-page-tEAEdDzA.js} +1 -1
- package/dist/assets/{telegram-setup-wizard-CYy9zEtc.js → telegram-setup-wizard-BT6u6vcb.js} +1 -1
- package/dist/assets/{text-preview-DG1TgtrX.js → text-preview-qkra1xEh.js} +1 -1
- package/dist/assets/{theme-preferences-U-DK54R3.js → theme-preferences-ysFQ1QCN.js} +1 -1
- package/dist/assets/{theme-stage-page-DncswvCE.js → theme-stage-page-DiqUiOmJ.js} +1 -1
- package/dist/assets/{threshold-presets-XHj6N666.js → threshold-presets-DF7FTTlD.js} +1 -1
- package/dist/assets/{tiptap-document-editor-CeH50SNN.js → tiptap-document-editor-sg7gdh_H.js} +1 -1
- package/dist/assets/{tool-detail-panel-CjI_rLvP.js → tool-detail-panel-BR3PsmdK.js} +1 -1
- package/dist/assets/{transcript-message-body-shared-DAn7Y7Ac.js → transcript-message-body-shared-DWzxxSaD.js} +1 -1
- package/dist/assets/{trust-rules-api-CpP3h7B2.js → trust-rules-api-eZhPplXW.js} +1 -1
- package/dist/assets/{upgrade-cancel-page-Rayv5lL4.js → upgrade-cancel-page-pljx8YOz.js} +1 -1
- package/dist/assets/{upgrade-success-page-BTYOlmt5.js → upgrade-success-page-CJUETwIe.js} +1 -1
- package/dist/assets/{use-app-theme-CsfqodmR.js → use-app-theme-CaWLhQW_.js} +1 -1
- package/dist/assets/{use-assistant-avatar-CT8Pozwx.js → use-assistant-avatar-C2TgszRj.js} +1 -1
- package/dist/assets/{use-assistant-capability-D_tZY-cd.js → use-assistant-capability-De-35T6E.js} +1 -1
- package/dist/assets/{use-assistant-identity-details-BqNPVmfH.js → use-assistant-identity-details-rXIIiXr1.js} +1 -1
- package/dist/assets/{use-attachment-preview-DuaQSNrO.js → use-attachment-preview-BAX_ivri.js} +2 -2
- package/dist/assets/{use-attachment-squares-Cbx4ZiOb.js → use-attachment-squares-rU9s8st8.js} +1 -1
- package/dist/assets/{use-bookmarks-BZRDuTXA.js → use-bookmarks-BrjNq3T_.js} +1 -1
- package/dist/assets/{use-checkout-dismiss-refresh-D9yXOKh9.js → use-checkout-dismiss-refresh-CjgC7Pck.js} +1 -1
- package/dist/assets/{use-command-palette-sections-BUETm__K.js → use-command-palette-sections-tRUwMswg.js} +1 -1
- package/dist/assets/{use-copy-to-clipboard-IWl9ygbI.js → use-copy-to-clipboard-B4c7SAc-.js} +1 -1
- package/dist/assets/{use-edge-swipe-CAV3Gs1-.js → use-edge-swipe-CCn4_Vm3.js} +1 -1
- package/dist/assets/{use-edge-swipe-back-BgZR4YZn.js → use-edge-swipe-back-xU9GuipH.js} +2 -2
- package/dist/assets/{use-edit-app-BzvFD5ew.js → use-edit-app-DDA6_WrI.js} +1 -1
- package/dist/assets/{use-effective-timezone-DByqidDL.js → use-effective-timezone-BfyKw5_H.js} +1 -1
- package/dist/assets/{use-invite-link-dialog-DRNVCYW4.js → use-invite-link-dialog-CvA_-72H.js} +1 -1
- package/dist/assets/{use-is-org-ready-TE5xIhFU.js → use-is-org-ready-B6oCKWeF.js} +1 -1
- package/dist/assets/{use-onboarding-login-Q4gvH8Wj.js → use-onboarding-login-CJ6HY3Pk.js} +1 -1
- package/dist/assets/{use-platform-assistant-id-8TlYUj7-.js → use-platform-assistant-id-DwSyMaOn.js} +1 -1
- package/dist/assets/{use-platform-gate-PHzS1_gQ.js → use-platform-gate-s29eeyq-.js} +1 -1
- package/dist/assets/{use-return-to-short-circuit-BVG-rqwe.js → use-return-to-short-circuit-Bx5s2Syg.js} +1 -1
- package/dist/assets/{use-save-twilio-credentials-CLM74CvJ.js → use-save-twilio-credentials-Zjhi1c0P.js} +1 -1
- package/dist/assets/{use-side-list-room-Bq836e0c.js → use-side-list-room-BT-2EM5d.js} +1 -1
- package/dist/assets/{use-skill-actions-l1FxBNiT.js → use-skill-actions-BtnAACsE.js} +1 -1
- package/dist/assets/{use-skill-detail-files-CBPqC-XL.js → use-skill-detail-files-B_E6xY9x.js} +1 -1
- package/dist/assets/{use-sticky-profiles-C4JFSief.js → use-sticky-profiles-DpkWeMmN.js} +1 -1
- package/dist/assets/{use-stt-language-selection-CGDAHN7_.js → use-stt-language-selection-BWJdaCRu.js} +1 -1
- package/dist/assets/{use-subagent-card-data-dOGbE8zd.js → use-subagent-card-data-CfuRPesp.js} +1 -1
- package/dist/assets/{use-swipe-horizontal-Bad1Uh4M.js → use-swipe-horizontal-B9YOWcB6.js} +1 -1
- package/dist/assets/use-transcript-message-by-id-DfWH7JRN.js +1 -0
- package/dist/assets/{use-transcript-messages-DIEDHw01.js → use-transcript-messages-CFkvE46_.js} +1 -1
- package/dist/assets/{use-voice-sample-preview-BBqCdK2Z.js → use-voice-sample-preview-B8HUywXz.js} +1 -1
- package/dist/assets/{viewer-store-Dgua7F-U.js → viewer-store-CHptQmkY.js} +1 -1
- package/dist/assets/{voice-page-BYDJEThX.js → voice-page-Dgcf5OOp.js} +1 -1
- package/dist/assets/{voice-providers-note-DpSF3-Ma.js → voice-providers-note-nJKW4coW.js} +1 -1
- package/dist/assets/{weather-forecast-display-MET3csCf.js → weather-forecast-display-_NYO0wBC.js} +1 -1
- package/dist/assets/{web-CQAP3XpT.js → web-C_sL6qhW.js} +1 -1
- package/dist/assets/{web-BANE7hLi.js → web-iI5WHtNC.js} +1 -1
- package/dist/assets/{welcome-screen-Dn7IdxeX.js → welcome-screen-DK4_01J3.js} +1 -1
- package/dist/assets/workflow-detail-panel-TqYAg0bB.js +1 -0
- package/dist/assets/{workflow-store-CA048OMm.js → workflow-store-DH4q15s9.js} +1 -1
- package/dist/assets/{workspace-page-CcIru1nv.js → workspace-page-Dbwb2RCx.js} +1 -1
- package/dist/assets/{workspace-tree-query-Dn-Kjfzx.js → workspace-tree-query-DnEMWZ1K.js} +1 -1
- package/dist/index.html +99 -99
- package/package.json +1 -1
- package/dist/assets/background-task-detail-panel-C45_k5DQ.js +0 -1
- package/dist/assets/checkout-return-target-D-ski0RP.js +0 -1
- package/dist/assets/common-C3fO0bj9.js +0 -1
- package/dist/assets/common-DH_hAtEx.js +0 -1
- package/dist/assets/consent-CSU4nfO3.js +0 -1
- package/dist/assets/debug-page-DpV9vuot.js +0 -4
- package/dist/assets/effective-timezone-BZrvS5yC.js +0 -1
- package/dist/assets/esm-BktaByj8.js +0 -2
- package/dist/assets/index-DC3kfiz5.css +0 -2
- package/dist/assets/native-anchor-C9EuQRVe.js +0 -1
- package/dist/assets/status-badge-pill-B4knVe4X.js +0 -1
- package/dist/assets/use-transcript-message-by-id-D684pai6.js +0 -1
- package/dist/assets/workflow-detail-panel-BUuxWGNn.js +0 -1
- /package/dist/assets/{account-CO0-PUz1.js → account-Cs9SXbU1.js} +0 -0
- /package/dist/assets/{account-B-1qvljd.js → account-DWeaNEN6.js} +0 -0
- /package/dist/assets/{app-types-vvZ3vl-x.js → app-types-CpnkPGh8.js} +0 -0
- /package/dist/assets/{archive-redirect-page-CBu8tqAW.js → archive-redirect-page-DXqjPmpK.js} +0 -0
- /package/dist/assets/{billing-redirect-page-D9L0pZBO.js → billing-redirect-page-l6nC_qa5.js} +0 -0
- /package/dist/assets/{build.umd-CUOzCO1S.js → build.umd-DjyW4NzX.js} +0 -0
- /package/dist/assets/{channels-CPESg8oh.js → channels-DU7UcoR_.js} +0 -0
- /package/dist/assets/{channels-C01LAA9n.js → channels-P8K1t248.js} +0 -0
- /package/dist/assets/{contacts-Czi7DI1x.js → contacts-CotcPejk.js} +0 -0
- /package/dist/assets/{contacts-B34lrFQP.js → contacts-E-8UOrGK.js} +0 -0
- /package/dist/assets/{credential-requests-CuDbx69F.js → credential-requests-BsHMMFoG.js} +0 -0
- /package/dist/assets/{credential-requests-B5yQSkNQ.js → credential-requests-D74qo-et.js} +0 -0
- /package/dist/assets/{danger-zone-redirect-page-DaCIFrKn.js → danger-zone-redirect-page-Cds_krO3.js} +0 -0
- /package/dist/assets/{definitions-DjyY9gkh.js → definitions-BKQ6A5IV.js} +0 -0
- /package/dist/assets/{definitions-CPdqKyW-.js → definitions-Bi8Nex3B.js} +0 -0
- /package/dist/assets/{detail-drawer-BoNujeL5.js → detail-drawer-D-CPwyBO.js} +0 -0
- /package/dist/assets/{devices-redirect-page-C6dlSkhY.js → devices-redirect-page-CeKwKvN-.js} +0 -0
- /package/dist/assets/{emoji-catalog-data-Io_Or5q_.js → emoji-catalog-data-81v3IYMV.js} +0 -0
- /package/dist/assets/{environment-store-DEyTyd0y.js → environment-store-DKl9RR50.js} +0 -0
- /package/dist/assets/{esm-CYQaGt0k.js → esm-BAE-_6f7.js} +0 -0
- /package/dist/assets/{esm-CNQNviBl.js → esm-KUiHjb53.js} +0 -0
- /package/dist/assets/{esm-ORlwcEKV.js → esm-uRwymN1a.js} +0 -0
- /package/dist/assets/{home-BlYbenJA.js → home-C5CVL0Ta.js} +0 -0
- /package/dist/assets/{home-DLr3UreM.js → home-QpGM3cDE.js} +0 -0
- /package/dist/assets/{intelligence-CmTIvIK5.js → intelligence-DNb2No5j.js} +0 -0
- /package/dist/assets/{intelligence-FK_fyZf1.js → intelligence-cL2kPl3v.js} +0 -0
- /package/dist/assets/{keyboard-shortcuts-redirect-page-CHDMDYjr.js → keyboard-shortcuts-redirect-page-BDuYwofA.js} +0 -0
- /package/dist/assets/{library-Xe0N-J_g.js → library-a7r2rPRX.js} +0 -0
- /package/dist/assets/{library-Dy0MR5PM.js → library-mD_34-zu.js} +0 -0
- /package/dist/assets/{link-click-BMBF1BX0.js → link-click-LjKsC7uu.js} +0 -0
- /package/dist/assets/{logs-C01Xe6pR.js → logs-CwEMxFk_.js} +0 -0
- /package/dist/assets/{logs-CLAksTVA.js → logs-DYhiKdQ8.js} +0 -0
- /package/dist/assets/{machine-sizes-CoWjZd83.js → machine-sizes-DOMlCbKb.js} +0 -0
- /package/dist/assets/{onboarding-DLrJvosE.js → onboarding-D2bBWpx1.js} +0 -0
- /package/dist/assets/{onboarding-CrxUN_U9.js → onboarding-DJeJhXd6.js} +0 -0
- /package/dist/assets/{onboarding-step-layout-CVDi6y2-.js → onboarding-step-layout-_Fbi43YU.js} +0 -0
- /package/dist/assets/{page-empty-state-iXCJNtzb.js → page-empty-state-B_nQdAFR.js} +0 -0
- /package/dist/assets/{page-shell-CUnJzpKC.js → page-shell-BHyGukA1.js} +0 -0
- /package/dist/assets/{pdf-DT-N9HWh.js → pdf-a3pPuuVL.js} +0 -0
- /package/dist/assets/{plugin-attribution-CtgwSlw8.js → plugin-attribution-7tkVwdle.js} +0 -0
- /package/dist/assets/{plugin-detail-page-CAQUYhh3.js → plugin-detail-page-D9Qk7GmS.js} +0 -0
- /package/dist/assets/{plugins-page-ONcIfAug.js → plugins-page-Bm0hcoSf.js} +0 -0
- /package/dist/assets/{profile-metadata-DeknMkvV.js → profile-metadata-BPGeIeNj.js} +0 -0
- /package/dist/assets/{radio-card-nav-CgGzva7O.js → radio-card-nav-C67JvVkE.js} +0 -0
- /package/dist/assets/{remote-web-D5jpctdd.js → remote-web-Btj-E-og.js} +0 -0
- /package/dist/assets/{remote-web-DwUlAxnF.js → remote-web-yAGitwPt.js} +0 -0
- /package/dist/assets/{schedules-BAvze-kP.js → schedules-Dd44UKOx.js} +0 -0
- /package/dist/assets/{schedules-B84Gewv0.js → schedules-K8jULmC8.js} +0 -0
- /package/dist/assets/{security-redirect-page-BbJ-8JQE.js → security-redirect-page-C3VbbfyM.js} +0 -0
- /package/dist/assets/{setting-row-w3kD1IkH.js → setting-row-urcByt7n.js} +0 -0
- /package/dist/assets/{settings-CcU8vWuM.js → settings-BggpKBtA.js} +0 -0
- /package/dist/assets/{settings-Ce2mFlFl.js → settings-DSeJ7uGb.js} +0 -0
- /package/dist/assets/{settings-divider-SUwXIK4c.js → settings-divider-CYam_4yQ.js} +0 -0
- /package/dist/assets/{skill-icon-BS3zAgpY.js → skill-icon-D52BIuW4.js} +0 -0
- /package/dist/assets/{skills-page-Cv3KPZrr.js → skills-page-DhKl7Mti.js} +0 -0
- /package/dist/assets/{system-events-redirect-page-lwCsNnQS.js → system-events-redirect-page-BMSQQBAs.js} +0 -0
- /package/dist/assets/{terminal-DmcRqX9y.js → terminal-CazBoirG.js} +0 -0
- /package/dist/assets/{terminal-DPTJVDoh.js → terminal-DP646Xj3.js} +0 -0
- /package/dist/assets/{usage-redirect-page-D_mJtlxQ.js → usage-redirect-page-DBkOdl41.js} +0 -0
- /package/dist/assets/{use-hotkey-recorder-BQEYtl-Y.js → use-hotkey-recorder-IMOc7G5D.js} +0 -0
- /package/dist/assets/{use-supports-credentials-settings-DYi8pPuP.js → use-supports-credentials-settings-BD0GXxL7.js} +0 -0
- /package/dist/assets/{use-truncated-blob-text--przReJr.js → use-truncated-blob-text-DmnckNwK.js} +0 -0
- /package/dist/assets/{web-DzjJIfpd.js → web-8Dh87AZ1.js} +0 -0
- /package/dist/assets/{web-DBVu9-3L.js → web-BAQ66WKm.js} +0 -0
- /package/dist/assets/{web-C9KSKaaC.js → web-BFD28UZm.js} +0 -0
- /package/dist/assets/{web-DUnBtrXJ.js → web-BcIK5wrq.js} +0 -0
- /package/dist/assets/{web-D1RaRfAT.js → web-D0e5_5xl.js} +0 -0
- /package/dist/assets/{web-ClNazDb-.js → web-D4Rr20FV.js} +0 -0
- /package/dist/assets/{web-Br6VELOy.js → web-qqG-3jDd.js} +0 -0
- /package/dist/assets/{workspace-BDcbF2--.js → workspace-Dva7bu2g.js} +0 -0
- /package/dist/assets/{workspace-C8mlGfzN.js → workspace-xgS4oaDo.js} +0 -0
- /package/dist/assets/{xterm-DdHeF_2A.js → xterm-QkObDWKu.js} +0 -0
- /package/dist/assets/{xterm-addon-fit-CoHQbqyC.js → xterm-addon-fit-DIrY4yvs.js} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={configureAutoReload:`Настроить автопополнение`},t={ariaLabel:`Знакомство с компаньоном`,meet:{title:`Это я`,titleNamed:`Я {name}`,body:`Я остаюсь на рабочем столе, даже когда Vellum не видно.`},talk:{title:`Голос`,body:`Начало голосового диалога.`},type:{title:`Текст`,body:`Отправка сообщения отсюда и чтение ответа здесь же.`},menu:{title:`Правый щелчок по компаньону`,body:`Там можно меня спрятать или изменить размер.`},skip:`Пропустить`,next:`Далее`,done:`Понятно`},n={tooltip:`Стоп`},r={badge:`Ошибка 404`,title:`Страница не найдена`,body:`Этой страницы нет или её могли перенести.`,backToAssistant:`Вернуться к ассистенту`,goBack:`Назад`},i={title:`Нагрузка на ресурсы высокая`,body:`Ассистент уже давно работает с повышенной нагрузкой. Обновление плана даёт больше мощности.`,bodyNoUpgrade:`Ассистент уже давно работает с повышенной нагрузкой.`,upgrade:`Обновить план`,dontShowAgain:`Больше не показывать`},a={ariaLabel:`Действия: {name}`},o={windowsNativeDisplayName:`Windows Native Dictation`,windowsNativeSubtitle:`Распознавание речи Windows на устройстве, локально через вспомогательную программу Windows. Работает без сети и не требует API-ключа.`,windowsNativeSetupWarning:`Нужно базовое распознавание речи для языка интерфейса Windows: Параметры > Время и язык > Язык и регион, три точки рядом с языком интерфейса, Параметры языка, в разделе Возможности языка: Базовое распознавание речи.`},s={failed:`Не удалось подключить Claude. Повторите попытку.`,timedOut:`Время ожидания подключения Claude истекло. Повторите попытку.`,startFailed:`Не удалось запустить Connect Claude. Повторите попытку.`,popupBlocked:`Браузер заблокировал вкладку входа. Разрешение всплывающих окон для этого сайта, затем снова Подключить.`,pasteEmpty:`Вставка кода со страницы Claude.`,notStarted:`Сначала запуск сценария Connect Claude.`,exchangeFailed:`Проверьте вставленный ключ и повторите попытку.`},c={file:`Файл`,view:`Вид`,developer:`Разработчик`,help:`Справка`},l={addCreditsModal:e,companionIntro:t,detailPanelStopButton:n,notFound:r,resourcePressureBanner:i,sectionActionsButton:a,sttProviderForm:o,useConnectClaude:s,windowsMenuBar:c};export{e as addCreditsModal,t as companionIntro,l as default,n as detailPanelStopButton,r as notFound,i as resourcePressureBanner,a as sectionActionsButton,o as sttProviderForm,s as useConnectClaude,c as windowsMenuBar};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={build:`Compilación`,tagline:`Asistente de IA para tu Mac`,version:`Versión`},t={connecting:`Conectando con tu asistente…`,logIn:`Iniciar sesión`,logOut:`Cerrar sesión`},n={cancel:`Cancelar`,credentialSaved:`Credencial guardada.`,description:`Añade una clave API o un token para que las herramientas e integraciones lo usen.`,fieldLabel:`Campo`,fieldPlaceholder:`p. ej. api_token`,labelOptional:`Etiqueta (opcional)`,labelPlaceholder:`p. ej. token de acceso personal de GitHub`,save:`Guardar`,saveFailed:`No se pudo guardar la credencial`,serviceLabel:`Servicio`,servicePlaceholder:`p. ej. github`,title:`Añadir credencial`,valueLabel:`Valor`,valuePlaceholder:`Introduce el valor secreto`},r={amount:`Importe`,cancel:`Cancelar`,configureAutoReload:`Configurar la recarga automática`,continue:`Continuar`,description:`Se te redirigirá a Stripe para completar el pago.`,title:`Añadir créditos`},i={openApp:`Abrir app`,pin:`Fijar`,previewTitle:`Vista previa de {name}`,unpin:`Desfijar`},a={close:`Cerrar`,copyLink:`Copiar enlace`,deploy:`Desplegar`,deployToVercel:`Desplegar en Vercel`,deployToVercelSubtitle:`Publicar como página estática`,deployedCopyLinkAria:`Desplegada en Vercel, copiar enlace`,deployedCopyLinkTooltip:`Desplegada: copiar enlace`,deployedToVercel:`Desplegada en Vercel`,deploying:`Desplegando…`,edit:`Editar`,expandApp:`Expandir app`,fullscreen:`Pantalla completa`,openApp:`Abrir app`,redeploy:`Volver a desplegar`,redeploySubtitle:`Publicar la versión actual`,share:`Compartir`,shareAndDeploy:`Compartir y desplegar`,shareExportSubtitle:`Exportar como archivo .vellum`,sharing:`Compartiendo…`},o={exitFullscreen:`Salir de pantalla completa`},s={body:`Cuerpo`,color:`Color`,eyes:`Ojos`,keepUploadedDescription:`Guardar el personaje la reemplaza`,keepUploadedLabel:`Conservar tu imagen subida`,loadError:`No se pudieron cargar los componentes del avatar. Asegúrate de que tu asistente esté en ejecución.`,name:`Nombre`,next:`Siguiente {label}`,previous:`Anterior {label}`,randomize:`Aleatorio`,save:`Guardar`,saving:`Guardando…`,title:`Actualizar avatar`,uploadImage:`Subir imagen`,uploadedAlt:`Avatar subido`,useCharacterDescription:`Elige entre nuestros avatares integrados`,useCharacterLabel:`Usar un personaje en su lugar`},c={bySigner:`por {name}`,cancel:`Cancelar`,capabilities:`Capacidades`,createdBy:`Creado por`,hideWarnings:`Ocultar advertencias ({count})`,install:`Instalar`,installAnyway:`Instalar de todos modos`,loading:`Cargando...`,showWarnings:`Mostrar advertencias ({count})`,size:`Tamaño`},l={body:`Tu asistente habla a través de un proveedor que configuraste tú. Define su voz en <settingsLink>Modelos y servicios</settingsLink>.`},u={alt:`Avatar del asistente`,fallbackLetter:`V`},d={actionsTitle:`Acciones de {title}`},f={ariaLabel:`Paleta de comandos`,clear:`Borrar`,clearSearch:`Borrar búsqueda`,closeSearch:`Cerrar búsqueda`,noResults:`Sin resultados`,placeholder:`Buscar conversaciones, recuerdos…`,searchAriaLabel:`Buscar`,searching:`Buscando…`,shortcutHint:`⌘K`},p={ariaLabel:`Te presento a tu compañero`,done:`Entendido`,meet:{body:`Me quedo en tu escritorio, aunque Vellum no esté a la vista.`,title:`Este soy yo`,titleNamed:`Soy {name}`},menu:{body:`Ahí puedes ocultarme o cambiar mi tamaño.`,title:`Haz clic derecho sobre mí`},next:`Siguiente`,skip:`Omitir`,talk:{body:`Inicia una conversación por voz.`,title:`Talk`},type:{body:`Envía un mensaje desde aquí y lee la respuesta aquí también.`,title:`Type`}},m={allow:`Permitir`,deny:`Denegar`,endSession:`Finalizar sesión`,goBack:`Volver`,messagePlaceholder:`Mensaje a {name}`,muteAssistant:`Silenciar asistente`,muteMicrophone:`Silenciar micrófono`,notNow:`Ahora no`,send:`Enviar`,showSummary:`Mostrar resumen`,stopTeaching:`Dejar de enseñar`,summarizing:`Resumiendo`,talk:`Hablar`,teach:`Enseñar`,type:`Escribir`,unmuteAssistant:`Activar sonido del asistente`,unmuteMicrophone:`Activar micrófono`},h={copiedAria:`Copiado`,copyFailed:`No se pudo copiar el contenido del archivo.`,copyFileContentsAria:`Copiar contenido del archivo`,downloadFileAria:`Descargar archivo`,editFileAria:`Editar archivo`},g={cancel:`Cancelar`,create:`Crear`,description:`Provisiona un asistente nuevo. Se iniciará en segundo plano.`,namePlaceholder:`Nombre del asistente (opcional)`,title:`Nuevo asistente`,toastSuccess:`Nuevo asistente creado.`},_={ariaLabel:`Rango de fechas`,lastDays:`{days, plural, one {Último # día} other {Últimos # días}}`},v={delete:`Eliminar`,deleting:`Eliminando…`,message:`"{name}" se eliminará de forma permanente.`,title:`Eliminar app`},y={confirmLabel:`Deja que tu asistente se encargue`,confirmLabelNamed:`Deja que {assistantName} se encargue`,message:`"{appName}" usa servicios de backend que no funcionarán en una página estática de Vercel. Tu asistente puede desplegarla correctamente con funciones serverless.`,messageNamed:`"{appName}" usa servicios de backend que no funcionarán en una página estática de Vercel. {assistantName} puede desplegarla correctamente con funciones serverless.`,title:`Esta app necesita un despliegue completo`},b={tooltip:`Detener`},x={copied:`Copiado`,copy:`Copiar`},S={stopRecording:`Detener grabación`},C={ariaLabel:`Únete a la comunidad de Discord de Vellum`,ctaLong:`Unirse a Discord`,ctaShort:`Unirse`,subtitleLong:`Habla con el equipo: comparte comentarios, solicita funciones y obtén respuestas más rápido`,subtitleShort:`Comparte comentarios, solicita funciones y obtén respuestas más rápido`,title:`¡Únete a nuestra comunidad!`},w={acknowledge:`Reconocer`,acknowledging:`Reconociendo...`,cleanupBody:`Pide a tu asistente que libere espacio antes de que se agote y entre en un estado bloqueado.`,cleanupTitle:`El modo de limpieza está activo`,criticalBody:`Tu asistente entrará en un estado bloqueado si se queda sin almacenamiento.`,criticalModalDescription:`Tu asistente entrará en un estado bloqueado si se queda sin almacenamiento. Debes pedir a tu asistente que libere espacio o aumentar tu almacenamiento.`,criticalTitle:`El almacenamiento está críticamente bajo`,dontShowAgain:`No mostrar de nuevo`,manageStorage:`Gestionar almacenamiento`,review:`Revisar`,upgrade:`Mejorar plan`,warningBody:`Libera espacio para evitar interrupciones.`,warningBodyWithUpgrade:`Libera espacio o añade más almacenamiento para evitar interrupciones.`,warningTitle:`Tu almacenamiento está casi lleno`},T={discard:`Descartar`,save:`Guardar`,saving:`Guardando…`},E={copyAriaLabel:`Copiar enlace de invitación`,createFailed:`No se pudo crear el enlace de invitación. Asegúrate de que A2A esté habilitado para tu asistente.`,creating:`Creando enlace de invitación…`,done:`Listo`,shareHint:`Comparte este enlace con otro propietario de asistente para establecer una conexión.`,title:`Compartir enlace de conexión`,tryAgain:`Reintentar`},D={ariaLabel:`Vellum es de código abierto en GitHub`,ctaAriaLabel:`Dar una estrella a Vellum en GitHub`,ctaLabel:`Danos una estrella`,subtitle:`Danos una estrella en GitHub o contribuye`,title:`Vellum es de código abierto`},O={loadError:`Esta sección no se pudo cargar. Recarga la página para intentarlo de nuevo.`},k={ariaLabel:`Descargar la app de macOS`,ctaAriaLabel:`Descargar la app de macOS`,ctaLabel:`Descargar`,subtitle:`Uso del ordenador · acceso a terminal · automatización nativa`,title:`Consigue la app de macOS`},A={bannerAria:`Descargar la app de {appName}`,download:`Descargar`,downloadAppAria:`Descargar la app de {appName}`,subtitle:`Notificaciones push · inicio biométrico · háptica`,title:`Obtén la app de {appName}`},j={logoAlt:`Vellum`},M={backToAssistant:`Volver a tu asistente`,badge:`Error 404`,body:`La página que buscas no existe o puede haberse movido.`,goBack:`Atrás`,title:`Página no encontrada`},N={dismissAria:`Descartar`},P={back:`Atrás`},F={cancel:`Cancelar`,logIn:`Iniciar sesión`},I={assistantHandleIdleEmpty:`Tu asistente aún no tiene identificador; reclama uno para poder mencionarlo.`,assistantHandleLabel:`Identificador del asistente`,assistantHandleUpdated:`Identificador del asistente actualizado.`,available:`Disponible`,availableHelper:`Disponible.`,checkAvailabilityFailed:`No se pudo comprobar la disponibilidad.`,checkingAvailability:`Comprobando disponibilidad…`,chooseDifferentHandle:`Elige un identificador diferente.`,emailLabel:`Correo electrónico`,handleHelper:`Letras minúsculas, dígitos, guiones y guiones bajos. De 3 a 30 caracteres.`,handleLocked:`El identificador de tu asistente está bloqueado porque se usa como su subdominio de correo. Para cambiarlo, <releaseLink>libera el subdominio</releaseLink> primero.`,loading:`Cargando tu perfil…`,notAvailable:`No disponible`,profileUpdated:`Perfil actualizado.`,save:`Guardar`,saved:`Guardado`,saving:`Guardando…`,subtitle:`Gestiona los detalles y las preferencias de tu cuenta.`,title:`Perfil`,userHandleIdleAutoGenerated:`Tu identificador se generó automáticamente al registrarte; elige uno que te guste.`,userHandleLabel:`Identificador de usuario`},L={created:`Perfil "{name}" creado`},R={logoAlt:`Vellum`,placeholder:`Pregunta lo que quieras a Vellum...`},z={confirm:`Eliminar`,messageOrigin:`Esto no afectará a {assistantName} ni cerrará tu sesión allí. Solo olvida la entrada en este dispositivo. Puedes añadirla de nuevo cuando quieras.`,messagePaired:`Esto no afectará a {assistantName} en su máquina anfitriona. Solo olvida el emparejamiento en este dispositivo. Puedes emparejarlo de nuevo cuando quieras con vellum connect import.`,messagePlatform:`Esto no eliminará a {assistantName}. Solo lo quita de este dispositivo. Al iniciar sesión volverá a estar disponible.`,title:`¿Eliminar de este dispositivo?`},B={body:`Tu asistente ha estado usando recursos elevados durante un periodo prolongado; mejora tu plan para potenciar tu asistente.`,bodyNoUpgrade:`Tu asistente ha estado usando recursos elevados durante un periodo prolongado.`,dontShowAgain:`No mostrar de nuevo`,title:`La utilización de recursos es alta`,upgrade:`Mejorar plan`},V={confirmLabel:`Retirar`,message:`Esto retirará de forma permanente este asistente y todos sus datos. Tendrás que volver a completar el flujo de incorporación para crear uno nuevo. Esta acción no se puede deshacer.`,title:`Retirar asistente`},H={loadingAria:`Cargando`},U={chunkFailBody:`Esta sección no se pudo cargar. Probablemente un fallo de red o una versión antigua. Recarga la página para intentarlo de nuevo.`,reload:`Recargar`},W={confirmMessage:`¿Actualizar a la versión {version}? El asistente no estará disponible brevemente durante la actualización.`,confirmTitle:`Actualizar el runtime del asistente`,later:`Más tarde`,title:`Nueva versión del asistente disponible: {version}`,toastComplete:`Actualización completa. Tu asistente está en buen estado.`,toastFailed:`No se pudo iniciar la actualización. Inténtalo de nuevo.`,update:`Actualizar`},G={ariaLabel:`Acciones de {name}`},K={reset:`Restablecer`,save:`Guardar`},q={label:`Compartir enlace de conexión`},J={aboutDiagnosticsAria:`Acerca de los diagnósticos`,addFiles:`Añadir archivos`,adminOnlyHint:`Solo para administradores: crea el archivo de diagnósticos en local y lo descarga en lugar de enviar comentarios o notificar a Slack.`,attachments:`Adjuntos`,bugTip:`Consejo: obtén soporte más rápido publicando en nuestra <discordLink>comunidad de Discord</discordLink>`,cancel:`Cancelar`,category:`Categoría`,closeAria:`Cerrar`,diagnosticsTooltip:`Los diagnósticos incluyen el contexto del navegador, los registros del asistente y marcas de tiempo; nunca contraseñas ni credenciales.`,downloadDiagnostics:`Descargar diagnósticos directamente`,downloadDiagnosticsAria:`Descargar diagnósticos directamente`,downloadDiagnosticsButton:`Descargar diagnósticos`,dropFiles:`Suelta archivos para adjuntarlos…`,email:`Correo electrónico`,featureTip:`Consejo: vota funciones en nuestro <roadmapLink>roadmap público</roadmapLink>`,includeConversation:`Incluir la conversación más reciente`,includeConversationAria:`Incluir la conversación más reciente`,includeDiagnostics:`Incluir diagnósticos`,includeDiagnosticsAria:`Incluir diagnósticos del navegador`,messageLabelBug:`¿Qué salió mal?`,messageLabelFeature:`Describe tu idea`,messageLabelOther:`¿Qué tienes en mente?`,messagePlaceholderBug:`¿Qué esperabas que ocurriera y qué ocurrió en su lugar?`,messagePlaceholderFeature:`¿Qué problema te resolvería esto?`,messagePlaceholderOther:`Comparte tus pensamientos...`,preparingDiagnostics:`Preparando diagnósticos…`,reasonBugReport:`Informe de error`,reasonFeatureRequest:`Solicitud de función`,reasonOther:`Otro`,removeAttachmentAria:`Eliminar {name}`,sendingFeedback:`Enviando comentarios…`,submit:`Enviar`,timeRange:`Intervalo de tiempo`,timeRangeAllTime:`Todo el tiempo`,timeRangeAria:`Intervalo de tiempo de diagnósticos`,timeRangePast24Hours:`Últimas 24 horas`,timeRangePastHour:`Última hora`,title:`Compartir comentarios`},Y={loadingAria:`Cargando el formulario de comentarios`},X={close:`Cerrar`,message:`No se pudo cargar el formulario de comentarios.`,retry:`Reintentar`},Z={closeAria:`Cerrar`,closeSidebarAria:`Cerrar barra lateral`,openSidebarAria:`Abrir barra lateral`},Q={backFrom:`Volver desde {title}`,backToMenu:`Volver al menú de {title}`,navigationAria:`Navegación de {title}`},$={ariaLabel:`Navegación de la barra lateral`},ee={label:`Aprendido de esta conversación`},te={message:`¿Quitar "{name}" de este asistente?`,remove:`Quitar`,title:`Quitar skill`},ne={approvalNotice:`Si Slack muestra “Request approval” en lugar de <strong>Install</strong>, un administrador del espacio de trabajo debe aprobar la app primero.`,createdApp:`He creado la app`,inSlack:`En Slack:`,stepManifest:`En <strong>Or start your own way</strong>, elige <strong>From a manifest</strong> y luego <strong>Continue</strong>`,stepPaste:`Elige tu espacio de trabajo y pega el manifiesto`,stepReview:`Revisa los permisos y haz clic en <strong>Create and Install</strong>`},re={appName:`Nombre de la app`,appNamePlaceholder:`Mi asistente`,copied:`¡Copiado!`,copyManifest:`Copiar manifiesto`,description:`Descripción (opcional)`,descriptionHelper:`Se muestra en el perfil de Slack de la app.`,descriptionPlaceholder:`En qué ayuda este asistente`,intro:`Ponle nombre a tu app de Slack y copia su manifiesto. Todos los permisos y ajustes vienen preconfigurados.`,next:`Siguiente`},ie={body:`Abre Slack en una pestaña nueva para crear la app y vuelve aquí para los pasos siguientes.`,copied:`¡Copiado!`,copyManifest:`Copiar manifiesto`,manifestCopiedNotice:`Copiaste el manifiesto de esta app aquí. Si has copiado algo desde entonces, cópialo de nuevo antes de pegar.`,manifestNotCopiedNotice:`Aún no has copiado el manifiesto de esta app. El modal de crear app de Slack no tiene otra forma de obtenerlo, así que cópialo antes de pegar.`,next:`Siguiente`,openSlack:`Abrir Slack`},ae={appTokenLabel:`Token de la app`,botTokenLabel:`Token del bot`,connectSlack:`Conectar Slack`,connecting:`Conectando…`,credentialsSaved:`Credenciales guardadas.`,instructions:`En la pantalla de confirmación de Slack, expande <credentials>Your app credentials</credentials> y copia ambos tokens.`,skipNotice:`Esa pantalla también ofrece una guía por línea de comandos y un botón <download>Download app files</download>. Omite ambos. Configuran una app local aparte, y este asistente solo necesita los dos tokens.`},oe={channelLabel:`Slack`,copyError:`No se pudo copiar el manifiesto. Cópialo de nuevo antes de continuar.`,stepConnect:`Conectar`,stepCreate:`Crear`,stepName:`Nombre`,stepOpen:`Abrir`},se={total:`Total: {value}`},ce={reloadApp:`Recargar app`},le={dismiss:`Descartar`,goToDoctor:`Ir a Doctor`,resumeAssistant:`Reanudar asistente`,retryNow:`Reintentar ahora`,wakeUp:`Despertar`},ue={allLanguages:`Todos los idiomas`,featured:`Destacados`,languagesAriaLabel:`Idiomas`,noMatch:`Ningún idioma coincide.`,searchAriaLabel:`Buscar idiomas`,searchPlaceholder:`Buscar idiomas`,suggested:`Sugerido`},de={description:`Se aplica desde tu próximo turno hablado.`},fe={apiKeyLabel:`Clave de API`,apiKeyPlaceholderReplace:`•••••••• (Introduce una clave nueva para reemplazarla)`,providerAriaLabel:`Proveedor de STT`,providerLabel:`Proveedor`,saveFailed:`No se pudieron guardar los ajustes de voz a texto`,saveSuccess:`Ajustes de voz a texto guardados`,spokenLanguage:`Idioma hablado`,spokenLanguageApplies:`Se aplica a partir de tu próximo turno hablado.`,vellumTranscription:`La transcripción se realiza a través de tu cuenta de Vellum.`,windowsNativeDisplayName:`Dictado nativo de Windows`,windowsNativeSetupWarning:`Requiere Reconocimiento de voz básico para el idioma de visualización de Windows: abre Configuración > Hora e idioma > Idioma y región, selecciona los tres puntos junto al idioma de visualización, elige Opciones de idioma y, en Características de idioma, descarga Reconocimiento de voz básico.`,windowsNativeSubtitle:`Reconocimiento de voz integrado de Windows, ejecutado localmente mediante el asistente nativo de Windows. Funciona sin conexión y no necesita una clave de API.`},pe={ariaLabel:`Subagente {subagentId}`},me={accessibilityDescription:`Permite que tu asistente haga clic, escriba y controle apps en tu nombre.`,accessibilityLabel:`Accesibilidad`,checking:`Comprobando permisos...`,dockIcon:`icono del Dock`,microphoneDescription:`Permite que tu asistente capture audio para entrada de voz y grabaciones.`,microphoneLabel:`Micrófono`,notificationBadgesDescription:`Permite que tu asistente muestre el recuento de conversaciones no vistas en el {surface}.`,notificationBadgesLabel:`Insignias de notificación`,notificationsDescription:`Permite que tu asistente envíe alertas de macOS para aprobaciones, mensajes y actualizaciones de tareas.`,notificationsLabel:`Notificaciones`,notificationsWindowsDescription:`Permite que tu asistente muestre notificaciones de Windows para aprobaciones, mensajes y actualizaciones de tareas.`,screenDescription:`Permite que tu asistente capture el contexto de la pantalla durante tareas de uso del ordenador.`,screenLabel:`Grabación de pantalla`,speechRecognitionDescription:`Permite que tu asistente transcriba tu voz a texto en el dispositivo.`,speechRecognitionLabel:`Reconocimiento de voz`,speechRecognitionWindowsDescription:`Permite que tu asistente transcriba tu voz a texto con el reconocimiento de voz de Windows.`,taskbarIcon:`icono de la barra de tareas`,title:`Permisos del sistema`},he={botTokenLabel:`Token del bot`,connectTelegram:`Conectar Telegram`,instructions:`Pega el token de la respuesta de BotFather. Es la línea completa después de <tokenLine>Use this token to access the HTTP API</tokenLine>.`,saving:`Guardando…`,successNotice:`Token guardado. El resto termina solo. Tu asistente confirmará que Telegram entrega la próxima vez que chatees, y se asegurará de poder alcanzarte.`},ge={copied:`¡Copiado!`,copyName:`Copiar nombre`,displayNameHint:`Para el nombre visible, <strong>{suggestedName}</strong> mantiene este bot alineado con tu asistente. El nombre de usuario es independiente y no tiene que coincidir.`,inBotFather:`En BotFather:`,intro:`Los bots de Telegram se crean enviando un mensaje a <strong>@BotFather</strong>. Ábrelo, sigue las indicaciones y vuelve con el token que te dé.`,next:`Siguiente`,openBotFather:`Abrir BotFather`,stepDisplayName:`Dale un nombre visible, que es lo que la gente ve en el chat`,stepSendNewBot:`Envía <strong>/newbot</strong>`,stepTokenReply:`BotFather responde con un token después de <strong>Use this token to access the HTTP API</strong>`,stepUsername:`Dale un nombre de usuario, que debe ser único y terminar en <strong>bot</strong>`},_e={channelLabel:`Telegram`,copyError:`No se pudo copiar el nombre. Escríbelo en BotFather en su lugar.`,stepConnect:`Conectar`,stepCreate:`Crear bot`},ve={recoveryModeBanner:`Modo de recuperación activo: esta sesión está conectada al terminal de depuración.`},ye={accentFill:`Relleno de acento`,activeBorder:`Borde activo`,activeSurface:`Superficie activa`,assistantBubble:`Una respuesta del asistente, a ancho completo sobre la superficie de la página.`,buttonDisabled:`Deshabilitado`,buttonPrimary:`Principal`,buttonSecondary:`Secundario`,chatAssistant1:`Listo. El resumen está preparado. Los ingresos crecieron de forma constante, los dos riesgos señalados del trimestre pasado están resueltos y reuní en una página aparte los tres gráficos que conviene mostrar.`,chatAssistant2:`Programado para las 9:00. Incluiré los gráficos y una versión de un párrafo para quien lo revise en el teléfono.`,chatUser1:`¿Puedes resumir el informe trimestral antes de la reunión de mañana?`,chatUser2:`Perfecto. Envíalo al equipo por la mañana.`,composerPlaceholder:`Escribe a tu asistente`,faintText:`Texto tenue: el último escalón legible de la rampa.`,inputFilled:`Texto que alguien ya ha escrito en un campo.`,inputPlaceholder:`Un marcador de posición en un campo vacío`,newConversation:`Nueva conversación`,overlaySurface:`Superficie de superposición`,primaryText:`Texto principal: la superficie de lectura principal de la app.`,quietText:`Texto discreto: metadatos y marcas de tiempo.`,raisedCard:`Tarjeta elevada`,raisedCardBody:`Las superficies elevadas se sitúan por encima de los paneles y del fondo de la página.`,samplerTitle:`Muestreador de tema`,secondaryText:`Texto secundario: textos de apoyo y descripciones.`,sectionAccent:`Acento`,sectionButtons:`Botones`,sectionInputs:`Campos`,sectionMessages:`Mensajes`,sectionSurfaces:`Superficies y bordes`,sectionText:`Texto`,send:`Enviar`,subtleDivider:`Divisor sutil encima de esta línea.`,tertiaryText:`Texto terciario: pies de foto, etiquetas y marcadores de posición.`,userBubble:`Un mensaje del usuario, en su burbuja.`},be={dark:`Oscuro`,label:`Tema`,light:`Claro`,system:`Sistema`,velvet:`Velvet`},xe={dismiss:`Descartar`,nextTip:`Consejo siguiente`,previousTip:`Consejo anterior`},Se={apiKey:`Clave de API`,apiKeyRequired:`Guarda una clave de API para este proveedor antes de probar.`,chooseFromCatalog:`Elegir del catálogo`,customVoiceIdAriaLabel:`ID de voz personalizado`,noManagedVoices:`No hay voces gestionadas disponibles en este momento.`,provider:`Proveedor`,providerAriaLabel:`Proveedor de TTS`,saveFailed:`No se pudieron guardar los ajustes de texto a voz`,saved:`Ajustes de texto a voz guardados`,test:`Probar`,testing:`Probando…`,voice:`Voz`,voiceId:`ID de voz`,voiceIdPlaceholder:`Introduce un ID de voz`},Ce={available:`Actualización disponible. Iniciando descarga…`,closeAriaLabel:`Cerrar`,downloading:`Descargando actualización…`,ready:`Vellum {version} está listo.`,restartToInstall:`Reiniciar para instalar`,versionFallback:`actualización`},we={exchangeFailed:`Comprueba la clave pegada e inténtalo de nuevo.`,failed:`No se pudo conectar Claude. Inténtalo de nuevo.`,notStarted:`Primero inicia el flujo de Connect Claude.`,pasteEmpty:`Pega el código que se muestra en la página de Claude.`,popupBlocked:`Tu navegador bloqueó la pestaña de inicio de sesión. Permite las ventanas emergentes para este sitio y vuelve a hacer clic en Conectar.`,startFailed:`No se pudo iniciar Connect Claude. Inténtalo de nuevo.`,timedOut:`Se agotó el tiempo de espera para conectar Claude. Inténtalo de nuevo.`},Te={playFailed:`No se pudo reproducir la muestra de voz.`},Ee={body:`Introduce tu token de API de Vercel para publicar apps como páginas estáticas.`,cancel:`Cancelar`,createToken:`Crear un token en Vercel →`,save:`Guardar`,saveFailed:`No se pudo guardar el token de Vercel.`,saving:`Guardando…`,title:`Conectar Vercel`,tokenLabel:`Token de API`,tokenPlaceholder:`Token de API de Vercel`},De={assistantVoiceAriaLabel:`Voz del asistente`,defaultSuffix:`(predeterminada)`,previewVoice:`Vista previa de {description}`,providerAriaLabel:`Proveedor de voz`,stopPreview:`Detener vista previa`},Oe={ariaLabel:`Voz`,selectVoice:`Selecciona una voz`},ke={done:`Listo`,title:`Voces`},Ae={body:`Los proveedores de voz, la transcripción y las claves de API están en <modelsLink>Modelos y servicios</modelsLink>.`},je={recommendedOff:`Recomendado desactivado`},Me={developer:`Desarrollador`,file:`Archivo`,help:`Ayuda`,view:`Ver`},Ne={aboutPage:e,activeAssistantGate:t,addCredentialModal:n,addCreditsModal:r,appCard:i,appNavBar:a,appViewerContainer:o,avatarManagementModal:s,bundleConfirmPage:c,byoVoiceNote:l,chatAvatar:u,collapsibleNavSection:d,commandPalette:f,companionIntro:p,companionSurface:m,contentActionBar:h,createAssistantDialog:g,dateRangeSelect:_,deleteAppDialog:v,deployDialogs:y,detailPanelStopButton:b,detailPrimitives:x,dictationOverlayPage:S,discordNudgeBanner:C,diskPressureBanner:w,editFooter:T,generateInviteLinkDialog:E,githubNudgeBanner:D,lazyBoundary:O,macosAppBanner:k,nativeAppBanner:A,nativeSplash:j,notFound:M,nudgeChatBanner:N,onboardingBackButton:P,platformLoginNotice:F,profileCard:I,profileQuickAddProvider:L,quickInputPage:R,removeFromDeviceDialog:z,resourcePressureBanner:B,retireConfirmDialog:V,rootHydrateFallback:H,routeErrorBoundary:U,runtimeUpgradeBanner:W,sectionActionsButton:G,serviceFormControls:K,shareConnectionLinkButton:q,shareFeedbackModal:J,shareFeedbackModalFallback:Y,shareFeedbackModalLoadError:X,sideListDrawer:Z,sidebarShell:Q,sidebarTree:$,skillLineageLink:ee,skillRemovalDialog:te,slackSetupCreateStep:ne,slackSetupNameStep:re,slackSetupOpenStep:ie,slackSetupTokensStep:ae,slackSetupWizard:oe,stackedBarTooltip:se,startupFailure:ce,statusBanner:le,sttLanguagePicker:ue,sttLanguagePickerModal:de,sttProviderForm:fe,subagentAvatarChip:pe,systemPermissionsCard:me,telegramSetupConnectStep:he,telegramSetupCreateStep:ge,telegramSetupWizard:_e,terminalPanel:ve,themeStagePage:ye,themeToggle:be,tipCard:xe,ttsProviderForm:Se,updateToast:Ce,useConnectClaude:we,useVoiceSamplePreview:Te,vercelTokenDialog:Ee,voiceList:De,voicePickerField:Oe,voicePickerModal:ke,voiceProvidersNote:Ae,voiceTranscriptToggles:je,windowsMenuBar:Me};export{e as aboutPage,t as activeAssistantGate,n as addCredentialModal,r as addCreditsModal,i as appCard,a as appNavBar,o as appViewerContainer,s as avatarManagementModal,c as bundleConfirmPage,l as byoVoiceNote,u as chatAvatar,d as collapsibleNavSection,f as commandPalette,p as companionIntro,m as companionSurface,h as contentActionBar,g as createAssistantDialog,_ as dateRangeSelect,Ne as default,v as deleteAppDialog,y as deployDialogs,b as detailPanelStopButton,x as detailPrimitives,S as dictationOverlayPage,C as discordNudgeBanner,w as diskPressureBanner,T as editFooter,E as generateInviteLinkDialog,D as githubNudgeBanner,O as lazyBoundary,k as macosAppBanner,A as nativeAppBanner,j as nativeSplash,M as notFound,N as nudgeChatBanner,P as onboardingBackButton,F as platformLoginNotice,I as profileCard,L as profileQuickAddProvider,R as quickInputPage,z as removeFromDeviceDialog,B as resourcePressureBanner,V as retireConfirmDialog,H as rootHydrateFallback,U as routeErrorBoundary,W as runtimeUpgradeBanner,G as sectionActionsButton,K as serviceFormControls,q as shareConnectionLinkButton,J as shareFeedbackModal,Y as shareFeedbackModalFallback,X as shareFeedbackModalLoadError,Z as sideListDrawer,Q as sidebarShell,$ as sidebarTree,ee as skillLineageLink,te as skillRemovalDialog,ne as slackSetupCreateStep,re as slackSetupNameStep,ie as slackSetupOpenStep,ae as slackSetupTokensStep,oe as slackSetupWizard,se as stackedBarTooltip,ce as startupFailure,le as statusBanner,ue as sttLanguagePicker,de as sttLanguagePickerModal,fe as sttProviderForm,pe as subagentAvatarChip,me as systemPermissionsCard,he as telegramSetupConnectStep,ge as telegramSetupCreateStep,_e as telegramSetupWizard,ve as terminalPanel,ye as themeStagePage,be as themeToggle,xe as tipCard,Se as ttsProviderForm,Ce as updateToast,we as useConnectClaude,Te as useVoiceSamplePreview,Ee as vercelTokenDialog,De as voiceList,Oe as voicePickerField,ke as voicePickerModal,Ae as voiceProvidersNote,je as voiceTranscriptToggles,Me as windowsMenuBar};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{v as e}from"./i18n-
|
|
1
|
+
import{v as e}from"./i18n-BtV8MCsZ.js";import{t}from"./button-B1kEAcLt.js";import{t as n}from"./jsx-runtime-COOF1INC.js";import{t as r}from"./card-B4b9cF6X.js";import{t as i}from"./createLucideIcon-CMfEC_aW.js";import{r as a}from"./middleware-BmAQ4_8P.js";import{t as o}from"./bug-DJjWtfUu.js";import{t as s}from"./external-link-cVsOyP-B.js";import{t as c}from"./globe-DJ3y3hQh.js";import{t as l}from"./heart-DF_JiyEl.js";import{t as u}from"./play-D-HSCeZj.js";import{t as d}from"./sparkles-D6kBPNlr.js";import{t as f}from"./star-C4JuiUip.js";import{t as p}from"./users-DLjK4Ffo.js";import{t as m}from"./tag-DAsImP7W.js";import{t as h}from"./external-urls-BE71Yb2T.js";import{t as g}from"./discord-logo-sC02ywjh.js";import{c as _,i as v,n as y}from"./use-discord-nudge-BkpFjoOQ.js";var b=i(`git-pull-request`,[[`circle`,{cx:`18`,cy:`18`,r:`3`,key:`1xkwt0`}],[`circle`,{cx:`6`,cy:`6`,r:`3`,key:`1lh9wr`}],[`path`,{d:`M13 6h3a2 2 0 0 1 2 2v7`,key:`1yeb86`}],[`line`,{x1:`6`,x2:`6`,y1:`9`,y2:`21`,key:`rroup`}]]),x=n();function S({size:e=24,className:t,style:n}){return(0,x.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,width:e,height:e,fill:`currentColor`,className:t,style:n,"aria-hidden":!0,children:(0,x.jsx)(`path`,{d:`M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12`})})}function C({size:e=24,className:t,style:n}){return(0,x.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,width:e,height:e,fill:`currentColor`,className:t,style:n,"aria-hidden":!0,children:(0,x.jsx)(`path`,{d:`M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z`})})}function w({size:e=24,className:t,style:n}){return(0,x.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,width:e,height:e,fill:`currentColor`,className:t,style:n,"aria-hidden":!0,children:(0,x.jsx)(`path`,{d:`M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814ZM9.545 15.568V8.432L15.818 12l-6.273 3.568Z`})})}function T({t:e}){return(0,x.jsx)(r,{padding:`lg`,className:`bg-[var(--surface-lift)]`,children:(0,x.jsxs)(`div`,{className:`relative`,children:[(0,x.jsx)(`div`,{className:`pointer-events-none absolute -right-16 -top-16 h-64 w-64 rounded-full opacity-30 blur-3xl`,style:{background:`radial-gradient(circle, var(--system-mid-weak) 0%, transparent 70%)`},"aria-hidden":!0}),(0,x.jsxs)(`div`,{className:`relative flex flex-col items-start gap-3`,children:[(0,x.jsxs)(m,{tone:`neutral`,children:[(0,x.jsx)(u,{className:`h-3.5 w-3.5`}),e(`communityPage.heroTag`)]}),(0,x.jsx)(`h1`,{className:`text-[28px] font-semibold leading-tight tracking-tight text-[var(--content-emphasised)]`,children:e(`communityPage.heroTitle`)}),(0,x.jsx)(`p`,{className:`max-w-xl text-body-medium-default text-[color:var(--content-tertiary)]`,children:e(`communityPage.heroDescription`)})]})]})})}function E({icon:e,text:t}){return(0,x.jsxs)(`li`,{className:`flex items-center gap-3`,children:[(0,x.jsx)(`span`,{className:`flex size-7 shrink-0 items-center justify-center rounded-md bg-[var(--surface-base)]`,children:(0,x.jsx)(e,{size:14,className:`text-[var(--content-secondary)]`,"aria-hidden":!0})}),(0,x.jsx)(`span`,{className:`text-body-medium-lighter text-[color:var(--content-secondary)]`,children:t})]})}function D({accentColor:e,iconColor:n=`var(--aux-white)`,label:i,icon:o,title:s,subtitle:c,benefits:l,primaryAction:u,secondaryAction:d}){return(0,x.jsx)(r,{padding:`lg`,className:`flex-1`,children:(0,x.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,x.jsxs)(`div`,{className:`flex items-start justify-between`,children:[(0,x.jsx)(`span`,{className:`flex size-10 items-center justify-center rounded-lg`,style:{backgroundColor:e,color:n},children:o}),(0,x.jsx)(`span`,{className:`text-label-medium-default uppercase tracking-wider text-[color:var(--content-tertiary)]`,children:i})]}),(0,x.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,x.jsx)(`h2`,{className:`text-title-medium text-[var(--content-emphasised)]`,children:s}),(0,x.jsx)(`p`,{className:`text-body-medium-lighter text-[color:var(--content-tertiary)]`,children:c})]}),(0,x.jsx)(`ul`,{className:`flex flex-col gap-3`,children:l.map(({icon:e,text:t})=>(0,x.jsx)(E,{icon:e,text:t},t))}),(0,x.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,x.jsxs)(t,{onClick:u.onClick,children:[u.icon,u.label]}),d&&(0,x.jsxs)(t,{variant:`ghost`,onClick:()=>window.open(d.href,`_blank`,`noopener,noreferrer`),children:[d.label,(0,x.jsx)(a,{className:`h-3.5 w-3.5`})]})]})]})})}function O({icon:e,iconBg:t,iconColor:n=`white`,title:i,description:a,href:o}){return(0,x.jsx)(`a`,{href:o,target:`_blank`,rel:`noopener noreferrer`,className:`flex flex-1 cursor-pointer`,children:(0,x.jsx)(r,{className:`flex-1 transition-shadow hover:shadow-md`,padding:`lg`,children:(0,x.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,x.jsxs)(`div`,{className:`flex items-start justify-between`,children:[(0,x.jsx)(`span`,{className:`flex size-10 items-center justify-center rounded-lg`,style:{backgroundColor:t,color:n},children:e}),(0,x.jsx)(s,{size:14,className:`text-[var(--content-tertiary)]`,"aria-hidden":!0})]}),(0,x.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,x.jsx)(`span`,{className:`text-title-medium text-[var(--content-emphasised)]`,children:i}),(0,x.jsx)(`p`,{className:`text-body-medium-lighter text-[color:var(--content-tertiary)]`,children:a})]})]})})})}function k(){let{t}=e(`settings`),{handleStar:n}=_();return(0,x.jsxs)(`div`,{className:`space-y-6`,children:[(0,x.jsx)(T,{t}),(0,x.jsxs)(`div`,{className:`grid grid-cols-1 gap-4 md:grid-cols-2`,children:[(0,x.jsx)(D,{accentColor:`var(--content-emphasised)`,iconColor:`var(--surface-base)`,label:t(`communityPage.openSourceLabel`),icon:(0,x.jsx)(S,{size:20}),title:t(`communityPage.openSourceTitle`),subtitle:t(`communityPage.openSourceSubtitle`),benefits:[{icon:f,text:t(`communityPage.openSourceBenefitStar`)},{icon:o,text:t(`communityPage.openSourceBenefitIssues`)},{icon:b,text:t(`communityPage.openSourceBenefitContribute`)}],primaryAction:{label:t(`communityPage.starOnGitHub`),icon:(0,x.jsx)(f,{size:16}),onClick:n},secondaryAction:{label:t(`communityPage.viewSource`),href:v}}),(0,x.jsx)(D,{accentColor:`#5865F2`,label:t(`communityPage.discordLabel`),icon:(0,x.jsx)(g,{size:20}),title:t(`communityPage.discordTitle`),subtitle:t(`communityPage.discordSubtitle`),benefits:[{icon:l,text:t(`communityPage.discordBenefitTeam`)},{icon:d,text:t(`communityPage.discordBenefitFeedback`)},{icon:p,text:t(`communityPage.discordBenefitAnswers`)}],primaryAction:{label:t(`communityPage.joinDiscord`),icon:(0,x.jsx)(g,{size:16,style:{color:`currentColor`}}),onClick:y}})]}),(0,x.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,x.jsx)(`h2`,{className:`text-label-medium-default uppercase tracking-wider text-[color:var(--content-tertiary)]`,children:t(`communityPage.moreFromVellum`)}),(0,x.jsxs)(`div`,{className:`grid grid-cols-1 gap-4 md:grid-cols-3`,children:[(0,x.jsx)(O,{icon:(0,x.jsx)(c,{size:20}),iconBg:`#22c55e`,title:t(`communityPage.communityHubTitle`),description:t(`communityPage.communityHubDescription`),href:h}),(0,x.jsx)(O,{icon:(0,x.jsx)(C,{size:20}),iconBg:`var(--content-default)`,iconColor:`var(--surface-base)`,title:t(`communityPage.followOnXTitle`),description:t(`communityPage.followOnXDescription`),href:`https://x.com/vellum_ai`}),(0,x.jsx)(O,{icon:(0,x.jsx)(w,{size:20}),iconBg:`#ef4444`,title:t(`communityPage.youtubeChannelTitle`),description:t(`communityPage.youtubeChannelDescription`),href:`https://www.youtube.com/@Vellum_AI`})]})]})]})}export{k as CommunityPage};
|
package/dist/assets/{companion-surface-page-ocmWMzcw.js → companion-surface-page-HYtLs0-t.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{v as t}from"./i18n-BDfnKs41.js";import{t as n}from"./react-DJZBPgpf.js";import{t as r}from"./jsx-runtime-COOF1INC.js";import{t as i}from"./arrow-up-CijF4S8i.js";import{d as a,f as o,l as s,n as c,o as l,p as u,s as d,u as f}from"./desktop-voice-activity-DUGtHbRg.js";import{t as p}from"./check-bDVYejGM.js";import{t as m}from"./eye-off-BtRToWVw.js";import{t as h}from"./eye-Bkw-NEUk.js";import{t as g}from"./mic-DQbnjgmt.js";import{t as _}from"./volume-2-DQKLkySB.js";import{t as v}from"./x-nhRPd-Mz.js";import{p as y}from"./src-BKET5Cno.js";import{a as ee,c as b,d as te,f as ne,h as x,m as S,n as re,o as ie,p as ae,r as C,s as w,t as oe,u as T}from"./companion-surface-BYj8yxCS.js";import{t as E}from"./avatar-bundled-components-C1i6ys8w.js";import{t as D}from"./animated-avatar-DAJHVYXE.js";var O=e(n(),1),k=r(),A=12,j=44,M=244,N={meet:{title:`companionIntro.meet.title`,body:`companionIntro.meet.body`},talk:{title:`companionIntro.talk.title`,body:`companionIntro.talk.body`},type:{title:`companionIntro.type.title`,body:`companionIntro.type.body`},menu:{title:`companionIntro.menu.title`,body:`companionIntro.menu.body`}},se=e=>e===`talk`||e===`type`?e:void 0,ce=e=>e===null||e===`meet`?null:`hover`;function le({beat:e,growth:n=`right`,cardGrowth:r=`up`,accentHex:i,assistantName:a,cardRef:o,onAdvance:s}){let{t:c}=t(),u=l.indexOf(e),f=u===l.length-1,p=N[e],m=n===`left`?{right:`50%`,marginRight:-(j/2)}:{left:`50%`,marginLeft:-(j/2)},h=r===`up`?{top:`calc(100% - ${d}px)`,transform:`translateY(calc(-100% - ${j/2+A}px))`}:{top:d,transform:`translateY(${j/2+A}px)`};return(0,k.jsxs)(`div`,{ref:o,role:`group`,"aria-label":c(`companionIntro.ariaLabel`),className:`absolute flex flex-col gap-2 rounded-2xl border border-white/10 bg-[#17181b]/95 px-3.5 py-3 shadow-lg shadow-black/40`,style:{width:M,...m,...h},onMouseDown:e=>{e.stopPropagation()},children:[(0,k.jsx)(`p`,{className:`line-clamp-2 text-[13px] leading-tight font-medium text-white`,children:e===`meet`&&a!==void 0?c(`companionIntro.meet.titleNamed`,{name:a}):c(p.title)}),(0,k.jsx)(`p`,{className:`text-[12px] leading-[1.45] text-white/70`,children:c(p.body)}),(0,k.jsxs)(`div`,{className:`flex items-center justify-between pt-0.5`,children:[(0,k.jsx)(`div`,{className:`flex items-center gap-1`,"aria-hidden":!0,children:l.map((e,t)=>(0,k.jsx)(`span`,{className:`size-1.5 rounded-full transition-colors`,style:{backgroundColor:t===u?i??`#5eead4`:`rgba(255,255,255,.2)`}},e))}),(0,k.jsxs)(`div`,{className:`flex items-center gap-1`,children:[!f&&(0,k.jsx)(`button`,{type:`button`,className:`h-7 rounded-full px-2.5 text-[12px] text-white/55 transition-colors hover:bg-white/10 hover:text-white/80`,onClick:()=>s?.(`dismiss`),children:c(`companionIntro.skip`)}),(0,k.jsx)(`button`,{type:`button`,className:`h-7 rounded-full bg-white/15 px-3 text-[12px] text-white transition-colors hover:bg-white/25`,onClick:()=>s?.(`next`),children:c(f?`companionIntro.done`:`companionIntro.next`)})]})]})]})}var P=`#5eead4`,F=new Set([`transcribing`,`thinking`,`speaking`]),I=`#ff9f45`,L=44,R=28,z=8,B={resting:L,hover:272,watching:272,summary:264,call:332,typing:360},V=360,H=220;function U(e,t){let n=(0,O.useRef)({captureCount:e,watching:t}),[r,i]=(0,O.useState)(0);return(0,O.useEffect)(()=>{let r=n.current;if(n.current={captureCount:e,watching:t},!t){i(0);return}r.watching&&e>r.captureCount&&i(e=>e+1)},[e,t]),r}function ue({phase:e,turns:t=[],assistantName:n=`your assistant`,glow:r=!0,accentHex:i=P,avatarSrc:a,character:o,hovered:s=!1,onHoverStart:c,onHoverEnd:l,growth:u=`right`,cardGrowth:f=`up`,rootRef:p,onSurfaceMouseDown:m,onSurfaceContextMenu:h,spotlight:g,onTalk:_,onType:v,onWatch:y,onSubmit:ee,onCancelTyping:b,onAvatarClick:te,working:ne=!1,watching:x=!1,watchRetro:S,onWatchRetro:re,captureCount:ie=0,watchEnabled:ae=!1,call:C,onControl:w,intro:oe}){let T=e!==`resting`,E=e===`typing`,D=S===`pending`,A=ne||C!==void 0&&F.has(C.phase),j=U(ie,x),M=(0,O.useRef)(null),[N,se]=(0,O.useState)(null);(0,O.useLayoutEffect)(()=>{let e=M.current;if(!e)return;let t=()=>{se(e.scrollWidth)};t();let n=new ResizeObserver(t);return n.observe(e),()=>{n.disconnect()}},[e]);let ce=E?V:L+(T?(N??B[e]-L)+z:0),le=u===`left`?{right:`50%`,marginRight:-(L/2)}:{left:`50%`,marginLeft:-(L/2)},R=f===`up`?{top:`calc(100% - ${d}px)`}:{top:d},H={width:ce,...le,...R,transform:E?f===`up`?`translateY(calc(-100% + ${L/2}px))`:`translateY(-${L/2}px)`:`translateY(-50%)`,transitionTimingFunction:`cubic-bezier(.2,.8,.2,1)`,"--accent":i};return(0,k.jsxs)(k.Fragment,{children:[(0,k.jsxs)(`div`,{className:`absolute cursor-grab transition-[width] duration-300 select-none will-change-[width] active:cursor-grabbing ${E?`flex rounded-[22px] ${f===`up`?`flex-col`:`flex-col-reverse`}`:`flex h-11 items-center rounded-full`} ${u===`left`&&!E?`flex-row-reverse`:``}`,style:H,onMouseLeave:l,onMouseDown:m,onContextMenu:h,ref:p,children:[(0,k.jsx)(`span`,{className:`absolute inset-0 border border-white/10 bg-[#17181b]/95 shadow-lg shadow-black/40 transition-opacity duration-200 ${E?`rounded-[22px]`:`rounded-full`}`,style:{opacity:+!!T},"aria-hidden":!0}),(A||x||D)&&(0,k.jsx)(`span`,{className:`companion-working-ring pointer-events-none absolute -inset-0.5 ${E?`rounded-[24px]`:`rounded-full`}`,style:{"--companion-ring-accent":x?I:i},"aria-hidden":!0}),x&&j>0&&(0,k.jsx)(`span`,{className:`companion-capture-pulse pointer-events-none absolute -inset-0.5 ${E?`rounded-[24px]`:`rounded-full`}`,style:{"--companion-ring-accent":I},"aria-hidden":!0},j),E&&t.length>0&&(0,k.jsx)(K,{turns:t}),(0,k.jsxs)(`div`,{className:`relative flex h-11 shrink-0 items-center ${u===`left`?`flex-row-reverse`:``}`,children:[(0,k.jsx)(J,{glow:r&&!T,accentHex:i,avatarSrc:a,character:o,attentive:s,busy:A,onMouseEnter:c,onClick:te}),E?(0,k.jsx)(q,{assistantName:n,growth:u,watching:x,onSubmit:ee,onCancel:b,onWatch:y}):(0,k.jsx)(`div`,{className:`relative flex min-w-0 items-center gap-1 overflow-hidden transition-opacity duration-200`,ref:M,inert:!T,style:{opacity:+!!T,transitionDelay:T?`120ms`:`0ms`},children:e===`call`?(0,k.jsx)(de,{call:C,watching:x,onControl:w,onWatch:y}):e===`summary`&&S!==void 0?(0,k.jsx)(X,{retro:S,onWatchRetro:re}):(0,k.jsx)(Y,{spotlight:g,watching:x,watchEnabled:ae,onTalk:_,onType:v,onWatch:y})})]})]}),oe]})}function W({href:e,children:t}){return(0,k.jsx)(`a`,{href:e,className:`underline decoration-white/30 underline-offset-2 hover:decoration-white/60`,onClick:t=>{t.preventDefault(),e!==void 0&&w(e)},onMouseDown:e=>{e.stopPropagation()},children:t})}var G=W;function K({turns:e}){let t=(0,O.useRef)(null);return(0,O.useEffect)(()=>{let e=t.current;e&&(e.scrollTop=e.scrollHeight)},[e]),(0,k.jsx)(`div`,{ref:t,className:`relative flex flex-col gap-1.5 overflow-y-auto px-3 pt-3 pb-1 select-text`,style:{maxHeight:H},children:e.map((e,t)=>{let n=e.role===`user`;return(0,k.jsx)(`div`,{className:`flex shrink-0 ${n?`justify-end`:`justify-start`}`,children:n?(0,k.jsx)(`p`,{className:`max-w-[80%] rounded-lg bg-white/[0.08] px-2.5 py-1.5 text-[12px] leading-[1.45] whitespace-pre-wrap text-white/75`,children:e.text}):(0,k.jsx)(`div`,{"data-theme":`dark`,className:`companion-markdown min-w-0 text-[12px] leading-[1.45] text-white/85`,children:(0,k.jsx)(y,{content:e.text,linkComponent:G})})},`${e.role}-${t}`)})})}function q({assistantName:e,growth:n=`right`,watching:r,onSubmit:a,onCancel:o,onWatch:s}){let{t:c}=t(),[l,u]=(0,O.useState)(``),d=(0,O.useRef)(null),f=l.trim();(0,O.useEffect)(()=>{d.current?.focus()},[]);let p=()=>{f!==``&&(u(``),a?.(f))};return(0,k.jsxs)(`div`,{className:`relative flex min-w-0 flex-1 items-center gap-1 ${n===`left`?`pl-2`:`pr-2`}`,children:[(0,k.jsx)(`input`,{ref:d,type:`text`,value:l,placeholder:c(`companionSurface.messagePlaceholder`,{name:e}),onChange:e=>{u(e.target.value)},onKeyDown:e=>{if(e.key===`Enter`){e.preventDefault(),p();return}e.key===`Escape`&&(e.preventDefault(),o?.())},onMouseDown:e=>{e.stopPropagation()},className:`min-w-0 flex-1 bg-transparent text-[12px] text-white/85 select-text placeholder:text-white/40 focus:outline-none`}),r&&(0,k.jsx)(Z,{onWatch:s}),(0,k.jsx)(`button`,{type:`button`,"aria-label":c(f===``?`companionSurface.goBack`:`companionSurface.send`),title:c(f===``?`companionSurface.goBack`:`companionSurface.send`),onClick:f===``?o:p,onMouseDown:e=>{e.stopPropagation()},className:`grid size-7 shrink-0 place-items-center rounded-full bg-white/10 text-white/85 transition-colors hover:bg-white/20`,children:f===``?(0,k.jsx)(v,{className:`size-3.5`,"aria-hidden":!0}):(0,k.jsx)(i,{className:`size-3.5`,"aria-hidden":!0})})]})}function J({glow:e,accentHex:t,avatarSrc:n,character:r,busy:i=!1,attentive:a=!1,onMouseEnter:o,onClick:s}){return(0,k.jsxs)(`div`,{className:`relative grid size-11 shrink-0 place-items-center`,onMouseEnter:o,onClick:s,children:[e&&(0,k.jsx)(`span`,{className:`absolute size-10 animate-pulse rounded-full blur-lg`,style:{background:t,opacity:.4},"aria-hidden":!0}),r===void 0?n===void 0?(0,k.jsx)(`span`,{className:`relative size-7 rounded-full drop-shadow-[0_1px_3px_rgba(0,0,0,0.55)]`,style:{background:t},"aria-hidden":!0}):(0,k.jsx)(`img`,{src:n,alt:``,draggable:!1,className:`relative size-7 rounded-full object-contain drop-shadow-[0_1px_3px_rgba(0,0,0,0.55)] [-webkit-user-drag:none]`}):(0,k.jsx)(`div`,{className:`relative drop-shadow-[0_1px_3px_rgba(0,0,0,0.55)]`,children:(0,k.jsx)(D,{components:E,traits:r,size:R,isAssistantBusy:i,attentive:a})})]})}function Y({spotlight:e,watching:n=!1,watchEnabled:r=!1,onTalk:i,onType:a,onWatch:s}){let{t:c}=t();return(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(Q,{icon:(0,k.jsx)(u,{className:`size-4`}),label:c(`companionSurface.talk`),showLabel:!0,active:e===`talk`,onClick:i}),(0,k.jsx)(Q,{icon:(0,k.jsx)(o,{className:`size-4`}),label:c(`companionSurface.type`),showLabel:!0,active:e===`type`,onClick:a}),r?(0,k.jsx)(Q,{icon:(0,k.jsx)(h,{className:`size-4`}),label:c(`companionSurface.teach`),showLabel:!0,pressed:n,onClick:s}):n&&(0,k.jsx)(Z,{onWatch:s})]})}function X({retro:e,onWatchRetro:n}){let{t:r}=t();return e===`pending`?(0,k.jsx)(`span`,{className:`ml-1 shrink-0 text-[12px] text-white/85`,children:r(`companionSurface.summarizing`)}):(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(Q,{icon:(0,k.jsx)(f,{className:`size-4`}),label:r(`companionSurface.showSummary`),showLabel:!0,onClick:()=>{n?.(!0)}}),(0,k.jsx)(Q,{icon:(0,k.jsx)(v,{className:`size-4`}),label:r(`companionSurface.notNow`),showLabel:!0,onClick:()=>{n?.(!1)}})]})}function de({call:e,watching:n,onControl:r,onWatch:i}){let{t:o}=t();if(e!==void 0&&e.approvalRequestId!==``)return(0,k.jsx)(fe,{detail:e.detail,requestId:e.approvalRequestId,onControl:r});let c=e===void 0?`Listening`:e.detail||e.label,l=e?.muted??!1,u=e?.outputMuted??!1;return(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(`span`,{className:`ml-1 max-w-[120px] shrink-0 truncate text-[12px] text-white/85`,children:c}),n&&(0,k.jsx)(Z,{onWatch:i}),(0,k.jsx)(Q,{icon:l?(0,k.jsx)(a,{className:`size-4`}):(0,k.jsx)(g,{className:`size-4`}),label:o(l?`companionSurface.unmuteMicrophone`:`companionSurface.muteMicrophone`),onClick:()=>{r?.(l?`unmuteMicrophone`:`muteMicrophone`)}}),(0,k.jsx)(Q,{icon:u?(0,k.jsx)(s,{className:`size-4`}):(0,k.jsx)(_,{className:`size-4`}),label:o(u?`companionSurface.unmuteAssistant`:`companionSurface.muteAssistant`),onClick:()=>{r?.(u?`unmuteAssistantAudio`:`muteAssistantAudio`)}}),(0,k.jsx)(Q,{icon:(0,k.jsx)(v,{className:`size-4`,strokeWidth:2.5}),label:o(`companionSurface.endSession`),tone:`negative`,onClick:()=>{r?.(`endSession`)}})]})}function fe({detail:e,requestId:n,onControl:r}){let{t:i}=t();return(0,k.jsxs)(k.Fragment,{children:[e!==``&&(0,k.jsx)(`span`,{className:`ml-1 max-w-[120px] shrink-0 truncate text-[12px] text-white/85`,children:e}),(0,k.jsx)(Q,{icon:(0,k.jsx)(p,{className:`size-4`}),label:i(`companionSurface.allow`),showLabel:!0,tone:`positive`,onClick:()=>{r?.(`approveRequest`,n)}}),(0,k.jsx)(Q,{icon:(0,k.jsx)(v,{className:`size-4`}),label:i(`companionSurface.deny`),showLabel:!0,tone:`negative`,onClick:()=>{r?.(`denyRequest`,n)}})]})}function Z({onWatch:e}){let{t:n}=t();return(0,k.jsx)(Q,{icon:(0,k.jsx)(m,{className:`size-4`}),label:n(`companionSurface.stopTeaching`),onClick:e})}function Q({icon:e,label:t,tone:n,showLabel:r=!1,active:i=!1,pressed:a,onClick:o}){return(0,k.jsxs)(`button`,{type:`button`,"aria-label":t,"aria-pressed":a,title:t,onClick:o,onMouseDown:e=>{e.stopPropagation()},className:`flex h-7 shrink-0 items-center gap-1.5 rounded-full px-2 text-[12px] transition-colors hover:bg-white/15 ${i||a===!0?`bg-white/15`:``} ${n===`negative`?`text-[#ff6b6b]`:n===`positive`?`text-[#5ee08a]`:`text-white/85`}`,children:[e,r&&(0,k.jsx)(`span`,{children:t})]})}var pe=3,$=44;function me(){let[e,t]=(0,O.useState)(`right`),[n,r]=(0,O.useState)(`up`),[i,a]=(0,O.useState)($),[o,s]=(0,O.useState)(),[l,u]=(0,O.useState)(),[d,f]=(0,O.useState)(null),[p,m]=(0,O.useState)([]),[h,g]=(0,O.useState)(``),[_,v]=(0,O.useState)(!1),[y,w]=(0,O.useState)(!1),[E,D]=(0,O.useState)(void 0),[A,j]=(0,O.useState)(0),[M,N]=(0,O.useState)(!1),[P,F]=(0,O.useState)(!1),[I,L]=(0,O.useState)(null),[R,z]=(0,O.useState)(!1),[B,V]=(0,O.useState)(!1),H=(0,O.useRef)(!1),U=(0,O.useRef)(null),W=(0,O.useRef)(null),G=(0,O.useRef)(null),K=(0,O.useRef)(null),q=(0,O.useRef)(!1);(0,O.useEffect)(()=>{let e=e=>{t(e.growth),r(e.cardGrowth),a(e.avatarBox),s(e.avatarBase64===void 0?void 0:`data:image/png;base64,${e.avatarBase64}`),u(e.character),f(e.call),m(e.turns),g(e.assistantName),v(e.working),w(e.watching===!0),D(e.watchRetro),j(e.captureCount??0),N(e.watchEnabled===!0),L(e.intro)},n=S(e);return ee().then(t=>{t&&e(t)}),n},[]),(0,O.useEffect)(()=>()=>{T(!1),b(!1)},[]),(0,O.useEffect)(()=>{b(R)},[R]);let J=e=>{H.current!==e&&(H.current=e,T(e))},Y=I!==null&&!R&&d===null,X=(0,O.useRef)(Y);(0,O.useEffect)(()=>{X.current&&!Y&&(F(!1),J(!1)),X.current=Y},[Y]);let de=()=>{z(!1),F(!1),J(!1),V(!1)},fe=e=>{if(G.current!==null&&e.buttons===0&&(G.current=null),G.current!==null){let{x:t,y:n}=G.current;ie(e.screenX-t,e.screenY-n),G.current={x:e.screenX,y:e.screenY};let r=K.current;r!==null&&Math.abs(e.screenX-r.x)+Math.abs(e.screenY-r.y)>pe&&(q.current=!0);return}let t=U.current;if(!t)return;let n=t=>{if(!t)return!1;let n=t.getBoundingClientRect();return e.clientX>=n.left&&e.clientX<=n.right&&e.clientY>=n.top&&e.clientY<=n.bottom},r=n(t),i=n(W.current);F(r),J(r||i)},Z=ce(I),Q=R?`typing`:d===null?y?`watching`:E===void 0?Z??(P?`hover`:`resting`):`summary`:`call`,me=d!==null&&/^#[0-9a-f]{6}$/i.test(d.accentHex)?d.accentHex:void 0;return(0,k.jsx)(`div`,{className:`relative h-screen w-screen bg-transparent`,onMouseMove:fe,onMouseUp:()=>{G.current=null},onMouseLeave:()=>{G.current=null,F(!1),J(!1)},children:(0,k.jsx)(`div`,{className:`absolute top-0 left-0 origin-top-left`,style:{width:`${100*$/i}%`,height:`${100*$/i}%`,transform:`scale(${i/$})`},children:(0,k.jsx)(ue,{phase:Q,growth:e,cardGrowth:n,avatarSrc:o,character:l,hovered:P,accentHex:me,turns:B?p:[],assistantName:h===``?void 0:h,call:d??void 0,working:_,watching:y,watchRetro:E,onWatchRetro:C,captureCount:A,watchEnabled:M,spotlight:se(I),intro:!Y||I===null?null:(0,k.jsx)(le,{beat:I,growth:e,cardGrowth:n,accentHex:me,assistantName:h===``?void 0:h,cardRef:W,onAdvance:re}),rootRef:U,onSurfaceMouseDown:e=>{e.button===0&&(G.current={x:e.screenX,y:e.screenY},K.current={x:e.screenX,y:e.screenY},q.current=!1)},onSurfaceContextMenu:e=>{let t=e.target?.closest(`input, textarea, [contenteditable='true']`)!==null,n=(window.getSelection()?.toString().trim().length??0)>0;t||n||(e.preventDefault(),te())},onAvatarClick:()=>{q.current||oe()},onTalk:ne,onWatch:x,onType:()=>{z(!0)},onSubmit:e=>{B||(m([]),V(!0)),ae(e,!B)},onCancelTyping:de,onControl:(e,t)=>{c(t===void 0?{action:e}:{action:e,requestId:t})}})})})}export{me as CompanionSurfacePage};
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{v as t}from"./i18n-BtV8MCsZ.js";import{t as n}from"./react-DJZBPgpf.js";import{t as r}from"./jsx-runtime-COOF1INC.js";import{t as i}from"./arrow-up-CijF4S8i.js";import{d as a,f as o,l as s,n as c,o as l,p as u,s as d,u as f}from"./desktop-voice-activity-DUGtHbRg.js";import{t as p}from"./check-bDVYejGM.js";import{t as m}from"./eye-off-BtRToWVw.js";import{t as h}from"./eye-Bkw-NEUk.js";import{t as g}from"./mic-DQbnjgmt.js";import{t as _}from"./volume-2-DQKLkySB.js";import{t as v}from"./x-nhRPd-Mz.js";import{p as y}from"./src-BKET5Cno.js";import{a as ee,c as b,d as te,f as ne,h as x,m as S,n as re,o as ie,p as ae,r as C,s as w,t as oe,u as T}from"./companion-surface-BYj8yxCS.js";import{t as E}from"./avatar-bundled-components-C1i6ys8w.js";import{t as D}from"./animated-avatar-DAJHVYXE.js";var O=e(n(),1),k=r(),A=12,j=44,M=244,N={meet:{title:`companionIntro.meet.title`,body:`companionIntro.meet.body`},talk:{title:`companionIntro.talk.title`,body:`companionIntro.talk.body`},type:{title:`companionIntro.type.title`,body:`companionIntro.type.body`},menu:{title:`companionIntro.menu.title`,body:`companionIntro.menu.body`}},se=e=>e===`talk`||e===`type`?e:void 0,ce=e=>e===null||e===`meet`?null:`hover`;function le({beat:e,growth:n=`right`,cardGrowth:r=`up`,accentHex:i,assistantName:a,cardRef:o,onAdvance:s}){let{t:c}=t(),u=l.indexOf(e),f=u===l.length-1,p=N[e],m=n===`left`?{right:`50%`,marginRight:-(j/2)}:{left:`50%`,marginLeft:-(j/2)},h=r===`up`?{top:`calc(100% - ${d}px)`,transform:`translateY(calc(-100% - ${j/2+A}px))`}:{top:d,transform:`translateY(${j/2+A}px)`};return(0,k.jsxs)(`div`,{ref:o,role:`group`,"aria-label":c(`companionIntro.ariaLabel`),className:`absolute flex flex-col gap-2 rounded-2xl border border-white/10 bg-[#17181b]/95 px-3.5 py-3 shadow-lg shadow-black/40`,style:{width:M,...m,...h},onMouseDown:e=>{e.stopPropagation()},children:[(0,k.jsx)(`p`,{className:`line-clamp-2 text-[13px] leading-tight font-medium text-white`,children:e===`meet`&&a!==void 0?c(`companionIntro.meet.titleNamed`,{name:a}):c(p.title)}),(0,k.jsx)(`p`,{className:`text-[12px] leading-[1.45] text-white/70`,children:c(p.body)}),(0,k.jsxs)(`div`,{className:`flex items-center justify-between pt-0.5`,children:[(0,k.jsx)(`div`,{className:`flex items-center gap-1`,"aria-hidden":!0,children:l.map((e,t)=>(0,k.jsx)(`span`,{className:`size-1.5 rounded-full transition-colors`,style:{backgroundColor:t===u?i??`#5eead4`:`rgba(255,255,255,.2)`}},e))}),(0,k.jsxs)(`div`,{className:`flex items-center gap-1`,children:[!f&&(0,k.jsx)(`button`,{type:`button`,className:`h-7 rounded-full px-2.5 text-[12px] text-white/55 transition-colors hover:bg-white/10 hover:text-white/80`,onClick:()=>s?.(`dismiss`),children:c(`companionIntro.skip`)}),(0,k.jsx)(`button`,{type:`button`,className:`h-7 rounded-full bg-white/15 px-3 text-[12px] text-white transition-colors hover:bg-white/25`,onClick:()=>s?.(`next`),children:c(f?`companionIntro.done`:`companionIntro.next`)})]})]})]})}var P=`#5eead4`,F=new Set([`transcribing`,`thinking`,`speaking`]),I=`#ff9f45`,L=44,R=28,z=8,B={resting:L,hover:272,watching:272,summary:264,call:332,typing:360},V=360,H=220;function U(e,t){let n=(0,O.useRef)({captureCount:e,watching:t}),[r,i]=(0,O.useState)(0);return(0,O.useEffect)(()=>{let r=n.current;if(n.current={captureCount:e,watching:t},!t){i(0);return}r.watching&&e>r.captureCount&&i(e=>e+1)},[e,t]),r}function ue({phase:e,turns:t=[],assistantName:n=`your assistant`,glow:r=!0,accentHex:i=P,avatarSrc:a,character:o,hovered:s=!1,onHoverStart:c,onHoverEnd:l,growth:u=`right`,cardGrowth:f=`up`,rootRef:p,onSurfaceMouseDown:m,onSurfaceContextMenu:h,spotlight:g,onTalk:_,onType:v,onWatch:y,onSubmit:ee,onCancelTyping:b,onAvatarClick:te,working:ne=!1,watching:x=!1,watchRetro:S,onWatchRetro:re,captureCount:ie=0,watchEnabled:ae=!1,call:C,onControl:w,intro:oe}){let T=e!==`resting`,E=e===`typing`,D=S===`pending`,A=ne||C!==void 0&&F.has(C.phase),j=U(ie,x),M=(0,O.useRef)(null),[N,se]=(0,O.useState)(null);(0,O.useLayoutEffect)(()=>{let e=M.current;if(!e)return;let t=()=>{se(e.scrollWidth)};t();let n=new ResizeObserver(t);return n.observe(e),()=>{n.disconnect()}},[e]);let ce=E?V:L+(T?(N??B[e]-L)+z:0),le=u===`left`?{right:`50%`,marginRight:-(L/2)}:{left:`50%`,marginLeft:-(L/2)},R=f===`up`?{top:`calc(100% - ${d}px)`}:{top:d},H={width:ce,...le,...R,transform:E?f===`up`?`translateY(calc(-100% + ${L/2}px))`:`translateY(-${L/2}px)`:`translateY(-50%)`,transitionTimingFunction:`cubic-bezier(.2,.8,.2,1)`,"--accent":i};return(0,k.jsxs)(k.Fragment,{children:[(0,k.jsxs)(`div`,{className:`absolute cursor-grab transition-[width] duration-300 select-none will-change-[width] active:cursor-grabbing ${E?`flex rounded-[22px] ${f===`up`?`flex-col`:`flex-col-reverse`}`:`flex h-11 items-center rounded-full`} ${u===`left`&&!E?`flex-row-reverse`:``}`,style:H,onMouseLeave:l,onMouseDown:m,onContextMenu:h,ref:p,children:[(0,k.jsx)(`span`,{className:`absolute inset-0 border border-white/10 bg-[#17181b]/95 shadow-lg shadow-black/40 transition-opacity duration-200 ${E?`rounded-[22px]`:`rounded-full`}`,style:{opacity:+!!T},"aria-hidden":!0}),(A||x||D)&&(0,k.jsx)(`span`,{className:`companion-working-ring pointer-events-none absolute -inset-0.5 ${E?`rounded-[24px]`:`rounded-full`}`,style:{"--companion-ring-accent":x?I:i},"aria-hidden":!0}),x&&j>0&&(0,k.jsx)(`span`,{className:`companion-capture-pulse pointer-events-none absolute -inset-0.5 ${E?`rounded-[24px]`:`rounded-full`}`,style:{"--companion-ring-accent":I},"aria-hidden":!0},j),E&&t.length>0&&(0,k.jsx)(K,{turns:t}),(0,k.jsxs)(`div`,{className:`relative flex h-11 shrink-0 items-center ${u===`left`?`flex-row-reverse`:``}`,children:[(0,k.jsx)(J,{glow:r&&!T,accentHex:i,avatarSrc:a,character:o,attentive:s,busy:A,onMouseEnter:c,onClick:te}),E?(0,k.jsx)(q,{assistantName:n,growth:u,watching:x,onSubmit:ee,onCancel:b,onWatch:y}):(0,k.jsx)(`div`,{className:`relative flex min-w-0 items-center gap-1 overflow-hidden transition-opacity duration-200`,ref:M,inert:!T,style:{opacity:+!!T,transitionDelay:T?`120ms`:`0ms`},children:e===`call`?(0,k.jsx)(de,{call:C,watching:x,onControl:w,onWatch:y}):e===`summary`&&S!==void 0?(0,k.jsx)(X,{retro:S,onWatchRetro:re}):(0,k.jsx)(Y,{spotlight:g,watching:x,watchEnabled:ae,onTalk:_,onType:v,onWatch:y})})]})]}),oe]})}function W({href:e,children:t}){return(0,k.jsx)(`a`,{href:e,className:`underline decoration-white/30 underline-offset-2 hover:decoration-white/60`,onClick:t=>{t.preventDefault(),e!==void 0&&w(e)},onMouseDown:e=>{e.stopPropagation()},children:t})}var G=W;function K({turns:e}){let t=(0,O.useRef)(null);return(0,O.useEffect)(()=>{let e=t.current;e&&(e.scrollTop=e.scrollHeight)},[e]),(0,k.jsx)(`div`,{ref:t,className:`relative flex flex-col gap-1.5 overflow-y-auto px-3 pt-3 pb-1 select-text`,style:{maxHeight:H},children:e.map((e,t)=>{let n=e.role===`user`;return(0,k.jsx)(`div`,{className:`flex shrink-0 ${n?`justify-end`:`justify-start`}`,children:n?(0,k.jsx)(`p`,{className:`max-w-[80%] rounded-lg bg-white/[0.08] px-2.5 py-1.5 text-[12px] leading-[1.45] whitespace-pre-wrap text-white/75`,children:e.text}):(0,k.jsx)(`div`,{"data-theme":`dark`,className:`companion-markdown min-w-0 text-[12px] leading-[1.45] text-white/85`,children:(0,k.jsx)(y,{content:e.text,linkComponent:G})})},`${e.role}-${t}`)})})}function q({assistantName:e,growth:n=`right`,watching:r,onSubmit:a,onCancel:o,onWatch:s}){let{t:c}=t(),[l,u]=(0,O.useState)(``),d=(0,O.useRef)(null),f=l.trim();(0,O.useEffect)(()=>{d.current?.focus()},[]);let p=()=>{f!==``&&(u(``),a?.(f))};return(0,k.jsxs)(`div`,{className:`relative flex min-w-0 flex-1 items-center gap-1 ${n===`left`?`pl-2`:`pr-2`}`,children:[(0,k.jsx)(`input`,{ref:d,type:`text`,value:l,placeholder:c(`companionSurface.messagePlaceholder`,{name:e}),onChange:e=>{u(e.target.value)},onKeyDown:e=>{if(e.key===`Enter`){e.preventDefault(),p();return}e.key===`Escape`&&(e.preventDefault(),o?.())},onMouseDown:e=>{e.stopPropagation()},className:`min-w-0 flex-1 bg-transparent text-[12px] text-white/85 select-text placeholder:text-white/40 focus:outline-none`}),r&&(0,k.jsx)(Z,{onWatch:s}),(0,k.jsx)(`button`,{type:`button`,"aria-label":c(f===``?`companionSurface.goBack`:`companionSurface.send`),title:c(f===``?`companionSurface.goBack`:`companionSurface.send`),onClick:f===``?o:p,onMouseDown:e=>{e.stopPropagation()},className:`grid size-7 shrink-0 place-items-center rounded-full bg-white/10 text-white/85 transition-colors hover:bg-white/20`,children:f===``?(0,k.jsx)(v,{className:`size-3.5`,"aria-hidden":!0}):(0,k.jsx)(i,{className:`size-3.5`,"aria-hidden":!0})})]})}function J({glow:e,accentHex:t,avatarSrc:n,character:r,busy:i=!1,attentive:a=!1,onMouseEnter:o,onClick:s}){return(0,k.jsxs)(`div`,{className:`relative grid size-11 shrink-0 place-items-center`,onMouseEnter:o,onClick:s,children:[e&&(0,k.jsx)(`span`,{className:`absolute size-10 animate-pulse rounded-full blur-lg`,style:{background:t,opacity:.4},"aria-hidden":!0}),r===void 0?n===void 0?(0,k.jsx)(`span`,{className:`relative size-7 rounded-full drop-shadow-[0_1px_3px_rgba(0,0,0,0.55)]`,style:{background:t},"aria-hidden":!0}):(0,k.jsx)(`img`,{src:n,alt:``,draggable:!1,className:`relative size-7 rounded-full object-contain drop-shadow-[0_1px_3px_rgba(0,0,0,0.55)] [-webkit-user-drag:none]`}):(0,k.jsx)(`div`,{className:`relative drop-shadow-[0_1px_3px_rgba(0,0,0,0.55)]`,children:(0,k.jsx)(D,{components:E,traits:r,size:R,isAssistantBusy:i,attentive:a})})]})}function Y({spotlight:e,watching:n=!1,watchEnabled:r=!1,onTalk:i,onType:a,onWatch:s}){let{t:c}=t();return(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(Q,{icon:(0,k.jsx)(u,{className:`size-4`}),label:c(`companionSurface.talk`),showLabel:!0,active:e===`talk`,onClick:i}),(0,k.jsx)(Q,{icon:(0,k.jsx)(o,{className:`size-4`}),label:c(`companionSurface.type`),showLabel:!0,active:e===`type`,onClick:a}),r?(0,k.jsx)(Q,{icon:(0,k.jsx)(h,{className:`size-4`}),label:c(`companionSurface.teach`),showLabel:!0,pressed:n,onClick:s}):n&&(0,k.jsx)(Z,{onWatch:s})]})}function X({retro:e,onWatchRetro:n}){let{t:r}=t();return e===`pending`?(0,k.jsx)(`span`,{className:`ml-1 shrink-0 text-[12px] text-white/85`,children:r(`companionSurface.summarizing`)}):(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(Q,{icon:(0,k.jsx)(f,{className:`size-4`}),label:r(`companionSurface.showSummary`),showLabel:!0,onClick:()=>{n?.(!0)}}),(0,k.jsx)(Q,{icon:(0,k.jsx)(v,{className:`size-4`}),label:r(`companionSurface.notNow`),showLabel:!0,onClick:()=>{n?.(!1)}})]})}function de({call:e,watching:n,onControl:r,onWatch:i}){let{t:o}=t();if(e!==void 0&&e.approvalRequestId!==``)return(0,k.jsx)(fe,{detail:e.detail,requestId:e.approvalRequestId,onControl:r});let c=e===void 0?`Listening`:e.detail||e.label,l=e?.muted??!1,u=e?.outputMuted??!1;return(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(`span`,{className:`ml-1 max-w-[120px] shrink-0 truncate text-[12px] text-white/85`,children:c}),n&&(0,k.jsx)(Z,{onWatch:i}),(0,k.jsx)(Q,{icon:l?(0,k.jsx)(a,{className:`size-4`}):(0,k.jsx)(g,{className:`size-4`}),label:o(l?`companionSurface.unmuteMicrophone`:`companionSurface.muteMicrophone`),onClick:()=>{r?.(l?`unmuteMicrophone`:`muteMicrophone`)}}),(0,k.jsx)(Q,{icon:u?(0,k.jsx)(s,{className:`size-4`}):(0,k.jsx)(_,{className:`size-4`}),label:o(u?`companionSurface.unmuteAssistant`:`companionSurface.muteAssistant`),onClick:()=>{r?.(u?`unmuteAssistantAudio`:`muteAssistantAudio`)}}),(0,k.jsx)(Q,{icon:(0,k.jsx)(v,{className:`size-4`,strokeWidth:2.5}),label:o(`companionSurface.endSession`),tone:`negative`,onClick:()=>{r?.(`endSession`)}})]})}function fe({detail:e,requestId:n,onControl:r}){let{t:i}=t();return(0,k.jsxs)(k.Fragment,{children:[e!==``&&(0,k.jsx)(`span`,{className:`ml-1 max-w-[120px] shrink-0 truncate text-[12px] text-white/85`,children:e}),(0,k.jsx)(Q,{icon:(0,k.jsx)(p,{className:`size-4`}),label:i(`companionSurface.allow`),showLabel:!0,tone:`positive`,onClick:()=>{r?.(`approveRequest`,n)}}),(0,k.jsx)(Q,{icon:(0,k.jsx)(v,{className:`size-4`}),label:i(`companionSurface.deny`),showLabel:!0,tone:`negative`,onClick:()=>{r?.(`denyRequest`,n)}})]})}function Z({onWatch:e}){let{t:n}=t();return(0,k.jsx)(Q,{icon:(0,k.jsx)(m,{className:`size-4`}),label:n(`companionSurface.stopTeaching`),onClick:e})}function Q({icon:e,label:t,tone:n,showLabel:r=!1,active:i=!1,pressed:a,onClick:o}){return(0,k.jsxs)(`button`,{type:`button`,"aria-label":t,"aria-pressed":a,title:t,onClick:o,onMouseDown:e=>{e.stopPropagation()},className:`flex h-7 shrink-0 items-center gap-1.5 rounded-full px-2 text-[12px] transition-colors hover:bg-white/15 ${i||a===!0?`bg-white/15`:``} ${n===`negative`?`text-[#ff6b6b]`:n===`positive`?`text-[#5ee08a]`:`text-white/85`}`,children:[e,r&&(0,k.jsx)(`span`,{children:t})]})}var pe=3,$=44;function me(){let[e,t]=(0,O.useState)(`right`),[n,r]=(0,O.useState)(`up`),[i,a]=(0,O.useState)($),[o,s]=(0,O.useState)(),[l,u]=(0,O.useState)(),[d,f]=(0,O.useState)(null),[p,m]=(0,O.useState)([]),[h,g]=(0,O.useState)(``),[_,v]=(0,O.useState)(!1),[y,w]=(0,O.useState)(!1),[E,D]=(0,O.useState)(void 0),[A,j]=(0,O.useState)(0),[M,N]=(0,O.useState)(!1),[P,F]=(0,O.useState)(!1),[I,L]=(0,O.useState)(null),[R,z]=(0,O.useState)(!1),[B,V]=(0,O.useState)(!1),H=(0,O.useRef)(!1),U=(0,O.useRef)(null),W=(0,O.useRef)(null),G=(0,O.useRef)(null),K=(0,O.useRef)(null),q=(0,O.useRef)(!1);(0,O.useEffect)(()=>{let e=e=>{t(e.growth),r(e.cardGrowth),a(e.avatarBox),s(e.avatarBase64===void 0?void 0:`data:image/png;base64,${e.avatarBase64}`),u(e.character),f(e.call),m(e.turns),g(e.assistantName),v(e.working),w(e.watching===!0),D(e.watchRetro),j(e.captureCount??0),N(e.watchEnabled===!0),L(e.intro)},n=S(e);return ee().then(t=>{t&&e(t)}),n},[]),(0,O.useEffect)(()=>()=>{T(!1),b(!1)},[]),(0,O.useEffect)(()=>{b(R)},[R]);let J=e=>{H.current!==e&&(H.current=e,T(e))},Y=I!==null&&!R&&d===null,X=(0,O.useRef)(Y);(0,O.useEffect)(()=>{X.current&&!Y&&(F(!1),J(!1)),X.current=Y},[Y]);let de=()=>{z(!1),F(!1),J(!1),V(!1)},fe=e=>{if(G.current!==null&&e.buttons===0&&(G.current=null),G.current!==null){let{x:t,y:n}=G.current;ie(e.screenX-t,e.screenY-n),G.current={x:e.screenX,y:e.screenY};let r=K.current;r!==null&&Math.abs(e.screenX-r.x)+Math.abs(e.screenY-r.y)>pe&&(q.current=!0);return}let t=U.current;if(!t)return;let n=t=>{if(!t)return!1;let n=t.getBoundingClientRect();return e.clientX>=n.left&&e.clientX<=n.right&&e.clientY>=n.top&&e.clientY<=n.bottom},r=n(t),i=n(W.current);F(r),J(r||i)},Z=ce(I),Q=R?`typing`:d===null?y?`watching`:E===void 0?Z??(P?`hover`:`resting`):`summary`:`call`,me=d!==null&&/^#[0-9a-f]{6}$/i.test(d.accentHex)?d.accentHex:void 0;return(0,k.jsx)(`div`,{className:`relative h-screen w-screen bg-transparent`,onMouseMove:fe,onMouseUp:()=>{G.current=null},onMouseLeave:()=>{G.current=null,F(!1),J(!1)},children:(0,k.jsx)(`div`,{className:`absolute top-0 left-0 origin-top-left`,style:{width:`${100*$/i}%`,height:`${100*$/i}%`,transform:`scale(${i/$})`},children:(0,k.jsx)(ue,{phase:Q,growth:e,cardGrowth:n,avatarSrc:o,character:l,hovered:P,accentHex:me,turns:B?p:[],assistantName:h===``?void 0:h,call:d??void 0,working:_,watching:y,watchRetro:E,onWatchRetro:C,captureCount:A,watchEnabled:M,spotlight:se(I),intro:!Y||I===null?null:(0,k.jsx)(le,{beat:I,growth:e,cardGrowth:n,accentHex:me,assistantName:h===``?void 0:h,cardRef:W,onAdvance:re}),rootRef:U,onSurfaceMouseDown:e=>{e.button===0&&(G.current={x:e.screenX,y:e.screenY},K.current={x:e.screenX,y:e.screenY},q.current=!1)},onSurfaceContextMenu:e=>{let t=e.target?.closest(`input, textarea, [contenteditable='true']`)!==null,n=(window.getSelection()?.toString().trim().length??0)>0;t||n||(e.preventDefault(),te())},onAvatarClick:()=>{q.current||oe()},onTalk:ne,onWatch:x,onType:()=>{z(!0)},onSubmit:e=>{B||(m([]),V(!0)),ae(e,!B)},onCancelTyping:de,onControl:(e,t)=>{c(t===void 0?{action:e}:{action:e,requestId:t})}})})})}export{me as CompanionSurfacePage};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{c as t,l as n,v as r}from"./i18n-BDfnKs41.js";import{t as i}from"./react-DJZBPgpf.js";import{t as a}from"./button-B1kEAcLt.js";import{t as o}from"./jsx-runtime-COOF1INC.js";import{t as s}from"./createLucideIcon-CMfEC_aW.js";import{t as c}from"./checkbox--DYEubRE.js";import{t as l}from"./triangle-alert-B6J57Xfo.js";import{t as u}from"./notice-BHeYlKvv.js";import"./src-BKET5Cno.js";import{t as d}from"./modal-_49mDK_d.js";import{c as f,r as p,s as m,t as h}from"./local-settings-D9SNRv4p.js";import{f as g,l as _}from"./use-assistant-avatar-CT8Pozwx.js";import{i as v,t as y}from"./dist-Cr8OiiXj.js";import{a as b,i as x}from"./typed-storage-Bw4gW_Pk.js";import{n as S,r as C,t as w}from"./theme-preferences-U-DK54R3.js";import{t as T}from"./client-feature-flag-store-BmjgGl9P.js";import{t as E}from"./use-bus-subscription-DfxTm1-Q.js";import{o as ee}from"./funnel-events-D-InjbTX.js";var D=s(`package`,[[`path`,{d:`M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z`,key:`1a0edw`}],[`path`,{d:`M12 22V12`,key:`d0xqtd`}],[`polyline`,{points:`3.29 7 12 12 20.71 7`,key:`ousv84`}],[`path`,{d:`m7.5 4.27 9 5.15`,key:`1c824w`}]]),O=e(i(),1),k=`NativeLaunchScreen`,A=v(k);function j(e){return e===`velvet`?`dark`:e}function M(){return y.isNativePlatform()&&y.getPlatform()===`android`&&y.isPluginAvailable(k)}async function te(e){if(M())try{await A.ready({theme:j(e)})}catch(e){n(e,{context:`native_launch_screen_ready`,bestEffort:!0})}}async function ne(e){if(M())try{await A.setTheme({theme:j(e)})}catch(e){n(e,{context:`native_launch_screen_theme_sync`,bestEffort:!0})}}function re(){return T.use.stringFlags().proactiveTips??`off`}function ie(e){return e===`on`}function N(e){return e===void 0||typeof e==`number`&&Number.isFinite(e)}function ae(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e;return typeof t.shownCount==`number`&&Number.isFinite(t.shownCount)&&N(t.dismissedAt)&&N(t.lastShownAt)}function P(e){let t=JSON.parse(e);if(!t||typeof t!=`object`||Array.isArray(t))return null;let n={};for(let[e,r]of Object.entries(t))ae(r)&&(n[e]=r);return n}function oe(e){let t=Number(e);return Number.isFinite(t)&&t>=0?t:null}var F=x({key:`device:tips:records`,scope:`device`,parse:P,serialize:JSON.stringify,fallback:{}}),se=x({key:`device:tips:enabled`,scope:`device`,parse:b,serialize:String,fallback:!0}),I=x({key:`device:tips:first_seen_at`,scope:`device`,parse:oe,serialize:String,fallback:0});function ce(){I.load()===0&&I.save(Date.now())}function le(e,t){let n=F.load(),r=n[e];F.save({...n,[e]:{...r,lastShownAt:t,shownCount:(r?.shownCount??0)+1}})}function ue(e,t){let n=F.load(),r=n[e];F.save({...n,[e]:{...r,dismissedAt:t,shownCount:r?.shownCount??0}})}var de=`proactive-tips-v1`,fe={impression:0,learn_more:1,dismiss:2,dont_show_again:3,click:4,completion:5};function pe(e,t,n){ee({stepName:t,stepIndex:fe[t]},{funnelVersion:de,screen:e,variant:n})}function L(){let e=T.use.velvet(),[n,r]=(0,O.useState)(()=>S({velvetEnabled:e}));return(0,O.useEffect)(()=>{r(S({velvetEnabled:e}))},[e]),(0,O.useEffect)(()=>t(`theme`,()=>{r(S({velvetEnabled:e}))}),[e]),(0,O.useEffect)(()=>{w(n)},[n]),{theme:n,setThemePreference:e=>{r(e),C(e),ne(e)}}}var R=6e4;function z(e){return!!(e?.enabled&&e.effectivelyLocked)}function B(e){return z(e)?e.acknowledged&&!e.overrideActive:!1}function V(e){return!!(e&&z(e)&&!e.acknowledged&&!e.overrideActive)}function me(e){return!!(e?.enabled&&e.state===`warning`)}function he(e){return V(e)?`acknowledgement-required`:B(e)?`cleanup`:me(e)?`warning`:`inactive`}function ge({monitorEnabled:e,hasResolvedStatus:t,status:n}){return!e||!t?null:V(n)?`acknowledgement-required`:null}function _e(e){return`Storage cleanup mode must be acknowledged before sending messages.`}function H(e,t){return e===t?!0:!e||!t?!1:e.enabled===t.enabled&&e.state===t.state&&e.locked===t.locked&&e.acknowledged===t.acknowledged&&e.overrideActive===t.overrideActive&&e.effectivelyLocked===t.effectivelyLocked&&e.lockId===t.lockId&&e.usagePercent===t.usagePercent&&e.thresholdPercent===t.thresholdPercent&&e.path===t.path&&e.lastCheckedAt===t.lastCheckedAt&&e.error===t.error&&e.blockedCapabilities.length===t.blockedCapabilities.length&&e.blockedCapabilities.every((e,n)=>e===t.blockedCapabilities[n])}function ve(e){return e?.usagePercent==null||!Number.isFinite(e.usagePercent)?`Unknown`:`${Math.round(e.usagePercent)}%`}var U={assistantId:null,status:null,hasResolvedStatus:!1};function W({assistantId:e,enabled:t,refreshKey:n,cadenceMs:r,fetchStatus:i,areStatusesEqual:a,deriveMode:o,extractSseStatus:s,onStatusEvent:c}){let[l,u]=(0,O.useState)(U),d=(0,O.useRef)(e),f=(0,O.useRef)(t),p=(0,O.useRef)(0),m=(0,O.useRef)(0),h=(0,O.useRef)(i),g=(0,O.useRef)(a),_=(0,O.useRef)(c);(0,O.useLayoutEffect)(()=>{d.current=e,f.current=t,h.current=i,g.current=a,_.current=c}),(0,O.useEffect)(()=>{p.current+=1,u(U)},[e,t]);let v=(0,O.useCallback)(()=>(p.current+=1,p.current),[]),y=(0,O.useCallback)((e,t)=>f.current&&d.current===e&&p.current===t,[]),b=(0,O.useCallback)((e,t,n,r)=>{y(e,r)&&u(r=>r.assistantId===e&&r.hasResolvedStatus===n&&g.current(r.status,t)?r:{assistantId:e,status:t,hasResolvedStatus:n})},[y]),x=(0,O.useCallback)(()=>{p.current+=1,u(U)},[]),S=(0,O.useCallback)(async()=>{let n=e;if(!t||!n){x();return}let r=p.current,i=m.current+1;m.current=i;try{let e=await h.current(n);if(m.current!==i)return;if(!e.ok){b(n,null,!1,r);return}b(n,e.data.status,!0,r)}catch{if(m.current!==i)return;b(n,null,!1,r)}},[e,b,x,t]);(0,O.useEffect)(()=>{if(!t||!e)return;S();let n=window.setInterval(()=>{S()},r);return()=>{window.clearInterval(n)}},[e,r,t,S,n]),E(`app.resume`,()=>{S()});let C=(0,O.useCallback)(n=>{if(!t||!e){x();return}let r=v();_.current?.(),b(e,n,!0,r)},[e,b,v,x,t]);E(`sse.event`,e=>{let t=s(e.message);t!==void 0&&C(t)});let w=t&&l.assistantId===e?l.status:null,T=!!(t&&e&&l.assistantId===e&&l.hasResolvedStatus);return{status:w,mode:(0,O.useMemo)(()=>o(w),[o,w]),hasResolvedStatus:T,applyStatusEvent:C,refresh:S,bumpGeneration:v,isCurrentRequest:y,applyStatusForAssistant:b,clearStatus:x}}var G=`Failed to acknowledge assistant disk pressure.`;function ye(e,t){return e instanceof Error?e:Error(t)}function be({assistantId:e,enabled:t,refreshKey:n,cadenceMs:r=R}){let[i,a]=(0,O.useState)(!1),[o,s]=(0,O.useState)(null),c=(0,O.useCallback)(()=>{a(!1),s(null)},[]),l=W({assistantId:e,enabled:t,refreshKey:n,cadenceMs:r,fetchStatus:g,areStatusesEqual:H,deriveMode:he,extractSseStatus:e=>e.type===`disk_pressure_status_changed`?e.status:void 0,onStatusEvent:c}),{applyStatusForAssistant:u,bumpGeneration:d,clearStatus:f,isCurrentRequest:p}=l;(0,O.useEffect)(()=>{c()},[e,t,c]);let m=(0,O.useCallback)(async()=>{let n=e;if(!t||!n){f();return}let r=d();a(!0),s(null);try{let e=await _(n);if(!e.ok)throw Error(G);if(!p(n,r))return;u(n,e.data.status,!0,d()),a(!1)}catch(e){p(n,r)&&s(ye(e,G))}finally{p(n,r)&&a(!1)}},[e,u,d,f,t,p]);return{status:l.status,mode:l.mode,hasResolvedStatus:l.hasResolvedStatus,isAcknowledging:i,acknowledgeError:o,acknowledge:m,applyStatusEvent:l.applyStatusEvent,refresh:l.refresh}}var K=o();function xe(e){let{status:t,mode:n,isAcknowledging:i=!1,acknowledgeError:o,onAcknowledge:s,onDismissWarning:f,onReviewWorkspaceData:p,onUpgradeStorage:m}=e,{t:h}=r(),[g,_]=(0,O.useState)(!1),[v,y]=(0,O.useState)(!1),b=ve(t);if(n===`warning`){let e=t.usagePercent??0;return(0,K.jsx)(u,{tone:`warning`,title:h(`diskPressureBanner.warningTitle`),icon:(0,K.jsx)(D,{className:`h-4 w-4`,"aria-hidden":`true`}),onDismiss:f?()=>f(v):void 0,className:`p-4`,"data-testid":`disk-pressure-banner`,children:(0,K.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,K.jsx)(`div`,{className:`h-1.5 flex-1 overflow-hidden rounded-full bg-[var(--surface-active)]`,children:(0,K.jsx)(`div`,{className:`h-full rounded-full transition-[width] duration-300`,style:{width:`${e}%`,backgroundColor:`var(--system-mid-strong)`}})}),(0,K.jsx)(`span`,{className:`text-body-medium-default shrink-0 tabular-nums text-[color:var(--system-mid-strong)]`,children:b})]}),(0,K.jsx)(`p`,{className:`m-0`,children:h(m?`diskPressureBanner.warningBodyWithUpgrade`:`diskPressureBanner.warningBody`)}),(0,K.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[p&&(0,K.jsx)(a,{variant:`outlined`,size:`compact`,onClick:p,children:h(`diskPressureBanner.manageStorage`)}),m&&(0,K.jsx)(a,{variant:`outlined`,size:`compact`,onClick:m,children:h(`diskPressureBanner.upgrade`)}),f?(0,K.jsx)(c,{className:`ml-auto`,checked:v,onCheckedChange:e=>y(e===!0),label:h(`diskPressureBanner.dontShowAgain`),"data-testid":`disk-pressure-banner-dont-show-again`}):null]})]})})}if(n===`cleanup`){let e=t.usagePercent??0;return(0,K.jsx)(u,{tone:`warning`,title:h(`diskPressureBanner.cleanupTitle`),icon:(0,K.jsx)(D,{className:`h-4 w-4`,"aria-hidden":`true`}),className:`p-4`,"data-testid":`disk-pressure-banner`,children:(0,K.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,K.jsx)(`div`,{className:`h-1.5 flex-1 overflow-hidden rounded-full bg-[var(--surface-active)]`,children:(0,K.jsx)(`div`,{className:`h-full rounded-full transition-[width] duration-300`,style:{width:`${e}%`,backgroundColor:`var(--system-mid-strong)`}})}),(0,K.jsx)(`span`,{className:`text-body-medium-default shrink-0 tabular-nums text-[color:var(--system-mid-strong)]`,children:b})]}),(0,K.jsx)(`p`,{className:`m-0`,children:h(`diskPressureBanner.cleanupBody`)}),(0,K.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[p&&(0,K.jsx)(a,{variant:`outlined`,size:`compact`,onClick:p,children:h(`diskPressureBanner.manageStorage`)}),m&&(0,K.jsx)(a,{variant:`outlined`,size:`compact`,onClick:m,children:h(`diskPressureBanner.upgrade`)})]})]})})}let x=t.usagePercent??0;return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(u,{tone:`error`,title:h(`diskPressureBanner.criticalTitle`),icon:(0,K.jsx)(D,{className:`h-4 w-4`,"aria-hidden":`true`}),className:`p-4`,"data-testid":`disk-pressure-banner`,children:(0,K.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,K.jsx)(`div`,{className:`h-1.5 flex-1 overflow-hidden rounded-full bg-[var(--surface-active)]`,children:(0,K.jsx)(`div`,{className:`h-full rounded-full transition-[width] duration-300`,style:{width:`${x}%`,backgroundColor:`var(--system-negative-strong)`}})}),(0,K.jsx)(`span`,{className:`text-body-medium-default shrink-0 tabular-nums text-[color:var(--system-negative-strong)]`,children:b})]}),(0,K.jsx)(`p`,{className:`m-0`,children:h(`diskPressureBanner.criticalBody`)}),o?(0,K.jsx)(`span`,{className:`text-[var(--system-negative-strong)]`,role:`alert`,children:o}):null,(0,K.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:(0,K.jsx)(a,{variant:`primary`,size:`compact`,onClick:()=>_(!0),children:h(`diskPressureBanner.review`)})})]})}),(0,K.jsx)(d.Root,{open:g,onOpenChange:e=>{e||_(!1)},children:(0,K.jsxs)(d.Content,{size:`sm`,children:[(0,K.jsx)(d.Header,{icon:l,children:(0,K.jsx)(d.Title,{children:h(`diskPressureBanner.criticalTitle`)})}),(0,K.jsx)(d.Body,{children:(0,K.jsx)(d.Description,{children:h(`diskPressureBanner.criticalModalDescription`)})}),(0,K.jsxs)(d.Footer,{children:[m&&(0,K.jsx)(a,{variant:`outlined`,onClick:()=>{_(!1),m()},children:h(`diskPressureBanner.upgrade`)}),(0,K.jsx)(a,{variant:`primary`,disabled:i,onClick:()=>{s(),_(!1)},children:h(i?`diskPressureBanner.acknowledging`:`diskPressureBanner.acknowledge`)})]})]})})]})}var Se=`https://apps.apple.com/us/app/vellum-assistant/id6759934423`,q=`ai.vellum.assistant`,Ce=`https://play.google.com/store/apps/details?id=${q}`,J={ios:{downloaded:`app.iosNudge.downloaded`,bannerDismissed:`app.iosNudge.bannerDismissed`,assistantTurnsSeen:`app.iosNudge.assistantTurnsSeen`},android:{downloaded:`app.androidNudge.downloaded`,bannerDismissed:`app.androidNudge.bannerDismissed`,assistantTurnsSeen:`app.androidNudge.assistantTurnsSeen`}};function we(){let e=(void 0)?.trim();if(!e)return null;try{let t=new URL(e);return t.protocol===`https:`&&t.hostname===`play.google.com`&&t.pathname===`/store/apps/details`&&t.searchParams.get(`id`)===q?Ce:null}catch(e){if(e instanceof TypeError)return null;throw e}}function Y(e){return e===`ios`?`iOS`:`Android`}function X(e){if(e===`ios`)return{platform:e,appName:Y(e),storeUrl:Se};let t=we();return t?{platform:e,appName:Y(e),storeUrl:t}:null}function Te(e){return h(J[e].downloaded,!1)}function Z(e){m(J[e].downloaded,!0)}function Ee(e){return h(J[e].bannerDismissed,!1)}function De(e){m(J[e].bannerDismissed,!0)}function Q(e){return Math.max(0,p(J[e].assistantTurnsSeen,0))}function Oe(e,t=1){t<=0||f(J[e].assistantTurnsSeen,Q(e)+t)}function $(e){let t=X(e);return t?(window.open(t.storeUrl,`_blank`,`noopener,noreferrer`),!0):!1}function ke(e){let[t,n]=(0,O.useState)(!1),[r,i]=(0,O.useState)(!1),a=X(e)!==null;(0,O.useEffect)(()=>{n(Te(e)),i(Ee(e))},[e]);let o=(0,O.useCallback)(()=>{$(e)&&(Z(e),n(!0))},[e]),s=(0,O.useCallback)(()=>{De(e),i(!0)},[e]);return(0,O.useMemo)(()=>({bannerShouldShow:a&&!t&&!r,handleDownload:o,handleBannerDismiss:s}),[a,t,r,o,s])}var Ae=x({key:`device:cmd_enter_to_send`,scope:`device`,parse:b,serialize:String,fallback:!1}),je=x({key:`device:show_context_window_indicator`,scope:`device`,parse:b,serialize:String,fallback:!1});export{ie as C,D as E,I as S,te as T,ce as _,Oe as a,F as b,ke as c,be as d,W as f,pe as g,L as h,X as i,Z as l,ge as m,je as n,$ as o,_e as p,Y as r,Q as s,Ae as t,xe as u,ue as v,re as w,se as x,le as y};
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{c as t,l as n,v as r}from"./i18n-BtV8MCsZ.js";import{t as i}from"./react-DJZBPgpf.js";import{t as a}from"./button-B1kEAcLt.js";import{t as o}from"./jsx-runtime-COOF1INC.js";import{t as s}from"./createLucideIcon-CMfEC_aW.js";import{t as c}from"./checkbox--DYEubRE.js";import{t as l}from"./triangle-alert-B6J57Xfo.js";import{t as u}from"./notice-BHeYlKvv.js";import"./src-BKET5Cno.js";import{t as d}from"./modal-_49mDK_d.js";import{c as f,r as p,s as m,t as h}from"./local-settings-D9SNRv4p.js";import{f as g,l as _}from"./use-assistant-avatar-C2TgszRj.js";import{i as v,t as y}from"./dist-Cr8OiiXj.js";import{a as b,i as x}from"./typed-storage-Bw4gW_Pk.js";import{n as S,r as C,t as w}from"./theme-preferences-ysFQ1QCN.js";import{t as T}from"./client-feature-flag-store-BmjgGl9P.js";import{t as E}from"./use-bus-subscription-DfxTm1-Q.js";import{o as ee}from"./funnel-events-Dl6Nt7nA.js";var D=s(`package`,[[`path`,{d:`M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z`,key:`1a0edw`}],[`path`,{d:`M12 22V12`,key:`d0xqtd`}],[`polyline`,{points:`3.29 7 12 12 20.71 7`,key:`ousv84`}],[`path`,{d:`m7.5 4.27 9 5.15`,key:`1c824w`}]]),O=e(i(),1),k=`NativeLaunchScreen`,A=v(k);function j(e){return e===`velvet`?`dark`:e}function M(){return y.isNativePlatform()&&y.getPlatform()===`android`&&y.isPluginAvailable(k)}async function te(e){if(M())try{await A.ready({theme:j(e)})}catch(e){n(e,{context:`native_launch_screen_ready`,bestEffort:!0})}}async function ne(e){if(M())try{await A.setTheme({theme:j(e)})}catch(e){n(e,{context:`native_launch_screen_theme_sync`,bestEffort:!0})}}function re(){return T.use.stringFlags().proactiveTips??`off`}function ie(e){return e===`on`}function N(e){return e===void 0||typeof e==`number`&&Number.isFinite(e)}function ae(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e;return typeof t.shownCount==`number`&&Number.isFinite(t.shownCount)&&N(t.dismissedAt)&&N(t.lastShownAt)}function P(e){let t=JSON.parse(e);if(!t||typeof t!=`object`||Array.isArray(t))return null;let n={};for(let[e,r]of Object.entries(t))ae(r)&&(n[e]=r);return n}function oe(e){let t=Number(e);return Number.isFinite(t)&&t>=0?t:null}var F=x({key:`device:tips:records`,scope:`device`,parse:P,serialize:JSON.stringify,fallback:{}}),se=x({key:`device:tips:enabled`,scope:`device`,parse:b,serialize:String,fallback:!0}),I=x({key:`device:tips:first_seen_at`,scope:`device`,parse:oe,serialize:String,fallback:0});function ce(){I.load()===0&&I.save(Date.now())}function le(e,t){let n=F.load(),r=n[e];F.save({...n,[e]:{...r,lastShownAt:t,shownCount:(r?.shownCount??0)+1}})}function ue(e,t){let n=F.load(),r=n[e];F.save({...n,[e]:{...r,dismissedAt:t,shownCount:r?.shownCount??0}})}var de=`proactive-tips-v1`,fe={impression:0,learn_more:1,dismiss:2,dont_show_again:3,click:4,completion:5};function pe(e,t,n){ee({stepName:t,stepIndex:fe[t]},{funnelVersion:de,screen:e,variant:n})}function L(){let e=T.use.velvet(),[n,r]=(0,O.useState)(()=>S({velvetEnabled:e}));return(0,O.useEffect)(()=>{r(S({velvetEnabled:e}))},[e]),(0,O.useEffect)(()=>t(`theme`,()=>{r(S({velvetEnabled:e}))}),[e]),(0,O.useEffect)(()=>{w(n)},[n]),{theme:n,setThemePreference:e=>{r(e),C(e),ne(e)}}}var R=6e4;function z(e){return!!(e?.enabled&&e.effectivelyLocked)}function B(e){return z(e)?e.acknowledged&&!e.overrideActive:!1}function V(e){return!!(e&&z(e)&&!e.acknowledged&&!e.overrideActive)}function me(e){return!!(e?.enabled&&e.state===`warning`)}function he(e){return V(e)?`acknowledgement-required`:B(e)?`cleanup`:me(e)?`warning`:`inactive`}function ge({monitorEnabled:e,hasResolvedStatus:t,status:n}){return!e||!t?null:V(n)?`acknowledgement-required`:null}function _e(e){return`Storage cleanup mode must be acknowledged before sending messages.`}function H(e,t){return e===t?!0:!e||!t?!1:e.enabled===t.enabled&&e.state===t.state&&e.locked===t.locked&&e.acknowledged===t.acknowledged&&e.overrideActive===t.overrideActive&&e.effectivelyLocked===t.effectivelyLocked&&e.lockId===t.lockId&&e.usagePercent===t.usagePercent&&e.thresholdPercent===t.thresholdPercent&&e.path===t.path&&e.lastCheckedAt===t.lastCheckedAt&&e.error===t.error&&e.blockedCapabilities.length===t.blockedCapabilities.length&&e.blockedCapabilities.every((e,n)=>e===t.blockedCapabilities[n])}function ve(e){return e?.usagePercent==null||!Number.isFinite(e.usagePercent)?`Unknown`:`${Math.round(e.usagePercent)}%`}var U={assistantId:null,status:null,hasResolvedStatus:!1};function W({assistantId:e,enabled:t,refreshKey:n,cadenceMs:r,fetchStatus:i,areStatusesEqual:a,deriveMode:o,extractSseStatus:s,onStatusEvent:c}){let[l,u]=(0,O.useState)(U),d=(0,O.useRef)(e),f=(0,O.useRef)(t),p=(0,O.useRef)(0),m=(0,O.useRef)(0),h=(0,O.useRef)(i),g=(0,O.useRef)(a),_=(0,O.useRef)(c);(0,O.useLayoutEffect)(()=>{d.current=e,f.current=t,h.current=i,g.current=a,_.current=c}),(0,O.useEffect)(()=>{p.current+=1,u(U)},[e,t]);let v=(0,O.useCallback)(()=>(p.current+=1,p.current),[]),y=(0,O.useCallback)((e,t)=>f.current&&d.current===e&&p.current===t,[]),b=(0,O.useCallback)((e,t,n,r)=>{y(e,r)&&u(r=>r.assistantId===e&&r.hasResolvedStatus===n&&g.current(r.status,t)?r:{assistantId:e,status:t,hasResolvedStatus:n})},[y]),x=(0,O.useCallback)(()=>{p.current+=1,u(U)},[]),S=(0,O.useCallback)(async()=>{let n=e;if(!t||!n){x();return}let r=p.current,i=m.current+1;m.current=i;try{let e=await h.current(n);if(m.current!==i)return;if(!e.ok){b(n,null,!1,r);return}b(n,e.data.status,!0,r)}catch{if(m.current!==i)return;b(n,null,!1,r)}},[e,b,x,t]);(0,O.useEffect)(()=>{if(!t||!e)return;S();let n=window.setInterval(()=>{S()},r);return()=>{window.clearInterval(n)}},[e,r,t,S,n]),E(`app.resume`,()=>{S()});let C=(0,O.useCallback)(n=>{if(!t||!e){x();return}let r=v();_.current?.(),b(e,n,!0,r)},[e,b,v,x,t]);E(`sse.event`,e=>{let t=s(e.message);t!==void 0&&C(t)});let w=t&&l.assistantId===e?l.status:null,T=!!(t&&e&&l.assistantId===e&&l.hasResolvedStatus);return{status:w,mode:(0,O.useMemo)(()=>o(w),[o,w]),hasResolvedStatus:T,applyStatusEvent:C,refresh:S,bumpGeneration:v,isCurrentRequest:y,applyStatusForAssistant:b,clearStatus:x}}var G=`Failed to acknowledge assistant disk pressure.`;function ye(e,t){return e instanceof Error?e:Error(t)}function be({assistantId:e,enabled:t,refreshKey:n,cadenceMs:r=R}){let[i,a]=(0,O.useState)(!1),[o,s]=(0,O.useState)(null),c=(0,O.useCallback)(()=>{a(!1),s(null)},[]),l=W({assistantId:e,enabled:t,refreshKey:n,cadenceMs:r,fetchStatus:g,areStatusesEqual:H,deriveMode:he,extractSseStatus:e=>e.type===`disk_pressure_status_changed`?e.status:void 0,onStatusEvent:c}),{applyStatusForAssistant:u,bumpGeneration:d,clearStatus:f,isCurrentRequest:p}=l;(0,O.useEffect)(()=>{c()},[e,t,c]);let m=(0,O.useCallback)(async()=>{let n=e;if(!t||!n){f();return}let r=d();a(!0),s(null);try{let e=await _(n);if(!e.ok)throw Error(G);if(!p(n,r))return;u(n,e.data.status,!0,d()),a(!1)}catch(e){p(n,r)&&s(ye(e,G))}finally{p(n,r)&&a(!1)}},[e,u,d,f,t,p]);return{status:l.status,mode:l.mode,hasResolvedStatus:l.hasResolvedStatus,isAcknowledging:i,acknowledgeError:o,acknowledge:m,applyStatusEvent:l.applyStatusEvent,refresh:l.refresh}}var K=o();function xe(e){let{status:t,mode:n,isAcknowledging:i=!1,acknowledgeError:o,onAcknowledge:s,onDismissWarning:f,onReviewWorkspaceData:p,onUpgradeStorage:m}=e,{t:h}=r(),[g,_]=(0,O.useState)(!1),[v,y]=(0,O.useState)(!1),b=ve(t);if(n===`warning`){let e=t.usagePercent??0;return(0,K.jsx)(u,{tone:`warning`,title:h(`diskPressureBanner.warningTitle`),icon:(0,K.jsx)(D,{className:`h-4 w-4`,"aria-hidden":`true`}),onDismiss:f?()=>f(v):void 0,className:`p-4`,"data-testid":`disk-pressure-banner`,children:(0,K.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,K.jsx)(`div`,{className:`h-1.5 flex-1 overflow-hidden rounded-full bg-[var(--surface-active)]`,children:(0,K.jsx)(`div`,{className:`h-full rounded-full transition-[width] duration-300`,style:{width:`${e}%`,backgroundColor:`var(--system-mid-strong)`}})}),(0,K.jsx)(`span`,{className:`text-body-medium-default shrink-0 tabular-nums text-[color:var(--system-mid-strong)]`,children:b})]}),(0,K.jsx)(`p`,{className:`m-0`,children:h(m?`diskPressureBanner.warningBodyWithUpgrade`:`diskPressureBanner.warningBody`)}),(0,K.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[p&&(0,K.jsx)(a,{variant:`outlined`,size:`compact`,onClick:p,children:h(`diskPressureBanner.manageStorage`)}),m&&(0,K.jsx)(a,{variant:`outlined`,size:`compact`,onClick:m,children:h(`diskPressureBanner.upgrade`)}),f?(0,K.jsx)(c,{className:`ml-auto`,checked:v,onCheckedChange:e=>y(e===!0),label:h(`diskPressureBanner.dontShowAgain`),"data-testid":`disk-pressure-banner-dont-show-again`}):null]})]})})}if(n===`cleanup`){let e=t.usagePercent??0;return(0,K.jsx)(u,{tone:`warning`,title:h(`diskPressureBanner.cleanupTitle`),icon:(0,K.jsx)(D,{className:`h-4 w-4`,"aria-hidden":`true`}),className:`p-4`,"data-testid":`disk-pressure-banner`,children:(0,K.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,K.jsx)(`div`,{className:`h-1.5 flex-1 overflow-hidden rounded-full bg-[var(--surface-active)]`,children:(0,K.jsx)(`div`,{className:`h-full rounded-full transition-[width] duration-300`,style:{width:`${e}%`,backgroundColor:`var(--system-mid-strong)`}})}),(0,K.jsx)(`span`,{className:`text-body-medium-default shrink-0 tabular-nums text-[color:var(--system-mid-strong)]`,children:b})]}),(0,K.jsx)(`p`,{className:`m-0`,children:h(`diskPressureBanner.cleanupBody`)}),(0,K.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[p&&(0,K.jsx)(a,{variant:`outlined`,size:`compact`,onClick:p,children:h(`diskPressureBanner.manageStorage`)}),m&&(0,K.jsx)(a,{variant:`outlined`,size:`compact`,onClick:m,children:h(`diskPressureBanner.upgrade`)})]})]})})}let x=t.usagePercent??0;return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(u,{tone:`error`,title:h(`diskPressureBanner.criticalTitle`),icon:(0,K.jsx)(D,{className:`h-4 w-4`,"aria-hidden":`true`}),className:`p-4`,"data-testid":`disk-pressure-banner`,children:(0,K.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,K.jsx)(`div`,{className:`h-1.5 flex-1 overflow-hidden rounded-full bg-[var(--surface-active)]`,children:(0,K.jsx)(`div`,{className:`h-full rounded-full transition-[width] duration-300`,style:{width:`${x}%`,backgroundColor:`var(--system-negative-strong)`}})}),(0,K.jsx)(`span`,{className:`text-body-medium-default shrink-0 tabular-nums text-[color:var(--system-negative-strong)]`,children:b})]}),(0,K.jsx)(`p`,{className:`m-0`,children:h(`diskPressureBanner.criticalBody`)}),o?(0,K.jsx)(`span`,{className:`text-[var(--system-negative-strong)]`,role:`alert`,children:o}):null,(0,K.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:(0,K.jsx)(a,{variant:`primary`,size:`compact`,onClick:()=>_(!0),children:h(`diskPressureBanner.review`)})})]})}),(0,K.jsx)(d.Root,{open:g,onOpenChange:e=>{e||_(!1)},children:(0,K.jsxs)(d.Content,{size:`sm`,children:[(0,K.jsx)(d.Header,{icon:l,children:(0,K.jsx)(d.Title,{children:h(`diskPressureBanner.criticalTitle`)})}),(0,K.jsx)(d.Body,{children:(0,K.jsx)(d.Description,{children:h(`diskPressureBanner.criticalModalDescription`)})}),(0,K.jsxs)(d.Footer,{children:[m&&(0,K.jsx)(a,{variant:`outlined`,onClick:()=>{_(!1),m()},children:h(`diskPressureBanner.upgrade`)}),(0,K.jsx)(a,{variant:`primary`,disabled:i,onClick:()=>{s(),_(!1)},children:h(i?`diskPressureBanner.acknowledging`:`diskPressureBanner.acknowledge`)})]})]})})]})}var Se=`https://apps.apple.com/us/app/vellum-assistant/id6759934423`,q=`ai.vellum.assistant`,Ce=`https://play.google.com/store/apps/details?id=${q}`,J={ios:{downloaded:`app.iosNudge.downloaded`,bannerDismissed:`app.iosNudge.bannerDismissed`,assistantTurnsSeen:`app.iosNudge.assistantTurnsSeen`},android:{downloaded:`app.androidNudge.downloaded`,bannerDismissed:`app.androidNudge.bannerDismissed`,assistantTurnsSeen:`app.androidNudge.assistantTurnsSeen`}};function we(){let e=(void 0)?.trim();if(!e)return null;try{let t=new URL(e);return t.protocol===`https:`&&t.hostname===`play.google.com`&&t.pathname===`/store/apps/details`&&t.searchParams.get(`id`)===q?Ce:null}catch(e){if(e instanceof TypeError)return null;throw e}}function Y(e){return e===`ios`?`iOS`:`Android`}function X(e){if(e===`ios`)return{platform:e,appName:Y(e),storeUrl:Se};let t=we();return t?{platform:e,appName:Y(e),storeUrl:t}:null}function Te(e){return h(J[e].downloaded,!1)}function Z(e){m(J[e].downloaded,!0)}function Ee(e){return h(J[e].bannerDismissed,!1)}function De(e){m(J[e].bannerDismissed,!0)}function Q(e){return Math.max(0,p(J[e].assistantTurnsSeen,0))}function Oe(e,t=1){t<=0||f(J[e].assistantTurnsSeen,Q(e)+t)}function $(e){let t=X(e);return t?(window.open(t.storeUrl,`_blank`,`noopener,noreferrer`),!0):!1}function ke(e){let[t,n]=(0,O.useState)(!1),[r,i]=(0,O.useState)(!1),a=X(e)!==null;(0,O.useEffect)(()=>{n(Te(e)),i(Ee(e))},[e]);let o=(0,O.useCallback)(()=>{$(e)&&(Z(e),n(!0))},[e]),s=(0,O.useCallback)(()=>{De(e),i(!0)},[e]);return(0,O.useMemo)(()=>({bannerShouldShow:a&&!t&&!r,handleDownload:o,handleBannerDismiss:s}),[a,t,r,o,s])}var Ae=x({key:`device:cmd_enter_to_send`,scope:`device`,parse:b,serialize:String,fallback:!1}),je=x({key:`device:show_context_window_indicator`,scope:`device`,parse:b,serialize:String,fallback:!1});export{ie as C,D as E,I as S,te as T,ce as _,Oe as a,F as b,ke as c,be as d,W as f,pe as g,L as h,X as i,Z as l,ge as m,je as n,$ as o,_e as p,Y as r,Q as s,Ae as t,xe as u,ue as v,re as w,se as x,le as y};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{v as t}from"./i18n-
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{v as t}from"./i18n-BtV8MCsZ.js";import{t as n}from"./react-DJZBPgpf.js";import{t as r}from"./button-B1kEAcLt.js";import{d as i,h as a}from"./chunk-5KNZJZUH-CPFsMQoz.js";import{n as o}from"./QueryClientProvider-BPZM68-A.js";import{t as s}from"./useMutation-Cl7cazkm.js";import{t as c}from"./jsx-runtime-COOF1INC.js";import{t as l}from"./typography-SdxpXI_m.js";import{t as u}from"./card-B4b9cF6X.js";import{t as d}from"./link-2-Di62Fo_i.js";import{t as f}from"./loader-circle-DZ65N8bz.js";import{t as p}from"./triangle-alert-B6J57Xfo.js";import{n as m}from"./toast-BKrDuNtu.js";import{f as h}from"./routes-C6ueuiMd.js";import{t as g}from"./use-active-assistant-id-lxYJu99R.js";import{n as _}from"./a2a-invite-Dcxf1Lse.js";import{r as v}from"./contacts-gateway-BLGKdcif.js";var y=e(n(),1),b=c();function x(e){let t=e[0];return typeof t==`object`&&!!t&&t._id===`contactsGet`}function S(e){switch(e){case`expired`:case`not_found`:return`connectPage.errorExpired`;case`already_redeemed_by_other`:return`connectPage.errorAlreadyRedeemed`;case`sender_not_found`:return`connectPage.errorSenderNotFound`;case`not_platform_managed`:return`connectPage.errorNotPlatformManaged`;default:return null}}function C(){return(0,b.jsx)(w,{assistantId:g()})}function w({assistantId:e}){let{t:n}=t(`contacts`),c=i(),g=o(),[C]=a(),w=(0,y.useMemo)(()=>_(C),[C]),T=s({mutationFn:()=>{if(!w)throw Error(`Invalid invite link`);return v(e,{senderAssistantId:w.senderAssistantId,token:w.token})},onSuccess:e=>{e.success&&(g.invalidateQueries({predicate:e=>x(e.queryKey)}),e.alreadyConnected?m(n(`connectPage.alreadyConnected`)):m(n(`connectPage.connected`)),c(h.contacts.root))}}),E=(0,y.useCallback)(()=>{c(h.contacts.root)},[c]),D=(0,y.useCallback)(()=>{T.mutate()},[T]),O=(0,y.useMemo)(()=>{if(T.isError)return T.error instanceof Error?T.error.message:n(`connectPage.errorGeneric`);if(T.data&&!T.data.success){let e=S(T.data.errorCode);return e?n(e):T.data.error||n(`connectPage.errorGeneric`)}return null},[T.isError,T.error,T.data,n]);return w?(0,b.jsx)(`div`,{className:`flex min-h-full items-center justify-center p-6`,children:(0,b.jsx)(u,{className:`w-full max-w-md`,children:(0,b.jsxs)(`div`,{className:`flex flex-col gap-4 p-6`,children:[(0,b.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,b.jsx)(d,{className:`h-6 w-6`,style:{color:`var(--content-secondary)`}}),(0,b.jsx)(l,{variant:`title-small`,children:n(`connectPage.title`)})]}),(0,b.jsx)(l,{variant:`body-medium-lighter`,style:{color:`var(--content-secondary)`},children:n(`connectPage.body`)}),O&&(0,b.jsxs)(`div`,{className:`flex items-center gap-2 rounded-md p-3`,style:{backgroundColor:`var(--surface-negative-subtle)`,color:`var(--system-negative-strong)`},children:[(0,b.jsx)(p,{className:`h-4 w-4 shrink-0`}),(0,b.jsx)(l,{variant:`body-small-default`,children:O})]}),(0,b.jsxs)(`div`,{className:`flex gap-2 pt-2`,children:[(0,b.jsx)(r,{variant:`primary`,onClick:D,disabled:T.isPending,children:T.isPending?(0,b.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,b.jsx)(f,{className:`h-4 w-4 animate-spin`}),n(`actions.connecting`)]}):n(`actions.connect`)}),(0,b.jsx)(r,{variant:`outlined`,onClick:E,disabled:T.isPending,children:n(`actions.cancel`)})]})]})})}):(0,b.jsx)(`div`,{className:`flex min-h-full items-center justify-center p-6`,children:(0,b.jsx)(u,{className:`w-full max-w-md`,children:(0,b.jsxs)(`div`,{className:`flex flex-col gap-4 p-6`,children:[(0,b.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,b.jsx)(p,{className:`h-6 w-6`,style:{color:`var(--system-negative-strong)`}}),(0,b.jsx)(l,{variant:`title-small`,children:n(`connectPage.invalidTitle`)})]}),(0,b.jsx)(l,{variant:`body-medium-lighter`,style:{color:`var(--content-secondary)`},children:n(`connectPage.invalidBody`)}),(0,b.jsx)(`div`,{className:`flex gap-2 pt-2`,children:(0,b.jsx)(r,{variant:`primary`,onClick:E,children:n(`connectPage.goToContacts`)})})]})})})}export{C as ConnectPage};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{v as e}from"./i18n-
|
|
1
|
+
import{v as e}from"./i18n-BtV8MCsZ.js";import{t}from"./jsx-runtime-COOF1INC.js";import{t as n}from"./card-B4b9cF6X.js";import{t as r}from"./checkbox--DYEubRE.js";import{t as i}from"./Trans-CBhhVbOk.js";import{d as a,f as o}from"./routes-C6ueuiMd.js";import{t as s}from"./setting-row-urcByt7n.js";var c=t(),l=[`[&_button[data-state=checked]]:bg-[var(--primary-base)]`,`[&_svg]:text-[var(--content-inset)]`,`[&_button[data-state=unchecked]]:bg-[var(--surface-base)]`,`[&_button[data-state=unchecked]]:border-[var(--border-element)]`].join(` `),u=`mb-2.5 ml-1 text-body-small-default font-medium uppercase tracking-wider text-[var(--content-tertiary)]`,d={privacy:{href:o.docs.legal.privacyPolicy,text:`Privacy and AI Data Sharing Policy`,aria:`I agree to the Privacy and AI Data Sharing Policy`},tos:{href:o.docs.legal.termsOfUse,text:`Terms of Service`,aria:`I agree to the Terms of Service`}};function f({kind:e,checked:t,onChange:n}){let o=d[e];return(0,c.jsx)(r,{checked:t,onCheckedChange:e=>n(e===!0),label:(0,c.jsx)(`span`,{className:`text-body-medium-lighter text-[var(--content-default)]`,children:(0,c.jsx)(i,{i18nKey:`consentControls.agreeTo`,ns:`onboarding`,values:{policy:o.text},components:{link:(0,c.jsx)(`a`,{href:a(o.href),target:`_blank`,rel:`noreferrer`,className:`underline`})}})}),"aria-label":o.aria,className:l})}function p(){return(0,c.jsx)(`div`,{className:`h-px bg-[var(--surface-active)] dark:bg-[var(--surface-lift)]`})}function m({notes:t}){let{t:n}=e(`onboarding`);return!t||t.length===0?null:(0,c.jsxs)(`div`,{className:`rounded-r-md border-l-2 border-[var(--content-secondary)] bg-[var(--surface-base)] py-3 pl-3.5 pr-3.5`,children:[(0,c.jsx)(`p`,{className:`text-body-small-default font-medium text-[var(--content-secondary)]`,children:n(`consentControls.whatsChanged`)}),t.length===1?(0,c.jsx)(`p`,{className:`mt-1.5 text-body-medium-lighter text-[var(--content-default)]`,children:t[0]}):(0,c.jsx)(`ul`,{className:`mt-2 flex flex-col gap-1.5`,children:t.map(e=>(0,c.jsxs)(`li`,{className:`flex gap-2.5 text-body-medium-lighter text-[var(--content-default)]`,children:[(0,c.jsx)(`span`,{"aria-hidden":!0,className:`mt-[0.5em] h-1 w-1 flex-none rounded-full bg-[var(--content-tertiary)]`}),(0,c.jsx)(`span`,{children:e})]},e))})]})}function h({electron:t,showAnalytics:r=!0,showDiagnostics:i=!0,shareAnalytics:a,shareDiagnostics:o,onShareAnalyticsChange:l,onShareDiagnosticsChange:d,className:f,style:m}){let{t:h}=e(`onboarding`);return(0,c.jsxs)(`section`,{className:f,style:m,children:[(0,c.jsx)(`p`,{className:u,children:h(`consentControls.privacyPreferences`)}),(0,c.jsx)(n,{padding:t?`sm`:`md`,className:`w-full`,children:(0,c.jsxs)(`div`,{className:`flex flex-col ${t?`gap-3`:`gap-4`}`,children:[r&&(0,c.jsx)(s,{label:h(`consentControls.analyticsLabel`),helperText:h(`consentControls.analyticsHelp`),checked:a,onChange:l}),r&&i&&(0,c.jsx)(p,{}),i&&(0,c.jsx)(s,{label:h(`consentControls.diagnosticsLabel`),helperText:h(`consentControls.diagnosticsHelp`),checked:o,onChange:d})]})})]})}function g({electron:t,showPrivacy:r=!0,showTos:i=!0,privacyConsent:a,tosAccepted:o,onPrivacyChange:s,onTosChange:l,privacyNotes:d,tosNotes:p,className:h,style:g}){let{t:_}=e(`onboarding`);return(0,c.jsxs)(`section`,{className:h,style:g,children:[(0,c.jsx)(`p`,{className:u,children:_(`consentControls.agreements`)}),(0,c.jsx)(n,{padding:t?`sm`:`md`,className:`w-full`,children:(0,c.jsxs)(`div`,{className:`flex flex-col ${t?`gap-3.5`:`gap-4`}`,children:[r&&(0,c.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,c.jsx)(m,{notes:d}),(0,c.jsx)(f,{kind:`privacy`,checked:a,onChange:s})]}),i&&(0,c.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,c.jsx)(m,{notes:p}),(0,c.jsx)(f,{kind:`tos`,checked:o,onChange:l})]})]})})]})}export{h as n,g as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./onboarding-store-BhT1z8Wi.js";function t(){let{shareAnalytics:t,serverAnalyticsEffective:n,pendingAnalyticsOptIn:r}=e.getState();return t===!1?!1:r?!0:n??!0}export{t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{f as e,h as t,p as n}from"./i18n-
|
|
1
|
+
import{f as e,h as t,p as n}from"./i18n-BtV8MCsZ.js";import{t as r}from"./client.gen-D1UKq9QZ.js";import{d as i,p as a,u as o}from"./sdk.gen-BuAyyHNm.js";async function s(r,i){let{data:o,error:s,response:c}=await a({path:{assistant_id:r},body:i,throwOnError:!1});if(n(c,s,`Failed to save contact`),!c.ok||!o?.contact)throw new e(c.status,t(s,c,`Failed to save contact`));return o.contact}async function c(r,a){let{error:o,response:s}=await i({path:{assistant_id:r,contact_id:a},throwOnError:!1});if(n(s,o,`Failed to delete contact`),!s.ok&&s.status!==204)throw new e(s.status,t(o,s,`Failed to delete contact`))}async function l(r,i){let{error:a,response:s}=await o({path:{assistant_id:r,channel_id:i},throwOnError:!1});if(n(s,a,`Failed to verify channel`),!s.ok)throw new e(s.status,t(a,s,`Failed to verify channel`))}async function u(t,n,r){let i=(await s(t,{id:n.id,displayName:n.displayName,channels:[{type:r.type,address:r.address}]})).channels.find(e=>e.type===r.type&&e.address.toLowerCase()===r.address.toLowerCase());if(!i)throw new e(409,`That account is already linked to another contact.`);if(i.status===`blocked`)throw new e(409,`That account is blocked for this contact. Unblock it before linking.`);await l(t,i.id)}async function d(i,a){let{data:o,error:s,response:c}=await r.post({url:`/v1/assistants/{assistant_id}/a2a/invites/redeem/`,path:{assistant_id:i},body:{sender_assistant_id:a.senderAssistantId,token:a.token},headers:{"Content-Type":`application/json`},throwOnError:!1});if(n(c,s,`Failed to redeem A2A invite`),!c.ok)throw new e(c.status,t(s,c,`Failed to redeem A2A invite`));return{success:o?.success??!0,alreadyConnected:o?.already_connected,error:o?.error,errorCode:o?.error_code}}export{l as a,s as i,u as n,d as r,c as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{k as t,v as n}from"./i18n-BDfnKs41.js";import{t as r}from"./react-DJZBPgpf.js";import{t as i}from"./button-B1kEAcLt.js";import{d as a,h as o,n as s}from"./chunk-5KNZJZUH-CPFsMQoz.js";import{n as c}from"./QueryClientProvider-BPZM68-A.js";import{t as l}from"./useQuery-BtL9k7Sh.js";import{t as u}from"./useMutation-Cl7cazkm.js";import{t as d}from"./jsx-runtime-COOF1INC.js";import{t as f}from"./typography-SdxpXI_m.js";import{t as p}from"./card-B4b9cF6X.js";import{n as m}from"./list-row-BvCm9O6y.js";import{t as h}from"./createLucideIcon-CMfEC_aW.js";import{t as g}from"./arrow-left-DUklm7Fd.js";import{t as _}from"./arrow-right-De7tYwD7.js";import{O as v,_ as y,a as ee,c as te,f as b,g as x,j as S,k as C,m as w,u as T}from"./use-save-twilio-credentials-CLM74CvJ.js";import{t as E}from"./circle-check-big-CHpJAmSB.js";import{t as D}from"./ellipsis-vertical-BJaOQqv_.js";import{t as O}from"./link-2-Di62Fo_i.js";import{t as k}from"./loader-circle-DZ65N8bz.js";import{t as A}from"./mail-CqdA6Y_p.js";import{t as j}from"./message-square-XpKWNcyv.js";import{t as M}from"./pencil-1uDrqXvV.js";import{t as ne}from"./plus-rgqTRjE1.js";import{t as N}from"./search-DYHr3LM9.js";import{t as re}from"./send-1mFY4II3.js";import{t as P}from"./user-plus-Bg01QRAF.js";import{t as F}from"./tag-DAsImP7W.js";import{t as I}from"./input-ChbJ2nzd.js";import{t as L}from"./modal-_49mDK_d.js";import{n as ie}from"./toast-BKrDuNtu.js";import{t as R}from"./confirm-dialog-EPYSBP_B.js";import{t as ae}from"./assistant-identity-store-DBkGjqzV.js";import{t as z}from"./Trans-v2rRKTPL.js";import{w as oe}from"./sdk.gen-BluU0h_N.js";import{f as se}from"./routes-C6ueuiMd.js";import{E as B,T as ce,c as le,nn as ue,rn as de,w as fe}from"./react-query.gen-C_GLKG7m.js";import{r as pe}from"./conversation-navigation-116d0b9Q.js";import{t as me}from"./assistant-feature-flag-store-Co_o5uD3.js";import{t as V}from"./use-active-assistant-id-lxYJu99R.js";import{t as H}from"./detail-card-D9EAxXI8.js";import{n as he,r as ge,t as _e}from"./use-side-list-room-Bq836e0c.js";import{c as ve,i as ye,n as be,r as U,t as xe}from"./use-invite-link-dialog-DRNVCYW4.js";import{a as Se,i as Ce,n as W,t as we}from"./contacts-gateway-DoiRPJZq.js";var G=h(`circle-question-mark`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3`,key:`1u773s`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]]),Te=h(`git-merge`,[[`circle`,{cx:`18`,cy:`18`,r:`3`,key:`1xkwt0`}],[`circle`,{cx:`6`,cy:`6`,r:`3`,key:`1lh9wr`}],[`path`,{d:`M6 21V9a9 9 0 0 0 9 9`,key:`7kw0sc`}]]),K=e(r(),1),Ee=new Set([`slack`]);function De(e){return e.status===`verified`||e.status===`active`&&e.verifiedAt!=null}function Oe(e){switch(e){case`slack`:return`channelType.slack`;case`telegram`:return`channelType.telegram`;case`discord`:return`channelType.discord`;case`whatsapp`:return`channelType.whatsapp`;case`a2a`:return`channelType.a2a`;case`phone`:return`channelType.phone`;case`email`:return`channelType.email`;default:return null}}function q(e){let n=Oe(e.toLowerCase());return n?t(n,{ns:`contacts`}):e}var ke=`New Contact`;function Ae(e){return e===ke}var J=d();function je({channels:e,pendingChannelKey:t=null,onConnect:r,onDisconnect:i}){let{t:a}=n(`contacts`),[o,s]=(0,K.useState)(null);return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`div`,{className:`flex flex-col`,children:e.map((e,n)=>(0,J.jsxs)(`div`,{children:[n>0?(0,J.jsx)(`div`,{className:`border-t`,style:{borderColor:`var(--border-base)`}}):null,(0,J.jsx)(Me,{channel:e,pending:t===e.key,onConnect:r?()=>r(e.key):void 0,onDisconnect:i?()=>s(e.key):void 0})]},e.key))}),(0,J.jsx)(R,{open:o!==null,title:a(`assistantContactChannels.disconnectConfirmTitle`,{channel:o?w(o):``}),message:a(`assistantContactChannels.disconnectConfirmMessage`),confirmLabel:a(`actions.disconnect`),destructive:!0,onConfirm:()=>{o&&i&&i(o),s(null)},onCancel:()=>s(null)})]})}function Me({channel:e,pending:t,onConnect:r,onDisconnect:a}){let{t:o}=n(`contacts`),s=e.configured,{Icon:c,label:l}=x(e.health);return(0,J.jsxs)(`div`,{className:`flex items-center gap-3 py-4`,children:[(0,J.jsx)(T,{channelId:e.key,className:`h-4 w-4 shrink-0 text-[color:var(--content-secondary)]`}),(0,J.jsx)(`span`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:w(e.key)}),s&&e.address?(0,J.jsx)(`span`,{className:`truncate text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:e.address}):null,(0,J.jsx)(`div`,{className:`ml-auto flex shrink-0 items-center gap-2`,children:s?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(`span`,{className:`inline-flex items-center gap-1 h-8 px-2.5 rounded-md whitespace-nowrap select-none text-body-small-emphasised leading-none bg-[var(--content-default)] text-[var(--surface-base)]`,children:[(0,J.jsx)(c,{className:`h-3 w-3`}),l]}),(0,J.jsx)(i,{variant:`danger`,onClick:a,disabled:!a||t,children:o(t?`actions.disconnecting`:`actions.disconnect`)})]}):(0,J.jsx)(i,{variant:`outlined`,onClick:r,disabled:!r||t,children:o(`actions.connect`)})})]})}function Y({role:e,contactType:t}){let{label:n,tone:r}=X(e,t);return(0,J.jsx)(F,{tone:r,children:n})}function X(e,t){switch(e){case`guardian`:return{label:`Guardian`,tone:`positive`};case`assistant`:return{label:`Assistant`,tone:`negative`};default:return t===`assistant`?{label:`Assistant`,tone:`negative`}:{label:`Human`,tone:`warning`}}}function Ne({assistantName:e,...t}){let{t:r}=n(`contacts`),i=y(e);return(0,J.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,J.jsx)(H,{title:r(`assistantChannelsDetail.title`,{name:i}),accessory:(0,J.jsx)(Y,{role:`assistant`}),compactAccessory:!0}),(0,J.jsx)(H,{title:r(`assistantChannelsDetail.channelsTitle`),subtitle:r(`assistantChannelsDetail.channelsSubtitle`,{name:i}),children:(0,J.jsx)(je,{...t})})]})}var Pe=new Set([`telegram`,`phone`,`vellum`,`whatsapp`,`slack`,`email`,`platform`,`a2a`]);function Z(e){return Pe.has(e)}function Fe(e,t){return e.id===`a2a`?t&&t.status!==`revoked`?{kind:`connected`}:{kind:`setup`}:t!=null&&De(t)?{kind:`verified`}:t?.status===`blocked`?{kind:`none`}:t&&t.status!==`revoked`?{kind:`unverified`}:{kind:`setup`}}function Ie(e,t,n){let r=[],i=new Set;if(e)for(let t of e)t.id===`a2a`&&!n||(r.push(t),i.add(t.id));for(let e of t)e.status===`revoked`||i.has(e.type)||e.type===`a2a`&&!n||Z(e.type)&&(r.push({id:e.type,source:`default`,label:e.type.charAt(0).toUpperCase()+e.type.slice(1),subtitle:``,icon:`help-circle`,supportsVerification:!1,setupMessages:{guardian:``,contact:``}}),i.add(e.type));return r}function Le({channelId:e,name:t,className:n,style:r}){let i=b(e);if(i)return(0,K.createElement)(i,{size:16,className:n,style:r});switch(t){case`bot`:return(0,J.jsx)(S,{className:n,style:r});case`hash`:return(0,J.jsx)(C,{className:n,style:r});case`send`:return(0,J.jsx)(re,{className:n,style:r});case`phone`:return(0,J.jsx)(v,{className:n,style:r});case`mail`:return(0,J.jsx)(A,{className:n,style:r});case`message-square`:return(0,J.jsx)(j,{className:n,style:r});default:return(0,J.jsx)(G,{className:n,style:r})}}function Q({contactChannels:e,availableChannels:t,channelsLoadFailed:r,a2aEnabled:i,setupLabel:a,verifyLoading:o,verifySubject:s=`self`,onSetupChannel:c,onVerifyChannel:l,onRevokeChannel:u,onLinkAccount:d}){let{t:f}=n(`contacts`),[p,m]=(0,K.useState)(null),[h,g]=(0,K.useState)(null),_=new Map;for(let t of e)t.status!==`revoked`&&(_.has(t.type)||_.set(t.type,t));let v=()=>{p&&(l?.(p.id),m(null))},y=Ie(t,e,i);return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(`div`,{className:`flex flex-col`,children:[r&&(0,J.jsx)(`div`,{className:`px-1 py-2 text-sm`,style:{color:`var(--content-secondary)`},role:`status`,children:f(`contactChannelsSection.loadFailed`)}),y.map((e,t)=>{let n=_.get(e.id);return(0,J.jsxs)(`div`,{children:[t>0&&(0,J.jsx)(`div`,{className:`border-t`,style:{borderColor:`var(--border-base)`}}),(0,J.jsx)($,{info:e,existing:n,setupLabel:a??f(`contactChannelsSection.setupDefault`),verifyLoading:o,onSetup:c?()=>c(e.id):void 0,onVerify:l&&e.supportsVerification?()=>m(e):void 0,onRevoke:u&&n?()=>g({channelId:n.id,channel:e}):void 0,onLinkAccount:d&&Ee.has(e.id)?()=>d(e.id):void 0})]},e.id)})]}),p&&(0,J.jsx)(R,{open:!0,title:f(`contactChannelsSection.verifyConfirmTitle`,{channel:p.label}),message:f(s===`contact`?`contactChannelsSection.verifyConfirmMessageContact`:`contactChannelsSection.verifyConfirmMessageGuardian`,{channel:p.label}),confirmLabel:f(`actions.verify`),onConfirm:v,onCancel:()=>m(null)}),h&&(0,J.jsx)(R,{open:!0,title:f(`contactChannelsSection.revokeConfirmTitle`,{channel:h.channel.label}),message:f(`contactChannelsSection.revokeConfirmMessage`),confirmLabel:f(`actions.revoke`),destructive:!0,onConfirm:()=>{u?.(h.channelId,h.channel.id),g(null)},onCancel:()=>g(null)})]})}function $({info:e,existing:t,setupLabel:r,verifyLoading:a,onSetup:o,onVerify:s,onRevoke:c,onLinkAccount:l}){let{t:u}=n(`contacts`),d=Fe(e,t);return(0,J.jsxs)(`div`,{className:`flex items-center gap-3 py-4`,children:[(0,J.jsx)(Le,{channelId:e.id,name:e.icon,className:`h-4 w-4 shrink-0`,style:{color:`var(--content-secondary)`}}),(0,J.jsx)(`span`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:e.label}),t?.address?(0,J.jsx)(`span`,{className:`truncate text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:t.address}):null,(0,J.jsx)(`div`,{className:`ml-auto flex shrink-0 items-center gap-2`,children:d.kind===`connected`?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(`span`,{className:`inline-flex items-center gap-1 h-8 px-2.5 rounded-md whitespace-nowrap select-none text-body-small-emphasised leading-none bg-[var(--content-default)] text-[var(--surface-base)]`,children:[(0,J.jsx)(E,{className:`h-3 w-3`}),u(`channelStatus.connected`)]}),c?(0,J.jsx)(i,{variant:`danger`,onClick:c,children:u(`actions.revoke`)}):null]}):d.kind===`verified`?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(`span`,{className:`inline-flex items-center gap-1 h-8 px-2.5 rounded-md whitespace-nowrap select-none text-body-small-emphasised leading-none bg-[var(--content-default)] text-[var(--surface-base)]`,children:[(0,J.jsx)(E,{className:`h-3 w-3`}),u(`channelStatus.verified`)]}),c?(0,J.jsx)(i,{variant:`danger`,onClick:c,children:u(`actions.revoke`)}):null]}):d.kind===`unverified`?(0,J.jsx)(i,{variant:`outlined`,onClick:s,disabled:!s||a,children:u(a?`actions.verifying`:`actions.verify`)}):d.kind===`setup`?e.id===`a2a`?null:(0,J.jsxs)(J.Fragment,{children:[l?(0,J.jsxs)(i,{onClick:l,children:[(0,J.jsx)(O,{className:`h-3.5 w-3.5`}),u(`contactChannelsSection.linkAccount`)]}):null,(0,J.jsx)(i,{variant:`outlined`,onClick:o,disabled:!o,children:r})]}):null})]})}function Re(e){return(0,J.jsx)(ze,{...e},e.contact.id)}function ze({contact:e,savePending:t,deletePending:r,verifyPending:a,mergePending:o=!1,canMerge:s=!1,availableChannels:c,channelsLoadFailed:l,a2aEnabled:u,onSave:d,onDelete:f,onMerge:p,onSetupChannel:m,onVerifyChannel:h,onRevokeChannel:g,onLinkAccount:_}){let{t:v}=n(`contacts`),y=Ae(e.displayName),[ee,te]=(0,K.useState)(y?``:e.displayName),[b,x]=(0,K.useState)(e.notes??``),[S,C]=(0,K.useState)(!1),w=ee.trim(),T=b.trim(),E=y?``:e.displayName,D=e.notes??``,O=w!==E||T!==D,k=w.length>0&&O&&!t&&!r,A=y&&e.channels.length===0&&e.interactionCount===0,j=w||(y?v(`contact.draftName`):e.displayName),M=v(`contact.interactions`,{count:e.interactionCount});return(0,J.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,J.jsx)(H,{title:j,accessory:(0,J.jsx)(Y,{role:e.role,contactType:e.contactType}),compactAccessory:!0,subtitle:M,children:(0,J.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,J.jsx)(I,{label:v(`contact.nameLabel`),type:`text`,value:ee,onChange:e=>te(e.target.value),placeholder:v(`contactDetailView.namePlaceholder`),autoFocus:y,disabled:t||r,fullWidth:!0}),(0,J.jsx)(I,{label:v(`contact.notesLabel`),type:`text`,value:b,onChange:e=>x(e.target.value),placeholder:v(`contactDetailView.notesPlaceholder`),disabled:t||r,fullWidth:!0}),(0,J.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,J.jsx)(i,{type:`button`,onClick:()=>d({displayName:w,notes:T}),disabled:!k,children:v(t?`actions.saving`:`actions.save`)}),p?(0,J.jsx)(i,{type:`button`,variant:`outlined`,onClick:p,disabled:!s||A||O||o||t||r,title:s?A?v(`contactDetailView.mergeBlockedUnsavedDraft`):O?v(`contact.mergeBlockedUnsaved`):void 0:v(`contact.mergeBlockedNoCandidates`),children:v(o?`actions.merging`:`actions.merge`)}):null,(0,J.jsx)(i,{type:`button`,variant:`danger`,onClick:()=>{A?f():C(!0)},disabled:r,children:v(r?`actions.deleting`:`contactDetailView.delete`)})]})]})}),(0,J.jsx)(H,{title:v(`contactDetailView.linkedAccountsTitle`),subtitle:v(`contactDetailView.linkedAccountsSubtitle`),children:(0,J.jsx)(Q,{contactChannels:e.channels,availableChannels:c,channelsLoadFailed:l,a2aEnabled:u,verifyLoading:a,verifySubject:`contact`,onSetupChannel:m,onVerifyChannel:h,onRevokeChannel:g,onLinkAccount:_})}),(0,J.jsx)(R,{open:S,title:v(`contactDetailView.deleteConfirmTitle`,{name:j}),message:v(`contactDetailView.deleteConfirmMessage`),confirmLabel:v(`actions.delete`),destructive:!0,onConfirm:()=>{C(!1),f()},onCancel:()=>C(!1)})]})}function Be(e){return(0,J.jsx)(Ve,{...e},`${e.survivor.id}:${e.open?`open`:`closed`}`)}function Ve({open:e,survivor:t,candidates:r,pending:a,errorMessage:o,onMerge:s,onClose:c}){let{t:l}=n(`contacts`),[u,d]=(0,K.useState)(``),[p,m]=(0,K.useState)(null);(0,K.useEffect)(()=>{p&&!r.some(e=>e.id===p)&&m(null)},[r,p]);let h=(0,K.useMemo)(()=>{let e=u.trim().toLowerCase();return e?r.filter(t=>t.displayName.toLowerCase().includes(e)):r},[r,u]),_=p?r.find(e=>e.id===p)??null:null,v=Ke(t);return(0,J.jsx)(L.Root,{open:e,onOpenChange:e=>{!e&&!a&&c()},children:(0,J.jsxs)(L.Content,{size:`md`,children:[(0,J.jsxs)(L.Header,{icon:Te,children:[(0,J.jsx)(L.Title,{children:_?l(`contactMergeDialog.titlePicked`,{donor:_.displayName,survivor:v}):l(`contactMergeDialog.titlePicking`,{survivor:v})}),(0,J.jsx)(L.Description,{children:l(_?`contactMergeDialog.descriptionPicked`:`contactMergeDialog.descriptionPicking`)})]}),(0,J.jsxs)(L.Body,{className:`flex flex-col gap-3`,children:[_?(0,J.jsx)(We,{survivor:t,donor:_}):r.length===0?(0,J.jsx)(Ge,{}):(0,J.jsx)(He,{search:u,onSearch:d,candidates:h,onPick:m}),o?(0,J.jsx)(f,{as:`p`,variant:`body-small-default`,className:`text-(--system-negative-strong)`,role:`alert`,children:o}):null]}),(0,J.jsx)(L.Footer,{children:_?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(i,{variant:`outlined`,onClick:()=>m(null),disabled:a,leftIcon:(0,J.jsx)(g,{"aria-hidden":!0}),children:l(`actions.back`)}),(0,J.jsx)(i,{variant:`danger`,onClick:()=>s(_.id),disabled:a,children:l(a?`actions.merging`:`contactMergeDialog.confirm`)})]}):(0,J.jsx)(i,{variant:`outlined`,onClick:c,disabled:a,children:l(`actions.cancel`)})})]})})}function He({search:e,onSearch:t,candidates:r,onPick:i}){let{t:a}=n(`contacts`);return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(I,{type:`text`,value:e,onChange:e=>t(e.target.value),placeholder:a(`contactMergeDialog.searchPlaceholder`),leftIcon:(0,J.jsx)(N,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),fullWidth:!0}),(0,J.jsx)(`div`,{className:`flex max-h-[320px] min-h-[120px] flex-col gap-1 overflow-y-auto`,role:`listbox`,"aria-label":a(`contactMergeDialog.listAriaLabel`),children:r.length===0?(0,J.jsx)(f,{as:`p`,variant:`body-small-default`,className:`px-3 py-4 text-center text-(--content-tertiary)`,children:a(`contactsList.noMatches`)}):r.map(e=>(0,J.jsx)(Ue,{contact:e,onPick:()=>i(e.id)},e.id))})]})}function Ue({contact:e,onPick:t}){let n=Je(e).join(` | `)||void 0;return(0,J.jsx)(m,{asChild:!0,children:(0,J.jsx)(`button`,{type:`button`,onClick:t,role:`option`,"aria-selected":`false`,className:`flex h-auto w-full items-center gap-2 rounded-[6px] px-[8px] py-2 text-left`,children:(0,J.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,J.jsx)(`span`,{className:`truncate text-body-medium-default`,children:e.displayName}),n?(0,J.jsx)(`span`,{className:`truncate text-body-small-default text-(--content-tertiary)`,children:n}):null]})})})}function We({survivor:e,donor:t}){let{t:r}=n(`contacts`),i=Ke(e),{moved:a,duplicates:o}=qe(e,t);return(0,J.jsxs)(`ul`,{className:`flex flex-col gap-2 text-body-medium-lighter text-(--content-secondary)`,children:[(0,J.jsx)(`li`,{children:(0,J.jsx)(z,{i18nKey:`contactMergeDialog.donorDeleted`,ns:`contacts`,values:{donor:t.displayName},components:{donor:(0,J.jsx)(`span`,{className:`text-(--content-default)`})}})}),(0,J.jsx)(`li`,{children:r(`contactMergeDialog.channelsMoved`,{count:a.length,survivor:i,channels:a.map(e=>q(e.type)).join(`, `)})}),o.length>0?(0,J.jsx)(`li`,{className:`text-(--content-tertiary)`,children:r(`contactMergeDialog.duplicatesSkipped`,{count:o.length,survivor:i})}):null,t.notes?(0,J.jsx)(`li`,{children:r(`contactMergeDialog.notesAppended`)}):null,(0,J.jsx)(`li`,{className:`text-(--content-tertiary)`,children:r(`contactMergeDialog.irreversible`)})]})}function Ge(){let{t:e}=n(`contacts`);return(0,J.jsx)(f,{as:`p`,variant:`body-medium-lighter`,className:`px-3 py-6 text-center text-(--content-tertiary)`,children:e(`contactMergeDialog.empty`)})}function Ke(e){return e.role===`guardian`?!e.displayName||e.displayName.startsWith(`vellum-principal-`)?t(`survivorName.you`,{ns:`contacts`}):t(`survivorName.youNamed`,{ns:`contacts`,name:e.displayName}):e.displayName||t(`survivorName.thisContact`,{ns:`contacts`})}function qe(e,t){let n=[],r=[];for(let i of t.channels)i.status!==`revoked`&&(e.channels.some(e=>e.type===i.type&&e.address.toLowerCase()===i.address.toLowerCase())?r.push(i):n.push(i));return{moved:n,duplicates:r}}function Je(e){let t=new Set,n=[];for(let r of e.channels){if(r.status===`revoked`)continue;let e=r.type.toLowerCase();t.has(e)||(t.add(e),n.push(q(e)))}return n}function Ye({loading:e,guardian:t,assistantName:r,regularContacts:a,selection:o,onSelect:s,onAddContact:c,addingContact:l=!1,search:u,onSearchChange:d}){let{t:f}=n(`contacts`),m=u.trim()?a.filter(e=>e.displayName.toLowerCase().includes(u.trim().toLowerCase())):a;return(0,J.jsx)(p.Root,{className:`flex h-full flex-col overflow-hidden`,children:(0,J.jsxs)(p.Body,{className:`flex min-h-0 min-w-0 flex-1 flex-col gap-4`,children:[(0,J.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,J.jsx)(`h2`,{className:`text-title-medium`,style:{color:`var(--content-default)`},children:f(`contactsList.heading`)}),(0,J.jsx)(i,{type:`button`,variant:`ghost`,iconOnly:l?(0,J.jsx)(k,{className:`animate-spin`,"aria-hidden":!0}):(0,J.jsx)(ne,{"aria-hidden":!0}),onClick:c,disabled:l,"aria-label":f(`contactsList.addAriaLabel`),tintColor:`var(--content-secondary)`})]}),(0,J.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[t?(0,J.jsx)(Xe,{name:t.displayName?f(`contactsList.youNamed`,{name:t.displayName}):f(`contactsList.you`),role:t.role,channelTypes:t.channelTypes,selected:o?.kind===`contact`&&o.contactId===t.id,onClick:()=>s({kind:`contact`,contactId:t.id}),trailingIcon:`pencil`}):null,(0,J.jsx)(Xe,{name:r?.trim()||f(`contactsList.assistantFallback`),role:`assistant`,selected:o?.kind===`assistant`,onClick:()=>s({kind:`assistant`}),trailingIcon:`more`})]}),(0,J.jsx)(`div`,{className:`border-t`,style:{borderColor:`var(--border-base)`}}),a.length>0?(0,J.jsx)(I,{type:`text`,value:u,onChange:e=>d(e.target.value),placeholder:f(`contactsList.searchPlaceholder`),leftIcon:(0,J.jsx)(N,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),fullWidth:!0}):null,a.length>0?(0,J.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto flex flex-col gap-1`,children:[m.map(e=>(0,J.jsx)(Xe,{name:e.displayName,role:e.role,contactType:e.contactType,channelTypes:e.channelTypes,verified:e.verified,selected:o?.kind===`contact`&&o.contactId===e.id,onClick:()=>s({kind:`contact`,contactId:e.id}),trailingIcon:`more`},e.id)),m.length===0?(0,J.jsx)(`p`,{className:`px-3 py-4 text-center text-body-small-default`,style:{color:`var(--content-tertiary)`},children:f(`contactsList.noMatches`)}):null]}):e?null:(0,J.jsx)(i,{type:`button`,variant:`ghost`,onClick:c,disabled:l,tintColor:`var(--primary-base)`,leftIcon:l?(0,J.jsx)(k,{className:`animate-spin`,"aria-hidden":!0}):(0,J.jsx)(P,{"aria-hidden":!0}),children:f(`contactsList.add`)})]})})}function Xe({name:e,role:t,contactType:r,channelTypes:i,selected:a,onClick:o,trailingIcon:s,verified:c}){let{t:l}=n(`contacts`),u=i&&i.length>0?i.join(` | `):void 0,d=s===`pencil`?(0,J.jsx)(M,{className:`h-3.5 w-3.5 text-[color:var(--content-tertiary)]`,"aria-hidden":!0}):s===`more`?(0,J.jsx)(D,{className:`h-3.5 w-3.5 text-[color:var(--content-tertiary)]`,"aria-hidden":!0}):void 0;return(0,J.jsx)(m,{asChild:!0,active:a,children:(0,J.jsxs)(`button`,{type:`button`,onClick:o,className:`flex h-auto w-full items-center gap-2 rounded-[6px] px-[8px] py-2 text-left`,children:[(0,J.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,J.jsx)(`span`,{className:`truncate text-body-medium-default`,children:e}),u?(0,J.jsx)(`span`,{className:`truncate text-body-small-default`,style:{color:`var(--content-tertiary)`},children:u}):null]}),(0,J.jsxs)(`span`,{className:`flex shrink-0 items-center gap-1`,children:[c===void 0?null:(0,J.jsx)(F,{tone:c?`positive`:`neutral`,children:l(c?`contactsList.verified`:`contactsList.unverified`)}),(0,J.jsx)(Y,{role:t,contactType:r}),d]})]})})}function Ze(e){return(0,J.jsx)(Qe,{...e},e.contact.id)}function Qe({contact:e,savePending:t,verifyPending:r,mergePending:a=!1,canMerge:o=!1,availableChannels:s,channelsLoadFailed:c,a2aEnabled:l,onSave:u,onMerge:d,onSetupChannel:f,onVerifyChannel:p,onRevokeChannel:m,onGenerateInviteLink:h}){let{t:g}=n(`contacts`),_=e.displayName.startsWith(`vellum-principal-`),v=_?``:e.displayName,[y,ee]=(0,K.useState)(v),[te,b]=(0,K.useState)(e.notes??``),x=y.trim(),S=te.trim(),C=x!==v.trim()||S!==(e.notes??``).trim(),w=C&&!t,T=g(`contact.interactions`,{count:e.interactionCount});return(0,J.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,J.jsx)(H,{title:_?g(`contactsList.you`):g(`contactsList.youNamed`,{name:e.displayName}),accessory:(0,J.jsx)(Y,{role:`guardian`}),compactAccessory:!0,subtitle:T,children:(0,J.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,J.jsx)(I,{label:g(`contact.nameLabel`),type:`text`,value:y,onChange:e=>ee(e.target.value),placeholder:g(`guardianDetailView.namePlaceholder`),disabled:t,fullWidth:!0}),(0,J.jsx)(I,{label:g(`contact.notesLabel`),type:`text`,value:te,onChange:e=>b(e.target.value),placeholder:g(`guardianDetailView.notesPlaceholder`),disabled:t,fullWidth:!0}),(0,J.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,J.jsx)(i,{variant:`primary`,onClick:()=>u({displayName:x||e.displayName,notes:S}),disabled:!w,children:g(t?`actions.saving`:`actions.save`)}),d?(0,J.jsx)(i,{variant:`outlined`,onClick:d,disabled:!o||C||a||t,title:o?C?g(`contact.mergeBlockedUnsaved`):void 0:g(`contact.mergeBlockedNoCandidates`),children:g(a?`actions.merging`:`actions.merge`)}):null]})]})}),(0,J.jsx)(H,{title:g(`guardianDetailView.channelsTitle`),subtitle:g(`guardianDetailView.channelsSubtitle`),children:(0,J.jsx)(Q,{contactChannels:e.channels,availableChannels:s,channelsLoadFailed:c,a2aEnabled:l,setupLabel:g(`guardianDetailView.setupLabel`),verifyLoading:r,onSetupChannel:f,onVerifyChannel:p,onRevokeChannel:m})}),h?(0,J.jsx)(U,{onClick:h}):null]})}function $e(e,t){let n=t.trim().toLowerCase().replace(/^@/,``);return n===``?e:e.filter(e=>e.displayName.toLowerCase().includes(n)||e.username.toLowerCase().includes(n))}function et(e){let t=e.trim().split(/\s+/).filter(Boolean);return`${t[0]?.[0]??`?`}${t.length>1?t[t.length-1]?.[0]??``:``}`.toUpperCase()}function tt({open:e,channelLabel:t,contactName:r,accounts:a,loading:o,errorMessage:s,pendingAccountId:c,onPick:l,onClose:u,onInviteInstead:d}){let{t:f}=n(`contacts`),[p,m]=(0,K.useState)(``);(0,K.useEffect)(()=>{e&&m(``)},[e]);let h=(0,K.useMemo)(()=>$e(a??[],p),[a,p]),g=c!=null;return(0,J.jsx)(L.Root,{open:e,onOpenChange:e=>!e&&u(),children:(0,J.jsxs)(L.Content,{size:`sm`,children:[(0,J.jsxs)(L.Header,{children:[(0,J.jsx)(L.Title,{children:f(`linkAccountDialog.title`,{channel:t})}),(0,J.jsx)(L.Description,{children:(0,J.jsx)(z,{i18nKey:`linkAccountDialog.description`,ns:`contacts`,values:{channel:t,name:r},components:{contact:(0,J.jsx)(`span`,{className:`text-[color:var(--content-default)]`})}})})]}),(0,J.jsxs)(L.Body,{className:`flex flex-col gap-3`,children:[(0,J.jsx)(I,{type:`search`,value:p,onChange:e=>m(e.target.value),placeholder:f(`linkAccountDialog.searchPlaceholder`),"aria-label":f(`linkAccountDialog.searchAriaLabel`,{channel:t}),leftIcon:(0,J.jsx)(N,{className:`h-4 w-4`}),fullWidth:!0}),s?(0,J.jsx)(`p`,{className:`text-body-small-default text-[color:var(--content-negative)]`,children:s}):null,(0,J.jsx)(`div`,{className:`max-h-80 overflow-y-auto`,children:o?(0,J.jsx)(`p`,{className:`py-4 text-center text-body-small-default text-[color:var(--content-tertiary)]`,children:f(`linkAccountDialog.loading`)}):h.length===0?(0,J.jsx)(`p`,{className:`py-4 text-center text-body-small-default text-[color:var(--content-tertiary)]`,children:(a?.length??0)===0?f(`linkAccountDialog.noMembers`):f(`linkAccountDialog.noMatches`)}):(0,J.jsx)(`ul`,{className:`flex flex-col`,children:h.map(e=>(0,J.jsx)(`li`,{children:(0,J.jsxs)(`button`,{type:`button`,onClick:()=>l(e),disabled:g,className:`flex w-full cursor-pointer items-center gap-3 rounded-md px-2 py-2 text-left transition-colors hover:bg-[var(--surface-overlay)] disabled:cursor-not-allowed disabled:opacity-60`,children:[e.imageUrl?(0,J.jsx)(`img`,{src:e.imageUrl,alt:``,className:`h-8 w-8 shrink-0 rounded-full`}):(0,J.jsx)(`span`,{"aria-hidden":`true`,className:`flex h-8 w-8 shrink-0 items-center justify-center rounded-full bg-[var(--tag-bg-neutral)] text-body-small-emphasised text-[color:var(--content-secondary)]`,children:et(e.displayName)}),(0,J.jsxs)(`span`,{className:`flex min-w-0 flex-col`,children:[(0,J.jsx)(`span`,{className:`truncate text-body-medium-default text-[color:var(--content-default)]`,children:e.displayName}),(0,J.jsxs)(`span`,{className:`truncate text-body-small-default text-[color:var(--content-tertiary)]`,children:[`@`,e.username]})]}),c===e.id?(0,J.jsx)(`span`,{className:`ml-auto shrink-0 text-body-small-default text-[color:var(--content-tertiary)]`,children:f(`linkAccountDialog.linking`)}):null]})},e.id))})})]}),(0,J.jsxs)(L.Footer,{className:`items-center justify-between gap-3 border-t border-[var(--border-base)]`,children:[(0,J.jsx)(`p`,{className:`text-body-small-default text-[color:var(--content-tertiary)]`,children:(0,J.jsx)(z,{i18nKey:`linkAccountDialog.guardianLinkNote`,ns:`contacts`,components:{emphasis:(0,J.jsx)(`span`,{className:`text-[color:var(--content-secondary)]`})}})}),d?(0,J.jsxs)(i,{variant:`link`,className:`shrink-0`,onClick:d,disabled:g,children:[f(`linkAccountDialog.inviteInstead`),(0,J.jsx)(_,{className:`h-3.5 w-3.5`})]}):null]})]})})}function nt({assistantId:e,channelType:n,contact:r,onLinked:i}){let[a,o]=(0,K.useState)(!1),s=u({mutationFn:t=>W(e,t.contact,{type:n,address:t.account.id}),onSuccess:(e,n)=>{o(!1),ie.success(t(`accountLink.linked`,{ns:`contacts`,username:n.account.username})),i()}}),c=(0,K.useCallback)(()=>{s.reset(),o(!0)},[s]),l=(0,K.useCallback)(()=>{s.isPending||(s.reset(),o(!1))},[s]),d=(0,K.useCallback)(e=>{!r||s.isPending||s.mutate({contact:r,account:e})},[r,s]);return{channelType:n,dialogOpen:a,open:c,close:l,linkErrorMessage:s.error instanceof Error?s.error.message:s.error?t(`accountLink.linkFailed`,{ns:`contacts`}):null,pendingAccountId:s.isPending?s.variables.account.id:null,pick:d}}var rt=[{id:`slack`,source:`default`,label:`Slack`,subtitle:`Message your assistant from Slack`,icon:`hash`,supportsVerification:!0,setupMessages:{guardian:`I'd like to verify my identity as your guardian on Slack. Can you help me set that up?`,contact:`I'd like to verify a contact's Slack identity. Can you walk me through it?`}},{id:`telegram`,source:`default`,label:`Telegram`,subtitle:`Message your assistant from Telegram`,icon:`send`,supportsVerification:!0,setupMessages:{guardian:`I'd like to verify my identity as your guardian on Telegram. Can you help me set that up?`,contact:`I'd like to verify a contact's Telegram identity. Can you walk me through it?`}},{id:`phone`,source:`default`,label:`Phone Calling`,subtitle:`Call or text your assistant via phone`,icon:`phone`,supportsVerification:!0,setupMessages:{guardian:`I'd like to verify my identity as your guardian for phone calls. Can you help me set that up?`,contact:`I'd like to verify a contact's phone number. Can you help me set that up?`}}],it=[];function at({assistantId:e,onStartSetupConversation:t}){let{t:r}=n(`contacts`),i=me.use.a2aChannel(),a=ae.use.name(),d=c(),[f]=o(),p=f.get(`setup`),m=p&&te(p)?p:null,[h,g]=(0,K.useState)({kind:`assistant`}),_=xe(e),{paneRef:v,hasRoomForList:b,drawerOpen:x,openDrawer:S,closeDrawer:C}=_e(),[w,T]=(0,K.useState)(``),[E,D]=(0,K.useState)(!1),O=y(a),k=(0,K.useMemo)(()=>({path:{assistant_id:e}}),[e]),A=ce(k),j=l({...fe(k),enabled:!!e,select:e=>e.contacts}),M=be({assistantId:e,onStartSetupConversation:t}),ne=l({...le({path:{assistant_id:e}}),enabled:!!e,queryFn:async({signal:t})=>{let{data:n,error:r,response:i}=await oe({path:{assistant_id:e},signal:t,throwOnError:!1});if(i?.status===404)return{channels:rt};if(!i||!i.ok)throw r??Error(`Failed to fetch channel availability`);return n},select:e=>e.channels}),N=ne.data??it,re=ne.isError,P=j.data,F=(0,K.useMemo)(()=>P?.find(e=>e.role===`guardian`)??null,[P]),I=(0,K.useMemo)(()=>P?.filter(e=>e.role!==`guardian`)??[],[P]),L=(0,K.useMemo)(()=>h.kind===`contact`?P?.find(e=>e.id===h.contactId)??null:null,[P,h]),R=(0,K.useMemo)(()=>!P||!L?[]:P.filter(e=>e.id!==L.id&&e.role!==`guardian`),[P,L]),z=R.length>0,pe=(0,K.useRef)(!!m);(0,K.useEffect)(()=>{pe.current||F&&(pe.current=!0,g({kind:`contact`,contactId:F.id}))},[F]);let V=(0,K.useCallback)(()=>d.invalidateQueries({queryKey:A}),[d,A]),H=u({mutationFn:()=>Ce(e,{displayName:ke}),onMutate:async()=>{await d.cancelQueries({queryKey:A})},onSuccess:e=>{B(d,k,t=>t?{...t,contacts:[...t.contacts,e]}:void 0),g({kind:`contact`,contactId:e.id})},onError:ve(r(`contactsPage.createFailed`)),onSettled:()=>V()}),U=u({mutationFn:t=>we(e,t),onSuccess:(e,t)=>{B(d,k,e=>e?{...e,contacts:e.contacts.filter(e=>e.id!==t)}:void 0),g({kind:`assistant`})},onError:ve(r(`contactsPage.deleteFailed`)),onSettled:()=>V()}),W=u({mutationFn:({contactId:t,patch:n})=>Ce(e,{id:t,displayName:n.displayName,notes:n.notes}),onSuccess:e=>{B(d,k,t=>t?{...t,contacts:t.contacts.map(t=>t.id===e.id?e:t)}:void 0)},onError:ve(r(`contactsPage.saveFailed`)),onSettled:()=>V()}),G=de({onMutate:async()=>{await d.cancelQueries({queryKey:A})},onSuccess:(e,t)=>{let n=e.contact,i=t.body.mergeId;n&&(B(d,k,e=>e?{...e,contacts:e.contacts.filter(e=>e.id!==i).map(e=>e.id===n.id?n:e)}:void 0),g({kind:`contact`,contactId:n.id})),D(!1),ie.success(r(`contactsPage.mergeSucceeded`))},onSettled:()=>V()}),Te=(0,K.useCallback)(e=>{g(e),C(),D(!1),G.reset()},[C,G]),Ee=(0,K.useCallback)(()=>{G.reset(),D(!0)},[G]),De=(0,K.useCallback)(()=>{G.isPending||(D(!1),G.reset())},[G]),Oe=ue({onSuccess:()=>V()}),Ae=(0,K.useCallback)((t,n)=>{Oe.mutate({path:{assistant_id:e,contactChannelId:t},body:{status:`revoked`}})},[Oe,e]),je=(0,K.useCallback)(()=>{H.isPending||H.mutate()},[H]),Me=(0,K.useCallback)(e=>{if(!t)return;let n=N.find(t=>t.id===e)?.setupMessages.contact;n&&t(n)},[N,t]),Y=(0,K.useCallback)(e=>{if(!t)return;let n=N.find(t=>t.id===e)?.setupMessages.guardian;n&&t(n)},[N,t]),X=u({mutationFn:t=>Se(e,t.channelId),onSuccess:()=>V(),onError:ve(r(`contactsPage.verifyFailed`))}),Pe=(0,K.useCallback)(e=>{if(!L)return;let t=L.channels.find(t=>t.type===e&&t.status!==`revoked`);t&&X.mutate({channelId:t.id})},[L,X]),Z=nt({assistantId:e,channelType:`slack`,contact:L?{id:L.id,displayName:L.displayName}:null,onLinked:V}),Fe=l({...ee(e),enabled:!!e&&Z.dialogOpen,select:e=>e.users}),Ie=M.channels.some(e=>e.key===`slack`&&e.configured),Le=(0,K.useCallback)(e=>{e===Z.channelType&&Z.open()},[Z]),Q=U.isPending?U.variables:null,$=(0,K.useMemo)(()=>L?W.isPending&&W.variables?.contactId===L.id?{...L,displayName:W.variables.patch.displayName,notes:W.variables.patch.notes}:L:null,[L,W.isPending,W.variables]);if(m)return(0,J.jsx)(s,{to:`${se.channels}?setup=${m}`,replace:!0});let ze={loading:j.isLoading,assistantName:O,guardian:F?{id:F.id,displayName:F.displayName.startsWith(`vellum-principal-`)?``:F.displayName,role:F.role,channelTypes:ct(F.channels,i)}:null,regularContacts:I.filter(e=>e.id!==Q).map(e=>({id:e.id,displayName:e.displayName,role:e.role,contactType:e.contactType,channelTypes:ct(e.channels,i),verified:st(e.channels)})),selection:h,onAddContact:je,addingContact:H.isPending,search:w,onSearchChange:T};return(0,J.jsxs)(`div`,{ref:v,className:`flex min-h-0 flex-1 overflow-hidden ${b?`flex-row gap-6`:`flex-col gap-4`}`,children:[b?(0,J.jsx)(`aside`,{className:`min-h-0 w-[320px] shrink-0 overflow-y-auto self-stretch`,children:(0,J.jsx)(Ye,{...ze,onSelect:Te})}):(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`div`,{className:`flex items-center`,children:(0,J.jsx)(ge,{onClick:S})}),(0,J.jsx)(he,{open:x,onClose:C,title:r(`contactsPage.title`),children:(0,J.jsx)(Ye,{...ze,onSelect:Te})})]}),(0,J.jsx)(`section`,{className:`min-h-0 min-w-0 flex-1 overflow-y-auto`,children:h.kind===`assistant`||h.kind===`contact`&&h.contactId===Q?(0,J.jsx)(Ne,{assistantName:O,channels:M.channels,pendingChannelKey:M.pendingChannelKey,onConnect:M.onSetup,onDisconnect:M.onDisconnect}):$?$.role===`guardian`?(0,J.jsx)(Ze,{contact:$,savePending:W.isPending,verifyPending:X.isPending,mergePending:G.isPending,canMerge:z,availableChannels:N,channelsLoadFailed:re,a2aEnabled:i,onSave:e=>{W.mutate({contactId:$.id,patch:e})},onMerge:Ee,onSetupChannel:t?Y:void 0,onVerifyChannel:Pe,onRevokeChannel:Ae,onGenerateInviteLink:i?_.open:void 0}):(0,J.jsx)(Re,{contact:$,savePending:W.isPending,deletePending:U.isPending,verifyPending:X.isPending,mergePending:G.isPending,canMerge:z,availableChannels:N,channelsLoadFailed:re,a2aEnabled:i,onSave:e=>{W.mutate({contactId:$.id,patch:e})},onDelete:()=>{U.mutate($.id)},onMerge:Ee,onSetupChannel:t?Me:void 0,onVerifyChannel:Pe,onRevokeChannel:Ae,onLinkAccount:Ie?Le:void 0}):(0,J.jsx)(ot,{})}),L?(0,J.jsx)(Be,{open:E,survivor:L,candidates:R,pending:G.isPending,errorMessage:G.error instanceof Error?G.error.message:G.error?r(`contactsPage.mergeFailed`):null,onMerge:t=>G.mutate({path:{assistant_id:e},body:{keepId:L.id,mergeId:t}}),onClose:De}):null,(0,J.jsx)(tt,{open:Z.dialogOpen,channelLabel:q(`slack`),contactName:L?.displayName??``,accounts:Fe.data,loading:Fe.isLoading,errorMessage:Fe.isError?r(`contactsPage.rosterLoadFailed`):Z.linkErrorMessage,pendingAccountId:Z.pendingAccountId,onPick:Z.pick,onClose:Z.close,onInviteInstead:t?()=>{Z.close(),Me(Z.channelType)}:void 0}),(0,J.jsx)(ye,{open:_.isOpen,assistantId:e,onClose:_.close})]})}function ot(){let{t:e}=n(`contacts`);return(0,J.jsx)(`div`,{className:`flex h-full items-center justify-center py-16`,children:(0,J.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:e(`contactsPage.emptyBody`)})})}function st(e){return e.some(e=>e.status!==`revoked`&&(e.type===`a2a`||De(e)))}function ct(e,t){let n=new Set,r=[];for(let i of e){if(i.status===`revoked`)continue;let e=i.type.toLowerCase();n.has(e)||e===`a2a`&&!t||(n.add(e),r.push(q(e)))}return r}function lt(){let e=a(),t=V();return(0,J.jsx)(at,{assistantId:t,onStartSetupConversation:t=>{pe(e,{prompt:t})}},t)}export{lt as ContactsPageRoute};
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{k as t,v as n}from"./i18n-BtV8MCsZ.js";import{t as r}from"./react-DJZBPgpf.js";import{t as i}from"./button-B1kEAcLt.js";import{d as a,h as o,n as s}from"./chunk-5KNZJZUH-CPFsMQoz.js";import{n as c}from"./QueryClientProvider-BPZM68-A.js";import{t as l}from"./useQuery-BtL9k7Sh.js";import{t as u}from"./useMutation-Cl7cazkm.js";import{t as d}from"./jsx-runtime-COOF1INC.js";import{t as f}from"./typography-SdxpXI_m.js";import{t as p}from"./card-B4b9cF6X.js";import{n as m}from"./list-row-BvCm9O6y.js";import{t as h}from"./createLucideIcon-CMfEC_aW.js";import{t as g}from"./arrow-left-DUklm7Fd.js";import{t as _}from"./arrow-right-De7tYwD7.js";import{O as v,_ as y,a as ee,c as te,f as b,g as x,j as S,k as C,m as w,u as T}from"./use-save-twilio-credentials-Zjhi1c0P.js";import{t as E}from"./circle-check-big-CHpJAmSB.js";import{t as D}from"./ellipsis-vertical-BJaOQqv_.js";import{t as O}from"./link-2-Di62Fo_i.js";import{t as k}from"./loader-circle-DZ65N8bz.js";import{t as A}from"./mail-CqdA6Y_p.js";import{t as j}from"./message-square-XpKWNcyv.js";import{t as M}from"./pencil-1uDrqXvV.js";import{t as ne}from"./plus-rgqTRjE1.js";import{t as N}from"./search-DYHr3LM9.js";import{t as re}from"./send-1mFY4II3.js";import{t as P}from"./user-plus-Bg01QRAF.js";import{t as F}from"./tag-DAsImP7W.js";import{t as I}from"./input-ChbJ2nzd.js";import{t as L}from"./modal-_49mDK_d.js";import{n as ie}from"./toast-BKrDuNtu.js";import{t as R}from"./confirm-dialog-EPYSBP_B.js";import{t as ae}from"./assistant-identity-store-DBkGjqzV.js";import{t as z}from"./Trans-CBhhVbOk.js";import{w as oe}from"./sdk.gen-BluU0h_N.js";import{f as se}from"./routes-C6ueuiMd.js";import{E as B,T as ce,c as le,nn as ue,rn as de,w as fe}from"./react-query.gen-C_GLKG7m.js";import{r as pe}from"./conversation-navigation-Ck_iLhjv.js";import{t as me}from"./assistant-feature-flag-store-Co_o5uD3.js";import{t as V}from"./use-active-assistant-id-lxYJu99R.js";import{t as H}from"./detail-card-D9EAxXI8.js";import{n as he,r as ge,t as _e}from"./use-side-list-room-BT-2EM5d.js";import{c as ve,i as ye,n as be,r as U,t as xe}from"./use-invite-link-dialog-CvA_-72H.js";import{a as Se,i as Ce,n as W,t as we}from"./contacts-gateway-BLGKdcif.js";var G=h(`circle-question-mark`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3`,key:`1u773s`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]]),Te=h(`git-merge`,[[`circle`,{cx:`18`,cy:`18`,r:`3`,key:`1xkwt0`}],[`circle`,{cx:`6`,cy:`6`,r:`3`,key:`1lh9wr`}],[`path`,{d:`M6 21V9a9 9 0 0 0 9 9`,key:`7kw0sc`}]]),K=e(r(),1),Ee=new Set([`slack`]);function De(e){return e.status===`verified`||e.status===`active`&&e.verifiedAt!=null}function Oe(e){switch(e){case`slack`:return`channelType.slack`;case`telegram`:return`channelType.telegram`;case`discord`:return`channelType.discord`;case`whatsapp`:return`channelType.whatsapp`;case`a2a`:return`channelType.a2a`;case`phone`:return`channelType.phone`;case`email`:return`channelType.email`;default:return null}}function q(e){let n=Oe(e.toLowerCase());return n?t(n,{ns:`contacts`}):e}var ke=`New Contact`;function Ae(e){return e===ke}var J=d();function je({channels:e,pendingChannelKey:t=null,onConnect:r,onDisconnect:i}){let{t:a}=n(`contacts`),[o,s]=(0,K.useState)(null);return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`div`,{className:`flex flex-col`,children:e.map((e,n)=>(0,J.jsxs)(`div`,{children:[n>0?(0,J.jsx)(`div`,{className:`border-t`,style:{borderColor:`var(--border-base)`}}):null,(0,J.jsx)(Me,{channel:e,pending:t===e.key,onConnect:r?()=>r(e.key):void 0,onDisconnect:i?()=>s(e.key):void 0})]},e.key))}),(0,J.jsx)(R,{open:o!==null,title:a(`assistantContactChannels.disconnectConfirmTitle`,{channel:o?w(o):``}),message:a(`assistantContactChannels.disconnectConfirmMessage`),confirmLabel:a(`actions.disconnect`),destructive:!0,onConfirm:()=>{o&&i&&i(o),s(null)},onCancel:()=>s(null)})]})}function Me({channel:e,pending:t,onConnect:r,onDisconnect:a}){let{t:o}=n(`contacts`),s=e.configured,{Icon:c,label:l}=x(e.health);return(0,J.jsxs)(`div`,{className:`flex items-center gap-3 py-4`,children:[(0,J.jsx)(T,{channelId:e.key,className:`h-4 w-4 shrink-0 text-[color:var(--content-secondary)]`}),(0,J.jsx)(`span`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:w(e.key)}),s&&e.address?(0,J.jsx)(`span`,{className:`truncate text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:e.address}):null,(0,J.jsx)(`div`,{className:`ml-auto flex shrink-0 items-center gap-2`,children:s?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(`span`,{className:`inline-flex items-center gap-1 h-8 px-2.5 rounded-md whitespace-nowrap select-none text-body-small-emphasised leading-none bg-[var(--content-default)] text-[var(--surface-base)]`,children:[(0,J.jsx)(c,{className:`h-3 w-3`}),l]}),(0,J.jsx)(i,{variant:`danger`,onClick:a,disabled:!a||t,children:o(t?`actions.disconnecting`:`actions.disconnect`)})]}):(0,J.jsx)(i,{variant:`outlined`,onClick:r,disabled:!r||t,children:o(`actions.connect`)})})]})}function Y({role:e,contactType:t}){let{label:n,tone:r}=X(e,t);return(0,J.jsx)(F,{tone:r,children:n})}function X(e,t){switch(e){case`guardian`:return{label:`Guardian`,tone:`positive`};case`assistant`:return{label:`Assistant`,tone:`negative`};default:return t===`assistant`?{label:`Assistant`,tone:`negative`}:{label:`Human`,tone:`warning`}}}function Ne({assistantName:e,...t}){let{t:r}=n(`contacts`),i=y(e);return(0,J.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,J.jsx)(H,{title:r(`assistantChannelsDetail.title`,{name:i}),accessory:(0,J.jsx)(Y,{role:`assistant`}),compactAccessory:!0}),(0,J.jsx)(H,{title:r(`assistantChannelsDetail.channelsTitle`),subtitle:r(`assistantChannelsDetail.channelsSubtitle`,{name:i}),children:(0,J.jsx)(je,{...t})})]})}var Pe=new Set([`telegram`,`phone`,`vellum`,`whatsapp`,`slack`,`email`,`platform`,`a2a`]);function Z(e){return Pe.has(e)}function Fe(e,t){return e.id===`a2a`?t&&t.status!==`revoked`?{kind:`connected`}:{kind:`setup`}:t!=null&&De(t)?{kind:`verified`}:t?.status===`blocked`?{kind:`none`}:t&&t.status!==`revoked`?{kind:`unverified`}:{kind:`setup`}}function Ie(e,t,n){let r=[],i=new Set;if(e)for(let t of e)t.id===`a2a`&&!n||(r.push(t),i.add(t.id));for(let e of t)e.status===`revoked`||i.has(e.type)||e.type===`a2a`&&!n||Z(e.type)&&(r.push({id:e.type,source:`default`,label:e.type.charAt(0).toUpperCase()+e.type.slice(1),subtitle:``,icon:`help-circle`,supportsVerification:!1,setupMessages:{guardian:``,contact:``}}),i.add(e.type));return r}function Le({channelId:e,name:t,className:n,style:r}){let i=b(e);if(i)return(0,K.createElement)(i,{size:16,className:n,style:r});switch(t){case`bot`:return(0,J.jsx)(S,{className:n,style:r});case`hash`:return(0,J.jsx)(C,{className:n,style:r});case`send`:return(0,J.jsx)(re,{className:n,style:r});case`phone`:return(0,J.jsx)(v,{className:n,style:r});case`mail`:return(0,J.jsx)(A,{className:n,style:r});case`message-square`:return(0,J.jsx)(j,{className:n,style:r});default:return(0,J.jsx)(G,{className:n,style:r})}}function Q({contactChannels:e,availableChannels:t,channelsLoadFailed:r,a2aEnabled:i,setupLabel:a,verifyLoading:o,verifySubject:s=`self`,onSetupChannel:c,onVerifyChannel:l,onRevokeChannel:u,onLinkAccount:d}){let{t:f}=n(`contacts`),[p,m]=(0,K.useState)(null),[h,g]=(0,K.useState)(null),_=new Map;for(let t of e)t.status!==`revoked`&&(_.has(t.type)||_.set(t.type,t));let v=()=>{p&&(l?.(p.id),m(null))},y=Ie(t,e,i);return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(`div`,{className:`flex flex-col`,children:[r&&(0,J.jsx)(`div`,{className:`px-1 py-2 text-sm`,style:{color:`var(--content-secondary)`},role:`status`,children:f(`contactChannelsSection.loadFailed`)}),y.map((e,t)=>{let n=_.get(e.id);return(0,J.jsxs)(`div`,{children:[t>0&&(0,J.jsx)(`div`,{className:`border-t`,style:{borderColor:`var(--border-base)`}}),(0,J.jsx)($,{info:e,existing:n,setupLabel:a??f(`contactChannelsSection.setupDefault`),verifyLoading:o,onSetup:c?()=>c(e.id):void 0,onVerify:l&&e.supportsVerification?()=>m(e):void 0,onRevoke:u&&n?()=>g({channelId:n.id,channel:e}):void 0,onLinkAccount:d&&Ee.has(e.id)?()=>d(e.id):void 0})]},e.id)})]}),p&&(0,J.jsx)(R,{open:!0,title:f(`contactChannelsSection.verifyConfirmTitle`,{channel:p.label}),message:f(s===`contact`?`contactChannelsSection.verifyConfirmMessageContact`:`contactChannelsSection.verifyConfirmMessageGuardian`,{channel:p.label}),confirmLabel:f(`actions.verify`),onConfirm:v,onCancel:()=>m(null)}),h&&(0,J.jsx)(R,{open:!0,title:f(`contactChannelsSection.revokeConfirmTitle`,{channel:h.channel.label}),message:f(`contactChannelsSection.revokeConfirmMessage`),confirmLabel:f(`actions.revoke`),destructive:!0,onConfirm:()=>{u?.(h.channelId,h.channel.id),g(null)},onCancel:()=>g(null)})]})}function $({info:e,existing:t,setupLabel:r,verifyLoading:a,onSetup:o,onVerify:s,onRevoke:c,onLinkAccount:l}){let{t:u}=n(`contacts`),d=Fe(e,t);return(0,J.jsxs)(`div`,{className:`flex items-center gap-3 py-4`,children:[(0,J.jsx)(Le,{channelId:e.id,name:e.icon,className:`h-4 w-4 shrink-0`,style:{color:`var(--content-secondary)`}}),(0,J.jsx)(`span`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:e.label}),t?.address?(0,J.jsx)(`span`,{className:`truncate text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:t.address}):null,(0,J.jsx)(`div`,{className:`ml-auto flex shrink-0 items-center gap-2`,children:d.kind===`connected`?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(`span`,{className:`inline-flex items-center gap-1 h-8 px-2.5 rounded-md whitespace-nowrap select-none text-body-small-emphasised leading-none bg-[var(--content-default)] text-[var(--surface-base)]`,children:[(0,J.jsx)(E,{className:`h-3 w-3`}),u(`channelStatus.connected`)]}),c?(0,J.jsx)(i,{variant:`danger`,onClick:c,children:u(`actions.revoke`)}):null]}):d.kind===`verified`?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(`span`,{className:`inline-flex items-center gap-1 h-8 px-2.5 rounded-md whitespace-nowrap select-none text-body-small-emphasised leading-none bg-[var(--content-default)] text-[var(--surface-base)]`,children:[(0,J.jsx)(E,{className:`h-3 w-3`}),u(`channelStatus.verified`)]}),c?(0,J.jsx)(i,{variant:`danger`,onClick:c,children:u(`actions.revoke`)}):null]}):d.kind===`unverified`?(0,J.jsx)(i,{variant:`outlined`,onClick:s,disabled:!s||a,children:u(a?`actions.verifying`:`actions.verify`)}):d.kind===`setup`?e.id===`a2a`?null:(0,J.jsxs)(J.Fragment,{children:[l?(0,J.jsxs)(i,{onClick:l,children:[(0,J.jsx)(O,{className:`h-3.5 w-3.5`}),u(`contactChannelsSection.linkAccount`)]}):null,(0,J.jsx)(i,{variant:`outlined`,onClick:o,disabled:!o,children:r})]}):null})]})}function Re(e){return(0,J.jsx)(ze,{...e},e.contact.id)}function ze({contact:e,savePending:t,deletePending:r,verifyPending:a,mergePending:o=!1,canMerge:s=!1,availableChannels:c,channelsLoadFailed:l,a2aEnabled:u,onSave:d,onDelete:f,onMerge:p,onSetupChannel:m,onVerifyChannel:h,onRevokeChannel:g,onLinkAccount:_}){let{t:v}=n(`contacts`),y=Ae(e.displayName),[ee,te]=(0,K.useState)(y?``:e.displayName),[b,x]=(0,K.useState)(e.notes??``),[S,C]=(0,K.useState)(!1),w=ee.trim(),T=b.trim(),E=y?``:e.displayName,D=e.notes??``,O=w!==E||T!==D,k=w.length>0&&O&&!t&&!r,A=y&&e.channels.length===0&&e.interactionCount===0,j=w||(y?v(`contact.draftName`):e.displayName),M=v(`contact.interactions`,{count:e.interactionCount});return(0,J.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,J.jsx)(H,{title:j,accessory:(0,J.jsx)(Y,{role:e.role,contactType:e.contactType}),compactAccessory:!0,subtitle:M,children:(0,J.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,J.jsx)(I,{label:v(`contact.nameLabel`),type:`text`,value:ee,onChange:e=>te(e.target.value),placeholder:v(`contactDetailView.namePlaceholder`),autoFocus:y,disabled:t||r,fullWidth:!0}),(0,J.jsx)(I,{label:v(`contact.notesLabel`),type:`text`,value:b,onChange:e=>x(e.target.value),placeholder:v(`contactDetailView.notesPlaceholder`),disabled:t||r,fullWidth:!0}),(0,J.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,J.jsx)(i,{type:`button`,onClick:()=>d({displayName:w,notes:T}),disabled:!k,children:v(t?`actions.saving`:`actions.save`)}),p?(0,J.jsx)(i,{type:`button`,variant:`outlined`,onClick:p,disabled:!s||A||O||o||t||r,title:s?A?v(`contactDetailView.mergeBlockedUnsavedDraft`):O?v(`contact.mergeBlockedUnsaved`):void 0:v(`contact.mergeBlockedNoCandidates`),children:v(o?`actions.merging`:`actions.merge`)}):null,(0,J.jsx)(i,{type:`button`,variant:`danger`,onClick:()=>{A?f():C(!0)},disabled:r,children:v(r?`actions.deleting`:`contactDetailView.delete`)})]})]})}),(0,J.jsx)(H,{title:v(`contactDetailView.linkedAccountsTitle`),subtitle:v(`contactDetailView.linkedAccountsSubtitle`),children:(0,J.jsx)(Q,{contactChannels:e.channels,availableChannels:c,channelsLoadFailed:l,a2aEnabled:u,verifyLoading:a,verifySubject:`contact`,onSetupChannel:m,onVerifyChannel:h,onRevokeChannel:g,onLinkAccount:_})}),(0,J.jsx)(R,{open:S,title:v(`contactDetailView.deleteConfirmTitle`,{name:j}),message:v(`contactDetailView.deleteConfirmMessage`),confirmLabel:v(`actions.delete`),destructive:!0,onConfirm:()=>{C(!1),f()},onCancel:()=>C(!1)})]})}function Be(e){return(0,J.jsx)(Ve,{...e},`${e.survivor.id}:${e.open?`open`:`closed`}`)}function Ve({open:e,survivor:t,candidates:r,pending:a,errorMessage:o,onMerge:s,onClose:c}){let{t:l}=n(`contacts`),[u,d]=(0,K.useState)(``),[p,m]=(0,K.useState)(null);(0,K.useEffect)(()=>{p&&!r.some(e=>e.id===p)&&m(null)},[r,p]);let h=(0,K.useMemo)(()=>{let e=u.trim().toLowerCase();return e?r.filter(t=>t.displayName.toLowerCase().includes(e)):r},[r,u]),_=p?r.find(e=>e.id===p)??null:null,v=Ke(t);return(0,J.jsx)(L.Root,{open:e,onOpenChange:e=>{!e&&!a&&c()},children:(0,J.jsxs)(L.Content,{size:`md`,children:[(0,J.jsxs)(L.Header,{icon:Te,children:[(0,J.jsx)(L.Title,{children:_?l(`contactMergeDialog.titlePicked`,{donor:_.displayName,survivor:v}):l(`contactMergeDialog.titlePicking`,{survivor:v})}),(0,J.jsx)(L.Description,{children:l(_?`contactMergeDialog.descriptionPicked`:`contactMergeDialog.descriptionPicking`)})]}),(0,J.jsxs)(L.Body,{className:`flex flex-col gap-3`,children:[_?(0,J.jsx)(We,{survivor:t,donor:_}):r.length===0?(0,J.jsx)(Ge,{}):(0,J.jsx)(He,{search:u,onSearch:d,candidates:h,onPick:m}),o?(0,J.jsx)(f,{as:`p`,variant:`body-small-default`,className:`text-(--system-negative-strong)`,role:`alert`,children:o}):null]}),(0,J.jsx)(L.Footer,{children:_?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(i,{variant:`outlined`,onClick:()=>m(null),disabled:a,leftIcon:(0,J.jsx)(g,{"aria-hidden":!0}),children:l(`actions.back`)}),(0,J.jsx)(i,{variant:`danger`,onClick:()=>s(_.id),disabled:a,children:l(a?`actions.merging`:`contactMergeDialog.confirm`)})]}):(0,J.jsx)(i,{variant:`outlined`,onClick:c,disabled:a,children:l(`actions.cancel`)})})]})})}function He({search:e,onSearch:t,candidates:r,onPick:i}){let{t:a}=n(`contacts`);return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(I,{type:`text`,value:e,onChange:e=>t(e.target.value),placeholder:a(`contactMergeDialog.searchPlaceholder`),leftIcon:(0,J.jsx)(N,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),fullWidth:!0}),(0,J.jsx)(`div`,{className:`flex max-h-[320px] min-h-[120px] flex-col gap-1 overflow-y-auto`,role:`listbox`,"aria-label":a(`contactMergeDialog.listAriaLabel`),children:r.length===0?(0,J.jsx)(f,{as:`p`,variant:`body-small-default`,className:`px-3 py-4 text-center text-(--content-tertiary)`,children:a(`contactsList.noMatches`)}):r.map(e=>(0,J.jsx)(Ue,{contact:e,onPick:()=>i(e.id)},e.id))})]})}function Ue({contact:e,onPick:t}){let n=Je(e).join(` | `)||void 0;return(0,J.jsx)(m,{asChild:!0,children:(0,J.jsx)(`button`,{type:`button`,onClick:t,role:`option`,"aria-selected":`false`,className:`flex h-auto w-full items-center gap-2 rounded-[6px] px-[8px] py-2 text-left`,children:(0,J.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,J.jsx)(`span`,{className:`truncate text-body-medium-default`,children:e.displayName}),n?(0,J.jsx)(`span`,{className:`truncate text-body-small-default text-(--content-tertiary)`,children:n}):null]})})})}function We({survivor:e,donor:t}){let{t:r}=n(`contacts`),i=Ke(e),{moved:a,duplicates:o}=qe(e,t);return(0,J.jsxs)(`ul`,{className:`flex flex-col gap-2 text-body-medium-lighter text-(--content-secondary)`,children:[(0,J.jsx)(`li`,{children:(0,J.jsx)(z,{i18nKey:`contactMergeDialog.donorDeleted`,ns:`contacts`,values:{donor:t.displayName},components:{donor:(0,J.jsx)(`span`,{className:`text-(--content-default)`})}})}),(0,J.jsx)(`li`,{children:r(`contactMergeDialog.channelsMoved`,{count:a.length,survivor:i,channels:a.map(e=>q(e.type)).join(`, `)})}),o.length>0?(0,J.jsx)(`li`,{className:`text-(--content-tertiary)`,children:r(`contactMergeDialog.duplicatesSkipped`,{count:o.length,survivor:i})}):null,t.notes?(0,J.jsx)(`li`,{children:r(`contactMergeDialog.notesAppended`)}):null,(0,J.jsx)(`li`,{className:`text-(--content-tertiary)`,children:r(`contactMergeDialog.irreversible`)})]})}function Ge(){let{t:e}=n(`contacts`);return(0,J.jsx)(f,{as:`p`,variant:`body-medium-lighter`,className:`px-3 py-6 text-center text-(--content-tertiary)`,children:e(`contactMergeDialog.empty`)})}function Ke(e){return e.role===`guardian`?!e.displayName||e.displayName.startsWith(`vellum-principal-`)?t(`survivorName.you`,{ns:`contacts`}):t(`survivorName.youNamed`,{ns:`contacts`,name:e.displayName}):e.displayName||t(`survivorName.thisContact`,{ns:`contacts`})}function qe(e,t){let n=[],r=[];for(let i of t.channels)i.status!==`revoked`&&(e.channels.some(e=>e.type===i.type&&e.address.toLowerCase()===i.address.toLowerCase())?r.push(i):n.push(i));return{moved:n,duplicates:r}}function Je(e){let t=new Set,n=[];for(let r of e.channels){if(r.status===`revoked`)continue;let e=r.type.toLowerCase();t.has(e)||(t.add(e),n.push(q(e)))}return n}function Ye({loading:e,guardian:t,assistantName:r,regularContacts:a,selection:o,onSelect:s,onAddContact:c,addingContact:l=!1,search:u,onSearchChange:d}){let{t:f}=n(`contacts`),m=u.trim()?a.filter(e=>e.displayName.toLowerCase().includes(u.trim().toLowerCase())):a;return(0,J.jsx)(p.Root,{className:`flex h-full flex-col overflow-hidden`,children:(0,J.jsxs)(p.Body,{className:`flex min-h-0 min-w-0 flex-1 flex-col gap-4`,children:[(0,J.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,J.jsx)(`h2`,{className:`text-title-medium`,style:{color:`var(--content-default)`},children:f(`contactsList.heading`)}),(0,J.jsx)(i,{type:`button`,variant:`ghost`,iconOnly:l?(0,J.jsx)(k,{className:`animate-spin`,"aria-hidden":!0}):(0,J.jsx)(ne,{"aria-hidden":!0}),onClick:c,disabled:l,"aria-label":f(`contactsList.addAriaLabel`),tintColor:`var(--content-secondary)`})]}),(0,J.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[t?(0,J.jsx)(Xe,{name:t.displayName?f(`contactsList.youNamed`,{name:t.displayName}):f(`contactsList.you`),role:t.role,channelTypes:t.channelTypes,selected:o?.kind===`contact`&&o.contactId===t.id,onClick:()=>s({kind:`contact`,contactId:t.id}),trailingIcon:`pencil`}):null,(0,J.jsx)(Xe,{name:r?.trim()||f(`contactsList.assistantFallback`),role:`assistant`,selected:o?.kind===`assistant`,onClick:()=>s({kind:`assistant`}),trailingIcon:`more`})]}),(0,J.jsx)(`div`,{className:`border-t`,style:{borderColor:`var(--border-base)`}}),a.length>0?(0,J.jsx)(I,{type:`text`,value:u,onChange:e=>d(e.target.value),placeholder:f(`contactsList.searchPlaceholder`),leftIcon:(0,J.jsx)(N,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),fullWidth:!0}):null,a.length>0?(0,J.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto flex flex-col gap-1`,children:[m.map(e=>(0,J.jsx)(Xe,{name:e.displayName,role:e.role,contactType:e.contactType,channelTypes:e.channelTypes,verified:e.verified,selected:o?.kind===`contact`&&o.contactId===e.id,onClick:()=>s({kind:`contact`,contactId:e.id}),trailingIcon:`more`},e.id)),m.length===0?(0,J.jsx)(`p`,{className:`px-3 py-4 text-center text-body-small-default`,style:{color:`var(--content-tertiary)`},children:f(`contactsList.noMatches`)}):null]}):e?null:(0,J.jsx)(i,{type:`button`,variant:`ghost`,onClick:c,disabled:l,tintColor:`var(--primary-base)`,leftIcon:l?(0,J.jsx)(k,{className:`animate-spin`,"aria-hidden":!0}):(0,J.jsx)(P,{"aria-hidden":!0}),children:f(`contactsList.add`)})]})})}function Xe({name:e,role:t,contactType:r,channelTypes:i,selected:a,onClick:o,trailingIcon:s,verified:c}){let{t:l}=n(`contacts`),u=i&&i.length>0?i.join(` | `):void 0,d=s===`pencil`?(0,J.jsx)(M,{className:`h-3.5 w-3.5 text-[color:var(--content-tertiary)]`,"aria-hidden":!0}):s===`more`?(0,J.jsx)(D,{className:`h-3.5 w-3.5 text-[color:var(--content-tertiary)]`,"aria-hidden":!0}):void 0;return(0,J.jsx)(m,{asChild:!0,active:a,children:(0,J.jsxs)(`button`,{type:`button`,onClick:o,className:`flex h-auto w-full items-center gap-2 rounded-[6px] px-[8px] py-2 text-left`,children:[(0,J.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,J.jsx)(`span`,{className:`truncate text-body-medium-default`,children:e}),u?(0,J.jsx)(`span`,{className:`truncate text-body-small-default`,style:{color:`var(--content-tertiary)`},children:u}):null]}),(0,J.jsxs)(`span`,{className:`flex shrink-0 items-center gap-1`,children:[c===void 0?null:(0,J.jsx)(F,{tone:c?`positive`:`neutral`,children:l(c?`contactsList.verified`:`contactsList.unverified`)}),(0,J.jsx)(Y,{role:t,contactType:r}),d]})]})})}function Ze(e){return(0,J.jsx)(Qe,{...e},e.contact.id)}function Qe({contact:e,savePending:t,verifyPending:r,mergePending:a=!1,canMerge:o=!1,availableChannels:s,channelsLoadFailed:c,a2aEnabled:l,onSave:u,onMerge:d,onSetupChannel:f,onVerifyChannel:p,onRevokeChannel:m,onGenerateInviteLink:h}){let{t:g}=n(`contacts`),_=e.displayName.startsWith(`vellum-principal-`),v=_?``:e.displayName,[y,ee]=(0,K.useState)(v),[te,b]=(0,K.useState)(e.notes??``),x=y.trim(),S=te.trim(),C=x!==v.trim()||S!==(e.notes??``).trim(),w=C&&!t,T=g(`contact.interactions`,{count:e.interactionCount});return(0,J.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,J.jsx)(H,{title:_?g(`contactsList.you`):g(`contactsList.youNamed`,{name:e.displayName}),accessory:(0,J.jsx)(Y,{role:`guardian`}),compactAccessory:!0,subtitle:T,children:(0,J.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,J.jsx)(I,{label:g(`contact.nameLabel`),type:`text`,value:y,onChange:e=>ee(e.target.value),placeholder:g(`guardianDetailView.namePlaceholder`),disabled:t,fullWidth:!0}),(0,J.jsx)(I,{label:g(`contact.notesLabel`),type:`text`,value:te,onChange:e=>b(e.target.value),placeholder:g(`guardianDetailView.notesPlaceholder`),disabled:t,fullWidth:!0}),(0,J.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,J.jsx)(i,{variant:`primary`,onClick:()=>u({displayName:x||e.displayName,notes:S}),disabled:!w,children:g(t?`actions.saving`:`actions.save`)}),d?(0,J.jsx)(i,{variant:`outlined`,onClick:d,disabled:!o||C||a||t,title:o?C?g(`contact.mergeBlockedUnsaved`):void 0:g(`contact.mergeBlockedNoCandidates`),children:g(a?`actions.merging`:`actions.merge`)}):null]})]})}),(0,J.jsx)(H,{title:g(`guardianDetailView.channelsTitle`),subtitle:g(`guardianDetailView.channelsSubtitle`),children:(0,J.jsx)(Q,{contactChannels:e.channels,availableChannels:s,channelsLoadFailed:c,a2aEnabled:l,setupLabel:g(`guardianDetailView.setupLabel`),verifyLoading:r,onSetupChannel:f,onVerifyChannel:p,onRevokeChannel:m})}),h?(0,J.jsx)(U,{onClick:h}):null]})}function $e(e,t){let n=t.trim().toLowerCase().replace(/^@/,``);return n===``?e:e.filter(e=>e.displayName.toLowerCase().includes(n)||e.username.toLowerCase().includes(n))}function et(e){let t=e.trim().split(/\s+/).filter(Boolean);return`${t[0]?.[0]??`?`}${t.length>1?t[t.length-1]?.[0]??``:``}`.toUpperCase()}function tt({open:e,channelLabel:t,contactName:r,accounts:a,loading:o,errorMessage:s,pendingAccountId:c,onPick:l,onClose:u,onInviteInstead:d}){let{t:f}=n(`contacts`),[p,m]=(0,K.useState)(``);(0,K.useEffect)(()=>{e&&m(``)},[e]);let h=(0,K.useMemo)(()=>$e(a??[],p),[a,p]),g=c!=null;return(0,J.jsx)(L.Root,{open:e,onOpenChange:e=>!e&&u(),children:(0,J.jsxs)(L.Content,{size:`sm`,children:[(0,J.jsxs)(L.Header,{children:[(0,J.jsx)(L.Title,{children:f(`linkAccountDialog.title`,{channel:t})}),(0,J.jsx)(L.Description,{children:(0,J.jsx)(z,{i18nKey:`linkAccountDialog.description`,ns:`contacts`,values:{channel:t,name:r},components:{contact:(0,J.jsx)(`span`,{className:`text-[color:var(--content-default)]`})}})})]}),(0,J.jsxs)(L.Body,{className:`flex flex-col gap-3`,children:[(0,J.jsx)(I,{type:`search`,value:p,onChange:e=>m(e.target.value),placeholder:f(`linkAccountDialog.searchPlaceholder`),"aria-label":f(`linkAccountDialog.searchAriaLabel`,{channel:t}),leftIcon:(0,J.jsx)(N,{className:`h-4 w-4`}),fullWidth:!0}),s?(0,J.jsx)(`p`,{className:`text-body-small-default text-[color:var(--content-negative)]`,children:s}):null,(0,J.jsx)(`div`,{className:`max-h-80 overflow-y-auto`,children:o?(0,J.jsx)(`p`,{className:`py-4 text-center text-body-small-default text-[color:var(--content-tertiary)]`,children:f(`linkAccountDialog.loading`)}):h.length===0?(0,J.jsx)(`p`,{className:`py-4 text-center text-body-small-default text-[color:var(--content-tertiary)]`,children:(a?.length??0)===0?f(`linkAccountDialog.noMembers`):f(`linkAccountDialog.noMatches`)}):(0,J.jsx)(`ul`,{className:`flex flex-col`,children:h.map(e=>(0,J.jsx)(`li`,{children:(0,J.jsxs)(`button`,{type:`button`,onClick:()=>l(e),disabled:g,className:`flex w-full cursor-pointer items-center gap-3 rounded-md px-2 py-2 text-left transition-colors hover:bg-[var(--surface-overlay)] disabled:cursor-not-allowed disabled:opacity-60`,children:[e.imageUrl?(0,J.jsx)(`img`,{src:e.imageUrl,alt:``,className:`h-8 w-8 shrink-0 rounded-full`}):(0,J.jsx)(`span`,{"aria-hidden":`true`,className:`flex h-8 w-8 shrink-0 items-center justify-center rounded-full bg-[var(--tag-bg-neutral)] text-body-small-emphasised text-[color:var(--content-secondary)]`,children:et(e.displayName)}),(0,J.jsxs)(`span`,{className:`flex min-w-0 flex-col`,children:[(0,J.jsx)(`span`,{className:`truncate text-body-medium-default text-[color:var(--content-default)]`,children:e.displayName}),(0,J.jsxs)(`span`,{className:`truncate text-body-small-default text-[color:var(--content-tertiary)]`,children:[`@`,e.username]})]}),c===e.id?(0,J.jsx)(`span`,{className:`ml-auto shrink-0 text-body-small-default text-[color:var(--content-tertiary)]`,children:f(`linkAccountDialog.linking`)}):null]})},e.id))})})]}),(0,J.jsxs)(L.Footer,{className:`items-center justify-between gap-3 border-t border-[var(--border-base)]`,children:[(0,J.jsx)(`p`,{className:`text-body-small-default text-[color:var(--content-tertiary)]`,children:(0,J.jsx)(z,{i18nKey:`linkAccountDialog.guardianLinkNote`,ns:`contacts`,components:{emphasis:(0,J.jsx)(`span`,{className:`text-[color:var(--content-secondary)]`})}})}),d?(0,J.jsxs)(i,{variant:`link`,className:`shrink-0`,onClick:d,disabled:g,children:[f(`linkAccountDialog.inviteInstead`),(0,J.jsx)(_,{className:`h-3.5 w-3.5`})]}):null]})]})})}function nt({assistantId:e,channelType:n,contact:r,onLinked:i}){let[a,o]=(0,K.useState)(!1),s=u({mutationFn:t=>W(e,t.contact,{type:n,address:t.account.id}),onSuccess:(e,n)=>{o(!1),ie.success(t(`accountLink.linked`,{ns:`contacts`,username:n.account.username})),i()}}),c=(0,K.useCallback)(()=>{s.reset(),o(!0)},[s]),l=(0,K.useCallback)(()=>{s.isPending||(s.reset(),o(!1))},[s]),d=(0,K.useCallback)(e=>{!r||s.isPending||s.mutate({contact:r,account:e})},[r,s]);return{channelType:n,dialogOpen:a,open:c,close:l,linkErrorMessage:s.error instanceof Error?s.error.message:s.error?t(`accountLink.linkFailed`,{ns:`contacts`}):null,pendingAccountId:s.isPending?s.variables.account.id:null,pick:d}}var rt=[{id:`slack`,source:`default`,label:`Slack`,subtitle:`Message your assistant from Slack`,icon:`hash`,supportsVerification:!0,setupMessages:{guardian:`I'd like to verify my identity as your guardian on Slack. Can you help me set that up?`,contact:`I'd like to verify a contact's Slack identity. Can you walk me through it?`}},{id:`telegram`,source:`default`,label:`Telegram`,subtitle:`Message your assistant from Telegram`,icon:`send`,supportsVerification:!0,setupMessages:{guardian:`I'd like to verify my identity as your guardian on Telegram. Can you help me set that up?`,contact:`I'd like to verify a contact's Telegram identity. Can you walk me through it?`}},{id:`phone`,source:`default`,label:`Phone Calling`,subtitle:`Call or text your assistant via phone`,icon:`phone`,supportsVerification:!0,setupMessages:{guardian:`I'd like to verify my identity as your guardian for phone calls. Can you help me set that up?`,contact:`I'd like to verify a contact's phone number. Can you help me set that up?`}}],it=[];function at({assistantId:e,onStartSetupConversation:t}){let{t:r}=n(`contacts`),i=me.use.a2aChannel(),a=ae.use.name(),d=c(),[f]=o(),p=f.get(`setup`),m=p&&te(p)?p:null,[h,g]=(0,K.useState)({kind:`assistant`}),_=xe(e),{paneRef:v,hasRoomForList:b,drawerOpen:x,openDrawer:S,closeDrawer:C}=_e(),[w,T]=(0,K.useState)(``),[E,D]=(0,K.useState)(!1),O=y(a),k=(0,K.useMemo)(()=>({path:{assistant_id:e}}),[e]),A=ce(k),j=l({...fe(k),enabled:!!e,select:e=>e.contacts}),M=be({assistantId:e,onStartSetupConversation:t}),ne=l({...le({path:{assistant_id:e}}),enabled:!!e,queryFn:async({signal:t})=>{let{data:n,error:r,response:i}=await oe({path:{assistant_id:e},signal:t,throwOnError:!1});if(i?.status===404)return{channels:rt};if(!i||!i.ok)throw r??Error(`Failed to fetch channel availability`);return n},select:e=>e.channels}),N=ne.data??it,re=ne.isError,P=j.data,F=(0,K.useMemo)(()=>P?.find(e=>e.role===`guardian`)??null,[P]),I=(0,K.useMemo)(()=>P?.filter(e=>e.role!==`guardian`)??[],[P]),L=(0,K.useMemo)(()=>h.kind===`contact`?P?.find(e=>e.id===h.contactId)??null:null,[P,h]),R=(0,K.useMemo)(()=>!P||!L?[]:P.filter(e=>e.id!==L.id&&e.role!==`guardian`),[P,L]),z=R.length>0,pe=(0,K.useRef)(!!m);(0,K.useEffect)(()=>{pe.current||F&&(pe.current=!0,g({kind:`contact`,contactId:F.id}))},[F]);let V=(0,K.useCallback)(()=>d.invalidateQueries({queryKey:A}),[d,A]),H=u({mutationFn:()=>Ce(e,{displayName:ke}),onMutate:async()=>{await d.cancelQueries({queryKey:A})},onSuccess:e=>{B(d,k,t=>t?{...t,contacts:[...t.contacts,e]}:void 0),g({kind:`contact`,contactId:e.id})},onError:ve(r(`contactsPage.createFailed`)),onSettled:()=>V()}),U=u({mutationFn:t=>we(e,t),onSuccess:(e,t)=>{B(d,k,e=>e?{...e,contacts:e.contacts.filter(e=>e.id!==t)}:void 0),g({kind:`assistant`})},onError:ve(r(`contactsPage.deleteFailed`)),onSettled:()=>V()}),W=u({mutationFn:({contactId:t,patch:n})=>Ce(e,{id:t,displayName:n.displayName,notes:n.notes}),onSuccess:e=>{B(d,k,t=>t?{...t,contacts:t.contacts.map(t=>t.id===e.id?e:t)}:void 0)},onError:ve(r(`contactsPage.saveFailed`)),onSettled:()=>V()}),G=de({onMutate:async()=>{await d.cancelQueries({queryKey:A})},onSuccess:(e,t)=>{let n=e.contact,i=t.body.mergeId;n&&(B(d,k,e=>e?{...e,contacts:e.contacts.filter(e=>e.id!==i).map(e=>e.id===n.id?n:e)}:void 0),g({kind:`contact`,contactId:n.id})),D(!1),ie.success(r(`contactsPage.mergeSucceeded`))},onSettled:()=>V()}),Te=(0,K.useCallback)(e=>{g(e),C(),D(!1),G.reset()},[C,G]),Ee=(0,K.useCallback)(()=>{G.reset(),D(!0)},[G]),De=(0,K.useCallback)(()=>{G.isPending||(D(!1),G.reset())},[G]),Oe=ue({onSuccess:()=>V()}),Ae=(0,K.useCallback)((t,n)=>{Oe.mutate({path:{assistant_id:e,contactChannelId:t},body:{status:`revoked`}})},[Oe,e]),je=(0,K.useCallback)(()=>{H.isPending||H.mutate()},[H]),Me=(0,K.useCallback)(e=>{if(!t)return;let n=N.find(t=>t.id===e)?.setupMessages.contact;n&&t(n)},[N,t]),Y=(0,K.useCallback)(e=>{if(!t)return;let n=N.find(t=>t.id===e)?.setupMessages.guardian;n&&t(n)},[N,t]),X=u({mutationFn:t=>Se(e,t.channelId),onSuccess:()=>V(),onError:ve(r(`contactsPage.verifyFailed`))}),Pe=(0,K.useCallback)(e=>{if(!L)return;let t=L.channels.find(t=>t.type===e&&t.status!==`revoked`);t&&X.mutate({channelId:t.id})},[L,X]),Z=nt({assistantId:e,channelType:`slack`,contact:L?{id:L.id,displayName:L.displayName}:null,onLinked:V}),Fe=l({...ee(e),enabled:!!e&&Z.dialogOpen,select:e=>e.users}),Ie=M.channels.some(e=>e.key===`slack`&&e.configured),Le=(0,K.useCallback)(e=>{e===Z.channelType&&Z.open()},[Z]),Q=U.isPending?U.variables:null,$=(0,K.useMemo)(()=>L?W.isPending&&W.variables?.contactId===L.id?{...L,displayName:W.variables.patch.displayName,notes:W.variables.patch.notes}:L:null,[L,W.isPending,W.variables]);if(m)return(0,J.jsx)(s,{to:`${se.channels}?setup=${m}`,replace:!0});let ze={loading:j.isLoading,assistantName:O,guardian:F?{id:F.id,displayName:F.displayName.startsWith(`vellum-principal-`)?``:F.displayName,role:F.role,channelTypes:ct(F.channels,i)}:null,regularContacts:I.filter(e=>e.id!==Q).map(e=>({id:e.id,displayName:e.displayName,role:e.role,contactType:e.contactType,channelTypes:ct(e.channels,i),verified:st(e.channels)})),selection:h,onAddContact:je,addingContact:H.isPending,search:w,onSearchChange:T};return(0,J.jsxs)(`div`,{ref:v,className:`flex min-h-0 flex-1 overflow-hidden ${b?`flex-row gap-6`:`flex-col gap-4`}`,children:[b?(0,J.jsx)(`aside`,{className:`min-h-0 w-[320px] shrink-0 overflow-y-auto self-stretch`,children:(0,J.jsx)(Ye,{...ze,onSelect:Te})}):(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`div`,{className:`flex items-center`,children:(0,J.jsx)(ge,{onClick:S})}),(0,J.jsx)(he,{open:x,onClose:C,title:r(`contactsPage.title`),children:(0,J.jsx)(Ye,{...ze,onSelect:Te})})]}),(0,J.jsx)(`section`,{className:`min-h-0 min-w-0 flex-1 overflow-y-auto`,children:h.kind===`assistant`||h.kind===`contact`&&h.contactId===Q?(0,J.jsx)(Ne,{assistantName:O,channels:M.channels,pendingChannelKey:M.pendingChannelKey,onConnect:M.onSetup,onDisconnect:M.onDisconnect}):$?$.role===`guardian`?(0,J.jsx)(Ze,{contact:$,savePending:W.isPending,verifyPending:X.isPending,mergePending:G.isPending,canMerge:z,availableChannels:N,channelsLoadFailed:re,a2aEnabled:i,onSave:e=>{W.mutate({contactId:$.id,patch:e})},onMerge:Ee,onSetupChannel:t?Y:void 0,onVerifyChannel:Pe,onRevokeChannel:Ae,onGenerateInviteLink:i?_.open:void 0}):(0,J.jsx)(Re,{contact:$,savePending:W.isPending,deletePending:U.isPending,verifyPending:X.isPending,mergePending:G.isPending,canMerge:z,availableChannels:N,channelsLoadFailed:re,a2aEnabled:i,onSave:e=>{W.mutate({contactId:$.id,patch:e})},onDelete:()=>{U.mutate($.id)},onMerge:Ee,onSetupChannel:t?Me:void 0,onVerifyChannel:Pe,onRevokeChannel:Ae,onLinkAccount:Ie?Le:void 0}):(0,J.jsx)(ot,{})}),L?(0,J.jsx)(Be,{open:E,survivor:L,candidates:R,pending:G.isPending,errorMessage:G.error instanceof Error?G.error.message:G.error?r(`contactsPage.mergeFailed`):null,onMerge:t=>G.mutate({path:{assistant_id:e},body:{keepId:L.id,mergeId:t}}),onClose:De}):null,(0,J.jsx)(tt,{open:Z.dialogOpen,channelLabel:q(`slack`),contactName:L?.displayName??``,accounts:Fe.data,loading:Fe.isLoading,errorMessage:Fe.isError?r(`contactsPage.rosterLoadFailed`):Z.linkErrorMessage,pendingAccountId:Z.pendingAccountId,onPick:Z.pick,onClose:Z.close,onInviteInstead:t?()=>{Z.close(),Me(Z.channelType)}:void 0}),(0,J.jsx)(ye,{open:_.isOpen,assistantId:e,onClose:_.close})]})}function ot(){let{t:e}=n(`contacts`);return(0,J.jsx)(`div`,{className:`flex h-full items-center justify-center py-16`,children:(0,J.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:e(`contactsPage.emptyBody`)})})}function st(e){return e.some(e=>e.status!==`revoked`&&(e.type===`a2a`||De(e)))}function ct(e,t){let n=new Set,r=[];for(let i of e){if(i.status===`revoked`)continue;let e=i.type.toLowerCase();n.has(e)||e===`a2a`&&!t||(n.add(e),r.push(q(e)))}return r}function lt(){let e=a(),t=V();return(0,J.jsx)(at,{assistantId:t,onStartSetupConversation:t=>{pe(e,{prompt:t})}},t)}export{lt as ContactsPageRoute};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{N as e,a as t,g as n,i as r,j as i,t as a,v as o}from"./section-membership-
|
|
1
|
+
import{N as e,a as t,g as n,i as r,j as i,t as a,v as o}from"./section-membership-Bma0R_Bn.js";var s={conversations:[],hasMore:!1};async function c(e,t){await Promise.all([e.cancelQueries({queryKey:i(t)}),e.cancelQueries({queryKey:o(t)})])}function l(e,t){return e.getQueriesData({queryKey:i(t)}).map(([e,t])=>[e,t])}function u(e,t){for(let[n,r]of t)e.setQueryData(n,r)}async function d(e,t){await Promise.all([e.invalidateQueries({queryKey:i(t)}),e.invalidateQueries({queryKey:o(t)}),e.invalidateQueries({queryKey:n(t)})])}function f(e,t){let n=t(e.conversations);return n===e.conversations?e:{conversations:n,hasMore:e.hasMore}}function p(e,t,n){e.setQueryData(t,e=>{let t=e??s,r=f(t,n);return r===t?e:r})}function m(t,n,r,i){p(t,e(n,r),i)}function h(e,t,n){if(!t)return;let r=e.getQueriesData({queryKey:i(t)});for(let[t,i]of r){if(!i)continue;let r=f(i,n);r!==i&&e.setQueryData(t,r)}}function g(e,t,n){if(!t)return;let r=e.getQueriesData({queryKey:i(t)});for(let[,e]of r){let t=e?.conversations.find(e=>e.conversationId===n);if(t)return t}}function _(...e){let[t=[],...n]=e;if(n.every(e=>e.length===0))return t;let r=new Set(t.map(e=>e.conversationId)),i=[...t];for(let e of n)for(let t of e)r.has(t.conversationId)||(r.add(t.conversationId),i.push(t));return i}function v(e,n,i,o){let s;return h(e,n,e=>{let t=!1,n=e.map(e=>e.conversationId===i?(t=!0,s??={...e,...o},s):e);return t?n:e}),!s||!r(o)?[]:(a(e,n,s),t(e,n,s))}export{v as a,h as c,_ as i,m as l,g as n,u as o,d as r,l as s,c as t};
|
package/dist/assets/{conversation-navigation-116d0b9Q.js → conversation-navigation-Ck_iLhjv.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{f as e}from"./routes-C6ueuiMd.js";import{t}from"./haptics-
|
|
1
|
+
import{f as e}from"./routes-C6ueuiMd.js";import{t}from"./haptics-BS-glrYv.js";import{t as n}from"./conversation-store-BHWyRtQs.js";import{r}from"./subagent-store-BcbcFnS8.js";import{t as i}from"./workflow-store-DH4q15s9.js";import{i as a,u as o}from"./viewer-store-CHptQmkY.js";import{t as s}from"./conversation-selection-BVLi6RIL.js";import{t as c}from"./sound-manager-D8p3_c3W.js";import{t as l}from"./use-is-mobile-DYVRtRin.js";var u=`vellum:focus-composer`,d=!1;function f(){d=!0,typeof window<`u`&&window.dispatchEvent(new Event(u))}function p(){let e=d;return d=!1,e}var m=[`input`,`textarea`,`select`,`[contenteditable=""]`,`[contenteditable="true"]`,`[role="textbox"]`].join(`,`);function h(e){return!!e?.closest(m)}function g(){return typeof document>`u`?!1:h(document.activeElement)}function _(e){return!!e?.closest(`a[href], button, summary`)}function v(e,t){return!(e.defaultPrevented||e.metaKey||e.ctrlKey||e.altKey||e.isComposing||e.keyCode===229||typeof e.key!=`string`||e.key.length!==1||h(t)||e.key===` `&&_(t))}function y({value:e,text:t,selectionStart:n,selectionEnd:r}){let i=Math.max(0,Math.min(n??e.length,e.length)),a=Math.max(i,Math.min(r??i,e.length));return{value:e.slice(0,i)+t+e.slice(a),cursor:i+t.length}}function b(){return typeof window>`u`||typeof window.matchMedia!=`function`?!1:window.matchMedia(l).matches}function x(e){if(b())return!1;let t=a.getState();return!o(t.mainView)||!t.activeAppId&&!t.openedAppState?!1:(n.getState().setEditingConversationId(e),t.enterAppEditing(),!0)}function S(e){x(e)||a.getState().setMainView(`chat`)}function C(o,s,c){c?.silent||t.light(),S(s),s!==n.getState().activeConversationId&&(r.getState().reset(),i.getState().reset(),a.getState().clearTranscriptPanelPayloads()),n.getState().setActiveConversationId(s),o(c?.messageId?e.conversationAtMessage(s,c.messageId):e.conversation(s))}function w(){r.getState().reset(),i.getState().reset(),a.getState().clearTranscriptPanelPayloads();let e=s();return S(e),n.getState().setActiveConversationId(e),e}function T(n,r){r?.silent||(t.light(),c().play(`new_conversation`));let i=w(),a=e.conversation(i);if(r?.prompt){let e=new URLSearchParams({prompt:r.prompt});a=`${a}?${e.toString()}`}return n(a),f(),i}export{S as a,y as c,f as d,v as f,w as i,h as l,C as n,u as o,T as r,p as s,x as t,g as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-DJZBPgpf.js";import{t as n}from"./useQuery-BtL9k7Sh.js";import{t as r}from"./useQueries-RuiDsyUH.js";import{t as i}from"./queryOptions-DGyQTr3e.js";import{r as a}from"./use-is-org-ready-
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-DJZBPgpf.js";import{t as n}from"./useQuery-BtL9k7Sh.js";import{t as r}from"./useQueries-RuiDsyUH.js";import{t as i}from"./queryOptions-DGyQTr3e.js";import{r as a}from"./use-is-org-ready-B6oCKWeF.js";import{I as o,k as s}from"./react-query.gen-C_GLKG7m.js";import{n as c}from"./operational-status-BdcYEcTh.js";import{D as l,E as u,F as d,I as f,O as p,T as m,V as h,_ as g,h as _,k as v,p as y,u as b,w as x,x as S}from"./section-membership-Bma0R_Bn.js";import{i as C}from"./conversation-cache-CrybogTL.js";var w=e(t(),1),T=3e4;function E(e,t=p){let n=s({path:{assistant_id:e},query:t}).queryKey;return f(t)?i({queryKey:n,queryFn:async({client:r})=>{let i=await y(e,t),a=r.getQueryData(n);return a?x(a,i,{pinnedInjected:d(t)}):i},staleTime:T}):i({queryKey:n,queryFn:async()=>({conversations:await b(e,t),hasMore:!1}),staleTime:T})}var D=[],O=[];function k(e){let t=a(),n=c(e);return t&&n}var A={conversations:D,isLoading:!1,isPending:!0,isError:!1,error:null,hasData:!1,hasMore:!1,refetch:()=>{}};function j(e,t,n){let i=k(e),a=r({queries:t===null?[]:[{...E(e??``,t),enabled:n&&!!e&&i}]})[0];return a===void 0?A:{conversations:a.data?.conversations??D,isLoading:a.isLoading,isPending:a.isPending,isError:a.isError,error:a.error,hasData:a.data!==void 0,hasMore:a.data?.hasMore??!1,refetch:()=>{a.refetch()}}}function M(e,t=!0){return j(e,p,t)}function N(e,t=!0){return j(e,l,t)}function P(e,t=!0){return j(e,v,t)}function F(e,t,n=!0){return j(e,t,n)}function I(e,t=!0){let n=j(e,u,t),r=j(e,m,t);return{conversations:(0,w.useMemo)(()=>{let e=C(n.conversations,r.conversations);return e===n.conversations?e:[...e].sort(S(`archivedAt`))},[n.conversations,r.conversations]),isLoading:n.isLoading||r.isLoading,isPending:n.isPending||r.isPending,isError:n.isError||r.isError,error:n.error??r.error,hasData:n.hasData&&r.hasData,hasMore:!1,refetch:()=>{n.refetch(),r.refetch()}}}function L(e,t=!0){let r=a();return n({..._(e),enabled:t&&!!e&&r}).data??null}function R(e,t=!0){let r=k(e);return n({...g(e),enabled:t&&!!e&&r}).data??null}function z(e,t,n=!0){let r=R(e,n),i=(0,w.useMemo)(()=>h(t),[t]);return Math.max(0,r??i)}function B(e,t=!0){let r=k(e),i=n({...o({path:{assistant_id:e??``}}),select:e=>e.groups,enabled:t&&!!e&&r,staleTime:3e4});return{conversationGroups:i.data??O,isLoading:i.isLoading,isPending:i.isPending,isError:i.isError}}export{M as a,L as c,B as i,z as l,N as n,P as o,k as r,F as s,I as t};
|
package/dist/assets/{conversation-selection-DKq2AZf8.js → conversation-selection-BVLi6RIL.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./conversation-store-BHWyRtQs.js";import{H as t,n}from"./section-membership-
|
|
1
|
+
import{t as e}from"./conversation-store-BHWyRtQs.js";import{H as t,n}from"./section-membership-Bma0R_Bn.js";function r(){let t=typeof globalThis.crypto?.randomUUID==`function`?globalThis.crypto.randomUUID():`draft-${Date.now()}-${Math.random().toString(16).slice(2)}`;return e.getState().registerDraftConversationId(t),t}function i({platformStartsInNewChat:e,urlConversationId:t,currentConversationId:n}){return e&&t==null&&n==null}function a(e){return n(e)&&!t(e)}function o({storedConversation:e,defaultConversationId:t,...n}){return s(n)||(e&&a(e)?e.conversationId:t)}function s({queryParamKey:e,onboardingDraftConversationId:t,newChatDraftConversationId:n,currentConversationId:r,currentAssistantId:i,nextAssistantId:a}){return e||t||(i===a&&r?r:n||null)}export{i as a,s as i,a as n,o as r,r as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{l as e}from"./i18n-
|
|
1
|
+
import{l as e}from"./i18n-BtV8MCsZ.js";import{n as t}from"./toast-BKrDuNtu.js";function n(n,r){if(!navigator.clipboard?.writeText){e(Error(`Clipboard API unavailable`),{context:`copyToClipboard`}),t.error(r.errorMessage);return}navigator.clipboard.writeText(n).then(()=>{r.onCopied?.(),r.successMessage&&t.success(r.successMessage)},n=>{e(n,{context:`copyToClipboard`}),t.error(r.errorMessage)})}export{n as t};
|