@vellumai/web 0.10.7 → 0.10.8-dev.202607102228.5945895
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{AnimatePresence-Oxz4BTMX.js → AnimatePresence-s1Z1HHWx.js} +1 -1
- package/dist/assets/{BundleConfirmPage-CASo0dJB.js → BundleConfirmPage-C6bP7QB3.js} +1 -1
- package/dist/assets/{Combination-BG46kjfK.js → Combination-Cd_aWAsj.js} +1 -1
- package/dist/assets/{a2a-invite-CQMqpPDZ.js → a2a-invite-B9cylfIO.js} +1 -1
- package/dist/assets/{about-page-m20KWWnD.js → about-page-XGv9RAQu.js} +1 -1
- package/dist/assets/{account-page-s8JvT8Ly.js → account-page-BIf1VgXI.js} +1 -1
- package/dist/assets/{account-shell-BSwEFNTM.js → account-shell-DtCF7xdZ.js} +1 -1
- package/dist/assets/{acp-run-detail-panel-7SM2s3JT.js → acp-run-detail-panel-B4hgMVrG.js} +4 -4
- package/dist/assets/activity-steps-panel-C1yQ2L2r.js +1 -0
- package/dist/assets/{add-credits-modal-wQTjoJNa.js → add-credits-modal-B2NNTrN3.js} +1 -1
- package/dist/assets/{advanced-page-Ct7QbjS_.js → advanced-page-BwGOw8_x.js} +1 -1
- package/dist/assets/ai-page-BrigF9S7.js +1 -0
- package/dist/assets/animated-avatar-Cqpzb8O4.js +1 -0
- package/dist/assets/api-DHuLwcqq.js +1 -0
- package/dist/assets/{api-DXLi4DU7.js → api-Y8JHO-Hz.js} +1 -1
- package/dist/assets/{api-key-screen-DCT4UgG9.js → api-key-screen-g8n_qvMv.js} +1 -1
- package/dist/assets/{app-info-BNPvryVV.js → app-info-Clwt3pCt.js} +1 -1
- package/dist/assets/{archive-page-Ct96gKer.js → archive-page-BsrdafLF.js} +1 -1
- package/dist/assets/{assistant-feature-flag-store-BRGydSRn.js → assistant-feature-flag-store-DRERrNOn.js} +1 -1
- package/dist/assets/assistant-identity-store-CX03CK8q.js +1 -0
- package/dist/assets/{assistant-status-panel-boGM54mS.js → assistant-status-panel-zU13Q_Xu.js} +1 -1
- package/dist/assets/auth-store-CRgW9dVz.js +2 -0
- package/dist/assets/avatar-bundled-components--1Wyhs4r.js +1 -0
- package/dist/assets/background-task-detail-panel-zgQoO82i.js +1 -0
- package/dist/assets/billing-page-DEl2nu5I.js +3 -0
- package/dist/assets/bookmarks-page-C32OmhV9.js +1 -0
- package/dist/assets/browser-BcxhPHJY.js +2 -0
- package/dist/assets/browser-timezone-2SnmKDjM.js +1 -0
- package/dist/assets/build-state-BMsdXtAG.js +1 -0
- package/dist/assets/button-amTXFI-2.js +1 -0
- package/dist/assets/{capture-error-CmeVLfq0.js → capture-error-Dhiismgm.js} +1 -1
- package/dist/assets/channels-page-route-DCJaRu9K.js +9 -0
- package/dist/assets/chat-markdown-message-a1td8Ual.js +2 -0
- package/dist/assets/{checkbox-Dy4hoNDa.js → checkbox-EdyezNqo.js} +1 -1
- package/dist/assets/{client-feature-flag-store-C0Tjm-Hl.js → client-feature-flag-store-Dwtv7Vxd.js} +1 -1
- package/dist/assets/{client-identity-jhypHe7Y.js → client-identity-Dt1fkB-d.js} +1 -1
- package/dist/assets/clipboard-copy-DF6K1xc6.js +1 -0
- package/dist/assets/command-palette-DuCamEfT.js +1 -0
- package/dist/assets/{command-palette-window-page-DBnL5TIj.js → command-palette-window-page-DTbWLtIo.js} +1 -1
- package/dist/assets/community-page-CLGoMvV2.js +1 -0
- package/dist/assets/{confirm-dialog-DW84Cxfq.js → confirm-dialog-CSkhRFRk.js} +1 -1
- package/dist/assets/{connect-page-By7gD4Gi.js → connect-page-B0gbTndx.js} +1 -1
- package/dist/assets/{consent-controls-J9UujLtO.js → consent-controls-Cnr1DzCr.js} +1 -1
- package/dist/assets/contacts-gateway-CW5CipBv.js +1 -0
- package/dist/assets/contacts-page-route-C0ELB5tV.js +1 -0
- package/dist/assets/{conversation-list-fetchers-ogeilsCp.js → conversation-list-fetchers-DS9vmqfD.js} +1 -1
- package/dist/assets/{conversation-store-COUX81g-.js → conversation-store-BljZWolF.js} +1 -1
- package/dist/assets/credential-entry-page-DUQnPan9.js +1 -0
- package/dist/assets/credentials-page-Bmbk_m7r.js +1 -0
- package/dist/assets/{danger-zone-redirect-page-RdZGvrN7.js → danger-zone-redirect-page-BWg7rn8D.js} +1 -1
- package/dist/assets/debug-page-DEIR36y-.js +4 -0
- package/dist/assets/definitions-DScTW2c-.js +1 -0
- package/dist/assets/{deploy-dialogs-C5LDby59.js → deploy-dialogs-hO4uNCg-.js} +1 -1
- package/dist/assets/{detail-card-CnahmiAd.js → detail-card-BAbE5QFz.js} +1 -1
- package/dist/assets/{detail-panel-stop-button-BGbnqhbl.js → detail-panel-stop-button-DuIg1ANM.js} +1 -1
- package/dist/assets/{developer-page-Bgo4T1LR.js → developer-page-l4Uyz0TA.js} +1 -1
- package/dist/assets/devices-page-BPUVvxip.js +1 -0
- package/dist/assets/{diagnostics-BUlVBxem.js → diagnostics-DANnV3Z3.js} +1 -1
- package/dist/assets/{dictation-overlay-page-DVlL606t.js → dictation-overlay-page-DQtALeh1.js} +1 -1
- package/dist/assets/{dist-DSnPnoEz.js → dist-BItmZQO6.js} +1 -1
- package/dist/assets/{dist-CAIL9R6N.js → dist-CxHeCOEv.js} +1 -1
- package/dist/assets/{dist-DcPLFkll.js → dist-DqmYHxdg.js} +1 -1
- package/dist/assets/{dist-CXAvuqD6.js → dist-HJ505Xnn.js} +1 -1
- package/dist/assets/document-viewer-page-BH8lwUNW.js +1 -0
- package/dist/assets/domains-D3QF404Q.js +1 -0
- package/dist/assets/download-CAuK-nZ6.js +1 -0
- package/dist/assets/{dropdown-BsftIzw-.js → dropdown-ByHOpeOU.js} +1 -1
- package/dist/assets/{earn-credits-modal-5kY_ZmHS.js → earn-credits-modal-CCscmJRu.js} +1 -1
- package/dist/assets/edge-swipe-arbiter-store-BeOhrE7M.js +1 -0
- package/dist/assets/effective-timezone-Kj8F3iMS.js +1 -0
- package/dist/assets/{emails-page-BSlc4IyH.js → emails-page-BrbbtgEY.js} +1 -1
- package/dist/assets/{environment-store-B29S7tiK.js → environment-store-C0f32873.js} +1 -1
- package/dist/assets/esm-B54gzHCZ.js +1 -0
- package/dist/assets/esm-Bzs_witt.js +2 -0
- package/dist/assets/esm-C5J59K0j.js +2 -0
- package/dist/assets/{esm-DnCc4uNb.js → esm-CT8NUp3h.js} +2 -2
- package/dist/assets/esm-DEu9JbAE.js +2 -0
- package/dist/assets/esm-DZkj1VLJ.js +2 -0
- package/dist/assets/esm-DtJz1M8R.js +2 -0
- package/dist/assets/feature-flag-catalog-DA0vSGLe.js +1 -0
- package/dist/assets/file-DsyJLS2u.js +1 -0
- package/dist/assets/file-editor-sT7eHxsw.js +1 -0
- package/dist/assets/file-markdown-ZKvQUuGy.js +2 -0
- package/dist/assets/general-page-DpoputcO.js +1 -0
- package/dist/assets/haptics-Dgv6PU7K.js +2 -0
- package/dist/assets/hatching-screen-BEIywvij.js +1 -0
- package/dist/assets/home-page-route-DuTK1_El.js +1 -0
- package/dist/assets/{hosting-screen-BQCZiStC.js → hosting-screen-C9JhiTE2.js} +1 -1
- package/dist/assets/identity-page-route-zAL_IXBX.js +1 -0
- package/dist/assets/index-Cd6Xm6j5.js +151 -0
- package/dist/assets/index-DdJ6GEnl.css +2 -0
- package/dist/assets/{input-DR1eB4a1.js → input-CoUmPnRU.js} +1 -1
- package/dist/assets/{inspect-page-CKGEq0sL.js → inspect-page-BBObEk29.js} +6 -6
- package/dist/assets/integrations-page-BHMuUW9o.js +1 -0
- package/dist/assets/intelligence-layout-B89S015i.js +1 -0
- package/dist/assets/{log-out-CCanFuT_.js → key-round-CD3JWrs1.js} +1 -1
- package/dist/assets/{keyboard-shortcuts-page-CONirTbD.js → keyboard-shortcuts-page-DGwzOEcj.js} +1 -1
- package/dist/assets/library-detail-page-DqM_wmB4.js +1 -0
- package/dist/assets/library-page-CrgVsD84.js +1 -0
- package/dist/assets/{list-row-YOzkXNjq.js → list-row-D5MFdbkH.js} +1 -1
- package/dist/assets/{local-mode-YoUYEn7C.js → local-mode-Bskd5bsT.js} +2 -2
- package/dist/assets/{login-flow-CFhW2AHB.js → login-flow-BbLSXmEe.js} +1 -1
- package/dist/assets/login-page-GfRvCQ29.js +1 -0
- package/dist/assets/logout-page-Dg1wgnDr.js +1 -0
- package/dist/assets/logs-layout-CXAlJ7LX.js +1 -0
- package/dist/assets/{memory-router-playground-page-CP8awc0-.js → memory-router-playground-page-dtviLwvO.js} +1 -1
- package/dist/assets/{menu-Bjq0lFxx.js → menu-Dy5QbnTj.js} +1 -1
- package/dist/assets/messages-49pNL2E1.js +13 -0
- package/dist/assets/{metric-card-DQKsGfEB.js → metric-card-DreSiKBJ.js} +1 -1
- package/dist/assets/middleware-pbPQ0upo.js +1 -0
- package/dist/assets/{mobile-sidebar-drawer-qLk01r-p.js → mobile-sidebar-drawer-CEz_u6L2.js} +1 -1
- package/dist/assets/{modal-cdtdc8dA.js → modal-D5nLWNN9.js} +1 -1
- package/dist/assets/mutation-error-DYv0eJ_i.js +1 -0
- package/dist/assets/native-biometric-8C66CwyW.js +6 -0
- package/dist/assets/native-deep-link-CJGNy9bj.js +1 -0
- package/dist/assets/{native-file-B1HraJR0.js → native-file-DI99Emal.js} +2 -2
- package/dist/assets/{notice-Dh3mnM_U.js → notice-DkcNAP8O.js} +1 -1
- package/dist/assets/notifications-page-B_sN7yho.js +1 -0
- package/dist/assets/{oauth-complete-page-DLsLw4Ai.js → oauth-complete-page-CuybfFpw.js} +1 -1
- package/dist/assets/{oauth-popup-complete-page-Bzch_dtU.js → oauth-popup-complete-page-DSZxA1d6.js} +1 -1
- package/dist/assets/optimistic-lifecycle-BvfDBY8o.js +1 -0
- package/dist/assets/{page-shell-CejvYP6I.js → page-shell-DhRqqQYA.js} +1 -1
- package/dist/assets/{pairing-page-Chm98xKO.js → pairing-page-DzAmAv0h.js} +1 -1
- package/dist/assets/panel-item-CouW2A55.js +1 -0
- package/dist/assets/{password-reset-page-BJtjGZ_1.js → password-reset-page-BCk9Si73.js} +1 -1
- package/dist/assets/platform-detection-BrzZ9nIv.js +1 -0
- package/dist/assets/platform-loopback-page-Dka8sBVb.js +1 -0
- package/dist/assets/plugin-detail-page-Byuqbr1N.js +1 -0
- package/dist/assets/plugins-page-DIye0I83.js +1 -0
- package/dist/assets/plugins-surface-z3RTZS4H.js +1 -0
- package/dist/assets/plus-DItfr5ux.js +1 -0
- package/dist/assets/pointer-Cdz7NGHe.js +1 -0
- package/dist/assets/{popover-DKvyZMoc.js → popover-CFL4WZTr.js} +1 -1
- package/dist/assets/prechat-route-DOXwrVAo.js +1 -0
- package/dist/assets/prefs-Cv7dVfD-.js +1 -0
- package/dist/assets/privacy-page-u6xy7Q8z.js +1 -0
- package/dist/assets/privacy-screen-CjN05DC6.js +1 -0
- package/dist/assets/provider-callback-page-CL5ZVZ_W.js +1 -0
- package/dist/assets/provider-key-3AHnKoz9.js +1 -0
- package/dist/assets/provider-signup-page-Eizzv0xD.js +1 -0
- package/dist/assets/quick-input-page-J80B2lqk.js +1 -0
- package/dist/assets/react-query.gen-C6wVk6Rw.js +1 -0
- package/dist/assets/{react-query.gen-DVZyPw6H.js → react-query.gen-DPzPS206.js} +1 -1
- package/dist/assets/remote-gateway-session-CKCwbah-.js +1 -0
- package/dist/assets/research-mock-page-CoybPf50.js +1 -0
- package/dist/assets/{research-onboarding-persistence-DBhBmIGA.js → research-onboarding-persistence-DnuHyFyB.js} +1 -1
- package/dist/assets/research-onboarding-route-B5_eJwJw.js +63 -0
- package/dist/assets/{resize-errors-DQaZhn9s.js → resize-errors-DqIkO0UI.js} +1 -1
- package/dist/assets/{resolved-assistants-store-DccydJ5N.js → resolved-assistants-store-DAzPZ1eV.js} +1 -1
- package/dist/assets/return-to-BwxkOGDI.js +1 -0
- package/dist/assets/review-terms-screen-BWVXGdnG.js +1 -0
- package/dist/assets/risk-t10VBZTf.js +3 -0
- package/dist/assets/routes-BbeIx_F9.js +1 -0
- package/dist/assets/{schedules-D7EefqdS.js → schedules-BfKi12EZ.js} +1 -1
- package/dist/assets/{sdk.gen-YX4BQpM7.js → sdk.gen-BhtkuoSl.js} +1 -1
- package/dist/assets/sdk.gen-BwnFjFcp.js +6 -0
- package/dist/assets/{sdk.gen-B3bmXhSv.js → sdk.gen-CmKfVpgB.js} +1 -1
- package/dist/assets/{security-page-Cp2s0T8l.js → security-page-Bqpm9CRl.js} +1 -1
- package/dist/assets/select-assistant-screen-DuY4fs2R.js +1 -0
- package/dist/assets/{setting-row-D9Jbc5pM.js → setting-row-CUka7_L9.js} +1 -1
- package/dist/assets/settings-layout-BjCfuXEr.js +1 -0
- package/dist/assets/share-feedback-modal-E8Fvm4e9.js +1 -0
- package/dist/assets/sidebar-tree-Bf3uooyL.js +1 -0
- package/dist/assets/signup-page-ChGv8LrT.js +1 -0
- package/dist/assets/{signup-shell-C9HJHs_-.js → signup-shell-DufHA5do.js} +1 -1
- package/dist/assets/site-favicon-OrfXRQVO.js +1 -0
- package/dist/assets/skill-detail-page-BVbMXZJX.js +1 -0
- package/dist/assets/skill-detail-panel-D7rCFgn6.js +1 -0
- package/dist/assets/skill-icon-cNkD2w1X.js +1 -0
- package/dist/assets/skills-BNOqjTQz.js +1 -0
- package/dist/assets/skills-page-D6eXxIrR.js +1 -0
- package/dist/assets/{sound-manager-CX_nIxe3.js → sound-manager-6UbdgQrj.js} +1 -1
- package/dist/assets/{sounds-page-1emqNnJy.js → sounds-page-oCrKag0t.js} +1 -1
- package/dist/assets/{src-4xooMXeT.js → src-DZbMXyC2.js} +39 -39
- package/dist/assets/stat-square-CTHnQ1jc.js +1 -0
- package/dist/assets/subagent-detail-panel-D8Vym0hK.js +4 -0
- package/dist/assets/{subagent-store-DjUgx1D2.js → subagent-store-BHsYfTME.js} +1 -1
- package/dist/assets/{system-events-page-ww0hAGYR.js → system-events-page-CmP_mG_E.js} +1 -1
- package/dist/assets/{system-events-redirect-page-aRRRoLJI.js → system-events-redirect-page-DbaFKRXH.js} +1 -1
- package/dist/assets/tag-CV4v7fRF.js +1 -0
- package/dist/assets/three-dot-indicator-DNuHHwtA.js +1 -0
- package/dist/assets/{tiptap-document-editor-EQIK5AAg.js → tiptap-document-editor-aLok6H82.js} +2 -2
- package/dist/assets/toast-xTp-xwYL.js +1 -0
- package/dist/assets/tool-detail-panel-BxZmdI-Q.js +2 -0
- package/dist/assets/{upgrade-cancel-page-BJH7716k.js → upgrade-cancel-page-DQ2t1atD.js} +1 -1
- package/dist/assets/{upgrade-success-page-1PlVik4u.js → upgrade-success-page-qHyDiSFk.js} +1 -1
- package/dist/assets/{usage-page-jkBMfAr8.js → usage-page-Cvi3-b-0.js} +1 -1
- package/dist/assets/{use-active-assistant-id-BBHOMQFe.js → use-active-assistant-id-xuY3XyDA.js} +1 -1
- package/dist/assets/{use-bus-subscription-YZjoe_RT.js → use-bus-subscription-C3H3CmM_.js} +1 -1
- package/dist/assets/use-copy-to-clipboard-BCTXSMa-.js +1 -0
- package/dist/assets/use-edge-swipe-back-gBVYQBH0.js +1 -0
- package/dist/assets/use-invite-link-dialog-sBfH06UB.js +1 -0
- package/dist/assets/use-is-org-ready-CjILVAUZ.js +1 -0
- package/dist/assets/use-onboarding-login-Chcj53mF.js +1 -0
- package/dist/assets/{use-reduced-motion-DUPDDLHh.js → use-reduced-motion-Cj0Z8KSf.js} +1 -1
- package/dist/assets/use-skill-actions-DZARQDwC.js +1 -0
- package/dist/assets/{use-skill-categories-q-Ih2uSR.js → use-skill-categories-Dg0zxtfv.js} +1 -1
- package/dist/assets/use-skill-detail-files-BneiGfwy.js +1 -0
- package/dist/assets/{utils-Cv6Fontd.js → utils-xg2dl_KJ.js} +1 -1
- package/dist/assets/viewer-store-B8-Qnbx9.js +1 -0
- package/dist/assets/voice-page-Dzku566m.js +1 -0
- package/dist/assets/{weather-forecast-display-CJ_ZT_-B.js → weather-forecast-display-33DfC7gA.js} +1 -1
- package/dist/assets/{web-CCRYoYsf.js → web-BD2N6zhd.js} +1 -1
- package/dist/assets/{web-CAGeGBel.js → web-BaubW4Pp.js} +1 -1
- package/dist/assets/{web-C_gIgYOE.js → web-C1L-cpPj.js} +1 -1
- package/dist/assets/{web-Bifc0CyQ.js → web-CJiP8Lg6.js} +1 -1
- package/dist/assets/{web-D-9O_l_z.js → web-D8PpvYf_.js} +1 -1
- package/dist/assets/{web-DKKX1zUX.js → web-Duw5A2aP.js} +1 -1
- package/dist/assets/{web-C6JBS2jv.js → web-O1LOb-o9.js} +1 -1
- package/dist/assets/web-RhBklijR.js +1 -0
- package/dist/assets/{welcome-screen-C_JlT5id.js → welcome-screen-_mzcPEui.js} +1 -1
- package/dist/assets/workflow-detail-panel-DqBjO6c3.js +1 -0
- package/dist/assets/workflow-store-DACyavns.js +1 -0
- package/dist/assets/workspace-page-qq2UZFY3.js +1 -0
- package/dist/index.html +131 -121
- package/package.json +1 -1
- package/dist/assets/ai-page-BcgdcD4e.js +0 -1
- package/dist/assets/animated-avatar-KEsxQUWX.js +0 -1
- package/dist/assets/api-bHQ_ZhgO.js +0 -1
- package/dist/assets/arrow-up-BxoccrRI.js +0 -1
- package/dist/assets/assistant-identity-store-Cp3CD7d1.js +0 -1
- package/dist/assets/auth-store-CI4EhvE5.js +0 -2
- package/dist/assets/avatar-bundled-components-DQodAnJD.js +0 -1
- package/dist/assets/background-task-detail-panel-CfEFRK9m.js +0 -1
- package/dist/assets/billing-page-7z-qyk7R.js +0 -3
- package/dist/assets/bookmarks-page-BPDCi7Fj.js +0 -1
- package/dist/assets/browser-CP3oEvln.js +0 -2
- package/dist/assets/build-state-D96tiPPg.js +0 -1
- package/dist/assets/button-D1p5nVKJ.js +0 -1
- package/dist/assets/channels-page-route-CpAKC7Ny.js +0 -1
- package/dist/assets/client.gen-V_HNquaL.js +0 -6
- package/dist/assets/command-palette-DzGSKQit.js +0 -1
- package/dist/assets/community-page-pr5Nq-N8.js +0 -1
- package/dist/assets/contacts-gateway-jQhZqbXH.js +0 -1
- package/dist/assets/contacts-page-route-CRf2kU0k.js +0 -1
- package/dist/assets/debug-page-CAXWUmxw.js +0 -4
- package/dist/assets/detail-shell-q6GjKJ6F.js +0 -4
- package/dist/assets/device-settings-BBwtGKJb.js +0 -1
- package/dist/assets/devices-page-CsqBToSK.js +0 -1
- package/dist/assets/document-viewer-page-BaGYg7Jy.js +0 -1
- package/dist/assets/edit-chat-session-phEigSQo.js +0 -1
- package/dist/assets/effective-timezone-DAkNzd21.js +0 -1
- package/dist/assets/esm-BZAWL4X4.js +0 -2
- package/dist/assets/esm-CuAK_cYT.js +0 -2
- package/dist/assets/esm-_LZD1lMg.js +0 -2
- package/dist/assets/esm-fycmFY2i.js +0 -2
- package/dist/assets/esm-hkF3aX28.js +0 -1
- package/dist/assets/feature-flag-catalog-Ca2Lo1Sx.js +0 -1
- package/dist/assets/file-editor-CiduanJg.js +0 -1
- package/dist/assets/general-page-Cx_BeDy7.js +0 -1
- package/dist/assets/haptics-CABfN3Hg.js +0 -1
- package/dist/assets/hatching-screen-DGWclpGa.js +0 -1
- package/dist/assets/home-page-route-B6axS8Xb.js +0 -1
- package/dist/assets/identity-page-route-Ck6yFc4b.js +0 -1
- package/dist/assets/index-BkM0WTPC.css +0 -2
- package/dist/assets/index-CoobbyzR.js +0 -114
- package/dist/assets/install-BfTQMx11.js +0 -1
- package/dist/assets/integrations-page-vewUMHCO.js +0 -1
- package/dist/assets/intelligence-layout-Y0MnzPhq.js +0 -1
- package/dist/assets/library-detail-page-nV2EKiXc.js +0 -1
- package/dist/assets/library-page-B9_dVu66.js +0 -1
- package/dist/assets/lock-ChQK4VKH.js +0 -1
- package/dist/assets/login-page-DVozReou.js +0 -1
- package/dist/assets/logout-page-CD2DJ8cb.js +0 -1
- package/dist/assets/logs-layout-Cp0hu2KO.js +0 -1
- package/dist/assets/messages-3teOY9CI.js +0 -13
- package/dist/assets/mutation-error-DITUXbSQ.js +0 -1
- package/dist/assets/native-biometric-uwPAd9lh.js +0 -6
- package/dist/assets/native-deep-link-C13QIbW2.js +0 -1
- package/dist/assets/notifications-page-C32A7t8f.js +0 -1
- package/dist/assets/panel-item-vXPWJAXs.js +0 -1
- package/dist/assets/platform-detection-CY-O-Rjc.js +0 -1
- package/dist/assets/platform-loopback-page-BwMcw0M2.js +0 -1
- package/dist/assets/plugin-detail-page-BCbgwXnr.js +0 -1
- package/dist/assets/plugins-page-_hVmUOdU.js +0 -1
- package/dist/assets/plugins-surface-DYk9FmM2.js +0 -1
- package/dist/assets/prechat-route-FwhIKBwh.js +0 -1
- package/dist/assets/prefs-Bo9fZ56w.js +0 -1
- package/dist/assets/privacy-page-Dgk9eUIc.js +0 -1
- package/dist/assets/privacy-screen-BWMJTqw0.js +0 -1
- package/dist/assets/provider-callback-page-DrIkf6Qx.js +0 -1
- package/dist/assets/provider-key-CVj0dGLW.js +0 -1
- package/dist/assets/provider-signup-page-CLgombsV.js +0 -1
- package/dist/assets/quick-input-page-DAoWLetZ.js +0 -1
- package/dist/assets/react-query.gen-D8YgmevH.js +0 -1
- package/dist/assets/remote-gateway-session-uLbl0yn7.js +0 -1
- package/dist/assets/research-mock-page-pa9X5DVr.js +0 -1
- package/dist/assets/research-onboarding-route-DMNYFP95.js +0 -61
- package/dist/assets/return-to-BbdJZupb.js +0 -1
- package/dist/assets/review-terms-screen-Dhzjmovc.js +0 -1
- package/dist/assets/routes-iUGoIqW2.js +0 -1
- package/dist/assets/sdk.gen-Bz2u5Wv3.js +0 -1
- package/dist/assets/select-assistant-screen-BznHV3KW.js +0 -1
- package/dist/assets/settings-layout-u1k_Rsdf.js +0 -1
- package/dist/assets/share-feedback-modal-D1-RcW6F.js +0 -1
- package/dist/assets/shield-check-DFzO4cEd.js +0 -1
- package/dist/assets/sidebar-tree-CMREzbfC.js +0 -1
- package/dist/assets/signup-page-DdEr8yFN.js +0 -1
- package/dist/assets/skills-page-DEyycwld.js +0 -1
- package/dist/assets/stat-square-CDBisfqE.js +0 -1
- package/dist/assets/subagent-detail-panel-Akqnt7ec.js +0 -4
- package/dist/assets/tag-BizaosUX.js +0 -1
- package/dist/assets/toast-DowcpN7g.js +0 -1
- package/dist/assets/tool-detail-panel-C_g0wGNh.js +0 -2
- package/dist/assets/use-is-mobile-DJUk0lC8.js +0 -1
- package/dist/assets/use-is-org-ready-Dtge_dC5.js +0 -1
- package/dist/assets/use-onboarding-login-9378MpEq.js +0 -1
- package/dist/assets/use-setup-channel-param-CRMdNnM_.js +0 -9
- package/dist/assets/viewer-store-C8L5A-BB.js +0 -1
- package/dist/assets/voice-page-DIpdPRDT.js +0 -1
- package/dist/assets/workflow-detail-panel-BIZ8culE.js +0 -1
- package/dist/assets/workspace-page-8DC4PiAA.js +0 -1
- /package/dist/assets/{api-errors-DZ6ckXtC.js → api-errors-CrWDzVca.js} +0 -0
- /package/dist/assets/{avatar-svg-compositor-BnVOXsYU.js → avatar-svg-compositor-CnDf9Ibf.js} +0 -0
- /package/dist/assets/{build.umd-C5MOmzrf.js → build.umd-CxdKgGWo.js} +0 -0
- /package/dist/assets/{by-tool-use-id-index-h0TggD-a.js → by-tool-use-id-index-BokzI3ZP.js} +0 -0
- /package/dist/assets/{chat-Bn41Y5yM.js → chat-B8mgARYR.js} +0 -0
- /package/dist/assets/{client.gen-AQhSugfA.js → client.gen-DVfIRXUZ.js} +0 -0
- /package/dist/assets/{cloud-off-CysJvmWr.js → cloud-off-Db1nySkc.js} +0 -0
- /package/dist/assets/{code-DsR1Npcp.js → code-Czx7d7SK.js} +0 -0
- /package/dist/assets/{composer-focus-BBTBdAab.js → composer-focus-BZr63Cvs.js} +0 -0
- /package/dist/assets/{conversation-selection-oLES1vkM.js → conversation-selection-BBHkzcfy.js} +0 -0
- /package/dist/assets/{copy-CytZjq76.js → copy-Cn1FKrEp.js} +0 -0
- /package/dist/assets/{cpu-C6_Tjhkh.js → cpu-BJuB2Khn.js} +0 -0
- /package/dist/assets/{create-selectors-DxrPZQND.js → create-selectors-8NePGNlX.js} +0 -0
- /package/dist/assets/{credit-card-s3I7DYkY.js → credit-card-BuyWdO9t.js} +0 -0
- /package/dist/assets/{definitions-CJ7YHLIq.js → definitions-CaYcW4Yq.js} +0 -0
- /package/dist/assets/{dist-C3LFhPgk2.js → dist-DS5iJwBJ2.js} +0 -0
- /package/dist/assets/{domain-field-6GHeeXa3.js → domain-field-C5a2iMot.js} +0 -0
- /package/dist/assets/{emoji-catalog-data-hHp74TCA.js → emoji-catalog-data-D8lRMt3A.js} +0 -0
- /package/dist/assets/{event-bus-BXKLAX-e.js → event-bus-BNx4a0Ds.js} +0 -0
- /package/dist/assets/{external-link-DJ0A4ezO.js → external-link-Dqpx9nRm.js} +0 -0
- /package/dist/assets/{file-text-Cw--uc4C.js → file-text-CYJz-GvF.js} +0 -0
- /package/dist/assets/{format-date-CLlHK5gl.js → format-date-CghpPTDc.js} +0 -0
- /package/dist/assets/{format-file-size-BfZOpPdu.js → format-file-size-DzVEncaw.js} +0 -0
- /package/dist/assets/{globe-DgulNfxa.js → globe-4qSOWE2N.js} +0 -0
- /package/dist/assets/{hard-drive-CUjwJ5MQ.js → hard-drive-rDxhoRUm.js} +0 -0
- /package/dist/assets/{impersonate-version-flag-DudbyPBi.js → impersonate-version-flag-BhxfH6iZ.js} +0 -0
- /package/dist/assets/{info-BaizXivv.js → info-DsOyuMO9.js} +0 -0
- /package/dist/assets/{is-electron-LEymSS4C.js → is-electron-y5bNUVyG.js} +0 -0
- /package/dist/assets/{link-2-C4ZDIIu1.js → link-2-4bMylQ5v.js} +0 -0
- /package/dist/assets/{llm-dimension-CgXjHNj6.js → llm-dimension-DyYwG3mU.js} +0 -0
- /package/dist/assets/{loader-circle-D1pLQlMh.js → loader-circle-Cz7opInR.js} +0 -0
- /package/dist/assets/{log-in-BQonRVoo.js → log-in--aqELu3z.js} +0 -0
- /package/dist/assets/{minimize-2-BusmaFRB.js → minimize-2-Clnet2W7.js} +0 -0
- /package/dist/assets/{misc-CfQwP_zq.js → misc-BYQPh7vS.js} +0 -0
- /package/dist/assets/{monitor-CWNmhnli.js → monitor-DfbL8_59.js} +0 -0
- /package/dist/assets/{moon-Br0t6dvo.js → moon-B8qiwjrW.js} +0 -0
- /package/dist/assets/{onboarding-step-layout-QhoZ4RKu.js → onboarding-step-layout-2XcmxqFN.js} +0 -0
- /package/dist/assets/{pdf-DGDlrU1i.js → pdf-C3Qukw-J.js} +0 -0
- /package/dist/assets/{pencil-rKUVpppO.js → pencil-CUIr0IFo.js} +0 -0
- /package/dist/assets/{prechat-UQXfXf5i.js → prechat-P1y7ZM6C.js} +0 -0
- /package/dist/assets/{prechat-names-BX9ToPj8.js → prechat-names-clVy5Mee.js} +0 -0
- /package/dist/assets/{progress-bar-q6qGo2Sp.js → progress-bar-Ca8gmE3B.js} +0 -0
- /package/dist/assets/{proxy-CheNMUr6.js → proxy-o6cPThl2.js} +0 -0
- /package/dist/assets/{public-asset-BpAVsx77.js → public-asset-GKv5zCfZ.js} +0 -0
- /package/dist/assets/{refresh-cw-BmNgSiel.js → refresh-cw-DevIHL7J.js} +0 -0
- /package/dist/assets/{repeat-Bms5wrYv.js → repeat-C8Im6j--.js} +0 -0
- /package/dist/assets/{save-BZ19CVY3.js → save-aD5JFIZf.js} +0 -0
- /package/dist/assets/{semver-DLY9hF7h.js → semver-DIkpaM51.js} +0 -0
- /package/dist/assets/{shortcut-keys-DKqAVRjB.js → shortcut-keys-B2EE-634.js} +0 -0
- /package/dist/assets/{sparkles-3RJkeWa7.js → sparkles-PGiR5v1g.js} +0 -0
- /package/dist/assets/{status-badge-pill-DUcVAyfr.js → status-badge-pill-0N6rTEBg.js} +0 -0
- /package/dist/assets/{step-indicator-dots-DzT4WVOT.js → step-indicator-dots-D03TmFKG.js} +0 -0
- /package/dist/assets/{toggle-D7S110RM.js → toggle-CDfguvUz.js} +0 -0
- /package/dist/assets/{triangle-alert-CuLBwl1x.js → triangle-alert-Z0Gq0IuB.js} +0 -0
- /package/dist/assets/{typed-storage-T9jtK5c0.js → typed-storage-5IU6qVWg.js} +0 -0
- /package/dist/assets/{usage-window-wP92lK6k.js → usage-window-C6gWu5Qu.js} +0 -0
- /package/dist/assets/{user-plus-CBZUdRuz.js → user-plus-DMh4_UTz.js} +0 -0
- /package/dist/assets/{workflow-status-CHd73wxx.js → workflow-status-ZrbiLW5D.js} +0 -0
- /package/dist/assets/{x-CwzRJv9J.js → x-CkSVp1Ok.js} +0 -0
- /package/dist/assets/{xterm-ClHs86Ut.js → xterm-CBmd_y-b.js} +0 -0
- /package/dist/assets/{xterm-addon-fit-B-HVOsbO.js → xterm-addon-fit-THPW0uy0.js} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./capture-error-CmeVLfq0.js";import{t as n}from"./react-DJZBPgpf.js";import{t as r}from"./button-D1p5nVKJ.js";import{d as i}from"./chunk-5KNZJZUH-DdS6bb-3.js";import{n as a}from"./QueryClientProvider-DKhXIxGb.js";import{t as o}from"./useQuery-B45lW1Kk.js";import{t as s}from"./jsx-runtime-CVSDxk6A.js";import{t as c}from"./card-Bv5O5juh.js";import{t as l}from"./createLucideIcon-IRfcSUxS.js";import{t as u}from"./arrow-left-DI9551VI.js";import{t as d}from"./brain-BLDXGaUy.js";import{t as f}from"./external-link-DJ0A4ezO.js";import{t as p}from"./file-text-Cw--uc4C.js";import{t as m}from"./globe-DgulNfxa.js";import{t as h}from"./loader-circle-D1pLQlMh.js";import"./src-4xooMXeT.js";import{t as g}from"./tag-BizaosUX.js";import{Qn as _}from"./sdk.gen-Bz2u5Wv3.js";import{Qt as v,gt as y,ht as b}from"./react-query.gen-D8YgmevH.js";import{n as x,r as S,t as C}from"./api-errors-DZ6ckXtC.js";import{o as w}from"./routes-iUGoIqW2.js";import{H as T,V as E,fi as D,hi as O,ka as k,ki as A,mi as j,ta as M}from"./index-CoobbyzR.js";import{i as N,n as P,r as F,t as I}from"./file-editor-CiduanJg.js";var L=l(`box`,[[`path`,{d:`M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z`,key:`hh9hay`}],[`path`,{d:`m3.3 7 8.7 5 8.7-5`,key:`g66t2b`}],[`path`,{d:`M12 22V12`,key:`d0xqtd`}]]),R=e(n(),1),z=s();function B({skill:e,className:t,fallback:n=`🧩`}){let[r,i]=(0,R.useState)(!1);return e.icon&&!r?(0,z.jsx)(`img`,{src:`/assistant/skills/${e.id}/${e.icon}`,alt:``,className:`${t} object-contain`,onError:()=>i(!0)}):(0,z.jsx)(`span`,{className:t,children:e.emoji??n})}var V={vellum:{label:`Vellum`,icon:L},clawhub:{label:`Clawhub`,icon:m},skillssh:{label:`skills.sh`,icon:O},custom:{label:`Custom`,icon:D},"assistant-memory":{label:`Assistant's Memory`,icon:d}};function H({origin:e}){let t=e in V?V[e]:{label:e.replace(/-/g,` `),icon:A};return(0,z.jsx)(g,{tone:`neutral`,leftIcon:(0,R.createElement)(t.icon),className:`capitalize`,children:t.label})}function U(e){return e.kind===`installed`||e.kind===`bundled`}function W(e){return e.kind===`catalog`}function G(e){return e.kind===`installed`}function K({assistantId:e,skill:t,onBack:n,onInstall:i,onRemove:a,isInstalling:s=!1,isRemoving:l=!1}){let[d,f]=(0,R.useState)(null),m=W(t),g=G(t),_=o({...y({path:{assistant_id:e,id:t.id}}),select:e=>e??null}),v=(0,R.useMemo)(()=>_.data?.files??[],[_.data]),x=(0,R.useMemo)(()=>v.find(e=>e.name===`SKILL.md`),[v]),S=d??x?.path??null,C=o({...b({path:{assistant_id:e,id:t.id},query:{path:S??``}}),select:e=>e??null,enabled:!!S}),w=v.find(e=>e.path===S);return(0,z.jsxs)(`div`,{className:`flex h-[calc(100vh-14rem)] flex-col`,children:[(0,z.jsxs)(`div`,{className:`mb-4 flex items-start gap-3`,children:[(0,z.jsx)(r,{type:`button`,variant:`ghost`,iconOnly:(0,z.jsx)(u,{"aria-hidden":!0}),"aria-label":`Back to skills`,onClick:n}),(0,z.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-3 sm:flex-row sm:items-center`,children:[(0,z.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-center gap-3`,children:[(0,z.jsx)(B,{skill:t,className:`h-8 w-8 text-3xl`}),(0,z.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,z.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-2 gap-y-1`,children:[(0,z.jsx)(`h2`,{className:`text-title-medium`,style:{color:`var(--content-default)`},children:t.name}),(0,z.jsx)(H,{origin:t.origin})]}),(0,z.jsx)(`p`,{className:`mt-0.5 line-clamp-2 text-body-medium-lighter`,style:{color:`var(--content-secondary)`},children:t.description})]})]}),m?s?(0,z.jsx)(`div`,{className:`flex h-9 items-center px-3`,children:(0,z.jsx)(h,{className:`h-4 w-4 animate-spin`,style:{color:`var(--content-tertiary)`}})}):(0,z.jsx)(r,{type:`button`,onClick:i,disabled:!i,leftIcon:(0,z.jsx)(k,{"aria-hidden":!0}),children:`Install`}):(0,z.jsx)(r,{type:`button`,variant:g?`dangerOutline`:`outlined`,onClick:a,disabled:!g||l||!a,leftIcon:l?(0,z.jsx)(h,{className:`animate-spin`,"aria-hidden":!0}):(0,z.jsx)(j,{"aria-hidden":!0}),children:`Remove`})]})]}),(0,z.jsx)(c.Root,{asChild:!0,noPadding:!0,children:(0,z.jsxs)(`div`,{className:`flex flex-1 flex-col overflow-hidden sm:grid`,style:{gridTemplateColumns:`240px 1fr`},children:[(0,z.jsx)(`div`,{className:`max-h-40 shrink-0 overflow-y-auto border-b p-2 sm:max-h-none sm:border-b-0 sm:border-r`,style:{borderColor:`var(--border-base)`},children:_.isLoading?(0,z.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,z.jsx)(h,{className:`h-4 w-4 animate-spin`,style:{color:`var(--content-tertiary)`}})}):v.length===0?(0,z.jsx)(`p`,{className:`px-3 py-4 text-center text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`No files available.`}):v.map(e=>{let t=S===e.path,n=(e.mimeType??``).endsWith(`/directory`);return(0,z.jsxs)(`button`,{type:`button`,onClick:()=>f(e.path),className:`flex w-full items-center gap-2 rounded px-2 py-1.5 text-left text-body-medium-lighter transition-colors hover:bg-[var(--surface-hover)]`,style:{color:t?`var(--primary-base)`:`var(--content-default)`,backgroundColor:t?`color-mix(in oklab, var(--primary-base) 10%, transparent)`:void 0},children:[n?(0,z.jsx)(M,{className:`h-4 w-4 shrink-0`,style:{color:`var(--system-mid-strong)`}}):(0,z.jsx)(p,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-secondary)`}}),(0,z.jsx)(`span`,{className:`truncate`,children:e.name})]},e.path)})}),(0,z.jsx)(`div`,{className:`min-h-0 flex-1 overflow-hidden`,children:C.isLoading?(0,z.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,z.jsx)(h,{className:`h-6 w-6 animate-spin`,style:{color:`var(--content-tertiary)`}})}):w?(0,z.jsx)(q,{assistantId:e,skillId:t.id,fileName:w.name,filePath:w.path,content:C.data?.content??null,isBinary:!!C.data?.isBinary,editable:t.kind===`installed`},`${t.id}/${w.path}`):(0,z.jsx)(`p`,{className:`flex h-full items-center justify-center text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`Select a file to view its contents.`})})]})})]})}function q({assistantId:e,skillId:n,fileName:o,filePath:s,content:c,isBinary:l,editable:u}){let d=i(),p=a(),[m,h]=(0,R.useState)(!1),[g,_]=(0,R.useState)(``),y=`skills/${n}/${s}`,b=v({onSuccess:()=>{h(!1),_(``),p.invalidateQueries({queryKey:[{_id:`skillsByIdFilesContentGet`}]}),p.invalidateQueries({queryKey:[{_id:`skillsByIdFilesGet`}]}),s===`SKILL.md`&&p.invalidateQueries({queryKey:[{_id:`skillsGet`}]})},onError:e=>{t(e,{context:`skill-file-save`,bestEffort:!0})}}),x=m&&g!==(c??``),S=(0,R.useCallback)(()=>{!x||b.isPending||b.mutate({path:{assistant_id:e},body:{path:y,content:g,encoding:`utf8`}})},[x,b,e,y,g]),C=(0,R.useCallback)(()=>{h(!0),_(c??``),b.reset()},[c,b]),D=(0,R.useCallback)(()=>{h(!1),_(``),b.reset()},[b]);if(l)return(0,z.jsx)(`p`,{className:`flex h-full items-center justify-center text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`Binary file — no preview available.`});if(c===null)return(0,z.jsxs)(`p`,{className:`flex h-full items-center justify-center text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:[`No preview available for `,o,`.`]});let O=u?(0,z.jsx)(r,{variant:`ghost`,size:`regular`,iconOnly:(0,z.jsx)(f,{"aria-hidden":!0}),onClick:()=>d(`${w.workspace}?file=${encodeURIComponent(y)}`),"aria-label":`Open in Workspace`,className:`hover:bg-[var(--surface-base)]`}):void 0;return T(o,void 0)&&!m?(0,z.jsx)(`div`,{className:`relative flex h-full flex-col`,children:(0,z.jsxs)(`div`,{className:`relative flex-1 overflow-auto px-6 py-4`,style:{color:`var(--content-default)`},children:[(0,z.jsx)(I,{content:c,fileName:o,showEdit:u,isEditing:!1,onToggleEdit:C,extraActions:O}),(0,z.jsx)(E,{content:c})]})}):(0,z.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,z.jsxs)(`div`,{className:`relative flex-1 overflow-hidden`,children:[(0,z.jsx)(I,{content:m?g:c,fileName:o,showEdit:u,isEditing:m,onToggleEdit:()=>m?D():C(),extraActions:O}),m?(0,z.jsx)(F,{value:g,onChange:_,onSave:S}):(0,z.jsx)(N,{content:c,readOnly:!u,onStartEdit:C})]}),m&&(0,z.jsx)(P,{isDirty:x,isSaving:b.isPending,error:b.isError?`Save failed`:null,onSave:S,onDiscard:D})]})}async function J(e,t,n){let{data:r,error:i,response:a}=await _({path:{assistant_id:e},body:n?{slug:t,version:n}:{slug:t},throwOnError:!1});if(x(a,i,`Failed to install skill.`),!a.ok)throw new C(a.status,S(i,a,`Failed to install skill.`));return r??{ok:!0}}export{G as a,L as c,U as i,K as n,H as o,W as r,B as s,J as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{r as t,s as n}from"./local-settings-lVNyIOJ_.js";import{t as r}from"./capture-error-CmeVLfq0.js";import{t as i}from"./react-DJZBPgpf.js";import{t as a}from"./button-D1p5nVKJ.js";import{d as o,h as s}from"./chunk-5KNZJZUH-DdS6bb-3.js";import{N as c,O as l,S as u,T as d,c as f,n as p}from"./QueryClientProvider-DKhXIxGb.js";import{a as m,c as h,d as g,i as _,l as v,o as y,r as b,s as x,t as S,u as C}from"./useQuery-B45lW1Kk.js";import{t as w}from"./jsx-runtime-CVSDxk6A.js";import{t as T}from"./card-Bv5O5juh.js";import{t as E}from"./createLucideIcon-IRfcSUxS.js";import{t as D}from"./check-DFNrQERi.js";import{t as O}from"./chevron-down-qD-re7AW.js";import{t as k}from"./chevron-right-DqqmezXC.js";import{t as A}from"./circle-alert-zOqdmf25.js";import{t as j}from"./circle-check-VSiny8yl.js";import{t as M}from"./copy-CytZjq76.js";import{t as N}from"./external-link-DJ0A4ezO.js";import{n as P,t as F}from"./log-out-CCanFuT_.js";import{t as I}from"./loader-circle-D1pLQlMh.js";import{t as L}from"./log-in-BQonRVoo.js";import{t as R}from"./pencil-rKUVpppO.js";import{t as z}from"./refresh-cw-BmNgSiel.js";import{t as ee}from"./sparkles-3RJkeWa7.js";import{t as te}from"./x-CwzRJv9J.js";import{t as ne}from"./notice-Dh3mnM_U.js";import{t as B}from"./popover-DKvyZMoc.js";import{t as V}from"./input-DR1eB4a1.js";import{t as re}from"./toggle-D7S110RM.js";import{n as H,t as ie}from"./list-row-YOzkXNjq.js";import{t as U}from"./modal-cdtdc8dA.js";import{n as W,t as ae}from"./panel-item-vXPWJAXs.js";import{n as G}from"./toast-DowcpN7g.js";import{t as K}from"./confirm-dialog-DW84Cxfq.js";import{t as q}from"./client.gen-V_HNquaL.js";import{$ as oe,Gt as se,J as ce,Kt as le,Q as ue,Wt as de,X as fe,Y as pe,Z as me,qt as he}from"./react-query.gen-D8YgmevH.js";import{r as ge}from"./api-errors-DZ6ckXtC.js";import{C as _e}from"./auth-store-CI4EhvE5.js";import{r as ve}from"./api-DXLi4DU7.js";import{m as ye}from"./native-biometric-uwPAd9lh.js";import{o as be}from"./routes-iUGoIqW2.js";import{n as xe,t as Se}from"./browser-CP3oEvln.js";import{n as Ce}from"./use-is-mobile-DJUk0lC8.js";import{Ct as we,S as Te,St as Ee,b as J,x as De}from"./react-query.gen-DVZyPw6H.js";import{t as Oe}from"./assistant-feature-flag-store-BRGydSRn.js";import{$t as ke,Ai as Ae,Lr as je,Q as Y,Qt as Me,T as Ne,Ti as Pe,Xt as Fe,Yt as Ie,Zt as Le,ji as X,mi as Z,nn as Re,rn as ze,tn as Be,ya as Ve,yn as He,zr as Ue}from"./index-CoobbyzR.js";import{t as We}from"./use-active-assistant-id-BBHOMQFe.js";function Ge(e,t){let n=new Set(t);return e.filter(e=>!n.has(e))}function Ke(e,t,n){let r=e.slice(0);return r[t]=n,r}var qe=class extends c{#e;#t;#n;#r;#i;#a;#o;#s;#c;#l=[];constructor(e,t,n){super(),this.#e=e,this.#r=n,this.#n=[],this.#i=[],this.#t=[],this.setQueries(t)}onSubscribe(){this.listeners.size===1&&this.#i.forEach(e=>{e.subscribe(t=>{this.#p(e,t)})})}onUnsubscribe(){this.listeners.size||this.destroy()}destroy(){this.listeners=new Set,this.#i.forEach(e=>{e.destroy()})}setQueries(e,t){this.#n=e,this.#r=t,f.batch(()=>{let e=this.#i,t=this.#f(this.#n);t.forEach(e=>e.observer.setOptions(e.defaultedQueryOptions));let n=t.map(e=>e.observer),r=n.map(e=>e.getCurrentResult()),i=e.length!==n.length,a=n.some((t,n)=>t!==e[n]),o=i||a,s=o?!0:r.some((e,t)=>{let n=this.#t[t];return!n||!l(e,n)});!o&&!s||(o&&(this.#l=t,this.#i=n),this.#t=r,this.hasListeners()&&(o&&(Ge(e,n).forEach(e=>{e.destroy()}),Ge(n,e).forEach(e=>{e.subscribe(t=>{this.#p(e,t)})})),this.#m()))})}getCurrentResult(){return this.#t}getQueries(){return this.#i.map(e=>e.getCurrentQuery())}getObservers(){return this.#i}getOptimisticResult(e,t){let n=this.#f(e),r=n.map(e=>e.observer.getOptimisticResult(e.defaultedQueryOptions)),i=n.map(e=>e.defaultedQueryOptions.queryHash);return[r,e=>this.#d(e??r,t,i),()=>this.#u(r,n)]}#u(e,t){return t.map((n,r)=>{let i=e[r];return n.defaultedQueryOptions.notifyOnChangeProps?i:n.observer.trackResult(i,e=>{t.forEach(t=>{t.observer.trackProp(e)})})})}#d(e,t,n){if(t){let r=this.#c,i=n!==void 0&&r!==void 0&&(r.length!==n.length||n.some((e,t)=>e!==r[t]));return(!this.#a||this.#t!==this.#s||i||t!==this.#o)&&(this.#o=t,this.#s=this.#t,n!==void 0&&(this.#c=n),this.#a=d(this.#a,t(e))),this.#a}return e}#f(e){let t=new Map;this.#i.forEach(e=>{let n=e.options.queryHash;if(!n)return;let r=t.get(n);r?r.push(e):t.set(n,[e])});let n=[];return e.forEach(e=>{let r=this.#e.defaultQueryOptions(e),i=t.get(r.queryHash)?.shift()??new g(this.#e,r);n.push({defaultedQueryOptions:r,observer:i})}),n}#p(e,t){let n=this.#i.indexOf(e);n!==-1&&(this.#t=Ke(this.#t,n,t),this.#m())}#m(){if(this.hasListeners()){let e=this.#a,t=this.#u(this.#t,this.#l);e!==this.#d(t,this.#r?.combine)&&f.batch(()=>{this.listeners.forEach(e=>{e(this.#t)})})}}},Q=e(i(),1);function Je({queries:e,...t},n){let r=p(n),i=C(),a=v(),o=Q.useMemo(()=>e.map(e=>{let t=r.defaultQueryOptions(e);return t._optimisticResults=i?`isRestoring`:`optimistic`,t}),[e,r,i]);o.forEach(e=>{b(e),y(e,a,r.getQueryCache().get(e.queryHash))}),h(a);let[s]=Q.useState(()=>new qe(r,o,t)),[c,l,d]=s.getOptimisticResult(o,t.combine),S=!i&&t.subscribed!==!1;Q.useSyncExternalStore(Q.useCallback(e=>S?s.subscribe(f.batchCalls(e)):u,[s,S]),()=>s.getCurrentResult(),()=>s.getCurrentResult()),Q.useEffect(()=>{s.setQueries(o,t)},[o,t,s]);let w=c.some((e,t)=>m(o[t],e))?c.flatMap((e,t)=>{let n=o[t];return n&&m(n,e)?_(n,new g(r,n),a):[]}):[];if(w.length>0)throw Promise.all(w);let T=c.find((e,t)=>{let n=o[t];return n&&x({result:e,errorResetBoundary:a,throwOnError:n.throwOnError,query:r.getQueryCache().get(n.queryHash),suspense:n.suspense})});if(T?.error)throw T.error;return l(d())}var Ye=E(`cable`,[[`path`,{d:`M17 19a1 1 0 0 1-1-1v-2a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v2a1 1 0 0 1-1 1z`,key:`trhst0`}],[`path`,{d:`M17 21v-2`,key:`ds4u3f`}],[`path`,{d:`M19 14V6.5a1 1 0 0 0-7 0v11a1 1 0 0 1-7 0V10`,key:`1mo9zo`}],[`path`,{d:`M21 21v-2`,key:`eo0ou`}],[`path`,{d:`M3 5V3`,key:`1k5hjh`}],[`path`,{d:`M4 10a2 2 0 0 1-2-2V6a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2a2 2 0 0 1-2 2z`,key:`1dd30t`}],[`path`,{d:`M7 5V3`,key:`1t1388`}]]),Xe=E(`calendar-plus`,[[`path`,{d:`M16 19h6`,key:`xwg31i`}],[`path`,{d:`M16 2v4`,key:`4m81vk`}],[`path`,{d:`M19 16v6`,key:`tddt3s`}],[`path`,{d:`M21 12.598V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h8.5`,key:`1glfrc`}],[`path`,{d:`M3 10h18`,key:`8toen8`}],[`path`,{d:`M8 2v4`,key:`1cmpym`}]]);function Ze({assistantId:e,providerKey:t,displayName:n,managedAvailable:r,connectionsQueryKey:i,allConnections:a}){let o=p(),s=ye(),c=(0,Q.useRef)(null),l=(0,Q.useRef)(null),u=(0,Q.useRef)(null),d=(0,Q.useRef)(null),[f,m]=(0,Q.useState)(!1),h=()=>{l.current=null,m(!1)},g=()=>{c.current&&!c.current.closed&&c.current.close(),c.current=null,u.current&&=(clearInterval(u.current),null),d.current&&=(clearTimeout(d.current),null)},_=(0,Q.useCallback)(e=>{if(e.type!==`vellum:oauth-complete`||!l.current||e.requestId!==l.current.requestId)return;let{oauthStatus:t,oauthCode:r}=e;if(g(),h(),t===`connected`)G.success(`${n} account connected.`),o.invalidateQueries({queryKey:i});else{let e=r?`Error: ${r}`:`Authorization failed`;G.error(`${n} ${e}`)}},[i,n,o]),v=(0,Q.useCallback)(async(e,n)=>{if(!r)return!1;for(let r=0;r<8;r+=1){r>0&&await Le(750);try{if(o.invalidateQueries({queryKey:i}),Fe(await o.fetchQuery({...J({path:{assistant_id:e}}),staleTime:0}),t,n))return!0}catch{}}return!1},[i,r,t,o]);(0,Q.useEffect)(()=>{let e=e=>{let t=l.current;if(!t)return;let n=Me(e,window.location.origin,t.requestId);n&&_(n)},t=e=>{let t=l.current;if(!t)return;let n=ke(e,t.requestId);n&&(_(n),window.localStorage.removeItem(Be(t.requestId)))};return window.addEventListener(`message`,e),window.addEventListener(`storage`,t),()=>{window.removeEventListener(`message`,e),window.removeEventListener(`storage`,t)}},[_]),ze((0,Q.useCallback)(e=>{let t=l.current;t&&e.requestId===t.requestId&&_({type:`vellum:oauth-complete`,requestId:e.requestId,oauthStatus:e.oauthStatus,oauthProvider:e.oauthProvider,oauthCode:e.oauthCode})},[_])),(0,Q.useEffect)(()=>xe(()=>{let e=l.current;e&&(async()=>{let t=await v(e.platformAssistantId,e.baselineConnectionSignatures);l.current&&(h(),t&&G.success(`${n} account connected.`))})()}),[v,n]),(0,Q.useEffect)(()=>()=>{u.current&&clearInterval(u.current),d.current&&clearTimeout(d.current),c.current&&!c.current.closed&&c.current.close()},[]);let y=we();return{handleConnect:(i=[])=>{if(!r)return;let f=crypto.randomUUID();m(!0);let p=async r=>{let c;try{c=await _e(e)}catch(e){g(),h(),G.error(e instanceof Error?e.message:`Failed to start ${n} authorization.`);return}let u=Ie(await o.fetchQuery({...J({path:{assistant_id:c}}),staleTime:0}).catch(()=>c===e?a??[]:[]),t);l.current={requestId:f,provider:t,platformAssistantId:c,baselineConnectionSignatures:u},y.mutate({path:{assistant_id:c,provider:t},body:{requested_scopes:i,redirect_after_connect:`${be.account.oauth.popupComplete}?requestId=${f}${s?`&native=1`:``}`}},{onSuccess(e){if(s){Se(e.connect_url);return}r&&!r.closed?r.location.href=e.connect_url:l.current&&(g(),h(),G.error(`${n} connection failed: popup closed.`))},onError(e){g(),h();let t=ge(e,void 0,`Failed to start ${n} authorization.`);G.error(t)}})};if(s){p(null);return}let b=window.open(``,`_blank`,`width=500,height=600`);if(b===null){h(),G.error(`Popup blocked. Please enable popups and try again.`);return}c.current=b,u.current=setInterval(()=>{c.current&&c.current.closed&&l.current&&!d.current&&(d.current=setTimeout(async()=>{d.current=null;let e=l.current;if(!e)return;let t=window.localStorage.getItem(Be(e.requestId));if(t){let n=Re(t);if(n&&n.requestId===e.requestId){_(n),window.localStorage.removeItem(Be(e.requestId));return}}let r=await v(e.platformAssistantId,e.baselineConnectionSignatures);if(l.current){if(r){g(),h(),G.success(`${n} account connected.`);return}g(),h(),G.error(`${n} connection failed: authorization popup closed.`)}},1e3))},100),p(b)},oauthInProgress:f,startOAuthPending:y.isPending}}var $=w();function Qe({displayName:e,providerKey:t,logoUrl:n,connections:r,connectionsLoading:i,startPending:o,oauthInProgress:s,disconnectingId:c,onConnect:l,onDisconnect:u,connectPresets:d=[]}){let f=o||s;return i?(0,$.jsx)(`div`,{className:`flex items-center justify-center py-10`,children:(0,$.jsx)(I,{className:`h-5 w-5 animate-spin text-[var(--content-disabled)]`})}):r.length===0?o||s?(0,$.jsxs)(`div`,{className:`flex flex-col items-center gap-3 py-10`,children:[(0,$.jsx)(Y,{providerKey:t,displayName:e,logoUrl:n,size:48}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,$.jsx)(I,{className:`h-3.5 w-3.5 animate-spin`}),`Waiting for authorization...`]})]}):(0,$.jsxs)(`div`,{className:`flex flex-col items-center gap-3 py-10`,children:[(0,$.jsx)(Y,{providerKey:t,displayName:e,logoUrl:n,size:48}),(0,$.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-secondary)]`,children:`Connect Account to continue`}),(0,$.jsxs)(`div`,{className:`flex flex-col items-center gap-2`,children:[(0,$.jsx)(a,{variant:`primary`,size:`compact`,leftIcon:(0,$.jsx)(X,{}),onClick:()=>l(),disabled:f,children:`Connect Account`}),d.map(e=>(0,$.jsx)(a,{variant:`outlined`,size:`compact`,leftIcon:(0,$.jsx)(Xe,{}),onClick:()=>l(e.scopes),disabled:f,children:e.label},e.id))]})]}):(0,$.jsxs)(`div`,{className:`rounded-lg border border-[var(--border-base)]`,children:[(0,$.jsx)(`ul`,{className:`divide-y divide-[var(--border-base)]`,children:r.map(r=>{let i=c===r.id;return(0,$.jsxs)(`li`,{className:`flex items-center gap-3 px-4 py-3`,children:[(0,$.jsx)(Y,{providerKey:t,displayName:e,logoUrl:n,size:20}),(0,$.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-body-medium-default text-[var(--content-default)]`,children:r.account_label??`${e} Account`}),(0,$.jsx)(a,{variant:`dangerOutline`,size:`compact`,iconOnly:i?(0,$.jsx)(I,{className:`animate-spin`}):(0,$.jsx)(Z,{}),onClick:()=>u(r),disabled:i,"aria-label":`Disconnect ${r.account_label??`${e} account`}`})]},r.id)})}),(0,$.jsx)(`div`,{className:`border-t border-[var(--border-base)] px-4 py-3 dark:border-[var(--border-base)]`,children:f?(0,$.jsxs)(`div`,{className:`flex items-center gap-2 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,$.jsx)(I,{className:`h-3.5 w-3.5 animate-spin`}),`Waiting for authorization...`]}):(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,$.jsx)(a,{variant:`primary`,size:`compact`,leftIcon:(0,$.jsx)(N,{}),onClick:()=>l(),disabled:f,children:`Connect account`}),d.map(e=>(0,$.jsx)(a,{variant:`outlined`,size:`compact`,leftIcon:(0,$.jsx)(Xe,{}),onClick:()=>l(e.scopes),disabled:f,children:e.label},e.id))]})})]})}function $e(e){return e.length>16?`${e.slice(0,12)}…${e.slice(-4)}`:e.length>8?`${e.slice(0,8)}…`:e}function et(e){try{return new Date(e).toLocaleDateString(void 0,{year:`numeric`,month:`short`,day:`numeric`})}catch{return``}}function tt({assistantId:e,providerKey:t,displayName:n,logoUrl:r}){let i=p(),o=S({...fe({path:{assistant_id:e},query:{provider_key:t}}),select:e=>e.apps}),s=S({...ue({path:{assistant_id:e,providerKey:t}}),select:e=>e.oauth_callback_url}),c=o.data??[],l=s.data??null,u=Je({queries:c.map(t=>({...ce({path:{assistant_id:e,appId:t.id}}),select:e=>e.connections}))}),d={};c.forEach((e,t)=>{d[e.id]=u[t]?.data??[]});let f=me({path:{assistant_id:e},query:{provider_key:t}}),m=le({onSuccess:()=>{i.invalidateQueries({queryKey:f}),x(``),w(``),y(!1),G.success(`${n} OAuth app added.`)},onError:e=>{G.error(e.message||`Failed to create OAuth app`)}}),h=se({onSuccess:()=>{i.invalidateQueries({queryKey:f}),G.success(`OAuth app deleted.`)},onError:e=>{G.error(e.message||`Failed to delete OAuth app`)}}),g=de({onSuccess:e=>{`auth_url`in e&&(window.location.href=e.auth_url)},onError:e=>{G.error(e.message||`Failed to start OAuth flow`)}}),_=he(),[v,y]=(0,Q.useState)(!1),[b,x]=(0,Q.useState)(``),[C,w]=(0,Q.useState)(``),[E,O]=(0,Q.useState)(!1),[k,A]=(0,Q.useState)(null),[j,P]=(0,Q.useState)(null),F=m.isPending,L=h.isPending?h.variables?.path?.id??null:null,R=g.isPending?g.variables?.path?.appId??null:null,z=_.isPending?_.variables?.path?.id??null:null,ee=()=>{let n=b.trim(),r=C.trim();!n||!r||m.mutate({path:{assistant_id:e},body:{provider_key:t,client_id:n,client_secret:r}})},te=()=>{let t=k;A(null),t&&h.mutate({path:{assistant_id:e,id:t.id}})},ne=t=>{g.mutate({path:{assistant_id:e,appId:t.id},body:{callback_transport:`gateway`,scopes:[]}})};return o.isLoading?(0,$.jsx)(`div`,{className:`flex items-center justify-center py-10`,children:(0,$.jsx)(I,{className:`h-5 w-5 animate-spin text-[var(--content-disabled)]`})}):(0,$.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[c.length===0||v?(0,$.jsx)(T.Root,{children:(0,$.jsxs)(T.Body,{className:`flex flex-col gap-3`,children:[(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-default)]`,children:c.length===0?`Add your own ${n} OAuth app`:`Add another ${n} OAuth app`}),(0,$.jsx)(`p`,{className:`text-body-small-default leading-relaxed text-[var(--content-tertiary)]`,children:`Credentials are stored encrypted on the assistant and are never sent to Vellum.`})]}),l?(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`p`,{className:`text-body-small-default text-[var(--content-secondary)]`,children:`Redirect URL`}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(V,{type:`text`,value:l,readOnly:!0,fullWidth:!0}),(0,$.jsx)(a,{type:`button`,variant:`outlined`,size:`compact`,onClick:()=>{navigator.clipboard.writeText(l).then(()=>{O(!0),G.success(`Copied to clipboard!`),setTimeout(()=>O(!1),2e3)})},"aria-label":E?`Copied`:`Copy redirect URL`,iconOnly:E?(0,$.jsx)(D,{"aria-hidden":!0}):(0,$.jsx)(M,{"aria-hidden":!0})})]}),(0,$.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Add this URL to your OAuth app's redirect settings.`})]}):null,(0,$.jsx)(V,{label:`Client ID`,type:`text`,value:b,onChange:e=>x(e.target.value),placeholder:`Enter your client ID`,fullWidth:!0}),(0,$.jsx)(V,{label:`Client Secret`,type:`password`,value:C,onChange:e=>w(e.target.value),placeholder:`Enter your client secret`,fullWidth:!0}),(0,$.jsxs)(`div`,{className:`flex items-center justify-end gap-2 pt-1`,children:[c.length>0?(0,$.jsx)(a,{type:`button`,variant:`outlined`,size:`compact`,onClick:()=>{y(!1),x(``),w(``)},disabled:F,children:`Cancel`}):null,(0,$.jsx)(a,{type:`button`,size:`compact`,onClick:ee,disabled:F||!b.trim()||!C.trim(),leftIcon:F?(0,$.jsx)(I,{className:`animate-spin`,"aria-hidden":!0}):(0,$.jsx)(X,{"aria-hidden":!0}),children:`Add App`})]})]})}):null,c.map(e=>{let i=d[e.id]??[],o=L===e.id,s=R===e.id;return(0,$.jsx)(T.Root,{children:(0,$.jsxs)(T.Body,{className:`flex flex-col gap-3`,children:[(0,$.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[(0,$.jsxs)(`div`,{className:`min-w-0 space-y-0.5`,children:[(0,$.jsx)(`p`,{className:`truncate text-body-medium-default text-[var(--content-default)]`,children:$e(e.client_id)}),(0,$.jsxs)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:[`Added `,et(e.created_at)]})]}),(0,$.jsx)(a,{type:`button`,variant:`dangerOutline`,size:`compact`,onClick:()=>A(e),disabled:o,"aria-label":`Delete OAuth app ${$e(e.client_id)}`,iconOnly:o?(0,$.jsx)(I,{className:`animate-spin`,"aria-hidden":!0}):(0,$.jsx)(Z,{"aria-hidden":!0})})]}),i.length>0?(0,$.jsx)(`ul`,{className:`divide-y divide-[var(--border-base)] overflow-hidden rounded-md border border-[var(--border-base)] dark:divide-[var(--border-base)] dark:border-[var(--border-base)]`,children:i.map(i=>{let o=z===i.id;return(0,$.jsxs)(`li`,{className:`flex items-center gap-3 px-3 py-2`,children:[(0,$.jsx)(Y,{providerKey:t,displayName:n,logoUrl:r,size:18}),(0,$.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-body-medium-lighter text-[var(--content-default)]`,children:i.account_info??`${n} Account`}),(0,$.jsx)(a,{type:`button`,variant:`dangerOutline`,size:`compact`,onClick:()=>P({appId:e.id,connection:i}),disabled:o,"aria-label":`Disconnect ${i.account_info??`${n} account`}`,iconOnly:o?(0,$.jsx)(I,{className:`animate-spin`,"aria-hidden":!0}):(0,$.jsx)(Z,{"aria-hidden":!0})})]},i.id)})}):null,(0,$.jsx)(a,{type:`button`,size:`compact`,onClick:()=>ne(e),disabled:s,className:`w-full`,leftIcon:s?(0,$.jsx)(I,{className:`animate-spin`,"aria-hidden":!0}):(0,$.jsx)(N,{"aria-hidden":!0}),children:s?`Waiting for authorization...`:`Connect account`})]})},e.id)}),c.length>0&&!v?(0,$.jsx)(a,{type:`button`,variant:`outlined`,size:`compact`,onClick:()=>y(!0),className:`w-full border-dashed`,leftIcon:(0,$.jsx)(X,{"aria-hidden":!0}),children:`Add Another App`}):null,(0,$.jsx)(K,{open:k!==null,title:`Delete OAuth app`,message:k?`Delete OAuth app '${$e(k.client_id)}'? This will disconnect all linked accounts.`:``,confirmLabel:`Delete`,destructive:!0,onConfirm:te,onCancel:()=>A(null)}),(0,$.jsx)(K,{open:j!==null,title:`Disconnect ${n}?`,message:j?`Disconnect ${j.connection.account_info??`${n} Account`}? You can reconnect later.`:``,confirmLabel:`Disconnect`,destructive:!0,onConfirm:()=>{let t=j;P(null),t&&_.mutate({path:{assistant_id:e,id:t.connection.id}},{onSuccess:()=>{let r=pe({path:{assistant_id:e,appId:t.appId}});i.invalidateQueries({queryKey:r}),i.invalidateQueries({queryKey:f}),G.success(`${n} account disconnected.`)},onError:e=>{G.error(e.message||`Failed to disconnect account`)}})},onCancel:()=>P(null)})]})}var nt={};function rt(e){return nt[e]??[]}function it({assistantId:e,platformAssistantId:t,providerKey:n,displayName:r,description:i,logoUrl:o,platformGate:s,onClose:c}){let l=p(),u=s===`full`,d=!je(),[f,m]=(0,Q.useState)(s===`gated`&&d?`your-own`:`managed`);(0,Q.useEffect)(()=>{!d&&f===`your-own`&&m(`managed`)},[d,f]);let[h,g]=(0,Q.useState)(null),[_,v]=(0,Q.useState)(null),y=De({path:{assistant_id:t}}),{data:b,isLoading:x}=S({...J({path:{assistant_id:t}}),enabled:u}),C=(b??[]).filter(e=>e.provider===n&&e.connected),{handleConnect:w,oauthInProgress:T,startOAuthPending:E}=Ze({assistantId:e,providerKey:n,displayName:r,managedAvailable:u,connectionsQueryKey:y,allConnections:b}),D={path:{assistant_id:t}},O=Ee({onSuccess(e,t){G.success(`${r} account disconnected.`);let n=t.path.connection_id;Te(l,D,e=>e?.filter(e=>e.id!==n)),l.invalidateQueries({queryKey:y}),g(null)},onError(e){let t=ge(e,void 0,`Failed to disconnect ${r} account.`);G.error(t),g(null)}});(0,Q.useEffect)(()=>{let e=e=>{e.key===`Escape`&&c()};document.addEventListener(`keydown`,e);let t=document.body.style.overflow;return document.body.style.overflow=`hidden`,()=>{document.removeEventListener(`keydown`,e),document.body.style.overflow=t}},[c]);let k=e=>{v(e)},A=()=>{let e=_;v(null),e&&(g(e.id),O.mutate({path:{assistant_id:t,connection_id:e.id}}))},j=i?`Configure ${r} OAuth for ${i}`:`Configure ${r} OAuth`;return(0,$.jsxs)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/40 p-4`,children:[(0,$.jsxs)(`div`,{role:`dialog`,"aria-modal":`true`,"aria-labelledby":`integration-modal-title`,className:`flex w-full max-w-[520px] flex-col overflow-hidden rounded-xl bg-white shadow-xl dark:bg-[var(--surface-lift)]`,children:[(0,$.jsxs)(`div`,{className:`flex items-start justify-between gap-3 border-b border-[var(--border-base)] px-5 py-4 dark:border-[var(--border-base)]`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,$.jsx)(Y,{providerKey:n,displayName:r,logoUrl:o,size:32}),(0,$.jsxs)(`div`,{children:[(0,$.jsxs)(`h2`,{id:`integration-modal-title`,className:`text-title-small text-[var(--content-default)]`,children:[r,` OAuth`]}),(0,$.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:j})]})]}),(0,$.jsx)(a,{variant:`ghost`,size:`compact`,iconOnly:(0,$.jsx)(te,{}),"aria-label":`Close`,onClick:c})]}),(0,$.jsxs)(`div`,{className:`space-y-4 px-5 py-4`,children:[s!==`gated`&&d&&(0,$.jsxs)(`div`,{role:`tablist`,"aria-label":`OAuth mode`,className:`flex w-full rounded-md border border-[var(--border-base)] bg-[var(--surface-base)] p-0.5 dark:border-[var(--border-base)] dark:bg-[var(--surface-base)]/40`,children:[(0,$.jsx)(at,{active:f===`managed`,onClick:()=>m(`managed`),children:`Managed`}),(0,$.jsx)(at,{active:f===`your-own`,onClick:()=>m(`your-own`),children:`Your Own`})]}),f===`managed`&&s!==`gated`?s===`disabled`?(0,$.jsx)(Ne,{children:`Log in to the Vellum platform to manage OAuth connections.`}):(0,$.jsx)(Qe,{displayName:r,providerKey:n,logoUrl:o,connections:C,connectionsLoading:x,startPending:E,oauthInProgress:T,disconnectingId:O.isPending?h:null,onConnect:w,onDisconnect:k,connectPresets:rt(n)}):d?(0,$.jsx)(tt,{assistantId:e,providerKey:n,displayName:r,logoUrl:o}):null]}),(0,$.jsx)(`div`,{className:`flex justify-end border-t border-[var(--border-base)] px-5 py-3 dark:border-[var(--border-base)]`,children:(0,$.jsx)(a,{variant:`outlined`,size:`compact`,onClick:c,children:`Confirm`})})]}),(0,$.jsx)(K,{open:_!==null,title:`Disconnect ${r}?`,message:_?`Disconnect ${_.account_label??`${r} Account`}? You can reconnect later.`:``,confirmLabel:`Disconnect`,destructive:!0,onConfirm:A,onCancel:()=>v(null)})]})}function at({active:e,onClick:t,children:n}){return(0,$.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":e,onClick:t,className:`flex-1 cursor-pointer rounded-[5px] px-3 py-1.5 text-body-medium-default transition-colors ${e?`bg-white text-[var(--content-default)] shadow-sm dark:bg-[var(--surface-lift)] dark:text-[var(--content-default)]`:`text-[var(--content-secondary)] hover:text-[var(--content-default)] dark:text-[var(--content-disabled)] dark:hover:text-[var(--content-default)]`}`,children:n})}function ot({platformAssistantId:e,providerKey:t,displayName:n,description:r,logoUrl:i,connection:o,platformGate:s,onConfigure:c}){let l=p(),u=!!o?.connected,[d,f]=(0,Q.useState)(!1),[m,h]=(0,Q.useState)(!1),g=Ce(),_=De({path:{assistant_id:e}}),v={path:{assistant_id:e}},y=Ee({onSuccess(e,t){G.success(`${n} account disconnected.`);let r=t.path.connection_id;Te(l,v,e=>e?.filter(e=>e.id!==r)),l.invalidateQueries({queryKey:_})},onError(e){let t=ge(e,void 0,`Failed to disconnect ${n} account.`);G.error(t)}}),b=()=>{o?.id&&h(!0)};return(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(T.Root,{children:(0,$.jsxs)(T.Body,{padding:`sm`,className:`flex items-center gap-4 px-4`,children:[(0,$.jsx)(Y,{providerKey:t,displayName:n,logoUrl:i,size:32}),(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,$.jsx)(`p`,{className:`truncate text-title-small text-[var(--content-default)]`,children:n}),r&&(0,$.jsx)(`p`,{className:`truncate text-body-medium-lighter text-[var(--content-tertiary)]`,children:r})]}),u&&s===`full`?(0,$.jsx)(`div`,{className:`shrink-0`,children:(0,$.jsx)(st,{displayName:n,open:d,onOpenChange:f,onEditConnections:()=>{f(!1),c()},onDisable:()=>{f(!1),b()},disablePending:y.isPending,isMobile:g})}):(0,$.jsx)(a,{variant:`primary`,onClick:c,className:`shrink-0`,children:`Enable`})]})}),(0,$.jsx)(K,{open:m,title:`Disconnect ${n}?`,message:`Disconnect your ${n} account? You can reconnect it later.`,confirmLabel:`Disconnect`,destructive:!0,onConfirm:()=>{h(!1),o?.id&&y.mutate({path:{assistant_id:e,connection_id:o.id}})},onCancel:()=>h(!1)})]})}function st({displayName:e,open:t,onOpenChange:n,onEditConnections:r,onDisable:i,disablePending:o,isMobile:s}){return s?(0,$.jsxs)(W.Root,{open:t,onOpenChange:n,children:[(0,$.jsx)(W.Trigger,{asChild:!0,children:(0,$.jsx)(a,{variant:`outlined`,rightIcon:(0,$.jsx)(O,{}),"aria-haspopup":`menu`,"aria-expanded":t,children:`Configure`})}),(0,$.jsxs)(W.Content,{children:[(0,$.jsx)(W.Header,{children:(0,$.jsx)(W.Title,{children:e})}),(0,$.jsxs)(W.Body,{children:[(0,$.jsx)(ae,{icon:R,label:`Edit connections`,onSelect:r}),(0,$.jsx)(ae,{icon:o?I:Ve,label:`Disable`,onSelect:()=>{o||i()}})]})]})]}):(0,$.jsxs)(B.Root,{open:t,onOpenChange:n,children:[(0,$.jsx)(B.Trigger,{asChild:!0,children:(0,$.jsx)(a,{variant:`outlined`,rightIcon:(0,$.jsx)(O,{}),"aria-haspopup":`menu`,"aria-expanded":t,children:`Configure`})}),(0,$.jsxs)(B.Content,{align:`end`,sideOffset:4,role:`menu`,className:`w-56 overflow-hidden p-0`,children:[(0,$.jsx)(a,{type:`button`,role:`menuitem`,variant:`ghost`,onClick:r,className:`w-full justify-start rounded-none`,leftIcon:(0,$.jsx)(R,{"aria-hidden":!0}),children:`Edit connections`}),(0,$.jsx)(a,{type:`button`,role:`menuitem`,variant:`dangerGhost`,onClick:i,disabled:o,className:`w-full justify-start rounded-none`,leftIcon:o?(0,$.jsx)(I,{className:`animate-spin`,"aria-hidden":!0}):(0,$.jsx)(Ve,{"aria-hidden":!0}),children:`Disable`})]})]})}var ct=[{value:`none`,label:`None`},{value:`oauth`,label:`OAuth`},{value:`bearer`,label:`Bearer Token`},{value:`api-key`,label:`API Key`}],lt=[{value:`sse`,label:`SSE`},{value:`streamable-http`,label:`Streamable HTTP`},{value:`stdio`,label:`Stdio (command)`}];function ut({open:e,onClose:t,onAdd:n,isPending:r}){let[i,o]=(0,Q.useState)(``),[s,c]=(0,Q.useState)(`sse`),[l,u]=(0,Q.useState)(``),[d,f]=(0,Q.useState)(``),[p,m]=(0,Q.useState)(``),[h,g]=(0,Q.useState)(`none`),[_,v]=(0,Q.useState)(``),[y,b]=(0,Q.useState)(`X-API-Key`),[x,S]=(0,Q.useState)(``),C=(0,Q.useCallback)(()=>{o(``),c(`sse`),u(``),f(``),m(``),g(`none`),v(``),b(`X-API-Key`),S(``)},[]),w=(0,Q.useCallback)(()=>{r||(C(),t())},[r,C,t]),T=(0,Q.useCallback)(()=>{let e=i.trim();if(!e)return;let t={name:e,transportType:s};if(s===`stdio`){let e=d.trim();if(!e)return;t.command=e;let n=p.trim();n&&(t.args=n.split(/\s+/))}else{let e=l.trim();if(!e)return;t.url=e,h===`bearer`&&_.trim()?t.headers={Authorization:`Bearer ${_.trim()}`}:h===`api-key`&&y.trim()&&x.trim()?t.headers={[y.trim()]:x.trim()}:h===`oauth`&&(t.autoAuth=!0)}n(t)},[i,s,l,d,p,h,_,y,x,n]),E=s===`stdio`,D=i.trim()&&(E?d.trim():l.trim());return(0,$.jsx)(U.Root,{open:e,onOpenChange:e=>{e||w()},children:(0,$.jsxs)(U.Content,{size:`md`,children:[(0,$.jsxs)(U.Header,{children:[(0,$.jsx)(U.Title,{icon:Ye,children:`Add MCP Server`}),(0,$.jsx)(U.Description,{children:`Connect to a Model Context Protocol server to extend available tools.`})]}),(0,$.jsx)(U.Body,{children:(0,$.jsxs)(`div`,{className:`space-y-4`,children:[(0,$.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,$.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`mcp-name`,children:`Server name`}),(0,$.jsx)(V,{id:`mcp-name`,type:`text`,value:i,onChange:e=>o(e.target.value),placeholder:`my-server`,fullWidth:!0,autoFocus:!0})]}),(0,$.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,$.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`mcp-transport`,children:`Transport`}),(0,$.jsx)(`select`,{id:`mcp-transport`,value:s,onChange:e=>c(e.target.value),className:`w-full rounded-md border border-[var(--border-element)] bg-[var(--surface-lift)] px-3 py-1.5 text-body-medium-default text-[var(--content-default)] outline-none focus:ring-2 focus:ring-[var(--ring)]`,children:lt.map(e=>(0,$.jsx)(`option`,{value:e.value,children:e.label},e.value))})]}),E?(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,$.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`mcp-command`,children:`Command`}),(0,$.jsx)(V,{id:`mcp-command`,type:`text`,value:d,onChange:e=>f(e.target.value),placeholder:`npx -y @modelcontextprotocol/server-example`,fullWidth:!0})]}),(0,$.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,$.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`mcp-args`,children:`Arguments (space-separated)`}),(0,$.jsx)(V,{id:`mcp-args`,type:`text`,value:p,onChange:e=>m(e.target.value),placeholder:`--port 3000`,fullWidth:!0})]})]}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,$.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`mcp-url`,children:`Server URL`}),(0,$.jsx)(V,{id:`mcp-url`,type:`url`,value:l,onChange:e=>u(e.target.value),placeholder:`https://example.com/mcp`,fullWidth:!0})]}),(0,$.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,$.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`mcp-auth`,children:`Authentication`}),(0,$.jsx)(`select`,{id:`mcp-auth`,value:h,onChange:e=>g(e.target.value),className:`w-full rounded-md border border-[var(--border-element)] bg-[var(--surface-lift)] px-3 py-1.5 text-body-medium-default text-[var(--content-default)] outline-none focus:ring-2 focus:ring-[var(--ring)]`,children:ct.map(e=>(0,$.jsx)(`option`,{value:e.value,children:e.label},e.value))})]}),h===`oauth`?(0,$.jsx)(`p`,{className:`rounded-md border border-[var(--border-element)] bg-[var(--surface-base)] px-3 py-2 text-body-small-default text-[var(--content-tertiary)]`,children:`OAuth credentials will be configured through a browser-based authorization flow after the server is added.`}):null,h===`bearer`?(0,$.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,$.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`mcp-bearer`,children:`Bearer token`}),(0,$.jsx)(V,{id:`mcp-bearer`,type:`password`,value:_,onChange:e=>v(e.target.value),placeholder:`tok_...`,fullWidth:!0})]}):null,h===`api-key`?(0,$.jsxs)(`div`,{className:`flex gap-3`,children:[(0,$.jsxs)(`div`,{className:`flex-1 space-y-1.5`,children:[(0,$.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`mcp-apikey-header`,children:`Header name`}),(0,$.jsx)(V,{id:`mcp-apikey-header`,type:`text`,value:y,onChange:e=>b(e.target.value),placeholder:`X-API-Key`,fullWidth:!0})]}),(0,$.jsxs)(`div`,{className:`flex-1 space-y-1.5`,children:[(0,$.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`mcp-apikey-value`,children:`API key`}),(0,$.jsx)(V,{id:`mcp-apikey-value`,type:`password`,value:x,onChange:e=>S(e.target.value),placeholder:`sk_...`,fullWidth:!0})]})]}):null]})]})}),(0,$.jsxs)(U.Footer,{children:[(0,$.jsx)(a,{variant:`ghost`,onClick:w,disabled:r,children:`Cancel`}),(0,$.jsx)(a,{variant:`primary`,onClick:T,disabled:!D||r,children:r?`Adding...`:`Add Server`})]})]})})}async function dt(e){let{data:t,response:n}=await q.get({url:`/v1/assistants/{assistant_id}/internal/mcp/list`,path:{assistant_id:e}});if(!n?.ok)throw Error(`Failed to fetch MCP servers: ${n?.status}`);return t}async function ft(e){let{data:t,response:n}=await q.get({url:`/v1/assistants/{assistant_id}/internal/mcp/tools-summary`,path:{assistant_id:e}});if(!n?.ok)throw Error(`Failed to fetch MCP tools summary: ${n?.status}`);return t}async function pt(e,t){let{response:n}=await q.post({url:`/v1/assistants/{assistant_id}/internal/mcp/update`,path:{assistant_id:e},body:t});if(!n?.ok)throw Error(`Failed to update MCP server: ${n?.status}`)}async function mt(e,t){let{response:n}=await q.post({url:`/v1/assistants/{assistant_id}/internal/mcp/add`,path:{assistant_id:e},body:t});if(!n?.ok)throw Error(`Failed to add MCP server: ${n?.status}`)}async function ht(e,t){let{response:n}=await q.post({url:`/v1/assistants/{assistant_id}/internal/mcp/remove`,path:{assistant_id:e},body:{name:t}});if(!n?.ok)throw Error(`Failed to remove MCP server: ${n?.status}`)}async function gt(e,t){let{data:n,response:r}=await q.post({url:`/v1/assistants/{assistant_id}/internal/mcp/auth/start`,path:{assistant_id:e},body:{serverId:t}});if(!r?.ok)throw Error(`Failed to start MCP auth: ${r?.status}`);return n}async function _t(e,t){let{data:n,response:r}=await q.get({url:`/v1/assistants/{assistant_id}/internal/mcp/auth/status/${encodeURIComponent(t)}`,path:{assistant_id:e}});if(!r?.ok)throw Error(`Failed to poll MCP auth status: ${r?.status}`);return n}async function vt(e,t){let{response:n}=await q.post({url:`/v1/assistants/{assistant_id}/internal/mcp/auth/revoke`,path:{assistant_id:e},body:{serverId:t}});if(!n?.ok)throw Error(`Failed to revoke OAuth for ${t}: ${n?.status}`)}async function yt(e){let{response:t}=await q.post({url:`/v1/assistants/{assistant_id}/internal/mcp/reload`,path:{assistant_id:e},body:{}});if(!t?.ok)throw Error(`Failed to reload MCP servers: ${t?.status}`)}var bt={connected:{icon:j,label:`Connected`,className:`text-[var(--system-positive-strong)]`},"needs-auth":{icon:P,label:`Needs Auth`,className:`text-[var(--system-warning-strong)]`},disabled:{icon:Ae,label:`Disabled`,className:`text-[var(--content-tertiary)]`}},xt={icon:A,label:`Error`,className:`text-[var(--system-negative-strong)]`};function St({server:e,toolsSummary:t,onToggleEnabled:n,onRemove:r,onConfigure:i,onAuthenticate:o,onRevokeOAuth:s,isUpdating:c,isAuthenticating:l,isRevoking:u}){let[d,f]=(0,Q.useState)(!1),p=bt[e.status]??xt,m=p.icon,h=(0,Q.useCallback)(t=>n(e.id,t),[n,e.id]),g=(0,Q.useCallback)(()=>r(e.id),[r,e.id]),_=(0,Q.useCallback)(()=>i(e.id),[i,e.id]),v=(0,Q.useCallback)(()=>o(e.id),[o,e.id]),y=(0,Q.useCallback)(()=>s(e.id),[s,e.id]),b=(0,Q.useCallback)(()=>f(e=>!e),[]);return(0,$.jsx)(T.Root,{children:(0,$.jsxs)(T.Body,{children:[(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,$.jsx)(`div`,{className:`flex min-w-0 flex-1 items-center gap-3`,children:(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(`span`,{className:`truncate text-body-medium-default text-[var(--content-default)]`,children:e.id}),(0,$.jsxs)(`span`,{className:`flex items-center gap-1 text-label-medium-default ${p.className}`,children:[(0,$.jsx)(m,{className:`h-3.5 w-3.5`}),p.label]}),e.hasOAuth?(0,$.jsx)(`span`,{className:`rounded-full bg-[var(--surface-lift)] px-2 py-0.5 text-label-small-default text-[var(--content-secondary)]`,children:`OAuth`}):null]}),(0,$.jsxs)(`div`,{className:`mt-0.5 flex items-center gap-2 text-body-small-default text-[var(--content-tertiary)]`,children:[(0,$.jsx)(`span`,{children:e.transport.type}),t?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`span`,{"aria-hidden":`true`,children:`·`}),(0,$.jsxs)(`span`,{children:[t.toolCount,` `,t.toolCount===1?`tool`:`tools`]}),(0,$.jsx)(`span`,{"aria-hidden":`true`,children:`·`}),(0,$.jsxs)(`span`,{children:[`~`,t.estimatedTokens.toLocaleString(),` tokens`]})]}):null]})]})}),(0,$.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[c||l?(0,$.jsx)(I,{className:`h-4 w-4 animate-spin text-[var(--content-tertiary)]`}):null,e.status===`needs-auth`&&e.transport.type!==`stdio`&&!e.hasOAuth?(0,$.jsx)(a,{variant:`ghost`,size:`compact`,leftIcon:(0,$.jsx)(L,{}),onClick:v,disabled:l,children:l?`Authenticating...`:`Authenticate`}):null,e.hasOAuth?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(a,{variant:`ghost`,size:`compact`,leftIcon:(0,$.jsx)(z,{}),onClick:v,disabled:l,tooltip:`Re-authenticate OAuth`,children:`Re-auth`}),(0,$.jsx)(a,{variant:`dangerGhost`,size:`compact`,leftIcon:(0,$.jsx)(F,{}),onClick:y,disabled:u,tooltip:`Revoke OAuth credentials`,children:u?`Revoking...`:`Revoke`})]}):null,(0,$.jsx)(re,{checked:e.enabled,onChange:h,disabled:c,"aria-label":`${e.enabled?`Disable`:`Enable`} ${e.id}`}),(0,$.jsx)(a,{variant:`ghost`,size:`compact`,onClick:_,tooltip:`Configure`,children:`Configure`}),(0,$.jsx)(a,{variant:`dangerGhost`,size:`compact`,iconOnly:(0,$.jsx)(Z,{}),onClick:g,tooltip:`Remove server`,"aria-label":`Remove ${e.id}`})]})]}),t&&t.tools.length>0?(0,$.jsxs)(`div`,{className:`mt-3 border-t border-[var(--border-base)] pt-2`,children:[(0,$.jsxs)(`button`,{type:`button`,onClick:b,className:`flex w-full cursor-pointer items-center gap-1 text-body-small-default text-[var(--content-secondary)] hover:text-[var(--content-default)]`,children:[d?(0,$.jsx)(O,{className:`h-3.5 w-3.5`}):(0,$.jsx)(k,{className:`h-3.5 w-3.5`}),t.toolCount,` registered `,t.toolCount===1?`tool`:`tools`]}),d?(0,$.jsx)(`div`,{className:`mt-2 max-h-60 overflow-y-auto`,children:t.tools.map(e=>(0,$.jsx)(ie,{title:e.name,subtitle:e.description||void 0,trailing:(0,$.jsxs)(`span`,{className:`whitespace-nowrap text-body-small-default text-[var(--content-secondary)]`,children:[`~`,e.estimatedTokens.toLocaleString(),` tok`]})},e.name))}):null]}):null]})})}var Ct=[{value:`none`,label:`None`},{value:`bearer`,label:`Bearer Token`},{value:`api-key`,label:`API Key`}],wt=[`low`,`medium`,`high`];function Tt({server:e,toolsSummary:t,onClose:n,onSave:r,isPending:i}){let[o,s]=(0,Q.useState)(`medium`),[c,l]=(0,Q.useState)(`none`),[u,d]=(0,Q.useState)(``),[f,p]=(0,Q.useState)(`X-API-Key`),[m,h]=(0,Q.useState)(``);(0,Q.useEffect)(()=>{e&&(s(e.defaultRiskLevel),l(e.authType),d(``),p(e.authHeaderName??`X-API-Key`),h(``))},[e]);let g=(0,Q.useCallback)(()=>{if(!e)return;let t=c!==e.authType,n=c===`bearer`&&u.trim()!==``,i=c===`api-key`&&f.trim()!==``&&m.trim()!==``,a=t||n||i,s;s=a?c===`none`?null:c===`bearer`&&u.trim()?{Authorization:`Bearer ${u.trim()}`}:c===`api-key`&&f.trim()&&m.trim()?{[f.trim()]:m.trim()}:void 0:void 0,r(e.id,{name:e.id,defaultRiskLevel:o,...s===void 0?{}:{headers:s}})},[e,o,c,u,f,m,r]),_=(0,Q.useCallback)(()=>{i||n()},[i,n]);return e?(0,$.jsx)(U.Root,{open:!!e,onOpenChange:e=>{e||_()},children:(0,$.jsxs)(U.Content,{size:`lg`,children:[(0,$.jsxs)(U.Header,{children:[(0,$.jsx)(U.Title,{icon:Ye,children:e.id}),(0,$.jsxs)(U.Description,{children:[e.transport.type,` transport · `,e.status]})]}),(0,$.jsx)(U.Body,{children:(0,$.jsxs)(`div`,{className:`space-y-5`,children:[(0,$.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,$.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`mcp-risk`,children:`Default risk level`}),(0,$.jsx)(`select`,{id:`mcp-risk`,value:o,onChange:e=>s(e.target.value),className:`w-full rounded-md border border-[var(--border-element)] bg-[var(--surface-lift)] px-3 py-1.5 text-body-medium-default text-[var(--content-default)] outline-none focus:ring-2 focus:ring-[var(--ring)]`,children:wt.map(e=>(0,$.jsx)(`option`,{value:e,children:e.charAt(0).toUpperCase()+e.slice(1)},e))})]}),e.transport.type===`stdio`?null:(0,$.jsxs)($.Fragment,{children:[e.hasOAuth?(0,$.jsxs)(`div`,{className:`flex items-center gap-2 rounded-md border border-[var(--border-element)] bg-[var(--surface-base)] px-3 py-2`,children:[(0,$.jsx)(`span`,{className:`text-body-small-default text-[var(--content-secondary)]`,children:`Authentication`}),(0,$.jsx)(`span`,{className:`rounded-full bg-[var(--surface-lift)] px-2 py-0.5 text-label-small-default text-[var(--content-default)]`,children:`OAuth`}),(0,$.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`— managed via OAuth flow`})]}):null,e.hasOAuth?null:(0,$.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,$.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`mcp-detail-auth`,children:`Authentication`}),(0,$.jsx)(`select`,{id:`mcp-detail-auth`,value:c,onChange:e=>l(e.target.value),className:`w-full rounded-md border border-[var(--border-element)] bg-[var(--surface-lift)] px-3 py-1.5 text-body-medium-default text-[var(--content-default)] outline-none focus:ring-2 focus:ring-[var(--ring)]`,children:Ct.map(e=>(0,$.jsx)(`option`,{value:e.value,children:e.label},e.value))})]}),c===`bearer`&&!e.hasOAuth?(0,$.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,$.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`mcp-detail-bearer`,children:`Bearer token`}),(0,$.jsx)(V,{id:`mcp-detail-bearer`,type:`password`,value:u,onChange:e=>d(e.target.value),placeholder:e.hasStaticAuth&&e.authType===`bearer`?`•••••••• (leave blank to keep current)`:`tok_...`,fullWidth:!0})]}):null,c===`api-key`&&!e.hasOAuth?(0,$.jsxs)(`div`,{className:`flex gap-3`,children:[(0,$.jsxs)(`div`,{className:`flex-1 space-y-1.5`,children:[(0,$.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`mcp-detail-apikey-header`,children:`Header name`}),(0,$.jsx)(V,{id:`mcp-detail-apikey-header`,type:`text`,value:f,onChange:e=>p(e.target.value),placeholder:`X-API-Key`,fullWidth:!0})]}),(0,$.jsxs)(`div`,{className:`flex-1 space-y-1.5`,children:[(0,$.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`mcp-detail-apikey-value`,children:`API key`}),(0,$.jsx)(V,{id:`mcp-detail-apikey-value`,type:`password`,value:m,onChange:e=>h(e.target.value),placeholder:e.hasStaticAuth&&e.authType===`api-key`?`•••••••• (leave blank to keep current)`:`sk_...`,fullWidth:!0})]})]}):null]}),t&&t.tools.length>0?(0,$.jsxs)(`div`,{className:`space-y-2`,children:[(0,$.jsxs)(`h3`,{className:`text-body-medium-default text-[var(--content-default)]`,children:[`Registered tools (`,t.toolCount,`)`]}),(0,$.jsxs)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:[`Total estimated token overhead: ~`,t.estimatedTokens.toLocaleString(),` tokens`]}),(0,$.jsx)(`div`,{className:`max-h-64 overflow-y-auto rounded-lg border border-[var(--border-base)]`,children:(0,$.jsxs)(`table`,{className:`w-full text-body-small-default`,children:[(0,$.jsx)(`thead`,{children:(0,$.jsxs)(`tr`,{className:`border-b border-[var(--border-base)] bg-[var(--surface-base)]`,children:[(0,$.jsx)(`th`,{className:`px-3 py-2 text-left font-medium text-[var(--content-secondary)]`,children:`Tool`}),(0,$.jsx)(`th`,{className:`px-3 py-2 text-left font-medium text-[var(--content-secondary)]`,children:`Description`}),(0,$.jsx)(`th`,{className:`px-3 py-2 text-right font-medium text-[var(--content-secondary)]`,children:`Tokens`})]})}),(0,$.jsx)(`tbody`,{children:t.tools.map(e=>(0,$.jsxs)(`tr`,{className:`border-b border-[var(--border-base)] last:border-b-0`,children:[(0,$.jsx)(`td`,{className:`px-3 py-2 font-medium text-[var(--content-default)]`,children:e.name}),(0,$.jsx)(`td`,{className:`max-w-xs truncate px-3 py-2 text-[var(--content-tertiary)]`,children:e.description||`—`}),(0,$.jsxs)(`td`,{className:`px-3 py-2 text-right text-[var(--content-tertiary)]`,children:[`~`,e.estimatedTokens.toLocaleString()]})]},e.name))})]})})]}):null]})}),(0,$.jsxs)(U.Footer,{children:[(0,$.jsx)(a,{variant:`ghost`,onClick:_,disabled:i,children:`Cancel`}),(0,$.jsx)(a,{variant:`primary`,onClick:g,disabled:i,children:i?`Saving...`:`Save`})]})]})}):null}var Et=`mcp-servers`,Dt=`mcp-tools-summary`,Ot=`Help me set up an MCP server to extend you with external tools.`;function kt(){let e=We(),t=p(),n=o(),r=Oe.use.mcpAddServer(),i=Oe.use.hasHydrated(),[s,c]=(0,Q.useState)(!1),[l,u]=(0,Q.useState)(null),[d,f]=(0,Q.useState)(null),[m,h]=(0,Q.useState)(new Set),[g,_]=(0,Q.useState)(!1),[v,y]=(0,Q.useState)(!1),[b,x]=(0,Q.useState)(!1),[C,w]=(0,Q.useState)(!1),[T,E]=(0,Q.useState)(null),[D,O]=(0,Q.useState)(null),{data:k,isLoading:A,isError:j}=S({queryKey:[Et,e],queryFn:()=>dt(e)}),{data:M}=S({queryKey:[Dt,e],queryFn:()=>ft(e)}),N=(0,Q.useCallback)(()=>{t.invalidateQueries({queryKey:[Et,e]}),t.invalidateQueries({queryKey:[Dt,e]})},[t,e]),P=(0,Q.useMemo)(()=>{let e=new Map;if(M)for(let t of M.servers)e.set(t.serverId,t);return e},[M]),F=(0,Q.useMemo)(()=>!l||!k?null:k.servers.find(e=>e.id===l)??null,[l,k]),L=(0,Q.useCallback)(async(t,n)=>{h(e=>new Set(e).add(t));try{await pt(e,{name:t,enabled:n}),N()}catch{G.error(`Failed to ${n?`enable`:`disable`} ${t}`)}finally{h(e=>{let n=new Set(e);return n.delete(t),n})}},[e,N]),R=(0,Q.useCallback)(async()=>{if(d){y(!0);try{await ht(e,d),N(),G.success(`Removed ${d}`),f(null)}catch{G.error(`Failed to remove ${d}`)}finally{y(!1)}}},[d,e,N]),ee=(0,Q.useCallback)(async t=>{E(t);let n;try{n=await gt(e,t)}catch{G.error(`Failed to start authentication for ${t}`),E(null);return}try{if(n.already_authenticated){G.success(`${t} is already authenticated`),N();return}window.open(n.auth_url,`_blank`,`noopener,noreferrer`);for(let n=0;n<60;n++){await new Promise(e=>setTimeout(e,3e3));let n=await _t(e,t);if(n.status===`complete`){G.success(`${t} authenticated successfully`),N();return}if(n.status===`error`){G.error(n.error??`Authentication failed for ${t}`);return}}G.error(`Authentication timed out for ${t}`)}catch{G.error(`Authentication polling failed for ${t}`)}finally{E(null),N()}},[e,N]),te=(0,Q.useCallback)(async t=>{O(t);try{await vt(e,t),N(),G.success(`OAuth credentials revoked for ${t}`)}catch{G.error(`Failed to revoke OAuth for ${t}`)}finally{O(null)}},[e,N]),ne=(0,Q.useCallback)(async t=>{let n=t.autoAuth?window.open(`about:blank`,`_blank`,`noopener`):null;_(!0);try{await mt(e,t),N(),G.success(`Added ${t.name}`),c(!1)}catch{G.error(`Failed to add ${t.name}`),n?.close(),_(!1);return}if(_(!1),t.autoAuth){E(t.name);try{let r=await gt(e,t.name);if(r.already_authenticated){n?.close(),G.success(`${t.name} is already authenticated`),N();return}n?n.location.href=r.auth_url:window.open(r.auth_url,`_blank`,`noopener,noreferrer`);for(let n=0;n<60;n++){await new Promise(e=>setTimeout(e,3e3));let n=await _t(e,t.name);if(n.status===`complete`){G.success(`${t.name} authenticated successfully`),N();return}if(n.status===`error`){G.error(n.error??`Authentication failed for ${t.name}`);return}}G.error(`Authentication timed out for ${t.name}`)}catch{n?.close(),G.error(`Failed to start authentication for ${t.name}`)}finally{E(null),N()}}},[e,N]),B=(0,Q.useCallback)(async(t,n)=>{x(!0);try{await pt(e,n),N(),G.success(`Updated ${t}`),u(null)}catch{G.error(`Failed to update ${t}`)}finally{x(!1)}},[e,N]),V=(0,Q.useCallback)(async()=>{w(!0);try{await yt(e),N(),G.success(`MCP servers reloaded`)}catch{G.error(`Failed to reload MCP servers`)}finally{w(!1)}},[e,N]),re=(0,Q.useCallback)(()=>{r?c(!0):He(n,{prompt:Ot})},[r,n]),H=k?.servers??[];return(0,$.jsxs)(`div`,{className:`space-y-4`,children:[(0,$.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`h2`,{className:`text-title-small text-[var(--content-default)]`,children:`MCP Servers`}),(0,$.jsx)(`p`,{className:`mt-0.5 text-body-small-default text-[var(--content-tertiary)]`,children:`Manage Model Context Protocol server connections and their registered tools.`})]}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(a,{variant:`ghost`,size:`compact`,iconOnly:(0,$.jsx)(z,{className:C?`animate-spin`:``}),onClick:V,disabled:C,tooltip:`Reload all servers`,"aria-label":`Reload MCP servers`}),r?(0,$.jsx)(a,{variant:`primary`,size:`compact`,leftIcon:(0,$.jsx)(X,{}),onClick:()=>c(!0),children:`Add Server`}):null]})]}),M?(0,$.jsxs)(`div`,{className:`flex gap-4 text-body-small-default text-[var(--content-tertiary)]`,children:[(0,$.jsxs)(`span`,{children:[M.totalToolCount,` total `,M.totalToolCount===1?`tool`:`tools`]}),(0,$.jsxs)(`span`,{children:[`~`,M.totalEstimatedTokens.toLocaleString(),` total tokens`]})]}):null,A?(0,$.jsxs)(`div`,{className:`flex items-center gap-2 py-6 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,$.jsx)(I,{className:`h-4 w-4 animate-spin`}),(0,$.jsx)(`span`,{children:`Loading MCP servers...`})]}):j?(0,$.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Failed to load MCP servers. Check that an assistant is running.`}):H.length===0?(0,$.jsxs)(`button`,{type:`button`,onClick:re,disabled:!i,className:`flex w-full flex-col items-center gap-2 rounded-lg border border-dashed border-[var(--border-element)] px-4 py-12 text-center transition-colors hover:border-[var(--border-active)] hover:bg-[var(--surface-hover)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)] disabled:pointer-events-none`,children:[(0,$.jsx)(Ye,{className:`h-6 w-6 text-[var(--content-disabled)]`}),(0,$.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-default)]`,children:`No MCP Servers`}),(0,$.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:r?`Add an MCP server to extend your assistant with external tools.`:`Chat with your assistant to set up an MCP server.`})]}):(0,$.jsx)(`div`,{className:`space-y-2`,children:H.map(e=>(0,$.jsx)(St,{server:e,toolsSummary:P.get(e.id),onToggleEnabled:L,onRemove:f,onConfigure:u,onAuthenticate:ee,onRevokeOAuth:te,isUpdating:m.has(e.id),isAuthenticating:T===e.id,isRevoking:D===e.id},e.id))}),r?(0,$.jsx)(ut,{open:s,onClose:()=>c(!1),onAdd:ne,isPending:g}):null,(0,$.jsx)(Tt,{server:F,toolsSummary:l?P.get(l):void 0,onClose:()=>u(null),onSave:B,isPending:b}),(0,$.jsx)(K,{open:!!d,title:`Remove MCP Server`,message:`Are you sure you want to remove "${d}"? This will disconnect all tools provided by this server.`,confirmLabel:`Remove`,destructive:!0,isPending:v,onConfirm:R,onCancel:()=>f(null)})]})}function At(){return(0,$.jsx)(kt,{})}function jt(e,t){let[n,r]=(0,Q.useState)({platformAssistantId:null,isLoading:!1,error:null});return(0,Q.useEffect)(()=>{if(!t||!e){r({platformAssistantId:null,isLoading:!1,error:null});return}let n=!0;return r({platformAssistantId:null,isLoading:!0,error:null}),_e(e).then(e=>{n&&r({platformAssistantId:e,isLoading:!1,error:null})}).catch(e=>{n&&r({platformAssistantId:null,isLoading:!1,error:e instanceof Error?e:Error(String(e))})}),()=>{n=!1}},[e,t]),n}var Mt=`vellum:integrations:bannerDismissed`,Nt=[{value:`all`,label:`All`},{value:`enabled`,label:`Enabled`},{value:`not-enabled`,label:`Not Enabled`}];function Pt(e,t){return e?.find(e=>e.provider===t)??null}function Ft(e){return e===`mcp`?`mcp`:`oauth`}function It(){let[e]=s(),i=o(),a=Ue(),[c,l]=(0,Q.useState)(null),[u,d]=(0,Q.useState)(!0),[f,p]=(0,Q.useState)(``),[m,h]=(0,Q.useState)(`all`),[g,_]=(0,Q.useState)(!1),[v,y]=(0,Q.useState)(!0),[b,x]=(0,Q.useState)(null);(0,Q.useEffect)(()=>{y(t(Mt,`false`)===`true`)},[]);let C=()=>{y(!0),n(Mt,`true`)};(0,Q.useEffect)(()=>{let e=!0;return(async()=>{try{let t=await ve();e&&t.ok&&l(t.data)}catch(e){r(e,{context:`integrations.getAssistant`})}finally{e&&d(!1)}})(),()=>{e=!1}},[]);let{platformAssistantId:w,isLoading:T}=jt(c?.id,a===`full`),{data:E,isLoading:D,isError:k}=S({...oe({path:{assistant_id:c?.id??``}}),select:e=>e.providers,enabled:!!c}),{data:A,isLoading:j}=S({...J({path:{assistant_id:w??``}}),enabled:!!w&&a===`full`});(0,Q.useEffect)(()=>{let t=e.get(`oauth_status`);if(!t)return;let n=e.get(`oauth_provider`),r=n?n.charAt(0).toUpperCase()+n.slice(1):null;if(t===`connected`)G.success(r?`${r} account connected successfully.`:`Account connected successfully.`);else if(t===`error`){let t=e.get(`oauth_code`)??`unknown`;G.error({denied:`Authorization was denied. Please try again.`,state_invalid:`Authorization state was invalid. Please try again.`,state_expired:`Authorization expired. Please try again.`,exchange_failed:`Failed to complete authorization. Please try again.`,identity_failed:`Failed to verify account identity. Please try again.`}[t]??(r?`Failed to connect ${r}.`:`Failed to connect. Please try again.`))}i(be.settings.integrations,{replace:!0})},[e,i]);let M=(0,Q.useMemo)(()=>E?.filter(e=>e.supports_managed_mode)??[],[E]),N=(0,Q.useMemo)(()=>{let e=f.trim().toLowerCase(),t=M.filter(t=>{if(t.provider_key===`slack`)return!1;if(!e)return!0;let n=(t.display_name??t.provider_key).toLowerCase(),r=(t.description??``).toLowerCase();return n.includes(e)||r.includes(e)});return m!==`all`&&(t=t.filter(e=>{let t=!!Pt(A,e.provider_key)?.connected;return m===`enabled`?t:!t})),[...t].sort((e,t)=>{let n=!!Pt(A,e.provider_key)?.connected;if(n!==!!Pt(A,t.provider_key)?.connected)return n?-1:1;let r=(e.display_name??e.provider_key).toLowerCase(),i=(t.display_name??t.provider_key).toLowerCase();return r.localeCompare(i)})},[M,A,f,m]),P=u||D||j||T,F=Nt.find(e=>e.value===m)?.label??`All`,L=(()=>{if(f.trim())return`No integrations matched`;switch(m){case`enabled`:return`No Enabled Integrations`;case`not-enabled`:return`All Integrations Are Enabled`;default:return`No Integrations Available`}})(),R=(()=>{if(f.trim())return`No integrations matched "${f.trim()}"`;switch(m){case`enabled`:return`Connect an integration to get started.`;case`not-enabled`:return`All available integrations have been connected.`;default:return`Check your connection and try again.`}})(),z=(0,Q.useMemo)(()=>b?M.find(e=>e.provider_key===b)??null:null,[M,b]);return(0,$.jsxs)(`div`,{className:`space-y-4`,children:[!v&&(0,$.jsxs)(ne,{tone:`info`,icon:(0,$.jsx)(ee,{className:`h-3.5 w-3.5`}),onDismiss:C,children:[(0,$.jsx)(`span`,{className:`text-body-medium-default`,children:`Tip:`}),` You can enable integrations by mentioning them in chat.`]}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(V,{type:`text`,value:f,onChange:e=>p(e.target.value),placeholder:`Search Integrations`,"aria-label":`Search integrations`,leftIcon:(0,$.jsx)(Pe,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),fullWidth:!0,wrapperClassName:`flex-1`}),(0,$.jsxs)(B.Root,{open:g,onOpenChange:_,children:[(0,$.jsx)(B.Trigger,{asChild:!0,children:(0,$.jsxs)(`button`,{type:`button`,"aria-haspopup":`listbox`,"aria-expanded":g,className:`flex w-36 cursor-pointer items-center justify-between gap-2 rounded-md border border-[var(--border-element)] bg-[var(--surface-lift)] px-3 py-1.5 text-body-medium-lighter text-[var(--content-default)] transition-colors hover:bg-[var(--ghost-hover)]`,children:[(0,$.jsx)(`span`,{children:F}),(0,$.jsx)(O,{className:`h-3.5 w-3.5`})]})}),(0,$.jsx)(B.Content,{align:`end`,sideOffset:4,className:`w-36 overflow-hidden p-0`,children:(0,$.jsx)(`div`,{role:`listbox`,children:Nt.map(e=>{let t=e.value===m;return(0,$.jsx)(`button`,{type:`button`,role:`option`,"aria-selected":t,onClick:()=>{h(e.value),_(!1)},className:`flex w-full cursor-pointer items-center px-3 py-1.5 text-left hover:bg-[var(--ghost-hover)] ${t?`text-body-medium-default text-[var(--content-default)]`:`text-body-medium-lighter text-[var(--content-default)]`}`,children:e.label},e.value)})})})]})]}),(0,$.jsx)(`div`,{children:P?(0,$.jsxs)(`div`,{className:`flex items-center gap-2 py-6 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,$.jsx)(I,{className:`h-4 w-4 animate-spin`}),(0,$.jsx)(`span`,{children:`Loading...`})]}):k?(0,$.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Failed to load integrations. Please try again.`}):c?N.length===0?(0,$.jsxs)(`div`,{className:`flex flex-col items-center gap-2 rounded-lg border border-dashed border-[var(--border-element)] px-4 py-12 text-center`,children:[(0,$.jsx)(Pe,{className:`h-6 w-6 text-[var(--content-disabled)]`}),(0,$.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-default)]`,children:L}),(0,$.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:R})]}):(0,$.jsx)(`div`,{className:`space-y-2`,children:N.map(e=>(0,$.jsx)(ot,{platformAssistantId:w??c.id,providerKey:e.provider_key,displayName:e.display_name??e.provider_key,description:e.description,logoUrl:e.logo_url,connection:Pt(A,e.provider_key),platformGate:a,onConfigure:()=>x(e.provider_key)},e.provider_key))}):(0,$.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`No assistant found. Hatch an assistant to connect integrations.`})}),z&&c&&(0,$.jsx)(it,{assistantId:c.id,platformAssistantId:w??c.id,providerKey:z.provider_key,displayName:z.display_name??z.provider_key,description:z.description,logoUrl:z.logo_url,platformGate:a,onClose:()=>x(null)})]})}function Lt(){let[e,t]=s(),n=Ft(e.get(`tab`));return(0,$.jsx)(`div`,{className:`space-y-6`,children:(0,$.jsxs)(H.Root,{value:n,onValueChange:n=>{let r=Ft(n),i=new URLSearchParams(e);r===`mcp`?i.set(`tab`,`mcp`):i.delete(`tab`),t(i,{replace:!0})},children:[(0,$.jsxs)(H.List,{children:[(0,$.jsx)(H.Trigger,{value:`oauth`,children:`OAuth`}),(0,$.jsx)(H.Trigger,{value:`mcp`,children:`MCP`})]}),(0,$.jsx)(H.Panel,{value:`oauth`,className:`pt-4`,children:(0,$.jsx)(Q.Suspense,{children:(0,$.jsx)(It,{})})}),(0,$.jsx)(H.Panel,{value:`mcp`,className:`pt-4`,children:(0,$.jsx)(At,{})})]})})}export{Lt as IntegrationsPage};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-DJZBPgpf.js";import{i as n,n as r,u as i}from"./chunk-5KNZJZUH-DdS6bb-3.js";import{t as a}from"./jsx-runtime-CVSDxk6A.js";import{t as o}from"./cn-C36Yvcac.js";import{t as s}from"./typography-D5f7kt80.js";import"./src-4xooMXeT.js";import{o as c}from"./routes-iUGoIqW2.js";import{n as l}from"./use-is-mobile-DJUk0lC8.js";import{t as u}from"./assistant-identity-store-Cp3CD7d1.js";import{t as d}from"./assistant-feature-flag-store-BRGydSRn.js";import{kn as f}from"./index-CoobbyzR.js";import{t as p}from"./page-shell-CejvYP6I.js";import{t as m}from"./plugins-surface-DYk9FmM2.js";var h=e(t(),1),g=a(),_=[{label:`Identity`,to:c.identity},{label:`Skills`,to:c.skills},{label:`Workspace`,to:c.workspace},{label:`Contacts`,to:c.contacts.root}],v={label:`Plugins`,to:c.plugins},y={label:`Channels`,to:c.channels};function b(){let e=u.use.name(),t=m(),a=d.use.channelTrustFloors(),{pathname:c}=i(),b=l(),x=f.use.setTopBarCenter(),S=t?[_[0],v,..._.slice(1)]:_,C=a?[...S,y]:S;return(0,h.useEffect)(()=>(x(b?(0,g.jsxs)(s,{variant:`body-medium-default`,className:`truncate text-[var(--content-secondary)]`,children:[`About `,e||`Assistant`]}):null),()=>{x(null)}),[b,e,x]),(0,g.jsxs)(p,{children:[(0,g.jsxs)(`h1`,{className:`mb-4 shrink-0 text-title-large text-[var(--content-default)] max-md:hidden`,children:[`About `,e||`Assistant`]}),(0,g.jsx)(`nav`,{className:`mb-4 flex shrink-0 items-center overflow-x-auto border-b border-[var(--border-base)]`,style:{scrollbarWidth:`none`,WebkitOverflowScrolling:`touch`},"aria-label":`About assistant sections`,children:C.map(({label:e,to:t})=>{let n=c===t||c.startsWith(t+`/`);return(0,g.jsx)(r,{to:t,className:o(`relative -mb-px inline-flex cursor-pointer items-center gap-1.5 border-b-2 border-transparent bg-transparent px-2.5 py-[7px]`,`text-body-medium-default whitespace-nowrap`,`text-[var(--content-secondary)] transition-colors`,`outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)] focus-visible:ring-offset-0`,`hover:bg-[var(--surface-hover)] hover:text-[var(--content-default)]`,n&&`border-[var(--border-active)] text-[var(--primary-active)]`,n&&`hover:bg-transparent`),children:e},t)})}),(0,g.jsx)(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-y-auto`,children:(0,g.jsx)(n,{})})]})}export{b as IntelligenceLayout};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-DJZBPgpf.js";import{d as n,p as r}from"./chunk-5KNZJZUH-DdS6bb-3.js";import{t as i}from"./jsx-runtime-CVSDxk6A.js";import{t as a}from"./loader-circle-D1pLQlMh.js";import"./src-4xooMXeT.js";import{n as o}from"./toast-DowcpN7g.js";import{n as s}from"./sdk.gen-Bz2u5Wv3.js";import{o as c}from"./routes-iUGoIqW2.js";import{a as l}from"./viewer-store-C8L5A-BB.js";import{Gt as u,Kt as d,jt as f,r as p,yn as m}from"./index-CoobbyzR.js";import{t as h}from"./use-active-assistant-id-BBHOMQFe.js";import{t as g}from"./deploy-dialogs-C5LDby59.js";var _=e(t(),1),v=i();function y(){let{appId:e}=r(),t=h(),i=n(),y=u.use.isDeploying(),[b,x]=(0,_.useState)(null),[S,C]=(0,_.useState)(null),[w,T]=(0,_.useState)(!1),E=(0,_.useRef)(null);(0,_.useEffect)(()=>{if(e)return E.current=e,x(null),C(null),s({path:{assistant_id:t,id:e},throwOnError:!0}).then(({data:n})=>{E.current===e&&(l(t,n.appId,n.html),x({appId:n.appId,dirName:n.dirName,name:n.name,html:n.html}))}).catch(t=>{E.current===e&&C(t instanceof Error?t.message:`Failed to open app`)}),()=>{E.current=null}},[t,e]);let D=(0,_.useCallback)(()=>{i(c.library.root)},[i]),O=p(),k=(0,_.useCallback)(()=>{b&&O(b)},[b,O]),A=(0,_.useCallback)(async()=>{if(!(!b||w)){T(!0);try{await d(t,b.appId,b.name),o.success(`App exported`,{description:`${b.name}.vellum`})}catch(e){o.error(`Failed to share app`,{description:e instanceof Error?e.message:void 0})}finally{T(!1)}}},[t,b,w]),j=(0,_.useCallback)(()=>{b&&u.getState().deployApp(t,b.appId,b.name,b.html)},[t,b]),M=(0,_.useCallback)(e=>{m(i,{prompt:e})},[i]);return e?S?(0,v.jsxs)(`div`,{className:`flex flex-1 flex-col items-center justify-center gap-4`,children:[(0,v.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:S}),(0,v.jsx)(`button`,{type:`button`,onClick:D,className:`text-body-medium-default text-[var(--primary-base)] underline`,children:`Back to Library`})]}):b?(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(f,{appId:b.appId,appName:b.name,html:b.html,assistantId:t,onClose:D,onEdit:k,onShare:A,isSharing:w,onDeploy:j,isDeploying:y,enableFullscreen:!0}),(0,v.jsx)(g,{assistantId:t,onStartConversation:M})]}):(0,v.jsx)(`div`,{className:`flex flex-1 items-center justify-center`,children:(0,v.jsx)(a,{className:`h-6 w-6 animate-spin text-[var(--content-tertiary)]`})}):null}export{y as LibraryDetailPage};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-DJZBPgpf.js";import{t as n}from"./button-D1p5nVKJ.js";import{d as r}from"./chunk-5KNZJZUH-DdS6bb-3.js";import{n as i}from"./QueryClientProvider-DKhXIxGb.js";import{t as a}from"./useQuery-B45lW1Kk.js";import{t as o}from"./jsx-runtime-CVSDxk6A.js";import{t as s}from"./arrow-up-BxoccrRI.js";import{t as c}from"./menu-Bjq0lFxx.js";import{t as l}from"./file-text-Cw--uc4C.js";import{t as u}from"./globe-DgulNfxa.js";import"./src-4xooMXeT.js";import{t as d}from"./input-DR1eB4a1.js";import{n as f,t as p}from"./panel-item-vXPWJAXs.js";import{n as m}from"./toast-DowcpN7g.js";import{t as h}from"./confirm-dialog-DW84Cxfq.js";import{s as g,t as _}from"./sdk.gen-Bz2u5Wv3.js";import{C as v,n as y,t as b}from"./react-query.gen-D8YgmevH.js";import{o as x}from"./routes-iUGoIqW2.js";import{n as S}from"./use-is-mobile-DJUk0lC8.js";import{i as C,r as w}from"./viewer-store-C8L5A-BB.js";import{t as T}from"./misc-CfQwP_zq.js";import{$ as E,Gt as D,Ji as O,Kt as k,Ni as A,Pi as j,Ti as M,fn as N,mi as P,pi as F,sa as I,yn as L}from"./index-CoobbyzR.js";import{t as R}from"./use-active-assistant-id-BBHOMQFe.js";import{t as z}from"./deploy-dialogs-C5LDby59.js";import{t as B}from"./page-shell-CejvYP6I.js";import{t as V}from"./format-date-CLlHK5gl.js";var H=e(t(),1),U=o();function W({app:e,isDeleting:t,onConfirm:n,onCancel:r}){return(0,U.jsx)(h,{open:e!==null,title:`Delete app`,message:e?`"${e.name}" will be permanently removed.`:``,confirmLabel:t?`Deleting…`:`Delete`,destructive:!0,onConfirm:n,onCancel:r})}function G(e){return e===1?`1 word`:`${e} words`}function K({document:e,onOpen:t}){return(0,U.jsxs)(`div`,{className:`group relative flex flex-col gap-2`,children:[(0,U.jsxs)(`button`,{type:`button`,onClick:()=>t(e.surfaceId),className:T(`relative flex w-full cursor-pointer flex-col items-center justify-center gap-2 overflow-hidden rounded-xl border border-[var(--border-base)] bg-[var(--surface-base)]`,`aspect-[16/10]`,`outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)]`),children:[(0,U.jsx)(l,{size:34,className:`text-[var(--content-tertiary)]`}),(0,U.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:G(e.wordCount)})]}),(0,U.jsxs)(`button`,{type:`button`,onClick:()=>t(e.surfaceId),className:`flex cursor-pointer flex-col gap-0.5 px-0.5 text-left outline-none`,children:[(0,U.jsx)(`span`,{className:`truncate text-body-large-default text-[color:var(--content-emphasised)]`,children:e.title}),(0,U.jsx)(`span`,{className:`text-body-small-default text-[color:var(--content-tertiary)]`,children:V(new Date(e.updatedAt))})]})]})}function q({fileInputRef:e,isImporting:t,onImportBundle:r,onNewConversation:i}){return(0,U.jsxs)(`div`,{className:`flex h-full flex-col items-center justify-center gap-4 px-4 py-24`,children:[(0,U.jsx)(`input`,{ref:e,type:`file`,accept:`.vellum`,className:`hidden`,onChange:r}),(0,U.jsx)(`div`,{className:`flex h-16 w-16 items-center justify-center rounded-xl bg-[var(--surface-base)]`,children:(0,U.jsx)(O,{size:32,className:`text-[var(--content-tertiary)]`})}),(0,U.jsx)(`h2`,{className:`text-title-medium text-[var(--content-default)]`,children:`Your library is empty`}),(0,U.jsx)(`p`,{className:`max-w-md text-center text-body-medium-lighter text-[color:var(--content-tertiary)]`,children:`Ask your assistant to build something, or import a shared app`}),(0,U.jsxs)(`div`,{className:`flex flex-col items-center gap-3`,children:[i?(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(n,{variant:`primary`,size:`regular`,onClick:i,children:`New Conversation`}),(0,U.jsx)(`span`,{className:`text-body-small-default text-[color:var(--content-tertiary)]`,children:`or`})]}):null,(0,U.jsxs)(n,{variant:`outlined`,size:`regular`,onClick:()=>e.current?.click(),disabled:t,children:[t?(0,U.jsx)(`div`,{className:`h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent`}):(0,U.jsx)(F,{size:14}),(0,U.jsx)(`span`,{className:`ml-1.5`,children:`Import .vellum File`})]})]})]})}function J({app:e,assistantId:t,isPinned:n,onOpen:r,onPin:i,onDelete:a,onDeploy:o,justImported:s,onAnimationEnd:c}){let[l,u]=(0,H.useState)(!1),d=(0,H.useCallback)(()=>C(t,e.id),[t,e.id]),f=(0,H.useCallback)(async()=>{if(!l){u(!0);try{await k(t,e.id,e.name),m.success(`App exported`,{description:`${e.name}.vellum`})}catch(e){m.error(`Failed to share app`,{description:e instanceof Error?e.message:void 0})}finally{u(!1)}}},[t,e.id,e.name,l]),[p,h]=(0,H.useState)(!1),g=S();return(0,U.jsxs)(`div`,{className:T(`group relative flex flex-col gap-2`,s&&`animate-[card-entrance_400ms_ease-out]`),onAnimationEnd:s?c:void 0,children:[(0,U.jsx)(`button`,{type:`button`,onClick:()=>r(e.id),className:T(`relative w-full cursor-pointer overflow-hidden rounded-xl`,`outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)]`),children:(0,U.jsx)(E,{name:e.name,icon:e.icon,loadHtml:d})}),(0,U.jsx)(`div`,{className:T(`absolute right-2 top-2 z-20 transition-opacity`,`max-md:opacity-100`,`md:group-hover:opacity-100 md:group-focus-within:opacity-100`,p?`opacity-100`:`md:opacity-0`),children:(0,U.jsx)(Y,{appName:e.name,isPinned:n,open:p,onOpenChange:h,onPin:()=>i(e),onDelete:a?()=>a(e):void 0,onShare:f,onDeploy:o,isMobile:g})}),(0,U.jsxs)(`button`,{type:`button`,onClick:()=>r(e.id),className:`flex cursor-pointer flex-col gap-0.5 px-0.5 text-left outline-none`,children:[(0,U.jsx)(`span`,{className:`truncate text-body-large-default text-[color:var(--content-emphasised)]`,children:e.name}),(0,U.jsx)(`span`,{className:`text-body-small-default text-[color:var(--content-tertiary)]`,children:V(new Date(e.createdAt))})]})]})}function Y({appName:e,isPinned:t,open:r,onOpenChange:i,onPin:a,onDelete:o,onShare:l,onDeploy:d,isMobile:m}){return m?(0,U.jsxs)(f.Root,{open:r,onOpenChange:i,children:[(0,U.jsx)(f.Trigger,{asChild:!0,children:(0,U.jsx)(n,{variant:`primary`,size:`compact`,iconOnly:(0,U.jsx)(I,{}),"aria-label":`App actions`,onClick:e=>e.stopPropagation()})}),(0,U.jsxs)(f.Content,{children:[(0,U.jsx)(f.Header,{className:`sr-only`,children:(0,U.jsx)(f.Title,{children:e})}),(0,U.jsxs)(f.Body,{className:`pt-0`,children:[(0,U.jsx)(p,{icon:t?j:A,label:t?`Unpin`:`Pin`,onSelect:()=>{i(!1),a()}}),l?(0,U.jsx)(p,{icon:s,label:(0,U.jsxs)(`span`,{className:`flex flex-col gap-0.5 overflow-visible whitespace-normal`,children:[(0,U.jsx)(`span`,{children:`Share`}),(0,U.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Export as .vellum file`})]}),onSelect:()=>{i(!1),l()}}):null,d?(0,U.jsx)(p,{icon:u,label:(0,U.jsxs)(`span`,{className:`flex flex-col gap-0.5 overflow-visible whitespace-normal`,children:[(0,U.jsx)(`span`,{children:`Deploy to Vercel`}),(0,U.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Publish as a static page`})]}),onSelect:()=>{i(!1),d()}}):null,o?(0,U.jsx)(p,{icon:P,label:`Delete`,onSelect:()=>{i(!1),o()}}):null]})]})]}):(0,U.jsxs)(c.Root,{open:r,onOpenChange:i,children:[(0,U.jsx)(c.Trigger,{asChild:!0,children:(0,U.jsx)(n,{variant:`primary`,size:`compact`,iconOnly:(0,U.jsx)(I,{}),"aria-label":`App actions`,onClick:e=>e.stopPropagation()})}),(0,U.jsxs)(c.Content,{align:`end`,sideOffset:4,children:[(0,U.jsx)(c.Item,{leftIcon:t?(0,U.jsx)(j,{size:14}):(0,U.jsx)(A,{size:14}),onSelect:()=>a(),className:`whitespace-nowrap`,children:t?`Unpin`:`Pin`}),l?(0,U.jsx)(c.Item,{leftIcon:(0,U.jsx)(s,{size:14}),onSelect:()=>l(),className:`whitespace-nowrap`,children:`Share`}):null,d?(0,U.jsx)(c.Item,{leftIcon:(0,U.jsx)(u,{size:14}),onSelect:()=>d(),className:`whitespace-nowrap`,children:`Deploy to Vercel`}):null,o?(0,U.jsx)(c.Item,{leftIcon:(0,U.jsx)(P,{size:14,className:`text-red-600`}),onSelect:()=>o(),className:`whitespace-nowrap text-red-600 data-[highlighted]:text-red-700`,children:`Delete`}):null]})]})}function X({title:e,apps:t,assistantId:n,pinnedAppIds:r,lastImportedAppId:i,onOpen:a,onPin:o,onDelete:s,onDeploy:c,onAnimationEnd:l}){return t.length===0?null:(0,U.jsxs)(`section`,{children:[(0,U.jsx)(`h2`,{className:`mb-4 text-body-small-emphasised text-[color:var(--content-secondary)]`,children:e}),(0,U.jsx)(`div`,{className:`grid grid-cols-[repeat(auto-fill,minmax(max(220px,calc((100%-6rem)/5)),1fr))] gap-6`,children:t.map(e=>(0,U.jsx)(J,{app:e,assistantId:n,isPinned:r.has(e.id),onOpen:a,onPin:o,onDelete:s,justImported:e.id===i,onAnimationEnd:l,onDeploy:c?()=>c(e.id):void 0},e.id))})]})}var Z=(e,t)=>t.updatedAt-e.updatedAt||t.createdAt-e.createdAt;function Q(e){let t=N.use.pinnedAppIds(),{data:n=[],isLoading:r,error:i}=a({...b({path:{assistant_id:e}}),select:e=>e.apps}),{data:o=[],isLoading:s,error:c}=a({...v({path:{assistant_id:e}}),select:e=>e.documents}),l=r||s,u=i&&c?i instanceof Error?i.message:`Failed to load library`:null,[d,f]=(0,H.useState)(``),p=(0,H.useMemo)(()=>{if(!d.trim())return n;let e=d.toLowerCase();return n.filter(t=>t.name.toLowerCase().includes(e)||t.description?.toLowerCase().includes(e))},[n,d]);return{apps:n,documents:o,filteredApps:p,pinnedApps:(0,H.useMemo)(()=>p.filter(e=>t.has(e.id)).sort(Z),[p,t]),recentApps:(0,H.useMemo)(()=>p.filter(e=>!t.has(e.id)).sort(Z),[p,t]),filteredDocuments:(0,H.useMemo)(()=>{if(!d.trim())return o;let e=d.toLowerCase();return o.filter(t=>t.title.toLowerCase().includes(e))},[o,d]),searchText:d,setSearchText:f,loading:l,error:u}}async function $(e,t){let{data:n,error:r,response:i}=await g({path:{assistant_id:e},body:t,bodySerializer:e=>e,headers:{"Content-Type":`application/octet-stream`},throwOnError:!1});if(!i||!i.ok){let e=(r&&typeof r==`object`&&`message`in r?r.message:null)??`Failed to import app.`;throw Error(e)}return n}function ee({assistantId:e,assistantName:t,title:r,onNewConversation:a,onOpenDocument:o,onOpenApp:s}){let c=i(),l=N.use.togglePin(),u=N.use.pinnedAppIds(),f=D.use.isDeploying(),{apps:p,documents:h,filteredApps:g,pinnedApps:v,recentApps:b,filteredDocuments:x,searchText:S,setSearchText:T,loading:E,error:O}=Q(e),[k,A]=(0,H.useState)(null),[j,P]=(0,H.useState)(!1),I=(0,H.useCallback)(async()=>{let t=k;if(!(!t||j)){P(!0);try{await _({path:{assistant_id:e,id:t.id},throwOnError:!0}),w(e,t.id),c.invalidateQueries({queryKey:y({path:{assistant_id:e}})}),u.has(t.id)&&l(t),A(null)}catch(e){m.error(e instanceof Error?e.message:`Failed to delete app`)}finally{P(!1)}}},[k,j,e,u,l,c]),L=(0,H.useCallback)(()=>{j||A(null)},[j]),R=(0,H.useRef)(null),[B,V]=(0,H.useState)(!1),G=(0,H.useCallback)(async t=>{let n=t.target.files?.[0];if(!(!n||B)){V(!0);try{let t=await $(e,n);await c.invalidateQueries({queryKey:y({path:{assistant_id:e}})}),m.success(t.name+` imported`),s(t.appId)}catch(e){m.error(e instanceof Error?e.message:`Failed to import app`)}finally{V(!1),R.current&&(R.current.value=``)}}},[e,B,c,s]),J=(0,H.useCallback)(async t=>{if(f)return;let n=p.find(e=>e.id===t)?.name??`this app`;try{let r=await C(e,t);D.getState().deployApp(e,t,n,r)}catch{D.getState().deployApp(e,t,n,``)}},[e,f,p]),Y=(0,H.useCallback)(e=>l(e),[l]);return E?(0,U.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,U.jsx)(`div`,{className:`h-6 w-6 animate-spin rounded-full border-2 border-[var(--border-base)] border-t-[var(--primary-base)]`,role:`status`,"aria-label":`Loading apps`})}):O?(0,U.jsxs)(`div`,{className:`flex h-full flex-col items-center justify-center gap-4 px-4`,children:[(0,U.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:O}),(0,U.jsx)(`button`,{type:`button`,className:`rounded-lg bg-[var(--primary-base)] px-4 py-2 text-body-medium-default text-[var(--content-inset)] transition-colors hover:bg-[var(--primary-hover)]`,onClick:()=>window.location.reload(),children:`Retry`})]}):p.length===0&&h.length===0?(0,U.jsx)(q,{fileInputRef:R,isImporting:B,onImportBundle:G,onNewConversation:a?()=>a():void 0}):(0,U.jsxs)(`div`,{className:`flex h-full flex-col overflow-hidden`,children:[(0,U.jsxs)(`div`,{className:`mb-4 flex shrink-0 items-center justify-between gap-4`,children:[r?(0,U.jsx)(`h1`,{className:`text-title-large text-[var(--content-default)]`,children:r}):(0,U.jsx)(`span`,{}),(0,U.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,U.jsx)(`input`,{ref:R,type:`file`,accept:`.vellum`,className:`hidden`,onChange:G}),(0,U.jsxs)(n,{variant:`outlined`,size:`regular`,onClick:()=>R.current?.click(),disabled:B,children:[B?(0,U.jsx)(`div`,{className:`h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent`}):(0,U.jsx)(F,{size:14}),(0,U.jsx)(`span`,{className:`ml-1.5`,children:`Import`})]})]})]}),(0,U.jsx)(`div`,{className:`mb-6 shrink-0`,children:(0,U.jsx)(d,{fullWidth:!0,type:`text`,placeholder:`Search your library`,value:S,onChange:e=>T(e.target.value),leftIcon:(0,U.jsx)(M,{size:16})})}),(0,U.jsx)(`div`,{className:`flex-1 overflow-y-auto`,children:g.length===0&&x.length===0?(0,U.jsxs)(`div`,{className:`flex flex-col items-center justify-center py-16`,children:[(0,U.jsx)(M,{size:32,className:`mb-4 text-[var(--content-tertiary)]`}),(0,U.jsxs)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:[`No apps or documents matched “`,S,`”`]})]}):(0,U.jsxs)(`div`,{className:`flex flex-col gap-8`,children:[(0,U.jsx)(X,{title:`Pinned`,apps:v,assistantId:e,pinnedAppIds:u,onOpen:s,onPin:Y,onDelete:A,onDeploy:J}),(0,U.jsx)(X,{title:`Recents`,apps:b,assistantId:e,pinnedAppIds:u,onOpen:s,onPin:Y,onDelete:A,onDeploy:J}),x.length>0?(0,U.jsxs)(`section`,{children:[(0,U.jsx)(`h2`,{className:`mb-4 text-body-small-emphasised text-[color:var(--content-secondary)]`,children:`Documents`}),(0,U.jsx)(`div`,{className:`grid grid-cols-[repeat(auto-fill,minmax(max(220px,calc((100%-6rem)/5)),1fr))] gap-6`,children:x.map(e=>(0,U.jsx)(K,{document:e,onOpen:e=>{o&&o(e)}},e.surfaceId))})]}):null]})}),(0,U.jsx)(z,{assistantId:e,assistantName:t,onStartConversation:a}),(0,U.jsx)(W,{app:k,isDeleting:j,onConfirm:I,onCancel:L})]})}function te(){let e=R(),t=r();return(0,U.jsx)(B,{children:(0,U.jsx)(ee,{assistantId:e,title:`Library`,onNewConversation:(0,H.useCallback)(e=>{L(t,{prompt:e})},[t]),onOpenDocument:(0,H.useCallback)(e=>{t(x.document(e))},[t]),onOpenApp:(0,H.useCallback)(e=>{t(x.library.app(e))},[t])})})}export{te as LibraryPage};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./createLucideIcon-IRfcSUxS.js";var t=e(`lock`,[[`rect`,{width:`18`,height:`11`,x:`3`,y:`11`,rx:`2`,ry:`2`,key:`1w4ew1`}],[`path`,{d:`M7 11V7a5 5 0 0 1 10 0v4`,key:`fwvmzm`}]]);export{t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-DJZBPgpf.js";import{t as n}from"./button-D1p5nVKJ.js";import{h as r,t as i}from"./chunk-5KNZJZUH-DdS6bb-3.js";import{t as a}from"./jsx-runtime-CVSDxk6A.js";import{t as o}from"./cn-C36Yvcac.js";import"./src-4xooMXeT.js";import{f as s,m as c,p as l}from"./native-biometric-uwPAd9lh.js";import{o as u}from"./routes-iUGoIqW2.js";import{n as d,r as f}from"./login-flow-CFhW2AHB.js";import{t as p}from"./public-asset-BpAVsx77.js";var m=e(t(),1),h=a();function g({children:e}){return(0,h.jsxs)(`div`,{className:`fixed inset-0 z-50 flex flex-col items-center justify-center bg-[var(--surface-base)] text-[var(--content-default)]`,children:[(0,h.jsx)(`img`,{src:p(`/vellum-logo.svg`),alt:`Vellum`,width:220,height:66,className:`block dark:hidden`}),(0,h.jsx)(`img`,{src:p(`/vellum-logo-white.svg`),alt:`Vellum`,width:220,height:66,className:`hidden dark:block`}),e,(0,h.jsx)(`div`,{"aria-hidden":!0,className:`pointer-events-none absolute left-1/2 w-full max-w-[900px] -translate-x-1/2`,style:{bottom:0},children:(0,h.jsx)(`img`,{src:p(`/login-background-characters.svg`),alt:``,width:880,height:182,className:`h-auto w-full`})})]})}function _(){return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(`div`,{className:`pointer-events-none absolute top-[120px] left-1/2 z-0 -translate-x-1/2`,children:(0,h.jsx)(`img`,{src:p(`/vellum-logo-white.svg`),alt:`Vellum`,width:92,height:28})}),(0,h.jsx)(`div`,{"aria-hidden":!0,className:`pointer-events-none absolute right-0 bottom-0 left-1/2 z-0 w-full max-w-[1100px] -translate-x-1/2`,children:(0,h.jsx)(`img`,{src:p(`/login-background-characters.svg`),alt:``,width:880,height:182,className:`h-auto w-full`})})]})}var v=`flex w-full max-w-[448px] flex-col gap-6 rounded-lg border border-[var(--border-disabled)] bg-[var(--surface-lift)] p-6`;function y({children:e}){return(0,h.jsx)(`div`,{className:v,children:e})}function b({children:e}){return(0,h.jsx)(`h1`,{className:`text-title-large text-center text-[var(--content-emphasised)]`,children:e})}function x({children:e,className:t}){return(0,h.jsx)(`p`,{className:o(`text-body-small-default text-center text-[var(--system-negative-strong)]`,t),children:e})}function S({children:e}){return(0,h.jsx)(`div`,{className:`dark`,children:(0,h.jsxs)(`div`,{className:`relative min-h-screen overflow-x-hidden bg-[var(--surface-base)] text-[var(--content-default)]`,children:[(0,h.jsx)(_,{}),(0,h.jsx)(`div`,{className:`relative z-10 flex min-h-screen flex-col items-center justify-center px-4`,children:e})]})})}var C={signup_closed:`Sign-ups are currently closed. Visit vellum.ai/community to request access.`};function w({returnTo:e}){let[t,r]=(0,m.useState)(null),[i,a]=(0,m.useState)(!1),o=async()=>{r(null),a(!0);try{await l({returnTo:e??null})}catch(e){let t=e&&typeof e==`object`&&`code`in e?e.code:void 0;if(t===`USER_CANCELLED`){a(!1);return}if(t===`AUTH_ERROR`){let t=e&&typeof e==`object`&&`data`in e&&e.data&&typeof e.data==`object`&&`authError`in e.data&&typeof e.data.authError==`string`?e.data.authError:void 0;r((t&&C[t])??`Something went wrong. Please try again.`)}else console.error(`[native-auth] auth flow failed:`,e),r(`Something went wrong. Please try again.`);a(!1)}};return(0,h.jsx)(g,{children:(0,h.jsxs)(`div`,{className:`z-10 mt-8 flex w-full max-w-[320px] flex-col items-center gap-3`,children:[t&&(0,h.jsx)(x,{className:`max-w-[280px]`,children:t}),(0,h.jsx)(n,{type:`button`,variant:`primary`,fullWidth:!0,onClick:()=>{o()},disabled:i,className:`max-w-[300px]`,children:`Sign in`})]})})}function T({returnTo:e}){let[t,r]=(0,m.useState)(null),[a,o]=(0,m.useState)(!1),c=f(e),l=e?`${u.account.signup}?returnTo=${encodeURIComponent(e)}`:u.account.signup,p=async()=>{r(null),o(!0);try{await s(d,c,{returnTo:e})}catch(e){console.error(`[web-login] auth flow failed:`,e),r(`Something went wrong. Please try again.`),o(!1)}};return(0,h.jsx)(S,{children:(0,h.jsxs)(y,{children:[(0,h.jsx)(b,{children:`Sign in to Vellum`}),t&&(0,h.jsx)(x,{children:t}),(0,h.jsx)(`div`,{className:`flex flex-col items-center gap-3`,children:(0,h.jsx)(n,{type:`button`,variant:`primary`,fullWidth:!0,onClick:()=>void p(),disabled:a,className:`max-w-[300px]`,children:`Continue`})}),(0,h.jsxs)(`p`,{className:`text-body-small-default flex justify-center gap-1`,children:[(0,h.jsx)(`span`,{className:`text-[var(--content-secondary)]`,children:`Don't have an account?`}),(0,h.jsx)(i,{to:l,className:`font-medium text-[var(--content-emphasised)] hover:underline`,children:`Sign up`})]})]})})}function E(){let[e]=r(),t=c(),n=e.get(`returnTo`);return t?(0,h.jsx)(w,{returnTo:n}):(0,h.jsx)(T,{returnTo:n})}export{E as LoginPage};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-DJZBPgpf.js";import{h as n}from"./chunk-5KNZJZUH-DdS6bb-3.js";import{t as r}from"./jsx-runtime-CVSDxk6A.js";import{n as i}from"./auth-store-CI4EhvE5.js";import{t as a}from"./return-to-BbdJZupb.js";import{o}from"./routes-iUGoIqW2.js";import{pr as s}from"./index-CoobbyzR.js";import{r as c,t as l}from"./account-shell-BSwEFNTM.js";var u=e(t(),1),d=r();function f(){let[e]=n(),t=i.use.logout(),r=(0,u.useRef)(!1);return(0,u.useEffect)(()=>{if(r.current)return;r.current=!0;let n=a(e.get(`returnTo`),o.account.login),i=n.startsWith(`http`)||n===o.account.login?n:`${o.account.login}?returnTo=${encodeURIComponent(n)}`,c=!1;return t().then(()=>{c||s(i)},()=>{c||s(i)}),()=>{c=!0}},[t,e]),(0,d.jsx)(l,{children:(0,d.jsx)(c,{title:`Signing out...`})})}export{f as LogoutPage};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-DJZBPgpf.js";import{i as n,u as r}from"./chunk-5KNZJZUH-DdS6bb-3.js";import{t as i}from"./jsx-runtime-CVSDxk6A.js";import{t as a}from"./createLucideIcon-IRfcSUxS.js";import{o}from"./routes-iUGoIqW2.js";import{Ui as s,wa as c,zr as l}from"./index-CoobbyzR.js";import{n as u,t as d}from"./sidebar-tree-CMREzbfC.js";var f=a(`monitor-cog`,[[`path`,{d:`M12 17v4`,key:`1riwvh`}],[`path`,{d:`m14.305 7.53.923-.382`,key:`1mlnsw`}],[`path`,{d:`m15.228 4.852-.923-.383`,key:`82mpwg`}],[`path`,{d:`m16.852 3.228-.383-.924`,key:`ln4sir`}],[`path`,{d:`m16.852 8.772-.383.923`,key:`1dejw0`}],[`path`,{d:`m19.148 3.228.383-.924`,key:`192kgf`}],[`path`,{d:`m19.53 9.696-.382-.924`,key:`fiavlr`}],[`path`,{d:`m20.772 4.852.924-.383`,key:`1j8mgp`}],[`path`,{d:`m20.772 7.148.924.383`,key:`zix9be`}],[`path`,{d:`M22 13v2a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h7`,key:`1tnzv8`}],[`path`,{d:`M8 21h8`,key:`1ev6f3`}],[`circle`,{cx:`18`,cy:`6`,r:`3`,key:`1h7g24`}]]),p=e(t(),1),m=[{id:`usage`,label:`Usage`,href:o.logs.usage,icon:c},{id:`emails`,label:`Emails`,href:o.logs.emails,icon:s},{id:`system-events`,label:`System Events`,href:o.logs.systemEvents,icon:f}],h=i();function g(){let e=l({platformHostedOnly:!0}),t=l(),{pathname:i}=r(),a=(0,p.useMemo)(()=>m.filter(n=>!(n.id===`system-events`&&e===`gated`||n.id===`emails`&&t===`gated`)),[e,t]),s=(0,p.useMemo)(()=>{let e=m.find(e=>i===e.href||i.startsWith(e.href+`/`));return e?e.label:i===o.logs.root?m[0]?.label??`Logs & Usage`:`Logs & Usage`},[i]);return(0,h.jsx)(u,{backHref:o.assistant,sidebar:(0,h.jsx)(d,{items:a,indexPath:o.logs.root}),title:s,menuRoute:o.logs.root,children:(0,h.jsx)(n,{})})}export{g as LogsLayout};
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./capture-error-CmeVLfq0.js";import{Cr as t,cn as n,ln as r,sn as i,u as a,un as o,yr as s}from"./sdk.gen-Bz2u5Wv3.js";import{n as c,r as l}from"./api-errors-DZ6ckXtC.js";import{n as u}from"./platform-detection-CY-O-Rjc.js";import{a as d,s as f}from"./prechat-UQXfXf5i.js";import{t as p}from"./assistant-identity-store-Cp3CD7d1.js";import{r as m,t as h}from"./semver-DLY9hF7h.js";import{t as g}from"./effective-timezone-DAkNzd21.js";var _=/^\[File attachment\] (.+?), type=([^,\n]+?)(?:, size=([^\n]+))?$/,v=/^([\d.]+)\s*(B|KB|MB|GB)$/;function y(e){let t=v.exec(e.trim());if(!t)return 0;let n=Number.parseFloat(t[1]);if(!Number.isFinite(n))return 0;switch(t[2]){case`B`:return Math.round(n);case`KB`:return Math.round(n*1024);case`MB`:return Math.round(n*1024*1024);case`GB`:return Math.round(n*1024*1024*1024);default:return 0}}function b(e){let t=e.indexOf(`[File attachment] `);if(t<0||!(t===0||e[t-1]===`
|
|
2
|
-
`))return{cleanedContent:e,attachments:void 0};let n=t>0&&e[t-1]===`
|
|
3
|
-
`?e.slice(0,t-1):e.slice(0,t),r=[];for(let n of e.slice(t).split(`
|
|
4
|
-
`)){let e=_.exec(n);if(!e)continue;let[,t,i,a]=e;r.push({id:`rehydrated:${r.length}`,filename:t,mimeType:i,sizeBytes:a?y(a):0,previewUrl:null})}return{cleanedContent:n,attachments:r.length>0?r:void 0}}var x=[`users/guardian.md`,`users/default.md`],S=`## Onboarding Context`;function C(e){let t=[S,``];return e.preferredName&&t.push(`- **Preferred name:** ${e.preferredName}`),e.occupation&&t.push(`- **Role:** ${e.occupation}`),e.commonWork.length>0&&t.push(`- **Common work:** ${e.commonWork.join(`; `)}`),e.dailyTools.length>0&&t.push(`- **Daily tools:** ${e.dailyTools.join(`, `)}`),t.push(``),t.join(`
|
|
5
|
-
`)}function w(e,t){let n=e??`# User Profile
|
|
6
|
-
|
|
7
|
-
`,r=n.indexOf(S);if(r!==-1){let e=n.indexOf(`
|
|
8
|
-
`,r),i=e===-1?``:n.slice(e+1),a=i.match(/^## /m),o=n.slice(0,r),s=a?i.slice(a.index):``;return o+t+s}return n.endsWith(`
|
|
9
|
-
`)||(n+=`
|
|
10
|
-
`),n.endsWith(`
|
|
11
|
-
|
|
12
|
-
`)||(n+=`
|
|
13
|
-
`),n+t}async function T(e,t){let{data:n,error:r,response:i}=await s({path:{assistant_id:e},query:{path:t},throwOnError:!1});if(c(i,r,`Failed to fetch onboarding profile file`),i.status===404)return null;if(!i.ok)throw Error(`Failed to fetch onboarding profile file (${i.status})`);if(n?.isBinary)throw Error(`Onboarding profile file is binary`);return typeof n?.content==`string`?n.content:null}async function E(e,n,r){let{error:i,response:a}=await t({path:{assistant_id:e},body:{path:n,content:r},throwOnError:!1});if(c(a,i,`Failed to write onboarding profile file`),!a.ok)throw Error(`Failed to write onboarding profile file (${a.status})`)}async function D(e,t,n){await E(e,t,w(await T(e,t),n))}async function O(e,t){let n=C(f(t));await Promise.allSettled(x.map(t=>D(e,t,n)))}function k(e){return e.map(e=>{let t=null;return e.data?t=`data:${e.mimeType};base64,${e.data}`:e.thumbnailData&&(t=`data:image/jpeg;base64,${e.thumbnailData}`),{id:e.id,filename:e.filename,mimeType:e.mimeType,sizeBytes:e.sizeBytes,previewUrl:t}})}function A(e){return e===`inline`||e===`panel`?e:void 0}function j(e){return{surfaceId:e.surfaceId,surfaceType:e.surfaceType,title:e.title,data:e.data,actions:e.actions,display:A(e.display),completed:e.completed,completionSummary:e.completionSummary,toolCallId:e.toolCallId}}function M(e){return e.map(j)}function N(e){if(typeof e==`number`)return e;if(typeof e==`string`){let t=new Date(e).getTime();return Number.isFinite(t)?t:void 0}}function P(e){if(!e||e.length===0)return{segments:void 0,attachments:void 0};let t=[];return{segments:e.map(e=>{let{cleanedContent:n,attachments:r}=b(e);return r&&t.push(...r),n}),attachments:t.length>0?t.map((e,t)=>({...e,id:`rehydrated:${t}`})):void 0}}function F(e){let{segments:t,attachments:n}=P(e.textSegments&&e.textSegments.length>0?e.textSegments:void 0),r=e.attachments&&e.attachments.length>0?k(e.attachments):void 0,i=W(e.contentOrder),a=G(e),o=e.toolCalls&&e.toolCalls.length>0?H(e.toolCalls,e.id):void 0,s=N(e.timestamp),c=e.thinkingSegments&&e.thinkingSegments.length>0?e.thinkingSegments:void 0,l={id:e.id,role:e.role};e.mergedMessageIds?.length&&(l.mergedMessageIds=e.mergedMessageIds),e.clientMessageId&&(l.clientMessageId=e.clientMessageId),e.surfaces&&(l.surfaces=M(e.surfaces)),a&&(l.contentBlocks=a),t&&(l.textSegments=t),i&&(l.contentOrder=i),c&&(l.thinkingSegments=c),e.subagentNotification&&(l.isSubagentNotification=!0),e.acpNotification&&(l.isAcpNotification=!0),e.backgroundEventNotification&&(l.isBackgroundEventNotification=!0),e.slackMessage&&(l.slackMessage=e.slackMessage),o&&(l.toolCalls=o),s!=null&&(l.timestamp=s);let u=r??n;return u&&(l.attachments=u),l}var I=`0.8.6`;function L(){let e=p.getState().version;if(!e)return`conversationKey`;let t=m(e),n=m(I);return!t||!n?`conversationKey`:h({...t,pre:null},n)>=0?`conversationId`:`conversationKey`}var R=1e3,z=12e4;function B(e){return{id:e.id,toolName:e.toolName,conversationId:e.conversationId,command:e.command,startedAt:e.startedAt,status:e.status,exitCode:e.exitCode,output:e.output,completedAt:e.completedAt}}async function V(e,t,n){let r=Date.now()+z;for(;Date.now()<r;){let{data:r,error:a,response:o}=await i({path:{assistant_id:e},query:{conversationId:n},throwOnError:!1});if(c(o,a,`Failed to poll for messages`),!o.ok){let e=l(a,o,`Failed to poll for messages`);throw Error(e)}let s=r?.messages??[],u=s.findIndex(e=>e.id===t);if(u>=0){let e=s.slice(u+1).find(e=>e.role===`assistant`);if(e)return e}await new Promise(e=>setTimeout(e,R))}return null}function H(e,t){return e.map((e,n)=>{let{confirmationDecision:r,...i}=e;return{...i,id:e.id??`tool-history-${t}-${n}`,...r===void 0?{}:{confirmationDecision:r}}})}function U(e){if(e&&typeof e==`object`&&!Array.isArray(e)){let t=e;if(typeof t.type==`string`&&typeof t.id==`string`)return{type:t.type,id:t.id}}if(typeof e==`string`){let t=e.indexOf(`:`);if(t>0)return{type:e.slice(0,t),id:e.slice(t+1)}}return null}function W(e){if(!e||e.length===0)return;let t=[];for(let n of e){let e=U(n);e&&t.push(e)}return t.length>0?t:void 0}function G(e){if(e.contentBlocks!==void 0)return e.contentBlocks;let t=W(e.contentOrder);if(!t)return;let n=[];for(let{type:r,id:i}of t){let t=Number.parseInt(i,10);if(!Number.isNaN(t))switch(r){case`text`:{let r=e.textSegments?.[t];if(r==null)break;let{cleanedContent:i}=b(r);i.trim().length>0&&n.push({type:`text`,text:i});break}case`thinking`:{let r=e.thinkingSegments?.[t];r!=null&&n.push({type:`thinking`,thinking:r});break}case`tool`:case`toolCall`:{let r=e.toolCalls?.[t];r&&n.push({type:`tool_use`,toolCall:{...r,id:r.id??`tool-history-${e.id}-${t}`}});break}case`surface`:{let r=e.surfaces?.[t];r&&n.push({type:`surface`,surface:r});break}case`attachment`:{let r=e.attachments[t];r&&n.push({type:`attachment`,attachment:r});break}}}return n.length>0?n:void 0}async function K(e,t,n){let r=n?.latestPageLimit==null?{conversationId:t}:{conversationId:t,page:`latest`,limit:n.latestPageLimit},{data:a,error:o,response:s}=await i({path:{assistant_id:e},query:r,throwOnError:!1});if(c(s,o,`Failed to fetch conversation messages`),!s.ok)throw Error(`Failed to fetch conversation messages (HTTP ${s.status})`);return a}async function q(e,t){let n=t.name||`attachment`,r=t.type||`application/octet-stream`,{data:i,error:o,response:s}=await a({path:{assistant_id:e},body:{file:t,filename:n,mimeType:r},throwOnError:!1});if(c(s,o,`Failed to upload attachment`),!s.ok){let e=o&&typeof o==`object`&&!Array.isArray(o)?o:{},t=(typeof e.detail==`string`?e.detail:void 0)??(typeof e.error==`string`?e.error:void 0)??`HTTP ${s.status}`;return{ok:!1,status:s.status,error:{detail:t}}}let l=i?.id;return l?{ok:!0,id:l,...typeof i.filename==`string`?{filename:i.filename}:{},...typeof i.mimeType==`string`?{mimeType:i.mimeType}:{},...typeof i.sizeBytes==`number`?{sizeBytes:i.sizeBytes}:{}}:{ok:!1,status:422,error:{detail:`Upload response did not include an attachment id.`}}}async function J(t,r,i,a={}){let{attachmentIds:o=[],onboarding:s,clientMessageId:l,inferenceProfile:f,enabledPlugins:p,hidden:m}=a,h={content:i,sourceChannel:`vellum`,interface:`web`,clientOs:u()},_=g();_&&(h.clientTimezone=_);let v=L();(r!==null||v!==`conversationId`)&&(h[v]=r),o.length>0&&(h.attachmentIds=o),l&&(h.clientMessageId=l),f&&(h.inferenceProfile=f),p!=null&&(h.enabledPlugins=p),m&&(h.hidden=!0);let y=s?d(s):void 0;if(y){let e={tools:y.tools,tasks:y.tasks,tone:y.tone};y.userName!==void 0&&(e.userName=y.userName),y.occupation!==void 0&&(e.occupation=y.occupation),y.assistantName!==void 0&&(e.assistantName=y.assistantName),y.googleConnected!==void 0&&(e.googleConnected=y.googleConnected),y.googleScopes!==void 0&&(e.googleScopes=y.googleScopes),y.priorAssistants!==void 0&&(e.priorAssistants=y.priorAssistants),y.cohort!==void 0&&(e.cohort=y.cohort),y.bootstrapTemplate!==void 0&&(e.bootstrapTemplate=y.bootstrapTemplate),y.initialMessage!==void 0&&y.initialMessage.trim().toLowerCase().replace(/[.!?]+$/,``)!==`wake up, my friend`&&(e.initialMessage=y.initialMessage),y.skills!==void 0&&(e.skills=y.skills),y.title!==void 0&&(e.title=y.title),h.onboarding=e}y&&O(t,y).catch(t=>e(t,{context:`persistPreChatOnboardingProfile`}));let{data:b,error:x,response:S}=await n({path:{assistant_id:t},body:h,throwOnError:!1});if(c(S,x,`Failed to send chat message`),!S.ok){let e=x&&typeof x==`object`&&!Array.isArray(x)?x:{},t=e.error&&typeof e.error==`object`&&!Array.isArray(e.error)?e.error:{};return{ok:!1,status:S.status,error:{code:typeof e.code==`string`?e.code:typeof t.code==`string`?t.code:typeof e.error==`string`?e.error:void 0,detail:(typeof e.detail==`string`?e.detail:void 0)??(typeof e.message==`string`?e.message:void 0)??(typeof t.message==`string`?t.message:void 0)??`HTTP ${S.status}`}}}let C=b;if(!C?.accepted)return{ok:!1,status:422,error:{detail:`Message was not accepted by the assistant.`}};let w=typeof C.conversationId==`string`?C.conversationId:void 0;return w===void 0?{ok:!1,status:422,error:{detail:`Assistant accepted the message but did not return a conversation id.`}}:C.queued?{ok:!0,queued:!0,assistantId:t,conversationId:w,requestId:typeof C.requestId==`string`?C.requestId:void 0}:typeof C.messageId==`string`?{ok:!0,assistantId:t,conversationId:w,messageId:C.messageId}:{ok:!1,status:422,error:{detail:`Message was not accepted by the assistant.`}}}async function Y(e,t,n){try{let{response:r}=await o({path:{assistant_id:e,id:n},query:{conversationId:t},throwOnError:!1});return r?.ok??!1}catch{return!1}}async function X(e,t,n){try{let{response:i}=await r({path:{assistant_id:e,id:n},query:{conversationId:t},throwOnError:!1});return i?.ok??!1}catch{return!1}}export{J as a,q as c,V as i,F as l,K as n,Y as o,G as r,B as s,X as t,j as u};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./toast-DowcpN7g.js";function t(t){return n=>{e.error(n instanceof Error?n.message:t)}}export{t};
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{a as t,n}from"./device-settings-BBwtGKJb.js";import{t as r}from"./react-DJZBPgpf.js";import{ct as i,p as a}from"./local-mode-YoUYEn7C.js";import{t as o}from"./is-electron-LEymSS4C.js";import{i as s,t as c}from"./dist-C3LFhPgk2.js";import{t as l}from"./return-to-BbdJZupb.js";import{o as u}from"./routes-iUGoIqW2.js";var d={bodySerializer:e=>JSON.stringify(e,(e,t)=>typeof t==`bigint`?t.toString():t)};Object.entries({$body_:`body`,$headers_:`headers`,$path_:`path`,$query_:`query`});function f({onRequest:e,onSseError:t,onSseEvent:n,responseTransformer:r,responseValidator:i,sseDefaultRetryDelay:a,sseMaxRetryAttempts:o,sseMaxRetryDelay:s,sseSleepFn:c,url:l,...u}){let d,f=c??(e=>new Promise(t=>setTimeout(t,e)));return{stream:async function*(){let c=a??3e3,p=0,m=u.signal??new AbortController().signal;for(;!m.aborted;){p++;let a=u.headers instanceof Headers?u.headers:new Headers(u.headers);d!==void 0&&a.set(`Last-Event-ID`,d);try{let t={redirect:`follow`,...u,body:u.serializedBody,headers:a,signal:m},o=new Request(l,t);e&&(o=await e(l,t));let s=await(u.fetch??globalThis.fetch)(o);if(!s.ok)throw Error(`SSE failed: ${s.status} ${s.statusText}`);if(!s.body)throw Error(`No body in SSE response`);let f=s.body.pipeThrough(new TextDecoderStream).getReader(),p=``,h=()=>{try{f.cancel()}catch{}};m.addEventListener(`abort`,h);try{for(;;){let{done:e,value:t}=await f.read();if(e)break;p+=t,p=p.replace(/\r\n?/g,`
|
|
2
|
-
`);let a=p.split(`
|
|
3
|
-
|
|
4
|
-
`);p=a.pop()??``;for(let e of a){let t=e.split(`
|
|
5
|
-
`),a=[],o;for(let e of t)if(e.startsWith(`data:`))a.push(e.replace(/^data:\s*/,``));else if(e.startsWith(`event:`))o=e.replace(/^event:\s*/,``);else if(e.startsWith(`id:`))d=e.replace(/^id:\s*/,``);else if(e.startsWith(`retry:`)){let t=Number.parseInt(e.replace(/^retry:\s*/,``),10);Number.isNaN(t)||(c=t)}let s,l=!1;if(a.length){let e=a.join(`
|
|
6
|
-
`);try{s=JSON.parse(e),l=!0}catch{s=e}}l&&(i&&await i(s),r&&(s=await r(s))),n?.({data:s,event:o,id:d,retry:c}),a.length&&(yield s)}}}finally{m.removeEventListener(`abort`,h),f.releaseLock()}break}catch(e){if(t?.(e),o!==void 0&&p>=o)break;await f(Math.min(c*2**(p-1),s??3e4))}}}()}}var p=e=>{switch(e){case`label`:return`.`;case`matrix`:return`;`;case`simple`:return`,`;default:return`&`}},m=e=>{switch(e){case`form`:return`,`;case`pipeDelimited`:return`|`;case`spaceDelimited`:return`%20`;default:return`,`}},h=e=>{switch(e){case`label`:return`.`;case`matrix`:return`;`;case`simple`:return`,`;default:return`&`}},g=({allowReserved:e,explode:t,name:n,style:r,value:i})=>{if(!t){let t=(e?i:i.map(e=>encodeURIComponent(e))).join(m(r));switch(r){case`label`:return`.${t}`;case`matrix`:return`;${n}=${t}`;case`simple`:return t;default:return`${n}=${t}`}}let a=p(r),o=i.map(t=>r===`label`||r===`simple`?e?t:encodeURIComponent(t):_({allowReserved:e,name:n,value:t})).join(a);return r===`label`||r===`matrix`?a+o:o},_=({allowReserved:e,name:t,value:n})=>{if(n==null)return``;if(typeof n==`object`)throw Error("Deeply-nested arrays/objects aren’t supported. Provide your own `querySerializer()` to handle these.");return`${t}=${e?n:encodeURIComponent(n)}`},v=({allowReserved:e,explode:t,name:n,style:r,value:i,valueOnly:a})=>{if(i instanceof Date)return a?i.toISOString():`${n}=${i.toISOString()}`;if(r!==`deepObject`&&!t){let t=[];Object.entries(i).forEach(([n,r])=>{t=[...t,n,e?r:encodeURIComponent(r)]});let a=t.join(`,`);switch(r){case`form`:return`${n}=${a}`;case`label`:return`.${a}`;case`matrix`:return`;${n}=${a}`;default:return a}}let o=h(r),s=Object.entries(i).map(([t,i])=>_({allowReserved:e,name:r===`deepObject`?`${n}[${t}]`:t,value:i})).join(o);return r===`label`||r===`matrix`?o+s:s},ee=/\{[^{}]+\}/g,te=({path:e,url:t})=>{let n=t,r=t.match(ee);if(r)for(let t of r){let r=!1,i=t.substring(1,t.length-1),a=`simple`;i.endsWith(`*`)&&(r=!0,i=i.substring(0,i.length-1)),i.startsWith(`.`)?(i=i.substring(1),a=`label`):i.startsWith(`;`)&&(i=i.substring(1),a=`matrix`);let o=e[i];if(o==null)continue;if(Array.isArray(o)){n=n.replace(t,g({explode:r,name:i,style:a,value:o}));continue}if(typeof o==`object`){n=n.replace(t,v({explode:r,name:i,style:a,value:o,valueOnly:!0}));continue}if(a===`matrix`){n=n.replace(t,`;${_({name:i,value:o})}`);continue}let s=encodeURIComponent(a===`label`?`.${o}`:o);n=n.replace(t,s)}return n},ne=({baseUrl:e,path:t,query:n,querySerializer:r,url:i})=>{let a=i.startsWith(`/`)?i:`/${i}`,o=(e??``)+a;t&&(o=te({path:t,url:o}));let s=n?r(n):``;return s.startsWith(`?`)&&(s=s.substring(1)),s&&(o+=`?${s}`),o};function y(e){let t=e.body!==void 0;if(t&&e.bodySerializer)return`serializedBody`in e?e.serializedBody!==void 0&&e.serializedBody!==``?e.serializedBody:null:e.body===``?null:e.body;if(t)return e.body}var b=async(e,t)=>{let n=typeof t==`function`?await t(e):t;if(n)return e.scheme===`bearer`?`Bearer ${n}`:e.scheme===`basic`?`Basic ${btoa(n)}`:n},x=({parameters:e={},...t}={})=>n=>{let r=[];if(n&&typeof n==`object`)for(let i in n){let a=n[i];if(a==null)continue;let o=e[i]||t;if(Array.isArray(a)){let e=g({allowReserved:o.allowReserved,explode:!0,name:i,style:`form`,value:a,...o.array});e&&r.push(e)}else if(typeof a==`object`){let e=v({allowReserved:o.allowReserved,explode:!0,name:i,style:`deepObject`,value:a,...o.object});e&&r.push(e)}else{let e=_({allowReserved:o.allowReserved,name:i,value:a});e&&r.push(e)}}return r.join(`&`)},re=e=>{if(!e)return`stream`;let t=e.split(`;`)[0]?.trim();if(t){if(t.startsWith(`application/json`)||t.endsWith(`+json`))return`json`;if(t===`multipart/form-data`)return`formData`;if([`application/`,`audio/`,`image/`,`video/`].some(e=>t.startsWith(e)))return`blob`;if(t.startsWith(`text/`))return`text`}},ie=(e,t)=>t?!!(e.headers.has(t)||e.query?.[t]||e.headers.get(`Cookie`)?.includes(`${t}=`)):!1,ae=async({security:e,...t})=>{for(let n of e){if(ie(t,n.name))continue;let e=await b(n,t.auth);if(!e)continue;let r=n.name??`Authorization`;switch(n.in){case`query`:t.query||={},t.query[r]=e;break;case`cookie`:t.headers.append(`Cookie`,`${r}=${e}`);break;default:t.headers.set(r,e);break}}},S=e=>ne({baseUrl:e.baseUrl,path:e.path,query:e.query,querySerializer:typeof e.querySerializer==`function`?e.querySerializer:x(e.querySerializer),url:e.url}),C=(e,t)=>{let n={...e,...t};return n.baseUrl?.endsWith(`/`)&&(n.baseUrl=n.baseUrl.substring(0,n.baseUrl.length-1)),n.headers=w(e.headers,t.headers),n},oe=e=>{let t=[];return e.forEach((e,n)=>{t.push([n,e])}),t},w=(...e)=>{let t=new Headers;for(let n of e){if(!n)continue;let e=n instanceof Headers?oe(n):Object.entries(n);for(let[n,r]of e)if(r===null)t.delete(n);else if(Array.isArray(r))for(let e of r)t.append(n,e);else r!==void 0&&t.set(n,typeof r==`object`?JSON.stringify(r):r)}return t},T=class{fns=[];clear(){this.fns=[]}eject(e){let t=this.getInterceptorIndex(e);this.fns[t]&&(this.fns[t]=null)}exists(e){let t=this.getInterceptorIndex(e);return!!this.fns[t]}getInterceptorIndex(e){return typeof e==`number`?this.fns[e]?e:-1:this.fns.indexOf(e)}update(e,t){let n=this.getInterceptorIndex(e);return this.fns[n]?(this.fns[n]=t,e):!1}use(e){return this.fns.push(e),this.fns.length-1}},se=()=>({error:new T,request:new T,response:new T}),E=x({allowReserved:!1,array:{explode:!0,style:`form`},object:{explode:!0,style:`deepObject`}}),ce={"Content-Type":`application/json`},D=(e={})=>({...d,headers:ce,parseAs:`auto`,querySerializer:E,...e}),O=((e={})=>{let t=C(D(),e),n=()=>({...t}),r=e=>(t=C(t,e),n()),i=se(),a=async e=>{let n={...t,...e,fetch:e.fetch??t.fetch??globalThis.fetch,headers:w(t.headers,e.headers),serializedBody:void 0};n.security&&await ae({...n,security:n.security}),n.requestValidator&&await n.requestValidator(n),n.body!==void 0&&n.bodySerializer&&(n.serializedBody=n.bodySerializer(n.body)),(n.body===void 0||n.serializedBody===``)&&n.headers.delete(`Content-Type`);let r=n;return{opts:r,url:S(r)}},o=async e=>{let n=e.throwOnError??t.throwOnError,r=e.responseStyle??t.responseStyle,o,s;try{let{opts:t,url:n}=await a(e),r={redirect:`follow`,...t,body:y(t)};o=new Request(n,r);for(let e of i.request.fns)e&&(o=await e(o,t));let c=t.fetch;s=await c(o);for(let e of i.response.fns)e&&(s=await e(s,o,t));let l={request:o,response:s};if(s.ok){let e=(t.parseAs===`auto`?re(s.headers.get(`Content-Type`)):t.parseAs)??`json`;if(s.status===204||s.headers.get(`Content-Length`)===`0`){let n;switch(e){case`arrayBuffer`:case`blob`:case`text`:n=await s[e]();break;case`formData`:n=new FormData;break;case`stream`:n=s.body;break;default:n={};break}return t.responseStyle===`data`?n:{data:n,...l}}let n;switch(e){case`arrayBuffer`:case`blob`:case`formData`:case`text`:n=await s[e]();break;case`json`:{let e=await s.text();n=e?JSON.parse(e):{};break}case`stream`:return t.responseStyle===`data`?s.body:{data:s.body,...l}}return e===`json`&&(t.responseValidator&&await t.responseValidator(n),t.responseTransformer&&(n=await t.responseTransformer(n))),t.responseStyle===`data`?n:{data:n,...l}}let u=await s.text(),d;try{d=JSON.parse(u)}catch{}throw d??u}catch(t){let a=t;for(let t of i.error.fns)t&&(a=await t(a,s,o,e));if(a||={},n)throw a;return r===`data`?void 0:{error:a,request:o,response:s}}},s=e=>t=>o({...t,method:e}),c=e=>async t=>{let{opts:n,url:r}=await a(t);return f({...n,body:n.body,method:e,onRequest:async(e,t)=>{let r=new Request(e,t);for(let e of i.request.fns)e&&(r=await e(r,n));return r},serializedBody:y(n),url:r})};return{buildUrl:e=>S({...t,...e}),connect:s(`CONNECT`),delete:s(`DELETE`),get:s(`GET`),getConfig:n,head:s(`HEAD`),interceptors:i,options:s(`OPTIONS`),patch:s(`PATCH`),post:s(`POST`),put:s(`PUT`),request:o,setConfig:r,sse:{connect:c(`CONNECT`),delete:c(`DELETE`),get:c(`GET`),head:c(`HEAD`),options:c(`OPTIONS`),patch:c(`PATCH`),post:c(`POST`),put:c(`PUT`),trace:c(`TRACE`)},trace:s(`TRACE`)}})(D()),le=e=>(e.client??O).get({url:`/_allauth/{client}/v1/auth/provider/signup`,...e}),ue=e=>(e.client??O).post({url:`/_allauth/{client}/v1/auth/provider/signup`,...e,headers:{"Content-Type":`application/json`,...e.headers}}),de=e=>(e.client??O).delete({url:`/_allauth/{client}/v1/auth/session`,...e}),k=e=>(e.client??O).get({url:`/_allauth/{client}/v1/auth/session`,...e}),A=()=>o()?`app`:`browser`;function fe(e){return!e.ok&&e.status===409}function j(e,t){let n=e;if(n&&Array.isArray(n.errors))return{ok:!1,status:t,errors:n.errors};let r=n?.data;return r&&Array.isArray(r.flows)?{ok:!1,status:t,errors:[],flows:r.flows}:{ok:!1,status:t,errors:[]}}async function M(){let{data:e,error:t,response:n}=await k({path:{client:A()}});return e?{ok:!0,data:e.data}:j(t,n?.status)}async function pe(){let{data:e,error:t,response:n}=await de({path:{client:A()}});return e?{ok:!0,data:e}:n?.status===401?{ok:!0,data:{}}:j(t,n?.status)}async function me(){let{data:e,error:t,response:n}=await le({path:{client:A()}});return e?{ok:!0,data:e.data}:j(t,n?.status)}async function he({email:e,username:t}){let{data:n,error:r,response:i}=await ue({path:{client:A()},body:{email:e,username:t}});return n?{ok:!0,data:n.data}:j(r,i?.status)}var N;function ge(){return o()?(N===void 0&&(N=window.vellum?.auth?.getSessionToken?.()??null),N):null}function _e(e){N=e}var P=`__Secure-csrftoken`;function F(){return document.cookie.split(`; `).findLast(e=>e.startsWith(`${P}=`))?.split(`=`).slice(1).join(`=`)}function I(){document.cookie.split(`; `).filter(e=>e.startsWith(`${P}=`)).length>1&&(document.cookie=`${P}=; path=/; max-age=0; secure`)}var L=null;async function R(){o()||i()||(I(),!F()&&(L||=(async()=>{for(let e=0;e<2;e++)try{if(await k({path:{client:`browser`}}),F())return}catch{console.warn(`CSRF cookie bootstrap failed (attempt ${e+1}/2)`),e===0&&await new Promise(e=>setTimeout(e,500))}})().finally(()=>{L=null}),await L))}var ve=`/_allauth/browser/v1/auth/provider/redirect`;function ye(e,t,n,r={}){let i={provider:e,callback_url:new URL(t,n).href,process:`login`};return r.intent&&(i.intent=r.intent),r.loginHint&&(i.login_hint=r.loginHint),i}function be(e){if(!e)throw Error(`Unable to start provider redirect: CSRF token is missing. The session may not be initialized. Please refresh the page and try again.`)}async function xe(e,t,n={}){await R();let r=F();be(r);let i=window.location.origin,a=document.createElement(`form`);a.method=`POST`,a.action=`${i}${ve}`;let o=ye(e,t,i,n);o.csrfmiddlewaretoken=r;for(let[e,t]of Object.entries(o)){let n=document.createElement(`input`);n.type=`hidden`,n.name=e,n.value=t,a.appendChild(n)}document.body.appendChild(a),a.submit()}function Se(e,t){return e?{kind:`authenticated`}:t.some(e=>e.id===`provider_signup`&&e.is_pending)?{kind:`provider_signup`}:{kind:`error`,message:`Unexpected authentication state.`}}var Ce=`https://www.vellum.ai`,we=`vellum:loopback:state`,Te=`vellum:loopback:returnTo`;function z(){let e=window.__VELLUM_CONFIG__;return e?.webUrl?{webUrl:e.webUrl}:{webUrl:Ce}}function Ee(){let e=new Uint8Array(32);return crypto.getRandomValues(e),Array.from(e,e=>e.toString(16).padStart(2,`0`)).join(``)}function De(){return z().webUrl===window.location.origin}async function Oe(e,t){let{webUrl:n}=z(),r=Ee(),i=window.location.port||`3000`;sessionStorage.setItem(we,r),e&&sessionStorage.setItem(Te,e);let a=`/accounts/cli/callback?port=${i}&state=${r}`,o=`${n}/account/${t?.intent===`signup`?`signup`:`login`}?returnTo=${encodeURIComponent(a)}`;window.location.href=o}async function B(e){o()&&await window.vellum?.menu.setPlatformSession(e)}var V=e(r(),1),ke=s(`NativeAuth`),H=u.assistant,U=!1;function Ae(){return U}function je(){return`${window.location.protocol}//${window.location.host}`}function W(){return typeof window<`u`&&c.isNativePlatform()}var Me=()=>()=>{};function Ne(){return(0,V.useSyncExternalStore)(Me,W,()=>!1)}async function G(e){let t=e?.baseURL??je(),{sessionToken:n}=await ke.startAuth({baseURL:t,...e?.loginHint?{loginHint:e.loginHint}:{},...e?.intent?{intent:e.intent}:{}});q(n),W()&&await K(),$()&&await Z(n);let r=l(e?.returnTo??null,H);window.location.href=r}async function K(){for(let e=0;e<6;e++){try{let e=await M();if(e.ok&&e.data.user)return}catch{}await new Promise(t=>setTimeout(t,50*(e+1)))}}function q(e){let t=`path=/; domain=.vellum.ai; secure; samesite=lax; max-age=1209600`;document.cookie=`sessionid=${e}; ${t}`,document.cookie=`__Secure-sessionid=${e}; ${t}`}function Pe(){if(typeof document>`u`)return null;let e=document.cookie.split(`; `);for(let t of[`__Secure-sessionid`,`sessionid`]){let n=e.find(e=>e.startsWith(`${t}=`));if(n){let e=n.slice(t.length+1);if(e)return e}}return null}async function Fe(e,t,n={}){if(W()){try{await G({returnTo:n.intent===`signup`?u.onboarding.privacy:n.returnTo??null,loginHint:n.loginHint,intent:n.intent})}catch(e){if(e?.code===`USER_CANCELLED`)return;throw e}return}if(o()&&window.vellum?.auth?.startOAuth){U=!0;try{let e=await window.vellum.auth.startOAuth({loginHint:n.loginHint,intent:n.intent});if(e?.sessionToken){_e(e.sessionToken),await B(!0);let t=l(n.intent===`signup`?u.onboarding.privacy:n.returnTo??null,H);window.location.href=t}}finally{U=!1}return}if(a()&&!De()){await Oe(n.returnTo??void 0,{intent:n.intent});return}await xe(e,t,n)}var J=s(`NativeBiometric`),Y=`vellum.ai`;async function X(){if(!W())return!1;try{let{available:e}=await J.isAvailable();return e}catch{return!1}}async function Z(e){if(!await X())return!1;try{return await J.storeToken({token:e,server:Y}),!0}catch(e){return console.error(`[native-biometric] failed to store token:`,e),!1}}var Q=null;async function Ie(){return W()?Q||(Q=(async()=>{try{let{token:e}=await J.retrieveToken({server:Y,reason:`Sign in to Vellum`});return e}catch{return null}finally{Q=null}})(),Q):null}async function Le(){if(W())try{await J.deleteToken({server:Y})}catch{}}function $(){return n(`biometricEnabled`,!0)}function Re(e){t(`biometricEnabled`,e)}async function ze(){if(!W())return`Biometrics`;try{let{biometryType:e}=await J.isAvailable();switch(e){case`faceId`:return`Face ID`;case`touchId`:return`Touch ID`;case`opticId`:return`Optic ID`;default:return`Biometrics`}}catch{return`Biometrics`}}export{fe as C,O as E,M as S,he as T,Se as _,Ie as a,ge as b,Pe as c,Ae as d,Fe as f,B as g,K as h,$ as i,q as l,Ne as m,ze as n,Re as o,G as p,X as r,Z as s,Le as t,W as u,R as v,pe as w,me as x,F as y};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e=`vellum:oauth-complete-deeplink`,t=`oauth-complete`,n={"www.vellum.ai":`vellum-assistant`,"vellum.ai":`vellum-assistant`,"staging-assistant.vellum.ai":`vellum-assistant-staging`,"dev-assistant.vellum.ai":`vellum-assistant-dev`};new Set(Object.values(n).map(e=>`${e}:`));function r(e){return n[e]??null}function i(e,n){let r=new URLSearchParams;return r.set(`requestId`,n.requestId),n.oauthStatus!==null&&r.set(`oauth_status`,n.oauthStatus),n.oauthProvider!==null&&r.set(`oauth_provider`,n.oauthProvider),n.oauthCode!==null&&r.set(`oauth_code`,n.oauthCode),`${e}://${t}?${r.toString()}`}export{i as n,r,e as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-DJZBPgpf.js";import{r as n}from"./chunk-5KNZJZUH-DdS6bb-3.js";import{n as r}from"./QueryClientProvider-DKhXIxGb.js";import{t as i}from"./useQuery-B45lW1Kk.js";import{t as a}from"./useMutation-Lj4VunQV.js";import{t as o}from"./jsx-runtime-CVSDxk6A.js";import{t as s}from"./createLucideIcon-IRfcSUxS.js";import{t as c}from"./bell-BQLonLMp.js";import{t as l}from"./check-DFNrQERi.js";import{t as u}from"./menu-Bjq0lFxx.js";import{t as d}from"./loader-circle-D1pLQlMh.js";import{t as f}from"./moon-Br0t6dvo.js";import{t as p}from"./triangle-alert-CuLBwl1x.js";import{t as m}from"./notice-Dh3mnM_U.js";import{t as h}from"./popover-DKvyZMoc.js";import{t as g}from"./input-DR1eB4a1.js";import{n as _,t as v}from"./panel-item-vXPWJAXs.js";import{n as y}from"./toast-DowcpN7g.js";import{o as b}from"./routes-iUGoIqW2.js";import{n as x}from"./use-is-mobile-DJUk0lC8.js";import{_t as S,ft as C,gt as w,ht as T,mt as E,pt as D,vt as O}from"./react-query.gen-DVZyPw6H.js";import{Lr as k,Rr as A,T as j,zr as M}from"./index-CoobbyzR.js";import{t as N}from"./mutation-error-DITUXbSQ.js";import{r as P}from"./format-date-CLlHK5gl.js";var F=s(`bell-off`,[[`path`,{d:`M10.268 21a2 2 0 0 0 3.464 0`,key:`vwvbt9`}],[`path`,{d:`M17 17H4a1 1 0 0 1-.74-1.673C4.59 13.956 6 12.499 6 8a6 6 0 0 1 .258-1.742`,key:`178tsu`}],[`path`,{d:`m2 2 20 20`,key:`1ooewy`}],[`path`,{d:`M8.668 3.01A6 6 0 0 1 18 8c0 2.687.77 4.653 1.707 6.05`,key:`1hqiys`}]]),I=s(`check-check`,[[`path`,{d:`M18 6 7 17l-5-5`,key:`116fxf`}],[`path`,{d:`m22 10-7.5 7.5L13 16`,key:`ke71qq`}]]),L=e(t(),1);function R(e){e.invalidateQueries({queryKey:E()}),e.invalidateQueries({queryKey:O()})}function z(e){return e.snoozed_until?new Date(e.snoozed_until)>new Date:!1}var B=[{label:`1 hour`,hours:1},{label:`4 hours`,hours:4},{label:`24 hours`,hours:24},{label:`1 week`,hours:168}],V=o();function H({notificationId:e,currentlySnoozed:t,children:n}){let i=r(),o=a(S()),s=x(),[c,l]=(0,L.useState)(!1),d=()=>R(i),f=t=>{let n=new Date(new Date().getTime()+t*60*60*1e3).toISOString();o.mutate({path:{id:e},body:{snoozed_until:n}},{onSuccess:d,onError:N(`Failed to snooze notification`)})},p=()=>{o.mutate({path:{id:e},body:{snoozed_until:null}},{onSuccess:d,onError:N(`Failed to clear snooze`)})};return s?(0,V.jsxs)(_.Root,{open:c,onOpenChange:l,children:[(0,V.jsx)(_.Trigger,{asChild:!0,children:n}),(0,V.jsxs)(_.Content,{children:[(0,V.jsx)(_.Header,{children:(0,V.jsx)(_.Title,{children:`Snooze until…`})}),(0,V.jsxs)(_.Body,{children:[B.map(({label:e,hours:t})=>(0,V.jsx)(v,{label:e,onSelect:()=>{o.isPending||(l(!1),f(t))}},e)),t&&(0,V.jsx)(v,{label:`Clear snooze`,onSelect:()=>{o.isPending||(l(!1),p())}})]})]})]}):(0,V.jsxs)(u.Root,{open:c,onOpenChange:l,children:[(0,V.jsx)(u.Trigger,{children:n}),(0,V.jsxs)(u.Content,{align:`start`,className:`min-w-[12rem]`,children:[(0,V.jsx)(u.Label,{children:`Snooze until…`}),B.map(({label:e,hours:t})=>(0,V.jsx)(u.Item,{disabled:o.isPending,onSelect:()=>f(t),children:e},e)),t&&(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(u.Separator,{}),(0,V.jsx)(u.Item,{disabled:o.isPending,onSelect:()=>p(),children:`Clear snooze`})]})]})]})}function U({existingRules:e,onClose:t,onPauseCreated:n,onPauseDeleted:i,hideTitle:o=!1}){let s=r(),c=a(T()),l=a(w()),[u,f]=(0,L.useState)(``),p=()=>R(s),m=()=>{let e=new Date(new Date().getTime()+365*24*60*60*1e3).toISOString();c.mutate({body:{notification_type:`alert`,dedupe_key_prefix:``,reason:u.trim()||`User requested pause`,expires_at:e}},{onSuccess:e=>{n(e),p(),t()},onError:N(`Failed to pause alerts`)})},h=e=>{l.mutate({path:{rule_id:e}},{onSuccess:()=>{i(e),p(),t()},onError:N(`Failed to resume alerts`)})},_=c.isPending||l.isPending;return(0,V.jsxs)(`div`,{children:[!o&&(0,V.jsx)(`p`,{className:`mb-2 text-body-medium-default text-[var(--content-default)]`,children:`Pause alerts`}),e.length>0?(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsx)(`p`,{className:`text-body-small-default text-[var(--content-secondary)]`,children:`Active pause rules:`}),e.map(e=>(0,V.jsxs)(`div`,{className:`flex items-center justify-between rounded-md border border-[var(--border-base)] bg-[var(--surface-base)] px-2 py-2`,children:[(0,V.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,V.jsx)(`p`,{className:`truncate text-body-small-default text-[var(--content-default)]`,children:e.reason||`All alerts paused`}),e.expires_at&&(0,V.jsxs)(`p`,{className:`text-body-small-default text-[var(--content-secondary)]`,children:[`Expires `,P(e.expires_at)]})]}),(0,V.jsx)(`button`,{type:`button`,onClick:()=>h(e.id),disabled:_,className:`ml-2 shrink-0 cursor-pointer rounded px-2 py-1 text-body-small-default text-[var(--system-negative-strong)] transition-opacity hover:opacity-80 disabled:cursor-not-allowed disabled:opacity-50`,children:`Resume`})]},e.id))]}):(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsx)(`p`,{className:`text-body-small-default text-[var(--content-secondary)]`,children:`Temporarily mute all alert notifications.`}),(0,V.jsx)(g,{type:`text`,value:u,onChange:e=>f(e.target.value),placeholder:`Reason (optional)`}),(0,V.jsx)(`button`,{type:`button`,onClick:()=>m(),disabled:_,className:`w-full cursor-pointer rounded-md bg-[var(--primary-base)] px-3 py-1.5 text-body-medium-default text-[var(--content-inset)] transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50`,children:c.isPending?(0,V.jsxs)(`span`,{className:`flex items-center justify-center gap-2`,children:[(0,V.jsx)(d,{className:`h-3 w-3 animate-spin`}),`Pausing…`]}):`Pause all alerts`})]})]})}function W({notification:e,onAck:t,isAcking:n}){let r=e.notification_type===`alert`,i=z(e),a=!e.is_read;return(0,V.jsxs)(`div`,{className:`relative rounded-lg border border-[var(--border-base)] p-4`,style:{background:e.is_resolved?`var(--surface-base)`:`var(--surface-lift)`,opacity:e.is_resolved?.75:1},children:[(0,V.jsx)(`div`,{className:`flex items-start gap-3`,children:(0,V.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col items-start gap-1`,children:[(0,V.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[a&&!e.is_resolved&&(0,V.jsx)(`span`,{"aria-hidden":!0,className:`h-2 w-2 shrink-0 rounded-full bg-[var(--primary-base)]`}),r&&(0,V.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-full bg-[color-mix(in_oklab,var(--system-negative-strong)_14%,transparent)] px-2 py-0.5 text-body-small-default text-[var(--system-negative-strong)]`,children:[(0,V.jsx)(p,{className:`h-3 w-3`}),`Alert`]}),i&&(0,V.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-full bg-[var(--surface-base)] px-2 py-0.5 text-body-small-default text-[var(--content-secondary)]`,children:[(0,V.jsx)(f,{className:`h-3 w-3`}),`Snoozed`]}),e.is_resolved&&(0,V.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-full bg-[color-mix(in_oklab,var(--system-positive-strong)_14%,transparent)] px-2 py-0.5 text-body-small-default text-[var(--system-positive-strong)]`,children:[(0,V.jsx)(l,{className:`h-3 w-3`}),`Resolved`]})]}),(0,V.jsx)(`h3`,{className:`text-body-medium-default leading-tight`,style:{color:e.is_resolved?`var(--content-secondary)`:`var(--content-default)`},children:e.title}),e.body&&(0,V.jsx)(`p`,{className:`text-body-small-default leading-relaxed text-[var(--content-secondary)]`,children:e.body})]})}),(0,V.jsxs)(`div`,{className:`mt-3 flex items-center gap-3 text-body-small-default text-[var(--content-secondary)]`,children:[(0,V.jsxs)(`span`,{children:[`Last seen `,P(e.last_seen_at)]}),e.occurrence_count>1&&(0,V.jsxs)(`span`,{children:[`· `,e.occurrence_count,`× occurrences`]})]}),!e.is_resolved&&(0,V.jsxs)(`div`,{className:`mt-3 flex items-center gap-2 border-t border-[var(--border-base)] pt-3`,children:[(0,V.jsxs)(`button`,{type:`button`,onClick:()=>t(e.id,a),disabled:n,className:`flex cursor-pointer items-center gap-1.5 rounded-md px-3 py-1.5 text-body-small-default transition-opacity hover:opacity-80 disabled:cursor-not-allowed disabled:opacity-50`,style:{background:a?`var(--primary-base)`:`var(--surface-base)`,color:a?`var(--content-inset)`:`var(--content-secondary)`},children:[n?(0,V.jsx)(d,{className:`h-3 w-3 animate-spin`}):(0,V.jsx)(l,{className:`h-3 w-3`}),a?`Mark as read`:`Mark as unread`]}),(0,V.jsx)(H,{notificationId:e.id,currentlySnoozed:i,children:(0,V.jsxs)(`button`,{type:`button`,className:`flex cursor-pointer items-center gap-1.5 rounded-md border border-[var(--border-base)] bg-[var(--surface-base)] px-3 py-1.5 text-body-small-default text-[var(--content-secondary)] transition-opacity hover:opacity-80`,children:[(0,V.jsx)(f,{className:`h-3 w-3`}),i?`Change snooze`:`Snooze`]})})]})]})}function G(){let e=M({platformHostedOnly:!0}),t=k(),o=A(),s=r(),l=x(),[u,f]=(0,L.useState)(`open`),[p,g]=(0,L.useState)(!1),[v,S]=(0,L.useState)([]),{data:w,isLoading:T,isError:E,refetch:O}=i({...D({query:{status:u}}),enabled:e===`full`&&t}),N=e===`full`&&o||(t?T:!1);(0,L.useEffect)(()=>{!t&&p&&g(!1)},[t,p]);let P=t?E:!1,z=t?w?.results??[]:[],B=z.filter(e=>!e.is_read&&!e.is_resolved),H=a(C()),[G,K]=(0,L.useState)(new Set),[q,J]=(0,L.useState)(!1),Y=(0,L.useCallback)(()=>R(s),[s]),X=async(e,t)=>{K(t=>new Set(t).add(e));try{await H.mutateAsync({path:{id:e},body:{acknowledged:t}}),Y()}catch(e){y.error(e instanceof Error?e.message:`Failed to update notification`)}finally{K(t=>{let n=new Set(t);return n.delete(e),n})}},Z=async()=>{if(!(B.length===0||q)){J(!0);try{await Promise.allSettled(B.map(e=>H.mutateAsync({path:{id:e.id},body:{acknowledged:!0}})))}finally{Y(),J(!1)}}},Q=(0,V.jsxs)(`button`,{type:`button`,className:`flex cursor-pointer items-center gap-1.5 rounded-md border border-[var(--border-base)] bg-[var(--surface-base)] px-3 py-1.5 text-body-small-default text-[var(--content-secondary)] transition-opacity hover:opacity-80`,title:`Pause alerts`,children:[(0,V.jsx)(F,{className:`h-3.5 w-3.5`}),`Pause alerts`]}),$=(0,V.jsx)(U,{existingRules:v,onClose:()=>g(!1),onPauseCreated:e=>S(t=>[...t,e]),onPauseDeleted:e=>S(t=>t.filter(t=>t.id!==e))});return e===`gated`?(0,V.jsx)(n,{replace:!0,to:b.settings.general}):e===`disabled`?(0,V.jsxs)(`div`,{className:`space-y-4`,children:[(0,V.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,V.jsx)(c,{className:`h-5 w-5 text-[var(--content-secondary)]`}),(0,V.jsxs)(`div`,{className:`flex-1`,children:[(0,V.jsx)(`h2`,{className:`text-title-medium text-[var(--content-default)]`,children:`Notifications`}),(0,V.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-secondary)]`,children:`Platform alerts and status notifications`})]})]}),(0,V.jsx)(j,{children:`Log in to the Vellum platform to view notifications.`})]}):(0,V.jsxs)(`div`,{className:`space-y-4`,children:[(0,V.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,V.jsx)(c,{className:`h-5 w-5 text-[var(--content-secondary)]`}),(0,V.jsxs)(`div`,{className:`flex-1`,children:[(0,V.jsx)(`h2`,{className:`text-title-medium text-[var(--content-default)]`,children:`Notifications`}),(0,V.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-secondary)]`,children:`Platform alerts and status notifications`})]}),t&&(l?(0,V.jsxs)(_.Root,{open:p,onOpenChange:g,children:[(0,V.jsx)(_.Trigger,{asChild:!0,children:Q}),(0,V.jsxs)(_.Content,{children:[(0,V.jsx)(_.Header,{children:(0,V.jsx)(_.Title,{children:`Pause alerts`})}),(0,V.jsx)(_.Body,{children:(0,V.jsx)(U,{existingRules:v,onClose:()=>g(!1),onPauseCreated:e=>S(t=>[...t,e]),onPauseDeleted:e=>S(t=>t.filter(t=>t.id!==e)),hideTitle:!0})})]})]}):(0,V.jsxs)(h.Root,{open:p,onOpenChange:g,children:[(0,V.jsx)(h.Trigger,{asChild:!0,children:Q}),(0,V.jsx)(h.Content,{align:`end`,className:`w-72`,children:$})]}))]}),(0,V.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,V.jsx)(`div`,{className:`flex gap-1 rounded-md border border-[var(--border-base)] bg-[var(--surface-base)] p-1`,children:[`open`,`resolved`].map(e=>{let t=u===e;return(0,V.jsx)(`button`,{type:`button`,onClick:()=>f(e),className:`cursor-pointer rounded px-3 py-1 text-body-small-default capitalize transition-colors`,style:{background:t?`var(--surface-lift)`:`transparent`,color:t?`var(--content-default)`:`var(--content-secondary)`,boxShadow:t?`0 1px 2px rgba(0,0,0,0.08)`:void 0},children:e},e)})}),u===`open`&&B.length>1&&(0,V.jsxs)(`button`,{type:`button`,onClick:()=>void Z(),disabled:q,className:`ml-auto flex cursor-pointer items-center gap-1.5 rounded-md border border-[var(--border-base)] bg-transparent px-3 py-1.5 text-body-small-default text-[var(--content-secondary)] transition-opacity hover:opacity-80 disabled:cursor-not-allowed disabled:opacity-50`,children:[q?(0,V.jsx)(d,{className:`h-3 w-3 animate-spin`}):(0,V.jsx)(I,{className:`h-3 w-3`}),`Mark all as read (`,B.length,`)`]})]}),N?(0,V.jsxs)(`div`,{className:`flex items-center gap-2 py-6 text-body-medium-lighter text-[var(--content-secondary)]`,children:[(0,V.jsx)(d,{className:`h-4 w-4 animate-spin`}),`Loading notifications…`]}):P?(0,V.jsxs)(m,{tone:`error`,children:[`Failed to load notifications.`,` `,(0,V.jsx)(`button`,{type:`button`,onClick:()=>void O(),className:`cursor-pointer underline hover:no-underline`,children:`Retry`})]}):z.length===0?(0,V.jsxs)(`div`,{className:`flex flex-col items-center justify-center gap-2 py-12 text-center`,children:[(0,V.jsx)(`div`,{className:`flex h-12 w-12 items-center justify-center rounded-full bg-[var(--surface-base)]`,children:(0,V.jsx)(c,{className:`h-5 w-5 text-[var(--content-secondary)]`})}),(0,V.jsxs)(`p`,{className:`text-body-medium-default text-[var(--content-default)]`,children:[`No `,u,` notifications`]}),(0,V.jsx)(`p`,{className:`text-body-small-default text-[var(--content-secondary)]`,children:u===`open`?`You're all caught up!`:`Nothing to show here.`})]}):(0,V.jsx)(`div`,{className:`space-y-3`,children:z.map(e=>(0,V.jsx)(W,{notification:e,onAck:(e,t)=>void X(e,t),isAcking:G.has(e.id)},e.id))})]})}export{G as NotificationsPage};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-DJZBPgpf.js";import{a as n}from"./button-D1p5nVKJ.js";import{t as r}from"./jsx-runtime-CVSDxk6A.js";import{n as i,t as a}from"./cn-C36Yvcac.js";import{a as o,c as s,i as c,n as l,o as u,r as d,s as f,t as p}from"./dist-DcPLFkll.js";var m=e(t(),1),h=r(),g=(0,m.createContext)({});function _({onOpenChange:e,...t}){return(0,h.jsx)(g,{value:{onOpenChange:e},children:(0,h.jsx)(p,{onOpenChange:e,...t})})}function v(e){return(0,h.jsx)(s,{"data-slot":`bottom-sheet-trigger`,...e})}function y({overlayClassName:e,className:t,children:r,ref:i,...s}){let c=n(),{onOpenChange:l}=(0,m.useContext)(g);return(0,h.jsxs)(u,{container:c??void 0,children:[(0,h.jsx)(o,{"data-slot":`bottom-sheet-overlay`,className:a(`fixed inset-0 z-50 bg-black/50`,e),onClick:()=>l?.(!1)}),(0,h.jsx)(d,{ref:i,"data-slot":`bottom-sheet-content`,className:a(`fixed inset-x-0 bottom-0 z-50 flex w-full flex-col rounded-t-[24px] border-t bg-[var(--surface-lift)] border-[var(--border-base)] shadow-xl focus:outline-none`,`max-h-[50dvh]`,`data-[state=open]:animate-[bottomSheetIn_180ms_ease-out]`,t),...s,children:(0,h.jsx)(`div`,{className:`flex min-h-0 flex-1 flex-col px-4 pt-4 pb-[calc(16px+var(--safe-area-inset-bottom,env(safe-area-inset-bottom,0px)))]`,children:r})})]})}function b({icon:e,className:t,children:n,ref:r,...i}){return(0,h.jsxs)(f,{ref:r,"data-slot":`bottom-sheet-title`,className:a(`flex items-center gap-3 text-title-medium text-[var(--content-default)]`,t),...i,children:[e?(0,h.jsx)(`span`,{"aria-hidden":`true`,className:`flex h-10 w-10 shrink-0 items-center justify-center rounded-full`,style:{backgroundColor:`color-mix(in oklab, var(--primary-base) 16%, transparent)`},children:(0,h.jsx)(e,{className:`h-5 w-5 text-[var(--primary-base)]`})}):null,(0,h.jsx)(`span`,{className:`min-w-0 truncate`,children:n})]})}function x({className:e,children:t,ref:n,...r}){return(0,h.jsx)(c,{ref:n,"data-slot":`bottom-sheet-description`,className:a(`mt-1 whitespace-pre-line text-body-medium-lighter text-[var(--content-secondary)]`,e),...r,children:t})}function S(e){return(0,h.jsx)(l,{"data-slot":`bottom-sheet-close`,...e})}function C({className:e,children:t,...n}){return(0,h.jsx)(`div`,{"data-slot":`bottom-sheet-header`,className:a(`flex flex-col gap-1`,e),...n,children:t})}function w({className:e,children:t,...n}){return(0,h.jsx)(`div`,{"data-slot":`bottom-sheet-body`,className:a(`flex-1 overflow-y-auto pt-4 text-[var(--content-default)]`,e),...n,children:t})}function T({className:e,children:t,...n}){return(0,h.jsx)(`div`,{"data-slot":`bottom-sheet-footer`,className:a(`flex justify-end gap-2 pt-4`,e),...n,children:t})}var E={Root:_,Trigger:v,Content:y,Title:b,Description:x,Close:S,Header:C,Body:w,Footer:T},D=50,O=2e3,k=.8;function A({children:e,className:t}){let n=(0,m.useRef)(null),r=(0,m.useRef)(null),[i,o]=(0,m.useState)(0);(0,m.useEffect)(()=>{let e=n.current,t=r.current;if(!e||!t)return;let i=()=>{let n=t.scrollWidth-e.clientWidth;o(n>0?n:0)};i();let a=new ResizeObserver(i);return a.observe(e),a.observe(t),()=>a.disconnect()},[e]);let s=i>0,c=Math.max(O,Math.round(i*2/D*1e3)),l=Math.round(c/k);return(0,h.jsxs)(`span`,{"data-slot":`marquee-text`,ref:n,className:a(`relative min-w-0 flex-1 overflow-hidden`,t),children:[(0,h.jsx)(`span`,{className:`block truncate motion-safe:group-hover:invisible`,children:e}),(0,h.jsx)(`span`,{ref:r,"aria-hidden":!0,className:a(`absolute top-0 left-0 invisible block whitespace-nowrap`,`motion-safe:group-hover:visible`,s&&`motion-safe:group-hover:animate-panelitem-marquee`),style:s?{"--panelitem-marquee-distance":`${i}px`,"--panelitem-marquee-duration":`${l}ms`}:void 0,children:e})]})}var j=[`group relative`,`flex h-8 max-md:h-auto w-full items-center justify-between`,`rounded-[6px] p-[8px] max-md:py-3 gap-[4px]`,`text-left text-body-medium-lighter max-md:text-body-large-default`,`transition-colors`,`bg-transparent`,`text-[var(--content-secondary)]`,`outline-none`].join(` `),M=[`hover:bg-[var(--surface-hover)]`,`keyboard-focus:ring-2 keyboard-focus:ring-[var(--ring)]`,`cursor-pointer select-none`].join(` `),N=[`aria-[current=page]:bg-[var(--surface-active)]`,`aria-[current=page]:text-[var(--content-emphasised)]`].join(` `),P=[`aria-[current=page]:bg-[color-mix(in_oklab,var(--primary-base)_10%,transparent)]`,`aria-[current=page]:text-[var(--primary-base)]`,`aria-[current=page]:font-medium`].join(` `),F=`flex min-w-0 flex-1 items-center gap-[8px]`,I=[`shrink-0`,`text-[var(--content-tertiary)]`,`group-hover:text-[var(--content-secondary)]`].join(` `),L=`group-aria-[current=page]:text-[var(--content-default)]`,R=`group-aria-[current=page]:text-[var(--primary-base)]`,z=`min-w-0 flex-1 truncate`,B=`shrink-0 text-[var(--content-tertiary)]`,V=`flex items-center gap-2 shrink-0`,H=[`inline-flex items-center justify-center shrink-0`,`text-label-small-default leading-none`,`text-[var(--content-tertiary)]`,`rounded-[4px] bg-[var(--surface-base)] px-[4px] py-[2px]`,`group-hover:bg-transparent group-hover:rounded-none`,`group-hover:px-0 group-hover:py-0`,`group-aria-[current=page]:bg-transparent group-aria-[current=page]:rounded-none`,`group-aria-[current=page]:px-0 group-aria-[current=page]:py-0`].join(` `),U=[`flex items-center shrink-0`,`opacity-0 transition-opacity`,`group-hover:opacity-100`,`group-aria-[current=page]:opacity-100`].join(` `);function W({icon:e,leadingSlot:t,label:n,expandChevron:r,badge:o,trailingAction:s,active:c=!1,activeVariant:l=`default`,disabled:u=!1,onSelect:d,href:f,marqueeOnHover:p=!1,className:m,"aria-label":g,asChild:_=!1,children:v,ref:y,...b}){let x=c?`page`:void 0,S=g??(typeof n==`string`?n:void 0),C=(0,h.jsxs)(h.Fragment,{children:[(0,h.jsxs)(`span`,{className:F,children:[t===void 0?e?(0,h.jsx)(e,{size:14,"aria-hidden":!0,className:a(`max-md:size-4`,I,l===`branded`?R:L)}):null:t,p?(0,h.jsx)(A,{children:n}):(0,h.jsx)(`span`,{className:z,children:n}),r?(0,h.jsx)(r,{size:12,"aria-hidden":!0,className:B}):null]}),(0,h.jsxs)(`span`,{className:V,children:[o==null?null:(0,h.jsx)(`span`,{className:H,children:o}),s?(0,h.jsx)(`span`,{className:U,onClick:e=>{e.stopPropagation(),e.preventDefault()},children:s}):null]})]}),w=a(j,(_||!!f||!!d)&&M,l===`branded`?P:N,m);if(_)return(0,h.jsx)(i,{"data-slot":`panel-item`,ref:y,className:w,"aria-current":x,"aria-label":S,...b,children:v});if(f){let{onClick:e,...t}=b;return(0,h.jsx)(`a`,{...t,"data-slot":`panel-item`,ref:y,href:f,className:w,"aria-current":x,"aria-label":S,onClick:t=>{e?.(t),t.defaultPrevented||d?.()},children:C})}if(d){let{onClick:e,onKeyDown:t,...n}=b,r=t=>{if(u){t.preventDefault();return}e?.(t),t.defaultPrevented||d()},i=e=>{u||(t?.(e),!e.defaultPrevented&&(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),d()))};return(0,h.jsx)(`div`,{...n,"data-slot":`panel-item`,ref:y,role:`button`,tabIndex:u?-1:0,"aria-disabled":u||void 0,className:w,"aria-current":x,"aria-label":S,onClick:r,onKeyDown:i,children:C})}return(0,h.jsx)(`div`,{"data-slot":`panel-item`,ref:y,className:w,"aria-current":x,"aria-label":S,...b,children:C})}export{E as n,W as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-DJZBPgpf.js";import{t as n}from"./is-electron-LEymSS4C.js";import{u as r}from"./native-biometric-uwPAd9lh.js";import{t as i}from"./dist-C3LFhPgk2.js";var a=e(t(),1);function o(){if(typeof navigator>`u`)return!1;let e=navigator.userAgent;if(/iPhone|iPod/.test(e)||/iPad/.test(e))return!0;let t=navigator.userAgentData;return(t?.platform?t.platform.toLowerCase().includes(`mac`):navigator.platform.toLowerCase().includes(`mac`))&&navigator.maxTouchPoints>1}function s(){if(typeof navigator>`u`)return!1;let e=navigator.userAgent;return/Safari/.test(e)&&!/CriOS|FxiOS|EdgiOS|OPiOS|Chrome|Chromium/.test(e)}function c(){if(typeof navigator>`u`||o())return!1;let e=navigator.userAgentData;return e?.platform?e.platform.toLowerCase().includes(`mac`):navigator.platform.toLowerCase().includes(`mac`)}function l(){return typeof navigator>`u`?!1:/Android/i.test(navigator.userAgent)}function u(){return n()?`macos`:r()?i.getPlatform()===`android`?`android`:`ios`:o()?`ios`:l()?`android`:`web`}function d(e){if(!e||e.length===0)return null;for(let{family:t,pattern:n}of[{family:`edge`,pattern:/microsoft edge/i},{family:`chrome`,pattern:/google chrome|chromium/i}]){let r=e.find(e=>n.test(e.brand));if(r){let e=r.version.match(/^\d+/)?.[0];return{family:t,...e?{version:e}:{}}}}return null}function f(e){for(let{family:t,pattern:n}of[{family:`edge`,pattern:/(?:Edg|EdgiOS|EdgA)\/(\d+)/},{family:`chrome`,pattern:/(?:Chrome|CriOS|Chromium)\/(\d+)/},{family:`firefox`,pattern:/(?:Firefox|FxiOS)\/(\d+)/},{family:`safari`,pattern:/Version\/(\d+).*Safari\//}]){let r=e.match(n);if(r)return{family:t,version:r[1]}}return null}function p(){if(typeof navigator>`u`)return{};let e=navigator.userAgentData;return d(e?.brands)??f(navigator.userAgent)??{}}var m=()=>()=>{};function h(){return(0,a.useSyncExternalStore)(m,()=>o()&&!r()&&!s(),()=>!1)}function g(){return(0,a.useSyncExternalStore)(m,()=>c()&&!r()&&!n(),()=>!1)}export{g as a,h as i,u as n,c as r,p as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-DJZBPgpf.js";import{d as n,h as r}from"./chunk-5KNZJZUH-DdS6bb-3.js";import{t as i}from"./jsx-runtime-CVSDxk6A.js";import{j as a,w as o}from"./local-mode-YoUYEn7C.js";import{D as s,n as c}from"./auth-store-CI4EhvE5.js";import{c as l}from"./api-DXLi4DU7.js";import{g as u}from"./native-biometric-uwPAd9lh.js";import{o as d}from"./routes-iUGoIqW2.js";var f=e(t(),1),p=i(),m=`vellum:loopback:state`,h=`vellum:loopback:returnTo`;function g(){let[e]=r(),t=n(),[i,g]=(0,f.useState)(null);return(0,f.useEffect)(()=>{let n=e.get(`state`),r=e.get(`session_token`),i=sessionStorage.getItem(m),f=sessionStorage.getItem(h)||d.assistant;if(sessionStorage.removeItem(m),sessionStorage.removeItem(h),!n||n!==i){g(`Login failed: state mismatch. Please try again.`);return}if(!r){g(`Login failed: no session token received. Please try again.`);return}if(!/^[a-zA-Z0-9]+$/.test(r)){g(`Login failed: invalid session token.`);return}(async()=>{if(!await a(r)){g(`Login failed: couldn't reach the local Vellum server to store the session. Please try again.`);return}await c.getState().initSession(),await u(!0);try{let e=await l();if(e.ok&&e.data.length>0){await o(e.data,s.getState().currentOrganizationId??void 0),t(d.assistant,{replace:!0});return}}catch{}t(f,{replace:!0})})()},[e,t]),i?(0,p.jsx)(`div`,{className:`flex min-h-screen items-center justify-center bg-[var(--surface-base)] text-[var(--content-default)]`,children:(0,p.jsxs)(`div`,{className:`max-w-md text-center`,children:[(0,p.jsx)(`p`,{className:`text-body-medium-default`,children:i}),(0,p.jsx)(`button`,{type:`button`,className:`mt-4 rounded-lg border border-[var(--border-disabled)] px-4 py-2 text-sm hover:bg-[var(--surface-lift)]`,onClick:()=>void t(d.welcome),children:`Back to Welcome`})]})}):(0,p.jsx)(`div`,{className:`flex min-h-screen items-center justify-center bg-[var(--surface-base)] text-[var(--content-default)]`,children:(0,p.jsx)(`p`,{className:`text-body-medium-default`,children:`Completing login...`})})}export{g as PlatformLoopbackPage};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{p as e,r as t}from"./chunk-5KNZJZUH-DdS6bb-3.js";import{t as n}from"./jsx-runtime-CVSDxk6A.js";import{o as r}from"./routes-iUGoIqW2.js";import{t as i}from"./assistant-identity-store-Cp3CD7d1.js";import{t as a}from"./plugins-surface-DYk9FmM2.js";var o=n();function s(){let n=i.use.version(),s=a(),{name:c}=e();return n===null?null:s?c?(0,o.jsx)(t,{to:`${r.plugins}?plugin=${encodeURIComponent(c)}`,replace:!0}):(0,o.jsx)(t,{to:r.plugins,replace:!0}):(0,o.jsx)(t,{to:r.identity,replace:!0})}export{s as PluginDetailPage};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{a as t,t as n}from"./local-settings-lVNyIOJ_.js";import{t as r}from"./react-DJZBPgpf.js";import{F as i,t as a}from"./button-D1p5nVKJ.js";import{h as o,r as s}from"./chunk-5KNZJZUH-DdS6bb-3.js";import{n as c}from"./QueryClientProvider-DKhXIxGb.js";import{t as l}from"./useQuery-B45lW1Kk.js";import{t as u}from"./useMutation-Lj4VunQV.js";import{t as d}from"./jsx-runtime-CVSDxk6A.js";import{t as f}from"./card-Bv5O5juh.js";import{t as p}from"./createLucideIcon-IRfcSUxS.js";import{t as m}from"./arrow-left-DI9551VI.js";import{t as h}from"./check-DFNrQERi.js";import{t as g}from"./cloud-off-CysJvmWr.js";import{t as _}from"./external-link-DJ0A4ezO.js";import{i as v,n as y,r as b,t as x}from"./use-skill-categories-q-Ih2uSR.js";import{t as S}from"./globe-DgulNfxa.js";import{t as C}from"./hard-drive-CUjwJ5MQ.js";import{t as w}from"./loader-circle-D1pLQlMh.js";import{t as T}from"./sparkles-3RJkeWa7.js";import{t as E}from"./triangle-alert-CuLBwl1x.js";import{t as D}from"./x-CwzRJv9J.js";import"./src-4xooMXeT.js";import{t as O}from"./tag-BizaosUX.js";import{t as k}from"./popover-DKvyZMoc.js";import{t as A}from"./input-DR1eB4a1.js";import{t as ee}from"./toggle-D7S110RM.js";import{n as j,t as M}from"./panel-item-vXPWJAXs.js";import{n as N}from"./toast-DowcpN7g.js";import{t as P}from"./confirm-dialog-DW84Cxfq.js";import{Tn as F,kn as I,wn as te}from"./sdk.gen-Bz2u5Wv3.js";import{Jt as ne,Xt as re,Yt as ie,at as ae,et as oe,it as L,nt as se}from"./react-query.gen-D8YgmevH.js";import{o as ce}from"./routes-iUGoIqW2.js";import{n as le}from"./use-is-mobile-DJUk0lC8.js";import{t as ue}from"./assistant-identity-store-Cp3CD7d1.js";import{t as R}from"./misc-CfQwP_zq.js";import{Ai as de,Ca as z,Ji as B,Sa as V,Ti as fe,V as H,ka as U,ki as W,kt as pe,la as me,mi as G,ur as he}from"./index-CoobbyzR.js";import{t as ge}from"./use-active-assistant-id-BBHOMQFe.js";import{t as _e}from"./plugins-surface-DYk9FmM2.js";var ve=p(`power-off`,[[`path`,{d:`M18.36 6.64A9 9 0 0 1 20.77 15`,key:`dxknvb`}],[`path`,{d:`M6.16 6.16a9 9 0 1 0 12.68 12.68`,key:`1x7qb5`}],[`path`,{d:`M12 2v4`,key:`3427ic`}],[`path`,{d:`m2 2 20 20`,key:`1ooewy`}]]),K=e(r(),1),q=d(),ye={sm:`h-7 w-7`,md:`h-8 w-8 text-3xl`};function J({external:e=!1,size:t=`sm`,className:n}){let r=e?`📦`:`🧩`;return(0,q.jsx)(`span`,{className:R(`flex shrink-0 items-center justify-center`,ye[t],n),children:r})}var be=e=>`Remove "${e}" from this assistant?`,xe=e=>`"${e}" has local edits that will be overwritten by the upgrade. Continue?`,Se=`Upgrade anyway`,Ce=`Failed to install plugin. Please try again.`,we=`Failed to remove plugin. Please try again.`,Te=`Failed to upgrade plugin. Please try again.`,Ee=`Failed to update plugin. Please try again.`;function De(e,t){let n=e.map(e=>({name:e.name,description:e.description??void 0,status:`installed`,external:void 0,version:e.version??void 0,path:e.path,issues:e.issues,enabled:e.enabled})),r=new Set(n.map(e=>e.name)),i=t.filter(e=>!r.has(e.name)).map(e=>({name:e.name,description:e.description,status:`available`,external:!0,path:e.path}));return[...n,...i]}function Oe(e,t){let n=t.trim().toLowerCase();return n?[e.name,e.description].some(e=>e?.toLowerCase().includes(n)):!0}function ke(e){return[...e].sort((e,t)=>{let n=e.status===`installed`;return n===(t.status===`installed`)?e.name.localeCompare(t.name,void 0,{sensitivity:`base`}):n?-1:1})}function Ae(e,t){switch(t){case`all`:return e;case`available`:return e.filter(e=>e.status===`available`);case`installed`:return e.filter(e=>e.status===`installed`);case`active`:return e.filter(e=>e.status===`installed`&&e.enabled!==!1);case`off`:return e.filter(e=>e.status===`installed`&&e.enabled===!1)}}function Y(e){return e?e.slice(0,7):`unknown`}function X({plugin:e,surfaces:t=null,className:n}){let r=[{label:`Source`,value:e.source?.kind===`github`?e.source.repo:`Local`,href:(e.source?.kind===`github`?`https://github.com/${e.source.repo}`:null)??void 0}];return e.homepage&&r.push({label:`Homepage`,value:e.homepage,href:e.homepage}),e.license&&r.push({label:`License`,value:e.license}),t&&(t.skills.length>0&&r.push({label:`Skills`,value:String(t.skills.length)}),t.hooks.length>0&&r.push({label:`Hooks`,value:String(t.hooks.length)}),t.tools.length>0&&r.push({label:`Tools`,value:String(t.tools.length)})),(0,q.jsx)(`dl`,{className:R(`mb-5 grid gap-x-6 gap-y-2 border-b pb-5 sm:grid-cols-[max-content_1fr]`,n),style:{borderColor:`var(--border-base)`},children:r.map(e=>(0,q.jsxs)(`div`,{className:`contents`,children:[(0,q.jsx)(`dt`,{className:`text-body-small-default`,style:{color:`var(--content-tertiary)`},children:e.label}),(0,q.jsx)(`dd`,{className:`min-w-0 truncate text-body-small-default`,style:{color:`var(--content-secondary)`},children:e.href?(0,q.jsxs)(`a`,{href:e.href,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex items-center gap-1 underline`,style:{color:`var(--primary-base, #60a5fa)`},children:[e.value,(0,q.jsx)(_,{className:`h-3 w-3`,"aria-hidden":!0})]}):e.value})]},e.label))})}function je({plugin:e,drift:t,onInstall:n,onRemove:r,onUpgrade:i,isInstalling:o,isRemoving:s,isUpgrading:c,hasLocalEdits:l,enabled:u,onToggle:d,isToggling:f}){let[p,m]=(0,K.useState)(!1),[h,g]=(0,K.useState)(!1),_=e.installed??!1,v=e.artifact??null,y=t?.status===`update-available`,b=y?`Upgrade ${Y(t?.local?.commit??null)} → ${Y(t?.remote?.commit??null)}`:void 0;return(0,q.jsxs)(q.Fragment,{children:[_?(0,q.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 md:flex-nowrap md:shrink-0`,children:[u!==void 0&&d?(0,q.jsx)(ee,{label:`Auto-include in chat`,checked:u,onChange:()=>d(),disabled:f}):null,v?(0,q.jsx)(a,{asChild:!0,leftIcon:(0,q.jsx)(me,{"aria-hidden":!0}),children:(0,q.jsx)(`a`,{href:v.url,download:!0,children:v.label??`Download`})}):null,y?(0,q.jsx)(a,{type:`button`,onClick:()=>{if(l){g(!0);return}i()},disabled:c,title:b,leftIcon:c?(0,q.jsx)(w,{className:`animate-spin`,"aria-hidden":!0}):(0,q.jsx)(z,{"aria-hidden":!0}),children:`Upgrade`}):null,(0,q.jsx)(a,{type:`button`,variant:`dangerOutline`,onClick:()=>m(!0),disabled:s,leftIcon:s?(0,q.jsx)(w,{className:`animate-spin`,"aria-hidden":!0}):(0,q.jsx)(G,{"aria-hidden":!0}),children:`Remove`})]}):(0,q.jsx)(a,{type:`button`,onClick:n,disabled:o,leftIcon:o?(0,q.jsx)(w,{className:`animate-spin`,"aria-hidden":!0}):(0,q.jsx)(U,{"aria-hidden":!0}),children:`Install`}),(0,q.jsx)(P,{open:p,title:`Remove plugin`,message:be(e.name),confirmLabel:`Remove`,destructive:!0,onConfirm:()=>{m(!1),r()},onCancel:()=>m(!1)}),(0,q.jsx)(P,{open:h,title:`Upgrade plugin`,message:xe(e.name),confirmLabel:Se,destructive:!0,onConfirm:()=>{g(!1),i()},onCancel:()=>g(!1)})]})}function Z(){return(0,q.jsx)(`div`,{className:`flex items-center justify-center py-12`,children:(0,q.jsx)(w,{className:`h-6 w-6 animate-spin`,style:{color:`var(--content-tertiary)`}})})}function Q(){return(0,q.jsxs)(`div`,{className:`flex flex-col items-center justify-center gap-2 py-12 text-center`,style:{color:`var(--content-tertiary)`},children:[(0,q.jsx)(E,{className:`h-6 w-6`,"aria-hidden":!0}),(0,q.jsx)(`p`,{className:`text-body-medium-default`,children:`We couldn't load this plugin.`}),(0,q.jsx)(`p`,{className:`text-body-small-default`,children:`It may not exist, or your assistant may be on an older build.`})]})}function Me({isInstallError:e,isRemoveError:t,isUpgradeError:n}){let r=e?Ce:t?we:n?Te:null;return r?(0,q.jsxs)(`div`,{className:`mb-3 flex items-center gap-2 rounded px-3 py-2 text-body-small-default`,style:{backgroundColor:`var(--surface-secondary)`,color:`var(--content-warning, var(--content-tertiary))`},role:`alert`,children:[(0,q.jsx)(E,{className:`h-4 w-4 shrink-0`,"aria-hidden":!0}),r]}):null}function Ne({external:e,className:t}){let n=e?{label:`External`,icon:S}:{label:`Local`,icon:C};return(0,q.jsx)(O,{tone:`neutral`,leftIcon:(0,K.createElement)(n.icon),className:t,children:n.label})}function Pe({onClick:e,isUpgrading:t=!1}={}){let n=(0,q.jsx)(O,{tone:`warning`,leftIcon:(0,K.createElement)(t?w:z,{className:t?`animate-spin`:void 0}),className:`shrink-0`,children:`Update available`});return e?(0,q.jsx)(`button`,{type:`button`,onClick:t=>{t.stopPropagation(),e()},disabled:t,"aria-label":`Upgrade plugin`,className:`shrink-0 rounded-[6px] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)] disabled:cursor-not-allowed`,children:n}):n}var Fe=300*1e3;function Ie({assistantId:e,name:t,enabled:n=!0}){return l({...se({path:{assistant_id:e,name:t}}),enabled:!!e&&!!t&&n,staleTime:Fe,retry:!1})}function Le(e){let t=e?.local?.localChanges;return!!t&&t?.clean===!1}function Re(e,t,n){let r=c(),i=n?.onRemoved,a=l({...oe({path:{assistant_id:e,name:t}}),enabled:!!e&&!!t}),o=Ie({assistantId:e,name:t,enabled:a.data?.installed??!1}).data,s=(0,K.useCallback)(()=>he(r,e,t),[e,t,r]),u=re({onSuccess:()=>{s(),N.success(`Installed ${t||`plugin`}`)}}),d=ne({onSuccess:()=>{s(),i?.()}}),f=ie({onSuccess:e=>{s(),N.success(e.outcome===`already-up-to-date`?`${t||`Plugin`} is already up to date`:`Upgraded ${t||`plugin`} to ${Y(e.toCommit)}`)}});return{plugin:a.data??null,drift:o,isLoading:a.isLoading,isError:a.isError,install:()=>{u.mutate({path:{assistant_id:e},body:{name:t}})},remove:()=>{d.mutate({path:{assistant_id:e,name:t}})},upgrade:()=>{f.mutate({path:{assistant_id:e,name:t},body:{}})},isInstalling:u.isPending,isRemoving:d.isPending,isUpgrading:f.isPending,isInstallError:u.isError,isRemoveError:d.isError,isUpgradeError:f.isError,hasLocalEdits:Le(o)}}function ze(e){let t=c(),n={queryKey:L({path:{assistant_id:e}})},r=(e,r)=>{t.setQueriesData(n,t=>t&&{...t,plugins:t.plugins.map(t=>t.name===e?{...t,enabled:r}:t)})},i=u({mutationFn:async({name:t,nextEnabled:n})=>{let r=await(n?F({path:{assistant_id:e,name:t},throwOnError:!1}):te({path:{assistant_id:e,name:t},throwOnError:!1})),i=r.response?.status;if(r.response?.ok||i===409)return r;throw Error(`Plugin toggle failed (${i??`network error`})`)},onMutate:async({name:e,nextEnabled:i})=>{await t.cancelQueries(n),r(e,i)},onError:(e,{name:t,nextEnabled:n})=>{r(t,!n),N.error(Ee)},onSettled:(n,r,i)=>{he(t,e,i.name)}});return{toggle:(e,t)=>{i.mutate({name:e,nextEnabled:t})},togglingName:i.isPending?i.variables?.name??null:null}}function Be({assistantId:e,name:t,onBack:n,externalHint:r,enabled:i}){let{plugin:o,drift:s,isLoading:c,isError:l,install:u,remove:d,upgrade:p,isInstalling:h,isRemoving:g,isUpgrading:_,isInstallError:v,isRemoveError:y,isUpgradeError:b,hasLocalEdits:x}=Re(e,t,{onRemoved:n}),{toggle:S,togglingName:C}=ze(e);return(0,q.jsxs)(`div`,{className:`flex h-full min-h-0 flex-1 flex-col`,children:[(0,q.jsxs)(`div`,{className:`mb-4 flex items-start gap-3`,children:[(0,q.jsx)(a,{type:`button`,variant:`ghost`,iconOnly:(0,q.jsx)(m,{"aria-hidden":!0}),"aria-label":`Back to plugins`,onClick:n}),(0,q.jsx)(Ve,{name:t,plugin:o,externalHint:r,drift:s,onInstall:u,onRemove:d,onUpgrade:p,isInstalling:h,isRemoving:g,isUpgrading:_,hasLocalEdits:x,enabled:i,onToggle:()=>S(t,!i),isToggling:C===t})]}),(v||y||b)&&(0,q.jsx)(Me,{isInstallError:v,isRemoveError:y,isUpgradeError:b}),(0,q.jsx)(f.Root,{asChild:!0,children:(0,q.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-6 py-5`,children:c?(0,q.jsx)(Z,{}):l||!o?(0,q.jsx)(Q,{}):(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(X,{plugin:o,surfaces:s?.surfaces??null}),o.readme?(0,q.jsx)(H,{content:o.readme}):(0,q.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`This plugin doesn't ship a README.`})]})})})]})}function Ve({name:e,plugin:t,externalHint:n,drift:r,onInstall:i,onRemove:a,onUpgrade:o,isInstalling:s,isRemoving:c,isUpgrading:l,hasLocalEdits:u,enabled:d,onToggle:f,isToggling:p}){let m=t?.source?.kind===`github`,h=t?m:n,g=r?.status===`update-available`;return(0,q.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-3 sm:flex-row sm:items-center`,children:[(0,q.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-start gap-3`,children:[h===void 0?(0,q.jsx)(`span`,{"aria-hidden":!0,className:`h-8 w-8 shrink-0`}):(0,q.jsx)(J,{external:h,size:`md`}),(0,q.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,q.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-2 gap-y-1`,children:[(0,q.jsx)(`h2`,{className:`text-title-medium`,style:{color:`var(--content-default)`},children:t?.name??e}),t?.version?(0,q.jsxs)(`span`,{className:`shrink-0 text-body-small-default`,style:{color:`var(--content-tertiary)`},children:[`v`,t.version]}):null,t?(0,q.jsx)(Ne,{external:m}):null,g?(0,q.jsx)(Pe,{}):null]}),t?.description?(0,q.jsx)(`p`,{className:`mt-0.5 line-clamp-2 text-body-medium-lighter`,style:{color:`var(--content-secondary)`},children:t.description}):null]})]}),t?(0,q.jsx)(je,{plugin:t,drift:r,onInstall:i,onRemove:a,onUpgrade:o,isInstalling:s,isRemoving:c,isUpgrading:l,hasLocalEdits:u,enabled:d,onToggle:f,isToggling:p}):null]})}var He=e(i(),1);function Ue({assistantId:e,name:t,onBack:n,externalHint:r,enabled:i}){let{plugin:o,drift:s,isLoading:c,isError:l,install:u,remove:d,upgrade:p,isInstalling:h,isRemoving:g,isUpgrading:_,isInstallError:v,isRemoveError:y,isUpgradeError:b,hasLocalEdits:x}=Re(e,t,{onRemoved:n}),{toggle:S,togglingName:C}=ze(e),[w,T]=(0,K.useState)(null);(0,K.useEffect)(()=>{T(document.getElementById(`viewport-overlays`))},[]);let E=o?.source?.kind===`github`,D=o?E:r,O=s?.status===`update-available`,k=o?.name??t,A=(0,q.jsxs)(`div`,{className:`fixed inset-0 z-40 flex flex-col overflow-hidden bg-[var(--surface-overlay)]`,style:{paddingTop:`calc(8px + var(--safe-area-inset-top, env(safe-area-inset-top, 0px)))`,paddingBottom:`calc(8px + var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px)))`,paddingLeft:`calc(12px + var(--safe-area-inset-left, env(safe-area-inset-left, 0px)))`,paddingRight:`calc(12px + var(--safe-area-inset-right, env(safe-area-inset-right, 0px)))`},children:[(0,q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,q.jsx)(a,{variant:`ghost`,iconOnly:(0,q.jsx)(m,{"aria-hidden":!0}),expandOnMobile:!0,"aria-label":`Back to plugins`,onClick:n,className:`max-md:bg-[var(--surface-active)]`}),(0,q.jsx)(`span`,{className:`min-w-0 flex-1 truncate px-2 text-center text-body-medium-default`,style:{color:`var(--content-secondary)`},children:k}),(0,q.jsx)(`span`,{"aria-hidden":!0,className:`h-8 w-8 shrink-0 touch-mobile:h-10 touch-mobile:w-10`})]}),(0,q.jsxs)(`div`,{className:`mt-4 flex flex-col gap-2`,children:[(0,q.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,q.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[D===void 0?(0,q.jsx)(`span`,{"aria-hidden":!0,className:`h-8 w-8 shrink-0`}):(0,q.jsx)(J,{external:D,size:`md`}),(0,q.jsx)(`h2`,{className:`min-w-0 truncate text-title-medium`,style:{color:`var(--content-emphasised)`},children:k})]}),(0,q.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1.5`,children:[O?(0,q.jsx)(Pe,{}):null,o?(0,q.jsx)(Ne,{external:E}):null]})]}),o?.description?(0,q.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:o.description}):null]}),o?(0,q.jsx)(`div`,{className:`mt-3 flex flex-wrap items-center gap-2`,children:(0,q.jsx)(je,{plugin:o,drift:s,enabled:i,onToggle:()=>S(t,!i),isToggling:C===t,onInstall:u,onRemove:d,onUpgrade:p,isInstalling:h,isRemoving:g,isUpgrading:_,hasLocalEdits:x})}):null,(v||y||b)&&(0,q.jsx)(`div`,{className:`mt-3`,children:(0,q.jsx)(Me,{isInstallError:v,isRemoveError:y,isUpgradeError:b})}),(0,q.jsx)(f.Root,{asChild:!0,noPadding:!0,children:(0,q.jsx)(`div`,{className:`mt-6 flex min-h-0 flex-1 flex-col overflow-hidden rounded-2xl border bg-[var(--surface-lift)]`,style:{borderColor:`var(--border-hover)`},children:(0,q.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-4 py-4`,children:c?(0,q.jsx)(Z,{}):l||!o?(0,q.jsx)(Q,{}):(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(X,{plugin:o,surfaces:s?.surfaces??null}),o.readme?(0,q.jsx)(H,{content:o.readme}):(0,q.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`This plugin doesn't ship a README.`})]})})})})]});return w?(0,He.createPortal)(A,w):A}var We={value:`all`,label:`All`,icon:B},Ge={value:`available`,label:`Available`,icon:U};function Ke(e){return e?[We,{value:`active`,label:`Active`,icon:de},{value:`off`,label:`Off`,icon:ve},Ge]:[We,{value:`installed`,label:`Installed`,icon:V},Ge]}function qe({search:e,onSearchChange:t,filter:n,onFilterChange:r,isSearching:i=!1,categories:a,category:o,onCategoryChange:s,counts:c,totalCount:l,showCounts:u,pluginToggleSupported:d}){return(0,q.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,q.jsx)(A,{type:`search`,value:e,onChange:e=>{t(e.target.value)},placeholder:`Search plugins`,"aria-label":`Search plugins`,leftIcon:(0,q.jsx)(fe,{className:`h-4 w-4`,"aria-hidden":!0}),rightIcon:i?(0,q.jsx)(w,{className:`h-4 w-4 animate-spin`,"aria-hidden":!0}):void 0,fullWidth:!0,wrapperClassName:`flex-1`}),(0,q.jsx)(Je,{filter:n,onFilterChange:r,categories:a,category:o,onCategoryChange:s,counts:c,totalCount:l,showCounts:u,pluginToggleSupported:d})]})}function Je(e){let t=le(),[n,r]=(0,K.useState)(!1),i=(0,q.jsx)(a,{type:`button`,variant:`outlined`,iconOnly:(0,q.jsx)(v,{"aria-hidden":!0}),"aria-label":`Filter plugins`,"aria-haspopup":t?`dialog`:`listbox`,"aria-expanded":n,tintColor:`var(--primary-base)`});return t?(0,q.jsx)(Ye,{...e,open:n,onOpenChange:r,trigger:i}):(0,q.jsxs)(k.Root,{open:n,onOpenChange:r,children:[(0,q.jsx)(k.Trigger,{asChild:!0,children:i}),(0,q.jsx)(k.Content,{align:`end`,sideOffset:4,className:`w-44 overflow-hidden p-0`,children:(0,q.jsx)(`ul`,{role:`listbox`,children:(0,q.jsx)(Qe,{label:`Status`,options:Ke(e.pluginToggleSupported),selected:e.filter,onSelect:t=>{e.onFilterChange(t),r(!1)}})})})]})}function Ye({filter:e,onFilterChange:t,categories:n,category:r,onCategoryChange:i,counts:o,totalCount:s,showCounts:c,pluginToggleSupported:l,open:u,onOpenChange:d,trigger:f}){let p=[...n].sort((e,t)=>e.label.localeCompare(t.label));return(0,q.jsxs)(j.Root,{open:u,onOpenChange:d,children:[(0,q.jsx)(j.Trigger,{asChild:!0,children:f}),(0,q.jsxs)(j.Content,{className:`max-h-[85dvh]`,"aria-describedby":void 0,children:[(0,q.jsx)(`div`,{"aria-hidden":!0,className:`mx-auto mb-3 h-1 w-9 shrink-0 rounded-full bg-[var(--border-element)]`}),(0,q.jsx)(j.Header,{children:(0,q.jsx)(j.Title,{children:`Filters`})}),(0,q.jsxs)(j.Body,{className:`flex flex-col gap-3 pt-2`,children:[(0,q.jsx)(Xe,{label:`Status`,children:Ke(l).map(n=>(0,q.jsx)(Ze,{icon:n.icon,label:n.label,active:e===n.value,onSelect:()=>t(n.value)},n.value))}),n.length>0&&(0,q.jsxs)(Xe,{label:`Categories`,children:[(0,q.jsx)(Ze,{icon:B,label:`All`,active:r===null,badge:c?s:void 0,onSelect:()=>i(null)}),p.map(e=>(0,q.jsx)(Ze,{icon:b(e.icon)??B,label:e.label,active:r===e.slug,badge:c?o[e.slug]??0:void 0,onSelect:()=>i(e.slug)},e.slug))]})]}),(0,q.jsx)(j.Footer,{children:(0,q.jsx)(a,{type:`button`,variant:`primary`,fullWidth:!0,onClick:()=>d(!1),children:`Done`})})]})]})}function Xe({label:e,children:t}){return(0,q.jsxs)(`div`,{children:[(0,q.jsx)(`div`,{className:`px-2 pb-1 text-body-small-default uppercase tracking-wide`,style:{color:`var(--content-tertiary)`},children:e}),t]})}function Ze({icon:e,label:t,active:n,badge:r,onSelect:i}){return(0,q.jsx)(M,{icon:e,label:t,active:n,activeVariant:`branded`,badge:r,trailingAction:n&&r==null?(0,q.jsx)(h,{className:`h-4 w-4 text-[var(--primary-base)]`,"aria-hidden":!0}):void 0,onSelect:i})}function Qe({label:e,options:t,selected:n,onSelect:r}){return(0,q.jsxs)(`li`,{children:[(0,q.jsx)(`div`,{className:`px-3 pb-1 pt-2 text-body-small-default uppercase tracking-wide`,style:{color:`var(--content-tertiary)`},children:e}),(0,q.jsx)(`ul`,{children:t.map(e=>{let t=e.icon,i=n===e.value;return(0,q.jsx)(`li`,{children:(0,q.jsxs)(`button`,{type:`button`,onClick:()=>r(e.value),role:`option`,"aria-selected":i,className:`flex w-full items-center gap-2 px-3 py-1.5 text-left text-body-medium-lighter transition-colors hover:bg-[var(--surface-hover)]`,style:{color:i?`var(--primary-base)`:`var(--content-default)`},children:[(0,q.jsx)(t,{className:`h-4 w-4`,"aria-hidden":!0}),(0,q.jsx)(`span`,{className:`flex-1`,children:e.label}),i&&(0,q.jsx)(V,{className:`h-3.5 w-3.5`,"aria-hidden":!0})]})},e.value)})})]})}function $e({item:e,drift:t,onSelect:n,onInstall:r,onRemove:i,onUpgrade:o,isInstalling:s=!1,isRemoving:c=!1,isUpgrading:l=!1}){let u=e.status===`available`,d=t?.status===`update-available`,p=e.enabled!==void 0,m=e.enabled===!1;return(0,q.jsx)(f.Root,{asChild:!0,children:(0,q.jsxs)(`div`,{role:`button`,tabIndex:0,onClick:n,onKeyDown:e=>{e.target===e.currentTarget&&(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),n())},className:`flex cursor-pointer items-center gap-3 px-3 py-2 text-left transition-colors hover:bg-[var(--surface-hover)] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)]`,children:[(0,q.jsx)(J,{size:`sm`,external:e.external,className:m?`opacity-50`:void 0}),(0,q.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,q.jsx)(`span`,{className:`truncate text-body-medium-default`,style:{color:m?`var(--content-tertiary)`:`var(--content-emphasised)`},children:e.name}),e.version?(0,q.jsxs)(`span`,{className:`shrink-0 text-body-small-default`,style:{color:`var(--content-tertiary)`},children:[`v`,e.version]}):null,d?(0,q.jsx)(Pe,{onClick:o,isUpgrading:l}):null]}),(0,q.jsx)(`p`,{className:`mt-1 truncate text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:e.description??`No description provided.`}),e.issues&&e.issues.length>0?(0,q.jsxs)(`p`,{className:`mt-1 truncate text-body-small-default`,style:{color:`var(--content-warning, var(--content-tertiary))`},title:e.issues.join(`; `),children:[e.issues[0],e.issues.length>1?` (+${e.issues.length-1} more)`:``]}):null]}),u?s?(0,q.jsx)(a,{type:`button`,iconOnly:(0,q.jsx)(w,{className:`animate-spin`,"aria-hidden":!0}),disabled:!0,"aria-label":`Installing`,expandOnMobile:!1}):(0,q.jsx)(a,{type:`button`,iconOnly:(0,q.jsx)(U,{"aria-hidden":!0}),onClick:e=>{e.stopPropagation(),r?.()},disabled:!r,"aria-label":`Install plugin`,expandOnMobile:!1}):(0,q.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[p?(0,q.jsx)(O,{tone:e.enabled?`positive`:`neutral`,children:e.enabled?`Enabled`:`Disabled`}):null,(0,q.jsx)(a,{type:`button`,variant:`dangerOutline`,iconOnly:c?(0,q.jsx)(w,{className:`animate-spin`,"aria-hidden":!0}):(0,q.jsx)(G,{"aria-hidden":!0}),onClick:e=>{e.stopPropagation(),i?.()},disabled:c||l||!i,"aria-label":`Remove plugin`,expandOnMobile:!1})]})]})})}var et=300*1e3,$=[],tt=[];async function nt(e,t,n){let r=await I({path:{assistant_id:e},query:{q:void 0,category:t},signal:n,throwOnError:!1});if(r.response?.status===404)return{plugins:[]};if(!r.response?.ok)throw Error(`Failed to load plugins`);return r.data??{plugins:[]}}function rt(e,t){let[n,r]=(0,K.useState)({assistantId:e,latched:!1}),i=n.assistantId===e?n.latched:!1;return n.assistantId!==e&&r({assistantId:e,latched:!1}),(0,K.useEffect)(()=>{t&&r(t=>t.assistantId===e&&t.latched?t:{assistantId:e,latched:!0})},[e,t]),i||t}function it(e,t=null){let n=t??void 0,r=l({queryKey:L({path:{assistant_id:e},query:{q:void 0,category:n}}),queryFn:({signal:t})=>nt(e,n,t),enabled:!!e,staleTime:et}),i=l({...pe(e),enabled:!!e&&t!==null}),a=l({...ae({path:{assistant_id:e},query:{q:void 0}}),enabled:!!e,staleTime:et}),o=(0,K.useMemo)(()=>{let e=t===null?r.data?.plugins:i.data?.plugins??r.data?.plugins;return new Set((e??$).map(e=>e.name))},[t,i.data?.plugins,r.data?.plugins]),s=(0,K.useMemo)(()=>{let e=r.data?.plugins??$,n=a.data?.matches??tt;return ke(De(e,(t===null?n:n.filter(e=>(e.category??`system`)===t)).filter(e=>!o.has(e.name))))},[r.data?.plugins,a.data?.matches,t,o]),u=t===null?r.data:i.data,d=rt(e,u?.categoryCounts!==void 0),f=rt(e,(u?.plugins??$).some(e=>e.enabled!==void 0)),p=c(),m=(0,K.useRef)(null);return(0,K.useEffect)(()=>{if(m.current===e||!a.isSuccess)return;let t=u?.plugins;if(!t?.length)return;let n=new Map((a.data?.matches??tt).map(e=>[e.name,e.category]));t.some(e=>{let t=n.get(e.name);return t!=null&&t!==`system`&&(e.category??`system`)===`system`})&&(m.current=e,p.invalidateQueries({queryKey:L({path:{assistant_id:e},query:{q:void 0}})}))},[e,a.isSuccess,a.data?.matches,u?.plugins,p]),{items:s,isLoading:r.isLoading,catalogLoading:a.isLoading,isError:r.isError,isFetching:r.isFetching||a.isFetching,catalogError:a.isError,categorySupported:d,pluginToggleSupported:f,installedCategoryCounts:u?.categoryCounts,installedPlugins:u?.plugins??$,installedTotal:u?.totalCount,catalogMatches:a.data?.matches??tt,unfilteredInstalledNames:o}}var at=`vellum:plugins:tipDismissed`;function ot({assistantId:e}){let r=c(),i=le(),[a,s]=o(),l=a.get(`plugin`),[u,d]=(0,K.useState)(``),[f,p]=(0,K.useState)(`all`),[m,h]=(0,K.useState)(null),[g,_]=(0,K.useState)(null),[v,b]=(0,K.useState)(null),[S,C]=(0,K.useState)(null),[w,T]=(0,K.useState)(null),[E,D]=(0,K.useState)(null),[O,k]=(0,K.useState)(()=>n(at,!1)),[A,ee]=(0,K.useState)(e);e!==A&&(ee(e),h(null));let j=e===A?m:null,{data:M=[]}=x(e),{items:F,isLoading:I,catalogLoading:te,isError:ae,isFetching:oe,catalogError:L,categorySupported:se,pluginToggleSupported:ce,installedCategoryCounts:ue,installedPlugins:R,installedTotal:de,catalogMatches:z,unfilteredInstalledNames:B}=it(e,j),V=(ce?[`all`,`active`,`off`,`available`]:[`all`,`installed`,`available`]).includes(f)?f:`all`,{counts:fe,totalCount:H}=st(ue,R,de,z,B,V),U=se&&M.length>0,W=(0,K.useCallback)(t=>he(r,e,t),[e,r]),pe=re({onMutate:e=>_(e.body.name),onSuccess:(e,t)=>N.success(`Installed ${t.body.name}`),onError:()=>N.error(Ce),onSettled:(e,t,n)=>{_(null),W(n.body.name)}}),me=ne({onMutate:e=>b(e.path.name),onSuccess:(e,t)=>N.success(`Removed ${t.path.name}`),onError:()=>N.error(we),onSettled:(e,t,n)=>{b(null),W(n.path.name)}}),G=ie({onMutate:e=>C(e.path.name),onSuccess:(e,t)=>N.success(e.outcome===`already-up-to-date`?`${t.path.name} is already up to date`:`Upgraded ${t.path.name} to ${Y(e.toCommit)}`),onError:()=>N.error(Te),onSettled:(e,t,n)=>{C(null),W(n.path.name)}}),ge=(0,K.useCallback)(e=>s(t=>{let n=new URLSearchParams(t);return n.set(`plugin`,e.name),n}),[s]),_e=(0,K.useCallback)(()=>s(e=>{let t=new URLSearchParams(e);return t.delete(`plugin`),t},{replace:!0}),[s]),ve=(0,K.useCallback)(t=>{pe.mutate({path:{assistant_id:e},body:{name:t.name}})},[e,pe]),ye=(0,K.useCallback)(()=>{w&&(me.mutate({path:{assistant_id:e,name:w.name}}),T(null))},[e,w,me]),J=(0,K.useCallback)(t=>{G.mutate({path:{assistant_id:e,name:t},body:{}})},[e,G]),Ee=(0,K.useCallback)(()=>{E&&(J(E.name),D(null))},[E,J]),De=(0,K.useCallback)((e,t)=>{if(Le(t)){D(e);return}J(e.name)},[J]),ke=(0,K.useCallback)(()=>{k(!0),t(at,!0)},[]),X=(0,K.useMemo)(()=>Ae(F,V).filter(e=>Oe(e,u)),[F,V,u]),je=oe&&!I,Z=u.trim().length>0;if(l){let t=F.find(e=>e.name===l),n={assistantId:e,name:l,externalHint:t?.external,enabled:t?.enabled,onBack:_e};return i?(0,q.jsx)(Ue,{...n}):(0,q.jsx)(Be,{...n})}let Q=(0,q.jsx)(`div`,{className:`min-w-0 flex-1 overflow-y-auto`,children:I?(0,q.jsx)(dt,{}):ae?(0,q.jsx)(ft,{}):X.length===0?te&&(V===`all`||V===`available`)?(0,q.jsx)(dt,{}):(0,q.jsx)(pt,{filter:V,category:j}):(0,q.jsx)(`ul`,{className:`flex flex-col gap-2`,children:X.map(t=>(0,q.jsx)(`li`,{children:t.status===`installed`?(0,q.jsx)(ct,{assistantId:e,item:t,onSelect:()=>ge(t),onRemove:()=>T(t),onUpgrade:e=>De(t,e),isRemoving:v===t.name,isUpgrading:S===t.name}):(0,q.jsx)($e,{item:t,onSelect:()=>ge(t),onInstall:()=>ve(t),isInstalling:g===t.name})},t.name))})});return(0,q.jsxs)(`div`,{className:`flex h-full min-h-0 flex-1 flex-col gap-4`,children:[!O&&(0,q.jsx)(lt,{onDismiss:ke}),(0,q.jsx)(qe,{search:u,onSearchChange:d,filter:V,onFilterChange:p,isSearching:je,categories:U?M:[],category:j,onCategoryChange:h,counts:fe,totalCount:H,showCounts:!Z,pluginToggleSupported:ce}),L&&!I&&!ae?(0,q.jsx)(ut,{}):null,U?(0,q.jsxs)(`div`,{className:`flex min-h-0 flex-1 gap-6`,children:[(0,q.jsx)(`aside`,{className:`hidden w-56 shrink-0 overflow-y-auto md:block`,children:(0,q.jsx)(y,{ariaLabel:`Plugin categories`,selected:j,onSelect:h,counts:fe,totalCount:H,showCounts:!Z,categories:M})}),Q]}):Q,(0,q.jsx)(P,{open:w!==null,title:`Remove plugin`,message:w?be(w.name):``,confirmLabel:`Remove`,destructive:!0,onConfirm:ye,onCancel:()=>T(null)}),(0,q.jsx)(P,{open:E!==null,title:`Upgrade plugin`,message:E?xe(E.name):``,confirmLabel:Se,destructive:!0,onConfirm:Ee,onCancel:()=>D(null)})]})}function st(e,t,n,r,i,a){return(0,K.useMemo)(()=>{let o={},s=a!==`available`,c=a===`all`||a===`available`,l=a===`active`||a===`off`,u=l?t.filter(e=>a===`off`?e.enabled===!1:e.enabled!==!1):t;if(s)if(!l&&e&&Object.keys(e).length>0)Object.assign(o,e);else for(let e of u){let t=e.category??`system`;o[t]=(o[t]??0)+1}let d=0;if(c)for(let e of r){if(i.has(e.name))continue;let t=e.category??`system`;o[t]=(o[t]??0)+1,d+=1}let f=l?u.length:n??t.length;return{counts:o,totalCount:(s?f:0)+d}},[e,t,n,r,i,a])}function ct({assistantId:e,item:t,onSelect:n,onRemove:r,onUpgrade:i,isRemoving:a,isUpgrading:o}){let s=Ie({assistantId:e,name:t.name}).data;return(0,q.jsx)($e,{item:t,drift:s,onSelect:n,onRemove:r,onUpgrade:()=>i(s),isRemoving:a,isUpgrading:o})}function lt({onDismiss:e}){return(0,q.jsxs)(`div`,{className:`flex items-center gap-2 rounded-lg px-4 py-2.5 text-body-small-default`,style:{backgroundColor:`var(--surface-base)`,color:`var(--content-secondary)`},children:[(0,q.jsx)(T,{className:`h-4 w-4 shrink-0`,style:{color:`var(--primary-base)`}}),(0,q.jsx)(`p`,{className:`flex-1`,children:`Browse the catalog below to install plugins that extend your assistant.`}),(0,q.jsx)(a,{type:`button`,variant:`ghost`,size:`compact`,iconOnly:(0,q.jsx)(D,{"aria-hidden":!0}),onClick:e,"aria-label":`Dismiss tip`,tintColor:`var(--content-tertiary)`,expandOnMobile:!1})]})}function ut(){return(0,q.jsxs)(`div`,{className:`flex items-center gap-2 rounded-lg px-4 py-2.5 text-body-small-default`,style:{backgroundColor:`var(--surface-base)`,color:`var(--content-secondary)`},children:[(0,q.jsx)(g,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-tertiary)`},"aria-hidden":!0}),(0,q.jsx)(`p`,{className:`flex-1`,children:`Catalog browsing is temporarily unavailable. Installed plugins are still listed below.`})]})}function dt(){return(0,q.jsx)(`div`,{className:`flex items-center justify-center py-16`,children:(0,q.jsx)(w,{className:`h-6 w-6 animate-spin`,style:{color:`var(--content-tertiary)`}})})}function ft(){return(0,q.jsx)(f.Root,{children:(0,q.jsxs)(f.Body,{className:`flex flex-col items-center justify-center py-16 text-center`,children:[(0,q.jsx)(E,{className:`mb-3 h-8 w-8`,style:{color:`var(--system-danger)`},"aria-hidden":!0}),(0,q.jsx)(`h3`,{className:`text-title-small`,style:{color:`var(--content-default)`},children:`Failed to load plugins`}),(0,q.jsx)(`p`,{className:`mt-1 max-w-sm text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`Something went wrong. Try refreshing the page.`})]})})}function pt({filter:e,category:t}){let{title:n,subtitle:r,Icon:i}=mt(e,t);return(0,q.jsx)(f.Root,{children:(0,q.jsxs)(f.Body,{className:`flex flex-col items-center justify-center py-16 text-center`,children:[(0,q.jsx)(i,{className:`mb-3 h-8 w-8`,style:{color:`var(--content-tertiary)`},"aria-hidden":!0}),(0,q.jsx)(`h3`,{className:`text-title-small`,style:{color:`var(--content-default)`},children:n}),(0,q.jsx)(`p`,{className:`mt-1 max-w-sm text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:r})]})})}function mt(e,t){if(t)return{title:`No plugins in this category`,subtitle:`Try selecting a different category or clearing the filter.`,Icon:B};switch(e){case`installed`:return{title:`No Plugins Installed`,subtitle:`Browse the catalog to install plugins that extend your assistant.`,Icon:W};case`active`:return{title:`No Active Plugins`,subtitle:`Install a plugin from the catalog, or turn on an installed one.`,Icon:W};case`off`:return{title:`No Plugins Turned Off`,subtitle:`Installed plugins you turn off will appear here.`,Icon:W};case`available`:return{title:`No Plugins Available`,subtitle:`Every catalog plugin is already installed.`,Icon:V};default:return{title:`No Plugins Found`,subtitle:`Browse the catalog to install plugins that extend your assistant.`,Icon:W}}}function ht(){let e=ue.use.version(),t=_e(),n=ge();return e===null?null:t?(0,q.jsx)(ot,{assistantId:n}):(0,q.jsx)(s,{to:ce.identity,replace:!0})}export{ht as PluginsPage};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./utils-Cv6Fontd.js";var t=`0.10.3`;function n(){return e(t)}export{n as t};
|