@vellumai/web 0.12.5 → 0.12.6-dev.202609292116.41f7caa
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/{a2a-invite-2DFcr5cK.js → a2a-invite-BqJCnNzz.js} +1 -1
- package/dist/assets/{about-page-CPNBbifd.js → about-page-Dx28I-9k.js} +1 -1
- package/dist/assets/{account-page-CJ_VtU8O.js → account-page-uJQccwrY.js} +1 -1
- package/dist/assets/{account-shell-DxLEvbei.js → account-shell-DbFFiZZ6.js} +1 -1
- package/dist/assets/{acp-run-detail-panel-CB_kEsnS.js → acp-run-detail-panel-Dn3QQGzZ.js} +3 -3
- package/dist/assets/activation-list-route-C4Ak3BxB.js +1 -0
- package/dist/assets/{activity-redirect-page-BIjoWTCA.js → activity-redirect-page-D_y1Lnpr.js} +1 -1
- package/dist/assets/activity-steps-panel-CqiPC7hg.js +1 -0
- package/dist/assets/add-credits-modal-COKVwX6j.js +1 -0
- package/dist/assets/{add-credits-modal-LuPOq4kF.js → add-credits-modal-gw7o01xg.js} +1 -1
- package/dist/assets/ai-page-DpWJeGbk.js +1 -0
- package/dist/assets/all-chats-page-route-CgLfR07p.js +1 -0
- package/dist/assets/{android-billing-handoff-Q1a-ZHj3.js → android-billing-handoff-B0HTtkNJ.js} +1 -1
- package/dist/assets/{animated-stat-square--YG74D1T.js → animated-stat-square-8dUQcT94.js} +1 -1
- package/dist/assets/{api-key-screen-CYEJaUQl.js → api-key-screen-dAn_hT64.js} +1 -1
- package/dist/assets/app-L206Azo1.js +399 -0
- package/dist/assets/{app-info-zQFV6PZi.js → app-info-jaAZTMcQ.js} +1 -1
- package/dist/assets/app-k-MZKaP4.css +2 -0
- package/dist/assets/archive-redirect-page-DIo7L9n0.js +1 -0
- package/dist/assets/assistant-handle-modal-CyPwkAl5.js +1 -0
- package/dist/assets/assistant-inbox-CAvCHzi9.js +1 -0
- package/dist/assets/assistant-inbox-CQdSXLLi.js +1 -0
- package/dist/assets/assistant-inbox-DslyrhIn.js +1 -0
- package/dist/assets/assistant-inbox-page-route-DFenEww4.js +8 -0
- package/dist/assets/assistant-inbox-qWeVmA1L.js +1 -0
- package/dist/assets/{assistant-status-panel-Db_tR-He.js → assistant-status-panel-B2-5FdBn.js} +1 -1
- package/dist/assets/auth-store-Bs9KUkYb.js +1 -0
- package/dist/assets/{auth-welcome-screen-CCmw8K2q.js → auth-welcome-screen-BcyM5p8r.js} +1 -1
- package/dist/assets/avatar-bundled-components-B9AGitYS.js +1 -0
- package/dist/assets/{avatar-random-ChM4pm8c.js → avatar-random-D9W7QKfh.js} +2 -2
- package/dist/assets/{await-org-header-settled-D7gXGNkp.js → await-org-header-settled-DJ3GoxFC.js} +1 -1
- package/dist/assets/background-task-detail-panel-BmVteIh9.js +1 -0
- package/dist/assets/billing-page-9dhdFGdW.js +3 -0
- package/dist/assets/{billing-redirect-page-CPoe8Fxo.js → billing-redirect-page-izSQM-nI.js} +1 -1
- package/dist/assets/bookmarks-page-IIcbpGCy.js +1 -0
- package/dist/assets/{bundle-confirm-page--s00f5SK.js → bundle-confirm-page-BcTr069z.js} +1 -1
- package/dist/assets/channel-transcript-panel-C5ML_yKy.js +1 -0
- package/dist/assets/{channels--clRukQ0.js → channels-BMnoL5SH.js} +3 -3
- package/dist/assets/{channels-DQENwioX.js → channels-CsbKXJZc.js} +3 -3
- package/dist/assets/{channels-Db0nSBfX.js → channels-Cz7YAOIH.js} +3 -3
- package/dist/assets/channels-page-route-hI-XTfhR.js +1 -0
- package/dist/assets/{channels-qdy8pjzY.js → channels-vNXfvsPT.js} +3 -3
- package/dist/assets/chat-B-bp0-NQ.js +5 -0
- package/dist/assets/chat-CnCdRXp6.js +5 -0
- package/dist/assets/chat-CpeJ9iZR.js +5 -0
- package/dist/assets/chat-QePVo41-.js +5 -0
- package/dist/assets/chat-info-panel-C_GU_Jv-.js +1 -0
- package/dist/assets/{checkout-continuation-DV6qqLmB.js → checkout-continuation-xT-05Elg.js} +1 -1
- package/dist/assets/{checkout-page-CDszxDKy.js → checkout-page-BiZ8nLJk.js} +1 -1
- package/dist/assets/checkout-return-target-CMJ__qAk.js +1 -0
- package/dist/assets/{command-palette-CvSDYYKx.js → command-palette-CERoe_19.js} +1 -1
- package/dist/assets/command-palette-CUGH6THH.js +1 -0
- package/dist/assets/{command-palette-window-page-vfJ8M15E.js → command-palette-window-page-BVptH1AG.js} +1 -1
- package/dist/assets/common-BdQfnACd.js +1 -0
- package/dist/assets/common-IoqtSg0p.js +1 -0
- package/dist/assets/common-LOT1T5DR.js +1 -0
- package/dist/assets/common-kmi6H4cg.js +1 -0
- package/dist/assets/{community-page-Dnrsh7JC.js → community-page-BQyEE7Xw.js} +1 -1
- package/dist/assets/{companion-accent-CbS8BVae.js → companion-accent-DKPM6oFW.js} +1 -1
- package/dist/assets/{companion-dock-zones-page-CRsK4Pv9.js → companion-dock-zones-page-BeMJI0JM.js} +1 -1
- package/dist/assets/{companion-layout-DCGXuvsw.js → companion-layout-CXLXnCMv.js} +1 -1
- package/dist/assets/companion-popover-We8nY0kC.js +1 -0
- package/dist/assets/companion-popover-page-CHm6dSOQ.js +1 -0
- package/dist/assets/companion-surface-BVT9xkls.js +1 -0
- package/dist/assets/companion-surface-page-D65DjszQ.js +1 -0
- package/dist/assets/{companion-tour-entry-C3txdrPi.js → companion-tour-entry-DhB70v5T.js} +1 -1
- package/dist/assets/{companion-watch-frame-page-CxWQHVyd.js → companion-watch-frame-page-B9lHcylQ.js} +1 -1
- package/dist/assets/{connect-page-BnIPLsIl.js → connect-page-C8PBXKJ9.js} +1 -1
- package/dist/assets/{consent-controls-CzokWb_V.js → consent-controls-C2ccIKI4.js} +1 -1
- package/dist/assets/contacts-gateway-BNtogVks.js +1 -0
- package/dist/assets/contacts-page-route-B68IXC25.js +1 -0
- package/dist/assets/{copy-button-CDraE4Q7.js → copy-button-CUPJb1cH.js} +1 -1
- package/dist/assets/{credential-entry-page-CISniD8g.js → credential-entry-page-CJSq74Nm.js} +1 -1
- package/dist/assets/credentials-page-DiOU5eL1.js +1 -0
- package/dist/assets/csv-preview-BRbZOFO7.js +1 -0
- package/dist/assets/danger-zone-redirect-page-EbSYRee5.js +1 -0
- package/dist/assets/debug-page-Cl3v9VT9.js +4 -0
- package/dist/assets/deploy-dialogs-Bmx4Xvkr.js +1 -0
- package/dist/assets/{deploy-dialogs-HsxdyBbf.js → deploy-dialogs-DopKPqKO.js} +1 -1
- package/dist/assets/{desktop-preview-content-CV1cf7mU.js → desktop-preview-content-D7W-Ypu_.js} +2 -2
- package/dist/assets/{desktop-status-DEExfNSz.js → desktop-status-C8Ewgn28.js} +1 -1
- package/dist/assets/{desktop-viewer-D7Wghl4J.js → desktop-viewer-DFeSPld1.js} +2 -2
- package/dist/assets/{detail-card-C7tTQwmv.js → detail-card-B5ZmYki3.js} +1 -1
- package/dist/assets/{detail-panel-stop-button-DnqOX8hL.js → detail-panel-stop-button-CavPaPv6.js} +1 -1
- package/dist/assets/{detail-primitives-wlzeidYY.js → detail-primitives-Brn7ATn1.js} +1 -1
- package/dist/assets/developer-page-3pxnPYDT.js +1 -0
- package/dist/assets/devices-redirect-page-BfCTPud1.js +1 -0
- package/dist/assets/{dictation-overlay-page-DOBCTXi_.js → dictation-overlay-page-DR_CXikR.js} +1 -1
- package/dist/assets/document-load-9K-naRPf.js +1 -0
- package/dist/assets/document-load-BYw5TMZT.js +1 -0
- package/dist/assets/document-viewer-page-BFaGJdAV.js +1 -0
- package/dist/assets/emails-page-CNtgKFiA.js +1 -0
- package/dist/assets/esm-5n5jSt3e.js +2 -0
- package/dist/assets/esm-B5HvNA2f.js +1 -0
- package/dist/assets/esm-BVAuvmyr.js +2 -0
- package/dist/assets/esm-CIgMNIdz.js +1 -0
- package/dist/assets/{esm-C7rWJED9.js → esm-COgrn4oo.js} +2 -2
- package/dist/assets/esm-CvOYazPQ.js +2 -0
- package/dist/assets/{esm-CpIArsrD.js → esm-DFoZ6rpj.js} +1 -1
- package/dist/assets/{esm-u_EeTLJS.js → esm-DPwp_tyY.js} +1 -1
- package/dist/assets/esm-DetZupO7.js +2 -0
- package/dist/assets/esm-DpDUzGbk.js +2 -0
- package/dist/assets/{file-diff-view-Cl9aJla4.js → file-diff-view-DN8YNueZ.js} +1 -1
- package/dist/assets/{file-view-mode-B1UgDONH.js → file-view-mode-DJGREYgR.js} +1 -1
- package/dist/assets/general-page-DnZU6qWf.js +2 -0
- package/dist/assets/hatching-screen-0LfnJSl6.js +1 -0
- package/dist/assets/{hosting-screen-CYbWPSH7.js → hosting-screen-DdGPIb6D.js} +1 -1
- package/dist/assets/identity-page-route-DlAZsSGD.js +7 -0
- package/dist/assets/inspect-page-B3zW_oAc.js +8 -0
- package/dist/assets/integrations-page-CbGvesBB.js +1 -0
- package/dist/assets/intelligence-B6UWzaf0.js +5 -0
- package/dist/assets/intelligence-DFW_P1Fv.js +5 -0
- package/dist/assets/intelligence-DXMdwG0t.js +5 -0
- package/dist/assets/intelligence-DaVJutXG.js +5 -0
- package/dist/assets/intelligence-layout-Bl3fM7gJ.js +1 -0
- package/dist/assets/intelligence-layout-slots-store-C8WE9Cx_.js +1 -0
- package/dist/assets/jszip.min-CDIVkZfG.js +2 -0
- package/dist/assets/keyboard-shortcuts-redirect-page-Dk8BO0Tb.js +1 -0
- package/dist/assets/{latest-assistant-text-C5_QcZxG.js → latest-assistant-text-C4G5IUE6.js} +3 -3
- package/dist/assets/{library-detail-page-lz31jiv2.js → library-detail-page-xqUyBUE_.js} +1 -1
- package/dist/assets/library-page-DBL9qHPX.js +1 -0
- package/dist/assets/local-mode-6LjNtmfs.js +1 -0
- package/dist/assets/login-page-0p8Bxu7Y.js +1 -0
- package/dist/assets/logout-page-DJZI_hMb.js +1 -0
- package/dist/assets/{logs-layout-DtEdDxuo.js → logs-layout-UAha1hek.js} +1 -1
- package/dist/assets/markdown-preview-B4KQVGdl.js +1 -0
- package/dist/assets/{media-preview-WLwNLylQ.js → media-preview-C2pH11yh.js} +1 -1
- package/dist/assets/memory-page-route-DaHB939a.js +2 -0
- package/dist/assets/{memory-router-playground-page-BW7vZW_9.js → memory-router-playground-page-kvDDKn_i.js} +1 -1
- package/dist/assets/message-files-panel-C-AdodUz.js +1 -0
- package/dist/assets/mutation-error-CeEB2_2a.js +1 -0
- package/dist/assets/native-attachment-pickers-CqZLg7Ns.js +1 -0
- package/dist/assets/native-file-DykqRIZ0.js +1 -0
- package/dist/assets/{notifications-page-CJRzep02.js → notifications-page-ieZgypEG.js} +1 -1
- package/dist/assets/{oauth-complete-page-ocdI_rC8.js → oauth-complete-page--SOurjUj.js} +1 -1
- package/dist/assets/{oauth-popup-complete-page-HK8d4Spc.js → oauth-popup-complete-page-CV0LXI7x.js} +2 -2
- package/dist/assets/paired-platform-identity-CscBbAl4.js +1 -0
- package/dist/assets/{pairing-page-DnBwkmV0.js → pairing-page-FXQtocMu.js} +1 -1
- package/dist/assets/password-reset-page-B137KhAK.js +1 -0
- package/dist/assets/pdf-file-preview-FBFne06k.js +1 -0
- package/dist/assets/{peeking-eyes-D9tXm8Sg.js → peeking-eyes-C3X1d6Jj.js} +1 -1
- package/dist/assets/{permission-guide-page-z6AAkvY2.js → permission-guide-page-Bjpyg9oD.js} +1 -1
- package/dist/assets/{permission-setup-DQzKLhBn.js → permission-setup-CnNekawu.js} +1 -1
- package/dist/assets/{personality-page-CzJKC8lv.js → personality-page-BWPFRDJG.js} +1 -1
- package/dist/assets/{personality-page-CKLYnk7H.js → personality-page-Rx-nh3Ne.js} +1 -1
- package/dist/assets/{personality-sliders-Dd3JGL5I.js → personality-sliders-HdKFf1i4.js} +1 -1
- package/dist/assets/plans-page-nfISMtye.js +1 -0
- package/dist/assets/{platform-loopback-page-BC5gtTbI.js → platform-loopback-page-BP0G_ztE.js} +1 -1
- package/dist/assets/{plugin-detail-page-Dre4KSYH.js → plugin-detail-page-DbItYQby.js} +1 -1
- package/dist/assets/{plugins-page-BJhR5JYi.js → plugins-page-Hq3oY2fy.js} +1 -1
- package/dist/assets/plugins-surface-Dck0e-ah.js +1 -0
- package/dist/assets/{preview-error-BSpmr-KH.js → preview-error-mzmIBuDp.js} +1 -1
- package/dist/assets/privacy-page-DrGMNIzy.js +1 -0
- package/dist/assets/{privacy-screen-CRkWqj_4.js → privacy-screen-BjNTrl-k.js} +1 -1
- package/dist/assets/profile-card-CFx29l8Z.js +1 -0
- package/dist/assets/{provider-callback-page-xSMG5fuv.js → provider-callback-page-B_32d7qH.js} +1 -1
- package/dist/assets/{provider-key-CY2sGv7V.js → provider-key-Bf9RPK5P.js} +1 -1
- package/dist/assets/{provider-signup-page-CYvh6GNB.js → provider-signup-page-CILfQS1c.js} +1 -1
- package/dist/assets/{provisioning-targets-C2xXAoS3.js → provisioning-targets-CihW-82c.js} +1 -1
- package/dist/assets/quick-input-page-9Aa-I5Jm.js +1 -0
- package/dist/assets/referral-modal-B1MpSvCh.js +1 -0
- package/dist/assets/referral-modal-ZvutbMfX.js +1 -0
- package/dist/assets/{rehype-katex-BydagpFm.js → rehype-katex-DWUGzNKD.js} +1 -1
- package/dist/assets/{research-mock-page-BdpSM2ZV.js → research-mock-page-AtmzjNYP.js} +1 -1
- package/dist/assets/research-onboarding-route-Y-TTyxVg.js +50 -0
- package/dist/assets/{review-terms-screen-DXYmPnS3.js → review-terms-screen-DJaFYp0A.js} +1 -1
- package/dist/assets/routes-BUMn_QCA.js +1 -0
- package/dist/assets/schedules-Bz8iDaf2.js +1 -0
- package/dist/assets/schedules-page-Bm1hx4Rp.js +1 -0
- package/dist/assets/security-redirect-page-D9u3RNnM.js +1 -0
- package/dist/assets/select-assistant-screen-D6s2S_mN.js +1 -0
- package/dist/assets/{self-hosted-servers-ByTPcaPx.js → self-hosted-servers-Bujh6uz1.js} +1 -1
- package/dist/assets/{service-form-controls-DtPD00wU.js → service-form-controls-BVUtB8em.js} +1 -1
- package/dist/assets/{setting-row-CaZDTGD2.js → setting-row-G5E8kZ77.js} +1 -1
- package/dist/assets/settings-Bh67VJVe.js +3 -0
- package/dist/assets/settings-ClEDqshB.js +3 -0
- package/dist/assets/settings-DDU54LDK.js +3 -0
- package/dist/assets/settings-k5uhZfPH.js +3 -0
- package/dist/assets/{settings-layout-DNdADVFk.js → settings-layout-Dqptdfa0.js} +1 -1
- package/dist/assets/share-feedback-modal-BDMiaPdp.js +1 -0
- package/dist/assets/share-feedback-modal-DUGbfI-F.js +2 -0
- package/dist/assets/{sidebar-tree-BTeywUnh.js → sidebar-tree-d7yHMhKO.js} +1 -1
- package/dist/assets/{signup-page-C3giBlX2.js → signup-page-iIwgiYLt.js} +1 -1
- package/dist/assets/{signup-shell-GSIPLhaj.js → signup-shell-BsnQcu-H.js} +1 -1
- package/dist/assets/{skill-detail-page-Deqf_hR_.js → skill-detail-page-B9n_8p-e.js} +2 -2
- package/dist/assets/{skill-detail-panel-Dxor1hrH.js → skill-detail-panel-Ds1D2oXa.js} +1 -1
- package/dist/assets/{skill-removal-dialog-BT--h1By.js → skill-removal-dialog-DGnkBffV.js} +1 -1
- package/dist/assets/{skills-page-KhBWpqn3.js → skills-page-B1R4k0DA.js} +1 -1
- package/dist/assets/sounds-page-DY9ghZGS.js +1 -0
- package/dist/assets/{start-screen-xL6YeEfA.js → start-screen-DVLLsyQx.js} +1 -1
- package/dist/assets/step-detail-header-DCnA2diF.js +1 -0
- package/dist/assets/{stt-language-picker-modal-oMpmGSKQ.js → stt-language-picker-modal-CcOxx6Ya.js} +1 -1
- package/dist/assets/subagent-detail-panel-DhzPKaSQ.js +1 -0
- package/dist/assets/superpowers-page-BonJfWrJ.js +1 -0
- package/dist/assets/system-events-page-D1OpBJh0.js +1 -0
- package/dist/assets/system-events-redirect-page-CLwAecl9.js +1 -0
- package/dist/assets/tabular-grid-DFivz0zL.js +4 -0
- package/dist/assets/{teleport-gateway-client-ZoYt4yRw.js → teleport-gateway-client-D_meDM-z.js} +1 -1
- package/dist/assets/{text-preview-C4goqoCR.js → text-preview-cMFQ3_2N.js} +1 -1
- package/dist/assets/{theme-stage-page-wBctgsW9.js → theme-stage-page-BHdquTO3.js} +1 -1
- package/dist/assets/tiptap-document-editor-0AZ7iqXI.js +323 -0
- package/dist/assets/tool-detail-panel-BZXB85iB.js +1 -0
- package/dist/assets/tool-detail-panel-Bk8CASIG.js +16 -0
- package/dist/assets/trait-cycle-row-pVT4gz4r.js +1 -0
- package/dist/assets/upgrade-cancel-page-Dc9yxkkJ.js +1 -0
- package/dist/assets/{upgrade-success-page-Dj6egC1G.js → upgrade-success-page-D8wxBq77.js} +1 -1
- package/dist/assets/{usage-redirect-page-Cc7zOqgH.js → usage-redirect-page-B4d-QKUd.js} +1 -1
- package/dist/assets/use-app-delete-DdJsUHf2.js +1 -0
- package/dist/assets/use-assistant-identity-details-DiOh0Z-W.js +1 -0
- package/dist/assets/use-async-read-DcRLxtMN.js +1 -0
- package/dist/assets/use-channel-trust-floors-uxjklf_l.js +1 -0
- package/dist/assets/use-checkout-dismiss-refresh-DXJf2M-l.js +1 -0
- package/dist/assets/use-edge-swipe-back-CyYozI-D.js +1 -0
- package/dist/assets/{use-hotkey-recorder-BIhIsp-5.js → use-hotkey-recorder-CdE79CTu.js} +1 -1
- package/dist/assets/use-invite-link-dialog-BAfg4kHK.js +1 -0
- package/dist/assets/{use-plugins-list-DPWrP6Mv.js → use-plugins-list-Df-xtL5g.js} +1 -1
- package/dist/assets/use-return-to-short-circuit-Cvy2GrRU.js +1 -0
- package/dist/assets/use-side-list-room-Vb9dmLHc.js +1 -0
- package/dist/assets/{use-skill-actions-CMoU5oFT.js → use-skill-actions-BkmdVbdv.js} +1 -1
- package/dist/assets/use-skill-detail-files-BuP8DzLj.js +1 -0
- package/dist/assets/use-supports-credentials-settings-DExbyP-z.js +1 -0
- package/dist/assets/use-truncated-blob-text-D6z6oSIj.js +1 -0
- package/dist/assets/{vendor-DwMhK7fD.js → vendor-DLH51Vjf.js} +2 -2
- package/dist/assets/voice-page-C0VkALkp.js +1 -0
- package/dist/assets/{wake-detail-panel-B6BImUJo.js → wake-detail-panel-t34mQQR0.js} +1 -1
- package/dist/assets/{weather-forecast-display-BvUd--wf.js → weather-forecast-display-BwKDcZod.js} +1 -1
- package/dist/assets/{web-BdtEBL9W.js → web-BlKAJber.js} +1 -1
- package/dist/assets/{web-DWCtm3Fa.js → web-BmoVVmPZ.js} +1 -1
- package/dist/assets/{web-CvVbfNxJ.js → web-C2Y5uOI1.js} +1 -1
- package/dist/assets/{web-BKRoBxLG.js → web-CAi9YePi.js} +1 -1
- package/dist/assets/{web-CRTiMRVg.js → web-D0qh5Vlp.js} +1 -1
- package/dist/assets/{web-670bTFck.js → web-D5UHHnMG.js} +1 -1
- package/dist/assets/{web-Bn_Atf7m.js → web-DZvE04fg.js} +1 -1
- package/dist/assets/{web-De7Tg__X.js → web-Xy5dhNHF.js} +1 -1
- package/dist/assets/{web-CkhfYAPu.js → web-vcW3se1t.js} +1 -1
- package/dist/assets/welcome-screen--gg4wkMq.js +1 -0
- package/dist/assets/{workflow-detail-panel-DMYrbO29.js → workflow-detail-panel-CK1YIy_U.js} +1 -1
- package/dist/assets/{workspace-DEyW7hRw.js → workspace-Bcvg2VfS.js} +1 -1
- package/dist/assets/{workspace-DBdJJFv1.js → workspace-BscXtFFU.js} +1 -1
- package/dist/assets/{workspace-D3zXycM9.js → workspace-C-huZiu_.js} +1 -1
- package/dist/assets/{workspace-Pqj10WV1.js → workspace-P8HaFDdu.js} +1 -1
- package/dist/assets/workspace-page-CYlqMYcs.js +1 -0
- package/dist/assets/workspace-page-Cdm9g2X4.css +1 -0
- package/dist/assets/xlsx-preview-pU_VmixR.js +1 -0
- package/dist/index.html +3 -3
- package/package.json +1 -1
- package/dist/assets/activation-list-route-CGW4JxwN.js +0 -1
- package/dist/assets/activity-steps-panel-DMQrQxtA.js +0 -1
- package/dist/assets/add-credits-modal-Dv7XHwyy.js +0 -1
- package/dist/assets/ai-page-BYnMIWGK.js +0 -1
- package/dist/assets/all-chats-page-route-nS138Vap.js +0 -1
- package/dist/assets/app-Dy5YEvtr.css +0 -2
- package/dist/assets/app-XG_RF2yi.js +0 -392
- package/dist/assets/archive-redirect-page-DQbvA1Z-.js +0 -1
- package/dist/assets/assistant-handle-modal-CbatcZHT.js +0 -1
- package/dist/assets/assistant-inbox-BVZYdGmg.js +0 -1
- package/dist/assets/assistant-inbox-C7KwxuUh.js +0 -1
- package/dist/assets/assistant-inbox-CWwUcdtm.js +0 -1
- package/dist/assets/assistant-inbox-DanBUV86.js +0 -1
- package/dist/assets/assistant-inbox-page-route-CxI0ViyX.js +0 -8
- package/dist/assets/assistant-inbox-upgrade-body-UUuOySwQ.js +0 -1
- package/dist/assets/auth-store-CpGZaJMT.js +0 -1
- package/dist/assets/avatar-bundled-components-BOhrT2YY.js +0 -1
- package/dist/assets/background-task-detail-panel-BfpAZAV7.js +0 -1
- package/dist/assets/billing-page-D4Aw0uK5.js +0 -3
- package/dist/assets/bookmarks-page-DabizPXt.js +0 -1
- package/dist/assets/channel-transcript-panel-kIskgOQO.js +0 -1
- package/dist/assets/channels-page-route-DBYtimrU.js +0 -1
- package/dist/assets/chat-BVa_KpRl.js +0 -3
- package/dist/assets/chat-DyOtzKbX.js +0 -3
- package/dist/assets/chat-DzcU4zE3.js +0 -3
- package/dist/assets/chat-info-panel-C8-aLnsR.js +0 -1
- package/dist/assets/chat-mAV3L8rd.js +0 -3
- package/dist/assets/checkout-return-target-kOAtAdtD.js +0 -1
- package/dist/assets/command-palette-xzqumNt2.js +0 -1
- package/dist/assets/common-BRa3t-Qr.js +0 -1
- package/dist/assets/common-Bcn9GM7_.js +0 -1
- package/dist/assets/common-Bu_tPNUV.js +0 -1
- package/dist/assets/common-CrjPApCQ.js +0 -1
- package/dist/assets/companion-popover-BsoxqJOP.js +0 -1
- package/dist/assets/companion-popover-page-B-tbPgw2.js +0 -1
- package/dist/assets/companion-surface-Lu_Uj_QW.js +0 -1
- package/dist/assets/companion-surface-page-Cu5KYGHm.js +0 -1
- package/dist/assets/contacts-gateway-CXKsci-d.js +0 -1
- package/dist/assets/contacts-page-route-rxGvMBYc.js +0 -1
- package/dist/assets/credentials-page-CY8AWXDI.js +0 -1
- package/dist/assets/csv-preview-CIYuh6hO.js +0 -4
- package/dist/assets/danger-zone-redirect-page-CvReBloK.js +0 -1
- package/dist/assets/debug-page-Bi_rgZ5l.js +0 -4
- package/dist/assets/deploy-dialogs-C2piFvJp.js +0 -1
- package/dist/assets/developer-page-BCRjXz1c.js +0 -1
- package/dist/assets/devices-redirect-page-7ye90eAr.js +0 -1
- package/dist/assets/document-load-C2pkXMId.js +0 -1
- package/dist/assets/document-load-D-wTWGym.js +0 -1
- package/dist/assets/document-viewer-page-DOzOlaOx.js +0 -1
- package/dist/assets/emails-page-BcGsKx08.js +0 -1
- package/dist/assets/esm-B3c9HRrJ.js +0 -1
- package/dist/assets/esm-BcmYCUdH.js +0 -1
- package/dist/assets/esm-C7d56N3O.js +0 -2
- package/dist/assets/esm-CES6iqL5.js +0 -2
- package/dist/assets/esm-D_-u4jbN.js +0 -2
- package/dist/assets/esm-Djziw8jC.js +0 -2
- package/dist/assets/esm-MIO2TRVG.js +0 -2
- package/dist/assets/general-page-D5BxF2Og.js +0 -2
- package/dist/assets/hatching-screen-6FiOHAnm.js +0 -1
- package/dist/assets/identity-page-route-B7hLB4vt.js +0 -7
- package/dist/assets/inspect-page-Q3Uns0YC.js +0 -9
- package/dist/assets/integrations-page-C--xdzQF.js +0 -1
- package/dist/assets/intelligence-B5O7fjSX.js +0 -5
- package/dist/assets/intelligence-CJubLSea.js +0 -5
- package/dist/assets/intelligence-Keptjtmz.js +0 -5
- package/dist/assets/intelligence-Qk3SkKdZ.js +0 -5
- package/dist/assets/intelligence-layout-5NiOjPJY.js +0 -1
- package/dist/assets/intelligence-layout-slots-store-DTzofJ6x.js +0 -1
- package/dist/assets/keyboard-shortcuts-redirect-page-BXubnemT.js +0 -1
- package/dist/assets/library-page-Cqt_PX2Z.js +0 -1
- package/dist/assets/local-mode-BdKYdq-q.js +0 -1
- package/dist/assets/login-page-BcSmXRpH.js +0 -1
- package/dist/assets/logout-page-BiLyA8KS.js +0 -1
- package/dist/assets/markdown-preview-BZ0peNgQ.js +0 -1
- package/dist/assets/memory-page-route-ULkaZxE1.js +0 -2
- package/dist/assets/message-files-panel-CjeAStji.js +0 -1
- package/dist/assets/native-attachment-pickers-DyuoT-EL.js +0 -1
- package/dist/assets/native-file-xbQpY6mL.js +0 -1
- package/dist/assets/paired-platform-identity-BPPyfzDM.js +0 -1
- package/dist/assets/password-reset-page-B6LfA1PC.js +0 -1
- package/dist/assets/pdf-file-preview-BICwIHq3.js +0 -1
- package/dist/assets/plans-page-DDs81rnq.js +0 -1
- package/dist/assets/plugins-surface-B99o65kn.js +0 -1
- package/dist/assets/privacy-page-BUf0Wrj1.js +0 -1
- package/dist/assets/profile-card-BDi2Aa7O.js +0 -1
- package/dist/assets/quick-input-page-Lfrb-P2b.js +0 -1
- package/dist/assets/referral-modal--kTnJAWn.js +0 -1
- package/dist/assets/referral-modal-Bk5N1oeX.js +0 -1
- package/dist/assets/research-onboarding-route-DLbIS8Fh.js +0 -50
- package/dist/assets/routes-CJexmSc5.js +0 -1
- package/dist/assets/schedules-B_xQSD0K.js +0 -1
- package/dist/assets/schedules-page--mjVQq8F.js +0 -1
- package/dist/assets/security-redirect-page-CJJqdMen.js +0 -1
- package/dist/assets/select-assistant-screen-CWrLBgEC.js +0 -1
- package/dist/assets/settings-CF0G96O8.js +0 -3
- package/dist/assets/settings-D9aUsORh.js +0 -3
- package/dist/assets/settings-XqI4_biG.js +0 -3
- package/dist/assets/settings-ooHvceam.js +0 -3
- package/dist/assets/share-feedback-modal-BcKnGtHL.js +0 -2
- package/dist/assets/share-feedback-modal-DF6Y_Ddr.js +0 -1
- package/dist/assets/sounds-page-DTRSATq6.js +0 -1
- package/dist/assets/step-detail-header-q2pswG-E.js +0 -1
- package/dist/assets/subagent-detail-panel-BbfzXdX1.js +0 -1
- package/dist/assets/superpowers-page-Bew1AAic.js +0 -1
- package/dist/assets/system-events-page-CyvA59Rb.js +0 -1
- package/dist/assets/system-events-redirect-page-BlGZqWyR.js +0 -1
- package/dist/assets/tiptap-document-editor-9k3KCMGt.js +0 -288
- package/dist/assets/tool-detail-panel-BXJOMwEr.js +0 -1
- package/dist/assets/tool-detail-panel-D3kcmDuC.js +0 -16
- package/dist/assets/trait-cycle-row-Bj1z4vx9.js +0 -1
- package/dist/assets/upgrade-cancel-page-B8aHpJFd.js +0 -1
- package/dist/assets/use-app-delete-S-DdyUwn.js +0 -1
- package/dist/assets/use-assistant-identity-details-DT3Hy4pf.js +0 -1
- package/dist/assets/use-checkout-dismiss-refresh-DV7QRuSY.js +0 -1
- package/dist/assets/use-edge-swipe-back-BCvtCYFp.js +0 -1
- package/dist/assets/use-invite-link-dialog-DQEUmYHq.js +0 -1
- package/dist/assets/use-return-to-short-circuit-BVGVwuLm.js +0 -1
- package/dist/assets/use-side-list-room-DH5gDKs9.js +0 -1
- package/dist/assets/use-skill-detail-files-19-kefs2.js +0 -1
- package/dist/assets/use-supports-credentials-settings-Bq2yot1y.js +0 -1
- package/dist/assets/use-transcript-message-by-id-KYGOx3D6.js +0 -1
- package/dist/assets/use-truncated-blob-text-CDefp8f8.js +0 -1
- package/dist/assets/voice-page-Cuy1oc6q.js +0 -1
- package/dist/assets/welcome-screen-CtVGX2aV.js +0 -1
- package/dist/assets/workspace-page-DGL905Oc.css +0 -1
- package/dist/assets/workspace-page-DPWYRJjr.js +0 -1
- /package/dist/assets/{account-D4OPUTsf.js → account-BkxBMG9Z.js} +0 -0
- /package/dist/assets/{account-CWns4ijX.js → account-D5JdUO7K.js} +0 -0
- /package/dist/assets/{account-Bw0R0qmf.js → account-DYG79724.js} +0 -0
- /package/dist/assets/{account-DRmtnBwA.js → account-OIF2BHH7.js} +0 -0
- /package/dist/assets/{activation-yBddbC_l.js → activation-C91KPzrh.js} +0 -0
- /package/dist/assets/{activation-B2l-9khI.js → activation-Dd7eAIHs.js} +0 -0
- /package/dist/assets/{activation-DFSXprIj.js → activation-ReimSfhn.js} +0 -0
- /package/dist/assets/{activation-tasks-CtXF2Vl5.js → activation-tasks-D4dorV2v.js} +0 -0
- /package/dist/assets/{activation-tasks-BxNciLGi.js → activation-tasks-efxGWsFw.js} +0 -0
- /package/dist/assets/{activation-hs4bfeIr.js → activation-tasks-rViOqW7C.js} +0 -0
- /package/dist/assets/{activation-tasks-CkV5q5W-.js → activation-tasks-wtMwJ0EV.js} +0 -0
- /package/dist/assets/{activation-tasks-_AV6IbqR.js → activation-yoBQ36AY.js} +0 -0
- /package/dist/assets/{app-types-Cp5xNgLa.js → app-types-BoY_FOAH.js} +0 -0
- /package/dist/assets/{build.umd-xFoDWj7a.js → build.umd-B0ATW5UM.js} +0 -0
- /package/dist/assets/{contacts-BOyvHuKQ.js → contacts-BTmOfEVL.js} +0 -0
- /package/dist/assets/{contacts-D9eUSi1v.js → contacts-Cxz-DyYF.js} +0 -0
- /package/dist/assets/{contacts-DI6Vm6_I.js → contacts-DgC-8PHB.js} +0 -0
- /package/dist/assets/{contacts-CGbSO0P2.js → contacts-mijLgegD.js} +0 -0
- /package/dist/assets/{credential-requests-D99txrmf.js → credential-requests-CmFaXPwz.js} +0 -0
- /package/dist/assets/{credential-requests-qknzN9Mx.js → credential-requests-D3J3i5oa.js} +0 -0
- /package/dist/assets/{credential-requests-DK4G8G2K.js → credential-requests-gl4lfjL4.js} +0 -0
- /package/dist/assets/{credential-requests-Dzg6decX.js → credential-requests-h908NRpv.js} +0 -0
- /package/dist/assets/{definitions-CK0CSdwt.js → definitions-BUCExH-9.js} +0 -0
- /package/dist/assets/{definitions-Dj7uajgZ.js → definitions-DpZNNWA7.js} +0 -0
- /package/dist/assets/{diff-rows-D2cn4P1P.js → diff-rows-BqSnRbXL.js} +0 -0
- /package/dist/assets/{format-countdown-DY9yAH8I.js → format-countdown-l7vj-IPm.js} +0 -0
- /package/dist/assets/{format-file-size-Bcra_NZ3.js → format-file-size-zh148z6P.js} +0 -0
- /package/dist/assets/{home-BB2e5zTF.js → home-BI-fzzA0.js} +0 -0
- /package/dist/assets/{home-BdhZ2Mul.js → home-BZGFmZ0D.js} +0 -0
- /package/dist/assets/{home-Dt1BT4nR.js → home-CM9kRnjx.js} +0 -0
- /package/dist/assets/{home-f_uK9LuK.js → home-D4Knhe9B.js} +0 -0
- /package/dist/assets/{library-C4DGNfcw.js → library-CFGvGWZt.js} +0 -0
- /package/dist/assets/{library-k7fqLDBW.js → library-CmSFUt9r.js} +0 -0
- /package/dist/assets/{library-Oxba_f5f.js → library-D26ezl8B.js} +0 -0
- /package/dist/assets/{library-C5DNj-EA.js → library-Dv9w5D8Z.js} +0 -0
- /package/dist/assets/{list-detail-navigation-ChFNCRwF.js → list-detail-navigation-BwyoNgJy.js} +0 -0
- /package/dist/assets/{logs-CD6c3Qbe.js → logs-5jFWrQRx.js} +0 -0
- /package/dist/assets/{logs-C6ZoCtQZ.js → logs-BJTGRcSn.js} +0 -0
- /package/dist/assets/{logs-KivR04Gt.js → logs-BPrpYBp7.js} +0 -0
- /package/dist/assets/{logs-B40JNDv6.js → logs-BpX8Zuzb.js} +0 -0
- /package/dist/assets/{machine-sizes-CMoW5pTp.js → machine-sizes-srbag24Q.js} +0 -0
- /package/dist/assets/{onboarding-C8F6iiWB.js → onboarding-B9_JitSg.js} +0 -0
- /package/dist/assets/{onboarding-BgghY4z9.js → onboarding-BrS1fcVE.js} +0 -0
- /package/dist/assets/{onboarding-Cu2BL5Gf.js → onboarding-Cx2yoeE5.js} +0 -0
- /package/dist/assets/{onboarding-DUMoGvPA.js → onboarding-cBGAfB74.js} +0 -0
- /package/dist/assets/{onboarding-step-layout-Dno4htl_.js → onboarding-step-layout-BsqZaEHR.js} +0 -0
- /package/dist/assets/{pdf-BBv0SSch.js → pdf-_tTrkaWt.js} +0 -0
- /package/dist/assets/{plugin-attribution-CafUjnE5.js → plugin-attribution-RBBRvghI.js} +0 -0
- /package/dist/assets/{radio-card-nav-D8mG9zPL.js → radio-card-nav-Br8358Zh.js} +0 -0
- /package/dist/assets/{remote-web-zZ_CvLha.js → remote-web-42kFkA33.js} +0 -0
- /package/dist/assets/{remote-web-Z2ZrpLiX.js → remote-web-CFPdQIeJ.js} +0 -0
- /package/dist/assets/{remote-web-GfnsuSpi.js → remote-web-DFX945w2.js} +0 -0
- /package/dist/assets/{remote-web-k77r5FEH.js → remote-web-DkzrBzGi.js} +0 -0
- /package/dist/assets/{schedules-DftKmK4y.js → schedules-Bk7XGnqS.js} +0 -0
- /package/dist/assets/{schedules-D8r5WhAS.js → schedules-CGU7CKaM.js} +0 -0
- /package/dist/assets/{schedules-Bv4k8rLW.js → schedules-J687h0Fh.js} +0 -0
- /package/dist/assets/{schedules-CcyISAUi.js → schedules-JnprnWDo.js} +0 -0
- /package/dist/assets/{signup-onboarding-handoff-BIo7lFvP.js → signup-onboarding-handoff-4Gqmsxpv.js} +0 -0
- /package/dist/assets/{status-badge-pill-qGQ5gRiz.js → status-badge-pill-TVPV4D5e.js} +0 -0
- /package/dist/assets/{terminal-BXOFqnbv.js → terminal-BV6xg9ZA.js} +0 -0
- /package/dist/assets/{terminal-CbK5xKQc.js → terminal-BjOF3LBT.js} +0 -0
- /package/dist/assets/{terminal-BXlYUd_i.js → terminal-CYHsl1AH.js} +0 -0
- /package/dist/assets/{terminal-BurYUC3M.js → terminal-Cxm0NKaj.js} +0 -0
- /package/dist/assets/{usage-window-BzmtusAQ.js → usage-window-DJWFtBw1.js} +0 -0
- /package/dist/assets/{use-debounced-value-DS3f___V.js → use-debounced-value-CiNn3pzA.js} +0 -0
- /package/dist/assets/{xterm-DTHu4t4D.js → xterm-Pyzkt_-B.js} +0 -0
- /package/dist/assets/{xterm-addon-fit-DVhKDxY7.js → xterm-addon-fit-HaY_WHvm.js} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={build:`构建`,taglineMacOS:`您的 Mac AI 助手`,taglineWindows:`您的 Windows PC AI 助手`,version:`版本`},t={connecting:`正在连接到您的助手…`,logIn:`登录`,logOut:`注销`},n={cancel:`取消`,credentialSaved:`凭据已保存。`,description:`添加 API 密钥或令牌,以便工具和集成可以使用它。`,fieldLabel:`字段`,fieldPlaceholder:`例如 api_token`,labelOptional:`标签(可选)`,labelPlaceholder:`例如 GitHub 个人访问令牌`,save:`保存`,saveFailed:`保存凭据失败`,serviceLabel:`服务`,servicePlaceholder:`例如 github`,title:`添加凭据`,valueLabel:`值`,valuePlaceholder:`输入秘密值`},r={amount:`金额`,cancel:`取消`,configureAutoReload:`配置自动充值`,continue:`继续`,description:`您将被重定向到 Stripe 完成支付。`,title:`添加点数`},i={openApp:`打开应用`,pin:`置顶`,previewTitle:`{name} 预览`,unpin:`取消置顶`},a={close:`关闭`,copyLink:`复制链接`,deploy:`部署`,deployToVercel:`部署到 Vercel`,deployToVercelSubtitle:`发布为静态页面`,deployedCopyLinkAria:`已部署到 Vercel,复制链接`,deployedCopyLinkTooltip:`已部署:复制链接`,deployedToVercel:`已部署到 Vercel`,deploying:`正在部署…`,edit:`编辑`,expandApp:`展开应用`,fullscreen:`全屏`,openApp:`打开应用`,redeploy:`重新部署`,redeploySubtitle:`发布当前版本`,share:`分享`,shareAndDeploy:`分享并部署`,shareExportSubtitle:`导出为 .vellum 文件`,sharing:`正在分享…`},o={exitFullscreen:`退出全屏`},s={failed:`连接助手失败。`},c={updateFailed:`无法更新“{label}”。您的更改已恢复。`},l={accent:`强调色`,accentAutomatic:`自动`,accentPickerLabel:`强调色`,accentReset:`重置`,body:`身体`,color:`颜色`,eyes:`眼睛`,keepUploadedDescription:`保存角色会替换它`,keepUploadedLabel:`保留您上传的图片`,loadError:`无法加载头像组件。请确保您的助手正在运行。`,name:`名称`,next:`下一个 {label}`,previous:`上一个 {label}`,randomize:`随机化`,save:`保存`,saving:`正在保存…`,title:`更新头像`,uploadImage:`上传图片`,uploadedAlt:`已上传头像`,useCharacterDescription:`从我们内置的头像中选择`,useCharacterLabel:`改用角色`},u={bySigner:`由 {name}`,cancel:`取消`,capabilities:`功能`,createdBy:`创建者`,hideWarnings:`隐藏警告 ({count})`,install:`安装`,installAnyway:`仍然安装`,loading:`正在加载...`,showWarnings:`显示警告 ({count})`,size:`大小`},d={body:`您的助手通过您自己配置的提供商进行语音交互。请在<settingsLink>模型与服务</settingsLink>中设置其语音。`},f={verifyTitle:`最后一步:确认您的身份`,verifyAction:`验证我`,verifyBody:`您的助手还不知道哪个 {channel} 账号是您的,所以暂时不会回复您。在聊天中说“在 {channel} 上验证我”即可完成。`,verifyActionBody:`您的助手还不知道哪个 {channel} 账号是您的,所以暂时不会回复您。它会在聊天中陪您完成。`,verifiedTitle:`身份已验证`,verifiedBody:`您的助手已识别您的 {channel} 账号,会回复您。一切就绪。`},p={alt:`助手头像`,fallbackLetter:`V`},m={alt:`助手头像`},h={actionsTitle:`{title} 操作`},g={ariaLabel:`命令面板`,clear:`清除`,clearSearch:`清除搜索`,closeSearch:`关闭搜索`,noResults:`无结果`,placeholder:`搜索对话、记忆…`,searchAriaLabel:`搜索`,searching:`正在搜索…`},_={announcement:{body:`现在,无论你在桌面上的哪个位置,我都能陪你一起工作。`,cards:{context:{body:`让我看到你所看到的内容,结合情境为你提供帮助。`,title:`展示并讲解`},flow:{body:`无需离开当前应用,随时都能找到我。`,title:`保持专注和节奏`},together:{body:`和我交谈、指点,一起推进工作。`,title:`并肩协作`}},close:`关闭`,previewLabel:`你的桌面助手`,previewAssistantName:`Quill`,start:`出发吧`,title:`在你工作的地方与我相遇`},ariaLabel:`介绍您的助手`,back:`上一步`,call:{click:`点击`,line:`正在聆听`,shortcut:`快捷键`},close:`关闭`,done:`知道了`,draw:{body:`指出屏幕上的任何内容`,title:`标注`},idle:{body:`把光标移到我上面,我就出来。`,title:`嘿,是我`,titleNamed:`嘿,我是 {name}`},key:{scolded:`不是这个,是键盘上的那个键`,title:`让我更方便地和你交谈`},meet:{body:`我会在您的桌面上,即使 Vellum 不可见。`},mute:{body:`点击麦克风把自己静音,点击喇叭把我静音`,title:`静音`},next:`下一步`,share:{body:`把标签页、窗口或整个屏幕分享给我`,title:`分享您的屏幕`},talk:{body:`点击我就能开始对话。`,gesture:`或者连按两次这个键:`,greeted:`成功了!就这么简单。`,title:`和我说话`},try:{body:`跟我打个招呼,我会说出声来回答。`,how:`点击我,或连按两次这个键`,title:`试一试`},permission:{microphoneAction:`启用麦克风`,microphoneSettingsHint:`在系统设置中打开 Vellum 的麦克风开关,然后返回这里。`,microphonePromptHint:`macOS 会请求你允许使用麦克风。`,microphoneBody:`允许我使用你的麦克风进行语音对话。`,shortcutBody:`允许我在你使用其他应用时识别快捷键。`,screenAction:`启用屏幕共享`,screenBody:`设置屏幕共享。使用时再选择要共享的内容。`,openSettings:`打开设置`,settingsHint:`在系统设置中允许访问,然后返回这里。`,restricted:`你的 Mac 限制了此权限。你可以跳过此步骤。`,error:`无法检查访问权限。请重试。`,waiting:`正在检查访问权限…`,skip:`暂时跳过`}},v={allow:`允许`,confirm:`确认`,credentialLabel:`凭据`,defaultSuffix:`(默认)`,deny:`拒绝`,dismiss:`关闭`,enter:`输入`,microphoneFallback:`麦克风 {index}`,microphonePermissionHint:`允许访问麦克风后即可按名称查看每个麦克风。`,microphoneTitle:`麦克风`,needsCredentials:`需要凭据`,needsCredentialsFor:`需要 {service} 的凭据`,needsOkCount:`{count, plural, other {有 # 项需要你的同意}}`,notNow:`暂不`,openApp:`打开 Vellum`,pendingBadge:`{count, plural, other {有 # 项需要你的同意}}`,previewVoice:`试听 {voice}`,review:`查看`,savedMicrophone:`已保存的麦克风`,savedMicrophoneNotConnected:`已保存的麦克风(未连接)`,stopPreview:`停止试听`,surfaceFallback:`有内容要给你看`,systemDefault:`系统默认`,voiceTitle:`声音`},y={calling:`正在呼叫…`,callingNamed:`正在呼叫 {name}…`,captureKind:`来源类型`,captureNothing:`没有可显示的内容`,capturePicker:`教学来源`,captureScreen:`屏幕 {n}`,captureScreens:`屏幕`,captureTabs:`Chrome 标签页`,captureWindows:`窗口`,draw:`绘制`,clearMarks:`清除标记`,drawTools:`绘图工具`,drawFreehand:`自由绘制`,drawLine:`直线`,drawBox:`方框`,drawCircle:`圆形`,endSession:`结束会话`,muteAssistant:`静音助手`,muteAssistantNamed:`静音 {name}`,muteMicrophone:`静音麦克风`,notNow:`暂不`,offerCopy:`复制`,offerDiscard:`丢弃`,offerHeard:`{app} 已粘贴了那段`,offerNowhere:`没有地方可以放`,offerPasteFailed:`无法粘贴这些内容`,offerQuit:`退出 {app}`,offerUse:`使用 Vellum 的版本`,offerVersion:`Vellum 听到的是`,openVellum:`打开 Vellum`,share:`共享`,sharePicker:`共享来源`,showSummary:`显示摘要`,stopTeaching:`停止教学`,summarizing:`正在摘要`,talk:`交谈`,teach:`教学`,unmuteAssistant:`取消助手静音`,unmuteAssistantNamed:`取消 {name} 静音`,unmuteMicrophone:`取消麦克风静音`,dictating:`正在聆听`,dictatingTranscribing:`正在思考`,chooseMicrophone:`选择麦克风`,workCount:`{count, plural, =0 {没有正在进行的任务} other {# 项任务进行中}}`,workDone:`已完成`,workStopped:`已停止`,workMore:`还有 {count} 项`,workWaiting:`{count, plural, other {# 项等待你的回复}}`,workWaitingStep:`等待你的回复`,captureScreenRecordingOff:`屏幕录制已关闭`,captureTurnOnScreenRecording:`开启`},b={sharingScreen:`正在分享你的屏幕`,sharingScreenNamed:`正在与 {name} 分享你的屏幕`,sharingWindow:`正在分享一个窗口`,sharingWindowNamed:`正在与 {name} 分享一个窗口`,teaching:`正在教学`,teachingNamed:`正在教 {name}`},x={copiedAria:`已复制`,copyFailed:`无法复制文件内容。`,copyFileContentsAria:`复制文件内容`,downloadFileAria:`下载文件`,editFileAria:`编辑文件`},S={untitled:`无标题`},C={copied:`已复制`,copyFailed:`无法复制到剪贴板。`},w={cancel:`取消`,create:`创建`,description:`配置一个新助手。它将在后台启动。`,namePlaceholder:`助手名称(可选)`,title:`新助手`,toastSuccess:`新助手已创建。`},T={ariaLabel:`日期范围`,lastDays:`{days, plural, other {过去 # 天}}`},E={delete:`删除`,deleting:`正在删除…`,message:`"{name}" 将被永久删除。`,title:`删除应用`},D={confirmLabel:`让您的助手处理`,confirmLabelNamed:`让 {assistantName} 处理`,message:`"{appName}" 使用后端服务,这些服务无法在静态 Vercel 页面上运行。您的助手可以使用无服务器函数正确部署它。`,messageNamed:`"{appName}" 使用后端服务,这些服务无法在静态 Vercel 页面上运行。{assistantName} 可以使用无服务器函数正确部署它。`,title:`此应用需要完整部署`},O={appExported:`应用已导出`,deployFailed:`部署失败`,deployedToVercel:`已部署到 Vercel`,open:`打开`,shareFailed:`分享应用失败`},k={tooltip:`停止`},A={copy:`复制`,expandedValue:`展开的值`,showLess:`显示更少`,showMore:`显示更多`},j={stopRecording:`停止录音`},M={ariaLabel:`加入 Vellum Discord 社区`,ctaLong:`加入 Discord`,ctaShort:`加入`,subtitleLong:`与团队交流 - 分享反馈、请求功能、更快获得答案`,subtitleShort:`分享反馈、请求功能、更快获得答案`,title:`加入我们的社区!`},N={instructions:`粘贴您从“机器人”页面复制的机器人令牌。`,verificationNoticeTitle:`请忽略“验证您的应用”页面`,verificationNoticeBody:`Discord 对每个新应用都会显示它。只有超过 100 个服务器时才有意义。`,botTokenLabel:`机器人令牌`,save:`连接`,saving:`正在连接...`,saved:`已连接。接下来,将机器人添加到服务器。`,botTokenPlaceholder:`MTk4NjIyNDgzNzAyNDU0...`},P={inPortal:`在 Discord 开发者门户中:`,stepCreateApp:`点击<strong>New Application</strong>,并用您助手的名字命名应用:`,copyName:`复制名称`,copied:`已复制!`,stepAppIcon:`可选:下载头像,然后在<strong>一般信息</strong>页面上传为应用图标。`,stepResetToken:`前往应用菜单中的<strong>机器人</strong>页面,点击<strong>重置令牌</strong>并立即复制令牌。Discord 只显示一次。`,stepIntentsOff:`在同一页面,保持三个<strong>特权网关意图</strong>开关全部关闭。您的助手不需要它们:它只读取私信和提及它的消息。`,openPortal:`打开 Discord 门户`,continue:`我已拥有令牌`},F={connectedTitle:`机器人已添加`,connectedBody:`令牌已保存,机器人已加入您的服务器。Discord 这边已完成。`},I={instructions:`机器人加入服务器前什么都看不到、也无法回复。打开链接,选择您的服务器并批准。`,openInvite:`添加到服务器`,confirmJoined:`我已添加机器人`,noAppId:`请先连接机器人令牌,然后返回此处将其添加到服务器。`},L={channelLabel:`Discord`,stepCreate:`创建应用`,stepConnect:`连接`,stepInvite:`添加到服务器`,stepFinish:`完成`,copyError:`无法复制名称。请改为在 Discord 中输入。`},R={acknowledge:`确认`,acknowledging:`正在确认...`,cleanupBody:`提示您的助手释放空间,以免空间耗尽并进入锁定状态。`,cleanupTitle:`清理模式已激活`,criticalBody:`如果存储空间耗尽,您的助手将进入锁定状态。`,criticalModalDescription:`如果存储空间耗尽,您的助手将进入锁定状态。您应该提示您的助手释放空间或增加存储空间。`,criticalTitle:`存储空间严重不足`,dontShowAgain:`不再显示`,manageStorage:`管理存储`,review:`查看`,upgrade:`升级`,warningBody:`释放空间以避免中断。`,warningBodyWithUpgrade:`释放空间或增加更多存储空间以避免中断。`,warningTitle:`您的存储空间即将耗尽`},z={failed:`下载失败`,revealMac:`在访达中显示`,revealWindows:`在文件资源管理器中显示`,saved:`已保存到“下载”`,started:`下载已开始`,startedDescription:`请在浏览器的下载内容中查找 {filename}。`},B={discard:`放弃`,save:`保存`,saving:`正在保存…`},V={formatted:`格式化`,modeAria:`如何显示此文件`,source:`源码`},H={copyAriaLabel:`复制邀请链接`,createFailed:`创建邀请链接失败。请确保您的助手已启用 A2A。`,creating:`正在创建邀请链接…`,done:`完成`,shareHint:`与另一位助手所有者分享此链接以建立连接。`,title:`分享连接链接`,tryAgain:`重试`},U={ariaLabel:`Vellum 在 GitHub 上开源`,ctaAriaLabel:`在 GitHub 上为 Vellum 点赞`,ctaLabel:`为我们点赞`,subtitle:`在 GitHub 上为我们点赞或贡献代码`,title:`Vellum 是开源的`},W={loadError:`此部分无法加载。请重新加载页面重试。`},G={goToConversation:`前往对话`},K={ariaLabelMacOS:`下载 macOS 应用`,ariaLabelWindows:`下载 Windows 应用`,ctaAriaLabelMacOS:`下载 macOS 应用`,ctaAriaLabelWindows:`下载 Windows 应用`,ctaLabel:`下载`,subtitle:`电脑使用 · 终端访问 · 原生自动化`,titleMacOS:`获取 macOS 应用`,titleWindows:`获取 Windows 应用`},q={bannerAria:`下载 {appName} 应用`,bannerAriaGeneric:`下载 Vellum 移动应用`,download:`下载`,downloadAppAria:`下载 {appName} 应用`,downloadAppAriaGeneric:`下载 Vellum 移动应用`,subtitle:`推送通知 · 生物识别登录 · 触觉反馈`,title:`获取 {appName} 应用`,titleGeneric:`获取 Vellum 应用`},J={backToAssistant:`返回您的助手`,badge:`错误 404`,body:`您要查找的页面不存在或可能已移动。`,goBack:`返回`,title:`页面未找到`},Y={dismissAria:`关闭`},X={back:`返回`},Z={cancel:`取消`,logIn:`登录`},Q={assistantHandleIdleEmpty:`您的助手尚未设置句柄,请设置一个以便提及。`,assistantHandleLabel:`助手句柄`,assistantHandleUpdated:`助手句柄已更新。`,available:`可用`,availableHelper:`可用。`,checkAvailabilityFailed:`无法检查可用性。`,checkingAvailability:`正在检查可用性…`,chooseDifferentHandle:`请选择一个不同的句柄。`,emailLabel:`电子邮件`,handleHelper:`小写字母、数字、连字符和下划线。3–30个字符。`,handleLocked:`您的助手句柄已锁定,因为它被用作其电子邮件子域名。要更改它,请先<releaseLink>释放子域名</releaseLink>。`,loading:`正在加载您的个人资料…`,notAvailable:`不可用`,profileUpdated:`个人资料已更新。`,save:`保存`,saved:`已保存`,saving:`正在保存…`,subtitle:`管理您的账户详情和偏好设置。`,title:`个人资料`,userHandleIdleAutoGenerated:`您的句柄是在注册时自动生成的 - 请选择一个您喜欢的。`,userHandleLabel:`用户句柄`},$={created:`个人资料“{name}”已创建`},ee={logoAlt:`Vellum`,placeholder:`向 Vellum 提问...`,send:`发送消息`},te={copied:`已复制!`,copyError:`无法复制推荐链接。`,copySuccess:`已复制到剪贴板!`,creditsEarned:`已赚取积分`,friendsReferred:`已推荐好友`,gatedTooltip:`订阅或购买积分以开始赚取!`,loadError:`加载推荐信息失败。`,loading:`加载中...`,shareLink:`分享链接`,subtitleDefault:`与好友分享 Vellum,每次注册均可赚取积分。`,subtitleWithAmounts:`与好友分享 Vellum - 他们注册后,您和好友将各获得 {creditAmount} 积分,总计最高可达 {earningCap}。`},ne={title:`赚取免费积分`},re={confirm:`移除`,messageOrigin:`这不会影响 {assistantName} 或让您在那里退出登录。它只会忘记此设备上的条目。您可以随时再次添加。`,messagePaired:`这不会影响 {assistantName} 在其主机上的状态。它只会忘记此设备上的配对。您可以随时使用 vellum connect import 再次配对。`,messagePlatform:`这不会删除 {assistantName}。它只会将其从此设备中移除。登录后它将再次可用。`,title:`从该设备移除?`},ie={body:`您的助手正在努力工作,并已达到其当前资源限制。请升级以确保其平稳运行。`,bodyNoUpgrade:`您的助手正在努力工作,并已达到其当前资源限制。`,dontShowAgain:`不再显示`,title:`您的助手需要更多算力`,titleNamed:`{assistantName} 需要更多算力`,upgrade:`升级`},ae={confirmLabel:`停用`,message:`这将永久停用此助手及其所有数据。您需要重新完成引导流程才能创建新助手。此操作无法撤销。`,title:`停用助手`},oe={loadingAria:`正在加载`},se={loadingAria:`正在加载`},ce={unnamedAssistant:`该助手`},le={chunkFailBody:`此部分无法加载。可能是网络故障或版本过旧。请重新加载页面重试。`,reload:`重新加载`},ue={confirmMessage:`更新到版本 {version}?更新期间助手将暂时不可用。`,confirmTitle:`更新助手运行时`,later:`稍后`,title:`有新的助手版本可用:{version}`,toastComplete:`更新完成。您的助手运行正常。`,toastFailed:`未能触发更新。请重试。`,update:`更新`},de={ariaLabel:`{name} 操作`},fe={reset:`重置`,save:`保存`},pe={label:`分享连接链接`},me={aboutDiagnosticsAria:`关于诊断信息`,addFiles:`添加文件`,adminOnlyHint:`仅限管理员 - 在本地构建诊断存档并下载,而不是提交反馈或通知 Slack。`,attachments:`附件`,bugTip:`提示:在我们的 <discordLink>Discord 社区</discordLink> 发布问题可获得更快的支持`,cancel:`取消`,category:`类别`,closeAria:`关闭`,diagnosticsTooltip:`诊断信息包括浏览器上下文、助手日志和时间戳,绝不包含密码或凭据。`,downloadDiagnostics:`直接下载诊断信息`,downloadDiagnosticsAria:`直接下载诊断信息`,downloadDiagnosticsButton:`下载诊断信息`,dropFiles:`拖放文件以附加…`,email:`电子邮件`,featureTip:`提示:在我们的 <roadmapLink>公开路线图</roadmapLink> 上为功能投票`,includeConversation:`包含最近的对话`,includeConversationAria:`包含最近的对话`,includeDiagnostics:`包含诊断信息`,includeDiagnosticsAria:`包含浏览器诊断信息`,messageLabelBug:`哪里出错了?`,messageLabelFeature:`描述您的想法`,messageLabelOther:`您有什么想法?`,messagePlaceholderBug:`您预期会发生什么,实际发生了什么?`,messagePlaceholderFeature:`这将为您解决什么问题?`,messagePlaceholderOther:`分享您的想法...`,preparingDiagnostics:`正在准备诊断信息…`,reasonBugReport:`错误报告`,reasonFeatureRequest:`功能请求`,reasonOther:`其他`,removeAttachmentAria:`移除 {name}`,sendingFeedback:`正在发送反馈…`,submit:`提交`,timeRange:`时间范围`,timeRangeAllTime:`所有时间`,timeRangeAria:`诊断信息时间范围`,timeRangePast24Hours:`过去 24 小时`,timeRangePastHour:`过去一小时`,title:`分享反馈`},he={loadingAria:`正在加载反馈表单`},ge={close:`关闭`,message:`无法加载反馈表单。`,retry:`重试`},_e={closeAria:`关闭`,closeSidebarAria:`关闭侧边栏`,openSidebarAria:`打开侧边栏`},ve={backFrom:`从 {title} 返回`,backToMenu:`返回 {title} 菜单`,navigationAria:`{title} 导航`},ye={ariaLabel:`侧边栏导航`},be={label:`从本次对话中学习`},xe={message:`从该助手移除“{name}”?`,remove:`移除`,title:`移除技能`},Se={approvalNotice:`如果 Slack 显示“请求批准”而不是<strong>安装</strong>,则工作区管理员需要先批准该应用。`,createdApp:`我已创建应用`,inSlack:`在 Slack 中:`,stepManifest:`在<strong>或以您自己的方式开始</strong>下,选择<strong>从清单</strong>,然后选择<strong>继续</strong>`,stepPaste:`选择您的工作区并粘贴清单`,stepReview:`审查权限,然后点击<strong>创建并安装</strong>`},Ce={appName:`应用名称`,appNamePlaceholder:`我的助手`,copied:`已复制!`,copyManifest:`复制清单`,description:`描述(可选)`,descriptionHelper:`显示在应用的 Slack 个人资料中。`,descriptionPlaceholder:`此助手提供哪些帮助`,intro:`命名您的 Slack 应用并复制其清单。所有权限和设置均已预配置。`,next:`下一步`},we={body:`在新标签页中打开 Slack 以创建应用,然后返回此处查看后续步骤。`,copied:`已复制!`,copyManifest:`复制清单`,manifestCopiedNotice:`您已在此处复制此应用的清单。如果您在此之后复制了其他内容,请在粘贴前再次复制。`,manifestNotCopiedNotice:`您尚未复制此应用的清单。Slack 的创建应用模态框没有其他方式获取它,因此请在粘贴前复制它。`,next:`下一步`,openSlack:`打开 Slack`},Te={appTokenLabel:`应用令牌`,botTokenLabel:`机器人令牌`,connectSlack:`连接 Slack`,connecting:`正在连接…`,credentialsSaved:`凭据已保存`,instructions:`在 Slack 的确认屏幕上,展开 <credentials>您的应用凭据</credentials> 并复制两个 Token。`,skipNotice:`该屏幕还提供命令行演练和 <download>下载应用文件</download> 按钮。请跳过这两项。它们会设置一个独立的本地应用,而此助手只需要这两个 Token。`,savedBody:`两个 Token都已保存。Slack 这边已完成。`},Ee={channelLabel:`Slack`,copyError:`无法复制清单。请在继续之前重新复制。`,stepConnect:`连接`,stepCreate:`创建`,stepName:`名称`,stepOpen:`打开`},De={total:`总计:{value}`},Oe={reloadApp:`重新加载应用`},ke={reconnecting:`正在重新连接到你的助手…`,dismiss:`忽略`,goToDoctor:`前往诊断`,resumeAssistant:`恢复助手`,retryNow:`立即重试`,wakeUp:`唤醒`},Ae={allLanguages:`所有语言`,featured:`精选`,languagesAriaLabel:`语言`,noMatch:`无匹配语言。`,searchAriaLabel:`搜索语言`,searchPlaceholder:`搜索语言`,suggested:`建议`},je={description:`从您下次语音输入开始生效。`},Me={apiKeyLabel:`API 密钥`,apiKeyPlaceholderReplace:`•••••••• (输入新密钥以替换)`,providerAriaLabel:`语音转文本提供商`,providerLabel:`提供商`,saveFailed:`保存语音转文本设置失败`,saveSuccess:`语音转文本设置已保存`,spokenLanguage:`口语语言`,spokenLanguageApplies:`从您下次语音输入开始生效。`,vellumTranscription:`转录通过您的 Vellum 账户运行。`,windowsNativeDisplayName:`Windows 本机听写`,windowsNativeSetupWarning:`需要为您的 Windows 显示语言启用基本语音识别:打开“设置”>“时间和语言”>“语言和区域”,选择显示语言旁边的三个点,选择“语言选项”,然后在“语言功能”下下载“基本语音识别”。`,windowsNativeSubtitle:`Windows 设备上的语音识别,通过 Windows 助手在本地运行。可离线工作,无需 API 密钥。`},Ne={ariaLabel:`子代理 {subagentId}`},Pe={accessibilityDescription:`允许您的助手代表您点击、输入和控制应用程序。`,accessibilityLabel:`辅助功能`,checking:`正在检查权限...`,dockIcon:`程序坞图标`,microphoneDescription:`允许您的助手捕获音频用于语音输入和录音。`,microphoneLabel:`麦克风`,notificationBadgesDescription:`允许您的助手在 {surface} 上显示未读对话计数。`,notificationBadgesLabel:`通知标记`,notificationsDescription:`允许您的助手发送 macOS 提醒,用于审批、消息和任务更新。`,notificationsLabel:`通知`,notificationsWindowsDescription:`允许您的助手显示 Windows 通知,用于审批、消息和任务更新。`,screenDescription:`允许您的助手在计算机使用任务期间捕获屏幕上下文。`,screenLabel:`屏幕录制`,speechRecognitionDescription:`允许您的助手在设备上将您的语音转录为文本。`,speechRecognitionLabel:`语音识别`,speechRecognitionWindowsDescription:`允许您的助手使用 Windows 语音识别将您的语音转录为文本。`,taskbarIcon:`任务栏图标`,title:`系统权限`},Fe={botTokenLabel:`机器人令牌`,connectTelegram:`连接 Telegram`,instructions:`粘贴 BotFather 回复中的令牌。它是 <tokenLine>Use this token to access the HTTP API</tokenLine> 之后的整行内容。`,saving:`正在保存…`,savedTitle:`令牌已保存`,savedBody:`机器人令牌已保存。Telegram 这边已完成。`},Ie={copied:`已复制!`,copyName:`复制名称`,displayNameHint:`对于显示名称,<strong>{suggestedName}</strong> 可使此机器人与您的助手匹配。用户名是独立的,不必匹配。`,chatScopeNotice:`支持私聊和群组。在群组中,助手会在被提及或有人回复它时作出回应。不支持广播频道。`,inBotFather:`在 BotFather 中:`,intro:`Telegram 机器人通过向 <strong>@BotFather</strong> 发送消息来创建。打开它,按照提示操作,然后带着它给您的令牌回来。`,next:`下一步`,openBotFather:`打开 BotFather`,stepDisplayName:`给它一个显示名称,这是人们在聊天中看到的名称`,stepSendNewBot:`发送 <strong>/newbot</strong>`,stepTokenReply:`BotFather 会在 <strong>Use this token to access the HTTP API</strong> 之后回复一个 Token`,stepUsername:`给它一个用户名,该用户名必须是唯一的,并以 <strong>bot</strong> 结尾`},Le={channelLabel:`Telegram`,copyError:`无法复制名称。请改为在 BotFather 中输入。`,stepConnect:`连接`,stepCreate:`创建机器人`},Re={shopifyLabel:`店铺域名`,shopifyPlaceholder:`your-store.myshopify.com`},ze={recoveryModeBanner:`恢复模式已激活:此会话已连接到调试终端。`},Be={accentFill:`强调色填充`,activeBorder:`活动边框`,activeSurface:`活动表面`,assistantBubble:`助手回复,在页面表面全宽渲染。`,buttonDisabled:`禁用`,buttonPrimary:`主要`,buttonSecondary:`次要`,chatAssistant1:`完成。摘要已准备就绪。收入稳步增长,上季度标记的两个风险已解决,我已将值得展示的三张图表提取到单独的页面中。`,chatAssistant2:`已安排在上午9点。我将包含图表和一个段落版本,供在手机上快速浏览的人查看。`,chatUser1:`你能在明天的会议前总结一下季度报告吗?`,chatUser2:`太好了。早上发给团队。`,composerPlaceholder:`给你的助手发消息`,faintText:`淡文本 - 斜坡上最后一个清晰可见的步骤。`,inputFilled:`已输入到字段中的文本。`,inputPlaceholder:`空字段中的占位符`,newConversation:`新对话`,overlaySurface:`叠加表面`,primaryText:`主要文本 - 应用的主要阅读表面。`,quietText:`安静文本 - 元数据和时间戳。`,raisedCard:`凸起卡片`,raisedCardBody:`凸起表面位于面板和页面背景之上。`,samplerTitle:`主题样本`,secondaryText:`次要文本 - 辅助文案和描述。`,sectionAccent:`强调色`,sectionButtons:`按钮`,sectionInputs:`输入`,sectionMessages:`消息`,sectionSurfaces:`表面和边框`,sectionText:`文本`,send:`发送`,subtleDivider:`此线上方的细分隔线。`,tertiaryText:`三级文本 - 字幕、标签和占位符。`,userBubble:`用户在其气泡中的消息。`},Ve={dark:`深色`,label:`主题`,light:`浅色`,system:`系统`,velvet:`丝绒`},He={apiKey:`API 密钥`,apiKeyRequired:`测试前请为此提供商保存 API 密钥。`,chooseFromCatalog:`从目录中选择`,customVoiceIdAriaLabel:`自定义语音 ID`,noManagedVoices:`目前没有可用的托管语音。`,provider:`提供商`,providerAriaLabel:`TTS 提供商`,saveFailed:`保存文本转语音设置失败`,saved:`文本转语音设置已保存`,test:`测试`,testing:`正在测试…`,voice:`语音`,voiceId:`语音 ID`,voiceIdPlaceholder:`输入语音 ID`},Ue={available:`有可用更新。正在开始下载…`,closeAriaLabel:`关闭`,downloading:`正在下载更新…`,ready:`Vellum {version} 已准备就绪。`,restartToInstall:`重启以安装`,versionFallback:`更新`},We={deleteFailed:`删除应用失败`},Ge={copyFailed:`无法复制链接。请在 {url} 打开。`,linkCopied:`链接已复制`,open:`打开`},Ke={setupPrompt:{slack:`我想在 Slack 上联系你。我们来设置一下。`,telegram:`我想在 Telegram 上联系你。我们来设置一下。`,discord:`我想在 Discord 上联系你。我们来设置一下。`,email:`我想给你发邮件。我们来设置你的电子邮件地址。`,phone:`我想能够给你打电话。我们来设置你的电话号码。`},finishPrompt:{slack:`Slack 已设置但无法工作。你能完成它吗?`,telegram:`Telegram 已设置但无法工作。你能完成它吗?`,discord:`Discord 已设置但无法工作。你能完成它吗?`,email:`我的电子邮件地址已设置但无法工作。你能完成它吗?`,phone:`我的电话号码已设置但无法工作。你能完成它吗?`}},qe={addFailed:`收藏消息失败。`,removeFailed:`移除收藏失败。`},Je={exchangeFailed:`请检查粘贴的密钥并重试。`,failed:`连接 Claude 失败。请重试。`,notStarted:`请先启动连接 Claude 流程。`,pasteEmpty:`请粘贴 Claude 页面上显示的代码。`,popupBlocked:`您的浏览器阻止了登录标签页。请允许此站点的弹窗,然后再次点击连接。`,startFailed:`无法启动连接 Claude。请重试。`,timedOut:`等待 Claude 连接超时。请重试。`},Ye={accountConnected:`{name} 账户已连接。`,authorizationError:`{name} 错误:{code}`,authorizationFailed:`{name} 授权失败`,popupBlocked:`弹窗被阻止。请启用弹窗并重试。`,startFailed:`启动 {name} 授权失败。`,startFailedWithReason:`启动 {name} 授权失败:{reason}`},Xe={blocked:`您的浏览器阻止了助手尝试打开的页面。`,openPage:`打开页面`},Ze={playFailed:`无法播放语音样本。`},Qe={updated:`主题已更新`},$e={body:`输入您的 Vercel API 令牌,将应用程序部署为静态页面。`,cancel:`取消`,createToken:`在 Vercel 上创建令牌 →`,save:`保存`,saveFailed:`保存 Vercel 令牌失败。`,saving:`正在保存…`,title:`连接 Vercel`,tokenLabel:`API 令牌`,tokenPlaceholder:`Vercel API 令牌`},et={assistantVoiceAriaLabel:`助手语音`,defaultSuffix:`(默认)`,previewVoice:`预览 {description}`,providerAriaLabel:`语音提供商`,stopPreview:`停止预览`},tt={ariaLabel:`语音`,selectVoice:`选择语音`},nt={done:`完成`,title:`语音`},rt={body:`语音提供商、转录和 API 密钥位于<modelsLink>模型与服务</modelsLink>中。`},it={recommendedOff:`建议关闭`,userTranscriptLabel:`显示你说的话`,userTranscriptDescription:`在你说话时实时转录文字。`,assistantTranscriptLabel:`显示助手说的话`,assistantTranscriptDescription:`在语音回复旁同步显示文本。`},at={developer:`开发者`,file:`文件`,help:`帮助`,view:`视图`},ot={checkingDomain:`正在检查域名…`,domainVerified:`域名已验证`,failedTitle:`域名验证失败。DNS 记录可能未正确传播。您可以尝试释放并重新注册该域名。`,unknownStatus:`未知状态`,unknownStatusTitle:`无法检索域名验证状态。`,verificationFailed:`验证失败`,verifiedTitle:`DNS 记录已验证。您的域名已准备好发送和接收电子邮件。`,verifyingDomain:`正在验证域名…`,verifyingTitle:`DNS 记录已配置。正在等待电子邮件提供商验证它们 - 这通常需要几分钟。`,setupRequired:`需要设置域名`,setupRequiredTitle:`此域名尚未在电子邮件提供商处完成配置。在完成设置前,它无法发送或接收电子邮件。`},st={body:`托管服务按量计费,并从您的 Vellum 账户余额中扣除。<link>查看定价</link>`},ct={managedLabel:`托管`,modeToggleAriaLabel:`服务模式`,yourOwnLabel:`自托管`},lt={previewAlt:`您的助手头像`,download:`下载头像`,prompt:{slack:`下载您的助手头像以上传为应用图标。`,discord:`下载您的助手头像以上传为机器人图标。`,telegram:`下载您的助手头像,然后使用 /setuserpic 发送给 BotFather。`}},ut={strict:{label:`严格`,description:`执行任何操作前均需确认。不自动批准任何操作。`},conservative:{label:`保守`,description:`自动批准低风险操作,例如网络搜索以及在其自身工作区中读写文件。`},relaxed:{label:`宽松`,description:`自动批准低风险与中等风险操作,例如修改其工作区之外的文件。`},fullAccess:{label:`完全访问`,description:`自动批准所有操作,包括高风险和无法识别的命令。助手将绝不请求权限确认。`}},dt={everyHours:`每 {count} 小时`,everyMinutes:`每 {count} 分钟`,retrospectiveSubtitle:`在对话活动后触发`},ft={title:`助手用户名`,description:`你的助手的公开名称,它的邮箱地址也基于这个名称。`,helper:`小写字母、数字、连字符和下划线。`},pt={close:`关闭`,closePanel:`关闭面板`,loading:`加载中…`},mt={back:`返回引导`,dragInstruction:`将 {app} 拖入列表以允许{permission}。`,dragApp:`将 {app} 拖到系统设置,或点击以在访达中显示`,dragError:`无法拖动。请尝试从访达中拖动。`,showInFinder:`在访达中显示`,inputLabel:`输入监控`},ht={aboutPage:e,activeAssistantGate:t,addCredentialModal:n,addCreditsModal:r,appCard:i,appNavBar:a,appViewerContainer:o,assistantConnect:s,assistantFeatureFlagStore:c,avatarManagementModal:l,bundleConfirmPage:u,byoVoiceNote:d,channelSetupCompleteNotice:f,chatAvatar:p,chooserAvatarChip:m,collapsibleNavSection:h,commandPalette:g,companionIntro:_,companionPopover:v,companionSurface:y,companionWatchFramePage:b,contentActionBar:x,conversationTitle:S,copyButton:C,createAssistantDialog:w,dateRangeSelect:T,deleteAppDialog:E,deployDialogs:D,deployStore:O,detailPanelStopButton:k,detailPrimitives:A,dictationOverlayPage:j,discordNudgeBanner:M,discordSetupConnectStep:N,discordSetupCreateStep:P,discordSetupFinishStep:F,discordSetupInviteStep:I,discordSetupWizard:L,diskPressureBanner:R,downloadFeedback:z,editFooter:B,fileViewMode:V,generateInviteLinkDialog:H,githubNudgeBanner:U,lazyBoundary:W,localNotification:G,desktopAppBanner:K,nativeAppBanner:q,notFound:J,nudgeChatBanner:Y,onboardingBackButton:X,platformLoginNotice:Z,profileCard:Q,profileQuickAddProvider:$,quickInputPage:ee,referralContent:te,referralModal:ne,removeFromDeviceDialog:re,resourcePressureBanner:ie,retireConfirmDialog:ae,rootHydrateFallback:oe,routePendingIndicator:se,rootLayout:ce,routeErrorBoundary:le,runtimeUpgradeBanner:ue,sectionActionsButton:de,serviceFormControls:fe,shareConnectionLinkButton:pe,shareFeedbackModal:me,shareFeedbackModalFallback:he,shareFeedbackModalLoadError:ge,sideListDrawer:_e,sidebarShell:ve,sidebarTree:ye,skillLineageLink:be,skillRemovalDialog:xe,slackSetupCreateStep:Se,slackSetupNameStep:Ce,slackSetupOpenStep:we,slackSetupTokensStep:Te,slackSetupWizard:Ee,stackedBarTooltip:De,startupFailure:Oe,statusBanner:ke,sttLanguagePicker:Ae,sttLanguagePickerModal:je,sttProviderForm:Me,subagentAvatarChip:Ne,systemPermissionsCard:Pe,telegramSetupConnectStep:Fe,telegramSetupCreateStep:Ie,telegramSetupWizard:Le,tenantHost:Re,terminalPanel:ze,themeStagePage:Be,themeToggle:Ve,ttsProviderForm:He,updateToast:Ue,useAppDelete:We,useAppDeployment:Ge,useAssistantChannels:Ke,useBookmarks:qe,useConnectClaude:Je,useOauthConnect:Ye,useOpenUrlDirectives:Xe,useVoiceSamplePreview:Ze,useWorkspaceTheme:Qe,vercelTokenDialog:$e,voiceList:et,voicePickerField:tt,voicePickerModal:nt,voiceProvidersNote:rt,voiceTranscriptToggles:it,windowsMenuBar:at,domainVerificationChip:ot,managedServicesBanner:st,serviceCard:ct,channelAvatarDownload:lt,thresholdPresets:ut,scheduleFormatters:dt,assistantHandleModal:ft,detailShell:pt,permissionGuide:mt};export{e as aboutPage,t as activeAssistantGate,n as addCredentialModal,r as addCreditsModal,i as appCard,a as appNavBar,o as appViewerContainer,s as assistantConnect,c as assistantFeatureFlagStore,ft as assistantHandleModal,l as avatarManagementModal,u as bundleConfirmPage,d as byoVoiceNote,lt as channelAvatarDownload,f as channelSetupCompleteNotice,p as chatAvatar,m as chooserAvatarChip,h as collapsibleNavSection,g as commandPalette,_ as companionIntro,v as companionPopover,y as companionSurface,b as companionWatchFramePage,x as contentActionBar,S as conversationTitle,C as copyButton,w as createAssistantDialog,T as dateRangeSelect,ht as default,E as deleteAppDialog,D as deployDialogs,O as deployStore,K as desktopAppBanner,k as detailPanelStopButton,A as detailPrimitives,pt as detailShell,j as dictationOverlayPage,M as discordNudgeBanner,N as discordSetupConnectStep,P as discordSetupCreateStep,F as discordSetupFinishStep,I as discordSetupInviteStep,L as discordSetupWizard,R as diskPressureBanner,ot as domainVerificationChip,z as downloadFeedback,B as editFooter,V as fileViewMode,H as generateInviteLinkDialog,U as githubNudgeBanner,W as lazyBoundary,G as localNotification,st as managedServicesBanner,q as nativeAppBanner,J as notFound,Y as nudgeChatBanner,X as onboardingBackButton,mt as permissionGuide,Z as platformLoginNotice,Q as profileCard,$ as profileQuickAddProvider,ee as quickInputPage,te as referralContent,ne as referralModal,re as removeFromDeviceDialog,ie as resourcePressureBanner,ae as retireConfirmDialog,oe as rootHydrateFallback,ce as rootLayout,le as routeErrorBoundary,se as routePendingIndicator,ue as runtimeUpgradeBanner,dt as scheduleFormatters,de as sectionActionsButton,ct as serviceCard,fe as serviceFormControls,pe as shareConnectionLinkButton,me as shareFeedbackModal,he as shareFeedbackModalFallback,ge as shareFeedbackModalLoadError,_e as sideListDrawer,ve as sidebarShell,ye as sidebarTree,be as skillLineageLink,xe as skillRemovalDialog,Se as slackSetupCreateStep,Ce as slackSetupNameStep,we as slackSetupOpenStep,Te as slackSetupTokensStep,Ee as slackSetupWizard,De as stackedBarTooltip,Oe as startupFailure,ke as statusBanner,Ae as sttLanguagePicker,je as sttLanguagePickerModal,Me as sttProviderForm,Ne as subagentAvatarChip,Pe as systemPermissionsCard,Fe as telegramSetupConnectStep,Ie as telegramSetupCreateStep,Le as telegramSetupWizard,Re as tenantHost,ze as terminalPanel,Be as themeStagePage,Ve as themeToggle,ut as thresholdPresets,He as ttsProviderForm,Ue as updateToast,We as useAppDelete,Ge as useAppDeployment,Ke as useAssistantChannels,qe as useBookmarks,Je as useConnectClaude,Ye as useOauthConnect,Xe as useOpenUrlDirectives,Ze as useVoiceSamplePreview,Qe as useWorkspaceTheme,$e as vercelTokenDialog,et as voiceList,tt as voicePickerField,nt as voicePickerModal,rt as voiceProvidersNote,it as voiceTranscriptToggles,at as windowsMenuBar};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={build:`Сборка`,taglineMacOS:`ИИ-ассистент для вашего Mac`,taglineWindows:`ИИ-ассистент для вашего ПК`,version:`Версия`},t={copied:`Скопировано`,copyFailed:`Не удалось скопировать в буфер обмена.`},n={formatted:`Форматированный`,modeAria:`Как показывать этот файл`,source:`Исходный код`},r={reconnecting:`Восстанавливаем соединение с вашим ассистентом…`},i={configureAutoReload:`Настроить автопополнение`},a={failed:`Не удалось подключиться к ассистенту.`},o={updateFailed:`Не удалось обновить «{label}». Изменение отменено.`},s={verifyTitle:`Последний шаг: подтвердите, что это вы`,verifyAction:`Подтвердить меня`,verifyBody:`Ассистент ещё не знает, какой аккаунт {channel} ваш, поэтому не будет вам отвечать. Скажите в чате «подтверди меня в {channel}», чтобы закончить.`,verifyActionBody:`Ассистент ещё не знает, какой аккаунт {channel} ваш, поэтому не будет вам отвечать. Он завершит это с вами в чате.`,verifiedTitle:`Личность подтверждена`,verifiedBody:`Ассистент знает ваш аккаунт {channel} и будет вам отвечать. Всё готово.`},c={announcement:{body:`Теперь я могу быть рядом в любом месте рабочего стола.`,cards:{context:{body:`Покажите мне экран, чтобы я помог с учётом контекста.`,title:`Покажите и объясните`},flow:{body:`Обращайтесь ко мне, не выходя из текущего приложения.`,title:`Не отвлекайтесь от работы`},together:{body:`Говорите, указывайте и двигайтесь вперёд вместе со мной.`,title:`Работайте вместе со мной`}},close:`Закрыть`,previewLabel:`Ваш помощник на рабочем столе`,previewAssistantName:`Quill`,start:`Поехали`,title:`Я рядом, пока вы работаете`},ariaLabel:`Знакомство с компаньоном`,back:`Назад`,call:{click:`Нажмите`,line:`Слушаю`,shortcut:`Сочетание`},close:`Закрыть`,done:`Понятно`,draw:{body:`Укажите на что угодно на экране`,title:`Рисуйте`},idle:{body:`Наведите на меня курсор, и я появлюсь.`,title:`Привет, это я`,titleNamed:`Привет, это {name}`},key:{scolded:`Нет, клавишу на клавиатуре`,title:`Сделайте общение со мной проще`},meet:{body:`Я остаюсь на рабочем столе, даже когда Vellum не видно.`},mute:{body:`Нажмите микрофон, чтобы отключить себя, или динамик, чтобы отключить меня`,title:`Без звука`},next:`Далее`,share:{body:`Покажите мне вкладку, окно или весь экран`,title:`Поделитесь экраном`},talk:{body:`Нажмите на меня, чтобы начать разговор.`,gesture:`Или дважды нажмите эту клавишу:`,greeted:`Получилось! Вот и всё.`,title:`Поговорите со мной`},try:{body:`Скажите привет, и я отвечу вслух.`,how:`Нажмите на меня или дважды нажмите клавишу`,title:`Попробуйте`},permission:{microphoneAction:`Включить микрофон`,microphoneSettingsHint:`Включите доступ Vellum к микрофону в Системных настройках, затем вернитесь сюда.`,microphonePromptHint:`macOS попросит разрешить доступ к микрофону.`,microphoneBody:`Разрешите использовать микрофон для голосовых разговоров.`,shortcutBody:`Разрешите горячую клавишу в других приложениях.`,screenAction:`Включить показ экрана`,screenBody:`Настройте показ экрана. Что показать, вы выберете позже.`,openSettings:`Открыть настройки`,settingsHint:`Разрешите доступ в настройках и вернитесь сюда.`,restricted:`Доступ ограничен. Шаг можно пропустить.`,error:`Не удалось проверить доступ. Попробуйте ещё раз.`,waiting:`Проверка доступа…`,skip:`Пропустить`}},l={sharingScreen:`Показываем ваш экран`,sharingScreenNamed:`Показываем ваш экран {name}`,sharingWindow:`Показываем окно`,sharingWindowNamed:`Показываем окно {name}`,teaching:`Обучаем`,teachingNamed:`Обучаем {name}`},u={untitled:`Без названия`},d={appExported:`Приложение экспортировано`,deployFailed:`Не удалось опубликовать`,deployedToVercel:`Опубликовано на Vercel`,open:`Открыть`,shareFailed:`Не удалось поделиться приложением`},f={tooltip:`Стоп`},p={ariaLabelMacOS:`Скачать приложение для macOS`,ariaLabelWindows:`Скачать приложение для Windows`,ctaAriaLabelMacOS:`Скачать приложение для macOS`,ctaAriaLabelWindows:`Скачать приложение для Windows`,ctaLabel:`Скачать`,subtitle:`Работа с компьютером · доступ к терминалу · нативная автоматизация`,titleMacOS:`Установите приложение для macOS`,titleWindows:`Установите приложение для Windows`},m={instructions:`Вставьте токен бота, скопированный со страницы Bot.`,verificationNoticeTitle:`Игнорируйте страницу «Verify your App»`,verificationNoticeBody:`Discord показывает её каждому новому приложению. Она важна только после 100 серверов.`,botTokenLabel:`Токен бота`,save:`Подключить`,saving:`Подключение...`,saved:`Подключено. Теперь добавьте бота на сервер.`,botTokenPlaceholder:`MTk4NjIyNDgzNzAyNDU0...`},h={inPortal:`На портале разработчиков Discord:`,stepCreateApp:`Нажмите <strong>New Application</strong> и назовите приложение именем ассистента:`,copyName:`Скопировать имя`,copied:`Скопировано!`,stepAppIcon:`Необязательно: скачайте аватар и загрузите его на странице <strong>General Information</strong> как значок приложения.`,stepResetToken:`Перейдите на страницу <strong>Bot</strong> в меню приложения, нажмите <strong>Reset Token</strong> и сразу скопируйте токен. Discord показывает его только один раз.`,stepIntentsOff:`На той же странице оставьте все три переключателя <strong>Privileged Gateway Intents</strong> выключенными. Ассистенту они не нужны: он читает только личные сообщения и сообщения с упоминанием.`,openPortal:`Открыть портал Discord`,continue:`Токен у меня есть`},g={connectedTitle:`Бот добавлен`,connectedBody:`Токен сохранён, бот на вашем сервере. Со стороны Discord всё готово.`},_={instructions:`Бот ничего не видит и не отвечает, пока не войдёт на сервер. Откройте ссылку, выберите свой сервер и подтвердите.`,openInvite:`Добавить на сервер`,confirmJoined:`Бот уже на сервере`,noAppId:`Сначала подключите токен бота, затем вернитесь, чтобы добавить его на сервер.`},v={channelLabel:`Discord`,stepCreate:`Создать приложение`,stepConnect:`Подключить`,stepInvite:`Добавить на сервер`,stepFinish:`Завершение`,copyError:`Не удалось скопировать имя. Введите его в Discord вручную.`},y={checkingDomain:`Проверка домена…`,domainVerified:`Домен подтверждён`,failedTitle:`Не удалось подтвердить домен. Записи DNS могли ещё не распространиться. Освободите домен и зарегистрируйте его снова.`,unknownStatus:`Неизвестный статус`,unknownStatusTitle:`Не удалось получить статус проверки домена.`,verificationFailed:`Проверка не прошла`,verifiedTitle:`Записи DNS подтверждены. Домен готов отправлять и получать почту.`,verifyingDomain:`Проверка домена…`,verifyingTitle:`Записи DNS подготовлены. Ждём, пока почтовый провайдер их подтвердит: обычно это несколько минут.`,setupRequired:`Требуется настройка домена`,setupRequiredTitle:`Этот домен не подготовлен у почтового провайдера. Он не может отправлять или получать почту, пока настройка не будет завершена.`},b={failed:`Не удалось скачать файл`,revealMac:`Показать в Finder`,revealWindows:`Показать в проводнике`,saved:`Сохранено в папку «Загрузки»`,started:`Скачивание началось`,startedDescription:`Файл {filename} появится в загрузках браузера.`},x={goToConversation:`Перейти к диалогу`},S={body:`Управляемые сервисы тарифицируются и списываются с баланса аккаунта Vellum. <link>Смотреть цены</link>`},C={bannerAria:`Скачать приложение {appName}`,bannerAriaGeneric:`Скачать приложение Vellum`,download:`Скачать`,downloadAppAria:`Скачать приложение {appName}`,downloadAppAriaGeneric:`Скачать приложение Vellum`,subtitle:`Push-уведомления · биометрический вход · тактильная отдача`,title:`Приложение {appName}`,titleGeneric:`Приложение Vellum`},w={badge:`Ошибка 404`,title:`Страница не найдена`,body:`Этой страницы нет или её могли перенести.`,backToAssistant:`Вернуться к ассистенту`,goBack:`Назад`},T={copied:`Скопировано!`,copyError:`Не удалось скопировать реферальную ссылку.`,copySuccess:`Скопировано в буфер обмена!`,creditsEarned:`Заработано кредитов`,friendsReferred:`Приглашено друзей`,gatedTooltip:`Оформи подписку или купи кредиты, чтобы начать зарабатывать!`,loadError:`Не удалось загрузить сведения о реферальной программе.`,loading:`Загрузка...`,shareLink:`Поделиться ссылкой`,subtitleDefault:`Расскажи друзьям о Vellum и получай кредиты за каждую регистрацию.`,subtitleWithAmounts:`Расскажи друзьям о Vellum: вы оба получите {creditAmount} кредитов после их регистрации, всего до {earningCap}.`},E={title:`Заработать бесплатные кредиты`},D={title:`Ассистенту нужно больше мощности`,titleNamed:`{assistantName} нуждается в большей мощности`,body:`Ассистент усердно работает и приближается к пределу доступных ресурсов. Обновите план, чтобы он продолжал работать без сбоев.`,bodyNoUpgrade:`Ассистент усердно работает и приближается к пределу доступных ресурсов.`,upgrade:`Обновить план`,dontShowAgain:`Больше не показывать`},O={unnamedAssistant:`ассистент`},k={ariaLabel:`Действия: {name}`},A={managedLabel:`Управляемые`,modeToggleAriaLabel:`Режим сервиса`,yourOwnLabel:`Свои`},j={windowsNativeDisplayName:`Windows Native Dictation`,windowsNativeSubtitle:`Распознавание речи Windows на устройстве, локально через вспомогательную программу Windows. Работает без сети и не требует API-ключа.`,windowsNativeSetupWarning:`Нужно базовое распознавание речи для языка интерфейса Windows: Параметры > Время и язык > Язык и регион, три точки рядом с языком интерфейса, Параметры языка, в разделе Возможности языка: Базовое распознавание речи.`},M={deleteFailed:`Не удалось удалить приложение`},N={copyFailed:`Не удалось скопировать ссылку. Откройте её: {url}`,linkCopied:`Ссылка скопирована`,open:`Открыть`},P={setupPrompt:{slack:`Я хочу связываться с тобой в Slack. Давай настроим.`,telegram:`Я хочу связываться с тобой в Telegram. Давай настроим.`,discord:`Я хочу связываться с тобой в Discord. Давай настроим.`,email:`Я хочу писать тебе по электронной почте. Давай настроим твой адрес.`,phone:`Я хочу иметь возможность звонить тебе. Давай настроим тебе номер телефона.`},finishPrompt:{slack:`Slack настроен, но не работает. Можешь доделать?`,telegram:`Telegram настроен, но не работает. Можешь доделать?`,discord:`Discord настроен, но не работает. Можешь доделать?`,email:`Мой адрес электронной почты настроен, но не работает. Можешь доделать?`,phone:`Мой номер телефона настроен, но не работает. Можешь доделать?`}},F={addFailed:`Не удалось добавить закладку.`,removeFailed:`Не удалось удалить закладку.`},I={exchangeFailed:`Проверьте вставленный ключ и повторите попытку.`,failed:`Не удалось подключить Claude. Повторите попытку.`,notStarted:`Сначала запуск сценария Connect Claude.`,pasteEmpty:`Вставка кода со страницы Claude.`,popupBlocked:`Браузер заблокировал вкладку входа. Разрешение всплывающих окон для этого сайта, затем снова Подключить.`,startFailed:`Не удалось запустить Connect Claude. Повторите попытку.`,timedOut:`Время ожидания подключения Claude истекло. Повторите попытку.`},L={accountConnected:`Аккаунт {name} подключён.`,authorizationError:`Ошибка {name}: {code}`,authorizationFailed:`Авторизация {name} не удалась`,popupBlocked:`Всплывающее окно заблокировано. Разрешите всплывающие окна и повторите попытку.`,startFailed:`Не удалось начать авторизацию {name}.`,startFailedWithReason:`Не удалось начать авторизацию {name}: {reason}`},R={blocked:`Браузер заблокировал страницу, которую ассистент пытался открыть.`,openPage:`Открыть страницу`},z={updated:`Тема обновлена`},B={file:`Файл`,view:`Вид`,developer:`Разработчик`,help:`Справка`},V={expandedValue:`Развёрнутое значение`,showLess:`Показать меньше`,showMore:`Показать больше`},H={title:`Имя ассистента`,description:`Публичное имя вашего ассистента. На нём же строится его адрес электронной почты.`,helper:`Строчные буквы, цифры, дефисы, подчёркивания.`},U={send:`Отправить сообщение`},W={close:`Закрыть`,closePanel:`Закрыть панель`,loading:`Загрузка…`},G={back:`Вернуться к обучению`,dragInstruction:`Перетащите {app} в список, чтобы разрешить «{permission}».`,dragApp:`Перетащите {app} в Системные настройки или нажмите, чтобы показать в Finder`,dragError:`Перетаскивание недоступно. Попробуйте из Finder.`,showInFinder:`Показать в Finder`,inputLabel:`Мониторинг ввода`},K={aboutPage:e,copyButton:t,fileViewMode:n,statusBanner:r,addCreditsModal:i,assistantConnect:a,assistantFeatureFlagStore:o,channelSetupCompleteNotice:s,companionIntro:c,companionWatchFramePage:l,conversationTitle:u,deployStore:d,detailPanelStopButton:f,desktopAppBanner:p,discordSetupConnectStep:m,discordSetupCreateStep:h,discordSetupFinishStep:g,discordSetupInviteStep:_,discordSetupWizard:v,domainVerificationChip:y,downloadFeedback:b,localNotification:x,managedServicesBanner:S,nativeAppBanner:C,notFound:w,referralContent:T,referralModal:E,resourcePressureBanner:D,rootLayout:O,sectionActionsButton:k,serviceCard:A,sttProviderForm:j,useAppDelete:M,useAppDeployment:N,useAssistantChannels:P,useBookmarks:F,useConnectClaude:I,useOauthConnect:L,useOpenUrlDirectives:R,useWorkspaceTheme:z,windowsMenuBar:B,detailPrimitives:V,assistantHandleModal:H,quickInputPage:U,detailShell:W,permissionGuide:G};export{e as aboutPage,i as addCreditsModal,a as assistantConnect,o as assistantFeatureFlagStore,H as assistantHandleModal,s as channelSetupCompleteNotice,c as companionIntro,l as companionWatchFramePage,u as conversationTitle,t as copyButton,K as default,d as deployStore,p as desktopAppBanner,f as detailPanelStopButton,V as detailPrimitives,W as detailShell,m as discordSetupConnectStep,h as discordSetupCreateStep,g as discordSetupFinishStep,_ as discordSetupInviteStep,v as discordSetupWizard,y as domainVerificationChip,b as downloadFeedback,n as fileViewMode,x as localNotification,S as managedServicesBanner,C as nativeAppBanner,w as notFound,G as permissionGuide,U as quickInputPage,T as referralContent,E as referralModal,D as resourcePressureBanner,O as rootLayout,k as sectionActionsButton,A as serviceCard,r as statusBanner,j as sttProviderForm,M as useAppDelete,N as useAppDeployment,P as useAssistantChannels,F as useBookmarks,I as useConnectClaude,L as useOauthConnect,R as useOpenUrlDirectives,z as useWorkspaceTheme,B as windowsMenuBar};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{BC as t,Ur as n,Wr as r,eC as i,gC as a,qg as o,qo as s,wC as c}from"./app-XG_RF2yi.js";import{E as l,dt as u}from"./vendor-DwMhK7fD.js";import{t as d,x as f}from"./react-B9IgSVeK.js";import{G as p,Ji as m,dr as h,h as g,i as _}from"./icons-C0wyat6T.js";var v=e(f(),1),y=d();function b({label:e,selected:t,onPick:n,trailing:r}){return(0,y.jsxs)(`div`,{role:`option`,"aria-selected":t,className:s(`flex min-h-9 items-center gap-2 rounded-lg px-3 py-1.5 transition-colors`,t?`bg-[var(--surface-active)]`:`hover:bg-[var(--surface-hover)]`),onClick:n,children:[(0,y.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-body-medium-default text-[var(--content-default)]`,children:e}),r,t?(0,y.jsx)(m,{"aria-hidden":!0,className:`size-4 shrink-0 text-[var(--system-positive-strong)]`}):(0,y.jsx)(`span`,{"aria-hidden":!0,className:`size-4 shrink-0`})]})}function x({label:e,children:t}){return(0,y.jsx)(c,{className:`-mx-2 min-h-0 flex-1`,size:20,fadeEdges:`end`,hideScrollBar:!0,children:(0,y.jsx)(`div`,{role:`listbox`,"aria-label":e,className:`flex flex-col`,children:t})})}function S({popover:e,onAnswer:t}){let{t:n}=l();return(0,y.jsxs)(y.Fragment,{children:[(0,y.jsxs)(x,{label:n(`companionPopover.microphoneTitle`),children:[(0,y.jsx)(b,{label:n(`companionPopover.systemDefault`),selected:e.selected===``,onPick:()=>t?.({kind:`pick`,optionId:``})}),e.options.map(n=>(0,y.jsx)(b,{label:n.label,selected:e.selected===n.id,onPick:()=>t?.({kind:`pick`,optionId:n.id})},n.id))]}),e.needsPermission?(0,y.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:n(`companionPopover.microphonePermissionHint`)}):null]})}function C(){let[e,t]=(0,v.useState)(null),n=(0,v.useRef)(null);return(0,v.useEffect)(()=>()=>{n.current?.pause(),n.current=null},[]),{playing:e,play:(e,r)=>{n.current?.pause();let i=new Audio(r);n.current=i,t(e);let a=()=>{n.current===i&&(n.current=null,t(null))};i.onended=a,i.onerror=a,i.play().catch(a)},stop:()=>{n.current?.pause(),n.current=null,t(null)}}}function w({popover:e,onAnswer:n}){let{t:r}=l(),{playing:i,play:a,stop:o}=C();return(0,y.jsx)(x,{label:r(`companionPopover.voiceTitle`),children:e.groups.map(s=>(0,y.jsxs)(`div`,{role:`group`,"aria-label":s.accent,children:[(0,y.jsx)(`div`,{className:`px-3 pt-3 pb-1 text-label-small-default text-[var(--content-tertiary)]`,children:s.accent}),s.voices.map(s=>{let c=i===s.id;return(0,y.jsx)(b,{label:s.isDefault?(0,y.jsxs)(y.Fragment,{children:[s.label,(0,y.jsx)(`span`,{className:`text-[var(--content-tertiary)]`,children:` ${r(`companionPopover.defaultSuffix`)}`})]}):s.label,selected:e.selected===s.id,onPick:()=>n?.({kind:`pick`,optionId:s.id}),trailing:s.sampleUrl===``?void 0:(0,y.jsx)(t,{variant:`ghost`,size:`compact`,className:`size-7 shrink-0`,iconOnly:c?(0,y.jsx)(p,{}):(0,y.jsx)(g,{}),"aria-label":c?r(`companionPopover.stopPreview`):r(`companionPopover.previewVoice`,{voice:s.label}),onClick:e=>{e.stopPropagation(),c?o():a(s.id,s.sampleUrl)}})},s.id)})]},s.accent))})}var T=e=>/^https?:\/\//i.test(e)||/^data:image\//i.test(e),E=`border border-white/5 bg-[var(--surface-base)] text-[var(--content-default)] shadow-lg shadow-black/40`,D=e=>`radial-gradient(120% 80% at 0% 0%, ${e===void 0?`transparent`:`color-mix(in srgb, ${e} 7%, transparent)`} 0%, transparent 70%), #17181b`;function O({popover:e,view:t,cardRef:n,onAnswer:r,onView:i,onOpenLink:a,accentHex:o,attached:c=!1,className:u,style:d}){let{t:f}=l();return(e.kind===`approvals`||e.kind===`secret`)&&t!==`expanded`?(0,y.jsx)(`div`,{ref:n,role:`group`,"data-companion-popover":e.kind,className:s(`w-max max-w-[640px] rounded-[22px]`,E,u),style:d,children:(0,y.jsx)(k,{popover:e,onAnswer:r,onView:i})}):(0,y.jsx)(`div`,{ref:n,role:`group`,"data-companion-popover":e.kind,className:s(`flex min-h-0 flex-col gap-3 p-4 text-[var(--content-default)]`,!c&&`rounded-[20px] border border-white/10 shadow-2xl shadow-black/50`,e.kind===`approvals`?`w-max max-w-[640px]`:`w-[360px]`,(e.kind===`microphones`||e.kind===`voices`)&&`gap-2 px-4 pb-3`,u),style:c?d:{background:D(o),...d},children:e.kind===`approvals`?(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(I,{title:f(`companionPopover.needsOkCount`,{count:e.items.length}),onClose:()=>i?.(`deferred`)}),(0,y.jsx)(L,{items:e.items,onAnswer:r})]}):e.kind===`secret`?(0,y.jsx)(R,{popover:e,onAnswer:r,onView:i}):e.kind===`microphones`?(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(I,{title:f(`companionPopover.microphoneTitle`),onClose:()=>r?.({kind:`dismiss`})}),(0,y.jsx)(S,{popover:e,onAnswer:r})]}):e.kind===`voices`?(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(I,{title:f(`companionPopover.voiceTitle`),onClose:()=>r?.({kind:`dismiss`})}),(0,y.jsx)(w,{popover:e,onAnswer:r})]}):(0,y.jsx)(z,{popover:e,onAnswer:r,onOpenLink:a})})}function k({popover:e,onAnswer:t,onView:n,className:r}){let{t:i}=l(),a=e.kind===`approvals`?e.items[0]:void 0,o=e.kind===`approvals`&&e.items.length===1;return(0,y.jsxs)(`div`,{"data-companion-prompt-row":e.kind,className:s(`flex min-h-11 min-w-0 items-center gap-1.5 py-1.5 pr-1.5 text-[var(--content-default)]`,e.kind===`secret`?`pl-2`:`pl-4`,r),children:[e.kind===`secret`?(0,y.jsx)(U,{providerKey:e.providerKey}):null,(0,y.jsx)(P,{className:`min-w-0 flex-1 text-body-medium-default`,maxWidth:A,text:e.kind===`secret`?e.service===``?i(`companionPopover.needsCredentials`):i(`companionPopover.needsCredentialsFor`,{service:e.service}):o&&a!==void 0?a.title:i(`companionPopover.needsOkCount`,{count:e.items.length})}),(0,y.jsx)(`span`,{className:`ml-2 flex shrink-0 items-center gap-1`,children:o&&a!==void 0?(0,y.jsx)(F,{item:a,pill:!0,onAnswer:t}):(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(K,{tone:`secondary`,onClick:()=>n?.(`deferred`),children:i(`companionPopover.notNow`)}),(0,y.jsx)(K,{tone:`primary`,onClick:()=>n?.(`expanded`),children:e.kind===`secret`?i(`companionPopover.enter`):i(`companionPopover.review`)})]})})]})}var A=440,j=400;function M(e,t,n){let r=e.trim().split(/\s+/).filter(e=>e!==``),i=r.length;if(i<2||n(r.join(` `))<=t)return[r.join(` `)];let a=r.map(()=>[]);for(let e=0;e<i;e+=1)for(let t=e+1;t<=i;t+=1)a[e][t]=n(r.slice(e,t).join(` `));let o=(e,t)=>r.slice(e,t).join(` `),s=[];for(let e=0;e<i;){let n=e+1;for(;n<i&&a[e][n+1]<=t;)n+=1;s.push(o(e,n)),e=n}if(s.length<2||i>N)return s;let c=e=>{let n=null;for(let r=i-1;r>=e-1;--r){let o=a[r][i];if(o>t&&r!==i-1)continue;let s=new Map;for(let e=1;e<=r;e+=1)a[0][e]<=o&&s.set(`${e}:0`,{cost:(o-a[0][e])**2,breaks:[0]});for(let t=2;t<=e-1;t+=1){let e=new Map;for(let[t,n]of s){let[i,s]=t.split(`:`).map(Number),c=a[s][i];for(let t=i+1;t<=r;t+=1){let r=a[i][t];if(r<c||r>o)continue;let s=n.cost+(o-r)**2,l=`${t}:${i}`,u=e.get(l);(u===void 0||s<u.cost)&&e.set(l,{cost:s,breaks:[...n.breaks,i]})}}s=e}for(let[e,t]of s){let[i,s]=e.split(`:`).map(Number);i!==r||a[s][i]>o||(n===null||t.cost<n.cost)&&(n={cost:t.cost,breaks:[...t.breaks,r]})}}if(n===null)return null;let r=[...n.breaks,i];return n.breaks.map((e,t)=>o(e,r[t+1]))};for(let e=s.length;e<=i;e+=1){let t=c(e);if(t!==null)return t}return s}var N=48;function P({text:e,maxWidth:t,className:n,title:r}){let i=(0,v.useRef)(null),[a,o]=(0,v.useState)(null);return(0,v.useLayoutEffect)(()=>{let n=i.current;if(n===null)return;let r=!1,a=()=>{if(r)return;let i=document.createElement(`span`);i.style.cssText=`position:absolute;visibility:hidden;white-space:pre;left:0;top:0`,n.appendChild(i);let a=new Map,s=M(e,t,e=>{let t=a.get(e);if(t!==void 0)return t;i.textContent=e;let n=i.getBoundingClientRect().width;return a.set(e,n),n});i.remove(),o(s.length>1?s:null)};return a(),document.fonts?.addEventListener(`loadingdone`,a),document.fonts?.ready.then(a),()=>{r=!0,document.fonts?.removeEventListener(`loadingdone`,a)}},[e,t]),(0,y.jsx)(`span`,{ref:i,dir:`auto`,className:n,title:r,children:a===null?e:a.map((e,t)=>(0,y.jsxs)(`span`,{className:`block whitespace-nowrap`,children:[e,t<a.length-1?` `:null]},t))})}function F({item:e,pill:n,onAnswer:r}){let{t:i}=l(),a=()=>r?.({kind:`deny`,itemId:e.id}),o=()=>r?.({kind:e.permission===void 0?`allow`:`settings`,itemId:e.id});return n?(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(K,{tone:`negative`,onClick:a,children:i(`companionPopover.deny`)}),(0,y.jsx)(K,{tone:`primary`,onClick:o,children:i(`companionPopover.allow`)})]}):(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(t,{variant:`dangerOutline`,onClick:a,children:i(`companionPopover.deny`)}),(0,y.jsx)(t,{variant:`primary`,onClick:o,children:i(`companionPopover.allow`)})]})}function I({title:e,icon:n,emphasis:r=!1,onClose:i}){let{t:a}=l();return(0,y.jsxs)(`div`,{className:`-mt-0.5 -mr-1.5 flex min-h-7 items-center gap-2`,children:[n,(0,y.jsx)(`p`,{dir:`auto`,className:s(`min-w-0 flex-1`,r?`text-title-small leading-snug`:`text-body-small-default text-[var(--content-tertiary)] select-none`),children:e}),(0,y.jsx)(t,{variant:`ghost`,className:`size-7 rounded-lg px-0`,"aria-label":a(`companionPopover.dismiss`),iconOnly:(0,y.jsx)(_,{className:`size-4`,strokeWidth:2}),onClick:i})]})}function L({items:e,onAnswer:t}){return(0,y.jsx)(c,{className:`min-h-0 flex-1`,size:20,fadeEdges:`end`,hideScrollBar:!0,children:(0,y.jsx)(`ol`,{className:`flex flex-col gap-2`,children:e.map((e,n)=>(0,y.jsxs)(`li`,{className:`flex items-center gap-2`,children:[(0,y.jsx)(`span`,{"aria-hidden":!0,className:`flex size-8 shrink-0 items-center justify-center rounded-full bg-[var(--surface-lift)] text-body-medium-default text-[var(--content-tertiary)]`,children:n+1}),(0,y.jsx)(P,{className:`min-w-0 flex-1 pl-1 text-body-medium-default`,maxWidth:j,title:e.detail===``?void 0:e.detail,text:e.title}),(0,y.jsx)(`span`,{className:`ml-2 flex shrink-0 items-center gap-2`,children:(0,y.jsx)(F,{item:e,pill:!1,onAnswer:t})})]},e.id))})})}function R({popover:e,onAnswer:n,onView:r}){let{t:i}=l(),[s,u]=(0,v.useState)(``),d=(0,v.useRef)(null);return(0,v.useEffect)(()=>{let e=()=>{d.current?.focus()};return e(),window.addEventListener(`focus`,e),()=>{window.removeEventListener(`focus`,e)}},[]),(0,y.jsxs)(`form`,{className:`flex min-h-0 flex-1 flex-col gap-3`,onSubmit:e=>{e.preventDefault(),s!==``&&n?.({kind:`secret`,value:s})},children:[(0,y.jsx)(I,{icon:(0,y.jsx)(U,{providerKey:e.providerKey}),title:e.service===``?i(`companionPopover.needsCredentials`):i(`companionPopover.needsCredentialsFor`,{service:e.service}),onClose:()=>r?.(`deferred`)}),(0,y.jsx)(c,{className:`min-h-0 flex-1`,size:20,fadeEdges:`end`,hideScrollBar:!0,children:(0,y.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[e.detail===``?null:(0,y.jsx)(`p`,{dir:`auto`,className:`text-body-medium-lighter text-[var(--content-secondary)]`,children:e.detail}),(0,y.jsx)(a,{ref:d,type:`password`,fullWidth:!0,autoComplete:`off`,className:`select-text`,maxLength:o,label:e.label===``?i(`companionPopover.credentialLabel`):e.label,placeholder:e.placeholder,value:s,onChange:e=>{u(e.target.value)}})]})}),(0,y.jsxs)(`div`,{className:`flex shrink-0 items-center justify-end gap-2`,children:[(0,y.jsx)(t,{variant:`outlined`,onClick:()=>r?.(`deferred`),children:i(`companionPopover.notNow`)}),(0,y.jsx)(t,{variant:`primary`,type:`submit`,disabled:s===``,children:i(`companionPopover.confirm`)})]})]})}function z({popover:e,onAnswer:n,onOpenLink:r}){let{t:i}=l(),[a,o]=(0,v.useState)(!1);return(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(I,{emphasis:!0,title:e.title===``?e.kind===`surface`?i(`companionPopover.surfaceFallback`):``:e.title,onClose:()=>n?.({kind:`dismiss`})}),e.kind===`card`?(0,y.jsxs)(y.Fragment,{children:[e.subtitle===``?null:(0,y.jsx)(`p`,{dir:`auto`,className:`-mt-2.5 text-body-medium-lighter text-[var(--content-tertiary)]`,children:e.subtitle}),(0,y.jsx)(c,{className:`min-h-0 flex-1`,size:20,fadeEdges:`end`,hideScrollBar:!0,children:(0,y.jsx)(`div`,{className:`flex flex-col gap-3`,children:e.body===``?null:(0,y.jsx)(B,{body:e.body,onOpenLink:r})})}),e.actions.length>0?(0,y.jsx)(`div`,{className:`flex shrink-0 flex-wrap items-center justify-end gap-2`,children:W(e.actions).map(e=>(0,y.jsx)(t,{variant:G(e),disabled:a,onClick:()=>{o(!0),n?.({kind:`action`,actionId:e.id})},children:e.label},e.id))}):null]}):(0,y.jsx)(y.Fragment,{children:(0,y.jsx)(`div`,{className:`flex items-center justify-end`,children:(0,y.jsx)(t,{variant:`primary`,onClick:()=>n?.({kind:`open`}),children:i(`companionPopover.openApp`)})})})]})}function B({body:e,onOpenLink:t}){return(0,y.jsx)(i,{content:e,className:`text-body-medium-lighter text-[var(--content-secondary)] [&_li]:mb-1 [&_ol]:mb-2 [&_ol]:pl-4 [&_p]:mb-2 [&_ul]:mb-2 [&_ul]:pl-4`,linkComponent:(0,v.useCallback)(({href:e,children:n})=>(0,y.jsx)(`a`,{href:e,className:`text-[var(--content-default)] underline decoration-[var(--content-tertiary)] underline-offset-2 hover:decoration-[var(--content-default)]`,onClick:n=>{n.preventDefault(),e!==void 0&&t?.(e)},children:n}),[t]),imageComponent:H,urlTransform:V})}var V=e=>/^data:image\//i.test(e)?e:u(e),H=({src:e,alt:t})=>T(e)?(0,y.jsx)(`img`,{src:e,alt:t,draggable:!1,className:`my-1 max-h-60 w-full rounded-xl object-contain`}):null;function U({providerKey:e}){return e!==void 0&&r(e)?(0,y.jsx)(n,{providerKey:e,displayName:null,logoUrl:null,size:24}):(0,y.jsx)(`span`,{"aria-hidden":!0,className:`flex size-6 shrink-0 items-center justify-center text-[var(--content-tertiary)]`,children:(0,y.jsx)(h,{className:`size-4`,strokeWidth:2})})}var W=e=>[...e.filter(e=>e.style!==`primary`),...e.filter(e=>e.style===`primary`)],G=e=>{switch(e.style){case`primary`:return`primary`;case`destructive`:return`danger`;case`secondary`:return`outlined`}};function K({tone:e,onClick:n,type:r=`button`,disabled:i,children:a}){return(0,y.jsx)(t,{shape:`pill`,type:r,disabled:i,variant:e===`primary`?`primary`:e===`negative`?`dangerGhost`:`ghost`,className:s(`h-8 px-3`,e===`secondary`&&`bg-[var(--surface-lift)] hover:bg-[var(--surface-active)]`,e===`negative`&&`bg-[var(--system-negative-weak)]`),onClick:n,children:a})}export{k as n,O as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{Bl as t,Dl as n,Fl as r,Il as i,wl as a,yl as o}from"./app-XG_RF2yi.js";import{t as s,x as c}from"./react-B9IgSVeK.js";import{n as l}from"./companion-accent-CbS8BVae.js";import{t as u}from"./companion-popover-BsoxqJOP.js";var d=e(c(),1),f=s();function p(){let[e,s]=(0,d.useState)(null),c=(0,d.useRef)(null);(0,d.useEffect)(()=>{let e=t(s);return a().then(e=>{e&&s(e)}),e},[]);let p=e?.popover,m=p?.id,h=e?.popoverView??`row`;return(0,d.useLayoutEffect)(()=>{let e=c.current;if(m===void 0||e===null)return;let t=()=>{let{width:t,height:n}=e.getBoundingClientRect();r(m,Math.ceil(t)+24,Math.ceil(n)+24)};t();let n=new ResizeObserver(t);return n.observe(e),()=>{n.disconnect()}},[m,h]),p===void 0?null:(0,f.jsx)(`div`,{"data-theme":`dark`,className:`h-screen w-screen bg-transparent select-none`,style:{padding:12},children:(0,f.jsx)(u,{popover:p,view:h,accentHex:l(e?.call??null,e?.accentHex,e?.character)??void 0,cardRef:c,style:{maxHeight:536},onAnswer:e=>{o(e,p.id)},onView:e=>{i(p.id,e)},onOpenLink:e=>{n(e)}},p.id)})}export{p as CompanionPopoverPage};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{$d as t,BC as n,CS as r,Gg as i,Gl as a,Hg as o,Kg as s,Oa as c,Qd as l,Tn as u,Wg as d,Zg as f,Zi as p,ef as m,tf as h,ts as g,wC as _}from"./app-XG_RF2yi.js";import{E as v,d as y,s as b}from"./vendor-DwMhK7fD.js";import{t as x,x as S}from"./react-B9IgSVeK.js";import{Ai as C,Cr as w,Fa as T,G as ee,Gi as E,Ji as D,Ki as O,Tn as k,Wi as A,Xr as te,Ya as j,Yr as ne,Zt as M,bt as re,h as ie,i as N,m as ae,qi as oe,wn as P}from"./icons-C0wyat6T.js";import{l as F,n as I,t as se}from"./permission-setup-DQzKLhBn.js";import{t as ce}from"./companion-layout-DCGXuvsw.js";var le=j(`eraser`,[[`path`,{d:`M21 21H8a2 2 0 0 1-1.42-.587l-3.994-3.999a2 2 0 0 1 0-2.828l10-10a2 2 0 0 1 2.829 0l5.999 6a2 2 0 0 1 0 2.828L12.834 21`,key:`g5wo59`}],[`path`,{d:`m5.082 11.09 8.828 8.828`,key:`1wx5vj`}]]),ue=j(`screen-share`,[[`path`,{d:`M13 3H4a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-3`,key:`i8wdob`}],[`path`,{d:`M8 21h8`,key:`1ev6f3`}],[`path`,{d:`M12 17v4`,key:`1riwvh`}],[`path`,{d:`m17 8 5-5`,key:`fqif7o`}],[`path`,{d:`M17 3h5v5`,key:`1o3tu8`}]]),de=j(`slash`,[[`path`,{d:`M22 2 2 22`,key:`y4kqgn`}]]),L=e(S(),1);function fe(e,t){return e===`inputMonitoring`||t?.canRequest===!1||e!==`screen`&&t?.status===`denied`}var pe={try:`microphone`,key:`inputMonitoring`,share:`screen`};function R(e){return e!==null&&(e.state.phase!==`known`||e.state.item.status!==`granted`)}function me(e){let n=e===null?null:pe[e]??null,i=e!==null,[o,s]=(0,L.useState)(void 0),[c,u]=(0,L.useState)(null),d=(0,L.useRef)(()=>{});return(0,L.useEffect)(()=>{if(u(null),!i)return;let e=!0,o=!1,c=0,f=!1,p=!1,_=null,v=async()=>{if(!(!e||o||p||_!==`ready`)){p=!0;try{let t=await g();if(!e||o||_!==`ready`||t===null||t===`com.apple.systempreferences`||t===`com.apple.SecurityAgent`)return;_=null,I(),await a()}catch(e){r(e,{context:`companionIntro.resumeAfterPermission`})}finally{p=!1}}},y=(t,r=!1)=>{e&&(s(e=>JSON.stringify(e)===JSON.stringify(t)?e:t),r||u(null),_!==null&&n!==null&&(_=t?t[n].status===`granted`?`ready`:`waiting`:null,v()))},b=t=>{e&&(n!==null&&u({kind:n,phase:`error`}),r(t,{context:`companionIntro.permission`,tags:{kind:n??`tour`}}))},x=async()=>{if(f||o)return;f=!0;let t=c;try{let n=await l();e&&t===c&&!o&&y(n),n===null&&clearInterval(S)}catch(e){t===c&&!o&&b(e)}finally{f=!1}},S=setInterval(()=>{x()},2e3),C=h(e=>{c+=1,y(e,o)});return x(),d.current=r=>{!e||o||n===null||(o=!0,c+=1,u({kind:n,phase:`requesting`}),(async()=>{try{let i=await l();if(!e)return;if(!i){y(null);return}let a=i[n];if(a.status===`granted`||a.status===`restricted`){y(i);return}let o=c;_=`waiting`;let s=n!==`microphone`&&F()?await se(n,r):fe(n,a)?await t(n):await m(n);e&&(o===c?y(s?{...i,[n]:s}:null):u(null))}catch(e){_=null,b(e)}finally{o=!1,v()}})())},()=>{e=!1,I(),clearInterval(S),C()}},[n,i]),n===null||o===null?null:{kind:n,state:c?.kind===n?{phase:c.phase}:o?{phase:`known`,item:o[n]}:{phase:`checking`},enable:e=>d.current(e)}}var z=x();function he(e){return e===`paste-failed`?`companionSurface.offerPasteFailed`:`companionSurface.offerNowhere`}var ge=260;function _e({offer:e,growth:t=`right`,cardGrowth:n=`up`,avatarBox:r=o,optionsBox:i=o,cardRef:a,onAnswer:s}){let{t:c}=v(),l=e.reason===`claimed`?c(`companionSurface.offerVersion`):c(he(e.reason)),{inUnits:u,avatarHalf:d,lineAt:f,edgeAt:p,introStepOff:m}=ce(r,i),h=u(m(n)),g=p(t,-d),y={top:f(n,0),transform:n===`up`?`translateY(calc(-100% - ${h}px))`:`translateY(${h}px)`};return(0,z.jsxs)(`div`,{ref:a,role:`group`,"aria-label":l,"data-companion-dictation-offer":!0,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:ge,...g,...y},onPointerDown:e=>{e.stopPropagation()},children:[(0,z.jsx)(`p`,{className:`text-[11px] font-medium tracking-wide text-white/45 uppercase select-none`,children:l}),(0,z.jsx)(_,{className:`max-h-40 flex-col`,size:20,fadeEdges:`end`,hideScrollBar:!0,children:(0,z.jsx)(`p`,{dir:`auto`,className:`text-[13px] leading-[1.45] text-white/90`,children:e.text})}),(0,z.jsxs)(`div`,{className:`flex flex-wrap items-center justify-end gap-1 pt-0.5`,children:[(0,z.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:e.reason===`claimed`?c(`companionSurface.notNow`):c(`companionSurface.offerDiscard`)}),e.reason===`claimed`?(0,z.jsx)(`button`,{type:`button`,className:`h-7 rounded-full px-2.5 text-[12px] text-white/70 transition-colors hover:bg-white/10 hover:text-white`,onClick:()=>s?.(`quit`),children:c(`companionSurface.offerQuit`,{app:e.app})}):null,(0,z.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?.(e.reason===`claimed`?`use`:`copy`),children:e.reason===`claimed`?c(`companionSurface.offerUse`):c(`companionSurface.offerCopy`)})]})]})}var ve={microphone:{action:`companionIntro.permission.microphoneAction`,body:`companionIntro.permission.microphoneBody`},inputMonitoring:{action:`companionIntro.permission.openSettings`,body:`companionIntro.permission.shortcutBody`},screen:{action:`companionIntro.permission.screenAction`,body:`companionIntro.permission.screenBody`}};function ye({permission:e}){let{t}=v(),r=(0,L.useRef)(null),{state:i}=e,a=i.phase===`known`?i.item:null,o=i.phase===`checking`||i.phase===`requesting`,s=fe(e.kind,a),c=a?.status===`restricted`,l=i.phase===`error`||a?.error!==void 0,u=ve[e.kind];return(0,z.jsxs)(`div`,{ref:r,className:`flex min-h-0 flex-1 flex-col gap-3 overflow-y-auto`,children:[(0,z.jsx)(`p`,{className:`text-[14px] leading-[1.45] text-white/70`,children:t(u.body)}),(0,z.jsx)(n,{size:`compact`,shape:`pill`,className:`self-start bg-white/15 text-white hover:bg-white/25`,loading:o,disabled:c||i.phase===`checking`,onClick:()=>{let t=r.current?.getBoundingClientRect();e.enable(t?{x:t.x,y:t.y,width:t.width,height:t.height}:void 0)},children:t(s?`companionIntro.permission.openSettings`:u.action)}),(0,z.jsx)(`p`,{role:`status`,className:`text-[12px] leading-tight text-white/60`,children:c?t(`companionIntro.permission.restricted`):l?t(`companionIntro.permission.error`):s?t(e.kind===`microphone`?`companionIntro.permission.microphoneSettingsHint`:`companionIntro.permission.settingsHint`):o?t(`companionIntro.permission.waiting`):e.kind===`microphone`?t(`companionIntro.permission.microphonePromptHint`):null})]})}var be=3e3,xe={idle:{title:`companionIntro.idle.title`,titleNamed:`companionIntro.idle.titleNamed`,body:`companionIntro.idle.body`},meet:{title:`companionIntro.idle.title`,titleNamed:`companionIntro.idle.titleNamed`,body:`companionIntro.meet.body`},talk:{title:`companionIntro.talk.title`,body:`companionIntro.talk.body`},key:{title:`companionIntro.key.title`},share:{title:`companionIntro.share.title`,body:`companionIntro.share.body`},draw:{title:`companionIntro.draw.title`,body:`companionIntro.draw.body`},mute:{title:`companionIntro.mute.title`,body:`companionIntro.mute.body`},try:{title:`companionIntro.try.title`,body:`companionIntro.try.body`}},B=e=>f(e),V=e=>({phase:`listening`,label:e,accentHex:``,muted:!1,outputMuted:!1,detail:``,approvalRequestId:``,assistantName:``}),H={share:`⌥S`,draw:`⌥D`,muteMicrophone:`⌥M`,muteAssistant:`⌥A`},Se={share:{icon:(0,z.jsx)(ue,{className:`size-5`}),shortcut:H.share},draw:{icon:(0,z.jsx)(M,{className:`size-5`}),shortcut:H.draw},mute:{icon:(0,z.jsx)(P,{className:`size-5`}),shortcut:H.muteMicrophone}},Ce=e=>B(e)===void 0?null:`call`,we=(e,t)=>B(e)===void 0?null:{call:V(t),sharing:e!==`share`};function Te({beat:e,growth:t=`right`,cardGrowth:n=`up`,avatarBox:r=o,optionsBox:a=o,accentHex:c,assistantName:l,cardRef:u,onAdvance:p,permission:m=null,greeted:h=!1,voiceKeyTaps:g=0,chordPresses:_=0,chordControl:y}){let{t:b}=v(),x=d.indexOf(e),S=x===d.length-1,C=x<=0,w=xe[e],T=R(m),ee=m?.state.phase===`checking`,E=i[e],D=f(e),O=D===void 0?void 0:Se[D],[k,A]=(0,L.useState)(!1);(0,L.useEffect)(()=>{A(!1)},[e]),(0,L.useEffect)(()=>{if(!k)return;let e=setTimeout(()=>{A(!1)},be);return()=>{clearTimeout(e)}},[k]),(0,L.useEffect)(()=>{A(!1)},[g]);let[te,j]=(0,L.useState)(g),[ne,M]=(0,L.useState)(_),[re,ie]=(0,L.useState)(e);re===e?g<te&&j(g):(ie(e),j(g),M(_));let ae=Math.min(Math.max(g-te,0),2);_<ne&&M(_);let oe=D!==void 0&&y===D&&_>ne,{inUnits:P,avatarHalf:F,gap:I,lineAt:se,edgeAt:le,introStepOff:ue}=ce(r,a),de=n===`down`||B(e)===void 0?P(ue(n)):P(F+I)+22+P(F)+6,fe=le(t,-F),pe={top:se(n,0),transform:n===`up`?`translateY(calc(-100% - ${de}px))`:`translateY(${de}px)`};return(0,z.jsxs)(`div`,{ref:u,role:`group`,"aria-label":b(`companionIntro.ariaLabel`),className:`absolute flex flex-col rounded-2xl border border-white/10 bg-[#17181b]/95 p-5 shadow-lg shadow-black/40`,style:{width:320,height:224,...fe,...pe},onPointerDown:e=>{e.stopPropagation()},children:[(0,z.jsx)(`button`,{type:`button`,"aria-label":b(`companionIntro.close`),className:`absolute top-2 right-2 flex size-6 items-center justify-center rounded-full text-white/45 transition-colors hover:bg-white/10 hover:text-white/80`,onClick:()=>p?.(`dismiss`),children:(0,z.jsx)(N,{className:`size-3.5`})}),(0,z.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-2`,children:[(0,z.jsx)(`p`,{className:`pr-6 text-[16px] leading-tight font-medium text-white`,children:(0,z.jsx)(`span`,{className:`line-clamp-2`,children:`titleNamed`in w&&l!==void 0?b(w.titleNamed,{name:l}):b(w.title)})}),ee?null:T&&m!==null?(0,z.jsx)(ye,{permission:m}):(0,z.jsxs)(z.Fragment,{children:[`body`in w?(0,z.jsx)(`p`,{className:`text-[14px] leading-[1.45] text-white/70`,children:b(e===`talk`&&h?`companionIntro.talk.greeted`:w.body)}):null,e===`talk`&&(0,z.jsx)(`div`,{className:`flex flex-1 items-center justify-center`,children:(0,z.jsx)(`span`,{"data-avatar-stage":!0,className:`block size-11`,"aria-hidden":!0})}),e===`key`&&(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(`p`,{className:`text-[14px] leading-[1.45] text-white/70`,children:b(k?`companionIntro.key.scolded`:`companionIntro.talk.gesture`)}),(0,z.jsx)(`div`,{className:`flex flex-1 items-center justify-center`,children:(0,z.jsx)(U,{label:`fn`,taps:ae,scolded:k,take:()=>{A(!0)}})})]}),e===`try`&&(0,z.jsxs)(z.Fragment,{children:[(0,z.jsxs)(`div`,{className:`flex flex-1 items-center justify-center gap-3`,children:[(0,z.jsx)(`span`,{"data-avatar-stage":!0,className:`block size-11`,"aria-hidden":!0}),(0,z.jsx)(U,{label:`fn`,taps:ae,scolded:k,take:()=>{A(!0)}})]}),(0,z.jsx)(`p`,{className:`text-center text-[11px] leading-tight text-white/45`,children:b(k?`companionIntro.key.scolded`:`companionIntro.try.how`)})]}),O!==void 0&&(0,z.jsxs)(`div`,{className:`flex flex-1 items-center justify-center gap-4`,children:[(0,z.jsxs)(`div`,{className:`flex flex-col items-center gap-1.5`,children:[(0,z.jsx)(`span`,{className:`flex size-10 items-center justify-center rounded-xl bg-white/10 text-white/85`,children:O.icon}),(0,z.jsx)(`span`,{className:`text-[10px] leading-none text-white/40`,children:b(`companionIntro.call.click`)})]}),(0,z.jsxs)(`div`,{className:`flex flex-col items-center gap-1.5`,children:[(0,z.jsx)(`span`,{className:`flex h-10 items-center rounded-xl border px-3 text-[13px] font-medium transition-colors ${oe?`border-emerald-300/90 bg-emerald-400/55 text-emerald-50`:`border-white/15 bg-white/10 text-white/85`}`,children:O.shortcut}),(0,z.jsx)(`span`,{className:`text-[10px] leading-none text-white/40`,children:b(`companionIntro.call.shortcut`)})]})]})]})]}),(0,z.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between gap-2 pt-2`,children:[(0,z.jsx)(`div`,{className:`flex items-center gap-1`,"aria-hidden":!0,children:s.map(e=>(0,z.jsx)(`span`,{className:`size-1.5 rounded-full transition-colors`,style:{backgroundColor:e===E?c??`#5eead4`:`rgba(255,255,255,.2)`}},e))}),(0,z.jsxs)(`div`,{className:`flex items-center gap-1`,children:[C?null:(0,z.jsx)(`button`,{type:`button`,className:`h-8 whitespace-nowrap rounded-full px-3 text-[14px] text-white/60 transition-colors hover:bg-white/10 hover:text-white`,onClick:()=>p?.(`back`),children:b(`companionIntro.back`)}),(0,z.jsx)(`button`,{type:`button`,className:`h-8 whitespace-nowrap rounded-full bg-white/15 px-3 text-[14px] text-white transition-colors hover:bg-white/25`,onClick:()=>p?.(`next`),children:b(S?`companionIntro.done`:T&&!ee?`companionIntro.permission.skip`:`companionIntro.next`)})]})]})]})}function U({label:e,taps:t=0,scolded:n=!1,take:r}){let i=t>=2?`border-emerald-300/90 bg-emerald-400/55 text-emerald-50`:t===1?`border-emerald-400/70 bg-emerald-400/20 text-emerald-100`:`border-white/20 bg-white/10 text-white/85`,a=(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(w,{className:`size-4`,"aria-hidden":!0}),(0,z.jsx)(`span`,{className:`absolute bottom-1 left-1.5 text-[9px] leading-none opacity-70`,"aria-hidden":!0,children:e})]}),o=`relative inline-flex size-11 items-center justify-center rounded-lg border font-medium shadow-[inset_0_-2px_0_rgba(0,0,0,.4)] transition-[color,background-color,border-color,transform] ${i} ${n?`scale-90 opacity-70`:``}`;return r===void 0?(0,z.jsx)(`span`,{className:o,"aria-label":e,children:a}):(0,z.jsx)(`button`,{type:`button`,className:`${o}${t===0?`hover:border-white/40 hover:bg-white/20`:``}`,"aria-label":e,onClick:r,children:a})}var Ee=e=>e.filter(e=>e.state===`running`),W=e=>e.filter(e=>e.state===`waiting`),De=e=>({"--companion-ring-accent":e});function Oe({size:e,still:t=!1}){return(0,z.jsxs)(`svg`,{width:e,height:e,viewBox:`0 0 16 16`,className:`shrink-0 ${t?``:`companion-work-spin`}`,"aria-hidden":!0,children:[(0,z.jsx)(`circle`,{cx:`8`,cy:`8`,r:`6`,fill:`none`,stroke:`var(--companion-ring-accent)`,strokeOpacity:`0.2`,strokeWidth:`2`}),(0,z.jsx)(`circle`,{cx:`8`,cy:`8`,r:`6`,fill:`none`,stroke:`var(--companion-ring-accent)`,strokeWidth:`2`,strokeLinecap:`round`,strokeDasharray:t?void 0:`10 28`,strokeOpacity:t?.6:void 0})]})}function ke({state:e}){return e===`done`?(0,z.jsx)(D,{className:`companion-work-pop size-3.5 shrink-0 text-[var(--companion-ring-accent)]`,"aria-hidden":!0}):(0,z.jsx)(N,{className:`companion-work-pop size-3.5 shrink-0 text-white/50`,"aria-hidden":!0})}function Ae(e){let t=Math.max(0,Math.floor(e/1e3));return`${Math.floor(t/60)}:${(t%60).toString().padStart(2,`0`)}`}function G(){let[e,t]=(0,L.useState)(()=>Date.now());return(0,L.useEffect)(()=>{let e=window.setInterval(()=>{t(Date.now())},1e3);return()=>{window.clearInterval(e)}},[]),e}function je({work:e,accentHex:t}){let{t:n}=v(),r=G(),i=e.slice(0,5),a=e.length-i.length;return(0,z.jsxs)(`div`,{className:`flex w-full min-w-[300px] flex-col gap-1.5 px-4 py-3 text-[12px] text-white/85`,style:De(t),"data-companion-work-shelf":!0,children:[i.map(e=>(0,z.jsxs)(`div`,{className:`flex items-center gap-2`,children:[e.state===`running`||e.state===`waiting`?(0,z.jsx)(Oe,{size:14,still:e.state===`waiting`}):(0,z.jsx)(ke,{state:e.state}),(0,z.jsx)(`span`,{className:`max-w-[55%] shrink-0 truncate font-medium ${e.state===`done`||e.state===`failed`?`text-white/55`:``}`,children:e.title}),(0,z.jsx)(`span`,{className:`companion-work-fade min-w-0 flex-1 truncate text-white/50`,children:e.state===`running`?e.step:e.state===`waiting`?n(`companionSurface.workWaitingStep`):e.state===`done`?n(`companionSurface.workDone`):n(`companionSurface.workStopped`)},e.state===`running`?e.step:e.state),e.kind===`subagent`?(0,z.jsx)(`span`,{className:`shrink-0 text-[11px] text-white/40 tabular-nums`,children:Ae(r-e.startedAt)}):null]},e.id)),a>0?(0,z.jsx)(`div`,{className:`pl-[22px] text-[11px] text-white/40`,children:n(`companionSurface.workMore`,{count:a})}):null]})}var Me={min:3,max:10},Ne=(e=Math.random)=>{let t=e();return t<1/3?`top`:t<2/3?`topLeft`:`topRight`},Pe=1600,Fe=.22,Ie=.04,Le=4,Re=(e,t)=>{let n=Math.min(.95,Math.max(.25,e.eyeCenterFrac+e.eyeHalfFrac+Ie)),r=Math.min(t,24,14/n),i=r*n;return{size:r,exposed:i,clip:{width:r+2*Le,height:i+Le},rest:i+2}},ze=(e,t=Math.random)=>(e.min+t()*(e.max-e.min))*1e3;function Be(e,t=Me){let[n,r]=(0,L.useState)(0),{min:i,max:a}=t;return(0,L.useEffect)(()=>{if(!e)return;let t,n=()=>{t=setTimeout(()=>{r(e=>e+1),n()},ze({min:i,max:a}))};return n(),()=>{clearTimeout(t)}},[e,i,a]),n}var Ve=(e,t,n={width:0,height:0})=>{let r=e===`topLeft`?n.width/4:e===`topRight`?n.width*3/4:n.width/2;return{slot:{width:t.width,height:t.height,bottom:`100%`,left:r-t.width/2}}};function He({character:e,capsule:t,enabled:n,held:r=!1,edge:i,interval:a=Me,className:o,style:s}){let l=b(),d=(0,L.useMemo)(()=>u(c,e),[e]),f=Be(n&&!r&&!l&&d!==null,a),[m,h]=(0,L.useState)(!1),[g,_]=(0,L.useState)(`top`);if((0,L.useEffect)(()=>{if(f===0)return;_(Ne()),h(!0);let e=setTimeout(()=>{h(!1)},Pe);return()=>{clearTimeout(e)}},[f]),d===null||l)return null;let v=Re(d,t.width),x=r||m,S=i??g,C=Ve(S,v.clip,t);return(0,z.jsx)(`div`,{className:`companion-peek ${o??``}`,style:{width:t.width,height:t.height,...s},"data-risen":x,"data-edge":S,"aria-hidden":!0,children:(0,z.jsx)(`div`,{className:`absolute`,style:C.slot,children:(0,z.jsx)(`div`,{className:`absolute inset-0 overflow-hidden`,children:(0,z.jsx)(y.div,{className:`absolute left-1/2`,style:{width:v.size,height:v.size,marginLeft:-v.size/2,top:v.clip.height-v.exposed},initial:{y:v.rest},animate:{y:x?0:v.rest},transition:r?{duration:0}:x?{type:`spring`,stiffness:280,damping:14}:{duration:Fe,ease:`easeIn`},children:(0,z.jsx)(p,{components:c,traits:e,size:v.size})})})})})}var Ue=(0,L.createContext)(`above`),We=`#5eead4`,Ge=new Set([`transcribing`,`thinking`,`speaking`]),K=28,q={idle:{width:64,height:14},closing:K,rim:2,bloom:4},Ke=q.idle,qe=(e,t,n)=>[`inset 0 0 0 ${t}px color-mix(in srgb, ${e} 78%, transparent)`,`0 0 ${n}px color-mix(in srgb, ${e} 85%, transparent)`,`0 0 ${n*4}px color-mix(in srgb, ${e} 42%, transparent)`,`0 8px 24px rgba(0, 0, 0, 0.45)`].join(`, `),Je=244,Ye=200,J=120,Xe=32,Ze={watching:40,summary:220,dictating:Je+32,offer:Ye+32,call:4+J+180},Qe=84,$e={width:28,height:Qe+140+20};function et({phase:e,assistantName:t=``,accentHex:n=We,avatarSrc:r,character:i,hovered:a=!1,growth:s=`right`,avatarBox:c=o,optionsBox:l=o,cardGrowth:u=`up`,dock:d=`bottom`,rootRef:f,restingPillRef:p,avatarRef:m,onSurfacePointerDown:h,onSurfaceContextMenu:g,spotlight:_,avatarStaged:y=!1,avatarTucked:x=!1,onWatch:S,onTeach:C,picking:w=!1,sharing:T=!1,shareEnabled:ee=!1,sharePicking:E=!1,onShare:D,onStopShare:O,annotating:k=!1,annotationTool:A,onAnnotationTool:te,drawToolsRef:j,onAnnotate:ne,marked:M=!1,onClearMarks:re,openPicker:ie,onPicker:N,shortcuts:ae,onAvatarClick:oe,working:P=!1,watching:F=!1,watchRetro:I,onWatchRetro:se,dictationOffer:le,offer:ue,watchEnabled:de=!1,dictating:fe,dictationText:pe=``,call:R,onControl:me,intro:he,picker:ge,prompt:_e,promptRef:ve,promptsDeferred:ye=0,onReviewPrompts:be,onWorkShelfChange:xe}){let{t:B}=v(),V=e===`call`?R?.work:void 0,H=V!==void 0&&V.length>0,[Se,Ce]=(0,L.useState)(!1);(0,L.useEffect)(()=>{H||Ce(!1)},[H]);let we=d===`left`||d===`right`?void 0:_e,Te=we==null?Se&&H:!1;(0,L.useEffect)(()=>{xe?.(Te)},[xe,Te]);let U=(0,L.useMemo)(()=>we??(Se&&H?(0,z.jsx)(je,{work:V,accentHex:n}):void 0),[we,Se,H,V,n]),Ee=e!==`resting`,W=e===`call`||e===`dictating`||e===`offer`||e===`summary`||e===`watching`,De=(0,L.useRef)(null),[Oe,ke]=(0,L.useState)(null),Ae=_===`talk`?void 0:_;(0,L.useEffect)(()=>{if(Ae===void 0){ke(null);return}return nt(De,`[data-control="${Ae}"]`,e=>{ke(e.x)})},[Ae,e,T]);let[G,Me]=(0,L.useState)(null);(0,L.useEffect)(()=>{if(!y){Me(null);return}return nt(De,`[data-avatar-stage]`,Me)},[y,e]);let[Ne,Pe]=(0,L.useState)(!1);(0,L.useEffect)(()=>{if(e!==`hover`){Pe(!1);return}let t=setTimeout(()=>{Pe(!0)},500);return()=>{clearTimeout(t)}},[e]);let Fe=he==null?_===`talk`||e===`hover`&&Ne:!1,Ie=I===`pending`,Le=P||R!==void 0&&Ge.has(R.phase),Re=b(),ze=(0,L.useRef)(null),[Be,Ve]=(0,L.useState)(null),He=(0,L.useRef)({width:0,height:0});(0,L.useLayoutEffect)(()=>{let e=ze.current;if(!e)return;let t=()=>{Ve({width:e.scrollWidth-He.current.width,height:e.scrollHeight-He.current.height})};t();let n=new ResizeObserver(t);return n.observe(e),()=>{n.disconnect()}},[e]);let{scale:K,avatarRel:Ke,avatarHalf:Je,gap:Ye,inUnits:J,lineAt:Xe,edgeAt:Qe}=ce(c,l),et=e===`call`,Y=et&&(d===`left`||d===`right`),tt=Y?d===`left`?`right`:`left`:`above`,X=W?Y?(Be?.width??$e.width)+16:o+(Be?.width??Ze[e])+8:0,dt=W?o+(Be?.height??$e.height)+8:0,Z=et&&U!=null,pt=(0,L.useRef)(null),[mt,ht]=(0,L.useState)({width:0,height:0});(0,L.useLayoutEffect)(()=>{let e=pt.current;if(!Z||e===null)return;let t=()=>{let t=e.getBoundingClientRect();ht({width:Math.ceil(t.width/K),height:Math.ceil(t.height/K)})};t();let n=new ResizeObserver(t);return n.observe(e),()=>{n.disconnect()}},[Z,U,K]);let gt=Z&&!Y?Math.max(X,mt.width):X,_t=Z&&Y?Math.max(dt,mt.height):dt,vt=Y?_t-dt:gt-X;(0,L.useLayoutEffect)(()=>{He.current=Y?{width:0,height:vt}:{width:vt,height:0}},[vt,Y]);let Q=Y?`50%`:Xe(u,0),yt=Qe(s,s===`left`?l/2:-(l/2)),bt=c/o,xt=Ee?{width:q.closing*bt,height:q.closing*bt}:q.idle,St=he!=null,Ct=et?{width:gt,...Y?{height:_t}:{},left:`50%`,top:Q,transform:`translate(-50%, -50%)`,transitionTimingFunction:`cubic-bezier(.2,.8,.2,1)`}:{width:X,...yt,top:Q,transform:`translateY(-50%)`,transitionTimingFunction:`cubic-bezier(.2,.8,.2,1)`},$=G===null?Oe!==null&&!Y?`${Oe}px`:et&&!Y?`calc(50% - ${gt/2-o/2}px)`:`50%`:`${G.x}px`,wt=G===null?Oe!==null&&!Y?`calc(${Q} - ${J(Je+Ye)+22}px)`:Y?`calc(50% - ${_t/2-o/2}px)`:Q:`${G.y}px`;return(0,z.jsxs)(`div`,{ref:De,className:`absolute top-0 left-0 origin-top-left`,style:{width:`${100/K}%`,height:`${100/K}%`,transform:`scale(${K})`},children:[Z?(0,z.jsx)(ut,{dock:d,top:Q,width:Y?mt.width:gt,height:_t,barThickness:Y?X:44,promptRef:ve,children:U}):null,Z?(0,z.jsx)(`div`,{ref:pt,inert:!0,"aria-hidden":!0,"data-theme":`dark`,className:`pointer-events-none invisible absolute top-0 left-0 w-max ${Y?`max-w-[400px]`:`max-w-[640px]`}`,children:U}):null,(0,z.jsxs)(`div`,{className:`absolute flex cursor-grab items-center rounded-full duration-300 select-none active:cursor-grabbing ${Y?`flex-col transition-[width,height] will-change-[width,height]`:`h-11 transition-[width] will-change-[width]`} ${!et&&s===`left`?`justify-end`:``}`,style:Ct,onPointerDown:h,onContextMenu:g,ref:f,children:[(0,z.jsx)(`span`,{className:`absolute inset-0 rounded-full transition-opacity duration-200 ${Z?`bg-[#17181b]`:`border border-white/10 bg-[#17181b]/95 shadow-lg shadow-black/40`}`,style:{opacity:+!!W},"aria-hidden":!0}),(0,z.jsx)(`div`,{className:`relative flex shrink-0 items-center ${Y?`flex-col`:`h-11`}`,style:Y?{paddingTop:o,paddingBottom:8,paddingInline:8}:s===`left`?{paddingLeft:8,paddingRight:o}:{paddingLeft:o,paddingRight:8},children:(0,z.jsx)(`div`,{className:`flex items-center gap-1 overflow-hidden transition-opacity duration-200 ${Y?`min-h-0 flex-col`:`min-w-0`}`,ref:ze,inert:!W,style:{opacity:+!!W,transitionDelay:W?`120ms`:`0ms`},children:e===`call`?(0,z.jsx)(Ue.Provider,{value:tt,children:(0,z.jsx)(ft,{call:R,assistantName:t,spotlight:_,watching:F,watchEnabled:de,picking:w,sharing:T,shareEnabled:ee,sharePicking:E,annotating:k,marked:M,annotationTool:A,vertical:Y,drawToolsPlacement:Y?d===`left`?`right`:`left`:u===`up`?`above`:`below`,drawToolsRef:j,onAnnotationTool:te,onControl:me,onWatch:S,onTeach:C,onShare:D,onStopShare:O,onAnnotate:ne,onClearMarks:re,openPicker:ie,onPicker:N,pickerSide:Y?d===`left`?`right`:`left`:d===`top`?`below`:`above`,shortcuts:ae,promptsDeferred:ye,lineExtra:vt,onReviewPrompts:be,accentHex:n,workShelfOpen:Te,onToggleWorkShelf:()=>{Ce(e=>!e)}})}):e===`dictating`&&fe!==void 0?(0,z.jsx)(ot,{dictating:fe,dictationText:pe}):e===`summary`&&I!==void 0?(0,z.jsx)(lt,{retro:I,onWatchRetro:se}):e===`offer`&&le!==void 0?(0,z.jsx)(st,{offer:le}):(0,z.jsx)(ct,{watching:F,onWatch:S})})})]}),(0,z.jsx)(`div`,{className:`absolute cursor-grab active:cursor-grabbing`,style:{width:J(q.idle.width),height:J(q.idle.height),pointerEvents:Ee?`none`:void 0,left:`50%`,top:Q,transform:`translate(-50%, -50%)`},onPointerDown:h,onContextMenu:g,ref:p,"aria-hidden":!0,children:(0,z.jsx)(`div`,{className:`absolute top-1/2 left-1/2 rounded-full transition-[width,height,opacity] duration-300`,style:{width:J(xt.width),height:J(xt.height),transform:`translate(-50%, -50%)`,transitionTimingFunction:`cubic-bezier(.2,.8,.2,1)`,transitionProperty:Re?`opacity`:void 0,boxShadow:qe(n,J(q.rim),J(q.bloom)),opacity:Ee||G!==null||St&&!x?0:1}})}),(0,z.jsx)(it,{className:Fe?`opacity-100`:`opacity-0`,"data-companion-name":Fe?`shown`:`hidden`,style:{left:`50%`,top:Q,transform:`translate(-50%, calc(-100% - ${J(Je)}px - ${rt}px))`},label:B(`companionSurface.talk`)}),(0,z.jsx)(at,{label:B(e===`call`?`companionSurface.openVellum`:`companionSurface.talk`),accentHex:n,avatarSrc:r,character:i,attentive:a,busy:Le||F||Ie,collapsed:!Ee&&(!St||x),restingScale:o/c,style:{left:$,top:wt,zIndex:G===null?void 0:2,transform:`translate(-50%, -50%)${Ke===1?``:` scale(${Ke})`}`,transition:Re?void 0:Oe===null&&G===null?`left 300ms cubic-bezier(.2,.8,.2,1), top 300ms cubic-bezier(.2,.8,.2,1)`:`left 420ms cubic-bezier(.34,1.56,.64,1), top 420ms cubic-bezier(.34,1.56,.64,1)`},elementRef:m,onPointerDown:h,onContextMenu:g,onClick:oe}),he,ge,ue]})}var Y=`rgba(28, 28, 30, 0.55)`,tt=`backdrop-blur-md backdrop-saturate-150`,nt=(e,t,n)=>{let r=0,i=performance.now(),a=()=>{let o=e.current,s=o?.querySelector(t);if(o&&s){let e=o.getBoundingClientRect(),t=s.getBoundingClientRect(),r=e.width===0?1:o.offsetWidth/e.width;n({x:(t.left+t.width/2-e.left)*r,y:(t.top+t.height/2-e.top)*r})}performance.now()-i<500&&(r=requestAnimationFrame(a))};return a(),()=>{cancelAnimationFrame(r)}},rt=4;function it({className:e,style:t,label:n,shortcut:r,beak:i=`down`,...a}){return(0,z.jsxs)(`span`,{className:`pointer-events-none absolute rounded-md px-2 py-1 text-[11px] leading-4 font-medium whitespace-nowrap text-white/90 shadow-md shadow-black/30 transition-opacity duration-200 ${tt} ${e}`,style:{...t,backgroundColor:Y},"aria-hidden":!0,...a,children:[n,r===void 0?null:(0,z.jsx)(`span`,{className:`ml-1.5 font-normal text-white/60`,"data-shortcut":!0,children:r}),(0,z.jsx)(`span`,{className:`absolute ${i===`down`?`top-full left-1/2 h-1.5 w-2.5 -translate-x-1/2`:i===`left`?`top-1/2 right-full h-2.5 w-1.5 -translate-y-1/2`:`top-1/2 left-full h-2.5 w-1.5 -translate-y-1/2`} ${tt}`,style:{backgroundColor:Y,clipPath:i===`down`?`polygon(0 0, 100% 0, 50% 100%)`:i===`left`?`polygon(100% 0, 100% 100%, 0 50%)`:`polygon(0 0, 0 100%, 100% 50%)`},"aria-hidden":!0})]})}function at({accentHex:e,avatarSrc:t,character:n,busy:r=!1,attentive:i=!1,collapsed:a=!1,restingScale:o=1,label:s,style:l,elementRef:u,onPointerDown:d,onContextMenu:f,onClick:m}){let h=b();return(0,z.jsxs)(`div`,{role:`button`,"aria-label":s,className:`absolute grid size-11 cursor-grab place-items-center active:cursor-grabbing`,style:l,ref:u,onPointerDown:d,onContextMenu:f,onClick:m,children:[n===void 0?null:(0,z.jsx)(He,{character:n,capsule:Ke,enabled:a&&!r,className:`absolute top-1/2 left-1/2 transition-opacity duration-200`,style:{transform:`translate(-50%, -50%) scale(${o})`,opacity:+!!a}}),(0,z.jsx)(`div`,{className:`transition-[opacity,transform] duration-300`,style:{opacity:+!a,transform:a?`scale(0.35)`:`scale(1)`,transitionTimingFunction:`cubic-bezier(.2,.8,.2,1)`,transitionProperty:h?`opacity`:void 0},children:(0,z.jsx)(`div`,{className:`companion-avatar-bob relative grid place-items-center`,style:{animation:h?`none`:void 0},children:n===void 0?t===void 0?(0,z.jsx)(`span`,{className:`relative size-7 rounded-full drop-shadow-[0_1px_3px_rgba(0,0,0,0.55)]`,style:{background:e},"aria-hidden":!0}):(0,z.jsx)(`img`,{src:t,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,z.jsx)(`div`,{className:`relative drop-shadow-[0_1px_3px_rgba(0,0,0,0.55)]`,children:(0,z.jsx)(p,{components:c,traits:n,size:K,isAssistantBusy:r,attentive:i})})})})]})}function ot({dictating:e,dictationText:t}){let{t:n}=v(),r=t.trim();return(0,z.jsxs)(`div`,{className:`flex h-7 shrink-0 items-center gap-2 px-1`,children:[(0,z.jsx)(T,{className:`size-4 shrink-0`,"aria-hidden":!0}),r?(0,z.jsx)(`span`,{dir:`auto`,className:`flex justify-end overflow-hidden text-[12px] whitespace-nowrap text-white/85`,style:{width:Je},children:(0,z.jsx)(`span`,{className:`shrink-0`,children:r})}):(0,z.jsx)(`span`,{className:`truncate text-[12px] text-white/85`,style:{width:Je},children:n(e===`listening`?`companionSurface.dictating`:`companionSurface.dictatingTranscribing`)})]})}function st({offer:e}){let{t}=v();return(0,z.jsxs)(`div`,{className:`flex h-7 shrink-0 items-center gap-2 px-1`,children:[(0,z.jsx)(T,{className:`size-4 shrink-0`,"aria-hidden":!0}),(0,z.jsx)(`span`,{className:`truncate text-[12px] text-white/85`,style:{width:Ye},children:e.reason===`claimed`?t(`companionSurface.offerHeard`,{app:e.app}):t(he(e.reason))})]})}function ct({watching:e=!1,onWatch:t}){return(0,z.jsx)(z.Fragment,{children:e&&(0,z.jsx)(vt,{onWatch:t})})}function X({watching:e,watchEnabled:t,picking:n,dimmed:r,onWatch:i,onTeach:a}){let{t:o}=v();return t?(0,z.jsx)($,{icon:(0,z.jsx)(ne,{className:`size-4`}),label:o(`companionSurface.teach`),dimmed:r,pressed:e||n,onClick:e?i:a??i}):e?(0,z.jsx)(vt,{onWatch:i}):null}function lt({retro:e,onWatchRetro:t}){let{t:n}=v();return e===`pending`?(0,z.jsx)(`span`,{className:`ml-1 shrink-0 text-[12px] text-white/85`,children:n(`companionSurface.summarizing`)}):(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)($,{icon:(0,z.jsx)(re,{className:`size-4`}),label:n(`companionSurface.showSummary`),showLabel:!0,onClick:()=>{t?.(!0)}}),(0,z.jsx)($,{icon:(0,z.jsx)(N,{className:`size-4`}),label:n(`companionSurface.notNow`),showLabel:!0,onClick:()=>{t?.(!1)}})]})}function ut({dock:e,top:t,width:n,height:r,barThickness:i,promptRef:a,children:o}){let s=i/2,c=e===`top`?`below`:e===`left`?`right`:e===`right`?`left`:`above`,l=c===`left`||c===`right`,u=l?{left:`50%`,top:t,width:n+s,height:r,transform:c===`right`?`translate(0, -50%)`:`translate(-100%, -50%)`,[c===`right`?`paddingLeft`:`paddingRight`]:s}:{left:`50%`,top:t,width:n,transform:c===`below`?`translate(-50%, 0)`:`translate(-50%, -100%)`,[c===`below`?`paddingTop`:`paddingBottom`]:s},d={above:`rounded-t-[22px]`,below:`rounded-b-[22px]`,left:`rounded-l-[22px]`,right:`rounded-r-[22px]`}[c];return(0,z.jsxs)(`div`,{ref:a,"data-theme":`dark`,"data-shelf-side":c,className:`absolute`,style:u,onPointerDown:e=>{e.stopPropagation()},children:[(0,z.jsx)(`span`,{"aria-hidden":!0,className:`absolute inset-0 bg-[#17181b] shadow-lg shadow-black/40 ${d}`}),(0,z.jsx)(`span`,{"aria-hidden":!0,className:`absolute bg-white/10 ${l?`top-4 bottom-4 w-px`:`right-4 left-4 h-px`}`,style:{[dt[c]]:s}}),(0,z.jsx)(`div`,{className:`relative`,children:o})]})}var dt={above:`bottom`,below:`top`,left:`right`,right:`left`};function ft({call:e,assistantName:t,spotlight:n,watching:r,watchEnabled:i,picking:a,sharing:o,shareEnabled:s,sharePicking:c,annotating:l,marked:u,annotationTool:d,vertical:f,drawToolsPlacement:p,drawToolsRef:m,onAnnotationTool:h,onControl:g,onWatch:_,onTeach:y,onShare:b,onStopShare:x,onAnnotate:S,onClearMarks:C,openPicker:w,onPicker:T,pickerSide:ee,shortcuts:E,promptsDeferred:D=0,onReviewPrompts:O,lineExtra:A=0,accentHex:te,workShelfOpen:j,onToggleWorkShelf:ne}){let{t:M}=v();if(e===void 0)return(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(Z,{vertical:f,extra:A,text:t===``?M(`companionSurface.calling`):M(`companionSurface.callingNamed`,{name:t})}),(0,z.jsx)(X,{watching:r,watchEnabled:i,picking:a,onWatch:_,onTeach:y}),(0,z.jsx)(_t,{onControl:g})]});let re=e.work===void 0&&e.detail||e.label,N=e.work??[],oe=N.length>0,{muted:F,outputMuted:I}=e,se=e.assistantName;return(0,z.jsxs)(z.Fragment,{children:[oe?(0,z.jsx)(xt,{work:N,accentHex:te,open:j,onToggle:ne}):null,(0,z.jsx)(Z,{vertical:f,extra:A-(!f&&oe?Xe:0),text:re}),D>0?(0,z.jsx)(`button`,{type:`button`,"data-theme":`dark`,"aria-label":M(`companionPopover.pendingBadge`,{count:D}),className:`flex size-7 shrink-0 items-center justify-center rounded-full bg-[var(--system-negative-weak)] text-[13px] text-[var(--system-negative-strong)] transition-colors hover:bg-[var(--system-negative-hover)] hover:text-white`,onPointerDown:e=>{e.stopPropagation()},onClick:()=>{O?.()},children:D}):null,(0,z.jsx)(X,{watching:r,watchEnabled:i,picking:a,dimmed:n!==void 0,onWatch:_,onTeach:y}),(0,z.jsx)(pt,{sharing:o,shareEnabled:s,sharePicking:c,shortcut:s?E?.share:void 0,spotlit:n===`share`,dimmed:n!==void 0&&n!==`share`,onShare:b,onStopShare:x}),(0,z.jsx)(mt,{sharing:o,annotating:l,spotlit:n===`draw`,dimmed:n!==void 0&&n!==`draw`,shortcut:s?E?.draw:void 0,tool:d,placement:p,toolsRef:m,onAnnotate:S,onTool:h}),(0,z.jsx)(gt,{sharing:o,marked:u,dimmed:n!==void 0,onClearMarks:C}),(0,z.jsx)($,{icon:I?(0,z.jsx)(ae,{className:`size-4`}):(0,z.jsx)(ie,{className:`size-4`}),label:se===``?M(I?`companionSurface.unmuteAssistant`:`companionSurface.muteAssistant`):M(I?`companionSurface.unmuteAssistantNamed`:`companionSurface.muteAssistantNamed`,{name:se}),shortcut:E?.muteAssistant,spotlit:n===`mute`,dimmed:n!==void 0&&n!==`mute`,onClick:()=>{g?.(I?`unmuteAssistantAudio`:`muteAssistantAudio`)}}),(0,z.jsx)($,{icon:F?(0,z.jsx)(k,{className:`size-4`}):(0,z.jsx)(P,{className:`size-4`}),label:M(F?`companionSurface.unmuteMicrophone`:`companionSurface.muteMicrophone`),shortcut:E?.muteMicrophone,control:`mute`,spotlit:n===`mute`,dimmed:n!==void 0&&n!==`mute`,onClick:()=>{g?.(F?`unmuteMicrophone`:`muteMicrophone`)}}),(0,z.jsx)(Ct,{picker:`microphones`,label:M(`companionSurface.chooseMicrophone`),side:ee,open:w===`microphones`,onPicker:T}),(0,z.jsx)(_t,{dimmed:n!==void 0,onControl:g})]})}function Z({vertical:e,text:t,extra:n=0}){return e?(0,z.jsx)(`span`,{className:`mt-1 shrink-0 truncate text-[12px] text-white/85`,style:{height:Qe+n,writingMode:`vertical-rl`},"data-label":`line`,children:t}):(0,z.jsx)(`span`,{className:`ml-1 shrink-0 truncate text-[12px] text-white/85`,style:{width:J+n},"data-label":`line`,children:t})}function pt({sharing:e,shareEnabled:t,sharePicking:n,shortcut:r,spotlit:i,dimmed:a,onShare:o,onStopShare:s}){let{t:c}=v();return!t&&!e?null:(0,z.jsx)($,{icon:(0,z.jsx)(ue,{className:`size-4`}),label:c(`companionSurface.share`),shortcut:r,control:`share`,spotlit:i,dimmed:a,pressed:e||n,onClick:e?s:o})}function mt({sharing:e,annotating:t,shortcut:n,spotlit:r,dimmed:i,tool:a,placement:o,toolsRef:s,onAnnotate:c,onTool:l}){let{t:u}=v();return e?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)($,{icon:(0,z.jsx)(M,{className:`size-4`}),label:u(`companionSurface.draw`),shortcut:n,control:`draw`,spotlit:r,dimmed:i,pressed:t,className:`companion-draw-anchor`,onClick:()=>{c?.(!t)}}),t&&a!==void 0&&(0,z.jsx)(ht,{tool:a,placement:o,toolsRef:s,onTool:l})]}):null}function ht({tool:e,placement:t,toolsRef:n,onTool:r}){let{t:i}=v(),a=[{tool:`freehand`,icon:(0,z.jsx)(M,{className:`size-4`}),label:i(`companionSurface.drawFreehand`)},{tool:`line`,icon:(0,z.jsx)(de,{className:`size-4`}),label:i(`companionSurface.drawLine`)},{tool:`box`,icon:(0,z.jsx)(ee,{className:`size-4`}),label:i(`companionSurface.drawBox`)},{tool:`circle`,icon:(0,z.jsx)(C,{className:`size-4`}),label:i(`companionSurface.drawCircle`)}];return(0,z.jsx)(`div`,{className:`companion-draw-tools absolute flex items-center gap-0.5 rounded-full border border-white/10 bg-[#17181b]/95 p-0.5 shadow-lg shadow-black/40 companion-draw-tools-${t} ${t===`left`||t===`right`?`flex-col`:``}`,role:`group`,"aria-label":i(`companionSurface.drawTools`),"data-testid":`companion-draw-tools`,ref:n,onPointerDown:e=>{e.stopPropagation()},children:a.map(t=>(0,z.jsx)($,{icon:t.icon,label:t.label,pressed:e===t.tool,onClick:()=>{r?.(t.tool)}},t.tool))})}function gt({sharing:e,marked:t,dimmed:n,onClearMarks:r}){let{t:i}=v();return!e||!t?null:(0,z.jsx)($,{icon:(0,z.jsx)(le,{className:`size-4`}),label:i(`companionSurface.clearMarks`),dimmed:n,onClick:()=>{r?.()}})}function _t({dimmed:e,onControl:t}){let{t:n}=v();return(0,z.jsx)($,{icon:(0,z.jsx)(N,{className:`size-4`,strokeWidth:2.5}),label:n(`companionSurface.endSession`),tone:`negative`,dimmed:e,onClick:()=>{t?.(`endSession`)}})}function vt({onWatch:e}){let{t}=v();return(0,z.jsx)($,{icon:(0,z.jsx)(te,{className:`size-4`}),label:t(`companionSurface.stopTeaching`),onClick:e})}var Q=`-translate-y-[calc(50%+22px)]`,yt={right:`translate-x-[calc(50%+22px)]`,left:`-translate-x-[calc(50%+22px)]`},bt=e=>e===`above`?{className:Q,beak:`down`}:{className:yt[e],beak:e===`right`?`left`:`right`};function xt({work:e,accentHex:t,open:n,onToggle:r}){let{t:i}=v(),a=bt((0,L.useContext)(Ue)),o=Ee(e),s=W(e),c=o.length>0?o:s,l=e.at(-1),u=(c.length>0?c:e).map(e=>e.title).join(` · `);return(0,z.jsxs)(`button`,{type:`button`,"aria-label":o.length===0&&s.length>0?i(`companionSurface.workWaiting`,{count:s.length}):i(`companionSurface.workCount`,{count:o.length}),"aria-expanded":r===void 0?void 0:n,"data-control":`work`,disabled:r===void 0,className:`group flex h-7 shrink-0 items-center justify-center rounded-full px-1.5 transition-colors enabled:hover:bg-white/15 ${n?`bg-white/15`:``}`,style:{...De(t),width:Xe},onPointerDown:e=>{e.stopPropagation()},onClick:r,children:[(0,z.jsx)(`span`,{className:`relative grid size-5 place-items-center`,children:c.length>0?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(`span`,{className:`absolute inset-0 grid place-items-center`,children:(0,z.jsx)(Oe,{size:20,still:o.length===0})}),(0,z.jsx)(`span`,{className:`text-[10px] leading-none font-semibold text-white/90 tabular-nums`,children:c.length})]}):(0,z.jsx)(ke,{state:l?.state===`failed`?`failed`:`done`})}),n?null:(0,z.jsx)(it,{label:u,className:`opacity-0 group-hover:opacity-100 ${a.className}`,beak:a.beak,"data-label":`hover`})]})}var St={above:A,below:oe,left:O,right:E};function Ct({picker:e,label:t,side:n,open:r,onPicker:i}){if(i===void 0)return null;let a=St[n];return(0,z.jsx)($,{icon:(0,z.jsx)(a,{className:`size-3.5`,strokeWidth:2.25}),label:t,pressed:r,narrow:!0,onClick:()=>{i(e)}})}function $({icon:e,label:t,shortcut:n,tone:r,showLabel:i=!1,pressed:a,spotlit:o=!1,dimmed:s=!1,control:c,narrow:l=!1,className:u=``,onClick:d}){let f=bt((0,L.useContext)(Ue));return(0,z.jsxs)(`button`,{type:`button`,"aria-label":t,"aria-pressed":a,"data-control":c,onClick:d,onPointerDown:e=>{e.stopPropagation()},className:`group flex h-7 shrink-0 items-center justify-center gap-1.5 rounded-full text-[12px] transition-[background-color,opacity] duration-200 hover:bg-white/15 ${l?`-mx-1 px-0.5`:`px-2`} ${u} ${a===!0||o?`bg-white/15`:``} ${s?`opacity-35`:``} ${r===`negative`?`text-[#ff6b6b]`:r===`positive`?`text-[#5ee08a]`:`text-white/85`}`,children:[e,i?(0,z.jsx)(`span`,{children:t}):(0,z.jsx)(it,{label:t,shortcut:n,className:`opacity-0 group-hover:opacity-100 ${f.className}`,beak:f.beak,"data-label":`hover`})]})}export{we as a,_e as c,V as i,R as l,Te as n,Ce as o,H as r,B as s,et as t,me as u};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{$d as t,Al as n,BC as r,Bl as i,Cl as a,Dl as o,El as ee,Hg as s,Hl as c,Il as l,Kl as u,Ll as d,Ml as f,Ol as p,Pl as m,Qg as h,Rl as g,Sl as te,Tl as _,Ul as ne,Vl as re,bl as v,gl as y,hl as ie,jl as b,pl as x,tf as S,uC as C,vl as ae,wC as oe,wl as se,xl as ce,yl as w,zl as T}from"./app-XG_RF2yi.js";import{E as le}from"./vendor-DwMhK7fD.js";import{t as E,x as D}from"./react-B9IgSVeK.js";import{Ka as O,yn as ue}from"./icons-C0wyat6T.js";import{a as de,c as fe,l as pe,n as me,o as he,r as ge,s as _e,t as ve,u as ye}from"./companion-surface-Lu_Uj_QW.js";import{n as be}from"./companion-accent-CbS8BVae.js";import{n as xe,t as Se}from"./companion-popover-BsoxqJOP.js";import{n as k,r as Ce,t as A}from"./companion-layout-DCGXuvsw.js";var j=e(D(),1),M=E(),we=460,Te=3,N=88,Ee=3,De=[`screens`,`tabs`,`windows`],Oe=(e,t)=>t===`screens`?e.displays.length:t===`tabs`?e.tabs.length:e.windows.length,ke=e=>De.find(t=>Oe(e,t)>0)??`screens`,P=e=>e.kind===`display`?`display-${e.displayId}`:`window-${e.windowId}`;function Ae({sources:e,captureThumbnail:t,cardGrowth:n=`up`,side:i,avatarBox:a=s,optionsBox:o=s,cardRef:ee,label:c,onPick:l,onAllowScreenRecording:u}){let{t:d}=le(),{inUnits:f,lineAt:p,edgeAt:m,introStepOff:g,gap:te}=A(a,o),_=f(g(n)),ne=i===void 0?{left:`50%`,top:p(n,0),transform:n===`up`?`translate(-50%, calc(-100% - ${_}px))`:`translate(-50%, ${_}px)`}:{...m(i,h(a,o)+te),top:`50%`,transform:`translateY(-50%)`},re=e!==null&&e.screenRecordingGranted===!1,v=re?null:e,y=v===null?[]:De.filter(e=>Oe(v,e)>0),ie=v!==null&&y.length===0,[b,x]=(0,j.useState)(null),S=v===null?`screens`:b!==null&&y.includes(b)?b:ke(v),ae=(0,j.useMemo)(()=>v===null?[]:S===`screens`?v.displays.map(e=>{let t={kind:`display`,displayId:e.displayId};return{key:P(t),target:t}}):S===`windows`?v.windows.map(e=>{let t={kind:`window`,windowId:e.windowId};return{key:P(t),target:t}}):[],[S,v]),[se,ce]=(0,j.useState)(new Map),w=(0,j.useRef)(new Set),T=(0,j.useRef)(0),E=(0,j.useRef)(!1);(0,j.useEffect)(()=>(E.current=!0,()=>{E.current=!1}),[]),(0,j.useEffect)(()=>{w.current=new Set,T.current+=1,ce(new Map),x(null)},[e]);let D=(0,j.useRef)(null);(0,j.useEffect)(()=>{D.current!==null&&(D.current.scrollTop=0)},[S]),(0,j.useEffect)(()=>{if(t!==void 0)for(let{key:e,target:n}of ae){if(w.current.has(e))continue;w.current.add(e);let r=T.current,i=t=>{!E.current||r!==T.current||ce(n=>new Map(n).set(e,t))};t(n).then(i,()=>{i(null)})}},[t,ae]);let O=e=>t===void 0?null:se.get(e),de=e=>d(e===`screens`?`companionSurface.captureScreens`:e===`tabs`?`companionSurface.captureTabs`:`companionSurface.captureWindows`);return(0,M.jsxs)(`div`,{ref:ee,role:`group`,"aria-label":c??d(`companionSurface.capturePicker`),"data-companion-capture-picker":!0,"data-theme":`dark`,className:`absolute flex flex-col rounded-2xl border border-white/10 bg-[#17181b]/95 p-1.5 shadow-lg shadow-black/40`,style:{width:we,...ne},onPointerDown:e=>{e.stopPropagation()},children:[y.length>1&&(0,M.jsx)(C,{className:`mx-auto mb-1.5 w-auto shrink-0`,items:y.map(e=>({value:e,label:de(e)})),value:S,ariaLabel:d(`companionSurface.captureKind`),onChange:x}),(0,M.jsx)(oe,{ref:D,className:`max-h-48 flex-col px-0.5`,size:24,fadeEdges:`end`,hideScrollBar:!0,children:(0,M.jsxs)(`div`,{className:`flex flex-col`,"data-slot":`capture-sources`,children:[e===null&&(0,M.jsx)(Me,{}),re&&(0,M.jsxs)(`div`,{className:`flex items-center justify-between gap-3 px-2 py-2`,"data-slot":`capture-needs-grant`,children:[(0,M.jsx)(`span`,{className:`text-[12px] text-white/70`,children:d(`companionSurface.captureScreenRecordingOff`)}),(0,M.jsx)(r,{variant:`primary`,size:`compact`,className:`shrink-0`,onClick:u,children:d(`companionSurface.captureTurnOnScreenRecording`)})]}),v!==null&&S===`screens`&&(0,M.jsx)(F,{children:v.displays.map(e=>{let t=d(`companionSurface.captureScreen`,{n:e.index+1}),n=P({kind:`display`,displayId:e.displayId});return(0,M.jsx)(I,{title:t,ariaLabel:t,answer:O(n),fallback:(0,M.jsx)(ue,{className:`size-5 text-white/40`,"aria-hidden":!0}),onClick:()=>{l?.({kind:`display`,displayId:e.displayId})}},n)})}),v!==null&&S===`windows`&&(0,M.jsx)(F,{children:v.windows.map(e=>{let t=P({kind:`window`,windowId:e.windowId}),n=e.title===``?e.app:e.title;return(0,M.jsx)(I,{title:n,ariaLabel:e.title===``?n:`${n} (${e.app})`,answer:O(t),fallback:(0,M.jsx)(L,{icon:e.icon,large:!0}),icon:(0,M.jsx)(L,{icon:e.icon}),onClick:()=>{l?.({kind:`window`,windowId:e.windowId})}},t)})}),v!==null&&S===`tabs`&&(0,M.jsx)(`div`,{className:`flex flex-col`,children:v.tabs.map(e=>(0,M.jsx)(je,{icon:(0,M.jsx)(L,{icon:e.icon}),title:e.title,onClick:()=>{l?.({kind:`tab`,chromeWindowId:e.chromeWindowId,tabIndex:e.tabIndex})}},`tab-${e.chromeWindowId}-${e.tabIndex}`))}),ie&&(0,M.jsx)(`span`,{className:`px-2 py-3 text-[12px] text-white/50`,children:d(`companionSurface.captureNothing`)})]})})]})}function F({children:e}){return(0,M.jsx)(`div`,{className:`grid gap-1.5 py-0.5`,style:{gridTemplateColumns:`repeat(${Te}, minmax(0, 1fr))`},children:e})}function I({title:e,ariaLabel:t,answer:n,fallback:r,icon:i,onClick:a}){return(0,M.jsxs)(`button`,{type:`button`,"aria-label":t,"data-slot":`capture-source`,className:`group flex min-w-0 flex-col gap-1 rounded-lg p-1 text-left transition-colors outline-none hover:bg-white/10 focus-visible:ring-1 focus-visible:ring-white/40 focus-visible:ring-inset active:bg-white/15`,onClick:a,children:[(0,M.jsx)(`span`,{"data-slot":`capture-preview`,className:`flex items-center justify-center overflow-hidden rounded-md bg-black/40 ring-1 ring-white/10 ${n===void 0?`animate-pulse`:``}`,style:{height:N},children:n==null?r:(0,M.jsx)(`img`,{src:n,alt:``,draggable:!1,className:`max-h-full max-w-full object-contain`})}),(0,M.jsxs)(`span`,{className:`flex min-w-0 items-center gap-1`,children:[i,(0,M.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-[11px] text-white/75 group-hover:text-white/90`,children:e})]})]})}function je({icon:e,title:t,onClick:n}){return(0,M.jsxs)(`button`,{type:`button`,"aria-label":t,"data-slot":`capture-source`,className:`flex h-8 w-full shrink-0 items-center gap-2 rounded-lg px-2 text-left text-[12px] text-white/85 transition-colors outline-none hover:bg-white/10 focus-visible:ring-1 focus-visible:ring-white/40 focus-visible:ring-inset active:bg-white/15`,onClick:n,children:[e,(0,M.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:t})]})}function L({icon:e,large:t=!1}){return(0,M.jsx)(`span`,{className:`flex shrink-0 items-center justify-center overflow-hidden ring-1 ring-white/10 ${t?`size-7 rounded-lg`:`size-3.5 rounded-[4px]`}`,children:e===void 0?(0,M.jsx)(O,{className:t?`size-5 text-white/40`:`size-3 text-white/70`,"aria-hidden":!0}):(0,M.jsx)(`img`,{src:e,alt:``,className:`size-full`,draggable:!1})})}function Me(){return(0,M.jsx)(F,{children:Array.from({length:Ee},(e,t)=>(0,M.jsxs)(`div`,{className:`flex flex-col gap-1 p-1`,"aria-hidden":!0,children:[(0,M.jsx)(`span`,{className:`animate-pulse rounded-md bg-white/10`,style:{height:N}}),(0,M.jsx)(`span`,{className:`h-2 animate-pulse rounded-full bg-white/10`,style:{width:t===0?`70%`:`45%`}})]},t))})}var Ne=3,Pe=440;function Fe(){let{t:e}=le(),[r,h]=(0,j.useState)(`right`),[C,oe]=(0,j.useState)(`up`),[E,D]=(0,j.useState)(`bottom`),[O,ue]=(0,j.useState)(s),[A,we]=(0,j.useState)(s),[Te,N]=(0,j.useState)(),[Ee,De]=(0,j.useState)(),[Oe,ke]=(0,j.useState)(),[P,F]=(0,j.useState)(null),[I,je]=(0,j.useState)(!1),[L,Me]=(0,j.useState)(void 0),[Fe,Ie]=(0,j.useState)(``),[R,Le]=(0,j.useState)(``),[Re,ze]=(0,j.useState)(!1),[z,Be]=(0,j.useState)(!1),[Ve,He]=(0,j.useState)(void 0),[B,Ue]=(0,j.useState)(void 0),[V,We]=(0,j.useState)(void 0),[H,Ge]=(0,j.useState)(void 0),[Ke,qe]=(0,j.useState)(!1),[Je,Ye]=(0,j.useState)(!1),[Xe,Ze]=(0,j.useState)(void 0),[Qe,$e]=(0,j.useState)(!1),[et,tt]=(0,j.useState)(!1),[nt,rt]=(0,j.useState)(!1),[it,at]=(0,j.useState)(!1),[ot,st]=(0,j.useState)(void 0),[U,W]=(0,j.useState)(!1),[G,ct]=(0,j.useState)(`teach`),[lt,ut]=(0,j.useState)(null),K=(0,j.useRef)(0),[dt,q]=(0,j.useState)(!1),[J,ft]=(0,j.useState)(null),[pt,mt]=(0,j.useState)(0),[ht,gt]=(0,j.useState)(0),[_t,vt]=(0,j.useState)(void 0),Y=(0,j.useRef)(!1),yt=(0,j.useRef)(null),bt=(0,j.useRef)(null),xt=(0,j.useRef)(null),St=(0,j.useRef)(null),Ct=(0,j.useRef)(null),wt=(0,j.useRef)(null),Tt=(0,j.useRef)(null),Et=(0,j.useRef)(null),Dt=(0,j.useRef)(!1),Ot=(0,j.useCallback)(e=>{Et.current=e,e===null&&Dt.current&&(Dt.current=!1,Y.current=!1,m(!1))},[]),X=(0,j.useRef)(null),kt=(0,j.useRef)(null),At=(0,j.useRef)(!1);(0,j.useEffect)(()=>{let e=e=>{h(e.growth),oe(e.cardGrowth),D(e.dock??`bottom`),ue(e.avatarBox),we(e.optionsBox??e.avatarBox),N(e.avatarBase64===void 0?void 0:`data:image/png;base64,${e.avatarBase64}`),De(e.character),ke(e.accentHex),F(e.call),je(e.dialing===!0),Le(e.assistantName),ze(e.working),Be(e.watching===!0),Me(e.dictating),Ie(e.dictationText??``),He(e.watchRetro),Ue(e.dictationOffer),We(e.popover),Ge(e.popoverView),qe(e.watchEnabled===!0),Ye(e.watchTargets===!0),Ze(e.screenShare),$e(e.screenShareEnabled===!0),tt(e.annotating===!0),rt((e.coachmarks?.length??0)>0),at(e.marksCleared!==void 0),st(e.annotationTool),ft(e.intro),mt(e.voiceKeyTaps??0),gt(e.introChordPresses??0),vt(e.introChordControl)},t=i(e);return se().then(t=>{t&&e(t)}),t},[]),(0,j.useEffect)(()=>()=>{m(!1)},[]);let jt=P!==null||I,Mt=Xe!==void 0,Nt=(0,j.useMemo)(()=>x()?ne():void 0,[]);(0,j.useEffect)(()=>{jt||(K.current+=1,W(!1))},[jt]),(0,j.useEffect)(()=>{z&&G===`teach`&&(K.current+=1,W(!1))},[z,G]),(0,j.useEffect)(()=>{Mt&&G===`share`&&(K.current+=1,W(!1))},[Mt,G]);let Pt=(e,t)=>{ut(null),ct(e),W(!0);let n=++K.current;_().then(e=>{if(n===K.current){if(e!==null){ut(e);return}W(!1),t()}})},Ft=U&<?.screenRecordingGranted===!1;(0,j.useEffect)(()=>{if(Ft)return S(e=>{if(e.screen?.status!==`granted`)return;let t=++K.current;_().then(e=>{t!==K.current||e===null||ut(e)})})},[Ft]);let It=()=>{if(!Je){c();return}if(U&&G===`teach`){K.current+=1,W(!1);return}Pt(`teach`,c)},Lt=()=>{if(U&&G===`share`){K.current+=1,W(!1);return}Pt(`share`,()=>void 0)};(0,j.useEffect)(()=>{!U&&Y.current&&(Y.current=!1,m(!1))},[U]),(0,j.useEffect)(()=>{B===void 0&&Y.current&&(Y.current=!1,m(!1))},[B]);let Rt=(0,j.useRef)(!1),zt=V!==void 0&&H!==void 0&&H!==`deferred`&&(P!==null||I)&&E!==`left`&&E!==`right`,Bt=zt?V?.id:void 0;(0,j.useLayoutEffect)(()=>{let e=Tt.current;if(Bt===void 0||e===null)return;let t=()=>{f(Bt,e.getBoundingClientRect().height)};t();let n=new ResizeObserver(t);return n.observe(e),()=>{n.disconnect()}},[Bt,H]);let[Vt,Ht]=(0,j.useState)(!1),Ut=zt||Vt;(0,j.useEffect)(()=>{!Ut&&Rt.current&&(Rt.current=!1,Y.current=!1,m(!1))},[Ut]);let Wt=e=>{if(K.current+=1,W(!1),G===`share`){d(e);return}c(e)},Z=e=>{Y.current!==e&&(Y.current=e,m(e))},Q=J!==null&&P===null&&!I,Gt=(0,j.useRef)(Q);(0,j.useEffect)(()=>{Gt.current&&!Q&&(q(!1),Z(!1)),Gt.current=Q},[Q]);let Kt=he(J),qt=Q?de(J,e(`companionIntro.call.line`)):null,Jt=ye(Q?J:null),Yt=pe(Jt),Xt=Q&&!Yt&&(J===`talk`||J===`try`),Zt=Q&&J===`idle`&&dt;(0,j.useEffect)(()=>{Zt&&y(`next`)},[Zt]);let[Qt,$t]=(0,j.useState)(!1);(0,j.useEffect)(()=>{$t(!1)},[J]);let en=()=>{J===`try`&&!Yt&&y(`try`)},$=qt!==null,tn=P!==null||I?`call`:L===void 0?B===void 0?z?`watching`:Ve===void 0?Kt??(dt?`hover`:`resting`):`summary`:`offer`:`dictating`,nn=e=>{if(X.current!==null&&e.buttons===0&&(X.current=null,p()),X.current!==null){let{x:t,y:n}=X.current;ee(e.screenX-t,e.screenY-n),X.current={x:e.screenX,y:e.screenY};let r=kt.current;r!==null&&Math.abs(e.screenX-r.x)+Math.abs(e.screenY-r.y)>Ne&&(At.current=!0);return}let t=xt.current;if(!t)return;let n=yt.current?.getBoundingClientRect()??null,r=bt.current?.getBoundingClientRect()??null,i=n!==null&&n.width>0?n:r!==null&&r.width>0?r:null,a=Ce({x:e.clientX,y:e.clientY},{avatar:t.getBoundingClientRect(),pill:i}),o=St.current,s=o!==null&&k(o.getBoundingClientRect(),e.clientX,e.clientY),c=wt.current,l=c!==null&&k(c.getBoundingClientRect(),e.clientX,e.clientY),u=Ct.current,d=u!==null&&k(u.getBoundingClientRect(),e.clientX,e.clientY),f=Tt.current,m=f!==null&&k(f.getBoundingClientRect(),e.clientX,e.clientY),h=Et.current,g=h!==null&&k(h.getBoundingClientRect(),e.clientX,e.clientY);q(a),Dt.current=g,Rt.current=m,Z(a||s||d||l||g||m)},rn=be(P,Oe,Ee),an=V===void 0||H!==`deferred`?0:V.kind===`approvals`?V.items.length:1;return(0,M.jsx)(`div`,{className:`relative h-screen w-screen bg-transparent`,onMouseMove:nn,onMouseUp:()=>{X.current!==null&&(X.current=null,p())},onPointerCancel:()=>{X.current!==null&&(X.current=null,p()),q(!1),Z(!1)},onMouseLeave:()=>{X.current===null&&(q(!1),Z(!1))},children:(0,M.jsx)(ve,{phase:tn,growth:r,cardGrowth:C,dock:E,avatarBox:O,optionsBox:A,avatarSrc:Te,character:Ee,hovered:dt,accentHex:rn,call:P??qt?.call??void 0,assistantName:R,dictating:L,dictationText:Fe,working:Re,watching:z,watchRetro:Ve,onWatchRetro:v,dictationOffer:B,offer:B===void 0?null:(0,M.jsx)(fe,{offer:B,growth:r,cardGrowth:C,avatarBox:O,optionsBox:A,cardRef:wt,onAnswer:e=>{ae(e,B.id)}}),watchEnabled:Ke,spotlight:_e(J),avatarStaged:Xt,avatarTucked:Q&&J===`idle`,intro:!Q||J===null?null:(0,M.jsx)(me,{beat:J,growth:r,cardGrowth:C,avatarBox:O,optionsBox:A,accentHex:rn,assistantName:R===``?void 0:R,cardRef:St,permission:Jt,greeted:Qt,voiceKeyTaps:pt,chordPresses:ht,chordControl:_t,onAdvance:e=>{if(e===`try`){en();return}y(e)}}),rootRef:yt,restingPillRef:bt,avatarRef:xt,onSurfacePointerDown:e=>{e.button===0&&e.target.closest(`button, a`)===null&&(e.currentTarget.setPointerCapture(e.pointerId),X.current={x:e.screenX,y:e.screenY},kt.current={x:e.screenX,y:e.screenY},At.current=!1)},onSurfaceContextMenu:e=>{(window.getSelection()?.toString().trim().length??0)>0||(e.preventDefault(),g())},onAvatarClick:()=>{if(!(At.current||$)){if(J!==null){Q&&!Yt&&(J===`talk`?$t(!0):J===`try`&&en());return}if(P!==null||I){ie();return}T()}},onWatch:()=>{$||c()},onTeach:$?void 0:It,picking:U&&G===`teach`,sharing:qt?.sharing??Mt,shareEnabled:$||Qe,sharePicking:U&&G===`share`,onShare:$?void 0:Lt,onStopShare:$?void 0:()=>{d()},annotating:et,onAnnotate:$?void 0:e=>{n(e)},marked:it&&(nt||et),onClearMarks:$?void 0:()=>{te()},openPicker:V?.kind===`microphones`?V.kind:void 0,onPicker:!$&&a()?e=>{re(e)}:void 0,annotationTool:ot,onAnnotationTool:$?void 0:e=>{b(e)},drawToolsRef:Ot,shortcuts:$?ge:Nt,picker:U?(0,M.jsx)(Ae,{sources:lt,captureThumbnail:ce,cardGrowth:C,side:(P!==null||I)&&(E===`left`||E===`right`)?E===`left`?`right`:`left`:void 0,avatarBox:O,optionsBox:A,cardRef:Ct,label:G===`share`?e(`companionSurface.sharePicker`):void 0,onPick:Wt,onAllowScreenRecording:()=>{t(`screen`).catch(()=>void 0)}}):null,prompt:!zt||V===void 0?null:H===`row`&&(V.kind===`approvals`||V.kind===`secret`)?(0,M.jsx)(xe,{popover:V,onAnswer:e=>{w(e,V.id)},onView:e=>{l(V.id,e)}}):(0,M.jsx)(Se,{attached:!0,popover:V,view:H??`expanded`,style:{maxHeight:Pe},onAnswer:e=>{w(e,V.id)},onView:e=>{l(V.id,e)},onOpenLink:e=>{o(e)}},V.id),promptRef:Tt,onWorkShelfChange:Ht,promptsDeferred:an,onReviewPrompts:()=>{V!==void 0&&l(V.id,`expanded`)},onControl:$?void 0:(e,t)=>{u(t===void 0?{action:e}:{action:e,requestId:t})}})})}export{Fe as CompanionSurfacePage};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{AS as e,DS as t,Jf as n,OS as r,Xf as i,Yf as a,av as o}from"./app-XG_RF2yi.js";async function s(n,a){let{data:o,error:s,response:c}=await i({path:{assistant_id:n},body:a,throwOnError:!1});if(r(c,s,`Failed to save contact`),!c.ok||!o?.contact)throw new t(c.status,e(s,c,`Failed to save contact`));return o.contact}async function c(n,i){let{error:o,response:s}=await a({path:{assistant_id:n,contact_id:i},throwOnError:!1});if(r(s,o,`Failed to delete contact`),!s.ok&&s.status!==204)throw new t(s.status,e(o,s,`Failed to delete contact`))}async function l(i,a){let{error:o,response:s}=await n({path:{assistant_id:i,channel_id:a},throwOnError:!1});if(r(s,o,`Failed to verify channel`),!s.ok)throw new t(s.status,e(o,s,`Failed to verify channel`))}async function u(e,n,r){let i=(await s(e,{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 t(409,`That account is already linked to another contact.`);if(i.status===`blocked`)throw new t(409,`That account is blocked for this contact. Unblock it before linking.`);await l(e,i.id)}async function d(n,i){let{data:a,error:s,response:c}=await o.post({url:`/v1/assistants/{assistant_id}/a2a/invites/redeem/`,path:{assistant_id:n},body:{sender_assistant_id:i.senderAssistantId,token:i.token},headers:{"Content-Type":`application/json`},throwOnError:!1});if(r(c,s,`Failed to redeem A2A invite`),!c.ok)throw new t(c.status,e(s,c,`Failed to redeem A2A invite`));return{success:a?.success??!0,alreadyConnected:a?.already_connected,error:a?.error,errorCode:a?.error_code}}export{l as a,s as i,u as n,d as r,c as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{AC as t,Am as n,BC as r,Cp as i,Gh as a,H as o,Jl as s,OC as c,PC as l,SC as u,Sp as d,Uf as f,WC as p,Wh as m,Yl as h,ap as g,cC as _,gC as v,iC as y,jm as b,mS as x,nt as S,oC as C,op as w,sC as T,sa as E,w as ee,xp as te,xv as D}from"./app-XG_RF2yi.js";import{$n as O,E as k,O as ne,Xn as A,j,nr as re}from"./vendor-DwMhK7fD.js";import{_ as ie,d as ae,f as oe,h as se,r as ce,t as le,x as ue}from"./react-B9IgSVeK.js";import{Bi as M,Dn as de,Kt as fe,Lt as pe,Ra as me,Vn as he,Ya as N,Yn as P,Zt as ge,_a as F,_t as _e,br as I,tr as ve,vt as L,x as R,za as ye}from"./icons-C0wyat6T.js";import{t as z}from"./ellipsis-vertical-Bg7ccW1x.js";import{t as B}from"./detail-card-C7tTQwmv.js";import{a as be,i as V,n as H,o as xe,r as Se,t as Ce}from"./use-invite-link-dialog-DQEUmYHq.js";import{t as we}from"./use-side-list-room-DH5gDKs9.js";import{t as Te}from"./intelligence-layout-slots-store-DTzofJ6x.js";import{t as Ee}from"./use-edge-swipe-back-BCvtCYFp.js";import{a as De,i as Oe,n as ke,t as Ae}from"./contacts-gateway-CXKsci-d.js";import{n as je,t as Me}from"./list-detail-navigation-ChFNCRwF.js";var Ne=N(`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`}]]),Pe=N(`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`}]]),U=e(ue(),1),Fe=new Set([`slack`]);function Ie(e){return e.status===`verified`||e.status===`active`&&e.verifiedAt!=null}function Le(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 Re(e){let t=Le(e.toLowerCase());return t?j(t,{ns:`contacts`}):e}var ze=`New Contact`;function W(e){return e===ze}var G=le(),Be=new Set([`telegram`,`phone`,`vellum`,`whatsapp`,`slack`,`email`,`platform`,`a2a`]);function Ve(e){return Be.has(e)}function He(e){return typeof e.source==`string`&&e.source.startsWith(`plugin:`)}function Ue(e){return e.supportsVerification||He(e)}function We(e){return!!e?.address?.trim()}function K(e,t){return e.id===`a2a`?t&&t.status!==`revoked`?{kind:`connected`}:{kind:`setup`}:t!=null&&Ie(t)?{kind:`verified`}:t?.status===`blocked`?{kind:`none`}:t&&t.status!==`revoked`||He(e)?{kind:`unverified`}:{kind:`setup`}}function q(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||Ve(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 Ge({channelId:e,name:t,className:n,style:r}){let i=E(e);if(i)return(0,U.createElement)(i,{size:16,className:n,style:r});switch(t){case`bot`:return(0,G.jsx)(F,{className:n,style:r});case`hash`:return(0,G.jsx)(I,{className:n,style:r});case`send`:return(0,G.jsx)(_e,{className:n,style:r});case`phone`:return(0,G.jsx)(fe,{className:n,style:r});case`mail`:return(0,G.jsx)(he,{className:n,style:r});case`message-square`:return(0,G.jsx)(de,{className:n,style:r});default:return(0,G.jsx)(Ne,{className:n,style:r})}}function Ke({contactChannels:e,availableChannels:t,channelsLoadFailed:n,a2aEnabled:r,setupLabel:i,verifyLoading:a,actionsDisabled:o,verifySubject:s=`self`,onSetupChannel:c,onVerifyChannel:l,onRevokeChannel:u,onLinkAccount:d}){let{t:f}=k(`contacts`),[p,m]=(0,U.useState)(null),[h,g]=(0,U.useState)(null),_=new Map;for(let t of e)t.status!==`revoked`&&(_.has(t.type)||_.set(t.type,t));let v=e=>{p&&(l?.(p.info.id,e),m(null))},y=q(t,e,r);return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`flex flex-col`,children:[n&&(0,G.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,G.jsxs)(`div`,{children:[t>0&&(0,G.jsx)(`div`,{className:`border-t`,style:{borderColor:`var(--border-base)`}}),(0,G.jsx)(qe,{info:e,existing:n,setupLabel:i??f(`contactChannelsSection.setupDefault`),verifyLoading:a,actionsDisabled:o,onSetup:c?()=>c(e.id):void 0,onVerify:l&&Ue(e)?()=>m({info:e,existing:n}):void 0,onRevoke:u&&n?()=>g({channelId:n.id,channel:e}):void 0,onLinkAccount:d&&Fe.has(e.id)?()=>d(e.id):void 0})]},e.id)})]}),p?(0,G.jsx)(J,{info:p.info,existing:p.existing,verifySubject:s,onConfirm:v,onCancel:()=>m(null)}):null,h&&(0,G.jsx)(C,{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 qe({info:e,existing:t,setupLabel:n,verifyLoading:i,actionsDisabled:a,onSetup:o,onVerify:s,onRevoke:c,onLinkAccount:l}){let{t:u}=k(`contacts`),d=K(e,t);return(0,G.jsxs)(`div`,{className:`flex items-center gap-3 py-4`,children:[(0,G.jsx)(Ge,{channelId:e.id,name:e.icon,className:`h-4 w-4 shrink-0`,style:{color:`var(--content-secondary)`}}),(0,G.jsx)(`span`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:e.label}),t?.address?(0,G.jsx)(`span`,{className:`truncate text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:t.address}):null,(0,G.jsx)(`div`,{className:`ml-auto flex shrink-0 items-center gap-2`,children:d.kind===`connected`?(0,G.jsxs)(G.Fragment,{children:[(0,G.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,G.jsx)(M,{className:`h-3 w-3`}),u(`channelStatus.connected`)]}),c?(0,G.jsx)(r,{variant:`danger`,onClick:c,disabled:a,children:u(`actions.revoke`)}):null]}):d.kind===`verified`?(0,G.jsxs)(G.Fragment,{children:[(0,G.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,G.jsx)(M,{className:`h-3 w-3`}),u(`channelStatus.verified`)]}),c?(0,G.jsx)(r,{variant:`danger`,onClick:c,disabled:a,children:u(`actions.revoke`)}):null]}):d.kind===`unverified`?(0,G.jsx)(r,{variant:`outlined`,onClick:s,disabled:!s||i||a,children:u(i?`actions.verifying`:`actions.verify`)}):d.kind===`setup`?e.id===`a2a`?null:(0,G.jsxs)(G.Fragment,{children:[l?(0,G.jsxs)(r,{onClick:l,disabled:a,children:[(0,G.jsx)(ve,{className:`h-3.5 w-3.5`}),u(`contactChannelsSection.linkAccount`)]}):null,(0,G.jsx)(r,{variant:`outlined`,onClick:o,disabled:!o||a,children:n})]}):null})]})}function J({info:e,existing:t,verifySubject:n,onConfirm:i,onCancel:a}){let{t:o}=k(`contacts`),[s,c]=(0,U.useState)(t?.address?.trim()??``),l=(0,U.useRef)(null),u=(0,U.useId)(),d=s.trim();return We(t)?(0,G.jsx)(C,{open:!0,title:o(`contactChannelsSection.verifyConfirmTitle`,{channel:e.label}),message:o(n===`contact`?`contactChannelsSection.verifyConfirmMessageContact`:`contactChannelsSection.verifyConfirmMessageGuardian`,{channel:e.label}),confirmLabel:o(`actions.verify`),onConfirm:()=>{i()},onCancel:a}):(0,G.jsx)(_.Root,{open:!0,onOpenChange:e=>{e||a()},children:(0,G.jsx)(_.Content,{size:`sm`,hideCloseButton:!0,onOpenAutoFocus:e=>{e.preventDefault(),l.current?.focus()},onEscapeKeyDown:e=>{e.preventDefault(),e.stopPropagation(),a()},children:(0,G.jsxs)(`form`,{className:`flex flex-col`,onSubmit:e=>{e.preventDefault(),d.length!==0&&i(d)},children:[(0,G.jsx)(_.Header,{children:(0,G.jsx)(_.Title,{children:o(`contactChannelsSection.verifyConfirmTitle`,{channel:e.label})})}),(0,G.jsxs)(_.Body,{className:`flex flex-col gap-3`,children:[(0,G.jsx)(_.Description,{children:o(n===`contact`?`contactChannelsSection.verifyAddressMessageContact`:`contactChannelsSection.verifyAddressMessageGuardian`,{channel:e.label})}),(0,G.jsx)(v,{ref:l,id:u,label:o(`contactChannelsSection.verifyAddressLabel`),type:`text`,value:s,onChange:e=>{c(e.target.value)},placeholder:o(`contactChannelsSection.verifyAddressPlaceholder`),autoComplete:`off`,spellCheck:!1,fullWidth:!0})]}),(0,G.jsxs)(_.Footer,{children:[(0,G.jsx)(r,{variant:`outlined`,type:`button`,onClick:a,children:o(`actions.cancel`)}),(0,G.jsx)(r,{type:`submit`,disabled:d.length===0,children:o(`actions.verify`)})]})]})})})}function Y(e){return e===`none`||e===`low`||e===`medium`||e===`high`}function X(e,t){switch(t){case`none`:return e(`contactPermissions.preset.none`);case`low`:return e(`contactPermissions.preset.low`);case`medium`:return e(`contactPermissions.preset.medium`);case`high`:return e(`contactPermissions.preset.high`)}}function Je(e,t){if(t===null)return e(`contactPermissions.inheritDescription`);switch(t){case`none`:return e(`contactPermissions.description.none`);case`low`:return e(`contactPermissions.description.low`);case`medium`:return e(`contactPermissions.description.medium`);case`high`:return e(`contactPermissions.description.high`)}}function Ye(e){return e.role!==`guardian`&&e.contactType!==`assistant`}function Xe({contact:e,pending:t,onAutoApproveThresholdChange:n}){let{t:r}=k(`contacts`),i=Y(e.autoApproveThreshold)?e.autoApproveThreshold:null,a=i===null?null:o.find(e=>e.riskThreshold===i);return(0,G.jsx)(B,{title:r(`contactPermissions.title`),subtitle:r(`contactPermissions.subtitle`),children:(0,G.jsxs)(`div`,{className:`flex flex-col gap-2`,"data-testid":`contact-permissions`,children:[(0,G.jsx)(`div`,{style:{maxWidth:280},children:(0,G.jsx)(y,{value:a?.id??null,placeholder:r(`contactPermissions.inheritLabel`),disabled:t,onSelectNone:()=>{n(null)},onChange:e=>{let t=o.find(t=>t.id===e);t&&n(t.riskThreshold)},options:[{value:null,label:r(`contactPermissions.inheritLabel`)},...o.map(e=>{let t=e.icon;return{value:e.id,label:X(r,e.riskThreshold),icon:(0,G.jsx)(t,{className:`h-3.5 w-3.5`})}})]})}),(0,G.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:Je(r,i)})]})})}function Ze({role:e,contactType:t}){let{label:n,tone:r}=Qe(e,t);return(0,G.jsx)(u,{tone:r,children:n})}function Qe(e,t){return e===`guardian`?{label:`Guardian`,tone:`positive`}:t===`assistant`?{label:`Assistant`,tone:`negative`}:{label:`Human`,tone:`warning`}}function $e(e){return(0,G.jsx)(et,{...e},e.contact.id)}function et({contact:e,savePending:t,deletePending:n,verifyPending:i,mergePending:a=!1,canMerge:o=!1,availableChannels:s,channelsLoadFailed:c,a2aEnabled:l,onSave:u,onDelete:d,onMerge:f,onSetupChannel:p,onVerifyChannel:m,onRevokeChannel:h,onLinkAccount:g,pendingAutoApproveThreshold:_,onAutoApproveThresholdChange:y}){let{t:b}=k(`contacts`),x=W(e.displayName),[S,w]=(0,U.useState)(x?``:e.displayName),[T,E]=(0,U.useState)(e.notes??``),[ee,te]=(0,U.useState)(!1),D=S.trim(),O=T.trim(),ne=x?``:e.displayName,A=e.notes??``,j=D!==ne||O!==A,re=D.length>0&&j&&!t&&!n,ie=x&&e.channels.length===0&&e.interactionCount===0,ae=D||(x?b(`contact.draftName`):e.displayName),oe=b(`contact.interactions`,{count:e.interactionCount});return(0,G.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,G.jsx)(B,{title:ae,accessory:(0,G.jsx)(Ze,{role:e.role,contactType:e.contactType}),compactAccessory:!0,subtitle:oe,children:(0,G.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,G.jsx)(v,{label:b(`contact.nameLabel`),type:`text`,value:S,onChange:e=>w(e.target.value),placeholder:b(`contactDetailView.namePlaceholder`),autoFocus:x,disabled:t||n,fullWidth:!0}),(0,G.jsx)(v,{label:b(`contact.notesLabel`),type:`text`,value:T,onChange:e=>E(e.target.value),placeholder:b(`contactDetailView.notesPlaceholder`),disabled:t||n,fullWidth:!0}),(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,G.jsx)(r,{type:`button`,onClick:()=>u({displayName:D,notes:O}),disabled:!re,children:b(t?`actions.saving`:`actions.save`)}),f?(0,G.jsx)(r,{type:`button`,variant:`outlined`,onClick:f,disabled:!o||ie||j||a||t||n,title:o?ie?b(`contactDetailView.mergeBlockedUnsavedDraft`):j?b(`contact.mergeBlockedUnsaved`):void 0:b(`contact.mergeBlockedNoCandidates`),children:b(a?`actions.merging`:`actions.merge`)}):null,(0,G.jsx)(r,{type:`button`,variant:`danger`,onClick:()=>{ie?d():te(!0)},disabled:n,children:b(n?`actions.deleting`:`contactDetailView.delete`)})]})]})}),(0,G.jsx)(B,{title:b(`contactDetailView.linkedAccountsTitle`),subtitle:b(`contactDetailView.linkedAccountsSubtitle`),children:(0,G.jsx)(Ke,{contactChannels:e.channels,availableChannels:s,channelsLoadFailed:c,a2aEnabled:l,verifyLoading:i,actionsDisabled:n,verifySubject:`contact`,onSetupChannel:p,onVerifyChannel:m,onRevokeChannel:h,onLinkAccount:g})}),Ye(e)&&y?(0,G.jsx)(Xe,{contact:e,pending:_||n,onAutoApproveThresholdChange:y}):null,(0,G.jsx)(C,{open:ee,title:b(`contactDetailView.deleteConfirmTitle`,{name:ae}),message:b(`contactDetailView.deleteConfirmMessage`),confirmLabel:b(`actions.delete`),destructive:!0,onConfirm:()=>{te(!1),d()},onCancel:()=>te(!1)})]})}function tt(e){return(0,G.jsx)(nt,{...e},`${e.survivor.id}:${e.open?`open`:`closed`}`)}function nt({open:e,survivor:n,candidates:i,pending:a,errorMessage:o,onMerge:s,onClose:c}){let{t:l}=k(`contacts`),[u,d]=(0,U.useState)(``),[f,p]=(0,U.useState)(null);(0,U.useEffect)(()=>{f&&!i.some(e=>e.id===f)&&p(null)},[i,f]);let m=(0,U.useMemo)(()=>{let e=u.trim().toLowerCase();return e?i.filter(t=>t.displayName.toLowerCase().includes(e)):i},[i,u]),h=f?i.find(e=>e.id===f)??null:null,g=ot(n);return(0,G.jsx)(_.Root,{open:e,onOpenChange:e=>{!e&&!a&&c()},children:(0,G.jsxs)(_.Content,{size:`md`,children:[(0,G.jsxs)(_.Header,{icon:Pe,children:[(0,G.jsx)(_.Title,{children:h?l(`contactMergeDialog.titlePicked`,{donor:h.displayName,survivor:g}):l(`contactMergeDialog.titlePicking`,{survivor:g})}),(0,G.jsx)(_.Description,{children:l(h?`contactMergeDialog.descriptionPicked`:`contactMergeDialog.descriptionPicking`)})]}),(0,G.jsxs)(_.Body,{className:`flex flex-col gap-3`,children:[h?(0,G.jsx)(it,{survivor:n,donor:h}):i.length===0?(0,G.jsx)(at,{}):(0,G.jsx)(Z,{search:u,onSearch:d,candidates:m,onPick:p}),o?(0,G.jsx)(t,{as:`p`,variant:`body-small-default`,className:`text-(--system-negative-strong)`,role:`alert`,children:o}):null]}),(0,G.jsx)(_.Footer,{children:h?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(r,{variant:`outlined`,onClick:()=>p(null),disabled:a,leftIcon:(0,G.jsx)(ye,{"aria-hidden":!0}),children:l(`actions.back`)}),(0,G.jsx)(r,{variant:`danger`,onClick:()=>s(h.id),disabled:a,children:l(a?`actions.merging`:`contactMergeDialog.confirm`)})]}):(0,G.jsx)(r,{variant:`outlined`,onClick:c,disabled:a,children:l(`actions.cancel`)})})]})})}function Z({search:e,onSearch:n,candidates:r,onPick:i}){let{t:a}=k(`contacts`);return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(v,{type:`text`,value:e,onChange:e=>n(e.target.value),placeholder:a(`contactMergeDialog.searchPlaceholder`),leftIcon:(0,G.jsx)(L,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),fullWidth:!0}),(0,G.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,G.jsx)(t,{as:`p`,variant:`body-small-default`,className:`px-3 py-4 text-center text-(--content-tertiary)`,children:a(`contactsList.noMatches`)}):r.map(e=>(0,G.jsx)(rt,{contact:e,onPick:()=>i(e.id)},e.id))})]})}function rt({contact:e,onPick:t}){let n=ct(e).join(` | `)||void 0;return(0,G.jsx)(l,{asChild:!0,children:(0,G.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,G.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,G.jsx)(`span`,{className:`truncate text-body-medium-default`,children:e.displayName}),n?(0,G.jsx)(`span`,{className:`truncate text-body-small-default text-(--content-tertiary)`,children:n}):null]})})})}function it({survivor:e,donor:t}){let{t:n}=k(`contacts`),r=ot(e),{moved:i,duplicates:a}=st(e,t);return(0,G.jsxs)(`ul`,{className:`flex flex-col gap-2 text-body-medium-lighter text-(--content-secondary)`,children:[(0,G.jsx)(`li`,{children:(0,G.jsx)(ne,{i18nKey:`contactMergeDialog.donorDeleted`,ns:`contacts`,values:{donor:t.displayName},components:{donor:(0,G.jsx)(`span`,{className:`text-(--content-default)`})}})}),(0,G.jsx)(`li`,{children:n(`contactMergeDialog.channelsMoved`,{count:i.length,survivor:r,channels:i.map(e=>Re(e.type)).join(`, `)})}),a.length>0?(0,G.jsx)(`li`,{className:`text-(--content-tertiary)`,children:n(`contactMergeDialog.duplicatesSkipped`,{count:a.length,survivor:r})}):null,t.notes?(0,G.jsx)(`li`,{children:n(`contactMergeDialog.notesAppended`)}):null,(0,G.jsx)(`li`,{className:`text-(--content-tertiary)`,children:n(`contactMergeDialog.irreversible`)})]})}function at(){let{t:e}=k(`contacts`);return(0,G.jsx)(t,{as:`p`,variant:`body-medium-lighter`,className:`px-3 py-6 text-center text-(--content-tertiary)`,children:e(`contactMergeDialog.empty`)})}function ot(e){return e.role===`guardian`?!e.displayName||e.displayName.startsWith(`vellum-principal-`)?j(`survivorName.you`,{ns:`contacts`}):j(`survivorName.youNamed`,{ns:`contacts`,name:e.displayName}):e.displayName||j(`survivorName.thisContact`,{ns:`contacts`})}function st(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 ct(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(Re(e)))}return n}var lt={pencil:ge,more:z};function ut({loading:e,guardian:t,regularContacts:n,selectedContactId:i,onSelect:a,onAddContact:o,addingContact:s=!1,surface:l=`card`,search:u,onSearchChange:d}){let{t:f}=k(`contacts`),p=l===`screen`,m=n.length>0,h=u.trim()?n.filter(e=>e.displayName.toLowerCase().includes(u.trim().toLowerCase())):n,g=m?(0,G.jsx)(v,{type:`text`,value:u,onChange:e=>d(e.target.value),placeholder:f(`contactsList.searchPlaceholder`),leftIcon:(0,G.jsx)(L,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),fullWidth:!0,className:p?`h-10`:void 0}):null,_=t?(0,G.jsx)(Q,{name:t.displayName?f(`contactsList.youNamed`,{name:t.displayName}):f(`contactsList.you`),role:t.role,channelTypes:t.channelTypes,selected:i===t.id,onClick:()=>a(t.id),trailingIcon:`pencil`,surface:l}):null,y=t?(0,G.jsx)(`div`,{className:`border-t`,style:{borderColor:`var(--border-base)`}}):null,b=(0,G.jsxs)(G.Fragment,{children:[h.map(e=>(0,G.jsx)(Q,{name:e.displayName,role:e.role,contactType:e.contactType,channelTypes:e.channelTypes,verified:e.verified,selected:i===e.id,onClick:()=>a(e.id),trailingIcon:`more`,surface:l},e.id)),h.length===0?(0,G.jsx)(`p`,{className:`px-3 py-4 text-center text-body-small-default`,style:{color:`var(--content-tertiary)`},children:f(`contactsList.noMatches`)}):null]}),x=e?null:(0,G.jsx)(r,{type:`button`,variant:`ghost`,onClick:o,disabled:s,tintColor:`var(--primary-base)`,loading:s,leftIcon:(0,G.jsx)(R,{"aria-hidden":!0}),children:f(`contactsList.add`)});return p?(0,G.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[g,_,y,(0,G.jsx)(`div`,{className:`flex flex-col gap-1 pt-2`,children:m?b:x})]}):(0,G.jsx)(c.Root,{className:`flex h-full flex-col overflow-hidden`,children:(0,G.jsxs)(c.Body,{className:`flex min-h-0 min-w-0 flex-1 flex-col gap-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`h2`,{className:`text-title-medium`,style:{color:`var(--content-default)`},children:f(`contactsList.heading`)}),(0,G.jsx)(r,{type:`button`,variant:`ghost`,loading:s,iconOnly:(0,G.jsx)(pe,{"aria-hidden":!0}),onClick:o,disabled:s,"aria-label":f(`contactsList.addAriaLabel`),tintColor:`var(--content-secondary)`})]}),_,y,g,m?(0,G.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto flex flex-col gap-1`,children:b}):x]})})}function Q({name:e,role:t,contactType:n,channelTypes:r,selected:i,onClick:a,trailingIcon:o,verified:s,surface:c}){let{t:d}=k(`contacts`),f=c===`screen`,m=r&&r.length>0?r.join(` | `):void 0,h=f||s===void 0?null:(0,G.jsx)(u,{tone:s?`positive`:`neutral`,children:d(s?`contactsList.verified`:`contactsList.unverified`)}),g=f||o===void 0?void 0:lt[o];return(0,G.jsx)(l,{asChild:!0,active:i,className:f?`rounded-md max-md:py-2`:void 0,children:(0,G.jsxs)(`button`,{type:`button`,onClick:a,className:p(`flex h-auto w-full items-center`,!f&&`gap-2 rounded-[6px] px-[8px] py-2`,`text-left`),children:[(0,G.jsxs)(`span`,{className:p(`flex min-w-0 flex-1 flex-col`,f&&`gap-0.5`),children:[(0,G.jsx)(`span`,{className:p(`truncate text-body-medium-default`,f&&`text-[var(--content-default)]`),children:e}),m?(0,G.jsx)(`span`,{className:p(`truncate`,f?`text-label-medium-default`:`text-body-small-default`),style:{color:`var(--content-tertiary)`},children:m}):null]}),(0,G.jsxs)(`span`,{className:`flex shrink-0 items-center gap-1`,children:[h,(0,G.jsx)(Ze,{role:t,contactType:n}),g?(0,G.jsx)(g,{className:`h-3.5 w-3.5 text-[color:var(--content-tertiary)]`,"aria-hidden":!0}):null]})]})})}function dt(e){return(0,G.jsx)(ft,{...e},e.contact.id)}function ft({contact:e,savePending:t,verifyPending:n,mergePending:i=!1,canMerge:a=!1,availableChannels:o,channelsLoadFailed:s,a2aEnabled:c,onSave:l,onMerge:u,onSetupChannel:d,onVerifyChannel:f,onRevokeChannel:p,onGenerateInviteLink:m}){let{t:h}=k(`contacts`),g=e.displayName.startsWith(`vellum-principal-`),_=g?``:e.displayName,[y,b]=(0,U.useState)(_),[x,S]=(0,U.useState)(e.notes??``),C=y.trim(),w=x.trim(),T=C!==_.trim()||w!==(e.notes??``).trim(),E=T&&!t,ee=h(`contact.interactions`,{count:e.interactionCount});return(0,G.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,G.jsx)(B,{title:g?h(`contactsList.you`):h(`contactsList.youNamed`,{name:e.displayName}),accessory:(0,G.jsx)(Ze,{role:`guardian`}),compactAccessory:!0,subtitle:ee,children:(0,G.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,G.jsx)(v,{label:h(`contact.nameLabel`),type:`text`,value:y,onChange:e=>b(e.target.value),placeholder:h(`guardianDetailView.namePlaceholder`),disabled:t,fullWidth:!0}),(0,G.jsx)(v,{label:h(`contact.notesLabel`),type:`text`,value:x,onChange:e=>S(e.target.value),placeholder:h(`guardianDetailView.notesPlaceholder`),disabled:t,fullWidth:!0}),(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,G.jsx)(r,{variant:`primary`,onClick:()=>l({displayName:C||e.displayName,notes:w}),disabled:!E,children:h(t?`actions.saving`:`actions.save`)}),u?(0,G.jsx)(r,{variant:`outlined`,onClick:u,disabled:!a||T||i||t,title:a?T?h(`contact.mergeBlockedUnsaved`):void 0:h(`contact.mergeBlockedNoCandidates`),children:h(i?`actions.merging`:`actions.merge`)}):null]})]})}),(0,G.jsx)(B,{title:h(`guardianDetailView.channelsTitle`),subtitle:h(`guardianDetailView.channelsSubtitle`),children:(0,G.jsx)(Ke,{contactChannels:e.channels,availableChannels:o,channelsLoadFailed:s,a2aEnabled:c,setupLabel:h(`guardianDetailView.setupLabel`),verifyLoading:n,onSetupChannel:d,onVerifyChannel:f,onRevokeChannel:p})}),m?(0,G.jsx)(H,{onClick:m}):null]})}function pt(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 mt(e){let t=e.trim().split(/\s+/).filter(Boolean);return`${t[0]?.[0]??`?`}${t.length>1?t[t.length-1]?.[0]??``:``}`.toUpperCase()}function ht({open:e,channelLabel:t,contactName:n,accounts:i,loading:a,errorMessage:o,pendingAccountId:s,onPick:c,onClose:l,onInviteInstead:u}){let{t:d}=k(`contacts`),[f,p]=(0,U.useState)(``);(0,U.useEffect)(()=>{e&&p(``)},[e]);let m=(0,U.useMemo)(()=>pt(i??[],f),[i,f]),h=s!=null;return(0,G.jsx)(_.Root,{open:e,onOpenChange:e=>!e&&l(),children:(0,G.jsxs)(_.Content,{size:`sm`,children:[(0,G.jsxs)(_.Header,{children:[(0,G.jsx)(_.Title,{children:d(`linkAccountDialog.title`,{channel:t})}),(0,G.jsx)(_.Description,{children:(0,G.jsx)(ne,{i18nKey:`linkAccountDialog.description`,ns:`contacts`,values:{channel:t,name:n},components:{contact:(0,G.jsx)(`span`,{className:`text-[color:var(--content-default)]`})}})})]}),(0,G.jsxs)(_.Body,{className:`flex flex-col gap-3`,children:[(0,G.jsx)(v,{type:`search`,value:f,onChange:e=>p(e.target.value),placeholder:d(`linkAccountDialog.searchPlaceholder`),"aria-label":d(`linkAccountDialog.searchAriaLabel`,{channel:t}),leftIcon:(0,G.jsx)(L,{className:`h-4 w-4`}),fullWidth:!0}),o?(0,G.jsx)(`p`,{className:`text-body-small-default text-[color:var(--system-negative-strong)]`,children:o}):null,(0,G.jsx)(`div`,{className:`max-h-80 overflow-y-auto`,children:a?(0,G.jsx)(`p`,{className:`py-4 text-center text-body-small-default text-[color:var(--content-tertiary)]`,children:d(`linkAccountDialog.loading`)}):m.length===0?(0,G.jsx)(`p`,{className:`py-4 text-center text-body-small-default text-[color:var(--content-tertiary)]`,children:(i?.length??0)===0?d(`linkAccountDialog.noMembers`):d(`linkAccountDialog.noMatches`)}):(0,G.jsx)(`ul`,{className:`flex flex-col`,children:m.map(e=>(0,G.jsx)(`li`,{children:(0,G.jsxs)(`button`,{type:`button`,onClick:()=>c(e),disabled:h,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,G.jsx)(`img`,{src:e.imageUrl,alt:``,className:`h-8 w-8 shrink-0 rounded-full`}):(0,G.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:mt(e.displayName)}),(0,G.jsxs)(`span`,{className:`flex min-w-0 flex-col`,children:[(0,G.jsx)(`span`,{className:`truncate text-body-medium-default text-[color:var(--content-default)]`,children:e.displayName}),(0,G.jsxs)(`span`,{className:`truncate text-body-small-default text-[color:var(--content-tertiary)]`,children:[`@`,e.username]})]}),s===e.id?(0,G.jsx)(`span`,{className:`ml-auto shrink-0 text-body-small-default text-[color:var(--content-tertiary)]`,children:d(`linkAccountDialog.linking`)}):null]})},e.id))})})]}),(0,G.jsxs)(_.Footer,{className:`items-center justify-between gap-3 border-t border-[var(--border-base)]`,children:[(0,G.jsx)(`p`,{className:`text-body-small-default text-[color:var(--content-tertiary)]`,children:(0,G.jsx)(ne,{i18nKey:`linkAccountDialog.guardianLinkNote`,ns:`contacts`,components:{emphasis:(0,G.jsx)(`span`,{className:`text-[color:var(--content-secondary)]`})}})}),u?(0,G.jsxs)(r,{variant:`link`,className:`shrink-0`,onClick:u,disabled:h,children:[d(`linkAccountDialog.inviteInstead`),(0,G.jsx)(me,{className:`h-3.5 w-3.5`})]}):null]})]})})}function gt(e){return O({...w((0,U.useMemo)(()=>({path:{assistant_id:e}}),[e])),enabled:!!e,select:e=>e.snapshots.some(e=>e.channel===`slack`&&m(e))}).data??!1}function _t({assistantId:e,channelType:t,contact:n,onLinked:r}){let[i,a]=(0,U.useState)(!1),o=A({mutationFn:n=>ke(e,n.contact,{type:t,address:n.account.id}),onSuccess:(e,t)=>{a(!1),T.success(j(`accountLink.linked`,{ns:`contacts`,username:t.account.username})),r()}}),s=(0,U.useCallback)(()=>{o.reset(),a(!0)},[o]),c=(0,U.useCallback)(()=>{o.isPending||(o.reset(),a(!1))},[o]),l=(0,U.useCallback)(e=>{!n||o.isPending||o.mutate({contact:n,account:e})},[n,o]);return{channelType:t,dialogOpen:i,open:s,close:c,linkErrorMessage:o.error instanceof Error?o.error.message:o.error?j(`accountLink.linkFailed`,{ns:`contacts`}):null,pendingAccountId:o.isPending?o.variables.account.id:null,pick:l}}function vt(){let[e,t]=(0,U.useState)(()=>new Set);return{ids:e,add:(0,U.useCallback)(e=>{t(t=>t.has(e)?t:new Set(t).add(e))},[]),remove:(0,U.useCallback)(e=>{t(t=>{if(!t.has(e))return t;let n=new Set(t);return n.delete(e),n})},[])}}var yt=[{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?`}}],bt=[];function $({assistantId:e,onStartSetupConversation:t}){let{t:o}=k(`contacts`),s=f.use.a2aChannel(),c=re(),[l]=ie(),u=l.get(`setup`),p=u&&a(u)?u:null,{contactId:m}=se(),_=oe(),{pathname:v,state:y}=ae(),S=Ce(e),C=h(),{paneRef:w,hasRoomForList:E,drawerOpen:ne,openDrawer:j,closeDrawer:le}=we(),ue=C&&!E,M=ue&&!m,de=ue&&!!m,[fe,me]=(0,U.useState)(``),[he,N]=(0,U.useState)(!1),P=(0,U.useMemo)(()=>({path:{assistant_id:e}}),[e]),ge=d(P),F=O({...te(P),enabled:!!e,select:e=>e.contacts}),_e=O({...g({path:{assistant_id:e}}),enabled:!!e,queryFn:async({signal:t})=>{let{data:n,error:r,response:i}=await D({path:{assistant_id:e},signal:t,throwOnError:!1});if(i?.status===404)return{channels:yt};if(!i||!i.ok)throw r??Error(`Failed to fetch channel availability`);return n},select:e=>e.channels}),I=_e.data??bt,ve=_e.isError,L=F.data,R=(0,U.useMemo)(()=>L?.find(e=>e.role===`guardian`)??null,[L]),ye=(0,U.useMemo)(()=>L?.filter(e=>e.role!==`guardian`)??[],[L]),z=m??(M?null:R?.id??null),B=(0,U.useMemo)(()=>L?.find(e=>e.id===z)??null,[L,z]),H=Te.use.setDetailIsScreen(),Ne=(0,U.useCallback)(e=>{e!==m&&(M&&H(!0),_(x.contacts.detail(e),M?{state:Me}:{replace:!0,state:y}))},[_,M,m,y,H]),Pe=(0,U.useCallback)(()=>{je(_,y,x.contacts.root)},[_,y]),Fe=(0,U.useRef)(null);Ee({containerRef:Fe,onBack:Pe,enabled:de,navKey:v});let Ie=F.isSuccess&&F.fetchStatus===`idle`,Le=!!m&&!B&&!Ie,W=vt(),Be=vt(),Ve=vt(),Ue=(0,U.useMemo)(()=>!L||!B?[]:L.filter(e=>e.id!==B.id&&e.role!==`guardian`&&!W.ids.has(e.id)),[L,B,W.ids]),We=Ue.length>0,K=(0,U.useCallback)(()=>c.invalidateQueries({queryKey:ge}),[c,ge]),q=(0,U.useRef)(!0);(0,U.useEffect)(()=>(q.current=!0,()=>{q.current=!1}),[]);let Ge=A({mutationFn:()=>Oe(e,{displayName:ze}),onMutate:async()=>{await c.cancelQueries({queryKey:ge})},onSuccess:e=>{i(c,P,t=>t?{...t,contacts:[...t.contacts,e]}:void 0),q.current&&Ne(e.id)},onError:V(o(`contactsPage.createFailed`)),onSettled:()=>K()}),Ke=(0,U.useRef)(z);(0,U.useLayoutEffect)(()=>{Ke.current=z},[z]);let qe=A({mutationFn:t=>Ae(e,t),onMutate:e=>{W.add(e)},onSuccess:(e,t)=>{i(c,P,e=>e?{...e,contacts:e.contacts.filter(e=>e.id!==t)}:void 0),q.current&&Ke.current===t&&Pe()},onError:V(o(`contactsPage.deleteFailed`)),onSettled:(e,t,n)=>(W.remove(n),K())}),J=A({mutationFn:({contactId:t,patch:n})=>Oe(e,{id:t,displayName:n.displayName,notes:n.notes}),onMutate:({contactId:e})=>{Be.add(e)},onSuccess:e=>{i(c,P,t=>t?{...t,contacts:t.contacts.map(t=>t.id===e.id?e:t)}:void 0)},onError:V(o(`contactsPage.saveFailed`)),onSettled:(e,t,{contactId:n})=>(Be.remove(n),K())}),Y=A({mutationFn:({contactId:t,displayName:n,autoApproveThreshold:r})=>Oe(e,{id:t,displayName:n,autoApproveThreshold:r}),onMutate:({contactId:e})=>{Ve.add(e)},onSuccess:e=>{i(c,P,t=>t?{...t,contacts:t.contacts.map(t=>t.id===e.id?e:t)}:void 0)},onError:V(o(`contactPermissions.saveFailed`)),onSettled:(e,t,{contactId:n})=>(Ve.remove(n),K())}),X=b({onMutate:async()=>{await c.cancelQueries({queryKey:ge})},onSuccess:(e,t)=>{let n=e.contact,r=t.body.mergeId;n&&(i(c,P,e=>e?{...e,contacts:e.contacts.filter(e=>e.id!==r).map(e=>e.id===n.id?n:e)}:void 0),q.current&&Ne(n.id)),N(!1),T.success(o(`contactsPage.mergeSucceeded`))},onSettled:()=>K()}),Je=X.reset,Ye=(0,U.useCallback)(e=>{Ne(e),le(),N(!1),Je()},[Ne,le,Je]),Xe=(0,U.useCallback)(()=>{Je(),N(!0)},[Je]),Ze=(0,U.useCallback)(()=>{X.isPending||(N(!1),X.reset())},[X]),Qe=n({onSuccess:()=>K()}),et=(0,U.useCallback)((t,n)=>{Qe.mutate({path:{assistant_id:e,contactChannelId:t},body:{status:`revoked`}})},[Qe,e]),nt=Ge.mutate,Z=Ge.isPending,rt=(0,U.useCallback)(()=>{Z||nt()},[nt,Z]),it=Te.use.setHeaderTrailing();(0,U.useEffect)(()=>{if(!M){it(null);return}return it((0,G.jsx)(r,{shape:`pill`,variant:`ghost`,iconOnly:(0,G.jsx)(pe,{"aria-hidden":!0}),"aria-label":o(`contactsList.addAriaLabel`),tooltip:o(`contactsList.addAriaLabel`),className:`max-md:bg-[var(--surface-active)]`,loading:Z,disabled:Z,onClick:rt})),()=>{it(null)}},[Z,rt,M,it,o]),(0,U.useLayoutEffect)(()=>(H(de),()=>{H(!1)}),[de,H]);let at=(0,U.useCallback)(e=>{if(!t)return;let n=I.find(t=>t.id===e);if(!n||He(n))return;let r=n.setupMessages.contact;r&&t(r)},[I,t]),ot=(0,U.useCallback)(e=>{if(!t)return;let n=I.find(t=>t.id===e);if(!n||He(n))return;let r=n.setupMessages.guardian;r&&t(r)},[I,t]),st=A({mutationFn:t=>De(e,t.channelId),onSuccess:()=>K(),onError:V(o(`contactsPage.verifyFailed`))}),ct=A({mutationFn:t=>{if(!B)throw Error(`No contact selected`);return ke(e,{id:B.id,displayName:B.displayName},{type:t.type,address:t.address})},onSuccess:()=>K(),onError:V(o(`contactsPage.verifyFailed`))}),lt=(0,U.useCallback)((e,t)=>{if(!B)return;let n=t?.trim();if(n){ct.mutate({type:e,address:n});return}let r=B.channels.find(t=>t.type===e&&t.status!==`revoked`);r?.address?.trim()&&st.mutate({channelId:r.id})},[B,ct,st]),Q=_t({assistantId:e,channelType:`slack`,contact:B?{id:B.id,displayName:B.displayName}:null,onLinked:K}),ft=O({...ee(e),enabled:!!e&&Q.dialogOpen,select:e=>e.users}),pt=gt(e),mt=(0,U.useCallback)(e=>{e===Q.channelType&&Q.open()},[Q]),$=(0,U.useMemo)(()=>{if(!B)return null;let e=B;return J.isPending&&J.variables?.contactId===B.id&&(e={...e,displayName:J.variables.patch.displayName,notes:J.variables.patch.notes}),Y.isPending&&Y.variables?.contactId===B.id&&(e={...e,autoApproveThreshold:Y.variables.autoApproveThreshold}),e},[B,J.isPending,J.variables,Y.isPending,Y.variables]),Tt=z!==null&&Be.ids.has(z),Et=z!==null&&Ve.ids.has(z);if(p)return(0,G.jsx)(ce,{to:`${x.channels}?setup=${p}`,replace:!0});let Dt={loading:F.isLoading,guardian:R?{id:R.id,displayName:R.displayName.startsWith(`vellum-principal-`)?``:R.displayName,role:R.role,channelTypes:wt(R.channels,s)}:null,regularContacts:ye.filter(e=>!W.ids.has(e.id)).map(e=>({id:e.id,displayName:e.displayName,role:e.role,contactType:e.contactType,channelTypes:wt(e.channels,s),verified:Ct(e.channels)})),selectedContactId:z,onSelect:Ye,onAddContact:rt,addingContact:Z,search:fe,onSearchChange:me};return(0,G.jsxs)(`div`,{ref:w,className:`flex min-h-0 flex-1 overflow-hidden ${E?`flex-row gap-6`:`flex-col gap-4`}`,children:[E?(0,G.jsx)(`aside`,{className:`min-h-0 w-[320px] shrink-0 overflow-y-auto self-stretch`,children:(0,G.jsx)(ut,{...Dt})}):ue?null:(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`flex items-center`,children:(0,G.jsx)(xe,{onClick:j})}),(0,G.jsx)(be,{open:ne,onClose:le,title:o(`contactsPage.title`),children:(0,G.jsx)(ut,{...Dt})})]}),(0,G.jsx)(`section`,{ref:Fe,className:`min-h-0 min-w-0 flex-1 overflow-y-auto`,children:F.isLoading||Le?(0,G.jsx)(St,{}):M?(0,G.jsx)(ut,{...Dt,surface:`screen`}):$?$.role===`guardian`?(0,G.jsx)(dt,{contact:$,savePending:Tt,verifyPending:st.isPending||ct.isPending,mergePending:X.isPending,canMerge:We,availableChannels:I,channelsLoadFailed:ve,a2aEnabled:s,onSave:e=>{J.mutate({contactId:$.id,patch:e})},onMerge:Xe,onSetupChannel:t?ot:void 0,onVerifyChannel:lt,onRevokeChannel:et,onGenerateInviteLink:s?S.open:void 0}):(0,G.jsx)($e,{contact:$,savePending:Tt,deletePending:W.ids.has($.id),verifyPending:st.isPending||ct.isPending,mergePending:X.isPending,canMerge:We,availableChannels:I,channelsLoadFailed:ve,a2aEnabled:s,onSave:e=>{J.mutate({contactId:$.id,patch:e})},onDelete:()=>{qe.mutate($.id)},onMerge:Xe,onSetupChannel:t?at:void 0,onVerifyChannel:lt,onRevokeChannel:et,onLinkAccount:pt?mt:void 0,pendingAutoApproveThreshold:Et,onAutoApproveThresholdChange:e=>{Y.mutate({contactId:$.id,displayName:$.displayName,autoApproveThreshold:e})}}):m?(0,G.jsx)(xt,{text:o(`contactsPage.notFoundBody`)}):(0,G.jsx)(xt,{text:o(`contactsPage.emptyBody`)})}),B?(0,G.jsx)(tt,{open:he,survivor:B,candidates:Ue,pending:X.isPending,errorMessage:X.error instanceof Error?X.error.message:X.error?o(`contactsPage.mergeFailed`):null,onMerge:t=>X.mutate({path:{assistant_id:e},body:{keepId:B.id,mergeId:t}}),onClose:Ze}):null,(0,G.jsx)(ht,{open:Q.dialogOpen,channelLabel:Re(`slack`),contactName:B?.displayName??``,accounts:ft.data,loading:ft.isLoading,errorMessage:ft.isError?o(`contactsPage.rosterLoadFailed`):Q.linkErrorMessage,pendingAccountId:Q.pendingAccountId,onPick:Q.pick,onClose:Q.close,onInviteInstead:t?()=>{Q.close(),at(Q.channelType)}:void 0}),(0,G.jsx)(Se,{open:S.isOpen,assistantId:e,onClose:S.close})]})}function xt({text:e}){return(0,G.jsx)(`div`,{className:`flex h-full items-center justify-center py-16`,children:(0,G.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:e})})}function St(){return(0,G.jsx)(`div`,{className:`flex h-full items-center justify-center py-16`,children:(0,G.jsx)(P,{className:`h-6 w-6 animate-spin text-[var(--content-tertiary)]`})})}function Ct(e){return e.some(e=>e.status!==`revoked`&&(e.type===`a2a`||Ie(e)))}function wt(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(Re(e)))}return r}function Tt(){let e=oe(),t=S(),{contactId:n}=se(),{state:r}=ae(),i=(0,U.useRef)(t);return(0,U.useEffect)(()=>{let a=i.current;i.current=t,!(a===t||!n)&&je(e,r,x.contacts.root)},[t,n,r,e]),(0,G.jsx)($,{assistantId:t,onStartSetupConversation:t=>{s(e,{prompt:t})}},t)}export{Tt as ContactsPageRoute};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{BC as t,CS as n,DS as r,HC as i,Mm as a,Mv as o,OC as s,SC as c,TS as l,Uf as u,Zm as d,Zx as f,cC as p,et as m,gC as h,gS as g,i as _,jv as ee,jy as v,ky as y,nt as b,oC as x,sC as S,tt as te,uC as ne}from"./app-XG_RF2yi.js";import{$n as re,E as C,nr as ie}from"./vendor-DwMhK7fD.js";import{t as w,x as T}from"./react-B9IgSVeK.js";import{A as E,Ji as D,Lt as O,Xr as k,Yn as A,Yr as j,dr as M,li as N,tr as P,vt as ae}from"./icons-C0wyat6T.js";import{t as F}from"./detail-card-C7tTQwmv.js";import{t as I}from"./use-supports-credentials-settings-Bq2yot1y.js";var L=e(T(),1),R=`CREDENTIAL_IN_USE`;function oe(e){if(!(e instanceof r)||e.code!==R)return null;let t=e.details;if(!t||typeof t!=`object`||!(`connections`in t))return null;let{connections:n}=t;return!Array.isArray(n)||!n.every(e=>typeof e==`string`)?null:n}function se(e){return new Intl.ListFormat(g(),{style:`long`,type:`conjunction`}).format(e)}var z=w(),B=1500;function V(e){if(!e)return``;try{return new Date(e).toLocaleDateString(void 0,{year:`numeric`,month:`short`,day:`numeric`})}catch{return``}}function ce({credential:e,assistantId:n,generatingLink:r,deleting:a,onGenerateLink:o,onDelete:c}){let{t:l}=C(`settings`),u=`${e.service}:${e.field}`,d=r||a,f=[e.alias?u:null,e.createdAt?l(`credentialRow.addedMetadata`,{date:V(e.createdAt)}):null].filter(e=>!!e);return(0,z.jsx)(s.Root,{children:(0,z.jsxs)(s.Body,{padding:`sm`,className:`flex items-center gap-4 px-4`,children:[(0,z.jsx)(M,{className:`h-5 w-5 shrink-0 text-[var(--content-secondary)]`,"aria-hidden":!0}),(0,z.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,z.jsx)(`p`,{className:`truncate text-title-small text-[var(--content-default)]`,children:e.alias||u}),(0,z.jsx)(`div`,{className:`mt-0.5 flex min-w-0 items-center`,children:(0,z.jsx)(H,{assistantId:n,credential:e})}),f.length>0&&(0,z.jsx)(`p`,{className:`mt-0.5 truncate font-mono text-body-medium-lighter text-[var(--content-tertiary)]`,children:f.join(` · `)})]}),(0,z.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[(0,z.jsx)(i,{content:l(`credentialRow.generateLinkLabel`),side:`top`,children:(0,z.jsx)(t,{variant:`outlined`,onClick:o,disabled:d,"aria-label":l(`credentialRow.generateLinkAriaLabel`,{name:u}),loading:r,iconOnly:(0,z.jsx)(P,{"aria-hidden":!0})})}),(0,z.jsx)(i,{content:l(`credentialRow.deleteLabel`),side:`top`,children:(0,z.jsx)(t,{variant:`dangerOutline`,onClick:c,disabled:d,"aria-label":l(`credentialRow.deleteAriaLabel`,{name:u}),loading:a,iconOnly:(0,z.jsx)(E,{"aria-hidden":!0})})})]})]})})}function H({assistantId:e,credential:t}){let{t:n}=C(`settings`),[r,i]=(0,L.useState)(null),[a,s]=(0,L.useState)(!1),[c,l]=(0,L.useState)(!1),u=(0,L.useRef)(null),d=(0,L.useRef)(0),f=`${t.service}:${t.field}`,p=(0,L.useCallback)(()=>{d.current++,i(null),s(!1),l(!1),u.current&&=(clearTimeout(u.current),null)},[]);(0,L.useEffect)(()=>{p()},[t.updatedAt,p]);let m=(0,L.useCallback)(async()=>{let r=++d.current;s(!0);try{let{data:n}=await o({path:{assistant_id:e},body:{service:t.service,field:t.field},throwOnError:!0});d.current===r&&i(n.value)}catch{d.current===r&&S.error(n(`credentialRow.revealFailedToast`,{name:f}))}finally{d.current===r&&s(!1)}},[e,t.service,t.field,f,n]),h=(0,L.useCallback)(()=>{r!=null&&v(r,{errorMessage:n(`credentialRow.copyFailedToast`),onCopied:()=>{l(!0),u.current&&clearTimeout(u.current),u.current=setTimeout(()=>l(!1),B)}})},[r,n]),g=r!==null;return t.hasSecret?(0,z.jsxs)(`span`,{className:`inline-flex min-w-0 items-center gap-1.5 align-middle font-mono text-body-medium-lighter`,children:[(0,z.jsx)(`button`,{type:`button`,onClick:()=>g?p():void m(),disabled:a,"aria-label":n(g?`credentialRow.hideValueAriaLabel`:`credentialRow.revealValueAriaLabel`,{name:f}),title:n(g?`credentialRow.hideValueTitle`:`credentialRow.clickToRevealTitle`),"data-private":!0,className:`min-w-0 truncate rounded-sm text-left transition-[filter,color] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)] ${g?`text-[var(--content-secondary)]`:`select-none text-[var(--content-tertiary)] blur-[3px] hover:blur-[2px]`}`,children:g?r:t.scrubbedValue}),a?(0,z.jsx)(A,{className:`h-3.5 w-3.5 shrink-0 animate-spin`,"aria-hidden":!0}):g?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(`button`,{type:`button`,onClick:h,"aria-label":n(`credentialRow.copyValueAriaLabel`,{name:f}),title:n(`credentialRow.copyValueTitle`),className:`shrink-0 rounded-sm p-0.5 text-[var(--content-tertiary)] transition-colors hover:text-[var(--content-secondary)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)]`,children:c?(0,z.jsx)(D,{className:`h-3.5 w-3.5`,"aria-hidden":!0}):(0,z.jsx)(N,{className:`h-3.5 w-3.5`,"aria-hidden":!0})}),(0,z.jsx)(`button`,{type:`button`,onClick:p,"aria-label":n(`credentialRow.hideValueAriaLabel`,{name:f}),title:n(`credentialRow.hideValueTitle`),className:`shrink-0 rounded-sm p-0.5 text-[var(--content-tertiary)] transition-colors hover:text-[var(--content-secondary)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)]`,children:(0,z.jsx)(k,{className:`h-3.5 w-3.5`,"aria-hidden":!0})})]}):(0,z.jsx)(`button`,{type:`button`,onClick:()=>void m(),"aria-label":n(`credentialRow.revealValueAriaLabel`,{name:f}),title:n(`credentialRow.clickToRevealTitle`),className:`shrink-0 rounded-sm p-0.5 text-[var(--content-tertiary)] transition-colors hover:text-[var(--content-secondary)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)]`,children:(0,z.jsx)(j,{className:`h-3.5 w-3.5`,"aria-hidden":!0})})]}):(0,z.jsx)(`span`,{className:`min-w-0 truncate font-mono text-body-medium-lighter text-[var(--content-tertiary)]`,children:t.scrubbedValue})}function le(e){return e>0xe8d4a51000?e:e*1e3}async function U(e,t){let{data:n,response:r}=await y.post({url:`/v1/assistants/{assistant_id}/credential-requests`,path:{assistant_id:e},body:t});if(!r?.ok)throw Error(`Failed to create credential request: ${r?.status}`);return n}var W=6;function G(){let e=b(),t=I(e),n=f.use.assistantId();return f.use.version()!==null&&n===e&&!t?(0,z.jsx)(_,{}):t?(0,z.jsx)(K,{}):null}function K(){let{t:e}=C(`settings`),r=b(),i=ie(),o=d(),f=te(r),g=re({queryKey:f,queryFn:async()=>{let{data:e}=await ee({path:{assistant_id:r},body:{},throwOnError:!0});return{credentials:e.credentials,managedCredentials:e.managedCredentials}},enabled:o,retry:l}),_=(0,L.useMemo)(()=>g.data?.credentials??[],[g.data]),y=u.use.settingsDeveloperNav(),w=(0,L.useMemo)(()=>y?g.data?.managedCredentials??[]:[],[y,g.data]),[T,E]=(0,L.useState)(!1),[D,k]=(0,L.useState)(`own`),[j,I]=(0,L.useState)(``),[R,B]=(0,L.useState)(null),[V,H]=(0,L.useState)(null),[G,K]=(0,L.useState)(null),[ue,q]=(0,L.useState)(null),J=a({onSuccess:(t,n)=>{i.invalidateQueries({queryKey:f}),S.success(e(`credentialsPage.deleteSuccessToast`,{name:`${n.body.service}:${n.body.field}`}))},onError:(t,r)=>{let i=oe(t),a=_.find(e=>e.service===r.body.service&&e.field===r.body.field);if(i&&a){H({credential:a,connections:i});return}n(t,{context:`credentials-delete`}),S.error(t.message||e(`credentialsPage.deleteErrorToast`))}}),de=J.isPending?`${J.variables?.body?.service}:${J.variables?.body?.field}`:null,Y=(0,L.useMemo)(()=>{let e=j.trim().toLowerCase();return e?_.filter(t=>[t.service,t.field,`${t.service}:${t.field}`,t.alias??``].join(` `).toLowerCase().includes(e)):_},[_,j]);(0,L.useEffect)(()=>{_.length<=W&&I(``)},[_.length]),(0,L.useEffect)(()=>{_.length===0&&w.length>0&&k(`managed`)},[_.length,w.length]);let X=(e,t)=>{J.mutate({path:{assistant_id:r},body:{service:e.service,field:e.field,...t?{force:!0}:{}}})},fe=()=>{let e=R;B(null),e&&X(e,!1)},pe=()=>{let e=V;H(null),e&&X(e.credential,!0)},me=async t=>{let n=`${t.service}:${t.field}`;q(n);try{let i=await U(r,{service:t.service,field:t.field,label:t.alias??void 0});i.ok&&i.url?K({name:n,url:i.url,expiresAt:i.expiresAt??null}):S.error(i.error||e(`credentialsPage.generateLinkFailedToast`))}catch(t){S.error(t instanceof Error?t.message:e(`credentialsPage.generateLinkFailedToast`))}finally{q(null)}},he=()=>{let t=G?.url;t&&v(t,{successMessage:e(`credentialsPage.linkCopiedToast`),errorMessage:e(`credentialsPage.linkCopyFailedToast`)})};if(g.isLoading)return(0,z.jsx)(`div`,{className:`flex items-center justify-center py-10`,children:(0,z.jsx)(A,{className:`h-5 w-5 animate-spin text-[var(--content-disabled)]`})});let Z=_.length>0,Q=w.length>0,ge=_.length>W,$=D===`managed`&&Q,_e=!$,ve=[{value:`own`,label:e(`credentialsPage.segmentYourOwn`)},{value:`managed`,label:e(`credentialsPage.segmentManaged`)}];return(0,z.jsxs)(`div`,{className:`space-y-4`,children:[(0,z.jsx)(F,{title:e(`credentialsPage.title`),subtitle:e($?`credentialsPage.subtitleManaged`:`credentialsPage.subtitleOwn`),accessory:(0,z.jsxs)(`div`,{className:`flex items-center gap-2`,children:[Q?(0,z.jsx)(ne,{items:ve,value:D,onChange:k,ariaLabel:e(`credentialsPage.credentialSourceAriaLabel`)}):null,_e&&Z?(0,z.jsx)(t,{type:`button`,variant:`primary`,size:`regular`,onClick:()=>E(!0),leftIcon:(0,z.jsx)(O,{"aria-hidden":!0}),children:e(`credentialsPage.addButton`)}):null]}),children:$?(0,z.jsx)(`div`,{className:`space-y-2`,children:w.map(t=>(0,z.jsx)(s.Root,{children:(0,z.jsxs)(s.Body,{padding:`sm`,className:`flex items-center gap-4 px-4`,children:[(0,z.jsx)(M,{className:`h-5 w-5 shrink-0 text-[var(--content-secondary)]`,"aria-hidden":!0}),(0,z.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,z.jsx)(`p`,{className:`truncate text-title-small text-[var(--content-default)]`,children:t.provider}),(0,z.jsxs)(`p`,{className:`truncate text-body-medium-lighter text-[var(--content-tertiary)]`,children:[t.accountInfo??t.handle,` · `,t.status]})]}),(0,z.jsx)(c,{tone:`neutral`,children:e(`credentialsPage.managedTag`)})]})},t.handle))}):(0,z.jsxs)(`div`,{className:`space-y-4`,children:[Z?(0,z.jsxs)(`div`,{className:`space-y-3`,children:[ge?(0,z.jsx)(h,{type:`text`,value:j,onChange:e=>I(e.target.value),placeholder:e(`credentialsPage.searchPlaceholder`),"aria-label":e(`credentialsPage.searchAriaLabel`),leftIcon:(0,z.jsx)(ae,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),fullWidth:!0}):null,Y.length===0?(0,z.jsx)(`p`,{className:`px-1 py-2 text-body-medium-lighter text-[var(--content-tertiary)]`,children:e(`credentialsPage.noMatch`,{query:j.trim()})}):(0,z.jsx)(`div`,{className:`space-y-2`,children:Y.map(e=>{let t=`${e.service}:${e.field}`;return(0,z.jsx)(ce,{credential:e,assistantId:r,generatingLink:ue===t,deleting:de===t,onGenerateLink:()=>void me(e),onDelete:()=>B(e)},e.credentialId??t)})})]}):(0,z.jsxs)(`div`,{className:`flex flex-col items-center justify-center px-6 py-12 text-center`,children:[(0,z.jsx)(`div`,{className:`flex h-12 w-12 items-center justify-center rounded-full bg-[var(--surface-base)]`,children:(0,z.jsx)(M,{className:`h-6 w-6 text-[var(--content-disabled)] dark:text-[var(--content-default)]`,"aria-hidden":!0})}),(0,z.jsx)(`h3`,{className:`mt-4 text-title-small text-[var(--content-default)]`,children:e(`credentialsPage.emptyTitle`)}),(0,z.jsx)(`p`,{className:`mt-1 text-body-medium-lighter text-[var(--content-tertiary)]`,children:e(`credentialsPage.emptySubtitle`)})]}),Z?null:(0,z.jsx)(t,{type:`button`,variant:`outlined`,size:`compact`,onClick:()=>E(!0),className:`w-full border-dashed`,leftIcon:(0,z.jsx)(O,{"aria-hidden":!0}),children:e(`credentialsPage.addCredentialButton`)})]})}),(0,z.jsx)(x,{open:R!==null,title:e(`credentialsPage.deleteConfirmTitle`),message:R?e(`credentialsPage.deleteConfirmMessage`,{name:`${R.service}:${R.field}`}):``,confirmLabel:e(`credentialsPage.deleteConfirmLabel`),destructive:!0,onConfirm:fe,onCancel:()=>B(null)}),(0,z.jsx)(x,{open:V!==null,title:e(`credentialsPage.inUseTitle`),message:V?e(`credentialsPage.inUseMessage`,{count:V.connections.length,name:`${V.credential.service}:${V.credential.field}`,connections:se(V.connections)}):``,confirmLabel:e(`credentialsPage.inUseConfirmLabel`),destructive:!0,onConfirm:pe,onCancel:()=>H(null)}),(0,z.jsx)(m,{open:T,onClose:()=>E(!1)}),(0,z.jsx)(p.Root,{open:G!==null,onOpenChange:e=>{e||K(null)},children:(0,z.jsxs)(p.Content,{size:`sm`,children:[(0,z.jsxs)(p.Header,{icon:P,children:[(0,z.jsx)(p.Title,{children:e(`credentialsPage.oneTimeLinkModalTitle`)}),(0,z.jsx)(p.Description,{children:G?e(`credentialsPage.oneTimeLinkModalDescription`,{name:G.name,expiresClause:G.expiresAt===null?``:e(`credentialsPage.oneTimeLinkModalExpiresClause`,{expiresAt:new Date(le(G.expiresAt)).toLocaleString()})}):``})]}),(0,z.jsx)(p.Body,{children:(0,z.jsx)(h,{label:e(`credentialsPage.linkLabel`),type:`text`,readOnly:!0,value:G?.url??``,onFocus:e=>e.currentTarget.select(),fullWidth:!0})}),(0,z.jsx)(p.Footer,{children:(0,z.jsx)(t,{type:`button`,size:`compact`,onClick:he,leftIcon:(0,z.jsx)(N,{"aria-hidden":!0}),children:e(`credentialsPage.copyLinkButton`)})})]})})]})}export{G as CredentialsPage};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{AC as t,fr as n}from"./app-XG_RF2yi.js";import{E as r,tt as i}from"./vendor-DwMhK7fD.js";import{t as a,x as o}from"./react-B9IgSVeK.js";import{t as s}from"./preview-error-BSpmr-KH.js";var c=e(o(),1),l=[`,`,`;`,` `];function u(e){let t=e.trim();return t===``?!1:/^[+-]?(\d+(\.\d+)?|\.\d+)([eE][+-]?\d+)?$/.test(t)}function d(e,t){let n=0,r=!1,i=!1;for(let a=0;a<e.length;a+=1){let o=e[a];if(r){o===`"`&&(e[a+1]===`"`?a+=1:r=!1),i=!0;continue}if(o===`"`){r=!0,i=!0;continue}if(o===`
|
|
2
|
-
`||o===`\r`){if(i)break;continue}o===t&&(n+=1),i=!0}return n}function f(e){let t=l[0],n=0;for(let r of l){let i=d(e,r);i>n&&(t=r,n=i)}return t}function p(e,t){let n=[],r=[],i=``,a=!1,o=!1,s=()=>{r.push(i),i=``,r.length===1&&r[0]===``||n.push(r),r=[]};for(let c=0;c<e.length;c+=1){let l=e[c];if(a){l===`"`?e[c+1]===`"`?(i+=`"`,c+=1):a=!1:i+=l;continue}if(l===`"`&&i===``){a=!0;continue}if(l===t){r.push(i),i=``;continue}if(l===`\r`||l===`
|
|
3
|
-
`){if(l===`\r`&&e[c+1]===`
|
|
4
|
-
`&&(c+=1),s(),n.length>=5e3)return o=e.slice(c+1).trim()!==``,{records:n,truncated:o};continue}i+=l}return(i!==``||r.length>0)&&s(),{records:n,truncated:o}}function m(e){let t=e[0];return!t||e.length<2||t.some(e=>e.trim()===``||u(e))?!1:e.slice(1).some(e=>e.some(e=>u(e)))}function h(e){let t=e.charCodeAt(0)===65279?e.slice(1):e;if(t.trim()===``)return{headers:null,rows:[],truncated:!1};let{records:n,truncated:r}=p(t,f(t));if(n.length===0)return{headers:null,rows:[],truncated:r};let i=n.reduce((e,t)=>Math.max(e,t.length),0),a=Math.min(i,200),o=i>200,s=n.map(e=>{let t=e.slice(0,a);for(;t.length<a;)t.push(``);return t}),c=m(s);return{headers:c?s[0]:null,rows:c?s.slice(1):s,truncated:r||o}}var g=a(),_=30,v=`border-b border-r border-[var(--border-element)] px-2 py-1 align-top last:border-r-0`,y={Table:({style:e,...t})=>(0,g.jsx)(`table`,{...t,className:`w-full min-w-max border-collapse text-body-small-default text-[var(--content-default)]`,style:e}),TableRow:({item:e,...t})=>(0,g.jsx)(`tr`,{...t})};function b({blob:e,filename:a}){let{t:o}=r(`chat`),[l,u]=(0,c.useState)(null),[d,f]=(0,c.useState)(!1);(0,c.useEffect)(()=>{let t=!1;return u(null),f(!1),e.text().then(e=>{t||u(e)},()=>{t||f(!0)}),()=>{t=!0}},[e]);let p=(0,c.useMemo)(()=>l===null?null:h(l),[l]),m=p?.headers??null,b=(0,c.useCallback)(()=>m===null?null:(0,g.jsx)(`tr`,{children:m.map((e,t)=>(0,g.jsx)(`th`,{scope:`col`,title:e,className:`${v} bg-[var(--surface-sunken)] text-left text-body-small-emphasised`,children:(0,g.jsx)(`span`,{className:`block max-w-[20rem] truncate`,children:e})},t))}),[m]);if(d)return(0,g.jsx)(s,{filename:a});if(p===null)return(0,g.jsx)(n,{});let x=m?.length??p.rows[0]?.length??0;return x===0?(0,g.jsx)(`div`,{role:`status`,className:`flex h-full items-center justify-center p-4`,children:(0,g.jsx)(t,{as:`span`,variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,children:o(`csvPreview.emptyFile`)})}):(0,g.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col`,children:[(0,g.jsx)(i,{data:p.rows,initialItemCount:Math.min(p.rows.length,_),components:y,fixedHeaderContent:m===null?void 0:b,itemContent:(e,t)=>t.map((e,t)=>(0,g.jsx)(`td`,{title:e,className:v,children:(0,g.jsx)(`span`,{className:`block max-w-[20rem] truncate`,children:e})},t)),className:`min-h-0 flex-1`}),(0,g.jsx)(t,{as:`p`,variant:`label-small-default`,className:`shrink-0 border-t border-[var(--border-element)] px-3 py-1.5 text-[var(--content-tertiary)]`,children:p.truncated?o(`csvPreview.summaryTruncated`,{rows:p.rows.length,columns:x}):o(`csvPreview.summary`,{rows:p.rows.length,columns:x})})]})}export{b as CsvPreview};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{mS as t}from"./app-XG_RF2yi.js";import{f as n,x as r}from"./react-B9IgSVeK.js";var i=e(r(),1);function a(){let e=n();return(0,i.useEffect)(()=>{e(t.settings.general,{replace:!0})},[e]),null}export{a as DangerZoneRedirectPage};
|