@vellumai/web 0.11.7-staging.1 → 0.11.7
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-BG2srB8l.js → a2a-invite-CalxmT9U.js} +1 -1
- package/dist/assets/{about-page-DjQBOkob.js → about-page-oelEgoKN.js} +1 -1
- package/dist/assets/{account-page-CwogL0Kz.js → account-page-DoWCrccl.js} +1 -1
- package/dist/assets/{account-shell-CWXjq2ej.js → account-shell-D6h6YPdW.js} +1 -1
- package/dist/assets/acp-run-detail-panel-BqBDl6QB.js +5 -0
- package/dist/assets/activity-steps-panel-C5Nlm1Ax.js +1 -0
- package/dist/assets/{add-credits-modal-DE_wGp3t.js → add-credits-modal-Clc-YWYG.js} +1 -1
- package/dist/assets/ai-page-DtRit5K4.js +1 -0
- package/dist/assets/{android-billing-handoff-DYRUkuq4.js → android-billing-handoff-D6KkZQcR.js} +1 -1
- package/dist/assets/{api-key-screen-BgmfpQwf.js → api-key-screen-BWXzfFaa.js} +1 -1
- package/dist/assets/{app-info-BADbcXSH.js → app-info-BzVdvgJM.js} +1 -1
- package/dist/assets/archive-redirect-page-DD3q7S_q.js +1 -0
- package/dist/assets/{assistant-status-panel-BGTMhPVr.js → assistant-status-panel-i2Q5Ng1C.js} +1 -1
- package/dist/assets/{auth-welcome-screen-DEaRtq6O.js → auth-welcome-screen-ghh-qFOz.js} +1 -1
- package/dist/assets/avatar-random-BEjqLOzH.js +1 -0
- package/dist/assets/background-task-detail-panel-igcj1myW.js +1 -0
- package/dist/assets/billing-page-BtVWtaxz.js +3 -0
- package/dist/assets/{billing-redirect-page-BUWlrUKX.js → billing-redirect-page-DaIhDbvM.js} +1 -1
- package/dist/assets/{bookmarks-page-Dh3gScqi.js → bookmarks-page-CvCqY1u_.js} +1 -1
- package/dist/assets/{bundle-confirm-page-cmqY9QqX.js → bundle-confirm-page-DuW3Ltpg.js} +1 -1
- package/dist/assets/channel-transcript-panel-C5dxI2kC.js +1 -0
- package/dist/assets/channels-page-route-CaZZgVvj.js +1 -0
- package/dist/assets/{checkout-continuation-CFAf_YzF.js → checkout-continuation-gyr3KRhJ.js} +1 -1
- package/dist/assets/{checkout-page-lzWoFsCx.js → checkout-page-CpaWMY_L.js} +1 -1
- package/dist/assets/checkout-return-target-uGUiSRvm.js +1 -0
- package/dist/assets/{command-palette-DTyDlxan.js → command-palette-Dqv1yvzc.js} +1 -1
- package/dist/assets/{command-palette-window-page-D6EOoO37.js → command-palette-window-page-C4vKhArq.js} +1 -1
- package/dist/assets/{community-page-DTTodb1d.js → community-page-xiwPgo2f.js} +1 -1
- package/dist/assets/companion-layout-BgFk39Te.js +1 -0
- package/dist/assets/companion-surface-page-BE_GKIQH.js +1 -0
- package/dist/assets/{connect-page-DcvBA4Oi.js → connect-page-1WOW2Uyb.js} +1 -1
- package/dist/assets/{consent-controls-BdBt8PvQ.js → consent-controls-RsRyTWzn.js} +1 -1
- package/dist/assets/{contacts-rWJ8WW7q.js → contacts-DY80_acF.js} +1 -1
- package/dist/assets/{contacts-CvzAe9KC.js → contacts-O_w2EdRt.js} +1 -1
- package/dist/assets/contacts-gateway-aq64PPDs.js +1 -0
- package/dist/assets/contacts-page-route-fh_BygpY.js +1 -0
- package/dist/assets/{credential-entry-page-Br-h4ohy.js → credential-entry-page-CHyGUHNE.js} +1 -1
- package/dist/assets/credentials-page-u4m5eB0e.js +1 -0
- package/dist/assets/{csv-preview-BmGd5GvO.js → csv-preview-D1DFyAyk.js} +1 -1
- package/dist/assets/danger-zone-redirect-page-pm7xtA64.js +1 -0
- package/dist/assets/debug-page-BiRFASyO.js +4 -0
- package/dist/assets/deploy-dialogs-BQGFr3pp.js +1 -0
- package/dist/assets/{detail-card-BWAdYYsU.js → detail-card-BTciodin.js} +1 -1
- package/dist/assets/{detail-drawer-DVRLdKH6.js → detail-drawer-svbxV7k9.js} +1 -1
- package/dist/assets/{detail-panel-stop-button-Ec_O0FsT.js → detail-panel-stop-button-DvPi_A52.js} +1 -1
- package/dist/assets/developer-page-YJ4ePRAY.js +1 -0
- package/dist/assets/devices-redirect-page-Bc3d-ANN.js +1 -0
- package/dist/assets/dictation-overlay-page-CV5-bWnC.js +1 -0
- package/dist/assets/{document-viewer-page-2ypPIt0f.js → document-viewer-page-B9aeVcPf.js} +1 -1
- package/dist/assets/{emails-page-B62WLfUs.js → emails-page-DuxmJeBh.js} +1 -1
- package/dist/assets/environment-store-Cb7OK6xz.js +1 -0
- package/dist/assets/{esm-CIxL6Kea.js → esm-BFMxsKfC.js} +2 -2
- package/dist/assets/{esm-CjMeaTEw.js → esm-BWaPHKOl.js} +2 -2
- package/dist/assets/esm-B_9x3_5A.js +2 -0
- package/dist/assets/{esm-D_v5tFl3.js → esm-BmkPJcrm.js} +1 -1
- package/dist/assets/{esm-DDqr6fmx.js → esm-C8_GJq6u.js} +1 -1
- package/dist/assets/esm-CvsVyyLL.js +2 -0
- package/dist/assets/esm-D8F0P9NS.js +1 -0
- package/dist/assets/esm-DLD7mc5e.js +2 -0
- package/dist/assets/esm-lFkAo6qR.js +2 -0
- package/dist/assets/{file-editor-CDGUDFoJ.js → file-editor-qyflOek_.js} +1 -1
- package/dist/assets/general-page-CplJ3sOI.js +1 -0
- package/dist/assets/{hatching-screen-9rpuz0wC.js → hatching-screen-tqPPQDHG.js} +1 -1
- package/dist/assets/home-page-route-CMsbxqsW.js +1 -0
- package/dist/assets/{hosting-screen-BNfcYeZc.js → hosting-screen-7idZudJ8.js} +1 -1
- package/dist/assets/identity-page-route-C4EAb-ac.js +7 -0
- package/dist/assets/index-2ECSWhtU.css +2 -0
- package/dist/assets/index-7XDiAJ-A.js +357 -0
- package/dist/assets/inspect-page-DsXykArJ.js +9 -0
- package/dist/assets/integrations-page-CmMVSsvu.js +1 -0
- package/dist/assets/{intelligence-BGwrywAc.js → intelligence-DwVUW6jm.js} +1 -1
- package/dist/assets/{intelligence-CiHR5tCj.js → intelligence-JlruxYAh.js} +1 -1
- package/dist/assets/{intelligence-layout-BPHznVLK.js → intelligence-layout-DKknlxHu.js} +1 -1
- package/dist/assets/keyboard-shortcuts-redirect-page-CFu5x117.js +1 -0
- package/dist/assets/{latest-assistant-text-CHdsnShy.js → latest-assistant-text-CVRVSoFg.js} +2 -2
- package/dist/assets/{library-detail-page-BjvON63o.js → library-detail-page-CKFkI0QY.js} +1 -1
- package/dist/assets/{library-page-BNsPqJb4.js → library-page-dIrR1lib.js} +1 -1
- package/dist/assets/login-page-Bca-1DK6.js +1 -0
- package/dist/assets/logout-page-BzAORi0q.js +1 -0
- package/dist/assets/{logs-layout-sBHkwmuK.js → logs-layout-BsqrLQee.js} +1 -1
- package/dist/assets/markdown-preview-DLXGytZI.js +1 -0
- package/dist/assets/{media-preview-Dp_Ohj3P.js → media-preview-daMlnyj8.js} +1 -1
- package/dist/assets/memory-page-route-CX1I7izG.js +2 -0
- package/dist/assets/memory-router-playground-page-Mk3rfyGO.js +1 -0
- package/dist/assets/{message-files-panel-DYuk1i1H.js → message-files-panel-D-C9C2PJ.js} +1 -1
- package/dist/assets/{metric-card-D68AKIAM.js → metric-card-Bij5WGzs.js} +1 -1
- package/dist/assets/{notifications-page-D7Dw0oH6.js → notifications-page-C6zUs2x1.js} +1 -1
- package/dist/assets/{oauth-complete-page-CnK3ee01.js → oauth-complete-page-CuNDqPAt.js} +1 -1
- package/dist/assets/{oauth-popup-complete-page--j9eevP9.js → oauth-popup-complete-page-hRc3yLWH.js} +1 -1
- package/dist/assets/{page-shell-CwFMHnxU.js → page-shell-DtdXurhX.js} +1 -1
- package/dist/assets/{pairing-page-BRPrbdWT.js → pairing-page-CwLe0EJV.js} +1 -1
- package/dist/assets/password-reset-page-C7qvqEJQ.js +1 -0
- package/dist/assets/pdf-file-preview-DbwHMWey.js +1 -0
- package/dist/assets/pdf.worker.min-Dr1KORA9.mjs +31 -0
- package/dist/assets/{personality-page-DJVyEe5m.js → personality-page-Ci_b1dH9.js} +1 -1
- package/dist/assets/plans-page-CyqILV_j.js +1 -0
- package/dist/assets/{platform-loopback-page-D2hnF-6j.js → platform-loopback-page-CgXx1oDQ.js} +1 -1
- package/dist/assets/{plugin-detail-page-BxckOMbK.js → plugin-detail-page-CvC_LUz2.js} +1 -1
- package/dist/assets/plugins-page-9LuPE9IY.js +1 -0
- package/dist/assets/{preview-error-5Hqa2QOK.js → preview-error-DbAQP8oG.js} +1 -1
- package/dist/assets/privacy-page-OIOZKgWi.js +1 -0
- package/dist/assets/privacy-screen-DFnrbIrM.js +1 -0
- package/dist/assets/{provider-callback-page-B6YzW_3J.js → provider-callback-page-DGVehvIp.js} +1 -1
- package/dist/assets/{provider-key-D5nnrPPW.js → provider-key-CUAJZvaQ.js} +1 -1
- package/dist/assets/{provider-signup-page-DlESwxat.js → provider-signup-page-B5gnrbym.js} +1 -1
- package/dist/assets/{provisioning-targets-BwRmWHCY.js → provisioning-targets-BbLfumae.js} +1 -1
- package/dist/assets/{quick-input-page-DdS8Ya9c.js → quick-input-page-Ccy-FS5S.js} +1 -1
- package/dist/assets/{research-mock-page-4EEr0WVh.js → research-mock-page-DqfkGU9x.js} +1 -1
- package/dist/assets/research-onboarding-route-D3qFv6SM.js +50 -0
- package/dist/assets/review-terms-screen-BD3wP3KC.js +1 -0
- package/dist/assets/schedules-B_SL_iV4.js +1 -0
- package/dist/assets/schedules-page-D64tvhuZ.js +1 -0
- package/dist/assets/security-redirect-page-CWR-HICc.js +1 -0
- package/dist/assets/select-assistant-screen-SfWB0oQ2.js +1 -0
- package/dist/assets/{self-hosted-servers-D61iCe1r.js → self-hosted-servers-BHF9gq8j.js} +1 -1
- package/dist/assets/{service-form-controls-CffsytNz.js → service-form-controls-DNfWnjSp.js} +1 -1
- package/dist/assets/{setting-row-CSNsQ0ef.js → setting-row-DRwmii99.js} +1 -1
- package/dist/assets/settings-divider-X9YnFIFQ.js +1 -0
- package/dist/assets/settings-gjWN0WQO.js +3 -0
- package/dist/assets/settings-iLTzqZW8.js +3 -0
- package/dist/assets/settings-layout-C2Um5qit.js +1 -0
- package/dist/assets/share-feedback-modal-BzV03dUO.js +2 -0
- package/dist/assets/{sidebar-tree-ZPuFWd8L.js → sidebar-tree-C1t1xfKD.js} +1 -1
- package/dist/assets/{signup-page-DiLyBF-_.js → signup-page-Dyhm65FW.js} +1 -1
- package/dist/assets/{signup-shell-CY6NA0p0.js → signup-shell-CSThcwPa.js} +1 -1
- package/dist/assets/skill-detail-page-Cja0k8_e.js +2 -0
- package/dist/assets/skill-detail-panel-BIOL410z.js +1 -0
- package/dist/assets/skill-removal-dialog-bN91N7f8.js +1 -0
- package/dist/assets/skills-page-CYogTXmH.js +1 -0
- package/dist/assets/{sounds-page-yAwMH4xw.js → sounds-page-DAy2o3wO.js} +1 -1
- package/dist/assets/{start-screen-B1Uc7S-6.js → start-screen-DyyYavfM.js} +1 -1
- package/dist/assets/{stt-language-picker-modal-DyydP36W.js → stt-language-picker-modal-CpGwbd4g.js} +1 -1
- package/dist/assets/subagent-detail-panel-330bH7ee.js +4 -0
- package/dist/assets/superpowers-page-D6wv3GWO.js +1 -0
- package/dist/assets/system-events-page-CFN8tMUJ.js +1 -0
- package/dist/assets/system-events-redirect-page-BarOgFkA.js +1 -0
- package/dist/assets/{text-preview-C1ye4KZC.js → text-preview-CZeqyzdw.js} +1 -1
- package/dist/assets/{theme-stage-page-Dtdm0G4w.js → theme-stage-page-Pcnh0PTQ.js} +1 -1
- package/dist/assets/{tiptap-document-editor-mKYn2fin.js → tiptap-document-editor-ZZmtZ799.js} +3 -3
- package/dist/assets/tool-detail-panel-BgCSb_m5.js +12 -0
- package/dist/assets/{trait-cycle-row-Cz3jk7-7.js → trait-cycle-row-BWNJ21g4.js} +1 -1
- package/dist/assets/upgrade-cancel-page-ByVEWPeH.js +1 -0
- package/dist/assets/{upgrade-success-page-CmDLrmA6.js → upgrade-success-page-iAPLJbee.js} +1 -1
- package/dist/assets/usage-redirect-page-BHd-7in5.js +1 -0
- package/dist/assets/{use-assistant-identity-details-VmKyMMkK.js → use-assistant-identity-details-oVmPdjVe.js} +1 -1
- package/dist/assets/use-checkout-dismiss-refresh-BO2cN2i8.js +1 -0
- package/dist/assets/{use-edge-swipe-back-Dmrjwtqi.js → use-edge-swipe-back-CzESg8qG.js} +2 -2
- package/dist/assets/{use-hotkey-recorder-pYZHrA6s.js → use-hotkey-recorder-CY089_4p.js} +1 -1
- package/dist/assets/use-invite-link-dialog-Ck-LquhT.js +1 -0
- package/dist/assets/{use-platform-assistant-id-C1Q0d0Do.js → use-platform-assistant-id-DcVWp7KY.js} +1 -1
- package/dist/assets/use-return-to-short-circuit-NDSwANeI.js +1 -0
- package/dist/assets/{use-side-list-room-CWZO9QuZ.js → use-side-list-room-DQbUPFcU.js} +1 -1
- package/dist/assets/use-skill-actions-CNBx-WS1.js +1 -0
- package/dist/assets/use-skill-detail-files-BGIXJykk.js +1 -0
- package/dist/assets/use-supports-credentials-settings-C6S_OHMP.js +1 -0
- package/dist/assets/use-transcript-message-by-id-Dqm1PMu3.js +1 -0
- package/dist/assets/vendor-WUN87CSE.js +385 -0
- package/dist/assets/voice-page-nBfEMyWs.js +1 -0
- package/dist/assets/{weather-forecast-display-q4i0rBmL.js → weather-forecast-display-B6j-V-yS.js} +1 -1
- package/dist/assets/{web-C5RZo6Cu.js → web-CE-RjE8i.js} +1 -1
- package/dist/assets/{web-BeH1ODMG.js → web-Cv_J7__I.js} +1 -1
- package/dist/assets/{web-B95SBXmi.js → web-Cw24uxYA.js} +1 -1
- package/dist/assets/{web-CIu_CBvE.js → web-DDFO9PaS.js} +1 -1
- package/dist/assets/{web-CKRg3MHw.js → web-DL2rv-Fb.js} +1 -1
- package/dist/assets/{web-Di12DIkw.js → web-DPEGYPrR.js} +1 -1
- package/dist/assets/{web-C-zG7hIH.js → web-Q8lSPj8Z.js} +1 -1
- package/dist/assets/{web-BNH9zOVU.js → web-kKGZ0Pbn.js} +1 -1
- package/dist/assets/{web-BYYrjr3T.js → web-pwf5Vh3V.js} +1 -1
- package/dist/assets/welcome-screen-BrwdmDqM.js +1 -0
- package/dist/assets/{workflow-detail-panel-Bun0h2gw.js → workflow-detail-panel-DcTQSyju.js} +1 -1
- package/dist/assets/workspace-page-Dwfwnkh5.js +1 -0
- package/dist/index.html +3 -3
- package/package.json +1 -1
- package/dist/assets/acp-run-detail-panel-DWLndpqU.js +0 -5
- package/dist/assets/activity-steps-panel-Ry9AZgWU.js +0 -1
- package/dist/assets/ai-page-B7MqZXa-.js +0 -1
- package/dist/assets/archive-redirect-page-TpAi8l5m.js +0 -1
- package/dist/assets/avatar-random-Ms0xoZYV.js +0 -1
- package/dist/assets/background-task-detail-panel-CocEZnBB.js +0 -1
- package/dist/assets/billing-page-9dilDYF6.js +0 -3
- package/dist/assets/channel-transcript-panel-B-fzqLZP.js +0 -1
- package/dist/assets/channels-page-route-DBlQswJi.js +0 -1
- package/dist/assets/checkout-return-target-DX9db8gK.js +0 -1
- package/dist/assets/companion-surface-page-DVzsRqfX.js +0 -1
- package/dist/assets/contacts-gateway-CM8x4x9t.js +0 -1
- package/dist/assets/contacts-page-route-ehyacJJt.js +0 -1
- package/dist/assets/credentials-page-DjIR49jh.js +0 -1
- package/dist/assets/danger-zone-redirect-page-BcdDFitQ.js +0 -1
- package/dist/assets/debug-page-BjeHHi72.js +0 -4
- package/dist/assets/deploy-dialogs-BKzgBqnk.js +0 -1
- package/dist/assets/developer-page-Bjm9VNgE.js +0 -1
- package/dist/assets/devices-redirect-page-BN_kM9bK.js +0 -1
- package/dist/assets/dictation-overlay-page-CJX5EmO_.js +0 -1
- package/dist/assets/environment-store-BZtUrBww.js +0 -1
- package/dist/assets/esm-Ct7gk9cJ.js +0 -2
- package/dist/assets/esm-CwYjRgBz.js +0 -2
- package/dist/assets/esm-DcGjzNqL.js +0 -2
- package/dist/assets/esm-UN_1DrQ6.js +0 -1
- package/dist/assets/esm-Xi5brEbq.js +0 -2
- package/dist/assets/general-page-BzQJtIpg.js +0 -1
- package/dist/assets/home-page-route-BQxZVA7I.js +0 -1
- package/dist/assets/identity-page-route-Daxeea6z.js +0 -7
- package/dist/assets/index-BBTJC9X3.js +0 -357
- package/dist/assets/index-D-nuAcII.css +0 -2
- package/dist/assets/inspect-page-BrINFSDY.js +0 -9
- package/dist/assets/integrations-page-7FifAn0a.js +0 -1
- package/dist/assets/keyboard-shortcuts-redirect-page-DCeElrOI.js +0 -1
- package/dist/assets/login-page-DHzEr67a.js +0 -1
- package/dist/assets/logout-page-Cmnd4XAr.js +0 -1
- package/dist/assets/markdown-preview-BqsOdbTw.js +0 -1
- package/dist/assets/memory-page-route--rSislKU.js +0 -2
- package/dist/assets/memory-router-playground-page-QXoS49RD.js +0 -1
- package/dist/assets/password-reset-page-BwK_1xFg.js +0 -1
- package/dist/assets/pdf-file-preview-7EhxC2AI.js +0 -1
- package/dist/assets/plans-page-CLUnU8h9.js +0 -1
- package/dist/assets/plugins-page-DeTuyacm.js +0 -1
- package/dist/assets/privacy-page-HIRYmYkC.js +0 -1
- package/dist/assets/privacy-screen-Dxmw1gDC.js +0 -1
- package/dist/assets/research-onboarding-route-vTNU2CW9.js +0 -50
- package/dist/assets/review-terms-screen-EC_EUgDO.js +0 -1
- package/dist/assets/schedules-C-f1hDgN.js +0 -1
- package/dist/assets/schedules-page-B6RIbZ8m.js +0 -1
- package/dist/assets/security-redirect-page-C5IIt5g1.js +0 -1
- package/dist/assets/select-assistant-screen-BgCavCxS.js +0 -1
- package/dist/assets/settings-Bv4B7bkB.js +0 -3
- package/dist/assets/settings-Ms9dA3Cb.js +0 -3
- package/dist/assets/settings-divider-Vn0TE-Mn.js +0 -1
- package/dist/assets/settings-layout-NvzuoM5H.js +0 -1
- package/dist/assets/share-feedback-modal-nK59XSQk.js +0 -2
- package/dist/assets/skill-detail-page-Dx_rRk64.js +0 -2
- package/dist/assets/skill-detail-panel-Cjto80ED.js +0 -1
- package/dist/assets/skills-BWIQJK0w.js +0 -1
- package/dist/assets/skills-page-yNxo7PJH.js +0 -1
- package/dist/assets/subagent-detail-panel-1QDrfsxW.js +0 -4
- package/dist/assets/superpowers-page-D15g4czV.js +0 -1
- package/dist/assets/system-events-page-jIh7Fg4r.js +0 -1
- package/dist/assets/system-events-redirect-page-cAhBrtsp.js +0 -1
- package/dist/assets/tool-detail-panel-C2jn8-1x.js +0 -12
- package/dist/assets/upgrade-cancel-page-8_sAFQGV.js +0 -1
- package/dist/assets/usage-redirect-page-DXn_MtMy.js +0 -1
- package/dist/assets/use-checkout-dismiss-refresh-6dzNGv06.js +0 -1
- package/dist/assets/use-invite-link-dialog-CC4gh2RZ.js +0 -1
- package/dist/assets/use-return-to-short-circuit-CaipcLE0.js +0 -1
- package/dist/assets/use-skill-actions-BsdvJMpe.js +0 -1
- package/dist/assets/use-skill-detail-files-czywu0rA.js +0 -1
- package/dist/assets/use-supports-credentials-settings-B2w1IF9Y.js +0 -1
- package/dist/assets/use-transcript-message-by-id-BkBVx2Ox.js +0 -1
- package/dist/assets/vendor-BBRT_WdZ.js +0 -385
- package/dist/assets/voice-page-4-0OuITA.js +0 -1
- package/dist/assets/welcome-screen-CeO4nf82.js +0 -1
- package/dist/assets/workspace-page-mPk7uSGj.js +0 -1
- /package/dist/assets/{account-DpAwa65_.js → account-B6zEi6O8.js} +0 -0
- /package/dist/assets/{account-FRFDU8hs.js → account-WSklJ2-s.js} +0 -0
- /package/dist/assets/{app-types-CxDtkda0.js → app-types-BSxLQFrc.js} +0 -0
- /package/dist/assets/{build.umd-BK2uygbM.js → build.umd-CJjt7Lfj.js} +0 -0
- /package/dist/assets/{channels-B2E8acC6.js → channels-Dv8-4WT6.js} +0 -0
- /package/dist/assets/{channels-Cl60C6Ve.js → channels-NP4ODNxS.js} +0 -0
- /package/dist/assets/{chat-DYVg4UMd.js → chat-CuSRAhBb.js} +0 -0
- /package/dist/assets/{chat-qfibhWrm.js → chat-Dw-Xoh_r.js} +0 -0
- /package/dist/assets/{common-CMx1oWlk.js → common-BZmEPLQq.js} +0 -0
- /package/dist/assets/{common-Cvdz1bSr.js → common-wNADLj0r.js} +0 -0
- /package/dist/assets/{credential-requests-KJuDe1Th.js → credential-requests-DQ9WS6Rl.js} +0 -0
- /package/dist/assets/{credential-requests-M3nwbYv2.js → credential-requests-DUwvVpZo.js} +0 -0
- /package/dist/assets/{definitions-BCXSWaCU.js → definitions-BTBjNf1i.js} +0 -0
- /package/dist/assets/{definitions-DWEBPiP4.js → definitions-Dz0UVs0Z.js} +0 -0
- /package/dist/assets/{diff-rows-CkvlunhT.js → diff-rows-DzBJ95DT.js} +0 -0
- /package/dist/assets/{emoji-catalog-data-DcnzfAnv.js → emoji-catalog-data-a3DXKyhe.js} +0 -0
- /package/dist/assets/{format-countdown-Bm0cUR53.js → format-countdown-Cge3iaM1.js} +0 -0
- /package/dist/assets/{home-CfkNV23Y.js → home-BWUNWNMl.js} +0 -0
- /package/dist/assets/{home-Cg418xAf.js → home-DJ6q91Qp.js} +0 -0
- /package/dist/assets/{library-R5BcofgZ.js → library-Bu_eLt14.js} +0 -0
- /package/dist/assets/{library-DpI_3XlQ.js → library-Diqzwx-J.js} +0 -0
- /package/dist/assets/{link-click-1phDc74T.js → link-click-DpfLT-iQ.js} +0 -0
- /package/dist/assets/{logs-CBTKjeAO.js → logs-Bs19Ze4Q.js} +0 -0
- /package/dist/assets/{logs-DLsVoubE.js → logs-FJQpRVDW.js} +0 -0
- /package/dist/assets/{machine-sizes-BW-s6s5z.js → machine-sizes-C3ptouhz.js} +0 -0
- /package/dist/assets/{onboarding-4bnTgMz4.js → onboarding-BbtVI8KM.js} +0 -0
- /package/dist/assets/{onboarding-tc5zaeEq.js → onboarding-BoaKLlZ5.js} +0 -0
- /package/dist/assets/{onboarding-step-layout-Caq-AfwL.js → onboarding-step-layout-BlSoa02H.js} +0 -0
- /package/dist/assets/{page-empty-state-Bvn1J-m4.js → page-empty-state-BrGkTMcK.js} +0 -0
- /package/dist/assets/{pdf-BwS2m0XD.js → pdf-fWDhmWcw.js} +0 -0
- /package/dist/assets/{plugin-attribution-Dt4SOljB.js → plugin-attribution-c6x0DrZM.js} +0 -0
- /package/dist/assets/{profile-metadata-BG4G_07I.js → profile-metadata-Bk4pj7o_.js} +0 -0
- /package/dist/assets/{radio-card-nav-C7WQFCun.js → radio-card-nav-DlRweN3g.js} +0 -0
- /package/dist/assets/{remote-web-YzTMn6Av.js → remote-web-9YsnKwue.js} +0 -0
- /package/dist/assets/{remote-web-DH8Jm1os.js → remote-web-bapYzahN.js} +0 -0
- /package/dist/assets/{schedules-iytF8Rfk.js → schedules-CYD1CzCP.js} +0 -0
- /package/dist/assets/{schedules--WcHZLt-.js → schedules-DhwNRBkz.js} +0 -0
- /package/dist/assets/{skill-icon-BD5uPL1w.js → skill-icon-Me8DDEMt.js} +0 -0
- /package/dist/assets/{status-badge-pill-Cj5B-jwU.js → status-badge-pill-BAkXhxwa.js} +0 -0
- /package/dist/assets/{terminal-D8e9KyzK.js → terminal-7pMYRiby.js} +0 -0
- /package/dist/assets/{terminal-CfVsrnxa.js → terminal-BMbpDjYx.js} +0 -0
- /package/dist/assets/{use-truncated-blob-text-DusFJInu.js → use-truncated-blob-text-DLF_hf3O.js} +0 -0
- /package/dist/assets/{workspace-B8aSS_ao.js → workspace-BAHtR2RN.js} +0 -0
- /package/dist/assets/{workspace-BWvf_x4h.js → workspace-BnkQd2SU.js} +0 -0
- /package/dist/assets/{xterm-eWwMNYm5.js → xterm-DfM4JBPp.js} +0 -0
- /package/dist/assets/{xterm-addon-fit-CKJrvAeW.js → xterm-addon-fit-DuBTfuI9.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{O as e}from"./vendor-WUN87CSE.js";import{t}from"./react-DPM_L_aA.js";import{Cn as n,O as r,P as i,Yr as a,di as o,lt as s,m as c,qn as l,xi as u,yn as d}from"./icons-CSdHOix6.js";import{B as f,Sy as p,V as m,bi as h,qo as g,vy as _,wy as v,z as y}from"./index-7XDiAJ-A.js";var b=u(`git-pull-request`,[[`circle`,{cx:`18`,cy:`18`,r:`3`,key:`1xkwt0`}],[`circle`,{cx:`6`,cy:`6`,r:`3`,key:`1lh9wr`}],[`path`,{d:`M13 6h3a2 2 0 0 1 2 2v7`,key:`1yeb86`}],[`line`,{x1:`6`,x2:`6`,y1:`9`,y2:`21`,key:`rroup`}]]),x=t();function S({size:e=24,className:t,style:n}){return(0,x.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,width:e,height:e,fill:`currentColor`,className:t,style:n,"aria-hidden":!0,children:(0,x.jsx)(`path`,{d:`M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12`})})}function C({size:e=24,className:t,style:n}){return(0,x.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,width:e,height:e,fill:`currentColor`,className:t,style:n,"aria-hidden":!0,children:(0,x.jsx)(`path`,{d:`M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z`})})}function w({size:e=24,className:t,style:n}){return(0,x.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,width:e,height:e,fill:`currentColor`,className:t,style:n,"aria-hidden":!0,children:(0,x.jsx)(`path`,{d:`M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814ZM9.545 15.568V8.432L15.818 12l-6.273 3.568Z`})})}function T({t:e}){return(0,x.jsx)(p,{padding:`lg`,className:`bg-[var(--surface-lift)]`,children:(0,x.jsxs)(`div`,{className:`relative`,children:[(0,x.jsx)(`div`,{className:`pointer-events-none absolute -right-16 -top-16 h-64 w-64 rounded-full opacity-30 blur-3xl`,style:{background:`radial-gradient(circle, var(--system-mid-weak) 0%, transparent 70%)`},"aria-hidden":!0}),(0,x.jsxs)(`div`,{className:`relative flex flex-col items-start gap-3`,children:[(0,x.jsxs)(_,{tone:`neutral`,children:[(0,x.jsx)(s,{className:`h-3.5 w-3.5`}),e(`communityPage.heroTag`)]}),(0,x.jsx)(`h1`,{className:`text-[28px] font-semibold leading-tight tracking-tight text-[var(--content-emphasised)]`,children:e(`communityPage.heroTitle`)}),(0,x.jsx)(`p`,{className:`max-w-xl text-body-medium-default text-[color:var(--content-tertiary)]`,children:e(`communityPage.heroDescription`)})]})]})})}function E({icon:e,text:t}){return(0,x.jsxs)(`li`,{className:`flex items-center gap-3`,children:[(0,x.jsx)(`span`,{className:`flex size-7 shrink-0 items-center justify-center rounded-md bg-[var(--surface-base)]`,children:(0,x.jsx)(e,{size:14,className:`text-[var(--content-secondary)]`,"aria-hidden":!0})}),(0,x.jsx)(`span`,{className:`text-body-medium-lighter text-[color:var(--content-secondary)]`,children:t})]})}function D({accentColor:e,iconColor:t=`var(--aux-white)`,label:n,icon:r,title:i,subtitle:a,benefits:s,primaryAction:c,secondaryAction:l}){return(0,x.jsx)(p,{padding:`lg`,className:`flex-1`,children:(0,x.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,x.jsxs)(`div`,{className:`flex items-start justify-between`,children:[(0,x.jsx)(`span`,{className:`flex size-10 items-center justify-center rounded-lg`,style:{backgroundColor:e,color:t},children:r}),(0,x.jsx)(`span`,{className:`text-label-medium-default uppercase tracking-wider text-[color:var(--content-tertiary)]`,children:n})]}),(0,x.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,x.jsx)(`h2`,{className:`text-title-medium text-[var(--content-emphasised)]`,children:i}),(0,x.jsx)(`p`,{className:`text-body-medium-lighter text-[color:var(--content-tertiary)]`,children:a})]}),(0,x.jsx)(`ul`,{className:`flex flex-col gap-3`,children:s.map(({icon:e,text:t})=>(0,x.jsx)(E,{icon:e,text:t},t))}),(0,x.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,x.jsxs)(v,{onClick:c.onClick,children:[c.icon,c.label]}),l&&(0,x.jsxs)(v,{variant:`ghost`,onClick:()=>window.open(l.href,`_blank`,`noopener,noreferrer`),children:[l.label,(0,x.jsx)(o,{className:`h-3.5 w-3.5`})]})]})]})})}function O({icon:e,iconBg:t,iconColor:n=`white`,title:r,description:i,href:a}){return(0,x.jsx)(`a`,{href:a,target:`_blank`,rel:`noopener noreferrer`,className:`flex flex-1 cursor-pointer`,children:(0,x.jsx)(p,{className:`flex-1 transition-shadow hover:shadow-md`,padding:`lg`,children:(0,x.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,x.jsxs)(`div`,{className:`flex items-start justify-between`,children:[(0,x.jsx)(`span`,{className:`flex size-10 items-center justify-center rounded-lg`,style:{backgroundColor:t,color:n},children:e}),(0,x.jsx)(l,{size:14,className:`text-[var(--content-tertiary)]`,"aria-hidden":!0})]}),(0,x.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,x.jsx)(`span`,{className:`text-title-medium text-[var(--content-emphasised)]`,children:r}),(0,x.jsx)(`p`,{className:`text-body-medium-lighter text-[color:var(--content-tertiary)]`,children:i})]})]})})})}function k(){let{t}=e(`settings`),{handleStar:o}=m();return(0,x.jsxs)(`div`,{className:`space-y-6`,children:[(0,x.jsx)(T,{t}),(0,x.jsxs)(`div`,{className:`grid grid-cols-1 gap-4 md:grid-cols-2`,children:[(0,x.jsx)(D,{accentColor:`var(--content-emphasised)`,iconColor:`var(--surface-base)`,label:t(`communityPage.openSourceLabel`),icon:(0,x.jsx)(S,{size:20}),title:t(`communityPage.openSourceTitle`),subtitle:t(`communityPage.openSourceSubtitle`),benefits:[{icon:r,text:t(`communityPage.openSourceBenefitStar`)},{icon:a,text:t(`communityPage.openSourceBenefitIssues`)},{icon:b,text:t(`communityPage.openSourceBenefitContribute`)}],primaryAction:{label:t(`communityPage.starOnGitHub`),icon:(0,x.jsx)(r,{size:16}),onClick:o},secondaryAction:{label:t(`communityPage.viewSource`),href:f}}),(0,x.jsx)(D,{accentColor:`#5865F2`,label:t(`communityPage.discordLabel`),icon:(0,x.jsx)(h,{size:20}),title:t(`communityPage.discordTitle`),subtitle:t(`communityPage.discordSubtitle`),benefits:[{icon:d,text:t(`communityPage.discordBenefitTeam`)},{icon:i,text:t(`communityPage.discordBenefitFeedback`)},{icon:c,text:t(`communityPage.discordBenefitAnswers`)}],primaryAction:{label:t(`communityPage.joinDiscord`),icon:(0,x.jsx)(h,{size:16,style:{color:`currentColor`}}),onClick:y}})]}),(0,x.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,x.jsx)(`h2`,{className:`text-label-medium-default uppercase tracking-wider text-[color:var(--content-tertiary)]`,children:t(`communityPage.moreFromVellum`)}),(0,x.jsxs)(`div`,{className:`grid grid-cols-1 gap-4 md:grid-cols-3`,children:[(0,x.jsx)(O,{icon:(0,x.jsx)(n,{size:20}),iconBg:`#22c55e`,title:t(`communityPage.communityHubTitle`),description:t(`communityPage.communityHubDescription`),href:g}),(0,x.jsx)(O,{icon:(0,x.jsx)(C,{size:20}),iconBg:`var(--content-default)`,iconColor:`var(--surface-base)`,title:t(`communityPage.followOnXTitle`),description:t(`communityPage.followOnXDescription`),href:`https://x.com/vellum_ai`}),(0,x.jsx)(O,{icon:(0,x.jsx)(w,{size:20}),iconBg:`#ef4444`,title:t(`communityPage.youtubeChannelTitle`),description:t(`communityPage.youtubeChannelDescription`),href:`https://www.youtube.com/@Vellum_AI`})]})]})]})}export{k as CommunityPage};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Bo as e,Vo as t,zo as n}from"./index-7XDiAJ-A.js";var r=(e,t,n)=>t>=e.left&&t<=e.right&&n>=e.top&&n<=e.bottom,i=(e,t,{rowHeight:n,cardGrowth:r})=>{let i=r===`up`?t.bottom-n:t.top,a={top:i,bottom:i+n};return t.left>=e.right?{left:e.right,right:t.left,...a}:{left:t.right,right:e.left,...a}},a=(e,{avatar:t,pill:n,rowHeight:a,cardGrowth:o})=>{let s=t=>r(t,e.x,e.y);return s(t)?!0:n===null?!1:s(n)||s(i(t,n,{rowHeight:a,cardGrowth:o}))};function o(r,i){let a=t(i),o=r/2,s=n(r,i),c=e(r,i),l=e=>e/a,u=Math.max(o,i-o),d=o;return{scale:a,avatarRel:r/i,avatarHalf:o,gap:s,inUnits:l,lineAt:(e,t)=>e===`up`?`calc(100% - ${l(c-t)}px)`:`${l(c+t)}px`,edgeAt:(e,t)=>{let n=l(t),r=n<0?`calc(50% - ${-n}px)`:`calc(50% + ${n}px)`;return e===`left`?{right:r}:{left:r}},introStepOff:e=>(e===`up`?u:d)+s}}export{r as n,a as r,o as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{O as t,l as n}from"./vendor-WUN87CSE.js";import{b as r,t as i}from"./react-DPM_L_aA.js";import{Br as a,Ft as o,Gn as s,It as c,Kn as l,Y as u,d,f,fn as p,i as m,li as h,ui as g}from"./icons-CSdHOix6.js";import{Lo as _,Ro as v,Yv as y,as as b,cs as x,do as S,ds as ee,fo as C,fs as w,hs as te,is as ne,ls as re,ms as T,os as ie,ps as ae,rs as E,si as D,ss as oe,us as O,wr as k}from"./index-7XDiAJ-A.js";import{n as A,r as se,t as j}from"./companion-layout-BgFk39Te.js";var M=e(r(),1),N=i(),ce=244,P={meet:{title:`companionIntro.meet.title`,body:`companionIntro.meet.body`},talk:{title:`companionIntro.talk.title`,body:`companionIntro.talk.body`},type:{title:`companionIntro.type.title`,body:`companionIntro.type.body`},menu:{title:`companionIntro.menu.title`,body:`companionIntro.menu.body`}},F=e=>e===`talk`||e===`type`?e:void 0,I=e=>e===null||e===`meet`?null:`hover`;function L({beat:e,growth:n=`right`,cardGrowth:r=`up`,avatarBox:i=_,optionsBox:a=_,accentHex:o,assistantName:s,cardRef:c,onAdvance:l}){let{t:u}=t(),d=v.indexOf(e),f=d===v.length-1,p=P[e],{inUnits:m,avatarHalf:h,lineAt:g,edgeAt:y,introStepOff:b}=j(i,a),x=m(b(r)),S=y(n,-h),ee={top:g(r,0),transform:r===`up`?`translateY(calc(-100% - ${x}px))`:`translateY(${x}px)`};return(0,N.jsxs)(`div`,{ref:c,role:`group`,"aria-label":u(`companionIntro.ariaLabel`),className:`absolute flex flex-col gap-2 rounded-2xl border border-white/10 bg-[#17181b]/95 px-3.5 py-3 shadow-lg shadow-black/40`,style:{width:ce,...S,...ee},onMouseDown:e=>{e.stopPropagation()},children:[(0,N.jsx)(`p`,{className:`line-clamp-2 text-[13px] leading-tight font-medium text-white`,children:e===`meet`&&s!==void 0?u(`companionIntro.meet.titleNamed`,{name:s}):u(p.title)}),(0,N.jsx)(`p`,{className:`text-[12px] leading-[1.45] text-white/70`,children:u(p.body)}),(0,N.jsxs)(`div`,{className:`flex items-center justify-between pt-0.5`,children:[(0,N.jsx)(`div`,{className:`flex items-center gap-1`,"aria-hidden":!0,children:v.map((e,t)=>(0,N.jsx)(`span`,{className:`size-1.5 rounded-full transition-colors`,style:{backgroundColor:t===d?o??`#5eead4`:`rgba(255,255,255,.2)`}},e))}),(0,N.jsxs)(`div`,{className:`flex items-center gap-1`,children:[!f&&(0,N.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:()=>l?.(`dismiss`),children:u(`companionIntro.skip`)}),(0,N.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:()=>l?.(`next`),children:u(f?`companionIntro.done`:`companionIntro.next`)})]})]})]})}var le=`#5eead4`,ue=new Set([`transcribing`,`thinking`,`speaking`]),R=`#ff9f45`,z=28,B={hover:112,watching:151,summary:220,call:288},V=316,H=220;function U(e,t){let n=(0,M.useRef)({captureCount:e,watching:t}),[r,i]=(0,M.useState)(0);return(0,M.useEffect)(()=>{let r=n.current;if(n.current={captureCount:e,watching:t},!t){i(0);return}r.watching&&e>r.captureCount&&i(e=>e+1)},[e,t]),r}function de({phase:e,turns:t=[],assistantName:n=`your assistant`,accentHex:r=le,avatarSrc:i,character:a,hovered:o=!1,growth:s=`right`,avatarBox:c=_,optionsBox:l=_,cardGrowth:u=`up`,rootRef:d,avatarRef:f,onSurfaceMouseDown:p,onSurfaceContextMenu:m,spotlight:h,onTalk:g,onType:v,onWatch:y,onSubmit:b,onCancelTyping:x,onAvatarClick:S,working:ee=!1,watching:C=!1,watchRetro:w,onWatchRetro:te,captureCount:ne=0,watchEnabled:re=!1,call:T,onControl:ie,intro:ae}){let E=e!==`resting`,D=e===`typing`,oe=w===`pending`,O=ee||T!==void 0&&ue.has(T.phase),k=U(ne,C),A=(0,M.useRef)(null),[se,ce]=(0,M.useState)(null);(0,M.useLayoutEffect)(()=>{let e=A.current;if(!e)return;let t=()=>{ce(e.scrollWidth)};t();let n=new ResizeObserver(t);return n.observe(e),()=>{n.disconnect()}},[e]);let P=D?V:E?(se??B[e])+16:0,{scale:F,avatarRel:I,avatarHalf:L,gap:z,lineAt:H,edgeAt:de}=j(c,l),W=de(s,L+z),G=D&&u===`down`,X={width:P,...W,top:H(u,G?L-l:L),transform:G?`none`:`translateY(-100%)`,transitionTimingFunction:`cubic-bezier(.2,.8,.2,1)`},Z=(0,N.jsxs)(N.Fragment,{children:[(O||C||oe)&&(0,N.jsx)(`span`,{className:`companion-working-ring pointer-events-none absolute -inset-0.5 rounded-full`,style:{"--companion-ring-accent":C?R:r},"aria-hidden":!0}),C&&k>0&&(0,N.jsx)(`span`,{className:`companion-capture-pulse pointer-events-none absolute -inset-0.5 rounded-full`,style:{"--companion-ring-accent":R},"aria-hidden":!0},k)]});return(0,N.jsxs)(`div`,{className:`absolute top-0 left-0 origin-top-left`,style:{width:`${100/F}%`,height:`${100/F}%`,transform:`scale(${F})`},children:[(0,N.jsxs)(`div`,{className:`absolute cursor-grab transition-[width] duration-300 select-none will-change-[width] active:cursor-grabbing ${D?`flex rounded-[22px] ${u===`up`?`flex-col`:`flex-col-reverse`}`:`flex h-11 items-center rounded-full ${s===`left`?`justify-end`:``}`}`,style:X,onMouseDown:p,onContextMenu:m,ref:d,children:[(0,N.jsx)(`span`,{className:`absolute inset-0 border border-white/10 bg-[#17181b]/95 shadow-lg shadow-black/40 transition-opacity duration-200 ${D?`rounded-[22px]`:`rounded-full`}`,style:{opacity:+!!E},"aria-hidden":!0}),D&&t.length>0&&(0,N.jsx)(K,{turns:t}),(0,N.jsx)(`div`,{className:`relative flex h-11 shrink-0 items-center`,style:{paddingInline:8},children:D?(0,N.jsx)(q,{assistantName:n,watching:C,onSubmit:b,onCancel:x,onWatch:y}):(0,N.jsx)(`div`,{className:`relative flex min-w-0 items-center gap-1 overflow-hidden transition-opacity duration-200`,ref:A,inert:!E,style:{opacity:+!!E,transitionDelay:E?`120ms`:`0ms`},children:e===`call`?(0,N.jsx)(Y,{call:T,watching:C,onControl:ie,onWatch:y}):e===`summary`&&w!==void 0?(0,N.jsx)(pe,{retro:w,onWatchRetro:te}):(0,N.jsx)(fe,{spotlight:h,watching:C,watchEnabled:re,onTalk:g,onType:v,onWatch:y})})})]}),(0,N.jsx)(J,{accentHex:r,avatarSrc:i,character:a,attentive:o,busy:O,edge:Z,style:{left:`50%`,top:H(u,0),transform:`translate(-50%, -50%)${I===1?``:` scale(${I})`}`},elementRef:f,onMouseDown:p,onContextMenu:m,onClick:S}),ae]})}function W({href:e,children:t}){return(0,N.jsx)(`a`,{href:e,className:`underline decoration-white/30 underline-offset-2 hover:decoration-white/60`,onClick:t=>{t.preventDefault(),e!==void 0&&x(e)},onMouseDown:e=>{e.stopPropagation()},children:t})}var G=W;function K({turns:e}){let t=(0,M.useRef)(null);return(0,M.useEffect)(()=>{let e=t.current;e&&(e.scrollTop=e.scrollHeight)},[e]),(0,N.jsx)(`div`,{ref:t,className:`relative flex flex-col gap-1.5 overflow-y-auto px-3 pt-3 pb-1 select-text`,style:{maxHeight:H},children:e.map((e,t)=>{let n=e.role===`user`;return(0,N.jsx)(`div`,{className:`flex shrink-0 ${n?`justify-end`:`justify-start`}`,children:n?(0,N.jsx)(`p`,{className:`max-w-[80%] rounded-lg bg-white/[0.08] px-2.5 py-1.5 text-[12px] leading-[1.45] whitespace-pre-wrap text-white/75`,children:e.text}):(0,N.jsx)(`div`,{"data-theme":`dark`,className:`companion-markdown min-w-0 text-[12px] leading-[1.45] text-white/85`,children:(0,N.jsx)(y,{content:e.text,linkComponent:G})})},`${e.role}-${t}`)})})}function q({assistantName:e,watching:n,onSubmit:r,onCancel:i,onWatch:a}){let{t:o}=t(),[s,c]=(0,M.useState)(``),l=(0,M.useRef)(null),u=s.trim();(0,M.useEffect)(()=>{l.current?.focus()},[]);let d=()=>{u!==``&&(c(``),r?.(u))};return(0,N.jsxs)(`div`,{className:`relative flex min-w-0 flex-1 items-center gap-1`,children:[(0,N.jsx)(`input`,{ref:l,type:`text`,value:s,placeholder:o(`companionSurface.messagePlaceholder`,{name:e}),onChange:e=>{c(e.target.value)},onKeyDown:e=>{if(e.key===`Enter`){e.preventDefault(),d();return}e.key===`Escape`&&(e.preventDefault(),i?.())},onMouseDown:e=>{e.stopPropagation()},className:`min-w-0 flex-1 bg-transparent text-[12px] text-white/85 select-text placeholder:text-white/40 focus:outline-none`}),n&&(0,N.jsx)(Z,{onWatch:a}),(0,N.jsx)(`button`,{type:`button`,"aria-label":o(u===``?`companionSurface.goBack`:`companionSurface.send`),title:o(u===``?`companionSurface.goBack`:`companionSurface.send`),onClick:u===``?i:d,onMouseDown:e=>{e.stopPropagation()},className:`grid size-7 shrink-0 place-items-center rounded-full bg-white/10 text-white/85 transition-colors hover:bg-white/20`,children:u===``?(0,N.jsx)(m,{className:`size-3.5`,"aria-hidden":!0}):(0,N.jsx)(g,{className:`size-3.5`,"aria-hidden":!0})})]})}function J({accentHex:e,avatarSrc:t,character:r,busy:i=!1,attentive:a=!1,edge:o,style:s,elementRef:c,onMouseDown:l,onContextMenu:u,onClick:d}){let f=n();return(0,N.jsxs)(`div`,{className:`absolute grid size-11 cursor-grab place-items-center active:cursor-grabbing`,style:s,ref:c,onMouseDown:l,onContextMenu:u,onClick:d,children:[o,(0,N.jsxs)(`div`,{className:`companion-avatar-bob relative grid place-items-center`,style:{animation:f?`none`:void 0},children:[(0,N.jsx)(`span`,{className:`companion-glow absolute size-10 rounded-full blur-lg`,style:{background:e,animation:f?`none`:void 0},"aria-hidden":!0}),r===void 0?t===void 0?(0,N.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,N.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,N.jsx)(`div`,{className:`relative drop-shadow-[0_1px_3px_rgba(0,0,0,0.55)]`,children:(0,N.jsx)(D,{components:C,traits:r,size:z,isAssistantBusy:i,attentive:a})})]})]})}function fe({spotlight:e,watching:n=!1,watchEnabled:r=!1,onTalk:i,onType:a,onWatch:o}){let{t:c}=t();return(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(Q,{icon:(0,N.jsx)(h,{className:`size-4`}),label:c(`companionSurface.talk`),revealLabel:!0,active:e===`talk`,onClick:i}),(0,N.jsx)(Q,{icon:(0,N.jsx)(p,{className:`size-4`}),label:c(`companionSurface.type`),revealLabel:!0,active:e===`type`,onClick:a}),r?(0,N.jsx)(Q,{icon:(0,N.jsx)(s,{className:`size-4`}),label:c(`companionSurface.teach`),revealLabel:!0,pressed:n,onClick:o}):n&&(0,N.jsx)(Z,{onWatch:o})]})}function pe({retro:e,onWatchRetro:n}){let{t:r}=t();return e===`pending`?(0,N.jsx)(`span`,{className:`ml-1 shrink-0 text-[12px] text-white/85`,children:r(`companionSurface.summarizing`)}):(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(Q,{icon:(0,N.jsx)(u,{className:`size-4`}),label:r(`companionSurface.showSummary`),showLabel:!0,onClick:()=>{n?.(!0)}}),(0,N.jsx)(Q,{icon:(0,N.jsx)(m,{className:`size-4`}),label:r(`companionSurface.notNow`),showLabel:!0,onClick:()=>{n?.(!1)}})]})}function Y({call:e,watching:n,onControl:r,onWatch:i}){let{t:a}=t();if(e!==void 0&&e.approvalRequestId!==``)return(0,N.jsx)(X,{detail:e.detail,requestId:e.approvalRequestId,onControl:r});let s=e===void 0?`Listening`:e.detail||e.label,l=e?.muted??!1,u=e?.outputMuted??!1;return(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(`span`,{className:`ml-1 max-w-[120px] shrink-0 truncate text-[12px] text-white/85`,children:s}),n&&(0,N.jsx)(Z,{onWatch:i}),(0,N.jsx)(Q,{icon:l?(0,N.jsx)(c,{className:`size-4`}):(0,N.jsx)(o,{className:`size-4`}),label:a(l?`companionSurface.unmuteMicrophone`:`companionSurface.muteMicrophone`),onClick:()=>{r?.(l?`unmuteMicrophone`:`muteMicrophone`)}}),(0,N.jsx)(Q,{icon:u?(0,N.jsx)(d,{className:`size-4`}):(0,N.jsx)(f,{className:`size-4`}),label:a(u?`companionSurface.unmuteAssistant`:`companionSurface.muteAssistant`),onClick:()=>{r?.(u?`unmuteAssistantAudio`:`muteAssistantAudio`)}}),(0,N.jsx)(Q,{icon:(0,N.jsx)(m,{className:`size-4`,strokeWidth:2.5}),label:a(`companionSurface.endSession`),tone:`negative`,onClick:()=>{r?.(`endSession`)}})]})}function X({detail:e,requestId:n,onControl:r}){let{t:i}=t();return(0,N.jsxs)(N.Fragment,{children:[e!==``&&(0,N.jsx)(`span`,{className:`ml-1 max-w-[120px] shrink-0 truncate text-[12px] text-white/85`,children:e}),(0,N.jsx)(Q,{icon:(0,N.jsx)(a,{className:`size-4`}),label:i(`companionSurface.allow`),showLabel:!0,tone:`positive`,onClick:()=>{r?.(`approveRequest`,n)}}),(0,N.jsx)(Q,{icon:(0,N.jsx)(m,{className:`size-4`}),label:i(`companionSurface.deny`),showLabel:!0,tone:`negative`,onClick:()=>{r?.(`denyRequest`,n)}})]})}function Z({onWatch:e}){let{t:n}=t();return(0,N.jsx)(Q,{icon:(0,N.jsx)(l,{className:`size-4`}),label:n(`companionSurface.stopTeaching`),onClick:e})}function Q({icon:e,label:t,tone:n,showLabel:r=!1,revealLabel:i=!1,active:a=!1,pressed:o,onClick:s}){let c=a||o===!0;return(0,N.jsxs)(`button`,{type:`button`,"aria-label":t,"aria-pressed":o,title:r||i?void 0:t,onClick:s,onMouseDown:e=>{e.stopPropagation()},className:`group flex h-7 shrink-0 items-center gap-1.5 rounded-full px-2 text-[12px] transition-colors hover:bg-white/15 ${c?`bg-white/15`:``} ${n===`negative`?`text-[#ff6b6b]`:n===`positive`?`text-[#5ee08a]`:`text-white/85`}`,children:[e,r&&(0,N.jsx)(`span`,{children:t}),i&&(0,N.jsx)(`span`,{"data-label":c?`pinned`:`hover`,className:c?``:`hidden group-hover:inline`,children:t})]})}var me=3;function $(){let[e,t]=(0,M.useState)(`right`),[n,r]=(0,M.useState)(`up`),[i,a]=(0,M.useState)(_),[o,s]=(0,M.useState)(_),[c,l]=(0,M.useState)(),[u,d]=(0,M.useState)(),[f,p]=(0,M.useState)(null),[m,h]=(0,M.useState)([]),[g,v]=(0,M.useState)(``),[y,x]=(0,M.useState)(!1),[C,D]=(0,M.useState)(!1),[j,ce]=(0,M.useState)(void 0),[P,le]=(0,M.useState)(0),[ue,R]=(0,M.useState)(!1),[z,B]=(0,M.useState)(!1),[V,H]=(0,M.useState)(null),[U,W]=(0,M.useState)(!1),[G,K]=(0,M.useState)(!1),q=(0,M.useRef)(!1),J=(0,M.useRef)(null),fe=(0,M.useRef)(null),pe=(0,M.useRef)(null),Y=(0,M.useRef)(null),X=(0,M.useRef)(null),Z=(0,M.useRef)(!1);(0,M.useEffect)(()=>{let e=e=>{t(e.growth),r(e.cardGrowth),a(e.avatarBox),s(e.optionsBox??e.avatarBox),l(e.avatarBase64===void 0?void 0:`data:image/png;base64,${e.avatarBase64}`),d(e.character),p(e.call),h(e.turns),v(e.assistantName),x(e.working),D(e.watching===!0),ce(e.watchRetro),le(e.captureCount??0),R(e.watchEnabled===!0),H(e.intro)},n=T(e);return ie().then(t=>{t&&e(t)}),n},[]),(0,M.useEffect)(()=>()=>{O(!1),re(!1)},[]),(0,M.useEffect)(()=>{re(U)},[U]);let Q=e=>{q.current!==e&&(q.current=e,O(e))},$=V!==null&&!U&&f===null,he=(0,M.useRef)($);(0,M.useEffect)(()=>{he.current&&!$&&(B(!1),Q(!1)),he.current=$},[$]);let ge=()=>{W(!1),B(!1),Q(!1),K(!1)},_e=I(V),ve=U?`typing`:f===null?C?`watching`:j===void 0?_e??(z?`hover`:`resting`):`summary`:`call`,ye=e=>{if(Y.current!==null&&e.buttons===0&&(Y.current=null),Y.current!==null){let{x:t,y:n}=Y.current;oe(e.screenX-t,e.screenY-n),Y.current={x:e.screenX,y:e.screenY};let r=X.current;r!==null&&Math.abs(e.screenX-r.x)+Math.abs(e.screenY-r.y)>me&&(Z.current=!0);return}let t=fe.current;if(!t)return;let r=J.current?.getBoundingClientRect()??null,i=se({x:e.clientX,y:e.clientY},{avatar:t.getBoundingClientRect(),pill:r!==null&&r.width>0?r:null,rowHeight:o,cardGrowth:n}),a=pe.current,s=a!==null&&A(a.getBoundingClientRect(),e.clientX,e.clientY);B(i),Q(i||s)},be=(f!==null&&/^#[0-9a-f]{6}$/i.test(f.accentHex)?f.accentHex:void 0)??S(null,u??null)??void 0;return(0,N.jsx)(`div`,{className:`relative h-screen w-screen bg-transparent`,onMouseMove:ye,onMouseUp:()=>{Y.current=null},onMouseLeave:()=>{Y.current=null,B(!1),Q(!1)},children:(0,N.jsx)(de,{phase:ve,growth:e,cardGrowth:n,avatarBox:i,optionsBox:o,avatarSrc:c,character:u,hovered:z,accentHex:be,turns:G?m:[],assistantName:g===``?void 0:g,call:f??void 0,working:y,watching:C,watchRetro:j,onWatchRetro:b,captureCount:P,watchEnabled:ue,spotlight:F(V),intro:!$||V===null?null:(0,N.jsx)(L,{beat:V,growth:e,cardGrowth:n,avatarBox:i,optionsBox:o,accentHex:be,assistantName:g===``?void 0:g,cardRef:pe,onAdvance:ne}),rootRef:J,avatarRef:fe,onSurfaceMouseDown:e=>{e.button===0&&(Y.current={x:e.screenX,y:e.screenY},X.current={x:e.screenX,y:e.screenY},Z.current=!1)},onSurfaceContextMenu:e=>{let t=e.target?.closest(`input, textarea, [contenteditable='true']`)!==null,n=(window.getSelection()?.toString().trim().length??0)>0;t||n||(e.preventDefault(),ee())},onAvatarClick:()=>{Z.current||E()},onTalk:w,onWatch:te,onType:()=>{W(!0)},onSubmit:e=>{G||(h([]),K(!0)),ae(e,!G)},onCancelTyping:ge,onControl:(e,t)=>{k(t===void 0?{action:e}:{action:e,requestId:t})}})})}export{$ as CompanionSurfacePage};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{
|
|
1
|
+
import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{O as t,Un as n,Yn as r}from"./vendor-WUN87CSE.js";import{b as i,f as a,g as o,t as s}from"./react-DPM_L_aA.js";import{on as c,tn as l,v as u}from"./icons-CSdHOix6.js";import{Cy as d,Sy as f,ay as p,ft as m,uv as h,wy as g}from"./index-7XDiAJ-A.js";import{n as _}from"./a2a-invite-CalxmT9U.js";import{r as v}from"./contacts-gateway-aq64PPDs.js";var y=e(i(),1),b=s();function x(e){let t=e[0];return typeof t==`object`&&!!t&&t._id===`contactsGet`}function S(e){switch(e){case`expired`:case`not_found`:return`connectPage.errorExpired`;case`already_redeemed_by_other`:return`connectPage.errorAlreadyRedeemed`;case`sender_not_found`:return`connectPage.errorSenderNotFound`;case`not_platform_managed`:return`connectPage.errorNotPlatformManaged`;default:return null}}function C(){return(0,b.jsx)(w,{assistantId:m()})}function w({assistantId:e}){let{t:i}=t(`contacts`),s=a(),m=r(),[C]=o(),w=(0,y.useMemo)(()=>_(C),[C]),T=n({mutationFn:()=>{if(!w)throw Error(`Invalid invite link`);return v(e,{senderAssistantId:w.senderAssistantId,token:w.token})},onSuccess:e=>{e.success&&(m.invalidateQueries({predicate:e=>x(e.queryKey)}),e.alreadyConnected?p(i(`connectPage.alreadyConnected`)):p(i(`connectPage.connected`)),s(h.contacts.root))}}),E=(0,y.useCallback)(()=>{s(h.contacts.root)},[s]),D=(0,y.useCallback)(()=>{T.mutate()},[T]),O=(0,y.useMemo)(()=>{if(T.isError)return T.error instanceof Error?T.error.message:i(`connectPage.errorGeneric`);if(T.data&&!T.data.success){let e=S(T.data.errorCode);return e?i(e):T.data.error||i(`connectPage.errorGeneric`)}return null},[T.isError,T.error,T.data,i]);return w?(0,b.jsx)(`div`,{className:`flex min-h-full items-center justify-center p-6`,children:(0,b.jsx)(f,{className:`w-full max-w-md`,children:(0,b.jsxs)(`div`,{className:`flex flex-col gap-4 p-6`,children:[(0,b.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,b.jsx)(c,{className:`h-6 w-6`,style:{color:`var(--content-secondary)`}}),(0,b.jsx)(d,{variant:`title-small`,children:i(`connectPage.title`)})]}),(0,b.jsx)(d,{variant:`body-medium-lighter`,style:{color:`var(--content-secondary)`},children:i(`connectPage.body`)}),O&&(0,b.jsxs)(`div`,{className:`flex items-center gap-2 rounded-md p-3`,style:{backgroundColor:`var(--surface-negative-subtle)`,color:`var(--system-negative-strong)`},children:[(0,b.jsx)(u,{className:`h-4 w-4 shrink-0`}),(0,b.jsx)(d,{variant:`body-small-default`,children:O})]}),(0,b.jsxs)(`div`,{className:`flex gap-2 pt-2`,children:[(0,b.jsx)(g,{variant:`primary`,onClick:D,disabled:T.isPending,children:T.isPending?(0,b.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,b.jsx)(l,{className:`h-4 w-4 animate-spin`}),i(`actions.connecting`)]}):i(`actions.connect`)}),(0,b.jsx)(g,{variant:`outlined`,onClick:E,disabled:T.isPending,children:i(`actions.cancel`)})]})]})})}):(0,b.jsx)(`div`,{className:`flex min-h-full items-center justify-center p-6`,children:(0,b.jsx)(f,{className:`w-full max-w-md`,children:(0,b.jsxs)(`div`,{className:`flex flex-col gap-4 p-6`,children:[(0,b.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,b.jsx)(u,{className:`h-6 w-6`,style:{color:`var(--system-negative-strong)`}}),(0,b.jsx)(d,{variant:`title-small`,children:i(`connectPage.invalidTitle`)})]}),(0,b.jsx)(d,{variant:`body-medium-lighter`,style:{color:`var(--content-secondary)`},children:i(`connectPage.invalidBody`)}),(0,b.jsx)(`div`,{className:`flex gap-2 pt-2`,children:(0,b.jsx)(g,{variant:`primary`,onClick:E,children:i(`connectPage.goToContacts`)})})]})})})}export{C as ConnectPage};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{A as e,O as t}from"./vendor-WUN87CSE.js";import{t as n}from"./react-DPM_L_aA.js";import{Sy as r,lv as i,py as a,uv as o}from"./index-7XDiAJ-A.js";import{t as s}from"./setting-row-DRwmii99.js";var c=n(),l=[`[&_button[data-state=checked]]:bg-[var(--primary-base)]`,`[&_svg]:text-[var(--content-inset)]`,`[&_button[data-state=unchecked]]:bg-[var(--surface-base)]`,`[&_button[data-state=unchecked]]:border-[var(--border-element)]`].join(` `),u=`mb-2.5 ml-1 text-body-small-default font-medium uppercase tracking-wider text-[var(--content-tertiary)]`,d={privacy:{href:o.docs.legal.privacyPolicy,text:`Privacy and AI Data Sharing Policy`,aria:`I agree to the Privacy and AI Data Sharing Policy`},tos:{href:o.docs.legal.termsOfUse,text:`Terms of Service`,aria:`I agree to the Terms of Service`}};function f({kind:t,checked:n,onChange:r}){let o=d[t];return(0,c.jsx)(a,{checked:n,onCheckedChange:e=>r(e===!0),label:(0,c.jsx)(`span`,{className:`text-body-medium-lighter text-[var(--content-default)]`,children:(0,c.jsx)(e,{i18nKey:`consentControls.agreeTo`,ns:`onboarding`,values:{policy:o.text},components:{link:(0,c.jsx)(`a`,{href:i(o.href),target:`_blank`,rel:`noreferrer`,className:`underline`})}})}),"aria-label":o.aria,className:l})}function p(){return(0,c.jsx)(`div`,{className:`h-px bg-[var(--surface-active)] dark:bg-[var(--surface-lift)]`})}function m({notes:e}){let{t:n}=t(`onboarding`);return!e||e.length===0?null:(0,c.jsxs)(`div`,{className:`rounded-r-md border-l-2 border-[var(--content-secondary)] bg-[var(--surface-base)] py-3 pl-3.5 pr-3.5`,children:[(0,c.jsx)(`p`,{className:`text-body-small-default font-medium text-[var(--content-secondary)]`,children:n(`consentControls.whatsChanged`)}),e.length===1?(0,c.jsx)(`p`,{className:`mt-1.5 text-body-medium-lighter text-[var(--content-default)]`,children:e[0]}):(0,c.jsx)(`ul`,{className:`mt-2 flex flex-col gap-1.5`,children:e.map(e=>(0,c.jsxs)(`li`,{className:`flex gap-2.5 text-body-medium-lighter text-[var(--content-default)]`,children:[(0,c.jsx)(`span`,{"aria-hidden":!0,className:`mt-[0.5em] h-1 w-1 flex-none rounded-full bg-[var(--content-tertiary)]`}),(0,c.jsx)(`span`,{children:e})]},e))})]})}function h({electron:e,showAnalytics:n=!0,showDiagnostics:i=!0,shareAnalytics:a,shareDiagnostics:o,onShareAnalyticsChange:l,onShareDiagnosticsChange:d,className:f,style:m}){let{t:h}=t(`onboarding`);return(0,c.jsxs)(`section`,{className:f,style:m,children:[(0,c.jsx)(`p`,{className:u,children:h(`consentControls.privacyPreferences`)}),(0,c.jsx)(r,{padding:e?`sm`:`md`,className:`w-full`,children:(0,c.jsxs)(`div`,{className:`flex flex-col ${e?`gap-3`:`gap-4`}`,children:[n&&(0,c.jsx)(s,{label:h(`consentControls.analyticsLabel`),helperText:h(`consentControls.analyticsHelp`),checked:a,onChange:l}),n&&i&&(0,c.jsx)(p,{}),i&&(0,c.jsx)(s,{label:h(`consentControls.diagnosticsLabel`),helperText:h(`consentControls.diagnosticsHelp`),checked:o,onChange:d})]})})]})}function g({electron:e,showPrivacy:n=!0,showTos:i=!0,privacyConsent:a,tosAccepted:o,onPrivacyChange:s,onTosChange:l,privacyNotes:d,tosNotes:p,className:h,style:g}){let{t:_}=t(`onboarding`);return(0,c.jsxs)(`section`,{className:h,style:g,children:[(0,c.jsx)(`p`,{className:u,children:_(`consentControls.agreements`)}),(0,c.jsx)(r,{padding:e?`sm`:`md`,className:`w-full`,children:(0,c.jsxs)(`div`,{className:`flex flex-col ${e?`gap-3.5`:`gap-4`}`,children:[n&&(0,c.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,c.jsx)(m,{notes:d}),(0,c.jsx)(f,{kind:`privacy`,checked:a,onChange:s})]}),i&&(0,c.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,c.jsx)(m,{notes:p}),(0,c.jsx)(f,{kind:`tos`,checked:o,onChange:l})]})]})})]})}export{h as n,g as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var e={save:`Guardar`,saving:`Guardando…`,merge:`Combinar…`,merging:`Combinando…`,delete:`Eliminar`,deleting:`Eliminando…`,connect:`Conectar`,connecting:`Conectando…`,manage:`Gestionar`,disconnect:`Desconectar`,disconnecting:`Desconectando…`,cancel:`Cancelar`,back:`Atrás`,verify:`Verificar`,verifying:`Verificando…`,revoke:`Revocar`},t={slack:`Slack`,telegram:`Telegram`,whatsapp:`WhatsApp`,a2a:`A2A`,phone:`Teléfono`,email:`Correo`,discord:`Discord`},n={nameLabel:`Nombre`,notesLabel:`Notas`,draftName:`Contacto nuevo`,interactions:`{count, plural, one {# interacción} other {# interacciones}}`,mergeBlockedNoCandidates:`No hay otros contactos con los que combinar`,mergeBlockedUnsaved:`Guarda los cambios antes de combinar`},r={title:`Contactos`,mergeSucceeded:`Contactos combinados`,mergeFailed:`No se pudieron combinar los contactos`,createFailed:`No se pudo crear el contacto`,deleteFailed:`No se pudo eliminar el contacto`,saveFailed:`No se pudo guardar el contacto`,verifyFailed:`No se pudo verificar el canal`,rosterLoadFailed:`No se pudo cargar el directorio del espacio de trabajo. Comprueba la conexión con Slack y vuelve a intentarlo.`,emptyBody:`Selecciona un contacto`},i={heading:`Entradas`,addAriaLabel:`Añadir contacto`,searchPlaceholder:`Buscar contactos`,noMatches:`No hay contactos que coincidan`,add:`Añadir contacto`,verified:`Verificado`,unverified:`Sin verificar`,you:`Tú`,youNamed:`{name} (tú)`,assistantFallback:`Tu asistente`},a={namePlaceholder:`Ponle un nombre a esta persona`,notesPlaceholder:`Notas opcionales sobre la persona que la IA tendrá en cuenta`,mergeBlockedUnsavedDraft:`Guarda este contacto antes de combinar`,delete:`Eliminar contacto`,linkedAccountsTitle:`Cuentas vinculadas`,linkedAccountsSubtitle:`Dónde reconoce el asistente a este contacto. Vincula las cuentas que conozcas e invita a las que no.`,deleteConfirmTitle:`¿Eliminar a {name}?`,deleteConfirmMessage:`Esto eliminará permanentemente este contacto y todos sus canales. Esta acción no se puede deshacer.`},o={title:`Permisos`,subtitle:`El riesgo más alto que este contacto puede asumir sin preguntarte.`,inheritLabel:`Heredar valor predeterminado`,inheritDescription:`Seguir la configuración de sala y clase de confianza de este contacto.`,saveFailed:`No se pudieron actualizar los permisos`,preset:{none:`Estricto`,low:`Conservador`,medium:`Relajado`,high:`Acceso completo`},description:{none:`Preguntar siempre antes de actuar. Ninguna acción se aprueba automáticamente.`,low:`Aprobar automáticamente las acciones de bajo riesgo, como búsquedas web y leer o escribir archivos en su propio espacio de trabajo.`,medium:`Aprobar automáticamente las acciones de riesgo bajo y medio, como cambiar archivos fuera de su propio espacio de trabajo.`,high:`Aprobar automáticamente todas las acciones, incluidas las de alto riesgo y los comandos no reconocidos. El asistente no pedirá permiso.`}},s={namePlaceholder:`Tu nombre`,notesPlaceholder:`Notas sobre ti que la IA tendrá en cuenta`,channelsTitle:`Canales`,channelsSubtitle:`Una vez verificado, tu asistente te reconocerá cuando escribas desde estos canales.`,setupLabel:`Verificarme`},c={title:`{name} (tu asistente)`,channelsTitle:`Canales`,channelsSubtitle:`Dónde se puede contactar con {name}.`},l={disconnectConfirmTitle:`¿Desconectar {channel}?`,disconnectConfirmMessage:`Esto borra las credenciales guardadas de este canal. Puedes volver a conectarlo más tarde.`},u={linked:`Vinculado como @{username}`,linkFailed:`No se pudo vincular la cuenta`},d={invalidTitle:`Enlace de invitación no válido`,invalidBody:`Al enlace que has seguido le faltan parámetros obligatorios y no se puede usar.`,goToContacts:`Ir a Contactos`,title:`Conectar asistentes`,body:`Aceptar este enlace creará una conexión A2A de confianza entre tu asistente y el del remitente.`,alreadyConnected:`Ya está conectado`,connected:`¡Conectado!`,errorExpired:`Este enlace de invitación ha caducado o ya se ha usado.`,errorAlreadyRedeemed:`Otra persona ya ha reclamado esta invitación.`,errorSenderNotFound:`No se ha encontrado el asistente del remitente.`,errorNotPlatformManaged:`Los enlaces de invitación A2A solo se admiten en asistentes alojados en la plataforma.`,errorGeneric:`Algo ha salido mal. Vuelve a intentarlo.`},f={connected:`Conectado`,verified:`Verificado`},p={verifyConfirmTitle:`Verificar {channel}`,verifyConfirmMessageContact:`Esto marcará el canal de {channel} de este contacto como verificado. Tu asistente lo reconocerá cuando escriba desde ahí.`,verifyConfirmMessageGuardian:`Esto marcará tu canal de {channel} como verificado. Tu asistente te reconocerá cuando escribas desde ahí.`,revokeConfirmTitle:`Revocar {channel}`,revokeConfirmMessage:`Esto desconectará el canal verificado. El contacto tendrá que volver a verificarse para usarlo de nuevo.`,linkAccount:`Vincular cuenta`,setupDefault:`Invitar`,loadFailed:`No se pudieron cargar los canales. Comprueba tu conexión e inténtalo de nuevo.`},m={title:`Vincular una cuenta de {channel}`,description:`Busca en tu espacio de trabajo de {channel} y elige la cuenta de <contact>{name}</contact>.`,searchPlaceholder:`Buscar por nombre o @usuario`,searchAriaLabel:`Buscar cuentas del espacio de trabajo de {channel}`,loading:`Cargando los miembros del espacio de trabajo…`,noMembers:`No se han encontrado miembros del espacio de trabajo.`,noMatches:`Ningún miembro coincide.`,linking:`Vinculando…`,guardianLinkNote:`Elegirla marca esta cuenta como <emphasis>vinculada por el tutor</emphasis>: tú respondes por la identidad, sin necesidad de confirmación.`,inviteInstead:`O enviar una invitación`},h={titlePicked:`¿Combinar «{donor}» con {survivor}?`,titlePicking:`Combinar otro contacto con {survivor}`,descriptionPicked:`Los canales y las notas del contacto combinado se trasladarán. El contacto combinado se eliminará.`,descriptionPicking:`El contacto que elijas se eliminará. Sus canales y sus notas se añadirán a este.`,confirm:`Combinar`,searchPlaceholder:`Buscar contactos`,listAriaLabel:`Selecciona un contacto para combinar`,empty:`No hay otros contactos con los que combinar.`,donorDeleted:`<donor>«{donor}»</donor> se eliminará.`,channelsMoved:`{count, plural, =0 {No se trasladará ningún canal nuevo a {survivor}.} one {# canal se trasladará a {survivor}: {channels}.} other {# canales se trasladarán a {survivor}: {channels}.}}`,duplicatesSkipped:`{count, plural, one {# canal duplicado ya está en {survivor} (omitido).} other {# canales duplicados ya están en {survivor} (omitidos).}}`,notesAppended:`Las notas del contacto combinado se añadirán al final.`,irreversible:`Esta acción no se puede deshacer.`},g={you:`ti`,youNamed:`{name} (tú)`,thisContact:`este contacto`},_={actions:e,channelType:t,contact:n,contactsPage:r,contactsList:i,contactDetailView:a,contactPermissions:o,guardianDetailView:s,assistantChannelsDetail:c,assistantContactChannels:l,accountLink:u,connectPage:d,channelStatus:f,contactChannelsSection:p,linkAccountDialog:m,contactMergeDialog:h,survivorName:g};export{u as accountLink,e as actions,c as assistantChannelsDetail,l as assistantContactChannels,f as channelStatus,t as channelType,d as connectPage,n as contact,p as contactChannelsSection,a as contactDetailView,h as contactMergeDialog,o as contactPermissions,i as contactsList,r as contactsPage,_ as default,s as guardianDetailView,m as linkAccountDialog,g as survivorName};
|
|
1
|
+
var e={save:`Guardar`,saving:`Guardando…`,merge:`Combinar…`,merging:`Combinando…`,delete:`Eliminar`,deleting:`Eliminando…`,connect:`Conectar`,connecting:`Conectando…`,manage:`Gestionar`,disconnect:`Desconectar`,disconnecting:`Desconectando…`,cancel:`Cancelar`,back:`Atrás`,verify:`Verificar`,verifying:`Verificando…`,revoke:`Revocar`},t={slack:`Slack`,telegram:`Telegram`,whatsapp:`WhatsApp`,a2a:`A2A`,phone:`Teléfono`,email:`Correo`,discord:`Discord`},n={nameLabel:`Nombre`,notesLabel:`Notas`,draftName:`Contacto nuevo`,interactions:`{count, plural, one {# interacción} other {# interacciones}}`,mergeBlockedNoCandidates:`No hay otros contactos con los que combinar`,mergeBlockedUnsaved:`Guarda los cambios antes de combinar`},r={title:`Contactos`,mergeSucceeded:`Contactos combinados`,mergeFailed:`No se pudieron combinar los contactos`,createFailed:`No se pudo crear el contacto`,deleteFailed:`No se pudo eliminar el contacto`,saveFailed:`No se pudo guardar el contacto`,verifyFailed:`No se pudo verificar el canal`,rosterLoadFailed:`No se pudo cargar el directorio del espacio de trabajo. Comprueba la conexión con Slack y vuelve a intentarlo.`,emptyBody:`Selecciona un contacto`},i={heading:`Entradas`,addAriaLabel:`Añadir contacto`,searchPlaceholder:`Buscar contactos`,noMatches:`No hay contactos que coincidan`,add:`Añadir contacto`,verified:`Verificado`,unverified:`Sin verificar`,you:`Tú`,youNamed:`{name} (tú)`,assistantFallback:`Tu asistente`},a={namePlaceholder:`Ponle un nombre a esta persona`,notesPlaceholder:`Notas opcionales sobre la persona que la IA tendrá en cuenta`,mergeBlockedUnsavedDraft:`Guarda este contacto antes de combinar`,delete:`Eliminar contacto`,linkedAccountsTitle:`Cuentas vinculadas`,linkedAccountsSubtitle:`Dónde reconoce el asistente a este contacto. Vincula las cuentas que conozcas e invita a las que no.`,deleteConfirmTitle:`¿Eliminar a {name}?`,deleteConfirmMessage:`Esto eliminará permanentemente este contacto y todos sus canales. Esta acción no se puede deshacer.`},o={title:`Permisos`,subtitle:`El riesgo más alto que este contacto puede asumir sin preguntarte.`,inheritLabel:`Heredar valor predeterminado`,inheritDescription:`Seguir la configuración de sala y clase de confianza de este contacto.`,saveFailed:`No se pudieron actualizar los permisos`,preset:{none:`Estricto`,low:`Conservador`,medium:`Relajado`,high:`Acceso completo`},description:{none:`Preguntar siempre antes de actuar. Ninguna acción se aprueba automáticamente.`,low:`Aprobar automáticamente las acciones de bajo riesgo, como búsquedas web y leer o escribir archivos en su propio espacio de trabajo.`,medium:`Aprobar automáticamente las acciones de riesgo bajo y medio, como cambiar archivos fuera de su propio espacio de trabajo.`,high:`Aprobar automáticamente todas las acciones, incluidas las de alto riesgo y los comandos no reconocidos. El asistente no pedirá permiso.`}},s={namePlaceholder:`Tu nombre`,notesPlaceholder:`Notas sobre ti que la IA tendrá en cuenta`,channelsTitle:`Canales`,channelsSubtitle:`Una vez verificado, tu asistente te reconocerá cuando escribas desde estos canales.`,setupLabel:`Verificarme`},c={title:`{name} (tu asistente)`,channelsTitle:`Canales`,channelsSubtitle:`Dónde se puede contactar con {name}.`},l={disconnectConfirmTitle:`¿Desconectar {channel}?`,disconnectConfirmMessage:`Esto borra las credenciales guardadas de este canal. Puedes volver a conectarlo más tarde.`},u={linked:`Vinculado como @{username}`,linkFailed:`No se pudo vincular la cuenta`},d={invalidTitle:`Enlace de invitación no válido`,invalidBody:`Al enlace que has seguido le faltan parámetros obligatorios y no se puede usar.`,goToContacts:`Ir a Contactos`,title:`Conectar asistentes`,body:`Aceptar este enlace creará una conexión A2A de confianza entre tu asistente y el del remitente.`,alreadyConnected:`Ya está conectado`,connected:`¡Conectado!`,errorExpired:`Este enlace de invitación ha caducado o ya se ha usado.`,errorAlreadyRedeemed:`Otra persona ya ha reclamado esta invitación.`,errorSenderNotFound:`No se ha encontrado el asistente del remitente.`,errorNotPlatformManaged:`Los enlaces de invitación A2A solo se admiten en asistentes alojados en la plataforma.`,errorGeneric:`Algo ha salido mal. Vuelve a intentarlo.`},f={connected:`Conectado`,verified:`Verificado`},p={verifyConfirmTitle:`Verificar {channel}`,verifyConfirmMessageContact:`Esto marcará el canal de {channel} de este contacto como verificado. Tu asistente lo reconocerá cuando escriba desde ahí.`,verifyConfirmMessageGuardian:`Esto marcará tu canal de {channel} como verificado. Tu asistente te reconocerá cuando escribas desde ahí.`,verifyAddressLabel:`Dirección`,verifyAddressPlaceholder:`+15551234567`,verifyAddressMessageContact:`Introduce el identificador que este contacto usa en {channel}. Tu asistente lo reconocerá cuando escriba desde ahí.`,verifyAddressMessageGuardian:`Introduce el identificador que usas en {channel}. Tu asistente te reconocerá cuando escribas desde ahí.`,revokeConfirmTitle:`Revocar {channel}`,revokeConfirmMessage:`Esto desconectará el canal verificado. El contacto tendrá que volver a verificarse para usarlo de nuevo.`,linkAccount:`Vincular cuenta`,setupDefault:`Invitar`,loadFailed:`No se pudieron cargar los canales. Comprueba tu conexión e inténtalo de nuevo.`},m={title:`Vincular una cuenta de {channel}`,description:`Busca en tu espacio de trabajo de {channel} y elige la cuenta de <contact>{name}</contact>.`,searchPlaceholder:`Buscar por nombre o @usuario`,searchAriaLabel:`Buscar cuentas del espacio de trabajo de {channel}`,loading:`Cargando los miembros del espacio de trabajo…`,noMembers:`No se han encontrado miembros del espacio de trabajo.`,noMatches:`Ningún miembro coincide.`,linking:`Vinculando…`,guardianLinkNote:`Elegirla marca esta cuenta como <emphasis>vinculada por el tutor</emphasis>: tú respondes por la identidad, sin necesidad de confirmación.`,inviteInstead:`O enviar una invitación`},h={titlePicked:`¿Combinar «{donor}» con {survivor}?`,titlePicking:`Combinar otro contacto con {survivor}`,descriptionPicked:`Los canales y las notas del contacto combinado se trasladarán. El contacto combinado se eliminará.`,descriptionPicking:`El contacto que elijas se eliminará. Sus canales y sus notas se añadirán a este.`,confirm:`Combinar`,searchPlaceholder:`Buscar contactos`,listAriaLabel:`Selecciona un contacto para combinar`,empty:`No hay otros contactos con los que combinar.`,donorDeleted:`<donor>«{donor}»</donor> se eliminará.`,channelsMoved:`{count, plural, =0 {No se trasladará ningún canal nuevo a {survivor}.} one {# canal se trasladará a {survivor}: {channels}.} other {# canales se trasladarán a {survivor}: {channels}.}}`,duplicatesSkipped:`{count, plural, one {# canal duplicado ya está en {survivor} (omitido).} other {# canales duplicados ya están en {survivor} (omitidos).}}`,notesAppended:`Las notas del contacto combinado se añadirán al final.`,irreversible:`Esta acción no se puede deshacer.`},g={you:`ti`,youNamed:`{name} (tú)`,thisContact:`este contacto`},_={actions:e,channelType:t,contact:n,contactsPage:r,contactsList:i,contactDetailView:a,contactPermissions:o,guardianDetailView:s,assistantChannelsDetail:c,assistantContactChannels:l,accountLink:u,connectPage:d,channelStatus:f,contactChannelsSection:p,linkAccountDialog:m,contactMergeDialog:h,survivorName:g};export{u as accountLink,e as actions,c as assistantChannelsDetail,l as assistantContactChannels,f as channelStatus,t as channelType,d as connectPage,n as contact,p as contactChannelsSection,a as contactDetailView,h as contactMergeDialog,o as contactPermissions,i as contactsList,r as contactsPage,_ as default,s as guardianDetailView,m as linkAccountDialog,g as survivorName};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var e={save:`Сохранить`,saving:`Сохранение…`,merge:`Объединить…`,merging:`Объединение…`,delete:`Удалить`,deleting:`Удаление…`,connect:`Подключить`,connecting:`Подключение…`,manage:`Настроить`,disconnect:`Отключить`,disconnecting:`Отключение…`,cancel:`Отмена`,back:`Назад`,verify:`Подтвердить`,verifying:`Подтверждение…`,revoke:`Отозвать`},t={slack:`Slack`,telegram:`Telegram`,whatsapp:`WhatsApp`,a2a:`A2A`,phone:`Телефон`,email:`Почта`,discord:`Discord`},n={nameLabel:`Имя`,notesLabel:`Заметки`,draftName:`Новый контакт`,interactions:`{count, plural, one {# взаимодействие} few {# взаимодействия} many {# взаимодействий} other {# взаимодействия}}`,mergeBlockedNoCandidates:`Нет других контактов для объединения`,mergeBlockedUnsaved:`Сохранение изменений перед объединением`},r={title:`Контакты`,mergeSucceeded:`Контакты объединены`,mergeFailed:`Не удалось объединить контакты`,createFailed:`Не удалось создать контакт`,deleteFailed:`Не удалось удалить контакт`,saveFailed:`Не удалось сохранить контакт`,verifyFailed:`Не удалось подтвердить канал`,rosterLoadFailed:`Не удалось загрузить список рабочего пространства. Проверьте подключение Slack и повторите попытку.`,emptyBody:`Выбор контакта`},i={heading:`Записи`,addAriaLabel:`Добавить контакт`,searchPlaceholder:`Поиск контактов`,noMatches:`Нет подходящих контактов`,add:`Добавить контакт`,verified:`Подтверждён`,unverified:`Не подтверждён`,you:`Вы`,youNamed:`{name} (вы)`,assistantFallback:`Ассистент`},a={namePlaceholder:`Имя этой персоны`,notesPlaceholder:`Необязательные заметки о человеке, которые ИИ учтёт`,mergeBlockedUnsavedDraft:`Сохранение этого контакта перед объединением`,delete:`Удалить контакт`,linkedAccountsTitle:`Связанные аккаунты`,linkedAccountsSubtitle:`Где ассистент узнаёт этот контакт. Свяжи известные аккаунты и пригласи остальные.`,deleteConfirmTitle:`Удалить {name}?`,deleteConfirmMessage:`Контакт и все его каналы будут удалены навсегда. Это нельзя отменить.`},o={title:`Разрешения`,subtitle:`Наивысший риск, который этот контакт может принять без запроса.`,inheritLabel:`Наследовать значение по умолчанию`,inheritDescription:`Использовать настройки комнаты и класса доверия для этого контакта.`,saveFailed:`Не удалось обновить разрешения`,preset:{none:`Строгий`,low:`Осторожный`,medium:`Свободный`,high:`Полный доступ`},description:{none:`Всегда спрашивать перед действием. Никакие действия не одобряются автоматически.`,low:`Автоматически одобрять действия с низким риском, например поиск в интернете и чтение или запись файлов в собственном рабочем пространстве.`,medium:`Автоматически одобрять действия с низким и средним риском, например изменение файлов вне собственного рабочего пространства.`,high:`Автоматически одобрять все действия, включая рискованные и нераспознанные команды. Ассистент не будет спрашивать разрешение.`}},s={namePlaceholder:`Имя`,notesPlaceholder:`Заметки о себе, которые ИИ учтёт`,channelsTitle:`Каналы`,channelsSubtitle:`После подтверждения ассистент узнает отправителя сообщений с этих каналов.`,setupLabel:`Подтвердить меня`},c={title:`{name} (ассистент)`,channelsTitle:`Каналы`,channelsSubtitle:`Где можно достучаться до {name}.`},l={disconnectConfirmTitle:`Отключить {channel}?`,disconnectConfirmMessage:`Это удалит сохранённые учётные данные канала. Потом можно подключить снова.`},u={linked:`Связан как @{username}`,linkFailed:`Не удалось связать аккаунт`},d={invalidTitle:`Недействительная ссылка-приглашение`,invalidBody:`В ссылке не хватает обязательных параметров, ею нельзя воспользоваться.`,goToContacts:`Перейти в Контакты`,title:`Связать ассистентов`,body:`Если принять эту ссылку, появится доверенное A2A-соединение между этим ассистентом и ассистентом отправителя.`,alreadyConnected:`Уже подключено`,connected:`Подключено!`,errorExpired:`Эта ссылка-приглашение истекла или уже использована.`,errorAlreadyRedeemed:`Это приглашение уже принял кто-то другой.`,errorSenderNotFound:`Ассистент отправителя не найден.`,errorNotPlatformManaged:`Ссылки-приглашения A2A поддерживаются только для ассистентов на платформе.`,errorGeneric:`Что-то пошло не так. Повторите попытку.`},f={connected:`Подключено`,verified:`Подтверждено`},p={verifyConfirmTitle:`Подтвердить {channel}`,verifyConfirmMessageContact:`Канал {channel} этого контакта будет отмечен как подтверждённый. Ассистент узнает его, когда тот напишет оттуда.`,verifyConfirmMessageGuardian:`Канал {channel} будет отмечен как подтверждённый. Ассистент узнает отправителя сообщений оттуда.`,revokeConfirmTitle:`Отозвать {channel}`,revokeConfirmMessage:`Подтверждённый канал будет отключён. Контакту нужно будет подтвердить его снова, чтобы пользоваться этим каналом.`,linkAccount:`Связать аккаунт`,setupDefault:`Пригласить`,loadFailed:`Не удалось загрузить каналы. Проверьте подключение и повторите попытку.`},m={title:`Связать аккаунт {channel}`,description:`Найди в рабочем пространстве {channel} аккаунт <contact>{name}</contact>.`,searchPlaceholder:`Поиск по имени или @нику`,searchAriaLabel:`Поиск аккаунтов рабочего пространства {channel}`,loading:`Загрузка участников рабочего пространства…`,noMembers:`Участники рабочего пространства не найдены.`,noMatches:`Нет подходящих участников.`,linking:`Связываем…`,guardianLinkNote:`Выбор помечает аккаунт как <emphasis>связанный опекуном</emphasis>: поручительство за личность без рукопожатия.`,inviteInstead:`Или отправка приглашения`},h={titlePicked:`Объединить "{donor}" с {survivor}?`,titlePicking:`Объединить другой контакт с {survivor}`,descriptionPicked:`Каналы и заметки объединённого контакта перейдут сюда. Сам контакт будет удалён.`,descriptionPicking:`Выбранный контакт будет удалён. Его каналы и заметки добавятся к этому.`,confirm:`Объединить`,searchPlaceholder:`Поиск контактов`,listAriaLabel:`Выбор контакта для объединения`,empty:`Нет других контактов для объединения.`,donorDeleted:`<donor>"{donor}"</donor> будет удалён.`,channelsMoved:`{count, plural, =0 {В {survivor} не перейдёт ни один новый канал.} one {# канал перейдёт в {survivor}: {channels}.} few {# канала перейдут в {survivor}: {channels}.} many {# каналов перейдут в {survivor}: {channels}.} other {# канала перейдут в {survivor}: {channels}.}}`,duplicatesSkipped:`{count, plural, one {# повторный канал уже есть у {survivor} (пропущен).} few {# повторных канала уже есть у {survivor} (пропущены).} many {# повторных каналов уже есть у {survivor} (пропущены).} other {# повторных канала уже есть у {survivor} (пропущены).}}`,notesAppended:`Заметки объединённого контакта будут добавлены в конец.`,irreversible:`Это нельзя отменить.`},g={you:`вас`,youNamed:`{name} (вы)`,thisContact:`этот контакт`},_={actions:e,channelType:t,contact:n,contactsPage:r,contactsList:i,contactDetailView:a,contactPermissions:o,guardianDetailView:s,assistantChannelsDetail:c,assistantContactChannels:l,accountLink:u,connectPage:d,channelStatus:f,contactChannelsSection:p,linkAccountDialog:m,contactMergeDialog:h,survivorName:g};export{u as accountLink,e as actions,c as assistantChannelsDetail,l as assistantContactChannels,f as channelStatus,t as channelType,d as connectPage,n as contact,p as contactChannelsSection,a as contactDetailView,h as contactMergeDialog,o as contactPermissions,i as contactsList,r as contactsPage,_ as default,s as guardianDetailView,m as linkAccountDialog,g as survivorName};
|
|
1
|
+
var e={save:`Сохранить`,saving:`Сохранение…`,merge:`Объединить…`,merging:`Объединение…`,delete:`Удалить`,deleting:`Удаление…`,connect:`Подключить`,connecting:`Подключение…`,manage:`Настроить`,disconnect:`Отключить`,disconnecting:`Отключение…`,cancel:`Отмена`,back:`Назад`,verify:`Подтвердить`,verifying:`Подтверждение…`,revoke:`Отозвать`},t={slack:`Slack`,telegram:`Telegram`,whatsapp:`WhatsApp`,a2a:`A2A`,phone:`Телефон`,email:`Почта`,discord:`Discord`},n={nameLabel:`Имя`,notesLabel:`Заметки`,draftName:`Новый контакт`,interactions:`{count, plural, one {# взаимодействие} few {# взаимодействия} many {# взаимодействий} other {# взаимодействия}}`,mergeBlockedNoCandidates:`Нет других контактов для объединения`,mergeBlockedUnsaved:`Сохранение изменений перед объединением`},r={title:`Контакты`,mergeSucceeded:`Контакты объединены`,mergeFailed:`Не удалось объединить контакты`,createFailed:`Не удалось создать контакт`,deleteFailed:`Не удалось удалить контакт`,saveFailed:`Не удалось сохранить контакт`,verifyFailed:`Не удалось подтвердить канал`,rosterLoadFailed:`Не удалось загрузить список рабочего пространства. Проверьте подключение Slack и повторите попытку.`,emptyBody:`Выбор контакта`},i={heading:`Записи`,addAriaLabel:`Добавить контакт`,searchPlaceholder:`Поиск контактов`,noMatches:`Нет подходящих контактов`,add:`Добавить контакт`,verified:`Подтверждён`,unverified:`Не подтверждён`,you:`Вы`,youNamed:`{name} (вы)`,assistantFallback:`Ассистент`},a={namePlaceholder:`Имя этой персоны`,notesPlaceholder:`Необязательные заметки о человеке, которые ИИ учтёт`,mergeBlockedUnsavedDraft:`Сохранение этого контакта перед объединением`,delete:`Удалить контакт`,linkedAccountsTitle:`Связанные аккаунты`,linkedAccountsSubtitle:`Где ассистент узнаёт этот контакт. Свяжи известные аккаунты и пригласи остальные.`,deleteConfirmTitle:`Удалить {name}?`,deleteConfirmMessage:`Контакт и все его каналы будут удалены навсегда. Это нельзя отменить.`},o={title:`Разрешения`,subtitle:`Наивысший риск, который этот контакт может принять без запроса.`,inheritLabel:`Наследовать значение по умолчанию`,inheritDescription:`Использовать настройки комнаты и класса доверия для этого контакта.`,saveFailed:`Не удалось обновить разрешения`,preset:{none:`Строгий`,low:`Осторожный`,medium:`Свободный`,high:`Полный доступ`},description:{none:`Всегда спрашивать перед действием. Никакие действия не одобряются автоматически.`,low:`Автоматически одобрять действия с низким риском, например поиск в интернете и чтение или запись файлов в собственном рабочем пространстве.`,medium:`Автоматически одобрять действия с низким и средним риском, например изменение файлов вне собственного рабочего пространства.`,high:`Автоматически одобрять все действия, включая рискованные и нераспознанные команды. Ассистент не будет спрашивать разрешение.`}},s={namePlaceholder:`Имя`,notesPlaceholder:`Заметки о себе, которые ИИ учтёт`,channelsTitle:`Каналы`,channelsSubtitle:`После подтверждения ассистент узнает отправителя сообщений с этих каналов.`,setupLabel:`Подтвердить меня`},c={title:`{name} (ассистент)`,channelsTitle:`Каналы`,channelsSubtitle:`Где можно достучаться до {name}.`},l={disconnectConfirmTitle:`Отключить {channel}?`,disconnectConfirmMessage:`Это удалит сохранённые учётные данные канала. Потом можно подключить снова.`},u={linked:`Связан как @{username}`,linkFailed:`Не удалось связать аккаунт`},d={invalidTitle:`Недействительная ссылка-приглашение`,invalidBody:`В ссылке не хватает обязательных параметров, ею нельзя воспользоваться.`,goToContacts:`Перейти в Контакты`,title:`Связать ассистентов`,body:`Если принять эту ссылку, появится доверенное A2A-соединение между этим ассистентом и ассистентом отправителя.`,alreadyConnected:`Уже подключено`,connected:`Подключено!`,errorExpired:`Эта ссылка-приглашение истекла или уже использована.`,errorAlreadyRedeemed:`Это приглашение уже принял кто-то другой.`,errorSenderNotFound:`Ассистент отправителя не найден.`,errorNotPlatformManaged:`Ссылки-приглашения A2A поддерживаются только для ассистентов на платформе.`,errorGeneric:`Что-то пошло не так. Повторите попытку.`},f={connected:`Подключено`,verified:`Подтверждено`},p={verifyConfirmTitle:`Подтвердить {channel}`,verifyConfirmMessageContact:`Канал {channel} этого контакта будет отмечен как подтверждённый. Ассистент узнает его, когда тот напишет оттуда.`,verifyConfirmMessageGuardian:`Канал {channel} будет отмечен как подтверждённый. Ассистент узнает отправителя сообщений оттуда.`,verifyAddressLabel:`Адрес`,verifyAddressPlaceholder:`+15551234567`,verifyAddressMessageContact:`Введите идентификатор, который этот контакт использует в {channel}. Ассистент узнает его, когда тот напишет оттуда.`,verifyAddressMessageGuardian:`Введите идентификатор, который вы используете в {channel}. Ассистент узнает вас, когда вы напишете оттуда.`,revokeConfirmTitle:`Отозвать {channel}`,revokeConfirmMessage:`Подтверждённый канал будет отключён. Контакту нужно будет подтвердить его снова, чтобы пользоваться этим каналом.`,linkAccount:`Связать аккаунт`,setupDefault:`Пригласить`,loadFailed:`Не удалось загрузить каналы. Проверьте подключение и повторите попытку.`},m={title:`Связать аккаунт {channel}`,description:`Найди в рабочем пространстве {channel} аккаунт <contact>{name}</contact>.`,searchPlaceholder:`Поиск по имени или @нику`,searchAriaLabel:`Поиск аккаунтов рабочего пространства {channel}`,loading:`Загрузка участников рабочего пространства…`,noMembers:`Участники рабочего пространства не найдены.`,noMatches:`Нет подходящих участников.`,linking:`Связываем…`,guardianLinkNote:`Выбор помечает аккаунт как <emphasis>связанный опекуном</emphasis>: поручительство за личность без рукопожатия.`,inviteInstead:`Или отправка приглашения`},h={titlePicked:`Объединить "{donor}" с {survivor}?`,titlePicking:`Объединить другой контакт с {survivor}`,descriptionPicked:`Каналы и заметки объединённого контакта перейдут сюда. Сам контакт будет удалён.`,descriptionPicking:`Выбранный контакт будет удалён. Его каналы и заметки добавятся к этому.`,confirm:`Объединить`,searchPlaceholder:`Поиск контактов`,listAriaLabel:`Выбор контакта для объединения`,empty:`Нет других контактов для объединения.`,donorDeleted:`<donor>"{donor}"</donor> будет удалён.`,channelsMoved:`{count, plural, =0 {В {survivor} не перейдёт ни один новый канал.} one {# канал перейдёт в {survivor}: {channels}.} few {# канала перейдут в {survivor}: {channels}.} many {# каналов перейдут в {survivor}: {channels}.} other {# канала перейдут в {survivor}: {channels}.}}`,duplicatesSkipped:`{count, plural, one {# повторный канал уже есть у {survivor} (пропущен).} few {# повторных канала уже есть у {survivor} (пропущены).} many {# повторных каналов уже есть у {survivor} (пропущены).} other {# повторных канала уже есть у {survivor} (пропущены).}}`,notesAppended:`Заметки объединённого контакта будут добавлены в конец.`,irreversible:`Это нельзя отменить.`},g={you:`вас`,youNamed:`{name} (вы)`,thisContact:`этот контакт`},_={actions:e,channelType:t,contact:n,contactsPage:r,contactsList:i,contactDetailView:a,contactPermissions:o,guardianDetailView:s,assistantChannelsDetail:c,assistantContactChannels:l,accountLink:u,connectPage:d,channelStatus:f,contactChannelsSection:p,linkAccountDialog:m,contactMergeDialog:h,survivorName:g};export{u as accountLink,e as actions,c as assistantChannelsDetail,l as assistantContactChannels,f as channelStatus,t as channelType,d as connectPage,n as contact,p as contactChannelsSection,a as contactDetailView,h as contactMergeDialog,o as contactPermissions,i as contactsList,r as contactsPage,_ as default,s as guardianDetailView,m as linkAccountDialog,g as survivorName};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Bg as e,Cv as t,Eg as n,Sv as r,Tv as i,Vg as a,zg as o}from"./index-7XDiAJ-A.js";async function s(e,n){let{data:o,error:s,response:c}=await a({path:{assistant_id:e},body:n,throwOnError:!1});if(t(c,s,`Failed to save contact`),!c.ok||!o?.contact)throw new r(c.status,i(s,c,`Failed to save contact`));return o.contact}async function c(n,a){let{error:o,response:s}=await e({path:{assistant_id:n,contact_id:a},throwOnError:!1});if(t(s,o,`Failed to delete contact`),!s.ok&&s.status!==204)throw new r(s.status,i(o,s,`Failed to delete contact`))}async function l(e,n){let{error:a,response:s}=await o({path:{assistant_id:e,channel_id:n},throwOnError:!1});if(t(s,a,`Failed to verify channel`),!s.ok)throw new r(s.status,i(a,s,`Failed to verify channel`))}async function u(e,t,n){let i=(await s(e,{id:t.id,displayName:t.displayName,channels:[{type:n.type,address:n.address}]})).channels.find(e=>e.type===n.type&&e.address.toLowerCase()===n.address.toLowerCase());if(!i)throw new r(409,`That account is already linked to another contact.`);if(i.status===`blocked`)throw new r(409,`That account is blocked for this contact. Unblock it before linking.`);await l(e,i.id)}async function d(e,a){let{data:o,error:s,response:c}=await n.post({url:`/v1/assistants/{assistant_id}/a2a/invites/redeem/`,path:{assistant_id:e},body:{sender_assistant_id:a.senderAssistantId,token:a.token},headers:{"Content-Type":`application/json`},throwOnError:!1});if(t(c,s,`Failed to redeem A2A invite`),!c.ok)throw new r(c.status,i(s,c,`Failed to redeem A2A invite`));return{success:o?.success??!0,alreadyConnected:o?.already_connected,error:o?.error,errorCode:o?.error_code}}export{l as a,s as i,u as n,d as r,c as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{A as t,Kn as n,N as r,O as i,Un as a,Yn as o}from"./vendor-WUN87CSE.js";import{b as s,f as c,g as l,n as u,r as d,t as f}from"./react-DPM_L_aA.js";import{J as p,Jt as m,Mr as h,Qr as g,Rt as _,_t as v,bn as y,fi as b,g as x,on as S,pi as C,pt as w,q as ee,st as T,tn as E,xi as D}from"./icons-CSdHOix6.js";import{t as O}from"./ellipsis-vertical-npNyglhR.js";import{$v as te,Cy as k,Ds as A,M as j,Q as M,Sy as N,Vs as ne,Vu as re,X_ as ie,_i as P,ay as ae,co as oe,ft as F,hi as se,hy as I,id as L,iy as R,jg as ce,lf as le,nd as ue,ny as de,qm as fe,rd as pe,sy as z,uf as me,uv as he,vi as B,vy as V,wy as H,yi as U}from"./index-7XDiAJ-A.js";import{t as W}from"./detail-card-BTciodin.js";import{n as ge,r as _e,t as ve}from"./use-side-list-room-DQbUPFcU.js";import{c as G,i as ye,n as be,r as K,t as xe}from"./use-invite-link-dialog-Ck-LquhT.js";import{a as Se,i as Ce,n as we,t as Te}from"./contacts-gateway-aq64PPDs.js";var Ee=D(`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`}]]),De=D(`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`}]]),q=e(s(),1),Oe=new Set([`slack`]);function J(e){return e.status===`verified`||e.status===`active`&&e.verifiedAt!=null}function ke(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 Ae(e){let t=ke(e.toLowerCase());return t?r(t,{ns:`contacts`}):e}var je=`New Contact`;function Me(e){return e===je}var Y=f();function Ne({channels:e,pendingChannelKey:t=null,onConnect:n,onDisconnect:r}){let{t:a}=i(`contacts`),[o,s]=(0,q.useState)(null);return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`div`,{className:`flex flex-col`,children:e.map((e,i)=>(0,Y.jsxs)(`div`,{children:[i>0?(0,Y.jsx)(`div`,{className:`border-t`,style:{borderColor:`var(--border-base)`}}):null,(0,Y.jsx)(Pe,{channel:e,pending:t===e.key,onConnect:n?()=>n(e.key):void 0,onDisconnect:r&&e.canDisconnect?()=>s(e.key):void 0})]},e.key))}),(0,Y.jsx)(R,{open:o!==null,title:a(`assistantContactChannels.disconnectConfirmTitle`,{channel:o?B(o):``}),message:a(`assistantContactChannels.disconnectConfirmMessage`),confirmLabel:a(`actions.disconnect`),destructive:!0,onConfirm:()=>{o&&r&&r(o),s(null)},onCancel:()=>s(null)})]})}function Pe({channel:e,pending:t,onConnect:n,onDisconnect:r}){let{t:a}=i(`contacts`),o=e.configured,{Icon:s,label:c}=U(e.health);return(0,Y.jsxs)(`div`,{className:`flex items-center gap-3 py-4`,children:[(0,Y.jsx)(se,{channelId:e.key,className:`h-4 w-4 shrink-0 text-[color:var(--content-secondary)]`}),(0,Y.jsx)(`span`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:B(e.key)}),o&&e.address?(0,Y.jsx)(`span`,{className:`truncate text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:e.address}):null,(0,Y.jsx)(`div`,{className:`ml-auto flex shrink-0 items-center gap-2`,children:o?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.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,Y.jsx)(s,{className:`h-3 w-3`}),c]}),r?(0,Y.jsx)(H,{variant:`danger`,onClick:r,disabled:t,children:a(t?`actions.disconnecting`:`actions.disconnect`)}):(0,Y.jsx)(H,{variant:`outlined`,asChild:!0,children:(0,Y.jsx)(u,{to:`${he.channels}?setup=${e.key}`,children:a(`actions.manage`)})})]}):n?(0,Y.jsx)(H,{variant:`outlined`,onClick:n,disabled:t,children:a(`actions.connect`)}):null})]})}function X({role:e,contactType:t}){let{label:n,tone:r}=Z(e,t);return(0,Y.jsx)(V,{tone:r,children:n})}function Z(e,t){switch(e){case`guardian`:return{label:`Guardian`,tone:`positive`};case`assistant`:return{label:`Assistant`,tone:`negative`};default:return t===`assistant`?{label:`Assistant`,tone:`negative`}:{label:`Human`,tone:`warning`}}}function Fe({assistantName:e,...t}){let{t:n}=i(`contacts`),r=oe(e);return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,Y.jsx)(W,{title:n(`assistantChannelsDetail.title`,{name:r}),accessory:(0,Y.jsx)(X,{role:`assistant`}),compactAccessory:!0}),(0,Y.jsx)(W,{title:n(`assistantChannelsDetail.channelsTitle`),subtitle:n(`assistantChannelsDetail.channelsSubtitle`,{name:r}),children:(0,Y.jsx)(Ne,{...t})})]})}var Ie=new Set([`telegram`,`phone`,`vellum`,`whatsapp`,`slack`,`email`,`platform`,`a2a`]);function Q(e){return Ie.has(e)}function Le(e){return typeof e.source==`string`&&e.source.startsWith(`plugin:`)}function Re(e){return e.supportsVerification||Le(e)}function ze(e){return!!e?.address?.trim()}function Be(e,t){return e.id===`a2a`?t&&t.status!==`revoked`?{kind:`connected`}:{kind:`setup`}:t!=null&&J(t)?{kind:`verified`}:t?.status===`blocked`?{kind:`none`}:t&&t.status!==`revoked`||Le(e)?{kind:`unverified`}:{kind:`setup`}}function Ve(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||Q(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 $({channelId:e,name:t,className:n,style:r}){let i=P(e);if(i)return(0,q.createElement)(i,{size:16,className:n,style:r});switch(t){case`bot`:return(0,Y.jsx)(g,{className:n,style:r});case`hash`:return(0,Y.jsx)(y,{className:n,style:r});case`send`:return(0,Y.jsx)(ee,{className:n,style:r});case`phone`:return(0,Y.jsx)(w,{className:n,style:r});case`mail`:return(0,Y.jsx)(m,{className:n,style:r});case`message-square`:return(0,Y.jsx)(_,{className:n,style:r});default:return(0,Y.jsx)(Ee,{className:n,style:r})}}function He({contactChannels:e,availableChannels:t,channelsLoadFailed:n,a2aEnabled:r,setupLabel:a,verifyLoading:o,verifySubject:s=`self`,onSetupChannel:c,onVerifyChannel:l,onRevokeChannel:u,onLinkAccount:d}){let{t:f}=i(`contacts`),[p,m]=(0,q.useState)(null),[h,g]=(0,q.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=Ve(t,e,r);return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`div`,{className:`flex flex-col`,children:[n&&(0,Y.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,Y.jsxs)(`div`,{children:[t>0&&(0,Y.jsx)(`div`,{className:`border-t`,style:{borderColor:`var(--border-base)`}}),(0,Y.jsx)(Ue,{info:e,existing:n,setupLabel:a??f(`contactChannelsSection.setupDefault`),verifyLoading:o,onSetup:c?()=>c(e.id):void 0,onVerify:l&&Re(e)?()=>m({info:e,existing:n}):void 0,onRevoke:u&&n?()=>g({channelId:n.id,channel:e}):void 0,onLinkAccount:d&&Oe.has(e.id)?()=>d(e.id):void 0})]},e.id)})]}),p?(0,Y.jsx)(We,{info:p.info,existing:p.existing,verifySubject:s,onConfirm:v,onCancel:()=>m(null)}):null,h&&(0,Y.jsx)(R,{open:!0,title:f(`contactChannelsSection.revokeConfirmTitle`,{channel:h.channel.label}),message:f(`contactChannelsSection.revokeConfirmMessage`),confirmLabel:f(`actions.revoke`),destructive:!0,onConfirm:()=>{u?.(h.channelId,h.channel.id),g(null)},onCancel:()=>g(null)})]})}function Ue({info:e,existing:t,setupLabel:n,verifyLoading:r,onSetup:a,onVerify:o,onRevoke:s,onLinkAccount:c}){let{t:l}=i(`contacts`),u=Be(e,t);return(0,Y.jsxs)(`div`,{className:`flex items-center gap-3 py-4`,children:[(0,Y.jsx)($,{channelId:e.id,name:e.icon,className:`h-4 w-4 shrink-0`,style:{color:`var(--content-secondary)`}}),(0,Y.jsx)(`span`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:e.label}),t?.address?(0,Y.jsx)(`span`,{className:`truncate text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:t.address}):null,(0,Y.jsx)(`div`,{className:`ml-auto flex shrink-0 items-center gap-2`,children:u.kind===`connected`?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.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,Y.jsx)(h,{className:`h-3 w-3`}),l(`channelStatus.connected`)]}),s?(0,Y.jsx)(H,{variant:`danger`,onClick:s,children:l(`actions.revoke`)}):null]}):u.kind===`verified`?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.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,Y.jsx)(h,{className:`h-3 w-3`}),l(`channelStatus.verified`)]}),s?(0,Y.jsx)(H,{variant:`danger`,onClick:s,children:l(`actions.revoke`)}):null]}):u.kind===`unverified`?(0,Y.jsx)(H,{variant:`outlined`,onClick:o,disabled:!o||r,children:l(r?`actions.verifying`:`actions.verify`)}):u.kind===`setup`?e.id===`a2a`?null:(0,Y.jsxs)(Y.Fragment,{children:[c?(0,Y.jsxs)(H,{onClick:c,children:[(0,Y.jsx)(S,{className:`h-3.5 w-3.5`}),l(`contactChannelsSection.linkAccount`)]}):null,(0,Y.jsx)(H,{variant:`outlined`,onClick:a,disabled:!a,children:n})]}):null})]})}function We({info:e,existing:t,verifySubject:n,onConfirm:r,onCancel:a}){let{t:o}=i(`contacts`),[s,c]=(0,q.useState)(t?.address?.trim()??``),l=(0,q.useRef)(null),u=(0,q.useId)(),d=s.trim();return ze(t)?(0,Y.jsx)(R,{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:()=>{r()},onCancel:a}):(0,Y.jsx)(z.Root,{open:!0,onOpenChange:e=>{e||a()},children:(0,Y.jsx)(z.Content,{size:`sm`,hideCloseButton:!0,onOpenAutoFocus:e=>{e.preventDefault(),l.current?.focus()},onEscapeKeyDown:e=>{e.preventDefault(),e.stopPropagation(),a()},children:(0,Y.jsxs)(`form`,{className:`flex flex-col`,onSubmit:e=>{e.preventDefault(),d.length!==0&&r(d)},children:[(0,Y.jsx)(z.Header,{children:(0,Y.jsx)(z.Title,{children:o(`contactChannelsSection.verifyConfirmTitle`,{channel:e.label})})}),(0,Y.jsxs)(z.Body,{className:`flex flex-col gap-3`,children:[(0,Y.jsx)(z.Description,{children:o(n===`contact`?`contactChannelsSection.verifyAddressMessageContact`:`contactChannelsSection.verifyAddressMessageGuardian`,{channel:e.label})}),(0,Y.jsx)(I,{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,Y.jsxs)(z.Footer,{children:[(0,Y.jsx)(H,{variant:`outlined`,type:`button`,onClick:a,children:o(`actions.cancel`)}),(0,Y.jsx)(H,{type:`submit`,disabled:d.length===0,children:o(`actions.verify`)})]})]})})})}function Ge(e){return e===`none`||e===`low`||e===`medium`||e===`high`}function Ke(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 qe(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 Je(e){return e.role!==`guardian`&&e.contactType!==`assistant`}function Ye({contact:e,pending:t,onAutoApproveThresholdChange:n}){let{t:r}=i(`contacts`),a=Ge(e.autoApproveThreshold)?e.autoApproveThreshold:null,o=a===null?null:M.find(e=>e.riskThreshold===a);return(0,Y.jsx)(W,{title:r(`contactPermissions.title`),subtitle:r(`contactPermissions.subtitle`),children:(0,Y.jsxs)(`div`,{className:`flex flex-col gap-2`,"data-testid":`contact-permissions`,children:[(0,Y.jsx)(`div`,{style:{maxWidth:280},children:(0,Y.jsx)(te,{value:o?.id??null,placeholder:r(`contactPermissions.inheritLabel`),disabled:t,onSelectNone:()=>{n(null)},onChange:e=>{let t=M.find(t=>t.id===e);t&&n(t.riskThreshold)},options:[{value:null,label:r(`contactPermissions.inheritLabel`)},...M.map(e=>{let t=e.icon;return{value:e.id,label:Ke(r,e.riskThreshold),icon:(0,Y.jsx)(t,{className:`h-3.5 w-3.5`})}})]})}),(0,Y.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:qe(r,a)})]})})}function Xe(e){return(0,Y.jsx)(Ze,{...e},e.contact.id)}function Ze({contact:e,savePending:t,deletePending:n,verifyPending:r,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:v}){let{t:y}=i(`contacts`),b=Me(e.displayName),[x,S]=(0,q.useState)(b?``:e.displayName),[C,w]=(0,q.useState)(e.notes??``),[ee,T]=(0,q.useState)(!1),E=x.trim(),D=C.trim(),O=b?``:e.displayName,te=e.notes??``,k=E!==O||D!==te,A=E.length>0&&k&&!t&&!n,j=b&&e.channels.length===0&&e.interactionCount===0,M=E||(b?y(`contact.draftName`):e.displayName),N=y(`contact.interactions`,{count:e.interactionCount});return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,Y.jsx)(W,{title:M,accessory:(0,Y.jsx)(X,{role:e.role,contactType:e.contactType}),compactAccessory:!0,subtitle:N,children:(0,Y.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,Y.jsx)(I,{label:y(`contact.nameLabel`),type:`text`,value:x,onChange:e=>S(e.target.value),placeholder:y(`contactDetailView.namePlaceholder`),autoFocus:b,disabled:t||n,fullWidth:!0}),(0,Y.jsx)(I,{label:y(`contact.notesLabel`),type:`text`,value:C,onChange:e=>w(e.target.value),placeholder:y(`contactDetailView.notesPlaceholder`),disabled:t||n,fullWidth:!0}),(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,Y.jsx)(H,{type:`button`,onClick:()=>u({displayName:E,notes:D}),disabled:!A,children:y(t?`actions.saving`:`actions.save`)}),f?(0,Y.jsx)(H,{type:`button`,variant:`outlined`,onClick:f,disabled:!o||j||k||a||t||n,title:o?j?y(`contactDetailView.mergeBlockedUnsavedDraft`):k?y(`contact.mergeBlockedUnsaved`):void 0:y(`contact.mergeBlockedNoCandidates`),children:y(a?`actions.merging`:`actions.merge`)}):null,(0,Y.jsx)(H,{type:`button`,variant:`danger`,onClick:()=>{j?d():T(!0)},disabled:n,children:y(n?`actions.deleting`:`contactDetailView.delete`)})]})]})}),(0,Y.jsx)(W,{title:y(`contactDetailView.linkedAccountsTitle`),subtitle:y(`contactDetailView.linkedAccountsSubtitle`),children:(0,Y.jsx)(He,{contactChannels:e.channels,availableChannels:s,channelsLoadFailed:c,a2aEnabled:l,verifyLoading:r,verifySubject:`contact`,onSetupChannel:p,onVerifyChannel:m,onRevokeChannel:h,onLinkAccount:g})}),Je(e)&&v?(0,Y.jsx)(Ye,{contact:e,pending:_,onAutoApproveThresholdChange:v}):null,(0,Y.jsx)(R,{open:ee,title:y(`contactDetailView.deleteConfirmTitle`,{name:M}),message:y(`contactDetailView.deleteConfirmMessage`),confirmLabel:y(`actions.delete`),destructive:!0,onConfirm:()=>{T(!1),d()},onCancel:()=>T(!1)})]})}function Qe(e){return(0,Y.jsx)($e,{...e},`${e.survivor.id}:${e.open?`open`:`closed`}`)}function $e({open:e,survivor:t,candidates:n,pending:r,errorMessage:a,onMerge:o,onClose:s}){let{t:c}=i(`contacts`),[l,u]=(0,q.useState)(``),[d,f]=(0,q.useState)(null);(0,q.useEffect)(()=>{d&&!n.some(e=>e.id===d)&&f(null)},[n,d]);let p=(0,q.useMemo)(()=>{let e=l.trim().toLowerCase();return e?n.filter(t=>t.displayName.toLowerCase().includes(e)):n},[n,l]),m=d?n.find(e=>e.id===d)??null:null,h=it(t);return(0,Y.jsx)(z.Root,{open:e,onOpenChange:e=>{!e&&!r&&s()},children:(0,Y.jsxs)(z.Content,{size:`md`,children:[(0,Y.jsxs)(z.Header,{icon:De,children:[(0,Y.jsx)(z.Title,{children:m?c(`contactMergeDialog.titlePicked`,{donor:m.displayName,survivor:h}):c(`contactMergeDialog.titlePicking`,{survivor:h})}),(0,Y.jsx)(z.Description,{children:c(m?`contactMergeDialog.descriptionPicked`:`contactMergeDialog.descriptionPicking`)})]}),(0,Y.jsxs)(z.Body,{className:`flex flex-col gap-3`,children:[m?(0,Y.jsx)(nt,{survivor:t,donor:m}):n.length===0?(0,Y.jsx)(rt,{}):(0,Y.jsx)(et,{search:l,onSearch:u,candidates:p,onPick:f}),a?(0,Y.jsx)(k,{as:`p`,variant:`body-small-default`,className:`text-(--system-negative-strong)`,role:`alert`,children:a}):null]}),(0,Y.jsx)(z.Footer,{children:m?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(H,{variant:`outlined`,onClick:()=>f(null),disabled:r,leftIcon:(0,Y.jsx)(C,{"aria-hidden":!0}),children:c(`actions.back`)}),(0,Y.jsx)(H,{variant:`danger`,onClick:()=>o(m.id),disabled:r,children:c(r?`actions.merging`:`contactMergeDialog.confirm`)})]}):(0,Y.jsx)(H,{variant:`outlined`,onClick:s,disabled:r,children:c(`actions.cancel`)})})]})})}function et({search:e,onSearch:t,candidates:n,onPick:r}){let{t:a}=i(`contacts`);return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(I,{type:`text`,value:e,onChange:e=>t(e.target.value),placeholder:a(`contactMergeDialog.searchPlaceholder`),leftIcon:(0,Y.jsx)(p,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),fullWidth:!0}),(0,Y.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:n.length===0?(0,Y.jsx)(k,{as:`p`,variant:`body-small-default`,className:`px-3 py-4 text-center text-(--content-tertiary)`,children:a(`contactsList.noMatches`)}):n.map(e=>(0,Y.jsx)(tt,{contact:e,onPick:()=>r(e.id)},e.id))})]})}function tt({contact:e,onPick:t}){let n=ot(e).join(` | `)||void 0;return(0,Y.jsx)(de,{asChild:!0,children:(0,Y.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,Y.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,Y.jsx)(`span`,{className:`truncate text-body-medium-default`,children:e.displayName}),n?(0,Y.jsx)(`span`,{className:`truncate text-body-small-default text-(--content-tertiary)`,children:n}):null]})})})}function nt({survivor:e,donor:n}){let{t:r}=i(`contacts`),a=it(e),{moved:o,duplicates:s}=at(e,n);return(0,Y.jsxs)(`ul`,{className:`flex flex-col gap-2 text-body-medium-lighter text-(--content-secondary)`,children:[(0,Y.jsx)(`li`,{children:(0,Y.jsx)(t,{i18nKey:`contactMergeDialog.donorDeleted`,ns:`contacts`,values:{donor:n.displayName},components:{donor:(0,Y.jsx)(`span`,{className:`text-(--content-default)`})}})}),(0,Y.jsx)(`li`,{children:r(`contactMergeDialog.channelsMoved`,{count:o.length,survivor:a,channels:o.map(e=>Ae(e.type)).join(`, `)})}),s.length>0?(0,Y.jsx)(`li`,{className:`text-(--content-tertiary)`,children:r(`contactMergeDialog.duplicatesSkipped`,{count:s.length,survivor:a})}):null,n.notes?(0,Y.jsx)(`li`,{children:r(`contactMergeDialog.notesAppended`)}):null,(0,Y.jsx)(`li`,{className:`text-(--content-tertiary)`,children:r(`contactMergeDialog.irreversible`)})]})}function rt(){let{t:e}=i(`contacts`);return(0,Y.jsx)(k,{as:`p`,variant:`body-medium-lighter`,className:`px-3 py-6 text-center text-(--content-tertiary)`,children:e(`contactMergeDialog.empty`)})}function it(e){return e.role===`guardian`?!e.displayName||e.displayName.startsWith(`vellum-principal-`)?r(`survivorName.you`,{ns:`contacts`}):r(`survivorName.youNamed`,{ns:`contacts`,name:e.displayName}):e.displayName||r(`survivorName.thisContact`,{ns:`contacts`})}function at(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 ot(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(Ae(e)))}return n}function st({loading:e,guardian:t,assistantName:n,regularContacts:r,selection:a,onSelect:o,onAddContact:s,addingContact:c=!1,search:l,onSearchChange:u}){let{t:d}=i(`contacts`),f=l.trim()?r.filter(e=>e.displayName.toLowerCase().includes(l.trim().toLowerCase())):r;return(0,Y.jsx)(N.Root,{className:`flex h-full flex-col overflow-hidden`,children:(0,Y.jsxs)(N.Body,{className:`flex min-h-0 min-w-0 flex-1 flex-col gap-4`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Y.jsx)(`h2`,{className:`text-title-medium`,style:{color:`var(--content-default)`},children:d(`contactsList.heading`)}),(0,Y.jsx)(H,{type:`button`,variant:`ghost`,iconOnly:c?(0,Y.jsx)(E,{className:`animate-spin`,"aria-hidden":!0}):(0,Y.jsx)(T,{"aria-hidden":!0}),onClick:s,disabled:c,"aria-label":d(`contactsList.addAriaLabel`),tintColor:`var(--content-secondary)`})]}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[t?(0,Y.jsx)(ct,{name:t.displayName?d(`contactsList.youNamed`,{name:t.displayName}):d(`contactsList.you`),role:t.role,channelTypes:t.channelTypes,selected:a?.kind===`contact`&&a.contactId===t.id,onClick:()=>o({kind:`contact`,contactId:t.id}),trailingIcon:`pencil`}):null,(0,Y.jsx)(ct,{name:n?.trim()||d(`contactsList.assistantFallback`),role:`assistant`,selected:a?.kind===`assistant`,onClick:()=>o({kind:`assistant`}),trailingIcon:`more`})]}),(0,Y.jsx)(`div`,{className:`border-t`,style:{borderColor:`var(--border-base)`}}),r.length>0?(0,Y.jsx)(I,{type:`text`,value:l,onChange:e=>u(e.target.value),placeholder:d(`contactsList.searchPlaceholder`),leftIcon:(0,Y.jsx)(p,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),fullWidth:!0}):null,r.length>0?(0,Y.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto flex flex-col gap-1`,children:[f.map(e=>(0,Y.jsx)(ct,{name:e.displayName,role:e.role,contactType:e.contactType,channelTypes:e.channelTypes,verified:e.verified,selected:a?.kind===`contact`&&a.contactId===e.id,onClick:()=>o({kind:`contact`,contactId:e.id}),trailingIcon:`more`},e.id)),f.length===0?(0,Y.jsx)(`p`,{className:`px-3 py-4 text-center text-body-small-default`,style:{color:`var(--content-tertiary)`},children:d(`contactsList.noMatches`)}):null]}):e?null:(0,Y.jsx)(H,{type:`button`,variant:`ghost`,onClick:s,disabled:c,tintColor:`var(--primary-base)`,leftIcon:c?(0,Y.jsx)(E,{className:`animate-spin`,"aria-hidden":!0}):(0,Y.jsx)(x,{"aria-hidden":!0}),children:d(`contactsList.add`)})]})})}function ct({name:e,role:t,contactType:n,channelTypes:r,selected:a,onClick:o,trailingIcon:s,verified:c}){let{t:l}=i(`contacts`),u=r&&r.length>0?r.join(` | `):void 0,d=s===`pencil`?(0,Y.jsx)(v,{className:`h-3.5 w-3.5 text-[color:var(--content-tertiary)]`,"aria-hidden":!0}):s===`more`?(0,Y.jsx)(O,{className:`h-3.5 w-3.5 text-[color:var(--content-tertiary)]`,"aria-hidden":!0}):void 0;return(0,Y.jsx)(de,{asChild:!0,active:a,children:(0,Y.jsxs)(`button`,{type:`button`,onClick:o,className:`flex h-auto w-full items-center gap-2 rounded-[6px] px-[8px] py-2 text-left`,children:[(0,Y.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,Y.jsx)(`span`,{className:`truncate text-body-medium-default`,children:e}),u?(0,Y.jsx)(`span`,{className:`truncate text-body-small-default`,style:{color:`var(--content-tertiary)`},children:u}):null]}),(0,Y.jsxs)(`span`,{className:`flex shrink-0 items-center gap-1`,children:[c===void 0?null:(0,Y.jsx)(V,{tone:c?`positive`:`neutral`,children:l(c?`contactsList.verified`:`contactsList.unverified`)}),(0,Y.jsx)(X,{role:t,contactType:n}),d]})]})})}function lt(e){return(0,Y.jsx)(ut,{...e},e.contact.id)}function ut({contact:e,savePending:t,verifyPending:n,mergePending:r=!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}=i(`contacts`),g=e.displayName.startsWith(`vellum-principal-`),_=g?``:e.displayName,[v,y]=(0,q.useState)(_),[b,x]=(0,q.useState)(e.notes??``),S=v.trim(),C=b.trim(),w=S!==_.trim()||C!==(e.notes??``).trim(),ee=w&&!t,T=h(`contact.interactions`,{count:e.interactionCount});return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,Y.jsx)(W,{title:g?h(`contactsList.you`):h(`contactsList.youNamed`,{name:e.displayName}),accessory:(0,Y.jsx)(X,{role:`guardian`}),compactAccessory:!0,subtitle:T,children:(0,Y.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,Y.jsx)(I,{label:h(`contact.nameLabel`),type:`text`,value:v,onChange:e=>y(e.target.value),placeholder:h(`guardianDetailView.namePlaceholder`),disabled:t,fullWidth:!0}),(0,Y.jsx)(I,{label:h(`contact.notesLabel`),type:`text`,value:b,onChange:e=>x(e.target.value),placeholder:h(`guardianDetailView.notesPlaceholder`),disabled:t,fullWidth:!0}),(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,Y.jsx)(H,{variant:`primary`,onClick:()=>l({displayName:S||e.displayName,notes:C}),disabled:!ee,children:h(t?`actions.saving`:`actions.save`)}),u?(0,Y.jsx)(H,{variant:`outlined`,onClick:u,disabled:!a||w||r||t,title:a?w?h(`contact.mergeBlockedUnsaved`):void 0:h(`contact.mergeBlockedNoCandidates`),children:h(r?`actions.merging`:`actions.merge`)}):null]})]})}),(0,Y.jsx)(W,{title:h(`guardianDetailView.channelsTitle`),subtitle:h(`guardianDetailView.channelsSubtitle`),children:(0,Y.jsx)(He,{contactChannels:e.channels,availableChannels:o,channelsLoadFailed:s,a2aEnabled:c,setupLabel:h(`guardianDetailView.setupLabel`),verifyLoading:n,onSetupChannel:d,onVerifyChannel:f,onRevokeChannel:p})}),m?(0,Y.jsx)(K,{onClick:m}):null]})}function dt(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 ft(e){let t=e.trim().split(/\s+/).filter(Boolean);return`${t[0]?.[0]??`?`}${t.length>1?t[t.length-1]?.[0]??``:``}`.toUpperCase()}function pt({open:e,channelLabel:n,contactName:r,accounts:a,loading:o,errorMessage:s,pendingAccountId:c,onPick:l,onClose:u,onInviteInstead:d}){let{t:f}=i(`contacts`),[m,h]=(0,q.useState)(``);(0,q.useEffect)(()=>{e&&h(``)},[e]);let g=(0,q.useMemo)(()=>dt(a??[],m),[a,m]),_=c!=null;return(0,Y.jsx)(z.Root,{open:e,onOpenChange:e=>!e&&u(),children:(0,Y.jsxs)(z.Content,{size:`sm`,children:[(0,Y.jsxs)(z.Header,{children:[(0,Y.jsx)(z.Title,{children:f(`linkAccountDialog.title`,{channel:n})}),(0,Y.jsx)(z.Description,{children:(0,Y.jsx)(t,{i18nKey:`linkAccountDialog.description`,ns:`contacts`,values:{channel:n,name:r},components:{contact:(0,Y.jsx)(`span`,{className:`text-[color:var(--content-default)]`})}})})]}),(0,Y.jsxs)(z.Body,{className:`flex flex-col gap-3`,children:[(0,Y.jsx)(I,{type:`search`,value:m,onChange:e=>h(e.target.value),placeholder:f(`linkAccountDialog.searchPlaceholder`),"aria-label":f(`linkAccountDialog.searchAriaLabel`,{channel:n}),leftIcon:(0,Y.jsx)(p,{className:`h-4 w-4`}),fullWidth:!0}),s?(0,Y.jsx)(`p`,{className:`text-body-small-default text-[color:var(--content-negative)]`,children:s}):null,(0,Y.jsx)(`div`,{className:`max-h-80 overflow-y-auto`,children:o?(0,Y.jsx)(`p`,{className:`py-4 text-center text-body-small-default text-[color:var(--content-tertiary)]`,children:f(`linkAccountDialog.loading`)}):g.length===0?(0,Y.jsx)(`p`,{className:`py-4 text-center text-body-small-default text-[color:var(--content-tertiary)]`,children:(a?.length??0)===0?f(`linkAccountDialog.noMembers`):f(`linkAccountDialog.noMatches`)}):(0,Y.jsx)(`ul`,{className:`flex flex-col`,children:g.map(e=>(0,Y.jsx)(`li`,{children:(0,Y.jsxs)(`button`,{type:`button`,onClick:()=>l(e),disabled:_,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,Y.jsx)(`img`,{src:e.imageUrl,alt:``,className:`h-8 w-8 shrink-0 rounded-full`}):(0,Y.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:ft(e.displayName)}),(0,Y.jsxs)(`span`,{className:`flex min-w-0 flex-col`,children:[(0,Y.jsx)(`span`,{className:`truncate text-body-medium-default text-[color:var(--content-default)]`,children:e.displayName}),(0,Y.jsxs)(`span`,{className:`truncate text-body-small-default text-[color:var(--content-tertiary)]`,children:[`@`,e.username]})]}),c===e.id?(0,Y.jsx)(`span`,{className:`ml-auto shrink-0 text-body-small-default text-[color:var(--content-tertiary)]`,children:f(`linkAccountDialog.linking`)}):null]})},e.id))})})]}),(0,Y.jsxs)(z.Footer,{className:`items-center justify-between gap-3 border-t border-[var(--border-base)]`,children:[(0,Y.jsx)(`p`,{className:`text-body-small-default text-[color:var(--content-tertiary)]`,children:(0,Y.jsx)(t,{i18nKey:`linkAccountDialog.guardianLinkNote`,ns:`contacts`,components:{emphasis:(0,Y.jsx)(`span`,{className:`text-[color:var(--content-secondary)]`})}})}),d?(0,Y.jsxs)(H,{variant:`link`,className:`shrink-0`,onClick:d,disabled:_,children:[f(`linkAccountDialog.inviteInstead`),(0,Y.jsx)(b,{className:`h-3.5 w-3.5`})]}):null]})]})})}function mt({assistantId:e,channelType:t,contact:n,onLinked:i}){let[o,s]=(0,q.useState)(!1),c=a({mutationFn:n=>we(e,n.contact,{type:t,address:n.account.id}),onSuccess:(e,t)=>{s(!1),ae.success(r(`accountLink.linked`,{ns:`contacts`,username:t.account.username})),i()}}),l=(0,q.useCallback)(()=>{c.reset(),s(!0)},[c]),u=(0,q.useCallback)(()=>{c.isPending||(c.reset(),s(!1))},[c]),d=(0,q.useCallback)(e=>{!n||c.isPending||c.mutate({contact:n,account:e})},[n,c]);return{channelType:t,dialogOpen:o,open:l,close:u,linkErrorMessage:c.error instanceof Error?c.error.message:c.error?r(`accountLink.linkFailed`,{ns:`contacts`}):null,pendingAccountId:c.isPending?c.variables.account.id:null,pick:d}}var ht=[{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?`}}],gt=[];function _t({assistantId:e,onStartSetupConversation:t}){let{t:r}=i(`contacts`),s=ce.use.a2aChannel(),c=ie.use.name(),u=o(),[f]=l(),p=f.get(`setup`),m=p&&ne(p)?p:null,[h,g]=(0,q.useState)({kind:`assistant`}),_=xe(e),{paneRef:v,hasRoomForList:y,drawerOpen:b,openDrawer:x,closeDrawer:S}=ve(),[C,w]=(0,q.useState)(``),[ee,T]=(0,q.useState)(!1),E=oe(c),D=(0,q.useMemo)(()=>({path:{assistant_id:e}}),[e]),O=pe(D),te=n({...ue(D),enabled:!!e,select:e=>e.contacts}),k=be({assistantId:e,onStartSetupConversation:t}),A=n({...re({path:{assistant_id:e}}),enabled:!!e,queryFn:async({signal:t})=>{let{data:n,error:r,response:i}=await fe({path:{assistant_id:e},signal:t,throwOnError:!1});if(i?.status===404)return{channels:ht};if(!i||!i.ok)throw r??Error(`Failed to fetch channel availability`);return n},select:e=>e.channels}),M=A.data??gt,N=A.isError,P=te.data,F=(0,q.useMemo)(()=>P?.find(e=>e.role===`guardian`)??null,[P]),se=(0,q.useMemo)(()=>P?.filter(e=>e.role!==`guardian`)??[],[P]),I=(0,q.useMemo)(()=>h.kind===`contact`?P?.find(e=>e.id===h.contactId)??null:null,[P,h]),R=(0,q.useMemo)(()=>!P||!I?[]:P.filter(e=>e.id!==I.id&&e.role!==`guardian`),[P,I]),de=R.length>0,z=(0,q.useRef)(!!m);(0,q.useEffect)(()=>{z.current||F&&(z.current=!0,g({kind:`contact`,contactId:F.id}))},[F]);let B=(0,q.useCallback)(()=>u.invalidateQueries({queryKey:O}),[u,O]),V=a({mutationFn:()=>Ce(e,{displayName:je}),onMutate:async()=>{await u.cancelQueries({queryKey:O})},onSuccess:e=>{L(u,D,t=>t?{...t,contacts:[...t.contacts,e]}:void 0),g({kind:`contact`,contactId:e.id})},onError:G(r(`contactsPage.createFailed`)),onSettled:()=>B()}),H=a({mutationFn:t=>Te(e,t),onSuccess:(e,t)=>{L(u,D,e=>e?{...e,contacts:e.contacts.filter(e=>e.id!==t)}:void 0),g({kind:`assistant`})},onError:G(r(`contactsPage.deleteFailed`)),onSettled:()=>B()}),U=a({mutationFn:({contactId:t,patch:n})=>Ce(e,{id:t,displayName:n.displayName,notes:n.notes}),onSuccess:e=>{L(u,D,t=>t?{...t,contacts:t.contacts.map(t=>t.id===e.id?e:t)}:void 0)},onError:G(r(`contactsPage.saveFailed`)),onSettled:()=>B()}),W=a({mutationFn:({contactId:t,displayName:n,autoApproveThreshold:r})=>Ce(e,{id:t,displayName:n,autoApproveThreshold:r}),onSuccess:e=>{L(u,D,t=>t?{...t,contacts:t.contacts.map(t=>t.id===e.id?e:t)}:void 0)},onError:G(r(`contactPermissions.saveFailed`)),onSettled:()=>B()}),K=me({onMutate:async()=>{await u.cancelQueries({queryKey:O})},onSuccess:(e,t)=>{let n=e.contact,i=t.body.mergeId;n&&(L(u,D,e=>e?{...e,contacts:e.contacts.filter(e=>e.id!==i).map(e=>e.id===n.id?n:e)}:void 0),g({kind:`contact`,contactId:n.id})),T(!1),ae.success(r(`contactsPage.mergeSucceeded`))},onSettled:()=>B()}),Ee=(0,q.useCallback)(e=>{g(e),S(),T(!1),K.reset()},[S,K]),De=(0,q.useCallback)(()=>{K.reset(),T(!0)},[K]),Oe=(0,q.useCallback)(()=>{K.isPending||(T(!1),K.reset())},[K]),J=le({onSuccess:()=>B()}),ke=(0,q.useCallback)((t,n)=>{J.mutate({path:{assistant_id:e,contactChannelId:t},body:{status:`revoked`}})},[J,e]),Me=(0,q.useCallback)(()=>{V.isPending||V.mutate()},[V]),Ne=(0,q.useCallback)(e=>{if(!t)return;let n=M.find(t=>t.id===e);if(!n||Le(n))return;let r=n.setupMessages.contact;r&&t(r)},[M,t]),Pe=(0,q.useCallback)(e=>{if(!t)return;let n=M.find(t=>t.id===e);if(!n||Le(n))return;let r=n.setupMessages.guardian;r&&t(r)},[M,t]),X=a({mutationFn:t=>Se(e,t.channelId),onSuccess:()=>B(),onError:G(r(`contactsPage.verifyFailed`))}),Z=a({mutationFn:t=>{if(!I)throw Error(`No contact selected`);return we(e,{id:I.id,displayName:I.displayName},{type:t.type,address:t.address})},onSuccess:()=>B(),onError:G(r(`contactsPage.verifyFailed`))}),Ie=(0,q.useCallback)((e,t)=>{if(!I)return;let n=t?.trim();if(n){Z.mutate({type:e,address:n});return}let r=I.channels.find(t=>t.type===e&&t.status!==`revoked`);r?.address?.trim()&&X.mutate({channelId:r.id})},[I,Z,X]),Q=mt({assistantId:e,channelType:`slack`,contact:I?{id:I.id,displayName:I.displayName}:null,onLinked:B}),Re=n({...j(e),enabled:!!e&&Q.dialogOpen,select:e=>e.users}),ze=k.channels.some(e=>e.key===`slack`&&e.configured),Be=(0,q.useCallback)(e=>{e===Q.channelType&&Q.open()},[Q]),Ve=H.isPending?H.variables:null,$=(0,q.useMemo)(()=>{if(!I)return null;let e=I;return U.isPending&&U.variables?.contactId===I.id&&(e={...e,displayName:U.variables.patch.displayName,notes:U.variables.patch.notes}),W.isPending&&W.variables?.contactId===I.id&&(e={...e,autoApproveThreshold:W.variables.autoApproveThreshold}),e},[I,U.isPending,U.variables,W.isPending,W.variables]);if(m)return(0,Y.jsx)(d,{to:`${he.channels}?setup=${m}`,replace:!0});let He={loading:te.isLoading,assistantName:E,guardian:F?{id:F.id,displayName:F.displayName.startsWith(`vellum-principal-`)?``:F.displayName,role:F.role,channelTypes:bt(F.channels,s)}:null,regularContacts:se.filter(e=>e.id!==Ve).map(e=>({id:e.id,displayName:e.displayName,role:e.role,contactType:e.contactType,channelTypes:bt(e.channels,s),verified:yt(e.channels)})),selection:h,onAddContact:Me,addingContact:V.isPending,search:C,onSearchChange:w};return(0,Y.jsxs)(`div`,{ref:v,className:`flex min-h-0 flex-1 overflow-hidden ${y?`flex-row gap-6`:`flex-col gap-4`}`,children:[y?(0,Y.jsx)(`aside`,{className:`min-h-0 w-[320px] shrink-0 overflow-y-auto self-stretch`,children:(0,Y.jsx)(st,{...He,onSelect:Ee})}):(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`div`,{className:`flex items-center`,children:(0,Y.jsx)(_e,{onClick:x})}),(0,Y.jsx)(ge,{open:b,onClose:S,title:r(`contactsPage.title`),children:(0,Y.jsx)(st,{...He,onSelect:Ee})})]}),(0,Y.jsx)(`section`,{className:`min-h-0 min-w-0 flex-1 overflow-y-auto`,children:h.kind===`assistant`||h.kind===`contact`&&h.contactId===Ve?(0,Y.jsx)(Fe,{assistantName:E,channels:k.channels,pendingChannelKey:k.pendingChannelKey,onConnect:k.onSetup,onDisconnect:k.onDisconnect}):$?$.role===`guardian`?(0,Y.jsx)(lt,{contact:$,savePending:U.isPending,verifyPending:X.isPending||Z.isPending,mergePending:K.isPending,canMerge:de,availableChannels:M,channelsLoadFailed:N,a2aEnabled:s,onSave:e=>{U.mutate({contactId:$.id,patch:e})},onMerge:De,onSetupChannel:t?Pe:void 0,onVerifyChannel:Ie,onRevokeChannel:ke,onGenerateInviteLink:s?_.open:void 0}):(0,Y.jsx)(Xe,{contact:$,savePending:U.isPending,deletePending:H.isPending,verifyPending:X.isPending||Z.isPending,mergePending:K.isPending,canMerge:de,availableChannels:M,channelsLoadFailed:N,a2aEnabled:s,onSave:e=>{U.mutate({contactId:$.id,patch:e})},onDelete:()=>{H.mutate($.id)},onMerge:De,onSetupChannel:t?Ne:void 0,onVerifyChannel:Ie,onRevokeChannel:ke,onLinkAccount:ze?Be:void 0,pendingAutoApproveThreshold:W.isPending,onAutoApproveThresholdChange:e=>{W.mutate({contactId:$.id,displayName:$.displayName,autoApproveThreshold:e})}}):(0,Y.jsx)(vt,{})}),I?(0,Y.jsx)(Qe,{open:ee,survivor:I,candidates:R,pending:K.isPending,errorMessage:K.error instanceof Error?K.error.message:K.error?r(`contactsPage.mergeFailed`):null,onMerge:t=>K.mutate({path:{assistant_id:e},body:{keepId:I.id,mergeId:t}}),onClose:Oe}):null,(0,Y.jsx)(pt,{open:Q.dialogOpen,channelLabel:Ae(`slack`),contactName:I?.displayName??``,accounts:Re.data,loading:Re.isLoading,errorMessage:Re.isError?r(`contactsPage.rosterLoadFailed`):Q.linkErrorMessage,pendingAccountId:Q.pendingAccountId,onPick:Q.pick,onClose:Q.close,onInviteInstead:t?()=>{Q.close(),Ne(Q.channelType)}:void 0}),(0,Y.jsx)(ye,{open:_.isOpen,assistantId:e,onClose:_.close})]})}function vt(){let{t:e}=i(`contacts`);return(0,Y.jsx)(`div`,{className:`flex h-full items-center justify-center py-16`,children:(0,Y.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:e(`contactsPage.emptyBody`)})})}function yt(e){return e.some(e=>e.status!==`revoked`&&(e.type===`a2a`||J(e)))}function bt(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(Ae(e)))}return r}function xt(){let e=c(),t=F();return(0,Y.jsx)(_t,{assistantId:t,onStartSetupConversation:t=>{A(e,{prompt:t})}},t)}export{xt as ContactsPageRoute};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{
|
|
1
|
+
import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{O as t}from"./vendor-WUN87CSE.js";import{b as n,t as r}from"./react-DPM_L_aA.js";import{Fr as i,jr as a,pn as o,tn as s}from"./icons-CSdHOix6.js";import{Sy as c,hy as l,jm as u,wy as d}from"./index-7XDiAJ-A.js";var f=e(n(),1),p=`/v1/credential-requests/peek`,m=`/v1/credential-requests/submit`;function h(e){return e>0xe8d4a51000?e:e*1e3}function g(e){let t=e?.error?.code;return t===`INVALID`?`invalid`:t===`EXPIRED`?`expired`:t===`USED`?`used`:null}function _(e){let t=e;return typeof t?.service==`string`&&typeof t.field==`string`&&(t.label===null||typeof t.label==`string`)&&typeof t.expiresAt==`number`}async function v(e,t){let n=await fetch(u(p),{method:`POST`,credentials:`include`,headers:{"Content-Type":`application/json`},body:JSON.stringify({token:e}),signal:t}),r=await n.json().catch(()=>null);return n.ok&&_(r)?{status:`ok`,request:r}:n.status===404?{status:g(r)??`invalid`}:{status:`error`}}async function y(e,t,n){let r=await fetch(u(m),{method:`POST`,credentials:`include`,headers:{"Content-Type":`application/json`},body:JSON.stringify({token:e,value:t}),signal:n});if(r.ok)return{status:`ok`};let i=await r.json().catch(()=>null);return r.status===404?{status:g(i)??`invalid`}:r.status===502?{status:`store-failed`}:{status:`error`}}var b=r();function x(e){let[t,n]=(0,f.useState)(()=>Date.now());return(0,f.useEffect)(()=>{let t=setInterval(()=>n(Date.now()),e);return()=>clearInterval(t)},[e]),t}function S(e){let t=Math.max(0,Math.ceil(e/1e3)),n=Math.floor(t/3600),r=Math.floor(t%3600/60),i=t%60;return n>0?`${n}h ${r}m`:r>0?`${r}m ${i}s`:`${i}s`}function C({icon:e,title:t,children:n}){return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(`div`,{className:`flex items-center gap-3`,children:[e,(0,b.jsx)(`h1`,{className:`text-xl font-semibold`,children:t})]}),(0,b.jsx)(`p`,{className:`text-sm leading-6 text-[var(--content-secondary)]`,children:n})]})}function w(){let{t:e}=t(`credential-requests`),[n]=(0,f.useState)(()=>new URLSearchParams(window.location.hash.replace(/^#/,``)).get(`token`)?.trim()||new URLSearchParams(window.location.search).get(`token`)?.trim()||null),[r,u]=(0,f.useState)({kind:`loading`}),[p,m]=(0,f.useState)(``),[g,_]=(0,f.useState)(!1),[w,T]=(0,f.useState)(null),E=x(1e3);(0,f.useEffect)(()=>{let e=new URL(window.location.href),t=new URLSearchParams(e.hash.replace(/^#/,``));if(!t.has(`token`)&&!e.searchParams.has(`token`))return;e.searchParams.delete(`token`),t.delete(`token`);let n=t.toString();window.history.replaceState(window.history.state,``,`${e.pathname}${e.search}${n?`#${n}`:``}`)},[]),(0,f.useEffect)(()=>{if(!n){u({kind:`invalid`});return}let e=new AbortController;return(async()=>{let t=await v(n,e.signal).catch(()=>({status:`error`}));e.signal.aborted||(t.status===`ok`?u({kind:`form`,request:t.request}):u({kind:t.status}))})(),()=>{e.abort()}},[n]);let D=async e=>{if(e.preventDefault(),!n||r.kind!==`form`||!p.trim()||g)return;_(!0),T(null);let t=await y(n,p).catch(()=>({status:`error`}));switch(_(!1),t.status){case`ok`:m(``),u({kind:`success`});break;case`invalid`:case`expired`:case`used`:u({kind:t.status});break;case`store-failed`:m(``),u({kind:`store-failed`});break;case`error`:T(`Something went wrong while submitting. Check your connection and try again.`);break}},O=r.kind===`form`?h(r.request.expiresAt):null,k=r.kind===`form`&&O!==null&&O>E,A;if(r.kind===`loading`)A=(0,b.jsx)(C,{icon:(0,b.jsx)(s,{className:`h-5 w-5 animate-spin text-blue-600`,"aria-hidden":!0}),title:e(`credentialEntry.checkingTitle`),children:e(`credentialEntry.checkingBody`)});else if(r.kind===`success`)A=(0,b.jsx)(C,{icon:(0,b.jsx)(a,{className:`h-5 w-5 text-green-600`,"aria-hidden":!0}),title:e(`credentialEntry.savedTitle`),children:e(`credentialEntry.savedBody`)});else if(r.kind===`invalid`)A=(0,b.jsx)(C,{icon:(0,b.jsx)(i,{className:`h-5 w-5 text-red-600`,"aria-hidden":!0}),title:e(`credentialEntry.invalidTitle`),children:e(`credentialEntry.invalidBody`)});else if(r.kind===`expired`||r.kind===`form`&&!k)A=(0,b.jsx)(C,{icon:(0,b.jsx)(i,{className:`h-5 w-5 text-red-600`,"aria-hidden":!0}),title:e(`credentialEntry.expiredTitle`),children:e(`credentialEntry.expiredBody`)});else if(r.kind===`used`)A=(0,b.jsx)(C,{icon:(0,b.jsx)(i,{className:`h-5 w-5 text-red-600`,"aria-hidden":!0}),title:e(`credentialEntry.usedTitle`),children:e(`credentialEntry.usedBody`)});else if(r.kind===`store-failed`)A=(0,b.jsx)(C,{icon:(0,b.jsx)(i,{className:`h-5 w-5 text-red-600`,"aria-hidden":!0}),title:e(`credentialEntry.storeFailedTitle`),children:e(`credentialEntry.storeFailedBody`)});else if(r.kind===`error`)A=(0,b.jsx)(C,{icon:(0,b.jsx)(i,{className:`h-5 w-5 text-red-600`,"aria-hidden":!0}),title:e(`credentialEntry.errorTitle`),children:e(`credentialEntry.errorBody`)});else{let{request:t}=r,n=`${t.service}:${t.field}`,i=(O??0)-E;A=(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,b.jsx)(o,{className:`h-5 w-5 text-blue-600`,"aria-hidden":!0}),(0,b.jsx)(`h1`,{className:`text-xl font-semibold`,children:e(`credentialEntry.heading`)})]}),(0,b.jsxs)(`div`,{className:`rounded-md border border-[var(--border-subtle)] bg-[var(--background-muted)] p-4`,children:[(0,b.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-default)]`,children:t.label||n}),(0,b.jsxs)(`p`,{className:`mt-1 font-mono text-body-small-default text-[var(--content-tertiary)]`,children:[t.label?`${n} · `:``,e(`credentialEntry.oneTimeEntry`)]})]}),(0,b.jsx)(`p`,{className:`text-sm leading-6 text-[var(--content-secondary)]`,children:e(`credentialEntry.instructions`)}),(0,b.jsxs)(`form`,{className:`flex flex-col gap-3`,onSubmit:e=>void D(e),children:[(0,b.jsx)(l,{label:e(`credentialEntry.valueLabel`),type:`password`,value:p,onChange:e=>m(e.target.value),placeholder:e(`credentialEntry.valuePlaceholder`),autoComplete:`off`,autoFocus:!0,fullWidth:!0,errorText:w??void 0}),(0,b.jsx)(d,{type:`submit`,disabled:g||!p.trim(),leftIcon:g?(0,b.jsx)(s,{className:`animate-spin`,"aria-hidden":!0}):void 0,children:e(`credentialEntry.submit`)})]}),(0,b.jsx)(`p`,{className:`text-xs text-[var(--content-tertiary)]`,children:e(`credentialEntry.expiresIn`,{remaining:S(i),time:new Date(O??0).toLocaleTimeString()})})]})}return(0,b.jsx)(`main`,{className:`flex min-h-svh items-center justify-center bg-[var(--background-default)] px-6 py-10 text-[var(--content-primary)]`,children:(0,b.jsx)(`div`,{className:`w-full max-w-md`,children:(0,b.jsx)(c.Root,{bordered:!0,elevated:!0,padding:`lg`,children:(0,b.jsx)(`div`,{className:`flex flex-col gap-4`,children:A})})})})}export{w as CredentialEntryPage};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{Kn as t,O as n,Yn as r}from"./vendor-WUN87CSE.js";import{b as i,t as a}from"./react-DPM_L_aA.js";import{Br as o,Gn as s,J as c,Kn as l,on as u,pn as d,st as f,tn as p,tr as m,x as h,zr as g}from"./icons-CSdHOix6.js";import{$h as _,Mu as v,Sv as y,Sy as b,X_ as x,_y as S,ay as C,df as ee,dt as w,ft as T,fv as E,hy as D,ih as O,ip as te,iy as k,jg as A,ly as ne,ny as j,oy as M,rh as N,sy as P,t as F,ut as I,vv as re,vy as ie,wy as L,xi as R,xv as ae}from"./index-7XDiAJ-A.js";import{t as oe}from"./detail-card-BTciodin.js";import{t as z}from"./use-supports-credentials-settings-C6S_OHMP.js";var B=e(i(),1),V=`CREDENTIAL_IN_USE`;function se(e){if(!(e instanceof y)||e.code!==V)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 ce(e){return new Intl.ListFormat(E(),{style:`long`,type:`conjunction`}).format(e)}var H=a(),U=1500;function W(e){if(!e)return``;try{return new Date(e).toLocaleDateString(void 0,{year:`numeric`,month:`short`,day:`numeric`})}catch{return``}}function le({credential:e,assistantId:t,generatingLink:r,deleting:i,onGenerateLink:a,onDelete:o}){let{t:s}=n(`settings`),c=`${e.service}:${e.field}`,[l,u]=(0,B.useState)(!1),f=[e.alias?c:null,e.createdAt?s(`credentialRow.addedMetadata`,{date:W(e.createdAt)}):null].filter(e=>!!e);return(0,H.jsx)(b.Root,{children:(0,H.jsxs)(b.Body,{padding:`sm`,className:`flex items-center gap-4 px-4`,children:[(0,H.jsx)(d,{className:`h-5 w-5 shrink-0 text-[var(--content-secondary)]`,"aria-hidden":!0}),(0,H.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,H.jsx)(`p`,{className:`truncate text-title-small text-[var(--content-default)]`,children:e.alias||c}),(0,H.jsx)(`div`,{className:`mt-0.5 flex min-w-0 items-center`,children:(0,H.jsx)(G,{assistantId:t,credential:e})}),f.length>0&&(0,H.jsx)(`p`,{className:`mt-0.5 truncate font-mono text-body-medium-lighter text-[var(--content-tertiary)]`,children:f.join(` · `)})]}),(0,H.jsx)(`div`,{className:`shrink-0`,children:(0,H.jsx)(K,{name:c,open:l,onOpenChange:u,generatingLink:r,deleting:i,onGenerateLink:()=>{u(!1),a()},onDelete:()=>{u(!1),o()}})})]})})}function G({assistantId:e,credential:t}){let{t:r}=n(`settings`),[i,a]=(0,B.useState)(null),[c,u]=(0,B.useState)(!1),[d,f]=(0,B.useState)(!1),h=(0,B.useRef)(null),g=(0,B.useRef)(0),_=`${t.service}:${t.field}`,y=(0,B.useCallback)(()=>{g.current++,a(null),u(!1),f(!1),h.current&&=(clearTimeout(h.current),null)},[]);(0,B.useEffect)(()=>{y()},[t.updatedAt,y]);let b=(0,B.useCallback)(async()=>{let n=++g.current;u(!0);try{let{data:r}=await O({path:{assistant_id:e},body:{service:t.service,field:t.field},throwOnError:!0});g.current===n&&a(r.value)}catch{g.current===n&&C.error(r(`credentialRow.revealFailedToast`,{name:_}))}finally{g.current===n&&u(!1)}},[e,t.service,t.field,_,r]),x=(0,B.useCallback)(()=>{i!=null&&v(i,{errorMessage:r(`credentialRow.copyFailedToast`),onCopied:()=>{f(!0),h.current&&clearTimeout(h.current),h.current=setTimeout(()=>f(!1),U)}})},[i,r]),S=i!==null;return t.hasSecret?(0,H.jsxs)(`span`,{className:`inline-flex min-w-0 items-center gap-1.5 align-middle font-mono text-body-medium-lighter`,children:[(0,H.jsx)(`button`,{type:`button`,onClick:()=>S?y():void b(),disabled:c,"aria-label":r(S?`credentialRow.hideValueAriaLabel`:`credentialRow.revealValueAriaLabel`,{name:_}),title:r(S?`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-1 focus-visible:ring-[var(--border-focus)] ${S?`text-[var(--content-secondary)]`:`select-none text-[var(--content-tertiary)] blur-[3px] hover:blur-[2px]`}`,children:S?i:t.scrubbedValue}),c?(0,H.jsx)(p,{className:`h-3.5 w-3.5 shrink-0 animate-spin`,"aria-hidden":!0}):S?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`button`,{type:`button`,onClick:x,"aria-label":r(`credentialRow.copyValueAriaLabel`,{name:_}),title:r(`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-1 focus-visible:ring-[var(--border-focus)]`,children:d?(0,H.jsx)(o,{className:`h-3.5 w-3.5`,"aria-hidden":!0}):(0,H.jsx)(m,{className:`h-3.5 w-3.5`,"aria-hidden":!0})}),(0,H.jsx)(`button`,{type:`button`,onClick:y,"aria-label":r(`credentialRow.hideValueAriaLabel`,{name:_}),title:r(`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-1 focus-visible:ring-[var(--border-focus)]`,children:(0,H.jsx)(l,{className:`h-3.5 w-3.5`,"aria-hidden":!0})})]}):(0,H.jsx)(`button`,{type:`button`,onClick:()=>void b(),"aria-label":r(`credentialRow.revealValueAriaLabel`,{name:_}),title:r(`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-1 focus-visible:ring-[var(--border-focus)]`,children:(0,H.jsx)(s,{className:`h-3.5 w-3.5`,"aria-hidden":!0})})]}):(0,H.jsx)(`span`,{className:`min-w-0 truncate font-mono text-body-medium-lighter text-[var(--content-tertiary)]`,children:t.scrubbedValue})}function K({name:e,open:t,onOpenChange:r,generatingLink:i,deleting:a,onGenerateLink:o,onDelete:s}){let{t:c}=n(`settings`),l=R(),d=i||a,f=(0,H.jsx)(L,{variant:`outlined`,rightIcon:(0,H.jsx)(g,{}),"aria-haspopup":`menu`,"aria-expanded":t,"aria-label":c(`credentialRow.configureAriaLabel`,{name:e}),leftIcon:d?(0,H.jsx)(p,{className:`animate-spin`,"aria-hidden":!0}):void 0,children:c(`credentialRow.configureButton`)});return l?(0,H.jsxs)(M.Root,{open:t,onOpenChange:r,children:[(0,H.jsx)(M.Trigger,{asChild:!0,children:f}),(0,H.jsxs)(M.Content,{children:[(0,H.jsx)(M.Header,{children:(0,H.jsx)(M.Title,{children:e})}),(0,H.jsxs)(M.Body,{children:[(0,H.jsx)(j,{icon:i?p:u,label:c(`credentialRow.generateLinkLabel`),onSelect:()=>{d||o()}}),(0,H.jsx)(j,{icon:a?p:h,label:c(`credentialRow.deleteLabel`),onSelect:()=>{d||s()}})]})]})]}):(0,H.jsxs)(S.Root,{open:t,onOpenChange:r,children:[(0,H.jsx)(S.Trigger,{asChild:!0,children:f}),(0,H.jsxs)(S.Content,{align:`end`,sideOffset:4,role:`menu`,className:`w-56 overflow-hidden p-0`,children:[(0,H.jsx)(L,{type:`button`,role:`menuitem`,variant:`ghost`,onClick:o,disabled:d,className:`w-full justify-start rounded-none`,leftIcon:i?(0,H.jsx)(p,{className:`animate-spin`,"aria-hidden":!0}):(0,H.jsx)(u,{"aria-hidden":!0}),children:c(`credentialRow.generateLinkLabel`)}),(0,H.jsx)(L,{type:`button`,role:`menuitem`,variant:`dangerGhost`,onClick:s,disabled:d,className:`w-full justify-start rounded-none`,leftIcon:a?(0,H.jsx)(p,{className:`animate-spin`,"aria-hidden":!0}):(0,H.jsx)(h,{"aria-hidden":!0}),children:c(`credentialRow.deleteLabel`)})]})]})}function ue(e){return e>0xe8d4a51000?e:e*1e3}async function de(e,t){let{data:n,response:r}=await _.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 q=6;function J(){let e=T(),t=z(e),n=x.use.assistantId();return x.use.version()!==null&&n===e&&!t?(0,H.jsx)(F,{}):t?(0,H.jsx)(Y,{}):null}function Y(){let{t:e}=n(`settings`),i=T(),a=r(),o=te(),s=w(i),l=t({queryKey:s,queryFn:async()=>{let{data:e}=await N({path:{assistant_id:i},body:{},throwOnError:!0});return{credentials:e.credentials,managedCredentials:e.managedCredentials}},enabled:o,retry:ae}),h=(0,B.useMemo)(()=>l.data?.credentials??[],[l.data]),g=A.use.settingsDeveloperNav(),_=(0,B.useMemo)(()=>g?l.data?.managedCredentials??[]:[],[g,l.data]),[y,x]=(0,B.useState)(!1),[S,E]=(0,B.useState)(`own`),[O,j]=(0,B.useState)(``),[M,F]=(0,B.useState)(null),[R,z]=(0,B.useState)(null),[V,U]=(0,B.useState)(null),[W,G]=(0,B.useState)(null),K=ee({onSuccess:(t,n)=>{a.invalidateQueries({queryKey:s}),C.success(e(`credentialsPage.deleteSuccessToast`,{name:`${n.body.service}:${n.body.field}`}))},onError:(t,n)=>{let r=se(t),i=h.find(e=>e.service===n.body.service&&e.field===n.body.field);if(r&&i){z({credential:i,connections:r});return}re(t,{context:`credentials-delete`}),C.error(t.message||e(`credentialsPage.deleteErrorToast`))}}),J=K.isPending?`${K.variables?.body?.service}:${K.variables?.body?.field}`:null,Y=(0,B.useMemo)(()=>{let e=O.trim().toLowerCase();return e?h.filter(t=>[t.service,t.field,`${t.service}:${t.field}`,t.alias??``].join(` `).toLowerCase().includes(e)):h},[h,O]);(0,B.useEffect)(()=>{h.length<=q&&j(``)},[h.length]),(0,B.useEffect)(()=>{h.length===0&&_.length>0&&E(`managed`)},[h.length,_.length]);let X=(e,t)=>{K.mutate({path:{assistant_id:i},body:{service:e.service,field:e.field,...t?{force:!0}:{}}})},fe=()=>{let e=M;F(null),e&&X(e,!1)},pe=()=>{let e=R;z(null),e&&X(e.credential,!0)},me=async t=>{let n=`${t.service}:${t.field}`;G(n);try{let r=await de(i,{service:t.service,field:t.field,label:t.alias??void 0});r.ok&&r.url?U({name:n,url:r.url,expiresAt:r.expiresAt??null}):C.error(r.error||e(`credentialsPage.generateLinkFailedToast`))}catch(t){C.error(t instanceof Error?t.message:e(`credentialsPage.generateLinkFailedToast`))}finally{G(null)}},he=()=>{let t=V?.url;t&&v(t,{successMessage:e(`credentialsPage.linkCopiedToast`),errorMessage:e(`credentialsPage.linkCopyFailedToast`)})};if(l.isLoading)return(0,H.jsx)(`div`,{className:`flex items-center justify-center py-10`,children:(0,H.jsx)(p,{className:`h-5 w-5 animate-spin text-[var(--content-disabled)]`})});let Z=h.length>0,Q=_.length>0,ge=h.length>q,$=S===`managed`&&Q,_e=!$,ve=[{value:`own`,label:e(`credentialsPage.segmentYourOwn`)},{value:`managed`,label:e(`credentialsPage.segmentManaged`)}];return(0,H.jsxs)(`div`,{className:`space-y-4`,children:[(0,H.jsx)(oe,{title:e(`credentialsPage.title`),subtitle:e($?`credentialsPage.subtitleManaged`:`credentialsPage.subtitleOwn`),accessory:(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[Q?(0,H.jsx)(ne,{items:ve,value:S,onChange:E,ariaLabel:e(`credentialsPage.credentialSourceAriaLabel`)}):null,_e&&Z?(0,H.jsx)(L,{type:`button`,variant:`primary`,size:`regular`,onClick:()=>x(!0),leftIcon:(0,H.jsx)(f,{"aria-hidden":!0}),children:e(`credentialsPage.addButton`)}):null]}),children:$?(0,H.jsx)(`div`,{className:`space-y-2`,children:_.map(t=>(0,H.jsx)(b.Root,{children:(0,H.jsxs)(b.Body,{padding:`sm`,className:`flex items-center gap-4 px-4`,children:[(0,H.jsx)(d,{className:`h-5 w-5 shrink-0 text-[var(--content-secondary)]`,"aria-hidden":!0}),(0,H.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,H.jsx)(`p`,{className:`truncate text-title-small text-[var(--content-default)]`,children:t.provider}),(0,H.jsxs)(`p`,{className:`truncate text-body-medium-lighter text-[var(--content-tertiary)]`,children:[t.accountInfo??t.handle,` · `,t.status]})]}),(0,H.jsx)(ie,{tone:`neutral`,children:e(`credentialsPage.managedTag`)})]})},t.handle))}):(0,H.jsxs)(`div`,{className:`space-y-4`,children:[Z?(0,H.jsxs)(`div`,{className:`space-y-3`,children:[ge?(0,H.jsx)(D,{type:`text`,value:O,onChange:e=>j(e.target.value),placeholder:e(`credentialsPage.searchPlaceholder`),"aria-label":e(`credentialsPage.searchAriaLabel`),leftIcon:(0,H.jsx)(c,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),fullWidth:!0}):null,Y.length===0?(0,H.jsx)(`p`,{className:`px-1 py-2 text-body-medium-lighter text-[var(--content-tertiary)]`,children:e(`credentialsPage.noMatch`,{query:O.trim()})}):(0,H.jsx)(`div`,{className:`space-y-2`,children:Y.map(e=>{let t=`${e.service}:${e.field}`;return(0,H.jsx)(le,{credential:e,assistantId:i,generatingLink:W===t,deleting:J===t,onGenerateLink:()=>void me(e),onDelete:()=>F(e)},e.credentialId??t)})})]}):(0,H.jsxs)(`div`,{className:`flex flex-col items-center justify-center px-6 py-12 text-center`,children:[(0,H.jsx)(`div`,{className:`flex h-12 w-12 items-center justify-center rounded-full bg-[var(--surface-base)]`,children:(0,H.jsx)(d,{className:`h-6 w-6 text-[var(--content-disabled)] dark:text-[var(--content-default)]`,"aria-hidden":!0})}),(0,H.jsx)(`h3`,{className:`mt-4 text-title-small text-[var(--content-default)]`,children:e(`credentialsPage.emptyTitle`)}),(0,H.jsx)(`p`,{className:`mt-1 text-body-medium-lighter text-[var(--content-tertiary)]`,children:e(`credentialsPage.emptySubtitle`)})]}),Z?null:(0,H.jsx)(L,{type:`button`,variant:`outlined`,size:`compact`,onClick:()=>x(!0),className:`w-full border-dashed`,leftIcon:(0,H.jsx)(f,{"aria-hidden":!0}),children:e(`credentialsPage.addCredentialButton`)})]})}),(0,H.jsx)(k,{open:M!==null,title:e(`credentialsPage.deleteConfirmTitle`),message:M?e(`credentialsPage.deleteConfirmMessage`,{name:`${M.service}:${M.field}`}):``,confirmLabel:e(`credentialsPage.deleteConfirmLabel`),destructive:!0,onConfirm:fe,onCancel:()=>F(null)}),(0,H.jsx)(k,{open:R!==null,title:e(`credentialsPage.inUseTitle`),message:R?e(`credentialsPage.inUseMessage`,{count:R.connections.length,name:`${R.credential.service}:${R.credential.field}`,connections:ce(R.connections)}):``,confirmLabel:e(`credentialsPage.inUseConfirmLabel`),destructive:!0,onConfirm:pe,onCancel:()=>z(null)}),(0,H.jsx)(I,{open:y,onClose:()=>x(!1)}),(0,H.jsx)(P.Root,{open:V!==null,onOpenChange:e=>{e||U(null)},children:(0,H.jsxs)(P.Content,{size:`sm`,children:[(0,H.jsxs)(P.Header,{icon:u,children:[(0,H.jsx)(P.Title,{children:e(`credentialsPage.oneTimeLinkModalTitle`)}),(0,H.jsx)(P.Description,{children:V?e(`credentialsPage.oneTimeLinkModalDescription`,{name:V.name,expiresClause:V.expiresAt===null?``:e(`credentialsPage.oneTimeLinkModalExpiresClause`,{expiresAt:new Date(ue(V.expiresAt)).toLocaleString()})}):``})]}),(0,H.jsx)(P.Body,{children:(0,H.jsx)(D,{label:e(`credentialsPage.linkLabel`),type:`text`,readOnly:!0,value:V?.url??``,onFocus:e=>e.currentTarget.select(),fullWidth:!0})}),(0,H.jsx)(P.Footer,{children:(0,H.jsx)(L,{type:`button`,size:`compact`,onClick:he,leftIcon:(0,H.jsx)(m,{"aria-hidden":!0}),children:e(`credentialsPage.copyLinkButton`)})})]})})]})}export{J as CredentialsPage};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{
|
|
1
|
+
import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{O as t,nt as n}from"./vendor-WUN87CSE.js";import{b as r,t as i}from"./react-DPM_L_aA.js";import{t as a}from"./preview-error-DbAQP8oG.js";import{Cy as o,Xn as s}from"./index-7XDiAJ-A.js";var c=e(r(),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
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
3
|
`){if(l===`\r`&&e[c+1]===`
|
|
4
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=i(),_=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:r}){let{t:i}=t(`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)(a,{filename:r});if(p===null)return(0,g.jsx)(s,{});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)(o,{as:`span`,variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,children:i(`csvPreview.emptyFile`)})}):(0,g.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col`,children:[(0,g.jsx)(n,{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)(o,{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?i(`csvPreview.summaryTruncated`,{rows:p.rows.length,columns:x}):i(`csvPreview.summary`,{rows:p.rows.length,columns:x})})]})}export{b as CsvPreview};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{b as t,f as n}from"./react-DPM_L_aA.js";import{uv as r}from"./index-7XDiAJ-A.js";var i=e(t(),1);function a(){let e=n();return(0,i.useEffect)(()=>{e(r.settings.general,{replace:!0})},[e]),null}export{a as DangerZoneRedirectPage};
|