@vellumai/web 0.11.6-staging.1 → 0.11.6-staging.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{Trans-aGiJoe8I.js → Trans-v2rRKTPL.js} +1 -1
- package/dist/assets/{about-page-ZnkPsf0U.js → about-page-Dw0Uwev9.js} +1 -1
- package/dist/assets/{account-page-CdyM1iwP.js → account-page-DlvLIypA.js} +1 -1
- package/dist/assets/{acp-run-detail-panel-zRE7-vdm.js → acp-run-detail-panel-Iio-GZu9.js} +1 -1
- package/dist/assets/{activity-steps-panel-nbxTKOVk.js → activity-steps-panel-PJzUgOtB.js} +1 -1
- package/dist/assets/{add-credential-modal-BATaEuxb.js → add-credential-modal-D7srPAPB.js} +1 -1
- package/dist/assets/{add-credits-modal-DooRKUbe.js → add-credits-modal-DeNURe8K.js} +1 -1
- package/dist/assets/{ai-page-DPbjFKx7.js → ai-page-DD80M99s.js} +1 -1
- package/dist/assets/{android-billing-handoff-Ds3DxpCc.js → android-billing-handoff-Bh58jm76.js} +1 -1
- package/dist/assets/{api-key-screen-99woWR1P.js → api-key-screen-z0y8OmyR.js} +1 -1
- package/dist/assets/{app-card-B4Qtpfzx.js → app-card-BhEYWzKz.js} +1 -1
- package/dist/assets/{assistant-status-panel-Des4OppH.js → assistant-status-panel-DVk8iz06.js} +1 -1
- package/dist/assets/{auth-store-BS_AckaH.js → auth-store-CjmqULlA.js} +1 -1
- package/dist/assets/{auth-welcome-screen-D1S5M2Kh.js → auth-welcome-screen-CZqGjUcN.js} +1 -1
- package/dist/assets/{avatar-random-yqbTVEOu.js → avatar-random-BnLwN7Id.js} +1 -1
- package/dist/assets/{background-task-detail-panel-BLiP5JQ4.js → background-task-detail-panel-C45_k5DQ.js} +1 -1
- package/dist/assets/{billing-page-DOEkieS2.js → billing-page-CKwUJ6q-.js} +1 -1
- package/dist/assets/{bookmarks-page-BFaVU7b4.js → bookmarks-page-Dx3rKSni.js} +1 -1
- package/dist/assets/{browser-FhK1jedq.js → browser-BEhg-q3w.js} +1 -1
- package/dist/assets/{build-state-D823nCLC.js → build-state-B8LOllfu.js} +1 -1
- package/dist/assets/{bundle-confirm-page-DZnoSjc9.js → bundle-confirm-page-6fk5bxhm.js} +1 -1
- package/dist/assets/{channels-page-route-_rDah3g9.js → channels-page-route-oOKo0PJl.js} +1 -1
- package/dist/assets/{chat-BdKZmBwG.js → chat-CBvs4_4y.js} +1 -1
- package/dist/assets/{chat-avatar-CHLuqAEg.js → chat-avatar-UYWpN1Us.js} +1 -1
- package/dist/assets/{chat-markdown-message-_z6qxnqG.js → chat-markdown-message-u0xAGkrJ.js} +1 -1
- package/dist/assets/{checkout-continuation-DlHd_nON.js → checkout-continuation-BWg-BcSF.js} +1 -1
- package/dist/assets/{checkout-page-Ch_IEvCI.js → checkout-page-CbYIkUzX.js} +1 -1
- package/dist/assets/checkout-return-target-D-ski0RP.js +1 -0
- package/dist/assets/{client-perf-CLY3_q_D.js → client-perf-HISWGXqe.js} +1 -1
- package/dist/assets/{command-palette-k80zjQSl.js → command-palette-H8-iGtrr.js} +1 -1
- package/dist/assets/{command-palette-window-page-DqlKENK8.js → command-palette-window-page-BhTJGf5Z.js} +1 -1
- package/dist/assets/{community-page-nbMgxomH.js → community-page-D5Arbqn5.js} +1 -1
- package/dist/assets/{companion-surface-page-Ch88Na9Y.js → companion-surface-page-ocmWMzcw.js} +1 -1
- package/dist/assets/{composer-settings-LrZeVSAJ.js → composer-settings-C-0rpzHA.js} +1 -1
- package/dist/assets/{connect-page-DASZ4VQs.js → connect-page-mZ1hzLhX.js} +1 -1
- package/dist/assets/consent-CSU4nfO3.js +1 -0
- package/dist/assets/{consent-controls-BPQTRctP.js → consent-controls-BO5Fuj76.js} +1 -1
- package/dist/assets/{contacts-gateway-MKSgXEZy.js → contacts-gateway-DoiRPJZq.js} +1 -1
- package/dist/assets/{contacts-page-route-BnRkVN9h.js → contacts-page-route-BsBSdQ8v.js} +1 -1
- package/dist/assets/{conversation-cache-Cso4_Bep.js → conversation-cache-DOQdWaTg.js} +1 -1
- package/dist/assets/{conversation-navigation-CmHzY4Xq.js → conversation-navigation-116d0b9Q.js} +1 -1
- package/dist/assets/{conversation-queries-BF8k8u33.js → conversation-queries-tt9gZId5.js} +1 -1
- package/dist/assets/{conversation-selection-ISP-GEpt.js → conversation-selection-DKq2AZf8.js} +1 -1
- package/dist/assets/{copy-to-clipboard-B078_jza.js → copy-to-clipboard-CIyU3zmr.js} +1 -1
- package/dist/assets/{credential-entry-page-BPFHyo8L.js → credential-entry-page-Dd7upL78.js} +1 -1
- package/dist/assets/{credentials-page-DeWI9q-0.js → credentials-page-BVljsi9m.js} +1 -1
- package/dist/assets/{csv-preview-CqWvdRkQ.js → csv-preview-CeNy614y.js} +1 -1
- package/dist/assets/debug-page-DpV9vuot.js +4 -0
- package/dist/assets/{deploy-dialogs-6g154vY-.js → deploy-dialogs-TTQiNB6y.js} +1 -1
- package/dist/assets/{developer-page-Dc5sQTEA.js → developer-page-DBUNokt3.js} +1 -1
- package/dist/assets/{diagnostics-CDY7BQoh.js → diagnostics-Bi4k4B8U.js} +1 -1
- package/dist/assets/{dictation-overlay-page-DSdKbYyc.js → dictation-overlay-page-BmayMkea.js} +1 -1
- package/dist/assets/{doctor-handoff-store-DQO1EjVy.js → doctor-handoff-store-Do2X2LvI.js} +1 -1
- package/dist/assets/{document-viewer-container-BtW95bF_.js → document-viewer-container-CrbF9Z_4.js} +2 -2
- package/dist/assets/{document-viewer-page-UdVOXLpf.js → document-viewer-page-DqN6k_UB.js} +1 -1
- package/dist/assets/effective-timezone-BZrvS5yC.js +1 -0
- package/dist/assets/{emails-page-UnMnEidw.js → emails-page-BSDs_cnf.js} +1 -1
- package/dist/assets/{external-anchor-Bkm-fDSc.js → external-anchor-DKrqdxff.js} +1 -1
- package/dist/assets/{feed-item-status-actions-BHvscGQu.js → feed-item-status-actions-CCNKonlC.js} +1 -1
- package/dist/assets/{file-editor-C9OAvqwA.js → file-editor-Bn3fjyeW.js} +1 -1
- package/dist/assets/{file-markdown-B2klOAQg.js → file-markdown-8-h2vx0G.js} +1 -1
- package/dist/assets/{first-run-scope-DJpBBdJm.js → first-run-scope-lw_VDLUA.js} +1 -1
- package/dist/assets/{format-usd-RiDwg_QI.js → format-usd-B9okvVIq.js} +1 -1
- package/dist/assets/{funnel-events-BtXh2plQ.js → funnel-events-D-InjbTX.js} +1 -1
- package/dist/assets/{general-page-DN_w4TPU.js → general-page-DppPvamB.js} +1 -1
- package/dist/assets/{get-memory-stats-O7uGD6O3.js → get-memory-stats-BhVFtDQg.js} +1 -1
- package/dist/assets/{haptics-DvIfvjqC.js → haptics-DRyt58c5.js} +1 -1
- package/dist/assets/{hatching-screen-2q8r9puV.js → hatching-screen-1ZOPcV42.js} +1 -1
- package/dist/assets/{home-page-route-c2TGfb6a.js → home-page-route-D1QbN6M5.js} +1 -1
- package/dist/assets/{hosting-screen-CbyH6Atk.js → hosting-screen-C-uvieVy.js} +1 -1
- package/dist/assets/{i18n-DmTrjH8B.js → i18n-BDfnKs41.js} +1 -1
- package/dist/assets/{identity-KKhytdTo.js → identity-BueQJAR8.js} +1 -1
- package/dist/assets/{identity-page-route-D-3xzuIC.js → identity-page-route-BOQd6ko9.js} +1 -1
- package/dist/assets/{index-mFpsjcJ6.js → index-CfSEZ8JN.js} +1 -1
- package/dist/assets/{ingest-CU_Li3h3.js → ingest-BD3GYGpk.js} +1 -1
- package/dist/assets/{inspect-page-DKPQ27do.js → inspect-page-CGsWZzun.js} +1 -1
- package/dist/assets/{integrations-page-Bq0sWlli.js → integrations-page-D5H6XJIt.js} +1 -1
- package/dist/assets/{intelligence-layout-f5wyMaIl.js → intelligence-layout-_FM08eqn.js} +1 -1
- package/dist/assets/{invalidate-memory-queries-Br8jTINF.js → invalidate-memory-queries-DqdhPLUe.js} +1 -1
- package/dist/assets/{latest-assistant-text-Dced2okE.js → latest-assistant-text-BeS_23nt.js} +1 -1
- package/dist/assets/{library-detail-page-BOc9XP2T.js → library-detail-page-DLtBHLA8.js} +1 -1
- package/dist/assets/{library-page-Cu_cukyn.js → library-page-YT1vECkY.js} +1 -1
- package/dist/assets/{local-runtime-upgrade-w4ASPcze.js → local-runtime-upgrade-8SxM3rIp.js} +1 -1
- package/dist/assets/{login-flow-DsNuV6DN.js → login-flow-B8yCe4pl.js} +1 -1
- package/dist/assets/{login-page-DpsjjRMr.js → login-page-awRRidw5.js} +1 -1
- package/dist/assets/{logout-page-Cmz7sbQo.js → logout-page-nRjDnT8Z.js} +1 -1
- package/dist/assets/{logs-layout-C1Fe6XzX.js → logs-layout-D8c2JBmw.js} +1 -1
- package/dist/assets/{markdown-preview-DjFhlkUi.js → markdown-preview-BkK4kDdG.js} +1 -1
- package/dist/assets/{media-preview-D4MG8kYt.js → media-preview-lY5oZbAH.js} +1 -1
- package/dist/assets/{memory-page-route-DRbOMySi.js → memory-page-route-j0Dpopb-.js} +1 -1
- package/dist/assets/{memory-router-playground-page-BdMCdqle.js → memory-router-playground-page-BYD7TF11.js} +1 -1
- package/dist/assets/{message-files-panel-Fxs-rmt5.js → message-files-panel-aRAyF3Ir.js} +1 -1
- package/dist/assets/{messages-D29Jnu8v.js → messages-CCAr4He2.js} +1 -1
- package/dist/assets/native-anchor-C9EuQRVe.js +1 -0
- package/dist/assets/{native-biometric-B2BCv4UL.js → native-biometric-ntyxdDLY.js} +1 -1
- package/dist/assets/{navigation-resolver-CkRFZvMW.js → navigation-resolver-dBlKf1YD.js} +1 -1
- package/dist/assets/{not-found-D0BBLotb.js → not-found-DWwWs5dL.js} +1 -1
- package/dist/assets/{notifications-28pbXqp8.js → notifications-CdfIUmqd.js} +1 -1
- package/dist/assets/{notifications-page-KaEKT5jM.js → notifications-page-DqdfKth8.js} +1 -1
- package/dist/assets/{oauth-complete-page-C6qCszaI.js → oauth-complete-page-O3DSqE_R.js} +1 -1
- package/dist/assets/{oauth-popup-complete-page-BLcrBAUt.js → oauth-popup-complete-page-Bax7Z0q9.js} +1 -1
- package/dist/assets/{onboarding-store-CvgTQIIF.js → onboarding-store-BsVgs3Ut.js} +1 -1
- package/dist/assets/{open-workspace-file-BTTUgCt1.js → open-workspace-file-Cw5RJCCD.js} +2 -2
- package/dist/assets/{operational-status-BZXW6I_s.js → operational-status-DpG5GDPe.js} +1 -1
- package/dist/assets/{pairing-page-CqEOn5rN.js → pairing-page-BAjVwQx2.js} +1 -1
- package/dist/assets/{pdf-file-preview-uKdLOqN0.js → pdf-file-preview-DOGYGRl6.js} +1 -1
- package/dist/assets/{personality-page-2sZ6-R9f.js → personality-page-DHXw49da.js} +1 -1
- package/dist/assets/{plans-page-oZu0oBkq.js → plans-page-CEKWL3n4.js} +1 -1
- package/dist/assets/{platform-detection-BBpg4tha.js → platform-detection-BVSM8PRh.js} +1 -1
- package/dist/assets/{platform-login-notice-CWwlTxPN.js → platform-login-notice-Dq3m5QWH.js} +1 -1
- package/dist/assets/{platform-loopback-page-C9OvnmnD.js → platform-loopback-page-pQ4fn0Nn.js} +1 -1
- package/dist/assets/{prefs-BaoT5tM9.js → prefs-CXvngLdE.js} +1 -1
- package/dist/assets/{preview-skeleton-YDIO2gF1.js → preview-skeleton-DA_Jj0Wc.js} +1 -1
- package/dist/assets/{privacy-page-Dvb2GtB0.js → privacy-page-BMzUBvaJ.js} +1 -1
- package/dist/assets/{privacy-screen-Bqv76Nq2.js → privacy-screen-Dy6bC1QU.js} +1 -1
- package/dist/assets/{provider-callback-page-Ce2jTkvh.js → provider-callback-page-DI_iDUZB.js} +1 -1
- package/dist/assets/{provider-key-CMNgoPPW.js → provider-key-CXIl3HXm.js} +1 -1
- package/dist/assets/{provider-signup-page-D7KPQDTx.js → provider-signup-page-CEZYja-E.js} +1 -1
- package/dist/assets/{push-registration-Def6tMwq.js → push-registration-DSgQ3jMG.js} +1 -1
- package/dist/assets/{quick-input-page-D3EbU-FY.js → quick-input-page-DCkaYfUc.js} +1 -1
- package/dist/assets/{remove-from-device-dialog-BbJRKUXj.js → remove-from-device-dialog-CYJV-5IC.js} +1 -1
- package/dist/assets/{research-facts-xwTtzOsw.js → research-facts-DKRZaLQC.js} +1 -1
- package/dist/assets/{research-mock-page-C-vd6Js2.js → research-mock-page-Y0Hec2hX.js} +1 -1
- package/dist/assets/{research-onboarding-route-CNAu2dNs.js → research-onboarding-route-CREwj2sS.js} +1 -1
- package/dist/assets/{research-results-view-Jw7TJTaZ.js → research-results-view-CBvWhXB8.js} +1 -1
- package/dist/assets/{retire-confirm-dialog-RkS3NvLp.js → retire-confirm-dialog-B3ZUAlmZ.js} +1 -1
- package/dist/assets/{review-terms-screen-BWgeEqds.js → review-terms-screen-7OU_S96U.js} +1 -1
- package/dist/assets/{routes-eT5q78xz.js → routes-DvpgDVCJ.js} +6 -6
- package/dist/assets/{runtime-upgrade-banner-z2o_sHZe.js → runtime-upgrade-banner-lbVqs7Te.js} +1 -1
- package/dist/assets/{sandbox-bridge-lNdpH-lI.js → sandbox-bridge-BkKOlHRs.js} +1 -1
- package/dist/assets/{schedules-qIwqn-CD.js → schedules-5MJ4hhjn.js} +1 -1
- package/dist/assets/{schedules-CKSTyNa5.js → schedules-DCr5HsxY.js} +1 -1
- package/dist/assets/{schedules-page-DW7XjHcT.js → schedules-page-DRcO3zq3.js} +1 -1
- package/dist/assets/{section-membership-Bdo3i5eu.js → section-membership-CyAaLX8V.js} +1 -1
- package/dist/assets/{select-assistant-screen-k386tZII.js → select-assistant-screen-DJHzqmSj.js} +1 -1
- package/dist/assets/{self-hosted-servers-BDgPxWVB.js → self-hosted-servers-DTLMKzVl.js} +1 -1
- package/dist/assets/settings-CcU8vWuM.js +3 -0
- package/dist/assets/settings-Ce2mFlFl.js +3 -0
- package/dist/assets/{settings-layout-Y_R4_NQY.js → settings-layout-Brb4OeZD.js} +1 -1
- package/dist/assets/{settings-navigation-BoSIdnWk.js → settings-navigation-eZSfIWFH.js} +1 -1
- package/dist/assets/{share-feedback-modal-BEya0Yqs.js → share-feedback-modal-DuppDLIt.js} +1 -1
- package/dist/assets/{sidebar-tree-CdM-vr-W.js → sidebar-tree-hjulk9XJ.js} +1 -1
- package/dist/assets/{signup-page-DmElIotT.js → signup-page-pBgqV9xZ.js} +1 -1
- package/dist/assets/{site-favicon-BedPYfUd.js → site-favicon-zvd-HIsY.js} +1 -1
- package/dist/assets/{skill-detail-page-DyHeyxn6.js → skill-detail-page-CB5IciZz.js} +1 -1
- package/dist/assets/{skill-detail-panel-HctOj1h8.js → skill-detail-panel-CxyyNg-F.js} +1 -1
- package/dist/assets/{skills-v0VHK5y6.js → skills-DGBAogub.js} +1 -1
- package/dist/assets/{sound-manager-DYTGIzjx.js → sound-manager-BCNOVpEJ.js} +1 -1
- package/dist/assets/{sounds-page-BtxsdG4G.js → sounds-page-B9l4ortG.js} +1 -1
- package/dist/assets/{start-screen-C7dTCePQ.js → start-screen-BXejiAHk.js} +1 -1
- package/dist/assets/{status-badge-pill-Baw4Cqvw.js → status-badge-pill-B4knVe4X.js} +1 -1
- package/dist/assets/{stt-language-picker-modal-BPtrOwPj.js → stt-language-picker-modal-DoiPypZS.js} +1 -1
- package/dist/assets/{subagent-detail-panel--dEqnU_m.js → subagent-detail-panel-Dgs09-aR.js} +1 -1
- package/dist/assets/{subagent-store-Dl-mIb0t.js → subagent-store-B3w3yLSH.js} +1 -1
- package/dist/assets/{superpowers-page-DfnfxMoY.js → superpowers-page-DqtKtLl_.js} +1 -1
- package/dist/assets/{swipe-action-reveal-DgsLJylW.js → swipe-action-reveal-rwiWQgU_.js} +1 -1
- package/dist/assets/{system-events-page-CQz3l7aH.js → system-events-page-DVQ_Igth.js} +1 -1
- package/dist/assets/{telegram-setup-wizard-CUbUmp6W.js → telegram-setup-wizard-CYy9zEtc.js} +1 -1
- package/dist/assets/{text-preview-DwBFvH3m.js → text-preview-DG1TgtrX.js} +1 -1
- package/dist/assets/{theme-preferences-DIV1b2y-.js → theme-preferences-U-DK54R3.js} +1 -1
- package/dist/assets/{theme-stage-page-CGtNZKJ0.js → theme-stage-page-DncswvCE.js} +1 -1
- package/dist/assets/{threshold-presets-d4-WHyc0.js → threshold-presets-XHj6N666.js} +1 -1
- package/dist/assets/{tiptap-document-editor-CRVXDMaT.js → tiptap-document-editor-CeH50SNN.js} +1 -1
- package/dist/assets/{tool-detail-panel-DZ84LNQz.js → tool-detail-panel-CjI_rLvP.js} +1 -1
- package/dist/assets/{transcript-message-body-shared-BWxl7fY-.js → transcript-message-body-shared-DAn7Y7Ac.js} +1 -1
- package/dist/assets/{trust-rules-api-DiTTv8Xh.js → trust-rules-api-CpP3h7B2.js} +1 -1
- package/dist/assets/{upgrade-cancel-page-Ea5Sph4r.js → upgrade-cancel-page-Rayv5lL4.js} +1 -1
- package/dist/assets/{upgrade-success-page-BnRSiTpn.js → upgrade-success-page-BTYOlmt5.js} +1 -1
- package/dist/assets/{use-app-theme-C1S3mjC9.js → use-app-theme-CsfqodmR.js} +1 -1
- package/dist/assets/{use-assistant-avatar-BJgMIWOW.js → use-assistant-avatar-CT8Pozwx.js} +1 -1
- package/dist/assets/{use-assistant-capability-DMm0QlXl.js → use-assistant-capability-D_tZY-cd.js} +1 -1
- package/dist/assets/{use-assistant-identity-details-CxMeMMyX.js → use-assistant-identity-details-BqNPVmfH.js} +1 -1
- package/dist/assets/{use-attachment-preview-CBeM5b0S.js → use-attachment-preview-DuaQSNrO.js} +1 -1
- package/dist/assets/{use-attachment-squares-C-bgyqWz.js → use-attachment-squares-Cbx4ZiOb.js} +1 -1
- package/dist/assets/{use-bookmarks-FrEqnEhr.js → use-bookmarks-BZRDuTXA.js} +1 -1
- package/dist/assets/{use-checkout-dismiss-refresh-DFe-xI7y.js → use-checkout-dismiss-refresh-D9yXOKh9.js} +1 -1
- package/dist/assets/{use-command-palette-sections-PE4jpcjb.js → use-command-palette-sections-BUETm__K.js} +1 -1
- package/dist/assets/{use-copy-to-clipboard-81gBKimW.js → use-copy-to-clipboard-IWl9ygbI.js} +1 -1
- package/dist/assets/{use-edge-swipe-DKTO3Cv4.js → use-edge-swipe-CAV3Gs1-.js} +1 -1
- package/dist/assets/{use-edge-swipe-back-CyCOlcdD.js → use-edge-swipe-back-BgZR4YZn.js} +2 -2
- package/dist/assets/{use-edit-app-BhH9qfzH.js → use-edit-app-BzvFD5ew.js} +1 -1
- package/dist/assets/{use-effective-timezone-fVManBSH.js → use-effective-timezone-DByqidDL.js} +1 -1
- package/dist/assets/{use-invite-link-dialog-BN8Wpu4s.js → use-invite-link-dialog-DRNVCYW4.js} +1 -1
- package/dist/assets/{use-is-org-ready-BKgGDOej.js → use-is-org-ready-TE5xIhFU.js} +1 -1
- package/dist/assets/{use-onboarding-login-5Y1lz16z.js → use-onboarding-login-Q4gvH8Wj.js} +1 -1
- package/dist/assets/{use-platform-assistant-id-ozCBrdTi.js → use-platform-assistant-id-8TlYUj7-.js} +1 -1
- package/dist/assets/{use-platform-gate-BGciIhS7.js → use-platform-gate-PHzS1_gQ.js} +1 -1
- package/dist/assets/{use-return-to-short-circuit-D44uvNf1.js → use-return-to-short-circuit-BVG-rqwe.js} +1 -1
- package/dist/assets/{use-save-twilio-credentials-DKSM1mRw.js → use-save-twilio-credentials-CLM74CvJ.js} +1 -1
- package/dist/assets/{use-side-list-room-C6Z5u28A.js → use-side-list-room-Bq836e0c.js} +1 -1
- package/dist/assets/{use-skill-actions-BVDaCf6_.js → use-skill-actions-l1FxBNiT.js} +1 -1
- package/dist/assets/{use-skill-detail-files-DG06yE_k.js → use-skill-detail-files-CBPqC-XL.js} +1 -1
- package/dist/assets/{use-sticky-profiles-BKE8FjEv.js → use-sticky-profiles-C4JFSief.js} +1 -1
- package/dist/assets/{use-stt-language-selection-Gm1f-ivf.js → use-stt-language-selection-CGDAHN7_.js} +1 -1
- package/dist/assets/{use-subagent-card-data-Dy4-aRfP.js → use-subagent-card-data-dOGbE8zd.js} +1 -1
- package/dist/assets/{use-swipe-horizontal-DZyIbuDo.js → use-swipe-horizontal-Bad1Uh4M.js} +1 -1
- package/dist/assets/use-transcript-message-by-id-D684pai6.js +1 -0
- package/dist/assets/{use-transcript-messages-BB1rO2uq.js → use-transcript-messages-DIEDHw01.js} +1 -1
- package/dist/assets/{use-voice-sample-preview-Bv8Lpoi6.js → use-voice-sample-preview-BBqCdK2Z.js} +1 -1
- package/dist/assets/{viewer-store-BSA96yyy.js → viewer-store-Dgua7F-U.js} +1 -1
- package/dist/assets/{voice-page-8wEr3tXP.js → voice-page-BYDJEThX.js} +1 -1
- package/dist/assets/{voice-providers-note-DJFMA5E4.js → voice-providers-note-DpSF3-Ma.js} +1 -1
- package/dist/assets/{weather-forecast-display-BdKore4p.js → weather-forecast-display-MET3csCf.js} +1 -1
- package/dist/assets/{welcome-screen-BCDDdfJj.js → welcome-screen-Dn7IdxeX.js} +1 -1
- package/dist/assets/{workflow-detail-panel-DPJZRzuN.js → workflow-detail-panel-BUuxWGNn.js} +1 -1
- package/dist/assets/{workflow-store-JtZ4LqGp.js → workflow-store-CA048OMm.js} +1 -1
- package/dist/assets/{workspace-page-BhDvGikQ.js → workspace-page-CcIru1nv.js} +1 -1
- package/dist/index.html +93 -93
- package/package.json +1 -1
- package/dist/assets/checkout-return-target-B_TPDEoT.js +0 -1
- package/dist/assets/consent-BLSEyXFF.js +0 -1
- package/dist/assets/debug-page-BbaKlAFm.js +0 -4
- package/dist/assets/effective-timezone-CxitKH1O.js +0 -1
- package/dist/assets/native-anchor-CKzrSOXb.js +0 -1
- package/dist/assets/settings-BIPnhjK7.js +0 -3
- package/dist/assets/settings-Cm4c97nK.js +0 -3
- package/dist/assets/use-transcript-message-by-id-J-Bidsvj.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{c as t,l as n,v as r}from"./i18n-DmTrjH8B.js";import{t as i}from"./react-DJZBPgpf.js";import{t as a}from"./button-B1kEAcLt.js";import{t as o}from"./jsx-runtime-COOF1INC.js";import{t as s}from"./createLucideIcon-CMfEC_aW.js";import{t as c}from"./checkbox--DYEubRE.js";import{t as l}from"./triangle-alert-B6J57Xfo.js";import{t as u}from"./notice-BHeYlKvv.js";import"./src-BKET5Cno.js";import{t as d}from"./modal-_49mDK_d.js";import{c as f,r as p,s as m,t as h}from"./local-settings-D9SNRv4p.js";import{f as g,l as _}from"./use-assistant-avatar-BJgMIWOW.js";import{i as v,t as y}from"./dist-Cr8OiiXj.js";import{a as b,i as x}from"./typed-storage-Bw4gW_Pk.js";import{n as S,r as C,t as w}from"./theme-preferences-DIV1b2y-.js";import{t as T}from"./client-feature-flag-store-BmjgGl9P.js";import{t as E}from"./use-bus-subscription-DfxTm1-Q.js";import{o as ee}from"./funnel-events-BtXh2plQ.js";var D=s(`package`,[[`path`,{d:`M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z`,key:`1a0edw`}],[`path`,{d:`M12 22V12`,key:`d0xqtd`}],[`polyline`,{points:`3.29 7 12 12 20.71 7`,key:`ousv84`}],[`path`,{d:`m7.5 4.27 9 5.15`,key:`1c824w`}]]),O=e(i(),1),k=`NativeLaunchScreen`,A=v(k);function j(e){return e===`velvet`?`dark`:e}function M(){return y.isNativePlatform()&&y.getPlatform()===`android`&&y.isPluginAvailable(k)}async function te(e){if(M())try{await A.ready({theme:j(e)})}catch(e){n(e,{context:`native_launch_screen_ready`,bestEffort:!0})}}async function ne(e){if(M())try{await A.setTheme({theme:j(e)})}catch(e){n(e,{context:`native_launch_screen_theme_sync`,bestEffort:!0})}}function re(){return T.use.stringFlags().proactiveTips??`off`}function ie(e){return e===`on`}function N(e){return e===void 0||typeof e==`number`&&Number.isFinite(e)}function ae(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e;return typeof t.shownCount==`number`&&Number.isFinite(t.shownCount)&&N(t.dismissedAt)&&N(t.lastShownAt)}function P(e){let t=JSON.parse(e);if(!t||typeof t!=`object`||Array.isArray(t))return null;let n={};for(let[e,r]of Object.entries(t))ae(r)&&(n[e]=r);return n}function oe(e){let t=Number(e);return Number.isFinite(t)&&t>=0?t:null}var F=x({key:`device:tips:records`,scope:`device`,parse:P,serialize:JSON.stringify,fallback:{}}),se=x({key:`device:tips:enabled`,scope:`device`,parse:b,serialize:String,fallback:!0}),I=x({key:`device:tips:first_seen_at`,scope:`device`,parse:oe,serialize:String,fallback:0});function ce(){I.load()===0&&I.save(Date.now())}function le(e,t){let n=F.load(),r=n[e];F.save({...n,[e]:{...r,lastShownAt:t,shownCount:(r?.shownCount??0)+1}})}function ue(e,t){let n=F.load(),r=n[e];F.save({...n,[e]:{...r,dismissedAt:t,shownCount:r?.shownCount??0}})}var de=`proactive-tips-v1`,fe={impression:0,learn_more:1,dismiss:2,dont_show_again:3,click:4,completion:5};function pe(e,t,n){ee({stepName:t,stepIndex:fe[t]},{funnelVersion:de,screen:e,variant:n})}function L(){let e=T.use.velvet(),[n,r]=(0,O.useState)(()=>S({velvetEnabled:e}));return(0,O.useEffect)(()=>{r(S({velvetEnabled:e}))},[e]),(0,O.useEffect)(()=>t(`theme`,()=>{r(S({velvetEnabled:e}))}),[e]),(0,O.useEffect)(()=>{w(n)},[n]),{theme:n,setThemePreference:e=>{r(e),C(e),ne(e)}}}var R=6e4;function z(e){return!!(e?.enabled&&e.effectivelyLocked)}function B(e){return z(e)?e.acknowledged&&!e.overrideActive:!1}function V(e){return!!(e&&z(e)&&!e.acknowledged&&!e.overrideActive)}function me(e){return!!(e?.enabled&&e.state===`warning`)}function he(e){return V(e)?`acknowledgement-required`:B(e)?`cleanup`:me(e)?`warning`:`inactive`}function ge({monitorEnabled:e,hasResolvedStatus:t,status:n}){return!e||!t?null:V(n)?`acknowledgement-required`:null}function _e(e){return`Storage cleanup mode must be acknowledged before sending messages.`}function H(e,t){return e===t?!0:!e||!t?!1:e.enabled===t.enabled&&e.state===t.state&&e.locked===t.locked&&e.acknowledged===t.acknowledged&&e.overrideActive===t.overrideActive&&e.effectivelyLocked===t.effectivelyLocked&&e.lockId===t.lockId&&e.usagePercent===t.usagePercent&&e.thresholdPercent===t.thresholdPercent&&e.path===t.path&&e.lastCheckedAt===t.lastCheckedAt&&e.error===t.error&&e.blockedCapabilities.length===t.blockedCapabilities.length&&e.blockedCapabilities.every((e,n)=>e===t.blockedCapabilities[n])}function ve(e){return e?.usagePercent==null||!Number.isFinite(e.usagePercent)?`Unknown`:`${Math.round(e.usagePercent)}%`}var U={assistantId:null,status:null,hasResolvedStatus:!1};function W({assistantId:e,enabled:t,refreshKey:n,cadenceMs:r,fetchStatus:i,areStatusesEqual:a,deriveMode:o,extractSseStatus:s,onStatusEvent:c}){let[l,u]=(0,O.useState)(U),d=(0,O.useRef)(e),f=(0,O.useRef)(t),p=(0,O.useRef)(0),m=(0,O.useRef)(0),h=(0,O.useRef)(i),g=(0,O.useRef)(a),_=(0,O.useRef)(c);(0,O.useLayoutEffect)(()=>{d.current=e,f.current=t,h.current=i,g.current=a,_.current=c}),(0,O.useEffect)(()=>{p.current+=1,u(U)},[e,t]);let v=(0,O.useCallback)(()=>(p.current+=1,p.current),[]),y=(0,O.useCallback)((e,t)=>f.current&&d.current===e&&p.current===t,[]),b=(0,O.useCallback)((e,t,n,r)=>{y(e,r)&&u(r=>r.assistantId===e&&r.hasResolvedStatus===n&&g.current(r.status,t)?r:{assistantId:e,status:t,hasResolvedStatus:n})},[y]),x=(0,O.useCallback)(()=>{p.current+=1,u(U)},[]),S=(0,O.useCallback)(async()=>{let n=e;if(!t||!n){x();return}let r=p.current,i=m.current+1;m.current=i;try{let e=await h.current(n);if(m.current!==i)return;if(!e.ok){b(n,null,!1,r);return}b(n,e.data.status,!0,r)}catch{if(m.current!==i)return;b(n,null,!1,r)}},[e,b,x,t]);(0,O.useEffect)(()=>{if(!t||!e)return;S();let n=window.setInterval(()=>{S()},r);return()=>{window.clearInterval(n)}},[e,r,t,S,n]),E(`app.resume`,()=>{S()});let C=(0,O.useCallback)(n=>{if(!t||!e){x();return}let r=v();_.current?.(),b(e,n,!0,r)},[e,b,v,x,t]);E(`sse.event`,e=>{let t=s(e.message);t!==void 0&&C(t)});let w=t&&l.assistantId===e?l.status:null,T=!!(t&&e&&l.assistantId===e&&l.hasResolvedStatus);return{status:w,mode:(0,O.useMemo)(()=>o(w),[o,w]),hasResolvedStatus:T,applyStatusEvent:C,refresh:S,bumpGeneration:v,isCurrentRequest:y,applyStatusForAssistant:b,clearStatus:x}}var G=`Failed to acknowledge assistant disk pressure.`;function ye(e,t){return e instanceof Error?e:Error(t)}function be({assistantId:e,enabled:t,refreshKey:n,cadenceMs:r=R}){let[i,a]=(0,O.useState)(!1),[o,s]=(0,O.useState)(null),c=(0,O.useCallback)(()=>{a(!1),s(null)},[]),l=W({assistantId:e,enabled:t,refreshKey:n,cadenceMs:r,fetchStatus:g,areStatusesEqual:H,deriveMode:he,extractSseStatus:e=>e.type===`disk_pressure_status_changed`?e.status:void 0,onStatusEvent:c}),{applyStatusForAssistant:u,bumpGeneration:d,clearStatus:f,isCurrentRequest:p}=l;(0,O.useEffect)(()=>{c()},[e,t,c]);let m=(0,O.useCallback)(async()=>{let n=e;if(!t||!n){f();return}let r=d();a(!0),s(null);try{let e=await _(n);if(!e.ok)throw Error(G);if(!p(n,r))return;u(n,e.data.status,!0,d()),a(!1)}catch(e){p(n,r)&&s(ye(e,G))}finally{p(n,r)&&a(!1)}},[e,u,d,f,t,p]);return{status:l.status,mode:l.mode,hasResolvedStatus:l.hasResolvedStatus,isAcknowledging:i,acknowledgeError:o,acknowledge:m,applyStatusEvent:l.applyStatusEvent,refresh:l.refresh}}var K=o();function xe(e){let{status:t,mode:n,isAcknowledging:i=!1,acknowledgeError:o,onAcknowledge:s,onDismissWarning:f,onReviewWorkspaceData:p,onUpgradeStorage:m}=e,{t:h}=r(),[g,_]=(0,O.useState)(!1),[v,y]=(0,O.useState)(!1),b=ve(t);if(n===`warning`){let e=t.usagePercent??0;return(0,K.jsx)(u,{tone:`warning`,title:h(`diskPressureBanner.warningTitle`),icon:(0,K.jsx)(D,{className:`h-4 w-4`,"aria-hidden":`true`}),onDismiss:f?()=>f(v):void 0,className:`p-4`,"data-testid":`disk-pressure-banner`,children:(0,K.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,K.jsx)(`div`,{className:`h-1.5 flex-1 overflow-hidden rounded-full bg-[var(--surface-active)]`,children:(0,K.jsx)(`div`,{className:`h-full rounded-full transition-[width] duration-300`,style:{width:`${e}%`,backgroundColor:`var(--system-mid-strong)`}})}),(0,K.jsx)(`span`,{className:`text-body-medium-default shrink-0 tabular-nums text-[color:var(--system-mid-strong)]`,children:b})]}),(0,K.jsx)(`p`,{className:`m-0`,children:h(m?`diskPressureBanner.warningBodyWithUpgrade`:`diskPressureBanner.warningBody`)}),(0,K.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[p&&(0,K.jsx)(a,{variant:`outlined`,size:`compact`,onClick:p,children:h(`diskPressureBanner.manageStorage`)}),m&&(0,K.jsx)(a,{variant:`outlined`,size:`compact`,onClick:m,children:h(`diskPressureBanner.upgrade`)}),f?(0,K.jsx)(c,{className:`ml-auto`,checked:v,onCheckedChange:e=>y(e===!0),label:h(`diskPressureBanner.dontShowAgain`),"data-testid":`disk-pressure-banner-dont-show-again`}):null]})]})})}if(n===`cleanup`){let e=t.usagePercent??0;return(0,K.jsx)(u,{tone:`warning`,title:h(`diskPressureBanner.cleanupTitle`),icon:(0,K.jsx)(D,{className:`h-4 w-4`,"aria-hidden":`true`}),className:`p-4`,"data-testid":`disk-pressure-banner`,children:(0,K.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,K.jsx)(`div`,{className:`h-1.5 flex-1 overflow-hidden rounded-full bg-[var(--surface-active)]`,children:(0,K.jsx)(`div`,{className:`h-full rounded-full transition-[width] duration-300`,style:{width:`${e}%`,backgroundColor:`var(--system-mid-strong)`}})}),(0,K.jsx)(`span`,{className:`text-body-medium-default shrink-0 tabular-nums text-[color:var(--system-mid-strong)]`,children:b})]}),(0,K.jsx)(`p`,{className:`m-0`,children:h(`diskPressureBanner.cleanupBody`)}),(0,K.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[p&&(0,K.jsx)(a,{variant:`outlined`,size:`compact`,onClick:p,children:h(`diskPressureBanner.manageStorage`)}),m&&(0,K.jsx)(a,{variant:`outlined`,size:`compact`,onClick:m,children:h(`diskPressureBanner.upgrade`)})]})]})})}let x=t.usagePercent??0;return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(u,{tone:`error`,title:h(`diskPressureBanner.criticalTitle`),icon:(0,K.jsx)(D,{className:`h-4 w-4`,"aria-hidden":`true`}),className:`p-4`,"data-testid":`disk-pressure-banner`,children:(0,K.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,K.jsx)(`div`,{className:`h-1.5 flex-1 overflow-hidden rounded-full bg-[var(--surface-active)]`,children:(0,K.jsx)(`div`,{className:`h-full rounded-full transition-[width] duration-300`,style:{width:`${x}%`,backgroundColor:`var(--system-negative-strong)`}})}),(0,K.jsx)(`span`,{className:`text-body-medium-default shrink-0 tabular-nums text-[color:var(--system-negative-strong)]`,children:b})]}),(0,K.jsx)(`p`,{className:`m-0`,children:h(`diskPressureBanner.criticalBody`)}),o?(0,K.jsx)(`span`,{className:`text-[var(--system-negative-strong)]`,role:`alert`,children:o}):null,(0,K.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:(0,K.jsx)(a,{variant:`primary`,size:`compact`,onClick:()=>_(!0),children:h(`diskPressureBanner.review`)})})]})}),(0,K.jsx)(d.Root,{open:g,onOpenChange:e=>{e||_(!1)},children:(0,K.jsxs)(d.Content,{size:`sm`,children:[(0,K.jsx)(d.Header,{icon:l,children:(0,K.jsx)(d.Title,{children:h(`diskPressureBanner.criticalTitle`)})}),(0,K.jsx)(d.Body,{children:(0,K.jsx)(d.Description,{children:h(`diskPressureBanner.criticalModalDescription`)})}),(0,K.jsxs)(d.Footer,{children:[m&&(0,K.jsx)(a,{variant:`outlined`,onClick:()=>{_(!1),m()},children:h(`diskPressureBanner.upgrade`)}),(0,K.jsx)(a,{variant:`primary`,disabled:i,onClick:()=>{s(),_(!1)},children:h(i?`diskPressureBanner.acknowledging`:`diskPressureBanner.acknowledge`)})]})]})})]})}var Se=`https://apps.apple.com/us/app/vellum-assistant/id6759934423`,q=`ai.vellum.assistant`,Ce=`https://play.google.com/store/apps/details?id=${q}`,J={ios:{downloaded:`app.iosNudge.downloaded`,bannerDismissed:`app.iosNudge.bannerDismissed`,assistantTurnsSeen:`app.iosNudge.assistantTurnsSeen`},android:{downloaded:`app.androidNudge.downloaded`,bannerDismissed:`app.androidNudge.bannerDismissed`,assistantTurnsSeen:`app.androidNudge.assistantTurnsSeen`}};function we(){let e=(void 0)?.trim();if(!e)return null;try{let t=new URL(e);return t.protocol===`https:`&&t.hostname===`play.google.com`&&t.pathname===`/store/apps/details`&&t.searchParams.get(`id`)===q?Ce:null}catch(e){if(e instanceof TypeError)return null;throw e}}function Y(e){return e===`ios`?`iOS`:`Android`}function X(e){if(e===`ios`)return{platform:e,appName:Y(e),storeUrl:Se};let t=we();return t?{platform:e,appName:Y(e),storeUrl:t}:null}function Te(e){return h(J[e].downloaded,!1)}function Z(e){m(J[e].downloaded,!0)}function Ee(e){return h(J[e].bannerDismissed,!1)}function De(e){m(J[e].bannerDismissed,!0)}function Q(e){return Math.max(0,p(J[e].assistantTurnsSeen,0))}function Oe(e,t=1){t<=0||f(J[e].assistantTurnsSeen,Q(e)+t)}function $(e){let t=X(e);return t?(window.open(t.storeUrl,`_blank`,`noopener,noreferrer`),!0):!1}function ke(e){let[t,n]=(0,O.useState)(!1),[r,i]=(0,O.useState)(!1),a=X(e)!==null;(0,O.useEffect)(()=>{n(Te(e)),i(Ee(e))},[e]);let o=(0,O.useCallback)(()=>{$(e)&&(Z(e),n(!0))},[e]),s=(0,O.useCallback)(()=>{De(e),i(!0)},[e]);return(0,O.useMemo)(()=>({bannerShouldShow:a&&!t&&!r,handleDownload:o,handleBannerDismiss:s}),[a,t,r,o,s])}var Ae=x({key:`device:cmd_enter_to_send`,scope:`device`,parse:b,serialize:String,fallback:!1}),je=x({key:`device:show_context_window_indicator`,scope:`device`,parse:b,serialize:String,fallback:!1});export{ie as C,D as E,I as S,te as T,ce as _,Oe as a,F as b,ke as c,be as d,W as f,pe as g,L as h,X as i,Z as l,ge as m,je as n,$ as o,_e as p,Y as r,Q as s,Ae as t,xe as u,ue as v,re as w,se as x,le as y};
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{c as t,l as n,v as r}from"./i18n-BDfnKs41.js";import{t as i}from"./react-DJZBPgpf.js";import{t as a}from"./button-B1kEAcLt.js";import{t as o}from"./jsx-runtime-COOF1INC.js";import{t as s}from"./createLucideIcon-CMfEC_aW.js";import{t as c}from"./checkbox--DYEubRE.js";import{t as l}from"./triangle-alert-B6J57Xfo.js";import{t as u}from"./notice-BHeYlKvv.js";import"./src-BKET5Cno.js";import{t as d}from"./modal-_49mDK_d.js";import{c as f,r as p,s as m,t as h}from"./local-settings-D9SNRv4p.js";import{f as g,l as _}from"./use-assistant-avatar-CT8Pozwx.js";import{i as v,t as y}from"./dist-Cr8OiiXj.js";import{a as b,i as x}from"./typed-storage-Bw4gW_Pk.js";import{n as S,r as C,t as w}from"./theme-preferences-U-DK54R3.js";import{t as T}from"./client-feature-flag-store-BmjgGl9P.js";import{t as E}from"./use-bus-subscription-DfxTm1-Q.js";import{o as ee}from"./funnel-events-D-InjbTX.js";var D=s(`package`,[[`path`,{d:`M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z`,key:`1a0edw`}],[`path`,{d:`M12 22V12`,key:`d0xqtd`}],[`polyline`,{points:`3.29 7 12 12 20.71 7`,key:`ousv84`}],[`path`,{d:`m7.5 4.27 9 5.15`,key:`1c824w`}]]),O=e(i(),1),k=`NativeLaunchScreen`,A=v(k);function j(e){return e===`velvet`?`dark`:e}function M(){return y.isNativePlatform()&&y.getPlatform()===`android`&&y.isPluginAvailable(k)}async function te(e){if(M())try{await A.ready({theme:j(e)})}catch(e){n(e,{context:`native_launch_screen_ready`,bestEffort:!0})}}async function ne(e){if(M())try{await A.setTheme({theme:j(e)})}catch(e){n(e,{context:`native_launch_screen_theme_sync`,bestEffort:!0})}}function re(){return T.use.stringFlags().proactiveTips??`off`}function ie(e){return e===`on`}function N(e){return e===void 0||typeof e==`number`&&Number.isFinite(e)}function ae(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e;return typeof t.shownCount==`number`&&Number.isFinite(t.shownCount)&&N(t.dismissedAt)&&N(t.lastShownAt)}function P(e){let t=JSON.parse(e);if(!t||typeof t!=`object`||Array.isArray(t))return null;let n={};for(let[e,r]of Object.entries(t))ae(r)&&(n[e]=r);return n}function oe(e){let t=Number(e);return Number.isFinite(t)&&t>=0?t:null}var F=x({key:`device:tips:records`,scope:`device`,parse:P,serialize:JSON.stringify,fallback:{}}),se=x({key:`device:tips:enabled`,scope:`device`,parse:b,serialize:String,fallback:!0}),I=x({key:`device:tips:first_seen_at`,scope:`device`,parse:oe,serialize:String,fallback:0});function ce(){I.load()===0&&I.save(Date.now())}function le(e,t){let n=F.load(),r=n[e];F.save({...n,[e]:{...r,lastShownAt:t,shownCount:(r?.shownCount??0)+1}})}function ue(e,t){let n=F.load(),r=n[e];F.save({...n,[e]:{...r,dismissedAt:t,shownCount:r?.shownCount??0}})}var de=`proactive-tips-v1`,fe={impression:0,learn_more:1,dismiss:2,dont_show_again:3,click:4,completion:5};function pe(e,t,n){ee({stepName:t,stepIndex:fe[t]},{funnelVersion:de,screen:e,variant:n})}function L(){let e=T.use.velvet(),[n,r]=(0,O.useState)(()=>S({velvetEnabled:e}));return(0,O.useEffect)(()=>{r(S({velvetEnabled:e}))},[e]),(0,O.useEffect)(()=>t(`theme`,()=>{r(S({velvetEnabled:e}))}),[e]),(0,O.useEffect)(()=>{w(n)},[n]),{theme:n,setThemePreference:e=>{r(e),C(e),ne(e)}}}var R=6e4;function z(e){return!!(e?.enabled&&e.effectivelyLocked)}function B(e){return z(e)?e.acknowledged&&!e.overrideActive:!1}function V(e){return!!(e&&z(e)&&!e.acknowledged&&!e.overrideActive)}function me(e){return!!(e?.enabled&&e.state===`warning`)}function he(e){return V(e)?`acknowledgement-required`:B(e)?`cleanup`:me(e)?`warning`:`inactive`}function ge({monitorEnabled:e,hasResolvedStatus:t,status:n}){return!e||!t?null:V(n)?`acknowledgement-required`:null}function _e(e){return`Storage cleanup mode must be acknowledged before sending messages.`}function H(e,t){return e===t?!0:!e||!t?!1:e.enabled===t.enabled&&e.state===t.state&&e.locked===t.locked&&e.acknowledged===t.acknowledged&&e.overrideActive===t.overrideActive&&e.effectivelyLocked===t.effectivelyLocked&&e.lockId===t.lockId&&e.usagePercent===t.usagePercent&&e.thresholdPercent===t.thresholdPercent&&e.path===t.path&&e.lastCheckedAt===t.lastCheckedAt&&e.error===t.error&&e.blockedCapabilities.length===t.blockedCapabilities.length&&e.blockedCapabilities.every((e,n)=>e===t.blockedCapabilities[n])}function ve(e){return e?.usagePercent==null||!Number.isFinite(e.usagePercent)?`Unknown`:`${Math.round(e.usagePercent)}%`}var U={assistantId:null,status:null,hasResolvedStatus:!1};function W({assistantId:e,enabled:t,refreshKey:n,cadenceMs:r,fetchStatus:i,areStatusesEqual:a,deriveMode:o,extractSseStatus:s,onStatusEvent:c}){let[l,u]=(0,O.useState)(U),d=(0,O.useRef)(e),f=(0,O.useRef)(t),p=(0,O.useRef)(0),m=(0,O.useRef)(0),h=(0,O.useRef)(i),g=(0,O.useRef)(a),_=(0,O.useRef)(c);(0,O.useLayoutEffect)(()=>{d.current=e,f.current=t,h.current=i,g.current=a,_.current=c}),(0,O.useEffect)(()=>{p.current+=1,u(U)},[e,t]);let v=(0,O.useCallback)(()=>(p.current+=1,p.current),[]),y=(0,O.useCallback)((e,t)=>f.current&&d.current===e&&p.current===t,[]),b=(0,O.useCallback)((e,t,n,r)=>{y(e,r)&&u(r=>r.assistantId===e&&r.hasResolvedStatus===n&&g.current(r.status,t)?r:{assistantId:e,status:t,hasResolvedStatus:n})},[y]),x=(0,O.useCallback)(()=>{p.current+=1,u(U)},[]),S=(0,O.useCallback)(async()=>{let n=e;if(!t||!n){x();return}let r=p.current,i=m.current+1;m.current=i;try{let e=await h.current(n);if(m.current!==i)return;if(!e.ok){b(n,null,!1,r);return}b(n,e.data.status,!0,r)}catch{if(m.current!==i)return;b(n,null,!1,r)}},[e,b,x,t]);(0,O.useEffect)(()=>{if(!t||!e)return;S();let n=window.setInterval(()=>{S()},r);return()=>{window.clearInterval(n)}},[e,r,t,S,n]),E(`app.resume`,()=>{S()});let C=(0,O.useCallback)(n=>{if(!t||!e){x();return}let r=v();_.current?.(),b(e,n,!0,r)},[e,b,v,x,t]);E(`sse.event`,e=>{let t=s(e.message);t!==void 0&&C(t)});let w=t&&l.assistantId===e?l.status:null,T=!!(t&&e&&l.assistantId===e&&l.hasResolvedStatus);return{status:w,mode:(0,O.useMemo)(()=>o(w),[o,w]),hasResolvedStatus:T,applyStatusEvent:C,refresh:S,bumpGeneration:v,isCurrentRequest:y,applyStatusForAssistant:b,clearStatus:x}}var G=`Failed to acknowledge assistant disk pressure.`;function ye(e,t){return e instanceof Error?e:Error(t)}function be({assistantId:e,enabled:t,refreshKey:n,cadenceMs:r=R}){let[i,a]=(0,O.useState)(!1),[o,s]=(0,O.useState)(null),c=(0,O.useCallback)(()=>{a(!1),s(null)},[]),l=W({assistantId:e,enabled:t,refreshKey:n,cadenceMs:r,fetchStatus:g,areStatusesEqual:H,deriveMode:he,extractSseStatus:e=>e.type===`disk_pressure_status_changed`?e.status:void 0,onStatusEvent:c}),{applyStatusForAssistant:u,bumpGeneration:d,clearStatus:f,isCurrentRequest:p}=l;(0,O.useEffect)(()=>{c()},[e,t,c]);let m=(0,O.useCallback)(async()=>{let n=e;if(!t||!n){f();return}let r=d();a(!0),s(null);try{let e=await _(n);if(!e.ok)throw Error(G);if(!p(n,r))return;u(n,e.data.status,!0,d()),a(!1)}catch(e){p(n,r)&&s(ye(e,G))}finally{p(n,r)&&a(!1)}},[e,u,d,f,t,p]);return{status:l.status,mode:l.mode,hasResolvedStatus:l.hasResolvedStatus,isAcknowledging:i,acknowledgeError:o,acknowledge:m,applyStatusEvent:l.applyStatusEvent,refresh:l.refresh}}var K=o();function xe(e){let{status:t,mode:n,isAcknowledging:i=!1,acknowledgeError:o,onAcknowledge:s,onDismissWarning:f,onReviewWorkspaceData:p,onUpgradeStorage:m}=e,{t:h}=r(),[g,_]=(0,O.useState)(!1),[v,y]=(0,O.useState)(!1),b=ve(t);if(n===`warning`){let e=t.usagePercent??0;return(0,K.jsx)(u,{tone:`warning`,title:h(`diskPressureBanner.warningTitle`),icon:(0,K.jsx)(D,{className:`h-4 w-4`,"aria-hidden":`true`}),onDismiss:f?()=>f(v):void 0,className:`p-4`,"data-testid":`disk-pressure-banner`,children:(0,K.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,K.jsx)(`div`,{className:`h-1.5 flex-1 overflow-hidden rounded-full bg-[var(--surface-active)]`,children:(0,K.jsx)(`div`,{className:`h-full rounded-full transition-[width] duration-300`,style:{width:`${e}%`,backgroundColor:`var(--system-mid-strong)`}})}),(0,K.jsx)(`span`,{className:`text-body-medium-default shrink-0 tabular-nums text-[color:var(--system-mid-strong)]`,children:b})]}),(0,K.jsx)(`p`,{className:`m-0`,children:h(m?`diskPressureBanner.warningBodyWithUpgrade`:`diskPressureBanner.warningBody`)}),(0,K.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[p&&(0,K.jsx)(a,{variant:`outlined`,size:`compact`,onClick:p,children:h(`diskPressureBanner.manageStorage`)}),m&&(0,K.jsx)(a,{variant:`outlined`,size:`compact`,onClick:m,children:h(`diskPressureBanner.upgrade`)}),f?(0,K.jsx)(c,{className:`ml-auto`,checked:v,onCheckedChange:e=>y(e===!0),label:h(`diskPressureBanner.dontShowAgain`),"data-testid":`disk-pressure-banner-dont-show-again`}):null]})]})})}if(n===`cleanup`){let e=t.usagePercent??0;return(0,K.jsx)(u,{tone:`warning`,title:h(`diskPressureBanner.cleanupTitle`),icon:(0,K.jsx)(D,{className:`h-4 w-4`,"aria-hidden":`true`}),className:`p-4`,"data-testid":`disk-pressure-banner`,children:(0,K.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,K.jsx)(`div`,{className:`h-1.5 flex-1 overflow-hidden rounded-full bg-[var(--surface-active)]`,children:(0,K.jsx)(`div`,{className:`h-full rounded-full transition-[width] duration-300`,style:{width:`${e}%`,backgroundColor:`var(--system-mid-strong)`}})}),(0,K.jsx)(`span`,{className:`text-body-medium-default shrink-0 tabular-nums text-[color:var(--system-mid-strong)]`,children:b})]}),(0,K.jsx)(`p`,{className:`m-0`,children:h(`diskPressureBanner.cleanupBody`)}),(0,K.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[p&&(0,K.jsx)(a,{variant:`outlined`,size:`compact`,onClick:p,children:h(`diskPressureBanner.manageStorage`)}),m&&(0,K.jsx)(a,{variant:`outlined`,size:`compact`,onClick:m,children:h(`diskPressureBanner.upgrade`)})]})]})})}let x=t.usagePercent??0;return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(u,{tone:`error`,title:h(`diskPressureBanner.criticalTitle`),icon:(0,K.jsx)(D,{className:`h-4 w-4`,"aria-hidden":`true`}),className:`p-4`,"data-testid":`disk-pressure-banner`,children:(0,K.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,K.jsx)(`div`,{className:`h-1.5 flex-1 overflow-hidden rounded-full bg-[var(--surface-active)]`,children:(0,K.jsx)(`div`,{className:`h-full rounded-full transition-[width] duration-300`,style:{width:`${x}%`,backgroundColor:`var(--system-negative-strong)`}})}),(0,K.jsx)(`span`,{className:`text-body-medium-default shrink-0 tabular-nums text-[color:var(--system-negative-strong)]`,children:b})]}),(0,K.jsx)(`p`,{className:`m-0`,children:h(`diskPressureBanner.criticalBody`)}),o?(0,K.jsx)(`span`,{className:`text-[var(--system-negative-strong)]`,role:`alert`,children:o}):null,(0,K.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:(0,K.jsx)(a,{variant:`primary`,size:`compact`,onClick:()=>_(!0),children:h(`diskPressureBanner.review`)})})]})}),(0,K.jsx)(d.Root,{open:g,onOpenChange:e=>{e||_(!1)},children:(0,K.jsxs)(d.Content,{size:`sm`,children:[(0,K.jsx)(d.Header,{icon:l,children:(0,K.jsx)(d.Title,{children:h(`diskPressureBanner.criticalTitle`)})}),(0,K.jsx)(d.Body,{children:(0,K.jsx)(d.Description,{children:h(`diskPressureBanner.criticalModalDescription`)})}),(0,K.jsxs)(d.Footer,{children:[m&&(0,K.jsx)(a,{variant:`outlined`,onClick:()=>{_(!1),m()},children:h(`diskPressureBanner.upgrade`)}),(0,K.jsx)(a,{variant:`primary`,disabled:i,onClick:()=>{s(),_(!1)},children:h(i?`diskPressureBanner.acknowledging`:`diskPressureBanner.acknowledge`)})]})]})})]})}var Se=`https://apps.apple.com/us/app/vellum-assistant/id6759934423`,q=`ai.vellum.assistant`,Ce=`https://play.google.com/store/apps/details?id=${q}`,J={ios:{downloaded:`app.iosNudge.downloaded`,bannerDismissed:`app.iosNudge.bannerDismissed`,assistantTurnsSeen:`app.iosNudge.assistantTurnsSeen`},android:{downloaded:`app.androidNudge.downloaded`,bannerDismissed:`app.androidNudge.bannerDismissed`,assistantTurnsSeen:`app.androidNudge.assistantTurnsSeen`}};function we(){let e=(void 0)?.trim();if(!e)return null;try{let t=new URL(e);return t.protocol===`https:`&&t.hostname===`play.google.com`&&t.pathname===`/store/apps/details`&&t.searchParams.get(`id`)===q?Ce:null}catch(e){if(e instanceof TypeError)return null;throw e}}function Y(e){return e===`ios`?`iOS`:`Android`}function X(e){if(e===`ios`)return{platform:e,appName:Y(e),storeUrl:Se};let t=we();return t?{platform:e,appName:Y(e),storeUrl:t}:null}function Te(e){return h(J[e].downloaded,!1)}function Z(e){m(J[e].downloaded,!0)}function Ee(e){return h(J[e].bannerDismissed,!1)}function De(e){m(J[e].bannerDismissed,!0)}function Q(e){return Math.max(0,p(J[e].assistantTurnsSeen,0))}function Oe(e,t=1){t<=0||f(J[e].assistantTurnsSeen,Q(e)+t)}function $(e){let t=X(e);return t?(window.open(t.storeUrl,`_blank`,`noopener,noreferrer`),!0):!1}function ke(e){let[t,n]=(0,O.useState)(!1),[r,i]=(0,O.useState)(!1),a=X(e)!==null;(0,O.useEffect)(()=>{n(Te(e)),i(Ee(e))},[e]);let o=(0,O.useCallback)(()=>{$(e)&&(Z(e),n(!0))},[e]),s=(0,O.useCallback)(()=>{De(e),i(!0)},[e]);return(0,O.useMemo)(()=>({bannerShouldShow:a&&!t&&!r,handleDownload:o,handleBannerDismiss:s}),[a,t,r,o,s])}var Ae=x({key:`device:cmd_enter_to_send`,scope:`device`,parse:b,serialize:String,fallback:!1}),je=x({key:`device:show_context_window_indicator`,scope:`device`,parse:b,serialize:String,fallback:!1});export{ie as C,D as E,I as S,te as T,ce as _,Oe as a,F as b,ke as c,be as d,W as f,pe as g,L as h,X as i,Z as l,ge as m,je as n,$ as o,_e as p,Y as r,Q as s,Ae as t,xe as u,ue as v,re as w,se as x,le as y};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{v as t}from"./i18n-
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{v as t}from"./i18n-BDfnKs41.js";import{t as n}from"./react-DJZBPgpf.js";import{t as r}from"./button-B1kEAcLt.js";import{d as i,h as a}from"./chunk-5KNZJZUH-CPFsMQoz.js";import{n as o}from"./QueryClientProvider-BPZM68-A.js";import{t as s}from"./useMutation-Cl7cazkm.js";import{t as c}from"./jsx-runtime-COOF1INC.js";import{t as l}from"./typography-SdxpXI_m.js";import{t as u}from"./card-B4b9cF6X.js";import{t as d}from"./link-2-Di62Fo_i.js";import{t as f}from"./loader-circle-DZ65N8bz.js";import{t as p}from"./triangle-alert-B6J57Xfo.js";import{n as m}from"./toast-BKrDuNtu.js";import{f as h}from"./routes-C6ueuiMd.js";import{t as g}from"./use-active-assistant-id-lxYJu99R.js";import{n as _}from"./a2a-invite-Dcxf1Lse.js";import{r as v}from"./contacts-gateway-DoiRPJZq.js";var y=e(n(),1),b=c();function x(e){let t=e[0];return typeof t==`object`&&!!t&&t._id===`contactsGet`}function S(e){switch(e){case`expired`:case`not_found`:return`connectPage.errorExpired`;case`already_redeemed_by_other`:return`connectPage.errorAlreadyRedeemed`;case`sender_not_found`:return`connectPage.errorSenderNotFound`;case`not_platform_managed`:return`connectPage.errorNotPlatformManaged`;default:return null}}function C(){return(0,b.jsx)(w,{assistantId:g()})}function w({assistantId:e}){let{t:n}=t(`contacts`),c=i(),g=o(),[C]=a(),w=(0,y.useMemo)(()=>_(C),[C]),T=s({mutationFn:()=>{if(!w)throw Error(`Invalid invite link`);return v(e,{senderAssistantId:w.senderAssistantId,token:w.token})},onSuccess:e=>{e.success&&(g.invalidateQueries({predicate:e=>x(e.queryKey)}),e.alreadyConnected?m(n(`connectPage.alreadyConnected`)):m(n(`connectPage.connected`)),c(h.contacts.root))}}),E=(0,y.useCallback)(()=>{c(h.contacts.root)},[c]),D=(0,y.useCallback)(()=>{T.mutate()},[T]),O=(0,y.useMemo)(()=>{if(T.isError)return T.error instanceof Error?T.error.message:n(`connectPage.errorGeneric`);if(T.data&&!T.data.success){let e=S(T.data.errorCode);return e?n(e):T.data.error||n(`connectPage.errorGeneric`)}return null},[T.isError,T.error,T.data,n]);return w?(0,b.jsx)(`div`,{className:`flex min-h-full items-center justify-center p-6`,children:(0,b.jsx)(u,{className:`w-full max-w-md`,children:(0,b.jsxs)(`div`,{className:`flex flex-col gap-4 p-6`,children:[(0,b.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,b.jsx)(d,{className:`h-6 w-6`,style:{color:`var(--content-secondary)`}}),(0,b.jsx)(l,{variant:`title-small`,children:n(`connectPage.title`)})]}),(0,b.jsx)(l,{variant:`body-medium-lighter`,style:{color:`var(--content-secondary)`},children:n(`connectPage.body`)}),O&&(0,b.jsxs)(`div`,{className:`flex items-center gap-2 rounded-md p-3`,style:{backgroundColor:`var(--surface-negative-subtle)`,color:`var(--system-negative-strong)`},children:[(0,b.jsx)(p,{className:`h-4 w-4 shrink-0`}),(0,b.jsx)(l,{variant:`body-small-default`,children:O})]}),(0,b.jsxs)(`div`,{className:`flex gap-2 pt-2`,children:[(0,b.jsx)(r,{variant:`primary`,onClick:D,disabled:T.isPending,children:T.isPending?(0,b.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,b.jsx)(f,{className:`h-4 w-4 animate-spin`}),n(`actions.connecting`)]}):n(`actions.connect`)}),(0,b.jsx)(r,{variant:`outlined`,onClick:E,disabled:T.isPending,children:n(`actions.cancel`)})]})]})})}):(0,b.jsx)(`div`,{className:`flex min-h-full items-center justify-center p-6`,children:(0,b.jsx)(u,{className:`w-full max-w-md`,children:(0,b.jsxs)(`div`,{className:`flex flex-col gap-4 p-6`,children:[(0,b.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,b.jsx)(p,{className:`h-6 w-6`,style:{color:`var(--system-negative-strong)`}}),(0,b.jsx)(l,{variant:`title-small`,children:n(`connectPage.invalidTitle`)})]}),(0,b.jsx)(l,{variant:`body-medium-lighter`,style:{color:`var(--content-secondary)`},children:n(`connectPage.invalidBody`)}),(0,b.jsx)(`div`,{className:`flex gap-2 pt-2`,children:(0,b.jsx)(r,{variant:`primary`,onClick:E,children:n(`connectPage.goToContacts`)})})]})})})}export{C as ConnectPage};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./onboarding-store-BsVgs3Ut.js";function t(){let{shareAnalytics:t,serverAnalyticsEffective:n,pendingAnalyticsOptIn:r}=e.getState();return t===!1?!1:r?!0:n??!0}export{t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{v as e}from"./i18n-
|
|
1
|
+
import{v as e}from"./i18n-BDfnKs41.js";import{t}from"./jsx-runtime-COOF1INC.js";import{t as n}from"./card-B4b9cF6X.js";import{t as r}from"./checkbox--DYEubRE.js";import{t as i}from"./Trans-v2rRKTPL.js";import{d as a,f as o}from"./routes-C6ueuiMd.js";import{t as s}from"./setting-row-w3kD1IkH.js";var c=t(),l=[`[&_button[data-state=checked]]:bg-[var(--primary-base)]`,`[&_svg]:text-[var(--content-inset)]`,`[&_button[data-state=unchecked]]:bg-[var(--surface-base)]`,`[&_button[data-state=unchecked]]:border-[var(--border-element)]`].join(` `),u=`mb-2.5 ml-1 text-body-small-default font-medium uppercase tracking-wider text-[var(--content-tertiary)]`,d={privacy:{href:o.docs.legal.privacyPolicy,text:`Privacy and AI Data Sharing Policy`,aria:`I agree to the Privacy and AI Data Sharing Policy`},tos:{href:o.docs.legal.termsOfUse,text:`Terms of Service`,aria:`I agree to the Terms of Service`}};function f({kind:e,checked:t,onChange:n}){let o=d[e];return(0,c.jsx)(r,{checked:t,onCheckedChange:e=>n(e===!0),label:(0,c.jsx)(`span`,{className:`text-body-medium-lighter text-[var(--content-default)]`,children:(0,c.jsx)(i,{i18nKey:`consentControls.agreeTo`,ns:`onboarding`,values:{policy:o.text},components:{link:(0,c.jsx)(`a`,{href:a(o.href),target:`_blank`,rel:`noreferrer`,className:`underline`})}})}),"aria-label":o.aria,className:l})}function p(){return(0,c.jsx)(`div`,{className:`h-px bg-[var(--surface-active)] dark:bg-[var(--surface-lift)]`})}function m({notes:t}){let{t:n}=e(`onboarding`);return!t||t.length===0?null:(0,c.jsxs)(`div`,{className:`rounded-r-md border-l-2 border-[var(--content-secondary)] bg-[var(--surface-base)] py-3 pl-3.5 pr-3.5`,children:[(0,c.jsx)(`p`,{className:`text-body-small-default font-medium text-[var(--content-secondary)]`,children:n(`consentControls.whatsChanged`)}),t.length===1?(0,c.jsx)(`p`,{className:`mt-1.5 text-body-medium-lighter text-[var(--content-default)]`,children:t[0]}):(0,c.jsx)(`ul`,{className:`mt-2 flex flex-col gap-1.5`,children:t.map(e=>(0,c.jsxs)(`li`,{className:`flex gap-2.5 text-body-medium-lighter text-[var(--content-default)]`,children:[(0,c.jsx)(`span`,{"aria-hidden":!0,className:`mt-[0.5em] h-1 w-1 flex-none rounded-full bg-[var(--content-tertiary)]`}),(0,c.jsx)(`span`,{children:e})]},e))})]})}function h({electron:t,showAnalytics:r=!0,showDiagnostics:i=!0,shareAnalytics:a,shareDiagnostics:o,onShareAnalyticsChange:l,onShareDiagnosticsChange:d,className:f,style:m}){let{t:h}=e(`onboarding`);return(0,c.jsxs)(`section`,{className:f,style:m,children:[(0,c.jsx)(`p`,{className:u,children:h(`consentControls.privacyPreferences`)}),(0,c.jsx)(n,{padding:t?`sm`:`md`,className:`w-full`,children:(0,c.jsxs)(`div`,{className:`flex flex-col ${t?`gap-3`:`gap-4`}`,children:[r&&(0,c.jsx)(s,{label:h(`consentControls.analyticsLabel`),helperText:h(`consentControls.analyticsHelp`),checked:a,onChange:l}),r&&i&&(0,c.jsx)(p,{}),i&&(0,c.jsx)(s,{label:h(`consentControls.diagnosticsLabel`),helperText:h(`consentControls.diagnosticsHelp`),checked:o,onChange:d})]})})]})}function g({electron:t,showPrivacy:r=!0,showTos:i=!0,privacyConsent:a,tosAccepted:o,onPrivacyChange:s,onTosChange:l,privacyNotes:d,tosNotes:p,className:h,style:g}){let{t:_}=e(`onboarding`);return(0,c.jsxs)(`section`,{className:h,style:g,children:[(0,c.jsx)(`p`,{className:u,children:_(`consentControls.agreements`)}),(0,c.jsx)(n,{padding:t?`sm`:`md`,className:`w-full`,children:(0,c.jsxs)(`div`,{className:`flex flex-col ${t?`gap-3.5`:`gap-4`}`,children:[r&&(0,c.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,c.jsx)(m,{notes:d}),(0,c.jsx)(f,{kind:`privacy`,checked:a,onChange:s})]}),i&&(0,c.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,c.jsx)(m,{notes:p}),(0,c.jsx)(f,{kind:`tos`,checked:o,onChange:l})]})]})})]})}export{h as n,g as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{f as e,h as t,p as n}from"./i18n-
|
|
1
|
+
import{f as e,h as t,p as n}from"./i18n-BDfnKs41.js";import{t as r}from"./client.gen-D1UKq9QZ.js";import{d as i,p as a,u as o}from"./sdk.gen-BuAyyHNm.js";async function s(r,i){let{data:o,error:s,response:c}=await a({path:{assistant_id:r},body:i,throwOnError:!1});if(n(c,s,`Failed to save contact`),!c.ok||!o?.contact)throw new e(c.status,t(s,c,`Failed to save contact`));return o.contact}async function c(r,a){let{error:o,response:s}=await i({path:{assistant_id:r,contact_id:a},throwOnError:!1});if(n(s,o,`Failed to delete contact`),!s.ok&&s.status!==204)throw new e(s.status,t(o,s,`Failed to delete contact`))}async function l(r,i){let{error:a,response:s}=await o({path:{assistant_id:r,channel_id:i},throwOnError:!1});if(n(s,a,`Failed to verify channel`),!s.ok)throw new e(s.status,t(a,s,`Failed to verify channel`))}async function u(t,n,r){let i=(await s(t,{id:n.id,displayName:n.displayName,channels:[{type:r.type,address:r.address}]})).channels.find(e=>e.type===r.type&&e.address.toLowerCase()===r.address.toLowerCase());if(!i)throw new e(409,`That account is already linked to another contact.`);if(i.status===`blocked`)throw new e(409,`That account is blocked for this contact. Unblock it before linking.`);await l(t,i.id)}async function d(i,a){let{data:o,error:s,response:c}=await r.post({url:`/v1/assistants/{assistant_id}/a2a/invites/redeem/`,path:{assistant_id:i},body:{sender_assistant_id:a.senderAssistantId,token:a.token},headers:{"Content-Type":`application/json`},throwOnError:!1});if(n(c,s,`Failed to redeem A2A invite`),!c.ok)throw new e(c.status,t(s,c,`Failed to redeem A2A invite`));return{success:o?.success??!0,alreadyConnected:o?.already_connected,error:o?.error,errorCode:o?.error_code}}export{l as a,s as i,u as n,d as r,c as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{k as t,v as n}from"./i18n-DmTrjH8B.js";import{t as r}from"./react-DJZBPgpf.js";import{t as i}from"./button-B1kEAcLt.js";import{d as a,h as o,n as s}from"./chunk-5KNZJZUH-CPFsMQoz.js";import{n as c}from"./QueryClientProvider-BPZM68-A.js";import{t as l}from"./useQuery-BtL9k7Sh.js";import{t as u}from"./useMutation-Cl7cazkm.js";import{t as d}from"./jsx-runtime-COOF1INC.js";import{t as f}from"./typography-SdxpXI_m.js";import{t as p}from"./card-B4b9cF6X.js";import{n as m}from"./list-row-BvCm9O6y.js";import{t as h}from"./createLucideIcon-CMfEC_aW.js";import{t as g}from"./arrow-left-DUklm7Fd.js";import{t as _}from"./arrow-right-De7tYwD7.js";import{O as v,_ as y,a as ee,c as te,f as b,g as x,j as S,k as C,m as w,u as T}from"./use-save-twilio-credentials-DKSM1mRw.js";import{t as E}from"./circle-check-big-CHpJAmSB.js";import{t as D}from"./ellipsis-vertical-BJaOQqv_.js";import{t as O}from"./link-2-Di62Fo_i.js";import{t as k}from"./loader-circle-DZ65N8bz.js";import{t as A}from"./mail-CqdA6Y_p.js";import{t as j}from"./message-square-XpKWNcyv.js";import{t as M}from"./pencil-1uDrqXvV.js";import{t as ne}from"./plus-rgqTRjE1.js";import{t as N}from"./search-DYHr3LM9.js";import{t as re}from"./send-1mFY4II3.js";import{t as P}from"./user-plus-Bg01QRAF.js";import{t as F}from"./tag-DAsImP7W.js";import{t as I}from"./input-ChbJ2nzd.js";import{t as L}from"./modal-_49mDK_d.js";import{n as ie}from"./toast-BKrDuNtu.js";import{t as R}from"./confirm-dialog-EPYSBP_B.js";import{t as ae}from"./assistant-identity-store-DBkGjqzV.js";import{t as z}from"./Trans-aGiJoe8I.js";import{w as oe}from"./sdk.gen-BluU0h_N.js";import{f as se}from"./routes-C6ueuiMd.js";import{E as B,T as ce,c as le,nn as ue,rn as de,w as fe}from"./react-query.gen-C_GLKG7m.js";import{r as pe}from"./conversation-navigation-CmHzY4Xq.js";import{t as me}from"./assistant-feature-flag-store-Co_o5uD3.js";import{t as V}from"./use-active-assistant-id-lxYJu99R.js";import{t as H}from"./detail-card-D9EAxXI8.js";import{n as he,r as ge,t as _e}from"./use-side-list-room-C6Z5u28A.js";import{c as ve,i as ye,n as be,r as U,t as xe}from"./use-invite-link-dialog-BN8Wpu4s.js";import{a as Se,i as Ce,n as W,t as we}from"./contacts-gateway-MKSgXEZy.js";var G=h(`circle-question-mark`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3`,key:`1u773s`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]]),Te=h(`git-merge`,[[`circle`,{cx:`18`,cy:`18`,r:`3`,key:`1xkwt0`}],[`circle`,{cx:`6`,cy:`6`,r:`3`,key:`1lh9wr`}],[`path`,{d:`M6 21V9a9 9 0 0 0 9 9`,key:`7kw0sc`}]]),K=e(r(),1),Ee=new Set([`slack`]);function De(e){return e.status===`verified`||e.status===`active`&&e.verifiedAt!=null}function Oe(e){switch(e){case`slack`:return`channelType.slack`;case`telegram`:return`channelType.telegram`;case`discord`:return`channelType.discord`;case`whatsapp`:return`channelType.whatsapp`;case`a2a`:return`channelType.a2a`;case`phone`:return`channelType.phone`;case`email`:return`channelType.email`;default:return null}}function q(e){let n=Oe(e.toLowerCase());return n?t(n,{ns:`contacts`}):e}var ke=`New Contact`;function Ae(e){return e===ke}var J=d();function je({channels:e,pendingChannelKey:t=null,onConnect:r,onDisconnect:i}){let{t:a}=n(`contacts`),[o,s]=(0,K.useState)(null);return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`div`,{className:`flex flex-col`,children:e.map((e,n)=>(0,J.jsxs)(`div`,{children:[n>0?(0,J.jsx)(`div`,{className:`border-t`,style:{borderColor:`var(--border-base)`}}):null,(0,J.jsx)(Me,{channel:e,pending:t===e.key,onConnect:r?()=>r(e.key):void 0,onDisconnect:i?()=>s(e.key):void 0})]},e.key))}),(0,J.jsx)(R,{open:o!==null,title:a(`assistantContactChannels.disconnectConfirmTitle`,{channel:o?w(o):``}),message:a(`assistantContactChannels.disconnectConfirmMessage`),confirmLabel:a(`actions.disconnect`),destructive:!0,onConfirm:()=>{o&&i&&i(o),s(null)},onCancel:()=>s(null)})]})}function Me({channel:e,pending:t,onConnect:r,onDisconnect:a}){let{t:o}=n(`contacts`),s=e.configured,{Icon:c,label:l}=x(e.health);return(0,J.jsxs)(`div`,{className:`flex items-center gap-3 py-4`,children:[(0,J.jsx)(T,{channelId:e.key,className:`h-4 w-4 shrink-0 text-[color:var(--content-secondary)]`}),(0,J.jsx)(`span`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:w(e.key)}),s&&e.address?(0,J.jsx)(`span`,{className:`truncate text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:e.address}):null,(0,J.jsx)(`div`,{className:`ml-auto flex shrink-0 items-center gap-2`,children:s?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(`span`,{className:`inline-flex items-center gap-1 h-8 px-2.5 rounded-md whitespace-nowrap select-none text-body-small-emphasised leading-none bg-[var(--content-default)] text-[var(--surface-base)]`,children:[(0,J.jsx)(c,{className:`h-3 w-3`}),l]}),(0,J.jsx)(i,{variant:`danger`,onClick:a,disabled:!a||t,children:o(t?`actions.disconnecting`:`actions.disconnect`)})]}):(0,J.jsx)(i,{variant:`outlined`,onClick:r,disabled:!r||t,children:o(`actions.connect`)})})]})}function Y({role:e,contactType:t}){let{label:n,tone:r}=X(e,t);return(0,J.jsx)(F,{tone:r,children:n})}function X(e,t){switch(e){case`guardian`:return{label:`Guardian`,tone:`positive`};case`assistant`:return{label:`Assistant`,tone:`negative`};default:return t===`assistant`?{label:`Assistant`,tone:`negative`}:{label:`Human`,tone:`warning`}}}function Ne({assistantName:e,...t}){let{t:r}=n(`contacts`),i=y(e);return(0,J.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,J.jsx)(H,{title:r(`assistantChannelsDetail.title`,{name:i}),accessory:(0,J.jsx)(Y,{role:`assistant`}),compactAccessory:!0}),(0,J.jsx)(H,{title:r(`assistantChannelsDetail.channelsTitle`),subtitle:r(`assistantChannelsDetail.channelsSubtitle`,{name:i}),children:(0,J.jsx)(je,{...t})})]})}var Pe=new Set([`telegram`,`phone`,`vellum`,`whatsapp`,`slack`,`email`,`platform`,`a2a`]);function Z(e){return Pe.has(e)}function Fe(e,t){return e.id===`a2a`?t&&t.status!==`revoked`?{kind:`connected`}:{kind:`setup`}:t!=null&&De(t)?{kind:`verified`}:t?.status===`blocked`?{kind:`none`}:t&&t.status!==`revoked`?{kind:`unverified`}:{kind:`setup`}}function Ie(e,t,n){let r=[],i=new Set;if(e)for(let t of e)t.id===`a2a`&&!n||(r.push(t),i.add(t.id));for(let e of t)e.status===`revoked`||i.has(e.type)||e.type===`a2a`&&!n||Z(e.type)&&(r.push({id:e.type,source:`default`,label:e.type.charAt(0).toUpperCase()+e.type.slice(1),subtitle:``,icon:`help-circle`,supportsVerification:!1,setupMessages:{guardian:``,contact:``}}),i.add(e.type));return r}function Le({channelId:e,name:t,className:n,style:r}){let i=b(e);if(i)return(0,K.createElement)(i,{size:16,className:n,style:r});switch(t){case`bot`:return(0,J.jsx)(S,{className:n,style:r});case`hash`:return(0,J.jsx)(C,{className:n,style:r});case`send`:return(0,J.jsx)(re,{className:n,style:r});case`phone`:return(0,J.jsx)(v,{className:n,style:r});case`mail`:return(0,J.jsx)(A,{className:n,style:r});case`message-square`:return(0,J.jsx)(j,{className:n,style:r});default:return(0,J.jsx)(G,{className:n,style:r})}}function Q({contactChannels:e,availableChannels:t,channelsLoadFailed:r,a2aEnabled:i,setupLabel:a,verifyLoading:o,verifySubject:s=`self`,onSetupChannel:c,onVerifyChannel:l,onRevokeChannel:u,onLinkAccount:d}){let{t:f}=n(`contacts`),[p,m]=(0,K.useState)(null),[h,g]=(0,K.useState)(null),_=new Map;for(let t of e)t.status!==`revoked`&&(_.has(t.type)||_.set(t.type,t));let v=()=>{p&&(l?.(p.id),m(null))},y=Ie(t,e,i);return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(`div`,{className:`flex flex-col`,children:[r&&(0,J.jsx)(`div`,{className:`px-1 py-2 text-sm`,style:{color:`var(--content-secondary)`},role:`status`,children:f(`contactChannelsSection.loadFailed`)}),y.map((e,t)=>{let n=_.get(e.id);return(0,J.jsxs)(`div`,{children:[t>0&&(0,J.jsx)(`div`,{className:`border-t`,style:{borderColor:`var(--border-base)`}}),(0,J.jsx)($,{info:e,existing:n,setupLabel:a??f(`contactChannelsSection.setupDefault`),verifyLoading:o,onSetup:c?()=>c(e.id):void 0,onVerify:l&&e.supportsVerification?()=>m(e):void 0,onRevoke:u&&n?()=>g({channelId:n.id,channel:e}):void 0,onLinkAccount:d&&Ee.has(e.id)?()=>d(e.id):void 0})]},e.id)})]}),p&&(0,J.jsx)(R,{open:!0,title:f(`contactChannelsSection.verifyConfirmTitle`,{channel:p.label}),message:f(s===`contact`?`contactChannelsSection.verifyConfirmMessageContact`:`contactChannelsSection.verifyConfirmMessageGuardian`,{channel:p.label}),confirmLabel:f(`actions.verify`),onConfirm:v,onCancel:()=>m(null)}),h&&(0,J.jsx)(R,{open:!0,title:f(`contactChannelsSection.revokeConfirmTitle`,{channel:h.channel.label}),message:f(`contactChannelsSection.revokeConfirmMessage`),confirmLabel:f(`actions.revoke`),destructive:!0,onConfirm:()=>{u?.(h.channelId,h.channel.id),g(null)},onCancel:()=>g(null)})]})}function $({info:e,existing:t,setupLabel:r,verifyLoading:a,onSetup:o,onVerify:s,onRevoke:c,onLinkAccount:l}){let{t:u}=n(`contacts`),d=Fe(e,t);return(0,J.jsxs)(`div`,{className:`flex items-center gap-3 py-4`,children:[(0,J.jsx)(Le,{channelId:e.id,name:e.icon,className:`h-4 w-4 shrink-0`,style:{color:`var(--content-secondary)`}}),(0,J.jsx)(`span`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:e.label}),t?.address?(0,J.jsx)(`span`,{className:`truncate text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:t.address}):null,(0,J.jsx)(`div`,{className:`ml-auto flex shrink-0 items-center gap-2`,children:d.kind===`connected`?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(`span`,{className:`inline-flex items-center gap-1 h-8 px-2.5 rounded-md whitespace-nowrap select-none text-body-small-emphasised leading-none bg-[var(--content-default)] text-[var(--surface-base)]`,children:[(0,J.jsx)(E,{className:`h-3 w-3`}),u(`channelStatus.connected`)]}),c?(0,J.jsx)(i,{variant:`danger`,onClick:c,children:u(`actions.revoke`)}):null]}):d.kind===`verified`?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(`span`,{className:`inline-flex items-center gap-1 h-8 px-2.5 rounded-md whitespace-nowrap select-none text-body-small-emphasised leading-none bg-[var(--content-default)] text-[var(--surface-base)]`,children:[(0,J.jsx)(E,{className:`h-3 w-3`}),u(`channelStatus.verified`)]}),c?(0,J.jsx)(i,{variant:`danger`,onClick:c,children:u(`actions.revoke`)}):null]}):d.kind===`unverified`?(0,J.jsx)(i,{variant:`outlined`,onClick:s,disabled:!s||a,children:u(a?`actions.verifying`:`actions.verify`)}):d.kind===`setup`?e.id===`a2a`?null:(0,J.jsxs)(J.Fragment,{children:[l?(0,J.jsxs)(i,{onClick:l,children:[(0,J.jsx)(O,{className:`h-3.5 w-3.5`}),u(`contactChannelsSection.linkAccount`)]}):null,(0,J.jsx)(i,{variant:`outlined`,onClick:o,disabled:!o,children:r})]}):null})]})}function Re(e){return(0,J.jsx)(ze,{...e},e.contact.id)}function ze({contact:e,savePending:t,deletePending:r,verifyPending:a,mergePending:o=!1,canMerge:s=!1,availableChannels:c,channelsLoadFailed:l,a2aEnabled:u,onSave:d,onDelete:f,onMerge:p,onSetupChannel:m,onVerifyChannel:h,onRevokeChannel:g,onLinkAccount:_}){let{t:v}=n(`contacts`),y=Ae(e.displayName),[ee,te]=(0,K.useState)(y?``:e.displayName),[b,x]=(0,K.useState)(e.notes??``),[S,C]=(0,K.useState)(!1),w=ee.trim(),T=b.trim(),E=y?``:e.displayName,D=e.notes??``,O=w!==E||T!==D,k=w.length>0&&O&&!t&&!r,A=y&&e.channels.length===0&&e.interactionCount===0,j=w||(y?v(`contact.draftName`):e.displayName),M=v(`contact.interactions`,{count:e.interactionCount});return(0,J.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,J.jsx)(H,{title:j,accessory:(0,J.jsx)(Y,{role:e.role,contactType:e.contactType}),compactAccessory:!0,subtitle:M,children:(0,J.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,J.jsx)(I,{label:v(`contact.nameLabel`),type:`text`,value:ee,onChange:e=>te(e.target.value),placeholder:v(`contactDetailView.namePlaceholder`),autoFocus:y,disabled:t||r,fullWidth:!0}),(0,J.jsx)(I,{label:v(`contact.notesLabel`),type:`text`,value:b,onChange:e=>x(e.target.value),placeholder:v(`contactDetailView.notesPlaceholder`),disabled:t||r,fullWidth:!0}),(0,J.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,J.jsx)(i,{type:`button`,onClick:()=>d({displayName:w,notes:T}),disabled:!k,children:v(t?`actions.saving`:`actions.save`)}),p?(0,J.jsx)(i,{type:`button`,variant:`outlined`,onClick:p,disabled:!s||A||O||o||t||r,title:s?A?v(`contactDetailView.mergeBlockedUnsavedDraft`):O?v(`contact.mergeBlockedUnsaved`):void 0:v(`contact.mergeBlockedNoCandidates`),children:v(o?`actions.merging`:`actions.merge`)}):null,(0,J.jsx)(i,{type:`button`,variant:`danger`,onClick:()=>{A?f():C(!0)},disabled:r,children:v(r?`actions.deleting`:`contactDetailView.delete`)})]})]})}),(0,J.jsx)(H,{title:v(`contactDetailView.linkedAccountsTitle`),subtitle:v(`contactDetailView.linkedAccountsSubtitle`),children:(0,J.jsx)(Q,{contactChannels:e.channels,availableChannels:c,channelsLoadFailed:l,a2aEnabled:u,verifyLoading:a,verifySubject:`contact`,onSetupChannel:m,onVerifyChannel:h,onRevokeChannel:g,onLinkAccount:_})}),(0,J.jsx)(R,{open:S,title:v(`contactDetailView.deleteConfirmTitle`,{name:j}),message:v(`contactDetailView.deleteConfirmMessage`),confirmLabel:v(`actions.delete`),destructive:!0,onConfirm:()=>{C(!1),f()},onCancel:()=>C(!1)})]})}function Be(e){return(0,J.jsx)(Ve,{...e},`${e.survivor.id}:${e.open?`open`:`closed`}`)}function Ve({open:e,survivor:t,candidates:r,pending:a,errorMessage:o,onMerge:s,onClose:c}){let{t:l}=n(`contacts`),[u,d]=(0,K.useState)(``),[p,m]=(0,K.useState)(null);(0,K.useEffect)(()=>{p&&!r.some(e=>e.id===p)&&m(null)},[r,p]);let h=(0,K.useMemo)(()=>{let e=u.trim().toLowerCase();return e?r.filter(t=>t.displayName.toLowerCase().includes(e)):r},[r,u]),_=p?r.find(e=>e.id===p)??null:null,v=Ke(t);return(0,J.jsx)(L.Root,{open:e,onOpenChange:e=>{!e&&!a&&c()},children:(0,J.jsxs)(L.Content,{size:`md`,children:[(0,J.jsxs)(L.Header,{icon:Te,children:[(0,J.jsx)(L.Title,{children:_?l(`contactMergeDialog.titlePicked`,{donor:_.displayName,survivor:v}):l(`contactMergeDialog.titlePicking`,{survivor:v})}),(0,J.jsx)(L.Description,{children:l(_?`contactMergeDialog.descriptionPicked`:`contactMergeDialog.descriptionPicking`)})]}),(0,J.jsxs)(L.Body,{className:`flex flex-col gap-3`,children:[_?(0,J.jsx)(We,{survivor:t,donor:_}):r.length===0?(0,J.jsx)(Ge,{}):(0,J.jsx)(He,{search:u,onSearch:d,candidates:h,onPick:m}),o?(0,J.jsx)(f,{as:`p`,variant:`body-small-default`,className:`text-(--system-negative-strong)`,role:`alert`,children:o}):null]}),(0,J.jsx)(L.Footer,{children:_?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(i,{variant:`outlined`,onClick:()=>m(null),disabled:a,leftIcon:(0,J.jsx)(g,{"aria-hidden":!0}),children:l(`actions.back`)}),(0,J.jsx)(i,{variant:`danger`,onClick:()=>s(_.id),disabled:a,children:l(a?`actions.merging`:`contactMergeDialog.confirm`)})]}):(0,J.jsx)(i,{variant:`outlined`,onClick:c,disabled:a,children:l(`actions.cancel`)})})]})})}function He({search:e,onSearch:t,candidates:r,onPick:i}){let{t:a}=n(`contacts`);return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(I,{type:`text`,value:e,onChange:e=>t(e.target.value),placeholder:a(`contactMergeDialog.searchPlaceholder`),leftIcon:(0,J.jsx)(N,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),fullWidth:!0}),(0,J.jsx)(`div`,{className:`flex max-h-[320px] min-h-[120px] flex-col gap-1 overflow-y-auto`,role:`listbox`,"aria-label":a(`contactMergeDialog.listAriaLabel`),children:r.length===0?(0,J.jsx)(f,{as:`p`,variant:`body-small-default`,className:`px-3 py-4 text-center text-(--content-tertiary)`,children:a(`contactsList.noMatches`)}):r.map(e=>(0,J.jsx)(Ue,{contact:e,onPick:()=>i(e.id)},e.id))})]})}function Ue({contact:e,onPick:t}){let n=Je(e).join(` | `)||void 0;return(0,J.jsx)(m,{asChild:!0,children:(0,J.jsx)(`button`,{type:`button`,onClick:t,role:`option`,"aria-selected":`false`,className:`flex h-auto w-full items-center gap-2 rounded-[6px] px-[8px] py-2 text-left`,children:(0,J.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,J.jsx)(`span`,{className:`truncate text-body-medium-default`,children:e.displayName}),n?(0,J.jsx)(`span`,{className:`truncate text-body-small-default text-(--content-tertiary)`,children:n}):null]})})})}function We({survivor:e,donor:t}){let{t:r}=n(`contacts`),i=Ke(e),{moved:a,duplicates:o}=qe(e,t);return(0,J.jsxs)(`ul`,{className:`flex flex-col gap-2 text-body-medium-lighter text-(--content-secondary)`,children:[(0,J.jsx)(`li`,{children:(0,J.jsx)(z,{i18nKey:`contactMergeDialog.donorDeleted`,ns:`contacts`,values:{donor:t.displayName},components:{donor:(0,J.jsx)(`span`,{className:`text-(--content-default)`})}})}),(0,J.jsx)(`li`,{children:r(`contactMergeDialog.channelsMoved`,{count:a.length,survivor:i,channels:a.map(e=>q(e.type)).join(`, `)})}),o.length>0?(0,J.jsx)(`li`,{className:`text-(--content-tertiary)`,children:r(`contactMergeDialog.duplicatesSkipped`,{count:o.length,survivor:i})}):null,t.notes?(0,J.jsx)(`li`,{children:r(`contactMergeDialog.notesAppended`)}):null,(0,J.jsx)(`li`,{className:`text-(--content-tertiary)`,children:r(`contactMergeDialog.irreversible`)})]})}function Ge(){let{t:e}=n(`contacts`);return(0,J.jsx)(f,{as:`p`,variant:`body-medium-lighter`,className:`px-3 py-6 text-center text-(--content-tertiary)`,children:e(`contactMergeDialog.empty`)})}function Ke(e){return e.role===`guardian`?!e.displayName||e.displayName.startsWith(`vellum-principal-`)?t(`survivorName.you`,{ns:`contacts`}):t(`survivorName.youNamed`,{ns:`contacts`,name:e.displayName}):e.displayName||t(`survivorName.thisContact`,{ns:`contacts`})}function qe(e,t){let n=[],r=[];for(let i of t.channels)i.status!==`revoked`&&(e.channels.some(e=>e.type===i.type&&e.address.toLowerCase()===i.address.toLowerCase())?r.push(i):n.push(i));return{moved:n,duplicates:r}}function Je(e){let t=new Set,n=[];for(let r of e.channels){if(r.status===`revoked`)continue;let e=r.type.toLowerCase();t.has(e)||(t.add(e),n.push(q(e)))}return n}function Ye({loading:e,guardian:t,assistantName:r,regularContacts:a,selection:o,onSelect:s,onAddContact:c,addingContact:l=!1,search:u,onSearchChange:d}){let{t:f}=n(`contacts`),m=u.trim()?a.filter(e=>e.displayName.toLowerCase().includes(u.trim().toLowerCase())):a;return(0,J.jsx)(p.Root,{className:`flex h-full flex-col overflow-hidden`,children:(0,J.jsxs)(p.Body,{className:`flex min-h-0 min-w-0 flex-1 flex-col gap-4`,children:[(0,J.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,J.jsx)(`h2`,{className:`text-title-medium`,style:{color:`var(--content-default)`},children:f(`contactsList.heading`)}),(0,J.jsx)(i,{type:`button`,variant:`ghost`,iconOnly:l?(0,J.jsx)(k,{className:`animate-spin`,"aria-hidden":!0}):(0,J.jsx)(ne,{"aria-hidden":!0}),onClick:c,disabled:l,"aria-label":f(`contactsList.addAriaLabel`),tintColor:`var(--content-secondary)`})]}),(0,J.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[t?(0,J.jsx)(Xe,{name:t.displayName?f(`contactsList.youNamed`,{name:t.displayName}):f(`contactsList.you`),role:t.role,channelTypes:t.channelTypes,selected:o?.kind===`contact`&&o.contactId===t.id,onClick:()=>s({kind:`contact`,contactId:t.id}),trailingIcon:`pencil`}):null,(0,J.jsx)(Xe,{name:r?.trim()||f(`contactsList.assistantFallback`),role:`assistant`,selected:o?.kind===`assistant`,onClick:()=>s({kind:`assistant`}),trailingIcon:`more`})]}),(0,J.jsx)(`div`,{className:`border-t`,style:{borderColor:`var(--border-base)`}}),a.length>0?(0,J.jsx)(I,{type:`text`,value:u,onChange:e=>d(e.target.value),placeholder:f(`contactsList.searchPlaceholder`),leftIcon:(0,J.jsx)(N,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),fullWidth:!0}):null,a.length>0?(0,J.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto flex flex-col gap-1`,children:[m.map(e=>(0,J.jsx)(Xe,{name:e.displayName,role:e.role,contactType:e.contactType,channelTypes:e.channelTypes,verified:e.verified,selected:o?.kind===`contact`&&o.contactId===e.id,onClick:()=>s({kind:`contact`,contactId:e.id}),trailingIcon:`more`},e.id)),m.length===0?(0,J.jsx)(`p`,{className:`px-3 py-4 text-center text-body-small-default`,style:{color:`var(--content-tertiary)`},children:f(`contactsList.noMatches`)}):null]}):e?null:(0,J.jsx)(i,{type:`button`,variant:`ghost`,onClick:c,disabled:l,tintColor:`var(--primary-base)`,leftIcon:l?(0,J.jsx)(k,{className:`animate-spin`,"aria-hidden":!0}):(0,J.jsx)(P,{"aria-hidden":!0}),children:f(`contactsList.add`)})]})})}function Xe({name:e,role:t,contactType:r,channelTypes:i,selected:a,onClick:o,trailingIcon:s,verified:c}){let{t:l}=n(`contacts`),u=i&&i.length>0?i.join(` | `):void 0,d=s===`pencil`?(0,J.jsx)(M,{className:`h-3.5 w-3.5 text-[color:var(--content-tertiary)]`,"aria-hidden":!0}):s===`more`?(0,J.jsx)(D,{className:`h-3.5 w-3.5 text-[color:var(--content-tertiary)]`,"aria-hidden":!0}):void 0;return(0,J.jsx)(m,{asChild:!0,active:a,children:(0,J.jsxs)(`button`,{type:`button`,onClick:o,className:`flex h-auto w-full items-center gap-2 rounded-[6px] px-[8px] py-2 text-left`,children:[(0,J.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,J.jsx)(`span`,{className:`truncate text-body-medium-default`,children:e}),u?(0,J.jsx)(`span`,{className:`truncate text-body-small-default`,style:{color:`var(--content-tertiary)`},children:u}):null]}),(0,J.jsxs)(`span`,{className:`flex shrink-0 items-center gap-1`,children:[c===void 0?null:(0,J.jsx)(F,{tone:c?`positive`:`neutral`,children:l(c?`contactsList.verified`:`contactsList.unverified`)}),(0,J.jsx)(Y,{role:t,contactType:r}),d]})]})})}function Ze(e){return(0,J.jsx)(Qe,{...e},e.contact.id)}function Qe({contact:e,savePending:t,verifyPending:r,mergePending:a=!1,canMerge:o=!1,availableChannels:s,channelsLoadFailed:c,a2aEnabled:l,onSave:u,onMerge:d,onSetupChannel:f,onVerifyChannel:p,onRevokeChannel:m,onGenerateInviteLink:h}){let{t:g}=n(`contacts`),_=e.displayName.startsWith(`vellum-principal-`),v=_?``:e.displayName,[y,ee]=(0,K.useState)(v),[te,b]=(0,K.useState)(e.notes??``),x=y.trim(),S=te.trim(),C=x!==v.trim()||S!==(e.notes??``).trim(),w=C&&!t,T=g(`contact.interactions`,{count:e.interactionCount});return(0,J.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,J.jsx)(H,{title:_?g(`contactsList.you`):g(`contactsList.youNamed`,{name:e.displayName}),accessory:(0,J.jsx)(Y,{role:`guardian`}),compactAccessory:!0,subtitle:T,children:(0,J.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,J.jsx)(I,{label:g(`contact.nameLabel`),type:`text`,value:y,onChange:e=>ee(e.target.value),placeholder:g(`guardianDetailView.namePlaceholder`),disabled:t,fullWidth:!0}),(0,J.jsx)(I,{label:g(`contact.notesLabel`),type:`text`,value:te,onChange:e=>b(e.target.value),placeholder:g(`guardianDetailView.notesPlaceholder`),disabled:t,fullWidth:!0}),(0,J.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,J.jsx)(i,{variant:`primary`,onClick:()=>u({displayName:x||e.displayName,notes:S}),disabled:!w,children:g(t?`actions.saving`:`actions.save`)}),d?(0,J.jsx)(i,{variant:`outlined`,onClick:d,disabled:!o||C||a||t,title:o?C?g(`contact.mergeBlockedUnsaved`):void 0:g(`contact.mergeBlockedNoCandidates`),children:g(a?`actions.merging`:`actions.merge`)}):null]})]})}),(0,J.jsx)(H,{title:g(`guardianDetailView.channelsTitle`),subtitle:g(`guardianDetailView.channelsSubtitle`),children:(0,J.jsx)(Q,{contactChannels:e.channels,availableChannels:s,channelsLoadFailed:c,a2aEnabled:l,setupLabel:g(`guardianDetailView.setupLabel`),verifyLoading:r,onSetupChannel:f,onVerifyChannel:p,onRevokeChannel:m})}),h?(0,J.jsx)(U,{onClick:h}):null]})}function $e(e,t){let n=t.trim().toLowerCase().replace(/^@/,``);return n===``?e:e.filter(e=>e.displayName.toLowerCase().includes(n)||e.username.toLowerCase().includes(n))}function et(e){let t=e.trim().split(/\s+/).filter(Boolean);return`${t[0]?.[0]??`?`}${t.length>1?t[t.length-1]?.[0]??``:``}`.toUpperCase()}function tt({open:e,channelLabel:t,contactName:r,accounts:a,loading:o,errorMessage:s,pendingAccountId:c,onPick:l,onClose:u,onInviteInstead:d}){let{t:f}=n(`contacts`),[p,m]=(0,K.useState)(``);(0,K.useEffect)(()=>{e&&m(``)},[e]);let h=(0,K.useMemo)(()=>$e(a??[],p),[a,p]),g=c!=null;return(0,J.jsx)(L.Root,{open:e,onOpenChange:e=>!e&&u(),children:(0,J.jsxs)(L.Content,{size:`sm`,children:[(0,J.jsxs)(L.Header,{children:[(0,J.jsx)(L.Title,{children:f(`linkAccountDialog.title`,{channel:t})}),(0,J.jsx)(L.Description,{children:(0,J.jsx)(z,{i18nKey:`linkAccountDialog.description`,ns:`contacts`,values:{channel:t,name:r},components:{contact:(0,J.jsx)(`span`,{className:`text-[color:var(--content-default)]`})}})})]}),(0,J.jsxs)(L.Body,{className:`flex flex-col gap-3`,children:[(0,J.jsx)(I,{type:`search`,value:p,onChange:e=>m(e.target.value),placeholder:f(`linkAccountDialog.searchPlaceholder`),"aria-label":f(`linkAccountDialog.searchAriaLabel`,{channel:t}),leftIcon:(0,J.jsx)(N,{className:`h-4 w-4`}),fullWidth:!0}),s?(0,J.jsx)(`p`,{className:`text-body-small-default text-[color:var(--content-negative)]`,children:s}):null,(0,J.jsx)(`div`,{className:`max-h-80 overflow-y-auto`,children:o?(0,J.jsx)(`p`,{className:`py-4 text-center text-body-small-default text-[color:var(--content-tertiary)]`,children:f(`linkAccountDialog.loading`)}):h.length===0?(0,J.jsx)(`p`,{className:`py-4 text-center text-body-small-default text-[color:var(--content-tertiary)]`,children:(a?.length??0)===0?f(`linkAccountDialog.noMembers`):f(`linkAccountDialog.noMatches`)}):(0,J.jsx)(`ul`,{className:`flex flex-col`,children:h.map(e=>(0,J.jsx)(`li`,{children:(0,J.jsxs)(`button`,{type:`button`,onClick:()=>l(e),disabled:g,className:`flex w-full cursor-pointer items-center gap-3 rounded-md px-2 py-2 text-left transition-colors hover:bg-[var(--surface-overlay)] disabled:cursor-not-allowed disabled:opacity-60`,children:[e.imageUrl?(0,J.jsx)(`img`,{src:e.imageUrl,alt:``,className:`h-8 w-8 shrink-0 rounded-full`}):(0,J.jsx)(`span`,{"aria-hidden":`true`,className:`flex h-8 w-8 shrink-0 items-center justify-center rounded-full bg-[var(--tag-bg-neutral)] text-body-small-emphasised text-[color:var(--content-secondary)]`,children:et(e.displayName)}),(0,J.jsxs)(`span`,{className:`flex min-w-0 flex-col`,children:[(0,J.jsx)(`span`,{className:`truncate text-body-medium-default text-[color:var(--content-default)]`,children:e.displayName}),(0,J.jsxs)(`span`,{className:`truncate text-body-small-default text-[color:var(--content-tertiary)]`,children:[`@`,e.username]})]}),c===e.id?(0,J.jsx)(`span`,{className:`ml-auto shrink-0 text-body-small-default text-[color:var(--content-tertiary)]`,children:f(`linkAccountDialog.linking`)}):null]})},e.id))})})]}),(0,J.jsxs)(L.Footer,{className:`items-center justify-between gap-3 border-t border-[var(--border-base)]`,children:[(0,J.jsx)(`p`,{className:`text-body-small-default text-[color:var(--content-tertiary)]`,children:(0,J.jsx)(z,{i18nKey:`linkAccountDialog.guardianLinkNote`,ns:`contacts`,components:{emphasis:(0,J.jsx)(`span`,{className:`text-[color:var(--content-secondary)]`})}})}),d?(0,J.jsxs)(i,{variant:`link`,className:`shrink-0`,onClick:d,disabled:g,children:[f(`linkAccountDialog.inviteInstead`),(0,J.jsx)(_,{className:`h-3.5 w-3.5`})]}):null]})]})})}function nt({assistantId:e,channelType:n,contact:r,onLinked:i}){let[a,o]=(0,K.useState)(!1),s=u({mutationFn:t=>W(e,t.contact,{type:n,address:t.account.id}),onSuccess:(e,n)=>{o(!1),ie.success(t(`accountLink.linked`,{ns:`contacts`,username:n.account.username})),i()}}),c=(0,K.useCallback)(()=>{s.reset(),o(!0)},[s]),l=(0,K.useCallback)(()=>{s.isPending||(s.reset(),o(!1))},[s]),d=(0,K.useCallback)(e=>{!r||s.isPending||s.mutate({contact:r,account:e})},[r,s]);return{channelType:n,dialogOpen:a,open:c,close:l,linkErrorMessage:s.error instanceof Error?s.error.message:s.error?t(`accountLink.linkFailed`,{ns:`contacts`}):null,pendingAccountId:s.isPending?s.variables.account.id:null,pick:d}}var rt=[{id:`slack`,source:`default`,label:`Slack`,subtitle:`Message your assistant from Slack`,icon:`hash`,supportsVerification:!0,setupMessages:{guardian:`I'd like to verify my identity as your guardian on Slack. Can you help me set that up?`,contact:`I'd like to verify a contact's Slack identity. Can you walk me through it?`}},{id:`telegram`,source:`default`,label:`Telegram`,subtitle:`Message your assistant from Telegram`,icon:`send`,supportsVerification:!0,setupMessages:{guardian:`I'd like to verify my identity as your guardian on Telegram. Can you help me set that up?`,contact:`I'd like to verify a contact's Telegram identity. Can you walk me through it?`}},{id:`phone`,source:`default`,label:`Phone Calling`,subtitle:`Call or text your assistant via phone`,icon:`phone`,supportsVerification:!0,setupMessages:{guardian:`I'd like to verify my identity as your guardian for phone calls. Can you help me set that up?`,contact:`I'd like to verify a contact's phone number. Can you help me set that up?`}}],it=[];function at({assistantId:e,onStartSetupConversation:t}){let{t:r}=n(`contacts`),i=me.use.a2aChannel(),a=ae.use.name(),d=c(),[f]=o(),p=f.get(`setup`),m=p&&te(p)?p:null,[h,g]=(0,K.useState)({kind:`assistant`}),_=xe(e),{paneRef:v,hasRoomForList:b,drawerOpen:x,openDrawer:S,closeDrawer:C}=_e(),[w,T]=(0,K.useState)(``),[E,D]=(0,K.useState)(!1),O=y(a),k=(0,K.useMemo)(()=>({path:{assistant_id:e}}),[e]),A=ce(k),j=l({...fe(k),enabled:!!e,select:e=>e.contacts}),M=be({assistantId:e,onStartSetupConversation:t}),ne=l({...le({path:{assistant_id:e}}),enabled:!!e,queryFn:async({signal:t})=>{let{data:n,error:r,response:i}=await oe({path:{assistant_id:e},signal:t,throwOnError:!1});if(i?.status===404)return{channels:rt};if(!i||!i.ok)throw r??Error(`Failed to fetch channel availability`);return n},select:e=>e.channels}),N=ne.data??it,re=ne.isError,P=j.data,F=(0,K.useMemo)(()=>P?.find(e=>e.role===`guardian`)??null,[P]),I=(0,K.useMemo)(()=>P?.filter(e=>e.role!==`guardian`)??[],[P]),L=(0,K.useMemo)(()=>h.kind===`contact`?P?.find(e=>e.id===h.contactId)??null:null,[P,h]),R=(0,K.useMemo)(()=>!P||!L?[]:P.filter(e=>e.id!==L.id&&e.role!==`guardian`),[P,L]),z=R.length>0,pe=(0,K.useRef)(!!m);(0,K.useEffect)(()=>{pe.current||F&&(pe.current=!0,g({kind:`contact`,contactId:F.id}))},[F]);let V=(0,K.useCallback)(()=>d.invalidateQueries({queryKey:A}),[d,A]),H=u({mutationFn:()=>Ce(e,{displayName:ke}),onMutate:async()=>{await d.cancelQueries({queryKey:A})},onSuccess:e=>{B(d,k,t=>t?{...t,contacts:[...t.contacts,e]}:void 0),g({kind:`contact`,contactId:e.id})},onError:ve(r(`contactsPage.createFailed`)),onSettled:()=>V()}),U=u({mutationFn:t=>we(e,t),onSuccess:(e,t)=>{B(d,k,e=>e?{...e,contacts:e.contacts.filter(e=>e.id!==t)}:void 0),g({kind:`assistant`})},onError:ve(r(`contactsPage.deleteFailed`)),onSettled:()=>V()}),W=u({mutationFn:({contactId:t,patch:n})=>Ce(e,{id:t,displayName:n.displayName,notes:n.notes}),onSuccess:e=>{B(d,k,t=>t?{...t,contacts:t.contacts.map(t=>t.id===e.id?e:t)}:void 0)},onError:ve(r(`contactsPage.saveFailed`)),onSettled:()=>V()}),G=de({onMutate:async()=>{await d.cancelQueries({queryKey:A})},onSuccess:(e,t)=>{let n=e.contact,i=t.body.mergeId;n&&(B(d,k,e=>e?{...e,contacts:e.contacts.filter(e=>e.id!==i).map(e=>e.id===n.id?n:e)}:void 0),g({kind:`contact`,contactId:n.id})),D(!1),ie.success(r(`contactsPage.mergeSucceeded`))},onSettled:()=>V()}),Te=(0,K.useCallback)(e=>{g(e),C(),D(!1),G.reset()},[C,G]),Ee=(0,K.useCallback)(()=>{G.reset(),D(!0)},[G]),De=(0,K.useCallback)(()=>{G.isPending||(D(!1),G.reset())},[G]),Oe=ue({onSuccess:()=>V()}),Ae=(0,K.useCallback)((t,n)=>{Oe.mutate({path:{assistant_id:e,contactChannelId:t},body:{status:`revoked`}})},[Oe,e]),je=(0,K.useCallback)(()=>{H.isPending||H.mutate()},[H]),Me=(0,K.useCallback)(e=>{if(!t)return;let n=N.find(t=>t.id===e)?.setupMessages.contact;n&&t(n)},[N,t]),Y=(0,K.useCallback)(e=>{if(!t)return;let n=N.find(t=>t.id===e)?.setupMessages.guardian;n&&t(n)},[N,t]),X=u({mutationFn:t=>Se(e,t.channelId),onSuccess:()=>V(),onError:ve(r(`contactsPage.verifyFailed`))}),Pe=(0,K.useCallback)(e=>{if(!L)return;let t=L.channels.find(t=>t.type===e&&t.status!==`revoked`);t&&X.mutate({channelId:t.id})},[L,X]),Z=nt({assistantId:e,channelType:`slack`,contact:L?{id:L.id,displayName:L.displayName}:null,onLinked:V}),Fe=l({...ee(e),enabled:!!e&&Z.dialogOpen,select:e=>e.users}),Ie=M.channels.some(e=>e.key===`slack`&&e.configured),Le=(0,K.useCallback)(e=>{e===Z.channelType&&Z.open()},[Z]),Q=U.isPending?U.variables:null,$=(0,K.useMemo)(()=>L?W.isPending&&W.variables?.contactId===L.id?{...L,displayName:W.variables.patch.displayName,notes:W.variables.patch.notes}:L:null,[L,W.isPending,W.variables]);if(m)return(0,J.jsx)(s,{to:`${se.channels}?setup=${m}`,replace:!0});let ze={loading:j.isLoading,assistantName:O,guardian:F?{id:F.id,displayName:F.displayName.startsWith(`vellum-principal-`)?``:F.displayName,role:F.role,channelTypes:ct(F.channels,i)}:null,regularContacts:I.filter(e=>e.id!==Q).map(e=>({id:e.id,displayName:e.displayName,role:e.role,contactType:e.contactType,channelTypes:ct(e.channels,i),verified:st(e.channels)})),selection:h,onAddContact:je,addingContact:H.isPending,search:w,onSearchChange:T};return(0,J.jsxs)(`div`,{ref:v,className:`flex min-h-0 flex-1 overflow-hidden ${b?`flex-row gap-6`:`flex-col gap-4`}`,children:[b?(0,J.jsx)(`aside`,{className:`min-h-0 w-[320px] shrink-0 overflow-y-auto self-stretch`,children:(0,J.jsx)(Ye,{...ze,onSelect:Te})}):(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`div`,{className:`flex items-center`,children:(0,J.jsx)(ge,{onClick:S})}),(0,J.jsx)(he,{open:x,onClose:C,title:r(`contactsPage.title`),children:(0,J.jsx)(Ye,{...ze,onSelect:Te})})]}),(0,J.jsx)(`section`,{className:`min-h-0 min-w-0 flex-1 overflow-y-auto`,children:h.kind===`assistant`||h.kind===`contact`&&h.contactId===Q?(0,J.jsx)(Ne,{assistantName:O,channels:M.channels,pendingChannelKey:M.pendingChannelKey,onConnect:M.onSetup,onDisconnect:M.onDisconnect}):$?$.role===`guardian`?(0,J.jsx)(Ze,{contact:$,savePending:W.isPending,verifyPending:X.isPending,mergePending:G.isPending,canMerge:z,availableChannels:N,channelsLoadFailed:re,a2aEnabled:i,onSave:e=>{W.mutate({contactId:$.id,patch:e})},onMerge:Ee,onSetupChannel:t?Y:void 0,onVerifyChannel:Pe,onRevokeChannel:Ae,onGenerateInviteLink:i?_.open:void 0}):(0,J.jsx)(Re,{contact:$,savePending:W.isPending,deletePending:U.isPending,verifyPending:X.isPending,mergePending:G.isPending,canMerge:z,availableChannels:N,channelsLoadFailed:re,a2aEnabled:i,onSave:e=>{W.mutate({contactId:$.id,patch:e})},onDelete:()=>{U.mutate($.id)},onMerge:Ee,onSetupChannel:t?Me:void 0,onVerifyChannel:Pe,onRevokeChannel:Ae,onLinkAccount:Ie?Le:void 0}):(0,J.jsx)(ot,{})}),L?(0,J.jsx)(Be,{open:E,survivor:L,candidates:R,pending:G.isPending,errorMessage:G.error instanceof Error?G.error.message:G.error?r(`contactsPage.mergeFailed`):null,onMerge:t=>G.mutate({path:{assistant_id:e},body:{keepId:L.id,mergeId:t}}),onClose:De}):null,(0,J.jsx)(tt,{open:Z.dialogOpen,channelLabel:q(`slack`),contactName:L?.displayName??``,accounts:Fe.data,loading:Fe.isLoading,errorMessage:Fe.isError?r(`contactsPage.rosterLoadFailed`):Z.linkErrorMessage,pendingAccountId:Z.pendingAccountId,onPick:Z.pick,onClose:Z.close,onInviteInstead:t?()=>{Z.close(),Me(Z.channelType)}:void 0}),(0,J.jsx)(ye,{open:_.isOpen,assistantId:e,onClose:_.close})]})}function ot(){let{t:e}=n(`contacts`);return(0,J.jsx)(`div`,{className:`flex h-full items-center justify-center py-16`,children:(0,J.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:e(`contactsPage.emptyBody`)})})}function st(e){return e.some(e=>e.status!==`revoked`&&(e.type===`a2a`||De(e)))}function ct(e,t){let n=new Set,r=[];for(let i of e){if(i.status===`revoked`)continue;let e=i.type.toLowerCase();n.has(e)||e===`a2a`&&!t||(n.add(e),r.push(q(e)))}return r}function lt(){let e=a(),t=V();return(0,J.jsx)(at,{assistantId:t,onStartSetupConversation:t=>{pe(e,{prompt:t})}},t)}export{lt as ContactsPageRoute};
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{k as t,v as n}from"./i18n-BDfnKs41.js";import{t as r}from"./react-DJZBPgpf.js";import{t as i}from"./button-B1kEAcLt.js";import{d as a,h as o,n as s}from"./chunk-5KNZJZUH-CPFsMQoz.js";import{n as c}from"./QueryClientProvider-BPZM68-A.js";import{t as l}from"./useQuery-BtL9k7Sh.js";import{t as u}from"./useMutation-Cl7cazkm.js";import{t as d}from"./jsx-runtime-COOF1INC.js";import{t as f}from"./typography-SdxpXI_m.js";import{t as p}from"./card-B4b9cF6X.js";import{n as m}from"./list-row-BvCm9O6y.js";import{t as h}from"./createLucideIcon-CMfEC_aW.js";import{t as g}from"./arrow-left-DUklm7Fd.js";import{t as _}from"./arrow-right-De7tYwD7.js";import{O as v,_ as y,a as ee,c as te,f as b,g as x,j as S,k as C,m as w,u as T}from"./use-save-twilio-credentials-CLM74CvJ.js";import{t as E}from"./circle-check-big-CHpJAmSB.js";import{t as D}from"./ellipsis-vertical-BJaOQqv_.js";import{t as O}from"./link-2-Di62Fo_i.js";import{t as k}from"./loader-circle-DZ65N8bz.js";import{t as A}from"./mail-CqdA6Y_p.js";import{t as j}from"./message-square-XpKWNcyv.js";import{t as M}from"./pencil-1uDrqXvV.js";import{t as ne}from"./plus-rgqTRjE1.js";import{t as N}from"./search-DYHr3LM9.js";import{t as re}from"./send-1mFY4II3.js";import{t as P}from"./user-plus-Bg01QRAF.js";import{t as F}from"./tag-DAsImP7W.js";import{t as I}from"./input-ChbJ2nzd.js";import{t as L}from"./modal-_49mDK_d.js";import{n as ie}from"./toast-BKrDuNtu.js";import{t as R}from"./confirm-dialog-EPYSBP_B.js";import{t as ae}from"./assistant-identity-store-DBkGjqzV.js";import{t as z}from"./Trans-v2rRKTPL.js";import{w as oe}from"./sdk.gen-BluU0h_N.js";import{f as se}from"./routes-C6ueuiMd.js";import{E as B,T as ce,c as le,nn as ue,rn as de,w as fe}from"./react-query.gen-C_GLKG7m.js";import{r as pe}from"./conversation-navigation-116d0b9Q.js";import{t as me}from"./assistant-feature-flag-store-Co_o5uD3.js";import{t as V}from"./use-active-assistant-id-lxYJu99R.js";import{t as H}from"./detail-card-D9EAxXI8.js";import{n as he,r as ge,t as _e}from"./use-side-list-room-Bq836e0c.js";import{c as ve,i as ye,n as be,r as U,t as xe}from"./use-invite-link-dialog-DRNVCYW4.js";import{a as Se,i as Ce,n as W,t as we}from"./contacts-gateway-DoiRPJZq.js";var G=h(`circle-question-mark`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3`,key:`1u773s`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]]),Te=h(`git-merge`,[[`circle`,{cx:`18`,cy:`18`,r:`3`,key:`1xkwt0`}],[`circle`,{cx:`6`,cy:`6`,r:`3`,key:`1lh9wr`}],[`path`,{d:`M6 21V9a9 9 0 0 0 9 9`,key:`7kw0sc`}]]),K=e(r(),1),Ee=new Set([`slack`]);function De(e){return e.status===`verified`||e.status===`active`&&e.verifiedAt!=null}function Oe(e){switch(e){case`slack`:return`channelType.slack`;case`telegram`:return`channelType.telegram`;case`discord`:return`channelType.discord`;case`whatsapp`:return`channelType.whatsapp`;case`a2a`:return`channelType.a2a`;case`phone`:return`channelType.phone`;case`email`:return`channelType.email`;default:return null}}function q(e){let n=Oe(e.toLowerCase());return n?t(n,{ns:`contacts`}):e}var ke=`New Contact`;function Ae(e){return e===ke}var J=d();function je({channels:e,pendingChannelKey:t=null,onConnect:r,onDisconnect:i}){let{t:a}=n(`contacts`),[o,s]=(0,K.useState)(null);return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`div`,{className:`flex flex-col`,children:e.map((e,n)=>(0,J.jsxs)(`div`,{children:[n>0?(0,J.jsx)(`div`,{className:`border-t`,style:{borderColor:`var(--border-base)`}}):null,(0,J.jsx)(Me,{channel:e,pending:t===e.key,onConnect:r?()=>r(e.key):void 0,onDisconnect:i?()=>s(e.key):void 0})]},e.key))}),(0,J.jsx)(R,{open:o!==null,title:a(`assistantContactChannels.disconnectConfirmTitle`,{channel:o?w(o):``}),message:a(`assistantContactChannels.disconnectConfirmMessage`),confirmLabel:a(`actions.disconnect`),destructive:!0,onConfirm:()=>{o&&i&&i(o),s(null)},onCancel:()=>s(null)})]})}function Me({channel:e,pending:t,onConnect:r,onDisconnect:a}){let{t:o}=n(`contacts`),s=e.configured,{Icon:c,label:l}=x(e.health);return(0,J.jsxs)(`div`,{className:`flex items-center gap-3 py-4`,children:[(0,J.jsx)(T,{channelId:e.key,className:`h-4 w-4 shrink-0 text-[color:var(--content-secondary)]`}),(0,J.jsx)(`span`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:w(e.key)}),s&&e.address?(0,J.jsx)(`span`,{className:`truncate text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:e.address}):null,(0,J.jsx)(`div`,{className:`ml-auto flex shrink-0 items-center gap-2`,children:s?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(`span`,{className:`inline-flex items-center gap-1 h-8 px-2.5 rounded-md whitespace-nowrap select-none text-body-small-emphasised leading-none bg-[var(--content-default)] text-[var(--surface-base)]`,children:[(0,J.jsx)(c,{className:`h-3 w-3`}),l]}),(0,J.jsx)(i,{variant:`danger`,onClick:a,disabled:!a||t,children:o(t?`actions.disconnecting`:`actions.disconnect`)})]}):(0,J.jsx)(i,{variant:`outlined`,onClick:r,disabled:!r||t,children:o(`actions.connect`)})})]})}function Y({role:e,contactType:t}){let{label:n,tone:r}=X(e,t);return(0,J.jsx)(F,{tone:r,children:n})}function X(e,t){switch(e){case`guardian`:return{label:`Guardian`,tone:`positive`};case`assistant`:return{label:`Assistant`,tone:`negative`};default:return t===`assistant`?{label:`Assistant`,tone:`negative`}:{label:`Human`,tone:`warning`}}}function Ne({assistantName:e,...t}){let{t:r}=n(`contacts`),i=y(e);return(0,J.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,J.jsx)(H,{title:r(`assistantChannelsDetail.title`,{name:i}),accessory:(0,J.jsx)(Y,{role:`assistant`}),compactAccessory:!0}),(0,J.jsx)(H,{title:r(`assistantChannelsDetail.channelsTitle`),subtitle:r(`assistantChannelsDetail.channelsSubtitle`,{name:i}),children:(0,J.jsx)(je,{...t})})]})}var Pe=new Set([`telegram`,`phone`,`vellum`,`whatsapp`,`slack`,`email`,`platform`,`a2a`]);function Z(e){return Pe.has(e)}function Fe(e,t){return e.id===`a2a`?t&&t.status!==`revoked`?{kind:`connected`}:{kind:`setup`}:t!=null&&De(t)?{kind:`verified`}:t?.status===`blocked`?{kind:`none`}:t&&t.status!==`revoked`?{kind:`unverified`}:{kind:`setup`}}function Ie(e,t,n){let r=[],i=new Set;if(e)for(let t of e)t.id===`a2a`&&!n||(r.push(t),i.add(t.id));for(let e of t)e.status===`revoked`||i.has(e.type)||e.type===`a2a`&&!n||Z(e.type)&&(r.push({id:e.type,source:`default`,label:e.type.charAt(0).toUpperCase()+e.type.slice(1),subtitle:``,icon:`help-circle`,supportsVerification:!1,setupMessages:{guardian:``,contact:``}}),i.add(e.type));return r}function Le({channelId:e,name:t,className:n,style:r}){let i=b(e);if(i)return(0,K.createElement)(i,{size:16,className:n,style:r});switch(t){case`bot`:return(0,J.jsx)(S,{className:n,style:r});case`hash`:return(0,J.jsx)(C,{className:n,style:r});case`send`:return(0,J.jsx)(re,{className:n,style:r});case`phone`:return(0,J.jsx)(v,{className:n,style:r});case`mail`:return(0,J.jsx)(A,{className:n,style:r});case`message-square`:return(0,J.jsx)(j,{className:n,style:r});default:return(0,J.jsx)(G,{className:n,style:r})}}function Q({contactChannels:e,availableChannels:t,channelsLoadFailed:r,a2aEnabled:i,setupLabel:a,verifyLoading:o,verifySubject:s=`self`,onSetupChannel:c,onVerifyChannel:l,onRevokeChannel:u,onLinkAccount:d}){let{t:f}=n(`contacts`),[p,m]=(0,K.useState)(null),[h,g]=(0,K.useState)(null),_=new Map;for(let t of e)t.status!==`revoked`&&(_.has(t.type)||_.set(t.type,t));let v=()=>{p&&(l?.(p.id),m(null))},y=Ie(t,e,i);return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(`div`,{className:`flex flex-col`,children:[r&&(0,J.jsx)(`div`,{className:`px-1 py-2 text-sm`,style:{color:`var(--content-secondary)`},role:`status`,children:f(`contactChannelsSection.loadFailed`)}),y.map((e,t)=>{let n=_.get(e.id);return(0,J.jsxs)(`div`,{children:[t>0&&(0,J.jsx)(`div`,{className:`border-t`,style:{borderColor:`var(--border-base)`}}),(0,J.jsx)($,{info:e,existing:n,setupLabel:a??f(`contactChannelsSection.setupDefault`),verifyLoading:o,onSetup:c?()=>c(e.id):void 0,onVerify:l&&e.supportsVerification?()=>m(e):void 0,onRevoke:u&&n?()=>g({channelId:n.id,channel:e}):void 0,onLinkAccount:d&&Ee.has(e.id)?()=>d(e.id):void 0})]},e.id)})]}),p&&(0,J.jsx)(R,{open:!0,title:f(`contactChannelsSection.verifyConfirmTitle`,{channel:p.label}),message:f(s===`contact`?`contactChannelsSection.verifyConfirmMessageContact`:`contactChannelsSection.verifyConfirmMessageGuardian`,{channel:p.label}),confirmLabel:f(`actions.verify`),onConfirm:v,onCancel:()=>m(null)}),h&&(0,J.jsx)(R,{open:!0,title:f(`contactChannelsSection.revokeConfirmTitle`,{channel:h.channel.label}),message:f(`contactChannelsSection.revokeConfirmMessage`),confirmLabel:f(`actions.revoke`),destructive:!0,onConfirm:()=>{u?.(h.channelId,h.channel.id),g(null)},onCancel:()=>g(null)})]})}function $({info:e,existing:t,setupLabel:r,verifyLoading:a,onSetup:o,onVerify:s,onRevoke:c,onLinkAccount:l}){let{t:u}=n(`contacts`),d=Fe(e,t);return(0,J.jsxs)(`div`,{className:`flex items-center gap-3 py-4`,children:[(0,J.jsx)(Le,{channelId:e.id,name:e.icon,className:`h-4 w-4 shrink-0`,style:{color:`var(--content-secondary)`}}),(0,J.jsx)(`span`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:e.label}),t?.address?(0,J.jsx)(`span`,{className:`truncate text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:t.address}):null,(0,J.jsx)(`div`,{className:`ml-auto flex shrink-0 items-center gap-2`,children:d.kind===`connected`?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(`span`,{className:`inline-flex items-center gap-1 h-8 px-2.5 rounded-md whitespace-nowrap select-none text-body-small-emphasised leading-none bg-[var(--content-default)] text-[var(--surface-base)]`,children:[(0,J.jsx)(E,{className:`h-3 w-3`}),u(`channelStatus.connected`)]}),c?(0,J.jsx)(i,{variant:`danger`,onClick:c,children:u(`actions.revoke`)}):null]}):d.kind===`verified`?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(`span`,{className:`inline-flex items-center gap-1 h-8 px-2.5 rounded-md whitespace-nowrap select-none text-body-small-emphasised leading-none bg-[var(--content-default)] text-[var(--surface-base)]`,children:[(0,J.jsx)(E,{className:`h-3 w-3`}),u(`channelStatus.verified`)]}),c?(0,J.jsx)(i,{variant:`danger`,onClick:c,children:u(`actions.revoke`)}):null]}):d.kind===`unverified`?(0,J.jsx)(i,{variant:`outlined`,onClick:s,disabled:!s||a,children:u(a?`actions.verifying`:`actions.verify`)}):d.kind===`setup`?e.id===`a2a`?null:(0,J.jsxs)(J.Fragment,{children:[l?(0,J.jsxs)(i,{onClick:l,children:[(0,J.jsx)(O,{className:`h-3.5 w-3.5`}),u(`contactChannelsSection.linkAccount`)]}):null,(0,J.jsx)(i,{variant:`outlined`,onClick:o,disabled:!o,children:r})]}):null})]})}function Re(e){return(0,J.jsx)(ze,{...e},e.contact.id)}function ze({contact:e,savePending:t,deletePending:r,verifyPending:a,mergePending:o=!1,canMerge:s=!1,availableChannels:c,channelsLoadFailed:l,a2aEnabled:u,onSave:d,onDelete:f,onMerge:p,onSetupChannel:m,onVerifyChannel:h,onRevokeChannel:g,onLinkAccount:_}){let{t:v}=n(`contacts`),y=Ae(e.displayName),[ee,te]=(0,K.useState)(y?``:e.displayName),[b,x]=(0,K.useState)(e.notes??``),[S,C]=(0,K.useState)(!1),w=ee.trim(),T=b.trim(),E=y?``:e.displayName,D=e.notes??``,O=w!==E||T!==D,k=w.length>0&&O&&!t&&!r,A=y&&e.channels.length===0&&e.interactionCount===0,j=w||(y?v(`contact.draftName`):e.displayName),M=v(`contact.interactions`,{count:e.interactionCount});return(0,J.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,J.jsx)(H,{title:j,accessory:(0,J.jsx)(Y,{role:e.role,contactType:e.contactType}),compactAccessory:!0,subtitle:M,children:(0,J.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,J.jsx)(I,{label:v(`contact.nameLabel`),type:`text`,value:ee,onChange:e=>te(e.target.value),placeholder:v(`contactDetailView.namePlaceholder`),autoFocus:y,disabled:t||r,fullWidth:!0}),(0,J.jsx)(I,{label:v(`contact.notesLabel`),type:`text`,value:b,onChange:e=>x(e.target.value),placeholder:v(`contactDetailView.notesPlaceholder`),disabled:t||r,fullWidth:!0}),(0,J.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,J.jsx)(i,{type:`button`,onClick:()=>d({displayName:w,notes:T}),disabled:!k,children:v(t?`actions.saving`:`actions.save`)}),p?(0,J.jsx)(i,{type:`button`,variant:`outlined`,onClick:p,disabled:!s||A||O||o||t||r,title:s?A?v(`contactDetailView.mergeBlockedUnsavedDraft`):O?v(`contact.mergeBlockedUnsaved`):void 0:v(`contact.mergeBlockedNoCandidates`),children:v(o?`actions.merging`:`actions.merge`)}):null,(0,J.jsx)(i,{type:`button`,variant:`danger`,onClick:()=>{A?f():C(!0)},disabled:r,children:v(r?`actions.deleting`:`contactDetailView.delete`)})]})]})}),(0,J.jsx)(H,{title:v(`contactDetailView.linkedAccountsTitle`),subtitle:v(`contactDetailView.linkedAccountsSubtitle`),children:(0,J.jsx)(Q,{contactChannels:e.channels,availableChannels:c,channelsLoadFailed:l,a2aEnabled:u,verifyLoading:a,verifySubject:`contact`,onSetupChannel:m,onVerifyChannel:h,onRevokeChannel:g,onLinkAccount:_})}),(0,J.jsx)(R,{open:S,title:v(`contactDetailView.deleteConfirmTitle`,{name:j}),message:v(`contactDetailView.deleteConfirmMessage`),confirmLabel:v(`actions.delete`),destructive:!0,onConfirm:()=>{C(!1),f()},onCancel:()=>C(!1)})]})}function Be(e){return(0,J.jsx)(Ve,{...e},`${e.survivor.id}:${e.open?`open`:`closed`}`)}function Ve({open:e,survivor:t,candidates:r,pending:a,errorMessage:o,onMerge:s,onClose:c}){let{t:l}=n(`contacts`),[u,d]=(0,K.useState)(``),[p,m]=(0,K.useState)(null);(0,K.useEffect)(()=>{p&&!r.some(e=>e.id===p)&&m(null)},[r,p]);let h=(0,K.useMemo)(()=>{let e=u.trim().toLowerCase();return e?r.filter(t=>t.displayName.toLowerCase().includes(e)):r},[r,u]),_=p?r.find(e=>e.id===p)??null:null,v=Ke(t);return(0,J.jsx)(L.Root,{open:e,onOpenChange:e=>{!e&&!a&&c()},children:(0,J.jsxs)(L.Content,{size:`md`,children:[(0,J.jsxs)(L.Header,{icon:Te,children:[(0,J.jsx)(L.Title,{children:_?l(`contactMergeDialog.titlePicked`,{donor:_.displayName,survivor:v}):l(`contactMergeDialog.titlePicking`,{survivor:v})}),(0,J.jsx)(L.Description,{children:l(_?`contactMergeDialog.descriptionPicked`:`contactMergeDialog.descriptionPicking`)})]}),(0,J.jsxs)(L.Body,{className:`flex flex-col gap-3`,children:[_?(0,J.jsx)(We,{survivor:t,donor:_}):r.length===0?(0,J.jsx)(Ge,{}):(0,J.jsx)(He,{search:u,onSearch:d,candidates:h,onPick:m}),o?(0,J.jsx)(f,{as:`p`,variant:`body-small-default`,className:`text-(--system-negative-strong)`,role:`alert`,children:o}):null]}),(0,J.jsx)(L.Footer,{children:_?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(i,{variant:`outlined`,onClick:()=>m(null),disabled:a,leftIcon:(0,J.jsx)(g,{"aria-hidden":!0}),children:l(`actions.back`)}),(0,J.jsx)(i,{variant:`danger`,onClick:()=>s(_.id),disabled:a,children:l(a?`actions.merging`:`contactMergeDialog.confirm`)})]}):(0,J.jsx)(i,{variant:`outlined`,onClick:c,disabled:a,children:l(`actions.cancel`)})})]})})}function He({search:e,onSearch:t,candidates:r,onPick:i}){let{t:a}=n(`contacts`);return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(I,{type:`text`,value:e,onChange:e=>t(e.target.value),placeholder:a(`contactMergeDialog.searchPlaceholder`),leftIcon:(0,J.jsx)(N,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),fullWidth:!0}),(0,J.jsx)(`div`,{className:`flex max-h-[320px] min-h-[120px] flex-col gap-1 overflow-y-auto`,role:`listbox`,"aria-label":a(`contactMergeDialog.listAriaLabel`),children:r.length===0?(0,J.jsx)(f,{as:`p`,variant:`body-small-default`,className:`px-3 py-4 text-center text-(--content-tertiary)`,children:a(`contactsList.noMatches`)}):r.map(e=>(0,J.jsx)(Ue,{contact:e,onPick:()=>i(e.id)},e.id))})]})}function Ue({contact:e,onPick:t}){let n=Je(e).join(` | `)||void 0;return(0,J.jsx)(m,{asChild:!0,children:(0,J.jsx)(`button`,{type:`button`,onClick:t,role:`option`,"aria-selected":`false`,className:`flex h-auto w-full items-center gap-2 rounded-[6px] px-[8px] py-2 text-left`,children:(0,J.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,J.jsx)(`span`,{className:`truncate text-body-medium-default`,children:e.displayName}),n?(0,J.jsx)(`span`,{className:`truncate text-body-small-default text-(--content-tertiary)`,children:n}):null]})})})}function We({survivor:e,donor:t}){let{t:r}=n(`contacts`),i=Ke(e),{moved:a,duplicates:o}=qe(e,t);return(0,J.jsxs)(`ul`,{className:`flex flex-col gap-2 text-body-medium-lighter text-(--content-secondary)`,children:[(0,J.jsx)(`li`,{children:(0,J.jsx)(z,{i18nKey:`contactMergeDialog.donorDeleted`,ns:`contacts`,values:{donor:t.displayName},components:{donor:(0,J.jsx)(`span`,{className:`text-(--content-default)`})}})}),(0,J.jsx)(`li`,{children:r(`contactMergeDialog.channelsMoved`,{count:a.length,survivor:i,channels:a.map(e=>q(e.type)).join(`, `)})}),o.length>0?(0,J.jsx)(`li`,{className:`text-(--content-tertiary)`,children:r(`contactMergeDialog.duplicatesSkipped`,{count:o.length,survivor:i})}):null,t.notes?(0,J.jsx)(`li`,{children:r(`contactMergeDialog.notesAppended`)}):null,(0,J.jsx)(`li`,{className:`text-(--content-tertiary)`,children:r(`contactMergeDialog.irreversible`)})]})}function Ge(){let{t:e}=n(`contacts`);return(0,J.jsx)(f,{as:`p`,variant:`body-medium-lighter`,className:`px-3 py-6 text-center text-(--content-tertiary)`,children:e(`contactMergeDialog.empty`)})}function Ke(e){return e.role===`guardian`?!e.displayName||e.displayName.startsWith(`vellum-principal-`)?t(`survivorName.you`,{ns:`contacts`}):t(`survivorName.youNamed`,{ns:`contacts`,name:e.displayName}):e.displayName||t(`survivorName.thisContact`,{ns:`contacts`})}function qe(e,t){let n=[],r=[];for(let i of t.channels)i.status!==`revoked`&&(e.channels.some(e=>e.type===i.type&&e.address.toLowerCase()===i.address.toLowerCase())?r.push(i):n.push(i));return{moved:n,duplicates:r}}function Je(e){let t=new Set,n=[];for(let r of e.channels){if(r.status===`revoked`)continue;let e=r.type.toLowerCase();t.has(e)||(t.add(e),n.push(q(e)))}return n}function Ye({loading:e,guardian:t,assistantName:r,regularContacts:a,selection:o,onSelect:s,onAddContact:c,addingContact:l=!1,search:u,onSearchChange:d}){let{t:f}=n(`contacts`),m=u.trim()?a.filter(e=>e.displayName.toLowerCase().includes(u.trim().toLowerCase())):a;return(0,J.jsx)(p.Root,{className:`flex h-full flex-col overflow-hidden`,children:(0,J.jsxs)(p.Body,{className:`flex min-h-0 min-w-0 flex-1 flex-col gap-4`,children:[(0,J.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,J.jsx)(`h2`,{className:`text-title-medium`,style:{color:`var(--content-default)`},children:f(`contactsList.heading`)}),(0,J.jsx)(i,{type:`button`,variant:`ghost`,iconOnly:l?(0,J.jsx)(k,{className:`animate-spin`,"aria-hidden":!0}):(0,J.jsx)(ne,{"aria-hidden":!0}),onClick:c,disabled:l,"aria-label":f(`contactsList.addAriaLabel`),tintColor:`var(--content-secondary)`})]}),(0,J.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[t?(0,J.jsx)(Xe,{name:t.displayName?f(`contactsList.youNamed`,{name:t.displayName}):f(`contactsList.you`),role:t.role,channelTypes:t.channelTypes,selected:o?.kind===`contact`&&o.contactId===t.id,onClick:()=>s({kind:`contact`,contactId:t.id}),trailingIcon:`pencil`}):null,(0,J.jsx)(Xe,{name:r?.trim()||f(`contactsList.assistantFallback`),role:`assistant`,selected:o?.kind===`assistant`,onClick:()=>s({kind:`assistant`}),trailingIcon:`more`})]}),(0,J.jsx)(`div`,{className:`border-t`,style:{borderColor:`var(--border-base)`}}),a.length>0?(0,J.jsx)(I,{type:`text`,value:u,onChange:e=>d(e.target.value),placeholder:f(`contactsList.searchPlaceholder`),leftIcon:(0,J.jsx)(N,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),fullWidth:!0}):null,a.length>0?(0,J.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto flex flex-col gap-1`,children:[m.map(e=>(0,J.jsx)(Xe,{name:e.displayName,role:e.role,contactType:e.contactType,channelTypes:e.channelTypes,verified:e.verified,selected:o?.kind===`contact`&&o.contactId===e.id,onClick:()=>s({kind:`contact`,contactId:e.id}),trailingIcon:`more`},e.id)),m.length===0?(0,J.jsx)(`p`,{className:`px-3 py-4 text-center text-body-small-default`,style:{color:`var(--content-tertiary)`},children:f(`contactsList.noMatches`)}):null]}):e?null:(0,J.jsx)(i,{type:`button`,variant:`ghost`,onClick:c,disabled:l,tintColor:`var(--primary-base)`,leftIcon:l?(0,J.jsx)(k,{className:`animate-spin`,"aria-hidden":!0}):(0,J.jsx)(P,{"aria-hidden":!0}),children:f(`contactsList.add`)})]})})}function Xe({name:e,role:t,contactType:r,channelTypes:i,selected:a,onClick:o,trailingIcon:s,verified:c}){let{t:l}=n(`contacts`),u=i&&i.length>0?i.join(` | `):void 0,d=s===`pencil`?(0,J.jsx)(M,{className:`h-3.5 w-3.5 text-[color:var(--content-tertiary)]`,"aria-hidden":!0}):s===`more`?(0,J.jsx)(D,{className:`h-3.5 w-3.5 text-[color:var(--content-tertiary)]`,"aria-hidden":!0}):void 0;return(0,J.jsx)(m,{asChild:!0,active:a,children:(0,J.jsxs)(`button`,{type:`button`,onClick:o,className:`flex h-auto w-full items-center gap-2 rounded-[6px] px-[8px] py-2 text-left`,children:[(0,J.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,J.jsx)(`span`,{className:`truncate text-body-medium-default`,children:e}),u?(0,J.jsx)(`span`,{className:`truncate text-body-small-default`,style:{color:`var(--content-tertiary)`},children:u}):null]}),(0,J.jsxs)(`span`,{className:`flex shrink-0 items-center gap-1`,children:[c===void 0?null:(0,J.jsx)(F,{tone:c?`positive`:`neutral`,children:l(c?`contactsList.verified`:`contactsList.unverified`)}),(0,J.jsx)(Y,{role:t,contactType:r}),d]})]})})}function Ze(e){return(0,J.jsx)(Qe,{...e},e.contact.id)}function Qe({contact:e,savePending:t,verifyPending:r,mergePending:a=!1,canMerge:o=!1,availableChannels:s,channelsLoadFailed:c,a2aEnabled:l,onSave:u,onMerge:d,onSetupChannel:f,onVerifyChannel:p,onRevokeChannel:m,onGenerateInviteLink:h}){let{t:g}=n(`contacts`),_=e.displayName.startsWith(`vellum-principal-`),v=_?``:e.displayName,[y,ee]=(0,K.useState)(v),[te,b]=(0,K.useState)(e.notes??``),x=y.trim(),S=te.trim(),C=x!==v.trim()||S!==(e.notes??``).trim(),w=C&&!t,T=g(`contact.interactions`,{count:e.interactionCount});return(0,J.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,J.jsx)(H,{title:_?g(`contactsList.you`):g(`contactsList.youNamed`,{name:e.displayName}),accessory:(0,J.jsx)(Y,{role:`guardian`}),compactAccessory:!0,subtitle:T,children:(0,J.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,J.jsx)(I,{label:g(`contact.nameLabel`),type:`text`,value:y,onChange:e=>ee(e.target.value),placeholder:g(`guardianDetailView.namePlaceholder`),disabled:t,fullWidth:!0}),(0,J.jsx)(I,{label:g(`contact.notesLabel`),type:`text`,value:te,onChange:e=>b(e.target.value),placeholder:g(`guardianDetailView.notesPlaceholder`),disabled:t,fullWidth:!0}),(0,J.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,J.jsx)(i,{variant:`primary`,onClick:()=>u({displayName:x||e.displayName,notes:S}),disabled:!w,children:g(t?`actions.saving`:`actions.save`)}),d?(0,J.jsx)(i,{variant:`outlined`,onClick:d,disabled:!o||C||a||t,title:o?C?g(`contact.mergeBlockedUnsaved`):void 0:g(`contact.mergeBlockedNoCandidates`),children:g(a?`actions.merging`:`actions.merge`)}):null]})]})}),(0,J.jsx)(H,{title:g(`guardianDetailView.channelsTitle`),subtitle:g(`guardianDetailView.channelsSubtitle`),children:(0,J.jsx)(Q,{contactChannels:e.channels,availableChannels:s,channelsLoadFailed:c,a2aEnabled:l,setupLabel:g(`guardianDetailView.setupLabel`),verifyLoading:r,onSetupChannel:f,onVerifyChannel:p,onRevokeChannel:m})}),h?(0,J.jsx)(U,{onClick:h}):null]})}function $e(e,t){let n=t.trim().toLowerCase().replace(/^@/,``);return n===``?e:e.filter(e=>e.displayName.toLowerCase().includes(n)||e.username.toLowerCase().includes(n))}function et(e){let t=e.trim().split(/\s+/).filter(Boolean);return`${t[0]?.[0]??`?`}${t.length>1?t[t.length-1]?.[0]??``:``}`.toUpperCase()}function tt({open:e,channelLabel:t,contactName:r,accounts:a,loading:o,errorMessage:s,pendingAccountId:c,onPick:l,onClose:u,onInviteInstead:d}){let{t:f}=n(`contacts`),[p,m]=(0,K.useState)(``);(0,K.useEffect)(()=>{e&&m(``)},[e]);let h=(0,K.useMemo)(()=>$e(a??[],p),[a,p]),g=c!=null;return(0,J.jsx)(L.Root,{open:e,onOpenChange:e=>!e&&u(),children:(0,J.jsxs)(L.Content,{size:`sm`,children:[(0,J.jsxs)(L.Header,{children:[(0,J.jsx)(L.Title,{children:f(`linkAccountDialog.title`,{channel:t})}),(0,J.jsx)(L.Description,{children:(0,J.jsx)(z,{i18nKey:`linkAccountDialog.description`,ns:`contacts`,values:{channel:t,name:r},components:{contact:(0,J.jsx)(`span`,{className:`text-[color:var(--content-default)]`})}})})]}),(0,J.jsxs)(L.Body,{className:`flex flex-col gap-3`,children:[(0,J.jsx)(I,{type:`search`,value:p,onChange:e=>m(e.target.value),placeholder:f(`linkAccountDialog.searchPlaceholder`),"aria-label":f(`linkAccountDialog.searchAriaLabel`,{channel:t}),leftIcon:(0,J.jsx)(N,{className:`h-4 w-4`}),fullWidth:!0}),s?(0,J.jsx)(`p`,{className:`text-body-small-default text-[color:var(--content-negative)]`,children:s}):null,(0,J.jsx)(`div`,{className:`max-h-80 overflow-y-auto`,children:o?(0,J.jsx)(`p`,{className:`py-4 text-center text-body-small-default text-[color:var(--content-tertiary)]`,children:f(`linkAccountDialog.loading`)}):h.length===0?(0,J.jsx)(`p`,{className:`py-4 text-center text-body-small-default text-[color:var(--content-tertiary)]`,children:(a?.length??0)===0?f(`linkAccountDialog.noMembers`):f(`linkAccountDialog.noMatches`)}):(0,J.jsx)(`ul`,{className:`flex flex-col`,children:h.map(e=>(0,J.jsx)(`li`,{children:(0,J.jsxs)(`button`,{type:`button`,onClick:()=>l(e),disabled:g,className:`flex w-full cursor-pointer items-center gap-3 rounded-md px-2 py-2 text-left transition-colors hover:bg-[var(--surface-overlay)] disabled:cursor-not-allowed disabled:opacity-60`,children:[e.imageUrl?(0,J.jsx)(`img`,{src:e.imageUrl,alt:``,className:`h-8 w-8 shrink-0 rounded-full`}):(0,J.jsx)(`span`,{"aria-hidden":`true`,className:`flex h-8 w-8 shrink-0 items-center justify-center rounded-full bg-[var(--tag-bg-neutral)] text-body-small-emphasised text-[color:var(--content-secondary)]`,children:et(e.displayName)}),(0,J.jsxs)(`span`,{className:`flex min-w-0 flex-col`,children:[(0,J.jsx)(`span`,{className:`truncate text-body-medium-default text-[color:var(--content-default)]`,children:e.displayName}),(0,J.jsxs)(`span`,{className:`truncate text-body-small-default text-[color:var(--content-tertiary)]`,children:[`@`,e.username]})]}),c===e.id?(0,J.jsx)(`span`,{className:`ml-auto shrink-0 text-body-small-default text-[color:var(--content-tertiary)]`,children:f(`linkAccountDialog.linking`)}):null]})},e.id))})})]}),(0,J.jsxs)(L.Footer,{className:`items-center justify-between gap-3 border-t border-[var(--border-base)]`,children:[(0,J.jsx)(`p`,{className:`text-body-small-default text-[color:var(--content-tertiary)]`,children:(0,J.jsx)(z,{i18nKey:`linkAccountDialog.guardianLinkNote`,ns:`contacts`,components:{emphasis:(0,J.jsx)(`span`,{className:`text-[color:var(--content-secondary)]`})}})}),d?(0,J.jsxs)(i,{variant:`link`,className:`shrink-0`,onClick:d,disabled:g,children:[f(`linkAccountDialog.inviteInstead`),(0,J.jsx)(_,{className:`h-3.5 w-3.5`})]}):null]})]})})}function nt({assistantId:e,channelType:n,contact:r,onLinked:i}){let[a,o]=(0,K.useState)(!1),s=u({mutationFn:t=>W(e,t.contact,{type:n,address:t.account.id}),onSuccess:(e,n)=>{o(!1),ie.success(t(`accountLink.linked`,{ns:`contacts`,username:n.account.username})),i()}}),c=(0,K.useCallback)(()=>{s.reset(),o(!0)},[s]),l=(0,K.useCallback)(()=>{s.isPending||(s.reset(),o(!1))},[s]),d=(0,K.useCallback)(e=>{!r||s.isPending||s.mutate({contact:r,account:e})},[r,s]);return{channelType:n,dialogOpen:a,open:c,close:l,linkErrorMessage:s.error instanceof Error?s.error.message:s.error?t(`accountLink.linkFailed`,{ns:`contacts`}):null,pendingAccountId:s.isPending?s.variables.account.id:null,pick:d}}var rt=[{id:`slack`,source:`default`,label:`Slack`,subtitle:`Message your assistant from Slack`,icon:`hash`,supportsVerification:!0,setupMessages:{guardian:`I'd like to verify my identity as your guardian on Slack. Can you help me set that up?`,contact:`I'd like to verify a contact's Slack identity. Can you walk me through it?`}},{id:`telegram`,source:`default`,label:`Telegram`,subtitle:`Message your assistant from Telegram`,icon:`send`,supportsVerification:!0,setupMessages:{guardian:`I'd like to verify my identity as your guardian on Telegram. Can you help me set that up?`,contact:`I'd like to verify a contact's Telegram identity. Can you walk me through it?`}},{id:`phone`,source:`default`,label:`Phone Calling`,subtitle:`Call or text your assistant via phone`,icon:`phone`,supportsVerification:!0,setupMessages:{guardian:`I'd like to verify my identity as your guardian for phone calls. Can you help me set that up?`,contact:`I'd like to verify a contact's phone number. Can you help me set that up?`}}],it=[];function at({assistantId:e,onStartSetupConversation:t}){let{t:r}=n(`contacts`),i=me.use.a2aChannel(),a=ae.use.name(),d=c(),[f]=o(),p=f.get(`setup`),m=p&&te(p)?p:null,[h,g]=(0,K.useState)({kind:`assistant`}),_=xe(e),{paneRef:v,hasRoomForList:b,drawerOpen:x,openDrawer:S,closeDrawer:C}=_e(),[w,T]=(0,K.useState)(``),[E,D]=(0,K.useState)(!1),O=y(a),k=(0,K.useMemo)(()=>({path:{assistant_id:e}}),[e]),A=ce(k),j=l({...fe(k),enabled:!!e,select:e=>e.contacts}),M=be({assistantId:e,onStartSetupConversation:t}),ne=l({...le({path:{assistant_id:e}}),enabled:!!e,queryFn:async({signal:t})=>{let{data:n,error:r,response:i}=await oe({path:{assistant_id:e},signal:t,throwOnError:!1});if(i?.status===404)return{channels:rt};if(!i||!i.ok)throw r??Error(`Failed to fetch channel availability`);return n},select:e=>e.channels}),N=ne.data??it,re=ne.isError,P=j.data,F=(0,K.useMemo)(()=>P?.find(e=>e.role===`guardian`)??null,[P]),I=(0,K.useMemo)(()=>P?.filter(e=>e.role!==`guardian`)??[],[P]),L=(0,K.useMemo)(()=>h.kind===`contact`?P?.find(e=>e.id===h.contactId)??null:null,[P,h]),R=(0,K.useMemo)(()=>!P||!L?[]:P.filter(e=>e.id!==L.id&&e.role!==`guardian`),[P,L]),z=R.length>0,pe=(0,K.useRef)(!!m);(0,K.useEffect)(()=>{pe.current||F&&(pe.current=!0,g({kind:`contact`,contactId:F.id}))},[F]);let V=(0,K.useCallback)(()=>d.invalidateQueries({queryKey:A}),[d,A]),H=u({mutationFn:()=>Ce(e,{displayName:ke}),onMutate:async()=>{await d.cancelQueries({queryKey:A})},onSuccess:e=>{B(d,k,t=>t?{...t,contacts:[...t.contacts,e]}:void 0),g({kind:`contact`,contactId:e.id})},onError:ve(r(`contactsPage.createFailed`)),onSettled:()=>V()}),U=u({mutationFn:t=>we(e,t),onSuccess:(e,t)=>{B(d,k,e=>e?{...e,contacts:e.contacts.filter(e=>e.id!==t)}:void 0),g({kind:`assistant`})},onError:ve(r(`contactsPage.deleteFailed`)),onSettled:()=>V()}),W=u({mutationFn:({contactId:t,patch:n})=>Ce(e,{id:t,displayName:n.displayName,notes:n.notes}),onSuccess:e=>{B(d,k,t=>t?{...t,contacts:t.contacts.map(t=>t.id===e.id?e:t)}:void 0)},onError:ve(r(`contactsPage.saveFailed`)),onSettled:()=>V()}),G=de({onMutate:async()=>{await d.cancelQueries({queryKey:A})},onSuccess:(e,t)=>{let n=e.contact,i=t.body.mergeId;n&&(B(d,k,e=>e?{...e,contacts:e.contacts.filter(e=>e.id!==i).map(e=>e.id===n.id?n:e)}:void 0),g({kind:`contact`,contactId:n.id})),D(!1),ie.success(r(`contactsPage.mergeSucceeded`))},onSettled:()=>V()}),Te=(0,K.useCallback)(e=>{g(e),C(),D(!1),G.reset()},[C,G]),Ee=(0,K.useCallback)(()=>{G.reset(),D(!0)},[G]),De=(0,K.useCallback)(()=>{G.isPending||(D(!1),G.reset())},[G]),Oe=ue({onSuccess:()=>V()}),Ae=(0,K.useCallback)((t,n)=>{Oe.mutate({path:{assistant_id:e,contactChannelId:t},body:{status:`revoked`}})},[Oe,e]),je=(0,K.useCallback)(()=>{H.isPending||H.mutate()},[H]),Me=(0,K.useCallback)(e=>{if(!t)return;let n=N.find(t=>t.id===e)?.setupMessages.contact;n&&t(n)},[N,t]),Y=(0,K.useCallback)(e=>{if(!t)return;let n=N.find(t=>t.id===e)?.setupMessages.guardian;n&&t(n)},[N,t]),X=u({mutationFn:t=>Se(e,t.channelId),onSuccess:()=>V(),onError:ve(r(`contactsPage.verifyFailed`))}),Pe=(0,K.useCallback)(e=>{if(!L)return;let t=L.channels.find(t=>t.type===e&&t.status!==`revoked`);t&&X.mutate({channelId:t.id})},[L,X]),Z=nt({assistantId:e,channelType:`slack`,contact:L?{id:L.id,displayName:L.displayName}:null,onLinked:V}),Fe=l({...ee(e),enabled:!!e&&Z.dialogOpen,select:e=>e.users}),Ie=M.channels.some(e=>e.key===`slack`&&e.configured),Le=(0,K.useCallback)(e=>{e===Z.channelType&&Z.open()},[Z]),Q=U.isPending?U.variables:null,$=(0,K.useMemo)(()=>L?W.isPending&&W.variables?.contactId===L.id?{...L,displayName:W.variables.patch.displayName,notes:W.variables.patch.notes}:L:null,[L,W.isPending,W.variables]);if(m)return(0,J.jsx)(s,{to:`${se.channels}?setup=${m}`,replace:!0});let ze={loading:j.isLoading,assistantName:O,guardian:F?{id:F.id,displayName:F.displayName.startsWith(`vellum-principal-`)?``:F.displayName,role:F.role,channelTypes:ct(F.channels,i)}:null,regularContacts:I.filter(e=>e.id!==Q).map(e=>({id:e.id,displayName:e.displayName,role:e.role,contactType:e.contactType,channelTypes:ct(e.channels,i),verified:st(e.channels)})),selection:h,onAddContact:je,addingContact:H.isPending,search:w,onSearchChange:T};return(0,J.jsxs)(`div`,{ref:v,className:`flex min-h-0 flex-1 overflow-hidden ${b?`flex-row gap-6`:`flex-col gap-4`}`,children:[b?(0,J.jsx)(`aside`,{className:`min-h-0 w-[320px] shrink-0 overflow-y-auto self-stretch`,children:(0,J.jsx)(Ye,{...ze,onSelect:Te})}):(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`div`,{className:`flex items-center`,children:(0,J.jsx)(ge,{onClick:S})}),(0,J.jsx)(he,{open:x,onClose:C,title:r(`contactsPage.title`),children:(0,J.jsx)(Ye,{...ze,onSelect:Te})})]}),(0,J.jsx)(`section`,{className:`min-h-0 min-w-0 flex-1 overflow-y-auto`,children:h.kind===`assistant`||h.kind===`contact`&&h.contactId===Q?(0,J.jsx)(Ne,{assistantName:O,channels:M.channels,pendingChannelKey:M.pendingChannelKey,onConnect:M.onSetup,onDisconnect:M.onDisconnect}):$?$.role===`guardian`?(0,J.jsx)(Ze,{contact:$,savePending:W.isPending,verifyPending:X.isPending,mergePending:G.isPending,canMerge:z,availableChannels:N,channelsLoadFailed:re,a2aEnabled:i,onSave:e=>{W.mutate({contactId:$.id,patch:e})},onMerge:Ee,onSetupChannel:t?Y:void 0,onVerifyChannel:Pe,onRevokeChannel:Ae,onGenerateInviteLink:i?_.open:void 0}):(0,J.jsx)(Re,{contact:$,savePending:W.isPending,deletePending:U.isPending,verifyPending:X.isPending,mergePending:G.isPending,canMerge:z,availableChannels:N,channelsLoadFailed:re,a2aEnabled:i,onSave:e=>{W.mutate({contactId:$.id,patch:e})},onDelete:()=>{U.mutate($.id)},onMerge:Ee,onSetupChannel:t?Me:void 0,onVerifyChannel:Pe,onRevokeChannel:Ae,onLinkAccount:Ie?Le:void 0}):(0,J.jsx)(ot,{})}),L?(0,J.jsx)(Be,{open:E,survivor:L,candidates:R,pending:G.isPending,errorMessage:G.error instanceof Error?G.error.message:G.error?r(`contactsPage.mergeFailed`):null,onMerge:t=>G.mutate({path:{assistant_id:e},body:{keepId:L.id,mergeId:t}}),onClose:De}):null,(0,J.jsx)(tt,{open:Z.dialogOpen,channelLabel:q(`slack`),contactName:L?.displayName??``,accounts:Fe.data,loading:Fe.isLoading,errorMessage:Fe.isError?r(`contactsPage.rosterLoadFailed`):Z.linkErrorMessage,pendingAccountId:Z.pendingAccountId,onPick:Z.pick,onClose:Z.close,onInviteInstead:t?()=>{Z.close(),Me(Z.channelType)}:void 0}),(0,J.jsx)(ye,{open:_.isOpen,assistantId:e,onClose:_.close})]})}function ot(){let{t:e}=n(`contacts`);return(0,J.jsx)(`div`,{className:`flex h-full items-center justify-center py-16`,children:(0,J.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:e(`contactsPage.emptyBody`)})})}function st(e){return e.some(e=>e.status!==`revoked`&&(e.type===`a2a`||De(e)))}function ct(e,t){let n=new Set,r=[];for(let i of e){if(i.status===`revoked`)continue;let e=i.type.toLowerCase();n.has(e)||e===`a2a`&&!t||(n.add(e),r.push(q(e)))}return r}function lt(){let e=a(),t=V();return(0,J.jsx)(at,{assistantId:t,onStartSetupConversation:t=>{pe(e,{prompt:t})}},t)}export{lt as ContactsPageRoute};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{N as e,a as t,g as n,i as r,j as i,t as a,v as o}from"./section-membership-
|
|
1
|
+
import{N as e,a as t,g as n,i as r,j as i,t as a,v as o}from"./section-membership-CyAaLX8V.js";var s={conversations:[],hasMore:!1};async function c(e,t){await Promise.all([e.cancelQueries({queryKey:i(t)}),e.cancelQueries({queryKey:o(t)})])}function l(e,t){return e.getQueriesData({queryKey:i(t)}).map(([e,t])=>[e,t])}function u(e,t){for(let[n,r]of t)e.setQueryData(n,r)}async function d(e,t){await Promise.all([e.invalidateQueries({queryKey:i(t)}),e.invalidateQueries({queryKey:o(t)}),e.invalidateQueries({queryKey:n(t)})])}function f(e,t){let n=t(e.conversations);return n===e.conversations?e:{conversations:n,hasMore:e.hasMore}}function p(e,t,n){e.setQueryData(t,e=>{let t=e??s,r=f(t,n);return r===t?e:r})}function m(t,n,r,i){p(t,e(n,r),i)}function h(e,t,n){if(!t)return;let r=e.getQueriesData({queryKey:i(t)});for(let[t,i]of r){if(!i)continue;let r=f(i,n);r!==i&&e.setQueryData(t,r)}}function g(e,t,n){if(!t)return;let r=e.getQueriesData({queryKey:i(t)});for(let[,e]of r){let t=e?.conversations.find(e=>e.conversationId===n);if(t)return t}}function _(...e){let[t=[],...n]=e;if(n.every(e=>e.length===0))return t;let r=new Set(t.map(e=>e.conversationId)),i=[...t];for(let e of n)for(let t of e)r.has(t.conversationId)||(r.add(t.conversationId),i.push(t));return i}function v(e,n,i,o){let s;return h(e,n,e=>{let t=!1,n=e.map(e=>e.conversationId===i?(t=!0,s??={...e,...o},s):e);return t?n:e}),!s||!r(o)?[]:(a(e,n,s),t(e,n,s))}export{v as a,h as c,_ as i,m as l,g as n,u as o,d as r,l as s,c as t};
|
package/dist/assets/{conversation-navigation-CmHzY4Xq.js → conversation-navigation-116d0b9Q.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{f as e}from"./routes-C6ueuiMd.js";import{t}from"./haptics-
|
|
1
|
+
import{f as e}from"./routes-C6ueuiMd.js";import{t}from"./haptics-DRyt58c5.js";import{t as n}from"./conversation-store-BHWyRtQs.js";import{r}from"./subagent-store-B3w3yLSH.js";import{t as i}from"./workflow-store-CA048OMm.js";import{i as a,u as o}from"./viewer-store-Dgua7F-U.js";import{t as s}from"./conversation-selection-DKq2AZf8.js";import{t as c}from"./sound-manager-BCNOVpEJ.js";import{t as l}from"./use-is-mobile-DYVRtRin.js";var u=`vellum:focus-composer`,d=!1;function f(){d=!0,typeof window<`u`&&window.dispatchEvent(new Event(u))}function p(){let e=d;return d=!1,e}var m=[`input`,`textarea`,`select`,`[contenteditable=""]`,`[contenteditable="true"]`,`[role="textbox"]`].join(`,`);function h(e){return!!e?.closest(m)}function g(){return typeof document>`u`?!1:h(document.activeElement)}function _(e){return!!e?.closest(`a[href], button, summary`)}function v(e,t){return!(e.defaultPrevented||e.metaKey||e.ctrlKey||e.altKey||e.isComposing||e.keyCode===229||typeof e.key!=`string`||e.key.length!==1||h(t)||e.key===` `&&_(t))}function y({value:e,text:t,selectionStart:n,selectionEnd:r}){let i=Math.max(0,Math.min(n??e.length,e.length)),a=Math.max(i,Math.min(r??i,e.length));return{value:e.slice(0,i)+t+e.slice(a),cursor:i+t.length}}function b(){return typeof window>`u`||typeof window.matchMedia!=`function`?!1:window.matchMedia(l).matches}function x(e){if(b())return!1;let t=a.getState();return!o(t.mainView)||!t.activeAppId&&!t.openedAppState?!1:(n.getState().setEditingConversationId(e),t.enterAppEditing(),!0)}function S(e){x(e)||a.getState().setMainView(`chat`)}function C(o,s,c){c?.silent||t.light(),S(s),s!==n.getState().activeConversationId&&(r.getState().reset(),i.getState().reset(),a.getState().clearTranscriptPanelPayloads()),n.getState().setActiveConversationId(s),o(c?.messageId?e.conversationAtMessage(s,c.messageId):e.conversation(s))}function w(){r.getState().reset(),i.getState().reset(),a.getState().clearTranscriptPanelPayloads();let e=s();return S(e),n.getState().setActiveConversationId(e),e}function T(n,r){r?.silent||(t.light(),c().play(`new_conversation`));let i=w(),a=e.conversation(i);if(r?.prompt){let e=new URLSearchParams({prompt:r.prompt});a=`${a}?${e.toString()}`}return n(a),f(),i}export{S as a,y as c,f as d,v as f,w as i,h as l,C as n,u as o,T as r,p as s,x as t,g as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-DJZBPgpf.js";import{t as n}from"./useQuery-BtL9k7Sh.js";import{t as r}from"./useQueries-RuiDsyUH.js";import{t as i}from"./queryOptions-DGyQTr3e.js";import{r as a}from"./use-is-org-ready-
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-DJZBPgpf.js";import{t as n}from"./useQuery-BtL9k7Sh.js";import{t as r}from"./useQueries-RuiDsyUH.js";import{t as i}from"./queryOptions-DGyQTr3e.js";import{r as a}from"./use-is-org-ready-TE5xIhFU.js";import{I as o,k as s}from"./react-query.gen-C_GLKG7m.js";import{n as c}from"./operational-status-DpG5GDPe.js";import{D as l,E as u,F as d,I as f,O as p,T as m,V as h,_ as g,h as _,k as v,p as y,u as b,w as x,x as S}from"./section-membership-CyAaLX8V.js";import{i as C}from"./conversation-cache-DOQdWaTg.js";var w=e(t(),1),T=3e4;function E(e,t=p){let n=s({path:{assistant_id:e},query:t}).queryKey;return f(t)?i({queryKey:n,queryFn:async({client:r})=>{let i=await y(e,t),a=r.getQueryData(n);return a?x(a,i,{pinnedInjected:d(t)}):i},staleTime:T}):i({queryKey:n,queryFn:async()=>({conversations:await b(e,t),hasMore:!1}),staleTime:T})}var D=[],O=[];function k(e){let t=a(),n=c(e);return t&&n}var A={conversations:D,isLoading:!1,isPending:!0,isError:!1,error:null,hasData:!1,hasMore:!1,refetch:()=>{}};function j(e,t,n){let i=k(e),a=r({queries:t===null?[]:[{...E(e??``,t),enabled:n&&!!e&&i}]})[0];return a===void 0?A:{conversations:a.data?.conversations??D,isLoading:a.isLoading,isPending:a.isPending,isError:a.isError,error:a.error,hasData:a.data!==void 0,hasMore:a.data?.hasMore??!1,refetch:()=>{a.refetch()}}}function M(e,t=!0){return j(e,p,t)}function N(e,t=!0){return j(e,l,t)}function P(e,t=!0){return j(e,v,t)}function F(e,t,n=!0){return j(e,t,n)}function I(e,t=!0){let n=j(e,u,t),r=j(e,m,t);return{conversations:(0,w.useMemo)(()=>{let e=C(n.conversations,r.conversations);return e===n.conversations?e:[...e].sort(S(`archivedAt`))},[n.conversations,r.conversations]),isLoading:n.isLoading||r.isLoading,isPending:n.isPending||r.isPending,isError:n.isError||r.isError,error:n.error??r.error,hasData:n.hasData&&r.hasData,hasMore:!1,refetch:()=>{n.refetch(),r.refetch()}}}function L(e,t=!0){let r=a();return n({..._(e),enabled:t&&!!e&&r}).data??null}function R(e,t=!0){let r=k(e);return n({...g(e),enabled:t&&!!e&&r}).data??null}function z(e,t,n=!0){let r=R(e,n),i=(0,w.useMemo)(()=>h(t),[t]);return Math.max(0,r??i)}function B(e,t=!0){let r=k(e),i=n({...o({path:{assistant_id:e??``}}),select:e=>e.groups,enabled:t&&!!e&&r,staleTime:3e4});return{conversationGroups:i.data??O,isLoading:i.isLoading,isPending:i.isPending,isError:i.isError}}export{M as a,L as c,B as i,z as l,N as n,P as o,k as r,F as s,I as t};
|
package/dist/assets/{conversation-selection-ISP-GEpt.js → conversation-selection-DKq2AZf8.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./conversation-store-BHWyRtQs.js";import{H as t,n}from"./section-membership-
|
|
1
|
+
import{t as e}from"./conversation-store-BHWyRtQs.js";import{H as t,n}from"./section-membership-CyAaLX8V.js";function r(){let t=typeof globalThis.crypto?.randomUUID==`function`?globalThis.crypto.randomUUID():`draft-${Date.now()}-${Math.random().toString(16).slice(2)}`;return e.getState().registerDraftConversationId(t),t}function i({platformStartsInNewChat:e,urlConversationId:t,currentConversationId:n}){return e&&t==null&&n==null}function a(e){return n(e)&&!t(e)}function o({storedConversation:e,defaultConversationId:t,...n}){return s(n)||(e&&a(e)?e.conversationId:t)}function s({queryParamKey:e,onboardingDraftConversationId:t,newChatDraftConversationId:n,currentConversationId:r,currentAssistantId:i,nextAssistantId:a}){return e||t||(i===a&&r?r:n||null)}export{i as a,s as i,a as n,o as r,r as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{l as e}from"./i18n-
|
|
1
|
+
import{l as e}from"./i18n-BDfnKs41.js";import{n as t}from"./toast-BKrDuNtu.js";function n(n,r){if(!navigator.clipboard?.writeText){e(Error(`Clipboard API unavailable`),{context:`copyToClipboard`}),t.error(r.errorMessage);return}navigator.clipboard.writeText(n).then(()=>{r.onCopied?.(),r.successMessage&&t.success(r.successMessage)},n=>{e(n,{context:`copyToClipboard`}),t.error(r.errorMessage)})}export{n as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{v as t}from"./i18n-
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{v as t}from"./i18n-BDfnKs41.js";import{t as n}from"./react-DJZBPgpf.js";import{t as r}from"./button-B1kEAcLt.js";import{t as i}from"./jsx-runtime-COOF1INC.js";import{t as a}from"./card-B4b9cF6X.js";import{t as o}from"./circle-alert-BaeJJrSp.js";import{t as s}from"./circle-check-CnoFVsRZ.js";import{t as c}from"./key-round-BEQmZ4Ji.js";import{t as l}from"./loader-circle-DZ65N8bz.js";import{t as u}from"./input-ChbJ2nzd.js";import{s as d}from"./remote-gateway-session-C3H0Oq0r.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(d(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(d(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=i();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),[i,d]=(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){d({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`?d({kind:`form`,request:t.request}):d({kind:t.status}))})(),()=>{e.abort()}},[n]);let D=async e=>{if(e.preventDefault(),!n||i.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(``),d({kind:`success`});break;case`invalid`:case`expired`:case`used`:d({kind:t.status});break;case`store-failed`:m(``),d({kind:`store-failed`});break;case`error`:T(`Something went wrong while submitting. Check your connection and try again.`);break}},O=i.kind===`form`?h(i.request.expiresAt):null,k=i.kind===`form`&&O!==null&&O>E,A;if(i.kind===`loading`)A=(0,b.jsx)(C,{icon:(0,b.jsx)(l,{className:`h-5 w-5 animate-spin text-blue-600`,"aria-hidden":!0}),title:e(`credentialEntry.checkingTitle`),children:e(`credentialEntry.checkingBody`)});else if(i.kind===`success`)A=(0,b.jsx)(C,{icon:(0,b.jsx)(s,{className:`h-5 w-5 text-green-600`,"aria-hidden":!0}),title:e(`credentialEntry.savedTitle`),children:e(`credentialEntry.savedBody`)});else if(i.kind===`invalid`)A=(0,b.jsx)(C,{icon:(0,b.jsx)(o,{className:`h-5 w-5 text-red-600`,"aria-hidden":!0}),title:e(`credentialEntry.invalidTitle`),children:e(`credentialEntry.invalidBody`)});else if(i.kind===`expired`||i.kind===`form`&&!k)A=(0,b.jsx)(C,{icon:(0,b.jsx)(o,{className:`h-5 w-5 text-red-600`,"aria-hidden":!0}),title:e(`credentialEntry.expiredTitle`),children:e(`credentialEntry.expiredBody`)});else if(i.kind===`used`)A=(0,b.jsx)(C,{icon:(0,b.jsx)(o,{className:`h-5 w-5 text-red-600`,"aria-hidden":!0}),title:e(`credentialEntry.usedTitle`),children:e(`credentialEntry.usedBody`)});else if(i.kind===`store-failed`)A=(0,b.jsx)(C,{icon:(0,b.jsx)(o,{className:`h-5 w-5 text-red-600`,"aria-hidden":!0}),title:e(`credentialEntry.storeFailedTitle`),children:e(`credentialEntry.storeFailedBody`)});else if(i.kind===`error`)A=(0,b.jsx)(C,{icon:(0,b.jsx)(o,{className:`h-5 w-5 text-red-600`,"aria-hidden":!0}),title:e(`credentialEntry.errorTitle`),children:e(`credentialEntry.errorBody`)});else{let{request:t}=i,n=`${t.service}:${t.field}`,a=(O??0)-E;A=(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,b.jsx)(c,{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)(u,{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)(r,{type:`submit`,disabled:g||!p.trim(),leftIcon:g?(0,b.jsx)(l,{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(a),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)(a.Root,{bordered:!0,elevated:!0,padding:`lg`,children:(0,b.jsx)(`div`,{className:`flex flex-col gap-4`,children:A})})})})}export{w as CredentialEntryPage};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{d as t,f as n,l as r,t as i,v as a}from"./i18n-DmTrjH8B.js";import{t as o}from"./react-DJZBPgpf.js";import{t as s}from"./button-B1kEAcLt.js";import{n as c}from"./QueryClientProvider-BPZM68-A.js";import{t as l}from"./useQuery-BtL9k7Sh.js";import{t as u}from"./jsx-runtime-COOF1INC.js";import{t as d}from"./card-B4b9cF6X.js";import{a as f,d as p,n as m,o as h}from"./list-row-BvCm9O6y.js";import{t as g}from"./check-bDVYejGM.js";import{t as _}from"./chevron-down-D437oaYt.js";import{t as v}from"./eye-off-BtRToWVw.js";import{t as y}from"./eye-Bkw-NEUk.js";import{t as b}from"./key-round-BEQmZ4Ji.js";import{t as x}from"./link-2-Di62Fo_i.js";import{t as S}from"./loader-circle-DZ65N8bz.js";import{t as C}from"./plus-rgqTRjE1.js";import{t as ee}from"./search-DYHr3LM9.js";import{t as w}from"./trash-2-CVpEwOYZ.js";import{t as te}from"./tag-DAsImP7W.js";import{t as T}from"./popover-GOTwOlgQ.js";import{t as E}from"./input-ChbJ2nzd.js";import{t as D}from"./modal-_49mDK_d.js";import{n as O}from"./toast-BKrDuNtu.js";import{t as k}from"./confirm-dialog-EPYSBP_B.js";import{t as A}from"./assistant-identity-store-DBkGjqzV.js";import{ht as j,mt as M,ri as N}from"./sdk.gen-BluU0h_N.js";import{r as ne}from"./use-is-org-ready-BKgGDOej.js";import{in as re}from"./react-query.gen-C_GLKG7m.js";import{t as ie}from"./assistant-feature-flag-store-Co_o5uD3.js";import{t as P}from"./use-touch-mobile-hfZPfT1P.js";import{t as F}from"./copy-to-clipboard-B078_jza.js";import{t as I}from"./use-active-assistant-id-lxYJu99R.js";import{n as ae,t as L}from"./add-credential-modal-BATaEuxb.js";import{t as R}from"./not-found-D0BBLotb.js";import{t as oe}from"./detail-card-D9EAxXI8.js";import{t as z}from"./use-supports-credentials-settings-DYi8pPuP.js";var B=e(o(),1),V=`CREDENTIAL_IN_USE`;function se(e){if(!(e instanceof n)||e.code!==V)return null;let t=e.details;if(!t||typeof t!=`object`||!(`connections`in t))return null;let{connections:r}=t;return!Array.isArray(r)||!r.every(e=>typeof e==`string`)?null:r}function ce(e){return new Intl.ListFormat(i(),{style:`long`,type:`conjunction`}).format(e)}var H=u(),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:n,deleting:r,onGenerateLink:i,onDelete:o}){let{t:s}=a(`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)(d.Root,{children:(0,H.jsxs)(d.Body,{padding:`sm`,className:`flex items-center gap-4 px-4`,children:[(0,H.jsx)(b,{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:n,deleting:r,onGenerateLink:()=>{u(!1),i()},onDelete:()=>{u(!1),o()}})})]})})}function G({assistantId:e,credential:t}){let{t:n}=a(`settings`),[r,i]=(0,B.useState)(null),[o,s]=(0,B.useState)(!1),[c,l]=(0,B.useState)(!1),u=(0,B.useRef)(null),d=(0,B.useRef)(0),f=`${t.service}:${t.field}`,m=(0,B.useCallback)(()=>{d.current++,i(null),s(!1),l(!1),u.current&&=(clearTimeout(u.current),null)},[]);(0,B.useEffect)(()=>{m()},[t.updatedAt,m]);let h=(0,B.useCallback)(async()=>{let r=++d.current;s(!0);try{let{data:n}=await j({path:{assistant_id:e},body:{service:t.service,field:t.field},throwOnError:!0});d.current===r&&i(n.value)}catch{d.current===r&&O.error(n(`credentialRow.revealFailedToast`,{name:f}))}finally{d.current===r&&s(!1)}},[e,t.service,t.field,f,n]),_=(0,B.useCallback)(()=>{r!=null&&F(r,{errorMessage:n(`credentialRow.copyFailedToast`),onCopied:()=>{l(!0),u.current&&clearTimeout(u.current),u.current=setTimeout(()=>l(!1),U)}})},[r,n]),b=r!==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:()=>b?m():void h(),disabled:o,"aria-label":n(b?`credentialRow.hideValueAriaLabel`:`credentialRow.revealValueAriaLabel`,{name:f}),title:n(b?`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)] ${b?`text-[var(--content-secondary)]`:`select-none text-[var(--content-tertiary)] blur-[3px] hover:blur-[2px]`}`,children:b?r:t.scrubbedValue}),o?(0,H.jsx)(S,{className:`h-3.5 w-3.5 shrink-0 animate-spin`,"aria-hidden":!0}):b?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`button`,{type:`button`,onClick:_,"aria-label":n(`credentialRow.copyValueAriaLabel`,{name:f}),title:n(`credentialRow.copyValueTitle`),className:`shrink-0 rounded-sm p-0.5 text-[var(--content-tertiary)] transition-colors hover:text-[var(--content-secondary)] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[var(--border-focus)]`,children:c?(0,H.jsx)(g,{className:`h-3.5 w-3.5`,"aria-hidden":!0}):(0,H.jsx)(p,{className:`h-3.5 w-3.5`,"aria-hidden":!0})}),(0,H.jsx)(`button`,{type:`button`,onClick:m,"aria-label":n(`credentialRow.hideValueAriaLabel`,{name:f}),title:n(`credentialRow.hideValueTitle`),className:`shrink-0 rounded-sm p-0.5 text-[var(--content-tertiary)] transition-colors hover:text-[var(--content-secondary)] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[var(--border-focus)]`,children:(0,H.jsx)(v,{className:`h-3.5 w-3.5`,"aria-hidden":!0})})]}):(0,H.jsx)(`button`,{type:`button`,onClick:()=>void h(),"aria-label":n(`credentialRow.revealValueAriaLabel`,{name:f}),title:n(`credentialRow.clickToRevealTitle`),className:`shrink-0 rounded-sm p-0.5 text-[var(--content-tertiary)] transition-colors hover:text-[var(--content-secondary)] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[var(--border-focus)]`,children:(0,H.jsx)(y,{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:n,generatingLink:r,deleting:i,onGenerateLink:o,onDelete:c}){let{t:l}=a(`settings`),u=P(),d=r||i,p=(0,H.jsx)(s,{variant:`outlined`,rightIcon:(0,H.jsx)(_,{}),"aria-haspopup":`menu`,"aria-expanded":t,"aria-label":l(`credentialRow.configureAriaLabel`,{name:e}),leftIcon:d?(0,H.jsx)(S,{className:`animate-spin`,"aria-hidden":!0}):void 0,children:l(`credentialRow.configureButton`)});return u?(0,H.jsxs)(f.Root,{open:t,onOpenChange:n,children:[(0,H.jsx)(f.Trigger,{asChild:!0,children:p}),(0,H.jsxs)(f.Content,{children:[(0,H.jsx)(f.Header,{children:(0,H.jsx)(f.Title,{children:e})}),(0,H.jsxs)(f.Body,{children:[(0,H.jsx)(m,{icon:r?S:x,label:l(`credentialRow.generateLinkLabel`),onSelect:()=>{d||o()}}),(0,H.jsx)(m,{icon:i?S:w,label:l(`credentialRow.deleteLabel`),onSelect:()=>{d||c()}})]})]})]}):(0,H.jsxs)(T.Root,{open:t,onOpenChange:n,children:[(0,H.jsx)(T.Trigger,{asChild:!0,children:p}),(0,H.jsxs)(T.Content,{align:`end`,sideOffset:4,role:`menu`,className:`w-56 overflow-hidden p-0`,children:[(0,H.jsx)(s,{type:`button`,role:`menuitem`,variant:`ghost`,onClick:o,disabled:d,className:`w-full justify-start rounded-none`,leftIcon:r?(0,H.jsx)(S,{className:`animate-spin`,"aria-hidden":!0}):(0,H.jsx)(x,{"aria-hidden":!0}),children:l(`credentialRow.generateLinkLabel`)}),(0,H.jsx)(s,{type:`button`,role:`menuitem`,variant:`dangerGhost`,onClick:c,disabled:d,className:`w-full justify-start rounded-none`,leftIcon:i?(0,H.jsx)(S,{className:`animate-spin`,"aria-hidden":!0}):(0,H.jsx)(w,{"aria-hidden":!0}),children:l(`credentialRow.deleteLabel`)})]})]})}function ue(e){return e>0xe8d4a51000?e:e*1e3}async function de(e,t){let{data:n,response:r}=await N.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=I(),t=z(e),n=A.use.assistantId();return A.use.version()!==null&&n===e&&!t?(0,H.jsx)(R,{}):t?(0,H.jsx)(Y,{}):null}function Y(){let{t:e}=a(`settings`),n=I(),i=c(),o=ne(),u=ae(n),f=l({queryKey:u,queryFn:async()=>{let{data:e}=await M({path:{assistant_id:n},body:{},throwOnError:!0});return{credentials:e.credentials,managedCredentials:e.managedCredentials}},enabled:o,retry:t}),m=(0,B.useMemo)(()=>f.data?.credentials??[],[f.data]),g=ie.use.settingsDeveloperNav(),_=(0,B.useMemo)(()=>g?f.data?.managedCredentials??[]:[],[g,f.data]),[v,y]=(0,B.useState)(!1),[w,T]=(0,B.useState)(`own`),[A,j]=(0,B.useState)(``),[N,P]=(0,B.useState)(null),[R,z]=(0,B.useState)(null),[V,U]=(0,B.useState)(null),[W,G]=(0,B.useState)(null),K=re({onSuccess:(t,n)=>{i.invalidateQueries({queryKey:u}),O.success(e(`credentialsPage.deleteSuccessToast`,{name:`${n.body.service}:${n.body.field}`}))},onError:(t,n)=>{let i=se(t),a=m.find(e=>e.service===n.body.service&&e.field===n.body.field);if(i&&a){z({credential:a,connections:i});return}r(t,{context:`credentials-delete`}),O.error(t.message||e(`credentialsPage.deleteErrorToast`))}}),J=K.isPending?`${K.variables?.body?.service}:${K.variables?.body?.field}`:null,Y=(0,B.useMemo)(()=>{let e=A.trim().toLowerCase();return e?m.filter(t=>[t.service,t.field,`${t.service}:${t.field}`,t.alias??``].join(` `).toLowerCase().includes(e)):m},[m,A]);(0,B.useEffect)(()=>{m.length<=q&&j(``)},[m.length]),(0,B.useEffect)(()=>{m.length===0&&_.length>0&&T(`managed`)},[m.length,_.length]);let X=(e,t)=>{K.mutate({path:{assistant_id:n},body:{service:e.service,field:e.field,...t?{force:!0}:{}}})},fe=()=>{let e=N;P(null),e&&X(e,!1)},pe=()=>{let e=R;z(null),e&&X(e.credential,!0)},me=async t=>{let r=`${t.service}:${t.field}`;G(r);try{let i=await de(n,{service:t.service,field:t.field,label:t.alias??void 0});i.ok&&i.url?U({name:r,url:i.url,expiresAt:i.expiresAt??null}):O.error(i.error||e(`credentialsPage.generateLinkFailedToast`))}catch(t){O.error(t instanceof Error?t.message:e(`credentialsPage.generateLinkFailedToast`))}finally{G(null)}},he=()=>{let t=V?.url;t&&F(t,{successMessage:e(`credentialsPage.linkCopiedToast`),errorMessage:e(`credentialsPage.linkCopyFailedToast`)})};if(f.isLoading)return(0,H.jsx)(`div`,{className:`flex items-center justify-center py-10`,children:(0,H.jsx)(S,{className:`h-5 w-5 animate-spin text-[var(--content-disabled)]`})});let Z=m.length>0,Q=_.length>0,ge=m.length>q,$=w===`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)(h,{items:ve,value:w,onChange:T,ariaLabel:e(`credentialsPage.credentialSourceAriaLabel`)}):null,_e&&Z?(0,H.jsx)(s,{type:`button`,variant:`primary`,size:`regular`,onClick:()=>y(!0),leftIcon:(0,H.jsx)(C,{"aria-hidden":!0}),children:e(`credentialsPage.addButton`)}):null]}),children:$?(0,H.jsx)(`div`,{className:`space-y-2`,children:_.map(t=>(0,H.jsx)(d.Root,{children:(0,H.jsxs)(d.Body,{padding:`sm`,className:`flex items-center gap-4 px-4`,children:[(0,H.jsx)(b,{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)(te,{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)(E,{type:`text`,value:A,onChange:e=>j(e.target.value),placeholder:e(`credentialsPage.searchPlaceholder`),"aria-label":e(`credentialsPage.searchAriaLabel`),leftIcon:(0,H.jsx)(ee,{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:A.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:n,generatingLink:W===t,deleting:J===t,onGenerateLink:()=>void me(e),onDelete:()=>P(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)(b,{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)(s,{type:`button`,variant:`outlined`,size:`compact`,onClick:()=>y(!0),className:`w-full border-dashed`,leftIcon:(0,H.jsx)(C,{"aria-hidden":!0}),children:e(`credentialsPage.addCredentialButton`)})]})}),(0,H.jsx)(k,{open:N!==null,title:e(`credentialsPage.deleteConfirmTitle`),message:N?e(`credentialsPage.deleteConfirmMessage`,{name:`${N.service}:${N.field}`}):``,confirmLabel:e(`credentialsPage.deleteConfirmLabel`),destructive:!0,onConfirm:fe,onCancel:()=>P(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)(L,{open:v,onClose:()=>y(!1)}),(0,H.jsx)(D.Root,{open:V!==null,onOpenChange:e=>{e||U(null)},children:(0,H.jsxs)(D.Content,{size:`sm`,children:[(0,H.jsxs)(D.Header,{icon:x,children:[(0,H.jsx)(D.Title,{children:e(`credentialsPage.oneTimeLinkModalTitle`)}),(0,H.jsx)(D.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)(D.Body,{children:(0,H.jsx)(E,{label:e(`credentialsPage.linkLabel`),type:`text`,readOnly:!0,value:V?.url??``,onFocus:e=>e.currentTarget.select(),fullWidth:!0})}),(0,H.jsx)(D.Footer,{children:(0,H.jsx)(s,{type:`button`,size:`compact`,onClick:he,leftIcon:(0,H.jsx)(p,{"aria-hidden":!0}),children:e(`credentialsPage.copyLinkButton`)})})]})})]})}export{J as CredentialsPage};
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{d as t,f as n,l as r,t as i,v as a}from"./i18n-BDfnKs41.js";import{t as o}from"./react-DJZBPgpf.js";import{t as s}from"./button-B1kEAcLt.js";import{n as c}from"./QueryClientProvider-BPZM68-A.js";import{t as l}from"./useQuery-BtL9k7Sh.js";import{t as u}from"./jsx-runtime-COOF1INC.js";import{t as d}from"./card-B4b9cF6X.js";import{a as f,d as p,n as m,o as h}from"./list-row-BvCm9O6y.js";import{t as g}from"./check-bDVYejGM.js";import{t as _}from"./chevron-down-D437oaYt.js";import{t as v}from"./eye-off-BtRToWVw.js";import{t as y}from"./eye-Bkw-NEUk.js";import{t as b}from"./key-round-BEQmZ4Ji.js";import{t as x}from"./link-2-Di62Fo_i.js";import{t as S}from"./loader-circle-DZ65N8bz.js";import{t as C}from"./plus-rgqTRjE1.js";import{t as ee}from"./search-DYHr3LM9.js";import{t as w}from"./trash-2-CVpEwOYZ.js";import{t as te}from"./tag-DAsImP7W.js";import{t as T}from"./popover-GOTwOlgQ.js";import{t as E}from"./input-ChbJ2nzd.js";import{t as D}from"./modal-_49mDK_d.js";import{n as O}from"./toast-BKrDuNtu.js";import{t as k}from"./confirm-dialog-EPYSBP_B.js";import{t as A}from"./assistant-identity-store-DBkGjqzV.js";import{ht as j,mt as M,ri as N}from"./sdk.gen-BluU0h_N.js";import{r as ne}from"./use-is-org-ready-TE5xIhFU.js";import{in as re}from"./react-query.gen-C_GLKG7m.js";import{t as ie}from"./assistant-feature-flag-store-Co_o5uD3.js";import{t as P}from"./use-touch-mobile-hfZPfT1P.js";import{t as F}from"./copy-to-clipboard-CIyU3zmr.js";import{t as I}from"./use-active-assistant-id-lxYJu99R.js";import{n as ae,t as L}from"./add-credential-modal-D7srPAPB.js";import{t as R}from"./not-found-DWwWs5dL.js";import{t as oe}from"./detail-card-D9EAxXI8.js";import{t as z}from"./use-supports-credentials-settings-DYi8pPuP.js";var B=e(o(),1),V=`CREDENTIAL_IN_USE`;function se(e){if(!(e instanceof n)||e.code!==V)return null;let t=e.details;if(!t||typeof t!=`object`||!(`connections`in t))return null;let{connections:r}=t;return!Array.isArray(r)||!r.every(e=>typeof e==`string`)?null:r}function ce(e){return new Intl.ListFormat(i(),{style:`long`,type:`conjunction`}).format(e)}var H=u(),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:n,deleting:r,onGenerateLink:i,onDelete:o}){let{t:s}=a(`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)(d.Root,{children:(0,H.jsxs)(d.Body,{padding:`sm`,className:`flex items-center gap-4 px-4`,children:[(0,H.jsx)(b,{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:n,deleting:r,onGenerateLink:()=>{u(!1),i()},onDelete:()=>{u(!1),o()}})})]})})}function G({assistantId:e,credential:t}){let{t:n}=a(`settings`),[r,i]=(0,B.useState)(null),[o,s]=(0,B.useState)(!1),[c,l]=(0,B.useState)(!1),u=(0,B.useRef)(null),d=(0,B.useRef)(0),f=`${t.service}:${t.field}`,m=(0,B.useCallback)(()=>{d.current++,i(null),s(!1),l(!1),u.current&&=(clearTimeout(u.current),null)},[]);(0,B.useEffect)(()=>{m()},[t.updatedAt,m]);let h=(0,B.useCallback)(async()=>{let r=++d.current;s(!0);try{let{data:n}=await j({path:{assistant_id:e},body:{service:t.service,field:t.field},throwOnError:!0});d.current===r&&i(n.value)}catch{d.current===r&&O.error(n(`credentialRow.revealFailedToast`,{name:f}))}finally{d.current===r&&s(!1)}},[e,t.service,t.field,f,n]),_=(0,B.useCallback)(()=>{r!=null&&F(r,{errorMessage:n(`credentialRow.copyFailedToast`),onCopied:()=>{l(!0),u.current&&clearTimeout(u.current),u.current=setTimeout(()=>l(!1),U)}})},[r,n]),b=r!==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:()=>b?m():void h(),disabled:o,"aria-label":n(b?`credentialRow.hideValueAriaLabel`:`credentialRow.revealValueAriaLabel`,{name:f}),title:n(b?`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)] ${b?`text-[var(--content-secondary)]`:`select-none text-[var(--content-tertiary)] blur-[3px] hover:blur-[2px]`}`,children:b?r:t.scrubbedValue}),o?(0,H.jsx)(S,{className:`h-3.5 w-3.5 shrink-0 animate-spin`,"aria-hidden":!0}):b?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`button`,{type:`button`,onClick:_,"aria-label":n(`credentialRow.copyValueAriaLabel`,{name:f}),title:n(`credentialRow.copyValueTitle`),className:`shrink-0 rounded-sm p-0.5 text-[var(--content-tertiary)] transition-colors hover:text-[var(--content-secondary)] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[var(--border-focus)]`,children:c?(0,H.jsx)(g,{className:`h-3.5 w-3.5`,"aria-hidden":!0}):(0,H.jsx)(p,{className:`h-3.5 w-3.5`,"aria-hidden":!0})}),(0,H.jsx)(`button`,{type:`button`,onClick:m,"aria-label":n(`credentialRow.hideValueAriaLabel`,{name:f}),title:n(`credentialRow.hideValueTitle`),className:`shrink-0 rounded-sm p-0.5 text-[var(--content-tertiary)] transition-colors hover:text-[var(--content-secondary)] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[var(--border-focus)]`,children:(0,H.jsx)(v,{className:`h-3.5 w-3.5`,"aria-hidden":!0})})]}):(0,H.jsx)(`button`,{type:`button`,onClick:()=>void h(),"aria-label":n(`credentialRow.revealValueAriaLabel`,{name:f}),title:n(`credentialRow.clickToRevealTitle`),className:`shrink-0 rounded-sm p-0.5 text-[var(--content-tertiary)] transition-colors hover:text-[var(--content-secondary)] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[var(--border-focus)]`,children:(0,H.jsx)(y,{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:n,generatingLink:r,deleting:i,onGenerateLink:o,onDelete:c}){let{t:l}=a(`settings`),u=P(),d=r||i,p=(0,H.jsx)(s,{variant:`outlined`,rightIcon:(0,H.jsx)(_,{}),"aria-haspopup":`menu`,"aria-expanded":t,"aria-label":l(`credentialRow.configureAriaLabel`,{name:e}),leftIcon:d?(0,H.jsx)(S,{className:`animate-spin`,"aria-hidden":!0}):void 0,children:l(`credentialRow.configureButton`)});return u?(0,H.jsxs)(f.Root,{open:t,onOpenChange:n,children:[(0,H.jsx)(f.Trigger,{asChild:!0,children:p}),(0,H.jsxs)(f.Content,{children:[(0,H.jsx)(f.Header,{children:(0,H.jsx)(f.Title,{children:e})}),(0,H.jsxs)(f.Body,{children:[(0,H.jsx)(m,{icon:r?S:x,label:l(`credentialRow.generateLinkLabel`),onSelect:()=>{d||o()}}),(0,H.jsx)(m,{icon:i?S:w,label:l(`credentialRow.deleteLabel`),onSelect:()=>{d||c()}})]})]})]}):(0,H.jsxs)(T.Root,{open:t,onOpenChange:n,children:[(0,H.jsx)(T.Trigger,{asChild:!0,children:p}),(0,H.jsxs)(T.Content,{align:`end`,sideOffset:4,role:`menu`,className:`w-56 overflow-hidden p-0`,children:[(0,H.jsx)(s,{type:`button`,role:`menuitem`,variant:`ghost`,onClick:o,disabled:d,className:`w-full justify-start rounded-none`,leftIcon:r?(0,H.jsx)(S,{className:`animate-spin`,"aria-hidden":!0}):(0,H.jsx)(x,{"aria-hidden":!0}),children:l(`credentialRow.generateLinkLabel`)}),(0,H.jsx)(s,{type:`button`,role:`menuitem`,variant:`dangerGhost`,onClick:c,disabled:d,className:`w-full justify-start rounded-none`,leftIcon:i?(0,H.jsx)(S,{className:`animate-spin`,"aria-hidden":!0}):(0,H.jsx)(w,{"aria-hidden":!0}),children:l(`credentialRow.deleteLabel`)})]})]})}function ue(e){return e>0xe8d4a51000?e:e*1e3}async function de(e,t){let{data:n,response:r}=await N.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=I(),t=z(e),n=A.use.assistantId();return A.use.version()!==null&&n===e&&!t?(0,H.jsx)(R,{}):t?(0,H.jsx)(Y,{}):null}function Y(){let{t:e}=a(`settings`),n=I(),i=c(),o=ne(),u=ae(n),f=l({queryKey:u,queryFn:async()=>{let{data:e}=await M({path:{assistant_id:n},body:{},throwOnError:!0});return{credentials:e.credentials,managedCredentials:e.managedCredentials}},enabled:o,retry:t}),m=(0,B.useMemo)(()=>f.data?.credentials??[],[f.data]),g=ie.use.settingsDeveloperNav(),_=(0,B.useMemo)(()=>g?f.data?.managedCredentials??[]:[],[g,f.data]),[v,y]=(0,B.useState)(!1),[w,T]=(0,B.useState)(`own`),[A,j]=(0,B.useState)(``),[N,P]=(0,B.useState)(null),[R,z]=(0,B.useState)(null),[V,U]=(0,B.useState)(null),[W,G]=(0,B.useState)(null),K=re({onSuccess:(t,n)=>{i.invalidateQueries({queryKey:u}),O.success(e(`credentialsPage.deleteSuccessToast`,{name:`${n.body.service}:${n.body.field}`}))},onError:(t,n)=>{let i=se(t),a=m.find(e=>e.service===n.body.service&&e.field===n.body.field);if(i&&a){z({credential:a,connections:i});return}r(t,{context:`credentials-delete`}),O.error(t.message||e(`credentialsPage.deleteErrorToast`))}}),J=K.isPending?`${K.variables?.body?.service}:${K.variables?.body?.field}`:null,Y=(0,B.useMemo)(()=>{let e=A.trim().toLowerCase();return e?m.filter(t=>[t.service,t.field,`${t.service}:${t.field}`,t.alias??``].join(` `).toLowerCase().includes(e)):m},[m,A]);(0,B.useEffect)(()=>{m.length<=q&&j(``)},[m.length]),(0,B.useEffect)(()=>{m.length===0&&_.length>0&&T(`managed`)},[m.length,_.length]);let X=(e,t)=>{K.mutate({path:{assistant_id:n},body:{service:e.service,field:e.field,...t?{force:!0}:{}}})},fe=()=>{let e=N;P(null),e&&X(e,!1)},pe=()=>{let e=R;z(null),e&&X(e.credential,!0)},me=async t=>{let r=`${t.service}:${t.field}`;G(r);try{let i=await de(n,{service:t.service,field:t.field,label:t.alias??void 0});i.ok&&i.url?U({name:r,url:i.url,expiresAt:i.expiresAt??null}):O.error(i.error||e(`credentialsPage.generateLinkFailedToast`))}catch(t){O.error(t instanceof Error?t.message:e(`credentialsPage.generateLinkFailedToast`))}finally{G(null)}},he=()=>{let t=V?.url;t&&F(t,{successMessage:e(`credentialsPage.linkCopiedToast`),errorMessage:e(`credentialsPage.linkCopyFailedToast`)})};if(f.isLoading)return(0,H.jsx)(`div`,{className:`flex items-center justify-center py-10`,children:(0,H.jsx)(S,{className:`h-5 w-5 animate-spin text-[var(--content-disabled)]`})});let Z=m.length>0,Q=_.length>0,ge=m.length>q,$=w===`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)(h,{items:ve,value:w,onChange:T,ariaLabel:e(`credentialsPage.credentialSourceAriaLabel`)}):null,_e&&Z?(0,H.jsx)(s,{type:`button`,variant:`primary`,size:`regular`,onClick:()=>y(!0),leftIcon:(0,H.jsx)(C,{"aria-hidden":!0}),children:e(`credentialsPage.addButton`)}):null]}),children:$?(0,H.jsx)(`div`,{className:`space-y-2`,children:_.map(t=>(0,H.jsx)(d.Root,{children:(0,H.jsxs)(d.Body,{padding:`sm`,className:`flex items-center gap-4 px-4`,children:[(0,H.jsx)(b,{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)(te,{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)(E,{type:`text`,value:A,onChange:e=>j(e.target.value),placeholder:e(`credentialsPage.searchPlaceholder`),"aria-label":e(`credentialsPage.searchAriaLabel`),leftIcon:(0,H.jsx)(ee,{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:A.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:n,generatingLink:W===t,deleting:J===t,onGenerateLink:()=>void me(e),onDelete:()=>P(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)(b,{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)(s,{type:`button`,variant:`outlined`,size:`compact`,onClick:()=>y(!0),className:`w-full border-dashed`,leftIcon:(0,H.jsx)(C,{"aria-hidden":!0}),children:e(`credentialsPage.addCredentialButton`)})]})}),(0,H.jsx)(k,{open:N!==null,title:e(`credentialsPage.deleteConfirmTitle`),message:N?e(`credentialsPage.deleteConfirmMessage`,{name:`${N.service}:${N.field}`}):``,confirmLabel:e(`credentialsPage.deleteConfirmLabel`),destructive:!0,onConfirm:fe,onCancel:()=>P(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)(L,{open:v,onClose:()=>y(!1)}),(0,H.jsx)(D.Root,{open:V!==null,onOpenChange:e=>{e||U(null)},children:(0,H.jsxs)(D.Content,{size:`sm`,children:[(0,H.jsxs)(D.Header,{icon:x,children:[(0,H.jsx)(D.Title,{children:e(`credentialsPage.oneTimeLinkModalTitle`)}),(0,H.jsx)(D.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)(D.Body,{children:(0,H.jsx)(E,{label:e(`credentialsPage.linkLabel`),type:`text`,readOnly:!0,value:V?.url??``,onFocus:e=>e.currentTarget.select(),fullWidth:!0})}),(0,H.jsx)(D.Footer,{children:(0,H.jsx)(s,{type:`button`,size:`compact`,onClick:he,leftIcon:(0,H.jsx)(p,{"aria-hidden":!0}),children:e(`credentialsPage.copyLinkButton`)})})]})})]})}export{J as CredentialsPage};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{v as t}from"./i18n-
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{v as t}from"./i18n-BDfnKs41.js";import{t as n}from"./react-DJZBPgpf.js";import{t as r}from"./jsx-runtime-COOF1INC.js";import{t as i}from"./typography-SdxpXI_m.js";import{t as a}from"./preview-error-DW-EUl80.js";import{l as o}from"./src-BKET5Cno.js";import{t as s}from"./preview-skeleton-DA_Jj0Wc.js";var c=e(n(),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=r(),_=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:n}){let{t:r}=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:n});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)(i,{as:`span`,variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,children:r(`csvPreview.emptyFile`)})}):(0,g.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col`,children:[(0,g.jsx)(o,{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)(i,{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?r(`csvPreview.summaryTruncated`,{rows:p.rows.length,columns:x}):r(`csvPreview.summary`,{rows:p.rows.length,columns:x})})]})}export{b as CsvPreview};
|