@vellumai/web 0.11.0-staging.2 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{AnimatePresence-DPfyu3ET.js → AnimatePresence-xdH2KLtr.js} +1 -1
- package/dist/assets/{BundleConfirmPage-CChUOtcg.js → BundleConfirmPage-4StSZy-f.js} +1 -1
- package/dist/assets/{a2a-invite-pyBtaaeG.js → a2a-invite-C1xJNSGF.js} +1 -1
- package/dist/assets/{about-page-DGUK5p8j.js → about-page-C3tJLjvD.js} +1 -1
- package/dist/assets/access-B_b48snn.js +1 -0
- package/dist/assets/{account-page-D3ERiewh.js → account-page-BvXVc1IK.js} +1 -1
- package/dist/assets/{account-shell-Dk4aC-Ls.js → account-shell-D6aWpePp.js} +1 -1
- package/dist/assets/{acp-run-actions-BH8wuBAL.js → acp-run-actions-8ioRAI8C.js} +1 -1
- package/dist/assets/{acp-run-detail-panel-dqVK6rPq.js → acp-run-detail-panel-B8ULpnis.js} +1 -1
- package/dist/assets/{acp-run-store-B_eDLRwl.js → acp-run-store-CpH4OeOS.js} +1 -1
- package/dist/assets/{activity-steps-panel-xxl2hu3E.js → activity-steps-panel-D8fAVo9_.js} +1 -1
- package/dist/assets/{add-credential-modal-CY_--m8L.js → add-credential-modal-Cu6aAlhm.js} +1 -1
- package/dist/assets/{add-credits-modal-fT_gTTP5.js → add-credits-modal-BelWmezc.js} +1 -1
- package/dist/assets/{ai-page-B02NwVRu.js → ai-page-Dd-qECGn.js} +1 -1
- package/dist/assets/{animated-avatar-BcgncPkc.js → animated-avatar-DknFwi9-.js} +1 -1
- package/dist/assets/{api-C3QSs67k.js → api-BpGogBsg.js} +1 -1
- package/dist/assets/{api-LG8zI3nK.js → api-Coj5enET.js} +1 -1
- package/dist/assets/{api-key-screen-CvBdN6Ae.js → api-key-screen-BhynbUuC.js} +1 -1
- package/dist/assets/{app-card-CAaFL1oB.js → app-card-BF2l9ot8.js} +1 -1
- package/dist/assets/{app-info-DefDjPEl.js → app-info-fS0zIUcN.js} +1 -1
- package/dist/assets/{archive-redirect-page-BH7h0Lk7.js → archive-redirect-page-DOF2veAy.js} +1 -1
- package/dist/assets/{assistant-feature-flag-store-CAdgpPiS.js → assistant-feature-flag-store-B00tpY5e.js} +1 -1
- package/dist/assets/assistant-identity-store-6On4WZ62.js +1 -0
- package/dist/assets/{assistant-status-panel-BTnD-jhG.js → assistant-status-panel-D2PXdHw0.js} +1 -1
- package/dist/assets/{auth-store-5qq59BAN.js → auth-store-EmLZOAkN.js} +2 -2
- package/dist/assets/{avatar-random-BMSYTcJK.js → avatar-random-DjmD5llT.js} +1 -1
- package/dist/assets/{avatar-renderer-ClUVcQmf.js → avatar-renderer-BrNjnimz.js} +1 -1
- package/dist/assets/{background-task-actions-DmP5s0oO.js → background-task-actions-B1bLmbnw.js} +1 -1
- package/dist/assets/{background-task-detail-panel-BCYAElGc.js → background-task-detail-panel-56ZpprL7.js} +1 -1
- package/dist/assets/{background-task-store-DMP8ByUq.js → background-task-store-C5J8CFan.js} +1 -1
- package/dist/assets/billing-page-CbelI-Ui.js +3 -0
- package/dist/assets/billing-redirect-page-BIfv18MY.js +1 -0
- package/dist/assets/{bookmarks-page-D_Jr-a4Q.js → bookmarks-page-BOhi-7gN.js} +1 -1
- package/dist/assets/{browser-CTZVDjOL.js → browser-DvKwnK9l.js} +2 -2
- package/dist/assets/{build-state-m0LQ5Iis.js → build-state-C_Hy9WqC.js} +1 -1
- package/dist/assets/calendar-RYdAv74D.js +1 -0
- package/dist/assets/{capture-error-Bj8_eutd.js → capture-error-Dj49ma74.js} +1 -1
- package/dist/assets/channels-page-route-CiOtL1JY.js +9 -0
- package/dist/assets/{chat-avatar-CvEA6z0H.js → chat-avatar-C9l3drVu.js} +1 -1
- package/dist/assets/{chat-layout-slots-store-BJfYGnd7.js → chat-layout-slots-store-KQz1WMKU.js} +1 -1
- package/dist/assets/{chat-markdown-message-rxPKNeTx.js → chat-markdown-message-9ogr9-mn.js} +2 -2
- package/dist/assets/{checkbox-CRmgkYah.js → checkbox-D7Eg2K35.js} +1 -1
- package/dist/assets/checkout-continuation-DmIXoV4L.js +1 -0
- package/dist/assets/checkout-page-2Xr9vx27.js +1 -0
- package/dist/assets/checkout-return-target-DQBOhh64.js +1 -0
- package/dist/assets/{client-feature-flag-store-CMncoan8.js → client-feature-flag-store-BdNCabm_.js} +1 -1
- package/dist/assets/{client-identity-DhkdvP5w.js → client-identity-yPmEu-I1.js} +1 -1
- package/dist/assets/{command-palette-BTaT__fo.js → command-palette-CzbYrcNM.js} +1 -1
- package/dist/assets/{command-palette-window-page-gq0zowBe.js → command-palette-window-page-CHQdRfhu.js} +1 -1
- package/dist/assets/{community-page-CsEKt9wX.js → community-page-_nhJqpCD.js} +1 -1
- package/dist/assets/{confirm-dialog-UYFm4osC.js → confirm-dialog-D-Yjf2uS.js} +1 -1
- package/dist/assets/{connect-page-B4aTS7Yj.js → connect-page-DS-7aFqU.js} +1 -1
- package/dist/assets/consent-c8EJ3D2A.js +1 -0
- package/dist/assets/{consent-controls-OcgxuxS0.js → consent-controls-DVeAjj2Z.js} +1 -1
- package/dist/assets/{contacts-gateway-B6OrAmU3.js → contacts-gateway-BlLLBft6.js} +1 -1
- package/dist/assets/{contacts-page-route-DNoCUXE7.js → contacts-page-route-eTUOUhJL.js} +1 -1
- package/dist/assets/{conversation-cache-DKvwwWNo.js → conversation-cache-CqrrtLGM.js} +1 -1
- package/dist/assets/{conversation-list-fetchers-DM-Y61u5.js → conversation-list-fetchers-CavIngGf.js} +1 -1
- package/dist/assets/{conversation-navigation-DsN0hcpL.js → conversation-navigation-D8y9l5qL.js} +1 -1
- package/dist/assets/{conversation-queries-CWvK6RLK.js → conversation-queries-688XB7Bh.js} +1 -1
- package/dist/assets/{conversation-store-C--wWMNW.js → conversation-store-D_eevw7L.js} +1 -1
- package/dist/assets/{credential-entry-page-CHinHO85.js → credential-entry-page-C22Mw_ea.js} +1 -1
- package/dist/assets/{credentials-page-BsJFuOc9.js → credentials-page-da3G5EjN.js} +1 -1
- package/dist/assets/{danger-zone-redirect-page-SU45WI74.js → danger-zone-redirect-page-QELjAt0B.js} +1 -1
- package/dist/assets/{debug-page-BziypDgA.js → debug-page-BElAND4u.js} +2 -2
- package/dist/assets/{deploy-dialogs-DZSd5o9b.js → deploy-dialogs-DcxJ8zmL.js} +1 -1
- package/dist/assets/{deploy-store-D6snB1j5.js → deploy-store-Dxp-S0Jo.js} +1 -1
- package/dist/assets/{detail-card-Du8OuE3q.js → detail-card-BiNdiBiS.js} +1 -1
- package/dist/assets/{detail-panel-stop-button-BNuh6N0s.js → detail-panel-stop-button-CZuQfGZs.js} +1 -1
- package/dist/assets/{detail-shell-Cyqr5FXJ.js → detail-shell-DB1cQBnE.js} +1 -1
- package/dist/assets/{developer-page-QMFEIyBS.js → developer-page-Ck66ks9T.js} +1 -1
- package/dist/assets/{devices-redirect-page-B14wK98N.js → devices-redirect-page-B3KUr7o2.js} +1 -1
- package/dist/assets/{diagnostics-T_96Uyh5.js → diagnostics-9AhdBjYA.js} +1 -1
- package/dist/assets/{dictation-overlay-pePw7mLd.js → dictation-overlay-CRLGSCST.js} +1 -1
- package/dist/assets/{dictation-overlay-page-DtgaXzdF.js → dictation-overlay-page-DHI92ftK.js} +1 -1
- package/dist/assets/{dist-oCfq2a_n.js → dist-CXcArvGs.js} +1 -1
- package/dist/assets/{dist-DC9QooLF.js → dist-Ckcpfjj7.js} +1 -1
- package/dist/assets/{doctor-handoff-store-CYjL1S0n.js → doctor-handoff-store-DPviL0wb.js} +1 -1
- package/dist/assets/{document-viewer-container-B7TEDeV0.js → document-viewer-container-Dxc95Z_9.js} +2 -2
- package/dist/assets/{document-viewer-page-3Eq8L562.js → document-viewer-page-ClsAgnVX.js} +1 -1
- package/dist/assets/{edge-swipe-arbiter-store-CQnDi2yf.js → edge-swipe-arbiter-store-QUBer3EI.js} +1 -1
- package/dist/assets/effective-timezone-CnKC3vj0.js +1 -0
- package/dist/assets/emails-page-D1eq8Mcq.js +1 -0
- package/dist/assets/{environment-store-Bft0lpgv.js → environment-store-nuDZk7wN.js} +1 -1
- package/dist/assets/esm-0ejhUWK7.js +2 -0
- package/dist/assets/esm-BPFGl7Zp.js +2 -0
- package/dist/assets/esm-C2uShH10.js +2 -0
- package/dist/assets/esm-CAByj-hK.js +2 -0
- package/dist/assets/esm-Cn1fOTtj.js +2 -0
- package/dist/assets/esm-Df-J9imF.js +1 -0
- package/dist/assets/{esm-Dk6A-sQ0.js → esm-t0mP3xUe.js} +2 -2
- package/dist/assets/{eye-bbox-C_V87iLg.js → eye-bbox-u0VzlPuw.js} +1 -1
- package/dist/assets/{file-editor-phorJEVv.js → file-editor-plAxQBKk.js} +1 -1
- package/dist/assets/{file-markdown-DaflJFk7.js → file-markdown-B0zje_y3.js} +1 -1
- package/dist/assets/first-run-scope-Br96Z0Ol.js +1 -0
- package/dist/assets/{funnel-events-n2IVlwTo.js → funnel-events-BqvFi8Sp.js} +1 -1
- package/dist/assets/{general-page-lbkufqHg.js → general-page-mGY10EuY.js} +1 -1
- package/dist/assets/get-memory-stats-CdA2IhkV.js +1 -0
- package/dist/assets/{haptics-DvWjk9Fg.js → haptics-BTcSZuHP.js} +2 -2
- package/dist/assets/{hatching-screen-D81diZoa.js → hatching-screen-DwNw31vj.js} +1 -1
- package/dist/assets/{home-page-route-CHe8eoLz.js → home-page-route-B2ScoHEE.js} +1 -1
- package/dist/assets/{hosting-screen-D9atAksQ.js → hosting-screen-DKijoYxW.js} +1 -1
- package/dist/assets/identity-page-route-DD_U3Te5.js +7 -0
- package/dist/assets/{index-0f48hi7h.js → index-BEpJ8S2b.js} +3 -3
- package/dist/assets/{ingest-BizI657K.js → ingest-D3dRmJA9.js} +1 -1
- package/dist/assets/{inspect-page-COwvbHtX.js → inspect-page-DVgajY0Q.js} +3 -3
- package/dist/assets/{installed-plugins-query-Cgek0q7G.js → installed-plugins-query-s6Kf3pL8.js} +1 -1
- package/dist/assets/{integration-icon-dv-9Zzx3.js → integration-icon-CmjrEk0J.js} +1 -1
- package/dist/assets/{integrations-page-CJOBwxXp.js → integrations-page-BnPiOw9v.js} +1 -1
- package/dist/assets/intelligence-layout-DfdvpHl4.js +1 -0
- package/dist/assets/invalidate-memory-queries-D8VNhm2x.js +1 -0
- package/dist/assets/{invalidate-plugin-queries-C3NTXkCX.js → invalidate-plugin-queries-v7687-U8.js} +1 -1
- package/dist/assets/{keyboard-shortcuts-redirect-page-CBI_mZIL.js → keyboard-shortcuts-redirect-page-DMytLINR.js} +1 -1
- package/dist/assets/{latest-assistant-text-DOepZ_Io.js → latest-assistant-text-BIlBGS_i.js} +1 -1
- package/dist/assets/library-detail-page-BzvbB9Ud.js +1 -0
- package/dist/assets/{library-page-CNA794WY.js → library-page-DK2Dx8vo.js} +1 -1
- package/dist/assets/{list-row-B1wPb2Au.js → list-row-BOvxGO5h.js} +1 -1
- package/dist/assets/{local-mode-BTovbt13.js → local-mode-BKousn41.js} +1 -1
- package/dist/assets/{local-runtime-upgrade-Bqn3d7Q7.js → local-runtime-upgrade-COcJaRWH.js} +1 -1
- package/dist/assets/login-flow-BVUkpWP_.js +1 -0
- package/dist/assets/login-page-BR42WUVt.js +1 -0
- package/dist/assets/{logout-page-CpFeuLA_.js → logout-page-B8EOSvAV.js} +1 -1
- package/dist/assets/{logs-layout-BUiPeZ4I.js → logs-layout-DK6gVU21.js} +1 -1
- package/dist/assets/memory-page-route-CW1Fgh6X.js +2 -0
- package/dist/assets/{memory-router-playground-page-D4UIq8mw.js → memory-router-playground-page-B-6Yt7rp.js} +1 -1
- package/dist/assets/{menu-BvjhxZo7.js → menu-BKrcAFYk.js} +1 -1
- package/dist/assets/{messages-CFcAW4iz.js → messages-BuqyOjvT.js} +1 -1
- package/dist/assets/{metric-card-05a5slPx.js → metric-card-j9s-2nkl.js} +1 -1
- package/dist/assets/{mobile-sidebar-drawer-DtKU2vlu.js → mobile-sidebar-drawer-BLGt_R0d.js} +1 -1
- package/dist/assets/{modal-BR4CUFBd.js → modal-CoOkN7c0.js} +1 -1
- package/dist/assets/mutation-error-DoEwwcm3.js +1 -0
- package/dist/assets/native-anchor-BeAcmUWk.js +1 -0
- package/dist/assets/{native-biometric-BAMIyaSS.js → native-biometric-DUHF57O_.js} +1 -1
- package/dist/assets/{native-file-ySSv1sQ7.js → native-file-CfGNNXKe.js} +2 -2
- package/dist/assets/navigation-resolver-BIPJSTY5.js +1 -0
- package/dist/assets/{not-found-OqaWNmdx.js → not-found-Dh7Vxgjl.js} +1 -1
- package/dist/assets/{notice-BMK7xqUw.js → notice-B6naz_-V.js} +1 -1
- package/dist/assets/{notifications-page-ClfcJeLf.js → notifications-page-BB5kRj1s.js} +1 -1
- package/dist/assets/{oauth-complete-page-rVmA2Cl8.js → oauth-complete-page-01jk0-Xz.js} +1 -1
- package/dist/assets/{oauth-connection-utils-CWPUW4MK.js → oauth-connection-utils-DhmVsbum.js} +1 -1
- package/dist/assets/{oauth-popup-complete-page-DBsOvLES.js → oauth-popup-complete-page-DdR3sLCH.js} +1 -1
- package/dist/assets/{onboarding-layout-DLs1hfp_.js → onboarding-layout-CYU5QNQ5.js} +1 -1
- package/dist/assets/{onboarding-store-bZ2qYISk.js → onboarding-store-CHsGFmyD.js} +1 -1
- package/dist/assets/open-workspace-file-AUDky4i4.js +2 -0
- package/dist/assets/{page-empty-state-DT-tC1u6.js → page-empty-state-DTRXFoHj.js} +1 -1
- package/dist/assets/{page-shell-C7SUgga9.js → page-shell-Ns8K4aqQ.js} +1 -1
- package/dist/assets/{pairing-page-ZkFipOSH.js → pairing-page-COqX_5vT.js} +1 -1
- package/dist/assets/{panel-item-CrtoJCrd.js → panel-item-CQt19wOM.js} +1 -1
- package/dist/assets/{password-reset-page-iASQZawH.js → password-reset-page-Ck1m9qRW.js} +1 -1
- package/dist/assets/{personality-page-BJpW3UXD.js → personality-page-B0GpJMv5.js} +1 -1
- package/dist/assets/plans-page-GiIsWq7v.js +1 -0
- package/dist/assets/{platform-detection-XEAAu4c-.js → platform-detection-D1fBX4KG.js} +1 -1
- package/dist/assets/{platform-login-notice-CdYiKsE8.js → platform-login-notice-D_-ZVyk8.js} +1 -1
- package/dist/assets/platform-loopback-page-B68rydoU.js +1 -0
- package/dist/assets/{plugin-detail-page-Bx2wzKEf.js → plugin-detail-page-DGzmeb3j.js} +1 -1
- package/dist/assets/plugins-page-C7Xd3LTL.js +1 -0
- package/dist/assets/plugins-surface-BGSKlIwH.js +1 -0
- package/dist/assets/{popover-BRpYVASI.js → popover-CDZiHp1D.js} +1 -1
- package/dist/assets/{prefs-bw85lYLp.js → prefs-BplCYXxl.js} +1 -1
- package/dist/assets/{privacy-page-B0QN4qZO.js → privacy-page-NhPZ8klL.js} +1 -1
- package/dist/assets/{privacy-screen-vp4uUpm6.js → privacy-screen-hSx7ZwqA.js} +1 -1
- package/dist/assets/{provider-callback-page-BH6DES7c.js → provider-callback-page-Dkxi-_kI.js} +1 -1
- package/dist/assets/{provider-key-D2Nsf9zh.js → provider-key-B07UMm1T.js} +1 -1
- package/dist/assets/provider-signup-page-BapnHqaW.js +1 -0
- package/dist/assets/{provisioning-targets-BTjyR9nk.js → provisioning-targets-epeYMPhZ.js} +1 -1
- package/dist/assets/{quick-input-page-Dq-0BGrJ.js → quick-input-page-DnjOMI1n.js} +1 -1
- package/dist/assets/{react-query.gen-BC3STDmV.js → react-query.gen-9VRdubOj.js} +1 -1
- package/dist/assets/{react-query.gen-C5c1Acuq.js → react-query.gen-BeiAUt-2.js} +1 -1
- package/dist/assets/{remote-gateway-session-yRYdsfDx.js → remote-gateway-session-DJ1rzXEw.js} +1 -1
- package/dist/assets/{research-facts-B7Ev1zv0.js → research-facts-B5ItKoAK.js} +1 -1
- package/dist/assets/{research-mock-page-BJEpxdMv.js → research-mock-page-gbOSvFQL.js} +1 -1
- package/dist/assets/{research-onboarding-persistence-51lJoYJ2.js → research-onboarding-persistence-CgJDwdl9.js} +1 -1
- package/dist/assets/{research-onboarding-route-CFL3q__m.js → research-onboarding-route-DpgbtSS0.js} +1 -1
- package/dist/assets/{research-results-view-C4sIw2gK.js → research-results-view-WQsLxBlE.js} +1 -1
- package/dist/assets/{resolved-assistants-store-Dw5UuGyB.js → resolved-assistants-store-FEmi1gGu.js} +1 -1
- package/dist/assets/{retire-confirm-dialog-CsSY2-T8.js → retire-confirm-dialog-CFJqb_EM.js} +1 -1
- package/dist/assets/review-terms-screen-c4Vt5WqP.js +1 -0
- package/dist/assets/{risk-CdT92Vqr.js → risk-RmzL2Rk_.js} +2 -2
- package/dist/assets/routes-CsoiCk2y.js +1 -0
- package/dist/assets/routes-NQmj27cY.js +23 -0
- package/dist/assets/{runtime-upgrade-banner-DPqzKtZU.js → runtime-upgrade-banner-BM2b81eK.js} +2 -2
- package/dist/assets/{schedules-6hzhR_C_.js → schedules-BMEs36wC.js} +1 -1
- package/dist/assets/schedules-page-BkOE2joT.js +1 -0
- package/dist/assets/{sdk.gen-BIu1DgTs.js → sdk.gen-DHJ7Pbqq.js} +1 -1
- package/dist/assets/{security-redirect-page-4DKqyPsf.js → security-redirect-page-CMMujz_x.js} +1 -1
- package/dist/assets/{select-assistant-screen-CVV3iqMy.js → select-assistant-screen-S526udI9.js} +1 -1
- package/dist/assets/{setting-row-BwXKepmJ.js → setting-row-D10FtQcP.js} +1 -1
- package/dist/assets/{settings-CfuLzwIw.js → settings-PGZ9c_uo.js} +1 -1
- package/dist/assets/{settings-divider-Ro7lPCkV.js → settings-divider-CItcvksF.js} +1 -1
- package/dist/assets/settings-layout-DKr7K-B6.js +1 -0
- package/dist/assets/{settings-navigation-CSG7jiyJ.js → settings-navigation-ji_jJYq2.js} +1 -1
- package/dist/assets/{share-feedback-modal-BoWCg4KH.js → share-feedback-modal-GLBRzcZa.js} +1 -1
- package/dist/assets/{sidebar-tree-C_PPNHe5.js → sidebar-tree-CEPitR5K.js} +1 -1
- package/dist/assets/signup-page-C0y2CTKm.js +1 -0
- package/dist/assets/{signup-shell-CMsBZ8vG.js → signup-shell-DxP2zqed.js} +1 -1
- package/dist/assets/{site-favicon-BB1pYWLF.js → site-favicon-Dx98M-cB.js} +1 -1
- package/dist/assets/{skill-detail-page-CTobyK6L.js → skill-detail-page-o3EhI_Q2.js} +1 -1
- package/dist/assets/{skill-detail-panel-CNzionF7.js → skill-detail-panel-DdQL6oky.js} +1 -1
- package/dist/assets/{skills-Cum1XWT2.js → skills-DT9YkYm6.js} +1 -1
- package/dist/assets/{skills-page-DZVxAbua.js → skills-page-BtFhw8jF.js} +1 -1
- package/dist/assets/{slack-setup-wizard-DK2F8LXc.js → slack-setup-wizard-C6ALDSEa.js} +1 -1
- package/dist/assets/{sound-manager-Bx-OcMAz.js → sound-manager-Dy2ohKg4.js} +1 -1
- package/dist/assets/{sounds-page-C45-RF4i.js → sounds-page-D4kMljoY.js} +1 -1
- package/dist/assets/{src-te3YTBG-.js → src-CnF7WXNj.js} +1 -1
- package/dist/assets/{start-screen-CkJiCl9b.js → start-screen-BiV4V5J1.js} +1 -1
- package/dist/assets/{subagent-detail-panel-DyyMdaNO.js → subagent-detail-panel-Cvmfu7Ym.js} +1 -1
- package/dist/assets/{subagent-store-MDi6lBXs.js → subagent-store-B2Uhma4F.js} +1 -1
- package/dist/assets/superpowers-page-CPBz-c5i.js +1 -0
- package/dist/assets/{system-events-page-DXAU01ZO.js → system-events-page-CpUI1rsZ.js} +1 -1
- package/dist/assets/{system-events-redirect-page-Bm9bipNo.js → system-events-redirect-page-BQrnMF4i.js} +1 -1
- package/dist/assets/{tag-NXcyiTkK.js → tag-Dn1d6hKF.js} +1 -1
- package/dist/assets/{theme-stage-page-BDTCmutO.js → theme-stage-page-CW3erTQ4.js} +1 -1
- package/dist/assets/{threshold-presets-BdTTHCnm.js → threshold-presets-ByKylDXk.js} +1 -1
- package/dist/assets/{tiptap-document-editor-CHn2wCDv.js → tiptap-document-editor-CbPrzkBM.js} +1 -1
- package/dist/assets/{toast-LgLp4obE.js → toast-BcMdOTp1.js} +1 -1
- package/dist/assets/{tool-detail-panel-DFrWEWKG.js → tool-detail-panel-DyfiRoE5.js} +1 -1
- package/dist/assets/{transcript-message-body-shared-D9_d2c2X.js → transcript-message-body-shared-Cb89j7p1.js} +1 -1
- package/dist/assets/{trust-rules-api-B5lfygCA.js → trust-rules-api-CVYU31TU.js} +1 -1
- package/dist/assets/upgrade-cancel-page-BSAoMrm5.js +1 -0
- package/dist/assets/{upgrade-success-page-Cb1Gl4MM.js → upgrade-success-page-CooDWnEr.js} +1 -1
- package/dist/assets/{usage-redirect-page-BOfJ7uot.js → usage-redirect-page-DtwSt4vM.js} +1 -1
- package/dist/assets/{use-active-assistant-id-CldxA_-M.js → use-active-assistant-id-CUKao_nq.js} +1 -1
- package/dist/assets/{use-app-theme-Dg8A6vPA.js → use-app-theme-BhnyqHgJ.js} +1 -1
- package/dist/assets/{use-assistant-avatar-bwLHcMz4.js → use-assistant-avatar-BcObK2L0.js} +1 -1
- package/dist/assets/{use-assistant-capability-CDS7GbSO.js → use-assistant-capability-BdWmg2Vg.js} +1 -1
- package/dist/assets/{use-assistant-identity-details-9JRWxXTQ.js → use-assistant-identity-details-BdFppz9B.js} +1 -1
- package/dist/assets/{use-avatar-accent-var-vpakP1ce.js → use-avatar-accent-var-rnSeYvBI.js} +1 -1
- package/dist/assets/{use-bookmarks-CK-nOiT-.js → use-bookmarks-DtteniG3.js} +1 -1
- package/dist/assets/{use-bundled-avatar-components-Bbs4vCnX.js → use-bundled-avatar-components-B1ARUeam.js} +2 -2
- package/dist/assets/{use-bus-subscription-nUrbz9Mu.js → use-bus-subscription-NoXmdzgx.js} +1 -1
- package/dist/assets/{use-checkout-dismiss-refresh-CqGR_OsB.js → use-checkout-dismiss-refresh-wRSmB_TU.js} +1 -1
- package/dist/assets/use-command-palette-sections-GAugkmjU.js +1 -0
- package/dist/assets/{use-discord-nudge-C_QdHIeX.js → use-discord-nudge-h0WPtIp6.js} +1 -1
- package/dist/assets/{use-edge-swipe-Wm9pU2HX.js → use-edge-swipe-DDntz5ZJ.js} +1 -1
- package/dist/assets/{use-edge-swipe-back-BcSHNCwS.js → use-edge-swipe-back-Rp4TEihl.js} +1 -1
- package/dist/assets/{use-edit-app-B_Nequzs.js → use-edit-app-BSbRuVnn.js} +1 -1
- package/dist/assets/{use-effective-timezone-Dqs8OaXJ.js → use-effective-timezone-Om_EkJxK.js} +1 -1
- package/dist/assets/{use-invite-link-dialog-CPPOduk8.js → use-invite-link-dialog-yw1dtYd_.js} +1 -1
- package/dist/assets/{use-ios-app-nudge-B-ojl-b1.js → use-ios-app-nudge-CeOXecJj.js} +1 -1
- package/dist/assets/{use-is-org-ready-C5xlYywh.js → use-is-org-ready-BrKAc9Df.js} +1 -1
- package/dist/assets/{use-onboarding-login-DI5gvqEG.js → use-onboarding-login-DsCjVy0U.js} +1 -1
- package/dist/assets/{use-platform-assistant-id-DOsSt6k1.js → use-platform-assistant-id-DSR1LFZF.js} +1 -1
- package/dist/assets/{use-platform-gate-C65D14xY.js → use-platform-gate-Cv2oOK8C.js} +1 -1
- package/dist/assets/{use-reduced-motion-W1fCe3vS.js → use-reduced-motion-D0Rb5Fd_.js} +1 -1
- package/dist/assets/use-return-to-short-circuit-DEKlWitV.js +1 -0
- package/dist/assets/{use-save-twilio-credentials-c9xG9RPK.js → use-save-twilio-credentials-CecOWIyh.js} +1 -1
- package/dist/assets/{use-skill-actions-BAAx1Eia.js → use-skill-actions-DTznrJR1.js} +1 -1
- package/dist/assets/{use-skill-detail-files-BvOKvY0-.js → use-skill-detail-files-CKgT7qkY.js} +1 -1
- package/dist/assets/{use-sticky-profiles-CdWX0mgI.js → use-sticky-profiles-CdiEmubF.js} +1 -1
- package/dist/assets/{use-subagent-card-data-DHuNtSy9.js → use-subagent-card-data-DJujXR76.js} +1 -1
- package/dist/assets/{use-supports-bookmarks-C3J7FtDn.js → use-supports-bookmarks-D4_-FkJA.js} +1 -1
- package/dist/assets/use-supports-credentials-settings-CGDLraXI.js +1 -0
- package/dist/assets/{use-swipe-engine-6PcZZMVD.js → use-swipe-engine-ehsGV4fb.js} +1 -1
- package/dist/assets/{utils-B0rBxtYP.js → utils-CP1NAeej.js} +1 -1
- package/dist/assets/{utils-CnB60ZJN.js → utils-D8KOSvh3.js} +1 -1
- package/dist/assets/{viewer-store-DLk-jp8U.js → viewer-store-BVsBGqdn.js} +1 -1
- package/dist/assets/{voice-list-CW8mzaHU.js → voice-list-DeqvOR_J.js} +1 -1
- package/dist/assets/{voice-page-0zsCIOdT.js → voice-page-Cas-WIf4.js} +1 -1
- package/dist/assets/voice-picker-modal-D0K6miA1.js +1 -0
- package/dist/assets/{weather-forecast-display-BAAnrNdd.js → weather-forecast-display-JW8ecLNy.js} +1 -1
- package/dist/assets/{web-9Cwi5jnT.js → web-BTtRunTK.js} +1 -1
- package/dist/assets/{web-Bi-BvsRt.js → web-Bd-5Eyoa.js} +1 -1
- package/dist/assets/{web-D486_dlv.js → web-ByAAA1Mb.js} +1 -1
- package/dist/assets/{web-sr1ba6fP.js → web-DFbI_g4o.js} +1 -1
- package/dist/assets/{web-BlvxItuO.js → web-DIn7jUpJ.js} +1 -1
- package/dist/assets/{web-l9DWMZeA.js → web-DYQ0KCC4.js} +1 -1
- package/dist/assets/{web-DUb4LJ2M.js → web-Db-2E0qX.js} +1 -1
- package/dist/assets/{web-B3Q8ntoM.js → web-PfT3uNnR.js} +1 -1
- package/dist/assets/{welcome-screen-DwOAZpZS.js → welcome-screen-D_DTupb3.js} +1 -1
- package/dist/assets/{workflow-detail-panel-DGL2BZSr.js → workflow-detail-panel-DAVe3vEm.js} +1 -1
- package/dist/assets/{workflow-store-lM7yKbUo.js → workflow-store-C3g-qg1u.js} +1 -1
- package/dist/assets/{workspace-page-D4NvhCv1.js → workspace-page-Dq0z3-Rs.js} +1 -1
- package/dist/assets/{workspace-tree-query-B1A-efgV.js → workspace-tree-query-D9VBUg-W.js} +1 -1
- package/dist/index.html +197 -194
- package/package.json +1 -1
- package/dist/assets/access-DS79PSR3.js +0 -1
- package/dist/assets/assistant-identity-store-DIyVo8LV.js +0 -1
- package/dist/assets/billing-page-B5j5TW_S.js +0 -3
- package/dist/assets/billing-redirect-page-B1o1rsQZ.js +0 -1
- package/dist/assets/channels-page-route-BYP9SOw5.js +0 -9
- package/dist/assets/checkout-continuation-U3Pd2nxi.js +0 -1
- package/dist/assets/checkout-page-C5_9GbP-.js +0 -1
- package/dist/assets/checkout-return-target-DI6Hb-9L.js +0 -1
- package/dist/assets/consent-hzYg-zbh.js +0 -1
- package/dist/assets/effective-timezone-CmcoXrio.js +0 -1
- package/dist/assets/emails-page-Wr4wPSYl.js +0 -1
- package/dist/assets/esm-BKewCp71.js +0 -2
- package/dist/assets/esm-DNvorKcw.js +0 -1
- package/dist/assets/esm-Deuay4YU.js +0 -2
- package/dist/assets/esm-IoT87yZe.js +0 -2
- package/dist/assets/esm-PYpy75OW.js +0 -2
- package/dist/assets/esm-xItcektK.js +0 -2
- package/dist/assets/first-run-scope-CL5YbC3b.js +0 -1
- package/dist/assets/get-memory-stats-BCYSpBF6.js +0 -1
- package/dist/assets/identity-page-route-CK3YsXCN.js +0 -7
- package/dist/assets/intelligence-layout-MNoGhi-l.js +0 -1
- package/dist/assets/library-detail-page-DVwI94NZ.js +0 -1
- package/dist/assets/login-flow-CD9tyuFG.js +0 -1
- package/dist/assets/login-page-BNStrcnU.js +0 -1
- package/dist/assets/memory-page-route-C0cBV7HD.js +0 -2
- package/dist/assets/mutation-error-DEknRDAQ.js +0 -1
- package/dist/assets/native-anchor-CeekjwVy.js +0 -1
- package/dist/assets/navigation-resolver-DPJxzx0h.js +0 -1
- package/dist/assets/open-workspace-file-DtK3a84K.js +0 -2
- package/dist/assets/plans-page-BDKqdYNM.js +0 -1
- package/dist/assets/platform-loopback-page-D0gXCm2S.js +0 -1
- package/dist/assets/plugins-page-B2zQ2iGh.js +0 -1
- package/dist/assets/plugins-surface-B43Op43l.js +0 -1
- package/dist/assets/provider-signup-page-BAPcG_iJ.js +0 -1
- package/dist/assets/review-terms-screen-BhyRQBjl.js +0 -1
- package/dist/assets/routes-CaP5Tqj7.js +0 -23
- package/dist/assets/routes-D9sNqB_o.js +0 -1
- package/dist/assets/schedules-page-DVnUeaoB.js +0 -1
- package/dist/assets/settings-layout-B_4PKJr9.js +0 -1
- package/dist/assets/signup-page-D0S_8XYw.js +0 -1
- package/dist/assets/superpowers-page-CaLzK5D-.js +0 -1
- package/dist/assets/upgrade-cancel-page-eiJEAvFz.js +0 -1
- package/dist/assets/use-command-palette-sections-CkpUaAKs.js +0 -1
- package/dist/assets/use-supports-credentials-settings-BbfghcWq.js +0 -1
- package/dist/assets/voice-picker-modal-PdsZwrsV.js +0 -1
- /package/dist/assets/{Combination-CkAMwkbS.js → Combination-BRDRMC4m.js} +0 -0
- /package/dist/assets/{api-errors-CFiCT7Ap.js → api-errors-DHvv5HEN.js} +0 -0
- /package/dist/assets/{app-types-DSkgEmV3.js → app-types-BnzWLsk5.js} +0 -0
- /package/dist/assets/{apple-logo--8ZT6Umn.js → apple-logo-C3XrRC_i.js} +0 -0
- /package/dist/assets/{avatar-bundled-components-DPqbVXi9.js → avatar-bundled-components-yyfTpx_l.js} +0 -0
- /package/dist/assets/{avatar-subagent-CRA2B82x.js → avatar-subagent-Bpy9-0YN.js} +0 -0
- /package/dist/assets/{avatar-svg-compositor-Dl-ckXRE.js → avatar-svg-compositor-DeuQqt-f.js} +0 -0
- /package/dist/assets/{avatar-tone-BKwvoDSj.js → avatar-tone-BBZKSrBa.js} +0 -0
- /package/dist/assets/{browser-timezone-CGwaX5Uv.js → browser-timezone-DGz-HvxU.js} +0 -0
- /package/dist/assets/{build.umd-Bixyt_xE.js → build.umd-CpQXlBwc.js} +0 -0
- /package/dist/assets/{by-tool-use-id-index-M50wYE1f.js → by-tool-use-id-index-DcsiqOhc.js} +0 -0
- /package/dist/assets/{chat-CDFCY8f0.js → chat-B9S7HTkM.js} +0 -0
- /package/dist/assets/{client.gen-CV05d-kw.js → client.gen-DPP573hb.js} +0 -0
- /package/dist/assets/{conversation-selection-oJy8Oht3.js → conversation-selection-Cx6Axfzb.js} +0 -0
- /package/dist/assets/{create-selectors-Qo7kcikX.js → create-selectors-B41BzcFF.js} +0 -0
- /package/dist/assets/{definitions-JF3PcEff.js → definitions-B2pe1hr8.js} +0 -0
- /package/dist/assets/{definitions-D_AmTPWg.js → definitions-B6TMLvuT.js} +0 -0
- /package/dist/assets/{dist-jXSU-ejH.js → dist-BbzsnMsY.js} +0 -0
- /package/dist/assets/{dist-CaYJ736y.js → dist-BxvMAFS8.js} +0 -0
- /package/dist/assets/{dist-BwAT3VYQ.js → dist-CCFYMOVM.js} +0 -0
- /package/dist/assets/{domains-DWRzNRJy.js → domains-BLQZqRIT.js} +0 -0
- /package/dist/assets/{dropdown-BCfnSdIZ.js → dropdown-BtWhNXSV.js} +0 -0
- /package/dist/assets/{edit-chat-session-D37Qx6ol.js → edit-chat-session-DDnAzqkB.js} +0 -0
- /package/dist/assets/{emoji-catalog-data-BCc1YNMR.js → emoji-catalog-data-DvjqmdH4.js} +0 -0
- /package/dist/assets/{event-bus-DSxmBYhD.js → event-bus-DYZhc6yM.js} +0 -0
- /package/dist/assets/{external-urls-_vjsdj2L.js → external-urls-DIbR-npW.js} +0 -0
- /package/dist/assets/{feature-flag-catalog-I9-eJQP_.js → feature-flag-catalog-CWB-r-Pj.js} +0 -0
- /package/dist/assets/{format-date-BGnM4mqL.js → format-date-BEAiOK8n.js} +0 -0
- /package/dist/assets/{format-file-size-BgMTiWPt.js → format-file-size-BtDHBEb-.js} +0 -0
- /package/dist/assets/{hard-navigate-DyUrcxe0.js → hard-navigate-V2EFapkk.js} +0 -0
- /package/dist/assets/{impersonate-version-flag-4Ki_3iKD.js → impersonate-version-flag-Cad5-ZZv.js} +0 -0
- /package/dist/assets/{input-hw3el2GJ.js → input-F_x2LXmm.js} +0 -0
- /package/dist/assets/{is-electron-m5eeGBnd.js → is-electron-D-TCQRcE.js} +0 -0
- /package/dist/assets/{link-click-DLYgWZdo.js → link-click-BIvzZsRn.js} +0 -0
- /package/dist/assets/{machine-sizes-DO8duvpy.js → machine-sizes-CT-fSRKD.js} +0 -0
- /package/dist/assets/{misc-CuYswARt.js → misc-CXDB4i-X.js} +0 -0
- /package/dist/assets/{native-deep-link-DCBJ-Rw0.js → native-deep-link-D4jZANvf.js} +0 -0
- /package/dist/assets/{oauth-popup-OhSYYlQF.js → oauth-popup-BsYPnBq7.js} +0 -0
- /package/dist/assets/{onboarding-step-layout-D9rghAjS.js → onboarding-step-layout-Do2o16kf.js} +0 -0
- /package/dist/assets/{optimistic-lifecycle-BINTsVFx.js → optimistic-lifecycle-Dxhc3mFf.js} +0 -0
- /package/dist/assets/{pdf-BlwLcQAc.js → pdf-CRRXY5Nb.js} +0 -0
- /package/dist/assets/{plugin-attribution-DrwveSW_.js → plugin-attribution-ug-jMTXi.js} +0 -0
- /package/dist/assets/{pointer-BbPfN86L.js → pointer-DAyn_9jY.js} +0 -0
- /package/dist/assets/{prechat-CeL4a_1i.js → prechat-EVefdGcO.js} +0 -0
- /package/dist/assets/{profile-metadata-BhqRdqUJ.js → profile-metadata-EGAGq_rk.js} +0 -0
- /package/dist/assets/{progress-bar-C_T5_pf2.js → progress-bar-B64ghmWk.js} +0 -0
- /package/dist/assets/{proxy-D7UPVac3.js → proxy-lxbolTGx.js} +0 -0
- /package/dist/assets/{public-asset-BBVUuTT_.js → public-asset-BoN50HP_.js} +0 -0
- /package/dist/assets/{sandbox-bridge-BxW8HZq_.js → sandbox-bridge-CjHMJYTZ.js} +0 -0
- /package/dist/assets/{sdk.gen-B5ygTzyg.js → sdk.gen-CtusrdLv.js} +0 -0
- /package/dist/assets/{sdk.gen-BHZ0fJla.js → sdk.gen-DeyOX3Kb.js} +0 -0
- /package/dist/assets/{semver-BpijV4FQ.js → semver-Ok0Hi8v9.js} +0 -0
- /package/dist/assets/{shield-fzs_emVe.js → shield-B69p45Kq.js} +0 -0
- /package/dist/assets/{shield-check-22NwY9JM.js → shield-check-C7I-REGg.js} +0 -0
- /package/dist/assets/{smartphone-mDNwm_ss.js → smartphone-zTfpbpuH.js} +0 -0
- /package/dist/assets/{sparkles-Ccrj7hxd.js → sparkles-nPSxUfsO.js} +0 -0
- /package/dist/assets/{square-D_e8nR-F.js → square-CRVB76KQ.js} +0 -0
- /package/dist/assets/{status-badge-pill-wJPMXQk1.js → status-badge-pill-CGODAHVT.js} +0 -0
- /package/dist/assets/{sun-Dw0t1n1O.js → sun-DXlsFvWD.js} +0 -0
- /package/dist/assets/{terminal-CdCI6wMV.js → terminal-BvDcWAOW.js} +0 -0
- /package/dist/assets/{theme-preferences-Bb2pPRXa.js → theme-preferences-LQuLaIA6.js} +0 -0
- /package/dist/assets/{three-dot-indicator-BMvKQ_On.js → three-dot-indicator-B_GPAioB.js} +0 -0
- /package/dist/assets/{toggle-lfnhEAcN.js → toggle-B4nIp0sf.js} +0 -0
- /package/dist/assets/{trash-2-L5LNgw9o.js → trash-2-BF5y4UkY.js} +0 -0
- /package/dist/assets/{triangle-alert-CQfiAg_t.js → triangle-alert-Dq3v0coH.js} +0 -0
- /package/dist/assets/{typed-storage-9Sn8tkE7.js → typed-storage-CcMT-hWr.js} +0 -0
- /package/dist/assets/{use-copy-to-clipboard-cF7ZSilD.js → use-copy-to-clipboard-VK_922zc.js} +0 -0
- /package/dist/assets/{use-is-mobile-BlQuzI5Z.js → use-is-mobile-Cx2xnNUx.js} +0 -0
- /package/dist/assets/{user-_zNqL48O.js → user-KBQkOaB5.js} +0 -0
- /package/dist/assets/{user-plus-oiIr9ey8.js → user-plus-CsHAo9W6.js} +0 -0
- /package/dist/assets/{users-iLvfYFOP.js → users-C0mu7-R4.js} +0 -0
- /package/dist/assets/{volume-2-CvT-JEIl.js → volume-2-DnyXryvu.js} +0 -0
- /package/dist/assets/{workflow-cWWiPi3K.js → workflow-CN4xwQpa.js} +0 -0
- /package/dist/assets/{workflow-status-HyIIhMBP.js → workflow-status-CgrMMiJT.js} +0 -0
- /package/dist/assets/{workspace-theme-tokens-DNNwX-XS.js → workspace-theme-tokens-D8TTf-DX.js} +0 -0
- /package/dist/assets/{wrench-0WW0zkkG.js → wrench-DDDwrNwL.js} +0 -0
- /package/dist/assets/{x-JBAsSOmg.js → x-BGag7vwj.js} +0 -0
- /package/dist/assets/{xterm-addon-fit-BVObYBMM.js → xterm-addon-fit-B1qPIPGd.js} +0 -0
- /package/dist/assets/{xterm-DgGqTfet.js → xterm-coCKWVob.js} +0 -0
- /package/dist/assets/{zoom-in-CaLYwni-.js → zoom-in-C96B1CNL.js} +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/native-file-
|
|
2
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./capture-error-Bj8_eutd.js";import{t as n}from"./react-BFJW0bSv.js";import{F as r,t as i}from"./button-Dy5001j6.js";import{t as a}from"./preload-helper-Cv2QeVDK.js";import{t as o}from"./useQuery-Bz-fbQ-m.js";import{t as s}from"./jsx-runtime-D3ZM-ToX.js";import{t as c}from"./typography-DEI9Ra9z.js";import{t as l}from"./check-sC49_hjU.js";import{t as u}from"./chevron-left-CytMddTB.js";import{t as d}from"./chevron-right-HU6H84S0.js";import{o as f}from"./list-row-B1wPb2Au.js";import{t as p}from"./download-CywcQLB2.js";import{t as m}from"./eye-off-Jdx8qkOK.js";import{t as h}from"./eye-BMVGQXHT.js";import{n as g,r as _}from"./workspace-tree-query-B1A-efgV.js";import{t as v}from"./key-round-0Zop_GsZ.js";import{t as y}from"./loader-circle-XREx3i4W.js";import{t as b}from"./x-JBAsSOmg.js";import{_ as x,c as S,s as C}from"./src-te3YTBG-.js";import{n as w}from"./toast-LgLp4obE.js";import{n as T,t as E}from"./file-markdown-DaflJFk7.js";import{n as ee}from"./resolved-assistants-store-Dw5UuGyB.js";import{dt as te,l as D}from"./sdk.gen-BHZ0fJla.js";import{t as O}from"./dist-BwAT3VYQ.js";import{r as k}from"./use-is-org-ready-C5xlYywh.js";import{n as A}from"./browser-CTZVDjOL.js";import{t as j}from"./haptics-DvWjk9Fg.js";import{t as ne}from"./edge-swipe-arbiter-store-CQnDi2yf.js";import{t as re}from"./native-anchor-CeekjwVy.js";var M=e(n(),1),ie=e(r(),1),N=s(),ae=`width=500,height=600`;function P(e){if(!e)return null;let t;try{let n=typeof window>`u`?`http://localhost`:window.location.origin;t=new URL(e,n)}catch{return null}return t.protocol!==`https:`&&t.protocol!==`http:`?null:t}function F(e){let t=P(e);if(!t)return!1;let n=t.pathname.toLowerCase();return t.searchParams.get(`response_type`)===`code`&&t.searchParams.has(`client_id`)&&t.searchParams.has(`redirect_uri`)||t.searchParams.has(`client_id`)&&t.searchParams.has(`redirect_uri`)&&/oauth|authorize|auth/.test(n)}function I(e){if(typeof window>`u`)return null;let t=P(e);return!t||t.origin!==window.location.origin?null:`${t.pathname}${t.search}${t.hash}`}function L(e){return P(e)?.href??null}function R(e){if(!F(e))return!1;if(O.isNativePlatform()){let t=L(e);return t?(A(t),!0):!1}let t=window.open(e,`_blank`,ae);return t===null?!1:(t.focus(),!0)}function oe(e){return R(e)}function z(e){if(R(e))return!0;let t=window.open(e,`_blank`);return t===null?!1:(t.focus(),!0)}function B(e,t){let n=I(e);if(n)return t.push(n),{kind:`routed`};let r=L(e);return r?t.isNative?(A(r),{kind:`opened`}):z(r)?{kind:`opened`}:{kind:`blocked`,url:r}:{kind:`invalid`}}async function V(e,t){if(!t||t.startsWith(`rehydrated:`))return null;try{let{data:n,error:r}=await D({path:{assistant_id:e,id:t},parseAs:`blob`,throwOnError:!1});return!r&&n instanceof Blob?n:null}catch{return null}}async function se(e,t){let{saveFile:n}=await a(async()=>{let{saveFile:e}=await import(`./native-file-ySSv1sQ7.js`).then(e=>e.t);return{saveFile:e}},__vite__mapDeps([0,1,2,3,4]));if(t){let r=await V(t,e.id);if(r){await n(r,e.filename);return}}e.previewUrl&&await n(e.previewUrl,e.filename)}function H(e){if(!Number.isFinite(e)||e<=0)return`0 B`;let t=[`B`,`KB`,`MB`,`GB`],n=e,r=0;for(;n>=1024&&r<t.length-1;)n/=1024,r+=1;return`${n>=10||r===0?Math.round(n).toString():n.toFixed(1)} ${t[r]}`}function U(e,t){let n=(e||``).toLowerCase(),r=t.split(`.`).pop()?.toLowerCase()??``;return n.startsWith(`image/`)?`image`:n.startsWith(`video/`)?`video`:n.startsWith(`audio/`)?`audio`:n===`application/pdf`||r===`pdf`?`pdf`:n===`application/zip`||n===`application/x-tar`||n===`application/gzip`||[`zip`,`tar`,`gz`,`tgz`,`rar`,`7z`].includes(r)?`archive`:n===`text/csv`||n===`application/vnd.ms-excel`||n===`application/vnd.openxmlformats-officedocument.spreadsheetml.sheet`||[`csv`,`xlsx`,`xls`,`numbers`].includes(r)?`spreadsheet`:`ts.tsx.js.jsx.py.rb.go.rs.java.kt.swift.c.cc.cpp.h.hpp.sh.bash.zsh.html.css.scss.json.yaml.yml.toml.xml`.split(`.`).includes(r)?`code`:n===`application/msword`||n===`application/vnd.openxmlformats-officedocument.wordprocessingml.document`||[`doc`,`docx`,`pages`].includes(r)?`document`:n.startsWith(`text/`)||[`txt`,`md`,`rtf`].includes(r)?`text`:`file`}function W(e){let t=e.replace(/\s/g,``),n=t.endsWith(`==`)?2:+!!t.endsWith(`=`);return Math.max(0,Math.floor(t.length*3/4)-n)}function G(e){let t=e.match(/;base64,(.*)$/);if(!t?.[1])return null;let n=atob(t[1]),r=new Uint8Array(n.length);for(let e=0;e<n.length;e++)r[e]=n.charCodeAt(e);return r}function K(e,t=28){if(e.length<=t)return e;let n=Math.max(4,Math.floor((t-1)/2));return`${e.slice(0,n)}…${e.slice(e.length-n)}`}var ce=1.5,le=20,ue=!1;async function de(){let e=await a(()=>import(`./pdf-BlwLcQAc.js`),__vite__mapDeps([5,2]));return ue||=(e.GlobalWorkerOptions.workerSrc=`https://cdn.jsdelivr.net/npm/pdfjs-dist@${e.version}/legacy/build/pdf.worker.min.mjs`,!0),e}function fe({url:e,className:t}){let n=(0,M.useRef)(null),[r,i]=(0,M.useState)(null),[a,o]=(0,M.useState)(0),[s,c]=(0,M.useState)(!0),[l,u]=(0,M.useState)(null),d=(0,M.useRef)(new Map),f=(0,M.useRef)(new Set);(0,M.useEffect)(()=>{let t=!1;async function n(){c(!0),u(null),i(null),o(0),f.current.clear();try{let n=await de(),r;if(e.startsWith(`data:`)){let t=G(e);r=t?{data:t}:e}else r=e;let a=await n.getDocument(r).promise;if(t){a.destroy();return}i(a),o(Math.min(a.numPages,le))}catch{t||u(`Failed to load PDF.`)}finally{t||c(!1)}}return n(),()=>{t=!0}},[e]),(0,M.useEffect)(()=>()=>{r&&r.destroy()},[r]);let p=(0,M.useCallback)(async e=>{if(!r||f.current.has(e))return;let t=d.current.get(e);if(t){f.current.add(e);try{let n=await r.getPage(e),i=n.getViewport({scale:ce});t.width=i.width,t.height=i.height,await n.render({canvas:t,viewport:i}).promise}catch{f.current.delete(e)}}},[r]);(0,M.useEffect)(()=>{if(!r||a===0)return;let e=new IntersectionObserver(e=>{for(let t of e){if(!t.isIntersecting)continue;let e=Number(t.target.dataset.page);e&&p(e)}},{root:n.current,rootMargin:`200px`});return d.current.forEach(t=>e.observe(t)),()=>e.disconnect()},[r,a,p]);let m=(0,M.useCallback)(e=>t=>{t?d.current.set(e,t):d.current.delete(e)},[]);return s?(0,N.jsx)(`div`,{className:`flex items-center justify-center py-24`,children:(0,N.jsx)(y,{className:`h-8 w-8 animate-spin text-white/70`})}):l?(0,N.jsx)(`div`,{className:`w-full max-w-sm rounded-lg border border-white/15 bg-white/[0.08] p-8 text-center`,children:(0,N.jsx)(`p`,{className:`text-body-medium-lighter text-white/80`,children:l})}):(0,N.jsx)(`div`,{ref:n,className:`flex max-h-[80vh] flex-col items-center gap-2 overflow-y-auto rounded ${t??``}`,children:Array.from({length:a},(e,t)=>(0,N.jsx)(`canvas`,{ref:m(t+1),"data-page":t+1,className:`w-[90vw] max-w-[800px]`,style:{height:`auto`}},t+1))})}function q({message:e,filename:t,onDownload:n,downloadDisabled:r=!1}){return(0,N.jsxs)(`div`,{className:`w-full max-w-sm rounded-lg border border-white/15 bg-white/[0.08] p-8 text-center`,children:[(0,N.jsx)(`p`,{className:`text-body-medium-lighter text-white/80`,children:e}),(0,N.jsx)(i,{variant:`ghost`,leftIcon:(0,N.jsx)(p,{}),onClick:n,disabled:r,"aria-label":`Download ${t}`,className:`mt-4 text-white/70 hover:bg-white/10 hover:text-white max-md:bg-transparent`,tintColor:`currentColor`,children:`Download`})]})}var J=class extends Error{};async function pe(e,t,n){if(t>204800)throw new J;if(e.startsWith(`data:`)){let t=G(e);if(!t)throw Error(`Malformed data URI`);return new TextDecoder().decode(t)}let r=await fetch(e,{signal:n});if(!r.ok)throw Error(`Failed to load file: ${r.status}`);let i=await r.blob();if(i.size>204800)throw new J;return i.text()}function me({url:e,filename:n,mimeType:r,sizeBytes:i}){let[o,s]=(0,M.useState)({status:`loading`});return(0,M.useEffect)(()=>{let n=new AbortController;return s({status:`loading`}),pe(e,i,n.signal).then(e=>{n.signal.aborted||s({status:`ready`,text:e})}).catch(e=>{if(n.signal.aborted)return;let r=e instanceof J;r||t(e,{context:`attachment-text-preview`,bestEffort:!0}),s({status:`error`,tooLarge:r})}),()=>n.abort()},[e,i]),o.status===`loading`?(0,N.jsx)(`div`,{className:`flex items-center justify-center py-24`,children:(0,N.jsx)(y,{className:`h-8 w-8 animate-spin text-white/70`})}):o.status===`error`?(0,N.jsx)(q,{message:o.tooLarge?`File too large to preview inline.`:`Failed to load preview.`,filename:n,onDownload:async()=>{let{saveFile:t}=await a(async()=>{let{saveFile:e}=await import(`./native-file-ySSv1sQ7.js`).then(e=>e.t);return{saveFile:e}},__vite__mapDeps([0,1,2,3,4]));await t(e,n)}}):(0,N.jsx)(`div`,{className:`max-h-[80vh] w-[min(90vw,800px)] overflow-auto rounded-lg p-6`,style:{backgroundColor:`var(--surface-overlay)`,color:`var(--content-default)`},children:(0,N.jsx)(he,{text:o.text,filename:n,mimeType:r})})}function he({text:e,filename:t,mimeType:n}){return T(t,n)?(0,N.jsx)(E,{content:e}):(0,N.jsx)(`pre`,{className:`whitespace-pre-wrap break-words font-mono text-body-small-default`,children:e})}var Y=60,ge=.8,_e=8,ve=.35;function ye({enabled:e,onPrev:t,onNext:n}){let[r,i]=(0,M.useState)(0),[a,o]=(0,M.useState)(!1),s=(0,M.useRef)(null),c=(0,M.useCallback)(()=>{s.current=null,i(0),o(!1)},[]);return{dragOffset:r,isDragging:a,onTouchStart:(0,M.useCallback)(t=>{if(!e)return;if(t.touches.length!==1){c();return}let n=t.touches[0];s.current={touchId:n.identifier,startX:n.clientX,startY:n.clientY,axis:`undecided`,lastDx:0}},[e,c]),onTouchMove:(0,M.useCallback)(e=>{let t=s.current;if(!t)return;if(e.touches.length!==1){c();return}let n=e.touches[0];if(n.identifier!==t.touchId)return;let r=n.clientX-t.startX,a=n.clientY-t.startY;if(t.lastDx=r,t.axis===`undecided`){if(Math.abs(r)<_e&&Math.abs(a)<_e)return;if(Math.abs(a)>Math.abs(r)*ge){s.current=null;return}t.axis=`horizontal`,o(!0)}if(t.axis!==`horizontal`)return;if(Math.abs(r)<Y&&Math.abs(a)>Math.abs(r)*ge){c();return}let l=Math.sign(r),u=Math.abs(r);i(l*(u<=Y?u:Y+(u-Y)*ve))},[c]),onTouchEnd:(0,M.useCallback)(e=>{let r=s.current;if(!r||r.axis!==`horizontal`){c();return}if(e.touches.length>0){c();return}let i=Array.from(e.changedTouches).find(e=>e.identifier===r.touchId),a=i?i.clientX-r.startX:r.lastDx;a<=-Y?(j.light(),n()):a>=Y&&(j.light(),t()),c()},[n,t,c]),onTouchCancel:c}}var be=new Set([`ts`,`tsx`,`js`,`jsx`,`py`,`json`,`md`,`sh`,`bash`,`html`,`css`,`yaml`,`yml`,`txt`]),xe=new Set([`application/json`,`application/javascript`,`application/xml`]),Se=e=>{let t=e.lastIndexOf(`.`);return t===-1||t===e.length-1?``:e.slice(t+1).toLowerCase()},Ce=({open:e,onClose:t,attachment:n,assistantId:r,siblingAttachments:s,onNavigate:l})=>{let f=(0,M.useRef)(null);(0,M.useEffect)(()=>{e&&f.current?.focus()},[e]);let m=ne.use.registerBackOwner(),h=ne.use.unregisterBackOwner();(0,M.useEffect)(()=>{if(e)return m(),()=>h()},[e,m,h]);let g=!n.previewUrl&&n.id.startsWith(`rehydrated:`),v=e&&!n.previewUrl&&!!r&&!!n.id&&!g,{data:x,isError:S}=o({queryKey:[`attachmentContent`,r,n.id],queryFn:async()=>{let e=await V(r,n.id);if(!e)throw Error(`Failed to load file`);return e},enabled:v,staleTime:1/0,retry:!1}),[C,w]=(0,M.useState)(null);(0,M.useEffect)(()=>{if(!x){w(null);return}let e=URL.createObjectURL(x);return w(e),()=>{URL.revokeObjectURL(e),w(null)}},[x]);let T=n.previewUrl??C,[E,ee]=(0,M.useState)(null),te=v&&!C&&!S,D=g?`Preview unavailable — file content was not preserved in chat history.`:S?`Failed to load preview.`:null,O=(0,M.useMemo)(()=>!s||s.length<=1?-1:s.findIndex(e=>e.id===n.id),[s,n.id]),k=O!==-1&&s!=null&&s.length>1,A=(0,M.useCallback)(()=>{!k||!s||!l||l(s[(O-1+s.length)%s.length])},[k,s,O,l]),j=(0,M.useCallback)(()=>{!k||!s||!l||l(s[(O+1)%s.length])},[k,s,O,l]),{dragOffset:re,isDragging:ae,onTouchStart:P,onTouchMove:F,onTouchEnd:I,onTouchCancel:L}=ye({enabled:k,onPrev:A,onNext:j}),R=(0,M.useCallback)(e=>{e.key===`Escape`?(e.preventDefault(),t()):e.key===`ArrowLeft`&&k?(e.preventDefault(),A()):e.key===`ArrowRight`&&k&&(e.preventDefault(),j())},[t,A,j,k]),oe=(0,M.useCallback)(e=>{e.target===f.current&&t()},[t]),z=(0,M.useCallback)(async()=>{if(!T)return;let{saveFile:e}=await a(async()=>{let{saveFile:e}=await import(`./native-file-ySSv1sQ7.js`).then(e=>e.t);return{saveFile:e}},__vite__mapDeps([0,1,2,3,4]));await e(T,n.filename)},[T,n.filename]);if(!e)return null;let B=n.mimeType.toLowerCase(),se=B.startsWith(`image/`),U=B.startsWith(`video/`),W=B===`application/pdf`||B===`application/octet-stream`&&n.filename.toLowerCase().endsWith(`.pdf`),G=Se(n.filename),K=B.startsWith(`text/`)||xe.has(B)||be.has(G);return(0,ie.createPortal)((0,N.jsxs)(`div`,{ref:f,role:`dialog`,"aria-modal":`true`,"aria-label":`Preview of ${n.filename}`,tabIndex:-1,className:`fixed inset-0 z-50 flex flex-col items-center justify-center bg-black/80 outline-none [-webkit-app-region:no-drag]`,style:{paddingTop:`var(--safe-area-inset-top, env(safe-area-inset-top, 0px))`,paddingBottom:`var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px))`,paddingLeft:`var(--safe-area-inset-left, env(safe-area-inset-left, 0px))`,paddingRight:`var(--safe-area-inset-right, env(safe-area-inset-right, 0px))`},onKeyDown:R,onClick:oe,children:[(0,N.jsxs)(`div`,{className:`absolute inset-x-0 top-0 z-10 flex items-center gap-3 px-4`,style:{paddingTop:`calc(var(--safe-area-inset-top, env(safe-area-inset-top, 0px)) + 1rem)`},children:[(0,N.jsx)(c,{variant:`body-small-default`,className:`w-11 shrink-0 truncate text-white/50`,children:H(n.sizeBytes)}),(0,N.jsx)(c,{as:`div`,variant:`body-medium-lighter`,className:`min-w-0 flex-1 truncate text-center text-white/90`,children:n.filename}),(0,N.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[(0,N.jsx)(i,{variant:`ghost`,iconOnly:(0,N.jsx)(p,{}),expandOnMobile:!1,onClick:z,disabled:!T,"aria-label":`Download ${n.filename}`,className:`h-11 w-11 rounded-full bg-white/10 text-white/70 hover:bg-white/20 hover:text-white`,tintColor:`currentColor`}),(0,N.jsx)(i,{variant:`ghost`,iconOnly:(0,N.jsx)(b,{}),expandOnMobile:!1,onClick:t,"aria-label":`Close preview`,className:`h-11 w-11 rounded-full bg-white/10 text-white/70 hover:bg-white/20 hover:text-white`,tintColor:`currentColor`})]})]}),k&&(0,N.jsxs)(`div`,{className:`pointer-events-none absolute inset-x-0 top-1/2 z-10 flex -translate-y-1/2 items-center justify-between px-4`,children:[(0,N.jsx)(i,{variant:`ghost`,iconOnly:(0,N.jsx)(u,{}),expandOnMobile:!1,onClick:A,"aria-label":`Previous attachment`,className:`pointer-events-auto h-11 w-11 rounded-full bg-white/10 text-white/70 hover:bg-white/20 hover:text-white`,tintColor:`currentColor`}),(0,N.jsx)(i,{variant:`ghost`,iconOnly:(0,N.jsx)(d,{}),expandOnMobile:!1,onClick:j,"aria-label":`Next attachment`,className:`pointer-events-auto h-11 w-11 rounded-full bg-white/10 text-white/70 hover:bg-white/20 hover:text-white`,tintColor:`currentColor`})]}),(0,N.jsx)(`div`,{className:`flex items-center justify-center`,style:{transform:`translateX(${re}px)`,transition:ae?`none`:`transform 200ms ease-out`,touchAction:`pan-y`},onClick:e=>e.stopPropagation(),onTouchStart:P,onTouchMove:F,onTouchEnd:I,onTouchCancel:L,children:te?(0,N.jsx)(`div`,{className:`flex items-center justify-center py-24`,children:(0,N.jsx)(y,{className:`h-8 w-8 animate-spin text-white/70`})}):D?(0,N.jsx)(q,{message:D,filename:n.filename,onDownload:z,downloadDisabled:!T}):W&&T?(0,N.jsx)(fe,{url:T}):se&&T&&E!==T?(0,N.jsx)(`img`,{src:T,alt:n.filename,onError:()=>ee(T),className:`max-h-[80vh] max-w-[90vw] rounded object-contain`}):U&&T?(0,N.jsx)(`video`,{"data-testid":`video-preview`,src:T,poster:n.thumbnailUrl??void 0,controls:!0,className:`max-h-[80vh] max-w-[90vw] rounded`}):K&&T?(0,N.jsx)(me,{url:T,filename:n.filename,mimeType:n.mimeType,sizeBytes:n.sizeBytes}):(0,N.jsxs)(`div`,{className:`flex w-full max-w-sm flex-col items-center rounded-lg border border-white/15 bg-white/[0.08] p-8 text-center`,children:[(0,N.jsx)(_,{className:`h-16 w-16 text-white/60`}),(0,N.jsx)(`p`,{className:`mt-4 text-body-medium-default text-white/90`,children:n.filename}),(0,N.jsx)(`p`,{className:`mt-1 text-body-small-default text-white/60`,children:H(n.sizeBytes)}),(0,N.jsx)(i,{variant:`ghost`,leftIcon:(0,N.jsx)(p,{}),onClick:z,disabled:!T,"aria-label":`Download ${n.filename}`,className:`mt-4 text-white/70 hover:bg-white/10 hover:text-white max-md:bg-transparent`,tintColor:`currentColor`,children:`Download`})]})}),k&&(0,N.jsx)(`div`,{className:`absolute inset-x-0 bottom-0 z-10 flex justify-center`,style:{paddingBottom:`calc(var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px)) + 2rem)`},onClick:e=>e.stopPropagation(),children:(0,N.jsxs)(c,{variant:`body-small-default`,className:`text-white/50`,children:[O+1,` / `,s.length]})})]}),document.body)};function we(e,t){let[n,r]=(0,M.useState)(null),i=(0,M.useCallback)(e=>r(e),[]),a=(0,M.useCallback)(()=>r(null),[]),o=(0,M.useCallback)(e=>r(e),[]);return{openPreview:i,previewModal:n?(0,N.jsx)(Ce,{open:!0,onClose:a,attachment:n,assistantId:e,siblingAttachments:t,onNavigate:o}):null}}var Te=1500,X=`inline-flex max-w-full min-w-0 items-center gap-1.5 rounded-lg bg-[var(--surface-overlay)] px-2 py-1 align-middle text-[0.85em] leading-tight text-[var(--content-secondary)]`,Z=`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)]`;function Ee({type:e,service:t,field:n,assistantId:r,neutralized:i}){let a=ee.use.activeAssistantId(),o=r===void 0?a:r,[s,c]=(0,M.useState)(null),[u,d]=(0,M.useState)(!1),[p,g]=(0,M.useState)(!1),_=(0,M.useRef)(null),b=(0,M.useRef)(0),x=e??`Secret`,S=t!==void 0&&n!==void 0&&o!=null,C=S?`${t}:${n}`:x,T=(0,M.useCallback)(()=>{b.current++,c(null),d(!1),g(!1),_.current&&=(clearTimeout(_.current),null)},[]),E=(0,M.useCallback)(async()=>{if(!S)return;let e=++b.current;d(!0);try{let{data:r}=await te({path:{assistant_id:o},body:{service:t,field:n},throwOnError:!0});b.current===e&&c(r.value)}catch{b.current===e&&w.error(`Couldn't reveal ${C}.`)}finally{b.current===e&&d(!1)}},[S,o,t,n,C]),D=(0,M.useCallback)(()=>{s!=null&&navigator.clipboard.writeText(s).then(()=>{g(!0),_.current&&clearTimeout(_.current),_.current=setTimeout(()=>g(!1),Te)},()=>w.error(`Couldn't copy — reveal and copy manually.`))},[s]);if(i)return(0,N.jsxs)(`span`,{className:X,title:`Redaction marker — not verified by the assistant`,children:[(0,N.jsx)(v,{className:`h-3.5 w-3.5 shrink-0`,"aria-hidden":!0}),(0,N.jsx)(`span`,{className:`truncate`,children:`Redacted`})]});if(!S)return(0,N.jsxs)(`span`,{className:X,title:`Redacted — this value is not linked to a stored credential`,children:[(0,N.jsx)(v,{className:`h-3.5 w-3.5 shrink-0`,"aria-hidden":!0}),(0,N.jsx)(`span`,{className:`truncate`,children:x})]});let O=s!==null;return(0,N.jsxs)(`span`,{className:X,children:[(0,N.jsx)(v,{className:`h-3.5 w-3.5 shrink-0`,"aria-hidden":!0}),O?(0,N.jsx)(`span`,{className:`min-w-0 truncate font-mono text-[var(--content-default)]`,children:s}):(0,N.jsx)(`button`,{type:`button`,onClick:()=>void E(),disabled:u,"aria-label":`Reveal value for ${C}`,title:`${x} · click to reveal`,className:`min-w-0 select-none truncate rounded-sm text-left blur-[3px] transition-[filter] hover:blur-[2px] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[var(--border-focus)]`,children:C}),u?(0,N.jsx)(y,{className:`h-3.5 w-3.5 shrink-0 animate-spin`,"aria-hidden":!0}):O?(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(`button`,{type:`button`,onClick:D,"aria-label":`Copy value for ${C}`,title:`Copy value`,className:Z,children:p?(0,N.jsx)(l,{className:`h-3.5 w-3.5`,"aria-hidden":!0}):(0,N.jsx)(f,{className:`h-3.5 w-3.5`,"aria-hidden":!0})}),(0,N.jsx)(`button`,{type:`button`,onClick:T,"aria-label":`Hide value for ${C}`,title:`Hide value`,className:Z,children:(0,N.jsx)(m,{className:`h-3.5 w-3.5`,"aria-hidden":!0})})]}):(0,N.jsx)(`button`,{type:`button`,onClick:()=>void E(),disabled:u,"aria-label":`Reveal value for ${C}`,title:`Click to reveal`,className:Z,children:(0,N.jsx)(h,{className:`h-3.5 w-3.5`,"aria-hidden":!0})})]})}var De=`redacted`;function Oe(e){try{return decodeURIComponent(e)}catch{return}}function ke(){return RegExp(`〔${De}:([^:\u3014\u3015]+?)(?::([A-Za-z0-9_.%-]+):([A-Za-z0-9_.%-]+))?〕`,`g`)}function Ae(){return RegExp(`〔\\u2060${De}:([^:\\u3014\\u3015]+?)(?::([A-Za-z0-9_.%-]+):([A-Za-z0-9_.%-]+))?〕`,`g`)}function je(e){let[,t,n,r]=e;if(n!==void 0&&r!==void 0){let e=Oe(n),i=Oe(r);if(e!==void 0&&i!==void 0)return{type:t,service:e,field:i}}return{type:t}}var Q=`redacted-credential`,Me=new Set([`pre`,`code`,`style`,`script`,`a`]);function Ne(e){return e.type===`element`}function Pe(e){let t=[],n=ke(),r;for(;(r=n.exec(e))!==null;){let e=je(r);t.push({index:r.index,length:r[0].length,element:{type:`element`,tagName:Q,properties:{type:e.type,...e.service!==void 0&&e.field!==void 0?{service:e.service,field:e.field}:{}},children:[]}})}let i=Ae();for(;(r=i.exec(e))!==null;)t.push({index:r.index,length:r[0].length,element:{type:`element`,tagName:Q,properties:{neutralized:!0},children:[]}});if(t.length===0)return;t.sort((e,t)=>e.index-t.index);let a=[],o=0;for(let n of t)n.index>o&&a.push({type:`text`,value:e.slice(o,n.index)}),a.push(n.element),o=n.index+n.length;return o<e.length&&a.push({type:`text`,value:e.slice(o)}),a}function Fe(e){if(Ne(e)&&Me.has(e.tagName))return;let t=e.children;if(t)for(let e=t.length-1;e>=0;e--){let n=t[e];if(n.type!==`text`){Fe(n);continue}let r=n.value;if(!r.includes(`〔`))continue;let i=Pe(r);i&&t.splice(e,1,...i)}}function Ie(){return e=>{Fe(e)}}var Le=new Set([`pre`,`code`,`style`,`script`]),Re=5,ze=.4,Be=`stream-word-fade`;function Ve(e){return e.type===`element`}function He(e){if(Ve(e)&&Le.has(e.tagName))return;let t=e.children;if(t)for(let e=t.length-1;e>=0;e--){let n=t[e];if(n.type!==`text`){He(n);continue}let r=n.value.match(/\S+|\s+/g);if(!r||r.length===1&&/^\s+$/.test(r[0]))continue;let i=r.map(e=>/^\s+$/.test(e)?{type:`text`,value:e}:{type:`element`,tagName:`span`,properties:{className:[Be]},children:[{type:`text`,value:e}]});t.splice(e,1,...i)}}function Ue(e,t){if(Ve(e)){let n=e.properties?.className;if(Array.isArray(n)&&n.includes(Be)){t.push(e);return}}if(e.children)for(let n of e.children)Ue(n,t)}function We(e){let t=e?.caughtUp??!1;return e=>{if(He(e),t)return;let n=[];Ue(e,n);let r=Math.min(Re,n.length);for(let e=0;e<r;e++){let t=n[n.length-1-e],r=(ze+(1-ze)*((e+1)/(Re+1))).toFixed(3);t.properties={...t.properties,style:`opacity:${r}`}}}}var Ge=`workspace-path`,Ke=`/workspace/`,qe=512,Je=/[\s`"'<>|&;:,=$*?[\]{}()\\!#]/;function Ye(e){let t=e.trim();if(t.length===0||t.length>qe||Je.test(t)||t.endsWith(`/`)||t.startsWith(`~`))return null;let n;if(t.startsWith(`/`)){let e=t.lastIndexOf(Ke);if(e===-1)return null;n=t.slice(e+11)}else if(n=t.startsWith(`./`)?t.slice(2):t,!n.includes(`/`))return null;return n.length===0||n.split(`/`).some(e=>e.length===0||e.startsWith(`.`))?null:n}function Xe(e){let t=e.lastIndexOf(`/`);return t===-1?``:e.slice(0,t)}function Ze(e){let t=e.lastIndexOf(`/`);return t===-1?e:e.slice(t+1)}function Qe(e){return`vellum://workspace/${e.split(`/`).map(encodeURIComponent).join(`/`)}`}var $e=new Set([`pre`,`a`,`style`,`script`]);function et(e){return e.type===`element`}function tt(e){if(e.children.length!==1)return;let t=e.children[0];return t.type===`text`?t.value:void 0}function nt(e){let t=e.children;if(t){for(let e of t)if(et(e)&&!$e.has(e.tagName)){if(e.tagName===`code`){let t=tt(e),n=t===void 0?null:Ye(t);n!==null&&t!==void 0&&(e.tagName=Ge,e.properties={...e.properties,path:n,raw:t},e.children=[]);continue}nt(e)}}}function rt(){return e=>{nt(e)}}var it=15e3,at=1e4,ot=9e4;function st({path:e,raw:t,assistantId:n,onOpen:r}){let i=t??e??``,a=k(),s=!!(e&&n&&r&&a),[c]=(0,M.useState)(()=>Date.now()+ot),{data:l}=o({...g({assistantId:n??``,path:e?Xe(e):``}),enabled:s,staleTime:it,retry:!1,refetchInterval:t=>Date.now()>=c||(t.state.data?.entries.some(t=>t.type===`file`&&t.path===e)??!1)?!1:at});return!(0,M.useMemo)(()=>e!=null&&(l?.entries.some(t=>t.type===`file`&&t.path===e)??!1),[l,e])||!e||!r?(0,N.jsx)(`code`,{className:C,children:i}):(0,N.jsx)(`button`,{type:`button`,onClick:()=>r(Qe(e),Ze(e)),className:`${C} cursor-pointer text-[var(--system-positive-strong)] underline decoration-dotted underline-offset-2 hover:opacity-80`,title:`Open ${e}`,children:i})}function $(e){return e!=null&&(e.startsWith(`vellum://workspace/`)||e.startsWith(`vellum://host/`))}function ct(e){return $(e)?e:x(e)}function lt({href:e,children:t}){return(0,N.jsx)(`a`,{href:e,target:`_blank`,rel:F(e)?void 0:`noopener noreferrer`,onClick:t=>{if(oe(e)){t.preventDefault();return}re(t,e)},className:`text-[var(--system-positive-strong)] underline hover:opacity-80`,children:t})}var ut=`my-2 max-w-full max-h-[400px] rounded-lg border border-[var(--border-default)] object-contain`;function dt({alt:e}){return(0,N.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded bg-[var(--surface-sunken)] px-1.5 py-0.5 text-body-small-default text-[var(--content-tertiary)]`,children:[`Image failed to load`,e?` (${e})`:``]})}function ft({src:e,alt:t}){let[n,r]=(0,M.useState)(!1);return n?(0,N.jsx)(dt,{alt:t}):(0,N.jsx)(`img`,{src:e,alt:t,onError:()=>r(!0),className:ut})}function pt(e){try{return decodeURIComponent(e)}catch{return e}}function mt({src:e,alt:n,attachments:r,assistantId:i,onOpenPreview:a}){let[o,s]=(0,M.useState)(null),[c,l]=(0,M.useState)(!1),u=pt(e.split(`/`).pop()??``),d=r?.find(e=>e.filename===u);if((0,M.useEffect)(()=>{if(!d||!i||d.id.startsWith(`rehydrated:`))return;let e=!1;return(async()=>{try{let{data:t,error:n}=await D({path:{assistant_id:i,id:d.id},parseAs:`blob`,throwOnError:!1});if(e)return;if(n||!(t instanceof Blob)){l(!0);return}s(URL.createObjectURL(t))}catch(n){e||(l(!0),t(n,{context:`WorkspaceInlineImage`,bestEffort:!0}))}})(),()=>{e=!0,s(e=>(e&&URL.revokeObjectURL(e),null))}},[d,i]),c||!d&&!o)return(0,N.jsx)(dt,{alt:n||u});if(!o)return(0,N.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded bg-[var(--surface-sunken)] px-1.5 py-0.5 text-body-small-default text-[var(--content-tertiary)]`,children:[`Loading image…`,n?` (${n})`:``]});let f=(0,N.jsx)(`img`,{src:o,alt:n,className:ut});return!d||!a?f:(0,N.jsx)(`button`,{type:`button`,onClick:()=>a(d),className:`cursor-zoom-in appearance-none border-0 bg-transparent p-0`,"aria-label":n?`Expand image: ${n}`:`Expand image`,children:f})}var ht=(0,M.memo)(function({content:e,className:t,hardLineBreaks:n,onVellumLinkClick:r,attachments:i,assistantId:a,streamWordFade:o,redactedCredentialChips:s,workspacePathLinks:c}){let{openPreview:l,previewModal:u}=we(a,i),d=(0,M.useCallback)(({href:e,children:t})=>r&&$(e)?(0,N.jsx)(`a`,{href:e,onClick:t=>{t.preventDefault(),e&&r(e,t.currentTarget.textContent??``)},className:`text-[var(--system-positive-strong)] underline hover:opacity-80 cursor-pointer`,children:t}):(0,N.jsx)(lt,{href:e,children:t}),[r]),f=(0,M.useMemo)(()=>[...s?[Ie]:[],...c&&r?[rt]:[],...o?[[We,{caughtUp:o===`caughtUp`}]]:[]],[s,o,c,r]),p=(0,M.useMemo)(()=>({src:e,alt:t})=>$(e)?(0,N.jsx)(mt,{src:e,alt:t,attachments:i,assistantId:a,onOpenPreview:l}):(0,N.jsx)(ft,{src:e,alt:t}),[i,a,l]),m=(0,M.useMemo)(()=>({[Q]:e=>(0,N.jsx)(Ee,{...e,assistantId:a},`${a??``}\u0000${e.service??``}\u0000${e.field??``}`),[Ge]:e=>(0,N.jsx)(st,{...e,assistantId:a,onOpen:r})}),[a,r]);return(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(S,{content:e,className:t,hardLineBreaks:n,linkComponent:d,imageComponent:p,urlTransform:ct,extraRehypePlugins:f,extraComponents:s||c&&r?m:void 0}),u]})});export{W as a,se as c,z as d,U as i,V as l,we as n,H as o,Ce as r,K as s,ht as t,B as u};
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/native-file-CfGNNXKe.js","assets/chunk-jRWAZmH_.js","assets/preload-helper-Cv2QeVDK.js","assets/is-electron-D-TCQRcE.js","assets/dist-CCFYMOVM.js","assets/pdf-CRRXY5Nb.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./capture-error-Dj49ma74.js";import{t as n}from"./react-BFJW0bSv.js";import{F as r,t as i}from"./button-Dy5001j6.js";import{t as a}from"./preload-helper-Cv2QeVDK.js";import{t as o}from"./useQuery-Bz-fbQ-m.js";import{t as s}from"./jsx-runtime-D3ZM-ToX.js";import{t as c}from"./typography-DEI9Ra9z.js";import{t as l}from"./check-sC49_hjU.js";import{t as u}from"./chevron-left-CytMddTB.js";import{t as d}from"./chevron-right-HU6H84S0.js";import{o as f}from"./list-row-BOvxGO5h.js";import{t as p}from"./download-CywcQLB2.js";import{t as m}from"./eye-off-Jdx8qkOK.js";import{t as h}from"./eye-BMVGQXHT.js";import{n as g,r as _}from"./workspace-tree-query-D9VBUg-W.js";import{t as v}from"./key-round-0Zop_GsZ.js";import{t as y}from"./loader-circle-XREx3i4W.js";import{t as b}from"./x-BGag7vwj.js";import{_ as x,c as S,s as C}from"./src-CnF7WXNj.js";import{n as w}from"./toast-BcMdOTp1.js";import{n as T,t as E}from"./file-markdown-B0zje_y3.js";import{n as ee}from"./resolved-assistants-store-FEmi1gGu.js";import{dt as te,l as D}from"./sdk.gen-DeyOX3Kb.js";import{t as O}from"./dist-CCFYMOVM.js";import{r as k}from"./use-is-org-ready-BrKAc9Df.js";import{n as A}from"./browser-DvKwnK9l.js";import{t as j}from"./haptics-BTcSZuHP.js";import{t as ne}from"./edge-swipe-arbiter-store-QUBer3EI.js";import{t as re}from"./native-anchor-BeAcmUWk.js";var M=e(n(),1),ie=e(r(),1),N=s(),ae=`width=500,height=600`;function P(e){if(!e)return null;let t;try{let n=typeof window>`u`?`http://localhost`:window.location.origin;t=new URL(e,n)}catch{return null}return t.protocol!==`https:`&&t.protocol!==`http:`?null:t}function F(e){let t=P(e);if(!t)return!1;let n=t.pathname.toLowerCase();return t.searchParams.get(`response_type`)===`code`&&t.searchParams.has(`client_id`)&&t.searchParams.has(`redirect_uri`)||t.searchParams.has(`client_id`)&&t.searchParams.has(`redirect_uri`)&&/oauth|authorize|auth/.test(n)}function I(e){if(typeof window>`u`)return null;let t=P(e);return!t||t.origin!==window.location.origin?null:`${t.pathname}${t.search}${t.hash}`}function L(e){return P(e)?.href??null}function R(e){if(!F(e))return!1;if(O.isNativePlatform()){let t=L(e);return t?(A(t),!0):!1}let t=window.open(e,`_blank`,ae);return t===null?!1:(t.focus(),!0)}function oe(e){return R(e)}function z(e){if(R(e))return!0;let t=window.open(e,`_blank`);return t===null?!1:(t.focus(),!0)}function B(e,t){let n=I(e);if(n)return t.push(n),{kind:`routed`};let r=L(e);return r?t.isNative?(A(r),{kind:`opened`}):z(r)?{kind:`opened`}:{kind:`blocked`,url:r}:{kind:`invalid`}}async function V(e,t){if(!t||t.startsWith(`rehydrated:`))return null;try{let{data:n,error:r}=await D({path:{assistant_id:e,id:t},parseAs:`blob`,throwOnError:!1});return!r&&n instanceof Blob?n:null}catch{return null}}async function se(e,t){let{saveFile:n}=await a(async()=>{let{saveFile:e}=await import(`./native-file-CfGNNXKe.js`).then(e=>e.t);return{saveFile:e}},__vite__mapDeps([0,1,2,3,4]));if(t){let r=await V(t,e.id);if(r){await n(r,e.filename);return}}e.previewUrl&&await n(e.previewUrl,e.filename)}function H(e){if(!Number.isFinite(e)||e<=0)return`0 B`;let t=[`B`,`KB`,`MB`,`GB`],n=e,r=0;for(;n>=1024&&r<t.length-1;)n/=1024,r+=1;return`${n>=10||r===0?Math.round(n).toString():n.toFixed(1)} ${t[r]}`}function U(e,t){let n=(e||``).toLowerCase(),r=t.split(`.`).pop()?.toLowerCase()??``;return n.startsWith(`image/`)?`image`:n.startsWith(`video/`)?`video`:n.startsWith(`audio/`)?`audio`:n===`application/pdf`||r===`pdf`?`pdf`:n===`application/zip`||n===`application/x-tar`||n===`application/gzip`||[`zip`,`tar`,`gz`,`tgz`,`rar`,`7z`].includes(r)?`archive`:n===`text/csv`||n===`application/vnd.ms-excel`||n===`application/vnd.openxmlformats-officedocument.spreadsheetml.sheet`||[`csv`,`xlsx`,`xls`,`numbers`].includes(r)?`spreadsheet`:`ts.tsx.js.jsx.py.rb.go.rs.java.kt.swift.c.cc.cpp.h.hpp.sh.bash.zsh.html.css.scss.json.yaml.yml.toml.xml`.split(`.`).includes(r)?`code`:n===`application/msword`||n===`application/vnd.openxmlformats-officedocument.wordprocessingml.document`||[`doc`,`docx`,`pages`].includes(r)?`document`:n.startsWith(`text/`)||[`txt`,`md`,`rtf`].includes(r)?`text`:`file`}function W(e){let t=e.replace(/\s/g,``),n=t.endsWith(`==`)?2:+!!t.endsWith(`=`);return Math.max(0,Math.floor(t.length*3/4)-n)}function G(e){let t=e.match(/;base64,(.*)$/);if(!t?.[1])return null;let n=atob(t[1]),r=new Uint8Array(n.length);for(let e=0;e<n.length;e++)r[e]=n.charCodeAt(e);return r}function K(e,t=28){if(e.length<=t)return e;let n=Math.max(4,Math.floor((t-1)/2));return`${e.slice(0,n)}…${e.slice(e.length-n)}`}var ce=1.5,le=20,ue=!1;async function de(){let e=await a(()=>import(`./pdf-CRRXY5Nb.js`),__vite__mapDeps([5,2]));return ue||=(e.GlobalWorkerOptions.workerSrc=`https://cdn.jsdelivr.net/npm/pdfjs-dist@${e.version}/legacy/build/pdf.worker.min.mjs`,!0),e}function fe({url:e,className:t}){let n=(0,M.useRef)(null),[r,i]=(0,M.useState)(null),[a,o]=(0,M.useState)(0),[s,c]=(0,M.useState)(!0),[l,u]=(0,M.useState)(null),d=(0,M.useRef)(new Map),f=(0,M.useRef)(new Set);(0,M.useEffect)(()=>{let t=!1;async function n(){c(!0),u(null),i(null),o(0),f.current.clear();try{let n=await de(),r;if(e.startsWith(`data:`)){let t=G(e);r=t?{data:t}:e}else r=e;let a=await n.getDocument(r).promise;if(t){a.destroy();return}i(a),o(Math.min(a.numPages,le))}catch{t||u(`Failed to load PDF.`)}finally{t||c(!1)}}return n(),()=>{t=!0}},[e]),(0,M.useEffect)(()=>()=>{r&&r.destroy()},[r]);let p=(0,M.useCallback)(async e=>{if(!r||f.current.has(e))return;let t=d.current.get(e);if(t){f.current.add(e);try{let n=await r.getPage(e),i=n.getViewport({scale:ce});t.width=i.width,t.height=i.height,await n.render({canvas:t,viewport:i}).promise}catch{f.current.delete(e)}}},[r]);(0,M.useEffect)(()=>{if(!r||a===0)return;let e=new IntersectionObserver(e=>{for(let t of e){if(!t.isIntersecting)continue;let e=Number(t.target.dataset.page);e&&p(e)}},{root:n.current,rootMargin:`200px`});return d.current.forEach(t=>e.observe(t)),()=>e.disconnect()},[r,a,p]);let m=(0,M.useCallback)(e=>t=>{t?d.current.set(e,t):d.current.delete(e)},[]);return s?(0,N.jsx)(`div`,{className:`flex items-center justify-center py-24`,children:(0,N.jsx)(y,{className:`h-8 w-8 animate-spin text-white/70`})}):l?(0,N.jsx)(`div`,{className:`w-full max-w-sm rounded-lg border border-white/15 bg-white/[0.08] p-8 text-center`,children:(0,N.jsx)(`p`,{className:`text-body-medium-lighter text-white/80`,children:l})}):(0,N.jsx)(`div`,{ref:n,className:`flex max-h-[80vh] flex-col items-center gap-2 overflow-y-auto rounded ${t??``}`,children:Array.from({length:a},(e,t)=>(0,N.jsx)(`canvas`,{ref:m(t+1),"data-page":t+1,className:`w-[90vw] max-w-[800px]`,style:{height:`auto`}},t+1))})}function q({message:e,filename:t,onDownload:n,downloadDisabled:r=!1}){return(0,N.jsxs)(`div`,{className:`w-full max-w-sm rounded-lg border border-white/15 bg-white/[0.08] p-8 text-center`,children:[(0,N.jsx)(`p`,{className:`text-body-medium-lighter text-white/80`,children:e}),(0,N.jsx)(i,{variant:`ghost`,leftIcon:(0,N.jsx)(p,{}),onClick:n,disabled:r,"aria-label":`Download ${t}`,className:`mt-4 text-white/70 hover:bg-white/10 hover:text-white max-md:bg-transparent`,tintColor:`currentColor`,children:`Download`})]})}var J=class extends Error{};async function pe(e,t,n){if(t>204800)throw new J;if(e.startsWith(`data:`)){let t=G(e);if(!t)throw Error(`Malformed data URI`);return new TextDecoder().decode(t)}let r=await fetch(e,{signal:n});if(!r.ok)throw Error(`Failed to load file: ${r.status}`);let i=await r.blob();if(i.size>204800)throw new J;return i.text()}function me({url:e,filename:n,mimeType:r,sizeBytes:i}){let[o,s]=(0,M.useState)({status:`loading`});return(0,M.useEffect)(()=>{let n=new AbortController;return s({status:`loading`}),pe(e,i,n.signal).then(e=>{n.signal.aborted||s({status:`ready`,text:e})}).catch(e=>{if(n.signal.aborted)return;let r=e instanceof J;r||t(e,{context:`attachment-text-preview`,bestEffort:!0}),s({status:`error`,tooLarge:r})}),()=>n.abort()},[e,i]),o.status===`loading`?(0,N.jsx)(`div`,{className:`flex items-center justify-center py-24`,children:(0,N.jsx)(y,{className:`h-8 w-8 animate-spin text-white/70`})}):o.status===`error`?(0,N.jsx)(q,{message:o.tooLarge?`File too large to preview inline.`:`Failed to load preview.`,filename:n,onDownload:async()=>{let{saveFile:t}=await a(async()=>{let{saveFile:e}=await import(`./native-file-CfGNNXKe.js`).then(e=>e.t);return{saveFile:e}},__vite__mapDeps([0,1,2,3,4]));await t(e,n)}}):(0,N.jsx)(`div`,{className:`max-h-[80vh] w-[min(90vw,800px)] overflow-auto rounded-lg p-6`,style:{backgroundColor:`var(--surface-overlay)`,color:`var(--content-default)`},children:(0,N.jsx)(he,{text:o.text,filename:n,mimeType:r})})}function he({text:e,filename:t,mimeType:n}){return T(t,n)?(0,N.jsx)(E,{content:e}):(0,N.jsx)(`pre`,{className:`whitespace-pre-wrap break-words font-mono text-body-small-default`,children:e})}var Y=60,ge=.8,_e=8,ve=.35;function ye({enabled:e,onPrev:t,onNext:n}){let[r,i]=(0,M.useState)(0),[a,o]=(0,M.useState)(!1),s=(0,M.useRef)(null),c=(0,M.useCallback)(()=>{s.current=null,i(0),o(!1)},[]);return{dragOffset:r,isDragging:a,onTouchStart:(0,M.useCallback)(t=>{if(!e)return;if(t.touches.length!==1){c();return}let n=t.touches[0];s.current={touchId:n.identifier,startX:n.clientX,startY:n.clientY,axis:`undecided`,lastDx:0}},[e,c]),onTouchMove:(0,M.useCallback)(e=>{let t=s.current;if(!t)return;if(e.touches.length!==1){c();return}let n=e.touches[0];if(n.identifier!==t.touchId)return;let r=n.clientX-t.startX,a=n.clientY-t.startY;if(t.lastDx=r,t.axis===`undecided`){if(Math.abs(r)<_e&&Math.abs(a)<_e)return;if(Math.abs(a)>Math.abs(r)*ge){s.current=null;return}t.axis=`horizontal`,o(!0)}if(t.axis!==`horizontal`)return;if(Math.abs(r)<Y&&Math.abs(a)>Math.abs(r)*ge){c();return}let l=Math.sign(r),u=Math.abs(r);i(l*(u<=Y?u:Y+(u-Y)*ve))},[c]),onTouchEnd:(0,M.useCallback)(e=>{let r=s.current;if(!r||r.axis!==`horizontal`){c();return}if(e.touches.length>0){c();return}let i=Array.from(e.changedTouches).find(e=>e.identifier===r.touchId),a=i?i.clientX-r.startX:r.lastDx;a<=-Y?(j.light(),n()):a>=Y&&(j.light(),t()),c()},[n,t,c]),onTouchCancel:c}}var be=new Set([`ts`,`tsx`,`js`,`jsx`,`py`,`json`,`md`,`sh`,`bash`,`html`,`css`,`yaml`,`yml`,`txt`]),xe=new Set([`application/json`,`application/javascript`,`application/xml`]),Se=e=>{let t=e.lastIndexOf(`.`);return t===-1||t===e.length-1?``:e.slice(t+1).toLowerCase()},Ce=({open:e,onClose:t,attachment:n,assistantId:r,siblingAttachments:s,onNavigate:l})=>{let f=(0,M.useRef)(null);(0,M.useEffect)(()=>{e&&f.current?.focus()},[e]);let m=ne.use.registerBackOwner(),h=ne.use.unregisterBackOwner();(0,M.useEffect)(()=>{if(e)return m(),()=>h()},[e,m,h]);let g=!n.previewUrl&&n.id.startsWith(`rehydrated:`),v=e&&!n.previewUrl&&!!r&&!!n.id&&!g,{data:x,isError:S}=o({queryKey:[`attachmentContent`,r,n.id],queryFn:async()=>{let e=await V(r,n.id);if(!e)throw Error(`Failed to load file`);return e},enabled:v,staleTime:1/0,retry:!1}),[C,w]=(0,M.useState)(null);(0,M.useEffect)(()=>{if(!x){w(null);return}let e=URL.createObjectURL(x);return w(e),()=>{URL.revokeObjectURL(e),w(null)}},[x]);let T=n.previewUrl??C,[E,ee]=(0,M.useState)(null),te=v&&!C&&!S,D=g?`Preview unavailable — file content was not preserved in chat history.`:S?`Failed to load preview.`:null,O=(0,M.useMemo)(()=>!s||s.length<=1?-1:s.findIndex(e=>e.id===n.id),[s,n.id]),k=O!==-1&&s!=null&&s.length>1,A=(0,M.useCallback)(()=>{!k||!s||!l||l(s[(O-1+s.length)%s.length])},[k,s,O,l]),j=(0,M.useCallback)(()=>{!k||!s||!l||l(s[(O+1)%s.length])},[k,s,O,l]),{dragOffset:re,isDragging:ae,onTouchStart:P,onTouchMove:F,onTouchEnd:I,onTouchCancel:L}=ye({enabled:k,onPrev:A,onNext:j}),R=(0,M.useCallback)(e=>{e.key===`Escape`?(e.preventDefault(),t()):e.key===`ArrowLeft`&&k?(e.preventDefault(),A()):e.key===`ArrowRight`&&k&&(e.preventDefault(),j())},[t,A,j,k]),oe=(0,M.useCallback)(e=>{e.target===f.current&&t()},[t]),z=(0,M.useCallback)(async()=>{if(!T)return;let{saveFile:e}=await a(async()=>{let{saveFile:e}=await import(`./native-file-CfGNNXKe.js`).then(e=>e.t);return{saveFile:e}},__vite__mapDeps([0,1,2,3,4]));await e(T,n.filename)},[T,n.filename]);if(!e)return null;let B=n.mimeType.toLowerCase(),se=B.startsWith(`image/`),U=B.startsWith(`video/`),W=B===`application/pdf`||B===`application/octet-stream`&&n.filename.toLowerCase().endsWith(`.pdf`),G=Se(n.filename),K=B.startsWith(`text/`)||xe.has(B)||be.has(G);return(0,ie.createPortal)((0,N.jsxs)(`div`,{ref:f,role:`dialog`,"aria-modal":`true`,"aria-label":`Preview of ${n.filename}`,tabIndex:-1,className:`fixed inset-0 z-50 flex flex-col items-center justify-center bg-black/80 outline-none [-webkit-app-region:no-drag]`,style:{paddingTop:`var(--safe-area-inset-top, env(safe-area-inset-top, 0px))`,paddingBottom:`var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px))`,paddingLeft:`var(--safe-area-inset-left, env(safe-area-inset-left, 0px))`,paddingRight:`var(--safe-area-inset-right, env(safe-area-inset-right, 0px))`},onKeyDown:R,onClick:oe,children:[(0,N.jsxs)(`div`,{className:`absolute inset-x-0 top-0 z-10 flex items-center gap-3 px-4`,style:{paddingTop:`calc(var(--safe-area-inset-top, env(safe-area-inset-top, 0px)) + 1rem)`},children:[(0,N.jsx)(c,{variant:`body-small-default`,className:`w-11 shrink-0 truncate text-white/50`,children:H(n.sizeBytes)}),(0,N.jsx)(c,{as:`div`,variant:`body-medium-lighter`,className:`min-w-0 flex-1 truncate text-center text-white/90`,children:n.filename}),(0,N.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[(0,N.jsx)(i,{variant:`ghost`,iconOnly:(0,N.jsx)(p,{}),expandOnMobile:!1,onClick:z,disabled:!T,"aria-label":`Download ${n.filename}`,className:`h-11 w-11 rounded-full bg-white/10 text-white/70 hover:bg-white/20 hover:text-white`,tintColor:`currentColor`}),(0,N.jsx)(i,{variant:`ghost`,iconOnly:(0,N.jsx)(b,{}),expandOnMobile:!1,onClick:t,"aria-label":`Close preview`,className:`h-11 w-11 rounded-full bg-white/10 text-white/70 hover:bg-white/20 hover:text-white`,tintColor:`currentColor`})]})]}),k&&(0,N.jsxs)(`div`,{className:`pointer-events-none absolute inset-x-0 top-1/2 z-10 flex -translate-y-1/2 items-center justify-between px-4`,children:[(0,N.jsx)(i,{variant:`ghost`,iconOnly:(0,N.jsx)(u,{}),expandOnMobile:!1,onClick:A,"aria-label":`Previous attachment`,className:`pointer-events-auto h-11 w-11 rounded-full bg-white/10 text-white/70 hover:bg-white/20 hover:text-white`,tintColor:`currentColor`}),(0,N.jsx)(i,{variant:`ghost`,iconOnly:(0,N.jsx)(d,{}),expandOnMobile:!1,onClick:j,"aria-label":`Next attachment`,className:`pointer-events-auto h-11 w-11 rounded-full bg-white/10 text-white/70 hover:bg-white/20 hover:text-white`,tintColor:`currentColor`})]}),(0,N.jsx)(`div`,{className:`flex items-center justify-center`,style:{transform:`translateX(${re}px)`,transition:ae?`none`:`transform 200ms ease-out`,touchAction:`pan-y`},onClick:e=>e.stopPropagation(),onTouchStart:P,onTouchMove:F,onTouchEnd:I,onTouchCancel:L,children:te?(0,N.jsx)(`div`,{className:`flex items-center justify-center py-24`,children:(0,N.jsx)(y,{className:`h-8 w-8 animate-spin text-white/70`})}):D?(0,N.jsx)(q,{message:D,filename:n.filename,onDownload:z,downloadDisabled:!T}):W&&T?(0,N.jsx)(fe,{url:T}):se&&T&&E!==T?(0,N.jsx)(`img`,{src:T,alt:n.filename,onError:()=>ee(T),className:`max-h-[80vh] max-w-[90vw] rounded object-contain`}):U&&T?(0,N.jsx)(`video`,{"data-testid":`video-preview`,src:T,poster:n.thumbnailUrl??void 0,controls:!0,className:`max-h-[80vh] max-w-[90vw] rounded`}):K&&T?(0,N.jsx)(me,{url:T,filename:n.filename,mimeType:n.mimeType,sizeBytes:n.sizeBytes}):(0,N.jsxs)(`div`,{className:`flex w-full max-w-sm flex-col items-center rounded-lg border border-white/15 bg-white/[0.08] p-8 text-center`,children:[(0,N.jsx)(_,{className:`h-16 w-16 text-white/60`}),(0,N.jsx)(`p`,{className:`mt-4 text-body-medium-default text-white/90`,children:n.filename}),(0,N.jsx)(`p`,{className:`mt-1 text-body-small-default text-white/60`,children:H(n.sizeBytes)}),(0,N.jsx)(i,{variant:`ghost`,leftIcon:(0,N.jsx)(p,{}),onClick:z,disabled:!T,"aria-label":`Download ${n.filename}`,className:`mt-4 text-white/70 hover:bg-white/10 hover:text-white max-md:bg-transparent`,tintColor:`currentColor`,children:`Download`})]})}),k&&(0,N.jsx)(`div`,{className:`absolute inset-x-0 bottom-0 z-10 flex justify-center`,style:{paddingBottom:`calc(var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px)) + 2rem)`},onClick:e=>e.stopPropagation(),children:(0,N.jsxs)(c,{variant:`body-small-default`,className:`text-white/50`,children:[O+1,` / `,s.length]})})]}),document.body)};function we(e,t){let[n,r]=(0,M.useState)(null),i=(0,M.useCallback)(e=>r(e),[]),a=(0,M.useCallback)(()=>r(null),[]),o=(0,M.useCallback)(e=>r(e),[]);return{openPreview:i,previewModal:n?(0,N.jsx)(Ce,{open:!0,onClose:a,attachment:n,assistantId:e,siblingAttachments:t,onNavigate:o}):null}}var Te=1500,X=`inline-flex max-w-full min-w-0 items-center gap-1.5 rounded-lg bg-[var(--surface-overlay)] px-2 py-1 align-middle text-[0.85em] leading-tight text-[var(--content-secondary)]`,Z=`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)]`;function Ee({type:e,service:t,field:n,assistantId:r,neutralized:i}){let a=ee.use.activeAssistantId(),o=r===void 0?a:r,[s,c]=(0,M.useState)(null),[u,d]=(0,M.useState)(!1),[p,g]=(0,M.useState)(!1),_=(0,M.useRef)(null),b=(0,M.useRef)(0),x=e??`Secret`,S=t!==void 0&&n!==void 0&&o!=null,C=S?`${t}:${n}`:x,T=(0,M.useCallback)(()=>{b.current++,c(null),d(!1),g(!1),_.current&&=(clearTimeout(_.current),null)},[]),E=(0,M.useCallback)(async()=>{if(!S)return;let e=++b.current;d(!0);try{let{data:r}=await te({path:{assistant_id:o},body:{service:t,field:n},throwOnError:!0});b.current===e&&c(r.value)}catch{b.current===e&&w.error(`Couldn't reveal ${C}.`)}finally{b.current===e&&d(!1)}},[S,o,t,n,C]),D=(0,M.useCallback)(()=>{s!=null&&navigator.clipboard.writeText(s).then(()=>{g(!0),_.current&&clearTimeout(_.current),_.current=setTimeout(()=>g(!1),Te)},()=>w.error(`Couldn't copy — reveal and copy manually.`))},[s]);if(i)return(0,N.jsxs)(`span`,{className:X,title:`Redaction marker — not verified by the assistant`,children:[(0,N.jsx)(v,{className:`h-3.5 w-3.5 shrink-0`,"aria-hidden":!0}),(0,N.jsx)(`span`,{className:`truncate`,children:`Redacted`})]});if(!S)return(0,N.jsxs)(`span`,{className:X,title:`Redacted — this value is not linked to a stored credential`,children:[(0,N.jsx)(v,{className:`h-3.5 w-3.5 shrink-0`,"aria-hidden":!0}),(0,N.jsx)(`span`,{className:`truncate`,children:x})]});let O=s!==null;return(0,N.jsxs)(`span`,{className:X,children:[(0,N.jsx)(v,{className:`h-3.5 w-3.5 shrink-0`,"aria-hidden":!0}),O?(0,N.jsx)(`span`,{className:`min-w-0 truncate font-mono text-[var(--content-default)]`,children:s}):(0,N.jsx)(`button`,{type:`button`,onClick:()=>void E(),disabled:u,"aria-label":`Reveal value for ${C}`,title:`${x} · click to reveal`,className:`min-w-0 select-none truncate rounded-sm text-left blur-[3px] transition-[filter] hover:blur-[2px] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[var(--border-focus)]`,children:C}),u?(0,N.jsx)(y,{className:`h-3.5 w-3.5 shrink-0 animate-spin`,"aria-hidden":!0}):O?(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(`button`,{type:`button`,onClick:D,"aria-label":`Copy value for ${C}`,title:`Copy value`,className:Z,children:p?(0,N.jsx)(l,{className:`h-3.5 w-3.5`,"aria-hidden":!0}):(0,N.jsx)(f,{className:`h-3.5 w-3.5`,"aria-hidden":!0})}),(0,N.jsx)(`button`,{type:`button`,onClick:T,"aria-label":`Hide value for ${C}`,title:`Hide value`,className:Z,children:(0,N.jsx)(m,{className:`h-3.5 w-3.5`,"aria-hidden":!0})})]}):(0,N.jsx)(`button`,{type:`button`,onClick:()=>void E(),disabled:u,"aria-label":`Reveal value for ${C}`,title:`Click to reveal`,className:Z,children:(0,N.jsx)(h,{className:`h-3.5 w-3.5`,"aria-hidden":!0})})]})}var De=`redacted`;function Oe(e){try{return decodeURIComponent(e)}catch{return}}function ke(){return RegExp(`〔${De}:([^:\u3014\u3015]+?)(?::([A-Za-z0-9_.%-]+):([A-Za-z0-9_.%-]+))?〕`,`g`)}function Ae(){return RegExp(`〔\\u2060${De}:([^:\\u3014\\u3015]+?)(?::([A-Za-z0-9_.%-]+):([A-Za-z0-9_.%-]+))?〕`,`g`)}function je(e){let[,t,n,r]=e;if(n!==void 0&&r!==void 0){let e=Oe(n),i=Oe(r);if(e!==void 0&&i!==void 0)return{type:t,service:e,field:i}}return{type:t}}var Q=`redacted-credential`,Me=new Set([`pre`,`code`,`style`,`script`,`a`]);function Ne(e){return e.type===`element`}function Pe(e){let t=[],n=ke(),r;for(;(r=n.exec(e))!==null;){let e=je(r);t.push({index:r.index,length:r[0].length,element:{type:`element`,tagName:Q,properties:{type:e.type,...e.service!==void 0&&e.field!==void 0?{service:e.service,field:e.field}:{}},children:[]}})}let i=Ae();for(;(r=i.exec(e))!==null;)t.push({index:r.index,length:r[0].length,element:{type:`element`,tagName:Q,properties:{neutralized:!0},children:[]}});if(t.length===0)return;t.sort((e,t)=>e.index-t.index);let a=[],o=0;for(let n of t)n.index>o&&a.push({type:`text`,value:e.slice(o,n.index)}),a.push(n.element),o=n.index+n.length;return o<e.length&&a.push({type:`text`,value:e.slice(o)}),a}function Fe(e){if(Ne(e)&&Me.has(e.tagName))return;let t=e.children;if(t)for(let e=t.length-1;e>=0;e--){let n=t[e];if(n.type!==`text`){Fe(n);continue}let r=n.value;if(!r.includes(`〔`))continue;let i=Pe(r);i&&t.splice(e,1,...i)}}function Ie(){return e=>{Fe(e)}}var Le=new Set([`pre`,`code`,`style`,`script`]),Re=5,ze=.4,Be=`stream-word-fade`;function Ve(e){return e.type===`element`}function He(e){if(Ve(e)&&Le.has(e.tagName))return;let t=e.children;if(t)for(let e=t.length-1;e>=0;e--){let n=t[e];if(n.type!==`text`){He(n);continue}let r=n.value.match(/\S+|\s+/g);if(!r||r.length===1&&/^\s+$/.test(r[0]))continue;let i=r.map(e=>/^\s+$/.test(e)?{type:`text`,value:e}:{type:`element`,tagName:`span`,properties:{className:[Be]},children:[{type:`text`,value:e}]});t.splice(e,1,...i)}}function Ue(e,t){if(Ve(e)){let n=e.properties?.className;if(Array.isArray(n)&&n.includes(Be)){t.push(e);return}}if(e.children)for(let n of e.children)Ue(n,t)}function We(e){let t=e?.caughtUp??!1;return e=>{if(He(e),t)return;let n=[];Ue(e,n);let r=Math.min(Re,n.length);for(let e=0;e<r;e++){let t=n[n.length-1-e],r=(ze+(1-ze)*((e+1)/(Re+1))).toFixed(3);t.properties={...t.properties,style:`opacity:${r}`}}}}var Ge=`workspace-path`,Ke=`/workspace/`,qe=512,Je=/[\s`"'<>|&;:,=$*?[\]{}()\\!#]/;function Ye(e){let t=e.trim();if(t.length===0||t.length>qe||Je.test(t)||t.endsWith(`/`)||t.startsWith(`~`))return null;let n;if(t.startsWith(`/`)){let e=t.lastIndexOf(Ke);if(e===-1)return null;n=t.slice(e+11)}else if(n=t.startsWith(`./`)?t.slice(2):t,!n.includes(`/`))return null;return n.length===0||n.split(`/`).some(e=>e.length===0||e.startsWith(`.`))?null:n}function Xe(e){let t=e.lastIndexOf(`/`);return t===-1?``:e.slice(0,t)}function Ze(e){let t=e.lastIndexOf(`/`);return t===-1?e:e.slice(t+1)}function Qe(e){return`vellum://workspace/${e.split(`/`).map(encodeURIComponent).join(`/`)}`}var $e=new Set([`pre`,`a`,`style`,`script`]);function et(e){return e.type===`element`}function tt(e){if(e.children.length!==1)return;let t=e.children[0];return t.type===`text`?t.value:void 0}function nt(e){let t=e.children;if(t){for(let e of t)if(et(e)&&!$e.has(e.tagName)){if(e.tagName===`code`){let t=tt(e),n=t===void 0?null:Ye(t);n!==null&&t!==void 0&&(e.tagName=Ge,e.properties={...e.properties,path:n,raw:t},e.children=[]);continue}nt(e)}}}function rt(){return e=>{nt(e)}}var it=15e3,at=1e4,ot=9e4;function st({path:e,raw:t,assistantId:n,onOpen:r}){let i=t??e??``,a=k(),s=!!(e&&n&&r&&a),[c]=(0,M.useState)(()=>Date.now()+ot),{data:l}=o({...g({assistantId:n??``,path:e?Xe(e):``}),enabled:s,staleTime:it,retry:!1,refetchInterval:t=>Date.now()>=c||(t.state.data?.entries.some(t=>t.type===`file`&&t.path===e)??!1)?!1:at});return!(0,M.useMemo)(()=>e!=null&&(l?.entries.some(t=>t.type===`file`&&t.path===e)??!1),[l,e])||!e||!r?(0,N.jsx)(`code`,{className:C,children:i}):(0,N.jsx)(`button`,{type:`button`,onClick:()=>r(Qe(e),Ze(e)),className:`${C} cursor-pointer text-[var(--system-positive-strong)] underline decoration-dotted underline-offset-2 hover:opacity-80`,title:`Open ${e}`,children:i})}function $(e){return e!=null&&(e.startsWith(`vellum://workspace/`)||e.startsWith(`vellum://host/`))}function ct(e){return $(e)?e:x(e)}function lt({href:e,children:t}){return(0,N.jsx)(`a`,{href:e,target:`_blank`,rel:F(e)?void 0:`noopener noreferrer`,onClick:t=>{if(oe(e)){t.preventDefault();return}re(t,e)},className:`text-[var(--system-positive-strong)] underline hover:opacity-80`,children:t})}var ut=`my-2 max-w-full max-h-[400px] rounded-lg border border-[var(--border-default)] object-contain`;function dt({alt:e}){return(0,N.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded bg-[var(--surface-sunken)] px-1.5 py-0.5 text-body-small-default text-[var(--content-tertiary)]`,children:[`Image failed to load`,e?` (${e})`:``]})}function ft({src:e,alt:t}){let[n,r]=(0,M.useState)(!1);return n?(0,N.jsx)(dt,{alt:t}):(0,N.jsx)(`img`,{src:e,alt:t,onError:()=>r(!0),className:ut})}function pt(e){try{return decodeURIComponent(e)}catch{return e}}function mt({src:e,alt:n,attachments:r,assistantId:i,onOpenPreview:a}){let[o,s]=(0,M.useState)(null),[c,l]=(0,M.useState)(!1),u=pt(e.split(`/`).pop()??``),d=r?.find(e=>e.filename===u);if((0,M.useEffect)(()=>{if(!d||!i||d.id.startsWith(`rehydrated:`))return;let e=!1;return(async()=>{try{let{data:t,error:n}=await D({path:{assistant_id:i,id:d.id},parseAs:`blob`,throwOnError:!1});if(e)return;if(n||!(t instanceof Blob)){l(!0);return}s(URL.createObjectURL(t))}catch(n){e||(l(!0),t(n,{context:`WorkspaceInlineImage`,bestEffort:!0}))}})(),()=>{e=!0,s(e=>(e&&URL.revokeObjectURL(e),null))}},[d,i]),c||!d&&!o)return(0,N.jsx)(dt,{alt:n||u});if(!o)return(0,N.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded bg-[var(--surface-sunken)] px-1.5 py-0.5 text-body-small-default text-[var(--content-tertiary)]`,children:[`Loading image…`,n?` (${n})`:``]});let f=(0,N.jsx)(`img`,{src:o,alt:n,className:ut});return!d||!a?f:(0,N.jsx)(`button`,{type:`button`,onClick:()=>a(d),className:`cursor-zoom-in appearance-none border-0 bg-transparent p-0`,"aria-label":n?`Expand image: ${n}`:`Expand image`,children:f})}var ht=(0,M.memo)(function({content:e,className:t,hardLineBreaks:n,onVellumLinkClick:r,attachments:i,assistantId:a,streamWordFade:o,redactedCredentialChips:s,workspacePathLinks:c}){let{openPreview:l,previewModal:u}=we(a,i),d=(0,M.useCallback)(({href:e,children:t})=>r&&$(e)?(0,N.jsx)(`a`,{href:e,onClick:t=>{t.preventDefault(),e&&r(e,t.currentTarget.textContent??``)},className:`text-[var(--system-positive-strong)] underline hover:opacity-80 cursor-pointer`,children:t}):(0,N.jsx)(lt,{href:e,children:t}),[r]),f=(0,M.useMemo)(()=>[...s?[Ie]:[],...c&&r?[rt]:[],...o?[[We,{caughtUp:o===`caughtUp`}]]:[]],[s,o,c,r]),p=(0,M.useMemo)(()=>({src:e,alt:t})=>$(e)?(0,N.jsx)(mt,{src:e,alt:t,attachments:i,assistantId:a,onOpenPreview:l}):(0,N.jsx)(ft,{src:e,alt:t}),[i,a,l]),m=(0,M.useMemo)(()=>({[Q]:e=>(0,N.jsx)(Ee,{...e,assistantId:a},`${a??``}\u0000${e.service??``}\u0000${e.field??``}`),[Ge]:e=>(0,N.jsx)(st,{...e,assistantId:a,onOpen:r})}),[a,r]);return(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(S,{content:e,className:t,hardLineBreaks:n,linkComponent:d,imageComponent:p,urlTransform:ct,extraRehypePlugins:f,extraComponents:s||c&&r?m:void 0}),u]})});export{W as a,se as c,z as d,U as i,V as l,we as n,H as o,Ce as r,K as s,ht as t,B as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./jsx-runtime-D3ZM-ToX.js";import{a as r,t as i}from"./cn-CJf7MmLX.js";import{t as a}from"./typography-DEI9Ra9z.js";import{t as o}from"./createLucideIcon-CAM1RhH8.js";import{t as s}from"./check-sC49_hjU.js";import{a as c,i as l,o as u,r as d,s as f,t as p}from"./dist-
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./jsx-runtime-D3ZM-ToX.js";import{a as r,t as i}from"./cn-CJf7MmLX.js";import{t as a}from"./typography-DEI9Ra9z.js";import{t as o}from"./createLucideIcon-CAM1RhH8.js";import{t as s}from"./check-sC49_hjU.js";import{a as c,i as l,o as u,r as d,s as f,t as p}from"./dist-BbzsnMsY.js";var m=o(`minus`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}]]),h=e(t(),1);function g(e){let t=h.useRef({value:e,previous:e});return h.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}function _(e){let[t,n]=h.useState(void 0);return c(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});let t=new ResizeObserver(t=>{if(!Array.isArray(t)||!t.length)return;let r=t[0],i,a;if(`borderBoxSize`in r){let e=r.borderBoxSize,t=Array.isArray(e)?e[0]:e;i=t.inlineSize,a=t.blockSize}else i=e.offsetWidth,a=e.offsetHeight;n({width:i,height:a})});return t.observe(e,{box:`border-box`}),()=>t.unobserve(e)}else n(void 0)},[e]),t}var v=n(),y=`Checkbox`,[b,x]=f(y),[S,C]=b(y);function w(e){let{__scopeCheckbox:t,checked:n,children:r,defaultChecked:i,disabled:a,form:o,name:s,onCheckedChange:c,required:u,value:d=`on`,internal_do_not_use_render:f}=e,[p,m]=l({prop:n,defaultProp:i??!1,onChange:c,caller:y}),[g,_]=h.useState(null),[b,x]=h.useState(null),C=h.useRef(!1),w=g?!!o||!!g.closest(`form`):!0,T={checked:p,disabled:a,setChecked:m,control:g,setControl:_,name:s,form:o,value:d,hasConsumerStoppedPropagationRef:C,required:u,defaultChecked:N(i)?!1:i,isFormControl:w,bubbleInput:b,setBubbleInput:x};return(0,v.jsx)(S,{scope:t,...T,children:M(f)?f(T):r})}var T=`CheckboxTrigger`,E=h.forwardRef(({__scopeCheckbox:e,onKeyDown:t,onClick:n,...i},a)=>{let{control:o,value:s,disabled:c,checked:l,required:d,setControl:f,setChecked:m,hasConsumerStoppedPropagationRef:g,isFormControl:_,bubbleInput:y}=C(T,e),b=r(a,f),x=h.useRef(l);return h.useEffect(()=>{let e=o?.form;if(e){let t=()=>m(x.current);return e.addEventListener(`reset`,t),()=>e.removeEventListener(`reset`,t)}},[o,m]),(0,v.jsx)(p.button,{type:`button`,role:`checkbox`,"aria-checked":N(l)?`mixed`:l,"aria-required":d,"data-state":P(l),"data-disabled":c?``:void 0,disabled:c,value:s,...i,ref:b,onKeyDown:u(t,e=>{e.key===`Enter`&&e.preventDefault()}),onClick:u(n,e=>{m(e=>N(e)?!0:!e),y&&_&&(g.current=e.isPropagationStopped(),g.current||e.stopPropagation())})})});E.displayName=T;var D=h.forwardRef((e,t)=>{let{__scopeCheckbox:n,name:r,checked:i,defaultChecked:a,required:o,disabled:s,value:c,onCheckedChange:l,form:u,...d}=e;return(0,v.jsx)(w,{__scopeCheckbox:n,checked:i,defaultChecked:a,disabled:s,required:o,onCheckedChange:l,name:r,form:u,value:c,internal_do_not_use_render:({isFormControl:e})=>(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(E,{...d,ref:t,__scopeCheckbox:n}),e&&(0,v.jsx)(j,{__scopeCheckbox:n})]})})});D.displayName=y;var O=`CheckboxIndicator`,k=h.forwardRef((e,t)=>{let{__scopeCheckbox:n,forceMount:r,...i}=e,a=C(O,n);return(0,v.jsx)(d,{present:r||N(a.checked)||a.checked===!0,children:(0,v.jsx)(p.span,{"data-state":P(a.checked),"data-disabled":a.disabled?``:void 0,...i,ref:t,style:{pointerEvents:`none`,...e.style}})})});k.displayName=O;var A=`CheckboxBubbleInput`,j=h.forwardRef(({__scopeCheckbox:e,...t},n)=>{let{control:i,hasConsumerStoppedPropagationRef:a,checked:o,defaultChecked:s,required:c,disabled:l,name:u,value:d,form:f,bubbleInput:m,setBubbleInput:y}=C(A,e),b=r(n,y),x=g(o),S=_(i);h.useEffect(()=>{let e=m;if(!e)return;let t=window.HTMLInputElement.prototype,n=Object.getOwnPropertyDescriptor(t,`checked`).set,r=!a.current;if(x!==o&&n){let t=new Event(`click`,{bubbles:r});e.indeterminate=N(o),n.call(e,N(o)?!1:o),e.dispatchEvent(t)}},[m,x,o,a]);let w=h.useRef(N(o)?!1:o);return(0,v.jsx)(p.input,{type:`checkbox`,"aria-hidden":!0,defaultChecked:s??w.current,required:c,disabled:l,name:u,value:d,form:f,...t,tabIndex:-1,ref:b,style:{...t.style,...S,position:`absolute`,pointerEvents:`none`,opacity:0,margin:0,transform:`translateX(-100%)`}})});j.displayName=A;function M(e){return typeof e==`function`}function N(e){return e===`indeterminate`}function P(e){return N(e)?`indeterminate`:e?`checked`:`unchecked`}function F({checked:e,onCheckedChange:t,label:n,helperText:r,disabled:o=!1,id:c,name:l,className:u,ref:d,"aria-label":f,...p}){let g=(0,h.useId)(),_=c??g,y=n?`${_}-label`:void 0,b=r?`${_}-helper`:void 0,x=e===`indeterminate`,S=i(`inline-flex h-4 w-4 shrink-0 items-center justify-center rounded-[4px]`,`border transition-colors outline-none cursor-pointer`,`keyboard-focus:ring-2 keyboard-focus:ring-[var(--ring)] keyboard-focus:ring-offset-0`,`bg-[var(--surface-lift)] border-[var(--border-base)]`,`data-[state=checked]:bg-[var(--system-positive-strong)] data-[state=checked]:border-transparent`,`data-[state=indeterminate]:bg-[var(--system-positive-strong)] data-[state=indeterminate]:border-transparent`,`disabled:cursor-not-allowed disabled:bg-[var(--surface-overlay)]`,`disabled:data-[state=checked]:bg-[var(--surface-overlay)]`,`disabled:data-[state=indeterminate]:bg-[var(--surface-overlay)]`,`disabled:border-[var(--border-base)]`),C=i(`h-3 w-3`,o?`text-[color:var(--content-disabled)]`:`text-[color:var(--aux-white)]`),w=(0,v.jsx)(D,{...p,ref:d,id:_,name:l,checked:e,disabled:o,onCheckedChange:t,"aria-label":n?void 0:f,"aria-labelledby":n?y:void 0,"aria-describedby":b,"data-slot":`checkbox`,className:S,children:(0,v.jsx)(k,{forceMount:!0,className:`flex items-center justify-center`,children:x?(0,v.jsx)(m,{className:C,strokeWidth:3,"aria-hidden":`true`}):e===!0?(0,v.jsx)(s,{className:C,strokeWidth:3,"aria-hidden":`true`}):null})});return!n&&!r?(0,v.jsx)(`span`,{"data-slot":`checkbox`,className:u,children:w}):(0,v.jsxs)(`div`,{"data-slot":`checkbox`,className:i(`flex gap-2.5`,r?`items-start`:`items-center`,u),children:[w,(0,v.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-0.5`,children:[n?(0,v.jsx)(a,{as:`label`,variant:`body-medium-default`,id:y,htmlFor:_,className:i(`cursor-pointer select-none`,o?`cursor-not-allowed text-[color:var(--content-disabled)]`:`text-[color:var(--content-default)]`),children:n}):null,r?(0,v.jsx)(`span`,{id:b,className:`text-body-small-default text-[color:var(--content-secondary)]`,children:r}):null]})]})}export{m as n,F as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{S as e}from"./native-biometric-DUHF57O_.js";import{t}from"./client-feature-flag-store-BdNCabm_.js";function n(){let e=t.use.marketingPricingTakeover(),n=t.use.hydrated();return e?`enabled`:n?`disabled`:`pending`}var r=`continue`;function i(t,n){return e(t.get(r),n)}export{i as n,n as r,r as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-Dy5001j6.js";import{m as r,t as i,u as a}from"./chunk-5KNZJZUH-Bsoom5--.js";import{t as o}from"./useMutation-CXGTrp4W.js";import{t as s}from"./jsx-runtime-D3ZM-ToX.js";import{t as c}from"./loader-circle-XREx3i4W.js";import{D as l}from"./auth-store-EmLZOAkN.js";import{v as u,x as d}from"./native-biometric-DUHF57O_.js";import{d as f}from"./routes-CsoiCk2y.js";import{a as p}from"./use-platform-gate-Cv2oOK8C.js";import{i as m}from"./use-is-org-ready-BrKAc9Df.js";import{n as h}from"./browser-DvKwnK9l.js";import{dt as g}from"./react-query.gen-9VRdubOj.js";import{n as _,r as v}from"./checkout-continuation-DmIXoV4L.js";import{t as y}from"./checkout-return-target-DQBOhh64.js";var b=e(t(),1),x=s();function S(){let e=a(),[t]=r(),s=t.get(`package`)??``,S=p(),C=m(),w=v(),T=_(t,f.plans),E=T===f.plans?`View plans`:`Continue setup`,{mutateAsync:D}=o(g()),[O,k]=(0,b.useState)(!1),[A,j]=(0,b.useState)(!1),M=(0,b.useRef)(`idle`),N=(0,b.useCallback)(async()=>{M.current=`running`,k(!1),j(!1);let t=y();try{let n=await D({body:{target_plan_id:`pro`,package:s,confirm:!0,return_target:t}});if(M.current!==`running`)return;if(n.status===`redirect`&&n.checkout_url){M.current=`handed_off`,d({kind:`package`,packageKey:s}),j(t===`native`),h(n.checkout_url);return}M.current=`settled`,u(),e(T===f.plans&&s?f.plansForPackage(s):T,{replace:!0})}catch{if(M.current!==`running`)return;M.current=`settled`,k(!0)}},[T,D,e,s]),P=(0,b.useCallback)(()=>{if(C===`ready`){N();return}M.current=`idle`,k(!1),j(!1),C===`unavailable`&&l.getState().fetchOrganizations()},[C,N]);return(0,b.useEffect)(()=>{if(!s||S===`disabled`||S===`gated`||w===`disabled`){if(M.current===`handed_off`)return;M.current=`settled`,u(),e(T,{replace:!0});return}if(!(w!==`enabled`||S!==`full`||M.current!==`idle`)&&C!==`resolving`){if(C===`unavailable`){M.current=`settled`,k(!0);return}N()}},[T,S,e,C,s,N,w]),O?(0,x.jsxs)(`div`,{className:`flex h-full w-full flex-col items-center justify-center gap-4 px-6 text-center`,children:[(0,x.jsx)(`p`,{className:`text-[var(--content-default)]`,children:`We couldn’t start your checkout. Please try again.`}),(0,x.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,x.jsx)(n,{onClick:P,children:`Try again`}),(0,x.jsx)(i,{to:T,onClick:u,className:`text-sm text-[var(--content-tertiary)] underline`,children:E})]})]}):A?(0,x.jsxs)(`div`,{className:`flex h-full w-full flex-col items-center justify-center gap-4 px-6 text-center`,children:[(0,x.jsx)(`p`,{className:`text-[var(--content-default)]`,children:`Checkout opened in your browser. Finish there to complete your upgrade.`}),(0,x.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,x.jsx)(n,{onClick:P,children:`Reopen checkout`}),(0,x.jsx)(i,{to:T,className:`text-sm text-[var(--content-tertiary)] underline`,children:E})]})]}):(0,x.jsxs)(`div`,{className:`flex h-full w-full flex-col items-center justify-center gap-3`,children:[(0,x.jsx)(c,{className:`h-6 w-6 animate-spin text-[var(--content-tertiary)]`,"aria-label":`Preparing checkout`}),(0,x.jsx)(`p`,{className:`text-sm text-[var(--content-tertiary)]`,children:`Preparing checkout…`})]})}export{S as CheckoutPage};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./is-electron-D-TCQRcE.js";import{t}from"./dist-CCFYMOVM.js";function n(){return e()||t.isNativePlatform()?`native`:`web`}export{n as t};
|
package/dist/assets/{client-feature-flag-store-CMncoan8.js → client-feature-flag-store-BdNCabm_.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e,t}from"./create-selectors-
|
|
1
|
+
import{n as e,t}from"./create-selectors-B41BzcFF.js";import{i as n,r,s as i}from"./feature-flag-catalog-CWB-r-Pj.js";var a=`vellum:ff:`,o=`vellum:ff-str:`;function s(){if(typeof window>`u`)return{};let e={};try{for(let t of Object.keys(r)){let n=localStorage.getItem(a+t);n!==null&&(e[t]=n===`true`)}}catch{}return e}function c(){if(typeof window>`u`)return{};let e={};try{for(let t of Object.keys(n)){let n=localStorage.getItem(o+t);n!==null&&(e[t]=n)}}catch{}return e}var l=s(),u=c(),d=i(`client`);function f(){return{...r,...s(),...d.bool}}function p(){return{...n,...c(),...d.str}}function m(e,t){return e===null||t===null||e===t}var h=t(e()(e=>{let t=e;return{...r,...l,...d.bool,stringFlags:{...n,...u,...d.str},hydrated:!1,scopeKey:null,setFlags:(t,n)=>e(e=>{if(!m(e.scopeKey,n))return e;let r=s(),i={...t,...r,...d.bool};return Object.keys(i).some(t=>i[t]!==e[t])?{...i,hydrated:!0}:e.hydrated?e:{hydrated:!0}}),beginScope:e=>t(t=>t.scopeKey===e?t:{...f(),stringFlags:p(),hydrated:!1,scopeKey:e}),settleWithoutServerValues:t=>e(e=>e.hydrated||!m(e.scopeKey,t)?e:{...f(),hydrated:!0}),setFlag:(t,n)=>{try{localStorage.setItem(a+t,String(n))}catch{}e({[t]:d.bool[t]??n})},clearOverride:t=>{try{localStorage.removeItem(a+t)}catch{}let n=d.bool[t]??r[t];n!==void 0&&e({[t]:n})},setStringFlags:(e,n)=>t(t=>{if(!m(t.scopeKey,n))return t;let r=c(),i={...e,...r,...d.str},a=t.stringFlags;return Object.keys(i).some(e=>i[e]!==a[e])?{stringFlags:i}:t}),setStringFlag:(e,n)=>{try{localStorage.setItem(o+e,n)}catch{}t(t=>({stringFlags:{...t.stringFlags,[e]:d.str[e]??n}}))},clearStringOverride:e=>{try{localStorage.removeItem(o+e)}catch{}let r=d.str[e]??n[e];t(t=>({stringFlags:{...t.stringFlags,[e]:r??``}}))}}}));export{h as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e,t}from"./platform-detection-
|
|
1
|
+
import{n as e,t}from"./platform-detection-D1fBX4KG.js";var n={browser_family:`x-vellum-browser-family`,browser_version:`x-vellum-browser-version`,os:`x-vellum-client-os`,interface_version:`x-vellum-interface-version`},r=/^[a-z0-9._-]{1,64}$/;function i(e){let t=e?.trim().toLowerCase();if(t)return r.test(t)?t:void 0}var a=null;function o(){return a||(a=crypto.randomUUID(),a)}var s=null;function c(){if(s)return s;let r=t(),a=[[n.browser_family,r.family],[n.browser_version,r.version],[n.os,e()],[n.interface_version,void 0]],o={};for(let[e,t]of a){let n=i(t);n&&(o[e]=n)}return s=o,o}function l(){return{"X-Vellum-Client-Id":o(),"X-Vellum-Interface-Id":`web`,...c()}}export{l as n,o as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{F as n,t as r}from"./button-Dy5001j6.js";import{t as i}from"./jsx-runtime-D3ZM-ToX.js";import{t as a}from"./typography-DEI9Ra9z.js";import{t as o}from"./loader-circle-XREx3i4W.js";import{t as s}from"./search-BVW-n8to.js";import{t as c}from"./x-
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{F as n,t as r}from"./button-Dy5001j6.js";import{t as i}from"./jsx-runtime-D3ZM-ToX.js";import{t as a}from"./typography-DEI9Ra9z.js";import{t as o}from"./loader-circle-XREx3i4W.js";import{t as s}from"./search-BVW-n8to.js";import{t as c}from"./x-BGag7vwj.js";import"./src-CnF7WXNj.js";import{t as l}from"./panel-item-CQt19wOM.js";import{n as u}from"./use-is-mobile-Cx2xnNUx.js";var d=e(t(),1),f=e(n(),1),p=i();function m({icon:e,title:t,subtitle:n,shortcutHint:r,isSelected:i,onClick:a,surface:o=`overlay`}){let s=e;return o===`window`?(0,p.jsxs)(`button`,{type:`button`,role:`option`,"aria-current":i?`page`:void 0,"aria-selected":i,onClick:a,className:[`flex h-10 w-full items-center gap-3 rounded-md px-3 text-left text-sm font-medium outline-none transition-colors`,i?`bg-[var(--surface-active)] text-[var(--content-default)]`:`text-[var(--content-secondary)] hover:bg-[var(--surface-overlay)] hover:text-[var(--content-default)]`].join(` `),children:[s?(0,p.jsx)(s,{size:16,"aria-hidden":!0,className:i?`shrink-0 text-[var(--content-default)]`:`shrink-0 text-[var(--content-tertiary)]`}):null,(0,p.jsxs)(`span`,{className:`flex min-w-0 flex-1 items-center gap-2`,children:[(0,p.jsx)(`span`,{className:`truncate`,children:t}),n?(0,p.jsx)(`span`,{className:`shrink-0 truncate text-xs text-[var(--content-tertiary)]`,children:n}):null,r?(0,p.jsx)(`span`,{className:`ml-auto shrink-0 text-xs text-[var(--content-tertiary)]`,children:r}):null]})]}):(0,p.jsx)(l,{icon:e,label:(0,p.jsxs)(`span`,{className:`flex min-w-0 flex-1 items-center gap-2`,children:[(0,p.jsx)(`span`,{className:`truncate`,children:t}),n?(0,p.jsx)(`span`,{className:`shrink-0 truncate text-[var(--content-tertiary)] text-body-small-default`,children:n}):null,r?(0,p.jsx)(`span`,{className:`ml-auto shrink-0 text-[var(--content-tertiary)] text-body-small-default`,children:r}):null]}),active:i,onSelect:a,className:`px-3 py-2`})}var h=({isOpen:e,onClose:t,query:n,onQueryChange:i,selectedIndex:l,sections:h,isSearching:g=!1,onItemSelect:_,onKeyDown:v,surface:y=`overlay`})=>{let b=u(),x=(0,d.useRef)(null),S=(0,d.useRef)(null),C=(0,d.useRef)(null);(0,d.useEffect)(()=>{if(e){let e=requestAnimationFrame(()=>{S.current?.focus()});return()=>cancelAnimationFrame(e)}},[e]),(0,d.useEffect)(()=>{if(!e||!C.current)return;let t=C.current.querySelector(`[aria-current='page']`);t&&t.scrollIntoView({block:`nearest`})},[e,l]);let w=(0,d.useCallback)(e=>{e.target===x.current&&t()},[t]);if(!e)return null;let T=0,E=y===`window`,D=b&&!E,O=(0,p.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 border-b border-[var(--border-base)] px-4 py-3`,children:[g?(0,p.jsx)(o,{size:16,"aria-hidden":!0,className:`shrink-0 animate-spin text-[var(--content-tertiary)]`}):(0,p.jsx)(s,{size:16,"aria-hidden":!0,className:`shrink-0 text-[var(--content-tertiary)]`}),(0,p.jsx)(`input`,{ref:S,type:`text`,value:n,onChange:e=>i(e.target.value),placeholder:`Search conversations, memories…`,className:E?`min-w-0 flex-1 bg-transparent text-sm font-medium text-[var(--content-default)] placeholder:text-[var(--content-tertiary)] outline-none`:`min-w-0 flex-1 bg-transparent text-body-medium-lighter text-[var(--content-default)] placeholder:text-[var(--content-tertiary)] outline-none`,"aria-label":`Search`}),n?D?(0,p.jsx)(`button`,{type:`button`,className:`shrink-0 text-body-medium-lighter text-[var(--content-tertiary)]`,onClick:()=>i(``),"aria-label":`Clear search`,children:`Clear`}):E?(0,p.jsx)(`button`,{type:`button`,className:`flex size-7 shrink-0 items-center justify-center rounded-md text-[var(--content-tertiary)] transition-colors hover:bg-[var(--surface-overlay)] hover:text-[var(--content-default)]`,"aria-label":`Clear search`,onClick:()=>i(``),children:(0,p.jsx)(c,{size:16,"aria-hidden":!0})}):(0,p.jsx)(r,{variant:`ghost`,size:`compact`,iconOnly:(0,p.jsx)(c,{}),"aria-label":`Clear search`,onClick:()=>i(``),tintColor:`var(--content-tertiary)`}):D?null:(0,p.jsx)(`kbd`,{className:E?`shrink-0 rounded-md border border-[var(--border-base)] bg-[var(--surface-active)] px-1.5 py-0.5 text-xs font-medium text-[var(--content-secondary)]`:`shrink-0 rounded-md border border-[var(--border-base)] bg-[var(--surface-active)] px-1.5 py-0.5 text-label-small-default text-[var(--content-tertiary)]`,children:`⌘K`}),D?(0,p.jsx)(r,{variant:`ghost`,size:`compact`,iconOnly:(0,p.jsx)(c,{}),expandOnMobile:!1,"aria-label":`Close search`,onClick:t,tintColor:`var(--content-tertiary)`}):null]}),k=(0,p.jsx)(`div`,{ref:C,className:D?`flex-1 overflow-y-auto overscroll-contain p-2`:`max-h-[360px] overflow-y-auto overscroll-contain p-2`,role:`listbox`,children:h.length===0?(0,p.jsx)(`div`,{className:`px-3 py-6 text-center`,children:(0,p.jsx)(a,{variant:`body-medium-lighter`,className:`text-[var(--content-tertiary)]`,children:g?`Searching…`:`No results`})}):h.map(e=>(0,p.jsxs)(`div`,{role:`group`,"aria-label":e.label,children:[(0,p.jsx)(a,{variant:`label-small-default`,as:`div`,className:E?`px-3 pb-1 pt-2 text-xs font-semibold text-[var(--content-tertiary)]`:`px-3 pb-1 pt-2 text-[var(--content-tertiary)] max-md:text-body-small-default`,children:e.label}),e.items.map(e=>{let t=T++;return(0,p.jsx)(m,{icon:e.icon,title:e.title,subtitle:e.subtitle,shortcutHint:D?void 0:e.shortcutHint,isSelected:t===l,onClick:()=>_?.(e,t),surface:y},e.id)})]},e.id))});if(D)return(0,p.jsxs)(`div`,{className:`fixed inset-0 z-50 flex flex-col bg-[var(--surface-lift)]`,role:`dialog`,"aria-modal":`true`,"aria-label":`Search`,onKeyDown:v,style:{paddingTop:`var(--safe-area-inset-top, env(safe-area-inset-top, 0px))`,paddingBottom:`var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px))`,paddingLeft:`var(--safe-area-inset-left, env(safe-area-inset-left, 0px))`,paddingRight:`var(--safe-area-inset-right, env(safe-area-inset-right, 0px))`},children:[O,k]});let A=(0,p.jsx)(`div`,{ref:x,role:`dialog`,"aria-modal":`true`,"aria-label":`Command palette`,className:y===`window`?`flex h-full w-full items-start justify-center bg-transparent p-3`:`fixed inset-0 z-50 flex items-start justify-center bg-black/40 pt-[15vh]`,onClick:w,onKeyDown:v,children:(0,p.jsxs)(`div`,{className:`flex w-full max-w-[560px] flex-col overflow-hidden rounded-xl border border-[var(--border-base)] bg-[var(--surface-base)] shadow-xl`,children:[O,k]})});return y===`window`?A:(0,f.createPortal)(A,document.body)};export{h as CommandPalette};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./jsx-runtime-D3ZM-ToX.js";import{c as r,i,n as a,o,t as s}from"./use-command-palette-sections-
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./jsx-runtime-D3ZM-ToX.js";import{c as r,i,n as a,o,t as s}from"./use-command-palette-sections-GAugkmjU.js";import{lt as c}from"./local-mode-BKousn41.js";import{n as l}from"./resolved-assistants-store-FEmi1gGu.js";import{D as u,i as d,k as f,n as p,s as m}from"./auth-store-EmLZOAkN.js";import{t as h}from"./client-feature-flag-store-BdNCabm_.js";import{t as g}from"./use-app-theme-BhnyqHgJ.js";import{i as _}from"./conversation-queries-688XB7Bh.js";import{CommandPalette as v}from"./command-palette-CzbYrcNM.js";var y=e(t(),1),b=n(),x=()=>void 0,S=e=>void 0,C=e=>{switch(e.id){case`action-new-conversation`:return{kind:`newConversation`};case`action-current-conversation`:return{kind:`currentConversation`};case`action-settings`:return{kind:`openSettings`};case`action-library`:return{kind:`openLibrary`};case`action-intelligence`:return{kind:`openIdentity`};case`action-back`:return{kind:`navigateBack`};case`action-forward`:return{kind:`navigateForward`};case`action-zoom-in`:return{kind:`zoomIn`};case`action-zoom-out`:return{kind:`zoomOut`};case`action-actual-size`:return{kind:`actualSize`};default:return e.id.startsWith(`conv-`)?{kind:`openConversation`,conversationId:e.id.slice(5)}:e.id.startsWith(`search-conv-`)?{kind:`openConversation`,conversationId:e.id.slice(12)}:e.id.startsWith(`search-schedule-`)||e.id.startsWith(`search-contact-`)?{kind:`openIdentity`}:null}};function w(){let e=p.use.sessionStatus(),t=m(),n=d();g(),o(!t),r({sessionStatus:e,hasPlatformSession:n});let w=l.use.assistants(),T=l.use.activeAssistantId(),E=l.use.selectedAssistantId(),D=u.use.currentOrganizationId(),O=h.use.multiPlatformAssistant(),k=(0,y.useMemo)(()=>{let e=O&&!c()&&D?f(D):T;if(!e)return null;let t=w.find(t=>t.id===e);return t?{id:t.id,name:t.name}:null},[O,T,w,D,E]),A=k?.id??null,{conversations:j}=_(A,!0),M=(0,y.useCallback)(e=>{let t=C(e);t&&i(t)},[]),{commandPalette:N,mergedSections:P,handleItemSelect:F}=s({assistantId:A,assistantName:k?.name,conversations:j,activeConversationId:void 0,startNewConversation:x,switchConversation:x,navigate:S,navigateToSettings:x,isOpen:!0,onClose:()=>{a()},onItemSelect:M});return(0,b.jsx)(`div`,{className:`h-screen w-screen bg-transparent`,children:(0,b.jsx)(v,{isOpen:!0,surface:`window`,onClose:N.close,query:N.query,onQueryChange:N.setQuery,selectedIndex:N.selectedIndex,sections:P,isSearching:N.isSearching,onItemSelect:F,onKeyDown:N.handleKeyDown})})}export{w as CommandPaletteWindowPage};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./button-Dy5001j6.js";import{t}from"./jsx-runtime-D3ZM-ToX.js";import{t as n}from"./card-DRIctGVs.js";import{t as r}from"./createLucideIcon-CAM1RhH8.js";import{r as i}from"./middleware-HE0NLvPl.js";import{t as a}from"./bug-VUcJFHwN.js";import{t as o}from"./external-link-CS0aVYGt.js";import{t as s}from"./globe-CMtjL_s_.js";import{t as c}from"./heart-789ajxtB.js";import{t as l}from"./play-B0-JEtcm.js";import{t as u}from"./sparkles-
|
|
1
|
+
import{t as e}from"./button-Dy5001j6.js";import{t}from"./jsx-runtime-D3ZM-ToX.js";import{t as n}from"./card-DRIctGVs.js";import{t as r}from"./createLucideIcon-CAM1RhH8.js";import{r as i}from"./middleware-HE0NLvPl.js";import{t as a}from"./bug-VUcJFHwN.js";import{t as o}from"./external-link-CS0aVYGt.js";import{t as s}from"./globe-CMtjL_s_.js";import{t as c}from"./heart-789ajxtB.js";import{t as l}from"./play-B0-JEtcm.js";import{t as u}from"./sparkles-nPSxUfsO.js";import{c as d,i as f,l as p,n as m,u as h}from"./use-discord-nudge-h0WPtIp6.js";import{t as g}from"./users-C0mu7-R4.js";import{t as _}from"./tag-Dn1d6hKF.js";import{t as v}from"./external-urls-DIbR-npW.js";var y=r(`git-pull-request`,[[`circle`,{cx:`18`,cy:`18`,r:`3`,key:`1xkwt0`}],[`circle`,{cx:`6`,cy:`6`,r:`3`,key:`1lh9wr`}],[`path`,{d:`M13 6h3a2 2 0 0 1 2 2v7`,key:`1yeb86`}],[`line`,{x1:`6`,x2:`6`,y1:`9`,y2:`21`,key:`rroup`}]]),b=t();function x({size:e=24,className:t,style:n}){return(0,b.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,width:e,height:e,fill:`currentColor`,className:t,style:n,"aria-hidden":!0,children:(0,b.jsx)(`path`,{d:`M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12`})})}function S({size:e=24,className:t,style:n}){return(0,b.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,width:e,height:e,fill:`currentColor`,className:t,style:n,"aria-hidden":!0,children:(0,b.jsx)(`path`,{d:`M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z`})})}function C({size:e=24,className:t,style:n}){return(0,b.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,width:e,height:e,fill:`currentColor`,className:t,style:n,"aria-hidden":!0,children:(0,b.jsx)(`path`,{d:`M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814ZM9.545 15.568V8.432L15.818 12l-6.273 3.568Z`})})}function w(){return(0,b.jsx)(n,{padding:`lg`,className:`bg-[var(--surface-lift)]`,children:(0,b.jsxs)(`div`,{className:`relative`,children:[(0,b.jsx)(`div`,{className:`pointer-events-none absolute -right-16 -top-16 h-64 w-64 rounded-full opacity-30 blur-3xl`,style:{background:`radial-gradient(circle, var(--system-mid-weak) 0%, transparent 70%)`},"aria-hidden":!0}),(0,b.jsxs)(`div`,{className:`relative flex flex-col items-start gap-3`,children:[(0,b.jsxs)(_,{tone:`neutral`,children:[(0,b.jsx)(l,{className:`h-3.5 w-3.5`}),`Community`]}),(0,b.jsx)(`h1`,{className:`text-[28px] font-semibold leading-tight tracking-tight text-[var(--content-emphasised)]`,children:`Build with us, in the open.`}),(0,b.jsx)(`p`,{className:`max-w-xl text-body-medium-default text-[color:var(--content-tertiary)]`,children:`Vellum is built in the open with a growing community of developers, designers, and tinkerers. Here's how to get involved.`})]})]})})}function T({icon:e,text:t}){return(0,b.jsxs)(`li`,{className:`flex items-center gap-3`,children:[(0,b.jsx)(`span`,{className:`flex size-7 shrink-0 items-center justify-center rounded-md bg-[var(--surface-base)]`,children:(0,b.jsx)(e,{size:14,className:`text-[var(--content-secondary)]`,"aria-hidden":!0})}),(0,b.jsx)(`span`,{className:`text-body-medium-lighter text-[color:var(--content-secondary)]`,children:t})]})}function E({accentColor:t,iconColor:r=`var(--aux-white)`,label:a,icon:o,title:s,subtitle:c,benefits:l,primaryAction:u,secondaryAction:d}){return(0,b.jsx)(n,{padding:`lg`,className:`flex-1`,children:(0,b.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,b.jsxs)(`div`,{className:`flex items-start justify-between`,children:[(0,b.jsx)(`span`,{className:`flex size-10 items-center justify-center rounded-lg`,style:{backgroundColor:t,color:r},children:o}),(0,b.jsx)(`span`,{className:`text-label-medium-default uppercase tracking-wider text-[color:var(--content-tertiary)]`,children:a})]}),(0,b.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,b.jsx)(`h2`,{className:`text-title-medium text-[var(--content-emphasised)]`,children:s}),(0,b.jsx)(`p`,{className:`text-body-medium-lighter text-[color:var(--content-tertiary)]`,children:c})]}),(0,b.jsx)(`ul`,{className:`flex flex-col gap-3`,children:l.map(({icon:e,text:t})=>(0,b.jsx)(T,{icon:e,text:t},t))}),(0,b.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,b.jsxs)(e,{onClick:u.onClick,children:[u.icon,u.label]}),d&&(0,b.jsxs)(e,{variant:`ghost`,onClick:()=>window.open(d.href,`_blank`,`noopener,noreferrer`),children:[d.label,(0,b.jsx)(i,{className:`h-3.5 w-3.5`})]})]})]})})}function D({icon:e,iconBg:t,iconColor:r=`white`,title:i,description:a,href:s}){return(0,b.jsx)(`a`,{href:s,target:`_blank`,rel:`noopener noreferrer`,className:`flex flex-1 cursor-pointer`,children:(0,b.jsx)(n,{className:`flex-1 transition-shadow hover:shadow-md`,padding:`lg`,children:(0,b.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,b.jsxs)(`div`,{className:`flex items-start justify-between`,children:[(0,b.jsx)(`span`,{className:`flex size-10 items-center justify-center rounded-lg`,style:{backgroundColor:t,color:r},children:e}),(0,b.jsx)(o,{size:14,className:`text-[var(--content-tertiary)]`,"aria-hidden":!0})]}),(0,b.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,b.jsx)(`span`,{className:`text-title-medium text-[var(--content-emphasised)]`,children:i}),(0,b.jsx)(`p`,{className:`text-body-medium-lighter text-[color:var(--content-tertiary)]`,children:a})]})]})})})}function O(){let{handleStar:e}=d();return(0,b.jsxs)(`div`,{className:`space-y-6`,children:[(0,b.jsx)(w,{}),(0,b.jsxs)(`div`,{className:`grid grid-cols-1 gap-4 md:grid-cols-2`,children:[(0,b.jsx)(E,{accentColor:`var(--content-emphasised)`,iconColor:`var(--surface-base)`,label:`Open Source`,icon:(0,b.jsx)(x,{size:20}),title:`Vellum is open source`,subtitle:`Read the source, star the repo, and contribute fixes and features on GitHub.`,benefits:[{icon:h,text:`Star the repo to follow updates`},{icon:a,text:`Open issues and report bugs`},{icon:y,text:`Contribute fixes and new features`}],primaryAction:{label:`Star on GitHub`,icon:(0,b.jsx)(h,{size:16}),onClick:e},secondaryAction:{label:`View source`,href:f}}),(0,b.jsx)(E,{accentColor:`#5865F2`,label:`Discord`,icon:(0,b.jsx)(p,{size:20}),title:`Join our community`,subtitle:`Talk to the team, share feedback, request features, and get answers faster.`,benefits:[{icon:c,text:`Talk directly with the team`},{icon:u,text:`Share feedback and request features`},{icon:g,text:`Get answers faster from the community`}],primaryAction:{label:`Join Discord`,icon:(0,b.jsx)(p,{size:16,style:{color:`currentColor`}}),onClick:m}})]}),(0,b.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,b.jsx)(`h2`,{className:`text-label-medium-default uppercase tracking-wider text-[color:var(--content-tertiary)]`,children:`More from Vellum`}),(0,b.jsxs)(`div`,{className:`grid grid-cols-1 gap-4 md:grid-cols-3`,children:[(0,b.jsx)(D,{icon:(0,b.jsx)(s,{size:20}),iconBg:`#22c55e`,title:`Community Hub`,description:`Showcases, guides, and projects shared by the community.`,href:v}),(0,b.jsx)(D,{icon:(0,b.jsx)(S,{size:20}),iconBg:`var(--content-default)`,iconColor:`var(--surface-base)`,title:`Follow on X`,description:`Product updates, releases, and behind-the-scenes.`,href:`https://x.com/vellum_ai`}),(0,b.jsx)(D,{icon:(0,b.jsx)(C,{size:20}),iconBg:`#ef4444`,title:`YouTube channel`,description:`Walkthroughs, tutorials, and product deep-dives.`,href:`https://www.youtube.com/@Vellum_AI`})]})]})]})}export{O as CommunityPage};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./button-Dy5001j6.js";import{t}from"./jsx-runtime-D3ZM-ToX.js";import{t as n}from"./loader-circle-XREx3i4W.js";import{t as r}from"./triangle-alert-
|
|
1
|
+
import{t as e}from"./button-Dy5001j6.js";import{t}from"./jsx-runtime-D3ZM-ToX.js";import{t as n}from"./loader-circle-XREx3i4W.js";import{t as r}from"./triangle-alert-Dq3v0coH.js";import{t as i}from"./modal-CoOkN7c0.js";var a=t(),o=`data-confirm-dialog-confirm`;function s({open:t,title:s,message:c,confirmLabel:l=`Confirm`,cancelLabel:u=`Cancel`,destructive:d=!1,isPending:f=!1,onConfirm:p,onCancel:m}){return(0,a.jsx)(i.Root,{open:t,onOpenChange:e=>{!e&&!f&&m()},children:(0,a.jsxs)(i.Content,{size:`sm`,hideCloseButton:!0,onOpenAutoFocus:e=>{let t=e.currentTarget?.querySelector(`[${o}]`);t&&(e.preventDefault(),t.focus())},onEscapeKeyDown:e=>{e.preventDefault(),e.stopPropagation(),f||m()},children:[(0,a.jsx)(i.Header,{children:(0,a.jsx)(i.Title,{icon:d?r:void 0,children:s})}),(0,a.jsx)(i.Body,{children:(0,a.jsx)(i.Description,{children:c})}),(0,a.jsxs)(i.Footer,{children:[(0,a.jsx)(e,{variant:`outlined`,onClick:m,disabled:f,children:u}),(0,a.jsx)(e,{variant:d?`danger`:`primary`,onClick:p,disabled:f,leftIcon:f?(0,a.jsx)(n,{className:`animate-spin`}):void 0,[o]:``,children:l})]})]})})}export{s as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-Dy5001j6.js";import{m as r,u as i}from"./chunk-5KNZJZUH-Bsoom5--.js";import{n as a}from"./QueryClientProvider-CMu7CkQU.js";import{t as o}from"./useMutation-CXGTrp4W.js";import{t as s}from"./jsx-runtime-D3ZM-ToX.js";import{t as c}from"./typography-DEI9Ra9z.js";import{t as l}from"./card-DRIctGVs.js";import{t as u}from"./link-2-BKL8QWRX.js";import{t as d}from"./loader-circle-XREx3i4W.js";import{t as f}from"./triangle-alert-
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-Dy5001j6.js";import{m as r,u as i}from"./chunk-5KNZJZUH-Bsoom5--.js";import{n as a}from"./QueryClientProvider-CMu7CkQU.js";import{t as o}from"./useMutation-CXGTrp4W.js";import{t as s}from"./jsx-runtime-D3ZM-ToX.js";import{t as c}from"./typography-DEI9Ra9z.js";import{t as l}from"./card-DRIctGVs.js";import{t as u}from"./link-2-BKL8QWRX.js";import{t as d}from"./loader-circle-XREx3i4W.js";import{t as f}from"./triangle-alert-Dq3v0coH.js";import{n as p}from"./toast-BcMdOTp1.js";import{d as m}from"./routes-CsoiCk2y.js";import{t as h}from"./use-active-assistant-id-CUKao_nq.js";import{n as g}from"./a2a-invite-C1xJNSGF.js";import{r as _}from"./contacts-gateway-BlLLBft6.js";var v=e(t(),1),y=s();function b(e){let t=e[0];return typeof t==`object`&&!!t&&t._id===`contactsGet`}function x(e,t){switch(e){case`expired`:case`not_found`:return`This invite link has expired or already been used.`;case`already_redeemed_by_other`:return`This invite has already been claimed by someone else.`;case`sender_not_found`:return`The sender's assistant could not be found.`;case`not_platform_managed`:return`A2A invite links are only supported for platform-hosted assistants.`;default:return t||`Something went wrong. Please try again.`}}function S(){return(0,y.jsx)(C,{assistantId:h()})}function C({assistantId:e}){let t=i(),s=a(),[h]=r(),S=(0,v.useMemo)(()=>g(h),[h]),C=o({mutationFn:()=>{if(!S)throw Error(`Invalid invite link`);return _(e,{senderAssistantId:S.senderAssistantId,token:S.token})},onSuccess:e=>{e.success&&(s.invalidateQueries({predicate:e=>b(e.queryKey)}),e.alreadyConnected?p(`Already connected`):p(`Connected!`),t(m.contacts.root))}}),w=(0,v.useCallback)(()=>{t(m.contacts.root)},[t]),T=(0,v.useCallback)(()=>{C.mutate()},[C]),E=(0,v.useMemo)(()=>C.isError?C.error instanceof Error?C.error.message:`Something went wrong. Please try again.`:C.data&&!C.data.success?x(C.data.errorCode,C.data.error):null,[C.isError,C.error,C.data]);return S?(0,y.jsx)(`div`,{className:`flex min-h-full items-center justify-center p-6`,children:(0,y.jsx)(l,{className:`w-full max-w-md`,children:(0,y.jsxs)(`div`,{className:`flex flex-col gap-4 p-6`,children:[(0,y.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,y.jsx)(u,{className:`h-6 w-6`,style:{color:`var(--content-secondary)`}}),(0,y.jsx)(c,{variant:`title-small`,children:`Connect assistants`})]}),(0,y.jsx)(c,{variant:`body-medium-lighter`,style:{color:`var(--content-secondary)`},children:`Accepting this link will create a trusted A2A connection between your assistant and the sender's.`}),E&&(0,y.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,y.jsx)(f,{className:`h-4 w-4 shrink-0`}),(0,y.jsx)(c,{variant:`body-small-default`,children:E})]}),(0,y.jsxs)(`div`,{className:`flex gap-2 pt-2`,children:[(0,y.jsx)(n,{variant:`primary`,onClick:T,disabled:C.isPending,children:C.isPending?(0,y.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,y.jsx)(d,{className:`h-4 w-4 animate-spin`}),`Connecting…`]}):`Connect`}),(0,y.jsx)(n,{variant:`outlined`,onClick:w,disabled:C.isPending,children:`Cancel`})]})]})})}):(0,y.jsx)(`div`,{className:`flex min-h-full items-center justify-center p-6`,children:(0,y.jsx)(l,{className:`w-full max-w-md`,children:(0,y.jsxs)(`div`,{className:`flex flex-col gap-4 p-6`,children:[(0,y.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,y.jsx)(f,{className:`h-6 w-6`,style:{color:`var(--system-negative-strong)`}}),(0,y.jsx)(c,{variant:`title-small`,children:`Invalid invite link`})]}),(0,y.jsx)(c,{variant:`body-medium-lighter`,style:{color:`var(--content-secondary)`},children:`The link you followed is missing required parameters and cannot be used.`}),(0,y.jsx)(`div`,{className:`flex gap-2 pt-2`,children:(0,y.jsx)(n,{variant:`primary`,onClick:w,children:`Go to Contacts`})})]})})})}export{S as ConnectPage};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./onboarding-store-CHsGFmyD.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{t as e}from"./jsx-runtime-D3ZM-ToX.js";import{t}from"./card-DRIctGVs.js";import{t as n}from"./checkbox-
|
|
1
|
+
import{t as e}from"./jsx-runtime-D3ZM-ToX.js";import{t}from"./card-DRIctGVs.js";import{t as n}from"./checkbox-D7Eg2K35.js";import{d as r,u as i}from"./routes-CsoiCk2y.js";import{t as a}from"./setting-row-D10FtQcP.js";var o=e(),s=[`[&_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(` `),c=`mb-2.5 ml-1 text-body-small-default font-medium uppercase tracking-wider text-[var(--content-tertiary)]`,l={privacy:{href:r.docs.legal.privacyPolicy,text:`Privacy and AI Data Sharing Policy`,aria:`I agree to the Privacy and AI Data Sharing Policy`},tos:{href:r.docs.legal.termsOfUse,text:`Terms of Service`,aria:`I agree to the Terms of Service`}};function u({kind:e,checked:t,onChange:r}){let a=l[e];return(0,o.jsx)(n,{checked:t,onCheckedChange:e=>r(e===!0),label:(0,o.jsxs)(`span`,{className:`text-body-medium-lighter text-[var(--content-default)]`,children:[`I agree to the`,` `,(0,o.jsx)(`a`,{href:i(a.href),target:`_blank`,rel:`noreferrer`,className:`underline`,children:a.text})]}),"aria-label":a.aria,className:s})}function d(){return(0,o.jsx)(`div`,{className:`h-px bg-[var(--surface-active)] dark:bg-[var(--surface-lift)]`})}function f({notes:e}){return!e||e.length===0?null:(0,o.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,o.jsx)(`p`,{className:`text-body-small-default font-medium text-[var(--content-secondary)]`,children:`What's changed`}),e.length===1?(0,o.jsx)(`p`,{className:`mt-1.5 text-body-medium-lighter text-[var(--content-default)]`,children:e[0]}):(0,o.jsx)(`ul`,{className:`mt-2 flex flex-col gap-1.5`,children:e.map(e=>(0,o.jsxs)(`li`,{className:`flex gap-2.5 text-body-medium-lighter text-[var(--content-default)]`,children:[(0,o.jsx)(`span`,{"aria-hidden":!0,className:`mt-[0.5em] h-1 w-1 flex-none rounded-full bg-[var(--content-tertiary)]`}),(0,o.jsx)(`span`,{children:e})]},e))})]})}function p({electron:e,showAnalytics:n=!0,showDiagnostics:r=!0,shareAnalytics:i,shareDiagnostics:s,onShareAnalyticsChange:l,onShareDiagnosticsChange:u,className:f,style:p}){return(0,o.jsxs)(`section`,{className:f,style:p,children:[(0,o.jsx)(`p`,{className:c,children:`Privacy preferences`}),(0,o.jsx)(t,{padding:e?`sm`:`md`,className:`w-full`,children:(0,o.jsxs)(`div`,{className:`flex flex-col ${e?`gap-3`:`gap-4`}`,children:[n&&(0,o.jsx)(a,{label:`Share Analytics`,helperText:`Send aggregated product usage data`,checked:i,onChange:l}),n&&r&&(0,o.jsx)(d,{}),r&&(0,o.jsx)(a,{label:`Share Diagnostics`,helperText:`Send crash reports, conversation traces, and session replay data`,checked:s,onChange:u})]})})]})}function m({electron:e,showPrivacy:n=!0,showTos:r=!0,privacyConsent:i,tosAccepted:a,onPrivacyChange:s,onTosChange:l,privacyNotes:d,tosNotes:p,className:m,style:h}){return(0,o.jsxs)(`section`,{className:m,style:h,children:[(0,o.jsx)(`p`,{className:c,children:`Agreements`}),(0,o.jsx)(t,{padding:e?`sm`:`md`,className:`w-full`,children:(0,o.jsxs)(`div`,{className:`flex flex-col ${e?`gap-3.5`:`gap-4`}`,children:[n&&(0,o.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,o.jsx)(f,{notes:d}),(0,o.jsx)(u,{kind:`privacy`,checked:i,onChange:s})]}),r&&(0,o.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,o.jsx)(f,{notes:p}),(0,o.jsx)(u,{kind:`tos`,checked:a,onChange:l})]})]})})]})}export{p as n,m as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e,r as t,t as n}from"./api-errors-
|
|
1
|
+
import{n as e,r as t,t as n}from"./api-errors-DHvv5HEN.js";import{t as r}from"./client.gen-DPP573hb.js";import{c as i,s as a,u as o}from"./sdk.gen-CtusrdLv.js";async function s(r,i){let{data:a,error:s,response:c}=await o({path:{assistant_id:r},body:i,throwOnError:!1});if(e(c,s,`Failed to save contact`),!c.ok||!a?.contact)throw new n(c.status,t(s,c,`Failed to save contact`));return a.contact}async function c(r,a){let{error:o,response:s}=await i({path:{assistant_id:r,contact_id:a},throwOnError:!1});if(e(s,o,`Failed to delete contact`),!s.ok&&s.status!==204)throw new n(s.status,t(o,s,`Failed to delete contact`))}async function l(r,i){let{error:o,response:s}=await a({path:{assistant_id:r,channel_id:i},throwOnError:!1});if(e(s,o,`Failed to verify channel`),!s.ok)throw new n(s.status,t(o,s,`Failed to verify channel`))}async function u(e,t,r){let i=(await s(e,{id:t.id,displayName:t.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 n(409,`That account is already linked to another contact.`);if(i.status===`blocked`)throw new n(409,`That account is blocked for this contact. Unblock it before linking.`);await l(e,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(e(c,s,`Failed to redeem A2A invite`),!c.ok)throw new n(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{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-Dy5001j6.js";import{m as r,n as i,u as a}from"./chunk-5KNZJZUH-Bsoom5--.js";import{n as o}from"./QueryClientProvider-CMu7CkQU.js";import{t as s}from"./useQuery-Bz-fbQ-m.js";import{t as c}from"./useMutation-CXGTrp4W.js";import{t as l}from"./jsx-runtime-D3ZM-ToX.js";import{t as u}from"./typography-DEI9Ra9z.js";import{t as d}from"./card-DRIctGVs.js";import{t as f}from"./createLucideIcon-CAM1RhH8.js";import{t as p}from"./arrow-left-C2ylPLHq.js";import{t as m}from"./arrow-right-B-jRJNWP.js";import{a as h,b as g,c as _,d as v,l as y,x as b,y as x}from"./use-save-twilio-credentials-c9xG9RPK.js";import{t as S}from"./circle-check-big-DSsDH5_6.js";import{t as C}from"./link-2-BKL8QWRX.js";import{t as w}from"./loader-circle-XREx3i4W.js";import{t as T}from"./mail-CMdPNysl.js";import{t as E}from"./message-square-CQGiY4zk.js";import{t as D}from"./pencil-D38YNe2r.js";import{t as O}from"./plus-jH3kAliM.js";import{t as k}from"./search-BVW-n8to.js";import{t as A}from"./send-Q71Exj3z.js";import{t as j}from"./user-plus-oiIr9ey8.js";import{t as M}from"./tag-NXcyiTkK.js";import{t as N}from"./input-hw3el2GJ.js";import{t as P}from"./modal-BR4CUFBd.js";import{t as F}from"./panel-item-CrtoJCrd.js";import{n as ee}from"./toast-LgLp4obE.js";import{t as I}from"./confirm-dialog-UYFm4osC.js";import{C as te}from"./sdk.gen-BHZ0fJla.js";import{Ht as ne,S as L,Ut as re,a as ie,b as ae,x as oe}from"./react-query.gen-C5c1Acuq.js";import{t as se}from"./assistant-identity-store-DIyVo8LV.js";import{u as ce}from"./routes-D9sNqB_o.js";import{n as R}from"./conversation-navigation-DsN0hcpL.js";import{t as le}from"./assistant-feature-flag-store-CAdgpPiS.js";import{t as z}from"./use-active-assistant-id-CldxA_-M.js";import{i as ue,l as de,n as fe,r as B,t as pe}from"./use-invite-link-dialog-CPPOduk8.js";import{t as V}from"./detail-card-Du8OuE3q.js";import{n as me,t as he}from"./mobile-sidebar-drawer-DtKU2vlu.js";import{t as H}from"./mutation-error-DEknRDAQ.js";import{a as ge,i as _e,n as U,t as ve}from"./contacts-gateway-B6OrAmU3.js";var ye=f(`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`}]]),W=f(`ellipsis-vertical`,[[`circle`,{cx:`12`,cy:`12`,r:`1`,key:`41hilf`}],[`circle`,{cx:`12`,cy:`5`,r:`1`,key:`gxeob9`}],[`circle`,{cx:`12`,cy:`19`,r:`1`,key:`lyex9k`}]]),be=f(`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`}]]),G=e(t(),1),xe=new Set([`slack`]);function K(e){return e.status===`verified`||e.status===`active`&&e.verifiedAt!=null}var q=l();function Se({channels:e,pendingChannelKey:t=null,onConnect:n,onDisconnect:r}){let[i,a]=(0,G.useState)(null);return(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`div`,{className:`flex flex-col`,children:e.map((e,i)=>(0,q.jsxs)(`div`,{children:[i>0?(0,q.jsx)(`div`,{className:`border-t`,style:{borderColor:`var(--border-base)`}}):null,(0,q.jsx)(J,{channel:e,pending:t===e.key,onConnect:n?()=>n(e.key):void 0,onDisconnect:r?()=>a(e.key):void 0})]},e.key))}),(0,q.jsx)(I,{open:i!==null,title:`Disconnect ${i?v(i):``}?`,message:`This clears the stored credentials for this channel. You can reconnect later.`,confirmLabel:`Disconnect`,destructive:!0,onConfirm:()=>{i&&r&&r(i),a(null)},onCancel:()=>a(null)})]})}function J({channel:e,pending:t,onConnect:r,onDisconnect:i}){let a=e.status===`ready`;return(0,q.jsxs)(`div`,{className:`flex items-center gap-3 py-4`,children:[(0,q.jsx)(y,{channelId:e.key,className:`h-4 w-4 shrink-0 text-[color:var(--content-secondary)]`}),(0,q.jsx)(`span`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:v(e.key)}),a&&e.address?(0,q.jsx)(`span`,{className:`truncate text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:e.address}):null,(0,q.jsx)(`div`,{className:`ml-auto flex shrink-0 items-center gap-2`,children:a?(0,q.jsxs)(q.Fragment,{children:[(0,q.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,q.jsx)(S,{className:`h-3 w-3`}),`Connected`]}),(0,q.jsx)(n,{variant:`danger`,onClick:i,disabled:!i||t,children:t?`Disconnecting…`:`Disconnect`})]}):(0,q.jsx)(n,{variant:`outlined`,onClick:r,disabled:!r||t,children:`Connect`})})]})}function Y({role:e,contactType:t}){let{label:n,tone:r}=X(e,t);return(0,q.jsx)(M,{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 Ce({assistantName:e,...t}){let n=de(e);return(0,q.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,q.jsx)(V,{title:`${n} (Your Assistant)`,accessory:(0,q.jsx)(Y,{role:`assistant`}),compactAccessory:!0}),(0,q.jsx)(V,{title:`Channels`,subtitle:`Where ${n} can be reached.`,children:(0,q.jsx)(Se,{...t})})]})}var Z=new Set([`telegram`,`phone`,`vellum`,`whatsapp`,`slack`,`email`,`platform`,`a2a`]);function we(e){return Z.has(e)}function Te(e,t){return e.id===`a2a`?t&&t.status!==`revoked`?{kind:`connected`}:{kind:`setup`}:t!=null&&K(t)?{kind:`verified`}:t?.status===`blocked`?{kind:`none`}:t&&t.status!==`revoked`?{kind:`unverified`}:{kind:`setup`}}function Ee(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||we(e.type)&&(r.push({id:e.type,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 Q({name:e,className:t,style:n}){switch(e){case`bot`:return(0,q.jsx)(b,{className:t,style:n});case`hash`:return(0,q.jsx)(g,{className:t,style:n});case`send`:return(0,q.jsx)(A,{className:t,style:n});case`phone`:return(0,q.jsx)(x,{className:t,style:n});case`mail`:return(0,q.jsx)(T,{className:t,style:n});case`message-square`:return(0,q.jsx)(E,{className:t,style:n});default:return(0,q.jsx)(ye,{className:t,style:n})}}function $({contactChannels:e,availableChannels:t,a2aEnabled:n,setupLabel:r=`Invite`,verifyLoading:i,verifySubject:a=`self`,onSetupChannel:o,onVerifyChannel:s,onRevokeChannel:c,onLinkAccount:l}){let[u,d]=(0,G.useState)(null),[f,p]=(0,G.useState)(null),m=new Map;for(let t of e)t.status!==`revoked`&&(m.has(t.type)||m.set(t.type,t));return(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`div`,{className:`flex flex-col`,children:Ee(t,e,n).map((e,t)=>{let n=m.get(e.id);return(0,q.jsxs)(`div`,{children:[t>0&&(0,q.jsx)(`div`,{className:`border-t`,style:{borderColor:`var(--border-base)`}}),(0,q.jsx)(De,{info:e,existing:n,setupLabel:r,verifyLoading:i,onSetup:o?()=>o(e.id):void 0,onVerify:s&&e.supportsVerification?()=>d(e):void 0,onRevoke:c&&n?()=>p({channelId:n.id,channel:e}):void 0,onLinkAccount:l&&xe.has(e.id)?()=>l(e.id):void 0})]},e.id)})}),u&&(0,q.jsx)(I,{open:!0,title:`Verify ${u.label}`,message:a===`contact`?`This will mark this contact's ${u.label} channel as verified. Your assistant will recognize them when they reach out from it.`:`This will mark your ${u.label} channel as verified. Your assistant will recognize you when you reach out from it.`,confirmLabel:`Verify`,onConfirm:()=>{u&&(s?.(u.id),d(null))},onCancel:()=>d(null)}),f&&(0,q.jsx)(I,{open:!0,title:`Revoke ${f.channel.label}`,message:`This will disconnect the verified channel. The contact will need to re-verify to use this channel again.`,confirmLabel:`Revoke`,destructive:!0,onConfirm:()=>{c?.(f.channelId,f.channel.id),p(null)},onCancel:()=>p(null)})]})}function De({info:e,existing:t,setupLabel:r,verifyLoading:i,onSetup:a,onVerify:o,onRevoke:s,onLinkAccount:c}){let l=Te(e,t);return(0,q.jsxs)(`div`,{className:`flex items-center gap-3 py-4`,children:[(0,q.jsx)(Q,{name:e.icon,className:`h-4 w-4 shrink-0`,style:{color:`var(--content-secondary)`}}),(0,q.jsx)(`span`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:e.label}),t?.address?(0,q.jsx)(`span`,{className:`truncate text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:t.address}):null,(0,q.jsx)(`div`,{className:`ml-auto flex shrink-0 items-center gap-2`,children:l.kind===`connected`?(0,q.jsxs)(q.Fragment,{children:[(0,q.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,q.jsx)(S,{className:`h-3 w-3`}),`Connected`]}),s?(0,q.jsx)(n,{variant:`danger`,onClick:s,children:`Revoke`}):null]}):l.kind===`verified`?(0,q.jsxs)(q.Fragment,{children:[(0,q.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,q.jsx)(S,{className:`h-3 w-3`}),`Verified`]}),s?(0,q.jsx)(n,{variant:`danger`,onClick:s,children:`Revoke`}):null]}):l.kind===`unverified`?(0,q.jsx)(n,{variant:`outlined`,onClick:o,disabled:!o||i,children:i?`Verifying…`:`Verify`}):l.kind===`setup`?e.id===`a2a`?null:(0,q.jsxs)(q.Fragment,{children:[c?(0,q.jsxs)(n,{onClick:c,children:[(0,q.jsx)(C,{className:`h-3.5 w-3.5`}),`Link account`]}):null,(0,q.jsx)(n,{variant:`outlined`,onClick:a,disabled:!a,children:r})]}):null})]})}function Oe(e){return(0,q.jsx)(ke,{...e},e.contact.id)}function ke({contact:e,savePending:t,deletePending:r,verifyPending:i,mergePending:a=!1,canMerge:o=!1,availableChannels:s,a2aEnabled:c,onSave:l,onDelete:u,onMerge:d,onSetupChannel:f,onVerifyChannel:p,onRevokeChannel:m,onLinkAccount:h}){let g=e.displayName===`New Contact`,[_,v]=(0,G.useState)(g?``:e.displayName),[y,b]=(0,G.useState)(e.notes??``),[x,S]=(0,G.useState)(!1),C=_.trim(),w=y.trim(),T=g?``:e.displayName,E=e.notes??``,D=C!==T||w!==E,O=C.length>0&&D&&!t&&!r,k=g&&e.channels.length===0&&e.interactionCount===0,A=C||e.displayName,j=`${e.interactionCount} interaction${e.interactionCount===1?``:`s`}`;return(0,q.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,q.jsx)(V,{title:A,accessory:(0,q.jsx)(Y,{role:e.role,contactType:e.contactType}),compactAccessory:!0,subtitle:j,children:(0,q.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,q.jsx)(N,{label:`Name`,type:`text`,value:_,onChange:e=>v(e.target.value),placeholder:`Give this human a name`,autoFocus:g,disabled:t||r,fullWidth:!0}),(0,q.jsx)(N,{label:`Notes`,type:`text`,value:y,onChange:e=>b(e.target.value),placeholder:`Optional notes about the human which AI will take into account`,disabled:t||r,fullWidth:!0}),(0,q.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,q.jsx)(n,{type:`button`,onClick:()=>l({displayName:C,notes:w}),disabled:!O,children:t?`Saving…`:`Save`}),d?(0,q.jsx)(n,{type:`button`,variant:`outlined`,onClick:d,disabled:!o||k||D||a||t||r,title:o?k?`Save this contact before merging`:D?`Save your changes before merging`:void 0:`No other contacts available to merge`,children:a?`Merging…`:`Merge…`}):null,(0,q.jsx)(n,{type:`button`,variant:`danger`,onClick:()=>{k?u():S(!0)},disabled:r,children:r?`Deleting…`:`Delete Contact`})]})]})}),(0,q.jsx)(V,{title:`Linked accounts`,subtitle:`Where the assistant recognizes this contact. Link accounts you know, invite the ones you don't.`,children:(0,q.jsx)($,{contactChannels:e.channels,availableChannels:s,a2aEnabled:c,verifyLoading:i,verifySubject:`contact`,onSetupChannel:f,onVerifyChannel:p,onRevokeChannel:m,onLinkAccount:h})}),(0,q.jsx)(I,{open:x,title:`Delete ${e.displayName}?`,message:`This will permanently delete this contact and all their channels. This action cannot be undone.`,confirmLabel:`Delete`,destructive:!0,onConfirm:()=>{S(!1),u()},onCancel:()=>S(!1)})]})}function Ae(e){return(0,q.jsx)(je,{...e},`${e.survivor.id}:${e.open?`open`:`closed`}`)}function je({open:e,survivor:t,candidates:r,pending:i,errorMessage:a,onMerge:o,onClose:s}){let[c,l]=(0,G.useState)(``),[d,f]=(0,G.useState)(null);(0,G.useEffect)(()=>{d&&!r.some(e=>e.id===d)&&f(null)},[r,d]);let m=(0,G.useMemo)(()=>{let e=c.trim().toLowerCase();return e?r.filter(t=>t.displayName.toLowerCase().includes(e)):r},[r,c]),h=d?r.find(e=>e.id===d)??null:null,g=Ie(t);return(0,q.jsx)(P.Root,{open:e,onOpenChange:e=>{!e&&!i&&s()},children:(0,q.jsxs)(P.Content,{size:`md`,children:[(0,q.jsxs)(P.Header,{children:[(0,q.jsx)(P.Title,{icon:be,children:h?`Merge "${h.displayName}" into ${g}?`:`Merge another contact into ${g}`}),(0,q.jsx)(P.Description,{children:h?`Channels and notes from the merged contact will move over. The merged contact will be deleted.`:`The contact you pick will be deleted. Its channels and notes will be added to this one.`})]}),(0,q.jsxs)(P.Body,{className:`flex flex-col gap-3`,children:[h?(0,q.jsx)(Pe,{survivor:t,donor:h}):r.length===0?(0,q.jsx)(Fe,{}):(0,q.jsx)(Me,{search:c,onSearch:l,candidates:m,onPick:f}),a?(0,q.jsx)(u,{as:`p`,variant:`body-small-default`,className:`text-(--system-negative-strong)`,role:`alert`,children:a}):null]}),(0,q.jsx)(P.Footer,{children:h?(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(n,{variant:`outlined`,onClick:()=>f(null),disabled:i,leftIcon:(0,q.jsx)(p,{"aria-hidden":!0}),children:`Back`}),(0,q.jsx)(n,{variant:`danger`,onClick:()=>o(h.id),disabled:i,children:i?`Merging…`:`Merge`})]}):(0,q.jsx)(n,{variant:`outlined`,onClick:s,disabled:i,children:`Cancel`})})]})})}function Me({search:e,onSearch:t,candidates:n,onPick:r}){return(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(N,{type:`text`,value:e,onChange:e=>t(e.target.value),placeholder:`Search contacts`,leftIcon:(0,q.jsx)(k,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),fullWidth:!0}),(0,q.jsx)(`div`,{className:`flex max-h-[320px] min-h-[120px] flex-col gap-1 overflow-y-auto`,role:`listbox`,"aria-label":`Select a contact to merge`,children:n.length===0?(0,q.jsx)(u,{as:`p`,variant:`body-small-default`,className:`px-3 py-4 text-center text-(--content-tertiary)`,children:`No matching contacts`}):n.map(e=>(0,q.jsx)(Ne,{contact:e,onPick:()=>r(e.id)},e.id))})]})}function Ne({contact:e,onPick:t}){let n=Be(e).join(` | `)||void 0;return(0,q.jsx)(F,{asChild:!0,label:``,children:(0,q.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,q.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,q.jsx)(`span`,{className:`truncate text-body-medium-default`,children:e.displayName}),n?(0,q.jsx)(`span`,{className:`truncate text-body-small-default text-(--content-tertiary)`,children:n}):null]})})})}function Pe({survivor:e,donor:t}){let n=Ie(e),{moved:r,duplicates:i}=ze(e,t);return(0,q.jsxs)(`ul`,{className:`flex flex-col gap-2 text-body-medium-lighter text-(--content-secondary)`,children:[(0,q.jsxs)(`li`,{children:[(0,q.jsxs)(`span`,{className:`text-(--content-default)`,children:[`“`,t.displayName,`”`]}),` `,`will be deleted.`]}),(0,q.jsx)(`li`,{children:r.length===0?`No new channels will move to ${n}.`:`${r.length} channel${r.length===1?``:`s`} will move to ${n}: ${r.map(e=>Re(e.type)).join(`, `)}.`}),i.length>0?(0,q.jsxs)(`li`,{className:`text-(--content-tertiary)`,children:[i.length,` duplicate channel`,i.length===1?``:`s`,` already on `,n,` `,`(skipped).`]}):null,t.notes?(0,q.jsx)(`li`,{children:`Notes from the merged contact will be appended.`}):null,(0,q.jsx)(`li`,{className:`text-(--content-tertiary)`,children:`This cannot be undone.`})]})}function Fe(){return(0,q.jsx)(u,{as:`p`,variant:`body-medium-lighter`,className:`px-3 py-6 text-center text-(--content-tertiary)`,children:`No other contacts available to merge.`})}function Ie(e){return e.role===`guardian`?!e.displayName||e.displayName.startsWith(`vellum-principal-`)?`you`:`${e.displayName} (you)`:e.displayName||`this contact`}var Le={slack:`Slack`,telegram:`Telegram`,phone:`Phone`,email:`Email`,whatsapp:`WhatsApp`};function Re(e){return Le[e.toLowerCase()]??e}function ze(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 Be(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(Le[e]??r.type))}return n}function Ve({loading:e,guardian:t,assistantName:r,regularContacts:i,selection:a,onSelect:o,onAddContact:s,addingContact:c=!1}){let[l,u]=(0,G.useState)(``),f=l.trim()?i.filter(e=>e.displayName.toLowerCase().includes(l.trim().toLowerCase())):i;return(0,q.jsx)(d.Root,{className:`flex h-full flex-col overflow-hidden`,children:(0,q.jsxs)(d.Body,{className:`flex min-h-0 min-w-0 flex-1 flex-col gap-4`,children:[(0,q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,q.jsx)(`h2`,{className:`text-title-medium`,style:{color:`var(--content-default)`},children:`Entries`}),(0,q.jsx)(n,{type:`button`,variant:`ghost`,iconOnly:c?(0,q.jsx)(w,{className:`animate-spin`,"aria-hidden":!0}):(0,q.jsx)(O,{"aria-hidden":!0}),onClick:s,disabled:c,"aria-label":`Add contact`,tintColor:`var(--content-secondary)`})]}),(0,q.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[t?(0,q.jsx)(He,{name:t.displayName?`${t.displayName} (You)`:`You`,role:t.role,channelTypes:t.channelTypes,selected:a?.kind===`contact`&&a.contactId===t.id,onClick:()=>o({kind:`contact`,contactId:t.id}),trailingIcon:`pencil`}):null,(0,q.jsx)(He,{name:r?.trim()||`Your Assistant`,role:`assistant`,selected:a?.kind===`assistant`,onClick:()=>o({kind:`assistant`}),trailingIcon:`more`})]}),(0,q.jsx)(`div`,{className:`border-t`,style:{borderColor:`var(--border-base)`}}),i.length>0?(0,q.jsx)(N,{type:`text`,value:l,onChange:e=>u(e.target.value),placeholder:`Search Contacts`,leftIcon:(0,q.jsx)(k,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),fullWidth:!0}):null,i.length>0?(0,q.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto flex flex-col gap-1`,children:[f.map(e=>(0,q.jsx)(He,{name:e.displayName,role:e.role,contactType:e.contactType,channelTypes:e.channelTypes,verified:e.verified,selected:a?.kind===`contact`&&a.contactId===e.id,onClick:()=>o({kind:`contact`,contactId:e.id}),trailingIcon:`more`},e.id)),f.length===0?(0,q.jsx)(`p`,{className:`px-3 py-4 text-center text-body-small-default`,style:{color:`var(--content-tertiary)`},children:`No matching contacts`}):null]}):e?null:(0,q.jsx)(n,{type:`button`,variant:`ghost`,onClick:s,disabled:c,tintColor:`var(--primary-base)`,leftIcon:c?(0,q.jsx)(w,{className:`animate-spin`,"aria-hidden":!0}):(0,q.jsx)(j,{"aria-hidden":!0}),children:`Add Contact`})]})})}function He({name:e,role:t,contactType:n,channelTypes:r,selected:i,onClick:a,trailingIcon:o,verified:s}){let c=r&&r.length>0?r.join(` | `):void 0;return(0,q.jsx)(F,{asChild:!0,active:i,label:``,trailingAction:o===`pencil`?(0,q.jsx)(D,{className:`h-3.5 w-3.5`,"aria-hidden":!0}):o===`more`?(0,q.jsx)(W,{className:`h-3.5 w-3.5`,"aria-hidden":!0}):void 0,children:(0,q.jsxs)(`button`,{type:`button`,onClick:a,className:`flex h-auto w-full items-center gap-2 rounded-[6px] px-[8px] py-2 text-left`,children:[(0,q.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,q.jsx)(`span`,{className:`truncate text-body-medium-default`,children:e}),c?(0,q.jsx)(`span`,{className:`truncate text-body-small-default`,style:{color:`var(--content-tertiary)`},children:c}):null]}),(0,q.jsxs)(`span`,{className:`flex shrink-0 items-center gap-1`,children:[s===void 0?null:(0,q.jsx)(M,{tone:s?`positive`:`neutral`,children:s?`Verified`:`Unverified`}),(0,q.jsx)(Y,{role:t,contactType:n})]})]})})}function Ue(e){return(0,q.jsx)(We,{...e},e.contact.id)}function We({contact:e,savePending:t,verifyPending:r,mergePending:i=!1,canMerge:a=!1,availableChannels:o,a2aEnabled:s,onSave:c,onMerge:l,onSetupChannel:u,onVerifyChannel:d,onRevokeChannel:f,onGenerateInviteLink:p}){let m=e.displayName.startsWith(`vellum-principal-`),h=m?``:e.displayName,[g,_]=(0,G.useState)(h),[v,y]=(0,G.useState)(e.notes??``),b=g.trim(),x=v.trim(),S=b!==h.trim()||x!==(e.notes??``).trim(),C=S&&!t,w=`${e.interactionCount} interaction${e.interactionCount===1?``:`s`}`;return(0,q.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,q.jsx)(V,{title:m?`You`:`${e.displayName} (You)`,accessory:(0,q.jsx)(Y,{role:`guardian`}),compactAccessory:!0,subtitle:w,children:(0,q.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,q.jsx)(N,{label:`Name`,type:`text`,value:g,onChange:e=>_(e.target.value),placeholder:`Your name`,disabled:t,fullWidth:!0}),(0,q.jsx)(N,{label:`Notes`,type:`text`,value:v,onChange:e=>y(e.target.value),placeholder:`Notes about yourself which AI will take into account`,disabled:t,fullWidth:!0}),(0,q.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,q.jsx)(n,{variant:`primary`,onClick:()=>c({displayName:b||e.displayName,notes:x}),disabled:!C,children:t?`Saving…`:`Save`}),l?(0,q.jsx)(n,{variant:`outlined`,onClick:l,disabled:!a||S||i||t,title:a?S?`Save your changes before merging`:void 0:`No other contacts available to merge`,children:i?`Merging…`:`Merge…`}):null]})]})}),(0,q.jsx)(V,{title:`Channels`,subtitle:`Once verified, your assistant will recognize you when you message from these channels.`,children:(0,q.jsx)($,{contactChannels:e.channels,availableChannels:o,a2aEnabled:s,setupLabel:`Verify me`,verifyLoading:r,onSetupChannel:u,onVerifyChannel:d,onRevokeChannel:f})}),p?(0,q.jsx)(B,{onClick:p}):null]})}function Ge(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 Ke(e){let t=e.trim().split(/\s+/).filter(Boolean);return`${t[0]?.[0]??`?`}${t.length>1?t[t.length-1]?.[0]??``:``}`.toUpperCase()}function qe({open:e,channelLabel:t,contactName:r,accounts:i,loading:a,errorMessage:o,pendingAccountId:s,onPick:c,onClose:l,onInviteInstead:u}){let[d,f]=(0,G.useState)(``);(0,G.useEffect)(()=>{e&&f(``)},[e]);let p=(0,G.useMemo)(()=>Ge(i??[],d),[i,d]),h=s!=null;return(0,q.jsx)(P.Root,{open:e,onOpenChange:e=>!e&&l(),children:(0,q.jsxs)(P.Content,{size:`sm`,children:[(0,q.jsxs)(P.Header,{children:[(0,q.jsxs)(P.Title,{children:[`Link `,t,` account`]}),(0,q.jsxs)(P.Description,{children:[`Search your `,t,` workspace and pick`,` `,(0,q.jsx)(`span`,{className:`text-[color:var(--content-default)]`,children:r}),`’s account.`]})]}),(0,q.jsxs)(P.Body,{className:`flex flex-col gap-3`,children:[(0,q.jsx)(N,{type:`search`,value:d,onChange:e=>f(e.target.value),placeholder:`Search by name or @handle`,"aria-label":`Search ${t} workspace accounts`,leftIcon:(0,q.jsx)(k,{className:`h-4 w-4`}),fullWidth:!0}),o?(0,q.jsx)(`p`,{className:`text-body-small-default text-[color:var(--content-negative)]`,children:o}):null,(0,q.jsx)(`div`,{className:`max-h-80 overflow-y-auto`,children:a?(0,q.jsx)(`p`,{className:`py-4 text-center text-body-small-default text-[color:var(--content-tertiary)]`,children:`Loading workspace members…`}):p.length===0?(0,q.jsx)(`p`,{className:`py-4 text-center text-body-small-default text-[color:var(--content-tertiary)]`,children:(i?.length??0)===0?`No workspace members found.`:`No members match.`}):(0,q.jsx)(`ul`,{className:`flex flex-col`,children:p.map(e=>(0,q.jsx)(`li`,{children:(0,q.jsxs)(`button`,{type:`button`,onClick:()=>c(e),disabled:h,className:`flex w-full cursor-pointer items-center gap-3 rounded-md px-2 py-2 text-left transition-colors hover:bg-[var(--surface-overlay)] disabled:cursor-not-allowed disabled:opacity-60`,children:[e.imageUrl?(0,q.jsx)(`img`,{src:e.imageUrl,alt:``,className:`h-8 w-8 shrink-0 rounded-full`}):(0,q.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:Ke(e.displayName)}),(0,q.jsxs)(`span`,{className:`flex min-w-0 flex-col`,children:[(0,q.jsx)(`span`,{className:`truncate text-body-medium-default text-[color:var(--content-default)]`,children:e.displayName}),(0,q.jsxs)(`span`,{className:`truncate text-body-small-default text-[color:var(--content-tertiary)]`,children:[`@`,e.username]})]}),s===e.id?(0,q.jsx)(`span`,{className:`ml-auto shrink-0 text-body-small-default text-[color:var(--content-tertiary)]`,children:`Linking…`}):null]})},e.id))})})]}),(0,q.jsxs)(P.Footer,{className:`items-center justify-between gap-3 border-t border-[var(--border-base)]`,children:[(0,q.jsxs)(`p`,{className:`text-body-small-default text-[color:var(--content-tertiary)]`,children:[`Picking marks this account as`,` `,(0,q.jsx)(`span`,{className:`text-[color:var(--content-secondary)]`,children:`guardian-linked`}),` `,`— you vouch for the identity, no handshake needed.`]}),u?(0,q.jsxs)(n,{variant:`link`,className:`shrink-0`,onClick:u,disabled:h,children:[`Or send an invite instead`,(0,q.jsx)(m,{className:`h-3.5 w-3.5`})]}):null]})]})})}function Je({assistantId:e,channelType:t,contact:n,onLinked:r}){let[i,a]=(0,G.useState)(!1),o=c({mutationFn:n=>U(e,n.contact,{type:t,address:n.account.id}),onSuccess:(e,t)=>{a(!1),ee.success(`Linked as @${t.account.username}`),r()}}),s=(0,G.useCallback)(()=>{o.reset(),a(!0)},[o]),l=(0,G.useCallback)(()=>{o.isPending||(o.reset(),a(!1))},[o]),u=(0,G.useCallback)(e=>{!n||o.isPending||o.mutate({contact:n,account:e})},[n,o]);return{channelType:t,dialogOpen:i,open:s,close:l,linkErrorMessage:o.error instanceof Error?o.error.message:o.error?`Failed to link account`:null,pendingAccountId:o.isPending?o.variables.account.id:null,pick:u}}var Ye=[{id:`slack`,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`,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`,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?`}}],Xe=[];function Ze({assistantId:e,onStartSetupConversation:t}){let n=le.use.a2aChannel(),a=se.use.name(),l=o(),[u]=r(),d=u.get(`setup`),f=d&&_(d)?d:null,[p,m]=(0,G.useState)({kind:`assistant`}),g=pe(e),[v,y]=(0,G.useState)(!1),[b,x]=(0,G.useState)(!1),S=de(a),C=(0,G.useMemo)(()=>({path:{assistant_id:e}}),[e]),w=oe(C),T=s({...ae(C),enabled:!!e,select:e=>e.contacts}),E=fe({assistantId:e,onStartSetupConversation:t}),D=s({...ie({path:{assistant_id:e}}),enabled:!!e,queryFn:async({signal:t})=>{let{data:n,error:r,response:i}=await te({path:{assistant_id:e},signal:t,throwOnError:!1});if(!i||i.status===404)return{channels:Ye};if(!i.ok)throw r??Error(`Failed to fetch channel availability`);return n},select:e=>e.channels}).data??Xe,O=T.data,k=(0,G.useMemo)(()=>O?.find(e=>e.role===`guardian`)??null,[O]),A=(0,G.useMemo)(()=>O?.filter(e=>e.role!==`guardian`)??[],[O]),j=(0,G.useMemo)(()=>p.kind===`contact`?O?.find(e=>e.id===p.contactId)??null:null,[O,p]),M=(0,G.useMemo)(()=>!O||!j?[]:O.filter(e=>e.id!==j.id&&e.role!==`guardian`),[O,j]),N=M.length>0,P=(0,G.useRef)(!!f);(0,G.useEffect)(()=>{P.current||k&&(P.current=!0,m({kind:`contact`,contactId:k.id}))},[k]);let F=(0,G.useCallback)(()=>l.invalidateQueries({queryKey:w}),[l,w]),I=c({mutationFn:()=>_e(e,{displayName:`New Contact`}),onMutate:async()=>{await l.cancelQueries({queryKey:w})},onSuccess:e=>{L(l,C,t=>t?{...t,contacts:[...t.contacts,e]}:void 0),m({kind:`contact`,contactId:e.id})},onError:H(`Failed to create contact`),onSettled:()=>F()}),R=c({mutationFn:t=>ve(e,t),onSuccess:(e,t)=>{L(l,C,e=>e?{...e,contacts:e.contacts.filter(e=>e.id!==t)}:void 0),m({kind:`assistant`})},onError:H(`Failed to delete contact`),onSettled:()=>F()}),z=c({mutationFn:({contactId:t,patch:n})=>_e(e,{id:t,displayName:n.displayName,notes:n.notes}),onSuccess:e=>{L(l,C,t=>t?{...t,contacts:t.contacts.map(t=>t.id===e.id?e:t)}:void 0)},onError:H(`Failed to save contact`),onSettled:()=>F()}),B=re({onMutate:async()=>{await l.cancelQueries({queryKey:w})},onSuccess:(e,t)=>{let n=e.contact,r=t.body.mergeId;n&&(L(l,C,e=>e?{...e,contacts:e.contacts.filter(e=>e.id!==r).map(e=>e.id===n.id?n:e)}:void 0),m({kind:`contact`,contactId:n.id})),x(!1),ee.success(`Contacts merged`)},onSettled:()=>F()}),V=(0,G.useCallback)(e=>{m(e),y(!1),x(!1),B.reset()},[B]),U=(0,G.useCallback)(()=>{B.reset(),x(!0)},[B]),ye=(0,G.useCallback)(()=>{B.isPending||(x(!1),B.reset())},[B]),W=ne({onSuccess:()=>F()}),be=(0,G.useCallback)((t,n)=>{W.mutate({path:{assistant_id:e,contactChannelId:t},body:{status:`revoked`}})},[W,e]),xe=(0,G.useCallback)(()=>{I.isPending||I.mutate()},[I]),K=(0,G.useCallback)(e=>{if(!t)return;let n=D.find(t=>t.id===e)?.setupMessages.contact;n&&t(n)},[D,t]),Se=(0,G.useCallback)(e=>{if(!t)return;let n=D.find(t=>t.id===e)?.setupMessages.guardian;n&&t(n)},[D,t]),J=c({mutationFn:t=>ge(e,t.channelId),onSuccess:()=>F(),onError:H(`Failed to verify channel`)}),Y=(0,G.useCallback)(e=>{if(!j)return;let t=j.channels.find(t=>t.type===e&&t.status!==`revoked`);t&&J.mutate({channelId:t.id})},[j,J]),X=Je({assistantId:e,channelType:`slack`,contact:j?{id:j.id,displayName:j.displayName}:null,onLinked:F}),Z=s({...h(e),enabled:!!e&&X.dialogOpen,select:e=>e.users}),we=E.channels.some(e=>e.key===`slack`&&e.status===`ready`),Te=(0,G.useCallback)(e=>{e===X.channelType&&X.open()},[X]),Ee=R.isPending?R.variables:null,Q=(0,G.useMemo)(()=>j?z.isPending&&z.variables?.contactId===j.id?{...j,displayName:z.variables.patch.displayName,notes:z.variables.patch.notes}:j:null,[j,z.isPending,z.variables]);if(f)return(0,q.jsx)(i,{to:`${ce.channels}?setup=${f}`,replace:!0});let $={loading:T.isLoading,assistantName:S,guardian:k?{id:k.id,displayName:k.displayName.startsWith(`vellum-principal-`)?``:k.displayName,role:k.role,channelTypes:tt(k.channels,n)}:null,regularContacts:A.filter(e=>e.id!==Ee).map(e=>({id:e.id,displayName:e.displayName,role:e.role,contactType:e.contactType,channelTypes:tt(e.channels,n),verified:et(e.channels)})),selection:p,onAddContact:xe,addingContact:I.isPending};return(0,q.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-4 overflow-hidden sm:flex-row sm:gap-6`,children:[(0,q.jsx)(`div`,{className:`flex items-center sm:hidden`,children:(0,q.jsx)(me,{onClick:()=>y(!0)})}),(0,q.jsx)(he,{open:v,onClose:()=>y(!1),title:`Contacts`,children:(0,q.jsx)(Ve,{...$,onSelect:V})}),(0,q.jsx)(`aside`,{className:`hidden min-h-0 w-[320px] shrink-0 overflow-y-auto self-stretch sm:block`,children:(0,q.jsx)(Ve,{...$,onSelect:V})}),(0,q.jsx)(`section`,{className:`min-h-0 min-w-0 flex-1 overflow-y-auto`,children:p.kind===`assistant`||p.kind===`contact`&&p.contactId===Ee?(0,q.jsx)(Ce,{assistantName:S,channels:E.channels,pendingChannelKey:E.pendingChannelKey,onConnect:E.onSetup,onDisconnect:E.onDisconnect}):Q?Q.role===`guardian`?(0,q.jsx)(Ue,{contact:Q,savePending:z.isPending,verifyPending:J.isPending,mergePending:B.isPending,canMerge:N,availableChannels:D,a2aEnabled:n,onSave:e=>{z.mutate({contactId:Q.id,patch:e})},onMerge:U,onSetupChannel:t?Se:void 0,onVerifyChannel:Y,onRevokeChannel:be,onGenerateInviteLink:n?g.open:void 0}):(0,q.jsx)(Oe,{contact:Q,savePending:z.isPending,deletePending:R.isPending,verifyPending:J.isPending,mergePending:B.isPending,canMerge:N,availableChannels:D,a2aEnabled:n,onSave:e=>{z.mutate({contactId:Q.id,patch:e})},onDelete:()=>{R.mutate(Q.id)},onMerge:U,onSetupChannel:t?K:void 0,onVerifyChannel:Y,onRevokeChannel:be,onLinkAccount:we?Te:void 0}):(0,q.jsx)(Qe,{})}),j?(0,q.jsx)(Ae,{open:b,survivor:j,candidates:M,pending:B.isPending,errorMessage:B.error instanceof Error?B.error.message:B.error?`Failed to merge contacts`:null,onMerge:t=>B.mutate({path:{assistant_id:e},body:{keepId:j.id,mergeId:t}}),onClose:ye}):null,(0,q.jsx)(qe,{open:X.dialogOpen,channelLabel:`Slack`,contactName:j?.displayName??``,accounts:Z.data,loading:Z.isLoading,errorMessage:Z.isError?`Couldn’t load the workspace roster. Check the Slack connection and try again.`:X.linkErrorMessage,pendingAccountId:X.pendingAccountId,onPick:X.pick,onClose:X.close,onInviteInstead:t?()=>{X.close(),K(X.channelType)}:void 0}),(0,q.jsx)(ue,{open:g.isOpen,assistantId:e,onClose:g.close})]})}function Qe(){return(0,q.jsx)(`div`,{className:`flex h-full items-center justify-center py-16`,children:(0,q.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`Select a contact`})})}var $e={slack:`Slack`,telegram:`Telegram`,phone:`Phone`,email:`Email`,whatsapp:`WhatsApp`,a2a:`A2A`};function et(e){return e.some(e=>e.status!==`revoked`&&(e.type===`a2a`||K(e)))}function tt(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($e[e]??i.type))}return r}function nt(){let e=a(),t=z();return(0,q.jsx)(Ze,{assistantId:t,onStartSetupConversation:t=>{R(e,{prompt:t})}},t)}export{nt as ContactsPageRoute};
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-Dy5001j6.js";import{m as r,n as i,u as a}from"./chunk-5KNZJZUH-Bsoom5--.js";import{n as o}from"./QueryClientProvider-CMu7CkQU.js";import{t as s}from"./useQuery-Bz-fbQ-m.js";import{t as c}from"./useMutation-CXGTrp4W.js";import{t as l}from"./jsx-runtime-D3ZM-ToX.js";import{t as u}from"./typography-DEI9Ra9z.js";import{t as d}from"./card-DRIctGVs.js";import{t as f}from"./createLucideIcon-CAM1RhH8.js";import{t as p}from"./arrow-left-C2ylPLHq.js";import{t as m}from"./arrow-right-B-jRJNWP.js";import{a as h,b as g,c as _,d as v,l as y,x as b,y as x}from"./use-save-twilio-credentials-CecOWIyh.js";import{t as S}from"./circle-check-big-DSsDH5_6.js";import{t as C}from"./link-2-BKL8QWRX.js";import{t as w}from"./loader-circle-XREx3i4W.js";import{t as T}from"./mail-CMdPNysl.js";import{t as E}from"./message-square-CQGiY4zk.js";import{t as D}from"./pencil-D38YNe2r.js";import{t as O}from"./plus-jH3kAliM.js";import{t as k}from"./search-BVW-n8to.js";import{t as A}from"./send-Q71Exj3z.js";import{t as j}from"./user-plus-CsHAo9W6.js";import{t as M}from"./tag-Dn1d6hKF.js";import{t as N}from"./input-F_x2LXmm.js";import{t as P}from"./modal-CoOkN7c0.js";import{t as F}from"./panel-item-CQt19wOM.js";import{n as ee}from"./toast-BcMdOTp1.js";import{t as I}from"./confirm-dialog-D-Yjf2uS.js";import{C as te}from"./sdk.gen-DeyOX3Kb.js";import{Ht as ne,S as L,Ut as re,a as ie,b as ae,x as oe}from"./react-query.gen-BeiAUt-2.js";import{t as se}from"./assistant-identity-store-6On4WZ62.js";import{d as ce}from"./routes-CsoiCk2y.js";import{n as R}from"./conversation-navigation-D8y9l5qL.js";import{t as le}from"./assistant-feature-flag-store-B00tpY5e.js";import{t as z}from"./use-active-assistant-id-CUKao_nq.js";import{i as ue,l as de,n as fe,r as B,t as pe}from"./use-invite-link-dialog-yw1dtYd_.js";import{t as V}from"./detail-card-BiNdiBiS.js";import{n as me,t as he}from"./mobile-sidebar-drawer-BLGt_R0d.js";import{t as H}from"./mutation-error-DoEwwcm3.js";import{a as ge,i as _e,n as U,t as ve}from"./contacts-gateway-BlLLBft6.js";var ye=f(`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`}]]),W=f(`ellipsis-vertical`,[[`circle`,{cx:`12`,cy:`12`,r:`1`,key:`41hilf`}],[`circle`,{cx:`12`,cy:`5`,r:`1`,key:`gxeob9`}],[`circle`,{cx:`12`,cy:`19`,r:`1`,key:`lyex9k`}]]),be=f(`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`}]]),G=e(t(),1),xe=new Set([`slack`]);function K(e){return e.status===`verified`||e.status===`active`&&e.verifiedAt!=null}var q=l();function Se({channels:e,pendingChannelKey:t=null,onConnect:n,onDisconnect:r}){let[i,a]=(0,G.useState)(null);return(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`div`,{className:`flex flex-col`,children:e.map((e,i)=>(0,q.jsxs)(`div`,{children:[i>0?(0,q.jsx)(`div`,{className:`border-t`,style:{borderColor:`var(--border-base)`}}):null,(0,q.jsx)(J,{channel:e,pending:t===e.key,onConnect:n?()=>n(e.key):void 0,onDisconnect:r?()=>a(e.key):void 0})]},e.key))}),(0,q.jsx)(I,{open:i!==null,title:`Disconnect ${i?v(i):``}?`,message:`This clears the stored credentials for this channel. You can reconnect later.`,confirmLabel:`Disconnect`,destructive:!0,onConfirm:()=>{i&&r&&r(i),a(null)},onCancel:()=>a(null)})]})}function J({channel:e,pending:t,onConnect:r,onDisconnect:i}){let a=e.status===`ready`;return(0,q.jsxs)(`div`,{className:`flex items-center gap-3 py-4`,children:[(0,q.jsx)(y,{channelId:e.key,className:`h-4 w-4 shrink-0 text-[color:var(--content-secondary)]`}),(0,q.jsx)(`span`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:v(e.key)}),a&&e.address?(0,q.jsx)(`span`,{className:`truncate text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:e.address}):null,(0,q.jsx)(`div`,{className:`ml-auto flex shrink-0 items-center gap-2`,children:a?(0,q.jsxs)(q.Fragment,{children:[(0,q.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,q.jsx)(S,{className:`h-3 w-3`}),`Connected`]}),(0,q.jsx)(n,{variant:`danger`,onClick:i,disabled:!i||t,children:t?`Disconnecting…`:`Disconnect`})]}):(0,q.jsx)(n,{variant:`outlined`,onClick:r,disabled:!r||t,children:`Connect`})})]})}function Y({role:e,contactType:t}){let{label:n,tone:r}=X(e,t);return(0,q.jsx)(M,{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 Ce({assistantName:e,...t}){let n=de(e);return(0,q.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,q.jsx)(V,{title:`${n} (Your Assistant)`,accessory:(0,q.jsx)(Y,{role:`assistant`}),compactAccessory:!0}),(0,q.jsx)(V,{title:`Channels`,subtitle:`Where ${n} can be reached.`,children:(0,q.jsx)(Se,{...t})})]})}var Z=new Set([`telegram`,`phone`,`vellum`,`whatsapp`,`slack`,`email`,`platform`,`a2a`]);function we(e){return Z.has(e)}function Te(e,t){return e.id===`a2a`?t&&t.status!==`revoked`?{kind:`connected`}:{kind:`setup`}:t!=null&&K(t)?{kind:`verified`}:t?.status===`blocked`?{kind:`none`}:t&&t.status!==`revoked`?{kind:`unverified`}:{kind:`setup`}}function Ee(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||we(e.type)&&(r.push({id:e.type,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 Q({name:e,className:t,style:n}){switch(e){case`bot`:return(0,q.jsx)(b,{className:t,style:n});case`hash`:return(0,q.jsx)(g,{className:t,style:n});case`send`:return(0,q.jsx)(A,{className:t,style:n});case`phone`:return(0,q.jsx)(x,{className:t,style:n});case`mail`:return(0,q.jsx)(T,{className:t,style:n});case`message-square`:return(0,q.jsx)(E,{className:t,style:n});default:return(0,q.jsx)(ye,{className:t,style:n})}}function $({contactChannels:e,availableChannels:t,a2aEnabled:n,setupLabel:r=`Invite`,verifyLoading:i,verifySubject:a=`self`,onSetupChannel:o,onVerifyChannel:s,onRevokeChannel:c,onLinkAccount:l}){let[u,d]=(0,G.useState)(null),[f,p]=(0,G.useState)(null),m=new Map;for(let t of e)t.status!==`revoked`&&(m.has(t.type)||m.set(t.type,t));return(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`div`,{className:`flex flex-col`,children:Ee(t,e,n).map((e,t)=>{let n=m.get(e.id);return(0,q.jsxs)(`div`,{children:[t>0&&(0,q.jsx)(`div`,{className:`border-t`,style:{borderColor:`var(--border-base)`}}),(0,q.jsx)(De,{info:e,existing:n,setupLabel:r,verifyLoading:i,onSetup:o?()=>o(e.id):void 0,onVerify:s&&e.supportsVerification?()=>d(e):void 0,onRevoke:c&&n?()=>p({channelId:n.id,channel:e}):void 0,onLinkAccount:l&&xe.has(e.id)?()=>l(e.id):void 0})]},e.id)})}),u&&(0,q.jsx)(I,{open:!0,title:`Verify ${u.label}`,message:a===`contact`?`This will mark this contact's ${u.label} channel as verified. Your assistant will recognize them when they reach out from it.`:`This will mark your ${u.label} channel as verified. Your assistant will recognize you when you reach out from it.`,confirmLabel:`Verify`,onConfirm:()=>{u&&(s?.(u.id),d(null))},onCancel:()=>d(null)}),f&&(0,q.jsx)(I,{open:!0,title:`Revoke ${f.channel.label}`,message:`This will disconnect the verified channel. The contact will need to re-verify to use this channel again.`,confirmLabel:`Revoke`,destructive:!0,onConfirm:()=>{c?.(f.channelId,f.channel.id),p(null)},onCancel:()=>p(null)})]})}function De({info:e,existing:t,setupLabel:r,verifyLoading:i,onSetup:a,onVerify:o,onRevoke:s,onLinkAccount:c}){let l=Te(e,t);return(0,q.jsxs)(`div`,{className:`flex items-center gap-3 py-4`,children:[(0,q.jsx)(Q,{name:e.icon,className:`h-4 w-4 shrink-0`,style:{color:`var(--content-secondary)`}}),(0,q.jsx)(`span`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:e.label}),t?.address?(0,q.jsx)(`span`,{className:`truncate text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:t.address}):null,(0,q.jsx)(`div`,{className:`ml-auto flex shrink-0 items-center gap-2`,children:l.kind===`connected`?(0,q.jsxs)(q.Fragment,{children:[(0,q.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,q.jsx)(S,{className:`h-3 w-3`}),`Connected`]}),s?(0,q.jsx)(n,{variant:`danger`,onClick:s,children:`Revoke`}):null]}):l.kind===`verified`?(0,q.jsxs)(q.Fragment,{children:[(0,q.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,q.jsx)(S,{className:`h-3 w-3`}),`Verified`]}),s?(0,q.jsx)(n,{variant:`danger`,onClick:s,children:`Revoke`}):null]}):l.kind===`unverified`?(0,q.jsx)(n,{variant:`outlined`,onClick:o,disabled:!o||i,children:i?`Verifying…`:`Verify`}):l.kind===`setup`?e.id===`a2a`?null:(0,q.jsxs)(q.Fragment,{children:[c?(0,q.jsxs)(n,{onClick:c,children:[(0,q.jsx)(C,{className:`h-3.5 w-3.5`}),`Link account`]}):null,(0,q.jsx)(n,{variant:`outlined`,onClick:a,disabled:!a,children:r})]}):null})]})}function Oe(e){return(0,q.jsx)(ke,{...e},e.contact.id)}function ke({contact:e,savePending:t,deletePending:r,verifyPending:i,mergePending:a=!1,canMerge:o=!1,availableChannels:s,a2aEnabled:c,onSave:l,onDelete:u,onMerge:d,onSetupChannel:f,onVerifyChannel:p,onRevokeChannel:m,onLinkAccount:h}){let g=e.displayName===`New Contact`,[_,v]=(0,G.useState)(g?``:e.displayName),[y,b]=(0,G.useState)(e.notes??``),[x,S]=(0,G.useState)(!1),C=_.trim(),w=y.trim(),T=g?``:e.displayName,E=e.notes??``,D=C!==T||w!==E,O=C.length>0&&D&&!t&&!r,k=g&&e.channels.length===0&&e.interactionCount===0,A=C||e.displayName,j=`${e.interactionCount} interaction${e.interactionCount===1?``:`s`}`;return(0,q.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,q.jsx)(V,{title:A,accessory:(0,q.jsx)(Y,{role:e.role,contactType:e.contactType}),compactAccessory:!0,subtitle:j,children:(0,q.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,q.jsx)(N,{label:`Name`,type:`text`,value:_,onChange:e=>v(e.target.value),placeholder:`Give this human a name`,autoFocus:g,disabled:t||r,fullWidth:!0}),(0,q.jsx)(N,{label:`Notes`,type:`text`,value:y,onChange:e=>b(e.target.value),placeholder:`Optional notes about the human which AI will take into account`,disabled:t||r,fullWidth:!0}),(0,q.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,q.jsx)(n,{type:`button`,onClick:()=>l({displayName:C,notes:w}),disabled:!O,children:t?`Saving…`:`Save`}),d?(0,q.jsx)(n,{type:`button`,variant:`outlined`,onClick:d,disabled:!o||k||D||a||t||r,title:o?k?`Save this contact before merging`:D?`Save your changes before merging`:void 0:`No other contacts available to merge`,children:a?`Merging…`:`Merge…`}):null,(0,q.jsx)(n,{type:`button`,variant:`danger`,onClick:()=>{k?u():S(!0)},disabled:r,children:r?`Deleting…`:`Delete Contact`})]})]})}),(0,q.jsx)(V,{title:`Linked accounts`,subtitle:`Where the assistant recognizes this contact. Link accounts you know, invite the ones you don't.`,children:(0,q.jsx)($,{contactChannels:e.channels,availableChannels:s,a2aEnabled:c,verifyLoading:i,verifySubject:`contact`,onSetupChannel:f,onVerifyChannel:p,onRevokeChannel:m,onLinkAccount:h})}),(0,q.jsx)(I,{open:x,title:`Delete ${e.displayName}?`,message:`This will permanently delete this contact and all their channels. This action cannot be undone.`,confirmLabel:`Delete`,destructive:!0,onConfirm:()=>{S(!1),u()},onCancel:()=>S(!1)})]})}function Ae(e){return(0,q.jsx)(je,{...e},`${e.survivor.id}:${e.open?`open`:`closed`}`)}function je({open:e,survivor:t,candidates:r,pending:i,errorMessage:a,onMerge:o,onClose:s}){let[c,l]=(0,G.useState)(``),[d,f]=(0,G.useState)(null);(0,G.useEffect)(()=>{d&&!r.some(e=>e.id===d)&&f(null)},[r,d]);let m=(0,G.useMemo)(()=>{let e=c.trim().toLowerCase();return e?r.filter(t=>t.displayName.toLowerCase().includes(e)):r},[r,c]),h=d?r.find(e=>e.id===d)??null:null,g=Ie(t);return(0,q.jsx)(P.Root,{open:e,onOpenChange:e=>{!e&&!i&&s()},children:(0,q.jsxs)(P.Content,{size:`md`,children:[(0,q.jsxs)(P.Header,{children:[(0,q.jsx)(P.Title,{icon:be,children:h?`Merge "${h.displayName}" into ${g}?`:`Merge another contact into ${g}`}),(0,q.jsx)(P.Description,{children:h?`Channels and notes from the merged contact will move over. The merged contact will be deleted.`:`The contact you pick will be deleted. Its channels and notes will be added to this one.`})]}),(0,q.jsxs)(P.Body,{className:`flex flex-col gap-3`,children:[h?(0,q.jsx)(Pe,{survivor:t,donor:h}):r.length===0?(0,q.jsx)(Fe,{}):(0,q.jsx)(Me,{search:c,onSearch:l,candidates:m,onPick:f}),a?(0,q.jsx)(u,{as:`p`,variant:`body-small-default`,className:`text-(--system-negative-strong)`,role:`alert`,children:a}):null]}),(0,q.jsx)(P.Footer,{children:h?(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(n,{variant:`outlined`,onClick:()=>f(null),disabled:i,leftIcon:(0,q.jsx)(p,{"aria-hidden":!0}),children:`Back`}),(0,q.jsx)(n,{variant:`danger`,onClick:()=>o(h.id),disabled:i,children:i?`Merging…`:`Merge`})]}):(0,q.jsx)(n,{variant:`outlined`,onClick:s,disabled:i,children:`Cancel`})})]})})}function Me({search:e,onSearch:t,candidates:n,onPick:r}){return(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(N,{type:`text`,value:e,onChange:e=>t(e.target.value),placeholder:`Search contacts`,leftIcon:(0,q.jsx)(k,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),fullWidth:!0}),(0,q.jsx)(`div`,{className:`flex max-h-[320px] min-h-[120px] flex-col gap-1 overflow-y-auto`,role:`listbox`,"aria-label":`Select a contact to merge`,children:n.length===0?(0,q.jsx)(u,{as:`p`,variant:`body-small-default`,className:`px-3 py-4 text-center text-(--content-tertiary)`,children:`No matching contacts`}):n.map(e=>(0,q.jsx)(Ne,{contact:e,onPick:()=>r(e.id)},e.id))})]})}function Ne({contact:e,onPick:t}){let n=Be(e).join(` | `)||void 0;return(0,q.jsx)(F,{asChild:!0,label:``,children:(0,q.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,q.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,q.jsx)(`span`,{className:`truncate text-body-medium-default`,children:e.displayName}),n?(0,q.jsx)(`span`,{className:`truncate text-body-small-default text-(--content-tertiary)`,children:n}):null]})})})}function Pe({survivor:e,donor:t}){let n=Ie(e),{moved:r,duplicates:i}=ze(e,t);return(0,q.jsxs)(`ul`,{className:`flex flex-col gap-2 text-body-medium-lighter text-(--content-secondary)`,children:[(0,q.jsxs)(`li`,{children:[(0,q.jsxs)(`span`,{className:`text-(--content-default)`,children:[`“`,t.displayName,`”`]}),` `,`will be deleted.`]}),(0,q.jsx)(`li`,{children:r.length===0?`No new channels will move to ${n}.`:`${r.length} channel${r.length===1?``:`s`} will move to ${n}: ${r.map(e=>Re(e.type)).join(`, `)}.`}),i.length>0?(0,q.jsxs)(`li`,{className:`text-(--content-tertiary)`,children:[i.length,` duplicate channel`,i.length===1?``:`s`,` already on `,n,` `,`(skipped).`]}):null,t.notes?(0,q.jsx)(`li`,{children:`Notes from the merged contact will be appended.`}):null,(0,q.jsx)(`li`,{className:`text-(--content-tertiary)`,children:`This cannot be undone.`})]})}function Fe(){return(0,q.jsx)(u,{as:`p`,variant:`body-medium-lighter`,className:`px-3 py-6 text-center text-(--content-tertiary)`,children:`No other contacts available to merge.`})}function Ie(e){return e.role===`guardian`?!e.displayName||e.displayName.startsWith(`vellum-principal-`)?`you`:`${e.displayName} (you)`:e.displayName||`this contact`}var Le={slack:`Slack`,telegram:`Telegram`,phone:`Phone`,email:`Email`,whatsapp:`WhatsApp`};function Re(e){return Le[e.toLowerCase()]??e}function ze(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 Be(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(Le[e]??r.type))}return n}function Ve({loading:e,guardian:t,assistantName:r,regularContacts:i,selection:a,onSelect:o,onAddContact:s,addingContact:c=!1}){let[l,u]=(0,G.useState)(``),f=l.trim()?i.filter(e=>e.displayName.toLowerCase().includes(l.trim().toLowerCase())):i;return(0,q.jsx)(d.Root,{className:`flex h-full flex-col overflow-hidden`,children:(0,q.jsxs)(d.Body,{className:`flex min-h-0 min-w-0 flex-1 flex-col gap-4`,children:[(0,q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,q.jsx)(`h2`,{className:`text-title-medium`,style:{color:`var(--content-default)`},children:`Entries`}),(0,q.jsx)(n,{type:`button`,variant:`ghost`,iconOnly:c?(0,q.jsx)(w,{className:`animate-spin`,"aria-hidden":!0}):(0,q.jsx)(O,{"aria-hidden":!0}),onClick:s,disabled:c,"aria-label":`Add contact`,tintColor:`var(--content-secondary)`})]}),(0,q.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[t?(0,q.jsx)(He,{name:t.displayName?`${t.displayName} (You)`:`You`,role:t.role,channelTypes:t.channelTypes,selected:a?.kind===`contact`&&a.contactId===t.id,onClick:()=>o({kind:`contact`,contactId:t.id}),trailingIcon:`pencil`}):null,(0,q.jsx)(He,{name:r?.trim()||`Your Assistant`,role:`assistant`,selected:a?.kind===`assistant`,onClick:()=>o({kind:`assistant`}),trailingIcon:`more`})]}),(0,q.jsx)(`div`,{className:`border-t`,style:{borderColor:`var(--border-base)`}}),i.length>0?(0,q.jsx)(N,{type:`text`,value:l,onChange:e=>u(e.target.value),placeholder:`Search Contacts`,leftIcon:(0,q.jsx)(k,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),fullWidth:!0}):null,i.length>0?(0,q.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto flex flex-col gap-1`,children:[f.map(e=>(0,q.jsx)(He,{name:e.displayName,role:e.role,contactType:e.contactType,channelTypes:e.channelTypes,verified:e.verified,selected:a?.kind===`contact`&&a.contactId===e.id,onClick:()=>o({kind:`contact`,contactId:e.id}),trailingIcon:`more`},e.id)),f.length===0?(0,q.jsx)(`p`,{className:`px-3 py-4 text-center text-body-small-default`,style:{color:`var(--content-tertiary)`},children:`No matching contacts`}):null]}):e?null:(0,q.jsx)(n,{type:`button`,variant:`ghost`,onClick:s,disabled:c,tintColor:`var(--primary-base)`,leftIcon:c?(0,q.jsx)(w,{className:`animate-spin`,"aria-hidden":!0}):(0,q.jsx)(j,{"aria-hidden":!0}),children:`Add Contact`})]})})}function He({name:e,role:t,contactType:n,channelTypes:r,selected:i,onClick:a,trailingIcon:o,verified:s}){let c=r&&r.length>0?r.join(` | `):void 0;return(0,q.jsx)(F,{asChild:!0,active:i,label:``,trailingAction:o===`pencil`?(0,q.jsx)(D,{className:`h-3.5 w-3.5`,"aria-hidden":!0}):o===`more`?(0,q.jsx)(W,{className:`h-3.5 w-3.5`,"aria-hidden":!0}):void 0,children:(0,q.jsxs)(`button`,{type:`button`,onClick:a,className:`flex h-auto w-full items-center gap-2 rounded-[6px] px-[8px] py-2 text-left`,children:[(0,q.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,q.jsx)(`span`,{className:`truncate text-body-medium-default`,children:e}),c?(0,q.jsx)(`span`,{className:`truncate text-body-small-default`,style:{color:`var(--content-tertiary)`},children:c}):null]}),(0,q.jsxs)(`span`,{className:`flex shrink-0 items-center gap-1`,children:[s===void 0?null:(0,q.jsx)(M,{tone:s?`positive`:`neutral`,children:s?`Verified`:`Unverified`}),(0,q.jsx)(Y,{role:t,contactType:n})]})]})})}function Ue(e){return(0,q.jsx)(We,{...e},e.contact.id)}function We({contact:e,savePending:t,verifyPending:r,mergePending:i=!1,canMerge:a=!1,availableChannels:o,a2aEnabled:s,onSave:c,onMerge:l,onSetupChannel:u,onVerifyChannel:d,onRevokeChannel:f,onGenerateInviteLink:p}){let m=e.displayName.startsWith(`vellum-principal-`),h=m?``:e.displayName,[g,_]=(0,G.useState)(h),[v,y]=(0,G.useState)(e.notes??``),b=g.trim(),x=v.trim(),S=b!==h.trim()||x!==(e.notes??``).trim(),C=S&&!t,w=`${e.interactionCount} interaction${e.interactionCount===1?``:`s`}`;return(0,q.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,q.jsx)(V,{title:m?`You`:`${e.displayName} (You)`,accessory:(0,q.jsx)(Y,{role:`guardian`}),compactAccessory:!0,subtitle:w,children:(0,q.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,q.jsx)(N,{label:`Name`,type:`text`,value:g,onChange:e=>_(e.target.value),placeholder:`Your name`,disabled:t,fullWidth:!0}),(0,q.jsx)(N,{label:`Notes`,type:`text`,value:v,onChange:e=>y(e.target.value),placeholder:`Notes about yourself which AI will take into account`,disabled:t,fullWidth:!0}),(0,q.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,q.jsx)(n,{variant:`primary`,onClick:()=>c({displayName:b||e.displayName,notes:x}),disabled:!C,children:t?`Saving…`:`Save`}),l?(0,q.jsx)(n,{variant:`outlined`,onClick:l,disabled:!a||S||i||t,title:a?S?`Save your changes before merging`:void 0:`No other contacts available to merge`,children:i?`Merging…`:`Merge…`}):null]})]})}),(0,q.jsx)(V,{title:`Channels`,subtitle:`Once verified, your assistant will recognize you when you message from these channels.`,children:(0,q.jsx)($,{contactChannels:e.channels,availableChannels:o,a2aEnabled:s,setupLabel:`Verify me`,verifyLoading:r,onSetupChannel:u,onVerifyChannel:d,onRevokeChannel:f})}),p?(0,q.jsx)(B,{onClick:p}):null]})}function Ge(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 Ke(e){let t=e.trim().split(/\s+/).filter(Boolean);return`${t[0]?.[0]??`?`}${t.length>1?t[t.length-1]?.[0]??``:``}`.toUpperCase()}function qe({open:e,channelLabel:t,contactName:r,accounts:i,loading:a,errorMessage:o,pendingAccountId:s,onPick:c,onClose:l,onInviteInstead:u}){let[d,f]=(0,G.useState)(``);(0,G.useEffect)(()=>{e&&f(``)},[e]);let p=(0,G.useMemo)(()=>Ge(i??[],d),[i,d]),h=s!=null;return(0,q.jsx)(P.Root,{open:e,onOpenChange:e=>!e&&l(),children:(0,q.jsxs)(P.Content,{size:`sm`,children:[(0,q.jsxs)(P.Header,{children:[(0,q.jsxs)(P.Title,{children:[`Link `,t,` account`]}),(0,q.jsxs)(P.Description,{children:[`Search your `,t,` workspace and pick`,` `,(0,q.jsx)(`span`,{className:`text-[color:var(--content-default)]`,children:r}),`’s account.`]})]}),(0,q.jsxs)(P.Body,{className:`flex flex-col gap-3`,children:[(0,q.jsx)(N,{type:`search`,value:d,onChange:e=>f(e.target.value),placeholder:`Search by name or @handle`,"aria-label":`Search ${t} workspace accounts`,leftIcon:(0,q.jsx)(k,{className:`h-4 w-4`}),fullWidth:!0}),o?(0,q.jsx)(`p`,{className:`text-body-small-default text-[color:var(--content-negative)]`,children:o}):null,(0,q.jsx)(`div`,{className:`max-h-80 overflow-y-auto`,children:a?(0,q.jsx)(`p`,{className:`py-4 text-center text-body-small-default text-[color:var(--content-tertiary)]`,children:`Loading workspace members…`}):p.length===0?(0,q.jsx)(`p`,{className:`py-4 text-center text-body-small-default text-[color:var(--content-tertiary)]`,children:(i?.length??0)===0?`No workspace members found.`:`No members match.`}):(0,q.jsx)(`ul`,{className:`flex flex-col`,children:p.map(e=>(0,q.jsx)(`li`,{children:(0,q.jsxs)(`button`,{type:`button`,onClick:()=>c(e),disabled:h,className:`flex w-full cursor-pointer items-center gap-3 rounded-md px-2 py-2 text-left transition-colors hover:bg-[var(--surface-overlay)] disabled:cursor-not-allowed disabled:opacity-60`,children:[e.imageUrl?(0,q.jsx)(`img`,{src:e.imageUrl,alt:``,className:`h-8 w-8 shrink-0 rounded-full`}):(0,q.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:Ke(e.displayName)}),(0,q.jsxs)(`span`,{className:`flex min-w-0 flex-col`,children:[(0,q.jsx)(`span`,{className:`truncate text-body-medium-default text-[color:var(--content-default)]`,children:e.displayName}),(0,q.jsxs)(`span`,{className:`truncate text-body-small-default text-[color:var(--content-tertiary)]`,children:[`@`,e.username]})]}),s===e.id?(0,q.jsx)(`span`,{className:`ml-auto shrink-0 text-body-small-default text-[color:var(--content-tertiary)]`,children:`Linking…`}):null]})},e.id))})})]}),(0,q.jsxs)(P.Footer,{className:`items-center justify-between gap-3 border-t border-[var(--border-base)]`,children:[(0,q.jsxs)(`p`,{className:`text-body-small-default text-[color:var(--content-tertiary)]`,children:[`Picking marks this account as`,` `,(0,q.jsx)(`span`,{className:`text-[color:var(--content-secondary)]`,children:`guardian-linked`}),` `,`— you vouch for the identity, no handshake needed.`]}),u?(0,q.jsxs)(n,{variant:`link`,className:`shrink-0`,onClick:u,disabled:h,children:[`Or send an invite instead`,(0,q.jsx)(m,{className:`h-3.5 w-3.5`})]}):null]})]})})}function Je({assistantId:e,channelType:t,contact:n,onLinked:r}){let[i,a]=(0,G.useState)(!1),o=c({mutationFn:n=>U(e,n.contact,{type:t,address:n.account.id}),onSuccess:(e,t)=>{a(!1),ee.success(`Linked as @${t.account.username}`),r()}}),s=(0,G.useCallback)(()=>{o.reset(),a(!0)},[o]),l=(0,G.useCallback)(()=>{o.isPending||(o.reset(),a(!1))},[o]),u=(0,G.useCallback)(e=>{!n||o.isPending||o.mutate({contact:n,account:e})},[n,o]);return{channelType:t,dialogOpen:i,open:s,close:l,linkErrorMessage:o.error instanceof Error?o.error.message:o.error?`Failed to link account`:null,pendingAccountId:o.isPending?o.variables.account.id:null,pick:u}}var Ye=[{id:`slack`,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`,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`,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?`}}],Xe=[];function Ze({assistantId:e,onStartSetupConversation:t}){let n=le.use.a2aChannel(),a=se.use.name(),l=o(),[u]=r(),d=u.get(`setup`),f=d&&_(d)?d:null,[p,m]=(0,G.useState)({kind:`assistant`}),g=pe(e),[v,y]=(0,G.useState)(!1),[b,x]=(0,G.useState)(!1),S=de(a),C=(0,G.useMemo)(()=>({path:{assistant_id:e}}),[e]),w=oe(C),T=s({...ae(C),enabled:!!e,select:e=>e.contacts}),E=fe({assistantId:e,onStartSetupConversation:t}),D=s({...ie({path:{assistant_id:e}}),enabled:!!e,queryFn:async({signal:t})=>{let{data:n,error:r,response:i}=await te({path:{assistant_id:e},signal:t,throwOnError:!1});if(!i||i.status===404)return{channels:Ye};if(!i.ok)throw r??Error(`Failed to fetch channel availability`);return n},select:e=>e.channels}).data??Xe,O=T.data,k=(0,G.useMemo)(()=>O?.find(e=>e.role===`guardian`)??null,[O]),A=(0,G.useMemo)(()=>O?.filter(e=>e.role!==`guardian`)??[],[O]),j=(0,G.useMemo)(()=>p.kind===`contact`?O?.find(e=>e.id===p.contactId)??null:null,[O,p]),M=(0,G.useMemo)(()=>!O||!j?[]:O.filter(e=>e.id!==j.id&&e.role!==`guardian`),[O,j]),N=M.length>0,P=(0,G.useRef)(!!f);(0,G.useEffect)(()=>{P.current||k&&(P.current=!0,m({kind:`contact`,contactId:k.id}))},[k]);let F=(0,G.useCallback)(()=>l.invalidateQueries({queryKey:w}),[l,w]),I=c({mutationFn:()=>_e(e,{displayName:`New Contact`}),onMutate:async()=>{await l.cancelQueries({queryKey:w})},onSuccess:e=>{L(l,C,t=>t?{...t,contacts:[...t.contacts,e]}:void 0),m({kind:`contact`,contactId:e.id})},onError:H(`Failed to create contact`),onSettled:()=>F()}),R=c({mutationFn:t=>ve(e,t),onSuccess:(e,t)=>{L(l,C,e=>e?{...e,contacts:e.contacts.filter(e=>e.id!==t)}:void 0),m({kind:`assistant`})},onError:H(`Failed to delete contact`),onSettled:()=>F()}),z=c({mutationFn:({contactId:t,patch:n})=>_e(e,{id:t,displayName:n.displayName,notes:n.notes}),onSuccess:e=>{L(l,C,t=>t?{...t,contacts:t.contacts.map(t=>t.id===e.id?e:t)}:void 0)},onError:H(`Failed to save contact`),onSettled:()=>F()}),B=re({onMutate:async()=>{await l.cancelQueries({queryKey:w})},onSuccess:(e,t)=>{let n=e.contact,r=t.body.mergeId;n&&(L(l,C,e=>e?{...e,contacts:e.contacts.filter(e=>e.id!==r).map(e=>e.id===n.id?n:e)}:void 0),m({kind:`contact`,contactId:n.id})),x(!1),ee.success(`Contacts merged`)},onSettled:()=>F()}),V=(0,G.useCallback)(e=>{m(e),y(!1),x(!1),B.reset()},[B]),U=(0,G.useCallback)(()=>{B.reset(),x(!0)},[B]),ye=(0,G.useCallback)(()=>{B.isPending||(x(!1),B.reset())},[B]),W=ne({onSuccess:()=>F()}),be=(0,G.useCallback)((t,n)=>{W.mutate({path:{assistant_id:e,contactChannelId:t},body:{status:`revoked`}})},[W,e]),xe=(0,G.useCallback)(()=>{I.isPending||I.mutate()},[I]),K=(0,G.useCallback)(e=>{if(!t)return;let n=D.find(t=>t.id===e)?.setupMessages.contact;n&&t(n)},[D,t]),Se=(0,G.useCallback)(e=>{if(!t)return;let n=D.find(t=>t.id===e)?.setupMessages.guardian;n&&t(n)},[D,t]),J=c({mutationFn:t=>ge(e,t.channelId),onSuccess:()=>F(),onError:H(`Failed to verify channel`)}),Y=(0,G.useCallback)(e=>{if(!j)return;let t=j.channels.find(t=>t.type===e&&t.status!==`revoked`);t&&J.mutate({channelId:t.id})},[j,J]),X=Je({assistantId:e,channelType:`slack`,contact:j?{id:j.id,displayName:j.displayName}:null,onLinked:F}),Z=s({...h(e),enabled:!!e&&X.dialogOpen,select:e=>e.users}),we=E.channels.some(e=>e.key===`slack`&&e.status===`ready`),Te=(0,G.useCallback)(e=>{e===X.channelType&&X.open()},[X]),Ee=R.isPending?R.variables:null,Q=(0,G.useMemo)(()=>j?z.isPending&&z.variables?.contactId===j.id?{...j,displayName:z.variables.patch.displayName,notes:z.variables.patch.notes}:j:null,[j,z.isPending,z.variables]);if(f)return(0,q.jsx)(i,{to:`${ce.channels}?setup=${f}`,replace:!0});let $={loading:T.isLoading,assistantName:S,guardian:k?{id:k.id,displayName:k.displayName.startsWith(`vellum-principal-`)?``:k.displayName,role:k.role,channelTypes:tt(k.channels,n)}:null,regularContacts:A.filter(e=>e.id!==Ee).map(e=>({id:e.id,displayName:e.displayName,role:e.role,contactType:e.contactType,channelTypes:tt(e.channels,n),verified:et(e.channels)})),selection:p,onAddContact:xe,addingContact:I.isPending};return(0,q.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-4 overflow-hidden sm:flex-row sm:gap-6`,children:[(0,q.jsx)(`div`,{className:`flex items-center sm:hidden`,children:(0,q.jsx)(me,{onClick:()=>y(!0)})}),(0,q.jsx)(he,{open:v,onClose:()=>y(!1),title:`Contacts`,children:(0,q.jsx)(Ve,{...$,onSelect:V})}),(0,q.jsx)(`aside`,{className:`hidden min-h-0 w-[320px] shrink-0 overflow-y-auto self-stretch sm:block`,children:(0,q.jsx)(Ve,{...$,onSelect:V})}),(0,q.jsx)(`section`,{className:`min-h-0 min-w-0 flex-1 overflow-y-auto`,children:p.kind===`assistant`||p.kind===`contact`&&p.contactId===Ee?(0,q.jsx)(Ce,{assistantName:S,channels:E.channels,pendingChannelKey:E.pendingChannelKey,onConnect:E.onSetup,onDisconnect:E.onDisconnect}):Q?Q.role===`guardian`?(0,q.jsx)(Ue,{contact:Q,savePending:z.isPending,verifyPending:J.isPending,mergePending:B.isPending,canMerge:N,availableChannels:D,a2aEnabled:n,onSave:e=>{z.mutate({contactId:Q.id,patch:e})},onMerge:U,onSetupChannel:t?Se:void 0,onVerifyChannel:Y,onRevokeChannel:be,onGenerateInviteLink:n?g.open:void 0}):(0,q.jsx)(Oe,{contact:Q,savePending:z.isPending,deletePending:R.isPending,verifyPending:J.isPending,mergePending:B.isPending,canMerge:N,availableChannels:D,a2aEnabled:n,onSave:e=>{z.mutate({contactId:Q.id,patch:e})},onDelete:()=>{R.mutate(Q.id)},onMerge:U,onSetupChannel:t?K:void 0,onVerifyChannel:Y,onRevokeChannel:be,onLinkAccount:we?Te:void 0}):(0,q.jsx)(Qe,{})}),j?(0,q.jsx)(Ae,{open:b,survivor:j,candidates:M,pending:B.isPending,errorMessage:B.error instanceof Error?B.error.message:B.error?`Failed to merge contacts`:null,onMerge:t=>B.mutate({path:{assistant_id:e},body:{keepId:j.id,mergeId:t}}),onClose:ye}):null,(0,q.jsx)(qe,{open:X.dialogOpen,channelLabel:`Slack`,contactName:j?.displayName??``,accounts:Z.data,loading:Z.isLoading,errorMessage:Z.isError?`Couldn’t load the workspace roster. Check the Slack connection and try again.`:X.linkErrorMessage,pendingAccountId:X.pendingAccountId,onPick:X.pick,onClose:X.close,onInviteInstead:t?()=>{X.close(),K(X.channelType)}:void 0}),(0,q.jsx)(ue,{open:g.isOpen,assistantId:e,onClose:g.close})]})}function Qe(){return(0,q.jsx)(`div`,{className:`flex h-full items-center justify-center py-16`,children:(0,q.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`Select a contact`})})}var $e={slack:`Slack`,telegram:`Telegram`,phone:`Phone`,email:`Email`,whatsapp:`WhatsApp`,a2a:`A2A`};function et(e){return e.some(e=>e.status!==`revoked`&&(e.type===`a2a`||K(e)))}function tt(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($e[e]??i.type))}return r}function nt(){let e=a(),t=z();return(0,q.jsx)(Ze,{assistantId:t,onStartSetupConversation:t=>{R(e,{prompt:t})}},t)}export{nt as ContactsPageRoute};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e,m as t,o as n,s as r}from"./conversation-list-fetchers-
|
|
1
|
+
import{i as e,m as t,o as n,s as r}from"./conversation-list-fetchers-CavIngGf.js";async function i(e,t){await e.cancelQueries({queryKey:n(t)})}function a(e,t){return e.getQueriesData({queryKey:n(t)}).map(([e,t])=>[e,t])}function o(e,t){for(let[n,r]of t)e.setQueryData(n,r)}async function s(e,t){await e.invalidateQueries({queryKey:n(t)})}function c(e,t,n){e.setQueryData(t,e=>{let t=e??[],r=n(t);return r===t?e:r})}function l(e,t,n){c(e,r(t),n)}function u(t,n,r){c(t,e(n),r)}function d(e,n,r){c(e,t(n),r)}function f(e,t,r){if(!t)return;let i=e.getQueriesData({queryKey:n(t)});for(let[t,n]of i){if(!n)continue;let i=r(n);i!==n&&e.setQueryData(t,i)}}function p(e,t,r){if(!t)return;let i=e.getQueriesData({queryKey:n(t)});for(let[,e]of i){let t=e?.find(e=>e.conversationId===r);if(t)return t}}function m(...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 h(e,t){return t?m(...e.getQueriesData({queryKey:n(t)}).map(([,e])=>e??[])):[]}function g(e,t,n,r){f(e,t,e=>{let t=!1,i=e.map(e=>e.conversationId===n?(t=!0,{...e,...r}):e);return t?i:e})}export{m as a,a as c,l as d,d as f,s as i,f as l,p as n,g as o,h as r,o as s,i as t,u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./queryOptions-CMSBCFOf.js";import{$ as t}from"./sdk.gen-
|
|
1
|
+
import{t as e}from"./queryOptions-CMSBCFOf.js";import{$ as t}from"./sdk.gen-DeyOX3Kb.js";import{n,r,t as i}from"./api-errors-DHvv5HEN.js";function a(e){return e.surfacedAt==null?e.conversationType===`background`||e.conversationType===`scheduled`||e.groupId===`system:background`||e.groupId===`system:scheduled`:!1}function o(e){return e.conversationType===`scheduled`||e.groupId===`system:scheduled`}function s(e){return!e.hasUnseenLatestAssistantMessage&&!a(e)&&e.conversationId!=null&&e.latestAssistantMessageAt!=null}function c(e){return e.hasUnseenLatestAssistantMessage===!0&&!a(e)&&e.conversationId!=null}function l(e){return e.hasUnseenLatestAssistantMessage===!0&&!a(e)&&e.archivedAt==null}function u(e){return typeof e==`number`&&Number.isFinite(e)?e:void 0}function d(e){return typeof e==`string`?e:void 0}function f(e){if(e)return{sourceChannel:e.sourceChannel,externalChatId:e.externalChatId,externalThreadId:e.externalThreadId,externalChatName:e.externalChatName,externalUserId:d(e.externalUserId),displayName:d(e.displayName),username:d(e.username),slackChannel:e.slackChannel?{channelId:e.slackChannel.channelId,name:e.slackChannel.name,link:e.slackChannel.link?.webUrl?{webUrl:e.slackChannel.link.webUrl}:void 0}:void 0,slackThread:e.slackThread?{channelId:e.slackThread.channelId,threadTs:e.slackThread.threadTs,link:e.slackThread.link?.appUrl||e.slackThread.link?.webUrl?{appUrl:e.slackThread.link.appUrl,webUrl:e.slackThread.link.webUrl}:void 0}:void 0}}function p(e){let t=e.assistantAttention,n=e.channelBinding?.sourceChannel??d(e.conversationOriginChannel);return{conversationId:e.id,title:e.title,createdAt:u(e.createdAt),lastMessageAt:u(e.lastMessageAt??e.updatedAt),hasUnseenLatestAssistantMessage:t?.hasUnseenLatestAssistantMessage,latestAssistantMessageAt:u(t?.latestAssistantMessageAt),lastSeenAssistantMessageAt:u(t?.lastSeenAssistantMessageAt),archivedAt:e.archivedAt,surfacedAt:u(e.surfacedAt),groupId:d(e.groupId),source:e.source,isPinned:e.isPinned,conversationType:e.conversationType,scheduleJobId:e.scheduleJobId,displayOrder:u(e.displayOrder),channelBinding:f(e.channelBinding),originChannel:n,isProcessing:e.isProcessing}}function m(e){return p(e)}var h=`conversation-list`;function g(e){return[h,e??``]}function _(e){return[h,e??``,`foreground`]}function v(e){return[h,e??``,`archived`]}function y(e){return[h,e??``,`background`]}function b(e){return[h,e??``,`scheduled`]}function x(e){return[h,e??``,`channel`]}function S(e){return(t,n)=>(n[e]??0)-(t[e]??0)}var C=50,w=200;async function T(e,a,o={}){let{conversationType:s,archiveStatus:c,originChannel:l}=o,{data:u,error:d,response:f}=await t({path:{assistant_id:e},query:{limit:C,offset:a,...s?{conversationType:s}:{},...c?{archiveStatus:c}:{},...l?{originChannel:l}:{}},throwOnError:!1});if(n(f,d,`Failed to list conversations.`),!f.ok){let e=r(d,f,`Failed to list conversations.`);throw new i(f.status,e)}return{conversations:(u?.conversations??[]).map(p),hasMore:u?.hasMore??!1}}async function E(e,t={}){let n=[],r=new Set;for(let i=0;i<w;i++){let{conversations:a,hasMore:o}=await T(e,i*C,t);for(let e of a)r.has(e.conversationId)||(r.add(e.conversationId),n.push(e));if(!o||a.length===0)break}return n}async function D(e,t=`active`,n=`lastMessageAt`){let r=t===`active`?{}:{archiveStatus:t},i={...r,conversationType:`background`},[a,o]=await Promise.allSettled([E(e,r),E(e,i)]);if(a.status===`rejected`)throw a.reason;if(o.status===`rejected`)throw o.reason;let s=a.value,c=o.value,l=new Set,u=[];for(let e of[...s,...c])l.has(e.conversationId)||(l.add(e.conversationId),u.push(e));return u.sort(S(n)),u}async function O(e){return[...await E(e)].sort(S(`lastMessageAt`))}async function k(e){let{conversations:t}=await T(e,0);return t.length>0}async function A(e){return(await E(e,{conversationType:`background`})).filter(e=>!o(e)).sort(S(`lastMessageAt`))}async function j(e){return[...await E(e,{conversationType:`scheduled`})].sort(S(`lastMessageAt`))}async function M(e){return D(e,`archived`,`archivedAt`)}async function N(e){let t=await T(e,0);return{...t,conversations:[...t.conversations].sort(S(`lastMessageAt`))}}async function P(e){let t=await T(e,0,{conversationType:`background`});return{...t,conversations:t.conversations.filter(e=>!o(e)).sort(S(`lastMessageAt`))}}async function F(e){let t=await T(e,0,{conversationType:`scheduled`});return{...t,conversations:[...t.conversations].sort(S(`lastMessageAt`))}}var I=3e4;function L(t){return e({queryKey:_(t),queryFn:()=>O(t),staleTime:I})}function R(t){return e({queryKey:y(t),queryFn:()=>A(t),staleTime:I})}function z(t){return e({queryKey:b(t),queryFn:()=>j(t),staleTime:I})}function B(t){return e({queryKey:v(t),queryFn:()=>M(t),staleTime:I})}export{s as _,L as a,o as b,k as c,F as d,x as f,c as g,m as h,y as i,P as l,b as m,v as n,g as o,z as p,R as r,_ as s,B as t,N as u,l as v,a as y};
|