@vellumai/web 0.11.4-staging.1 → 0.11.4-staging.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -8
- package/dist/assets/{BundleConfirmPage-BbdN3tFL.js → BundleConfirmPage-Blq6GhVG.js} +1 -1
- package/dist/assets/{Trans-Ch_EPHgV.js → Trans-CPcWO-v6.js} +1 -1
- package/dist/assets/{about-page-B-1ST2gv.js → about-page-CTTTxSzr.js} +1 -1
- package/dist/assets/{access-DgWVDTc-.js → access-wabdRUmQ.js} +1 -1
- package/dist/assets/{account-page-Bjw-Whl-.js → account-page-DINYg3Rl.js} +1 -1
- package/dist/assets/{account-shell-7DXx2oD4.js → account-shell-DQFZ4C79.js} +1 -1
- package/dist/assets/{acp-run-actions-D3BHB3kZ.js → acp-run-actions-CkYR2vBH.js} +1 -1
- package/dist/assets/{acp-run-detail-panel-CMV1hamc.js → acp-run-detail-panel-Dt_Dcegh.js} +4 -4
- package/dist/assets/{acp-run-store-DpbMRWeI.js → acp-run-store-k9Syb04D.js} +1 -1
- package/dist/assets/activity-steps-panel-B9N9npP8.js +1 -0
- package/dist/assets/{add-credential-modal-CAorWf5a.js → add-credential-modal-Bn2SkYV8.js} +1 -1
- package/dist/assets/{add-credits-modal-NK9YUVin.js → add-credits-modal-lFCQGz49.js} +1 -1
- package/dist/assets/ai-page-DuZ_jor4.js +1 -0
- package/dist/assets/{api-xbjYCkk-.js → api-C72Ea0va.js} +1 -1
- package/dist/assets/{api-asaDrkTi.js → api-Dppu0jIX.js} +1 -1
- package/dist/assets/{api-key-screen-BLsynLtR.js → api-key-screen-CbIBGdOH.js} +1 -1
- package/dist/assets/{app-card-oG9LxSg9.js → app-card-BrtrF2PU.js} +1 -1
- package/dist/assets/{assistant-status-panel-CdJKE_VM.js → assistant-status-panel-DUB7x8Cv.js} +1 -1
- package/dist/assets/{auth-store-BDMYc7te.js → auth-store-B9pHhreb.js} +2 -2
- package/dist/assets/{avatar-random-cVA-5Ukx.js → avatar-random-Ux7JUtwk.js} +1 -1
- package/dist/assets/{background-task-actions-Cf2kEaWh.js → background-task-actions-D3TOUuY8.js} +1 -1
- package/dist/assets/{background-task-detail-panel-DWGWcjjS.js → background-task-detail-panel-nHViOVhW.js} +1 -1
- package/dist/assets/{background-task-store-eQZGVUDr.js → background-task-store-r1LOGfBn.js} +1 -1
- package/dist/assets/{billing-page-scyDxDPK.js → billing-page-BtPUFL3X.js} +3 -3
- package/dist/assets/{bookmarks-page-JMPRm3As.js → bookmarks-page-BA7-0dXF.js} +1 -1
- package/dist/assets/{browser-CZ10MkOr.js → browser-DwONNRIj.js} +2 -2
- package/dist/assets/{build-state-DdpPjDMZ.js → build-state-bnyw3m5Y.js} +1 -1
- package/dist/assets/channels-page-route-Da6XgpGs.js +9 -0
- package/dist/assets/{chat-sgiUoK1u.js → chat-BfpNzA77.js} +1 -1
- package/dist/assets/chat-DRdXDFUk.js +3 -0
- package/dist/assets/{chat-avatar-B1G491hG.js → chat-avatar-RM6-aunH.js} +1 -1
- package/dist/assets/chat-markdown-message-DWQZLyLI.js +1 -0
- package/dist/assets/{checkout-continuation-ChMQkpyi.js → checkout-continuation-B34WX6T6.js} +1 -1
- package/dist/assets/{checkout-page-Cpk90EXc.js → checkout-page-ZxCMmuwz.js} +1 -1
- package/dist/assets/checkout-return-target-CpckAKDY.js +1 -0
- package/dist/assets/{client-perf-C4GkD7vz.js → client-perf-Daz5cYUH.js} +1 -1
- package/dist/assets/command-palette-C6h4Ip2u.js +1 -0
- package/dist/assets/{command-palette-window-page-BP9A8L2v.js → command-palette-window-page-BKbM5K6f.js} +1 -1
- package/dist/assets/{companion-surface-page-B0hbyF1T.js → companion-surface-page-BbU9Hj0z.js} +1 -1
- package/dist/assets/{composer-settings-BMKJP4Ik.js → composer-settings-DYfbHO-e.js} +1 -1
- package/dist/assets/{connect-page-DKFPwsN0.js → connect-page-DxRMNc2U.js} +1 -1
- package/dist/assets/{consent-controls-hAYNW2he.js → consent-controls-Dz0ScMsh.js} +1 -1
- package/dist/assets/contacts-page-route-C-7wKpdG.js +1 -0
- package/dist/assets/{conversation-cache-DY3GhyFA.js → conversation-cache-ztu3M4pz.js} +1 -1
- package/dist/assets/{conversation-list-fetchers-CVKv5BpN.js → conversation-list-fetchers-eA7yZMEu.js} +1 -1
- package/dist/assets/{conversation-navigation-Bw3eQBGU.js → conversation-navigation-tCTlvwgs.js} +1 -1
- package/dist/assets/{conversation-queries-7BVaya69.js → conversation-queries-DkkuIyRB.js} +1 -1
- package/dist/assets/{credential-entry-page-BxNWgyvZ.js → credential-entry-page-DqEK_3ve.js} +1 -1
- package/dist/assets/credentials-page-Nx8MKxw7.js +1 -0
- package/dist/assets/{csv-preview-Ba7nV5mb.js → csv-preview-DfyT2oPn.js} +1 -1
- package/dist/assets/{daily-reset-time-i6mZWgVc.js → daily-reset-time-B28vdbVK.js} +1 -1
- package/dist/assets/debug-page-F58Vngs5.js +4 -0
- package/dist/assets/{deploy-dialogs-CG-65xs0.js → deploy-dialogs-Dr5UW72X.js} +1 -1
- package/dist/assets/{deploy-store-eps_MrT7.js → deploy-store-BAIpED5W.js} +1 -1
- package/dist/assets/{detail-card-CC0br9gQ.js → detail-card-BvBqhvvy.js} +1 -1
- package/dist/assets/{detail-drawer-BpdqER__.js → detail-drawer-zQohjzAF.js} +1 -1
- package/dist/assets/{detail-shell-Bmyv2wPh.js → detail-shell-6omiDynS.js} +1 -1
- package/dist/assets/developer-page-BgkajhCF.js +1 -0
- package/dist/assets/{diagnostics-CeLo0IQo.js → diagnostics-B6s70M5A.js} +1 -1
- package/dist/assets/{doctor-handoff-store-D1gIUvVD.js → doctor-handoff-store-DbvChP6h.js} +1 -1
- package/dist/assets/{document-viewer-container-Bywwxt6G.js → document-viewer-container-CiSaZjGT.js} +2 -2
- package/dist/assets/{document-viewer-page-qJKfO2Qb.js → document-viewer-page-B41ybONf.js} +1 -1
- package/dist/assets/{emails-page-B0--yw62.js → emails-page-zqESuC5i.js} +1 -1
- package/dist/assets/{esm-CoB42w1C.js → esm-BAZfwa77.js} +2 -2
- package/dist/assets/{esm-DyAueRRL.js → esm-BpO8b4iY.js} +2 -2
- package/dist/assets/esm-C-oF6bck.js +2 -0
- package/dist/assets/{esm-BbX6z_Bm.js → esm-CuIRAuen.js} +2 -2
- package/dist/assets/{esm-_vI9--3B.js → esm-CyDcfaYH.js} +2 -2
- package/dist/assets/{esm-BKg0nbmu.js → esm-D7eT5n3U.js} +2 -2
- package/dist/assets/{esm-B4xcxzQN.js → esm-tXi8GsTV.js} +2 -2
- package/dist/assets/eye-bbox-BR5NO1BX.js +1 -0
- package/dist/assets/file-editor-B2BJsOt0.js +1 -0
- package/dist/assets/file-markdown-EG3aJEi8.js +2 -0
- package/dist/assets/first-run-scope-mN3YhjgX.js +1 -0
- package/dist/assets/{funnel-events-BddkbWqn.js → funnel-events-CH_O9aTg.js} +1 -1
- package/dist/assets/general-page-C6eGuDih.js +1 -0
- package/dist/assets/{haptics-DafZDCxm.js → haptics-BhuZvnto.js} +2 -2
- package/dist/assets/{hatching-screen-BKfkDhPr.js → hatching-screen-Ceyfxgc-.js} +1 -1
- package/dist/assets/{home-page-route-B6vQYv0r.js → home-page-route-DdXLgyeu.js} +1 -1
- package/dist/assets/{home-tool-permission-card-IF0-aLrT.js → home-tool-permission-card-NAxzVd1l.js} +1 -1
- package/dist/assets/{hosting-screen-BJ5SfJoU.js → hosting-screen-D05jZjLX.js} +1 -1
- package/dist/assets/{i18n-zb2mgr1B.js → i18n-BR-AyG5b.js} +2 -2
- package/dist/assets/identity-page-route-BlKLitBM.js +7 -0
- package/dist/assets/{index-xicEUutS.js → index-CKyw1JVb.js} +3 -3
- package/dist/assets/index-DJ5ObIDJ.css +2 -0
- package/dist/assets/{ingest-B9D2Cyin.js → ingest-BwYkhorN.js} +1 -1
- package/dist/assets/inspect-page-m1poii66.js +9 -0
- package/dist/assets/integrations-page-Duhjka1l.js +1 -0
- package/dist/assets/{intelligence-layout-BESJ3-1s.js → intelligence-layout-ld1yOf08.js} +1 -1
- package/dist/assets/{invalidate-memory-queries-CS15Vuec.js → invalidate-memory-queries-YJf2XJ5P.js} +1 -1
- package/dist/assets/{invalidate-plugin-queries-DvUskShG.js → invalidate-plugin-queries-CySCFK8G.js} +1 -1
- package/dist/assets/latest-assistant-text-CDrxmzc0.js +24 -0
- package/dist/assets/{library-detail-page-BBfYWKvm.js → library-detail-page-v5CrGIps.js} +1 -1
- package/dist/assets/{library-page-BgbT6zej.js → library-page-BUnsZHzU.js} +1 -1
- package/dist/assets/{local-runtime-upgrade-SQQhJhOk.js → local-runtime-upgrade-Bwp6_dxW.js} +1 -1
- package/dist/assets/{login-flow-CTw5lXLx.js → login-flow-imrf1-ub.js} +1 -1
- package/dist/assets/{login-page-D2GAHcR7.js → login-page-C8owPhpB.js} +1 -1
- package/dist/assets/{logout-page-Cukoglve.js → logout-page-DfY78j6S.js} +1 -1
- package/dist/assets/{logs-layout-B4KDB9Sb.js → logs-layout-Dox-b2zq.js} +1 -1
- package/dist/assets/{media-preview-DjetaJpN.js → media-preview-6mD4wHKW.js} +1 -1
- package/dist/assets/{memory-page-route-Bnyvrbhn.js → memory-page-route-Cen_nGPc.js} +1 -1
- package/dist/assets/{memory-router-playground-page-8M60K9iJ.js → memory-router-playground-page-BvNM2MJO.js} +1 -1
- package/dist/assets/{message-files-panel-Cwlkr5w4.js → message-files-panel-CECqngl9.js} +1 -1
- package/dist/assets/{messages-D0PQ2X1S.js → messages-ctx0P03F.js} +1 -1
- package/dist/assets/{metric-card-SnROKwaj.js → metric-card-CRmU_rxS.js} +1 -1
- package/dist/assets/{multi-activity-group-CenHDhpe.js → multi-activity-group-DuW4ziR3.js} +1 -1
- package/dist/assets/native-anchor-BE-YHt8Q.js +1 -0
- package/dist/assets/native-deep-link-DliAfHU5.js +2 -0
- package/dist/assets/{native-file-DWbiI8L-.js → native-file-B9kJgftd.js} +2 -2
- package/dist/assets/{navigation-resolver-jn3fW9IN.js → navigation-resolver-CDeIpFuD.js} +1 -1
- package/dist/assets/{not-found-CRrNNxgD.js → not-found-mMT3d6dm.js} +1 -1
- package/dist/assets/{notifications-D7I0R0Np.js → notifications-Dx3P9a9Q.js} +1 -1
- package/dist/assets/{notifications-page-D6Llk4Q-.js → notifications-page-COU3Z3YY.js} +1 -1
- package/dist/assets/{oauth-complete-page-E47i6-KO.js → oauth-complete-page-D5uYsl41.js} +1 -1
- package/dist/assets/{oauth-connection-utils-BnF9kIoa.js → oauth-connection-utils-SS0qmAK4.js} +1 -1
- package/dist/assets/{oauth-popup-complete-page-Be9bz47B.js → oauth-popup-complete-page-BLw62jns.js} +1 -1
- package/dist/assets/open-workspace-file-DFo0Oq0o.js +2 -0
- package/dist/assets/{operational-status-DswnmGh5.js → operational-status-BsKLhv9Z.js} +1 -1
- package/dist/assets/{page-shell-CUz7vDVT.js → page-shell-DD_mHkHn.js} +1 -1
- package/dist/assets/{pairing-page-B93qLwkU.js → pairing-page-CI_qOlWo.js} +1 -1
- package/dist/assets/{pdf-file-preview-aTyWAALx.js → pdf-file-preview-5NsoLZLI.js} +1 -1
- package/dist/assets/{pdf-preview-CFuSHh-t.js → pdf-preview-DEWKJD0r.js} +2 -2
- package/dist/assets/{personality-page-Do1Q8mUB.js → personality-page-CI8jnXQp.js} +1 -1
- package/dist/assets/{plans-page-CxRb_Kby.js → plans-page-BlxaE-cv.js} +1 -1
- package/dist/assets/{platform-detection-BIfuAgU8.js → platform-detection-D4gxJctC.js} +1 -1
- package/dist/assets/{platform-login-notice-CaNQOYUj.js → platform-login-notice-CM-AbOQ7.js} +1 -1
- package/dist/assets/{platform-loopback-page-205CvkDI.js → platform-loopback-page-BLNuk6f2.js} +1 -1
- package/dist/assets/{preview-error-CdFTgKSI.js → preview-error-B-1p750d.js} +1 -1
- package/dist/assets/{privacy-page-Beg9rE7-.js → privacy-page-0K-bsvKl.js} +1 -1
- package/dist/assets/{privacy-screen-EFJ-aTdl.js → privacy-screen-DgDOXFfw.js} +1 -1
- package/dist/assets/profile-pickers-DBCSE_FG.js +1 -0
- package/dist/assets/{provider-callback-page-BKDWiQis.js → provider-callback-page-BN9NQV7v.js} +1 -1
- package/dist/assets/{provider-signup-page-CsCS7GAV.js → provider-signup-page-CTwmzSoF.js} +1 -1
- package/dist/assets/{provisioning-targets-CSwI177z.js → provisioning-targets-CFe7Jgy1.js} +1 -1
- package/dist/assets/{push-registration-CVotM2hK.js → push-registration-CIhXf1CF.js} +2 -2
- package/dist/assets/{remove-from-device-dialog-BGul1xBz.js → remove-from-device-dialog-DSScuMVd.js} +1 -1
- package/dist/assets/{research-mock-page-DDwmtrZR.js → research-mock-page-bhSrGrBh.js} +1 -1
- package/dist/assets/research-onboarding-route-CKyfP6oo.js +50 -0
- package/dist/assets/{research-results-view-DDjp2hBc.js → research-results-view-7psD5IrG.js} +1 -1
- package/dist/assets/{retire-confirm-dialog-Cz64ywTF.js → retire-confirm-dialog-BD1rkM8j.js} +1 -1
- package/dist/assets/{review-terms-screen-Bros6R87.js → review-terms-screen-XIGeusDw.js} +1 -1
- package/dist/assets/routes-lLsbgbrj.js +24 -0
- package/dist/assets/{runtime-upgrade-banner-WHzYN73y.js → runtime-upgrade-banner-BeO8tW05.js} +2 -2
- package/dist/assets/{sandbox-bridge-ajRoXgYL.js → sandbox-bridge-BismgxxG.js} +1 -1
- package/dist/assets/{schedules-DjkLl0OP.js → schedules-DVJx5NG9.js} +1 -1
- package/dist/assets/schedules-page-DRr8EB5D.js +1 -0
- package/dist/assets/{select-assistant-screen-CALuntMj.js → select-assistant-screen-Cbta9HDV.js} +1 -1
- package/dist/assets/{self-hosted-servers-CsywZANM.js → self-hosted-servers-omz1yNrQ.js} +1 -1
- package/dist/assets/{setting-row-JYdvkVjj.js → setting-row-BgrWOMW9.js} +1 -1
- package/dist/assets/settings-DKVDS49I.js +1 -0
- package/dist/assets/{settings-divider-gaQk2Yl5.js → settings-divider-HtBTQzlA.js} +1 -1
- package/dist/assets/{settings-layout-vTkMzpIY.js → settings-layout-BdUaFkyr.js} +1 -1
- package/dist/assets/{settings-navigation-Dp0sDZAh.js → settings-navigation-vp8wtiyE.js} +1 -1
- package/dist/assets/{share-feedback-modal-DiQP_cCZ.js → share-feedback-modal-D9fAEU5y.js} +2 -2
- package/dist/assets/{sidebar-tree-CSPhTnBf.js → sidebar-tree-9BVzkS4K.js} +1 -1
- package/dist/assets/{signup-page-B2mbu3qd.js → signup-page-lzOszv4S.js} +1 -1
- package/dist/assets/{site-favicon-dST102dp.js → site-favicon-BvIzxzVw.js} +1 -1
- package/dist/assets/{skill-detail-page-BZO12fh5.js → skill-detail-page-BdSINra9.js} +2 -2
- package/dist/assets/skill-detail-panel-88oHOdSH.js +1 -0
- package/dist/assets/{skills-DdBQ-tNs.js → skills-HuNDpwX2.js} +1 -1
- package/dist/assets/{sounds-page-sGA-Nc8o.js → sounds-page-CeZjxvIu.js} +1 -1
- package/dist/assets/{src-DjIqxQVd.js → src-njXJqrpo.js} +3 -3
- package/dist/assets/{start-screen-DeVoGKX1.js → start-screen-B1dP4bbA.js} +1 -1
- package/dist/assets/status-badge-pill-BuiIFTz-.js +1 -0
- package/dist/assets/stt-language-picker-modal-BK_1xcYe.js +1 -0
- package/dist/assets/subagent-detail-panel-CkxNHVOv.js +4 -0
- package/dist/assets/{subagent-store-ChHk8ZsH.js → subagent-store-B0Ftpguk.js} +1 -1
- package/dist/assets/{superpowers-page-Dk3g_Of2.js → superpowers-page-B_1_d4LI.js} +1 -1
- package/dist/assets/{system-events-page-XYxGo8gh.js → system-events-page-BBVNKwBJ.js} +1 -1
- package/dist/assets/{telegram-setup-wizard-DgdjP2o8.js → telegram-setup-wizard-D_Vwl3_I.js} +1 -1
- package/dist/assets/{text-preview-BJRoXOON.js → text-preview-BIeJHE0-.js} +1 -1
- package/dist/assets/{theme-stage-page-DPIsJBUJ.js → theme-stage-page-gWlI1Nzt.js} +1 -1
- package/dist/assets/{tiptap-document-editor-Cjd5FCBm.js → tiptap-document-editor-BunsgiVU.js} +1 -1
- package/dist/assets/toggle-ibKLySIy.js +1 -0
- package/dist/assets/{tool-detail-panel-CeDWOdH-.js → tool-detail-panel-DhzIzJ1Y.js} +2 -2
- package/dist/assets/{upgrade-cancel-page-D24RCdAz.js → upgrade-cancel-page-BiXIXlae.js} +1 -1
- package/dist/assets/{upgrade-success-page-A6d7PRGt.js → upgrade-success-page-C3ptzfvo.js} +1 -1
- package/dist/assets/{use-assistant-capability-CYKqSbfq.js → use-assistant-capability-B55Ji4gD.js} +1 -1
- package/dist/assets/use-assistant-identity-details-0JMOrf_F.js +1 -0
- package/dist/assets/{use-attachment-preview-DvVweDZY.js → use-attachment-preview-jmFGN8h6.js} +2 -2
- package/dist/assets/{use-attachment-squares-ELH7PQrT.js → use-attachment-squares-BSKsILdv.js} +1 -1
- package/dist/assets/{use-bookmarks-B4g9FKC7.js → use-bookmarks-gJWrPT2g.js} +1 -1
- package/dist/assets/{use-checkout-dismiss-refresh-CkeQGnJ0.js → use-checkout-dismiss-refresh-vVysV2xK.js} +1 -1
- package/dist/assets/{use-command-palette-sections-D0RCkx0m.js → use-command-palette-sections-BFV15eUp.js} +1 -1
- package/dist/assets/{use-copy-to-clipboard-oZUc3_ey.js → use-copy-to-clipboard-BeG7f_tZ.js} +1 -1
- package/dist/assets/{use-edge-swipe-Bde-t-dW.js → use-edge-swipe-BxVxJfNS.js} +1 -1
- package/dist/assets/use-edge-swipe-back-DpMHlX97.js +2 -0
- package/dist/assets/{use-edit-app-BZv0JIfX.js → use-edit-app-BlsO9Zav.js} +1 -1
- package/dist/assets/use-element-size-DeouS2c2.js +1 -0
- package/dist/assets/use-invite-link-dialog-TjRVy1GF.js +1 -0
- package/dist/assets/{use-is-org-ready-CWNhmJ2b.js → use-is-org-ready-DyYOTCvQ.js} +1 -1
- package/dist/assets/{use-onboarding-login-Zjbfg9rl.js → use-onboarding-login-DMUDDVUi.js} +1 -1
- package/dist/assets/{use-platform-assistant-id-Bafo85js.js → use-platform-assistant-id-BE6AIost.js} +1 -1
- package/dist/assets/{use-platform-gate-DzpdjzIz.js → use-platform-gate-zft2-meL.js} +1 -1
- package/dist/assets/{use-return-to-short-circuit-pEcvMXUl.js → use-return-to-short-circuit-LcamIc_k.js} +1 -1
- package/dist/assets/use-side-list-room-C1msxm__.js +1 -0
- package/dist/assets/{use-skill-actions-CeeCY9Uf.js → use-skill-actions-oBpczwnY.js} +1 -1
- package/dist/assets/use-sticky-profiles-D6xRVCOS.js +1 -0
- package/dist/assets/use-stt-language-selection-D7DxP7Eo.js +1 -0
- package/dist/assets/{use-subagent-card-data-BIb6t3HE.js → use-subagent-card-data-DOp8Etmj.js} +1 -1
- package/dist/assets/use-touch-mobile-CXJ4hTiW.js +1 -0
- package/dist/assets/{use-transcript-message-by-id-DUV4woMl.js → use-transcript-message-by-id-D5hHvanI.js} +1 -1
- package/dist/assets/{use-transcript-messages-BLtVYqAv.js → use-transcript-messages-BL55GFRr.js} +1 -1
- package/dist/assets/{use-voice-sample-preview-BY_J5WVl.js → use-voice-sample-preview-CLWX7j-h.js} +1 -1
- package/dist/assets/{useTranslation-Dn8TOHE6.js → useTranslation-DxUSOwQs.js} +1 -1
- package/dist/assets/{viewer-store-D3KM2E2N.js → viewer-store-DWY4BtGj.js} +1 -1
- package/dist/assets/voice-page-C3q84Y4H.js +1 -0
- package/dist/assets/{voice-providers-note-BLOdThkh.js → voice-providers-note-CuMBTzti.js} +1 -1
- package/dist/assets/{web-D8nAsA9l.js → web-S8v4qZ8W.js} +1 -1
- package/dist/assets/{web-5yJbtoui.js → web-zM0OZM8V.js} +1 -1
- package/dist/assets/{welcome-screen-U_A3pIDj.js → welcome-screen-Cy46Bw63.js} +1 -1
- package/dist/assets/workflow-detail-panel-CM1Jep4m.js +1 -0
- package/dist/assets/{workflow-store-Dgz97WCS.js → workflow-store-Bpg1fqWU.js} +1 -1
- package/dist/assets/workspace-page-eCfV4q3_.js +1 -0
- package/dist/assets/{workspace-tree-query-C6kx2Bkh.js → workspace-tree-query-BfWSVQB5.js} +1 -1
- package/dist/index.html +109 -108
- package/package.json +1 -1
- package/dist/assets/activity-steps-panel-DEgGLFtM.js +0 -1
- package/dist/assets/ai-page--36Riirz.js +0 -1
- package/dist/assets/channels-page-route-CoHtlp77.js +0 -9
- package/dist/assets/chat-5s_HqBzL.js +0 -3
- package/dist/assets/chat-markdown-message-Btoc6C1G.js +0 -1
- package/dist/assets/checkout-return-target-CYf9SBig.js +0 -1
- package/dist/assets/command-palette-D79Jq26W.js +0 -1
- package/dist/assets/contacts-page-route-9Y1S_HAN.js +0 -1
- package/dist/assets/credentials-page-BVg_keF0.js +0 -1
- package/dist/assets/debug-page-4N-Zj-ts.js +0 -4
- package/dist/assets/developer-page-CQS354Wk.js +0 -1
- package/dist/assets/esm-b7JWOeNl.js +0 -2
- package/dist/assets/file-editor-CSWBRXC5.js +0 -1
- package/dist/assets/file-markdown-CyzsCI8p.js +0 -2
- package/dist/assets/first-run-scope-Cc45jqTq.js +0 -1
- package/dist/assets/general-page-C3gmPYF3.js +0 -1
- package/dist/assets/identity-page-route-D7kzw3D3.js +0 -7
- package/dist/assets/index-BPNYOrwT.css +0 -2
- package/dist/assets/inspect-page-EDi2BOrZ.js +0 -9
- package/dist/assets/integrations-page-DC4dbZvc.js +0 -1
- package/dist/assets/latest-assistant-text-Bhqw0WEB.js +0 -24
- package/dist/assets/mobile-sidebar-drawer-CA_YsRi_.js +0 -1
- package/dist/assets/native-anchor-txt0veYo.js +0 -1
- package/dist/assets/native-deep-link-EZIezcy9.js +0 -1
- package/dist/assets/open-workspace-file-D2FXjNVn.js +0 -2
- package/dist/assets/profile-pickers-CKLILvRc.js +0 -1
- package/dist/assets/research-onboarding-route-BviJKsoz.js +0 -50
- package/dist/assets/routes-Q2DdFIGG.js +0 -24
- package/dist/assets/schedules-page-Bodkcg3J.js +0 -1
- package/dist/assets/settings-DGaRub9k.js +0 -1
- package/dist/assets/skill-detail-panel-CEepQHmY.js +0 -1
- package/dist/assets/status-badge-pill-DxtUb8z3.js +0 -1
- package/dist/assets/stt-language-picker-modal-CihIASi8.js +0 -1
- package/dist/assets/subagent-detail-panel-C9Y7dfKo.js +0 -4
- package/dist/assets/toggle-C-v4x7_A.js +0 -1
- package/dist/assets/use-assistant-identity-details-BVjzLgp6.js +0 -1
- package/dist/assets/use-edge-swipe-back-BWEVQPEJ.js +0 -2
- package/dist/assets/use-element-size-G76uplCp.js +0 -1
- package/dist/assets/use-invite-link-dialog-DgDcqWMz.js +0 -1
- package/dist/assets/use-sticky-profiles-BN2tBekP.js +0 -1
- package/dist/assets/use-touch-mobile-JVxY9M-0.js +0 -1
- package/dist/assets/voice-list-uy2Kwdwg.js +0 -1
- package/dist/assets/voice-page-Bi7r475U.js +0 -1
- package/dist/assets/workflow-detail-panel-fguePScg.js +0 -1
- package/dist/assets/workspace-page-Cp11wrja.js +0 -1
- /package/dist/assets/{a2a-invite-B5XOcUL6.js → a2a-invite-BNCOmr8h.js} +0 -0
- /package/dist/assets/{account-IaNiNsKu.js → account-CtIKBm9p.js} +0 -0
- /package/dist/assets/{android-consumption-only-eY-NLtwG.js → android-consumption-only-CwC2kibz.js} +0 -0
- /package/dist/assets/{animated-avatar-D9mX2duB.js → animated-avatar--_W54iT9.js} +0 -0
- /package/dist/assets/{app-info-xT5AH6o4.js → app-info-DFgKdE7W.js} +0 -0
- /package/dist/assets/{app-types-B4-pVNnY.js → app-types-BY00pXhT.js} +0 -0
- /package/dist/assets/{apple-logo-CVMvoWvp.js → apple-logo-Biu93CTa.js} +0 -0
- /package/dist/assets/{archive-redirect-page-CfCci8ho.js → archive-redirect-page-bx5xRoCl.js} +0 -0
- /package/dist/assets/{avatar-renderer-khj83dWw.js → avatar-renderer-Bja-CJEM.js} +0 -0
- /package/dist/assets/{avatar-subagent-B68bxt0O.js → avatar-subagent-C1J2pUFc.js} +0 -0
- /package/dist/assets/{avatar-tone-CQWYpANf.js → avatar-tone-CTq4cNAY.js} +0 -0
- /package/dist/assets/{billing-redirect-page-XcpsfvIl.js → billing-redirect-page-Dp-j37M1.js} +0 -0
- /package/dist/assets/{build.umd-Bg-JE3PW.js → build.umd-CKImEzO1.js} +0 -0
- /package/dist/assets/{channels-DkTY8D9c.js → channels-C4uOLymq.js} +0 -0
- /package/dist/assets/{common-XXvgM1Lv.js → common-CPxc0tHz.js} +0 -0
- /package/dist/assets/{community-page-CB9oMqgC.js → community-page-D1uzvBFw.js} +0 -0
- /package/dist/assets/{contacts-gateway-D0hHW9dI.js → contacts-gateway-Dp40T_dj.js} +0 -0
- /package/dist/assets/{contacts-Dnxb4zeF.js → contacts-pvrehYPe.js} +0 -0
- /package/dist/assets/{copy-to-clipboard-SOu7HUET.js → copy-to-clipboard-DRZUoOti.js} +0 -0
- /package/dist/assets/{credential-requests-DvnleKK2.js → credential-requests-BsmEdX7t.js} +0 -0
- /package/dist/assets/{danger-zone-redirect-page-BIYa_At7.js → danger-zone-redirect-page-DY3LtITR.js} +0 -0
- /package/dist/assets/{definitions-BLBMbDPd.js → definitions-BNyfuzue.js} +0 -0
- /package/dist/assets/{definitions-BLHO5zVb.js → definitions-DMGv-AVM.js} +0 -0
- /package/dist/assets/{devices-redirect-page-DJtEpVr7.js → devices-redirect-page-BXqfVWSd.js} +0 -0
- /package/dist/assets/{dictation-overlay-page-DLZGCPP_.js → dictation-overlay-page-DR63_PvH.js} +0 -0
- /package/dist/assets/{diff-rows-C_ARHWq3.js → diff-rows-ZG9FwscH.js} +0 -0
- /package/dist/assets/{edit-chat-session-CcwN_rea.js → edit-chat-session-B38z6oPP.js} +0 -0
- /package/dist/assets/{emoji-catalog-data-BGlYkVas.js → emoji-catalog-data-Dqyvj5Ne.js} +0 -0
- /package/dist/assets/{environment-store-CR6vnG9G.js → environment-store-DCU3hheH.js} +0 -0
- /package/dist/assets/{esm-DgDCYysh.js → esm-Bbh10TA1.js} +0 -0
- /package/dist/assets/{esm-BYiovSCx.js → esm-C0OhtIaa.js} +0 -0
- /package/dist/assets/{format-date-Cl5z8sZt.js → format-date-mZFhGVxR.js} +0 -0
- /package/dist/assets/{format-file-size-B3w8pfkS.js → format-file-size-D7QcCVUg.js} +0 -0
- /package/dist/assets/{home-CF1B7GqE.js → home-CoA1W6RA.js} +0 -0
- /package/dist/assets/{intelligence-Dcw50PsN.js → intelligence-Bpz4mQfO.js} +0 -0
- /package/dist/assets/{keyboard-shortcuts-redirect-page-BSNa3QLh.js → keyboard-shortcuts-redirect-page-BUEUuL5W.js} +0 -0
- /package/dist/assets/{library-CCXCwc6z.js → library-CxAscKuj.js} +0 -0
- /package/dist/assets/{link-click-BhQuhukA.js → link-click-c4p6nI2M.js} +0 -0
- /package/dist/assets/{logs-nlP1em1X.js → logs-BlQUbg5S.js} +0 -0
- /package/dist/assets/{machine-sizes-Bx2eSjOW.js → machine-sizes-D5IsW7GE.js} +0 -0
- /package/dist/assets/{onboarding-C6ZFK4YA.js → onboarding-C-LQqXEa.js} +0 -0
- /package/dist/assets/{onboarding-step-layout-CFCN1Nnk.js → onboarding-step-layout-Cksqlmsb.js} +0 -0
- /package/dist/assets/{optimistic-lifecycle-EXwQgNvb.js → optimistic-lifecycle-DIWfvuIw.js} +0 -0
- /package/dist/assets/{page-empty-state-DRbcD4aa.js → page-empty-state-Df3EP_DE.js} +0 -0
- /package/dist/assets/{password-reset-page-Cmbeaggq.js → password-reset-page-0k2eeyou.js} +0 -0
- /package/dist/assets/{pdf-BUxbm1S7.js → pdf-CpDfklza.js} +0 -0
- /package/dist/assets/{plugin-attribution-B_3pbh6m.js → plugin-attribution-TebhIznA.js} +0 -0
- /package/dist/assets/{plugin-detail-page-C0zaBBon.js → plugin-detail-page-N3j9G0yc.js} +0 -0
- /package/dist/assets/{plugins-page-BuN35WCX.js → plugins-page-BPSPELgG.js} +0 -0
- /package/dist/assets/{preview-skeleton-BLpm3j7s.js → preview-skeleton-BreSI6Ln.js} +0 -0
- /package/dist/assets/{profile-metadata-BxP0WOpJ.js → profile-metadata-DAXhAdlI.js} +0 -0
- /package/dist/assets/{provider-key-CzUfGGE_.js → provider-key-CR8jz-eM.js} +0 -0
- /package/dist/assets/{quick-input-page-DYc7eXbP.js → quick-input-page-Mw2f8F3_.js} +0 -0
- /package/dist/assets/{radio-card-nav-BOpJqAoO.js → radio-card-nav-BubfTKOh.js} +0 -0
- /package/dist/assets/{remote-web-COoOfi7K.js → remote-web-Di_UF41i.js} +0 -0
- /package/dist/assets/{schedules-DhrUSTxo.js → schedules-BaUXJBRS.js} +0 -0
- /package/dist/assets/{schedules-630osdOz.js → schedules-JL1Laub-.js} +0 -0
- /package/dist/assets/{security-redirect-page-D9_08zix.js → security-redirect-page-Ce11_hfW.js} +0 -0
- /package/dist/assets/{signup-shell-BLq9UcAD.js → signup-shell-XnqyIHQa.js} +0 -0
- /package/dist/assets/{skill-icon-BEzVeada.js → skill-icon-xO9VGnPV.js} +0 -0
- /package/dist/assets/{skills-page-CpajWLSk.js → skills-page-bnp9x1iR.js} +0 -0
- /package/dist/assets/{system-events-redirect-page-CdqIVW5m.js → system-events-redirect-page-W8knAadR.js} +0 -0
- /package/dist/assets/{terminal-B8-uO_zb.js → terminal-B4go-vP8.js} +0 -0
- /package/dist/assets/{three-dot-indicator-BFNMvd3i.js → three-dot-indicator-BhUevb3V.js} +0 -0
- /package/dist/assets/{usage-redirect-page-Bk755PQU.js → usage-redirect-page-DXcbB81p.js} +0 -0
- /package/dist/assets/{use-active-assistant-id-Cgt1z2rZ.js → use-active-assistant-id-Btl1-4sB.js} +0 -0
- /package/dist/assets/{use-local-file-info-CowxNLsG.js → use-local-file-info-Dz017Fii.js} +0 -0
- /package/dist/assets/{use-skill-detail-files-2agjQ-pp.js → use-skill-detail-files-Bzwall4_.js} +0 -0
- /package/dist/assets/{use-supports-credentials-settings-BBUFotal.js → use-supports-credentials-settings-D9oEIOk9.js} +0 -0
- /package/dist/assets/{weather-forecast-display-BMFPvW83.js → weather-forecast-display-BRi0CN73.js} +0 -0
- /package/dist/assets/{web-DT7CHk3X.js → web-Bc0yxcTg.js} +0 -0
- /package/dist/assets/{web-CnTPI_xz.js → web-DUcCWo6-.js} +0 -0
- /package/dist/assets/{web-CpFPB7iN.js → web-DnUU5XRV.js} +0 -0
- /package/dist/assets/{web-DfzBW3mJ.js → web-DoWs0tX8.js} +0 -0
- /package/dist/assets/{web-BXqKHeFH.js → web-DprnafKw.js} +0 -0
- /package/dist/assets/{web-fHk-S0Kt.js → web-bVuMezJ9.js} +0 -0
- /package/dist/assets/{web-D2fHQj5v.js → web-xXRFVuHp.js} +0 -0
- /package/dist/assets/{workspace-CCzLdd4F.js → workspace-B3DIYRpz.js} +0 -0
- /package/dist/assets/{xterm-CfcAttTO.js → xterm-5SK_xX72.js} +0 -0
- /package/dist/assets/{xterm-addon-fit-CmOTEB5O.js → xterm-addon-fit-Bov_2YwK.js} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{i as t,l as n,o as r}from"./local-settings-Bx7FsNo5.js";import{r as i,t as a}from"./capture-error-Cdvvw9J5.js";import{t as o}from"./react-BFJW0bSv.js";import{n as s,t as c}from"./button-DSjqKLvM.js";import{d as l,h as u}from"./chunk-5KNZJZUH-BUqIilZr.js";import{n as d}from"./QueryClientProvider-CMu7CkQU.js";import{t as f}from"./useQuery-Bz-fbQ-m.js";import{t as p}from"./useMutation-CXGTrp4W.js";import{t as m}from"./jsx-runtime-D3ZM-ToX.js";import{t as h}from"./typography-BeUa5Fd-.js";import{J as g,W as _,i as v}from"./src-DjIqxQVd.js";import{t as y}from"./check-CNBoUiyR.js";import{t as b}from"./circle-alert-DEIiXMF-.js";import{t as x}from"./circle-check-BG2g8udA.js";import{t as S}from"./menu-Gu_6PRrL.js";import{t as C}from"./clock-DSx5dIWv.js";import{t as w}from"./ellipsis-vertical-CAYfw0qB.js";import{t as T}from"./external-link-D65yhWAV.js";import{t as E}from"./info-Bjcv3rf9.js";import{t as D}from"./list-COQcQTOh.js";import{t as O}from"./loader-circle-oY5laABh.js";import{t as k}from"./mail-B0iH8Wii.js";import{t as A}from"./checkbox-DyHMOWN6.js";import{t as j}from"./plus-CwK68LCA.js";import{t as M}from"./search-DbyaO8rG.js";import{t as N}from"./trash-2-DL_3_16e.js";import{t as ee}from"./triangle-alert-C5SOfs-q.js";import{t as P}from"./notice-C9v3KOP3.js";import{t as F}from"./tag-D0oiSRye.js";import{t as I}from"./modal-Bt1DPFgW.js";import{t as L}from"./input-BG94bPcH.js";import{t as R}from"./toggle-C-v4x7_A.js";import{n as z}from"./toast-BrKo5b4d.js";import{t as B}from"./confirm-dialog-DNaRfy4W.js";import{t as V}from"./select-B86W_Hs8.js";import{t as te}from"./skeleton-CzdJByjE.js";import{o as H}from"./i18n-zb2mgr1B.js";import{t as U}from"./Trans-Ch_EPHgV.js";import{t as W}from"./useTranslation-Dn8TOHE6.js";import{i as ne,r as re}from"./api-errors-BTOPGXDV.js";import{C as G,E as K,F as q,L as J,M as Y,S as ie,_ as ae,a as oe,b as se,c as X,f as Z,g as ce,h as le,i as ue,j as de,l as fe,m as pe,n as me,o as he,p as ge,r as _e,s as ve,t as ye,v as be,w as xe,x as Se,y as Ce,z as we}from"./profile-pickers-CKLILvRc.js";import{B as Te,C as Ee,F as De,G as Oe,H as ke,I as Ae,J as je,K as Me,L as Ne,M as Pe,N as Fe,P as Ie,R as Le,S as Re,T as ze,U as Be,V as Ve,W as He,X as Ue,Y as We,_ as Ge,a as Ke,c as qe,d as Je,f as Ye,g as Xe,h as Ze,i as Qe,j as $e,l as et,m as tt,n as nt,o as rt,p as it,q as at,r as ot,s as st,t as ct,u as lt,v as ut,w as dt,x as ft,y as pt,z as mt}from"./use-sticky-profiles-BN2tBekP.js";import{t as ht}from"./assistant-identity-store-DTP7xfNP.js";import{n as gt,o as _t,r as vt}from"./utils-1ZnEn_W1.js";import{Jt as yt,Yt as bt,dt as xt,fr as St,j as Ct,kn as wt,mt as Tt}from"./sdk.gen-Br55zhZN.js";import{p as Et}from"./platform-detection-BIfuAgU8.js";import{d as Dt}from"./routes-C293MsBG.js";import{i as Ot}from"./use-platform-gate-DzpdjzIz.js";import{r as kt}from"./use-is-org-ready-CWNhmJ2b.js";import{Ct as At,Gt as jt,J as Mt,K as Nt,St as Pt,Tt as Ft,Xt as It,Y as Lt,_ as Rt,d as zt,f as Bt,g as Vt,h as Ht,m as Ut,p as Wt,q as Gt,sn as Kt,u as qt}from"./react-query.gen-vkBavCkI.js";import{c as Jt,d as Yt,f as Xt,ft as Zt,g as Qt,h as $t,l as en,m as tn,o as nn,p as rn,s as an,u as on,v as sn,y as cn}from"./react-query.gen-CqLxrlpP.js";import{n as ln}from"./use-is-mobile-BONxmNg6.js";import{t as un}from"./platform-login-notice-CaNQOYUj.js";import{t as dn}from"./android-consumption-only-eY-NLtwG.js";import{a as fn,c as pn,i as mn,n as hn,o as gn}from"./voice-list-uy2Kwdwg.js";import{n as _n}from"./use-voice-sample-preview-BY_J5WVl.js";import{t as vn}from"./use-active-assistant-id-Cgt1z2rZ.js";import{t as yn}from"./detail-shell-Bmyv2wPh.js";import{t as bn}from"./detail-card-CC0br9gQ.js";import{n as xn,t as Sn}from"./detail-drawer-BpdqER__.js";import{a as Cn}from"./schedules-DhrUSTxo.js";import{t as wn}from"./use-platform-assistant-id-Bafo85js.js";import{t as Tn}from"./environment-store-CR6vnG9G.js";import{t as En}from"./stt-language-picker-modal-CihIASi8.js";var Q=e(o(),1),$=m();function Dn({mode:e,onChange:t}){let{t:n}=W(`settings`);return(0,$.jsx)(`div`,{className:`max-w-[280px]`,children:(0,$.jsx)(_,{ariaLabel:n(`sharedUi.modeToggleAriaLabel`),value:e,onChange:t,items:[{value:`managed`,label:n(`sharedUi.managedLabel`)},{value:`your-own`,label:n(`sharedUi.yourOwnLabel`)}]})})}function On({id:e,title:t,subtitle:n,mode:r,onModeChange:i,children:a}){return(0,$.jsxs)(bn,{id:e,title:t,subtitle:n,accessory:(0,$.jsx)(Dn,{mode:r,onChange:i}),children:[(0,$.jsx)(`div`,{className:`h-px bg-[var(--surface-active)]`}),(0,$.jsx)(`div`,{className:`mt-4`,children:a})]})}function kn({id:e,title:t,subtitle:n,children:r}){return(0,$.jsxs)(bn,{id:e,title:t,subtitle:n,children:[(0,$.jsx)(`div`,{className:`h-px bg-[var(--surface-active)]`}),(0,$.jsx)(`div`,{className:`mt-4`,children:r})]})}function An({children:e}){return(0,$.jsxs)(`a`,{href:`https://www.vellum.ai/docs/pricing`,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex items-center gap-1 text-[var(--primary-base)] hover:underline`,children:[e,(0,$.jsx)(T,{className:`h-3.5 w-3.5`})]})}function jn(){return(0,$.jsxs)(`div`,{className:`flex items-start gap-2 rounded-lg border border-[var(--border-base)] bg-[var(--surface-base)] px-4 py-2.5`,children:[(0,$.jsx)(E,{className:`mt-0.5 h-4 w-4 shrink-0 text-[var(--content-tertiary)]`}),(0,$.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-secondary)]`,children:(0,$.jsx)(U,{i18nKey:`sharedUi.managedServicesBanner`,ns:`settings`,components:{link:(0,$.jsx)(An,{})}})})]})}function Mn({status:e,message:t,isLoading:n}){let{t:r}=W(`settings`);return n?(0,$.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-full bg-[var(--tag-bg-neutral)] px-2.5 py-0.5 text-body-small-default text-[var(--content-quiet)]`,children:[(0,$.jsx)(O,{className:`h-3 w-3 animate-spin`}),r(`sharedUi.checkingDomain`)]}):e?e===`verified`?(0,$.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-full bg-[var(--system-positive-weak)] px-2.5 py-0.5 text-body-small-default text-[var(--system-positive-strong)]`,title:r(`sharedUi.verifiedTitle`),children:[(0,$.jsx)(y,{className:`h-3 w-3`}),r(`sharedUi.domainVerified`)]}):e===`pending`||e===`not_started`?(0,$.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-full bg-[var(--system-mid-weak)] px-2.5 py-0.5 text-body-small-default text-[var(--system-mid-strong)]`,title:r(`sharedUi.verifyingTitle`),children:[(0,$.jsx)(C,{className:`h-3 w-3`}),r(`sharedUi.verifyingDomain`)]}):(0,$.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-full bg-[var(--system-negative-weak)] px-2.5 py-0.5 text-body-small-default text-[var(--system-negative-strong)]`,title:r(`sharedUi.failedTitle`),children:[(0,$.jsx)(b,{className:`h-3 w-3`}),r(`sharedUi.verificationFailed`)]}):(0,$.jsx)(`span`,{className:`inline-flex items-center gap-1 rounded-full bg-[var(--tag-bg-neutral)] px-2.5 py-0.5 text-body-small-default text-[var(--content-quiet)]`,title:r(`sharedUi.unknownStatusTitle`),children:r(`sharedUi.unknownStatus`)})}function Nn({onClick:e,disabled:t}){return(0,$.jsx)(c,{onClick:e,disabled:t,children:`Save`})}function Pn({onClick:e,filled:t=!1}){return(0,$.jsx)(c,{variant:t?`danger`:`dangerGhost`,onClick:e,children:`Reset`})}function Fn({guide:e}){return(0,$.jsxs)(`div`,{className:`flex items-start gap-2 rounded-lg border border-[var(--border-subtle)] bg-[var(--surface-sunken)] p-3 text-body-small-default text-[var(--content-tertiary)]`,children:[(0,$.jsx)(E,{className:`mt-0.5 h-3.5 w-3.5 shrink-0 text-[var(--system-positive-strong)]`}),(0,$.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,$.jsx)(`span`,{children:e.description}),(0,$.jsxs)(`a`,{href:e.url,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex items-center gap-1 text-[var(--system-positive-strong)] underline hover:opacity-80`,children:[e.linkLabel,(0,$.jsx)(T,{className:`h-3 w-3`})]})]})]})}function In({subdomain:e,onSubdomainChange:t,domainSuffix:n,subdomainPlaceholder:r=`my-assistant`,disabled:i,autoFocus:a,prefix:o,error:s,locked:c,lockedMessage:l}){return(0,$.jsxs)(`div`,{children:[(0,$.jsxs)(`div`,{className:`flex h-9 w-full items-center rounded-md border bg-[var(--field-bg)] text-body-medium-lighter transition-[border-color] duration-150 ${s?`border-[var(--system-negative-strong)]`:`border-[var(--field-border)] focus-within:border-[var(--border-active)]`}`,children:[o,(0,$.jsx)(`input`,{value:e,onChange:e=>t(e.target.value.toLowerCase().trim()),disabled:i||c,readOnly:c,autoFocus:a,placeholder:r,"aria-label":`Subdomain`,"aria-invalid":!!s,className:`h-full min-w-0 flex-1 bg-transparent ${o?`pl-1.5`:`pl-3`} pr-1 text-[var(--content-default)] placeholder:text-[var(--content-tertiary)] outline-none disabled:cursor-not-allowed disabled:opacity-60`}),(0,$.jsxs)(`span`,{className:`shrink-0 pr-3 font-mono text-[var(--content-secondary)]`,children:[`.`,n]})]}),s&&(0,$.jsx)(`p`,{className:`mt-1.5 text-body-small-default text-[var(--system-negative-strong)]`,children:s}),c&&l&&(0,$.jsx)(`p`,{className:`mt-1.5 text-body-small-default text-[var(--content-tertiary)]`,children:l})]})}var Ln=`rounded bg-[var(--surface-active)] px-1 py-0.5 font-mono text-[0.9em]`;function Rn({assistantId:e,assistantHandle:t,emailRootDomain:n}){let{t:r}=W(`settings`),i=d(),o=l(),s=Et(),[m,h]=u(),[g,_]=(0,Q.useState)(``),[v,y]=(0,Q.useState)(!1),[b,x]=(0,Q.useState)(null),[S,C]=(0,Q.useState)(``),[w,T]=(0,Q.useState)(null),[E,D]=(0,Q.useState)(!1),[A,j]=(0,Q.useState)(!1),[M,ee]=(0,Q.useState)(!1);(0,Q.useEffect)(()=>{v||!t||g||(_(t),y(!0))},[t,v,g]);let F=f({...Zt(),enabled:!0}),I=F.data,L=I?.entitlements,R=L?.managed_email===!0,V=!!L&&!R,te=!I&&F.isError&&!F.isFetching,H=f({...Jt({path:{assistant_id:e}}),enabled:!V}),re=f({...rn({path:{assistant_id:e}}),enabled:!V}),G=H.data?.results?.[0],K=re.data?.results?.[0],q=G?`${G.subdomain}.${n}`:null,J=f({...$t({path:{assistant_id:e,id:K?.id??``}}),enabled:!!K?.id,refetchOnWindowFocus:!1}),Y=f({...on({path:{assistant_id:e,id:G?.id??``}}),enabled:!!G?.id,refetchInterval:e=>{let t=e.state.data?.status;return t===`verified`||t===`failed`?!1:1e4},refetchOnWindowFocus:!0});(0,Q.useEffect)(()=>{m.get(`release`)!==`1`||!G||K||(j(!0),h(e=>{let t=new URLSearchParams(e);return t.delete(`release`),t},{replace:!0}))},[K,G,m,h]);let ie=p(nn()),ae=p(an()),oe=p(Yt()),se=p(Xt()),X=(0,Q.useCallback)(()=>{let t={assistant_id:e};i.invalidateQueries({queryKey:en({path:t})}),i.invalidateQueries({queryKey:tn({path:t})}),K?.id&&i.invalidateQueries({queryKey:Qt({path:{...t,id:K.id}})}),i.invalidateQueries({queryKey:cn()})},[K?.id,e,i]),Z=(0,Q.useCallback)(async()=>{let t=g.trim().toLowerCase();if(!t){x(r(`emailManagedContent.enterSubdomainError`));return}D(!1);try{await ie.mutateAsync({path:{assistant_id:e},body:{subdomain:t}}),_(``),x(null),X(),z.success(r(`emailManagedContent.domainRegisteredToast`,{domain:`${t}.${n}`}))}catch(e){x(ne(e,void 0,r(`emailManagedContent.registerDomainFailedFallback`)))}},[e,n,X,ie,g,r]),ce=(0,Q.useCallback)(async()=>{let t=S.trim().toLowerCase();if(!t){T(r(`emailManagedContent.enterUsernameError`));return}try{await oe.mutateAsync({path:{assistant_id:e},body:{username:t}}),C(``),T(null),X(),z.success(r(`emailManagedContent.emailCreatedToast`))}catch(e){T(ne(e,void 0,r(`emailManagedContent.createEmailFailedFallback`)))}},[e,X,oe,S,r]),le=(0,Q.useCallback)(async()=>{if(K?.id){ee(!1);try{await se.mutateAsync({path:{assistant_id:e,id:K.id}}),X(),z.success(r(`emailManagedContent.emailRemovedToast`))}catch(e){a(e,{context:`email_address_delete`}),z.error(r(`emailManagedContent.emailRemoveFailedToast`))}}},[K?.id,e,se,X,r]),ue=(0,Q.useCallback)(async()=>{if(!G?.id)return;if(K){z.error(r(`emailManagedContent.removeAddressFirstToast`));return}j(!1);let t=G.subdomain;try{await ae.mutateAsync({path:{assistant_id:e,id:G.id}}),_(t),X(),z.success(r(`emailManagedContent.domainReleasedToast`))}catch(e){a(e,{context:`email_domain_release`}),z.error(r(`emailManagedContent.domainReleaseFailedToast`))}},[K,e,ae,G?.id,G?.subdomain,X,r]);if(F.isLoading)return(0,$.jsxs)(`div`,{className:`flex items-center gap-2 text-body-small-default text-[var(--content-tertiary)]`,children:[(0,$.jsx)(O,{className:`h-4 w-4 animate-spin`}),r(`emailManagedContent.checkingSubscription`)]});if(V)return(0,$.jsx)(P,{tone:`info`,icon:(0,$.jsx)(k,{className:`h-4 w-4`,"aria-hidden":!0}),title:r(`emailManagedContent.upgradeNoticeTitle`),actions:s?void 0:(0,$.jsx)(c,{size:`compact`,onClick:()=>o(Dt.plans),children:r(`emailManagedContent.upgradeButton`)}),children:s?dn:r(`emailManagedContent.upgradeNoticeBody`)});let de=te?(0,$.jsx)(P,{tone:`warning`,title:r(`emailManagedContent.subscriptionWarningTitle`),actions:(0,$.jsx)(c,{size:`compact`,variant:`outlined`,onClick:()=>F.refetch(),children:r(`emailManagedContent.retry`)}),children:r(`emailManagedContent.subscriptionWarningBody`)}):null;return G?K?(0,$.jsxs)(`div`,{className:`space-y-4`,children:[de,(0,$.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:r(`emailManagedContent.addressLabel`)}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(`span`,{className:`font-mono text-body-small-default text-[var(--content-default)]`,children:K.address}),(0,$.jsx)(Mn,{status:Y.data?.status,message:Y.data?.message,isLoading:Y.isLoading}),(0,$.jsx)(c,{variant:`dangerGhost`,size:`compact`,iconOnly:(0,$.jsx)(N,{}),onClick:()=>ee(!0),disabled:se.isPending,"aria-label":r(`emailManagedContent.removeEmailAriaLabel`)})]}),(0,$.jsx)(B,{open:M,title:r(`emailManagedContent.removeEmailTitle`),message:(0,$.jsx)(U,{i18nKey:`emailManagedContent.removeEmailConfirmMessage`,ns:`settings`,values:{address:K.address},components:{code:(0,$.jsx)(`code`,{className:Ln})}}),confirmLabel:r(`emailManagedContent.removeConfirm`),destructive:!0,onConfirm:le,onCancel:()=>ee(!1)})]}),J.data?.usage&&(0,$.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:r(`emailManagedContent.usageSummary`,{sent:J.data.usage.sent_today,limit:J.data.usage.daily_limit,received:J.data.usage.received_today})})]}):(0,$.jsxs)(`div`,{className:`space-y-4`,children:[de,(0,$.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:r(`emailManagedContent.domainLabel`)}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsxs)(`span`,{className:`font-mono text-body-small-default text-[var(--content-default)]`,children:[G.subdomain,`.`,n]}),(0,$.jsx)(Mn,{status:Y.data?.status,message:Y.data?.message,isLoading:Y.isLoading}),(0,$.jsx)(c,{variant:`dangerGhost`,size:`compact`,iconOnly:(0,$.jsx)(N,{}),onClick:()=>j(!0),disabled:ae.isPending,"aria-label":r(`emailManagedContent.releaseDomainAriaLabel`)})]}),(0,$.jsx)(B,{open:A,title:r(`emailManagedContent.releaseDomainTitle`),message:(0,$.jsx)(U,{i18nKey:`emailManagedContent.releaseDomainConfirmMessage`,ns:`settings`,values:{domain:`${G.subdomain}.${n}`},components:{code:(0,$.jsx)(`code`,{className:Ln})}}),confirmLabel:r(`emailManagedContent.releaseConfirm`),destructive:!0,onConfirm:ue,onCancel:()=>j(!1)})]}),(0,$.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:r(`emailManagedContent.emailAddressLabel`)}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsxs)(`div`,{className:`flex h-9 min-w-0 flex-1 items-center rounded-md border bg-[var(--field-bg)] text-body-medium-lighter transition-[border-color] duration-150 ${w?`border-[var(--system-negative-strong)]`:`border-[var(--field-border)] focus-within:border-[var(--border-active)]`}`,children:[(0,$.jsx)(`input`,{value:S,onChange:e=>{C(e.target.value.toLowerCase()),w&&T(null)},placeholder:r(`emailManagedContent.emailUsernamePlaceholder`),"aria-label":r(`emailManagedContent.emailUsernameAriaLabel`),"aria-invalid":!!w,className:`h-full min-w-0 flex-1 bg-transparent pl-3 pr-1 text-[var(--content-default)] placeholder:text-[var(--content-tertiary)] outline-none`}),(0,$.jsxs)(`span`,{className:`shrink-0 pr-3 font-mono text-[var(--content-secondary)]`,children:[`@`,q]})]}),(0,$.jsx)(c,{onClick:ce,disabled:oe.isPending||!S.trim(),children:oe.isPending?r(`emailManagedContent.creating`):r(`emailManagedContent.create`)})]}),w&&(0,$.jsx)(`p`,{className:`text-body-small-default text-[var(--system-negative-strong)]`,children:w})]})]}):(0,$.jsxs)(`div`,{className:`space-y-3`,children:[de,(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:r(`emailManagedContent.subdomainLabel`)}),(0,$.jsx)(In,{subdomain:g,onSubdomainChange:e=>{_(e),b&&x(null)},domainSuffix:n,subdomainPlaceholder:r(`emailManagedContent.subdomainExamplePlaceholder`),error:b}),(0,$.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:r(`emailManagedContent.subdomainHint`)}),(0,$.jsx)(c,{onClick:()=>D(!0),disabled:ie.isPending||!g.trim(),children:ie.isPending?r(`emailManagedContent.registering`):r(`emailManagedContent.register`)}),(0,$.jsx)(B,{open:E,title:r(`emailManagedContent.setSubdomainTitle`),message:(0,$.jsx)(U,{i18nKey:`emailManagedContent.setSubdomainConfirmMessage`,ns:`settings`,values:{subdomain:g.trim().toLowerCase()||r(`emailManagedContent.subdomainFallback`)},components:{code:(0,$.jsx)(`code`,{className:Ln})}}),confirmLabel:r(`emailManagedContent.confirm`),onConfirm:Z,onCancel:()=>D(!1)})]})}function zn(){let{t:e}=W(`settings`),r=vn(),o=kt(),{data:s}=f({...sn(),enabled:o}),c=s?.results?.[0]?.handle,l=Tn.use.emailRootDomain(),u=Ot(),[d,p]=(0,Q.useState)(()=>u===`gated`?`your-own`:pe(t(rt,`managed`),`managed`)),[m,h]=(0,Q.useState)(()=>{let e=t(Ke,`resend`);return e===`mailgun`||e===`resend`?e:`resend`}),{platformAssistantId:g,error:_}=wn(r,u===`full`&&d===`managed`),v=g??(_?r:null),y=f({queryKey:[`byoEmailCredential`,r,m],queryFn:async()=>{let{data:e}=await xt({path:{assistant_id:r},body:{service:m,field:`api_key`},throwOnError:!0});return e},enabled:d===`your-own`||u===`gated`,staleTime:6e4,retry:i,meta:{errorContext:`byo_email_credential_check`}});(0,Q.useEffect)(()=>{y.error&&a(y.error,{context:`byo_email_credential_check`,bestEffort:!0})},[y.error]);let b=y.data?.hasSecret===!0,S=(0,Q.useCallback)(e=>{p(e),n(rt,e)},[]),C=(0,Q.useCallback)(()=>{n(Ke,m),z.success(e(`emailServiceCard.saveSuccessToast`))},[m,e]),w=(0,Q.useMemo)(()=>Xe.find(e=>e.id===m)??Xe[0],[m]),D=(0,$.jsxs)(`div`,{className:`flex items-start gap-2 rounded-lg border border-[var(--border-subtle)] bg-[var(--surface-sunken)] p-3 text-body-small-default text-[var(--content-tertiary)]`,children:[(0,$.jsx)(E,{className:`mt-0.5 h-3.5 w-3.5 shrink-0 text-[var(--system-positive-strong)]`}),(0,$.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,$.jsx)(`span`,{children:(0,$.jsx)(U,{i18nKey:`emailServiceCard.setupInstructions`,ns:`settings`,values:{providerName:w.displayName,setupSkill:w.setupSkill},components:{code:(0,$.jsx)(`code`,{className:`rounded bg-[var(--surface-active)] px-1 py-0.5 text-[12px]`})}})}),(0,$.jsxs)(`a`,{href:w.docsUrl,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex items-center gap-1 text-[var(--system-positive-strong)] underline hover:opacity-80`,children:[e(`emailServiceCard.openProvider`,{providerName:w.displayName}),(0,$.jsx)(T,{className:`h-3 w-3`})]})]})]}),k=(0,$.jsxs)(`div`,{className:`space-y-4`,children:[(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:e(`emailServiceCard.providerLabel`)}),(0,$.jsx)(V,{value:m,onChange:e=>{(e===`mailgun`||e===`resend`)&&h(e)},options:Xe.map(e=>({value:e.id,label:e.displayName}))})]}),b?(0,$.jsxs)(`div`,{className:`space-y-3`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2 rounded-lg border border-[var(--system-positive-subtle)] bg-[var(--surface-sunken)] p-3 text-body-small-default text-[var(--content-default)]`,children:[(0,$.jsx)(x,{className:`h-4 w-4 shrink-0 text-[var(--system-positive-strong)]`}),(0,$.jsx)(`span`,{children:(0,$.jsx)(U,{i18nKey:`emailServiceCard.apiKeyConfigured`,ns:`settings`,values:{providerName:w.displayName,setupSkill:w.setupSkill},components:{code:(0,$.jsx)(`code`,{className:`rounded bg-[var(--surface-active)] px-1 py-0.5 text-[12px]`})}})})]}),(0,$.jsxs)(`a`,{href:w.docsUrl,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex items-center gap-1 text-body-small-default text-[var(--system-positive-strong)] underline hover:opacity-80`,children:[e(`emailServiceCard.openProvider`,{providerName:w.displayName}),(0,$.jsx)(T,{className:`h-3 w-3`})]})]}):D,(0,$.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,$.jsx)(Nn,{onClick:C,disabled:!1})})]});return u===`gated`?(0,$.jsx)(kn,{id:`email`,title:e(`emailServiceCard.title`),subtitle:e(`emailServiceCard.subtitle`),children:k}):(0,$.jsx)(On,{id:`email`,title:e(`emailServiceCard.title`),subtitle:e(`emailServiceCard.subtitle`),mode:d,onModeChange:S,children:d===`managed`?(0,$.jsx)(`div`,{className:`space-y-4`,children:u===`disabled`?(0,$.jsx)(un,{children:e(`emailServiceCard.platformLoginNotice`)}):v===null?(0,$.jsxs)(`div`,{className:`flex items-center gap-2 text-body-small-default text-[var(--content-tertiary)]`,children:[(0,$.jsx)(O,{className:`h-4 w-4 animate-spin`}),e(`emailServiceCard.connecting`)]}):(0,$.jsx)(Rn,{assistantId:v,assistantHandle:c,emailRootDomain:l})}):k})}function Bn(){let e=vn();return(0,Q.useCallback)(async(t,n)=>{try{let{data:r}=await St({path:{assistant_id:e},body:{value:n,type:`api_key`,name:t},throwOnError:!0});X(r)}catch(e){throw e instanceof Error&&e.message===`No assistant found`?z.error(H(`settings:useDaemonConfig.assistantNotReadyToast`)):z.error(H(`settings:useDaemonConfig.saveApiKeyFailedToast`,{providerName:t})),a(e,{context:`provision_provider_key`}),e}},[e])}function Vn(e){let[t,n]=(0,Q.useState)(void 0);return(0,Q.useEffect)(()=>{t!==void 0&&e===t.value&&n(void 0)},[e,t]),[t===void 0?e:t.value,(0,Q.useCallback)(e=>n(e===void 0?void 0:{value:e}),[])]}var Hn=`0.11.0`;function Un(){return gt(Hn)}var Wn=`gemini-3.1-flash-image-preview`;function Gn(){let{t:e}=W(`settings`),r=vn(),i=d(),o=kt(),{data:s}=f({...qt({path:{assistant_id:r}}),enabled:o,staleTime:3e4}),c=It({onSuccess:e=>{Bt(i,{path:{assistant_id:r}},e)}}),l=Bn(),[u,p]=Vn((0,Q.useMemo)(()=>{if(!s)return t(qe,`gemini`);let e=s.services?.[`image-generation`];return e?.mode===`managed`?`vellum`:e?.provider||t(`vellum:ai:imageGenProvider`,`gemini`)},[s])),[m,h]=(0,Q.useState)(()=>t(st,Wn)),g=Ee(u),_=g.includes(m)?m:g[0]??Wn,[v,y]=(0,Q.useState)(``),[b,x]=(0,Q.useState)(!1),S=ut.map(e=>({value:e,label:pt[e]??e})),C=(0,Q.useMemo)(()=>Ee(u).map(e=>({value:e,label:Ge[e]??e})),[u]),w=u===`gemini`||u===`openai`,{hasStoredCredential:T}=ke({assistantId:r,credentialKind:`api_key`,credentialName:u,enabled:w}),E=p,D=(0,Q.useCallback)(async()=>{x(!0);let t=v.trim(),o=w&&t.length>0;try{o&&await l(dt(_),t),await _t();let n=u===`vellum`&&!Un()?{mode:`managed`}:{provider:u,mode:u===`vellum`?`managed`:`your-own`};await c.mutateAsync({path:{assistant_id:r},body:{services:{"image-generation":n}}}).catch(t=>{throw z.error(e(`imageGenerationCard.configUpdateFailedToast`)),a(t,{context:`patch_daemon_config`}),t});try{await wt({path:{assistant_id:r},body:{modelId:_},throwOnError:!0})}catch(t){throw z.error(e(`imageGenerationCard.modelUpdateFailedToast`)),a(t,{context:`set_image_gen_model`}),t}finally{i.invalidateQueries({queryKey:zt({path:{assistant_id:r}})})}}catch{x(!1);return}x(!1);try{if(n(qe,u),n(st,_),o){let e=Ve(r,`api_key`,u);i.setQueryData(e,!0),i.invalidateQueries({queryKey:e}),y(``)}z.success(e(`imageGenerationCard.savedToast`))}catch(t){a(t,{context:`settings-ai-image-gen-persist-local`}),z.error(e(`imageGenerationCard.localPreferencesFailedToast`))}},[v,u,w,_,r,c,l,i,e]),k=(0,Q.useCallback)(()=>{y(``),h(Wn),n(st,Wn)},[]);return(0,$.jsx)(kn,{title:e(`imageGenerationCard.title`),subtitle:e(`imageGenerationCard.subtitle`),children:(0,$.jsxs)(`div`,{className:`space-y-4`,children:[(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:e(`imageGenerationCard.providerLabel`)}),(0,$.jsx)(V,{"aria-label":e(`imageGenerationCard.providerAriaLabel`),value:u,onChange:E,options:S})]}),u===`vellum`&&(0,$.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:e(`imageGenerationCard.vellumNote`)}),w&&(0,$.jsx)(L,{label:e(`imageGenerationCard.apiKeyLabel`),type:`password`,value:v,onChange:e=>y(e.target.value),placeholder:Ae(e(u===`openai`?`imageGenerationCard.openaiApiKeyPlaceholder`:`imageGenerationCard.geminiApiKeyPlaceholder`),T),fullWidth:!0}),(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:e(`imageGenerationCard.activeModelLabel`)}),(0,$.jsx)(V,{"aria-label":e(`imageGenerationCard.modelAriaLabel`),value:_,onChange:h,options:C})]}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(Nn,{onClick:D,disabled:b}),b&&(0,$.jsx)(O,{className:`h-4 w-4 animate-spin text-[var(--content-disabled)]`}),w&&(0,$.jsx)(Pn,{onClick:k})]})]})})}function Kn({title:e,count:t,action:n,children:r}){return(0,$.jsxs)(`section`,{className:`rounded-xl border border-[var(--border-hover)] bg-[var(--surface-overlay)] px-3 py-4`,children:[(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,$.jsxs)(`div`,{className:`flex items-baseline gap-2`,children:[(0,$.jsx)(h,{variant:`body-large-default`,as:`h3`,className:`text-[var(--content-secondary)]`,children:e}),t==null?null:(0,$.jsxs)(h,{variant:`body-large-default`,as:`span`,"aria-label":`${t} ${e.toLowerCase()}`,className:`text-[var(--content-disabled)]`,children:[`·`,` `,t]})]}),n]}),r==null?null:(0,$.jsx)(`div`,{className:`mt-4 border-t border-[var(--border-base)]`,children:r})]})}function qn(e){return e.scheduleNames.length>0||e.deferredReminderCount>0||e.scheduleLookupFailed}var Jn=5;function Yn({title:e,items:t,mono:n}){return(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(h,{variant:`body-small-default`,as:`p`,className:`text-(--content-tertiary)`,children:e}),(0,$.jsx)(`ul`,{className:`space-y-1 pl-1`,children:t.map(e=>(0,$.jsxs)(`li`,{className:`text-body-small-default text-(--content-secondary)`,children:[`• `,n?(0,$.jsx)(`code`,{children:e}):e]},e))})]})}function Xn(e){let t=e.label||e.name,n=[];e.isActive&&n.push(H(`settings:manageProfilesBlockedDeleteModal.clauseDefaultProfile`)),e.callSiteIds.length>0&&n.push(H(`settings:manageProfilesBlockedDeleteModal.clauseActionOverrides`,{count:e.callSiteIds.length}));let r=e.scheduleNames.length,i=e.deferredReminderCount;return r>0&&i>0?n.push(H(`settings:manageProfilesBlockedDeleteModal.clauseRunsBoth`,{schedules:r,reminders:i})):r>0?n.push(H(`settings:manageProfilesBlockedDeleteModal.clauseRunsSchedules`,{count:r})):i>0&&n.push(H(`settings:manageProfilesBlockedDeleteModal.clauseRunsReminders`,{count:i})),n.length===0?H(`settings:manageProfilesBlockedDeleteModal.summaryNoReferences`,{display:t}):n.length===1?H(`settings:manageProfilesBlockedDeleteModal.summaryOneClause`,{display:t,clause1:n[0]}):n.length===2?H(`settings:manageProfilesBlockedDeleteModal.summaryTwoClauses`,{display:t,clause1:n[0],clause2:n[1]}):H(`settings:manageProfilesBlockedDeleteModal.summaryThreeClauses`,{display:t,clause1:n[0],clause2:n[1],clause3:n[2]})}function Zn({blocked:e,availableReplacements:t,replacement:n,onReplacementChange:r,error:i,saving:a,onClose:o,onConfirm:s}){let{t:l}=W(`settings`),u=e?.scheduleNames??[],d=u.slice(0,Jn),f=u.length-d.length,p=e!=null&&qn(e);return(0,$.jsx)(I.Root,{open:e!==null,onOpenChange:e=>{e||o()},children:(0,$.jsxs)(I.Content,{size:`sm`,children:[(0,$.jsx)(I.Header,{children:(0,$.jsx)(I.Title,{children:l(`manageProfilesBlockedDeleteModal.title`)})}),(0,$.jsxs)(I.Body,{className:`space-y-4`,children:[e&&(0,$.jsx)(h,{variant:`body-medium-default`,as:`p`,children:Xn(e)}),e&&e.callSiteIds.length>0&&(0,$.jsx)(Yn,{title:l(`manageProfilesBlockedDeleteModal.actionOverridesTitle`),items:e.callSiteIds,mono:!0}),d.length>0&&(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(Yn,{title:l(`manageProfilesBlockedDeleteModal.schedulesTitle`),items:d}),f>0&&(0,$.jsx)(h,{variant:`body-small-default`,as:`p`,className:`pl-1 text-(--content-tertiary)`,children:l(`manageProfilesBlockedDeleteModal.moreSchedules`,{count:f})})]}),e?.scheduleLookupFailed&&(0,$.jsx)(h,{variant:`body-small-default`,as:`p`,className:`text-(--system-mid-strong)`,children:l(`manageProfilesBlockedDeleteModal.scheduleLookupFailed`)}),(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-(--content-tertiary)`,children:l(`manageProfilesBlockedDeleteModal.replacementLabel`)}),(0,$.jsx)(V,{"aria-label":l(`manageProfilesBlockedDeleteModal.replacementLabel`),value:n,onChange:r,placeholder:l(`manageProfilesBlockedDeleteModal.replacementPlaceholder`),options:t.map(e=>{let t=p&&e.status===`disabled`;return{value:e.name,label:_e(e),disabled:t,tooltip:t?l(`manageProfilesBlockedDeleteModal.disabledTargetTooltip`):void 0}})})]}),i&&(0,$.jsx)(h,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:i})]}),(0,$.jsxs)(I.Footer,{children:[(0,$.jsx)(c,{variant:`ghost`,size:`compact`,onClick:o,children:l(`manageProfilesBlockedDeleteModal.cancel`)}),(0,$.jsx)(c,{variant:`primary`,size:`compact`,disabled:!n||a,onClick:s,children:l(a?`manageProfilesBlockedDeleteModal.saving`:`manageProfilesBlockedDeleteModal.reassignAndDelete`)})]})]})})}function Qn({profile:e,isActiveProfile:t,selected:n,connections:r,deletePending:i=!1,onOpen:a,onMakeActive:o,onSetStatus:l,onDelete:u}){let{t:d}=W(`settings`),f=e.source===`managed`,p=e.status===`disabled`,m=e.label??e.name,h=[];e.model&&h.push(Pe(e.provider??void 0,e.model,r)),f&&h.push(d(`profileRow.managedByVellum`));let g=e.availability,_=g?.status===`incomplete`,y=g?.message??d(`profileRow.providerUnavailableDefault`),x=g!=null&&g.status!==`ok`?_?d(`profileRow.providerUnavailableFixable`,{message:y}):y:null;return(0,$.jsx)(v,{title:(0,$.jsx)(`span`,{className:p?`opacity-55`:void 0,children:m}),subtitle:h.length>0?h.join(` • `):void 0,onClick:a,showChevron:!1,selected:n,disabled:i,contentAriaLabel:d(`profileRow.openProfileAriaLabel`,{displayName:m}),trailingInteractive:!0,trailing:(0,$.jsxs)($.Fragment,{children:[x==null?null:(0,$.jsx)(s,{content:x,children:_?(0,$.jsx)(`button`,{type:`button`,onClick:a,"aria-label":x,className:`inline-flex cursor-pointer rounded-sm p-0.5 keyboard-focus:ring-2 keyboard-focus:ring-[var(--ring)]`,children:(0,$.jsx)(b,{className:`h-4 w-4 text-[var(--system-mid-strong)]`,"aria-hidden":`true`})}):(0,$.jsx)(`span`,{className:`inline-flex p-0.5`,tabIndex:0,children:(0,$.jsx)(b,{className:`h-4 w-4 text-[var(--system-mid-strong)]`,"aria-label":x,role:`img`})})}),p?(0,$.jsx)(F,{tone:`neutral`,children:d(`profileRow.disabledTag`)}):null,t?(0,$.jsx)(F,{tone:`positive`,children:d(`profileRow.defaultTag`)}):null,(0,$.jsxs)(S.Root,{children:[(0,$.jsx)(S.Trigger,{asChild:!0,children:(0,$.jsx)(c,{variant:`ghost`,size:`compact`,iconOnly:(0,$.jsx)(w,{}),"aria-label":d(`profileRow.actionsAriaLabel`,{displayName:m}),disabled:i})}),(0,$.jsxs)(S.Content,{align:`end`,sideOffset:4,children:[(0,$.jsx)(S.Item,{onSelect:a,children:d(f?`profileRow.view`:`profileRow.edit`)}),!t&&!p?(0,$.jsx)(S.Item,{onSelect:o,children:d(`profileRow.makeDefault`)}):null,p?(0,$.jsx)(S.Item,{onSelect:()=>l(!0),children:d(`profileRow.enable`)}):f?null:(0,$.jsx)(S.Item,{onSelect:()=>l(!1),children:d(`profileRow.disable`)}),f?null:(0,$.jsx)(S.Item,{onSelect:u,className:`text-[var(--system-negative-strong)] data-[highlighted]:text-[var(--system-negative-strong)]`,children:d(`profileRow.delete`)})]})]})]})})}function $n(e,t){let n=ot(),{data:r}=f({...Nt({path:{assistant_id:e}}),enabled:n,staleTime:3e4}),{profiles:i,profileOrder:a}=ct(t?.llm,e);return(0,Q.useMemo)(()=>r==null?{entries:fe(i,a).map(e=>({name:e.name,label:e.label??null,provider:e.provider??null,model:e.model??null,status:e.status===`disabled`?`disabled`:`active`,source:e.source===`managed`?`managed`:`user`,provider_connection:e.provider_connection,availability:null})),isEffectiveCatalog:!1}:{entries:r.profiles,isEffectiveCatalog:!0},[r,i,a])}function er(e){let t=d();return It({onSuccess:n=>{Bt(t,{path:{assistant_id:e}},n),t.invalidateQueries({queryKey:Gt({path:{assistant_id:e}})}),t.invalidateQueries({queryKey:Ut({path:{assistant_id:e}})})}})}var tr=`0.10.8`;function nr(e){return vt(tr,e)}var rr=`settings-ai-profile-make-active`,ir=`Failed to set the active profile. Please try again.`;function ar(e){let t=er(e),n=d(),r=nr(e),i=Kt({onSuccess:()=>{n.invalidateQueries({queryKey:zt({path:{assistant_id:e}})}),n.invalidateQueries({queryKey:Gt({path:{assistant_id:e}})})}});async function o(n,r,i){try{await t.mutateAsync({path:{assistant_id:e},body:{llm:n}})}catch(e){throw a(e,{context:r}),z.error(i),e}}async function s(t){if(!r){await o({activeProfile:t},rr,ir);return}try{await i.mutateAsync({path:{assistant_id:e},body:{name:t}})}catch(e){let t=re(e);throw z.error(t??ir),t||a(e,{context:rr}),e}}return{makeActive:s,setStatus:(e,t)=>o({profiles:{[e]:{status:t?`active`:`disabled`}}},`settings-ai-profile-toggle`,`Failed to update the profile. Please try again.`),deleteProfile:(e,t,n)=>o({profiles:{[e]:null},profileOrder:t.filter(t=>t!==e),...n?.isAdvisor?{advisorProfile:null}:{}},`settings-ai-profile-delete`,`Failed to delete the profile. Please try again.`),patchLlm:o,isPending:t.isPending||i.isPending}}var or=`The profile was not deleted.`,sr=`Failed to move the schedules. ${or}`;function cr(e){let t=re(e);return t?`${/[.!?]$/.test(t)?t:`${t}.`} ${or}`:sr}function lr(e,t,n){let r=ar(e),i=d(),o=ve(),s=t?.llm?.activeProfile??null,c=t?.llm?.advisorProfile??null,l=t?.llm?.callSites??{},u=(0,Q.useMemo)(()=>t?.llm?.profiles??{},[t?.llm?.profiles]),f=(0,Q.useMemo)(()=>t?.llm?.profileOrder??[],[t?.llm?.profileOrder]),p=(0,Q.useMemo)(()=>fe(u,f),[u,f]),[m,h]=(0,Q.useState)(null),[g,_]=(0,Q.useState)(null),[v,y]=(0,Q.useState)(``),[b,x]=(0,Q.useState)(!1),[S,C]=(0,Q.useState)(null),w=(0,Q.useRef)(!1);function T(e){return p.filter(t=>t.name===e?!1:t.status===`disabled`?!0:ye(t,p,{requireOwnProviderAndModel:o}))}function E(e,t){let n=T(e).filter(e=>!t||e.status!==`disabled`),r=n.find(e=>e.name===s),i=n.find(e=>e.source!==`managed`);return(r??i??n[0])?.name??``}async function D(e){try{await r.deleteProfile(e,f,{isAdvisor:e===c}),n?.onDeleted?.(e)}catch{}}async function O(t){let n=u[t]?.label??t,r=t===s,o=Object.entries(l).filter(([e,n])=>e!==`mainAgent`&&n?.profile===t).map(([e])=>e),c=[],d=0,f=!1;try{let n=(await i.fetchQuery({...Pt({path:{assistant_id:e},query:{inference_profile:t,include_all:`true`}}),retry:!1,staleTime:0})).schedules??[];c=n.filter(e=>!e.isDeferred).map(e=>e.name),d=n.filter(e=>e.isDeferred).length}catch(e){a(e,{context:`settings-ai-profile-delete-schedule-scan`}),f=!0}if(!(r||o.length>0||c.length>0||d>0)&&!f){await D(t);return}let p={name:t,label:n,isActive:r,callSiteIds:o,scheduleNames:c,deferredReminderCount:d,scheduleLookupFailed:f};h(p),y(E(t,qn(p))),_(null)}function k(e){t==null||w.current||(w.current=!0,C(e),O(e).finally(()=>{w.current=!1,C(null)}))}async function A(){if(!m||!v)return;if(x(!0),_(null),qn(m))try{await Cn(e,m.name,v),await i.invalidateQueries({queryKey:At({path:{assistant_id:e}})})}catch(e){a(e,{context:`settings-ai-profile-reassign-schedules`}),_(cr(e)),x(!1);return}let t={};if(m.isActive&&(t.activeProfile=v),m.callSiteIds.length>0){let e={};for(let t of m.callSiteIds)e[t]={profile:v};t.callSites=e}if(Object.keys(t).length>0)try{await r.patchLlm(t,`settings-ai-profile-reassign-delete`,`Failed to reassign references. Please try again.`)}catch{_(`Failed to reassign references. Please try again.`),x(!1);return}let n=m.name;h(null),x(!1),D(n)}return{requestDelete:k,pendingDeleteName:S,blockedDeleteModalProps:{blocked:m,availableReplacements:T(m?.name??null),replacement:v,onReplacementChange:y,error:g,saving:b,onClose:()=>{h(null),_(null)},onConfirm:()=>void A()}}}function ur(){}function dr({assistantId:e,config:t,connections:n,selectedProfileName:r,onOpenProfile:i,onCreateProfile:a,onProfileDeleted:o}){let{t:s}=W(`settings`),{entries:l}=$n(e,t),u=ar(e),d=lr(e,t,{onDeleted:o}),f=t?.llm?.activeProfile??null;return(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(Kn,{title:s(`profilesSection.title`),action:(0,$.jsx)(c,{variant:`primary`,onClick:a,leftIcon:(0,$.jsx)(j,{}),disabled:t==null,children:s(`profilesSection.createProfile`)}),children:t==null?(0,$.jsx)(h,{variant:`body-medium-lighter`,as:`p`,className:`py-4 text-center text-(--content-tertiary)`,children:s(`profilesSection.loading`)}):l.length===0?(0,$.jsx)(h,{variant:`body-medium-lighter`,as:`p`,className:`py-4 text-center text-(--content-tertiary)`,children:s(`profilesSection.emptyState`)}):l.map(e=>(0,$.jsx)(Qn,{profile:e,isActiveProfile:e.name===f,selected:e.name===r,connections:n,deletePending:d.pendingDeleteName===e.name,onOpen:()=>i(e.name),onMakeActive:()=>void u.makeActive(e.name).catch(ur),onSetStatus:t=>void u.setStatus(e.name,t).catch(ur),onDelete:()=>d.requestDelete(e.name)},e.name))}),(0,$.jsx)(Zn,{...d.blockedDeleteModalProps})]})}var fr={anthropic:!0,openai:!0,gemini:!0,fireworks:!0,openrouter:!0,chatgpt:!0,vellum:!0,together:!0,"vercel-ai-gateway":!0,minimax:!0,atlascloud:!0,baseten:!0,poolside:!0};function pr(e){return e in fr}function mr(e){let t=e.baseUrl??``;try{e.baseUrl&&(t=new URL(e.baseUrl).host)}catch{}let n=[];t&&n.push(t);let r=e.models?.length??0;return r>0&&n.push(`${r} ${r===1?`model`:`models`}`),e.auth.type===`none`&&n.push(`keyless`),n.join(` · `)}function hr(e){switch(e.auth.type){case`api_key`:return`Own API key`;case`oauth_subscription`:return`ChatGPT subscription`;case`none`:return`No API key needed`;default:return null}}function gr(e){if(e.provider===`vellum`)return`Included with your plan`;if(e.provider===`openai-compatible`)return mr(e);let t=[],n=e.provider===`chatgpt`?`openai`:e.provider,r=e.auth.type===`oauth_subscription`?We(n):we(n),i=e.models?.length??r.length;i>0&&t.push(`${i} ${i===1?`model`:`models`}`);let a=hr(e);return a&&t.push(a),t.join(` • `)}function _r({connection:e,isDefault:t,supportsDefaultProvider:n,selected:r,isSettingDefault:i,onOpen:a,onSetDefault:o,onDelete:s}){let{t:l}=W(`settings`),u=e.isManaged??!1,d=at(e),f=pr(e.provider),p=gr(e),m=n&&!t&&f,h=!u&&a!=null,g=!u&&!t,_=m||h||g;return(0,$.jsx)(v,{title:d,subtitle:p.length>0?p:void 0,onClick:a,showChevron:!1,selected:r,contentAriaLabel:a?l(`providerRow.openProviderAriaLabel`,{displayName:d}):void 0,trailingInteractive:!0,trailing:(0,$.jsxs)($.Fragment,{children:[u?(0,$.jsx)(F,{tone:`neutral`,title:l(`providerRow.managedTagTitle`),children:l(`providerRow.managedTag`)}):null,t?(0,$.jsx)(F,{tone:`info`,title:l(`providerRow.defaultTagTitle`),children:l(`providerRow.defaultTag`)}):null,e.provider===`ollama`?(0,$.jsx)(F,{tone:`neutral`,title:l(`providerRow.localTagTitle`),children:l(`providerRow.localTag`)}):null,e.provider===`openai-compatible`?(0,$.jsx)(F,{tone:`neutral`,title:l(`providerRow.customTagTitle`),children:l(`providerRow.customTag`)}):null,_?(0,$.jsxs)(S.Root,{children:[(0,$.jsx)(S.Trigger,{asChild:!0,children:(0,$.jsx)(c,{variant:`ghost`,size:`compact`,iconOnly:(0,$.jsx)(w,{}),"aria-label":l(`providerRow.actionsAriaLabel`,{displayName:d})})}),(0,$.jsxs)(S.Content,{align:`end`,sideOffset:4,children:[h?(0,$.jsx)(S.Item,{onSelect:a,children:l(`providerRow.edit`)}):null,m?(0,$.jsx)(S.Item,{disabled:i,onSelect:o,children:l(`providerRow.setAsDefault`)}):null,g?(0,$.jsx)(S.Item,{onSelect:s,className:`text-[var(--system-negative-strong)] data-[highlighted]:text-[var(--system-negative-strong)]`,children:l(`providerRow.delete`)}):null]})]}):(0,$.jsx)(`span`,{className:`inline-block w-8`,"aria-hidden":!0})]})})}function vr(e,t){let n=d(),r={path:{assistant_id:e}},i=p({...Rt(),onSuccess:()=>{n.invalidateQueries({queryKey:Vt(r)}),n.invalidateQueries({queryKey:zt(r)}),n.invalidateQueries({queryKey:Gt(r)})},onError:e=>{a(e,{context:`settings-ai-set-default-provider`}),z.error(H(`settings:useProviderActions.setDefaultFailedToast`))}});function o(t){pr(t.provider)&&i.mutate({path:{assistant_id:e},body:{provider:t.provider,connectionName:t.name}})}function s(e){return i.isPending&&i.variables?.body?.connectionName===e}async function c(i){try{let{response:a}=await yt({path:{assistant_id:e,name:i}});a?.ok||a?.status===404?(n.invalidateQueries({queryKey:Lt(r)}),t?.onDeleted?.(i)):a?.status===409?z.error(H(`settings:useProviderActions.deleteInUseToast`)):z.error(H(`settings:useProviderActions.deleteFailedToast`))}catch(e){a(e,{context:`settings-ai-provider-delete`}),z.error(H(`settings:useProviderActions.deleteFailedToast`))}}return{setDefault:o,isSettingDefault:s,deleteConnection:c}}function yr({assistantId:e,selectedConnectionName:t,onOpenConnection:n,onAddProvider:r,onConnectionDeleted:i}){let{t:a}=W(`settings`),{data:o,isLoading:s,isError:l}=f(Mt({path:{assistant_id:e}})),u=Qe(),{data:d}=f({...Ht({path:{assistant_id:e}}),enabled:u}),p=u?d?.resolvedConnectionName??null:null,m=vr(e,{onDeleted:i}),g=(0,Q.useMemo)(()=>{let e=o?.connections??[];return[...e.filter(e=>e.provider===de),...e.filter(e=>e.provider!==de)]},[o]);return(0,$.jsx)(Kn,{title:a(`providersSection.title`),action:(0,$.jsx)(c,{variant:`outlined`,onClick:r,leftIcon:(0,$.jsx)(j,{}),children:a(`providersSection.addProvider`)}),children:s?(0,$.jsx)(`div`,{className:`space-y-2 py-2`,children:[1,2,3].map(e=>(0,$.jsx)(te,{className:`h-10 rounded-lg`},e))}):l?(0,$.jsx)(h,{variant:`body-medium-default`,as:`p`,className:`py-4 text-center text-(--system-negative-strong)`,children:a(`providersSection.loadError`)}):g.length===0?(0,$.jsx)(h,{variant:`body-medium-lighter`,as:`p`,className:`py-4 text-center text-(--content-tertiary)`,children:a(`providersSection.empty`)}):g.map(e=>(0,$.jsx)(_r,{connection:e,isDefault:e.name===p,supportsDefaultProvider:u,selected:e.name===t,isSettingDefault:m.isSettingDefault(e.name),onOpen:e.isManaged??!1?void 0:()=>n(e.name),onSetDefault:()=>m.setDefault(e),onDelete:()=>void m.deleteConnection(e.name)},e.name))})}function br({panel:e,onOpenPanel:t,onClosePanel:n}){let{t:r}=W(`settings`),i=vn(),{data:a}=f({...qt({path:{assistant_id:i}}),staleTime:3e4}),o=Qe(),{data:s}=f({...Ht({path:{assistant_id:i}}),enabled:o}),l=s?.availability,{data:u}=f({...Mt({path:{assistant_id:i}})}),d=u?.connections,p=a?.llm?.callSites??{},m=Object.entries(p).filter(([e,t])=>e!==`mainAgent`&&(t?.profile!=null||t?.provider!=null||t?.model!=null)).length;return(0,$.jsx)(kn,{title:r(`languageModelCard.title`),subtitle:r(`languageModelCard.subtitle`),children:(0,$.jsxs)(`div`,{className:`space-y-2`,children:[l&&l.status!==`ok`&&(0,$.jsx)(P,{tone:l.status===`unknown`?`warning`:`error`,children:l.message??r(`languageModelCard.defaultProviderUnavailable`)}),i&&(0,$.jsx)(dr,{assistantId:i,config:a,connections:d,selectedProfileName:e?.kind===`profile`?e.name:null,onOpenProfile:e=>t({kind:`profile`,name:e}),onCreateProfile:()=>t({kind:`create-profile`}),onProfileDeleted:t=>{e?.kind===`profile`&&e.name===t&&n()}}),i&&(0,$.jsx)(yr,{assistantId:i,selectedConnectionName:e?.kind===`provider`?e.name:null,onOpenConnection:e=>t({kind:`provider`,name:e}),onAddProvider:()=>t({kind:`add-provider`}),onConnectionDeleted:t=>{e?.kind===`provider`&&e.name===t&&n()}}),(0,$.jsx)(Kn,{title:r(`languageModelCard.overridesTitle`),count:m,action:(0,$.jsx)(c,{variant:`outlined`,onClick:()=>t({kind:`overrides`}),children:r(`languageModelCard.manage`)})})]})})}function xr(e,{onSaved:t}={}){let n=er(e),{data:r}=f({...qt({path:{assistant_id:e}}),staleTime:3e4}),i=(0,Q.useMemo)(()=>r?.llm?.profiles??{},[r?.llm?.profiles]),o=r?.llm?.profileOrder??[];async function s(r,s,c){let l=c?.mode??`replace`,u=!(r in i);if(l===`merge`&&!u){await n.mutateAsync({path:{assistant_id:e},body:{llm:{profiles:{[r]:s}}}}),t?.();return}let d={profiles:{[r]:s}};if(u&&(d.profileOrder=o.includes(r)?o:[...o,r]),u)await n.mutateAsync({path:{assistant_id:e},body:{llm:d}});else{let t=i[r];await n.mutateAsync({path:{assistant_id:e},body:{llm:{profiles:{[r]:null}}}});try{await n.mutateAsync({path:{assistant_id:e},body:{llm:d}})}catch(i){throw a(i,{context:`settings-ai-profile-edit-recreate`}),t!=null&&await n.mutateAsync({path:{assistant_id:e},body:{llm:{profiles:{[r]:t}}}}).catch(()=>{}),i}}u&&z.success(H(`settings:useProfileSave.createdToast`,{name:s.label??r})),t?.()}return{saveProfile:s,isPending:n.isPending}}function Sr({assistantId:e,profileName:t,onClose:n}){let{t:r}=W(`settings`),{data:i}=f({...qt({path:{assistant_id:e}}),staleTime:3e4}),{data:a}=f({...Mt({path:{assistant_id:e}})}),o=a?.connections,s=(0,Q.useMemo)(()=>i?.llm?.profiles??{},[i?.llm?.profiles]),l=Object.keys(s),u=(0,Q.useMemo)(()=>{if(t==null)return;let e=s[t];return e?{name:t,...e}:void 0},[t,s]),d=t==null?`create`:u?.source===`managed`||u?.invariant===!0?`view`:`edit`,{saveProfile:p,isPending:m}=xr(e,{onSaved:n}),h=$e({mode:d,profileName:t??void 0,initialValues:u,existingNames:l,connections:o,assistantId:e,onSave:p}),g=lr(e,i,{onDeleted:()=>n()}),_=t!=null&&g.pendingDeleteName===t,v=t!=null&&i!=null&&!(t in s);(0,Q.useEffect)(()=>{v&&!h.saving&&!m&&n()},[v,h.saving,m,n]);let y=d===`view`;return(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(yn,{title:h.effectiveMode===`create`?r(`profileDetailPanel.newProfileTitle`):u?.label??t??r(`profileDetailPanel.defaultTitle`),closeVariant:`outlined`,onClose:n,headerTrailing:y&&h.effectiveMode!==`create`?(0,$.jsx)(F,{tone:`neutral`,children:r(`profileDetailPanel.managedTag`)}):null,headerActions:h.effectiveMode!==`create`&&!h.isReadOnly?(0,$.jsx)(c,{variant:`dangerOutline`,leftIcon:(0,$.jsx)(N,{}),onClick:()=>{t!=null&&g.requestDelete(t)},disabled:h.saving||_,children:r(_?`profileDetailPanel.deleting`:`profileDetailPanel.delete`)}):null,footer:h.isReadOnly?(0,$.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,$.jsx)(c,{variant:`outlined`,onClick:h.switchToSaveAsNew,disabled:h.saving,children:r(`profileDetailPanel.saveAsNew`)}),h.hasViewModeChanges?(0,$.jsx)(c,{variant:`primary`,onClick:()=>void h.handleSave(),disabled:h.saving,children:h.saving?r(`profileDetailPanel.saving`):r(`profileDetailPanel.save`)}):null]}):(0,$.jsx)(`div`,{className:`flex justify-end`,children:(0,$.jsx)(c,{variant:`primary`,onClick:()=>void h.handleSave(),disabled:h.isInvalid||h.saving,children:h.saving?r(`profileDetailPanel.saving`):h.effectiveMode===`create`?r(`profileDetailPanel.createProfile`):r(`profileDetailPanel.saveChanges`)})}),children:(0,$.jsx)(Fe,{editor:h,assistantId:e,connections:o,variant:`panel`})}),(0,$.jsx)(Zn,{...g.blockedDeleteModalProps})]})}function Cr({value:e,profileOptions:t,disabled:n,onChange:r}){let{t:i}=W(`settings`);return(0,$.jsx)(`div`,{className:`rounded-lg border border-[var(--border-base)] bg-[var(--surface-overlay)] p-3`,children:(0,$.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(`p`,{className:`text-body-medium-default font-medium text-[var(--content-default)]`,children:i(`advisorProfileRow.title`)}),(0,$.jsx)(`p`,{className:`mt-0.5 text-body-small-default text-[var(--content-tertiary)]`,children:i(`advisorProfileRow.description`)})]}),(0,$.jsx)(V,{value:e,onChange:r,options:t,placeholder:i(`advisorProfileRow.chooseProfilePlaceholder`),className:`w-44`,menuMinWidth:280,menuAlign:`start`,disabled:n})]})})}var wr=`__custom__`;function Tr(e){return e?!!(e.profile||e.provider||e.model):!1}function Er(e,t){if(t?.provider||t?.model)return null;let n=e.defaultProfile??e.shippedDefaultProfile;return n?{profile:n,via:t?.profile===n?`override`:`default`}:null}function Dr(e,t){let n=Tr(e);return n===Tr(t)?n?(e?.profile??null)===(t?.profile??null)&&(e?.provider??null)===(t?.provider??null)&&(e?.model??null)===(t?.model??null):!0:!1}function Or({assistantId:e,callSites:t,domains:n,persistedOverrides:r,orderedProfiles:i,onClose:o,onApplied:s}){let{t:l}=W(`settings`),u=er(e),d=ve(),f=(0,Q.useMemo)(()=>({requireOwnProviderAndModel:d}),[d]),p=(0,Q.useMemo)(()=>{let e=new Map;for(let n of t){let t=Er(n,r[n.id]);t&&e.set(n.id,t)}return e},[t,r]),m=(0,Q.useMemo)(()=>{let e=new Set(Array.from(p.values(),e=>e.profile));return i.filter(t=>e.has(t.name))},[i,p]),[g,_]=(0,Q.useState)(()=>m[0]?.name??``),[v,y]=(0,Q.useState)(``),[b,x]=(0,Q.useState)(new Set),[S,C]=(0,Q.useState)(!1),w=(0,Q.useMemo)(()=>{let e=new Map(n.map(e=>[e.id,e.displayName]));return t=>e.get(t)??t},[n]),T=(0,Q.useMemo)(()=>t.filter(e=>p.get(e.id)?.profile===g),[t,p,g]),E=(0,Q.useMemo)(()=>T.map(e=>e.id).filter(e=>!b.has(e)),[T,b]),D=(0,Q.useMemo)(()=>m.map(e=>({value:e.name,label:_e(e)})),[m]),k=(0,Q.useMemo)(()=>he(i,[],f).filter(e=>e.name!==g).map(e=>({value:e.name,label:_e(e)})),[i,g,f]),j=le(i,g),M=le(i,v),N=b.size===0;function ee(e){_(e),x(new Set),e===v&&y(``)}function F(e,t){x(n=>{let r=new Set(n);return t?r.delete(e):r.add(e),r})}async function L(){if(!(!g||!v||E.length===0)){C(!0);try{let t={};for(let e of E)t[e]={profile:v};await u.mutateAsync({path:{assistant_id:e},body:{llm:{callSites:t}}}),z.success(l(`bulkOverrideSwapModal.successToast`,{count:E.length,targetLabel:M})),s(),o()}catch(e){let t=re(e);z.error(t??l(`bulkOverrideSwapModal.updateFailedToast`)),t||a(e,{context:`settings-ai-bulk-override-swap`})}finally{C(!1)}}}return(0,$.jsx)(I.Root,{open:!0,onOpenChange:e=>{e||o()},children:(0,$.jsxs)(I.Content,{size:`md`,children:[(0,$.jsx)(I.Header,{children:(0,$.jsx)(I.Title,{children:l(`bulkOverrideSwapModal.title`)})}),(0,$.jsxs)(I.Body,{className:`space-y-4`,children:[(0,$.jsx)(h,{variant:`body-medium-default`,as:`p`,children:l(`bulkOverrideSwapModal.intro`)}),(0,$.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,$.jsx)(V,{id:`bulk-swap-source`,label:l(`bulkOverrideSwapModal.currentlyUsingLabel`),value:g,onChange:ee,options:D}),(0,$.jsx)(V,{id:`bulk-swap-target`,label:l(`bulkOverrideSwapModal.changeToLabel`),value:v,onChange:y,options:k,placeholder:l(`bulkOverrideSwapModal.targetPlaceholder`)})]}),(0,$.jsx)(P,{tone:`info`,title:l(`bulkOverrideSwapModal.noticeTitle`),children:l(`bulkOverrideSwapModal.noticeBody`,{sourceLabel:j})}),(0,$.jsxs)(`div`,{children:[(0,$.jsxs)(`div`,{className:`mb-2 flex items-baseline justify-between gap-2`,children:[(0,$.jsxs)(`div`,{children:[(0,$.jsx)(h,{variant:`body-medium-default`,as:`p`,children:l(`bulkOverrideSwapModal.affectedSummary`,{count:T.length,profile:j})}),(0,$.jsx)(h,{variant:`body-small-default`,as:`p`,className:`text-[color:var(--content-secondary)]`,children:l(`bulkOverrideSwapModal.chooseActions`)})]}),(0,$.jsx)(c,{variant:`ghost`,onClick:()=>x(N?new Set(T.map(e=>e.id)):new Set),children:l(N?`bulkOverrideSwapModal.clearAll`:`bulkOverrideSwapModal.selectAll`)})]}),(0,$.jsx)(`div`,{className:`max-h-72 space-y-1 overflow-y-auto`,children:T.map(e=>(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-3 rounded-md border border-[var(--border-base)] px-3 py-2`,children:[(0,$.jsx)(A,{checked:!b.has(e.id),onCheckedChange:t=>F(e.id,t===!0),disabled:S,label:e.displayName,helperText:w(e.domain)}),(0,$.jsx)(`span`,{className:`shrink-0 text-body-small-default text-[color:var(--content-tertiary)]`,children:p.get(e.id)?.via===`override`?l(`bulkOverrideSwapModal.viaOverride`):l(`bulkOverrideSwapModal.viaDefault`)})]},e.id))})]})]}),(0,$.jsxs)(I.Footer,{children:[(0,$.jsx)(h,{variant:`body-small-default`,as:`p`,className:`mr-auto self-center text-[color:var(--content-secondary)]`,children:l(`bulkOverrideSwapModal.willChange`,{count:E.length})}),(0,$.jsx)(c,{variant:`ghost`,onClick:o,disabled:S,children:l(`bulkOverrideSwapModal.cancel`)}),(0,$.jsx)(c,{variant:`primary`,disabled:!g||!v||E.length===0||S,onClick:()=>void L(),children:S?(0,$.jsx)(O,{className:`h-4 w-4 animate-spin`}):l(`bulkOverrideSwapModal.applyTo`,{count:E.length})})]})]})})}function kr({id:e,displayName:t,description:n,defaultProfileLabel:r,draft:i,profileOptions:a,connections:o,onDraftChange:s,onToggle:c}){let{t:l}=W(`settings`),u=Tr(i),d=!i||!u?``:i.provider||i.model?wr:i.profile??``,f=d===wr,p=He(),m=(o??[]).some(e=>e.provider===xe),h=[...p,...m?[xe]:[]],g=p[0]??K[0],_=i?.provider,v=Y(_)?_:_===`chatgpt`?xe:void 0,y=v!==void 0&&h.some(e=>e===v),b=v??g,x=Ue(b,``,(o??[]).filter(e=>Be(e.provider,b)))?We(b):we(b),S=x.map(e=>({value:e.id,label:e.displayName})),C=typeof i?.model==`string`?i.model:``;if(C&&!x.some(e=>e.id===C)){let e=we(b).find(e=>e.id===C)?.displayName??C;S.push({value:C,label:l(`callSiteOverridesRow.unavailableOption`,{name:e})})}let w=!!i?.provider&&!i?.model,T=[...h.map(e=>({value:e,label:q[e]??e})),...v&&!y?[{value:v,label:l(`callSiteOverridesRow.unavailableOption`,{name:q[v]??v})}]:[]];function E(t){t===`__custom__`?s(e,{profile:null,provider:g,model:J(g)??``}):t===``?s(e,null):s(e,{profile:t,provider:null,model:null})}function D(t){let n=J(t)??``;s(e,{...i??{},profile:null,provider:t,model:n})}function O(t){s(e,{...i??{},model:t})}return(0,$.jsxs)(`div`,{className:`rounded-lg border border-[var(--border-base)] bg-[var(--surface-overlay)] p-3`,children:[(0,$.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,$.jsx)(`p`,{className:`text-body-medium-default font-medium text-[var(--content-default)]`,children:t}),n&&(0,$.jsxs)(`p`,{className:`mt-0.5 text-body-small-default text-[var(--content-tertiary)]`,children:[n,r&&(0,$.jsx)(`span`,{className:`ml-1.5 text-body-small-default text-[var(--content-tertiary)] opacity-60`,children:l(`callSiteOverridesRow.defaultProfileSuffix`,{label:r})})]})]}),(0,$.jsx)(R,{checked:u,onChange:t=>c(e,t),"aria-label":l(`callSiteOverridesRow.overrideAriaLabel`,{displayName:t}),className:`shrink-0`})]}),u&&(0,$.jsx)(`div`,{className:`mt-3`,children:(0,$.jsx)(V,{value:d,onChange:E,options:a,className:`w-44`,menuMinWidth:280,menuAlign:`start`})}),u&&f&&(0,$.jsxs)(`div`,{className:`mt-3 space-y-2 border-t border-[var(--border-base)] pt-3`,children:[(0,$.jsxs)(`div`,{className:`flex gap-2`,children:[(0,$.jsxs)(`div`,{className:`flex-1`,children:[(0,$.jsx)(`label`,{className:`mb-1 block text-body-small-default text-[var(--content-tertiary)]`,children:l(`callSiteOverridesRow.providerLabel`)}),(0,$.jsx)(V,{value:b??``,onChange:D,options:T})]}),(0,$.jsxs)(`div`,{className:`flex-1`,children:[(0,$.jsx)(`label`,{className:`mb-1 block text-body-small-default text-[var(--content-tertiary)]`,children:l(`callSiteOverridesRow.modelLabel`)}),(0,$.jsx)(V,{value:i?.model??``,onChange:O,options:S})]})]}),w&&(0,$.jsx)(`p`,{className:`text-body-small-default text-[var(--system-negative-strong)]`,children:l(`callSiteOverridesRow.pickModelError`)})]})]})}function Ar({groups:e,drafts:t,buildProfileOptionsForRow:n,profileLabelFor:r,advisorMatchesSearch:i,connections:a,onDraftChange:o,onToggle:s}){let{t:c}=W(`settings`);return(0,$.jsx)(`div`,{className:`space-y-4`,children:e.length===0?i?null:(0,$.jsx)(`p`,{className:`py-8 text-center text-body-medium-lighter text-[var(--content-tertiary)]`,children:c(`overridesCallSiteList.emptySearch`)}):e.map(({domain:e,sites:i})=>(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`p`,{className:`mb-2 text-body-small-default font-semibold uppercase tracking-wider text-[var(--content-tertiary)]`,children:e.displayName}),(0,$.jsx)(`div`,{className:`space-y-1`,children:i.map(e=>{let i=(()=>{let n=t[e.id]??null;return!n||!Tr(n)?``:n.provider||n.model?wr:n.profile??``})(),c=e.shippedDefaultProfile??e.defaultProfile,l=c?r(c):null;return(0,$.jsx)(kr,{id:e.id,displayName:e.displayName,description:e.description,defaultProfileLabel:l,draft:t[e.id]??null,profileOptions:n(i===``||i===`__custom__`?null:i),connections:a,onDraftChange:o,onToggle:s},e.id)})})]},e.id))})}function jr(e,t){let n={};for(let r of Object.keys(e)){let i=e[r]??null;Tr(i)?n[r]={profile:i?.profile??null,provider:i?.provider??null,model:i?.model??null}:r in t&&t[r]===null&&(n[r]=null)}return n}function Mr(e){let t={};for(let n of Object.keys(e))t[n]=null;return t}function Nr({catalogCallSiteIds:e,persistedOverrides:t,persistedAdvisor:n,isSeeded:r}){let[i,a]=(0,Q.useState)({}),[o,s]=(0,Q.useState)(void 0),c=(0,Q.useMemo)(()=>{if(!r)return{};let n={};for(let r of e)if(r in i)n[r]=i[r];else{let e=t[r];n[r]=e?{...e}:{}}return n},[r,e,t,i]),l=o??n,u=l!==n,d=(0,Q.useMemo)(()=>{if(!r)return!1;for(let e of Object.keys(c))if(!Dr(c[e],t[e]))return!0;return!1},[r,c,t]);return{drafts:c,advisorProfile:l,advisorDirty:u,callSiteDraftsDirty:d,hasUnsavedDrafts:u||d,hasValidationError:(0,Q.useMemo)(()=>Object.values(c).some(e=>Tr(e)&&!!e?.provider&&!e?.model),[c]),setDraft:(0,Q.useCallback)((e,t)=>{a(n=>({...n,[e]:t}))},[]),setAdvisor:(0,Q.useCallback)(e=>{s(e)},[]),clearEdits:(0,Q.useCallback)(()=>{a({}),s(void 0)},[]),buildSavePatch:(0,Q.useCallback)(()=>jr(c,i),[c,i]),buildResetPatch:(0,Q.useCallback)(()=>Mr(c),[c])}}function Pr({assistantId:e,onClose:t}){let{t:n}=W(`settings`),{data:r}=f({...qt({path:{assistant_id:e}}),staleTime:3e4}),i=(0,Q.useMemo)(()=>r?.llm?.profiles??{},[r?.llm?.profiles]),o=(0,Q.useMemo)(()=>r?.llm?.profileOrder??[],[r?.llm?.profileOrder]),s=(0,Q.useMemo)(()=>r?.llm?.callSites??{},[r?.llm?.callSites]),l=(0,Q.useMemo)(()=>fe(i,o),[i,o]),u=He(),d=ve(),p=(0,Q.useMemo)(()=>({requireOwnProviderAndModel:d}),[d]),m=er(e),[h,g]=(0,Q.useState)(``),[_,v]=(0,Q.useState)(!1),[y,x]=(0,Q.useState)(!1),[S,C]=(0,Q.useState)(!1),{data:w,isLoading:T,isError:E,refetch:D}=f({...Wt({path:{assistant_id:e}}),enabled:!!e,staleTime:6e4,refetchOnWindowFocus:!1}),{data:k}=f({...Mt({path:{assistant_id:e}}),enabled:!!e}),A=(0,Q.useMemo)(()=>(w?.callSites??[]).filter(e=>e.id!==`mainAgent`),[w]),j=!T&&!E&&!!w,N=!!r,ee=j&&N,P=(0,Q.useMemo)(()=>A.map(e=>e.id),[A]),F=r?.llm?.advisorProfile??``,{drafts:I,advisorProfile:R,advisorDirty:V,callSiteDraftsDirty:te,hasUnsavedDrafts:H,hasValidationError:U,setDraft:ne,setAdvisor:re,clearEdits:G,buildSavePatch:q,buildResetPatch:Y}=Nr({catalogCallSiteIds:P,persistedOverrides:s,persistedAdvisor:F,isSeeded:ee}),ie=(0,Q.useMemo)(()=>new Set(P),[P]),ae=(0,Q.useCallback)(e=>le(l,e),[l]),se=(0,Q.useCallback)(e=>({value:e.name,label:_e(e),...me(e,l,p)===`undispatchable`?{icon:(0,$.jsx)(b,{className:`h-3.5 w-3.5 text-[var(--system-mid-strong)]`}),tooltip:oe(e)}:{}}),[l,p]),X=(0,Q.useMemo)(()=>he(l,[F],p).map(se),[l,F,se,p]),Z=(0,Q.useMemo)(()=>{let e=h.trim().toLowerCase();return e===``||`advisor`.includes(e)||`second opinion`.includes(e)},[h]),ce=(0,Q.useMemo)(()=>A.some(e=>Er(e,s[e.id])!==null),[A,s]),de=(0,Q.useMemo)(()=>Object.entries(s).some(([e,t])=>ie.has(e)&&(t?.profile!=null||t?.provider!=null||t?.model!=null)),[s,ie]),pe=(0,Q.useCallback)(e=>[...he(l,[e],p).map(se),{value:wr,label:n(`overridesDetailPanel.customProfileOption`)}],[l,se,p,n]),ge=(0,Q.useMemo)(()=>{if(!h.trim())return A;let e=h.toLowerCase();return A.filter(t=>(t.displayName??``).toLowerCase().includes(e)||(t.description??``).toLowerCase().includes(e)||(t.domain??``).toLowerCase().includes(e))},[A,h]),ye=(0,Q.useMemo)(()=>{if(!w)return[];let e=w.domains.map(e=>e.id),t=new Map(w.domains.map(e=>[e.id,e])),r=[];for(let n of e){let e=ge.filter(e=>e.domain===n);e.length>0&&r.push({domain:t.get(n),sites:e})}let i=new Set(e),a=ge.filter(e=>!i.has(e.domain));return a.length>0&&r.push({domain:{id:`other`,displayName:n(`overridesDetailPanel.otherDomain`)},sites:a}),r},[w,ge,n]),be=(0,Q.useCallback)((e,t)=>{if(!t){ne(e,null);return}let n=ue(l,A.find(t=>t.id===e)?.defaultProfile,p);if(n)ne(e,{profile:n});else{let t=u[0]??K[0];ne(e,{provider:t,model:J(t)??``})}},[A,l,u,ne,p]),xe=(0,Q.useCallback)(async()=>{v(!0);try{let r=q();await m.mutateAsync({path:{assistant_id:e},body:{llm:{...te?{callSites:r}:{},...V?{advisorProfile:R}:{}}}}),t(),z.success(n(`overridesDetailPanel.overridesSavedToast`))}catch(e){z.error(n(`overridesDetailPanel.saveFailedToast`)),a(e,{context:`call_site_overrides_save`})}finally{v(!1)}},[q,te,V,R,t,m,e,n]),Se=(0,Q.useCallback)(async()=>{v(!0);try{let r=Y();await m.mutateAsync({path:{assistant_id:e},body:{llm:{callSites:r}}}),t(),z.success(n(`overridesDetailPanel.overridesResetToast`))}catch(e){z.error(n(`overridesDetailPanel.resetFailedToast`)),a(e,{context:`call_site_overrides_reset`})}finally{v(!1)}},[Y,t,m,e,n]),Ce=(0,$.jsxs)(`div`,{className:`flex items-center justify-end gap-2`,children:[de&&(0,$.jsx)(c,{variant:`outlined`,onClick:()=>x(!0),disabled:_||!ee,tintColor:`var(--system-negative-strong)`,className:`mr-auto`,children:n(`overridesDetailPanel.resetToDefaults`)}),(0,$.jsx)(c,{variant:`primary`,onClick:()=>void xe(),disabled:!H||U||_,children:_?(0,$.jsx)(O,{className:`h-4 w-4 animate-spin`}):n(`overridesDetailPanel.save`)})]});return(0,$.jsxs)(yn,{title:n(`overridesDetailPanel.title`),closeVariant:`outlined`,onClose:t,footer:Ce,children:[(0,$.jsx)(`p`,{className:`mb-4 text-body-medium-lighter text-[var(--content-tertiary)]`,children:n(`overridesDetailPanel.description`)}),(0,$.jsxs)(`div`,{children:[(0,$.jsxs)(`div`,{className:`mb-4 flex items-center gap-2`,children:[(0,$.jsx)(`div`,{className:`min-w-0 flex-1`,children:(0,$.jsx)(L,{type:`search`,value:h,onChange:e=>g(e.target.value),placeholder:n(`overridesDetailPanel.searchPlaceholder`),leftIcon:(0,$.jsx)(M,{className:`h-4 w-4`}),fullWidth:!0})}),(0,$.jsx)(c,{variant:`outlined`,onClick:()=>C(!0),disabled:!ee||_||H||!ce,title:H?n(`overridesDetailPanel.bulkChangeUnsavedTitle`):ce?void 0:n(`overridesDetailPanel.bulkChangeNoCandidatesTitle`),children:n(`overridesDetailPanel.bulkChange`)})]}),N&&Z&&(0,$.jsxs)(`div`,{className:`mb-4`,children:[(0,$.jsx)(`p`,{className:`mb-2 text-body-small-default font-semibold uppercase tracking-wider text-[var(--content-tertiary)]`,children:n(`overridesDetailPanel.advisorSection`)}),(0,$.jsx)(Cr,{value:R,profileOptions:X,disabled:_,onChange:re})]}),T&&(0,$.jsx)(`div`,{className:`flex items-center justify-center py-12`,children:(0,$.jsx)(O,{className:`h-6 w-6 animate-spin text-[var(--content-tertiary)]`})}),E&&(0,$.jsxs)(`div`,{className:`flex flex-col items-center gap-3 py-12 text-center`,children:[(0,$.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-default)]`,children:n(`overridesDetailPanel.loadErrorTitle`)}),(0,$.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:n(`overridesDetailPanel.loadErrorHint`)}),(0,$.jsx)(c,{variant:`outlined`,onClick:()=>void D(),children:n(`overridesDetailPanel.retry`)})]}),!T&&!E&&w&&(0,$.jsx)(Ar,{groups:ye,drafts:I,buildProfileOptionsForRow:pe,profileLabelFor:ae,advisorMatchesSearch:Z,connections:k?.connections,onDraftChange:ne,onToggle:be})]}),S&&w&&(0,$.jsx)(Or,{assistantId:e,callSites:A,domains:w.domains,persistedOverrides:s,orderedProfiles:l,onClose:()=>C(!1),onApplied:G}),(0,$.jsx)(B,{open:y,title:n(`overridesDetailPanel.resetToDefaults`),message:n(`overridesDetailPanel.resetConfirmMessage`),confirmLabel:n(`overridesDetailPanel.resetToDefaults`),destructive:!0,onConfirm:()=>{x(!1),Se()},onCancel:()=>x(!1)})]})}function Fr({mode:e,connection:t,assistantId:n,existingNames:r,connections:i,variant:a=`modal`,onSave:o,onCancel:s}){let{t:l}=W(`settings`),[u,f]=(0,Q.useState)(t?.label??``),p=t?.name??``,m=t?.provider??`anthropic`,g=t?.auth.type??`api_key`,[_,v]=(0,Q.useState)(()=>t?.auth.type===`api_key`?t.auth.credential:t?``:`credential/anthropic/api_key`),[y,b]=(0,Q.useState)(t?.baseUrl??``),[x,S]=(0,Q.useState)(()=>t?.models?t.models.map(e=>e.id).join(`, `):``),[C,w]=(0,Q.useState)(!1),[T,E]=(0,Q.useState)(null),D=m===`openai-compatible`,[O,k]=(0,Q.useState)(``),[A,j]=(0,Q.useState)(!1),M=d(),N=(0,Q.useMemo)(()=>Me(_),[_]),ee=g===`api_key`&&N!==null,{hasStoredCredential:P,isLoading:F}=ke({assistantId:n,credentialKind:`credential`,credentialName:N?`${N.service}:${N.field}`:``,enabled:ee}),{credentials:R}=De({assistantId:n,enabled:g===`api_key`});(0,Q.useEffect)(()=>{let e=t?.provider??`anthropic`;f(t?.label??``),t?.auth.type===`api_key`?v(t.auth.credential):v(t?``:`credential/${e}/api_key`),E(null),b(t?.baseUrl??``),S(t?.models?t.models.map(e=>e.id).join(`, `):``),k(``),j(!1)},[t]);let z=u.trim()!==(t?.label??``).trim(),B=D&&z?mt(u,i,t?.name):null,V=p.trim().length>0&&B===null;async function te(){if(V){w(!0),E(null);try{let e;if(g===`api_key`){let t=_.trim()||`credential/${m}/api_key`,r=O.trim();if(r){j(!0);try{let e=Me(t);await St({path:{assistant_id:n},body:e?{type:`credential`,name:`${e.service}:${e.field}`,value:r}:{type:`api_key`,name:m,value:r},throwOnError:!0});let i=Ve(n,`credential`,e?`${e.service}:${e.field}`:``);M.setQueryData(i,!0),M.invalidateQueries({queryKey:Ft({path:{assistant_id:n}})})}catch{E(l(`providerEditorContent.failedSaveApiKey`));return}finally{j(!1)}}e={type:`api_key`,credential:t}}else if(t)e=t.auth;else{E(l(`providerEditorContent.nothingToEdit`));return}let r=u.trim()||null,i={auth:e,label:r,...D&&{base_url:y.trim()||null,models:x.trim()?x.split(`,`).map(e=>({id:e.trim()})).filter(e=>e.id):null}},{data:a,error:s,response:c}=await bt({path:{assistant_id:n,name:t?.name??p.trim()},body:i});if(!c?.ok){E(je(c?.status,s)??Oe(c?.status));return}if(!a){E(l(`providerEditorContent.emptyServerResponse`));return}o(a)}catch{E(l(`providerEditorContent.failedSaveProvider`))}finally{w(!1)}}}let H=R.filter(e=>e.service===m),ne=e!==`create`&&t?.auth.type===`api_key`,re=H.length>0||ne,G=Ae(l(`providerEditorContent.apiKeyPlaceholder`),P);if(e===`create`)return(0,$.jsx)(Ie,{variant:a===`panel`?`inline`:`modal`,assistantId:n,existingNames:r,connections:i,defaultProviderType:m,onCreated:o,onCancel:s});let K=(0,$.jsxs)(`div`,{className:`space-y-4`,children:[(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:(0,$.jsx)(U,{i18nKey:`providerEditorContent.displayNameLabel`,ns:`settings`,components:{optional:(0,$.jsx)(`span`,{className:`text-[var(--content-disabled)]`})}})}),(0,$.jsx)(L,{value:u,onChange:e=>f(e.target.value),placeholder:l(`providerEditorContent.displayNamePlaceholder`),fullWidth:!0}),B?(0,$.jsx)(h,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:Le[B]}):null]}),D&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:l(`providerEditorContent.baseUrlLabel`)}),(0,$.jsx)(L,{value:y,onChange:e=>b(e.target.value),placeholder:l(`providerEditorContent.baseUrlPlaceholder`),fullWidth:!0})]}),(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:l(`providerEditorContent.modelsLabel`)}),(0,$.jsx)(L,{value:x,onChange:e=>S(e.target.value),placeholder:l(`providerEditorContent.modelsPlaceholder`),fullWidth:!0}),(0,$.jsx)(h,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:l(`providerEditorContent.modelsHint`)})]})]}),g===`api_key`&&(0,$.jsx)(Ne,{apiKeyValue:O,onApiKeyChange:k,credential:_,onCredentialChange:v,isLoadingCredential:F,apiKeyPlaceholder:G,provider:m,providerCredentials:H,showAdvancedSection:re,onError:E}),g===`oauth_subscription`&&(0,$.jsx)(Te,{assistantId:n,onConnected:o}),T&&(0,$.jsx)(h,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:T})]}),q=(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(c,{variant:`ghost`,onClick:s,children:l(`providerEditorContent.cancel`)}),(0,$.jsx)(c,{variant:`primary`,disabled:!V||C||A,onClick:()=>void te(),children:l(C?`providerEditorContent.saving`:`providerEditorContent.saveChanges`)})]});return a===`panel`?(0,$.jsxs)(`div`,{className:`space-y-4`,children:[K,(0,$.jsx)(`div`,{className:`flex justify-end gap-2`,children:q})]}):(0,$.jsxs)(I.Content,{size:`md`,children:[(0,$.jsxs)(I.Header,{children:[(0,$.jsx)(I.Title,{children:l(`providerEditorContent.editProviderTitle`)}),(0,$.jsx)(I.Description,{children:t?l(`providerEditorContent.editingConnection`,{name:at(t)}):l(`providerEditorContent.editProviderSettingsFallback`)})]}),(0,$.jsx)(I.Body,{children:K}),(0,$.jsx)(I.Footer,{children:q})]})}function Ir({assistantId:e,connectionName:t,onClose:n}){let{t:r}=W(`settings`),i=d(),{data:a}=f(Mt({path:{assistant_id:e}})),o=(0,Q.useMemo)(()=>a?.connections??[],[a]),s=(0,Q.useMemo)(()=>t==null?void 0:o.find(e=>e.name===t),[t,o]),c=t!=null&&a!=null&&s==null;(0,Q.useEffect)(()=>{c&&n()},[c,n]);function l(){i.invalidateQueries({queryKey:Lt({path:{assistant_id:e}})}),i.invalidateQueries({queryKey:Vt({path:{assistant_id:e}})}),n()}return(0,$.jsx)(yn,{title:s?at(s):r(`providerDetailPanel.addProviderTitle`),closeVariant:`outlined`,onClose:n,children:t==null||s!=null?(0,$.jsx)(Fr,{mode:s?`edit`:`create`,connection:s,variant:`panel`,assistantId:e,existingNames:o.map(e=>e.name),connections:o,onSave:l,onCancel:n}):null})}var Lr={vellum:{provider:`vellum`},deepgram:{provider:`deepgram`,credentialService:`deepgram`},openai:{provider:`openai-whisper`,credentialService:`openai`}},Rr={vellum:`vellum`,deepgram:`deepgram`,"openai-whisper":`openai`},zr=`deepgram`;function Br({assistantId:e,hideSaveButton:r=!1,hideCredentialsGuide:i=!1,onSaveStateChange:a}={}){let o=vn(),s=e??o,c=kt(),l=d(),[u]=(0,Q.useState)(()=>ft.filter(e=>!e.requiresNativeDictation||ze())),p=zr,{data:m}=f({...qt({path:{assistant_id:s}}),enabled:c,staleTime:3e4}),h=m?.services?.stt,g=h?.mode===`managed`?`vellum`:h?.provider,_=(0,Q.useMemo)(()=>{let e=g?Rr[g]:void 0;if(e&&u.some(t=>t.id===e))return e;let n=t(lt,p);return u.some(e=>e.id===n)?n:p},[g,u,p]),v=!!g,[y,b]=Vn(_),{available:x,currentCode:S,configuredProviderId:C,selectLanguage:w,selecting:T}=fn(s),[E,D]=(0,Q.useState)(!1),O=x&&y===_&&(Lr[y]?.provider===C||!!g&&!Rr[g]),[k,A]=(0,Q.useState)(``),[j,M]=(0,Q.useState)(!1),[N,P]=(0,Q.useState)(!1);(0,Q.useEffect)(()=>{let e=t(lt,p);e===`macos-native`&&!u.some(t=>t.id===e)&&n(lt,p)},[u,p]);let F=(0,Q.useMemo)(()=>u.find(e=>e.id===y)??u[0],[u,y]),I=F.apiKeyPlaceholder!==void 0;(0,Q.useEffect)(()=>{M(t(et+y,``).length>0),A(``)},[y]);let R=(0,Q.useMemo)(()=>{let e=y!==_,t=k.trim().length>0;return e||t},[y,_,k]),B=(0,Q.useCallback)(async()=>{let e=k.trim();n(lt,y),e.length>0&&n(et+y,e);let r=Lr[y];P(!0);try{if(r?.credentialService){let n=e.length>0?e:t(et+y,``);if(n.length>0){let{response:e}=await Tt({path:{assistant_id:s},body:{service:r.credentialService,field:`api_key`,value:n,label:`${F.displayName} API Key`},throwOnError:!1});if(!e?.ok)throw Error(`Failed to store API key (HTTP ${e?.status??`?`})`)}}if(r&&(y!==_||!v)||g===`vellum`&&y!==`vellum`){let e=r?.provider??zr,{response:t}=await Ct({path:{assistant_id:s},body:{services:{stt:{provider:e,mode:e===`vellum`?`managed`:`your-own`}}},throwOnError:!1});if(!t?.ok)throw Error(`Failed to save configuration (HTTP ${t?.status??`?`})`)}return e.length>0&&M(!0),A(``),l.invalidateQueries({queryKey:zt({path:{assistant_id:s}})}),z.success(`Speech-to-text settings saved`),!0}catch(e){return z.error(e instanceof Error?e.message:`Failed to save speech-to-text settings`),!1}finally{P(!1)}},[s,y,k,F,_,v,g,l]);(0,Q.useEffect)(()=>{a?.({hasChanges:R,saving:N,save:B})},[a,R,N,B]);let te=(0,Q.useCallback)(()=>{n(et+y,``),M(!1),A(``)},[y]),H=j?`•••••••• (Enter a new key to replace)`:F.apiKeyPlaceholder;return(0,$.jsxs)(`div`,{className:`space-y-4`,children:[(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Provider`}),(0,$.jsx)(V,{value:y,onChange:b,options:u.map(e=>({value:e.id,label:e.displayName})),"aria-label":`STT provider`})]}),O&&(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Spoken language`}),(0,$.jsx)(nt,{"aria-label":`Spoken language`,"aria-haspopup":`dialog`,onClick:()=>D(!0),value:pn(S,C)}),(0,$.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Applies from your next spoken turn.`}),(0,$.jsx)(En,{open:E,onOpenChange:D,title:`Spoken language`,currentCode:S,configuredProviderId:C,selectLanguage:w,selecting:T})]}),I&&(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`API Key`}),(0,$.jsx)(L,{type:`password`,value:k,onChange:e=>A(e.target.value),placeholder:H,fullWidth:!0})]}),F.setupWarning&&(0,$.jsxs)(`div`,{className:`flex items-start gap-2 rounded-lg border border-[var(--border-subtle)] bg-[var(--surface-sunken)] p-3 text-body-small-default text-[var(--content-tertiary)]`,children:[(0,$.jsx)(ee,{className:`mt-0.5 h-3.5 w-3.5 shrink-0 text-[var(--system-mid-strong)]`}),(0,$.jsx)(`span`,{children:F.setupWarning})]}),!i&&F.credentialsGuide&&(0,$.jsx)(Fn,{guide:F.credentialsGuide}),y===`vellum`&&(0,$.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Transcription runs through your Vellum account.`}),(!r||j)&&(0,$.jsxs)(`div`,{className:`flex items-center justify-end gap-2`,children:[!r&&(0,$.jsx)(Nn,{onClick:B,disabled:!R||N}),j&&(0,$.jsx)(Pn,{onClick:te})]})]})}function Vr(){let{t:e}=W(`settings`);return(0,$.jsx)(kn,{title:e(`speechToTextCard.title`),subtitle:e(`speechToTextCard.subtitle`),children:(0,$.jsx)(Br,{})})}async function Hr(e){let{provider:t,apiKey:n,voiceId:r,text:i}=e;if(n.trim().length===0)return{kind:`error`,message:`Save an API key for this provider first.`};try{return t===`elevenlabs`?await Ur(n,r,i):t===`deepgram`?await Wr(n,i):t===`fish-audio`?{kind:`unsupported`,message:`Fish Audio TTS is only supported in the desktop app today. Use ElevenLabs or Deepgram to test from the browser.`}:t===`xai`?{kind:`unsupported`,message:`xAI TTS is only supported in the desktop app today. Use ElevenLabs or Deepgram to test from the browser.`}:{kind:`unsupported`,message:`TTS testing for "${t}" is not supported from the browser yet.`}}catch(e){return{kind:`error`,message:e instanceof Error?e.message:`Failed to reach the TTS provider.`}}}async function Ur(e,t,n){let r=t.trim();if(r.length===0)return{kind:`error`,message:`Enter and save a Voice ID before testing ElevenLabs.`};let i=await fetch(`https://api.elevenlabs.io/v1/text-to-speech/${encodeURIComponent(r)}?output_format=mp3_44100_128`,{method:`POST`,headers:{"xi-api-key":e,"Content-Type":`application/json`,Accept:`audio/mpeg`},body:JSON.stringify({text:n,model_id:`eleven_turbo_v2_5`})});return i.ok?{kind:`audio`,blob:await i.blob()}:{kind:`error`,message:await Gr(i,`ElevenLabs rejected the request.`)}}async function Wr(e,t){let n=await fetch(`https://api.deepgram.com/v1/speak?model=aura-2-thalia-en`,{method:`POST`,headers:{Authorization:`Token ${e}`,"Content-Type":`application/json`,Accept:`audio/mpeg`},body:JSON.stringify({text:t})});return n.ok?{kind:`audio`,blob:await n.blob()}:{kind:`error`,message:await Gr(n,`Deepgram rejected the request.`)}}async function Gr(e,t){try{let n=await e.text();if(n.length===0)return`${t} (HTTP ${e.status})`;try{let e=JSON.parse(n);if(e&&typeof e==`object`&&`detail`in e&&typeof e.detail==`string`)return e.detail;if(e&&typeof e==`object`&&`message`in e&&typeof e.message==`string`)return e.message}catch{}return n.slice(0,200)}catch{return`${t} (HTTP ${e.status})`}}function Kr({assistantId:e,value:t,onChange:n,className:r}){let[i,a]=(0,Q.useState)(!1),{voices:o}=gn(e);if(o.length===0)return null;let s=o.find(e=>e.model===t)??o[0];return(0,$.jsxs)(g.Root,{open:i,onOpenChange:a,children:[(0,$.jsx)(g.Trigger,{asChild:!0,children:(0,$.jsx)(nt,{"aria-label":`Voice`,value:s?mn(s.description):`Select a voice`,className:r})}),(0,$.jsx)(g.Content,{side:`bottom`,align:`start`,className:`w-[var(--radix-popover-trigger-width)] p-1`,children:(0,$.jsx)(hn,{assistantId:e,value:t,onChange:n,onSelect:()=>a(!1),showSource:!0})})]})}var qr={elevenlabs:`voiceId`,"fish-audio":`referenceId`,xai:`voiceId`};function Jr({assistantId:e,hideSaveButton:r=!1,hideCredentialsGuide:i=!1,onSaveStateChange:a}={}){let o=vn(),s=e??o,l=ht.use.name()??`your assistant`,u=kt(),p=d(),{data:m}=f({...jt({path:{assistant_id:s}}),enabled:u,staleTime:1/0}),h=(0,Q.useMemo)(()=>{let e=m?.providers;if(!e)return Re;if(e.some(e=>e.id===`vellum`))return e;let t=Re.find(e=>e.id===`vellum`);return t?[t,...e]:e},[m]),{data:g}=f({...qt({path:{assistant_id:s}}),enabled:u,staleTime:3e4}),_=g?.services?.tts,v=_?.mode===`managed`?`vellum`:_?.provider,y=`elevenlabs`,b=(0,Q.useMemo)(()=>v??t(`vellum:voice:ttsProvider`,y),[v,y]),x=!!v,[S,C]=Vn(b),[w,T]=(0,Q.useState)(``),[E,O]=(0,Q.useState)(``),[k,A]=(0,Q.useState)(``),[j,M]=(0,Q.useState)(!1),[N,ee]=(0,Q.useState)(!1),[P,F]=(0,Q.useState)(!1),{voices:I,defaultModel:R,fetched:B}=_n(s,{enabled:S===`vellum`}),te=_?.providers?.vellum?.model??R??``,[H,U]=Vn(te),W=I.find(e=>e.model===H)??I[0],[ne,re]=(0,Q.useState)(null),G=I.some(e=>e.model===te),K=ne??(B&&te!==``&&!G),q=(0,Q.useMemo)(()=>h.find(e=>e.id===S)??h[0],[S,h]),J=S===`vellum`&&q.supportsVoiceSelection&&H.trim()!==``&&H.trim()!==te,Y=(0,Q.useCallback)(e=>{let n=t(Je+e,``),r=t(it+e,``);M(n.length>0),O(r),A(r),T(``)},[]);(0,Q.useEffect)(()=>{Y(S)},[S,Y]);let ie=(0,Q.useMemo)(()=>{let e=S!==b,t=w.trim().length>0,n=E.trim()!==k;return e||t||n||J},[S,b,w,E,k,J]),ae=(0,Q.useCallback)(async()=>{let e=w.trim(),r=E.trim(),i=q.id;n(Ye,i),e.length>0&&n(Je+i,e),n(it+i,r);let a=e.length>0?e:t(Je+i,``),o=qr[i];F(!0);try{if(a.length>0){let{response:e}=await Tt({path:{assistant_id:s},body:{service:i,field:`api_key`,value:a,label:`${q.displayName} API Key`},throwOnError:!1});if(!e?.ok)throw Error(`Failed to store API key (HTTP ${e?.status??`?`})`)}let e={...S!==b||!x?{provider:i,mode:i===`vellum`?`managed`:`your-own`}:{},...o?{providers:{[i]:{[o]:r}}}:{},...J?{providers:{vellum:{model:H.trim()}}}:{}};if(Object.keys(e).length>0){let{response:t}=await Ct({path:{assistant_id:s},body:{services:{tts:e}},throwOnError:!1});if(!t?.ok)throw Error(`Failed to save configuration (HTTP ${t?.status??`?`})`)}return M(a.length>0),A(r),T(``),p.invalidateQueries({queryKey:zt({path:{assistant_id:s}})}),z.success(`Text-to-speech settings saved`),!0}catch(e){return z.error(e instanceof Error?e.message:`Failed to save text-to-speech settings`),!1}finally{F(!1)}},[s,S,H,J,w,E,q,b,x,p]);(0,Q.useEffect)(()=>{a?.({hasChanges:ie,saving:P,save:ae})},[a,ie,P,ae]);let oe=(0,Q.useCallback)(()=>{n(Je+S,``),M(!1),T(``)},[S]),se=(0,Q.useCallback)(async()=>{ee(!0);try{let e=t(Je+S,``),n=w.trim(),r=n.length>0?n:e;if(r.length===0){z.error(`Save an API key for this provider before testing.`);return}let i=t(it+S,``),a=E.trim(),o=await Hr({provider:S,apiKey:r,voiceId:a.length>0?a:i,text:`Hey! It's ${l}. How does this sound?`});if(o.kind!==`audio`){z.error(o.message);return}let s=URL.createObjectURL(o.blob);try{let e=new Audio(s);await e.play(),await new Promise(t=>{e.onended=()=>t(),e.onerror=()=>t()})}finally{URL.revokeObjectURL(s)}}finally{ee(!1)}},[l,w,S,E]),X=j?`•••••••• (Enter a new key to replace)`:q.apiKeyPlaceholder,Z=S===`vellum`,ce=Z&&q.supportsVoiceSelection,le=(0,$.jsxs)(c,{variant:`link`,size:`compact`,className:`inline-flex h-auto items-center gap-1 px-0 underline [--vbtn-fg:var(--content-tertiary)]`,onClick:()=>{re(!1),I.some(e=>e.model===H)||U(R||I[0]?.model||``)},children:[(0,$.jsx)(D,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),`Choose from catalog`]}),ue=ce&&K&&I.length>0?le:null;return(0,$.jsxs)(`div`,{className:`space-y-4`,children:[(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Provider`}),(0,$.jsx)(V,{value:S,onChange:C,options:h.map(e=>({value:e.id,label:e.displayName})),"aria-label":`TTS provider`})]}),!Z&&(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`API Key`}),(0,$.jsx)(L,{type:`password`,value:w,onChange:e=>T(e.target.value),placeholder:X,fullWidth:!0})]}),ce&&(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Voice`}),K?(0,$.jsx)(L,{type:`text`,value:H,onChange:e=>U(e.target.value),placeholder:`Enter a voice ID`,"aria-label":`Custom voice ID`,fullWidth:!0}):W?(0,$.jsx)(Kr,{assistantId:s,value:H,onChange:U}):B&&(0,$.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`No managed voices are currently available.`})]}),q.supportsVoiceSelection&&!Z&&(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Voice ID`}),(0,$.jsx)(L,{type:`text`,value:E,onChange:e=>O(e.target.value),placeholder:`Enter a voice ID`,fullWidth:!0})]}),!i&&!Z&&(0,$.jsx)(Fn,{guide:q.credentialsGuide}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[!Z&&(0,$.jsx)(c,{variant:`outlined`,onClick:se,disabled:N,children:N?`Testing…`:`Test`}),(0,$.jsxs)(`div`,{className:`ml-auto flex items-center gap-3`,children:[ue,!r&&(0,$.jsx)(Nn,{onClick:ae,disabled:!ie||P}),j&&!Z&&(0,$.jsx)(Pn,{onClick:oe})]})]})]})}function Yr(){let{t:e}=W(`settings`);return(0,$.jsx)(kn,{id:`text-to-speech`,title:e(`textToSpeechCard.title`),subtitle:e(`textToSpeechCard.subtitle`),children:(0,$.jsx)(Jr,{})})}var Xr=`default`;function Zr(){let{t:e}=W(`settings`),i=vn(),o=d(),{data:s}=f({...qt({path:{assistant_id:i}}),staleTime:3e4}),c=It({onSuccess:e=>{Bt(o,{path:{assistant_id:i}},e)}}),l=Bn(),u=(0,Q.useMemo)(()=>s?s.services?.[`web-fetch`]?.provider||t(`vellum:ai:webFetchProvider`,Xr):t(tt,Xr),[s]),[p,m]=(0,Q.useState)(!1),[h,g]=Vn(u),[_,v]=(0,Q.useState)(``),y=se.has(h),{hasStoredCredential:b}=ke({assistantId:i,credentialKind:`api_key`,credentialName:h,enabled:y}),x=_.trim().length>0,S=p||y&&!b&&!x||h===u&&!x,C=Ae(G[h]??e(`webFetchCard.apiKeyPlaceholder`),b),w=(0,Q.useCallback)(async()=>{m(!0);let t=_.trim(),r=y&&t.length>0;try{r&&await l(h,t),await c.mutateAsync({path:{assistant_id:i},body:{services:{"web-fetch":{provider:h}}}}).catch(t=>{throw z.error(e(`webFetchCard.configUpdateFailedToast`)),a(t,{context:`patch_daemon_config`}),t})}catch{m(!1);return}m(!1);try{if(n(tt,h),r){let e=Z(h);e&&n(e,t);let r=Ve(i,`api_key`,h);o.setQueryData(r,!0),o.invalidateQueries({queryKey:r}),v(``)}z.success(e(`webFetchCard.savedToast`))}catch(t){a(t,{context:`settings-ai-web-fetch-persist-local`}),z.error(e(`webFetchCard.localPreferencesFailedToast`))}},[y,c,l,o,i,_,h,e]),T=(0,Q.useCallback)(()=>{let e=Z(h);e&&r(e),v(``),g(Xr),n(tt,Xr)},[h,g]);return(0,$.jsx)(kn,{id:`web-fetch`,title:e(`webFetchCard.title`),subtitle:e(`webFetchCard.subtitle`),children:(0,$.jsxs)(`div`,{className:`space-y-4`,children:[(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:e(`webFetchCard.providerLabel`)}),(0,$.jsx)(V,{value:h,onChange:g,options:ie.map(e=>({value:e,label:Se[e]??e}))})]}),y&&(0,$.jsx)(L,{label:e(`webFetchCard.apiKeyLabel`),type:`password`,value:_,onChange:e=>v(e.target.value),placeholder:C,fullWidth:!0}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(Nn,{onClick:w,disabled:S}),p&&(0,$.jsx)(O,{className:`h-4 w-4 animate-spin text-[var(--content-disabled)]`}),y&&(0,$.jsx)(Pn,{onClick:T,filled:!0})]})]})})}var Qr=`0.10.12`;function $r(){return gt(Qr)}function ei(){let{t:e}=W(`settings`),i=vn(),o=d(),s=kt(),{data:c}=f({...qt({path:{assistant_id:i}}),enabled:s,staleTime:3e4}),l=It({onSuccess:e=>{Bt(o,{path:{assistant_id:i}},e)}}),u=Bn(),p=(0,Q.useMemo)(()=>{if(!c)return t(Ze,`inference-provider-native`);let e=c.services?.[`web-search`];return(e?.mode===`managed`&&e?.provider!==`inference-provider-native`?`vellum`:e?.provider)||t(`vellum:ai:webSearchProvider`,`inference-provider-native`)},[c]),[m,h]=(0,Q.useState)(!1),[g,_]=Vn(p),[v,y]=(0,Q.useState)(``),b=ce.has(g),{hasStoredCredential:x}=ke({assistantId:i,credentialKind:`api_key`,credentialName:g,enabled:b}),S=v.trim().length>0,C=m||b&&!x&&!S||g===p&&!S,w=Ae(Ce[g]??e(`webSearchCard.apiKeyPlaceholder`),x),T=(0,Q.useCallback)(async()=>{h(!0);let t=v.trim(),r=ge(g),s=b&&t.length>0;try{s&&await u(g,t),await _t();let n=g===`vellum`?$r()?{provider:`vellum`,mode:`managed`}:{mode:`managed`}:{provider:g,mode:`your-own`};await l.mutateAsync({path:{assistant_id:i},body:{services:{"web-search":n}}}).catch(t=>{throw z.error(e(`webSearchCard.configUpdateFailedToast`)),a(t,{context:`patch_daemon_config`}),t})}catch{h(!1);return}h(!1);try{if(n(Ze,g),s){r&&n(r,t);let e=Ve(i,`api_key`,g);o.setQueryData(e,!0),o.invalidateQueries({queryKey:e}),y(``)}z.success(e(`webSearchCard.savedToast`))}catch(t){a(t,{context:`settings-ai-web-search-persist-local`}),z.error(e(`webSearchCard.localPreferencesFailedToast`))}},[b,l,u,o,i,v,g,e]),E=(0,Q.useCallback)(()=>{let e=ge(g);e&&r(e),y(``),_(`inference-provider-native`),n(Ze,`inference-provider-native`)},[g,_]);return(0,$.jsx)(kn,{title:e(`webSearchCard.title`),subtitle:e(`webSearchCard.subtitle`),children:(0,$.jsxs)(`div`,{className:`space-y-4`,children:[(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:e(`webSearchCard.providerLabel`)}),(0,$.jsx)(V,{"aria-label":e(`webSearchCard.providerAriaLabel`),value:g,onChange:_,options:be.map(e=>({value:e,label:ae[e]??e}))})]}),g===`vellum`&&(0,$.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:e(`webSearchCard.vellumNote`)}),b&&(0,$.jsx)(L,{label:e(`webSearchCard.apiKeyLabel`),type:`password`,value:v,onChange:e=>y(e.target.value),placeholder:w,fullWidth:!0}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(Nn,{onClick:T,disabled:C}),m&&(0,$.jsx)(O,{className:`h-4 w-4 animate-spin text-[var(--content-disabled)]`}),b&&(0,$.jsx)(Pn,{onClick:E,filled:!0})]})]})})}function ti(){let e=vn(),t=ln(),[n,r]=(0,Q.useState)(null);(0,Q.useEffect)(()=>{let e=window.location.hash.slice(1);e&&requestAnimationFrame(()=>{document.getElementById(e)?.scrollIntoView({block:`start`})})},[]);let i=(0,$.jsxs)(`div`,{className:`min-h-0 flex-1 space-y-5 overflow-y-auto`,children:[(0,$.jsx)(jn,{}),(0,$.jsx)(br,{panel:n,onOpenPanel:r,onClosePanel:()=>r(null)}),(0,$.jsx)(ei,{}),(0,$.jsx)(Zr,{}),(0,$.jsx)(zn,{}),(0,$.jsx)(Gn,{}),(0,$.jsx)(Yr,{}),(0,$.jsx)(Vr,{})]}),a=`${e??`none`}:${n?.kind===`profile`?`profile:${n.name}`:n?.kind===`provider`?`provider:${n.name}`:n?.kind??`closed`}`,o=n?.kind===`provider`||n?.kind===`add-provider`,s=n!=null&&e?n.kind===`overrides`?(0,$.jsx)(Pr,{assistantId:e,onClose:()=>r(null)},a):o?(0,$.jsx)(Ir,{assistantId:e,connectionName:n.kind===`provider`?n.name:null,onClose:()=>r(null)},a):(0,$.jsx)(Sr,{assistantId:e,profileName:n.kind===`profile`?n.name:null,onClose:()=>r(null)},a):null;return s&&t?(0,$.jsx)(xn,{children:s}):s?(0,$.jsx)(Sn,{storageKey:`aiSettingsDetailDrawerWidth`,detailKey:a,section:i,detail:s}):i}export{ti as AiPage};
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-DSjqKLvM.js";import{d as r,h as i,p as a,t as o}from"./chunk-5KNZJZUH-BUqIilZr.js";import{n as s}from"./QueryClientProvider-CMu7CkQU.js";import{t as c}from"./useQuery-Bz-fbQ-m.js";import{t as l}from"./useMutation-CXGTrp4W.js";import{t as u}from"./jsx-runtime-D3ZM-ToX.js";import{t as d}from"./cn-DFWryB3N.js";import{t as f}from"./typography-BeUa5Fd-.js";import{t as p}from"./card-q0GJX1HZ.js";import{K as m,L as h,i as g,o as _,q as v,s as y}from"./src-DjIqxQVd.js";import{C as b,D as x,S,_ as C,b as w,c as T,d as E,g as D,h as O,l as k,o as A,p as j,u as M,v as N,x as P,y as F}from"./use-save-twilio-credentials-COzAERtv.js";import{t as I}from"./chevron-down-B_6pb9kS.js";import{t as L}from"./circle-check-big-BRKMTxhd.js";import{o as R,r as z,t as B,u as V}from"./threshold-presets-Bm9FqtVb.js";import{t as H}from"./message-square-UW8LcsnU.js";import{t as ee}from"./plug-CQDevvb-.js";import{t as te}from"./search-DbyaO8rG.js";import{t as ne}from"./notice-C9v3KOP3.js";import{t as U}from"./tag-D0oiSRye.js";import{t as W}from"./input-BG94bPcH.js";import{t as re}from"./confirm-dialog-DNaRfy4W.js";import{t as ie}from"./select-B86W_Hs8.js";import"./i18n-zb2mgr1B.js";import{t as ae}from"./Trans-Ch_EPHgV.js";import{t as G}from"./useTranslation-Dn8TOHE6.js";import{t as oe}from"./assistant-identity-store-DTP7xfNP.js";import{i as se}from"./utils-1ZnEn_W1.js";import{d as ce}from"./routes-C293MsBG.js";import{s as le}from"./react-query.gen-vkBavCkI.js";import{r as ue}from"./conversation-navigation-Bw3eQBGU.js";import{l as de,o as fe,s as pe}from"./sdk.gen-CUWXKhFV.js";import{t as me}from"./assistant-feature-flag-store-j3wC3wtf.js";import{t as he}from"./public-asset-C2ociEGf.js";import{t as ge}from"./use-active-assistant-id-Cgt1z2rZ.js";import{n as _e,t as ve}from"./telegram-setup-wizard-DgdjP2o8.js";import{n as ye,t as be}from"./index-xicEUutS.js";import{t as xe}from"./detail-card-CC0br9gQ.js";import{n as Se,t as Ce}from"./mobile-sidebar-drawer-CA_YsRi_.js";import{a as we,c as K,d as Te,f as Ee,i as De,n as Oe,o as ke,r as Ae,s as je,t as Me,u as Ne}from"./use-invite-link-dialog-DgDcqWMz.js";var q=e(t(),1);function Pe(){let{channelId:e}=a(),t=r();return{selected:e,select:(0,q.useCallback)(e=>{t(`/assistant/channels/${encodeURIComponent(e)}`,{replace:!0})},[t])}}var Fe={slack:{labelKey:`channelMeta.slack.label`,disconnectMessageKey:`channelMeta.slack.disconnectMessage`,hasTrustFloorControl:!1},telegram:{labelKey:`channelMeta.telegram.label`,disconnectMessageKey:`channelMeta.telegram.disconnectMessage`,hasTrustFloorControl:!0,disconnectedPitchKey:`channelMeta.telegram.disconnectedPitch`},phone:{labelKey:`channelMeta.phone.label`,disconnectMessageKey:`channelMeta.phone.disconnectMessage`,hasTrustFloorControl:!0,disconnectedPitchKey:`channelMeta.phone.disconnectedPitch`}},J=u();function Ie({channels:e,pluginChannels:t=[],selectedKey:n,onSelect:r}){return(0,J.jsx)(p.Root,{className:`flex h-full flex-col overflow-hidden`,children:(0,J.jsx)(p.Body,{className:`flex min-h-0 min-w-0 flex-1 flex-col gap-4`,children:(0,J.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[e.map(e=>(0,J.jsx)(Le,{channel:e,selected:e.key===n,onClick:()=>r(e.key)},e.key)),t.map(e=>(0,J.jsx)(Re,{channel:e,selected:e.key===n,onClick:()=>r(e.key)},e.key))]})})})}function Le({channel:e,selected:t,onClick:n}){let r=e.status===`ready`,i=j(e.key),a=r?`Connected`:`Not connected`;return(0,J.jsx)(h,{asChild:!0,active:t,"aria-label":`${i}, ${a}`,children:(0,J.jsxs)(`button`,{type:`button`,onClick:n,className:`flex h-auto w-full items-center gap-2 rounded-[6px] px-[8px] py-2 text-left`,children:[(0,J.jsx)(M,{channelId:e.key,className:`h-4 w-4 shrink-0 text-[color:var(--content-secondary)]`}),(0,J.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-body-medium-default`,children:i}),(0,J.jsx)(`span`,{className:`flex shrink-0 items-center`,children:(0,J.jsx)(U,{tone:r?`positive`:`neutral`,children:a})})]})})}function Re({channel:e,selected:t,onClick:n}){let{t:r}=G(`channels`);return(0,J.jsx)(h,{asChild:!0,active:t,"aria-label":r(`channelAdapterList.pluginChannelAria`,{channel:e.label}),children:(0,J.jsxs)(`button`,{type:`button`,onClick:n,className:`flex h-auto w-full items-center gap-2 rounded-[6px] px-[8px] py-2 text-left`,children:[(0,J.jsx)(E,{icon:e.icon,className:`h-4 w-4 shrink-0 text-[color:var(--content-secondary)]`}),(0,J.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-body-medium-default`,children:e.label}),(0,J.jsx)(ee,{"aria-hidden":!0,className:`h-4 w-4 shrink-0 text-[color:var(--content-secondary)]`})]})})}function ze({icon:e,title:t,description:n,action:r,className:i}){return(0,J.jsxs)(`div`,{className:d(`flex flex-col items-center justify-center gap-3 px-4 py-12 text-center`,i),children:[e?(0,J.jsx)(`div`,{className:`flex h-12 w-12 items-center justify-center rounded-xl bg-[var(--surface-sunken)] text-[var(--content-tertiary)]`,children:e}):null,(0,J.jsx)(`h3`,{className:`text-title-small text-[var(--content-default)]`,children:t}),n?(0,J.jsx)(`p`,{className:`max-w-md text-body-medium-lighter text-[color:var(--content-tertiary)]`,children:n}):null,r?(0,J.jsx)(`div`,{className:`mt-1`,children:r}):null]})}function Be({assistantDisplayName:e,policy:t,saving:n=!1,loading:r=!1,error:i=!1,onChange:a}){let{t:o}=G(`channels`),s=t??`trusted_contacts`,c=Ee(e),l=Ne.map(e=>({value:e,label:Te[e],tooltip:c[e]}));return(0,J.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,J.jsx)(f,{as:`span`,variant:`body-small-emphasised`,className:`text-[color:var(--content-secondary)]`,children:o(`channelTrustFloor.heading`,{assistant:e})}),r?(0,J.jsx)(f,{as:`span`,variant:`body-small-lighter`,className:`text-[color:var(--content-tertiary)]`,children:o(`channelTrustFloor.loading`)}):i?(0,J.jsx)(f,{as:`span`,variant:`body-small-lighter`,className:`text-[color:var(--content-negative)]`,children:o(`channelTrustFloor.loadFailed`)}):(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`div`,{style:{maxWidth:280},children:(0,J.jsx)(ie,{value:s,onChange:a,options:l,disabled:n,"aria-label":o(`channelTrustFloor.selectAria`,{assistant:e})})}),(0,J.jsx)(f,{as:`span`,variant:`body-small-lighter`,className:`text-[color:var(--content-tertiary)]`,children:c[s]}),s===`trusted_contacts`?(0,J.jsx)(ne,{tone:`info`,className:`max-w-lg`,children:o(`channelTrustFloor.trustedContactsNotice`,{assistant:e})}):null]})]})}function Ve({address:e,pending:t,onDisconnect:r}){let{t:i}=G(`channels`);return(0,J.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,J.jsx)(U,{tone:`positive`,leftIcon:(0,J.jsx)(L,{}),children:i(`connectionCard.connected`)}),e?(0,J.jsx)(`span`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:e}):null,(0,J.jsx)(`div`,{className:`ml-auto`,children:(0,J.jsx)(n,{type:`button`,variant:`danger`,onClick:r,disabled:!r||t,children:i(t?`connectionCard.disconnecting`:`connectionCard.disconnect`)})})]})}function He({children:e}){let{t}=G(`channels`);return(0,J.jsxs)(p.Root,{children:[(0,J.jsx)(p.Header,{children:(0,J.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,J.jsx)(`img`,{src:he(`/images/integrations/slack.svg`),alt:``,className:`size-8 rounded-lg bg-[var(--surface-sunken)] p-1`}),(0,J.jsx)(f,{as:`span`,variant:`body-medium-default`,children:t(`slackChannelCard.setupHeading`)})]})}),(0,J.jsx)(p.Body,{children:e})]})}B.map(e=>e.riskThreshold);var Ue=[`none`,`low`];function Y(e){if(e!==void 0)return e===`none`?`none`:`low`}var X={none:{label:z(`none`).label,sublabel:`asks every time`,tone:`negative`,dotColor:`var(--system-negative-strong)`},low:{label:z(`low`).label,sublabel:`safe lookups`,tone:`warning`,dotColor:`var(--system-mid-strong)`},medium:{label:z(`medium`).label,sublabel:`broader lookups`,tone:`info`,dotColor:`var(--system-info-strong)`},high:{label:z(`high`).label,sublabel:`any lookup`,tone:`positive`,dotColor:`var(--system-positive-strong)`}},Z=[`trusted_contact`,`unverified_contact`,`unknown`];function We(e,t){let n={};for(let r of e){if(r.selector.scope!==`channel`||r.selector.adapter!==t)continue;let e=r.selector.channelExternalId;e&&(r.contactType===`trusted_contact`||!(e in n))&&(n[e]=r.threshold)}return n}function Ge(e,t,n){return n===`channels`?e.selector.scope===`adapter`&&e.selector.adapter===t:e.selector.scope===`channel_type`&&e.selector.adapter===t&&e.selector.channelType===`dm`}function Ke(e,t,n){let r;for(let i of e)Ge(i,t,n)&&(i.contactType===`trusted_contact`||r===void 0)&&(r=i.threshold);return r}var qe=`__default__`;function Je({color:e}){return(0,J.jsx)(`span`,{"aria-hidden":`true`,className:`h-1.5 w-1.5 shrink-0 rounded-full`,style:{backgroundColor:e}})}function Ye({tier:e,defaultTier:t,disabled:n,onTierChange:r,onReset:i,"aria-label":a}){let{t:o}=G(`channels`),s=Y(e??t??void 0),c=Y(t??void 0)??null,l=Ue.map(e=>({value:e,label:X[e].label,icon:(0,J.jsx)(Je,{color:X[e].dotColor}),suffix:e===c?(0,J.jsx)(`span`,{className:`text-[color:var(--content-tertiary)]`,children:o(`tierPicker.defaultSuffix`)}):void 0,tooltip:X[e].sublabel}));return l.unshift({value:qe,label:`Default`,icon:(0,J.jsx)(Je,{color:`transparent`}),tooltip:`follows the default level`}),(0,J.jsx)(ie,{value:s??``,onChange:e=>{e===qe||e===c?i():r(e)},options:l,placeholder:o(`tierPicker.defaultPlaceholder`),disabled:n,size:`compact`,menuAlign:`end`,"aria-label":a})}function Q(e){return e.type===`dm`?`dm`:e.isPrivate?`private`:`public`}function Xe(e){return e.filter(e=>Q(e)!==`dm`)}function Ze(e,t,n){let r=t.trim().toLowerCase();return e.filter(e=>(n===null||Q(e)===n)&&(r===``||e.name.toLowerCase().includes(r))).sort((e,t)=>e.name.localeCompare(t.name))}function Qe(e){let t={public:0,private:0,dm:0};for(let n of e)t[Q(n)]+=1;return t}function $e(e){return e.memberCount==null?null:e.memberCount===1?`1 member`:`${e.memberCount} members`}var et=[{value:null,labelKey:`slackChannelList.filterAll`},{value:`public`,labelKey:`slackChannelList.filterPublic`},{value:`private`,labelKey:`slackChannelList.filterPrivate`}],tt={public:x,private:V},nt=100,rt=new Set;function it({assistantDisplayName:e,slackHandle:t,channels:n,loading:r=!1,error:i=!1,tierOverrides:a,defaultTier:o=null,accessControlsSupported:s=!0,tierOverridesLoading:c=!1,tierOverridesError:l=!1,pendingChannelIds:u=rt,onTierChange:p,onTierReset:m}){let{t:h}=G(`channels`),[g,_]=(0,q.useState)(``),[v,b]=(0,q.useState)(null),S=(0,q.useMemo)(()=>Xe(n??[]),[n]),C=(0,q.useMemo)(()=>Ze(S,g,v),[S,g,v]),w=(0,q.useMemo)(()=>Qe(S),[S]);return(0,J.jsxs)(`div`,{className:`flex flex-col gap-3 p-4`,children:[(0,J.jsx)(f,{as:`p`,variant:`body-small-lighter`,className:`text-[color:var(--content-tertiary)]`,children:(0,J.jsx)(ae,{i18nKey:`slackChannelList.presenceHint`,ns:`channels`,values:{handle:t??`@${e}`,assistant:e},components:{invite:(0,J.jsx)(`code`,{className:`text-[color:var(--content-secondary)]`}),remove:(0,J.jsx)(`code`,{className:`text-[color:var(--content-secondary)]`})}})}),r?(0,J.jsx)(f,{as:`span`,variant:`body-small-lighter`,className:`text-[color:var(--content-tertiary)]`,children:h(`slackChannelList.loading`)}):i?(0,J.jsx)(f,{as:`span`,variant:`body-small-lighter`,className:`text-[color:var(--content-negative)]`,children:h(`slackChannelList.loadFailed`)}):S.length===0?(0,J.jsx)(ze,{icon:(0,J.jsx)(x,{className:`h-6 w-6`}),title:h(`slackChannelList.emptyTitle`)}):(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3`,children:[(0,J.jsx)(`div`,{className:`min-w-56 flex-1`,children:(0,J.jsx)(W,{type:`search`,value:g,onChange:e=>_(e.target.value),placeholder:h(`slackChannelList.searchPlaceholder`),"aria-label":h(`slackChannelList.searchAria`),leftIcon:(0,J.jsx)(te,{className:`h-4 w-4`}),fullWidth:!0})}),(0,J.jsx)(`div`,{className:`flex items-center gap-2`,role:`group`,"aria-label":h(`slackChannelList.filterGroupAria`),children:et.map(({value:e,labelKey:t})=>{let n=v===e,r=e===null?S.length:w[e];return(0,J.jsx)(`button`,{type:`button`,"aria-pressed":n,onClick:()=>b(e),className:d(`inline-flex h-6 items-center rounded-full px-2.5 text-body-small-emphasised leading-none transition-colors`,n?`bg-[var(--content-default)] text-[var(--surface-base)]`:`bg-[var(--tag-bg-neutral)] text-[color:var(--content-secondary)] hover:text-[color:var(--content-default)]`),children:h(t,{count:r})},e??`all`)})})]}),C.length===0?(0,J.jsx)(f,{as:`span`,variant:`body-small-lighter`,className:`py-4 text-center text-[color:var(--content-tertiary)]`,children:h(`slackChannelList.noMatches`)}):C.length>nt?(0,J.jsx)(`div`,{className:`h-96`,children:(0,J.jsx)(y,{items:C,computeItemKey:(e,t)=>t.id,itemContent:(e,t)=>(0,J.jsx)(at,{channel:t,pending:u.has(t.id),overridesLoading:c,overridesError:l,defaultTier:o,accessControls:s,tierOverride:a?.[t.id],onTierChange:e=>p?.(t.id,e),onReset:()=>m?.(t.id)}),className:`h-full`})}):(0,J.jsx)(`div`,{className:`max-h-96 overflow-y-auto`,children:C.map(e=>(0,J.jsx)(at,{channel:e,pending:u.has(e.id),overridesLoading:c,overridesError:l,defaultTier:o,accessControls:s,tierOverride:a?.[e.id],onTierChange:t=>p?.(e.id,t),onReset:()=>m?.(e.id)},e.id))})]})]})}function at({channel:e,pending:t,overridesLoading:n,overridesError:r,defaultTier:i,accessControls:a,tierOverride:o,onTierChange:s,onReset:c}){let{t:l}=G(`channels`),u=Q(e);if(u===`dm`)return null;let d=tt[u],f=$e(e),p=`[&+&]:border-t [&+&]:border-[var(--border-base)]`;return a?(0,J.jsx)(g,{className:p,leading:(0,J.jsx)(d,{className:`h-4 w-4 text-[var(--content-tertiary)]`}),title:e.name,subtitle:f??void 0,trailing:(0,J.jsx)(`div`,{className:`w-40 sm:w-48`,children:(0,J.jsx)(Ye,{tier:o,defaultTier:i,disabled:t||n||r,onTierChange:s,onReset:c,"aria-label":l(`slackChannelList.accessAria`,{channel:e.name})})})}):(0,J.jsx)(g,{className:p,leading:(0,J.jsx)(d,{className:`h-4 w-4 text-[var(--content-tertiary)]`}),title:e.name,trailing:f==null?void 0:(0,J.jsx)(`span`,{className:`text-body-small-default text-[color:var(--content-tertiary)]`,children:f})})}function ot(e){return e===`none`?`Asks before every action, even a web search.`:`Asks before anything beyond looking things up and saving files in its own workspace.`}function st({defaultTier:e}){let{t}=G(`channels`),n=Y(e??void 0)??null;return(0,J.jsx)(`div`,{className:`flex flex-col gap-2 px-4 py-3`,children:(0,J.jsx)(`ul`,{className:`grid gap-x-6 gap-y-3 sm:grid-cols-2`,children:[...Ue].reverse().map(e=>{let r=X[e];return(0,J.jsxs)(`li`,{className:`flex flex-col gap-0.5`,children:[(0,J.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,J.jsx)(Je,{color:r.dotColor}),(0,J.jsx)(f,{as:`span`,variant:`body-small-emphasised`,children:r.label}),e===n?(0,J.jsx)(f,{as:`span`,variant:`body-small-default`,className:`text-[color:var(--content-tertiary)]`,children:t(`slackChannelTierLegend.defaultMarker`)}):null]}),(0,J.jsx)(f,{as:`span`,variant:`body-small-lighter`,className:`text-[color:var(--content-tertiary)]`,children:ot(e)})]},e)})})})}var ct=[{bucket:`channels`,icon:x,title:`Channels`,description:`Public and private channels`},{bucket:`dm`,icon:H,title:`Direct messages`,description:`One-on-one DMs`}];function lt({assistantName:e,globalDefaultTier:t,bucketTiers:n,loading:r,error:i,pendingBuckets:a,onBucketChange:s,onBucketReset:c}){let{t:l}=G(`channels`);return(0,J.jsxs)(p.Root,{children:[(0,J.jsx)(p.Header,{children:(0,J.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[l(`slackChannelTypeDefaults.heading`),(0,J.jsx)(f,{as:`p`,variant:`body-small-lighter`,className:`text-[color:var(--content-tertiary)]`,children:(0,J.jsx)(ae,{i18nKey:`slackChannelTypeDefaults.subtitle`,ns:`channels`,values:{assistant:e},components:{trustRules:(0,J.jsx)(o,{to:ce.settings.privacy,className:`text-[var(--content-link)] underline hover:text-[var(--content-link-hover)]`})}})})]})}),(0,J.jsx)(p.Body,{className:`py-1`,children:ct.map(({bucket:e,icon:o,title:u,description:d})=>{let f=e===`dm`?n?.channels??t:t;return(0,J.jsx)(g,{className:`[&+&]:border-t [&+&]:border-[var(--border-base)]`,leading:(0,J.jsx)(o,{className:`h-4 w-4 text-[var(--content-tertiary)]`}),title:u,subtitle:d,trailing:(0,J.jsx)(`div`,{className:`w-40 sm:w-48`,children:(0,J.jsx)(Ye,{tier:n?.[e],defaultTier:f,disabled:r||i||a.has(e),onTierChange:t=>s(e,t),onReset:()=>c(e),"aria-label":l(`slackChannelTypeDefaults.bucketAria`,{bucket:u})})})},e)})}),(0,J.jsx)(p.Footer,{className:`p-0`,children:(0,J.jsx)(st,{defaultTier:t})})]})}var ut=`0.11.0`;function dt(){return se(ut)}var ft=new Set([404,501]);function pt(e){let t=be(e);return t!==void 0&&ft.has(t)}function mt(e,t,n){return Z.map(r=>({selector:{scope:`channel`,adapter:e,channelExternalId:t},contactType:r,threshold:n}))}function ht(e,t,n){return e.selector.scope===`channel`&&e.selector.adapter===t&&e.selector.channelExternalId===n}function gt(e,t){return t===`channels`?{scope:`adapter`,adapter:e}:{scope:`channel_type`,adapter:e,channelType:`dm`}}function _t(e,t,n){let r=gt(e,t);return Z.map(e=>({selector:r,contactType:e,threshold:n}))}function vt({assistantId:e,adapter:t}){let n=s(),r=dt()&&!!e,i=(0,q.useMemo)(()=>({path:{assistant_id:e}}),[e]),a=(0,q.useMemo)(()=>b(i),[i]),o=(0,q.useMemo)(()=>[`channel-permission-resolve`,e,t],[e,t]),u=c({...S(i),enabled:r}),d=u.data?.cells,f=(0,q.useMemo)(()=>d?We(d,t):void 0,[d,t]),p=(0,q.useMemo)(()=>d?{channels:Ke(d,t,`channels`),dm:Ke(d,t,`dm`)}:void 0,[d,t]),m=c({queryKey:o,queryFn:async()=>{let{data:e}=await de({...i,body:{adapter:t,contactType:`trusted_contact`},throwOnError:!0});return e.resolved?.threshold??null},enabled:r,retry:!1,staleTime:3e4}),h=(e,t)=>{let r=n.getQueryData(a),i=Date.now();return n.setQueryData(a,n=>({cells:[...(n?.cells??[]).filter(t=>!e(t)),...t.map(e=>({...e,updatedAt:i}))]})),{previous:r}},g=l({mutationFn:async({channelExternalId:e,tier:n})=>{await Promise.all(mt(t,e,n).map(e=>pe({...i,body:e,throwOnError:!0})))},onMutate:({channelExternalId:e,tier:n})=>h(n=>ht(n,t,e),mt(t,e,n)),onError:(e,t,r)=>{n.setQueryData(a,r?.previous),K(`Failed to save channel settings`)(e)},onSettled:()=>n.invalidateQueries({queryKey:a})}),_=l({mutationFn:async({channelExternalId:e})=>{await Promise.all(Z.map(n=>fe({...i,body:{selector:{scope:`channel`,adapter:t,channelExternalId:e},contactType:n},throwOnError:!0})))},onMutate:({channelExternalId:e})=>h(n=>ht(n,t,e),[]),onError:(e,t,r)=>{n.setQueryData(a,r?.previous),K(`Failed to reset channel settings`)(e)},onSettled:()=>n.invalidateQueries({queryKey:a})}),v=l({mutationFn:async({bucket:e,tier:n})=>{await Promise.all(_t(t,e,n).map(e=>pe({...i,body:e,throwOnError:!0})))},onMutate:({bucket:e,tier:n})=>h(n=>Ge(n,t,e),_t(t,e,n)),onError:(e,t,r)=>{n.setQueryData(a,r?.previous),K(`Failed to save the default`)(e)},onSettled:(e,t,{bucket:r})=>{n.invalidateQueries({queryKey:a}),r===`channels`&&n.invalidateQueries({queryKey:o})}}),y=l({mutationFn:async({bucket:e})=>{let n=gt(t,e);await Promise.all(Z.map(e=>fe({...i,body:{selector:n,contactType:e},throwOnError:!0})))},onMutate:({bucket:e})=>h(n=>Ge(n,t,e),[]),onError:(e,t,r)=>{n.setQueryData(a,r?.previous),K(`Failed to reset the default`)(e)},onSettled:(e,t,{bucket:r})=>{n.invalidateQueries({queryKey:a}),r===`channels`&&n.invalidateQueries({queryKey:o})}}),x=(0,q.useMemo)(()=>{let e=new Set;return g.isPending&&g.variables&&e.add(g.variables.channelExternalId),_.isPending&&_.variables&&e.add(_.variables.channelExternalId),e},[g.isPending,g.variables,_.isPending,_.variables]),C=(0,q.useMemo)(()=>{let e=new Set;return v.isPending&&v.variables&&e.add(v.variables.bucket),y.isPending&&y.variables&&e.add(y.variables.bucket),e},[v.isPending,v.variables,y.isPending,y.variables]);return!r||u.isError&&pt(u.error)?{supported:!1,tierOverrides:void 0,defaultCellTier:void 0,bucketTiers:void 0,pendingChannelIds:new Set,pendingBuckets:new Set,isLoading:!1,isError:!1,onTierChange:void 0,onTierReset:void 0,onBucketChange:void 0,onBucketReset:void 0}:{supported:!0,tierOverrides:f,defaultCellTier:m.data,bucketTiers:p,pendingChannelIds:x,pendingBuckets:C,isLoading:u.isPending,isError:u.isError,onTierChange:(e,t)=>g.mutate({channelExternalId:e,tier:t}),onTierReset:e=>{f?.[e]!==void 0&&_.mutate({channelExternalId:e})},onBucketChange:(e,t)=>v.mutate({bucket:e,tier:t}),onBucketReset:e=>{p?.[e]!==void 0&&y.mutate({bucket:e})}}}function yt({assistantId:e,assistantDisplayName:t,slackHandle:n}){let{t:r}=G(`channels`),i=c({...A(e),enabled:!!e,select:e=>e.channels}),a=vt({assistantId:e,adapter:`slack`}),o=c({queryKey:[`thresholds`,e],queryFn:()=>R(e),enabled:a.supported&&!!e,staleTime:3e4}).data?.interactive??null,s=a.defaultCellTier===void 0?null:a.defaultCellTier??o,l=(0,J.jsx)(it,{assistantDisplayName:t,slackHandle:n,accessControlsSupported:a.supported,defaultTier:s,channels:i.data,loading:i.isPending,error:i.isError,tierOverrides:a.tierOverrides,tierOverridesLoading:a.isLoading,tierOverridesError:a.isError,pendingChannelIds:a.pendingChannelIds,onTierChange:a.onTierChange,onTierReset:a.onTierReset});return!a.supported||!a.onBucketChange||!a.onBucketReset?(0,J.jsx)(p.Root,{noPadding:!0,clipContents:!0,children:l}):(0,J.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[a.isError?(0,J.jsx)(ne,{tone:`error`,children:r(`slackChannelSection.overridesLoadFailed`)}):null,(0,J.jsx)(lt,{assistantName:t,globalDefaultTier:o,bucketTiers:a.bucketTiers,loading:a.isLoading,error:a.isError,pendingBuckets:a.pendingBuckets,onBucketChange:a.onBucketChange,onBucketReset:a.onBucketReset}),(0,J.jsx)(p.Root,{noPadding:!0,clipContents:!0,children:(0,J.jsx)(_.Root,{type:`single`,collapsible:!0,children:(0,J.jsxs)(_.Item,{value:`per-channel-overrides`,children:[(0,J.jsxs)(_.Trigger,{className:`group justify-between gap-2 px-4 py-3`,children:[(0,J.jsx)(f,{as:`span`,variant:`body-small-emphasised`,children:r(`slackChannelSection.perChannelOverrides`)}),(0,J.jsx)(I,{"aria-hidden":`true`,className:`h-4 w-4 shrink-0 text-[var(--content-tertiary)] transition-transform group-data-[state=open]:rotate-180`})]}),(0,J.jsx)(_.Content,{className:`border-[var(--border-base)] data-[state=open]:border-t`,children:l})]})})})]})}function bt({slackHandle:e,disconnectPending:t=!1,onDisconnect:r,children:i}){let{t:a}=G(`channels`);return(0,J.jsxs)(p.Root,{children:[(0,J.jsx)(p.Header,{children:(0,J.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,J.jsx)(`img`,{src:he(`/images/integrations/slack.svg`),alt:``,className:`size-8 rounded-lg bg-[var(--surface-sunken)] p-1`}),e?(0,J.jsx)(f,{as:`span`,variant:`body-medium-default`,children:e}):null,(0,J.jsx)(U,{tone:`positive`,leftIcon:(0,J.jsx)(L,{}),children:a(`connectionCard.connected`)}),(0,J.jsx)(`div`,{className:`ml-auto`,children:(0,J.jsx)(n,{type:`button`,variant:`ghost`,onClick:r,disabled:!r||t,children:a(t?`connectionCard.disconnecting`:`connectionCard.disconnect`)})})]})}),(0,J.jsx)(p.Body,{children:i})]})}function xt({threadMode:e,threadModePending:t=!1,onThreadModeChange:n}){let{t:r}=G(`channels`);return(0,J.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,J.jsx)(f,{as:`span`,variant:`body-small-emphasised`,className:`text-[color:var(--content-secondary)]`,children:r(`slackThreadBehavior.heading`)}),(0,J.jsxs)(v,{value:e??`mention_then_thread`,onValueChange:e=>n?.(e),disabled:t||!n,"aria-label":r(`slackThreadBehavior.selectAria`),children:[(0,J.jsx)(m,{value:`mention_only`,label:r(`slackThreadBehavior.mentionsOnly`),helperText:r(`slackThreadBehavior.mentionsOnlyHelp`)}),(0,J.jsx)(m,{value:`mention_then_thread`,label:r(`slackThreadBehavior.followThreads`),helperText:r(`slackThreadBehavior.followThreadsHelp`)})]})]})}function St({onSave:e}){let{t}=G(`channels`),[r,i]=(0,q.useState)(``),[a,o]=(0,q.useState)(``),[s,c]=(0,q.useState)(!1),[l,u]=(0,q.useState)(null),d=r.trim().length>0&&a.trim().length>0&&!s;return(0,J.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,J.jsx)(W,{label:t(`twilioCredentialEntry.accountSid`),type:`text`,value:r,onChange:e=>i(e.target.value),placeholder:`ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx`,disabled:s,fullWidth:!0}),(0,J.jsx)(W,{label:t(`twilioCredentialEntry.authToken`),type:`password`,value:a,onChange:e=>o(e.target.value),placeholder:t(`twilioCredentialEntry.authTokenPlaceholder`),disabled:s,fullWidth:!0}),l?(0,J.jsx)(`p`,{className:`text-label-small`,style:{color:`var(--content-negative)`},children:l}):null,(0,J.jsx)(`div`,{children:(0,J.jsx)(n,{type:`button`,onClick:async()=>{if(!(!e||!d)){c(!0),u(null);try{await e(r.trim(),a.trim()),i(``),o(``)}catch(e){u(e instanceof Error?e.message:`Failed to save`)}finally{c(!1)}}},disabled:!d,children:t(s?`twilioCredentialEntry.saving`:`twilioCredentialEntry.save`)})})]})}function Ct({channel:e,assistantId:t,assistantName:r,assistantDisplayName:i,pending:a,initialManualEntry:o=!1,onSetup:s,onDisconnect:c,onSaveTelegramToken:l,telegramSaveStatus:u,telegramSaveError:d,onSaveSlackConfig:f,slackSaveStatus:p,slackSaveError:m,slackThreadMode:h,slackThreadModePending:g=!1,onSlackThreadModeChange:_,onSaveTwilioCredentials:v,policy:y,policySaving:b=!1,policyLoading:x=!1,policyError:S=!1,onPolicyChange:C}){let{t:w}=G(`channels`),T=e.status===`ready`,E=e.status===`incomplete`,[D,O]=(0,q.useState)(o);if(e.key===`slack`)return(0,J.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[T?(0,J.jsx)(bt,{slackHandle:e.address,disconnectPending:a,onDisconnect:c,children:(0,J.jsx)(xt,{threadMode:h,threadModePending:g,onThreadModeChange:_})}):(0,J.jsx)(He,{children:(0,J.jsx)(_e,{assistantName:r,onSave:f,saveStatus:p,saveError:m})}),T?(0,J.jsx)(yt,{assistantId:t,assistantDisplayName:i,slackHandle:e.address}):null]});let k=Fe[e.key];return(0,J.jsx)(`div`,{className:`flex flex-col gap-4`,children:T?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(Ve,{address:e.address,pending:a,onDisconnect:c}),k.hasTrustFloorControl&&C?(0,J.jsx)(Be,{assistantDisplayName:i,policy:y,saving:b,loading:x,error:S,onChange:C}):null]}):D?e.key===`telegram`?(0,J.jsx)(ve,{assistantName:r,saveStatus:u,saveError:d,onSave:l}):(0,J.jsx)(St,{onSave:v}):(0,J.jsx)(ze,{icon:(0,J.jsx)(M,{channelId:e.key,className:`h-6 w-6`}),title:w(E?`channelPanel.incompleteTitle`:`channelPanel.disconnectedTitle`,{channel:j(e.key)}),description:E?e.warning??w(`channelPanel.incompleteDescription`,{channel:j(e.key)}):k.disconnectedPitchKey?w(k.disconnectedPitchKey,{assistant:i}):void 0,action:(0,J.jsxs)(`div`,{className:`flex flex-col items-center gap-1`,children:[(0,J.jsx)(n,{type:`button`,variant:`outlined`,onClick:s,disabled:!s||a,children:w(a?`channelPanel.opening`:E?`channelPanel.finishSetup`:`channelPanel.setUp`)}),(0,J.jsx)(n,{type:`button`,variant:`link`,onClick:()=>O(!0),children:w(`channelPanel.connectManually`)})]})})})}var wt=new Set([404,501]),Tt=new Set([401,403]);function Et(e){let t=be(e);return t!==void 0&&wt.has(t)?`unsupported`:t!==void 0&&Tt.has(t)?`forbidden`:`unreadable`}function Dt(e,t,n){let r=e===`unreadable`?t:n;return r?r instanceof Error&&r.message?r.message:`Something went wrong`:null}function Ot(e,t){let n=s(),r={assistant_id:e},i=c({...F({path:r}),enabled:!!e,retry:ye}),a=()=>n.invalidateQueries({queryKey:w({path:r})}),o=l({...N(),onSuccess:a}),u=l({...P(),onSuccess:a}),d=i.data?.sources?.find(e=>e.source===t),f;f=i.isError?Et(i.error):i.isPending?`loading`:d?d.state:`none`;let p=Dt(f,i.error,o.error??u.error);return{status:f,paths:d?.routes?.map(e=>({path:e.publicPath,approvalGoverned:e.signer!==`vellum`,deliversInbound:e.deliversInbound===!0}))??[],deciding:o.isPending||u.isPending,approve:()=>{d?.digest&&o.mutate({path:{...r,source:t},body:{digest:d.digest}})},revoke:()=>u.mutate({path:{...r,source:t}}),error:p}}var kt=`plugin`;function At(e){let t=s(),n=we(),r=(0,q.useMemo)(()=>({path:{assistant_id:e}}),[e]),i=(0,q.useMemo)(()=>C(r),[r]),a=c({...D(r),enabled:n&&!!e,select:je}),o=l({mutationFn:t=>ke(e,kt,t),onSuccess:()=>t.invalidateQueries({queryKey:i}),onError:K(`Failed to save channel policy`)}),u=(0,q.useCallback)(e=>{o.mutate(e)},[o]);return n?{policy:a.data?.find(e=>e.channelType===kt)?.policy,isLoading:a.isPending,isError:a.isError,isSaving:o.isPending,onChange:u}:{policy:void 0,isLoading:!1,isError:!1,isSaving:!1,onChange:void 0}}function jt({channel:e,assistantId:t,assistantDisplayName:i}){let{t:a}=G(`channels`),o=r(),s=Ot(t,e.plugin),c=At(t);return(0,J.jsxs)(`div`,{className:`flex flex-col items-center gap-3 py-10 text-center`,children:[(0,J.jsx)(E,{icon:e.icon,className:`h-8 w-8 text-[color:var(--content-secondary)]`}),(0,J.jsx)(`h3`,{className:`text-title-medium`,style:{color:`var(--content-default)`},children:e.label}),e.description?(0,J.jsx)(`p`,{className:`max-w-[420px] text-body-medium-default`,style:{color:`var(--content-secondary)`},children:e.description}):null,(0,J.jsx)(Mt,{channel:e,ingress:s}),c.onChange?(0,J.jsx)(`div`,{className:`w-full max-w-[420px] text-left`,children:(0,J.jsx)(Be,{assistantDisplayName:i,policy:c.policy,saving:c.isSaving,loading:c.isLoading,error:c.isError,onChange:c.onChange})}):null,(0,J.jsx)(n,{onClick:()=>o(`/assistant/plugins/${e.plugin}`),variant:`outlined`,children:a(`pluginChannelPanel.openPluginPage`)})]})}function Mt({channel:e,ingress:t}){let{t:n}=G(`channels`);switch(t.status){case`loading`:return(0,J.jsx)($,{children:n(`pluginChannelPanel.ingressLoading`,{channel:e.label})});case`unsupported`:return(0,J.jsx)($,{children:n(`pluginChannelPanel.ingressUnsupported`)});case`forbidden`:return(0,J.jsx)($,{children:n(`pluginChannelPanel.ingressForbidden`)});case`unreadable`:return(0,J.jsxs)($,{children:[n(`pluginChannelPanel.ingressUnreadable`,{channel:e.label}),t.error?` ${t.error}`:``]});case`none`:return(0,J.jsx)($,{children:n(`pluginChannelPanel.ingressNone`,{channel:e.label})});case`pending`:case`approved`:return(0,J.jsx)(Nt,{channel:e,ingress:t})}}function Nt({channel:e,ingress:t}){let{t:r}=G(`channels`),i=t.status===`approved`,a=t.paths.filter(e=>e.approvalGoverned),o=t.paths.filter(e=>!e.approvalGoverned),s=a.some(e=>e.deliversInbound);return(0,J.jsxs)(`div`,{className:`flex flex-col items-center gap-3`,children:[(0,J.jsx)(U,{tone:i?`positive`:`neutral`,children:r(i?`pluginChannelPanel.ingressApprovedTag`:`pluginChannelPanel.ingressPendingTag`)}),a.length>0?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)($,{children:r(i?`pluginChannelPanel.approvedAddresses`:`pluginChannelPanel.pendingAddresses`,{channel:e.label})}),(0,J.jsx)(Pt,{paths:a}),s?(0,J.jsx)($,{children:r(`pluginChannelPanel.deliversInbound`,{channel:e.label})}):null]}):null,o.length>0?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)($,{children:r(`pluginChannelPanel.ungovernedAddresses`)}),(0,J.jsx)(Pt,{paths:o})]}):null,(0,J.jsx)(n,{onClick:i?t.revoke:t.approve,disabled:t.deciding,variant:i?`outlined`:`primary`,children:r(i?`pluginChannelPanel.revokeIngress`:`pluginChannelPanel.approveIngress`)}),t.error?(0,J.jsx)(`p`,{className:`max-w-[420px] text-body-small-default`,style:{color:`var(--system-negative-strong)`},children:t.error}):null]})}function $({children:e}){return(0,J.jsx)(`p`,{className:`max-w-[420px] text-body-small-default`,style:{color:`var(--content-secondary)`},children:e})}function Pt({paths:e}){return(0,J.jsx)(`ul`,{className:`flex flex-col gap-1`,children:e.map(e=>(0,J.jsx)(`li`,{className:`font-mono text-body-small-default`,style:{color:`var(--content-secondary)`},children:e.path},e.path))})}var Ft={no_one:{title:`Block all messages?`,message:`Setting this channel to “No one” hard-denies every inbound message, including messages from you.
|
|
2
|
-
|
|
3
|
-
You can reverse this at any time.`,confirmLabel:`Block all`,destructive:!0},any_contact:{title:`Allow any contact?`,message:`“Any contact” admits every matched contact in this channel (including pending, unverified ones), not just your verified contacts.
|
|
4
|
-
|
|
5
|
-
Best for channels consisting of only people you already trust.`,confirmLabel:`Allow any contact`},strangers:{title:`Allow strangers?`,message:`Are you sure you want to allow strangers to contact your assistant through this channel?
|
|
6
|
-
|
|
7
|
-
Doing so could cost you money and open you up to security and privacy vulnerabilities.
|
|
8
|
-
|
|
9
|
-
Enable with extreme caution.`,confirmLabel:`Allow strangers`,destructive:!0}};function It({assistantId:e,assistantName:t,channels:n,pluginChannels:r=[],pendingChannelKey:i=null,slackThreadMode:a,slackThreadModePending:o=!1,channelPolicies:s,policySavingKey:c=null,policiesLoading:l=!1,policiesError:u=!1,onChannelPolicyChange:d,onSetup:f,onDisconnect:p,onSaveTelegramToken:m,telegramSaveStatus:h,telegramSaveError:g,onSaveSlackConfig:_,slackSaveStatus:v,slackSaveError:y,onSlackThreadModeChange:b,onSaveTwilioCredentials:x,initialChannel:S=null}){let{t:C}=G(`channels`),{selected:w,select:T}=Pe(),[E,D]=(0,q.useState)(null),[k,A]=(0,q.useState)(null),[j,M]=(0,q.useState)(!1),[N]=(0,q.useState)(S);(0,q.useEffect)(()=>{N&&T(N)},[N,T]);let P=O(t),F=E?Fe[E]:null,I=k?Ft[k.policy]:null,L=(e,t)=>{if(Ft[t]){A({channelKey:e,policy:t});return}d?.(e,t)},R=e=>{T(e),M(!1)},z=r.find(e=>e.key===w),B=z?void 0:n.find(e=>e.key===w)??n[0];if(!B&&!z)return null;let V=z?z.key:B.key,H=z?(0,J.jsx)(jt,{channel:z,assistantId:e,assistantDisplayName:P},z.key):(0,J.jsx)(Ct,{channel:B,assistantId:e,assistantName:t,assistantDisplayName:P,pending:i===B.key,initialManualEntry:N===B.key,onSetup:f?()=>f(B.key,B.status===`incomplete`):void 0,onDisconnect:p?()=>D(B.key):void 0,onSaveTelegramToken:m,telegramSaveStatus:h,telegramSaveError:g,onSaveSlackConfig:_,slackSaveStatus:v,slackSaveError:y,slackThreadMode:a,slackThreadModePending:o,onSlackThreadModeChange:b,onSaveTwilioCredentials:x,policy:s?.[B.key],policySaving:c===B.key,policyLoading:l,policyError:u,onPolicyChange:d?e=>L(B.key,e):void 0},B.key);return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-4 overflow-hidden sm:flex-row sm:gap-6`,children:[(0,J.jsx)(`div`,{className:`flex items-center sm:hidden`,children:(0,J.jsx)(Se,{onClick:()=>M(!0)})}),(0,J.jsx)(Ce,{open:j,onClose:()=>M(!1),title:C(`assistantChannelsList.drawerTitle`),children:(0,J.jsx)(Ie,{channels:n,pluginChannels:r,selectedKey:V,onSelect:R})}),(0,J.jsx)(`aside`,{className:`hidden min-h-0 w-[320px] shrink-0 overflow-y-auto self-stretch sm:block`,children:(0,J.jsx)(Ie,{channels:n,pluginChannels:r,selectedKey:V,onSelect:R})}),(0,J.jsx)(`section`,{className:`min-h-0 min-w-0 flex-1 overflow-y-auto`,children:V===`slack`?H:(0,J.jsx)(xe,{children:H})})]}),(0,J.jsx)(re,{open:E!==null,title:C(`assistantChannelsList.disconnectTitle`,{channel:F?C(F.labelKey):``}),message:F?C(F.disconnectMessageKey):``,confirmLabel:C(`assistantChannelsList.disconnectConfirm`),destructive:!0,onConfirm:()=>{E&&p&&p(E),D(null)},onCancel:()=>D(null)}),(0,J.jsx)(re,{open:k!==null,title:I?.title??``,message:I?.message??``,confirmLabel:I?.confirmLabel??C(`assistantChannelsList.confirmFallback`),destructive:I?.destructive??!1,onConfirm:()=>{k&&d?.(k.channelKey,k.policy),A(null)},onCancel:()=>A(null)})]})}var Lt=`plugin:`;function Rt(e){let{data:t}=c({...le({path:{assistant_id:e}}),enabled:!!e,select:e=>e.channels.filter(e=>e.source?.startsWith(Lt)).map(e=>({plugin:e.id,key:k(e.id),label:e.label,description:e.subtitle,icon:e.icon}))});return t??[]}function zt(){let[e,t]=i(),n=e.get(`setup`),r=n&&T(n)?n:null;return(0,q.useEffect)(()=>{r&&t(e=>(e.delete(`setup`),e),{replace:!0})},[r,t]),r}function Bt({assistantId:e,onStartSetupConversation:t}){let n=me.use.a2aChannel(),r=oe.use.name(),i=zt(),a=Me(e),o=O(r),s=Oe({assistantId:e,onStartSetupConversation:t});return(0,J.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-6 overflow-hidden`,children:[(0,J.jsx)(It,{assistantId:e,assistantName:o,initialChannel:i,pluginChannels:Rt(e),...s}),n?(0,J.jsx)(Ae,{onClick:a.open}):null,(0,J.jsx)(De,{open:a.isOpen,assistantId:e,onClose:a.close})]})}function Vt(){let e=r(),t=ge();return(0,J.jsx)(Bt,{assistantId:t,onStartSetupConversation:t=>{ue(e,{prompt:t})}},t)}export{Vt as ChannelsPageRoute};
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
var e={title:`Añadir al chat`,closeAriaLabel:`Cerrar`,camera:`Cámara`,gallery:`Buscar en la galería`,files:`Archivos`},t={description:`Dónde {count, plural, one {cayó # punto de corte de caché} other {cayeron # puntos de corte de caché}} en el prefijo de esta solicitud, y qué segmentos se leyeron frente a los que se volvieron a crear.`,estimatedTokens:`≈ {count} tokens`,fullMissBody:`Todos los segmentos se volvieron a crear en este turno. Compara con el turno anterior en la diferencia de caché de arriba para encontrar el bloque que cambió.`,fullMissTitle:`Fallo total de caché`,loadError:`No se pudo cargar la carga de la solicitud para mapear los puntos de corte de caché.`,loading:`Cargando la carga de la solicitud para mapear los puntos de corte de caché…`,noBreakpoints:`Esta solicitud no tenía puntos de corte de caché: la caché del prompt estaba desactivada para la llamada.`,splitEstimatedNote:` La división leído/creado se atribuye por tamaño de segmento; el proveedor solo informa los totales.`,statusCreated:`Vuelto a crear`,statusRead:`Leído de la caché`,statusUnknown:`En caché`,title:`Puntos de corte de caché`,tokenEstimateNote:`Los recuentos de tokens se estiman a partir de la longitud del texto.`},n={changedLabel:`Cambiado`,changedMessageFallback:`un mensaje`,chipMessages:`Mensajes`,chipModel:`Modelo`,chipSettings:`Configuración`,chipSystem:`Sistema`,chipTools:`Herramientas`,currentModelFallback:`este modelo`,description:`Qué cambió desde la solicitud del turno anterior: el bloque que volvió a crear la caché del prompt.`,diffAnyway:`Comparar de todos modos ({lineCount} líneas)`,diffLabel:`{label} diff`,diffLargeDefault:`El texto cambiado es grande, así que no se compara por defecto.`,diffStillTooLarge:`Sigue siendo demasiado grande para comparar aquí (más de {maxLines} líneas). Abre la pestaña Raw para ver la carga completa.`,diffTooLarge:`El texto cambiado es demasiado grande para comparar aquí. Abre la pestaña Raw para ver la carga completa.`,loadPreviousCallError:`No se pudo cargar la llamada anterior para comparar.`,loadingPreviousCall:`Cargando la llamada anterior para comparar…`,messageStatsAppended:`{count} añadido(s)`,messageStatsLeading:`Mensajes iniciales: {parts}`,messageStatsRemoved:`{count} eliminado(s)`,messageStatsShared:`{count} compartido(s)`,previousModelFallback:`el modelo anterior`,previousPromptUnavailable:`El prompt de la llamada anterior no está disponible para comparar.`,showLess:`Mostrar menos`,showMoreDiffLines:`Mostrar {count} línea(s) de diferencia más`,statusMessagesEarlierBody:`{label} #{index} difiere del turno anterior, así que todo lo que estaba en caché después se vuelve a procesar en este turno.`,statusMessagesEarlierTitle:`Un mensaje anterior cambió`,statusMessagesHistoryBody:`Faltan {removedCount} mensaje(s) anterior(es) en este turno (probablemente por compactación del historial), así que el prefijo de mensajes en caché ya no coincide.`,statusMessagesHistoryTitle:`Historial de mensajes cambiado`,statusModelBody:`Este turno usó {current}, pero el turno anterior usó {previous}. Un modelo distinto no puede reutilizar la caché del prompt anterior, así que todo el prompt se vuelve a crear.`,statusModelTitle:`Modelo cambiado`,statusPrefixUnchangedBodyAppended:`El prefijo en caché coincide con el turno anterior y se añadieron {count} mensaje(s) nuevo(s). Un fallo de caché aquí apunta a la caducidad del TTL de la caché, no a contenido cambiado.`,statusPrefixUnchangedBodyIdentical:`El prefijo en caché es idéntico al del turno anterior. Un fallo de caché aquí apunta a la caducidad del TTL de la caché, no a contenido cambiado.`,statusPrefixUnchangedTitle:`Prefijo del prompt sin cambios`,statusSettingsBody:`Solo la configuración de la solicitud (p. ej., temperatura) difiere del turno anterior. En la mayoría de proveedores, esto por sí solo no invalida la caché del prompt.`,statusSettingsTitle:`Configuración de la solicitud cambiada`,statusSystemBody:`Parte del prompt del sistema cambió desde el turno anterior. El contenido volátil aquí (una marca de tiempo, memoria o un bloque por turno) vuelve a crear la caché en cada turno.`,statusSystemTitle:`Prompt del sistema cambiado`,statusToolsBody:`El conjunto de herramientas o sus definiciones difieren del turno anterior. Las herramientas están al inicio del prefijo en caché, así que cualquier cambio aquí vuelve a crear la caché antes de llegar al prompt del sistema y a los mensajes.`,statusToolsTitle:`Definiciones de herramientas cambiadas`,title:`Diferencia de caché`,unchangedLines:`⋯ {count} línea(s) sin cambios`},r={barAriaLabel:`Desglose de la caché del prompt de {total} tokens: {segments} ({percent} en caché).`,barSegment:`{count} {label}`,cached:`en caché`,description:`Cuánto del prompt de esta llamada se sirvió desde la caché del prompt.`,segmentCreated:`Vuelto a crear`,segmentFresh:`Entrada nueva`,segmentRead:`Leído de la caché`,statusFullMissBody:`Ninguna parte del prompt de esta llamada se leyó de la caché.`,statusFullMissReCreatedSuffix:` Se escribieron {count} tokens en la caché en este turno, pero no se reutilizó ninguno; esto suele significar que el prefijo en caché cambió desde el turno anterior.`,statusFullMissTitle:`Fallo total de caché`,statusHealthyBody:`El {percent} del prompt de esta llamada ({count} tokens) se sirvió desde la caché.`,statusHealthyTitle:`Reutilización saludable de la caché`,statusPartialBody:`El {percent} del prompt de esta llamada ({count} tokens) se sirvió desde la caché; el resto se volvió a procesar en este turno.`,statusPartialTitle:`Reutilización parcial de la caché`,title:`Estado de la caché`,unavailableNote:`Esta llamada no informó del uso de la caché del prompt.`,unavailableNoteForProvider:`Esta llamada no informó del uso de la caché del prompt para {provider}.`},i={callCount:`{count, plural, one {# llamada LLM} other {# llamadas LLM}}`,callLabel:`Llamada {number}`,compaction:`Compactación`,cost:`Costo`,empty:`No hay llamadas LLM registradas.`,failed:`Fallida`,latest:`Más reciente`,navAriaLabel:`Llamadas LLM`,syntheticAgentLoopError:`Error del bucle del agente`,syntheticAgentLoopErrorWithReason:`Error del bucle del agente · {reason}`,syntheticYield:`Rendimiento · la compactación no cupo en el siguiente paso`,unrecognizedCall:`Llamada no reconocida`},a={addToChat:`Añadir al chat`,askAssistantPlaceholder:`Pregunta a {assistantName}`,disclaimer:`Vellum usa modelos de IA externos y puede cometer errores`},o={compactedMessages:`{count} compactados`,compactedPreserved:`Compactados / preservados`,contextTokens:`Tokens de contexto`,duration:`Duración`,durationMs:`{count} ms`,emptyBody:`Una compactación se atribuye a la llamada que se ejecutó justo después. Si esperas una aquí, verifica que la conversación superó su presupuesto de contexto justo antes de esta llamada.`,emptyTitle:`Ninguna compactación está asociada a esta llamada`,eventIndex:` · {index} de {totalCount}`,hideSummaryText:`Ocultar texto del resumen`,loadFailedDefault:`No se pudo cargar la compactación.`,loadFailedTitle:`Error al cargar`,loading:`Cargando compactación…`,messageRange:`{before} → {after}`,messages:`Mensajes`,outcomeCompacted:`Compactado`,outcomeFailed:`Compactación fallida`,outcomeFailedDetail:`La llamada del resumidor falló, por lo que el contexto quedó intacto.`,outcomeNoChange:`Sin cambios`,outcomeUnavailable:`Resultado no disponible`,outcomeUnavailableDetail:`No se registraron métricas detalladas antes/después para esta compactación.`,preservedMessages:`{count} preservados`,reductionRatio:`{ratio}× más pequeño`,retry:`Reintentar`,showSummaryText:`Mostrar texto del resumen`,summarizerUsage:`{input} entrada / {output} salida`,summaryCost:`Costo del resumen`,summaryModel:`Modelo de resumen`,tokenRange:`{before} → {after}`,tokenRangeWithReduction:`{before} → {after} ({reduction})`,trigger:`Disparador`},s={ariaLabel:`Recursos de la conversación, {count, plural, one {# elemento} other {# elementos}}`,ariaLabelUnseen:`Recursos de la conversación, {count, plural, one {# elemento} other {# elementos}} (cambios sin ver)`,heading:`Recursos`,label:`{count, plural, one {# recurso} other {# recursos}}`},c={copied:`Copiado`,copyFailed:`No se pudo copiar al portapapeles.`},l={cancel:`Cancelar`,close:`Cerrar`,defaultError:`No se pudieron exportar los datos del inspector.`,descriptionDone:`La descarga debería haber comenzado automáticamente.`,descriptionError:`Algo salió mal al recopilar la exportación.`,descriptionRunning:`Recopilando cargas del proveedor y contexto normalizado. Esto puede tardar un momento en conversaciones largas.`,done:`Listo`,progressAriaLabel:`Progreso de exportación`,retry:`Reintentar`,statusDone:`Listo`,statusPackaging:`Empaquetando ZIP…`,statusProgress:`{completed} de {total} llamadas`,titleDone:`Exportación completa`,titleError:`Error al exportar`,titleRunning:`Exportando datos del inspector`},u={accessDenied:`El inspector está disponible para el personal de Vellum o cuando la marca de desarrollador settings-developer-nav está habilitada.`,allMessages:`Todos los mensajes`,back:`Volver`,backToConversationAria:`Volver a la conversación`,chooseCall:`Elige una llamada de la barra lateral para inspeccionar su contexto.`,conversationScopeSubtitle:`Mostrando cada llamada LLM registrada en esta conversación.`,detailLoadFailed:`No se pudo cargar el contexto normalizado de esta llamada.`,emptyBodyConversation:`Ningún mensaje de la conversación fue producido por una llamada LLM o los registros de solicitud fueron recortados por retención.`,emptyBodyMessage:`Este mensaje no fue producido por una llamada LLM o sus registros de solicitud fueron recortados por retención.`,emptyTitleConversation:`No hay llamadas LLM registradas para esta conversación.`,emptyTitleMessage:`No hay llamadas LLM registradas para este mensaje.`,enableLogging:`Habilitar registro`,enableLoggingFailed:`No se pudo habilitar el registro`,enableLoggingFailedWithMessage:`No se pudo habilitar el registro ({message})`,enabling:`Habilitando…`,exportFailed:`No se pudieron exportar los datos del inspector`,exportZip:`Exportar ZIP`,exportZipAria:`Exportar datos del inspector como ZIP`,exporting:`Exportando…`,filterToMessage:`Filtrar por mensaje:`,llmCallCount:`{count, plural, one {1 llamada LLM} other {# llamadas LLM}}`,loadContextFailed:`No se pudo cargar el contexto LLM.`,loadFailedTitle:`Error al cargar`,loading:`Cargando…`,loggingDisabledBody:`Las cargas útiles de solicitud y respuesta no se están registrando, así que no hay nada que inspeccionar. Habilita el registro para capturar futuras llamadas LLM.`,loggingDisabledTitle:`El registro de solicitudes LLM está desactivado`,loggingEnabledToast:`Registro de solicitudes LLM habilitado`,messageOptionDeepLink:`Mensaje {messageId}`,messageOptionNoText:`{index}. (sin texto)`,messageOptionWithPreview:`{index}. {preview}`,retry:`Reintentar`,scopedToOneMessage:`Limitado a un mensaje · `,scopedToTurn:`Limitado al turno {index} de {count} · `,title:`Inspector de contexto LLM`},d={chipCode:`Código`,chipProvider:`Proveedor`,chipRequestId:`ID de solicitud`,chipStatus:`Estado`,chipType:`Tipo`,chipUpstreamCode:`Código ascendente`,chipUpstreamParam:`Parámetro ascendente`,chipUpstreamType:`Tipo ascendente`,noResponse:`El proveedor rechazó esta llamada y no devolvió respuesta.`,title:`Llamada fallida`},f={addOlderPairButton:`+ Añadir par más antiguo`,assistantReplyLabel:`[assistant]: respuesta`,assistantReplyPlaceholder:`Respuesta del asistente que precedió al mensaje del usuario de abajo.`,configTitle:`Configuración {paneId}`,conversationalContextTitle:`Contexto conversacional (compartido por ambos paneles)`,customPromptPlaceholder:`Prompt del sistema del enrutador personalizado. Marcadores de posición disponibles:
|
|
2
|
-
'{ASSISTANT_NAME}, {USER_NAME}, {PAGE_INDEX}'
|
|
3
|
-
Déjalo en blanco para usar la plantilla incluida. "Cargar predeterminado" rellena el área de texto con el cuerpo incluido para editar.`,description:`Ejecuta en seco el enrutador v4 con anulaciones personalizadas de nivel/lote. Solo lectura: no se escriben filas en <code>memory_v2_injection_events</code> ni en <code>memory_v2_activation_logs</code>, y no se modifica el estado de activación. Deja una anulación en blanco para heredar el valor de configuración activo; escribe <code>null</code> para desactivar explícitamente un nivel.`,diffLabel:`Diferencia`,diffValue:`{shared} compartidas · {unique} exclusivas de este panel`,effectiveConfig:`Configuración efectiva`,emaScore:`EMA {score}`,empty:`(vacío)`,emptySelectionHint:`El enrutador devolvió una selección vacía. Prueba una consulta más específica o relaja los valores de anulación.`,failedToRunSimulation:`No se pudo ejecutar la simulación`,firstTurnAssistantPlaceholder:`Déjalo en blanco para un escenario de primer turno.`,inheritActive:`heredar activo`,inheritActiveWithProfile:`heredar activo ({profile})`,inheritPlaceholder:`heredar`,invalidOverrideInput:`Entrada de anulación no válida`,justArrivedUserLabel:`[user]: mensaje recién llegado`,lastUserPlaceholder:`p. ej. qué deberíamos lanzar después`,legendAOnly:`solo A`,legendBOnly:`solo B`,legendInBoth:`en ambos`,llmProfilesOverride:`anulación de llm.profiles`,loadDefault:`Cargar predeterminado`,loading:`Cargando…`,noPagesSelected:`No se seleccionaron páginas`,notAvailable:`El patio de pruebas del enrutador de memoria no está disponible.`,nowBlockLabel:`bloque '<now>'`,nowDefaultPlaceholder:`Rellenado con el NOW.md activo. Edita para probar estados alternativos.`,nowLoadingPlaceholder:`Cargando NOW.md actual…`,nullValue:`null`,overrideMustBePositiveInteger:`{fieldName} debe ser un entero positivo o 'null' (se obtuvo "{value}")`,overrideSuffix:` (anulación)`,pageCount:`{count, plural, one {# página} other {# páginas}}`,pairLabel:`Par {index} de {total}`,pairMostRecentSuffix:` · más reciente`,paneTitle:`Panel {paneId}`,promptModeBundled:`incluido`,promptModeCustom:`personalizado`,rawApiExchange:`Intercambio de API sin procesar`,recentPairsLabel:`Pares recientes (asistente, usuario) · más antiguos primero`,reloadNowButton:`Recargar NOW.md activo`,removeButton:`Eliminar`,requestLabel:`Solicitud (panel {paneId})`,reset:`Restablecer`,responseLabel:`Respuesta (panel {paneId})`,routerFailure:`Fallo del enrutador: {reason}`,runBoth:`Ejecutar ambos`,runPane:`Ejecutar {paneId}`,running:`Ejecutando…`,selectedLabel:`Seleccionadas`,selectedValue:`{count} (max_page_ids activo: {maxPageIds})`,summary:`Resumen`,summaryUserMessageLabel:`Mensaje del usuario`,systemPrompt:`Prompt del sistema`,systemPromptConfigLabel:`prompt del sistema`,tier1Label:`nivel 1`,tier2Label:`nivel 2`,tier3Label:`nivel 3 · b{batch}`,title:`Patio de pruebas del enrutador de memoria`,totalCandidatePagesLabel:`Total de páginas candidatas`,userMessageLabel:`[user]: mensaje`,userMessagePlaceholder:`Mensaje del usuario.`},p={afterMergeLabel:`Tras la fusión`,breakdownCAssistantRerank:`c_assistant · rerank Δ_a`,breakdownCAssistantSim:`c_assistant · sim_a`,breakdownCNowSim:`c_now · sim_n`,breakdownCUserRerank:`c_user · rerank Δ_u`,breakdownCUserSim:`c_user · sim_u`,breakdownOwnActivation:`A_o (propio)`,breakdownPriorActivation:`prior · d`,breakdownRerankScaledRaw:`+{scaled} (bruto {raw})`,breakdownScaledRaw:`{scaled} (bruto {raw})`,breakdownSource:`fuente`,breakdownSpreadDelta:`spread Δ`,breakdownStatus:`estado`,candidateScores:`sem {semantic} · rec {recency}`,carriedPill:`Arrastradas: {count}`,conceptActivationsSubtitle:"Ordenadas por activación final. Las entradas de habilidades aparecen con el prefijo `skills/`; expande una fila para ver el desglose de activación.",conceptActivationsTitle:`Activaciones de conceptos ({count})`,configCAssistant:`c_assistant`,configCNow:`c_now`,configCUser:`c_user`,configDDecay:`d (decaimiento)`,configEpsilon:`epsilon`,configHops:`saltos`,configKSharpening:`k (agudización)`,configSubtitle:`Pesos de activación y umbrales de selección.`,configTitle:`Configuración`,configTopK:`top_k`,copyAriaLabel:`Copiar al portapapeles`,copyAriaLabelCopied:`Copiado`,copyButtonCopied:`Copiado`,copyButtonCopy:`Copiar`,copyErrorMessage:`No se pudo copiar al portapapeles.`,copyTitle:`Copiar`,copyTitleCopied:`¡Copiado!`,corePill:`Núcleo: {count}`,degradationTitle:`Degradación`,fallbackSourcesLabel:`Fuentes de respaldo`,hybridSearchLabel:`Búsqueda híbrida`,inContextPill:`En contexto: {count}`,injectedMemoryContextTitle:`Contexto de memoria inyectado`,injectedPill:`Inyectados: {count}`,injectedTokensLabel:`Tokens inyectados`,latencyMs:`{ms} ms`,loading:`Cargando…`,loggedMemorySelectionSubtitle:`Renderizado desde la selección v3, no inyectado en este turno.`,loggedMemorySelectionTitle:`Selección de memoria registrada`,memoryDisabledDefaultReason:`La recuperación de memoria se desactivó para este turno.`,memoryDisabledTitle:`Memoria desactivada`,missingValue:`-`,modelLabel:`Modelo`,no:`No`,noDataBody:`La información de recuperación de memoria no está disponible para este mensaje.`,noDataTitle:`Sin datos de memoria`,noEntriesRanked:`No hay entradas clasificadas.`,noPagesSelected:`No hay páginas seleccionadas.`,notInjectedPill:`No inyectados: {count}`,pageContentLabel:`contenido de la página`,pageNotFound:`Página no encontrada en disco. El slug puede hacer referencia a una entrada obsoleta de Qdrant.`,pillMemoryV2:`Memoria V2`,pillMemoryV3:`Memoria V3`,pillRecallV1:`Recuperación (v1)`,pinnedChip:`fijada`,pinnedPill:`Fijadas: {count}`,providerLabel:`Proveedor`,queryContextSubtitle:`El texto incrustado como vector de búsqueda para la recuperación semántica.`,queryContextTitle:`Contexto de consulta`,reasonLabel:`Motivo`,retrievalFunnelSubtitle:`Cómo se filtraron las memorias desde la búsqueda semántica hasta la inyección.`,retrievalFunnelTitle:`Embudo de recuperación`,searchDetailsTitle:`Detalles de búsqueda`,selectedLabel:`Seleccionadas`,selectedPagesSubtitle:`Páginas que v3 seleccionó, etiquetadas por el carril que las mostró y la sección coincidente (cuando un carril de búsqueda mostró una).`,selectedPagesTitle:`Páginas seleccionadas ({count})`,selectedPill:`Seleccionadas: {count}`,semanticHitsLabel:`Coincidencias semánticas`,semanticUnavailableLabel:`Semántica no disponible`,sparseDenseOnly:`Solo densos`,sparseUsed:`Usados`,sparseVectorsLabel:`Vectores dispersos`,statusActive:`Activo`,statusDegraded:`Degradado`,statusLabel:`Estado`,statusSubtitle:`Proveedor, modelo y latencia de esta recuperación.`,statusTitle:`Estado`,tier1Label:`Nivel 1`,tier2Label:`Nivel 2`,topCandidatesSubtitle:`{count, plural, one {# candidato clasificado por puntuación final.} other {# candidatos clasificados por puntuación final.}}`,topCandidatesTitle:`Mejores candidatos`,totalLatencyLabel:`Latencia total`,turnLevelRecallBody:`La recuperación de memoria se ejecuta una vez por turno. Estos datos se aplican a todas las llamadas LLM de este mensaje.`,turnLevelRecallTitle:`Recuperación por turno`,turnPill:`Turno {turn}`,unavailable:`No disponible`,unknown:`Desconocido`,v2StatusInContext:`En contexto`,v2StatusInjected:`Inyectado`,v2StatusNotInjected:`No inyectado`,v2StatusPageMissing:`Página no encontrada`,v2TurnBody:`Paso de memoria por activación en cascada que clasifica conceptos y habilidades para este turno.`,v2TurnTitle:`Memoria - turno {turn} ({mode})`,v3LiveInjectionBody:`v3 es la fuente de memoria en vivo en este turno: el bloque de abajo se inyectó en el contexto (v2 suprimido).`,v3LiveInjectionTitle:`Memoria V3 - inyección en vivo`,v3LoggedSelectionBody:`v3 no es la fuente de memoria en vivo para este asistente: estas selecciones se registraron pero no se inyectaron en este turno; la memoria del turno provino de v2.`,v3LoggedSelectionTitle:`Memoria V3 - selección registrada (no inyectada)`,v3SourceCarried:`arrastrada`,v3SourceCore:`núcleo`,v3SourceL1L2:`L1+L2`,v3SourceNeedle:`aguja`,yes:`Sí`},m={callOfTotal:`Llamada {number} de {total}`,llmCallCount:`{count, plural, one {1 llamada LLM} other {# llamadas LLM}}`,selectCallAria:`Seleccionar una llamada LLM para inspeccionar`,sheetTitle:`Seleccionar una llamada`},h={cacheTokensLabel:`Tokens de caché`,conversationSubtitle:`Totales acumulados de cada llamada LLM con precio hasta ahora.`,conversationTitle:`Conversación`,createdLabel:`Creado`,durationLabel:`Duración`,estimatedCostLabel:`Costo estimado`,failedStatus:`Fallido`,firstTokenKindLabel:`Tipo de primer token`,firstTokenLatencySubtitle:`Dónde se fue el tiempo hasta el primer token de este turno, medido por el asistente.`,firstTokenLatencyTitle:`Latencia del primer token`,inputTokensLabel:`Tokens de entrada`,latencyMs:`{ms} ms`,loopExitReasonLabel:`Motivo de salida del bucle`,modelLabel:`Modelo`,normalizedMetadataSubtitle:`Proveedor, modelo, marcas de tiempo y recuentos de uso.`,normalizedMetadataTitle:`Metadatos normalizados`,normalizedSummaryUnavailableSubtitle:`Esta llamada aún tiene cargas útiles de solicitud y respuesta sin procesar.`,normalizedSummaryUnavailableTitle:`Resumen normalizado no disponible`,otherLabel:`Otro`,outputTokensLabel:`Tokens de salida`,providerLabel:`Proveedor`,requestMessagesLabel:`Mensajes de solicitud`,statusLabel:`Estado`,stopReasonLabel:`Motivo de parada`,toolCallsLabel:`Llamadas a herramientas`,toolsAvailableLabel:`Herramientas disponibles`,totalCostSoFarLabel:`Costo total hasta ahora`,totalToFirstTokenLabel:`Total hasta el primer token`,usageSubtitle:`Recuentos de tokens y llamadas normalizados por la ruta del asistente.`,usageTitle:`Uso`},g={colors:{green:`Verde`,orange:`Naranja`,pink:`Rosa`,purple:`Morado`,teal:`Turquesa`,yellow:`Amarillo`},noColor:`Sin color`},_={availableTools:`Herramientas disponibles`,bannerNoSections:`Esta llamada aún no tiene secciones de prompt normalizadas.`,bannerSectionsCount:`{count, plural, one {# sección de solicitud normalizada mostrada en el orden devuelto por la ruta del asistente.} other {# secciones de solicitud normalizadas mostradas en el orden devuelto por la ruta del asistente.}}`,collapseAll:`Contraer todo`,copyAriaLabel:`Copiar {title}`,emptyBody:`Esta llamada no tiene secciones de prompt normalizadas. Usa la pestaña Raw para inspeccionar la carga útil completa de la solicitud.`,emptyTitle:`Sin secciones de prompt normalizadas`,expandAll:`Expandir todo`,formatJavaScript:`JavaScript`,formatJson:`JSON`,formatMarkdown:`Markdown`,formatTypeScript:`TypeScript`,noContentAvailable:`No hay contenido disponible.`,promptSectionsTitle:`Secciones del prompt`},v={copyRequestPayloadAriaLabel:`Copiar carga de la solicitud`,copyResponsePayloadAriaLabel:`Copiar carga de la respuesta`,downloadFailedToast:`No se pudo descargar la carga.`,downloadRequestPayloadAriaLabel:`Descargar carga de la solicitud`,downloadResponsePayloadAriaLabel:`Descargar carga de la respuesta`,loadErrorTitle:`No se pudieron cargar las cargas sin procesar`,loading:`Cargando cargas sin procesar…`,payloadRequestFailed:`La solicitud de la carga falló. Inténtalo de nuevo.`,request:`Solicitud`,requestPayload:`Carga de la solicitud`,response:`Respuesta`,responsePayload:`Carga de la respuesta`,retry:`Reintentar`},y={argumentsPreview:`Vista previa de argumentos`,copySectionAria:`Copiar contenido de la sección`,kindAssistantText:`Texto del asistente`,kindFunctionResponse:`Respuesta de función`,kindReasoning:`Razonamiento`,kindToolCall:`Llamada de herramienta`,kindToolResult:`Resultado de herramienta`,modeResultOnly:`Respuesta solo de resultado`,modeTextOnly:`Respuesta solo de texto`,modeToolCalling:`Respuesta con llamada de herramienta`,noArgumentsPreview:`No hay vista previa de argumentos estructurados disponible para esta llamada de herramienta.`,noAssistantText:`No se capturó texto del asistente para esta sección.`,noSectionsFallback:`Esta respuesta no tiene secciones renderizadas. Las cargas útiles sin procesar siguen disponibles en la pestaña Raw, y cualquier metadato de respuesta normalizado se mostrará cuando esté presente.`,rawTabHint:`¿Necesitas la carga útil completa del proveedor? Abre la pestaña Raw para el JSON de solicitud y respuesta.`,responseMetadata:`Metadatos de respuesta`,sectionTitle:`Sección {number}`,sectionUnavailable:`Renderizado de sección no disponible`,stopReasonChip:`Motivo de parada: {reason}`,toolChip:`Herramienta: {name}`},b={message:`No se pudieron cargar tus conversaciones.`,retry:`Reintentar`},x={callLink:`Llamada {number}`,emptyBody:`Esta pestaña enumera cada llamada de herramienta <code>skill_load</code> en la conversación. No se detectó ninguna en las llamadas LLM capturadas.`,emptyTitle:`No se cargaron habilidades en esta conversación`,loadCount:`{count, plural, one {1 carga} other {# cargas}}`,summaryStats:`{uniqueCount, plural, one {# habilidad única} other {# habilidades únicas}} · {totalLoads, plural, one {# llamada de carga} other {# llamadas de carga}}`,summaryTitle:`Habilidades cargadas en esta conversación`},S={defaultValue:`predeterminado: {value}`,inputSchema:`Esquema de entrada`,intro:`{count, plural, one {# herramienta enviada con esta solicitud. Expande una herramienta para ver su definición y esquema de entrada.} other {# herramientas enviadas con esta solicitud. Expande una herramienta para ver su definición y esquema de entrada.}}`,noInputSchema:`Sin esquema de entrada: esta herramienta no acepta entrada estructurada.`,required:`obligatorio`,settings:`Configuración`},C={addToChatSheet:e,cacheBreakpointMapCard:t,cacheDiffCard:n,cacheHealthCard:r,callRail:i,chatComposer:a,compactionTab:o,conversationAssets:s,copyButton:c,exportProgressModal:l,inspectPage:u,llmCallErrorCard:d,memoryRouterPlaygroundPage:f,memoryTab:p,mobileCallSelector:m,overviewTab:h,pinnedAppColorSwatches:g,promptTab:_,rawTab:v,responseTab:y,sidebarConversationError:b,skillsTab:x,toolDefinitionsContent:S};export{e as addToChatSheet,t as cacheBreakpointMapCard,n as cacheDiffCard,r as cacheHealthCard,i as callRail,a as chatComposer,o as compactionTab,s as conversationAssets,c as copyButton,C as default,l as exportProgressModal,u as inspectPage,d as llmCallErrorCard,f as memoryRouterPlaygroundPage,p as memoryTab,m as mobileCallSelector,h as overviewTab,g as pinnedAppColorSwatches,_ as promptTab,v as rawTab,y as responseTab,b as sidebarConversationError,x as skillsTab,S as toolDefinitionsContent};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./capture-error-Cdvvw9J5.js";import{t as n}from"./react-BFJW0bSv.js";import{t as r}from"./button-DSjqKLvM.js";import{t as i}from"./useQuery-Bz-fbQ-m.js";import{t as a}from"./jsx-runtime-D3ZM-ToX.js";import{t as o}from"./cn-DFWryB3N.js";import{t as s}from"./typography-BeUa5Fd-.js";import{$ as c,d as l,f as u,x as d}from"./src-DjIqxQVd.js";import{t as f}from"./createLucideIcon-C_IfoPaZ.js";import{t as p}from"./archive-Cp86wmG1.js";import{t as m}from"./check-CNBoUiyR.js";import{t as h}from"./menu-Gu_6PRrL.js";import{a as g,c as _,l as v,o as y,s as b,t as x,u as ee}from"./use-attachment-preview-DvVweDZY.js";import{t as S}from"./download-Bld7ch1X.js";import{t as te}from"./ellipsis-Dm3PecnW.js";import{t as C}from"./external-link-D65yhWAV.js";import{t as ne}from"./eye-off-DFGH3cWw.js";import{t as re}from"./eye-DO1vbwRG.js";import{t as ie}from"./file-text-Ha6XXdS_.js";import{t as ae}from"./file-7EmuTJEW.js";import{t as w}from"./key-round-BeLlbSFj.js";import{t as oe}from"./loader-circle-oY5laABh.js";import{n as T}from"./toast-BrKo5b4d.js";import{t as se}from"./skeleton-CzdJByjE.js";import{n as ce}from"./resolved-assistants-store-BuqctGKE.js";import{l as le,pt as ue}from"./sdk.gen-Br55zhZN.js";import{t as de}from"./dist-D8V9YSOm.js";import{r as fe}from"./use-is-org-ready-CWNhmJ2b.js";import{n as pe}from"./browser-CZ10MkOr.js";import{t as E}from"./conversation-store-BnS0mmz7.js";import{i as D}from"./viewer-store-D3KM2E2N.js";import{t as me}from"./open-workspace-file-D2FXjNVn.js";import{a as he,i as ge,n as _e,o as O,r as ve,s as ye,t as k}from"./workspace-path-links-ORUgKDWB.js";import{a as be,n as xe,o as Se}from"./pdf-preview-CFuSHh-t.js";import{t as Ce}from"./copy-to-clipboard-SOu7HUET.js";import{a as we,i as Te,s as Ee}from"./use-local-file-info-CowxNLsG.js";import{n as De,r as Oe}from"./workspace-tree-query-C6kx2Bkh.js";import{t as ke}from"./native-anchor-txt0veYo.js";var A=f(`panel-right`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M15 3v18`,key:`14nvp0`}]]),Ae=f(`picture-in-picture-2`,[[`path`,{d:`M21 9V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v10c0 1.1.9 2 2 2h4`,key:`daa4of`}],[`rect`,{width:`10`,height:`7`,x:`12`,y:`13`,rx:`2`,key:`1nb8gs`}]]),j=e(n(),1),je=`width=500,height=600`;function M(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 N(e){let t=M(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 Me(e){if(typeof window>`u`)return null;let t=M(e);return!t||t.origin!==window.location.origin?null:`${t.pathname}${t.search}${t.hash}`}function P(e){return M(e)?.href??null}function F(e){if(!N(e))return!1;if(de.isNativePlatform()){let t=P(e);return t?(pe(t),!0):!1}let t=window.open(e,`_blank`,je);return t===null?!1:(t.focus(),!0)}function Ne(e){return F(e)}function I(e){if(F(e))return!0;let t=window.open(e,`_blank`);return t===null?!1:(t.focus(),!0)}function Pe(e,t){let n=Me(e);if(n)return t.push(n),{kind:`routed`};let r=P(e);return r?t.isNative?(pe(r),{kind:`opened`}):I(r)?{kind:`opened`}:{kind:`blocked`,url:r}:{kind:`invalid`}}var L=a(),Fe=new Set([`md`,`markdown`]),Ie=new Map([[`csv`,`csv`],[`tsv`,`csv`],[`txt`,`text`],[`log`,`text`],[`json`,`text`],[`yaml`,`text`],[`yml`,`text`],[`xml`,`text`],[`pdf`,`pdf`],[`png`,`image`],[`jpg`,`image`],[`jpeg`,`image`],[`gif`,`image`],[`webp`,`image`],[`svg`,`image`],[`avif`,`image`],[`mp3`,`audio`],[`wav`,`audio`],[`m4a`,`audio`],[`ogg`,`audio`],[`flac`,`audio`],[`mp4`,`video`],[`mov`,`video`],[`webm`,`video`],[`m4v`,`video`]]);function R(e){let t=e.lastIndexOf(`.`);return t<=0?null:e.slice(t+1).toLowerCase()}function Le(e){let t=R(e);return t!==null&&Fe.has(t)}function Re(e){let t=R(e);return t===null?null:Ie.get(t)??null}function ze(e){return Re(e)??`unsupported`}function z(e,t,n){return t?Le(e)?n?{mode:`document`,assistantId:t,conversationId:n}:{mode:`workspace`}:{mode:`preview`,assistantId:t,previewKind:ze(e)}:{mode:`workspace`}}function Be(e,t,n){return z(e,t,n).mode!==`workspace`}function Ve(e,t,n){return e===`document`&&t!==null&&t.workspacePath===n}function He(e){let t=D.use.mainView(),n=D.use.openedDocumentState();return e===null?!1:Ve(t,n,e)}function Ue(e,t,n){return We(e,t)===n}function We(e,t){return e!==`document`||t?.source!==`document`?null:t.surfaceId}function Ge(e){return Ue(D.use.mainView(),D.use.openedDocumentState(),e)}function Ke(e,t,n,r){let i=z(t,n,r);if(i.mode===`document`){D.getState().loadWorkspaceFileDocument(i.assistantId,e,i.conversationId);return}if(i.mode===`preview`){D.getState().openWorkspaceFilePreview(e,i.previewKind);return}me(e)}function B(e,t,n,r){let i=D.getState();if(Be(t,n,r)&&Ve(i.mainView,i.openedDocumentState,e)){i.closeDocument();return}Ke(e,t,n,r)}var qe={image:_,video:b,audio:v,pdf:g,code:ee,archive:p,spreadsheet:y,document:ie,text:ie,file:ae};function Je(e,t){return e===`file`?xe(``,t):e}function V(e){return Ee({sniffedMime:null,serverMime:null,filename:e}).kind}function H({kind:e,filename:t,className:n}){let r=qe[Je(e,t)];return(0,L.jsx)(r,{className:n,"aria-hidden":!0})}var Ye=100*1024*1024,Xe=25*1024*1024;function Ze(e){switch(e){case`image`:case`audio`:case`video`:return Ye;default:return Xe}}var Qe=1500,U=`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)]`,W=`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 $e({type:e,service:t,field:n,assistantId:r,neutralized:i}){let a=ce.use.activeAssistantId(),o=r===void 0?a:r,[s,l]=(0,j.useState)(null),[u,d]=(0,j.useState)(!1),[f,p]=(0,j.useState)(!1),h=(0,j.useRef)(null),g=(0,j.useRef)(0),_=e??`Secret`,v=t!==void 0&&n!==void 0&&o!=null,y=v?`${t}:${n}`:_,b=(0,j.useCallback)(()=>{g.current++,l(null),d(!1),p(!1),h.current&&=(clearTimeout(h.current),null)},[]),x=(0,j.useCallback)(async()=>{if(!v)return;let e=++g.current;d(!0);try{let{data:r}=await ue({path:{assistant_id:o},body:{service:t,field:n},throwOnError:!0});g.current===e&&l(r.value)}catch{g.current===e&&T.error(`Couldn't reveal ${y}.`)}finally{g.current===e&&d(!1)}},[v,o,t,n,y]),ee=(0,j.useCallback)(()=>{s!=null&&Ce(s,{errorMessage:`Couldn't copy. Reveal and copy manually.`,onCopied:()=>{p(!0),h.current&&clearTimeout(h.current),h.current=setTimeout(()=>p(!1),Qe)}})},[s]);if(i)return(0,L.jsxs)(`span`,{className:U,title:`Redaction marker — not verified by the assistant`,children:[(0,L.jsx)(w,{className:`h-3.5 w-3.5 shrink-0`,"aria-hidden":!0}),(0,L.jsx)(`span`,{className:`truncate`,children:`Redacted`})]});if(!v)return(0,L.jsxs)(`span`,{className:U,title:`Redacted — this value is not linked to a stored credential`,children:[(0,L.jsx)(w,{className:`h-3.5 w-3.5 shrink-0`,"aria-hidden":!0}),(0,L.jsx)(`span`,{className:`truncate`,children:_})]});let S=s!==null;return(0,L.jsxs)(`span`,{className:U,children:[(0,L.jsx)(w,{className:`h-3.5 w-3.5 shrink-0`,"aria-hidden":!0}),S?(0,L.jsx)(`span`,{className:`min-w-0 truncate font-mono text-[var(--content-default)]`,children:s}):(0,L.jsx)(`button`,{type:`button`,onClick:()=>void x(),disabled:u,"aria-label":`Reveal value for ${y}`,title:`${_} · 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:y}),u?(0,L.jsx)(oe,{className:`h-3.5 w-3.5 shrink-0 animate-spin`,"aria-hidden":!0}):S?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`button`,{type:`button`,onClick:ee,"aria-label":`Copy value for ${y}`,title:`Copy value`,className:W,children:f?(0,L.jsx)(m,{className:`h-3.5 w-3.5`,"aria-hidden":!0}):(0,L.jsx)(c,{className:`h-3.5 w-3.5`,"aria-hidden":!0})}),(0,L.jsx)(`button`,{type:`button`,onClick:b,"aria-label":`Hide value for ${y}`,title:`Hide value`,className:W,children:(0,L.jsx)(ne,{className:`h-3.5 w-3.5`,"aria-hidden":!0})})]}):(0,L.jsx)(`button`,{type:`button`,onClick:()=>void x(),disabled:u,"aria-label":`Reveal value for ${y}`,title:`Click to reveal`,className:W,children:(0,L.jsx)(re,{className:`h-3.5 w-3.5`,"aria-hidden":!0})})]})}var et=`redacted`;function tt(e){try{return decodeURIComponent(e)}catch{return}}function nt(){return RegExp(`〔${et}:([^:\u3014\u3015]+?)(?::([A-Za-z0-9_.%-]+):([A-Za-z0-9_.%-]+))?〕`,`g`)}function rt(){return RegExp(`〔\\u2060${et}:([^:\\u3014\\u3015]+?)(?::([A-Za-z0-9_.%-]+):([A-Za-z0-9_.%-]+))?〕`,`g`)}function it(e){let[,t,n,r]=e;if(n!==void 0&&r!==void 0){let e=tt(n),i=tt(r);if(e!==void 0&&i!==void 0)return{type:t,service:e,field:i}}return{type:t}}var G=`redacted-credential`,at=new Set([`pre`,`code`,`style`,`script`,`a`]);function ot(e){return e.type===`element`}function st(e){let t=[],n=nt(),r;for(;(r=n.exec(e))!==null;){let e=it(r);t.push({index:r.index,length:r[0].length,element:{type:`element`,tagName:G,properties:{type:e.type,...e.service!==void 0&&e.field!==void 0?{service:e.service,field:e.field}:{}},children:[]}})}let i=rt();for(;(r=i.exec(e))!==null;)t.push({index:r.index,length:r[0].length,element:{type:`element`,tagName:G,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 ct(e){if(ot(e)&&at.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`){ct(n);continue}let r=n.value;if(!r.includes(`〔`))continue;let i=st(r);i&&t.splice(e,1,...i)}}function lt(){return e=>{ct(e)}}var ut=new Set([`pre`,`code`,`style`,`script`]),dt=5,ft=.4,pt=`stream-word-fade`;function mt(e){return e.type===`element`}function ht(e){if(mt(e)&&ut.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`){ht(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:[pt]},children:[{type:`text`,value:e}]});t.splice(e,1,...i)}}function gt(e,t){if(mt(e)){let n=e.properties?.className;if(Array.isArray(n)&&n.includes(pt)){t.push(e);return}}if(e.children)for(let n of e.children)gt(n,t)}function _t(e){let t=e?.caughtUp??!1;return e=>{if(ht(e),t)return;let n=[];gt(e,n);let r=Math.min(dt,n.length);for(let e=0;e<r;e++){let t=n[n.length-1-e],r=(ft+(1-ft)*((e+1)/(dt+1))).toFixed(3);t.properties={...t.properties,style:`opacity:${r}`}}}}var vt=new Set([`pre`,`a`,`style`,`script`]);function yt(e){return e.type===`element`}function bt(e){if(e.children.length!==1)return;let t=e.children[0];return t.type===`text`?t.value:void 0}function xt(e){let t=e.children;if(t){for(let e of t)if(yt(e)&&!vt.has(e.tagName)){if(e.tagName===`code`){let t=bt(e),n=t===void 0?null:he(t);n!==null&&t!==void 0&&(e.tagName=k,e.properties={...e.properties,path:n,raw:t},e.children=[]);continue}xt(e)}}}function St(){return e=>{xt(e)}}var Ct=15e3,wt=1e4,Tt=9e4;function Et({path:e,raw:t,assistantId:n,onOpen:r}){let a=t??e??``,o=fe(),s=!!(e&&n&&r&&o),[c]=(0,j.useState)(()=>Date.now()+Tt),{data:u}=i({...De({assistantId:n??``,path:e?ye(e):``}),enabled:s,staleTime:Ct,retry:!1,refetchInterval:t=>Date.now()>=c||(t.state.data?.entries.some(t=>t.type===`file`&&t.path===e)??!1)?!1:wt});return!(0,j.useMemo)(()=>e!=null&&(u?.entries.some(t=>t.type===`file`&&t.path===e)??!1),[u,e])||!e||!r?(0,L.jsx)(`code`,{className:l,children:a}):(0,L.jsx)(`button`,{type:`button`,onClick:()=>r(ge(e),O(e)),className:`${l} cursor-pointer text-[var(--system-positive-strong)] underline decoration-dotted underline-offset-2 hover:opacity-80`,title:`Open ${e}`,children:a})}var Dt=/^[a-zA-Z][a-zA-Z0-9+.-]*:/;function Ot(e){try{return decodeURIComponent(e)}catch{return null}}function kt(e){return(e.split(`#`,1)[0]??``).split(`?`,1)[0]??``}function At(e){let t=Ot(kt(e));if(t===null)return null;let n=t.trim();if(n.length===0||n.length>512||n.includes(`\0`))return null;let r;if(n.startsWith(`/`)){let e=n.lastIndexOf(_e);if(e===-1)return null;r=n.slice(e+_e.length)}else r=n.startsWith(`./`)?n.slice(2):n;return ve(r)?r:null}function jt(e){let t=kt(e.trim()).split(`/`).pop()??``;return Ot(t)??t}function K(e){if(e==null)return{kind:`other`};let t=e.trim();if(t.length===0||t.startsWith(`#`))return{kind:`other`};if(t.startsWith(`//`))return{kind:`web`};let n=Dt.exec(t)?.[0];if(n){let e=n.slice(0,-1).toLowerCase();return e===`vellum`?{kind:`vellum`}:e===`http`||e===`https`?{kind:`web`}:{kind:`other`}}if(!(t.startsWith(`/`)||t.startsWith(`./`)||t.includes(`/`)))return{kind:`other`};let r=At(t);return{kind:`local-file`,workspacePath:r,filename:r?O(r):jt(t)}}function q({workspacePath:e,filename:t,assistantId:n,disabled:i,onPictureInPicture:a,className:s}){let c=i===!0||e===null,l=(0,j.useCallback)(()=>{e!==null&&me(e)},[e]),u=(0,j.useCallback)(async()=>{if(!(e===null||!n))try{await Oe({assistantId:n,path:e,filename:t})}catch{T.error(`Failed to download file`,{description:t})}},[n,t,e]);return(0,L.jsxs)(h.Root,{children:[(0,L.jsx)(h.Trigger,{asChild:!0,children:(0,L.jsx)(r,{variant:`ghost`,size:`compact`,expandOnMobile:!1,iconOnly:(0,L.jsx)(te,{}),"aria-label":`File actions`,className:o(`shrink-0`,s),onClick:e=>e.stopPropagation(),onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&e.stopPropagation()}})}),(0,L.jsxs)(h.Content,{align:`end`,sideOffset:4,children:[(0,L.jsx)(h.Item,{leftIcon:(0,L.jsx)(C,{size:14}),disabled:c,onSelect:l,className:`whitespace-nowrap`,children:`Go to file`}),a!==void 0&&(0,L.jsx)(h.Item,{leftIcon:(0,L.jsx)(Ae,{size:14}),onSelect:a,className:`whitespace-nowrap`,children:`Picture in Picture`}),(0,L.jsx)(h.Item,{leftIcon:(0,L.jsx)(S,{size:14}),disabled:c||!n,onSelect:()=>void u(),className:`whitespace-nowrap`,children:`Download`})]})]})}var Mt=[`opacity-0 transition-opacity`,`group-hover/local-file-card:opacity-100`,`group-focus-visible/local-file-card:opacity-100`,`[@media(pointer:coarse)]:opacity-100`].join(` `);function Nt(e){return e===`workspace`?{label:`Open in workspace`,Icon:C}:e===`preview`?{label:`Open preview`,Icon:A}:{label:`Open in editor`,Icon:A}}var Pt={workspace:`workspace`,document:`editor`,preview:`preview`};function Ft(e,t,n){return e===`missing`?`File not found`:e===`unavailable`?`File isn't available here`:n===t?null:n}function J({displayName:e,filename:t,sizeBytes:n,kind:r,state:i,workspacePath:a,assistantId:c}){let l=E.use.activeConversationId(),u=i===`ready`,d=u&&a!==null,{mode:f}=z(t,c,l),p=f!==`workspace`,m=He(d?a:null)&&p,h=Ft(i,e,t),{label:g,Icon:_}=Nt(f),v=m?`Close ${Pt[f]} for ${t}`:`Open ${t}`,y=()=>{d&&B(a,t,c,l)};return(0,L.jsxs)(`span`,{role:d?`button`:void 0,tabIndex:d?0:void 0,"aria-label":d?v:void 0,"aria-expanded":d&&p?m:void 0,title:t,onClick:d?y:void 0,onKeyDown:d?e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),y())}:void 0,className:o(`group/local-file-card my-2 flex w-full max-w-md items-center gap-2.5 rounded-lg border p-2 transition-colors`,m?`border-[var(--border-active)] bg-[var(--surface-active)]`:`border-[var(--border-element)] bg-[var(--surface-lift)]`,d&&`cursor-pointer`),children:[(0,L.jsx)(`span`,{className:o(`flex h-9 w-9 shrink-0 items-center justify-center rounded-md`,m?`bg-[var(--surface-lift)]`:`bg-[var(--surface-sunken)]`,u?`text-[var(--content-secondary)]`:`text-[var(--content-disabled)]`),children:(0,L.jsx)(H,{kind:r,filename:t,className:`h-4 w-4`})}),(0,L.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,L.jsx)(s,{as:`span`,variant:`body-small-default`,className:o(`truncate`,m?`text-[var(--content-emphasised)]`:`text-[var(--content-default)]`),children:Se(e,40)}),h!==null&&(0,L.jsx)(s,{as:`span`,variant:`label-small-default`,className:`truncate text-[var(--content-tertiary)]`,children:h})]}),d&&!m&&(0,L.jsxs)(`span`,{"aria-hidden":`true`,className:o(`flex shrink-0 items-center gap-1`,Mt,`text-[var(--content-tertiary)]`),children:[(0,L.jsx)(_,{className:`h-3.5 w-3.5`}),(0,L.jsx)(s,{as:`span`,variant:`label-small-default`,className:`whitespace-nowrap`,children:g})]}),n!==null&&(0,L.jsx)(s,{as:`span`,variant:`label-small-default`,className:`shrink-0 text-[var(--content-disabled)]`,children:be(n)}),(0,L.jsx)(q,{workspacePath:a,filename:t,assistantId:c,disabled:!u})]})}var It=`vellum://workspace/`;function Lt(e){let t=e.trim().split(`/`).pop()??``;try{return decodeURIComponent(t)}catch{return t}}function Rt(e){return e.split(`/`).map(e=>{try{return decodeURIComponent(e)}catch{return e}}).join(`/`)}function Y(e){let t=e.trim();if(t.startsWith(It)){let e=Rt(t.slice(19));return{workspacePath:ve(e)?e:null,filename:O(e)}}let n=K(t);return n.kind===`local-file`?{workspacePath:n.workspacePath,filename:n.filename}:{workspacePath:null,filename:Lt(t)}}var zt=`max-h-[400px] max-w-full rounded-lg border border-[var(--border-element)] object-contain`,Bt=[`pointer-events-none absolute right-2 top-2 rounded-md bg-[var(--surface-lift)] opacity-0 transition-opacity`,`group-hover/local-media:pointer-events-auto group-hover/local-media:opacity-100`,`group-focus-within/local-media:pointer-events-auto group-focus-within/local-media:opacity-100`,`[@media(pointer:coarse)]:pointer-events-auto [@media(pointer:coarse)]:opacity-100`].join(` `);function Vt(){return typeof document<`u`&&`pictureInPictureEnabled`in document&&document.pictureInPictureEnabled}function Ht({children:e,menu:t}){return(0,L.jsxs)(`span`,{className:`group/local-media relative my-2 inline-block max-w-full align-top`,children:[e,(0,L.jsx)(`span`,{className:Bt,children:t})]})}function Ut({href:e,alt:t,assistantId:n}){let r=(0,j.useMemo)(()=>Y(e),[e]),i=Te(r.workspacePath,n),[a,o]=(0,j.useState)(null),s=(0,j.useRef)(null),c=(0,j.useCallback)(async()=>{let e=s.current;if(e!==null){if(document.pictureInPictureElement===e){try{await document.exitPictureInPicture()}catch{}return}e.disablePictureInPicture=!1;try{await e.requestPictureInPicture()}catch{e.disablePictureInPicture=!0,T.error(`Picture in Picture isn't available`);return}e.addEventListener(`leavepictureinpicture`,()=>{e.disablePictureInPicture=!0},{once:!0})}},[]),l=i.status===`ready`?i:null,u=l?.filename??r.filename,d=l?.kind??V(u),f=l?.sizeBytes??null,p=l!==null&&(d===`image`||d===`video`||d===`audio`)&&!(f!==null&&f>104857600)&&a!==e,{url:m,isError:h}=we({workspacePath:r.workspacePath,mime:l?.mime??null,enabled:p,assistantId:n}),g=t.trim().length>0?t:u,_=g.length>0?g:u,v=(0,L.jsx)(q,{workspacePath:r.workspacePath,filename:u,assistantId:n}),y=(0,L.jsx)(se,{as:`span`,role:`status`,"aria-label":`Loading ${_}`,className:`my-2 inline-block h-7 w-40 rounded-lg align-middle`});if(n===void 0)return(0,L.jsx)(J,{displayName:g,filename:u,sizeBytes:null,kind:d,state:`ready`,workspacePath:r.workspacePath,assistantId:n});if(i.status===`loading`)return y;if(i.status===`unavailable`)return(0,L.jsx)(J,{displayName:g,filename:u,sizeBytes:null,kind:d,state:i.reason===`missing`?`missing`:`unavailable`,workspacePath:r.workspacePath,assistantId:n});let b=(0,L.jsx)(J,{displayName:g,filename:u,sizeBytes:f,kind:d,state:`ready`,workspacePath:r.workspacePath,assistantId:n});return!p||h?b:m===null?y:d===`image`?(0,L.jsx)(Ht,{menu:v,children:(0,L.jsx)(`img`,{src:m,alt:t,onError:()=>o(e),className:zt})}):d===`video`?(0,L.jsx)(Ht,{menu:(0,L.jsx)(q,{workspacePath:r.workspacePath,filename:u,assistantId:n,onPictureInPicture:Vt()?()=>void c():void 0}),children:(0,L.jsx)(`video`,{ref:s,src:m,controls:!0,controlsList:`nodownload noplaybackrate`,disablePictureInPicture:!0,playsInline:!0,preload:`metadata`,"aria-label":_,className:zt})}):d===`audio`?(0,L.jsxs)(`span`,{className:`my-2 flex w-full max-w-md items-center gap-2`,children:[(0,L.jsx)(`audio`,{src:m,controls:!0,controlsList:`nodownload noplaybackrate`,preload:`metadata`,"aria-label":_,className:`min-w-0 flex-1`}),v]}):b}function X({href:e,workspacePath:t,assistantId:n,children:r,onActivate:i}){let a=E.use.activeConversationId(),o=t===null?Lt(e):O(t);return(0,L.jsxs)(`a`,{href:e,onClick:e=>{if(e.preventDefault(),i){i();return}if(t===null){T.error(`This file isn't available here`);return}B(t,o,n,a)},className:`inline-flex items-baseline gap-1 cursor-pointer text-[var(--system-positive-strong)] underline hover:opacity-80`,children:[(0,L.jsx)(H,{kind:V(o),filename:o,className:`h-3.5 w-3.5 shrink-0 self-center`}),r]})}function Z(e){return e!=null&&(e.startsWith(`vellum://workspace/`)||e.startsWith(`vellum://host/`))}function Wt(e){return Z(e)?e:d(e)}function Gt({href:e,children:t}){let n=N(e),r=/^https?:\/\//i.test(e??``);return(0,L.jsxs)(`a`,{href:e,target:`_blank`,rel:n?void 0:`noopener noreferrer`,onClick:t=>{if(Ne(e)){t.preventDefault();return}ke(t,e)},className:`text-[var(--system-positive-strong)] underline hover:opacity-80`,children:[t,r?(0,L.jsx)(C,{"aria-hidden":!0,className:`ml-0.5 inline h-3.5 w-3.5 shrink-0 align-[-0.125em]`}):null]})}function Q(e){return typeof e==`string`?e:typeof e==`number`?String(e):Array.isArray(e)?e.map(Q).join(``):(0,j.isValidElement)(e)?Q(e.props.children):``}var Kt=`my-2 max-w-full max-h-[400px] rounded-lg border border-[var(--border-element)] object-contain`;function $({alt:e}){return(0,L.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 qt({src:e,alt:t}){let[n,r]=(0,j.useState)(!1);return n?(0,L.jsx)($,{alt:t}):(0,L.jsx)(`img`,{src:e,alt:t,onError:()=>r(!0),className:Kt})}function Jt(e){try{return decodeURIComponent(e)}catch{return e}}function Yt(e,t){let n=Jt(e.split(`/`).pop()??``),r=t?.find(e=>e.filename===n);if(!r)return;let i=r.mimeType;if(!(i===void 0||!i.startsWith(`image/`)))return r}function Xt({attachment:e,alt:n,assistantId:r,onOpenPreview:i}){let[a,o]=(0,j.useState)(null),[s,c]=(0,j.useState)(!1);if((0,j.useEffect)(()=>{if(!r||e.id.startsWith(`rehydrated:`))return;let n=!1;return(async()=>{try{let{data:t,error:i}=await le({path:{assistant_id:r,id:e.id},parseAs:`blob`,throwOnError:!1});if(n)return;if(i||!(t instanceof Blob)){c(!0);return}o(URL.createObjectURL(t))}catch(e){n||(c(!0),t(e,{context:`WorkspaceInlineImage`,bestEffort:!0}))}})(),()=>{n=!0,o(e=>(e&&URL.revokeObjectURL(e),null))}},[e,r]),s)return(0,L.jsx)($,{alt:n||e.filename});if(!a)return(0,L.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 l=(0,L.jsx)(`img`,{src:a,alt:n,className:Kt});return i?(0,L.jsx)(`button`,{type:`button`,onClick:()=>i(e),className:`cursor-zoom-in appearance-none border-0 bg-transparent p-0`,"aria-label":n?`Expand image: ${n}`:`Expand image`,children:l}):l}var Zt=(0,j.memo)(function({content:e,className:t,hardLineBreaks:n,onVellumLinkClick:r,attachments:i,assistantId:a,streamWordFade:o,redactedCredentialChips:s,workspacePathLinks:c}){let{openPreview:l,previewModal:d}=x(a,i),f=E.use.activeConversationId(),p=(0,j.useCallback)((e,t)=>{let{workspacePath:n,filename:i}=Y(e);if(a&&n!==null){B(n,i,a,f);return}r?.(e,t)},[a,f,r]),m=(0,j.useCallback)(({href:e,children:t})=>{if(e!=null&&Z(e)){let{workspacePath:n}=Y(e);return(0,L.jsx)(X,{href:e,workspacePath:n,assistantId:a??void 0,onActivate:r&&!(a&&n!==null)?()=>r(e,Q(t)):void 0,children:t})}let n=K(e);if(e!=null&&n.kind===`local-file`){let{workspacePath:i}=n;return(0,L.jsx)(X,{href:e,workspacePath:i,assistantId:a??void 0,onActivate:r&&i!==null&&!a?()=>r(ge(i),Q(t)):void 0,children:t})}return(0,L.jsx)(Gt,{href:e,children:t})},[r,a]),h=(0,j.useMemo)(()=>[...s?[lt]:[],...c&&r?[St]:[],...o?[[_t,{caughtUp:o===`caughtUp`}]]:[]],[s,o,c,r]),g=(0,j.useMemo)(()=>({src:e,alt:t})=>{let n=(0,L.jsx)(Ut,{href:e,alt:t,assistantId:a??void 0});if(Z(e)){let r=Yt(e,i);return r?(0,L.jsx)(Xt,{attachment:r,alt:t,assistantId:a,onOpenPreview:l}):n}return K(e).kind===`local-file`?n:e.length===0?(0,L.jsx)($,{alt:t}):(0,L.jsx)(qt,{src:e,alt:t})},[i,a,l]),_=(0,j.useMemo)(()=>({[G]:e=>(0,L.jsx)($e,{...e,assistantId:a},`${a??``}\u0000${e.service??``}\u0000${e.field??``}`),[k]:e=>(0,L.jsx)(Et,{...e,assistantId:a,onOpen:r?p:void 0})}),[a,r,p]);return(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(u,{content:e,className:t,hardLineBreaks:n,linkComponent:m,imageComponent:g,urlTransform:Wt,extraRehypePlugins:h,extraComponents:s||c&&r?_:void 0}),d]})});export{Ue as a,Pe as c,V as i,I as l,Ze as n,We as o,H as r,Ge as s,Zt as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./platform-detection-BIfuAgU8.js";import{t}from"./dist-D8V9YSOm.js";function n(){return e()===`macos`||t.isNativePlatform()?`native`:`web`}export{n as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{W as n,t as r}from"./button-DSjqKLvM.js";import{t as i}from"./jsx-runtime-D3ZM-ToX.js";import{t as a}from"./typography-BeUa5Fd-.js";import{L as o}from"./src-DjIqxQVd.js";import{t as s}from"./loader-circle-oY5laABh.js";import{t as c}from"./search-DbyaO8rG.js";import{t as l}from"./x-BY-Np61T.js";import{h as u}from"./platform-detection-BIfuAgU8.js";import{n as d}from"./use-is-mobile-BONxmNg6.js";import{n as f,t as p}from"./proxy-Do-Khsj0.js";import{t as m}from"./AnimatePresence-wQN1d2rQ.js";import{t as h}from"./use-reduced-motion-D2PbFfB8.js";var g=e(t(),1),_=e(n(),1),v=i();function y(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function b(e,t){let n=[...new Set(t??[])].filter(e=>e.length>0).sort((e,t)=>t.length-e.length);if(n.length===0)return e;let r=n.map(y).join(`|`),i=RegExp(`(?<![\\p{L}\\p{N}])(?:${r})(?![\\p{L}\\p{N}])`,`giu`),a=[],o=0;for(let t of e.matchAll(i))a.push(e.slice(o,t.index)),a.push((0,v.jsx)(`span`,{className:`font-medium text-[var(--content-default)]`,children:t[0]},t.index)),o=t.index+t[0].length;return a.length===0?e:(a.push(e.slice(o)),(0,v.jsx)(v.Fragment,{children:a}))}function x({icon:e,title:t,subtitle:n,snippet:r,highlightTokens:i,shortcutHint:a,isSelected:s,onClick:c,surface:l=`overlay`}){let u=e;return l===`window`?(0,v.jsxs)(`button`,{type:`button`,role:`option`,"aria-current":s?`page`:void 0,"aria-selected":s,onClick:c,className:[`flex w-full items-center gap-3 rounded-md px-3 text-left text-sm font-medium outline-none transition-colors`,r?`py-1.5`:`h-10`,s?`bg-[var(--surface-active)] text-[var(--content-default)]`:`text-[var(--content-secondary)] hover:bg-[var(--surface-overlay)] hover:text-[var(--content-default)]`].join(` `),children:[u?(0,v.jsx)(u,{size:16,"aria-hidden":!0,className:s?`shrink-0 text-[var(--content-default)]`:`shrink-0 text-[var(--content-tertiary)]`}):null,(0,v.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,v.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[(0,v.jsx)(`span`,{className:`truncate`,children:t}),n?(0,v.jsx)(`span`,{className:`min-w-0 truncate text-xs text-[var(--content-tertiary)]`,children:n}):null,a?(0,v.jsx)(`span`,{className:`ml-auto shrink-0 text-xs text-[var(--content-tertiary)]`,children:a}):null]}),r?(0,v.jsx)(`span`,{className:`truncate text-xs font-normal text-[var(--content-tertiary)]`,children:b(r,i)}):null]})]}):(0,v.jsx)(o,{icon:e,label:(0,v.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,v.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[(0,v.jsx)(`span`,{className:`truncate`,children:t}),n?(0,v.jsx)(`span`,{className:`min-w-0 truncate text-[var(--content-tertiary)] text-body-small-default`,children:n}):null,a?(0,v.jsx)(`span`,{className:`ml-auto shrink-0 text-[var(--content-tertiary)] text-body-small-default`,children:a}):null]}),r?(0,v.jsx)(`span`,{className:`truncate text-[var(--content-tertiary)] text-body-small-default`,children:b(r,i)}):null]}),active:s,onSelect:c,className:r?`h-auto px-3 py-2`:`px-3 py-2`})}var S=`fixed inset-0 z-50 flex flex-col bg-[var(--surface-lift)]`,C={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))`},w={...C,pointerEvents:`none`},T=({onKeyDown:e,children:t})=>{let n=f(),r=h(),i=(0,g.useRef)(null);return(0,g.useLayoutEffect)(()=>{if(n)return;let e=document.activeElement;e instanceof HTMLElement&&i.current?.contains(e)&&e.blur()},[n]),(0,v.jsx)(p.div,{ref:i,className:S,style:n?C:w,role:`dialog`,"aria-modal":n?!0:void 0,"aria-hidden":n?void 0:!0,"aria-label":`Search`,onKeyDown:e,initial:{y:`100%`,opacity:0},animate:{y:0,opacity:1},exit:{y:`100%`,opacity:0},transition:r?{duration:0}:{duration:.28,ease:[.16,1,.3,1]},children:t})},E=({isOpen:e,onClose:t,query:n,onQueryChange:i,highlightTokens:o,selectedIndex:f,sections:p,isSearching:h=!1,onItemSelect:y,onKeyDown:b,surface:w=`overlay`})=>{let E=d(),D=u(),O=(0,g.useRef)(null),k=(0,g.useRef)(null),A=(0,g.useRef)(null);(0,g.useEffect)(()=>{if(e){let e=requestAnimationFrame(()=>{k.current?.focus()});return()=>cancelAnimationFrame(e)}},[e]),(0,g.useEffect)(()=>{if(!e||!A.current)return;let t=A.current.querySelector(`[aria-current='page']`);t&&t.scrollIntoView({block:`nearest`})},[e,f]);let j=(0,g.useCallback)(e=>{e.target===O.current&&t()},[t]),M=w===`window`,N=E&&!M,P=D&&N;if(!e&&!P)return null;let F=0,I=(0,v.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 border-b border-[var(--border-base)] px-4 py-3`,children:[h?(0,v.jsx)(s,{size:16,"aria-hidden":!0,className:`shrink-0 animate-spin text-[var(--content-tertiary)]`}):(0,v.jsx)(c,{size:16,"aria-hidden":!0,className:`shrink-0 text-[var(--content-tertiary)]`}),(0,v.jsx)(`input`,{ref:k,type:`text`,value:n,onChange:e=>i(e.target.value),placeholder:`Search conversations, memories…`,className:M?`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?N?(0,v.jsx)(`button`,{type:`button`,className:`shrink-0 text-body-medium-lighter text-[var(--content-tertiary)]`,onClick:()=>i(``),"aria-label":`Clear search`,children:`Clear`}):M?(0,v.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,v.jsx)(l,{size:16,"aria-hidden":!0})}):(0,v.jsx)(r,{variant:`ghost`,size:`compact`,iconOnly:(0,v.jsx)(l,{}),"aria-label":`Clear search`,onClick:()=>i(``),tintColor:`var(--content-tertiary)`}):N?null:(0,v.jsx)(`kbd`,{className:M?`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`}),N?(0,v.jsx)(r,{variant:`ghost`,size:`compact`,iconOnly:(0,v.jsx)(l,{}),expandOnMobile:!1,"aria-label":`Close search`,onClick:t,tintColor:`var(--content-tertiary)`}):null]}),L=(0,v.jsx)(`div`,{ref:A,className:N?`flex-1 overflow-y-auto overscroll-contain p-2`:`max-h-[360px] overflow-y-auto overscroll-contain p-2`,role:`listbox`,children:p.length===0?(0,v.jsx)(`div`,{className:`px-3 py-6 text-center`,children:(0,v.jsx)(a,{variant:`body-medium-lighter`,className:`text-[var(--content-tertiary)]`,children:h?`Searching…`:`No results`})}):p.map(e=>(0,v.jsxs)(`div`,{role:`group`,"aria-label":e.label,children:[(0,v.jsx)(a,{variant:`label-small-default`,as:`div`,className:M?`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=F++;return(0,v.jsx)(x,{icon:e.icon,title:e.title,subtitle:e.subtitle,snippet:e.snippet,highlightTokens:o,shortcutHint:N?void 0:e.shortcutHint,isSelected:t===f,onClick:()=>y?.(e,t),surface:w},e.id)})]},e.id))});if(P)return(0,v.jsx)(m,{children:e?(0,v.jsxs)(T,{onKeyDown:b,children:[I,L]},`command-palette-sheet`):null});if(N)return(0,v.jsxs)(`div`,{className:S,role:`dialog`,"aria-modal":`true`,"aria-label":`Search`,onKeyDown:b,style:C,children:[I,L]});let R=(0,v.jsx)(`div`,{ref:O,role:`dialog`,"aria-modal":`true`,"aria-label":`Command palette`,className:w===`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:j,onKeyDown:b,children:(0,v.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:[I,L]})});return w===`window`?R:(0,_.createPortal)(R,document.body)};export{E as CommandPalette};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-DSjqKLvM.js";import{d as r,h as i,n as a}from"./chunk-5KNZJZUH-BUqIilZr.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-BeUa5Fd-.js";import{t as d}from"./card-q0GJX1HZ.js";import{L as f}from"./src-DjIqxQVd.js";import{t as p}from"./createLucideIcon-C_IfoPaZ.js";import{t as m}from"./arrow-left-xVF3p2Qp.js";import{t as h}from"./arrow-right-BWL8Hl6K.js";import{D as g,E as _,O as v,a as y,c as b,h as x,p as S,u as C}from"./use-save-twilio-credentials-COzAERtv.js";import{t as w}from"./circle-check-big-BRKMTxhd.js";import{t as T}from"./ellipsis-vertical-CAYfw0qB.js";import{t as E}from"./link-2-CA1w44Gq.js";import{t as D}from"./loader-circle-oY5laABh.js";import{t as O}from"./mail-B0iH8Wii.js";import{t as k}from"./message-square-UW8LcsnU.js";import{t as A}from"./pencil-kTdx15WT.js";import{t as j}from"./plus-CwK68LCA.js";import{t as M}from"./search-DbyaO8rG.js";import{t as N}from"./send-CpbQGYQ9.js";import{t as ee}from"./user-plus-Vg2Aibhi.js";import{t as P}from"./tag-D0oiSRye.js";import{t as F}from"./modal-Bt1DPFgW.js";import{t as I}from"./input-BG94bPcH.js";import{n as te}from"./toast-BrKo5b4d.js";import{t as L}from"./confirm-dialog-DNaRfy4W.js";import{o as R}from"./i18n-zb2mgr1B.js";import{t as z}from"./Trans-Ch_EPHgV.js";import{t as B}from"./useTranslation-Dn8TOHE6.js";import{t as ne}from"./assistant-identity-store-DTP7xfNP.js";import{C as re}from"./sdk.gen-Br55zhZN.js";import{d as ie}from"./routes-C293MsBG.js";import{$t as ae,C as oe,Qt as se,T as V,s as ce,w as le}from"./react-query.gen-vkBavCkI.js";import{r as H}from"./conversation-navigation-Bw3eQBGU.js";import{t as ue}from"./assistant-feature-flag-store-j3wC3wtf.js";import{t as U}from"./use-active-assistant-id-Cgt1z2rZ.js";import{t as W}from"./detail-card-CC0br9gQ.js";import{n as de,t as fe}from"./mobile-sidebar-drawer-CA_YsRi_.js";import{c as G,i as pe,n as me,r as he,t as ge}from"./use-invite-link-dialog-DgDcqWMz.js";import{a as _e,i as ve,n as ye,t as be}from"./contacts-gateway-D0hHW9dI.js";var xe=p(`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`}]]),Se=p(`git-merge`,[[`circle`,{cx:`18`,cy:`18`,r:`3`,key:`1xkwt0`}],[`circle`,{cx:`6`,cy:`6`,r:`3`,key:`1lh9wr`}],[`path`,{d:`M6 21V9a9 9 0 0 0 9 9`,key:`7kw0sc`}]]),K=e(t(),1),Ce=new Set([`slack`]);function we(e){return e.status===`verified`||e.status===`active`&&e.verifiedAt!=null}function q(e){switch(e){case`slack`:return`channelType.slack`;case`telegram`:return`channelType.telegram`;case`whatsapp`:return`channelType.whatsapp`;case`a2a`:return`channelType.a2a`;case`phone`:return`channelType.phone`;case`email`:return`channelType.email`;default:return null}}function J(e){let t=q(e.toLowerCase());return t?R(t,{ns:`contacts`}):e}var Te=`New Contact`;function Ee(e){return e===Te}var Y=l();function X({channels:e,pendingChannelKey:t=null,onConnect:n,onDisconnect:r}){let{t:i}=B(`contacts`),[a,o]=(0,K.useState)(null);return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`div`,{className:`flex flex-col`,children:e.map((e,i)=>(0,Y.jsxs)(`div`,{children:[i>0?(0,Y.jsx)(`div`,{className:`border-t`,style:{borderColor:`var(--border-base)`}}):null,(0,Y.jsx)(Z,{channel:e,pending:t===e.key,onConnect:n?()=>n(e.key):void 0,onDisconnect:r?()=>o(e.key):void 0})]},e.key))}),(0,Y.jsx)(L,{open:a!==null,title:i(`assistantContactChannels.disconnectConfirmTitle`,{channel:a?S(a):``}),message:i(`assistantContactChannels.disconnectConfirmMessage`),confirmLabel:i(`actions.disconnect`),destructive:!0,onConfirm:()=>{a&&r&&r(a),o(null)},onCancel:()=>o(null)})]})}function Z({channel:e,pending:t,onConnect:r,onDisconnect:i}){let{t:a}=B(`contacts`),o=e.status===`ready`;return(0,Y.jsxs)(`div`,{className:`flex items-center gap-3 py-4`,children:[(0,Y.jsx)(C,{channelId:e.key,className:`h-4 w-4 shrink-0 text-[color:var(--content-secondary)]`}),(0,Y.jsx)(`span`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:S(e.key)}),o&&e.address?(0,Y.jsx)(`span`,{className:`truncate text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:e.address}):null,(0,Y.jsx)(`div`,{className:`ml-auto flex shrink-0 items-center gap-2`,children:o?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`span`,{className:`inline-flex items-center gap-1 h-8 px-2.5 rounded-md whitespace-nowrap select-none text-body-small-emphasised leading-none bg-[var(--content-default)] text-[var(--surface-base)]`,children:[(0,Y.jsx)(w,{className:`h-3 w-3`}),a(`channelStatus.connected`)]}),(0,Y.jsx)(n,{variant:`danger`,onClick:i,disabled:!i||t,children:a(t?`actions.disconnecting`:`actions.disconnect`)})]}):(0,Y.jsx)(n,{variant:`outlined`,onClick:r,disabled:!r||t,children:a(`actions.connect`)})})]})}function Q({role:e,contactType:t}){let{label:n,tone:r}=De(e,t);return(0,Y.jsx)(P,{tone:r,children:n})}function De(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 Oe({assistantName:e,...t}){let{t:n}=B(`contacts`),r=x(e);return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,Y.jsx)(W,{title:n(`assistantChannelsDetail.title`,{name:r}),accessory:(0,Y.jsx)(Q,{role:`assistant`}),compactAccessory:!0}),(0,Y.jsx)(W,{title:n(`assistantChannelsDetail.channelsTitle`),subtitle:n(`assistantChannelsDetail.channelsSubtitle`,{name:r}),children:(0,Y.jsx)(X,{...t})})]})}var ke=new Set([`telegram`,`phone`,`vellum`,`whatsapp`,`slack`,`email`,`platform`,`a2a`]);function $(e){return ke.has(e)}function Ae(e,t){return e.id===`a2a`?t&&t.status!==`revoked`?{kind:`connected`}:{kind:`setup`}:t!=null&&we(t)?{kind:`verified`}:t?.status===`blocked`?{kind:`none`}:t&&t.status!==`revoked`?{kind:`unverified`}:{kind:`setup`}}function je(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||$(e.type)&&(r.push({id:e.type,source:`default`,label:e.type.charAt(0).toUpperCase()+e.type.slice(1),subtitle:``,icon:`help-circle`,supportsVerification:!1,setupMessages:{guardian:``,contact:``}}),i.add(e.type));return r}function Me({name:e,className:t,style:n}){switch(e){case`bot`:return(0,Y.jsx)(v,{className:t,style:n});case`hash`:return(0,Y.jsx)(g,{className:t,style:n});case`send`:return(0,Y.jsx)(N,{className:t,style:n});case`phone`:return(0,Y.jsx)(_,{className:t,style:n});case`mail`:return(0,Y.jsx)(O,{className:t,style:n});case`message-square`:return(0,Y.jsx)(k,{className:t,style:n});default:return(0,Y.jsx)(xe,{className:t,style:n})}}function Ne({contactChannels:e,availableChannels:t,a2aEnabled:n,setupLabel:r,verifyLoading:i,verifySubject:a=`self`,onSetupChannel:o,onVerifyChannel:s,onRevokeChannel:c,onLinkAccount:l}){let{t:u}=B(`contacts`),[d,f]=(0,K.useState)(null),[p,m]=(0,K.useState)(null),h=new Map;for(let t of e)t.status!==`revoked`&&(h.has(t.type)||h.set(t.type,t));return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`div`,{className:`flex flex-col`,children:je(t,e,n).map((e,t)=>{let n=h.get(e.id);return(0,Y.jsxs)(`div`,{children:[t>0&&(0,Y.jsx)(`div`,{className:`border-t`,style:{borderColor:`var(--border-base)`}}),(0,Y.jsx)(Pe,{info:e,existing:n,setupLabel:r??u(`contactChannelsSection.setupDefault`),verifyLoading:i,onSetup:o?()=>o(e.id):void 0,onVerify:s&&e.supportsVerification?()=>f(e):void 0,onRevoke:c&&n?()=>m({channelId:n.id,channel:e}):void 0,onLinkAccount:l&&Ce.has(e.id)?()=>l(e.id):void 0})]},e.id)})}),d&&(0,Y.jsx)(L,{open:!0,title:u(`contactChannelsSection.verifyConfirmTitle`,{channel:d.label}),message:u(a===`contact`?`contactChannelsSection.verifyConfirmMessageContact`:`contactChannelsSection.verifyConfirmMessageGuardian`,{channel:d.label}),confirmLabel:u(`actions.verify`),onConfirm:()=>{d&&(s?.(d.id),f(null))},onCancel:()=>f(null)}),p&&(0,Y.jsx)(L,{open:!0,title:u(`contactChannelsSection.revokeConfirmTitle`,{channel:p.channel.label}),message:u(`contactChannelsSection.revokeConfirmMessage`),confirmLabel:u(`actions.revoke`),destructive:!0,onConfirm:()=>{c?.(p.channelId,p.channel.id),m(null)},onCancel:()=>m(null)})]})}function Pe({info:e,existing:t,setupLabel:r,verifyLoading:i,onSetup:a,onVerify:o,onRevoke:s,onLinkAccount:c}){let{t:l}=B(`contacts`),u=Ae(e,t);return(0,Y.jsxs)(`div`,{className:`flex items-center gap-3 py-4`,children:[(0,Y.jsx)(Me,{name:e.icon,className:`h-4 w-4 shrink-0`,style:{color:`var(--content-secondary)`}}),(0,Y.jsx)(`span`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:e.label}),t?.address?(0,Y.jsx)(`span`,{className:`truncate text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:t.address}):null,(0,Y.jsx)(`div`,{className:`ml-auto flex shrink-0 items-center gap-2`,children:u.kind===`connected`?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`span`,{className:`inline-flex items-center gap-1 h-8 px-2.5 rounded-md whitespace-nowrap select-none text-body-small-emphasised leading-none bg-[var(--content-default)] text-[var(--surface-base)]`,children:[(0,Y.jsx)(w,{className:`h-3 w-3`}),l(`channelStatus.connected`)]}),s?(0,Y.jsx)(n,{variant:`danger`,onClick:s,children:l(`actions.revoke`)}):null]}):u.kind===`verified`?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`span`,{className:`inline-flex items-center gap-1 h-8 px-2.5 rounded-md whitespace-nowrap select-none text-body-small-emphasised leading-none bg-[var(--content-default)] text-[var(--surface-base)]`,children:[(0,Y.jsx)(w,{className:`h-3 w-3`}),l(`channelStatus.verified`)]}),s?(0,Y.jsx)(n,{variant:`danger`,onClick:s,children:l(`actions.revoke`)}):null]}):u.kind===`unverified`?(0,Y.jsx)(n,{variant:`outlined`,onClick:o,disabled:!o||i,children:l(i?`actions.verifying`:`actions.verify`)}):u.kind===`setup`?e.id===`a2a`?null:(0,Y.jsxs)(Y.Fragment,{children:[c?(0,Y.jsxs)(n,{onClick:c,children:[(0,Y.jsx)(E,{className:`h-3.5 w-3.5`}),l(`contactChannelsSection.linkAccount`)]}):null,(0,Y.jsx)(n,{variant:`outlined`,onClick:a,disabled:!a,children:r})]}):null})]})}function Fe(e){return(0,Y.jsx)(Ie,{...e},e.contact.id)}function Ie({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{t:g}=B(`contacts`),_=Ee(e.displayName),[v,y]=(0,K.useState)(_?``:e.displayName),[b,x]=(0,K.useState)(e.notes??``),[S,C]=(0,K.useState)(!1),w=v.trim(),T=b.trim(),E=_?``:e.displayName,D=e.notes??``,O=w!==E||T!==D,k=w.length>0&&O&&!t&&!r,A=_&&e.channels.length===0&&e.interactionCount===0,j=w||(_?g(`contact.draftName`):e.displayName),M=g(`contact.interactions`,{count:e.interactionCount});return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,Y.jsx)(W,{title:j,accessory:(0,Y.jsx)(Q,{role:e.role,contactType:e.contactType}),compactAccessory:!0,subtitle:M,children:(0,Y.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,Y.jsx)(I,{label:g(`contact.nameLabel`),type:`text`,value:v,onChange:e=>y(e.target.value),placeholder:g(`contactDetailView.namePlaceholder`),autoFocus:_,disabled:t||r,fullWidth:!0}),(0,Y.jsx)(I,{label:g(`contact.notesLabel`),type:`text`,value:b,onChange:e=>x(e.target.value),placeholder:g(`contactDetailView.notesPlaceholder`),disabled:t||r,fullWidth:!0}),(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,Y.jsx)(n,{type:`button`,onClick:()=>l({displayName:w,notes:T}),disabled:!k,children:g(t?`actions.saving`:`actions.save`)}),d?(0,Y.jsx)(n,{type:`button`,variant:`outlined`,onClick:d,disabled:!o||A||O||a||t||r,title:o?A?g(`contactDetailView.mergeBlockedUnsavedDraft`):O?g(`contact.mergeBlockedUnsaved`):void 0:g(`contact.mergeBlockedNoCandidates`),children:g(a?`actions.merging`:`actions.merge`)}):null,(0,Y.jsx)(n,{type:`button`,variant:`danger`,onClick:()=>{A?u():C(!0)},disabled:r,children:g(r?`actions.deleting`:`contactDetailView.delete`)})]})]})}),(0,Y.jsx)(W,{title:g(`contactDetailView.linkedAccountsTitle`),subtitle:g(`contactDetailView.linkedAccountsSubtitle`),children:(0,Y.jsx)(Ne,{contactChannels:e.channels,availableChannels:s,a2aEnabled:c,verifyLoading:i,verifySubject:`contact`,onSetupChannel:f,onVerifyChannel:p,onRevokeChannel:m,onLinkAccount:h})}),(0,Y.jsx)(L,{open:S,title:g(`contactDetailView.deleteConfirmTitle`,{name:j}),message:g(`contactDetailView.deleteConfirmMessage`),confirmLabel:g(`actions.delete`),destructive:!0,onConfirm:()=>{C(!1),u()},onCancel:()=>C(!1)})]})}function Le(e){return(0,Y.jsx)(Re,{...e},`${e.survivor.id}:${e.open?`open`:`closed`}`)}function Re({open:e,survivor:t,candidates:r,pending:i,errorMessage:a,onMerge:o,onClose:s}){let{t:c}=B(`contacts`),[l,d]=(0,K.useState)(``),[f,p]=(0,K.useState)(null);(0,K.useEffect)(()=>{f&&!r.some(e=>e.id===f)&&p(null)},[r,f]);let h=(0,K.useMemo)(()=>{let e=l.trim().toLowerCase();return e?r.filter(t=>t.displayName.toLowerCase().includes(e)):r},[r,l]),g=f?r.find(e=>e.id===f)??null:null,_=Ue(t);return(0,Y.jsx)(F.Root,{open:e,onOpenChange:e=>{!e&&!i&&s()},children:(0,Y.jsxs)(F.Content,{size:`md`,children:[(0,Y.jsxs)(F.Header,{icon:Se,children:[(0,Y.jsx)(F.Title,{children:g?c(`contactMergeDialog.titlePicked`,{donor:g.displayName,survivor:_}):c(`contactMergeDialog.titlePicking`,{survivor:_})}),(0,Y.jsx)(F.Description,{children:c(g?`contactMergeDialog.descriptionPicked`:`contactMergeDialog.descriptionPicking`)})]}),(0,Y.jsxs)(F.Body,{className:`flex flex-col gap-3`,children:[g?(0,Y.jsx)(Ve,{survivor:t,donor:g}):r.length===0?(0,Y.jsx)(He,{}):(0,Y.jsx)(ze,{search:l,onSearch:d,candidates:h,onPick:p}),a?(0,Y.jsx)(u,{as:`p`,variant:`body-small-default`,className:`text-(--system-negative-strong)`,role:`alert`,children:a}):null]}),(0,Y.jsx)(F.Footer,{children:g?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(n,{variant:`outlined`,onClick:()=>p(null),disabled:i,leftIcon:(0,Y.jsx)(m,{"aria-hidden":!0}),children:c(`actions.back`)}),(0,Y.jsx)(n,{variant:`danger`,onClick:()=>o(g.id),disabled:i,children:c(i?`actions.merging`:`contactMergeDialog.confirm`)})]}):(0,Y.jsx)(n,{variant:`outlined`,onClick:s,disabled:i,children:c(`actions.cancel`)})})]})})}function ze({search:e,onSearch:t,candidates:n,onPick:r}){let{t:i}=B(`contacts`);return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(I,{type:`text`,value:e,onChange:e=>t(e.target.value),placeholder:i(`contactMergeDialog.searchPlaceholder`),leftIcon:(0,Y.jsx)(M,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),fullWidth:!0}),(0,Y.jsx)(`div`,{className:`flex max-h-[320px] min-h-[120px] flex-col gap-1 overflow-y-auto`,role:`listbox`,"aria-label":i(`contactMergeDialog.listAriaLabel`),children:n.length===0?(0,Y.jsx)(u,{as:`p`,variant:`body-small-default`,className:`px-3 py-4 text-center text-(--content-tertiary)`,children:i(`contactsList.noMatches`)}):n.map(e=>(0,Y.jsx)(Be,{contact:e,onPick:()=>r(e.id)},e.id))})]})}function Be({contact:e,onPick:t}){let n=Ge(e).join(` | `)||void 0;return(0,Y.jsx)(f,{asChild:!0,children:(0,Y.jsx)(`button`,{type:`button`,onClick:t,role:`option`,"aria-selected":`false`,className:`flex h-auto w-full items-center gap-2 rounded-[6px] px-[8px] py-2 text-left`,children:(0,Y.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,Y.jsx)(`span`,{className:`truncate text-body-medium-default`,children:e.displayName}),n?(0,Y.jsx)(`span`,{className:`truncate text-body-small-default text-(--content-tertiary)`,children:n}):null]})})})}function Ve({survivor:e,donor:t}){let{t:n}=B(`contacts`),r=Ue(e),{moved:i,duplicates:a}=We(e,t);return(0,Y.jsxs)(`ul`,{className:`flex flex-col gap-2 text-body-medium-lighter text-(--content-secondary)`,children:[(0,Y.jsx)(`li`,{children:(0,Y.jsx)(z,{i18nKey:`contactMergeDialog.donorDeleted`,ns:`contacts`,values:{donor:t.displayName},components:{donor:(0,Y.jsx)(`span`,{className:`text-(--content-default)`})}})}),(0,Y.jsx)(`li`,{children:n(`contactMergeDialog.channelsMoved`,{count:i.length,survivor:r,channels:i.map(e=>J(e.type)).join(`, `)})}),a.length>0?(0,Y.jsx)(`li`,{className:`text-(--content-tertiary)`,children:n(`contactMergeDialog.duplicatesSkipped`,{count:a.length,survivor:r})}):null,t.notes?(0,Y.jsx)(`li`,{children:n(`contactMergeDialog.notesAppended`)}):null,(0,Y.jsx)(`li`,{className:`text-(--content-tertiary)`,children:n(`contactMergeDialog.irreversible`)})]})}function He(){let{t:e}=B(`contacts`);return(0,Y.jsx)(u,{as:`p`,variant:`body-medium-lighter`,className:`px-3 py-6 text-center text-(--content-tertiary)`,children:e(`contactMergeDialog.empty`)})}function Ue(e){return e.role===`guardian`?!e.displayName||e.displayName.startsWith(`vellum-principal-`)?R(`survivorName.you`,{ns:`contacts`}):R(`survivorName.youNamed`,{ns:`contacts`,name:e.displayName}):e.displayName||R(`survivorName.thisContact`,{ns:`contacts`})}function We(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 Ge(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(J(e)))}return n}function Ke({loading:e,guardian:t,assistantName:r,regularContacts:i,selection:a,onSelect:o,onAddContact:s,addingContact:c=!1}){let{t:l}=B(`contacts`),[u,f]=(0,K.useState)(``),p=u.trim()?i.filter(e=>e.displayName.toLowerCase().includes(u.trim().toLowerCase())):i;return(0,Y.jsx)(d.Root,{className:`flex h-full flex-col overflow-hidden`,children:(0,Y.jsxs)(d.Body,{className:`flex min-h-0 min-w-0 flex-1 flex-col gap-4`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Y.jsx)(`h2`,{className:`text-title-medium`,style:{color:`var(--content-default)`},children:l(`contactsList.heading`)}),(0,Y.jsx)(n,{type:`button`,variant:`ghost`,iconOnly:c?(0,Y.jsx)(D,{className:`animate-spin`,"aria-hidden":!0}):(0,Y.jsx)(j,{"aria-hidden":!0}),onClick:s,disabled:c,"aria-label":l(`contactsList.addAriaLabel`),tintColor:`var(--content-secondary)`})]}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[t?(0,Y.jsx)(qe,{name:t.displayName?l(`contactsList.youNamed`,{name:t.displayName}):l(`contactsList.you`),role:t.role,channelTypes:t.channelTypes,selected:a?.kind===`contact`&&a.contactId===t.id,onClick:()=>o({kind:`contact`,contactId:t.id}),trailingIcon:`pencil`}):null,(0,Y.jsx)(qe,{name:r?.trim()||l(`contactsList.assistantFallback`),role:`assistant`,selected:a?.kind===`assistant`,onClick:()=>o({kind:`assistant`}),trailingIcon:`more`})]}),(0,Y.jsx)(`div`,{className:`border-t`,style:{borderColor:`var(--border-base)`}}),i.length>0?(0,Y.jsx)(I,{type:`text`,value:u,onChange:e=>f(e.target.value),placeholder:l(`contactsList.searchPlaceholder`),leftIcon:(0,Y.jsx)(M,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),fullWidth:!0}):null,i.length>0?(0,Y.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto flex flex-col gap-1`,children:[p.map(e=>(0,Y.jsx)(qe,{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)),p.length===0?(0,Y.jsx)(`p`,{className:`px-3 py-4 text-center text-body-small-default`,style:{color:`var(--content-tertiary)`},children:l(`contactsList.noMatches`)}):null]}):e?null:(0,Y.jsx)(n,{type:`button`,variant:`ghost`,onClick:s,disabled:c,tintColor:`var(--primary-base)`,leftIcon:c?(0,Y.jsx)(D,{className:`animate-spin`,"aria-hidden":!0}):(0,Y.jsx)(ee,{"aria-hidden":!0}),children:l(`contactsList.add`)})]})})}function qe({name:e,role:t,contactType:n,channelTypes:r,selected:i,onClick:a,trailingIcon:o,verified:s}){let{t:c}=B(`contacts`),l=r&&r.length>0?r.join(` | `):void 0,u=o===`pencil`?(0,Y.jsx)(A,{className:`h-3.5 w-3.5 text-[color:var(--content-tertiary)]`,"aria-hidden":!0}):o===`more`?(0,Y.jsx)(T,{className:`h-3.5 w-3.5 text-[color:var(--content-tertiary)]`,"aria-hidden":!0}):void 0;return(0,Y.jsx)(f,{asChild:!0,active:i,children:(0,Y.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,Y.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,Y.jsx)(`span`,{className:`truncate text-body-medium-default`,children:e}),l?(0,Y.jsx)(`span`,{className:`truncate text-body-small-default`,style:{color:`var(--content-tertiary)`},children:l}):null]}),(0,Y.jsxs)(`span`,{className:`flex shrink-0 items-center gap-1`,children:[s===void 0?null:(0,Y.jsx)(P,{tone:s?`positive`:`neutral`,children:c(s?`contactsList.verified`:`contactsList.unverified`)}),(0,Y.jsx)(Q,{role:t,contactType:n}),u]})]})})}function Je(e){return(0,Y.jsx)(Ye,{...e},e.contact.id)}function Ye({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{t:m}=B(`contacts`),h=e.displayName.startsWith(`vellum-principal-`),g=h?``:e.displayName,[_,v]=(0,K.useState)(g),[y,b]=(0,K.useState)(e.notes??``),x=_.trim(),S=y.trim(),C=x!==g.trim()||S!==(e.notes??``).trim(),w=C&&!t,T=m(`contact.interactions`,{count:e.interactionCount});return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,Y.jsx)(W,{title:h?m(`contactsList.you`):m(`contactsList.youNamed`,{name:e.displayName}),accessory:(0,Y.jsx)(Q,{role:`guardian`}),compactAccessory:!0,subtitle:T,children:(0,Y.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,Y.jsx)(I,{label:m(`contact.nameLabel`),type:`text`,value:_,onChange:e=>v(e.target.value),placeholder:m(`guardianDetailView.namePlaceholder`),disabled:t,fullWidth:!0}),(0,Y.jsx)(I,{label:m(`contact.notesLabel`),type:`text`,value:y,onChange:e=>b(e.target.value),placeholder:m(`guardianDetailView.notesPlaceholder`),disabled:t,fullWidth:!0}),(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,Y.jsx)(n,{variant:`primary`,onClick:()=>c({displayName:x||e.displayName,notes:S}),disabled:!w,children:m(t?`actions.saving`:`actions.save`)}),l?(0,Y.jsx)(n,{variant:`outlined`,onClick:l,disabled:!a||C||i||t,title:a?C?m(`contact.mergeBlockedUnsaved`):void 0:m(`contact.mergeBlockedNoCandidates`),children:m(i?`actions.merging`:`actions.merge`)}):null]})]})}),(0,Y.jsx)(W,{title:m(`guardianDetailView.channelsTitle`),subtitle:m(`guardianDetailView.channelsSubtitle`),children:(0,Y.jsx)(Ne,{contactChannels:e.channels,availableChannels:o,a2aEnabled:s,setupLabel:m(`guardianDetailView.setupLabel`),verifyLoading:r,onSetupChannel:u,onVerifyChannel:d,onRevokeChannel:f})}),p?(0,Y.jsx)(he,{onClick:p}):null]})}function Xe(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 Ze(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{t:d}=B(`contacts`),[f,p]=(0,K.useState)(``);(0,K.useEffect)(()=>{e&&p(``)},[e]);let m=(0,K.useMemo)(()=>Xe(i??[],f),[i,f]),g=s!=null;return(0,Y.jsx)(F.Root,{open:e,onOpenChange:e=>!e&&l(),children:(0,Y.jsxs)(F.Content,{size:`sm`,children:[(0,Y.jsxs)(F.Header,{children:[(0,Y.jsx)(F.Title,{children:d(`linkAccountDialog.title`,{channel:t})}),(0,Y.jsx)(F.Description,{children:(0,Y.jsx)(z,{i18nKey:`linkAccountDialog.description`,ns:`contacts`,values:{channel:t,name:r},components:{contact:(0,Y.jsx)(`span`,{className:`text-[color:var(--content-default)]`})}})})]}),(0,Y.jsxs)(F.Body,{className:`flex flex-col gap-3`,children:[(0,Y.jsx)(I,{type:`search`,value:f,onChange:e=>p(e.target.value),placeholder:d(`linkAccountDialog.searchPlaceholder`),"aria-label":d(`linkAccountDialog.searchAriaLabel`,{channel:t}),leftIcon:(0,Y.jsx)(M,{className:`h-4 w-4`}),fullWidth:!0}),o?(0,Y.jsx)(`p`,{className:`text-body-small-default text-[color:var(--content-negative)]`,children:o}):null,(0,Y.jsx)(`div`,{className:`max-h-80 overflow-y-auto`,children:a?(0,Y.jsx)(`p`,{className:`py-4 text-center text-body-small-default text-[color:var(--content-tertiary)]`,children:d(`linkAccountDialog.loading`)}):m.length===0?(0,Y.jsx)(`p`,{className:`py-4 text-center text-body-small-default text-[color:var(--content-tertiary)]`,children:(i?.length??0)===0?d(`linkAccountDialog.noMembers`):d(`linkAccountDialog.noMatches`)}):(0,Y.jsx)(`ul`,{className:`flex flex-col`,children:m.map(e=>(0,Y.jsx)(`li`,{children:(0,Y.jsxs)(`button`,{type:`button`,onClick:()=>c(e),disabled:g,className:`flex w-full cursor-pointer items-center gap-3 rounded-md px-2 py-2 text-left transition-colors hover:bg-[var(--surface-overlay)] disabled:cursor-not-allowed disabled:opacity-60`,children:[e.imageUrl?(0,Y.jsx)(`img`,{src:e.imageUrl,alt:``,className:`h-8 w-8 shrink-0 rounded-full`}):(0,Y.jsx)(`span`,{"aria-hidden":`true`,className:`flex h-8 w-8 shrink-0 items-center justify-center rounded-full bg-[var(--tag-bg-neutral)] text-body-small-emphasised text-[color:var(--content-secondary)]`,children:Ze(e.displayName)}),(0,Y.jsxs)(`span`,{className:`flex min-w-0 flex-col`,children:[(0,Y.jsx)(`span`,{className:`truncate text-body-medium-default text-[color:var(--content-default)]`,children:e.displayName}),(0,Y.jsxs)(`span`,{className:`truncate text-body-small-default text-[color:var(--content-tertiary)]`,children:[`@`,e.username]})]}),s===e.id?(0,Y.jsx)(`span`,{className:`ml-auto shrink-0 text-body-small-default text-[color:var(--content-tertiary)]`,children:d(`linkAccountDialog.linking`)}):null]})},e.id))})})]}),(0,Y.jsxs)(F.Footer,{className:`items-center justify-between gap-3 border-t border-[var(--border-base)]`,children:[(0,Y.jsx)(`p`,{className:`text-body-small-default text-[color:var(--content-tertiary)]`,children:(0,Y.jsx)(z,{i18nKey:`linkAccountDialog.guardianLinkNote`,ns:`contacts`,components:{emphasis:(0,Y.jsx)(`span`,{className:`text-[color:var(--content-secondary)]`})}})}),u?(0,Y.jsxs)(n,{variant:`link`,className:`shrink-0`,onClick:u,disabled:g,children:[d(`linkAccountDialog.inviteInstead`),(0,Y.jsx)(h,{className:`h-3.5 w-3.5`})]}):null]})]})})}function $e({assistantId:e,channelType:t,contact:n,onLinked:r}){let[i,a]=(0,K.useState)(!1),o=c({mutationFn:n=>ye(e,n.contact,{type:t,address:n.account.id}),onSuccess:(e,t)=>{a(!1),te.success(R(`accountLink.linked`,{ns:`contacts`,username:t.account.username})),r()}}),s=(0,K.useCallback)(()=>{o.reset(),a(!0)},[o]),l=(0,K.useCallback)(()=>{o.isPending||(o.reset(),a(!1))},[o]),u=(0,K.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?R(`accountLink.linkFailed`,{ns:`contacts`}):null,pendingAccountId:o.isPending?o.variables.account.id:null,pick:u}}var et=[{id:`slack`,source:`default`,label:`Slack`,subtitle:`Message your assistant from Slack`,icon:`hash`,supportsVerification:!0,setupMessages:{guardian:`I'd like to verify my identity as your guardian on Slack. Can you help me set that up?`,contact:`I'd like to verify a contact's Slack identity. Can you walk me through it?`}},{id:`telegram`,source:`default`,label:`Telegram`,subtitle:`Message your assistant from Telegram`,icon:`send`,supportsVerification:!0,setupMessages:{guardian:`I'd like to verify my identity as your guardian on Telegram. Can you help me set that up?`,contact:`I'd like to verify a contact's Telegram identity. Can you walk me through it?`}},{id:`phone`,source:`default`,label:`Phone Calling`,subtitle:`Call or text your assistant via phone`,icon:`phone`,supportsVerification:!0,setupMessages:{guardian:`I'd like to verify my identity as your guardian for phone calls. Can you help me set that up?`,contact:`I'd like to verify a contact's phone number. Can you help me set that up?`}}],tt=[];function nt({assistantId:e,onStartSetupConversation:t}){let{t:n}=B(`contacts`),r=ue.use.a2aChannel(),l=ne.use.name(),u=o(),[d]=i(),f=d.get(`setup`),p=f&&b(f)?f:null,[m,h]=(0,K.useState)({kind:`assistant`}),g=ge(e),[_,v]=(0,K.useState)(!1),[S,C]=(0,K.useState)(!1),w=x(l),T=(0,K.useMemo)(()=>({path:{assistant_id:e}}),[e]),E=le(T),D=s({...oe(T),enabled:!!e,select:e=>e.contacts}),O=me({assistantId:e,onStartSetupConversation:t}),k=s({...ce({path:{assistant_id:e}}),enabled:!!e,queryFn:async({signal:t})=>{let{data:n,error:r,response:i}=await re({path:{assistant_id:e},signal:t,throwOnError:!1});if(!i||i.status===404)return{channels:et};if(!i.ok)throw r??Error(`Failed to fetch channel availability`);return n},select:e=>e.channels}).data??tt,A=D.data,j=(0,K.useMemo)(()=>A?.find(e=>e.role===`guardian`)??null,[A]),M=(0,K.useMemo)(()=>A?.filter(e=>e.role!==`guardian`)??[],[A]),N=(0,K.useMemo)(()=>m.kind===`contact`?A?.find(e=>e.id===m.contactId)??null:null,[A,m]),ee=(0,K.useMemo)(()=>!A||!N?[]:A.filter(e=>e.id!==N.id&&e.role!==`guardian`),[A,N]),P=ee.length>0,F=(0,K.useRef)(!!p);(0,K.useEffect)(()=>{F.current||j&&(F.current=!0,h({kind:`contact`,contactId:j.id}))},[j]);let I=(0,K.useCallback)(()=>u.invalidateQueries({queryKey:E}),[u,E]),L=c({mutationFn:()=>ve(e,{displayName:Te}),onMutate:async()=>{await u.cancelQueries({queryKey:E})},onSuccess:e=>{V(u,T,t=>t?{...t,contacts:[...t.contacts,e]}:void 0),h({kind:`contact`,contactId:e.id})},onError:G(n(`contactsPage.createFailed`)),onSettled:()=>I()}),R=c({mutationFn:t=>be(e,t),onSuccess:(e,t)=>{V(u,T,e=>e?{...e,contacts:e.contacts.filter(e=>e.id!==t)}:void 0),h({kind:`assistant`})},onError:G(n(`contactsPage.deleteFailed`)),onSettled:()=>I()}),z=c({mutationFn:({contactId:t,patch:n})=>ve(e,{id:t,displayName:n.displayName,notes:n.notes}),onSuccess:e=>{V(u,T,t=>t?{...t,contacts:t.contacts.map(t=>t.id===e.id?e:t)}:void 0)},onError:G(n(`contactsPage.saveFailed`)),onSettled:()=>I()}),H=ae({onMutate:async()=>{await u.cancelQueries({queryKey:E})},onSuccess:(e,t)=>{let r=e.contact,i=t.body.mergeId;r&&(V(u,T,e=>e?{...e,contacts:e.contacts.filter(e=>e.id!==i).map(e=>e.id===r.id?r:e)}:void 0),h({kind:`contact`,contactId:r.id})),C(!1),te.success(n(`contactsPage.mergeSucceeded`))},onSettled:()=>I()}),U=(0,K.useCallback)(e=>{h(e),v(!1),C(!1),H.reset()},[H]),W=(0,K.useCallback)(()=>{H.reset(),C(!0)},[H]),he=(0,K.useCallback)(()=>{H.isPending||(C(!1),H.reset())},[H]),ye=se({onSuccess:()=>I()}),xe=(0,K.useCallback)((t,n)=>{ye.mutate({path:{assistant_id:e,contactChannelId:t},body:{status:`revoked`}})},[ye,e]),Se=(0,K.useCallback)(()=>{L.isPending||L.mutate()},[L]),Ce=(0,K.useCallback)(e=>{if(!t)return;let n=k.find(t=>t.id===e)?.setupMessages.contact;n&&t(n)},[k,t]),we=(0,K.useCallback)(e=>{if(!t)return;let n=k.find(t=>t.id===e)?.setupMessages.guardian;n&&t(n)},[k,t]),q=c({mutationFn:t=>_e(e,t.channelId),onSuccess:()=>I(),onError:G(n(`contactsPage.verifyFailed`))}),Ee=(0,K.useCallback)(e=>{if(!N)return;let t=N.channels.find(t=>t.type===e&&t.status!==`revoked`);t&&q.mutate({channelId:t.id})},[N,q]),X=$e({assistantId:e,channelType:`slack`,contact:N?{id:N.id,displayName:N.displayName}:null,onLinked:I}),Z=s({...y(e),enabled:!!e&&X.dialogOpen,select:e=>e.users}),Q=O.channels.some(e=>e.key===`slack`&&e.status===`ready`),De=(0,K.useCallback)(e=>{e===X.channelType&&X.open()},[X]),ke=R.isPending?R.variables:null,$=(0,K.useMemo)(()=>N?z.isPending&&z.variables?.contactId===N.id?{...N,displayName:z.variables.patch.displayName,notes:z.variables.patch.notes}:N:null,[N,z.isPending,z.variables]);if(p)return(0,Y.jsx)(a,{to:`${ie.channels}?setup=${p}`,replace:!0});let Ae={loading:D.isLoading,assistantName:w,guardian:j?{id:j.id,displayName:j.displayName.startsWith(`vellum-principal-`)?``:j.displayName,role:j.role,channelTypes:at(j.channels,r)}:null,regularContacts:M.filter(e=>e.id!==ke).map(e=>({id:e.id,displayName:e.displayName,role:e.role,contactType:e.contactType,channelTypes:at(e.channels,r),verified:it(e.channels)})),selection:m,onAddContact:Se,addingContact:L.isPending};return(0,Y.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-4 overflow-hidden sm:flex-row sm:gap-6`,children:[(0,Y.jsx)(`div`,{className:`flex items-center sm:hidden`,children:(0,Y.jsx)(de,{onClick:()=>v(!0)})}),(0,Y.jsx)(fe,{open:_,onClose:()=>v(!1),title:n(`contactsPage.title`),children:(0,Y.jsx)(Ke,{...Ae,onSelect:U})}),(0,Y.jsx)(`aside`,{className:`hidden min-h-0 w-[320px] shrink-0 overflow-y-auto self-stretch sm:block`,children:(0,Y.jsx)(Ke,{...Ae,onSelect:U})}),(0,Y.jsx)(`section`,{className:`min-h-0 min-w-0 flex-1 overflow-y-auto`,children:m.kind===`assistant`||m.kind===`contact`&&m.contactId===ke?(0,Y.jsx)(Oe,{assistantName:w,channels:O.channels,pendingChannelKey:O.pendingChannelKey,onConnect:O.onSetup,onDisconnect:O.onDisconnect}):$?$.role===`guardian`?(0,Y.jsx)(Je,{contact:$,savePending:z.isPending,verifyPending:q.isPending,mergePending:H.isPending,canMerge:P,availableChannels:k,a2aEnabled:r,onSave:e=>{z.mutate({contactId:$.id,patch:e})},onMerge:W,onSetupChannel:t?we:void 0,onVerifyChannel:Ee,onRevokeChannel:xe,onGenerateInviteLink:r?g.open:void 0}):(0,Y.jsx)(Fe,{contact:$,savePending:z.isPending,deletePending:R.isPending,verifyPending:q.isPending,mergePending:H.isPending,canMerge:P,availableChannels:k,a2aEnabled:r,onSave:e=>{z.mutate({contactId:$.id,patch:e})},onDelete:()=>{R.mutate($.id)},onMerge:W,onSetupChannel:t?Ce:void 0,onVerifyChannel:Ee,onRevokeChannel:xe,onLinkAccount:Q?De:void 0}):(0,Y.jsx)(rt,{})}),N?(0,Y.jsx)(Le,{open:S,survivor:N,candidates:ee,pending:H.isPending,errorMessage:H.error instanceof Error?H.error.message:H.error?n(`contactsPage.mergeFailed`):null,onMerge:t=>H.mutate({path:{assistant_id:e},body:{keepId:N.id,mergeId:t}}),onClose:he}):null,(0,Y.jsx)(Qe,{open:X.dialogOpen,channelLabel:J(`slack`),contactName:N?.displayName??``,accounts:Z.data,loading:Z.isLoading,errorMessage:Z.isError?n(`contactsPage.rosterLoadFailed`):X.linkErrorMessage,pendingAccountId:X.pendingAccountId,onPick:X.pick,onClose:X.close,onInviteInstead:t?()=>{X.close(),Ce(X.channelType)}:void 0}),(0,Y.jsx)(pe,{open:g.isOpen,assistantId:e,onClose:g.close})]})}function rt(){let{t:e}=B(`contacts`);return(0,Y.jsx)(`div`,{className:`flex h-full items-center justify-center py-16`,children:(0,Y.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:e(`contactsPage.emptyBody`)})})}function it(e){return e.some(e=>e.status!==`revoked`&&(e.type===`a2a`||we(e)))}function at(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(J(e)))}return r}function ot(){let e=r(),t=U();return(0,Y.jsx)(nt,{assistantId:t,onStartSetupConversation:t=>{H(e,{prompt:t})}},t)}export{ot as ContactsPageRoute};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{r as t}from"./capture-error-Cdvvw9J5.js";import{t as n}from"./react-BFJW0bSv.js";import{t as r}from"./button-DSjqKLvM.js";import{n as i}from"./QueryClientProvider-CMu7CkQU.js";import{t as a}from"./useQuery-Bz-fbQ-m.js";import{t as o}from"./jsx-runtime-D3ZM-ToX.js";import{t as s}from"./card-q0GJX1HZ.js";import{$ as c,J as l,L as u,V as d,W as f}from"./src-DjIqxQVd.js";import{t as p}from"./check-CNBoUiyR.js";import{t as m}from"./chevron-down-B_6pb9kS.js";import{t as h}from"./eye-off-DFGH3cWw.js";import{t as g}from"./eye-DO1vbwRG.js";import{t as _}from"./key-round-BeLlbSFj.js";import{t as v}from"./link-2-CA1w44Gq.js";import{t as y}from"./loader-circle-oY5laABh.js";import{t as b}from"./plus-CwK68LCA.js";import{t as x}from"./search-DbyaO8rG.js";import{t as S}from"./trash-2-DL_3_16e.js";import{t as C}from"./tag-D0oiSRye.js";import{t as w}from"./modal-Bt1DPFgW.js";import{t as T}from"./input-BG94bPcH.js";import{n as E}from"./toast-BrKo5b4d.js";import{t as D}from"./confirm-dialog-DNaRfy4W.js";import{t as O}from"./assistant-identity-store-DTP7xfNP.js";import{$r as k,ft as ee,pt as A}from"./sdk.gen-Br55zhZN.js";import{r as j}from"./use-is-org-ready-CWNhmJ2b.js";import{en as M}from"./react-query.gen-vkBavCkI.js";import{t as N}from"./assistant-feature-flag-store-j3wC3wtf.js";import{t as P}from"./use-touch-mobile-JVxY9M-0.js";import{t as F}from"./copy-to-clipboard-SOu7HUET.js";import{t as I}from"./use-active-assistant-id-Cgt1z2rZ.js";import{n as L,t as R}from"./add-credential-modal-CAorWf5a.js";import{t as z}from"./not-found-CRrNNxgD.js";import{t as B}from"./detail-card-CC0br9gQ.js";import{t as V}from"./use-supports-credentials-settings-BBUFotal.js";var H=e(n(),1),U=o(),W=1500;function G(e){if(!e)return``;try{return new Date(e).toLocaleDateString(void 0,{year:`numeric`,month:`short`,day:`numeric`})}catch{return``}}function te({credential:e,assistantId:t,generatingLink:n,deleting:r,onGenerateLink:i,onDelete:a}){let o=`${e.service}:${e.field}`,[c,l]=(0,H.useState)(!1),u=[e.alias?o:null,e.createdAt?`added ${G(e.createdAt)}`:null].filter(e=>!!e);return(0,U.jsx)(s.Root,{children:(0,U.jsxs)(s.Body,{padding:`sm`,className:`flex items-center gap-4 px-4`,children:[(0,U.jsx)(_,{className:`h-5 w-5 shrink-0 text-[var(--content-secondary)]`,"aria-hidden":!0}),(0,U.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,U.jsx)(`p`,{className:`truncate text-title-small text-[var(--content-default)]`,children:e.alias||o}),(0,U.jsx)(`div`,{className:`mt-0.5 flex min-w-0 items-center`,children:(0,U.jsx)(K,{assistantId:t,credential:e})}),u.length>0&&(0,U.jsx)(`p`,{className:`mt-0.5 truncate font-mono text-body-medium-lighter text-[var(--content-tertiary)]`,children:u.join(` · `)})]}),(0,U.jsx)(`div`,{className:`shrink-0`,children:(0,U.jsx)(q,{name:o,open:c,onOpenChange:l,generatingLink:n,deleting:r,onGenerateLink:()=>{l(!1),i()},onDelete:()=>{l(!1),a()}})})]})})}function K({assistantId:e,credential:t}){let[n,r]=(0,H.useState)(null),[i,a]=(0,H.useState)(!1),[o,s]=(0,H.useState)(!1),l=(0,H.useRef)(null),u=(0,H.useRef)(0),d=`${t.service}:${t.field}`,f=(0,H.useCallback)(()=>{u.current++,r(null),a(!1),s(!1),l.current&&=(clearTimeout(l.current),null)},[]);(0,H.useEffect)(()=>{f()},[t.updatedAt,f]);let m=(0,H.useCallback)(async()=>{let n=++u.current;a(!0);try{let{data:i}=await A({path:{assistant_id:e},body:{service:t.service,field:t.field},throwOnError:!0});u.current===n&&r(i.value)}catch{u.current===n&&E.error(`Couldn't reveal ${d}.`)}finally{u.current===n&&a(!1)}},[e,t.service,t.field,d]),_=(0,H.useCallback)(()=>{n!=null&&F(n,{errorMessage:`Couldn't copy. Reveal and copy manually.`,onCopied:()=>{s(!0),l.current&&clearTimeout(l.current),l.current=setTimeout(()=>s(!1),W)}})},[n]),v=n!==null;return t.hasSecret?(0,U.jsxs)(`span`,{className:`inline-flex min-w-0 items-center gap-1.5 align-middle font-mono text-body-medium-lighter`,children:[(0,U.jsx)(`button`,{type:`button`,onClick:()=>v?f():void m(),disabled:i,"aria-label":v?`Hide value for ${d}`:`Reveal value for ${d}`,title:v?`Hide value`:`Click to reveal`,"data-private":!0,className:`min-w-0 truncate rounded-sm text-left transition-[filter,color] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[var(--border-focus)] ${v?`text-[var(--content-secondary)]`:`select-none text-[var(--content-tertiary)] blur-[3px] hover:blur-[2px]`}`,children:v?n:t.scrubbedValue}),i?(0,U.jsx)(y,{className:`h-3.5 w-3.5 shrink-0 animate-spin`,"aria-hidden":!0}):v?(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`button`,{type:`button`,onClick:_,"aria-label":`Copy value for ${d}`,title:`Copy value`,className:`shrink-0 rounded-sm p-0.5 text-[var(--content-tertiary)] transition-colors hover:text-[var(--content-secondary)] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[var(--border-focus)]`,children:o?(0,U.jsx)(p,{className:`h-3.5 w-3.5`,"aria-hidden":!0}):(0,U.jsx)(c,{className:`h-3.5 w-3.5`,"aria-hidden":!0})}),(0,U.jsx)(`button`,{type:`button`,onClick:f,"aria-label":`Hide value for ${d}`,title:`Hide value`,className:`shrink-0 rounded-sm p-0.5 text-[var(--content-tertiary)] transition-colors hover:text-[var(--content-secondary)] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[var(--border-focus)]`,children:(0,U.jsx)(h,{className:`h-3.5 w-3.5`,"aria-hidden":!0})})]}):(0,U.jsx)(`button`,{type:`button`,onClick:()=>void m(),"aria-label":`Reveal value for ${d}`,title:`Click to reveal`,className:`shrink-0 rounded-sm p-0.5 text-[var(--content-tertiary)] transition-colors hover:text-[var(--content-secondary)] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[var(--border-focus)]`,children:(0,U.jsx)(g,{className:`h-3.5 w-3.5`,"aria-hidden":!0})})]}):(0,U.jsx)(`span`,{className:`min-w-0 truncate font-mono text-body-medium-lighter text-[var(--content-tertiary)]`,children:t.scrubbedValue})}function q({name:e,open:t,onOpenChange:n,generatingLink:i,deleting:a,onGenerateLink:o,onDelete:s}){let c=P(),f=i||a,p=(0,U.jsx)(r,{variant:`outlined`,rightIcon:(0,U.jsx)(m,{}),"aria-haspopup":`menu`,"aria-expanded":t,"aria-label":`Configure ${e}`,leftIcon:f?(0,U.jsx)(y,{className:`animate-spin`,"aria-hidden":!0}):void 0,children:`Configure`});return c?(0,U.jsxs)(d.Root,{open:t,onOpenChange:n,children:[(0,U.jsx)(d.Trigger,{asChild:!0,children:p}),(0,U.jsxs)(d.Content,{children:[(0,U.jsx)(d.Header,{children:(0,U.jsx)(d.Title,{children:e})}),(0,U.jsxs)(d.Body,{children:[(0,U.jsx)(u,{icon:i?y:v,label:`Generate link`,onSelect:()=>{f||o()}}),(0,U.jsx)(u,{icon:a?y:S,label:`Delete`,onSelect:()=>{f||s()}})]})]})]}):(0,U.jsxs)(l.Root,{open:t,onOpenChange:n,children:[(0,U.jsx)(l.Trigger,{asChild:!0,children:p}),(0,U.jsxs)(l.Content,{align:`end`,sideOffset:4,role:`menu`,className:`w-56 overflow-hidden p-0`,children:[(0,U.jsx)(r,{type:`button`,role:`menuitem`,variant:`ghost`,onClick:o,disabled:f,className:`w-full justify-start rounded-none`,leftIcon:i?(0,U.jsx)(y,{className:`animate-spin`,"aria-hidden":!0}):(0,U.jsx)(v,{"aria-hidden":!0}),children:`Generate link`}),(0,U.jsx)(r,{type:`button`,role:`menuitem`,variant:`dangerGhost`,onClick:s,disabled:f,className:`w-full justify-start rounded-none`,leftIcon:a?(0,U.jsx)(y,{className:`animate-spin`,"aria-hidden":!0}):(0,U.jsx)(S,{"aria-hidden":!0}),children:`Delete`})]})]})}function ne(e){return e>0xe8d4a51000?e:e*1e3}async function re(e,t){let{data:n,response:r}=await k.post({url:`/v1/assistants/{assistant_id}/credential-requests`,path:{assistant_id:e},body:t});if(!r?.ok)throw Error(`Failed to create credential request: ${r?.status}`);return n}var J=6;function Y(){let e=I(),t=V(e),n=O.use.assistantId();return O.use.version()!==null&&n===e&&!t?(0,U.jsx)(z,{}):t?(0,U.jsx)(X,{}):null}function X(){let e=I(),n=i(),o=j(),l=L(e),u=a({queryKey:l,queryFn:async()=>{let{data:t}=await ee({path:{assistant_id:e},body:{},throwOnError:!0});return{credentials:t.credentials,managedCredentials:t.managedCredentials}},enabled:o,retry:t}),d=(0,H.useMemo)(()=>u.data?.credentials??[],[u.data]),p=N.use.settingsDeveloperNav(),m=(0,H.useMemo)(()=>p?u.data?.managedCredentials??[]:[],[p,u.data]),h=M({onError:e=>{E.error(e.message||`Failed to delete credential`)}}),[g,S]=(0,H.useState)(!1),[O,k]=(0,H.useState)(`own`),[A,P]=(0,H.useState)(``),[z,V]=(0,H.useState)(null),[W,G]=(0,H.useState)(null),[K,q]=(0,H.useState)(null),Y=h.isPending?`${h.variables?.body?.service}:${h.variables?.body?.field}`:null,X=(0,H.useMemo)(()=>{let e=A.trim().toLowerCase();return e?d.filter(t=>[t.service,t.field,`${t.service}:${t.field}`,t.alias??``].join(` `).toLowerCase().includes(e)):d},[d,A]);(0,H.useEffect)(()=>{d.length<=J&&P(``)},[d.length]),(0,H.useEffect)(()=>{d.length===0&&m.length>0&&k(`managed`)},[d.length,m.length]);let ie=()=>{let t=z;V(null),t&&h.mutate({path:{assistant_id:e},body:{service:t.service,field:t.field}},{onSuccess:()=>{n.invalidateQueries({queryKey:l}),E.success(`Deleted ${t.service}:${t.field}.`)}})},ae=async t=>{let n=`${t.service}:${t.field}`;q(n);try{let r=await re(e,{service:t.service,field:t.field,label:t.alias??void 0});r.ok&&r.url?G({name:n,url:r.url,expiresAt:r.expiresAt??null}):E.error(r.error||`Failed to generate a one-time link`)}catch(e){E.error(e instanceof Error?e.message:`Failed to generate a one-time link`)}finally{q(null)}},oe=()=>{let e=W?.url;e&&F(e,{successMessage:`Link copied to clipboard.`,errorMessage:`Couldn't copy the link. Select it and copy manually.`})};if(u.isLoading)return(0,U.jsx)(`div`,{className:`flex items-center justify-center py-10`,children:(0,U.jsx)(y,{className:`h-5 w-5 animate-spin text-[var(--content-disabled)]`})});let Z=d.length>0,Q=m.length>0,se=d.length>J,$=O===`managed`&&Q;return(0,U.jsxs)(`div`,{className:`space-y-4`,children:[(0,U.jsx)(B,{title:`Credentials`,subtitle:$?`Provided through your Vellum-managed integrations. These are read-only here.`:`Stored encrypted in your assistant's credential vault. Reveal a value on demand, or replace or delete it at any time.`,accessory:(0,U.jsxs)(`div`,{className:`flex items-center gap-2`,children:[Q?(0,U.jsx)(f,{items:[{value:`own`,label:`Your own`},{value:`managed`,label:`Managed`}],value:O,onChange:k,ariaLabel:`Credential source`}):null,!$&&Z?(0,U.jsx)(r,{type:`button`,variant:`primary`,size:`regular`,onClick:()=>S(!0),leftIcon:(0,U.jsx)(b,{"aria-hidden":!0}),children:`Add`}):null]}),children:$?(0,U.jsx)(`div`,{className:`space-y-2`,children:m.map(e=>(0,U.jsx)(s.Root,{children:(0,U.jsxs)(s.Body,{padding:`sm`,className:`flex items-center gap-4 px-4`,children:[(0,U.jsx)(_,{className:`h-5 w-5 shrink-0 text-[var(--content-secondary)]`,"aria-hidden":!0}),(0,U.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,U.jsx)(`p`,{className:`truncate text-title-small text-[var(--content-default)]`,children:e.provider}),(0,U.jsxs)(`p`,{className:`truncate text-body-medium-lighter text-[var(--content-tertiary)]`,children:[e.accountInfo??e.handle,` · `,e.status]})]}),(0,U.jsx)(C,{tone:`neutral`,children:`Managed`})]})},e.handle))}):(0,U.jsxs)(`div`,{className:`space-y-4`,children:[Z?(0,U.jsxs)(`div`,{className:`space-y-3`,children:[se?(0,U.jsx)(T,{type:`text`,value:A,onChange:e=>P(e.target.value),placeholder:`Search credentials`,"aria-label":`Search credentials`,leftIcon:(0,U.jsx)(x,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),fullWidth:!0}):null,X.length===0?(0,U.jsxs)(`p`,{className:`px-1 py-2 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[`No credentials matched “`,A.trim(),`”.`]}):(0,U.jsx)(`div`,{className:`space-y-2`,children:X.map(t=>{let n=`${t.service}:${t.field}`;return(0,U.jsx)(te,{credential:t,assistantId:e,generatingLink:K===n,deleting:Y===n,onGenerateLink:()=>void ae(t),onDelete:()=>V(t)},t.credentialId??n)})})]}):(0,U.jsxs)(`div`,{className:`flex flex-col items-center justify-center px-6 py-12 text-center`,children:[(0,U.jsx)(`div`,{className:`flex h-12 w-12 items-center justify-center rounded-full bg-[var(--surface-base)]`,children:(0,U.jsx)(_,{className:`h-6 w-6 text-[var(--content-disabled)] dark:text-[var(--content-default)]`,"aria-hidden":!0})}),(0,U.jsx)(`h3`,{className:`mt-4 text-title-small text-[var(--content-default)]`,children:`No credentials yet`}),(0,U.jsx)(`p`,{className:`mt-1 text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Add an API key or token to let tools and integrations use it.`})]}),Z?null:(0,U.jsx)(r,{type:`button`,variant:`outlined`,size:`compact`,onClick:()=>S(!0),className:`w-full border-dashed`,leftIcon:(0,U.jsx)(b,{"aria-hidden":!0}),children:`Add Credential`})]})}),(0,U.jsx)(D,{open:z!==null,title:`Delete credential`,message:z?`Delete ${z.service}:${z.field}? Tools and integrations using it will lose access.`:``,confirmLabel:`Delete`,destructive:!0,onConfirm:ie,onCancel:()=>V(null)}),(0,U.jsx)(R,{open:g,onClose:()=>S(!1)}),(0,U.jsx)(w.Root,{open:W!==null,onOpenChange:e=>{e||G(null)},children:(0,U.jsxs)(w.Content,{size:`sm`,children:[(0,U.jsxs)(w.Header,{icon:v,children:[(0,U.jsx)(w.Title,{children:`One-time credential link`}),(0,U.jsx)(w.Description,{children:W?`Send this link to whoever should provide ${W.name}. It works exactly once${W.expiresAt===null?``:` and expires ${new Date(ne(W.expiresAt)).toLocaleString()}`}. Anyone with the link can set this credential, so share it over a trusted channel.`:``})]}),(0,U.jsx)(w.Body,{children:(0,U.jsx)(T,{label:`Link`,type:`text`,readOnly:!0,value:W?.url??``,onFocus:e=>e.currentTarget.select(),fullWidth:!0})}),(0,U.jsx)(w.Footer,{children:(0,U.jsx)(r,{type:`button`,size:`compact`,onClick:oe,leftIcon:(0,U.jsx)(c,{"aria-hidden":!0}),children:`Copy link`})})]})})]})}export{Y as CredentialsPage};
|