@vellumai/web 0.11.7 → 0.11.8-staging.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{a2a-invite-CalxmT9U.js → a2a-invite-DqSTflKa.js} +1 -1
- package/dist/assets/{about-page-oelEgoKN.js → about-page-BjnrQu1C.js} +1 -1
- package/dist/assets/account-Bo0GsPWI.js +1 -0
- package/dist/assets/account-D59Pog6a.js +1 -0
- package/dist/assets/{account-page-DoWCrccl.js → account-page-DqP1QsnR.js} +1 -1
- package/dist/assets/{account-shell-D6h6YPdW.js → account-shell-DK0R6Tov.js} +1 -1
- package/dist/assets/{acp-run-detail-panel-BqBDl6QB.js → acp-run-detail-panel-BdtW6qDu.js} +4 -4
- package/dist/assets/activity-redirect-page-BlnIxG-Z.js +1 -0
- package/dist/assets/activity-steps-panel-BSUUY3JD.js +1 -0
- package/dist/assets/{add-credits-modal-Clc-YWYG.js → add-credits-modal-BI2CsQ87.js} +1 -1
- package/dist/assets/ai-page-DGyy3dQE.js +1 -0
- package/dist/assets/android-billing-handoff-DrlrNBbY.js +1 -0
- package/dist/assets/api-key-screen-_UTNn9KJ.js +1 -0
- package/dist/assets/{app-info-BzVdvgJM.js → app-info-BLCdGdH4.js} +1 -1
- package/dist/assets/archive-redirect-page-BLoeX3_F.js +1 -0
- package/dist/assets/assistant-status-panel-YKs5Ubf5.js +1 -0
- package/dist/assets/{auth-welcome-screen-ghh-qFOz.js → auth-welcome-screen-_mWoDKPq.js} +1 -1
- package/dist/assets/avatar-bundled-components-D8WzF-8G.js +1 -0
- package/dist/assets/avatar-random-CjTiNqoZ.js +1 -0
- package/dist/assets/await-org-header-settled-0xMP92NT.js +1 -0
- package/dist/assets/background-task-detail-panel-CUQtiY1y.js +1 -0
- package/dist/assets/billing-page-DScRdoHM.js +3 -0
- package/dist/assets/{billing-redirect-page-DaIhDbvM.js → billing-redirect-page-BmuMF_1f.js} +1 -1
- package/dist/assets/{bookmarks-page-CvCqY1u_.js → bookmarks-page-DutOB8Of.js} +1 -1
- package/dist/assets/{bundle-confirm-page-DuW3Ltpg.js → bundle-confirm-page-CpWjneJj.js} +1 -1
- package/dist/assets/channel-transcript-panel-Dd8N9yEZ.js +1 -0
- package/dist/assets/channels-B8lsoUr6.js +9 -0
- package/dist/assets/channels-D4_Gad55.js +9 -0
- package/dist/assets/channels-page-route--8dnzBPq.js +1 -0
- package/dist/assets/chat-Bff_DY7r.js +3 -0
- package/dist/assets/chat-C2NjPMmK.js +3 -0
- package/dist/assets/chat-CGQw-Yey.js +3 -0
- package/dist/assets/chat-EhD_n50p.js +3 -0
- package/dist/assets/checkout-continuation-CpvBfvVc.js +1 -0
- package/dist/assets/{checkout-page-CpaWMY_L.js → checkout-page-IsznypCf.js} +1 -1
- package/dist/assets/checkout-return-target-DbrgNrrf.js +1 -0
- package/dist/assets/command-palette-BxtSdT49.js +1 -0
- package/dist/assets/{command-palette-window-page-C4vKhArq.js → command-palette-window-page-C-xJ-yX9.js} +1 -1
- package/dist/assets/common-5z_PuGxF.js +1 -0
- package/dist/assets/common-CEn7rBGF.js +1 -0
- package/dist/assets/{community-page-xiwPgo2f.js → community-page-CXHy8Ge9.js} +1 -1
- package/dist/assets/companion-layout-Czzr0lJa.js +1 -0
- package/dist/assets/companion-surface-page-CnvwXfnQ.js +1 -0
- package/dist/assets/connect-page-_NcsEyVj.js +1 -0
- package/dist/assets/{consent-controls-RsRyTWzn.js → consent-controls-C5AN2KN4.js} +1 -1
- package/dist/assets/contacts-B1CxNq6I.js +1 -0
- package/dist/assets/contacts-gateway-CQ4flwOK.js +1 -0
- package/dist/assets/contacts-jdOGgx_y.js +1 -0
- package/dist/assets/contacts-page-route-DyWsRFq5.js +1 -0
- package/dist/assets/{credential-entry-page-CHyGUHNE.js → credential-entry-page-xZF9nHkn.js} +1 -1
- package/dist/assets/credential-requests-BAOvHGUi.js +1 -0
- package/dist/assets/credential-requests-CeqlvkYb.js +1 -0
- package/dist/assets/credentials-page-Cv7KZ5ho.js +1 -0
- package/dist/assets/{csv-preview-D1DFyAyk.js → csv-preview-CbPbBKMc.js} +2 -2
- package/dist/assets/danger-zone-redirect-page-DSW93QrQ.js +1 -0
- package/dist/assets/debug-page-pjDDmKf-.js +4 -0
- package/dist/assets/deploy-dialogs-BbxlNwkW.js +1 -0
- package/dist/assets/{detail-card-BTciodin.js → detail-card-CUnVRct3.js} +1 -1
- package/dist/assets/{detail-panel-stop-button-DvPi_A52.js → detail-panel-stop-button-jUM1oBBe.js} +1 -1
- package/dist/assets/developer-page-DiF8DSCd.js +1 -0
- package/dist/assets/devices-redirect-page-CxnsRMZf.js +1 -0
- package/dist/assets/{dictation-overlay-page-CV5-bWnC.js → dictation-overlay-page-C-LzQvTP.js} +1 -1
- package/dist/assets/{document-viewer-page-B9aeVcPf.js → document-viewer-page-Bq6Y0E7o.js} +1 -1
- package/dist/assets/emails-page-8B6Ly4G5.js +1 -0
- package/dist/assets/environment-store-DJj25KEt.js +1 -0
- package/dist/assets/{esm-BFMxsKfC.js → esm-BM5LKkMa.js} +2 -2
- package/dist/assets/esm-BmuPALKt.js +2 -0
- package/dist/assets/esm-BrAZhW0M.js +2 -0
- package/dist/assets/esm-COwSlx4I.js +2 -0
- package/dist/assets/esm-Ci6ABHVx.js +2 -0
- package/dist/assets/{esm-C8_GJq6u.js → esm-D3dJNih2.js} +1 -1
- package/dist/assets/{esm-BmkPJcrm.js → esm-DC5BUUBD.js} +1 -1
- package/dist/assets/esm-DDyx9ZyD.js +1 -0
- package/dist/assets/esm-DKi5wrhP.js +2 -0
- package/dist/assets/{file-editor-qyflOek_.js → file-editor-DXDNFMLF.js} +1 -1
- package/dist/assets/general-page-DG9ZCp1L.js +1 -0
- package/dist/assets/hatching-screen-DjlxM27X.js +1 -0
- package/dist/assets/home-9eoM_SNy.js +1 -0
- package/dist/assets/home-BhxVuUxm.js +1 -0
- package/dist/assets/home-CSq5yPBw.js +1 -0
- package/dist/assets/home-Dex_kznj.js +1 -0
- package/dist/assets/hosting-screen-CHJV8OKw.js +1 -0
- package/dist/assets/identity-page-route-Dy6BfkON.js +7 -0
- package/dist/assets/index-DJRB6vZU.css +2 -0
- package/dist/assets/index-D_aS89pX.js +370 -0
- package/dist/assets/inspect-page-0gb3Spn6.js +9 -0
- package/dist/assets/integrations-page-Ba79dcjJ.js +1 -0
- package/dist/assets/intelligence-CPhx3_7x.js +5 -0
- package/dist/assets/intelligence-CYj3jKpS.js +5 -0
- package/dist/assets/intelligence-DOcItPm0.js +5 -0
- package/dist/assets/intelligence-DbjVpOZC.js +5 -0
- package/dist/assets/{intelligence-layout-DKknlxHu.js → intelligence-layout-Xz9XcFr1.js} +1 -1
- package/dist/assets/keyboard-shortcuts-redirect-page-C40qrNeb.js +1 -0
- package/dist/assets/{latest-assistant-text-CVRVSoFg.js → latest-assistant-text-DSAZhezZ.js} +2 -2
- package/dist/assets/library-A1mfTMw7.js +1 -0
- package/dist/assets/library-BmjZHtUe.js +1 -0
- package/dist/assets/library-detail-page-B5v9tOTU.js +1 -0
- package/dist/assets/library-page-D-ARkx0z.js +1 -0
- package/dist/assets/{login-page-Bca-1DK6.js → login-page-BVW_Vh56.js} +1 -1
- package/dist/assets/logout-page-D6vp-22y.js +1 -0
- package/dist/assets/logs-CoXwXRSx.js +1 -0
- package/dist/assets/logs-Fi_ec4t8.js +1 -0
- package/dist/assets/{logs-layout-BsqrLQee.js → logs-layout-BA179Y3f.js} +1 -1
- package/dist/assets/markdown-preview-GpDL8mBq.js +1 -0
- package/dist/assets/{media-preview-daMlnyj8.js → media-preview-CDJaS6fc.js} +1 -1
- package/dist/assets/memory-page-route-Cvj55ZjT.js +2 -0
- package/dist/assets/memory-router-playground-page-DUZ0gtBR.js +1 -0
- package/dist/assets/{message-files-panel-D-C9C2PJ.js → message-files-panel-PTrDXJ4i.js} +1 -1
- package/dist/assets/{metric-card-Bij5WGzs.js → metric-card-CWM6vcyu.js} +1 -1
- package/dist/assets/{notifications-page-C6zUs2x1.js → notifications-page-CaZD0MYc.js} +1 -1
- package/dist/assets/{oauth-complete-page-CuNDqPAt.js → oauth-complete-page-Ba3Mx9KI.js} +1 -1
- package/dist/assets/{oauth-popup-complete-page-hRc3yLWH.js → oauth-popup-complete-page-BZmU05Vk.js} +2 -2
- package/dist/assets/onboarding-Cfot2yE2.js +1 -0
- package/dist/assets/onboarding-DfVty_iP.js +1 -0
- package/dist/assets/onboarding-gNiy_Bmv.js +1 -0
- package/dist/assets/onboarding-pcCDtWuX.js +1 -0
- package/dist/assets/{page-shell-DtdXurhX.js → page-shell-DLe_v5G-.js} +1 -1
- package/dist/assets/{pairing-page-CwLe0EJV.js → pairing-page-BQ3K7weF.js} +1 -1
- package/dist/assets/password-reset-page-CRZ-73il.js +1 -0
- package/dist/assets/pdf-file-preview-CuTK4AuS.js +1 -0
- package/dist/assets/personality-page-D1G40Yn3.js +1 -0
- package/dist/assets/plans-page-DPXyO50E.js +1 -0
- package/dist/assets/{platform-loopback-page-CgXx1oDQ.js → platform-loopback-page-DKu--uHN.js} +1 -1
- package/dist/assets/plugin-detail-page-CnKTgCyr.js +1 -0
- package/dist/assets/plugins-page-ClQ_3N9E.js +1 -0
- package/dist/assets/preview-error-CyxFuY6O.js +1 -0
- package/dist/assets/privacy-page-u1PH5mYu.js +1 -0
- package/dist/assets/privacy-screen-Da8hwBJF.js +1 -0
- package/dist/assets/{provider-callback-page-DGVehvIp.js → provider-callback-page-M-6o0Pd5.js} +1 -1
- package/dist/assets/{provider-key-CUAJZvaQ.js → provider-key-B_Xu4pqn.js} +1 -1
- package/dist/assets/{provider-signup-page-B5gnrbym.js → provider-signup-page-0j8UCf9F.js} +1 -1
- package/dist/assets/{provisioning-targets-BbLfumae.js → provisioning-targets-CQv-d2hy.js} +1 -1
- package/dist/assets/{quick-input-page-Ccy-FS5S.js → quick-input-page-K0l1m71a.js} +1 -1
- package/dist/assets/rehype-katex-DsHZTQuO.js +259 -0
- package/dist/assets/remote-web-DC-am5Yy.js +1 -0
- package/dist/assets/remote-web-sY-CQsMN.js +1 -0
- package/dist/assets/{research-mock-page-DqfkGU9x.js → research-mock-page-D6T-KFn5.js} +1 -1
- package/dist/assets/research-onboarding-route-CnZboHbK.js +50 -0
- package/dist/assets/review-terms-screen-C2I57d8X.js +1 -0
- package/dist/assets/schedules-0KnLvdZ6.js +1 -0
- package/dist/assets/{schedules-CYD1CzCP.js → schedules-C2HIPzbf.js} +1 -1
- package/dist/assets/schedules-CsCj9HkE.js +1 -0
- package/dist/assets/schedules-DN7BQ5zf.js +1 -0
- package/dist/assets/schedules-DRVrzPSf.js +1 -0
- package/dist/assets/schedules-page-B-c8TkpF.js +1 -0
- package/dist/assets/security-redirect-page-CnA878M5.js +1 -0
- package/dist/assets/select-assistant-screen-DLSi6ldU.js +1 -0
- package/dist/assets/{self-hosted-servers-BHF9gq8j.js → self-hosted-servers-DZ--Hv9v.js} +1 -1
- package/dist/assets/service-form-controls-DlTUj71T.js +1 -0
- package/dist/assets/{setting-row-DRwmii99.js → setting-row-B5QZHkoF.js} +1 -1
- package/dist/assets/settings-BD1QISCO.js +3 -0
- package/dist/assets/settings-C3zYzBq9.js +3 -0
- package/dist/assets/settings-Cvt8QAL2.js +3 -0
- package/dist/assets/settings-divider-F3FqveK-.js +1 -0
- package/dist/assets/settings-layout-Crci2jyE.js +1 -0
- package/dist/assets/settings-zEkYIHEa.js +3 -0
- package/dist/assets/share-feedback-modal-C2COnRnh.js +2 -0
- package/dist/assets/{sidebar-tree-C1t1xfKD.js → sidebar-tree-DzK404Jf.js} +1 -1
- package/dist/assets/{signup-page-Dyhm65FW.js → signup-page-CB-8w0gl.js} +1 -1
- package/dist/assets/{signup-shell-CSThcwPa.js → signup-shell-D9xQLQal.js} +1 -1
- package/dist/assets/skill-detail-page-hNrlnmr1.js +2 -0
- package/dist/assets/skill-detail-panel-DUDHXwZA.js +1 -0
- package/dist/assets/{skill-removal-dialog-bN91N7f8.js → skill-removal-dialog-gdW2aZkn.js} +1 -1
- package/dist/assets/skills-page-CFtShvMb.js +1 -0
- package/dist/assets/sounds-page-CkIUEtSv.js +1 -0
- package/dist/assets/{start-screen-DyyYavfM.js → start-screen-DBgDXlld.js} +1 -1
- package/dist/assets/stt-language-picker-modal-CAakw-eP.js +1 -0
- package/dist/assets/subagent-detail-panel-DS_xxlJF.js +4 -0
- package/dist/assets/superpowers-page-CGIr7ogv.js +1 -0
- package/dist/assets/system-events-page-g_mlVVGo.js +1 -0
- package/dist/assets/system-events-redirect-page-Dv3PuAV5.js +1 -0
- package/dist/assets/terminal-BNpUPBzh.js +1 -0
- package/dist/assets/terminal-DSb_gkKE.js +1 -0
- package/dist/assets/text-preview-D4MWwSA4.js +1 -0
- package/dist/assets/{theme-stage-page-Pcnh0PTQ.js → theme-stage-page-gece5MtY.js} +1 -1
- package/dist/assets/{tiptap-document-editor-ZZmtZ799.js → tiptap-document-editor-CQnnqMvK.js} +3 -3
- package/dist/assets/tool-detail-panel-BvydW69m.js +12 -0
- package/dist/assets/{trait-cycle-row-BWNJ21g4.js → trait-cycle-row-C5vdkh7k.js} +1 -1
- package/dist/assets/upgrade-cancel-page-BgYFSzet.js +1 -0
- package/dist/assets/upgrade-success-page-C6lE5YG0.js +1 -0
- package/dist/assets/usage-redirect-page-BZFXmMmI.js +1 -0
- package/dist/assets/usage-window-Bl8EMpiB.js +1 -0
- package/dist/assets/{use-assistant-identity-details-oVmPdjVe.js → use-assistant-identity-details-B-mZTZFr.js} +1 -1
- package/dist/assets/use-checkout-dismiss-refresh-DqQwfaI3.js +1 -0
- package/dist/assets/use-edge-swipe-back-BN1FCIPJ.js +2 -0
- package/dist/assets/use-hotkey-recorder-DGZHpMeu.js +1 -0
- package/dist/assets/use-invite-link-dialog-BIk7uhnC.js +1 -0
- package/dist/assets/{use-platform-assistant-id-DcVWp7KY.js → use-platform-assistant-id-CLcP1OSp.js} +1 -1
- package/dist/assets/use-return-to-short-circuit-Dc9IrWhB.js +1 -0
- package/dist/assets/{use-side-list-room-DQbUPFcU.js → use-side-list-room-C7h2iBrD.js} +1 -1
- package/dist/assets/use-skill-actions-DWGc43zV.js +1 -0
- package/dist/assets/{use-skill-detail-files-BGIXJykk.js → use-skill-detail-files-BiL03man.js} +1 -1
- package/dist/assets/use-supports-credentials-settings-Bmk31dUN.js +1 -0
- package/dist/assets/use-transcript-message-by-id-BhCGLlt8.js +1 -0
- package/dist/assets/vendor-kNpRDQWe.js +127 -0
- package/dist/assets/voice-page-C0a3qZdD.js +1 -0
- package/dist/assets/{weather-forecast-display-B6j-V-yS.js → weather-forecast-display-uFMDzqaC.js} +1 -1
- package/dist/assets/{web-DL2rv-Fb.js → web-BVZ7Tz6e.js} +1 -1
- package/dist/assets/{web-CE-RjE8i.js → web-Be02fpV9.js} +1 -1
- package/dist/assets/{web-Q8lSPj8Z.js → web-CEMV9s9j.js} +1 -1
- package/dist/assets/{web-Cv_J7__I.js → web-CgJtsMCO.js} +1 -1
- package/dist/assets/{web-DPEGYPrR.js → web-D9pmN_Ii.js} +1 -1
- package/dist/assets/{web-pwf5Vh3V.js → web-D_X6fLKT.js} +1 -1
- package/dist/assets/{web-DDFO9PaS.js → web-Ds-zK9c0.js} +1 -1
- package/dist/assets/{web-Cw24uxYA.js → web-mOIiFuEV.js} +1 -1
- package/dist/assets/{web-kKGZ0Pbn.js → web-zYA24dWM.js} +1 -1
- package/dist/assets/welcome-screen-l8WGeqN3.js +1 -0
- package/dist/assets/workflow-detail-panel-6Ty2arSd.js +1 -0
- package/dist/assets/workspace-BuluZX5F.js +1 -0
- package/dist/assets/workspace-ITbZLAwF.js +1 -0
- package/dist/assets/workspace-page-VmejMKBX.js +1 -0
- package/dist/index.html +42 -15
- package/package.json +1 -1
- package/dist/assets/activity-steps-panel-C5Nlm1Ax.js +0 -1
- package/dist/assets/ai-page-DtRit5K4.js +0 -1
- package/dist/assets/android-billing-handoff-D6KkZQcR.js +0 -1
- package/dist/assets/api-key-screen-BWXzfFaa.js +0 -1
- package/dist/assets/archive-redirect-page-DD3q7S_q.js +0 -1
- package/dist/assets/assistant-status-panel-i2Q5Ng1C.js +0 -1
- package/dist/assets/avatar-random-BEjqLOzH.js +0 -1
- package/dist/assets/background-task-detail-panel-igcj1myW.js +0 -1
- package/dist/assets/billing-page-BtVWtaxz.js +0 -3
- package/dist/assets/channel-transcript-panel-C5dxI2kC.js +0 -1
- package/dist/assets/channels-page-route-CaZZgVvj.js +0 -1
- package/dist/assets/chat-CuSRAhBb.js +0 -3
- package/dist/assets/chat-Dw-Xoh_r.js +0 -3
- package/dist/assets/checkout-continuation-gyr3KRhJ.js +0 -1
- package/dist/assets/checkout-return-target-uGUiSRvm.js +0 -1
- package/dist/assets/command-palette-Dqv1yvzc.js +0 -1
- package/dist/assets/companion-layout-BgFk39Te.js +0 -1
- package/dist/assets/companion-surface-page-BE_GKIQH.js +0 -1
- package/dist/assets/connect-page-1WOW2Uyb.js +0 -1
- package/dist/assets/contacts-gateway-aq64PPDs.js +0 -1
- package/dist/assets/contacts-page-route-fh_BygpY.js +0 -1
- package/dist/assets/credentials-page-u4m5eB0e.js +0 -1
- package/dist/assets/danger-zone-redirect-page-pm7xtA64.js +0 -1
- package/dist/assets/debug-page-BiRFASyO.js +0 -4
- package/dist/assets/deploy-dialogs-BQGFr3pp.js +0 -1
- package/dist/assets/detail-drawer-svbxV7k9.js +0 -1
- package/dist/assets/developer-page-YJ4ePRAY.js +0 -1
- package/dist/assets/devices-redirect-page-Bc3d-ANN.js +0 -1
- package/dist/assets/emails-page-DuxmJeBh.js +0 -1
- package/dist/assets/environment-store-Cb7OK6xz.js +0 -1
- package/dist/assets/esm-BWaPHKOl.js +0 -2
- package/dist/assets/esm-B_9x3_5A.js +0 -2
- package/dist/assets/esm-CvsVyyLL.js +0 -2
- package/dist/assets/esm-D8F0P9NS.js +0 -1
- package/dist/assets/esm-DLD7mc5e.js +0 -2
- package/dist/assets/esm-lFkAo6qR.js +0 -2
- package/dist/assets/general-page-CplJ3sOI.js +0 -1
- package/dist/assets/hatching-screen-tqPPQDHG.js +0 -1
- package/dist/assets/home-BWUNWNMl.js +0 -1
- package/dist/assets/home-DJ6q91Qp.js +0 -1
- package/dist/assets/home-page-route-CMsbxqsW.js +0 -1
- package/dist/assets/hosting-screen-7idZudJ8.js +0 -1
- package/dist/assets/identity-page-route-C4EAb-ac.js +0 -7
- package/dist/assets/index-2ECSWhtU.css +0 -2
- package/dist/assets/index-7XDiAJ-A.js +0 -357
- package/dist/assets/inspect-page-DsXykArJ.js +0 -9
- package/dist/assets/integrations-page-CmMVSsvu.js +0 -1
- package/dist/assets/intelligence-DwVUW6jm.js +0 -5
- package/dist/assets/intelligence-JlruxYAh.js +0 -5
- package/dist/assets/keyboard-shortcuts-redirect-page-CFu5x117.js +0 -1
- package/dist/assets/library-detail-page-CKFkI0QY.js +0 -1
- package/dist/assets/library-page-dIrR1lib.js +0 -1
- package/dist/assets/logout-page-BzAORi0q.js +0 -1
- package/dist/assets/markdown-preview-DLXGytZI.js +0 -1
- package/dist/assets/memory-page-route-CX1I7izG.js +0 -2
- package/dist/assets/memory-router-playground-page-Mk3rfyGO.js +0 -1
- package/dist/assets/onboarding-BbtVI8KM.js +0 -1
- package/dist/assets/onboarding-BoaKLlZ5.js +0 -1
- package/dist/assets/page-empty-state-BrGkTMcK.js +0 -1
- package/dist/assets/password-reset-page-C7qvqEJQ.js +0 -1
- package/dist/assets/pdf-file-preview-DbwHMWey.js +0 -1
- package/dist/assets/personality-page-Ci_b1dH9.js +0 -1
- package/dist/assets/plans-page-CyqILV_j.js +0 -1
- package/dist/assets/plugin-detail-page-CvC_LUz2.js +0 -1
- package/dist/assets/plugins-page-9LuPE9IY.js +0 -1
- package/dist/assets/preview-error-DbAQP8oG.js +0 -1
- package/dist/assets/privacy-page-OIOZKgWi.js +0 -1
- package/dist/assets/privacy-screen-DFnrbIrM.js +0 -1
- package/dist/assets/profile-metadata-Bk4pj7o_.js +0 -1
- package/dist/assets/research-onboarding-route-D3qFv6SM.js +0 -50
- package/dist/assets/review-terms-screen-BD3wP3KC.js +0 -1
- package/dist/assets/schedules-B_SL_iV4.js +0 -1
- package/dist/assets/schedules-DhwNRBkz.js +0 -1
- package/dist/assets/schedules-page-D64tvhuZ.js +0 -1
- package/dist/assets/security-redirect-page-CWR-HICc.js +0 -1
- package/dist/assets/select-assistant-screen-SfWB0oQ2.js +0 -1
- package/dist/assets/service-form-controls-DNfWnjSp.js +0 -1
- package/dist/assets/settings-divider-X9YnFIFQ.js +0 -1
- package/dist/assets/settings-gjWN0WQO.js +0 -3
- package/dist/assets/settings-iLTzqZW8.js +0 -3
- package/dist/assets/settings-layout-C2Um5qit.js +0 -1
- package/dist/assets/share-feedback-modal-BzV03dUO.js +0 -2
- package/dist/assets/skill-detail-page-Cja0k8_e.js +0 -2
- package/dist/assets/skill-detail-panel-BIOL410z.js +0 -1
- package/dist/assets/skills-page-CYogTXmH.js +0 -1
- package/dist/assets/sounds-page-DAy2o3wO.js +0 -1
- package/dist/assets/stt-language-picker-modal-CpGwbd4g.js +0 -1
- package/dist/assets/subagent-detail-panel-330bH7ee.js +0 -4
- package/dist/assets/superpowers-page-D6wv3GWO.js +0 -1
- package/dist/assets/system-events-page-CFN8tMUJ.js +0 -1
- package/dist/assets/system-events-redirect-page-BarOgFkA.js +0 -1
- package/dist/assets/text-preview-CZeqyzdw.js +0 -1
- package/dist/assets/tool-detail-panel-BgCSb_m5.js +0 -12
- package/dist/assets/upgrade-cancel-page-ByVEWPeH.js +0 -1
- package/dist/assets/upgrade-success-page-iAPLJbee.js +0 -1
- package/dist/assets/usage-redirect-page-BHd-7in5.js +0 -1
- package/dist/assets/use-checkout-dismiss-refresh-BO2cN2i8.js +0 -1
- package/dist/assets/use-edge-swipe-back-CzESg8qG.js +0 -2
- package/dist/assets/use-hotkey-recorder-CY089_4p.js +0 -1
- package/dist/assets/use-invite-link-dialog-Ck-LquhT.js +0 -1
- package/dist/assets/use-return-to-short-circuit-NDSwANeI.js +0 -1
- package/dist/assets/use-skill-actions-CNBx-WS1.js +0 -1
- package/dist/assets/use-supports-credentials-settings-C6S_OHMP.js +0 -1
- package/dist/assets/use-transcript-message-by-id-Dqm1PMu3.js +0 -1
- package/dist/assets/vendor-WUN87CSE.js +0 -385
- package/dist/assets/voice-page-nBfEMyWs.js +0 -1
- package/dist/assets/welcome-screen-BrwdmDqM.js +0 -1
- package/dist/assets/workflow-detail-panel-DcTQSyju.js +0 -1
- package/dist/assets/workspace-page-Dwfwnkh5.js +0 -1
- /package/dist/assets/{app-types-BSxLQFrc.js → app-types-CBnv5WGq.js} +0 -0
- /package/dist/assets/{build.umd-CJjt7Lfj.js → build.umd-Dew0cvF9.js} +0 -0
- /package/dist/assets/{definitions-Dz0UVs0Z.js → definitions-B0aFqshm.js} +0 -0
- /package/dist/assets/{definitions-BTBjNf1i.js → definitions-BjIATsKe.js} +0 -0
- /package/dist/assets/{diff-rows-DzBJ95DT.js → diff-rows-BVqSFCjn.js} +0 -0
- /package/dist/assets/{emoji-catalog-data-a3DXKyhe.js → emoji-catalog-data-C12r4S_i.js} +0 -0
- /package/dist/assets/{format-countdown-Cge3iaM1.js → format-countdown-D5ONON7b.js} +0 -0
- /package/dist/assets/{vendor-CfUWwwYf.css → katex-CfUWwwYf.css} +0 -0
- /package/dist/assets/{link-click-DpfLT-iQ.js → link-click-B3w1V7FL.js} +0 -0
- /package/dist/assets/{machine-sizes-C3ptouhz.js → machine-sizes-DfVG31u5.js} +0 -0
- /package/dist/assets/{onboarding-step-layout-BlSoa02H.js → onboarding-step-layout-CjtymnM2.js} +0 -0
- /package/dist/assets/{pdf-fWDhmWcw.js → pdf-DnKvQsrL.js} +0 -0
- /package/dist/assets/{plugin-attribution-c6x0DrZM.js → plugin-attribution-C-EIiue7.js} +0 -0
- /package/dist/assets/{radio-card-nav-DlRweN3g.js → radio-card-nav-Omg0Ffee.js} +0 -0
- /package/dist/assets/{skill-icon-Me8DDEMt.js → skill-icon-Nml5aUXj.js} +0 -0
- /package/dist/assets/{status-badge-pill-BAkXhxwa.js → status-badge-pill-Bg90syHR.js} +0 -0
- /package/dist/assets/{use-truncated-blob-text-DLF_hf3O.js → use-truncated-blob-text-BSWOxKWU.js} +0 -0
- /package/dist/assets/{xterm-DfM4JBPp.js → xterm-DJzhWP7c.js} +0 -0
- /package/dist/assets/{xterm-addon-fit-DuBTfuI9.js → xterm-addon-fit-CNjgHcEW.js} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{A as t,Kn as n,N as r,O as i,Yn as a,qn as o}from"./vendor-WUN87CSE.js";import{b as s,f as c,g as l,t as u}from"./react-DPM_L_aA.js";import{Br as d,Cr as f,Fr as p,J as m,Lr as h,P as g,Qt as _,Zt as v,_t as y,et as b,i as x,jr as S,ot as C,pn as w,qn as T,st as E,tn as D,tr as O,x as k,xi as A,zr as j}from"./icons-CSdHOix6.js";import{$h as M,$v as N,Ad as P,Ap as F,Br as I,Cc as L,Cl as R,Cr as z,Dd as ee,Ds as B,Fr as V,Hr as te,Hv as H,Ir as ne,Ki as re,Lr as ie,Lu as ae,Md as oe,Mu as se,Od as ce,Ov as le,Rm as ue,Rr as de,Ru as fe,Sy as U,Tc as pe,Tv as me,Vf as he,Vr as ge,Xp as _e,_f as ve,_y as ye,ay as W,bf as be,bn as xe,ft as Se,hy as G,iy as K,jd as Ce,jg as we,jv as Te,kd as Ee,ly as De,my as Oe,ny as ke,oy as q,sy as J,uv as Ae,uy as Y,vf as je,vv as Me,wc as Ne,wl as Pe,wy as X,xi as Fe,xy as Ie,yf as Le,zf as Re,zr as ze}from"./index-7XDiAJ-A.js";import{t as Be}from"./use-platform-assistant-id-DcVWp7KY.js";var Ve=A(`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`}]]),He=A(`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`}]]),Z=e(s(),1);function Ue({assistantId:e,providerKey:t,displayName:n,managedAvailable:i,connectionsQueryKey:o,allConnections:s}){let c=a(),l=_e(),u=(0,Z.useRef)(null),d=(0,Z.useRef)(null),f=(0,Z.useRef)(null),p=(0,Z.useRef)(null),[m,h]=(0,Z.useState)(!1),g=()=>{d.current=null,h(!1)},_=()=>{u.current&&!u.current.closed&&u.current.close(),u.current=null,f.current&&=(clearInterval(f.current),null),p.current&&=(clearTimeout(p.current),null)},v=(0,Z.useCallback)(e=>{if(e.type!==`vellum:oauth-complete`||!d.current||e.requestId!==d.current.requestId)return;let{oauthStatus:t,oauthCode:i}=e;_(),g(),t===`connected`?(W.success(r(`useOauthConnect.accountConnected`,{name:n})),c.invalidateQueries({queryKey:o})):W.error(i?r(`useOauthConnect.authorizationError`,{name:n,code:i}):r(`useOauthConnect.authorizationFailed`,{name:n}))},[o,n,c]),y=(0,Z.useCallback)(async(e,n)=>{if(!i)return!1;for(let r=0;r<8;r+=1){r>0&&await ie(750);try{if(c.invalidateQueries({queryKey:o}),ne(await c.fetchQuery({...L({path:{assistant_id:e}}),staleTime:0}),t,n))return!0}catch{}}return!1},[o,i,t,c]);(0,Z.useEffect)(()=>{let e=e=>{let t=d.current;if(!t)return;let n=de(e,window.location.origin,t.requestId);n&&v(n)},t=e=>{let t=d.current;if(!t)return;let n=ze(e,t.requestId);n&&(v(n),window.localStorage.removeItem(I(t.requestId)))};return window.addEventListener(`message`,e),window.addEventListener(`storage`,t),()=>{window.removeEventListener(`message`,e),window.removeEventListener(`storage`,t)}},[v]),te((0,Z.useCallback)(e=>{let t=d.current;t&&e.requestId===t.requestId&&v({type:`vellum:oauth-complete`,requestId:e.requestId,oauthStatus:e.oauthStatus,oauthProvider:e.oauthProvider,oauthCode:e.oauthCode})},[v])),(0,Z.useEffect)(()=>fe(()=>{let e=d.current;e&&(async()=>{let t=await y(e.platformAssistantId,e.baselineConnectionSignatures);d.current&&(g(),t&&W.success(r(`useOauthConnect.accountConnected`,{name:n})))})()}),[y,n]),(0,Z.useEffect)(()=>()=>{f.current&&clearInterval(f.current),p.current&&clearTimeout(p.current),u.current&&!u.current.closed&&u.current.close()},[]);let b=Pe();return{handleConnect:(a=[])=>{if(!i)return;let o=crypto.randomUUID();h(!0);let m=async i=>{let u;try{u=await F(e)}catch(e){_(),g(),W.error(e instanceof Error?e.message:r(`useOauthConnect.startFailed`,{name:n}));return}let f=V(await c.fetchQuery({...L({path:{assistant_id:u}}),staleTime:0}).catch(()=>u===e?s??[]:[]),t);d.current={requestId:o,provider:t,platformAssistantId:u,baselineConnectionSignatures:f},b.mutate({path:{assistant_id:u,provider:t},body:{requested_scopes:a,redirect_after_connect:`${Ae.account.oauth.popupComplete}?requestId=${o}${l?`&native=1`:``}`}},{onSuccess(e){if(l){ae(e.connect_url);return}i&&!i.closed?i.location.href=e.connect_url:d.current&&(_(),g(),W.error(r(`useOauthConnect.popupClosed`,{name:n})))},onError(e){_(),g();let t=me(e,void 0,r(`useOauthConnect.startFailed`,{name:n}));W.error(t)}})};if(l){m(null);return}let x=window.open(``,`_blank`,`width=500,height=600`);if(x===null){g(),W.error(r(`useOauthConnect.popupBlocked`));return}u.current=x,f.current=setInterval(()=>{u.current&&u.current.closed&&d.current&&!p.current&&(p.current=setTimeout(async()=>{p.current=null;let e=d.current;if(!e)return;let t=window.localStorage.getItem(I(e.requestId));if(t){let n=ge(t);if(n&&n.requestId===e.requestId){v(n),window.localStorage.removeItem(I(e.requestId));return}}let i=await y(e.platformAssistantId,e.baselineConnectionSignatures);if(d.current){if(i){_(),g(),W.success(r(`useOauthConnect.accountConnected`,{name:n}));return}_(),g(),W.error(r(`useOauthConnect.authPopupClosed`,{name:n}))}},1e3))},100),m(x)},oauthInProgress:m,startOAuthPending:b.isPending}}var Q=u();function We({displayName:e,providerKey:t,logoUrl:n,connections:r,connectionsLoading:a,startPending:o,oauthInProgress:s,disconnectingId:c,onConnect:l,onDisconnect:u,connectPresets:d=[]}){let{t:f}=i(`settings`),p=o||s;return a?(0,Q.jsx)(`div`,{className:`flex items-center justify-center py-10`,children:(0,Q.jsx)(D,{className:`h-5 w-5 animate-spin text-[var(--content-disabled)]`})}):r.length===0?o||s?(0,Q.jsxs)(`div`,{className:`flex flex-col items-center gap-3 py-10`,children:[(0,Q.jsx)(z,{providerKey:t,displayName:e,logoUrl:n,size:48}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,Q.jsx)(D,{className:`h-3.5 w-3.5 animate-spin`}),f(`managedOauthTab.waitingForAuthorization`)]})]}):(0,Q.jsxs)(`div`,{className:`flex flex-col items-center gap-3 py-10`,children:[(0,Q.jsx)(z,{providerKey:t,displayName:e,logoUrl:n,size:48}),(0,Q.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-secondary)]`,children:f(`managedOauthTab.connectToContinue`)}),(0,Q.jsxs)(`div`,{className:`flex flex-col items-center gap-2`,children:[(0,Q.jsx)(X,{variant:`primary`,size:`compact`,leftIcon:(0,Q.jsx)(E,{}),onClick:()=>l(),disabled:p,children:f(`managedOauthTab.connectAccount`)}),d.map(e=>(0,Q.jsx)(X,{variant:`outlined`,size:`compact`,leftIcon:(0,Q.jsx)(He,{}),onClick:()=>l(e.scopes),disabled:p,children:e.label},e.id))]})]}):(0,Q.jsxs)(`div`,{className:`rounded-lg border border-[var(--border-base)]`,children:[(0,Q.jsx)(`ul`,{className:`divide-y divide-[var(--border-base)]`,children:r.map(r=>{let i=c===r.id,a=r.account_label??f(`managedOauthTab.accountFallback`,{name:e});return(0,Q.jsxs)(`li`,{className:`flex items-center gap-3 px-4 py-3`,children:[(0,Q.jsx)(z,{providerKey:t,displayName:e,logoUrl:n,size:20}),(0,Q.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-body-medium-default text-[var(--content-default)]`,children:a}),(0,Q.jsx)(X,{variant:`dangerOutline`,size:`compact`,iconOnly:i?(0,Q.jsx)(D,{className:`animate-spin`}):(0,Q.jsx)(k,{}),onClick:()=>u(r),disabled:i,"aria-label":f(`managedOauthTab.disconnectAriaLabel`,{account:a})})]},r.id)})}),(0,Q.jsx)(`div`,{className:`border-t border-[var(--border-base)] px-4 py-3 dark:border-[var(--border-base)]`,children:p?(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,Q.jsx)(D,{className:`h-3.5 w-3.5 animate-spin`}),f(`managedOauthTab.waitingForAuthorization`)]}):(0,Q.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,Q.jsx)(X,{variant:`primary`,size:`compact`,leftIcon:(0,Q.jsx)(T,{}),onClick:()=>l(),disabled:p,children:f(`managedOauthTab.connectAccountLower`)}),d.map(e=>(0,Q.jsx)(X,{variant:`outlined`,size:`compact`,leftIcon:(0,Q.jsx)(He,{}),onClick:()=>l(e.scopes),disabled:p,children:e.label},e.id))]})})]})}function Ge(e){return e.length>16?`${e.slice(0,12)}…${e.slice(-4)}`:e.length>8?`${e.slice(0,8)}…`:e}function Ke(e){try{return new Date(e).toLocaleDateString(void 0,{year:`numeric`,month:`short`,day:`numeric`})}catch{return``}}function qe({assistantId:e,providerKey:t,displayName:r,logoUrl:s}){let{t:c}=i(`settings`),l=a(),u=n({...Ee({path:{assistant_id:e},query:{provider_key:t}}),select:e=>e.apps}),f=n({...Ce({path:{assistant_id:e,providerKey:t}}),select:e=>e.oauth_callback_url}),p=u.data??[],m=f.data??null,h=o({queries:p.map(t=>({...ee({path:{assistant_id:e,appId:t.id}}),select:e=>e.connections}))}),g={};p.forEach((e,t)=>{g[e.id]=h[t]?.data??[]});let _=P({path:{assistant_id:e},query:{provider_key:t}}),v=Le({onSuccess:()=>{l.invalidateQueries({queryKey:_}),A(``),M(``),C(!1),W.success(c(`yourOwnOauthTab.appAddedToast`,{name:r}))},onError:e=>{W.error(e.message||c(`yourOwnOauthTab.createFailedToast`))}}),y=je({onSuccess:()=>{l.invalidateQueries({queryKey:_}),W.success(c(`yourOwnOauthTab.appDeletedToast`))},onError:e=>{W.error(e.message||c(`yourOwnOauthTab.deleteFailedToast`))}}),b=ve({onSuccess:e=>{`auth_url`in e&&(window.location.href=e.auth_url)},onError:e=>{W.error(e.message||c(`yourOwnOauthTab.connectFailedToast`))}}),x=be(),[S,C]=(0,Z.useState)(!1),[w,A]=(0,Z.useState)(``),[j,M]=(0,Z.useState)(``),[N,F]=(0,Z.useState)(!1),[I,L]=(0,Z.useState)(null),[R,B]=(0,Z.useState)(null),V=v.isPending,te=y.isPending?y.variables?.path?.id??null:null,H=b.isPending?b.variables?.path?.appId??null:null,ne=x.isPending?x.variables?.path?.id??null:null,re=()=>{let n=w.trim(),r=j.trim();!n||!r||v.mutate({path:{assistant_id:e},body:{provider_key:t,client_id:n,client_secret:r}})},ie=()=>{let t=I;L(null),t&&y.mutate({path:{assistant_id:e,id:t.id}})},ae=t=>{b.mutate({path:{assistant_id:e,appId:t.id},body:{callback_transport:`gateway`,scopes:[]}})};return u.isLoading?(0,Q.jsx)(`div`,{className:`flex items-center justify-center py-10`,children:(0,Q.jsx)(D,{className:`h-5 w-5 animate-spin text-[var(--content-disabled)]`})}):(0,Q.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[p.length===0||S?(0,Q.jsx)(U.Root,{children:(0,Q.jsxs)(U.Body,{className:`flex flex-col gap-3`,children:[(0,Q.jsxs)(`div`,{className:`space-y-1`,children:[(0,Q.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-default)]`,children:p.length===0?c(`yourOwnOauthTab.addOwnApp`,{name:r}):c(`yourOwnOauthTab.addAnotherApp`,{name:r})}),(0,Q.jsx)(`p`,{className:`text-body-small-default leading-relaxed text-[var(--content-tertiary)]`,children:c(`yourOwnOauthTab.credentialsNote`)})]}),m?(0,Q.jsxs)(`div`,{className:`space-y-1`,children:[(0,Q.jsx)(`p`,{className:`text-body-small-default text-[var(--content-secondary)]`,children:c(`yourOwnOauthTab.redirectUrl`)}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(G,{type:`text`,value:m,readOnly:!0,fullWidth:!0}),(0,Q.jsx)(X,{type:`button`,variant:`outlined`,size:`compact`,onClick:()=>{se(m,{successMessage:c(`yourOwnOauthTab.copiedToast`),errorMessage:c(`yourOwnOauthTab.copyFailedToast`),onCopied:()=>{F(!0),setTimeout(()=>F(!1),2e3)}})},"aria-label":c(N?`yourOwnOauthTab.copiedAria`:`yourOwnOauthTab.copyRedirectAria`),iconOnly:N?(0,Q.jsx)(d,{"aria-hidden":!0}):(0,Q.jsx)(O,{"aria-hidden":!0})})]}),(0,Q.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:c(`yourOwnOauthTab.redirectHint`)})]}):null,(0,Q.jsx)(G,{label:c(`yourOwnOauthTab.clientId`),type:`text`,value:w,onChange:e=>A(e.target.value),placeholder:c(`yourOwnOauthTab.clientIdPlaceholder`),fullWidth:!0}),(0,Q.jsx)(G,{label:c(`yourOwnOauthTab.clientSecret`),type:`password`,value:j,onChange:e=>M(e.target.value),placeholder:c(`yourOwnOauthTab.clientSecretPlaceholder`),fullWidth:!0}),(0,Q.jsxs)(`div`,{className:`flex items-center justify-end gap-2 pt-1`,children:[p.length>0?(0,Q.jsx)(X,{type:`button`,variant:`outlined`,size:`compact`,onClick:()=>{C(!1),A(``),M(``)},disabled:V,children:c(`yourOwnOauthTab.cancel`)}):null,(0,Q.jsx)(X,{type:`button`,size:`compact`,onClick:re,disabled:V||!w.trim()||!j.trim(),leftIcon:V?(0,Q.jsx)(D,{className:`animate-spin`,"aria-hidden":!0}):(0,Q.jsx)(E,{"aria-hidden":!0}),children:c(`yourOwnOauthTab.addApp`)})]})]})}):null,p.map(e=>{let n=g[e.id]??[],i=te===e.id,a=H===e.id;return(0,Q.jsx)(U.Root,{children:(0,Q.jsxs)(U.Body,{className:`flex flex-col gap-3`,children:[(0,Q.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[(0,Q.jsxs)(`div`,{className:`min-w-0 space-y-0.5`,children:[(0,Q.jsx)(`p`,{className:`truncate text-body-medium-default text-[var(--content-default)]`,children:Ge(e.client_id)}),(0,Q.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:c(`yourOwnOauthTab.addedOn`,{date:Ke(e.created_at)})})]}),(0,Q.jsx)(X,{type:`button`,variant:`dangerOutline`,size:`compact`,onClick:()=>L(e),disabled:i,"aria-label":c(`yourOwnOauthTab.deleteAppAria`,{id:Ge(e.client_id)}),iconOnly:i?(0,Q.jsx)(D,{className:`animate-spin`,"aria-hidden":!0}):(0,Q.jsx)(k,{"aria-hidden":!0})})]}),n.length>0?(0,Q.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:n.map(n=>{let i=ne===n.id,a=n.account_info??c(`yourOwnOauthTab.accountFallback`,{name:r});return(0,Q.jsxs)(`li`,{className:`flex items-center gap-3 px-3 py-2`,children:[(0,Q.jsx)(z,{providerKey:t,displayName:r,logoUrl:s,size:18}),(0,Q.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-body-medium-lighter text-[var(--content-default)]`,children:a}),(0,Q.jsx)(X,{type:`button`,variant:`dangerOutline`,size:`compact`,onClick:()=>B({appId:e.id,connection:n}),disabled:i,"aria-label":c(`yourOwnOauthTab.disconnectAria`,{account:a}),iconOnly:i?(0,Q.jsx)(D,{className:`animate-spin`,"aria-hidden":!0}):(0,Q.jsx)(k,{"aria-hidden":!0})})]},n.id)})}):null,(0,Q.jsx)(X,{type:`button`,size:`compact`,onClick:()=>ae(e),disabled:a,className:`w-full`,leftIcon:a?(0,Q.jsx)(D,{className:`animate-spin`,"aria-hidden":!0}):(0,Q.jsx)(T,{"aria-hidden":!0}),children:c(a?`yourOwnOauthTab.waitingAuthorization`:`yourOwnOauthTab.connectAccount`)})]})},e.id)}),p.length>0&&!S?(0,Q.jsx)(X,{type:`button`,variant:`outlined`,size:`compact`,onClick:()=>C(!0),className:`w-full border-dashed`,leftIcon:(0,Q.jsx)(E,{"aria-hidden":!0}),children:c(`yourOwnOauthTab.addAnotherAppButton`)}):null,(0,Q.jsx)(K,{open:I!==null,title:c(`yourOwnOauthTab.deleteAppTitle`),message:I?c(`yourOwnOauthTab.deleteAppMessage`,{id:Ge(I.client_id)}):``,confirmLabel:c(`yourOwnOauthTab.delete`),destructive:!0,onConfirm:ie,onCancel:()=>L(null)}),(0,Q.jsx)(K,{open:R!==null,title:c(`yourOwnOauthTab.disconnectTitle`,{name:r}),message:R?c(`yourOwnOauthTab.disconnectMessage`,{account:R.connection.account_info??c(`yourOwnOauthTab.accountFallback`,{name:r})}):``,confirmLabel:c(`yourOwnOauthTab.disconnect`),destructive:!0,onConfirm:()=>{let t=R;B(null),t&&x.mutate({path:{assistant_id:e,id:t.connection.id}},{onSuccess:()=>{let n=ce({path:{assistant_id:e,appId:t.appId}});l.invalidateQueries({queryKey:n}),l.invalidateQueries({queryKey:_}),W.success(c(`yourOwnOauthTab.disconnectedToast`,{name:r}))},onError:e=>{W.error(e.message||c(`yourOwnOauthTab.disconnectFailedToast`))}})},onCancel:()=>B(null)})]})}var Je={};function Ye(e){return Je[e]??[]}function Xe({assistantId:e,platformAssistantId:t,providerKey:r,displayName:o,description:s,logoUrl:c,platformGate:l,onClose:u}){let{t:d}=i(`settings`),f=a(),p=l===`full`,m=!Re(),[h,g]=(0,Z.useState)(l===`gated`&&m?`your-own`:`managed`),_=(0,Z.useMemo)(()=>[{value:`managed`,label:d(`integrationDetailModal.managedTab`)},{value:`your-own`,label:d(`integrationDetailModal.yourOwnTab`)}],[d]);(0,Z.useEffect)(()=>{!m&&h===`your-own`&&g(`managed`)},[m,h]);let[v,y]=(0,Z.useState)(null),[b,S]=(0,Z.useState)(null),C=Ne({path:{assistant_id:t}}),{data:w,isLoading:T}=n({...L({path:{assistant_id:t}}),enabled:p}),E=(w??[]).filter(e=>e.provider===r&&e.connected),{handleConnect:D,oauthInProgress:O,startOAuthPending:k}=Ue({assistantId:e,providerKey:r,displayName:o,managedAvailable:p,connectionsQueryKey:C,allConnections:w}),A={path:{assistant_id:t}},j=R({onSuccess(e,t){W.success(d(`integrationDetailModal.disconnectedToast`,{name:o}));let n=t.path.connection_id;pe(f,A,e=>e?.filter(e=>e.id!==n)),f.invalidateQueries({queryKey:C}),y(null)},onError(e){let t=me(e,void 0,d(`integrationDetailModal.disconnectFailedToast`,{name:o}));W.error(t),y(null)}});re(),(0,Z.useEffect)(()=>{let e=e=>{e.key===`Escape`&&!e.defaultPrevented&&(e.preventDefault(),u())};return document.addEventListener(`keydown`,e),()=>{document.removeEventListener(`keydown`,e)}},[u]);let M=e=>{S(e)},N=()=>{let e=b;S(null),e&&(y(e.id),j.mutate({path:{assistant_id:t,connection_id:e.id}}))},P=b?.account_label??d(`integrationDetailModal.accountFallback`,{name:o}),F=s?d(`integrationDetailModal.subtitleWithDescription`,{name:o,description:s}):d(`integrationDetailModal.subtitle`,{name:o});return(0,Q.jsxs)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/40 p-4`,children:[(0,Q.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,Q.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,Q.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,Q.jsx)(z,{providerKey:r,displayName:o,logoUrl:c,size:32}),(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(`h2`,{id:`integration-modal-title`,className:`text-title-small text-[var(--content-default)]`,children:d(`integrationDetailModal.title`,{name:o})}),(0,Q.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:F})]})]}),(0,Q.jsx)(X,{variant:`ghost`,size:`compact`,iconOnly:(0,Q.jsx)(x,{}),"aria-label":d(`integrationDetailModal.close`),onClick:u})]}),(0,Q.jsxs)(`div`,{className:`space-y-4 px-5 py-4`,children:[l!==`gated`&&m&&(0,Q.jsx)(De,{ariaLabel:d(`integrationDetailModal.oauthModeAriaLabel`),items:_,value:h,onChange:g}),h===`managed`&&l!==`gated`?l===`disabled`?(0,Q.jsx)(xe,{children:d(`integrationDetailModal.loginNotice`)}):(0,Q.jsx)(We,{displayName:o,providerKey:r,logoUrl:c,connections:E,connectionsLoading:T,startPending:k,oauthInProgress:O,disconnectingId:j.isPending?v:null,onConnect:D,onDisconnect:M,connectPresets:Ye(r)}):m?(0,Q.jsx)(qe,{assistantId:e,providerKey:r,displayName:o,logoUrl:c}):null]}),(0,Q.jsx)(`div`,{className:`flex justify-end border-t border-[var(--border-base)] px-5 py-3 dark:border-[var(--border-base)]`,children:(0,Q.jsx)(X,{variant:`outlined`,size:`compact`,onClick:u,children:d(`integrationDetailModal.confirm`)})})]}),(0,Q.jsx)(K,{open:b!==null,title:d(`integrationDetailModal.disconnectTitle`,{name:o}),message:b?d(`integrationDetailModal.disconnectMessage`,{account:P}):``,confirmLabel:d(`integrationDetailModal.disconnect`),destructive:!0,onConfirm:N,onCancel:()=>S(null)})]})}function Ze({platformAssistantId:e,providerKey:t,displayName:n,description:r,logoUrl:o,connection:s,platformGate:c,onConfigure:l}){let{t:u}=i(`settings`),d=a(),f=!!s?.connected,[p,m]=(0,Z.useState)(!1),[h,g]=(0,Z.useState)(!1),_=Ne({path:{assistant_id:e}}),v={path:{assistant_id:e}},y=R({onSuccess(e,t){W.success(u(`integrationRow.disconnectedToast`,{name:n}));let r=t.path.connection_id;pe(d,v,e=>e?.filter(e=>e.id!==r)),d.invalidateQueries({queryKey:_})},onError(e){let t=me(e,void 0,u(`integrationRow.disconnectFailedToast`,{name:n}));W.error(t)}}),b=()=>{s?.id&&g(!0)};return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(U.Root,{children:(0,Q.jsxs)(U.Body,{padding:`sm`,className:`flex items-center gap-4 px-4`,children:[(0,Q.jsx)(z,{providerKey:t,displayName:n,logoUrl:o,size:32}),(0,Q.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Q.jsx)(`p`,{className:`truncate text-title-small text-[var(--content-default)]`,children:n}),r&&(0,Q.jsx)(`p`,{className:`truncate text-body-medium-lighter text-[var(--content-tertiary)]`,children:r})]}),f&&c===`full`?(0,Q.jsx)(`div`,{className:`shrink-0`,children:(0,Q.jsx)(Qe,{displayName:n,open:p,onOpenChange:m,onEditConnections:()=>{m(!1),l()},onDisable:()=>{m(!1),b()},disablePending:y.isPending})}):(0,Q.jsx)(X,{variant:`primary`,onClick:l,className:`shrink-0`,children:u(`integrationRow.enable`)})]})}),(0,Q.jsx)(K,{open:h,title:u(`integrationRow.disconnectTitle`,{name:n}),message:u(`integrationRow.disconnectMessage`,{name:n}),confirmLabel:u(`integrationRow.disconnect`),destructive:!0,onConfirm:()=>{g(!1),s?.id&&y.mutate({path:{assistant_id:e,connection_id:s.id}})},onCancel:()=>g(!1)})]})}function Qe({displayName:e,open:t,onOpenChange:n,onEditConnections:r,onDisable:a,disablePending:o}){let{t:s}=i(`settings`);return Fe()?(0,Q.jsxs)(q.Root,{open:t,onOpenChange:n,children:[(0,Q.jsx)(q.Trigger,{asChild:!0,children:(0,Q.jsx)(X,{variant:`outlined`,rightIcon:(0,Q.jsx)(j,{}),"aria-haspopup":`menu`,"aria-expanded":t,children:s(`integrationRow.configure`)})}),(0,Q.jsxs)(q.Content,{children:[(0,Q.jsx)(q.Header,{children:(0,Q.jsx)(q.Title,{children:e})}),(0,Q.jsxs)(q.Body,{children:[(0,Q.jsx)(ke,{icon:y,label:s(`integrationRow.editConnections`),onSelect:r}),(0,Q.jsx)(ke,{icon:o?D:f,label:s(`integrationRow.disable`),onSelect:()=>{o||a()}})]})]})]}):(0,Q.jsxs)(ye.Root,{open:t,onOpenChange:n,children:[(0,Q.jsx)(ye.Trigger,{asChild:!0,children:(0,Q.jsx)(X,{variant:`outlined`,rightIcon:(0,Q.jsx)(j,{}),"aria-haspopup":`menu`,"aria-expanded":t,children:s(`integrationRow.configure`)})}),(0,Q.jsxs)(ye.Content,{align:`end`,sideOffset:4,role:`menu`,className:`w-56 overflow-hidden p-0`,children:[(0,Q.jsx)(X,{type:`button`,role:`menuitem`,variant:`ghost`,onClick:r,className:`w-full justify-start rounded-none`,leftIcon:(0,Q.jsx)(y,{"aria-hidden":!0}),children:s(`integrationRow.editConnections`)}),(0,Q.jsx)(X,{type:`button`,role:`menuitem`,variant:`dangerGhost`,onClick:a,disabled:o,className:`w-full justify-start rounded-none`,leftIcon:o?(0,Q.jsx)(D,{className:`animate-spin`,"aria-hidden":!0}):(0,Q.jsx)(f,{"aria-hidden":!0}),children:s(`integrationRow.disable`)})]})]})}var $e=[{value:`none`,labelKey:`mcpAddServerModal.authNone`},{value:`oauth`,labelKey:`mcpAddServerModal.authOAuth`},{value:`bearer`,labelKey:`mcpAddServerModal.authBearer`},{value:`api-key`,labelKey:`mcpAddServerModal.authApiKey`}],et=[{value:`sse`,labelKey:`mcpAddServerModal.transportSse`},{value:`streamable-http`,labelKey:`mcpAddServerModal.transportStreamableHttp`},{value:`stdio`,labelKey:`mcpAddServerModal.transportStdio`}];function tt(e){return $e.map(({value:t,labelKey:n})=>({value:t,label:e(n)}))}function nt(e){return et.map(({value:t,labelKey:n})=>({value:t,label:e(n)}))}function rt({open:e,onClose:t,onAdd:n,isPending:r}){let{t:a}=i(`settings`),o=(0,Z.useMemo)(()=>tt(a),[a]),s=(0,Z.useMemo)(()=>nt(a),[a]),[c,l]=(0,Z.useState)(``),[u,d]=(0,Z.useState)(`sse`),[f,p]=(0,Z.useState)(``),[m,h]=(0,Z.useState)(``),[g,_]=(0,Z.useState)(``),[v,y]=(0,Z.useState)(`none`),[b,x]=(0,Z.useState)(``),[S,C]=(0,Z.useState)(`X-API-Key`),[w,T]=(0,Z.useState)(``),E=(0,Z.useCallback)(()=>{l(``),d(`sse`),p(``),h(``),_(``),y(`none`),x(``),C(`X-API-Key`),T(``)},[]),D=(0,Z.useCallback)(()=>{r||(E(),t())},[r,E,t]),O=(0,Z.useCallback)(()=>{let e=c.trim();if(!e)return;let t={name:e,transportType:u};if(u===`stdio`){let e=m.trim();if(!e)return;t.command=e;let n=g.trim();n&&(t.args=n.split(/\s+/))}else{let e=f.trim();if(!e)return;t.url=e,v===`bearer`&&b.trim()?t.headers={Authorization:`Bearer ${b.trim()}`}:v===`api-key`&&S.trim()&&w.trim()?t.headers={[S.trim()]:w.trim()}:v===`oauth`&&(t.autoAuth=!0)}n(t)},[c,u,f,m,g,v,b,S,w,n]),k=u===`stdio`,A=c.trim()&&(k?m.trim():f.trim());return(0,Q.jsx)(J.Root,{open:e,onOpenChange:e=>{e||D()},children:(0,Q.jsxs)(J.Content,{size:`md`,children:[(0,Q.jsxs)(J.Header,{icon:Ve,children:[(0,Q.jsx)(J.Title,{children:a(`mcpAddServerModal.title`)}),(0,Q.jsx)(J.Description,{children:a(`mcpAddServerModal.description`)})]}),(0,Q.jsx)(J.Body,{children:(0,Q.jsxs)(`div`,{className:`space-y-4`,children:[(0,Q.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,Q.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`mcp-name`,children:a(`mcpAddServerModal.serverNameLabel`)}),(0,Q.jsx)(G,{id:`mcp-name`,type:`text`,value:c,onChange:e=>l(e.target.value),placeholder:a(`mcpAddServerModal.namePlaceholder`),fullWidth:!0,autoFocus:!0})]}),(0,Q.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,Q.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`mcp-transport`,children:a(`mcpAddServerModal.transportLabel`)}),(0,Q.jsx)(`select`,{id:`mcp-transport`,value:u,onChange:e=>d(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:s.map(e=>(0,Q.jsx)(`option`,{value:e.value,children:e.label},e.value))})]}),k?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,Q.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`mcp-command`,children:a(`mcpAddServerModal.commandLabel`)}),(0,Q.jsx)(G,{id:`mcp-command`,type:`text`,value:m,onChange:e=>h(e.target.value),placeholder:a(`mcpAddServerModal.commandPlaceholder`),fullWidth:!0})]}),(0,Q.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,Q.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`mcp-args`,children:a(`mcpAddServerModal.argsLabel`)}),(0,Q.jsx)(G,{id:`mcp-args`,type:`text`,value:g,onChange:e=>_(e.target.value),placeholder:a(`mcpAddServerModal.argsPlaceholder`),fullWidth:!0})]})]}):(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,Q.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`mcp-url`,children:a(`mcpAddServerModal.serverUrlLabel`)}),(0,Q.jsx)(G,{id:`mcp-url`,type:`url`,value:f,onChange:e=>p(e.target.value),placeholder:a(`mcpAddServerModal.urlPlaceholder`),fullWidth:!0})]}),(0,Q.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,Q.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`mcp-auth`,children:a(`mcpAddServerModal.authenticationLabel`)}),(0,Q.jsx)(`select`,{id:`mcp-auth`,value:v,onChange:e=>y(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:o.map(e=>(0,Q.jsx)(`option`,{value:e.value,children:e.label},e.value))})]}),v===`oauth`?(0,Q.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:a(`mcpAddServerModal.oauthHint`)}):null,v===`bearer`?(0,Q.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,Q.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`mcp-bearer`,children:a(`mcpAddServerModal.bearerTokenLabel`)}),(0,Q.jsx)(G,{id:`mcp-bearer`,type:`password`,value:b,onChange:e=>x(e.target.value),placeholder:a(`mcpAddServerModal.bearerPlaceholder`),fullWidth:!0})]}):null,v===`api-key`?(0,Q.jsxs)(`div`,{className:`flex gap-3`,children:[(0,Q.jsxs)(`div`,{className:`flex-1 space-y-1.5`,children:[(0,Q.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`mcp-apikey-header`,children:a(`mcpAddServerModal.headerNameLabel`)}),(0,Q.jsx)(G,{id:`mcp-apikey-header`,type:`text`,value:S,onChange:e=>C(e.target.value),placeholder:a(`mcpAddServerModal.apiKeyHeaderPlaceholder`),fullWidth:!0})]}),(0,Q.jsxs)(`div`,{className:`flex-1 space-y-1.5`,children:[(0,Q.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`mcp-apikey-value`,children:a(`mcpAddServerModal.apiKeyLabel`)}),(0,Q.jsx)(G,{id:`mcp-apikey-value`,type:`password`,value:w,onChange:e=>T(e.target.value),placeholder:a(`mcpAddServerModal.apiKeyPlaceholder`),fullWidth:!0})]})]}):null]})]})}),(0,Q.jsxs)(J.Footer,{children:[(0,Q.jsx)(X,{variant:`ghost`,onClick:D,disabled:r,children:a(`mcpAddServerModal.cancel`)}),(0,Q.jsx)(X,{variant:`primary`,onClick:O,disabled:!A||r,children:a(r?`mcpAddServerModal.adding`:`mcpAddServerModal.addServer`)})]})]})})}async function it(e){let{data:t,response:n}=await M.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 at(e){let{data:t,response:n}=await M.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 ot(e,t){let{response:n}=await M.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 st(e,t){let{response:n}=await M.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 ct(e,t){let{response:n}=await M.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 lt(e,t){let{data:n,response:r}=await M.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 ut(e,t){let{data:n,response:r}=await M.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 dt(e,t){let{response:n}=await M.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 ft(e){let{response:t}=await M.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 pt={connected:{icon:S,className:`text-[var(--system-positive-strong)]`},"needs-auth":{icon:w,className:`text-[var(--system-warning-strong)]`},disabled:{icon:C,className:`text-[var(--content-tertiary)]`}},mt={icon:p,className:`text-[var(--system-negative-strong)]`};function ht(e,t){switch(e){case`connected`:return t(`mcpServerCard.statusConnected`);case`needs-auth`:return t(`mcpServerCard.statusNeedsAuth`);case`disabled`:return t(`mcpServerCard.statusDisabled`);default:return t(`mcpServerCard.statusError`)}}function gt({server:e,toolsSummary:t,onToggleEnabled:n,onRemove:r,onConfigure:a,onAuthenticate:o,onRevokeOAuth:s,isUpdating:c,isAuthenticating:l,isRevoking:u}){let{t:d}=i(`settings`),[f,p]=(0,Z.useState)(!1),m=pt[e.status]??mt,g=m.icon,y=(0,Z.useCallback)(t=>n(e.id,t),[n,e.id]),x=(0,Z.useCallback)(()=>r(e.id),[r,e.id]),S=(0,Z.useCallback)(()=>a(e.id),[a,e.id]),C=(0,Z.useCallback)(()=>o(e.id),[o,e.id]),w=(0,Z.useCallback)(()=>s(e.id),[s,e.id]),T=(0,Z.useCallback)(()=>p(e=>!e),[]);return(0,Q.jsx)(U.Root,{children:(0,Q.jsxs)(U.Body,{children:[(0,Q.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,Q.jsx)(`div`,{className:`flex min-w-0 flex-1 items-center gap-3`,children:(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 text-[var(--content-default)]`,children:e.id}),(0,Q.jsxs)(`span`,{className:`flex items-center gap-1 text-label-medium-default ${m.className}`,children:[(0,Q.jsx)(g,{className:`h-3.5 w-3.5`}),ht(e.status,d)]}),e.hasOAuth?(0,Q.jsx)(`span`,{className:`rounded-full bg-[var(--surface-lift)] px-2 py-0.5 text-label-small-default text-[var(--content-secondary)]`,children:d(`mcpServerCard.oauthBadge`)}):null]}),(0,Q.jsxs)(`div`,{className:`mt-0.5 flex items-center gap-2 text-body-small-default text-[var(--content-tertiary)]`,children:[(0,Q.jsx)(`span`,{children:e.transport.type}),t?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`span`,{"aria-hidden":`true`,children:`·`}),(0,Q.jsx)(`span`,{children:d(`mcpServerCard.toolCount`,{count:t.toolCount})}),(0,Q.jsx)(`span`,{"aria-hidden":`true`,children:`·`}),(0,Q.jsx)(`span`,{children:d(`mcpServerCard.estimatedTokens`,{count:t.estimatedTokens.toLocaleString()})})]}):null]})]})}),(0,Q.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[c||l?(0,Q.jsx)(D,{className:`h-4 w-4 animate-spin text-[var(--content-tertiary)]`}):null,e.status===`needs-auth`&&e.transport.type!==`stdio`&&!e.hasOAuth?(0,Q.jsx)(X,{variant:`ghost`,size:`compact`,leftIcon:(0,Q.jsx)(_,{}),onClick:C,disabled:l,children:d(l?`mcpServerCard.authenticating`:`mcpServerCard.authenticate`)}):null,e.hasOAuth?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(X,{variant:`ghost`,size:`compact`,leftIcon:(0,Q.jsx)(b,{}),onClick:C,disabled:l,tooltip:d(`mcpServerCard.reAuthTooltip`),children:d(`mcpServerCard.reAuth`)}),(0,Q.jsx)(X,{variant:`dangerGhost`,size:`compact`,leftIcon:(0,Q.jsx)(v,{}),onClick:w,disabled:u,tooltip:d(`mcpServerCard.revokeOAuthTooltip`),children:d(u?`mcpServerCard.revoking`:`mcpServerCard.revoke`)})]}):null,(0,Q.jsx)(Oe,{checked:e.enabled,onChange:y,disabled:c,"aria-label":e.enabled?d(`mcpServerCard.toggleDisableAriaLabel`,{serverId:e.id}):d(`mcpServerCard.toggleEnableAriaLabel`,{serverId:e.id})}),(0,Q.jsx)(X,{variant:`ghost`,size:`compact`,onClick:S,tooltip:d(`mcpServerCard.configureTooltip`),children:d(`mcpServerCard.configure`)}),(0,Q.jsx)(X,{variant:`dangerGhost`,size:`compact`,iconOnly:(0,Q.jsx)(k,{}),onClick:x,tooltip:d(`mcpServerCard.removeServerTooltip`),"aria-label":d(`mcpServerCard.removeServerAriaLabel`,{serverId:e.id})})]})]}),t&&t.tools.length>0?(0,Q.jsxs)(`div`,{className:`mt-3 border-t border-[var(--border-base)] pt-2`,children:[(0,Q.jsxs)(`button`,{type:`button`,onClick:T,className:`flex w-full cursor-pointer items-center gap-1 text-body-small-default text-[var(--content-secondary)] hover:text-[var(--content-default)]`,children:[f?(0,Q.jsx)(j,{className:`h-3.5 w-3.5`}):(0,Q.jsx)(h,{className:`h-3.5 w-3.5`}),d(`mcpServerCard.registeredTools`,{count:t.toolCount})]}),f?(0,Q.jsx)(`div`,{className:`mt-2 max-h-60 overflow-y-auto`,children:t.tools.map(e=>(0,Q.jsx)(H,{title:e.name,subtitle:e.description||void 0,trailing:(0,Q.jsx)(`span`,{className:`whitespace-nowrap text-body-small-default text-[var(--content-secondary)]`,children:d(`mcpServerCard.toolTokensAbbrev`,{count:e.estimatedTokens.toLocaleString()})})},e.name))}):null]}):null]})})}var _t=[`none`,`bearer`,`api-key`],vt=[`low`,`medium`,`high`];function yt(e,t){switch(e){case`none`:return t(`mcpServerDetailModal.authNone`);case`bearer`:return t(`mcpServerDetailModal.authBearerToken`);case`api-key`:return t(`mcpServerDetailModal.authApiKey`)}}function bt(e,t){switch(e){case`low`:return t(`mcpServerDetailModal.riskLow`);case`medium`:return t(`mcpServerDetailModal.riskMedium`);case`high`:return t(`mcpServerDetailModal.riskHigh`);default:return e}}function xt({server:e,toolsSummary:t,onClose:n,onSave:r,isPending:a}){let{t:o}=i(`settings`),[s,c]=(0,Z.useState)(`medium`),[l,u]=(0,Z.useState)(`none`),[d,f]=(0,Z.useState)(``),[p,m]=(0,Z.useState)(`X-API-Key`),[h,g]=(0,Z.useState)(``);(0,Z.useEffect)(()=>{e&&(c(e.defaultRiskLevel),u(e.authType),f(``),m(e.authHeaderName??`X-API-Key`),g(``))},[e]);let _=(0,Z.useCallback)(()=>{if(!e)return;let t=l!==e.authType,n=l===`bearer`&&d.trim()!==``,i=l===`api-key`&&p.trim()!==``&&h.trim()!==``,a=t||n||i,o;o=a?l===`none`?null:l===`bearer`&&d.trim()?{Authorization:`Bearer ${d.trim()}`}:l===`api-key`&&p.trim()&&h.trim()?{[p.trim()]:h.trim()}:void 0:void 0,r(e.id,{name:e.id,defaultRiskLevel:s,...o===void 0?{}:{headers:o}})},[e,s,l,d,p,h,r]),v=(0,Z.useCallback)(()=>{a||n()},[a,n]);return e?(0,Q.jsx)(J.Root,{open:!!e,onOpenChange:e=>{e||v()},children:(0,Q.jsxs)(J.Content,{size:`lg`,children:[(0,Q.jsxs)(J.Header,{icon:Ve,children:[(0,Q.jsx)(J.Title,{children:e.id}),(0,Q.jsx)(J.Description,{children:o(`mcpServerDetailModal.description`,{transport:e.transport.type,status:e.status})})]}),(0,Q.jsx)(J.Body,{children:(0,Q.jsxs)(`div`,{className:`space-y-5`,children:[(0,Q.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,Q.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`mcp-risk`,children:o(`mcpServerDetailModal.defaultRiskLevel`)}),(0,Q.jsx)(`select`,{id:`mcp-risk`,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:vt.map(e=>(0,Q.jsx)(`option`,{value:e,children:bt(e,o)},e))})]}),e.transport.type===`stdio`?null:(0,Q.jsxs)(Q.Fragment,{children:[e.hasOAuth?(0,Q.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,Q.jsx)(`span`,{className:`text-body-small-default text-[var(--content-secondary)]`,children:o(`mcpServerDetailModal.authentication`)}),(0,Q.jsx)(`span`,{className:`rounded-full bg-[var(--surface-lift)] px-2 py-0.5 text-label-small-default text-[var(--content-default)]`,children:o(`mcpServerDetailModal.oauthBadge`)}),(0,Q.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:o(`mcpServerDetailModal.oauthManagedHint`)})]}):null,e.hasOAuth?null:(0,Q.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,Q.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`mcp-detail-auth`,children:o(`mcpServerDetailModal.authentication`)}),(0,Q.jsx)(`select`,{id:`mcp-detail-auth`,value:l,onChange:e=>u(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:_t.map(e=>(0,Q.jsx)(`option`,{value:e,children:yt(e,o)},e))})]}),l===`bearer`&&!e.hasOAuth?(0,Q.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,Q.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`mcp-detail-bearer`,children:o(`mcpServerDetailModal.bearerToken`)}),(0,Q.jsx)(G,{id:`mcp-detail-bearer`,type:`password`,value:d,onChange:e=>f(e.target.value),placeholder:e.hasStaticAuth&&e.authType===`bearer`?o(`mcpServerDetailModal.bearerTokenPlaceholderKeep`):o(`mcpServerDetailModal.bearerTokenPlaceholder`),fullWidth:!0})]}):null,l===`api-key`&&!e.hasOAuth?(0,Q.jsxs)(`div`,{className:`flex gap-3`,children:[(0,Q.jsxs)(`div`,{className:`flex-1 space-y-1.5`,children:[(0,Q.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`mcp-detail-apikey-header`,children:o(`mcpServerDetailModal.headerName`)}),(0,Q.jsx)(G,{id:`mcp-detail-apikey-header`,type:`text`,value:p,onChange:e=>m(e.target.value),placeholder:o(`mcpServerDetailModal.headerNamePlaceholder`),fullWidth:!0})]}),(0,Q.jsxs)(`div`,{className:`flex-1 space-y-1.5`,children:[(0,Q.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`mcp-detail-apikey-value`,children:o(`mcpServerDetailModal.apiKey`)}),(0,Q.jsx)(G,{id:`mcp-detail-apikey-value`,type:`password`,value:h,onChange:e=>g(e.target.value),placeholder:e.hasStaticAuth&&e.authType===`api-key`?o(`mcpServerDetailModal.apiKeyPlaceholderKeep`):o(`mcpServerDetailModal.apiKeyPlaceholder`),fullWidth:!0})]})]}):null]}),t&&t.tools.length>0?(0,Q.jsxs)(`div`,{className:`space-y-2`,children:[(0,Q.jsx)(`h3`,{className:`text-body-medium-default text-[var(--content-default)]`,children:o(`mcpServerDetailModal.registeredToolsHeading`,{count:t.toolCount})}),(0,Q.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:o(`mcpServerDetailModal.tokenOverhead`,{count:t.estimatedTokens.toLocaleString()})}),(0,Q.jsx)(`div`,{className:`max-h-64 overflow-y-auto rounded-lg border border-[var(--border-base)]`,children:(0,Q.jsxs)(`table`,{className:`w-full text-body-small-default`,children:[(0,Q.jsx)(`thead`,{children:(0,Q.jsxs)(`tr`,{className:`border-b border-[var(--border-base)] bg-[var(--surface-base)]`,children:[(0,Q.jsx)(`th`,{className:`px-3 py-2 text-left font-medium text-[var(--content-secondary)]`,children:o(`mcpServerDetailModal.tableTool`)}),(0,Q.jsx)(`th`,{className:`px-3 py-2 text-left font-medium text-[var(--content-secondary)]`,children:o(`mcpServerDetailModal.tableDescription`)}),(0,Q.jsx)(`th`,{className:`px-3 py-2 text-right font-medium text-[var(--content-secondary)]`,children:o(`mcpServerDetailModal.tableTokens`)})]})}),(0,Q.jsx)(`tbody`,{children:t.tools.map(e=>(0,Q.jsxs)(`tr`,{className:`border-b border-[var(--border-base)] last:border-b-0`,children:[(0,Q.jsx)(`td`,{className:`px-3 py-2 font-medium text-[var(--content-default)]`,children:e.name}),(0,Q.jsx)(`td`,{className:`max-w-xs truncate px-3 py-2 text-[var(--content-tertiary)]`,children:e.description||o(`mcpServerDetailModal.emptyDescription`)}),(0,Q.jsx)(`td`,{className:`px-3 py-2 text-right text-[var(--content-tertiary)]`,children:o(`mcpServerDetailModal.toolEstimatedTokens`,{count:e.estimatedTokens.toLocaleString()})})]},e.name))})]})})]}):null]})}),(0,Q.jsxs)(J.Footer,{children:[(0,Q.jsx)(X,{variant:`ghost`,onClick:v,disabled:a,children:o(`mcpServerDetailModal.cancel`)}),(0,Q.jsx)(X,{variant:`primary`,onClick:_,disabled:a,children:o(a?`mcpServerDetailModal.saving`:`mcpServerDetailModal.save`)})]})]})}):null}var St=`mcp-servers`,Ct=`mcp-tools-summary`;function wt(){let{t:e}=i(`settings`),t=Se(),r=a(),o=c(),s=we.use.mcpAddServer(),l=we.use.hasHydrated(),[u,d]=(0,Z.useState)(!1),[f,p]=(0,Z.useState)(null),[m,h]=(0,Z.useState)(null),[g,_]=(0,Z.useState)(new Set),[v,y]=(0,Z.useState)(!1),[x,S]=(0,Z.useState)(!1),[C,w]=(0,Z.useState)(!1),[T,O]=(0,Z.useState)(!1),[k,A]=(0,Z.useState)(null),[j,M]=(0,Z.useState)(null),{data:N,isLoading:P,isError:F}=n({queryKey:[St,t],queryFn:()=>it(t)}),{data:I}=n({queryKey:[Ct,t],queryFn:()=>at(t)}),L=(0,Z.useCallback)(()=>{r.invalidateQueries({queryKey:[St,t]}),r.invalidateQueries({queryKey:[Ct,t]})},[r,t]),R=(0,Z.useMemo)(()=>{let e=new Map;if(I)for(let t of I.servers)e.set(t.serverId,t);return e},[I]),z=(0,Z.useMemo)(()=>!f||!N?null:N.servers.find(e=>e.id===f)??null,[f,N]),ee=(0,Z.useCallback)(async(n,r)=>{_(e=>new Set(e).add(n));try{await ot(t,{name:n,enabled:r}),L()}catch{W.error(e(r?`mcpPage.toastEnableFailed`:`mcpPage.toastDisableFailed`,{serverId:n}))}finally{_(e=>{let t=new Set(e);return t.delete(n),t})}},[t,L,e]),V=(0,Z.useCallback)(async()=>{if(m){S(!0);try{await ct(t,m),L(),W.success(e(`mcpPage.toastRemoved`,{serverId:m})),h(null)}catch{W.error(e(`mcpPage.toastRemoveFailed`,{serverId:m}))}finally{S(!1)}}},[m,t,L,e]),te=(0,Z.useCallback)(async n=>{A(n);let r;try{r=await lt(t,n)}catch{W.error(e(`mcpPage.toastAuthStartFailed`,{serverId:n})),A(null);return}try{if(r.already_authenticated){W.success(e(`mcpPage.toastAlreadyAuthenticated`,{serverId:n})),L();return}window.open(r.auth_url,`_blank`,`noopener,noreferrer`);for(let r=0;r<60;r++){await new Promise(e=>setTimeout(e,3e3));let r=await ut(t,n);if(r.status===`complete`){W.success(e(`mcpPage.toastAuthenticatedSuccess`,{serverId:n})),L();return}if(r.status===`error`){W.error(r.error??e(`mcpPage.toastAuthFailed`,{serverId:n}));return}}W.error(e(`mcpPage.toastAuthTimedOut`,{serverId:n}))}catch{W.error(e(`mcpPage.toastAuthPollingFailed`,{serverId:n}))}finally{A(null),L()}},[t,L,e]),H=(0,Z.useCallback)(async n=>{M(n);try{await dt(t,n),L(),W.success(e(`mcpPage.toastOAuthRevoked`,{serverId:n}))}catch{W.error(e(`mcpPage.toastOAuthRevokeFailed`,{serverId:n}))}finally{M(null)}},[t,L,e]),ne=(0,Z.useCallback)(async n=>{let r=n.autoAuth?window.open(`about:blank`,`_blank`,`noopener`):null;y(!0);try{await st(t,n),L(),W.success(e(`mcpPage.toastAdded`,{name:n.name})),d(!1)}catch{W.error(e(`mcpPage.toastAddFailed`,{name:n.name})),r?.close(),y(!1);return}if(y(!1),n.autoAuth){A(n.name);try{let i=await lt(t,n.name);if(i.already_authenticated){r?.close(),W.success(e(`mcpPage.toastAlreadyAuthenticated`,{serverId:n.name})),L();return}r?r.location.href=i.auth_url:window.open(i.auth_url,`_blank`,`noopener,noreferrer`);for(let r=0;r<60;r++){await new Promise(e=>setTimeout(e,3e3));let r=await ut(t,n.name);if(r.status===`complete`){W.success(e(`mcpPage.toastAuthenticatedSuccess`,{serverId:n.name})),L();return}if(r.status===`error`){W.error(r.error??e(`mcpPage.toastAuthFailed`,{serverId:n.name}));return}}W.error(e(`mcpPage.toastAuthTimedOut`,{serverId:n.name}))}catch{r?.close(),W.error(e(`mcpPage.toastAuthStartFailed`,{serverId:n.name}))}finally{A(null),L()}}},[t,L,e]),re=(0,Z.useCallback)(async(n,r)=>{w(!0);try{await ot(t,r),L(),W.success(e(`mcpPage.toastUpdated`,{serverId:n})),p(null)}catch{W.error(e(`mcpPage.toastUpdateFailed`,{serverId:n}))}finally{w(!1)}},[t,L,e]),ie=(0,Z.useCallback)(async()=>{O(!0);try{await ft(t),L(),W.success(e(`mcpPage.toastReloadSuccess`))}catch{W.error(e(`mcpPage.toastReloadFailed`))}finally{O(!1)}},[t,L,e]),ae=(0,Z.useCallback)(()=>{s?d(!0):B(o,{prompt:e(`mcpPage.setupPrompt`)})},[s,o,e]),oe=N?.servers??[];return(0,Q.jsxs)(`div`,{className:`space-y-4`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(`h2`,{className:`text-title-small text-[var(--content-default)]`,children:e(`mcpPage.title`)}),(0,Q.jsx)(`p`,{className:`mt-0.5 text-body-small-default text-[var(--content-tertiary)]`,children:e(`mcpPage.subtitle`)})]}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(X,{variant:`ghost`,size:`compact`,iconOnly:(0,Q.jsx)(b,{className:T?`animate-spin`:``}),onClick:ie,disabled:T,tooltip:e(`mcpPage.reloadTooltip`),"aria-label":e(`mcpPage.reloadAriaLabel`)}),s?(0,Q.jsx)(X,{variant:`primary`,size:`compact`,leftIcon:(0,Q.jsx)(E,{}),onClick:()=>d(!0),children:e(`mcpPage.addServerButton`)}):null]})]}),I?(0,Q.jsxs)(`div`,{className:`flex gap-4 text-body-small-default text-[var(--content-tertiary)]`,children:[(0,Q.jsx)(`span`,{children:e(`mcpPage.totalTools`,{count:I.totalToolCount})}),(0,Q.jsx)(`span`,{children:e(`mcpPage.totalTokens`,{count:I.totalEstimatedTokens.toLocaleString()})})]}):null,P?(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 py-6 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,Q.jsx)(D,{className:`h-4 w-4 animate-spin`}),(0,Q.jsx)(`span`,{children:e(`mcpPage.loading`)})]}):F?(0,Q.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:e(`mcpPage.loadError`)}):oe.length===0?(0,Q.jsxs)(`button`,{type:`button`,onClick:ae,disabled:!l,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,Q.jsx)(Ve,{className:`h-6 w-6 text-[var(--content-disabled)]`}),(0,Q.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-default)]`,children:e(`mcpPage.emptyTitle`)}),(0,Q.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:e(s?`mcpPage.emptyAddSubtitle`:`mcpPage.emptyChatSubtitle`)})]}):(0,Q.jsx)(`div`,{className:`space-y-2`,children:oe.map(e=>(0,Q.jsx)(gt,{server:e,toolsSummary:R.get(e.id),onToggleEnabled:ee,onRemove:h,onConfigure:p,onAuthenticate:te,onRevokeOAuth:H,isUpdating:g.has(e.id),isAuthenticating:k===e.id,isRevoking:j===e.id},e.id))}),s?(0,Q.jsx)(rt,{open:u,onClose:()=>d(!1),onAdd:ne,isPending:v}):null,(0,Q.jsx)(xt,{server:z,toolsSummary:f?R.get(f):void 0,onClose:()=>p(null),onSave:re,isPending:C}),(0,Q.jsx)(K,{open:!!m,title:e(`mcpPage.removeDialogTitle`),message:m?e(`mcpPage.removeDialogMessage`,{serverId:m}):``,confirmLabel:e(`mcpPage.removeDialogConfirm`),destructive:!0,isPending:x,onConfirm:V,onCancel:()=>h(null)})]})}function Tt(){return(0,Q.jsx)(wt,{})}var Et=`vellum:integrations:bannerDismissed`;function Dt(e,t){return{denied:e(`integrationsPage.oauthErrorDenied`),state_invalid:e(`integrationsPage.oauthErrorStateInvalid`),state_expired:e(`integrationsPage.oauthErrorStateExpired`),exchange_failed:e(`integrationsPage.oauthErrorExchangeFailed`),identity_failed:e(`integrationsPage.oauthErrorIdentityFailed`)}[t]}function Ot(e,t,n){if(t.trim())return e(`integrationsPage.emptySearchTitle`);switch(n){case`enabled`:return e(`integrationsPage.emptyEnabledTitle`);case`not-enabled`:return e(`integrationsPage.emptyAllEnabledTitle`);default:return e(`integrationsPage.emptyDefaultTitle`)}}function kt(e,t,n){if(t.trim())return e(`integrationsPage.emptySearchSubtitle`,{query:t.trim()});switch(n){case`enabled`:return e(`integrationsPage.emptyEnabledSubtitle`);case`not-enabled`:return e(`integrationsPage.emptyNotEnabledSubtitle`);default:return e(`integrationsPage.emptyDefaultSubtitle`)}}var At=[{value:`all`,labelKey:`integrationsPage.filterAll`},{value:`enabled`,labelKey:`integrationsPage.filterEnabled`},{value:`not-enabled`,labelKey:`integrationsPage.filterNotEnabled`}];function $(e,t){return e?.find(e=>e.provider===t)??null}function jt(e){return e===`mcp`?`mcp`:`oauth`}function Mt(){let{t:e}=i(`settings`),[r]=l(),a=c(),o=he(),[s,u]=(0,Z.useState)(null),[d,f]=(0,Z.useState)(!0),[p,h]=(0,Z.useState)(``),[_,v]=(0,Z.useState)(`all`),[y,b]=(0,Z.useState)(!0),[x,S]=(0,Z.useState)(null);(0,Z.useEffect)(()=>{b(le(Et,`false`)===`true`)},[]);let C=()=>{b(!0),Te(Et,`true`)};(0,Z.useEffect)(()=>{let e=!0;return(async()=>{try{let t=await ue();e&&t.ok&&u(t.data)}catch(e){Me(e,{context:`integrations.getAssistant`})}finally{e&&f(!1)}})(),()=>{e=!1}},[]);let{platformAssistantId:w,isLoading:T}=Be(s?.id,o===`full`),{data:E,isLoading:O,isError:k}=n({...oe({path:{assistant_id:s?.id??``}}),select:e=>e.providers,enabled:!!s}),{data:A,isLoading:j}=n({...L({path:{assistant_id:w??``}}),enabled:!!w&&o===`full`});(0,Z.useEffect)(()=>{let t=r.get(`oauth_status`);if(!t)return;let n=r.get(`oauth_provider`),i=n?n.charAt(0).toUpperCase()+n.slice(1):null;if(t===`connected`)W.success(i?e(`integrationsPage.accountConnectedToast`,{providerLabel:i}):e(`integrationsPage.accountConnectedToastGeneric`));else if(t===`error`){let t=r.get(`oauth_code`)??`unknown`;W.error(Dt(e,t)??(i?e(`integrationsPage.connectFailedToast`,{providerLabel:i}):e(`integrationsPage.connectFailedToastGeneric`)))}a(Ae.settings.integrations,{replace:!0})},[r,a,e]);let M=(0,Z.useMemo)(()=>E?.filter(e=>e.supports_managed_mode)??[],[E]),P=(0,Z.useMemo)(()=>{let e=p.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 _!==`all`&&(t=t.filter(e=>{let t=!!$(A,e.provider_key)?.connected;return _===`enabled`?t:!t})),[...t].sort((e,t)=>{let n=!!$(A,e.provider_key)?.connected;if(n!==!!$(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,p,_]),F=d||O||j||T,I=Ot(e,p,_),R=kt(e,p,_),z=(0,Z.useMemo)(()=>x?M.find(e=>e.provider_key===x)??null:null,[M,x]),ee=At.map(({value:t,labelKey:n})=>({value:t,label:e(n)}));return(0,Q.jsxs)(`div`,{className:`space-y-4`,children:[!y&&(0,Q.jsx)(Ie,{tone:`info`,icon:(0,Q.jsx)(g,{className:`h-3.5 w-3.5`}),onDismiss:C,children:(0,Q.jsx)(t,{ns:`settings`,i18nKey:`integrationsPage.tipBanner`,components:{tip:(0,Q.jsx)(`span`,{className:`text-body-medium-default`})}})}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(G,{type:`text`,value:p,onChange:e=>h(e.target.value),placeholder:e(`integrationsPage.searchPlaceholder`),"aria-label":e(`integrationsPage.searchAriaLabel`),leftIcon:(0,Q.jsx)(m,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),fullWidth:!0,wrapperClassName:`flex-1`}),(0,Q.jsx)(N,{options:ee,value:_,onChange:v,"aria-label":e(`integrationsPage.filterAriaLabel`),menuAlign:`end`,className:`w-36 shrink-0`})]}),(0,Q.jsx)(`div`,{children:F?(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 py-6 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,Q.jsx)(D,{className:`h-4 w-4 animate-spin`}),(0,Q.jsx)(`span`,{children:e(`integrationsPage.loading`)})]}):k?(0,Q.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:e(`integrationsPage.loadFailed`)}):s?P.length===0?(0,Q.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,Q.jsx)(m,{className:`h-6 w-6 text-[var(--content-disabled)]`}),(0,Q.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-default)]`,children:I}),(0,Q.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:R})]}):(0,Q.jsx)(`div`,{className:`space-y-2`,children:P.map(e=>(0,Q.jsx)(Ze,{platformAssistantId:w??s.id,providerKey:e.provider_key,displayName:e.display_name??e.provider_key,description:e.description,logoUrl:e.logo_url,connection:$(A,e.provider_key),platformGate:o,onConfigure:()=>S(e.provider_key)},e.provider_key))}):(0,Q.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:e(`integrationsPage.noAssistant`)})}),z&&s&&(0,Q.jsx)(Xe,{assistantId:s.id,platformAssistantId:w??s.id,providerKey:z.provider_key,displayName:z.display_name??z.provider_key,description:z.description,logoUrl:z.logo_url,platformGate:o,onClose:()=>S(null)})]})}function Nt(){let{t:e}=i(`settings`),[t,n]=l(),r=jt(t.get(`tab`));return(0,Q.jsx)(`div`,{className:`space-y-6`,children:(0,Q.jsxs)(Y.Root,{value:r,onValueChange:e=>{let r=jt(e),i=new URLSearchParams(t);r===`mcp`?i.set(`tab`,`mcp`):i.delete(`tab`),n(i,{replace:!0})},children:[(0,Q.jsxs)(Y.List,{children:[(0,Q.jsx)(Y.Trigger,{value:`oauth`,children:e(`integrationsPage.tabOAuth`)}),(0,Q.jsx)(Y.Trigger,{value:`mcp`,children:e(`integrationsPage.tabMcp`)})]}),(0,Q.jsx)(Y.Panel,{value:`oauth`,className:`pt-4`,children:(0,Q.jsx)(Z.Suspense,{children:(0,Q.jsx)(Mt,{})})}),(0,Q.jsx)(Y.Panel,{value:`mcp`,className:`pt-4`,children:(0,Q.jsx)(Tt,{})})]})})}export{Nt as IntegrationsPage};
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
var e={conversationTitle:`Обновляю личность`},t={conversationTitle:`Обновляю имя`},n={greeting:`Привет, я {name}`,renamingInProgressAriaLabel:`Идёт смена имени`},r={all:`Все`,skillCategoriesAriaLabel:`Категории навыков`},i={askAboutThis:`Спросить об этом`,askPrompt:`Расскажи, что ты помнишь про "{title}" и как это связано с остальным, что ты знаешь.`,backAriaLabel:`Назад`,closeAriaLabel:`Закрыть`,connectionCount:`{count, plural, one {# связь} few {# связи} many {# связей} other {# связи}}`,emptyContent:`У этого понятия пока нет текста. Оно есть как связь в графе, но страница пустая.`,loadError:`Не получилось загрузить это понятие. Повторите попытку через минуту.`,readFullNote:`Читать заметку целиком`,refine:`Уточнить`,refinePrompt:`Хочу уточнить, что ты помнишь про "{title}". Спроси, что не так, и мы поправим вместе.`,showLess:`Свернуть`,trailAriaLabel:`Цепочка понятий`,updated:`Обновлено {date}`,wiredTo:`Связано с`},a={nodeKind:{capability:`Способность`,concept:`Понятие`,other:`Другое`,pending:`Ожидает`,skill:`Навык`}},o={description:`Каждая идея, которую он учит, и связи между ними появляются здесь. Карта растёт и перестраивается по мере разговора: чем больше сведений, тем она богаче.`,dismissAriaLabel:`Скрыть`,title:`Это разум ассистента`},s={coloredByTheme:`Цвет по теме`,learned:`Выучено`,link:`Связь`,moreThemes:`{count, plural, one {+# ещё} few {+# ещё} many {+# ещё} other {+# ещё}}`},c={clearSearchAriaLabel:`Очистить поиск`,dragToRotateHint:`перетащи, чтобы вращать · прокрути, чтобы масштабировать`,emptyDetail:`Когда ассистент будет учиться и связывать идеи, они появятся здесь живой картой его памяти.`,emptyTitle:`Понятий пока нет`,enterFullscreenAriaLabel:`На весь экран`,exitFullscreenAriaLabel:`Выйти из полного экрана`,loadErrorDetail:`Не получилось загрузить память ассистента. Повторите попытку через минуту.`,loadErrorTitle:`Не получилось загрузить граф памяти`,resetViewAriaLabel:`Сбросить вид`,searchConceptsAriaLabel:`Искать понятия`,searchConceptsPlaceholder:`Искать понятия…`,truncatedNotice:`{count, plural, one {Показано # наиболее связанное понятие} few {Показаны # наиболее связанных понятия} many {Показано # наиболее связанных понятий} other {Показаны # наиболее связанных понятия}}`,zoomInAriaLabel:`Приблизить`,zoomOutAriaLabel:`Отдалить`},l={cancel:`Отмена`,contentLabel:`Что мне запомнить?`,contentPlaceholder:`напр. Я предпочитаю короткие списки.`,create:`Создать воспоминание`,createError:`Не получилось создать воспоминание.`,creating:`Создаю…`,helperText:`Сразу появится на карте, а потом станет понятием, когда я его разложу.`,savedFoundToast:`Понял. Сейчас открою.`,savedPendingToast:`Понял. Оно уже на карте, пока я его раскладываю.`,saveError:`Не получилось сохранить это воспоминание.`,title:`Новое воспоминание`},u={failureMessage:`Не получилось загрузить граф памяти.`},d={failureMessage:`Не получилось загрузить это понятие.`},f={cardHoverLine:{channels:`Все места, где можно меня найти`,contacts:`Люди, которых я знаю и которым доверяю`,library:`Приложения и документы, которые я сделал`,memory:`Всё, что я помню`,personality:`Давай, подкрути мне душу`,schedules:`Что я делаю по кругу`,superpowers:`Всё, что я умею`,workspace:`Все файлы, на которых я работаю`},defaultAssistantName:`Ассистент`,memoryCount:`{count, plural, one {# воспоминание} few {# воспоминания} many {# воспоминаний} other {# воспоминания}}`,memoryCountLabel:`{count, plural, one {воспоминание} few {воспоминания} many {воспоминаний} other {воспоминания}}`,renameErrorToast:`Имя не сменилось. Повторите попытку.`,renameSuccessToast:`Знакомься, это {newName}!`,scheduleCadence:`{cadence} · следующее {nextRun}`,updateAvatarAndName:`Изменить аватар и имя`,viewMoreSchedules:`{count, plural, one {Показать ещё #…} few {Показать ещё #…} many {Показать ещё #…} other {Показать ещё #…}}`},p={channels:{description:`Где я слушаю`,label:`Каналы`},contacts:{description:`Кого я знаю`,label:`Контакты`},library:{description:`Мои приложения и документы`,label:`Библиотека`},memory:{description:`Что я помню`,label:`Память`},personality:{description:`Настройка того, как я говорю`,label:`Личность`},schedules:{description:`Мои ритуалы`,label:`Расписания`},superpowers:{description:`Что я умею`,label:`Суперсилы`},workspace:{description:`Мои файлы`,label:`Рабочая область`}},m={failureMessage:`Не получилось установить навык.`},h={backToAriaLabel:`Назад к {name}`,backToTitle:`Назад к {name}`},g={failureMessage:`Не получилось загрузить страницы понятий.`},_={justNow:`только что`},v={createMemory:`Создать воспоминание`},y={sourceType:{direct:`Сказано напрямую`,inferred:`Выведено`,observed:`Замечено`,toldByOther:`Сказано кем-то ещё`}},b={memorySettings:`Настройки памяти`,tryAgain:`Повторить`,turnMemoryOn:`Включить память`,upgradeMemory:`Обновить память`},x={companionCoworker:{left:`Компаньон`,right:`Коллега`},executeCollaborate:{left:`Самостоятельный`,right:`Совместный`},genzBoomer:{left:`Gen Z`,right:`Baby Boomer`},playfulSerious:{left:`Игривый`,right:`Серьёзный`},politeUnfiltered:{left:`Вежливый`,right:`Без фильтра`}},S={back:`Назад`,subtitle:`Сдвиг ползунков и нажатие «обновить»: я перепишу себя под это.`,title:`Формирование личности`,updateErrorToast:`Личность не обновилась. Повторите попытку.`,updatePersonality:`Обновить личность`,updateSuccessToast:`Личность обновлена. Иди поздоровайся!`,updatingPersonality:`Обновляю личность {name}…`},C={ariaLabel:`Личность: {summary}`,axisBalanced:`{left} и {right} в балансе`,axisLean:`{percent}% {label}`},w={rangeAriaLabel:`От {left} до {right}`},T={installError:`Не получилось установить плагин. Повторите попытку.`,removeConfirmMessage:`Удалить "{name}" у этого ассистента?`,removeError:`Не получилось удалить плагин. Повторите попытку.`,riskyUpgradeConfirmLabel:`Всё равно обновить`,riskyUpgradeConfirmMessage:`У "{name}" есть локальные правки, которые пропадут при обновлении. Продолжить?`,toggleError:`Не получилось обновить плагин. Повторите попытку.`,upgradeError:`Не получилось обновить плагин. Повторите попытку.`},E={backToPluginsAriaLabel:`Назад к плагинам`,noReadme:`У этого плагина нет README.`,version:`v{version}`},D={autoIncludeInChat:`Автоматически включать в диалог`,download:`Скачать`,homepageLabel:`Сайт`,hooksLabel:`Hooks`,install:`Установить`,licenseLabel:`Лицензия`,loadErrorDetail:`Его может не быть, или у ассистента старая сборка.`,loadErrorTitle:`Не получилось загрузить этот плагин.`,localSource:`Локальный`,remove:`Удалить`,removePluginTitle:`Удалить плагин`,skillsLabel:`Навыки`,sourceLabel:`Источник`,toolsLabel:`Инструменты`,upgrade:`Обновить`,upgradePluginTitle:`Обновить плагин`,upgradeTitle:`Обновить {fromSha} → {toSha}`},O={disabled:`Выключен`,enabled:`Включён`,installingAriaLabel:`Установка`,installPluginAriaLabel:`Установить плагин`,moreIssues:`{count, plural, one { (+# ещё)} few { (+# ещё)} many { (+# ещё)} other { (+# ещё)}}`,noDescription:`Описания нет.`,pluginTag:`Плагин`,removePluginAriaLabel:`Удалить плагин`,version:`v{version}`},k={external:`Внешний`,local:`Локальный`},A={alreadyUpToDate:`{name} уже в актуальной версии`,installed:`Установлен {name}`,pluginFallback:`плагин`,pluginFallbackCapitalized:`Плагин`,removed:`Удалён {name}`,upgraded:`{name} обновлён до {sha}`},j={all:`Всё`,ariaLabel:`Период`,month:`Месяц`,week:`Неделя`},M={channels:`Каналы`,contacts:`Контакты`,library:`Библиотека`,memory:`Память`,schedules:`Расписания`,superpowers:`Мои суперсилы`,workspace:`Рабочая область`},N={backToConversationAriaLabel:`Назад к диалогу`,backToSkillsAriaLabel:`Назад к навыкам`,filesTab:`Файлы`,fileViewModeAriaLabel:`Режим просмотра файла`,historyTab:`История`,install:`Установить`,noFilesAvailable:`Файлов нет.`,openInWorkspaceAriaLabel:`Открыть в рабочей области`,pendingAriaLabel:`Ожидание`,preview:`Предпросмотр`,remove:`Удалить`,saveFailed:`Не удалось сохранить`,selectAFile:`Выбор файла`,selectFilePrompt:`Выбор файла, чтобы посмотреть содержимое.`,source:`Код`},P={backToConversation:`Назад к диалогу`,backToSuperpowers:`Назад к моим суперсилам`,notFoundSubtitle:`Этот навык могли удалить, или ссылка устарела.`,notFoundTitle:`Навык не найден`},F={binaryFile:`Двоичный файл. Предпросмотра нет.`,noPreviewAvailable:`Для {fileName} нет предпросмотра.`},I={assistantMemory:`Память ассистента`,custom:`Свой`},L={loadError:`Не получилось загрузить историю правок.`,noChanges:`Изменений пока нет.`,noPreviewForChange:`Для этого изменения нет предпросмотра.`,truncatedNotice:`Показаны недавние изменения. Старая история периодически сжимается, поэтому она может не доходить до создания навыка.`},R={bundledSkillCannotBeRemovedAriaLabel:`Встроенный навык нельзя удалить`,bundledSkillsCannotBeRemoved:`Встроенные навыки нельзя удалить`,installingAriaLabel:`Установка`,installSkillAriaLabel:`Установить навык`,removeSkillAriaLabel:`Удалить навык`},z={subtitle:`Что-то пошло не так. Обновите страницу.`,title:`Не получилось загрузить навыки`},B={categoriesLabel:`Категории`,done:`Готово`,filterAriaLabel:`Фильтровать суперсилы`,filterLabel:{all:`Все`,assistantMemory:`Память ассистента`,available:`Доступные`,custom:`Свои`,installed:`Установленные`,plugins:`Плагины`,skills:`Навыки`},filtersTitle:`Фильтры`,searchAriaLabel:`Искать суперсилы`,searchPlaceholder:`Искать суперсилы`,sourceLabel:`Источник`,statusLabel:`Статус`,typeLabel:`Тип`},V={catalogBrowsingUnavailableNotice:`Каталог плагинов временно недоступен. Установленные плагины по-прежнему ниже.`,categoriesAriaLabel:`Категории суперсил`,dismissTipAriaLabel:`Скрыть подсказку`,emptyState:{assistantMemorySubtitle:`Здесь появятся навыки, которые ассистент напишет по прошлым диалогам.`,assistantMemoryTitle:`Нет навыков из памяти`,availableSubtitle:`Все доступные навыки и плагины уже установлены.`,availableTitle:`Устанавливать больше нечего`,categorySubtitle:`Выбор другой категории или сброс фильтра.`,categoryTitle:`В этой категории пусто`,clawhubSubtitle:`Навыков Clawhub нет. Поиск в каталоге.`,clawhubTitle:`Нет навыков Clawhub`,customSubtitle:`Создание навыка: описание в диалоге, что нужно.`,customTitle:`Нет своих навыков`,defaultSubtitle:`Проверка связи с каталогом Vellum.`,defaultTitle:`Нет доступных суперсил`,installedSubtitle:`В диалоге можно попросить ассистента найти и установить новые навыки и плагины.`,installedTitle:`Нет установленных суперсил`,pluginsSubtitle:`Каталог плагинов, которые расширят ассистента.`,pluginsTitle:`Плагины не найдены`,skillsshSubtitle:`Навыков skills.sh нет. Поиск в каталоге.`,skillsshTitle:`Нет навыков skills.sh`,skillsSubtitle:`В диалоге можно попросить ассистента найти и установить новые навыки.`,skillsTitle:`Навыки не найдены`,vellumSubtitle:`Встроенных навыков Vellum нет.`,vellumTitle:`Нет навыков Vellum`},errorStateSubtitle:`Что-то пошло не так. Обновите страницу.`,errorStateTitle:`Не получилось загрузить суперсилы`,pluginsUnavailableNotice:`Плагины временно недоступны. Навыки по-прежнему ниже.`,skillsUnavailableNotice:`Навыки временно недоступны. Плагины по-прежнему ниже.`,tipBannerText:`Описание в диалоге нужного навыка или установка плагинов, чтобы расширить ассистента.`},H={updateAvailable:`Есть обновление`,upgradePluginAriaLabel:`Обновить плагин`},U={activeCount:`{count, plural, one {# активное} few {# активных} many {# активных} other {# активных}}`,activeLabel:`{count, plural, one {активное} few {активных} many {активных} other {активных}}`,appAndDocCount:`{count, plural, one {# приложение или документ} few {# приложения и документа} many {# приложений и документов} other {# приложения и документа}}`,appCount:`{count, plural, one {# приложение} few {# приложения} many {# приложений} other {# приложения}}`,connectedCount:`{count, plural, one {# подключённый} few {# подключённых} many {# подключённых} other {# подключённых}}`,connectedLabel:`{count, plural, one {подключённый} few {подключённых} many {подключённых} other {подключённых}}`,itemCount:`{count, plural, one {# элемент} few {# элемента} many {# элементов} other {# элемента}}`,itemLabel:`{count, plural, one {элемент} few {элемента} many {элементов} other {элемента}}`,noSchedulesText:`Пока ничего не запланировано`,personCount:`{count, plural, one {# человек} few {# человека} many {# человек} other {# человека}}`,personLabel:`{count, plural, one {человек} few {человека} many {человек} other {человека}}`,skillAndPluginCount:`{count, plural, one {# навык или плагин} few {# навыка и плагина} many {# навыков и плагинов} other {# навыка и плагина}}`,skillCount:`{count, plural, one {# навык} few {# навыка} many {# навыков} other {# навыка}}`},W={failureMessage:`Не получилось загрузить плагины`},G={statusError:{title:`Не получилось проверить настройки памяти`,detail:`Не вышло прочитать статус памяти этого ассистента, так что пока нечего надёжного сообщить.`},off:{title:`Память выключена`,detail:`Ассистент ничего не сохраняет из диалогов, так что рисовать карту не из чего. Включение Памяти снова запускает запоминание.`},legacy:{title:`Переход на память v3`,detail:`У ассистента старый движок памяти. Память v3 раскладывает то, что он знает, в связанную wiki понятий, и именно эту wiki рисует карта.`},unknown:{title:`Граф памяти недоступен`,detail:`Система памяти этого ассистента сообщает слишком мало, чтобы понять почему. Обновление ассистента даст этой странице понять, чего не хватает.`},prompts:{v2:`Перенеси мою память с v2 на v3. Скорее всего это твой навык "Memory v3 Migration", но разберись, что на самом деле нужно моему корпусу, и точно следуй тому навыку, которым пользуешься.
|
|
2
|
-
|
|
3
|
-
Запусти в фоне и скажи, когда закончишь, или если что-то помешает.`,v1:`Перенеси мою память с v1 на v3. Скорее всего это два шага: твой навык "Memory v2 Migration", а затем "Memory v3 Migration". Но разберись, что на самом деле нужно моему ассистенту, и точно следуй тем навыкам, которыми пользуешься.
|
|
4
|
-
|
|
5
|
-
Запусти в фоне и скажи, когда закончишь, или если что-то помешает.`,enable:`Включи мою память снова. Хочу, чтобы ты опять запоминал вещи из наших диалогов.`}},K={applyPersonalityUpdate:e,applyRename:t,assistantNameEditor:n,categorySidebar:r,conceptDetailPanel:i,conceptGraphConstants:a,conceptGraphIntroBanner:o,conceptGraphLegend:s,conceptGraphView:c,createMemoryModal:l,getMemoryGraph:u,getMemoryGraphNode:d,identityOverview:f,identitySections:p,installSkill:m,intelligenceLayout:h,listConceptPages:g,memoryFormat:_,memoryPage:v,memoryTypes:y,memoryUpgradePrompt:b,personalityAxes:x,personalityPage:S,personalitySignature:C,personalitySliderRow:w,pluginConstants:T,pluginDetail:E,pluginDetailShared:D,pluginListRow:O,pluginOriginBadge:k,pluginToast:A,recencyLens:j,sections:M,skillDetail:N,skillDetailPage:P,skillFileContent:F,skillOriginBadge:I,skillRevisionHistory:L,skillRow:R,skillsErrorState:z,superpowersFilters:B,superpowersTab:V,updateAvailableBadge:H,useIdentitySectionStats:U,usePluginsList:W,memoryUnavailable:G};export{e as applyPersonalityUpdate,t as applyRename,n as assistantNameEditor,r as categorySidebar,i as conceptDetailPanel,a as conceptGraphConstants,o as conceptGraphIntroBanner,s as conceptGraphLegend,c as conceptGraphView,l as createMemoryModal,K as default,u as getMemoryGraph,d as getMemoryGraphNode,f as identityOverview,p as identitySections,m as installSkill,h as intelligenceLayout,g as listConceptPages,_ as memoryFormat,v as memoryPage,y as memoryTypes,G as memoryUnavailable,b as memoryUpgradePrompt,x as personalityAxes,S as personalityPage,C as personalitySignature,w as personalitySliderRow,T as pluginConstants,E as pluginDetail,D as pluginDetailShared,O as pluginListRow,k as pluginOriginBadge,A as pluginToast,j as recencyLens,M as sections,N as skillDetail,P as skillDetailPage,F as skillFileContent,I as skillOriginBadge,L as skillRevisionHistory,R as skillRow,z as skillsErrorState,B as superpowersFilters,V as superpowersTab,H as updateAvailableBadge,U as useIdentitySectionStats,W as usePluginsList};
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
var e={conversationTitle:`Actualizando la personalidad`},t={conversationTitle:`Actualizando el nombre`},n={greeting:`Hola, soy {name}`,renamingInProgressAriaLabel:`Cambio de nombre en curso`},r={all:`Todas`,skillCategoriesAriaLabel:`Categorías de habilidades`},i={askAboutThis:`Preguntar sobre esto`,askPrompt:`Cuéntame qué recuerdas sobre "{title}" y cómo se conecta con el resto de lo que sabes.`,backAriaLabel:`Atrás`,closeAriaLabel:`Cerrar`,connectionCount:`{count, plural, one {# conexión} other {# conexiones}}`,emptyContent:`Este concepto todavía no tiene contenido escrito. Existe como un enlace en el grafo, pero su página está vacía.`,loadError:`No se pudo cargar este concepto. Vuelve a intentarlo en un momento.`,readFullNote:`Leer la nota completa`,refine:`Refinar`,refinePrompt:`Quiero refinar lo que recuerdas sobre "{title}". Pregúntame qué no es correcto y lo corregiremos juntos.`,showLess:`Mostrar menos`,trailAriaLabel:`Ruta de conceptos`,updated:`Actualizado el {date}`,wiredTo:`Conectado con`},a={nodeKind:{capability:`Capacidad`,concept:`Concepto`,other:`Otro`,pending:`Pendiente`,skill:`Habilidad`}},o={description:`Cada idea que aprende, y los vínculos que traza entre ellas, aparece aquí. El mapa crece y se reorganiza mientras hablas, así que cuanto más compartas, más rico se vuelve.`,dismissAriaLabel:`Descartar`,title:`Esta es la mente de tu asistente`},s={coloredByTheme:`Coloreado por tema`,learned:`Aprendido`,link:`Enlace`,moreThemes:`{count, plural, one {+# más} other {+# más}}`},c={clearSearchAriaLabel:`Borrar búsqueda`,dragToRotateHint:`arrastra para rotar · desplaza para hacer zoom`,emptyDetail:`A medida que tu asistente aprende y conecta ideas, aparecerán aquí como un mapa vivo de su memoria.`,emptyTitle:`Todavía no hay conceptos`,enterFullscreenAriaLabel:`Entrar en pantalla completa`,exitFullscreenAriaLabel:`Salir de pantalla completa`,loadErrorDetail:`Algo salió mal al obtener la memoria de tu asistente. Vuelve a intentarlo en un momento.`,loadErrorTitle:`No se pudo cargar el grafo de memoria`,resetViewAriaLabel:`Restablecer la vista`,searchConceptsAriaLabel:`Buscar conceptos`,searchConceptsPlaceholder:`Buscar conceptos…`,truncatedNotice:`{count, plural, one {Mostrando el # concepto más conectado} other {Mostrando los # conceptos más conectados}}`,zoomInAriaLabel:`Acercar`,zoomOutAriaLabel:`Alejar`},l={cancel:`Cancelar`,contentLabel:`¿Qué debería recordar?`,contentPlaceholder:`p. ej. Prefiero resúmenes concisos con viñetas.`,create:`Crear recuerdo`,createError:`No se pudo crear el recuerdo.`,creating:`Creando…`,helperText:`Aparece en el mapa de inmediato y luego se asienta en un concepto a medida que se archiva.`,savedFoundToast:`Entendido. Te llevo hasta él.`,savedPendingToast:`Entendido. Está en tu mapa mientras lo archivo.`,saveError:`No se pudo guardar ese recuerdo.`,title:`Nuevo recuerdo`},u={failureMessage:`No se pudo cargar el grafo de memoria.`},d={failureMessage:`No se pudo cargar este concepto.`},f={cardHoverLine:{channels:`Todos los lugares donde puedes contactarme`,contacts:`Las personas que conozco y en quienes confío`,library:`Las apps y documentos que he creado para ti`,memory:`Todo lo que recuerdo`,personality:`Adelante, ajusta mi alma`,schedules:`Lo que hago en bucle`,superpowers:`Todo lo que sé hacer`,workspace:`Todos los archivos que me hacen funcionar`},defaultAssistantName:`Asistente`,memoryCount:`{count, plural, one {# recuerdo} other {# recuerdos}}`,memoryCountLabel:`{count, plural, one {recuerdo} other {recuerdos}}`,renameErrorToast:`El cambio de nombre no se completó. Vuelve a intentarlo.`,renameSuccessToast:`¡Saluda a {newName}!`,scheduleCadence:`{cadence} · próxima {nextRun}`,updateAvatarAndName:`Actualizar avatar y nombre`,viewMoreSchedules:`{count, plural, one {Ver # más…} other {Ver # más…}}`},p={channels:{description:`Donde escucho`,label:`Canales`},contacts:{description:`Personas que conozco`,label:`Contactos`},library:{description:`Mis apps y documentos`,label:`Biblioteca`},memory:{description:`Lo que recuerdo`,label:`Memoria`},personality:{description:`Ajusta cómo hablo`,label:`Personalidad`},schedules:{description:`Mis rutinas`,label:`Programaciones`},superpowers:{description:`Lo que puedo hacer`,label:`Superpoderes`},workspace:{description:`Mis archivos`,label:`Espacio de trabajo`}},m={failureMessage:`No se pudo instalar la habilidad.`},h={backToAriaLabel:`Volver a {name}`,backToTitle:`Volver a {name}`},g={failureMessage:`No se pudieron cargar las páginas de conceptos.`},_={justNow:`justo ahora`},v={createMemory:`Crear recuerdo`},y={sourceType:{direct:`Dicho directamente`,inferred:`Inferido`,observed:`Observado`,toldByOther:`Dicho por otra persona`}},b={memorySettings:`Ajustes de memoria`,tryAgain:`Intentar de nuevo`,turnMemoryOn:`Activar la memoria`,upgradeMemory:`Actualizar memoria`},x={companionCoworker:{left:`Compañero`,right:`Colega`},executeCollaborate:{left:`Independiente`,right:`Colaborativo`},genzBoomer:{left:`Gen Z`,right:`Baby Boomer`},playfulSerious:{left:`Juguetón`,right:`Serio`},politeUnfiltered:{left:`Educado`,right:`Sin filtro`}},S={back:`Atrás`,subtitle:`Mueve los diales y luego pulsa actualizar: me reescribiré para encajar.`,title:`Da forma a mi personalidad`,updateErrorToast:`La actualización de personalidad no se completó. Vuelve a intentarlo.`,updatePersonality:`Actualizar personalidad`,updateSuccessToast:`Personalidad actualizada. ¡Ve a saludar!`,updatingPersonality:`Actualizando la personalidad de {name}…`},C={ariaLabel:`Personalidad: {summary}`,axisBalanced:`{left} y {right} equilibrados`,axisLean:`{percent}% {label}`},w={rangeAriaLabel:`De {left} a {right}`},T={installError:`No se pudo instalar el plugin. Vuelve a intentarlo.`,removeConfirmMessage:`¿Quitar "{name}" de este asistente?`,removeError:`No se pudo quitar el plugin. Vuelve a intentarlo.`,riskyUpgradeConfirmLabel:`Actualizar de todos modos`,riskyUpgradeConfirmMessage:`"{name}" tiene cambios locales que se sobrescribirán con la actualización. ¿Continuar?`,toggleError:`No se pudo actualizar el plugin. Vuelve a intentarlo.`,upgradeError:`No se pudo actualizar el plugin. Vuelve a intentarlo.`},E={backToPluginsAriaLabel:`Volver a los plugins`,noReadme:`Este plugin no incluye un README.`,version:`v{version}`},D={autoIncludeInChat:`Incluir automáticamente en el chat`,download:`Descargar`,homepageLabel:`Sitio web`,hooksLabel:`Hooks`,install:`Instalar`,licenseLabel:`Licencia`,loadErrorDetail:`Puede que no exista, o que tu asistente tenga una versión anterior.`,loadErrorTitle:`No pudimos cargar este plugin.`,localSource:`Local`,remove:`Quitar`,removePluginTitle:`Quitar plugin`,skillsLabel:`Habilidades`,sourceLabel:`Fuente`,toolsLabel:`Herramientas`,upgrade:`Actualizar`,upgradePluginTitle:`Actualizar plugin`,upgradeTitle:`Actualizar {fromSha} → {toSha}`},O={disabled:`Desactivado`,enabled:`Activado`,installingAriaLabel:`Instalando`,installPluginAriaLabel:`Instalar plugin`,moreIssues:`{count, plural, one { (+# más)} other { (+# más)}}`,noDescription:`No se proporcionó descripción.`,pluginTag:`Plugin`,removePluginAriaLabel:`Quitar plugin`,version:`v{version}`},k={external:`Externo`,local:`Local`},A={alreadyUpToDate:`{name} ya está actualizado`,installed:`Se instaló {name}`,pluginFallback:`el plugin`,pluginFallbackCapitalized:`El plugin`,removed:`Se quitó {name}`,upgraded:`Se actualizó {name} a {sha}`},j={all:`Todo`,ariaLabel:`Ventana de antigüedad`,month:`Mes`,week:`Semana`},M={channels:`Canales`,contacts:`Contactos`,library:`Biblioteca`,memory:`Memoria`,schedules:`Programaciones`,superpowers:`Mis superpoderes`,workspace:`Espacio de trabajo`},N={backToConversationAriaLabel:`Volver a la conversación`,backToSkillsAriaLabel:`Volver a las habilidades`,filesTab:`Archivos`,fileViewModeAriaLabel:`Modo de vista de archivo`,historyTab:`Historial`,install:`Instalar`,noFilesAvailable:`No hay archivos disponibles.`,openInWorkspaceAriaLabel:`Abrir en el espacio de trabajo`,pendingAriaLabel:`Pendiente`,preview:`Vista previa`,remove:`Quitar`,saveFailed:`Error al guardar`,selectAFile:`Selecciona un archivo`,selectFilePrompt:`Selecciona un archivo para ver su contenido.`,source:`Código`},P={backToConversation:`Volver a la conversación`,backToSuperpowers:`Volver a Mis superpoderes`,notFoundSubtitle:`Es posible que esta habilidad se haya eliminado, o que el enlace esté obsoleto.`,notFoundTitle:`Habilidad no encontrada`},F={binaryFile:`Archivo binario. No hay vista previa disponible.`,noPreviewAvailable:`No hay vista previa disponible para {fileName}.`},I={assistantMemory:`Memoria del asistente`,custom:`Personalizada`},L={loadError:`No se pudo cargar el historial de revisiones.`,noChanges:`Todavía no se registraron cambios.`,noPreviewForChange:`No hay vista previa disponible para este cambio.`,truncatedNotice:`Se muestran los cambios recientes. El historial antiguo se compacta periódicamente, así que puede que no llegue hasta la creación de la habilidad.`},R={bundledSkillCannotBeRemovedAriaLabel:`No se puede quitar una habilidad incluida`,bundledSkillsCannotBeRemoved:`Las habilidades incluidas no se pueden quitar`,installingAriaLabel:`Instalando`,installSkillAriaLabel:`Instalar habilidad`,removeSkillAriaLabel:`Quitar habilidad`},z={subtitle:`Algo salió mal. Intenta actualizar la página.`,title:`No se pudieron cargar las habilidades`},B={categoriesLabel:`Categorías`,done:`Listo`,filterAriaLabel:`Filtrar superpoderes`,filterLabel:{all:`Todos`,assistantMemory:`Memoria del asistente`,available:`Disponibles`,custom:`Personalizadas`,installed:`Instalados`,plugins:`Plugins`,skills:`Habilidades`},filtersTitle:`Filtros`,searchAriaLabel:`Buscar superpoderes`,searchPlaceholder:`Buscar superpoderes`,sourceLabel:`Origen`,statusLabel:`Estado`,typeLabel:`Tipo`},V={catalogBrowsingUnavailableNotice:`La navegación por el catálogo de plugins no está disponible temporalmente. Los plugins instalados siguen apareciendo abajo.`,categoriesAriaLabel:`Categorías de superpoderes`,dismissTipAriaLabel:`Descartar sugerencia`,emptyState:{assistantMemorySubtitle:`Aquí aparecerán las habilidades que tu asistente crea a partir de conversaciones pasadas.`,assistantMemoryTitle:`Ninguna habilidad de la memoria`,availableSubtitle:`Todas las habilidades y plugins disponibles están instalados.`,availableTitle:`No queda nada por instalar`,categorySubtitle:`Intenta seleccionar otra categoría o borrar el filtro.`,categoryTitle:`Nada en esta categoría`,clawhubSubtitle:`No se encontraron habilidades de Clawhub. Intenta buscar en el catálogo.`,clawhubTitle:`Ninguna habilidad de Clawhub`,customSubtitle:`Crea una habilidad personalizada describiendo lo que quieres en el chat.`,customTitle:`Ninguna habilidad personalizada`,defaultSubtitle:`Comprueba tu conexión con el catálogo de Vellum.`,defaultTitle:`No hay superpoderes disponibles`,installedSubtitle:`Pídele a tu asistente en el chat que busque e instale nuevas habilidades y plugins.`,installedTitle:`No hay superpoderes instalados`,pluginsSubtitle:`Explora el catálogo para instalar plugins que amplíen tu asistente.`,pluginsTitle:`No se encontraron plugins`,skillsshSubtitle:`No se encontraron habilidades de skills.sh. Intenta buscar en el catálogo.`,skillsshTitle:`Ninguna habilidad de skills.sh`,skillsSubtitle:`Pídele a tu asistente en el chat que busque e instale nuevas habilidades.`,skillsTitle:`No se encontraron habilidades`,vellumSubtitle:`No se encontraron habilidades de Vellum incluidas.`,vellumTitle:`Ninguna habilidad de Vellum`},errorStateSubtitle:`Algo salió mal. Intenta actualizar la página.`,errorStateTitle:`No se pudieron cargar los superpoderes`,pluginsUnavailableNotice:`Los plugins no están disponibles temporalmente. Las habilidades siguen apareciendo abajo.`,skillsUnavailableNotice:`Las habilidades no están disponibles temporalmente. Los plugins siguen apareciendo abajo.`,tipBannerText:`Crea una habilidad personalizada describiendo lo que quieres en el chat, o instala plugins para ampliar tu asistente.`},H={updateAvailable:`Actualización disponible`,upgradePluginAriaLabel:`Actualizar plugin`},U={activeCount:`{count, plural, one {# activa} other {# activas}}`,activeLabel:`{count, plural, one {activa} other {activas}}`,appAndDocCount:`{count, plural, one {# app o documento} other {# apps y documentos}}`,appCount:`{count, plural, one {# app} other {# apps}}`,connectedCount:`{count, plural, one {# conectado} other {# conectados}}`,connectedLabel:`{count, plural, one {conectado} other {conectados}}`,itemCount:`{count, plural, one {# elemento} other {# elementos}}`,itemLabel:`{count, plural, one {elemento} other {elementos}}`,noSchedulesText:`Todavía no hay nada programado`,personCount:`{count, plural, one {# persona} other {# personas}}`,personLabel:`{count, plural, one {persona} other {personas}}`,skillAndPluginCount:`{count, plural, one {# habilidad o plugin} other {# habilidades y plugins}}`,skillCount:`{count, plural, one {# habilidad} other {# habilidades}}`},W={failureMessage:`No se pudieron cargar los plugins`},G={statusError:{title:`No se pudieron comprobar tus ajustes de memoria`,detail:`Algo falló al leer el estado de memoria de este asistente, así que aún no hay nada fiable que contarte.`},off:{title:`La memoria está desactivada`,detail:`Tu asistente no está guardando nada de vuestras conversaciones, así que no hay mapa que dibujar. Vuelve a activar la memoria para que empiece a recordar otra vez.`},legacy:{title:`Actualiza a memoria v3`,detail:`Tu asistente usa un motor de memoria antiguo. La memoria v3 reorganiza lo que sabe en una wiki enlazada de conceptos, y esa wiki es lo que dibuja este mapa.`},unknown:{title:`El grafo de memoria no está disponible`,detail:`El backend de memoria de este asistente no informa lo suficiente para decir por qué. Actualiza tu asistente y esta página te dirá qué necesita.`},prompts:{v2:`Migra mi memoria de v2 a v3. Lo más probable es que sea tu skill «Memory v3 Migration», pero averigua qué necesita realmente mi corpus y sigue exactamente la skill que uses.
|
|
2
|
-
|
|
3
|
-
Ejecútalo en segundo plano y avísame cuando termine, o si algo lo bloquea.`,v1:`Migra mi memoria de v1 a v3. Lo más probable es que sean dos saltos, tu skill «Memory v2 Migration» y luego tu skill «Memory v3 Migration», pero averigua qué necesita realmente mi asistente y sigue exactamente las skills que uses.
|
|
4
|
-
|
|
5
|
-
Ejecútalo en segundo plano y avísame cuando termine, o si algo lo bloquea.`,enable:`Vuelve a activar mi memoria. Me gustaría que empieces a recordar cosas de nuestras conversaciones otra vez.`}},K={applyPersonalityUpdate:e,applyRename:t,assistantNameEditor:n,categorySidebar:r,conceptDetailPanel:i,conceptGraphConstants:a,conceptGraphIntroBanner:o,conceptGraphLegend:s,conceptGraphView:c,createMemoryModal:l,getMemoryGraph:u,getMemoryGraphNode:d,identityOverview:f,identitySections:p,installSkill:m,intelligenceLayout:h,listConceptPages:g,memoryFormat:_,memoryPage:v,memoryTypes:y,memoryUpgradePrompt:b,personalityAxes:x,personalityPage:S,personalitySignature:C,personalitySliderRow:w,pluginConstants:T,pluginDetail:E,pluginDetailShared:D,pluginListRow:O,pluginOriginBadge:k,pluginToast:A,recencyLens:j,sections:M,skillDetail:N,skillDetailPage:P,skillFileContent:F,skillOriginBadge:I,skillRevisionHistory:L,skillRow:R,skillsErrorState:z,superpowersFilters:B,superpowersTab:V,updateAvailableBadge:H,useIdentitySectionStats:U,usePluginsList:W,memoryUnavailable:G};export{e as applyPersonalityUpdate,t as applyRename,n as assistantNameEditor,r as categorySidebar,i as conceptDetailPanel,a as conceptGraphConstants,o as conceptGraphIntroBanner,s as conceptGraphLegend,c as conceptGraphView,l as createMemoryModal,K as default,u as getMemoryGraph,d as getMemoryGraphNode,f as identityOverview,p as identitySections,m as installSkill,h as intelligenceLayout,g as listConceptPages,_ as memoryFormat,v as memoryPage,y as memoryTypes,G as memoryUnavailable,b as memoryUpgradePrompt,x as personalityAxes,S as personalityPage,C as personalitySignature,w as personalitySliderRow,T as pluginConstants,E as pluginDetail,D as pluginDetailShared,O as pluginListRow,k as pluginOriginBadge,A as pluginToast,j as recencyLens,M as sections,N as skillDetail,P as skillDetailPage,F as skillFileContent,I as skillOriginBadge,L as skillRevisionHistory,R as skillRow,z as skillsErrorState,B as superpowersFilters,V as superpowersTab,H as updateAvailableBadge,U as useIdentitySectionStats,W as usePluginsList};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{b as t,f as n}from"./react-DPM_L_aA.js";import{uv as r}from"./index-7XDiAJ-A.js";var i=e(t(),1);function a(){let e=n();return(0,i.useEffect)(()=>{e(r.settings.keyboardShortcuts,{replace:!0})},[e]),null}export{a as KeyboardShortcutsRedirectPage};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{O as t}from"./vendor-WUN87CSE.js";import{b as n,d as r,f as i,m as a,t as o}from"./react-DPM_L_aA.js";import{tn as s}from"./icons-CSdHOix6.js";import{$n as c,Ds as l,E as u,Gm as d,Os as f,ay as p,ft as m,uv as h,vr as g,yr as _,zs as v}from"./index-7XDiAJ-A.js";import{t as y}from"./deploy-dialogs-BQGFr3pp.js";import{t as b}from"./use-edge-swipe-back-CzESg8qG.js";import{t as x}from"./app-types-BSxLQFrc.js";var S=e(n(),1),C=o();function w({enabled:e}){return e?(0,C.jsx)(`div`,{"aria-hidden":!0,className:`absolute inset-y-0 left-0 z-10`,style:{width:20}}):null}function T(){let{t:e}=t(`library`),{appId:n}=a(),o=m(),T=i(),{pathname:E}=r(),D=f(),O=g.use.isDeploying(),k=(0,S.useRef)(null),[A,j]=(0,S.useState)(null),[M,N]=(0,S.useState)(null),[P,F]=(0,S.useState)(!1),I=(0,S.useRef)(null);(0,S.useEffect)(()=>{if(n)return I.current=n,j(null),N(null),d({path:{assistant_id:o,id:n},throwOnError:!0}).then(({data:e})=>{I.current===n&&(v(o,e.appId,e.html),j({appId:e.appId,dirName:e.dirName,name:e.name,html:e.html,origin:e.origin}))}).catch(e=>{I.current===n&&N(e instanceof Error?e.message:`Failed to open app`)}),()=>{I.current=null}},[o,n]);let L=(0,S.useCallback)(()=>{T(h.library.root)},[T]);b({containerRef:k,onBack:L,enabled:D,navKey:E,prefetchHref:h.library.root});let R=u(),z=(0,S.useCallback)(()=>{A&&R(A)},[A,R]),B=(0,S.useCallback)(async()=>{if(!(!A||P)){F(!0);try{await _(o,A.appId,A.name),p.success(e(`libraryAppCard.exported`),{description:`${A.name}.vellum`})}catch(t){p.error(e(`libraryAppCard.shareFailed`),{description:t instanceof Error?t.message:void 0})}finally{F(!1)}}},[o,A,P,e]),V=(0,S.useCallback)(()=>{A&&g.getState().deployApp(o,A.appId,A.name,A.html)},[o,A]),H=(0,S.useCallback)(e=>{l(T,{prompt:e})},[T]);return n?M?(0,C.jsxs)(`div`,{className:`flex flex-1 flex-col items-center justify-center gap-4`,children:[(0,C.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:M}),(0,C.jsx)(`button`,{type:`button`,onClick:L,className:`text-body-medium-default text-[var(--primary-base)] underline`,children:e(`libraryDetailPage.backToLibrary`)})]}):A?(0,C.jsxs)(C.Fragment,{children:[(0,C.jsxs)(`div`,{ref:k,className:`relative flex min-h-0 flex-1 flex-col`,children:[(0,C.jsx)(w,{enabled:D}),(0,C.jsx)(c,{appId:A.appId,appName:A.name,html:A.html,assistantId:o,onClose:L,...x(A.origin)?{}:{onEdit:z,onShare:B,isSharing:P,onDeploy:V,isDeploying:O},enableFullscreen:!0})]}),(0,C.jsx)(y,{assistantId:o,onStartConversation:H})]}):(0,C.jsx)(`div`,{className:`flex flex-1 items-center justify-center`,children:(0,C.jsx)(s,{className:`h-6 w-6 animate-spin text-[var(--content-tertiary)]`})}):null}export{T as LibraryDetailPage};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{Kn as t,O as n,Yn as r}from"./vendor-WUN87CSE.js";import{b as i,f as a,t as o}from"./react-DPM_L_aA.js";import{Cn as s,In as c,J as l,Yn as u,Zn as d,cn as f,dt as p,et as m,on as h,ui as g,ut as _,x as v}from"./icons-CSdHOix6.js";import{Bu as y,Cn as b,Ds as x,Km as S,Oa as C,Rs as w,S as T,Si as E,Sn as D,ad as O,ai as k,ay as A,er as j,ft as M,hy as N,in as P,pa as F,tr as I,ty as L,uv as R,vr as z,wy as B,yr as V,zu as H}from"./index-7XDiAJ-A.js";import{t as U}from"./deploy-dialogs-BQGFr3pp.js";import{t as W}from"./app-types-BSxLQFrc.js";var G=e(i(),1),K=o();function q(e){return e===1?`1 word`:`${e} words`}function J({document:e,onOpen:t}){return(0,K.jsxs)(`div`,{className:`group relative flex flex-col gap-2`,children:[(0,K.jsxs)(`button`,{type:`button`,onClick:()=>t(e.surfaceId),className:F(`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,K.jsx)(c,{size:34,className:`text-[var(--content-tertiary)]`}),(0,K.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:q(e.wordCount)})]}),(0,K.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,K.jsx)(`span`,{className:`truncate text-body-large-default text-[color:var(--content-emphasised)]`,children:e.title}),(0,K.jsx)(`span`,{className:`text-body-small-default text-[color:var(--content-tertiary)]`,children:T(new Date(e.updatedAt))})]})]})}function Y({accept:e,fileInputRef:t,isImporting:r,onImportBundle:i,onNewConversation:a}){let{t:o}=n(`library`);return(0,K.jsxs)(`div`,{className:`flex h-full flex-col items-center justify-center gap-4 px-4 py-24`,children:[(0,K.jsx)(`input`,{ref:t,type:`file`,accept:e,className:`hidden`,onChange:i}),(0,K.jsx)(`div`,{className:`flex h-16 w-16 items-center justify-center rounded-xl bg-[var(--surface-base)]`,children:(0,K.jsx)(f,{size:32,className:`text-[var(--content-tertiary)]`})}),(0,K.jsx)(`h2`,{className:`text-title-medium text-[var(--content-default)]`,children:o(`libraryEmptyState.heading`)}),(0,K.jsx)(`p`,{className:`max-w-md text-center text-body-medium-lighter text-[color:var(--content-tertiary)]`,children:o(`libraryEmptyState.body`)}),(0,K.jsxs)(`div`,{className:`flex flex-col items-center gap-3`,children:[a?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(B,{variant:`primary`,size:`regular`,onClick:a,children:o(`libraryEmptyState.newConversation`)}),(0,K.jsx)(`span`,{className:`text-body-small-default text-[color:var(--content-tertiary)]`,children:o(`libraryEmptyState.separator`)})]}):null,(0,K.jsxs)(B,{variant:`outlined`,size:`regular`,onClick:()=>t.current?.click(),disabled:r,children:[r?(0,K.jsx)(`div`,{className:`h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent`}):(0,K.jsx)(d,{size:14}),(0,K.jsx)(`span`,{className:`ml-1.5`,children:o(`libraryEmptyState.importFile`)})]})]})]})}function X({app:e,assistantId:t,isPinned:r,onOpen:i,onPin:a,onDelete:o,onDeploy:s,justImported:c,onAnimationEnd:l}){let{t:u}=n(`library`),[d,f]=(0,G.useState)(!1),m=W(e.origin),h=m?void 0:o,g=m?void 0:s,y=(0,G.useCallback)(()=>w(t,e.id),[t,e.id]),b=(0,G.useCallback)(async()=>{if(!d){f(!0);try{await V(t,e.id,e.name),A.success(u(`libraryAppCard.exported`),{description:`${e.name}.vellum`})}catch(e){A.error(u(`libraryAppCard.shareFailed`),{description:e instanceof Error?e.message:void 0})}finally{f(!1)}}},[t,e.id,e.name,d,u]),[x,S]=(0,G.useState)(!1),[C,D]=(0,G.useState)(!1),O=(0,G.useCallback)(()=>D(!0),[]),{deployedUrl:k}=I(t,e.id,{enabled:C&&g!=null}),M=(0,G.useCallback)(()=>{k!=null&&j(k)},[k]);return(0,K.jsx)(E,{trailingActions:[{id:`pin`,label:r?`Unpin`:`Pin`,icon:r?p:_,onSelect:()=>a(e)},...h?[{id:`delete`,label:`Delete`,icon:v,variant:`destructive`,onSelect:()=>h(e)}]:[]],className:`rounded-xl`,children:(0,K.jsxs)(`div`,{"data-reveal-row":``,className:F(`relative flex flex-col gap-2`,c&&`animate-[card-entrance_400ms_ease-out]`),onAnimationEnd:c?l:void 0,onPointerEnter:O,children:[(0,K.jsx)(`button`,{type:`button`,onClick:()=>i(e.id),className:F(`relative w-full cursor-pointer overflow-hidden rounded-xl`,`outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)]`),children:(0,K.jsx)(P,{name:e.name,icon:e.icon,loadHtml:y})}),(0,K.jsx)(`div`,{"data-reveal":``,className:`absolute right-2 top-2 z-20`,children:(0,K.jsx)(Z,{appName:e.name,isPinned:r,open:x,onOpenChange:e=>{e&&O(),S(e)},onPin:()=>a(e),onDelete:h?()=>h(e):void 0,onShare:m?void 0:b,onDeploy:g,deployedUrl:k,onCopyDeployedLink:M})}),(0,K.jsxs)(`button`,{type:`button`,onClick:()=>i(e.id),className:`flex cursor-pointer flex-col gap-0.5 px-0.5 text-left outline-none`,children:[(0,K.jsx)(`span`,{className:`truncate text-body-large-default text-[color:var(--content-emphasised)]`,children:e.name}),(0,K.jsx)(`span`,{className:`text-body-small-default text-[color:var(--content-tertiary)]`,children:T(new Date(e.createdAt))})]})]})})}function Z({appName:e,isPinned:t,open:r,onOpenChange:i,onPin:a,onDelete:o,onShare:c,onDeploy:l,deployedUrl:d,onCopyDeployedLink:f}){let{t:y}=n(`library`),b=d!=null&&d!==``&&f!=null,x=y(`libraryAppCard.actionsTitle`,{appName:e});return(0,K.jsxs)(L.Root,{open:r,onOpenChange:i,children:[(0,K.jsx)(L.Trigger,{asChild:!0,children:(0,K.jsx)(B,{variant:`primary`,size:`compact`,iconOnly:(0,K.jsx)(u,{}),"aria-label":x,onClick:e=>e.stopPropagation()})}),(0,K.jsxs)(L.Content,{title:x,children:[(0,K.jsx)(L.Item,{icon:t?p:_,label:y(t?`libraryAppCard.unpin`:`libraryAppCard.pin`),onSelect:a}),c?(0,K.jsx)(L.Item,{icon:g,label:y(`libraryAppCard.share`),description:y(`libraryAppCard.shareSub`),onSelect:c}):null,l&&b?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(L.Item,{icon:h,label:y(`libraryAppCard.deployed`),description:(0,K.jsx)(`span`,{className:`break-all`,children:d}),shortcut:y(`libraryAppCard.copyLink`),onSelect:()=>f?.()}),(0,K.jsx)(L.Item,{icon:m,label:y(`libraryAppCard.redeploy`),description:y(`libraryAppCard.redeploySub`),onSelect:l})]}):l?(0,K.jsx)(L.Item,{icon:s,label:y(`libraryAppCard.deploy`),description:y(`libraryAppCard.deploySub`),onSelect:l}):null,o?(0,K.jsx)(L.Item,{icon:v,label:y(`libraryAppCard.delete`),tone:`destructive`,onSelect:o}):null]})]})}function Q({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,K.jsxs)(`section`,{children:[(0,K.jsx)(`h2`,{className:`mb-4 text-body-small-emphasised text-[color:var(--content-secondary)]`,children:e}),(0,K.jsx)(`div`,{className:`grid grid-cols-[repeat(auto-fill,minmax(max(220px,calc((100%-6rem)/5)),1fr))] gap-6`,children:t.map(e=>(0,K.jsx)(X,{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 $=(e,t)=>t.updatedAt-e.updatedAt||t.createdAt-e.createdAt;function ee(e){let{pinnedAppIds:n}=k(e),{data:r=[],isLoading:i,error:a}=t({...H({path:{assistant_id:e}}),select:e=>e.apps}),{data:o=[],isLoading:s,error:c}=t({...O({path:{assistant_id:e}}),select:e=>e.documents}),l=i||s,u=a&&c?a instanceof Error?a.message:`Failed to load library`:null,[d,f]=(0,G.useState)(``),p=(0,G.useMemo)(()=>{if(!d.trim())return r;let e=d.toLowerCase();return r.filter(t=>t.name.toLowerCase().includes(e)||t.description?.toLowerCase().includes(e))},[r,d]);return{apps:r,documents:o,filteredApps:p,pinnedApps:(0,G.useMemo)(()=>p.filter(e=>n.has(e.id)).sort($),[p,n]),recentApps:(0,G.useMemo)(()=>p.filter(e=>!n.has(e.id)).sort($),[p,n]),filteredDocuments:(0,G.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 te(e,t){let{data:n,error:r,response:i}=await S({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 ne({assistantId:e,assistantName:t,onNewConversation:i,onOpenDocument:a,onOpenApp:o}){let{t:s}=n(`library`),c=r(),{togglePin:u,pinnedAppIds:f}=k(e),p=z.use.isDeploying(),{apps:m,documents:h,filteredApps:g,pinnedApps:_,recentApps:v,filteredDocuments:x,searchText:S,setSearchText:T,loading:E,error:O}=ee(e),{pendingDelete:j,isDeleting:M,requestDelete:P,confirmDelete:F,cancelDelete:I}=D(e),[L]=(0,G.useState)(()=>C()?void 0:`.vellum`),R=(0,G.useRef)(null),[V,H]=(0,G.useState)(!1),W=(0,G.useCallback)(async t=>{let n=t.target.files?.[0];if(!(!n||V)){H(!0);try{let t=await te(e,n);await c.invalidateQueries({queryKey:y({path:{assistant_id:e}})}),A.success(s(`libraryView.imported`,{name:t.name})),o(t.appId)}catch(e){A.error(e instanceof Error?e.message:s(`libraryView.importFailed`))}finally{H(!1),R.current&&(R.current.value=``)}}},[e,V,c,o,s]),q=(0,G.useCallback)(async t=>{if(p)return;let n=m.find(e=>e.id===t)?.name??`this app`;try{let r=await w(e,t);z.getState().deployApp(e,t,n,r)}catch{z.getState().deployApp(e,t,n,``)}},[e,p,m]),X=(0,G.useCallback)(e=>u(e.id),[u]);return E?(0,K.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,K.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":s(`libraryView.loadingAria`)})}):O?(0,K.jsxs)(`div`,{className:`flex h-full flex-col items-center justify-center gap-4 px-4`,children:[(0,K.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:O}),(0,K.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:s(`libraryView.retry`)})]}):m.length===0&&h.length===0?(0,K.jsx)(Y,{accept:L,fileInputRef:R,isImporting:V,onImportBundle:W,onNewConversation:i?()=>i():void 0}):(0,K.jsxs)(`div`,{className:`flex h-full flex-col overflow-hidden`,children:[(0,K.jsx)(`div`,{className:`mb-4 flex shrink-0 items-center justify-end gap-4`,children:(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(`input`,{ref:R,type:`file`,accept:L,className:`hidden`,onChange:W}),(0,K.jsxs)(B,{variant:`outlined`,size:`regular`,onClick:()=>R.current?.click(),disabled:V,children:[V?(0,K.jsx)(`div`,{className:`h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent`}):(0,K.jsx)(d,{size:14}),(0,K.jsx)(`span`,{className:`ml-1.5`,children:s(`libraryView.import`)})]})]})}),(0,K.jsx)(`div`,{className:`mb-6 shrink-0`,children:(0,K.jsx)(N,{fullWidth:!0,type:`text`,placeholder:s(`libraryView.searchPlaceholder`),value:S,onChange:e=>T(e.target.value),leftIcon:(0,K.jsx)(l,{size:16})})}),(0,K.jsx)(`div`,{className:`flex-1 overflow-y-auto`,children:g.length===0&&x.length===0?(0,K.jsxs)(`div`,{className:`flex flex-col items-center justify-center py-16`,children:[(0,K.jsx)(l,{size:32,className:`mb-4 text-[var(--content-tertiary)]`}),(0,K.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:s(`libraryView.noMatches`,{query:S})})]}):(0,K.jsxs)(`div`,{className:`flex flex-col gap-8`,children:[(0,K.jsx)(Q,{title:s(`libraryView.pinned`),apps:_,assistantId:e,pinnedAppIds:f,onOpen:o,onPin:X,onDelete:P,onDeploy:q}),(0,K.jsx)(Q,{title:s(`libraryView.recents`),apps:v,assistantId:e,pinnedAppIds:f,onOpen:o,onPin:X,onDelete:P,onDeploy:q}),x.length>0?(0,K.jsxs)(`section`,{children:[(0,K.jsx)(`h2`,{className:`mb-4 text-body-small-emphasised text-[color:var(--content-secondary)]`,children:s(`libraryView.documents`)}),(0,K.jsx)(`div`,{className:`grid grid-cols-[repeat(auto-fill,minmax(max(220px,calc((100%-6rem)/5)),1fr))] gap-6`,children:x.map(e=>(0,K.jsx)(J,{document:e,onOpen:e=>{a&&a(e)}},e.surfaceId))})]}):null]})}),(0,K.jsx)(U,{assistantId:e,assistantName:t,onStartConversation:i}),(0,K.jsx)(b,{app:j,isDeleting:M,onConfirm:F,onCancel:I})]})}function re(){let e=M(),t=a();return(0,K.jsx)(ne,{assistantId:e,onNewConversation:(0,G.useCallback)(e=>{x(t,{prompt:e})},[t]),onOpenDocument:(0,G.useCallback)(e=>{t(R.document(e))},[t]),onOpenApp:(0,G.useCallback)(e=>{t(R.library.app(e))},[t])})}export{re as LibraryPage};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{O as t}from"./vendor-WUN87CSE.js";import{b as n,g as r,t as i}from"./react-DPM_L_aA.js";import{Uf as a,fm as o,gs as s,uv as c}from"./index-7XDiAJ-A.js";import{r as l,t as u}from"./account-shell-D6h6YPdW.js";var d=e(n(),1),f=i();function p(){let{t:e}=t(`account`),[n]=r(),i=a.use.logout(),p=(0,d.useRef)(!1);return(0,d.useEffect)(()=>{if(p.current)return;p.current=!0;let e=o(n.get(`returnTo`),c.account.login),t=e.startsWith(`http`)||e===c.account.login?e:`${c.account.login}?returnTo=${encodeURIComponent(e)}`,r=!1;return i().then(()=>{r||s(t)},()=>{r||s(t)}),()=>{r=!0}},[i,n]),(0,f.jsx)(u,{children:(0,f.jsx)(l,{title:e(`logoutPage.title`)})})}export{p as LogoutPage};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./react-DPM_L_aA.js";import{t}from"./preview-error-DbAQP8oG.js";import{Cy as n,Xn as r,dn as i}from"./index-7XDiAJ-A.js";import{t as a}from"./use-truncated-blob-text-DLF_hf3O.js";var o=e(),s=512*1024,c=`Showing the first 512 KB`;function l({blob:e,filename:l}){let{text:u,truncated:d,decodeFailed:f}=a(e,s);return f?(0,o.jsx)(t,{filename:l}):u===null?(0,o.jsx)(r,{}):(0,o.jsxs)(`div`,{className:`flex min-h-0 flex-col gap-2`,children:[(0,o.jsx)(i,{content:u}),d&&(0,o.jsx)(n,{as:`p`,variant:`label-small-default`,className:`border-t border-[var(--border-element)] pt-2 text-[var(--content-tertiary)]`,children:c})]})}export{l as MarkdownPreview};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{Gn as t,Kn as n,N as r,O as i,Yn as a}from"./vendor-WUN87CSE.js";import{b as o,f as s,t as c}from"./react-DPM_L_aA.js";import{Gt as l,Ht as u,Ir as d,J as f,K as p,P as m,Pt as h,Q as g,Rr as _,et as v,i as y,n as b,st as x,t as ee,tn as S,zr as C}from"./icons-CSdHOix6.js";import{Cv as w,Cy as T,Ds as te,Fo as ne,Mo as E,Po as D,Sh as re,Sv as O,Tv as k,ay as A,dn as ie,ft as j,gy as ae,ho as M,jg as oe,ly as N,mu as P,ru as F,sy as I,uv as se,wy as L,yh as ce}from"./index-7XDiAJ-A.js";var R=e(o(),1),z={x:600,y:450},le=`memory_tab_v1`,ue=crypto.randomUUID();function B(e){typeof window>`u`||P()&&F([{type:`onboarding`,daemon_event_id:crypto.randomUUID(),recorded_at:Date.now(),screen:`memory`,session_id:ue,step_name:e,funnel_version:le}])}var V=Math.PI*(3-Math.sqrt(5)),H=7,U=2.4,W=34,de=10;function G(e){return Math.min(W,H+U*Math.sqrt(e))}function fe(e){return e===`concept`||e===`skill`||e===`capability`||e===`pending`?e:`other`}function K(e){return e===`link`||e===`learned`?e:`other`}function pe(e,t={}){let n=t.center??z,r=e.nodes,i=r.length;if(i===0)return{nodes:[],edges:[]};let a=new Map;r.forEach((e,t)=>a.set(e.id,t));let o=e.edges.filter(e=>e.source!==e.target&&a.has(e.source)&&a.has(e.target)),s=Array(i).fill(0),c=[];for(let e of o){let t=a.get(e.source),n=a.get(e.target);s[t]++,s[n]++,c.push([t,n])}let l=r.map((e,t)=>G(s[t])),u=70+26*Math.sqrt(i),d=r.map((e,t)=>{let r=(t+.5)/i,a=Math.acos(1-2*r),o=t*V,s=u*Math.cbrt(r),c=Math.sin(a);return{x:n.x+s*c*Math.cos(o),y:n.y+s*c*Math.sin(o),z:s*Math.cos(a),vx:0,vy:0,vz:0}}),f=t.iterations??Math.max(90,Math.min(340,Math.round(46e3/i))),p=.011,m=.82,h=.5,g=1,_=1-.001**(1/f);for(let e=0;e<f;e++){for(let e=0;e<i;e++){let t=d[e];for(let n=e+1;n<i;n++){let r=d[n],i=t.x-r.x,a=t.y-r.y,o=t.z-r.z,s=i*i+a*a+o*o;s<.01&&(i=(e-n)*.1+.1,a=.1,o=.05,s=i*i+a*a+o*o);let c=Math.sqrt(s),l=6400/s,u=i/c*l,f=a/c*l,p=o/c*l;t.vx+=u,t.vy+=f,t.vz+=p,r.vx-=u,r.vy-=f,r.vz-=p}}for(let[e,t]of c){let n=d[e],r=d[t],i=r.x-n.x,a=r.y-n.y,o=r.z-n.z,s=Math.sqrt(i*i+a*a+o*o)||.01,c=.05*(s-140),l=i/s*c,u=a/s*c,f=o/s*c;n.vx+=l,n.vy+=u,n.vz+=f,r.vx-=l,r.vy-=u,r.vz-=f}for(let e=0;e<i;e++){let t=d[e];t.vx+=(n.x-t.x)*p,t.vy+=(n.y-t.y)*p,t.vz+=(0-t.z)*p,t.x+=t.vx*g*h,t.y+=t.vy*g*h,t.z+=t.vz*g*h,t.vx*=m,t.vy*=m,t.vz*=m}g*=1-_}for(let e=0;e<10;e++){let e=!1;for(let t=0;t<i;t++){let n=d[t];for(let r=t+1;r<i;r++){let i=d[r],a=i.x-n.x,o=i.y-n.y,s=i.z-n.z,c=Math.sqrt(a*a+o*o+s*s),u=l[t]+l[r]+de;if(c>=u)continue;c<.01&&(a=(r-t)*.1+.1,o=.1,s=.05,c=Math.sqrt(a*a+o*o+s*s));let f=(u-c)/2,p=a/c*f,m=o/c*f,h=s/c*f;n.x-=p,n.y-=m,n.z-=h,i.x+=p,i.y+=m,i.z+=h,e=!0}}if(!e)break}return{nodes:r.map((e,t)=>{let n={id:e.id,x:d[t].x,y:d[t].y,z:d[t].z,radius:l[t],label:e.label,kind:fe(e.kind),degree:s[t]};return e.summary&&(n.summary=e.summary),e.updatedAtMs!==void 0&&(n.updatedAtMs=e.updatedAtMs),n}),edges:o.map((e,t)=>{let n={id:`${e.source}__${e.target}__${t}`,fromId:e.source,toId:e.target,kind:K(e.kind),directed:e.directed??!1};return e.description&&(n.description=e.description),n})}}var q=c();function me({title:e,detail:t,action:n}){return(0,q.jsxs)(`div`,{className:`flex h-full flex-col items-center justify-center gap-2 px-6 text-center`,children:[(0,q.jsx)(`p`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:e}),t?(0,q.jsx)(`p`,{className:`max-w-sm text-body-small-default`,style:{color:`var(--content-tertiary)`},children:t}):null,n?(0,q.jsx)(`div`,{className:`mt-2`,children:n}):null]})}function J(){return r(`getMemoryGraphNode.failureMessage`,{ns:`intelligence`})}function he(e,n){return t({queryKey:[`memory-graph-node`,e,n],enabled:!!(e&&n),queryFn:async()=>{let{data:t,error:r,response:i}=await re({path:{assistant_id:e},query:{id:n??``},throwOnError:!1});if(w(i,r,J()),!i.ok)throw new O(i.status,k(r,i,J()));return t??{found:!1}}})}var ge={concept:`#467CC8`,skill:`#DB4B77`,capability:`#0E9B8B`,pending:`#F1B21E`,other:`#8D99A5`},_e=[`#467CC8`,`#E86B40`,`#7A5AF5`,`#22B8CF`,`#3DB85E`,`#E9C91A`,`#E83F5B`,`#6ECF87`,`#F39B74`,`#F5C94E`],Y={concept:`conceptGraphConstants.nodeKind.concept`,skill:`conceptGraphConstants.nodeKind.skill`,capability:`conceptGraphConstants.nodeKind.capability`,pending:`conceptGraphConstants.nodeKind.pending`,other:`conceptGraphConstants.nodeKind.other`};function ve(e){return r(Y[e],{ns:`intelligence`})}var ye=`#F1B21E`;function be(e){if(e.length<=4)return e.map((e,t)=>({node:e,index:t}));let t=e.slice(-3).map((t,n)=>({node:t,index:e.length-3+n}));return[{node:e[0],index:0},`ellipsis`,...t]}function xe(e){return e?new Date(e).toLocaleDateString(`en-GB`,{day:`numeric`,month:`short`,year:`numeric`}):null}var X=600;function Se(e){let t=e.slice(0,X),n=t.lastIndexOf(`
|
|
2
|
-
`);return n>X/2?e.slice(0,n):t}function Ce({content:e}){let[t,n]=(0,R.useState)(!1),{t:r}=i(`intelligence`);return e.length<=X?(0,q.jsx)(ie,{content:e}):(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(ie,{content:t?e:Se(e)}),(0,q.jsx)(L,{variant:`ghost`,size:`compact`,className:`-ml-2 mt-1`,onClick:()=>n(e=>!e),rightIcon:t?(0,q.jsx)(d,{size:16,"aria-hidden":!0}):(0,q.jsx)(C,{size:16,"aria-hidden":!0}),children:r(t?`conceptDetailPanel.showLess`:`conceptDetailPanel.readFullNote`)})]})}function we({assistantId:e,node:t,trail:r,neighbors:a,onTravel:o,onCrumb:s,onClose:c,onOpenThread:l}){let{t:d}=i(`intelligence`),f=n(he(e,t.id)),p=f.data,h=xe(t.updatedAtMs),g=p?.title??t.label,v=be(r);return(0,R.useEffect)(()=>{let e=e=>{e.key===`Escape`&&!e.defaultPrevented&&(e.preventDefault(),c())};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[c]),(0,q.jsxs)(`div`,{"data-graph-panel":!0,className:`absolute inset-0 z-20 flex justify-end`,onPointerDown:e=>e.stopPropagation(),onPointerMove:e=>e.stopPropagation(),onPointerUp:e=>e.stopPropagation(),children:[(0,q.jsx)(`div`,{className:`absolute inset-0`,style:{backgroundColor:`color-mix(in srgb, var(--surface-base) 16%, transparent)`},onClick:c}),(0,q.jsxs)(`aside`,{className:`relative flex h-full min-h-0 w-full max-w-md flex-col overflow-hidden`,style:{backgroundColor:`var(--surface-lift)`,borderLeft:`1px solid var(--border-base)`},children:[r.length>1?(0,q.jsxs)(`nav`,{"aria-label":d(`conceptDetailPanel.trailAriaLabel`),className:`flex shrink-0 items-center gap-1 overflow-hidden border-b px-5 py-2 text-body-small-default`,style:{borderColor:`var(--border-base)`,color:`var(--content-tertiary)`},children:[(0,q.jsx)(`button`,{type:`button`,onClick:()=>s(r.length-2),"aria-label":d(`conceptDetailPanel.backAriaLabel`),className:`-ml-1 mr-0.5 flex shrink-0 items-center rounded p-0.5 hover:bg-[color-mix(in_srgb,var(--content-tertiary)_14%,transparent)]`,style:{color:`var(--content-tertiary)`},children:(0,q.jsx)(_,{size:16,"aria-hidden":!0})}),v.map((e,t)=>(0,q.jsxs)(`span`,{className:`flex min-w-0 items-center gap-1`,children:[t>0?(0,q.jsx)(`span`,{"aria-hidden":!0,children:`›`}):null,e===`ellipsis`?(0,q.jsx)(`span`,{"aria-hidden":!0,children:`…`}):e.index===r.length-1?(0,q.jsx)(`span`,{"aria-current":`page`,className:`max-w-[9rem] truncate`,style:{color:`var(--content-default)`},children:e.node.label}):(0,q.jsx)(`button`,{type:`button`,onClick:()=>s(e.index),className:`max-w-[8rem] truncate rounded hover:underline`,style:{color:`var(--content-tertiary)`},children:e.node.label})]},e===`ellipsis`?`ellipsis`:e.index))]}):null,(0,q.jsxs)(`header`,{className:`flex shrink-0 items-start justify-between gap-3 border-b px-5 py-4`,style:{borderColor:`var(--border-base)`},children:[(0,q.jsxs)(`div`,{className:`min-w-0`,children:[(0,q.jsx)(`h2`,{className:`truncate text-title-small`,style:{color:`var(--content-default)`},title:p?.title??t.label,children:p?.title??t.label}),h?(0,q.jsx)(`p`,{className:`mt-0.5 text-body-small-default`,style:{color:`var(--content-tertiary)`},children:d(`conceptDetailPanel.updated`,{date:h})}):null]}),(0,q.jsx)(L,{variant:`ghost`,iconOnly:(0,q.jsx)(y,{"aria-hidden":!0}),onClick:c,"aria-label":d(`conceptDetailPanel.closeAriaLabel`),tintColor:`var(--content-tertiary)`})]}),(0,q.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-5 py-4`,style:{touchAction:`pan-y`},children:[f.isLoading?(0,q.jsx)(`div`,{className:`flex justify-center py-8`,children:(0,q.jsx)(`div`,{className:`h-5 w-5 animate-spin rounded-full border-2`,style:{borderColor:`var(--border-base)`,borderTopColor:`var(--content-tertiary)`}})}):f.isError?(0,q.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:d(`conceptDetailPanel.loadError`)}):p?.found&&p.content?.trim()?(0,q.jsx)(Ce,{content:p.content},t.id):(0,q.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:d(`conceptDetailPanel.emptyContent`)}),a.length>0?(0,q.jsxs)(`section`,{className:`mt-6 border-t pt-4`,style:{borderColor:`var(--border-base)`},children:[(0,q.jsxs)(`div`,{className:`mb-2 flex items-baseline justify-between gap-2`,children:[(0,q.jsx)(`h3`,{className:`text-body-small-default uppercase tracking-wide`,style:{color:`var(--content-tertiary)`},children:d(`conceptDetailPanel.wiredTo`)}),(0,q.jsx)(`span`,{className:`text-body-small-default tabular-nums`,style:{color:`var(--content-tertiary)`},children:d(`conceptDetailPanel.connectionCount`,{count:a.length})})]}),(0,q.jsx)(`ul`,{className:`flex list-none flex-col gap-0.5`,children:a.map(e=>(0,q.jsx)(`li`,{children:(0,q.jsxs)(`button`,{type:`button`,onClick:()=>o({id:e.id,label:e.label}),className:`flex w-full items-center gap-2 rounded-lg px-2 py-1.5 text-left text-body-medium-default hover:bg-[color-mix(in_srgb,var(--content-tertiary)_12%,transparent)]`,style:{color:`var(--content-default)`},children:[(0,q.jsx)(`span`,{"aria-hidden":!0,className:`h-1.5 w-1.5 shrink-0 rounded-full`,style:{backgroundColor:e.kind===`learned`?ye:`var(--content-tertiary)`}}),(0,q.jsx)(`span`,{className:`truncate`,children:e.label})]})},e.id))})]}):null]}),l?(0,q.jsxs)(`footer`,{className:`flex shrink-0 gap-2 border-t px-5 py-3`,style:{borderColor:`var(--border-base)`},children:[(0,q.jsx)(L,{variant:`outlined`,size:`regular`,className:`flex-1`,leftIcon:(0,q.jsx)(u,{size:16,"aria-hidden":!0}),onClick:()=>l(d(`conceptDetailPanel.askPrompt`,{title:g})),children:d(`conceptDetailPanel.askAboutThis`)}),(0,q.jsx)(L,{variant:`primary`,size:`regular`,className:`flex-1`,leftIcon:(0,q.jsx)(m,{size:16,"aria-hidden":!0}),onClick:()=>l(d(`conceptDetailPanel.refinePrompt`,{title:g})),children:d(`conceptDetailPanel.refine`)})]}):null]})]})}function Te({onDismiss:e}){let{t}=i(`intelligence`);return(0,q.jsxs)(`div`,{"data-graph-control":!0,className:`pointer-events-auto absolute left-1/2 top-4 z-10 flex w-[min(30rem,calc(100%-6rem))] -translate-x-1/2 items-start gap-3 rounded-xl px-4 py-3`,style:{backgroundColor:`var(--surface-lift)`,border:`1px solid var(--border-base)`,boxShadow:`0 4px 12px rgba(0, 0, 0, 0.25)`},children:[(0,q.jsx)(`span`,{className:`mt-0.5 shrink-0`,style:{color:`var(--primary-base)`},"aria-hidden":!0,children:(0,q.jsx)(m,{size:18})}),(0,q.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,q.jsx)(`p`,{className:`text-body-medium-emphasised`,style:{color:`var(--content-default)`},children:t(`conceptGraphIntroBanner.title`)}),(0,q.jsx)(`p`,{className:`mt-0.5 text-body-small-default`,style:{color:`var(--content-tertiary)`},children:t(`conceptGraphIntroBanner.description`)})]}),(0,q.jsx)(L,{variant:`ghost`,iconOnly:(0,q.jsx)(y,{"aria-hidden":!0}),onClick:e,"aria-label":t(`conceptGraphIntroBanner.dismissAriaLabel`),tintColor:`var(--content-tertiary)`})]})}var Ee=8;function De({nodeKinds:e,coloredByTheme:t,themes:n,hasLinks:r,hasLearned:a,onToggleLink:o,onToggleLearned:s,linkActive:c,learnedActive:l}){let{t:u}=i(`intelligence`);return(0,q.jsxs)(`div`,{"data-graph-control":!0,className:`pointer-events-none absolute bottom-4 left-4 flex flex-col gap-1.5 rounded-lg px-3 py-2`,style:{backgroundColor:`color-mix(in srgb, var(--surface-base) 78%, transparent)`,border:`1px solid var(--border-base)`},children:[e.map(e=>(0,q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,q.jsx)(`span`,{className:`inline-block h-2.5 w-2.5 rounded-full`,style:{backgroundColor:ge[e]}}),(0,q.jsx)(`span`,{className:`text-[11px]`,style:{color:`var(--content-tertiary)`},children:ve(e)})]},e)),t&&(n&&n.length>0?(0,q.jsxs)(q.Fragment,{children:[n.slice(0,Ee).map((e,t)=>(0,q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,q.jsx)(`span`,{className:`inline-block h-2.5 w-2.5 shrink-0 rounded-full`,style:{backgroundColor:e.color}}),(0,q.jsx)(`span`,{className:`max-w-[9rem] truncate text-[11px]`,style:{color:`var(--content-tertiary)`},title:e.concepts?.join(` · `)??e.name,children:e.name})]},t)),n.length>Ee&&(0,q.jsx)(`span`,{className:`text-[11px]`,style:{color:`var(--content-tertiary)`},children:u(`conceptGraphLegend.moreThemes`,{count:n.length-Ee})})]}):(0,q.jsx)(`span`,{className:`text-[11px]`,style:{color:`var(--content-tertiary)`},children:u(`conceptGraphLegend.coloredByTheme`)})),(e.length>0||t)&&(r||a)&&(0,q.jsx)(`div`,{className:`mt-0.5 border-t pt-1.5`,style:{borderColor:`var(--border-base)`}}),r&&(0,q.jsx)(Oe,{swatchStyle:{borderTop:`2px solid var(--content-tertiary)`},label:u(`conceptGraphLegend.link`),onToggle:o,active:c}),a&&(0,q.jsx)(Oe,{swatchStyle:{borderTop:`2px dashed #F1B21E`},label:u(`conceptGraphLegend.learned`),onToggle:s,active:l})]})}function Oe({swatchStyle:e,label:t,onToggle:n,active:r}){let i=(0,q.jsx)(`span`,{className:`inline-block h-0 w-4`,style:e}),a=(0,q.jsx)(`span`,{className:`text-[11px]`,style:{color:`var(--content-tertiary)`},children:t});return n?(0,q.jsxs)(`button`,{type:`button`,onClick:n,"aria-pressed":r,className:`pointer-events-auto flex cursor-pointer items-center gap-2 border-0 bg-transparent p-0 transition-opacity`,style:{opacity:r===!1?.4:1},children:[i,a]}):(0,q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[i,a]})}var Z=8;function ke(e,t){let n=e.length;if(n===0)return new Map;let r=new Map;e.forEach((e,t)=>r.set(e.id,t));let i=e.map(()=>[]);for(let e of t){let t=r.get(e.fromId),n=r.get(e.toId);t===void 0||n===void 0||t===n||(i[t].push(n),i[n].push(t))}let a=e.map((e,t)=>t);for(let e=0;e<Z;e++)for(let e=0;e<n;e++){let t=i[e];if(t.length===0)continue;let n=new Map;for(let e of t)n.set(a[e],(n.get(a[e])??0)+1);let r=a[e],o=-1;for(let[e,t]of n)(t>o||t===o&&e<r)&&(r=e,o=t);a[e]=r}let o=new Map,s=new Map;return e.forEach((e,t)=>{let n=a[t],r=o.get(n);r===void 0&&(r=o.size,o.set(n,r)),s.set(e.id,r)}),s}function Q(){return r(`memoryUnavailable.prompts.v2`,{ns:`intelligence`})}function Ae(){return r(`memoryUnavailable.prompts.v1`,{ns:`intelligence`})}function je(){return r(`memoryUnavailable.prompts.enable`,{ns:`intelligence`})}function Me(){return{title:r(`memoryUnavailable.statusError.title`,{ns:`intelligence`}),detail:r(`memoryUnavailable.statusError.detail`,{ns:`intelligence`}),action:`retry`}}function Ne(e){return e===`off`?{title:r(`memoryUnavailable.off.title`,{ns:`intelligence`}),detail:r(`memoryUnavailable.off.detail`,{ns:`intelligence`}),action:`settings`,prompt:je()}:e===`v1`||e===`v2`?{title:r(`memoryUnavailable.legacy.title`,{ns:`intelligence`}),detail:r(`memoryUnavailable.legacy.detail`,{ns:`intelligence`}),action:`upgrade`,prompt:e===`v1`?Ae():Q()}:{title:r(`memoryUnavailable.unknown.title`,{ns:`intelligence`}),detail:r(`memoryUnavailable.unknown.detail`,{ns:`intelligence`}),action:`none`}}function Pe({assistantId:e,onOpenThread:t}){let{t:r}=i(`intelligence`),o=s(),c=a(),l=n(D(e));(0,R.useEffect)(()=>{E(c,e)},[c,e]);let u=M(`memoryOptOut`),d=oe.use.settingsDeveloperNav(),f=u&&d===!0;if(l.isLoading)return null;let h=l.data?.kind===`ready`?l.data.tier:void 0,g=l.isError?Me():Ne(h),_=g.prompt,y=null;return g.action===`upgrade`&&t&&_?y=(0,q.jsx)(L,{variant:`primary`,size:`compact`,leftIcon:(0,q.jsx)(m,{}),onClick:()=>{B(`upgrade_v3_clicked`),t(_)},children:r(`memoryUpgradePrompt.upgradeMemory`)}):g.action===`retry`?y=(0,q.jsx)(L,{variant:`outlined`,size:`compact`,leftIcon:(0,q.jsx)(v,{}),onClick:()=>{l.refetch()},children:r(`memoryUpgradePrompt.tryAgain`)}):g.action===`settings`&&f?y=(0,q.jsx)(L,{variant:`outlined`,size:`compact`,leftIcon:(0,q.jsx)(p,{}),onClick:()=>o(`${se.settings.developer}?tab=memory`),children:r(`memoryUpgradePrompt.memorySettings`)}):g.action===`settings`&&t&&_&&(y=(0,q.jsx)(L,{variant:`primary`,size:`compact`,leftIcon:(0,q.jsx)(m,{}),onClick:()=>{B(`enable_memory_clicked`),t(_)},children:r(`memoryUpgradePrompt.turnMemoryOn`)})),(0,q.jsx)(me,{title:g.title,detail:g.detail,action:y})}function Fe({value:e,onChange:t}){let{t:n}=i(`intelligence`),r=[{value:`all`,label:n(`recencyLens.all`)},{value:`month`,label:n(`recencyLens.month`)},{value:`week`,label:n(`recencyLens.week`)}];return(0,q.jsx)(N,{ariaLabel:n(`recencyLens.ariaLabel`),items:r,value:e,onChange:t,className:`!w-auto [&>*]:!flex-none`})}var Ie=`vellum:memoryGraph:introDismissed:`;function Le(e){return`${Ie}${e}`}function $(e){if(!e)return!0;try{return window.localStorage.getItem(Le(e))===`1`}catch{return!0}}function Re(e){let[t,n]=(0,R.useState)(()=>$(e));return(0,R.useEffect)(()=>{n($(e))},[e]),[t,(0,R.useCallback)(()=>{n(!0);try{window.localStorage.setItem(Le(e),`1`)}catch{}},[e])]}var ze=[`concept`,`skill`,`capability`,`pending`,`other`],Be=.13,Ve=2600,He=.006,Ue=1.15,We=3,Ge=.32,Ke=.45,qe=3,Je=4,Ye=1440*60*1e3,Xe=14*Ye,Ze=12,Qe=2*Ye,$e=80,et=340,tt=.12,nt=.05,rt=.03,it=12,at=2600;function ot(e){let t=getComputedStyle(e);return{content:t.getPropertyValue(`--content-default`).trim()||`#e5e7eb`,tertiary:t.getPropertyValue(`--content-tertiary`).trim()||`#8792a0`}}function st(e){return e.kind===`learned`?`Learned association`:e.description??`Linked concepts`}function ct(e,t,n){return t==null?!1:e==null||n-e>t}function lt(e,t){let n=t?e.get(t):void 0;return e=>t!=null&&(e===t||(n?.has(e)??!1))}function ut({assistantId:e,className:t,isFullscreen:r,onToggleFullscreen:a,onOpenThread:o,headerAction:s,handleRef:c}){let{t:u}=i(`intelligence`),d=(0,R.useRef)(null),p=(0,R.useRef)(null),m=n(ne(e)),_=m.data?.kind===`ready`?m.data.graph:null,v=(0,R.useMemo)(()=>_?pe(_):{nodes:[],edges:[]},[_]),x=m.data?.kind===`ready`&&v.nodes.length>0,S=(0,R.useMemo)(()=>ke(v.nodes,v.edges),[v.nodes,v.edges]),C=(0,R.useMemo)(()=>{let e=new Map;for(let t of v.nodes){let n=S.get(t.id);if(n==null||t.degree===0)continue;let r=e.get(n);r?r.push(t):e.set(n,[t])}return[...e.entries()].map(([e,t])=>{let n=[...t].sort((e,t)=>t.degree-e.degree||(e.id<t.id?-1:1)).slice(0,3);return{hubId:n[0].id,color:_e[e%_e.length],name:n[0].label,concepts:n.map(e=>e.label),size:t.length}}).sort((e,t)=>t.size-e.size)},[S,v.nodes]),w=(0,R.useMemo)(()=>new Set(C.map(e=>e.hubId)),[C]),T=(0,R.useMemo)(()=>{let e=new Map,t=(t,n)=>{let r=e.get(t);r||(r=new Set,e.set(t,r)),r.add(n)};for(let e of v.edges)t(e.fromId,e.toId),t(e.toId,e.fromId);return e},[v.edges]),te=(0,R.useMemo)(()=>{if(v.nodes.length===0)return 1;let e=v.nodes.map(e=>{let t=e.x-z.x,n=e.y-z.y;return Math.sqrt(t*t+n*n+e.z*e.z)+e.radius}).sort((e,t)=>e-t),t=Math.min(e.length-1,Math.floor(e.length*.92));return Math.max(1,e[t])},[v.nodes]),E=(0,R.useRef)({yaw:.5,pitch:.32,zoom:1,hoveredId:null,dragging:!1,moved:!1,lastX:0,lastY:0,lastInteractAt:-1/0,dirty:!0}),D=(0,R.useRef)([]),re=(0,R.useRef)([]),O=(0,R.useRef)({content:`#e5e7eb`,tertiary:`#8792a0`}),k=(0,R.useRef)(null),A=(0,R.useRef)(!1),ie=(0,R.useRef)(null),j=(0,R.useRef)(null),[ae,M]=(0,R.useState)(null),[oe,N]=(0,R.useState)(null),[P,F]=(0,R.useState)([]),I=P.at(-1)??null,se=(0,R.useCallback)(e=>{B(`node_opened`),F(t=>[...t,e])},[]),ce=(0,R.useRef)(null);(0,R.useEffect)(()=>{ce.current=I?.id??null,E.current.dirty=!0},[I?.id]);let[le,ue]=Re(e),[V,H]=(0,R.useState)(``),[U,W]=(0,R.useState)(!1),de=(0,R.useRef)(null);(0,R.useEffect)(()=>{U&&de.current?.focus()},[U]);let G=(0,R.useRef)(!1),fe=V.trim().toLowerCase(),K=(0,R.useMemo)(()=>{if(!fe)return null;let e=new Set;for(let t of v.nodes)t.label.toLowerCase().includes(fe)&&e.add(t.id);return e},[fe,v.nodes]),J=(0,R.useRef)({active:!1,matches:null});(0,R.useEffect)(()=>{J.current={active:!!K,matches:K},E.current.dirty=!0},[K]),(0,R.useEffect)(()=>{V.trim()||(G.current=!1)},[V]);let he=(0,R.useMemo)(()=>!K||K.size===0?[]:v.nodes.filter(e=>K.has(e.id)).sort((e,t)=>t.degree-e.degree).slice(0,8),[K,v.nodes]),[Y,ve]=(0,R.useState)(`all`),be=(0,R.useRef)(null);(0,R.useEffect)(()=>{be.current=Y===`week`?7*Ye:Y===`month`?30*Ye:null,E.current.dirty=!0},[Y]);let xe=(0,R.useMemo)(()=>v.nodes.some(e=>e.updatedAtMs!=null),[v.nodes]);(0,R.useEffect)(()=>{!xe&&Y!==`all`&&ve(`all`)},[xe,Y]);let[X,Se]=(0,R.useState)({link:!0,learned:!0}),Ce=(0,R.useRef)(X);(0,R.useEffect)(()=>{Ce.current=X,E.current.dirty=!0},[X]),(0,R.useEffect)(()=>{H(``),ve(`all`),Se({link:!0,learned:!0}),F([]),G.current=!1},[e]);let Ee=(0,R.useCallback)(()=>{let e=E.current;e.yaw=.5,e.pitch=.32,e.zoom=1,e.lastInteractAt=-1/0,e.dirty=!0,M(null)},[]),Oe=(0,R.useCallback)(e=>{let t=E.current;t.zoom=Math.max(Ke,Math.min(qe,t.zoom*e)),t.lastInteractAt=performance.now(),t.dirty=!0},[]),Z=(0,R.useCallback)(e=>{k.current=e,E.current.lastInteractAt=performance.now(),E.current.dirty=!0},[]),Q=(0,R.useCallback)(e=>{se(e),Z(e.id)},[se,Z]),Ae=(0,R.useCallback)(e=>{ie.current={id:e,start:performance.now()},Z(e),window.setTimeout(()=>{E.current.dirty=!0},at+60)},[Z]),je=(0,R.useCallback)(e=>{v.nodes.some(t=>t.id===e)?Ae(e):j.current=e},[v.nodes,Ae]);(0,R.useEffect)(()=>{let e=j.current;e&&v.nodes.some(t=>t.id===e)&&(j.current=null,Ae(e))},[v.nodes,Ae]),(0,R.useImperativeHandle)(c,()=>({focusNode:je}),[je]);let Me=(0,R.useCallback)(()=>{F([]),H(``),M(null),k.current=null,A.current=!0},[]),Ne=(0,R.useCallback)(e=>{H(``);let t=P.slice(0,e+1);F(t);let n=t.at(-1);n?Z(n.id):M(null)},[P,Z]),Ie=(0,R.useCallback)(e=>{H(``),Q(e)},[Q]),Le=(0,R.useMemo)(()=>{let e=I?.id;if(!e)return[];let t=T.get(e);if(!t||t.size===0)return[];let n=new Map(v.nodes.map(e=>[e.id,e.label])),r=new Map;for(let t of v.edges)t.fromId===e?r.set(t.toId,t.kind):t.toId===e&&r.set(t.fromId,t.kind);let i=[];for(let e of t){let t=n.get(e);t!=null&&i.push({id:e,label:t,kind:r.get(e)})}return i.sort((e,t)=>e.label.localeCompare(t.label)),i},[I?.id,T,v.nodes,v.edges]);(0,R.useEffect)(()=>{if(!x)return;let e=p.current,t=d.current;if(!e||!t)return;let n=e.getContext(`2d`);if(!n)return;let r=v.nodes,i=v.edges,a=S,o=w,s=T,c=new Set(r.map(e=>e.id)),l=te,u=window.matchMedia(`(prefers-reduced-motion: reduce)`).matches;O.current=ot(t);let f=Math.min(window.devicePixelRatio||1,2),m=0,h=0,g=()=>{let n=t.getBoundingClientRect();m=n.width,h=n.height,f=Math.min(window.devicePixelRatio||1,2),e.width=Math.max(1,Math.round(m*f)),e.height=Math.max(1,Math.round(h*f)),e.style.width=`${m}px`,e.style.height=`${h}px`,O.current=ot(t),E.current.dirty=!0};g();let _=new ResizeObserver(g);_.observe(t);let y=new MutationObserver(()=>{O.current=ot(t),E.current.dirty=!0});y.observe(document.documentElement,{attributes:!0,attributeFilter:[`data-theme`,`class`,`style`]});let b=0,ee=0,C=e=>{let t=ee?Math.min(.05,(e-ee)/1e3):0;ee=e;let d=E.current,p=O.current,g=Date.now(),_=k.current;if(!d.dragging&&e-d.lastInteractAt>Ve&&!u&&!_&&(d.yaw+=Be*t),_){let e=r.find(e=>e.id===_);if(!e)k.current=null;else{let t=e.x-z.x,n=e.y-z.y,r=e.z,i=-Math.atan2(t,r),a=Math.hypot(t,r),o=Math.max(-Ue,Math.min(Ue,Math.atan2(n,a))),s=Math.min(qe,1.6),c=u?1:.15,l=i-d.yaw;l=Math.atan2(Math.sin(l),Math.cos(l)),d.yaw+=l*c,d.pitch+=(o-d.pitch)*c,d.zoom+=(s-d.zoom)*c,d.dirty=!0,Math.abs(l)<.01&&Math.abs(o-d.pitch)<.01&&Math.abs(s-d.zoom)<.02&&(k.current=null)}}if(A.current&&!d.dragging){let e=u?1:.15;d.pitch+=(.32-d.pitch)*e,d.zoom+=(1-d.zoom)*e,d.dirty=!0,Math.abs(.32-d.pitch)<.01&&Math.abs(1-d.zoom)<.02&&(A.current=!1)}if(u&&!d.dirty){b=requestAnimationFrame(C);return}d.dirty=!1;let v=Math.cos(d.yaw),y=Math.sin(d.yaw),x=Math.cos(d.pitch),S=Math.sin(d.pitch),w=We*l,T=Math.min(m,h)*.88/(2*l)*d.zoom,te=m/2,ne=h/2;n.setTransform(f,0,0,f,0,0),n.clearRect(0,0,m,h);let j=d.hoveredId,ae=j?s.get(j):void 0,M=e=>!j||e===j||(ae?.has(e)??!1),oe=J.current,N=oe.active,P=e=>!N||(oe.matches?.has(e)??!1),F=be.current,I=e=>ct(e.updatedAtMs,F,g),se=Ce.current,L=ce.current,R=L!=null&&c.has(L),le=lt(s,R?L:null),ue=r.length<=$e?1:Math.max(tt,1-(r.length-$e)/(et-$e)*(1-tt)),B=Array(r.length);for(let e=0;e<r.length;e++){let t=r[e],n=t.x-z.x,i=t.y-z.y,a=t.z,o=n*v+a*y,s=-n*y+a*v,c=i*x-s*S,u=i*S+s*x,d=w/(w-u);B[e]={node:t,sx:te+o*T*d,sy:ne+c*T*d,sr:Math.max(1.2,t.radius*T*d),depth:Math.max(0,Math.min(1,(u+l)/(2*l)))}}let V=B.map((e,t)=>t).sort((e,t)=>B[e].depth-B[t].depth),H=new Map;for(let e of B)H.set(e.node.id,e);let U=[];n.lineCap=`round`;for(let e of i){let t=H.get(e.fromId),r=H.get(e.toId);if(!t||!r)continue;let i=e.kind===`learned`,a=L!=null&&(e.fromId===L||e.toId===L);if(!a&&(i?!se.learned:!se.link))continue;let o=N&&(!P(e.fromId)||!P(e.toId))||!a&&(I(t.node)||I(r.node)),s=j!=null&&(e.fromId===j||e.toId===j),c=(t.depth+r.depth)/2;!o&&(!R||a)&&U.push({ax:t.sx,ay:t.sy,bx:r.sx,by:r.sy,kind:e.kind,description:e.description,depth:c});let l=(i?.34:.28)*(.4+.6*c),u=i?l*ue:l,d;d=o?.03:R?a?.9:rt:j==null?u:s?.9:M(e.fromId)&&M(e.toId)?l:.05,n.globalAlpha=d,n.strokeStyle=i?ye:p.tertiary,n.lineWidth=(s||R&&a?2:1)*(.6+.6*c),n.setLineDash(i?[4,4]:[]),n.beginPath(),n.moveTo(t.sx,t.sy),n.lineTo(r.sx,r.sy),n.stroke()}n.setLineDash([]);for(let t of V){let r=B[t],i=r.node,o=i.kind===`concept`?_e[(a.get(i.id)??0)%_e.length]:ge[i.kind],s=N&&!P(i.id),c=le(i.id),l=s||I(i)&&!c,d=R?c&&!l:!l&&M(i.id),f=i.id===j,p=Ge+(1-Ge)*r.depth,m=R&&!c?p*nt:l?p*.08:d?p:p*.18,h=(f?16:i.degree>=Je?8:4)*r.depth,_=i.updatedAtMs;if(_){let n=g-_,i=Math.max(0,1-n/Xe);if(i>0){let a=i*Ze;!u&&n<Qe&&(a*=.55+.45*Math.sin(e/420+t*1.7)),h+=a*r.depth}}n.shadowColor=o,n.shadowBlur=d?h:0;let v=i.kind===`pending`;n.globalAlpha=m*(v?.3:.55),n.fillStyle=o,n.beginPath(),n.arc(r.sx,r.sy,r.sr,0,Math.PI*2),n.fill(),n.shadowBlur=0,n.globalAlpha=m,n.lineWidth=f?2.5:1.4,n.strokeStyle=o,n.setLineDash(v?[3,3]:[]),n.stroke(),n.setLineDash([]);let y=ie.current;if(y&&y.id===i.id){let t=e-y.start;if(t>at)ie.current=null;else if(u)n.globalAlpha=.7,n.lineWidth=1.5,n.beginPath(),n.arc(r.sx,r.sy,r.sr+7,0,Math.PI*2),n.stroke();else for(let e=0;e<3;e++){let i=(t-e*320)/1100;i<=0||i>=1||(n.globalAlpha=(1-i)*.8,n.lineWidth=1.5,n.beginPath(),n.arc(r.sx,r.sy,r.sr+i*46*r.depth,0,Math.PI*2),n.stroke())}}}n.shadowBlur=0,n.textAlign=`center`,n.textBaseline=`top`,n.font=`11px ui-sans-serif, system-ui, sans-serif`;for(let e of V){let t=B[e],r=t.node,i=le(r.id);if(N&&!P(r.id)||I(r)&&!i||!(R?i:N?t.depth>.3:j==null?o.has(r.id)||r.degree>=Je&&t.depth>.55:M(r.id)))continue;n.globalAlpha=(r.id===j||r.id===L?1:.85)*(.4+.6*t.depth),n.fillStyle=p.content;let a=r.label.length>22?`${r.label.slice(0,21)}…`:r.label;n.fillText(a,t.sx,t.sy+t.sr+3)}n.globalAlpha=1,D.current=B.map(e=>({id:e.node.id,sx:e.sx,sy:e.sy,sr:e.sr,depth:e.depth,updatedAtMs:e.node.updatedAtMs})),re.current=U,b=requestAnimationFrame(C)};return b=requestAnimationFrame(C),()=>{cancelAnimationFrame(b),_.disconnect(),y.disconnect()}},[x,v,T,te,S,w]);let $=(0,R.useCallback)((e,t)=>{let n=J.current,r=be.current,i=lt(T,ce.current),a=Date.now(),o=null,s=-1;for(let c of D.current){if(n.active&&!(n.matches?.has(c.id)??!1)||!i(c.id)&&ct(c.updatedAtMs,r,a))continue;let l=e-c.sx,u=t-c.sy;l*l+u*u<=(c.sr+5)*(c.sr+5)&&c.depth>s&&(o=c.id,s=c.depth)}return o},[T]),ut=(0,R.useCallback)((e,t)=>{let n=null,r=1/0,i=-1;for(let a of re.current){let o=a.bx-a.ax,s=a.by-a.ay,c=o*o+s*s,l=0;c>0&&(l=((e-a.ax)*o+(t-a.ay)*s)/c,l=Math.max(0,Math.min(1,l)));let u=e-(a.ax+l*o),d=t-(a.ay+l*s),f=Math.sqrt(u*u+d*d);f>5||(f<r||f===r&&a.depth>i)&&(n={kind:a.kind,description:a.description},r=f,i=a.depth)}return n},[]),dt=e=>{let t=d.current.getBoundingClientRect();return{x:e.clientX-t.left,y:e.clientY-t.top}},ft=(0,R.useCallback)(e=>{if(e.button!==0||e.target.closest(`[data-graph-control]`))return;let t=E.current;k.current=null,t.dragging=!0,t.moved=!1,t.lastX=e.clientX,t.lastY=e.clientY,t.lastInteractAt=performance.now(),e.currentTarget.setPointerCapture(e.pointerId)},[]),pt=(0,R.useCallback)(e=>{let t=E.current;if(t.dragging){let n=e.clientX-t.lastX,r=e.clientY-t.lastY;(Math.abs(n)>2||Math.abs(r)>2)&&(t.moved=!0),t.yaw+=n*He,t.pitch=Math.max(-Ue,Math.min(Ue,t.pitch+r*He)),t.lastX=e.clientX,t.lastY=e.clientY,t.lastInteractAt=performance.now(),t.dirty=!0;return}let{x:n,y:r}=dt(e),i=$(n,r);if(i!==t.hoveredId&&(t.hoveredId=i,t.dirty=!0),i)N(null);else{let e=ut(n,r);N(e?st(e):null)}},[$,ut]),mt=(0,R.useCallback)(e=>{let t=E.current;if(!t.dragging)return;t.dragging=!1,t.lastInteractAt=performance.now(),t.dirty=!0;let n=e.currentTarget;if(n.hasPointerCapture(e.pointerId)&&n.releasePointerCapture(e.pointerId),!t.moved){let{x:t,y:n}=dt(e),r=$(t,n);if(r){let e=v.nodes.find(e=>e.id===r);e&&Q({id:e.id,label:e.label,updatedAtMs:e.updatedAtMs})}else M(null)}},[$,v.nodes,Q]),ht=(0,R.useCallback)(()=>{let e=E.current;N(null),!(e.dragging||e.hoveredId==null)&&(e.hoveredId=null,e.dirty=!0,M(null))},[]);(0,R.useEffect)(()=>{let e=d.current;if(!e||!x)return;let t=e=>{if(e.target.closest?.(`[data-graph-panel]`))return;e.preventDefault();let t=E.current;t.zoom=Math.max(Ke,Math.min(qe,t.zoom*(1-e.deltaY/500))),t.lastInteractAt=performance.now(),t.dirty=!0};return e.addEventListener(`wheel`,t,{passive:!1}),()=>e.removeEventListener(`wheel`,t)},[x]);let gt=(0,R.useMemo)(()=>{let e=new Set(v.nodes.map(e=>e.kind));return ze.filter(t=>e.has(t))},[v.nodes]),_t=(0,R.useMemo)(()=>v.edges.some(e=>e.kind===`learned`),[v.edges]),vt=(0,R.useMemo)(()=>v.edges.some(e=>e.kind!==`learned`),[v.edges]);(0,R.useEffect)(()=>{!(vt&&_t)&&(!X.link||!X.learned)&&Se({link:!0,learned:!0})},[vt,_t,X]);let yt=m.data?.kind===`ready`&&!le,bt=v.nodes.length,xt=v.edges.length,St=new Set(S.values()).size,Ct=(e,t)=>`${e} ${t}${e===1?``:`s`}`,wt=yt?null:ae??oe,Tt=x&&(v.nodes.length>it||!!V),Et=!!(a||s)||x,Dt;return Dt=m.isLoading?(0,q.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,q.jsx)(`div`,{className:`h-6 w-6 animate-spin rounded-full border-2`,style:{borderColor:`var(--border-base)`,borderTopColor:`var(--content-tertiary)`}})}):m.isError?(0,q.jsx)(me,{title:u(`conceptGraphView.loadErrorTitle`),detail:u(`conceptGraphView.loadErrorDetail`)}):m.data?.kind===`unsupported`?(0,q.jsx)(Pe,{assistantId:e,onOpenThread:o}):x?(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`canvas`,{ref:p,className:`absolute inset-0 h-full w-full`}),(v.nodes.length>it||Y!==`all`)&&xe?(0,q.jsx)(`div`,{"data-graph-control":!0,className:`absolute left-4 top-4 z-10`,children:(0,q.jsx)(Fe,{value:Y,onChange:ve})}):null,(0,q.jsx)(De,{nodeKinds:gt.filter(e=>e!==`concept`),coloredByTheme:gt.includes(`concept`),themes:C,hasLinks:vt,hasLearned:_t,...vt&&_t?{onToggleLink:()=>Se(e=>({...e,link:!e.link})),onToggleLearned:()=>Se(e=>({...e,learned:!e.learned})),linkActive:X.link,learnedActive:X.learned}:{}}),(0,q.jsx)(`div`,{className:`pointer-events-none absolute bottom-4 right-4 text-[11px]`,style:{color:`var(--content-tertiary)`},children:u(`conceptGraphView.dragToRotateHint`)}),_?.truncated?(0,q.jsx)(`div`,{className:`pointer-events-none absolute bottom-4 left-1/2 -translate-x-1/2 rounded-full px-3 py-1 text-[11px]`,style:{backgroundColor:`color-mix(in srgb, var(--surface-base) 82%, transparent)`,border:`1px solid var(--border-base)`,color:`var(--content-tertiary)`},children:u(`conceptGraphView.truncatedNotice`,{count:v.nodes.length})}):null,(0,q.jsxs)(`div`,{"data-graph-control":!0,className:`absolute right-4 top-4 flex flex-col gap-1`,children:[(0,q.jsx)(L,{variant:`ghost`,iconOnly:(0,q.jsx)(ee,{}),onClick:()=>Oe(1.25),"aria-label":u(`conceptGraphView.zoomInAriaLabel`),tooltip:u(`conceptGraphView.zoomInAriaLabel`)}),(0,q.jsx)(L,{variant:`ghost`,iconOnly:(0,q.jsx)(b,{}),onClick:()=>Oe(.8),"aria-label":u(`conceptGraphView.zoomOutAriaLabel`),tooltip:u(`conceptGraphView.zoomOutAriaLabel`)}),(0,q.jsx)(L,{variant:`ghost`,iconOnly:(0,q.jsx)(g,{}),onClick:Ee,"aria-label":u(`conceptGraphView.resetViewAriaLabel`),tooltip:u(`conceptGraphView.resetViewAriaLabel`)})]})]}):(0,q.jsx)(me,{title:u(`conceptGraphView.emptyTitle`),detail:u(`conceptGraphView.emptyDetail`)}),(0,q.jsxs)(`div`,{className:`@container flex select-none flex-col overflow-hidden rounded-xl ${t??``}`,style:{backgroundColor:`var(--surface-base)`},children:[Et?(0,q.jsxs)(`div`,{className:`flex h-12 flex-none items-center gap-2 px-3`,style:{borderBottom:`1px solid var(--border-base)`},children:[a?(0,q.jsx)(L,{variant:`ghost`,iconOnly:r?(0,q.jsx)(h,{}):(0,q.jsx)(l,{}),onClick:a,"aria-label":u(r?`conceptGraphView.exitFullscreenAriaLabel`:`conceptGraphView.enterFullscreenAriaLabel`),tooltip:u(r?`conceptGraphView.exitFullscreenAriaLabel`:`conceptGraphView.enterFullscreenAriaLabel`)}):null,Tt?(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(L,{variant:`ghost`,iconOnly:(0,q.jsx)(f,{}),onClick:()=>W(!0),"aria-label":u(`conceptGraphView.searchConceptsAriaLabel`),tooltip:u(`conceptGraphView.searchConceptsAriaLabel`),className:U?`hidden`:`@2xl:hidden`}),(0,q.jsxs)(`div`,{className:`relative ${U?``:`hidden @2xl:block`}`,children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-1.5 rounded-full px-2.5 py-1`,style:{backgroundColor:`color-mix(in srgb, var(--surface-base) 82%, transparent)`,border:`1px solid var(--border-base)`},children:[(0,q.jsx)(f,{size:14,"aria-hidden":!0,style:{color:`var(--content-tertiary)`}}),(0,q.jsx)(`input`,{ref:de,type:`text`,value:V,onChange:e=>{let t=e.target.value;t.trim()&&!G.current&&(B(`search`),G.current=!0),H(t)},onKeyDown:e=>{e.key===`Escape`?(V||U)&&(e.preventDefault(),e.stopPropagation(),H(``),W(!1)):e.key===`Enter`&&he.length>0&&(e.preventDefault(),Z(he[0].id))},placeholder:u(`conceptGraphView.searchConceptsPlaceholder`),"aria-label":u(`conceptGraphView.searchConceptsAriaLabel`),className:`w-36 bg-transparent text-[12px] outline-none placeholder:text-[var(--content-tertiary)]`,style:{color:`var(--content-default)`}}),V?(0,q.jsx)(`span`,{className:`text-[11px] tabular-nums`,style:{color:`var(--content-tertiary)`},children:K?.size??0}):null,V||U?(0,q.jsx)(`button`,{type:`button`,onClick:()=>{H(``),W(!1)},"aria-label":u(`conceptGraphView.clearSearchAriaLabel`),className:`flex items-center`,style:{color:`var(--content-tertiary)`},children:(0,q.jsx)(y,{size:13})}):null]}),V&&he.length>0?(0,q.jsx)(`ul`,{className:`absolute left-0 top-full z-30 mt-1.5 flex max-h-56 w-52 list-none flex-col overflow-y-auto rounded-xl py-1`,style:{backgroundColor:`color-mix(in srgb, var(--surface-base) 92%, transparent)`,border:`1px solid var(--border-base)`},children:he.map(e=>(0,q.jsx)(`li`,{children:(0,q.jsx)(`button`,{type:`button`,onClick:()=>{Q({id:e.id,label:e.label,updatedAtMs:e.updatedAtMs}),H(``),W(!1)},className:`block w-full truncate px-3 py-1 text-left text-[12px] hover:bg-[color-mix(in_srgb,var(--content-tertiary)_14%,transparent)]`,style:{color:`var(--content-default)`},children:e.label})},e.id))}):null]})]}):null,(0,q.jsx)(`div`,{className:`pointer-events-none mx-auto min-w-0`,children:wt?(0,q.jsx)(`div`,{className:`truncate rounded-full px-3 py-1 text-[12px]`,style:{backgroundColor:`color-mix(in srgb, var(--surface-base) 82%, transparent)`,border:`1px solid var(--border-base)`,color:`var(--content-default)`},children:wt}):x&&!yt&&!U?(0,q.jsxs)(`div`,{className:`rounded-full px-3 py-1 text-[11px] tabular-nums`,style:{backgroundColor:`color-mix(in srgb, var(--surface-base) 82%, transparent)`,border:`1px solid var(--border-base)`,color:`var(--content-tertiary)`},children:[(0,q.jsxs)(`span`,{className:`@max-md:hidden`,children:[Ct(bt,`neuron`),` · `,Ct(xt,`synapse`),` ·`,` `,Ct(St,`lobe`)]}),(0,q.jsxs)(`span`,{className:`hidden @max-md:inline`,children:[bt,` · `,xt,` · `,St]})]}):null}),s?(0,q.jsx)(`div`,{className:`flex-none`,children:s}):null]}):null,(0,q.jsxs)(`div`,{ref:d,className:`relative min-h-0 flex-1`,style:{backgroundImage:`radial-gradient(circle at center, color-mix(in srgb, var(--content-tertiary) 8%, transparent), transparent 62%)`,touchAction:`none`,cursor:x?`grab`:`default`},onPointerDown:x?ft:void 0,onPointerMove:x?pt:void 0,onPointerUp:x?mt:void 0,onPointerCancel:x?mt:void 0,onPointerLeave:x?ht:void 0,children:[yt?(0,q.jsx)(Te,{onDismiss:ue}):null,Dt,x&&I?(0,q.jsx)(we,{assistantId:e,node:I,trail:P,neighbors:Le,onTravel:Ie,onCrumb:Ne,onClose:Me,onOpenThread:o}):null]})]})}async function dt(e,t){let{data:n}=await ce({path:{assistant_id:e},body:{content:t},throwOnError:!0});return n}function ft({open:e,onOpenChange:t,assistantId:n,onCreated:r}){let{t:o}=i(`intelligence`),s=a(),[c,l]=(0,R.useState)(``),[u,d]=(0,R.useState)(!1),f=(0,R.useCallback)(async()=>{let e=c.trim();if(e){d(!0);try{let i=await dt(n,e);if(!i.success){A.error(i.message||o(`createMemoryModal.saveError`));return}A.success(i.pendingNodeId?o(`createMemoryModal.savedFoundToast`):o(`createMemoryModal.savedPendingToast`)),l(``),t(!1),r?.(i.pendingNodeId),await Promise.all([s.invalidateQueries({queryKey:ne(n).queryKey}),s.invalidateQueries({queryKey:D(n).queryKey})])}catch(e){let t=e instanceof Error?e.message:o(`createMemoryModal.createError`);A.error(t)}finally{d(!1)}}},[n,c,t,r,s,o]);return(0,q.jsx)(I.Root,{open:e,onOpenChange:t,children:(0,q.jsxs)(I.Content,{size:`sm`,children:[(0,q.jsx)(I.Header,{children:(0,q.jsx)(I.Title,{children:o(`createMemoryModal.title`)})}),(0,q.jsx)(I.Body,{children:(0,q.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,q.jsx)(ae,{label:o(`createMemoryModal.contentLabel`),placeholder:o(`createMemoryModal.contentPlaceholder`),value:c,onChange:e=>l(e.target.value),disabled:u,rows:3,fullWidth:!0}),(0,q.jsx)(T,{as:`p`,variant:`body-medium-lighter`,className:`text-(--content-secondary)`,children:o(`createMemoryModal.helperText`)})]})}),(0,q.jsxs)(I.Footer,{children:[(0,q.jsx)(I.Close,{asChild:!0,children:(0,q.jsx)(L,{variant:`outlined`,disabled:u,children:o(`createMemoryModal.cancel`)})}),(0,q.jsx)(L,{variant:`primary`,onClick:f,disabled:u||!c.trim(),leftIcon:u?(0,q.jsx)(S,{className:`animate-spin`}):void 0,children:o(u?`createMemoryModal.creating`:`createMemoryModal.create`)})]})]})})}function pt({onOpenThread:e}){let{t}=i(`intelligence`),r=j(),[a,o]=(0,R.useState)(!1),s=(0,R.useRef)(null),c=n(ne(r)),l=n(D(r)),u=c.data?.kind===`ready`&&l.data?.kind===`ready`,d=(0,R.useRef)(!1);return(0,R.useEffect)(()=>{d.current||(d.current=!0,B(`opened`))},[]),(0,q.jsxs)(`div`,{className:`relative flex h-full min-h-0 flex-col`,children:[(0,q.jsx)(ut,{assistantId:r,className:`h-full w-full`,onOpenThread:e,handleRef:s,headerAction:u?(0,q.jsx)(L,{variant:`primary`,size:`compact`,leftIcon:(0,q.jsx)(x,{}),onClick:()=>o(!0),children:t(`memoryPage.createMemory`)}):void 0}),u?(0,q.jsx)(ft,{open:a,onOpenChange:o,assistantId:r,onCreated:e=>{e&&s.current?.focusNode(e)}}):null]})}function mt(){let e=s();return(0,q.jsx)(pt,{onOpenThread:t=>{B(`chat_from_node`),te(e,{prompt:t})}},j())}export{mt as MemoryPageRoute};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{A as t,Kn as n,N as r,O as i,Un as a}from"./vendor-WUN87CSE.js";import{b as o,t as s}from"./react-DPM_L_aA.js";import{Au as c,Cd as l,Jf as u,Sy as d,Zu as f,ft as ee,wd as p,xh as m,zi as h}from"./index-7XDiAJ-A.js";var g=e(o(),1),_=class extends Error{status;constructor(e,t){super(t),this.name=`SimulateMemoryRouterError`,this.status=e}};async function v(e,t,n){let{data:r,response:i}=await m({path:{assistant_id:e},body:t,signal:n,throwOnError:!1}),a=i?await i.clone().text().catch(()=>``):``;if(!i||!i.ok)throw new _(i?.status??0,a||i?.statusText||`Failed to simulate memory router`);if(!r)throw new _(i.status,`Empty response from memory router simulator endpoint`);return{response:r,rawRequest:JSON.stringify(t,null,2),rawResponse:y(a)}}function y(e){if(e.length===0)return e;try{return JSON.stringify(JSON.parse(e),null,2)}catch{return e}}function b(e){return a({mutationFn:async t=>{if(!e)throw new _(0,`Missing assistantId`);return v(e,t)}})}function x(e){return n({...f({path:{assistant_id:e}}),enabled:!!e,staleTime:6e4})}function S(e){return n({...p({path:{assistant_id:e}}),enabled:!!e,staleTime:1440*60*1e3})}function C(e){return n({...l({path:{assistant_id:e}}),enabled:!!e,staleTime:1/0})}var w=s();function T(){let{t:e}=i(`chat`),t=h(),n=u(),r=c.use.memoryRouterPlayground();return n?(0,w.jsx)($,{children:e(`memoryRouterPlaygroundPage.loading`)}):!t||!r?(0,w.jsx)($,{children:e(`memoryRouterPlaygroundPage.notAvailable`)}):(0,w.jsx)(D,{})}var E={tier1:``,tier2:``,batch:``,profile:``,customPrompt:``};function D(){let{t:e}=i(`chat`),t=ee(),n=b(t),r=b(t),a=x(t),o=S(t),s=C(t),[c,l]=(0,g.useState)(``),[u,d]=(0,g.useState)([{assistantMessage:``,userMessage:``}]),[f,p]=(0,g.useState)(!1);(0,g.useEffect)(()=>{if(f)return;let e=s.data?.nowText;typeof e==`string`&&c===``&&l(e)},[s.data?.nowText,c,f]);let[m,h]=(0,g.useState)(E),[_,v]=(0,g.useState)(E),[y,T]=(0,g.useState)(null),[D,k]=(0,g.useState)(null),M=u[u.length-1].userMessage,P=t=>{let i=t===`A`?m:_,a=t===`A`?T:k,o=t===`A`?n:r;a(null);let s;try{s=O(i)}catch(t){a(t instanceof Error?t.message:e(`memoryRouterPlaygroundPage.invalidOverrideInput`));return}let l=i.profile.trim().length>0?i.profile:void 0,d=i.customPrompt.trim().length>0?i.customPrompt:void 0,f=u.map((e,t)=>t===u.length-1?{...e,userMessage:e.userMessage.trim()}:e);o.mutate({recentTurnPairs:f,nowText:c,...s?{configOverrides:s}:{},...l===void 0?{}:{profileOverride:l},...d===void 0?{}:{routerPromptOverride:d}})},F=()=>{P(`A`),P(`B`)},I=M.trim().length>0,L=I&&!n.isPending,z=I&&!r.isPending;return(0,w.jsx)(`div`,{className:`flex h-full min-h-0 flex-col overflow-y-auto`,children:(0,w.jsxs)(`div`,{className:`mx-auto flex w-full max-w-[1280px] flex-col gap-6 p-6`,children:[(0,w.jsx)(A,{}),(0,w.jsx)(j,{nowText:c,onNowTextChange:e=>{p(!0),l(e)},onReloadNowText:()=>{let e=s.data?.nowText;typeof e==`string`&&(l(e),p(!1))},nowTextLoading:s.isLoading,pairs:u,onPairsChange:d}),(0,w.jsxs)(`div`,{className:`grid grid-cols-1 gap-4 lg:grid-cols-2`,children:[(0,w.jsx)(N,{paneId:`A`,overrides:m,onChange:h,onRun:()=>P(`A`),canRun:L,isRunning:n.isPending,profiles:a.data?.profiles??[],activeProfile:a.data?.activeProfile??null,defaultPromptTemplate:o.data?.template??``}),(0,w.jsx)(N,{paneId:`B`,overrides:_,onChange:v,onRun:()=>P(`B`),canRun:z,isRunning:r.isPending,profiles:a.data?.profiles??[],activeProfile:a.data?.activeProfile??null,defaultPromptTemplate:o.data?.template??``})]}),(0,w.jsx)(`div`,{className:`flex justify-end`,children:(0,w.jsx)(te,{onClick:F,disabled:!I||n.isPending||r.isPending,isRunning:n.isPending||r.isPending})}),(0,w.jsx)(ne,{visible:n.data!==void 0&&r.data!==void 0}),(0,w.jsxs)(`div`,{className:`grid grid-cols-1 gap-4 lg:grid-cols-2`,children:[(0,w.jsx)(R,{paneId:`A`,userMessage:M,mutation:n,otherResult:r.data?.response,validation:y}),(0,w.jsx)(R,{paneId:`B`,userMessage:M,mutation:r,otherResult:n.data?.response,validation:D})]})]})})}function O(e){let t={...k(`tier1_size`,e.tier1),...k(`tier2_size`,e.tier2),...k(`batch_size`,e.batch)};return Object.keys(t).length===0?void 0:t}function k(e,t){let n=t.trim();if(n===``)return{};if(n===`null`)return{[e]:null};let i=Number(n);if(!Number.isInteger(i)||i<1)throw Error(r(`chat:memoryRouterPlaygroundPage.overrideMustBePositiveInteger`,{fieldName:e,value:n}));return{[e]:i}}function A(){let{t:e}=i(`chat`);return(0,w.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,w.jsx)(`h1`,{className:`text-body-large-default`,style:{color:`var(--content-default)`},children:e(`memoryRouterPlaygroundPage.title`)}),(0,w.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-secondary)`},children:(0,w.jsx)(t,{ns:`chat`,i18nKey:`memoryRouterPlaygroundPage.description`,components:{code:(0,w.jsx)(`code`,{})}})})]})}function j({nowText:e,onNowTextChange:t,onReloadNowText:n,nowTextLoading:r,pairs:a,onPairsChange:o}){let{t:s}=i(`chat`),c=(e,t)=>{o(a.map((n,r)=>r===e?{...n,...t}:n))},l=()=>{o([{assistantMessage:``,userMessage:``},...a])},u=e=>{e!==a.length-1&&o(a.filter((t,n)=>n!==e))};return(0,w.jsx)(d,{children:(0,w.jsxs)(`div`,{className:`flex flex-col gap-4 p-4`,children:[(0,w.jsx)(`span`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:s(`memoryRouterPlaygroundPage.conversationalContextTitle`)}),(0,w.jsx)(M,{id:`memory-router-playground-now`,label:s(`memoryRouterPlaygroundPage.nowBlockLabel`),value:e,onChange:t,rows:6,monospace:!0,placeholder:s(r?`memoryRouterPlaygroundPage.nowLoadingPlaceholder`:`memoryRouterPlaygroundPage.nowDefaultPlaceholder`),trailing:(0,w.jsx)(`button`,{type:`button`,onClick:n,disabled:r,className:`rounded px-2 py-1 text-label-default`,style:{background:`var(--surface-overlay)`,color:`var(--content-secondary)`,border:`none`,cursor:r?`not-allowed`:`pointer`},children:s(`memoryRouterPlaygroundPage.reloadNowButton`)})}),(0,w.jsxs)(`div`,{className:`flex items-baseline justify-between`,children:[(0,w.jsx)(`span`,{className:`text-label-default`,style:{color:`var(--content-secondary)`},children:s(`memoryRouterPlaygroundPage.recentPairsLabel`)}),(0,w.jsx)(`button`,{type:`button`,onClick:l,className:`rounded px-2 py-1 text-label-default`,style:{background:`var(--surface-overlay)`,color:`var(--content-secondary)`,border:`none`,cursor:`pointer`},children:s(`memoryRouterPlaygroundPage.addOlderPairButton`)})]}),a.map((e,t)=>{let n=t===a.length-1;return(0,w.jsxs)(`div`,{className:`flex flex-col gap-2 rounded-md border p-3`,style:{borderColor:`var(--border-base)`,background:`var(--surface-base)`},children:[(0,w.jsxs)(`div`,{className:`flex items-baseline justify-between`,children:[(0,w.jsxs)(`span`,{className:`text-label-default`,style:{color:`var(--content-secondary)`},children:[s(`memoryRouterPlaygroundPage.pairLabel`,{index:t+1,total:a.length}),n?s(`memoryRouterPlaygroundPage.pairMostRecentSuffix`):``]}),!n&&(0,w.jsx)(`button`,{type:`button`,onClick:()=>u(t),className:`rounded px-2 py-1 text-label-default`,style:{background:`transparent`,color:`var(--system-negative-strong)`,border:`none`,cursor:`pointer`},children:s(`memoryRouterPlaygroundPage.removeButton`)})]}),(0,w.jsx)(M,{id:`memory-router-playground-pair-${t}-assistant`,label:s(`memoryRouterPlaygroundPage.assistantReplyLabel`),value:e.assistantMessage,onChange:e=>c(t,{assistantMessage:e}),rows:3,placeholder:t===0&&a.length===1?s(`memoryRouterPlaygroundPage.firstTurnAssistantPlaceholder`):s(`memoryRouterPlaygroundPage.assistantReplyPlaceholder`)}),(0,w.jsx)(M,{id:`memory-router-playground-pair-${t}-user`,label:s(n?`memoryRouterPlaygroundPage.justArrivedUserLabel`:`memoryRouterPlaygroundPage.userMessageLabel`),value:e.userMessage,onChange:e=>c(t,{userMessage:e}),rows:3,placeholder:s(n?`memoryRouterPlaygroundPage.lastUserPlaceholder`:`memoryRouterPlaygroundPage.userMessagePlaceholder`),required:n})]},t)})]})})}function M({id:e,label:t,value:n,onChange:r,rows:i,placeholder:a,monospace:o,trailing:s,required:c}){return(0,w.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,w.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,w.jsxs)(`label`,{htmlFor:e,className:`text-label-default`,style:{color:`var(--content-secondary)`},children:[t,c?` *`:``]}),s]}),(0,w.jsx)(`textarea`,{id:e,value:n,onChange:e=>r(e.target.value),rows:i,placeholder:a,className:`rounded-md border px-3 py-2 text-body-medium-default`,style:{borderColor:`var(--border-base)`,background:`var(--surface-base)`,color:`var(--content-default)`,resize:`vertical`,...o?{fontFamily:`ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace`}:{}}})]})}function N({paneId:e,overrides:t,onChange:n,onRun:r,canRun:a,isRunning:o,profiles:s,activeProfile:c,defaultPromptTemplate:l}){let{t:u}=i(`chat`);return(0,w.jsx)(d,{children:(0,w.jsxs)(`div`,{className:`flex flex-col gap-4 p-4`,children:[(0,w.jsx)(`div`,{className:`text-body-medium-default`,style:{color:X(e)},children:u(`memoryRouterPlaygroundPage.configTitle`,{paneId:e})}),(0,w.jsxs)(`div`,{className:`grid grid-cols-1 gap-3 sm:grid-cols-3`,children:[(0,w.jsx)(I,{paneId:e,label:`tier1_size`,value:t.tier1,onChange:e=>n({...t,tier1:e})}),(0,w.jsx)(I,{paneId:e,label:`tier2_size`,value:t.tier2,onChange:e=>n({...t,tier2:e})}),(0,w.jsx)(I,{paneId:e,label:`batch_size`,value:t.batch,onChange:e=>n({...t,batch:e})})]}),(0,w.jsx)(F,{paneId:e,value:t.profile,onChange:e=>n({...t,profile:e}),profiles:s,activeProfile:c}),(0,w.jsx)(P,{paneId:e,value:t.customPrompt,onChange:e=>n({...t,customPrompt:e}),defaultTemplate:l}),(0,w.jsx)(`div`,{className:`flex justify-end`,children:(0,w.jsx)(`button`,{type:`button`,onClick:r,disabled:!a,className:`rounded-md px-4 py-2 text-body-medium-default transition-colors`,style:{background:a?`var(--system-positive-strong)`:`var(--surface-overlay)`,color:a?`var(--content-on-positive)`:`var(--content-disabled)`,border:`none`,cursor:a?`pointer`:`not-allowed`},children:o?u(`memoryRouterPlaygroundPage.running`):u(`memoryRouterPlaygroundPage.runPane`,{paneId:e})})})]})})}function P({paneId:e,value:t,onChange:n,defaultTemplate:r}){let{t:a}=i(`chat`),[o,s]=(0,g.useState)(!1),c=`memory-router-playground-${e}-prompt`,l=t.trim().length>0;return(0,w.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,w.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,w.jsxs)(`button`,{type:`button`,onClick:()=>s(e=>!e),className:`text-label-default`,style:{color:`var(--content-secondary)`,background:`transparent`,border:`none`,padding:0,cursor:`pointer`,textAlign:`left`},children:[o?`▾`:`▸`,` `,a(`memoryRouterPlaygroundPage.systemPrompt`),` `,(0,w.jsxs)(`span`,{style:{color:`var(--content-tertiary)`},children:[`(`,a(l?`memoryRouterPlaygroundPage.promptModeCustom`:`memoryRouterPlaygroundPage.promptModeBundled`),`)`]})]}),o&&(0,w.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,w.jsx)(`button`,{type:`button`,onClick:()=>n(r),disabled:r.length===0,className:`rounded px-2 py-1 text-label-default`,style:{background:`var(--surface-overlay)`,color:`var(--content-secondary)`,border:`none`,cursor:r.length===0?`not-allowed`:`pointer`},children:a(`memoryRouterPlaygroundPage.loadDefault`)}),(0,w.jsx)(`button`,{type:`button`,onClick:()=>n(``),disabled:!l,className:`rounded px-2 py-1 text-label-default`,style:{background:`var(--surface-overlay)`,color:`var(--content-secondary)`,border:`none`,cursor:l?`pointer`:`not-allowed`},children:a(`memoryRouterPlaygroundPage.reset`)})]})]}),o&&(0,w.jsx)(`textarea`,{id:c,value:t,onChange:e=>n(e.target.value),rows:12,placeholder:a(`memoryRouterPlaygroundPage.customPromptPlaceholder`),className:`rounded-md border px-3 py-2 text-body-small-default`,style:{borderColor:`var(--border-base)`,background:`var(--surface-base)`,color:`var(--content-default)`,fontFamily:`ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace`,resize:`vertical`,minHeight:`120px`}})]})}function F({paneId:e,value:t,onChange:n,profiles:r,activeProfile:a}){let{t:o}=i(`chat`),s=`memory-router-playground-${e}-profile`,c=a!==null&&a.length>0?o(`memoryRouterPlaygroundPage.inheritActiveWithProfile`,{profile:a}):o(`memoryRouterPlaygroundPage.inheritActive`);return(0,w.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,w.jsx)(`label`,{htmlFor:s,className:`text-label-default`,style:{color:`var(--content-secondary)`},children:o(`memoryRouterPlaygroundPage.llmProfilesOverride`)}),(0,w.jsxs)(`select`,{id:s,value:t,onChange:e=>n(e.target.value),className:`rounded-md border px-3 py-2 text-body-medium-default`,style:{borderColor:`var(--border-base)`,background:`var(--surface-base)`,color:`var(--content-default)`},children:[(0,w.jsx)(`option`,{value:``,children:c}),r.map(e=>(0,w.jsx)(`option`,{value:e,children:e},e))]})]})}function I({paneId:e,label:t,value:n,onChange:r}){let{t:a}=i(`chat`),o=`memory-router-playground-${e}-${t}`;return(0,w.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,w.jsx)(`label`,{htmlFor:o,className:`text-label-default`,style:{color:`var(--content-secondary)`},children:t}),(0,w.jsx)(`input`,{id:o,value:n,onChange:e=>r(e.target.value),placeholder:a(`memoryRouterPlaygroundPage.inheritPlaceholder`),className:`rounded-md border px-3 py-2 text-body-medium-default`,style:{borderColor:`var(--border-base)`,background:`var(--surface-base)`,color:`var(--content-default)`}})]})}function te({onClick:e,disabled:t,isRunning:n}){let{t:r}=i(`chat`);return(0,w.jsx)(`button`,{type:`button`,onClick:e,disabled:t,className:`rounded-md px-4 py-2 text-body-medium-default transition-colors`,style:{background:t?`var(--surface-overlay)`:`var(--primary-base)`,color:t?`var(--content-disabled)`:`var(--content-on-primary)`,border:`none`,cursor:t?`not-allowed`:`pointer`},children:r(n?`memoryRouterPlaygroundPage.running`:`memoryRouterPlaygroundPage.runBoth`)})}function ne({visible:e}){let{t}=i(`chat`);return e?(0,w.jsxs)(`div`,{className:`flex flex-wrap items-center gap-4 rounded-md px-4 py-2 text-label-default`,style:{background:`var(--surface-overlay)`,color:`var(--content-secondary)`},children:[(0,w.jsx)(L,{marker:`●`,markerColor:`var(--content-default)`,label:t(`memoryRouterPlaygroundPage.legendInBoth`)}),(0,w.jsx)(L,{marker:`◆`,markerColor:X(`A`),label:t(`memoryRouterPlaygroundPage.legendAOnly`)}),(0,w.jsx)(L,{marker:`◇`,markerColor:X(`B`),label:t(`memoryRouterPlaygroundPage.legendBOnly`)})]}):null}function L({marker:e,markerColor:t,label:n}){return(0,w.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,w.jsx)(`span`,{style:{color:t},children:e}),(0,w.jsx)(`span`,{children:n})]})}function R({paneId:e,userMessage:t,mutation:n,otherResult:r,validation:a}){let{t:o}=i(`chat`),s=n.data;return(0,w.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,w.jsx)(V,{paneId:e}),a!==null&&(0,w.jsx)(Q,{message:a}),n.isError&&(0,w.jsx)(Q,{message:n.error instanceof Error?n.error.message:o(`memoryRouterPlaygroundPage.failedToRunSimulation`)}),s!==void 0&&(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(H,{paneId:e,userMessage:t,result:s.response,otherResult:r}),(0,w.jsx)(z,{paneId:e,rawRequest:s.rawRequest,rawResponse:s.rawResponse})]})]})}function z({paneId:e,rawRequest:t,rawResponse:n}){let{t:r}=i(`chat`),[a,o]=(0,g.useState)(!1);return(0,w.jsx)(d,{children:(0,w.jsxs)(`div`,{className:`flex flex-col gap-2 p-4`,children:[(0,w.jsxs)(`button`,{type:`button`,onClick:()=>o(e=>!e),className:`text-label-default`,style:{color:`var(--content-secondary)`,background:`transparent`,border:`none`,padding:0,cursor:`pointer`,textAlign:`left`},children:[a?`▾`:`▸`,` `,r(`memoryRouterPlaygroundPage.rawApiExchange`)]}),a&&(0,w.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,w.jsx)(B,{label:r(`memoryRouterPlaygroundPage.requestLabel`,{paneId:e}),body:t}),(0,w.jsx)(B,{label:r(`memoryRouterPlaygroundPage.responseLabel`,{paneId:e}),body:n})]})]})})}function B({label:e,body:t}){let{t:n}=i(`chat`);return(0,w.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,w.jsx)(`span`,{className:`text-label-default`,style:{color:`var(--content-secondary)`},children:e}),(0,w.jsx)(`pre`,{className:`overflow-auto rounded-md border px-3 py-2 text-body-small-default`,style:{borderColor:`var(--border-base)`,background:`var(--surface-base)`,color:`var(--content-default)`,fontFamily:`ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace`,maxHeight:`320px`,whiteSpace:`pre`},children:t.length===0?n(`memoryRouterPlaygroundPage.empty`):t})]})}function V({paneId:e}){let{t}=i(`chat`);return(0,w.jsx)(`div`,{className:`text-body-medium-default`,style:{color:X(e)},children:t(`memoryRouterPlaygroundPage.paneTitle`,{paneId:e})})}function H({paneId:e,userMessage:t,result:n,otherResult:r}){let{t:a}=i(`chat`),o=(0,g.useMemo)(()=>U(n,r),[n,r]),s=(0,g.useMemo)(()=>q(n),[n]);return(0,w.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,w.jsx)(G,{result:n,userMessage:t,otherResult:r,counts:(0,g.useMemo)(()=>W(o),[o])}),(0,w.jsx)(K,{result:n}),n.failureReason!==null&&(0,w.jsx)(Q,{message:a(`memoryRouterPlaygroundPage.routerFailure`,{reason:n.failureReason})}),s.length===0?(0,w.jsx)(ae,{}):s.map(t=>(0,w.jsx)(ie,{paneId:e,source:t.source,slugs:t.slugs,scores:n.scores,diff:o},t.source))]})}function U(e,t){let n=new Map;if(t===void 0){for(let t of e.selectedSlugs)n.set(t,`both`);return n}let r=new Set(t.selectedSlugs);for(let t of e.selectedSlugs)n.set(t,r.has(t)?`both`:`only-here`);return n}function W(e){let t=0,n=0;for(let r of e.values())r===`both`?t++:n++;return{total:e.size,shared:t,unique:n}}function G({result:e,userMessage:t,otherResult:n,counts:r}){let{t:a}=i(`chat`),o=[{label:a(`memoryRouterPlaygroundPage.summaryUserMessageLabel`),value:t},{label:a(`memoryRouterPlaygroundPage.totalCandidatePagesLabel`),value:e.totalCandidatePages.toLocaleString()},{label:a(`memoryRouterPlaygroundPage.selectedLabel`),value:a(`memoryRouterPlaygroundPage.selectedValue`,{count:e.selectedSlugs.length,maxPageIds:e.effectiveConfig.max_page_ids})}];return n!==void 0&&o.push({label:a(`memoryRouterPlaygroundPage.diffLabel`),value:a(`memoryRouterPlaygroundPage.diffValue`,{shared:r.shared,unique:r.unique})}),(0,w.jsx)(d,{children:(0,w.jsxs)(`div`,{className:`flex flex-col gap-3 p-4`,children:[(0,w.jsx)(`span`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:a(`memoryRouterPlaygroundPage.summary`)}),(0,w.jsx)(Z,{rows:o})]})})}function K({result:e}){let{t}=i(`chat`),n=[`tier1_size`,`tier2_size`,`batch_size`,`max_page_ids`].map(n=>{let r=e.effectiveConfig[n],i=e.overrides[n];return{label:n,value:`${r===null?t(`memoryRouterPlaygroundPage.nullValue`):String(r)}${i===void 0?``:t(`memoryRouterPlaygroundPage.overrideSuffix`)}`}});return n.push({label:t(`memoryRouterPlaygroundPage.llmProfilesOverride`),value:e.profileOverride===null?t(`memoryRouterPlaygroundPage.inheritActive`):`${e.profileOverride}${t(`memoryRouterPlaygroundPage.overrideSuffix`)}`}),n.push({label:t(`memoryRouterPlaygroundPage.systemPromptConfigLabel`),value:e.routerPromptOverridden?t(`memoryRouterPlaygroundPage.promptModeCustom`):t(`memoryRouterPlaygroundPage.promptModeBundled`)}),(0,w.jsx)(d,{children:(0,w.jsxs)(`div`,{className:`flex flex-col gap-3 p-4`,children:[(0,w.jsx)(`span`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:t(`memoryRouterPlaygroundPage.effectiveConfig`)}),(0,w.jsx)(Z,{rows:n})]})})}function q(e){let t=new Map;for(let n of e.selectedSlugs){let r=e.sourceBySlug[n];if(r===void 0)continue;let i=t.get(r)??[];i.push(n),t.set(r,i)}return[...t.keys()].sort((e,t)=>J(e)-J(t)).map(e=>({source:e,slugs:t.get(e)}))}function J(e){return e===`tier1`?0:e===`tier2`?1:e.startsWith(`tier3:`)?2+Number(e.slice(6)):2**53-1}function Y(e,t){return e===`tier1`?t(`memoryRouterPlaygroundPage.tier1Label`):e===`tier2`?t(`memoryRouterPlaygroundPage.tier2Label`):e.startsWith(`tier3:`)?t(`memoryRouterPlaygroundPage.tier3Label`,{batch:e.slice(6)}):e}function X(e){return e===`A`?`var(--system-mid-strong)`:`var(--primary-base)`}function re(e,t){return t===`both`?{color:`var(--content-default)`,marker:`●`}:{color:X(e),marker:e===`A`?`◆`:`◇`}}function ie({paneId:e,source:t,slugs:n,scores:r,diff:a}){let{t:o}=i(`chat`);return(0,w.jsx)(d,{children:(0,w.jsxs)(`div`,{className:`flex flex-col gap-3 p-4`,children:[(0,w.jsxs)(`div`,{className:`flex items-baseline justify-between`,children:[(0,w.jsx)(`span`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:Y(t,o)}),(0,w.jsx)(`span`,{className:`text-label-default`,style:{color:`var(--content-secondary)`},children:o(`memoryRouterPlaygroundPage.pageCount`,{count:n.length})})]}),(0,w.jsx)(`ul`,{className:`flex flex-col gap-1`,children:n.map(n=>{let{color:i,marker:s}=re(e,a.get(n)??`only-here`);return(0,w.jsxs)(`li`,{className:`flex items-baseline justify-between gap-3`,children:[(0,w.jsxs)(`span`,{className:`flex items-baseline gap-2`,children:[(0,w.jsx)(`span`,{style:{color:i},children:s}),(0,w.jsx)(`code`,{className:`text-body-medium-default`,style:{color:i},children:n})]}),t===`tier2`&&(0,w.jsx)(`span`,{className:`tabular-nums text-label-default`,style:{color:`var(--content-secondary)`},children:o(`memoryRouterPlaygroundPage.emaScore`,{score:(r[n]??0).toFixed(3)})})]},n)})})]})})}function ae(){let{t:e}=i(`chat`);return(0,w.jsx)(d,{children:(0,w.jsxs)(`div`,{className:`flex flex-col gap-2 p-4`,children:[(0,w.jsx)(`span`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:e(`memoryRouterPlaygroundPage.noPagesSelected`)}),(0,w.jsx)(`span`,{className:`text-label-default`,style:{color:`var(--content-secondary)`},children:e(`memoryRouterPlaygroundPage.emptySelectionHint`)})]})})}function Z({rows:e}){return(0,w.jsx)(`div`,{className:`flex flex-col gap-2`,children:e.map(({label:e,value:t})=>(0,w.jsxs)(`div`,{className:`flex items-baseline justify-between gap-3`,children:[(0,w.jsx)(`span`,{className:`shrink-0 text-label-default`,style:{color:`var(--content-secondary)`},children:e}),(0,w.jsx)(`span`,{className:`text-right text-body-medium-lighter`,style:{color:`var(--content-default)`},children:t})]},e))})}function Q({message:e}){return(0,w.jsx)(`div`,{className:`rounded-md px-4 py-3 text-body-medium-default`,style:{background:`var(--surface-overlay)`,color:`var(--system-negative-strong)`},children:e})}function $({children:e}){return(0,w.jsx)(`div`,{className:`flex h-full w-full items-center justify-center p-8 text-label-default`,style:{color:`var(--content-tertiary)`},children:e})}export{T as MemoryRouterPlaygroundPage};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={continue:`Продолжить`,back:`Назад`,forward:`Вперёд`,cancel:`Отмена`,start:`Начать`,add:`Добавить`,adding:`Добавление…`,connect:`Подключить`,connecting:`Подключение…`,tryAgain:`Попробовать снова`,remove:`Убрать {value}`,logIn:`Войти`,logOut:`Выйти`,loginToUse:`Войти, чтобы пользоваться`,downloadMacApp:`Скачать приложение для macOS`,claim:`Забрать`,skipForNow:`Пока пропустить`,starting:`Запускаем…`},t={title:`Добро пожаловать в Vellum`,body:`Личный интеллект уже в одном шаге.`,continueWithoutAccount:`Продолжить без аккаунта`},n={createAssistant:`Создание ассистента`},r={title:`Перед началом`,body:`Выбор настроек приватности. Потом их можно изменить в Настройках.`,skipToChat:`Перейти к диалогу`},i={title:`Хостинг`,body:`Выбор места, где будет жить ассистент.`,needHelp:`Нужна помощь с выбором?`,optionsAriaLabel:`Варианты хостинга`},a={title:`Подключение провайдера моделей`,body:`Выбор провайдера моделей для ассистента.`,providerLabel:`Провайдер`,modelLabel:`Модель`,baseUrlLabel:`Базовый URL`,modelsLabel:`Модели`,modelsPlaceholder:`model-1, model-2`,modelsHelp:`Идентификаторы моделей через запятую, которые отдаёт endpoint.`,apiKeyLabel:`API-ключ {provider}`,apiKeyPlaceholder:`API-ключ`,noKeyPrompt:`Нет ключа?`,getKeyLink:`Получить API-ключ`},o={title:`Выбор ассистента`,listAriaLabel:`Ассистенты`,createNew:`Создать нового ассистента`,connectRemote:`Подключить удалённого ассистента`,addRemote:`Добавить удалённого ассистента`,unnamedAssistant:`ассистент`,connectingToAssistant:`Подключение к ассистенту…`,rowActionsAriaLabel:`Действия для {name}`,removeFromDevice:`Убрать с этого устройства…`,selfHosted:`Свой хостинг`,selfHostedWithHost:`Свой хостинг · {host}`,currentWithHost:`Текущий · {host}`,remoteWithHost:`Удалённый · {host}`},s={apiKeyFailed:`API-ключ не сработал`,genericFailure:`Что-то пошло не так`,localFallbackPitch:`Начало сегодня с локальным ассистентом`,updateApiKey:`Обновить API-ключ`,ready:`Ассистент готов!`,waking:`Просыпается…`,wakingBody:`Ожидание запуска ассистента: затем будет несколько вопросов.`,progressAriaLabel:`Ход запуска ассистента`,phase:{initializing:`Готовим всё…`,provisioning:`Настраиваем ассистента…`,connecting:`Подключаемся к ассистенту…`,resizing:`Настраиваем машину…`,ready:`Готово`}},c={title:`Добавить удалённого ассистента`,body:`Вставка https-ссылки со страницы привязки ассистента.`,addressLabel:`Адрес ассистента`,addFailed:`Не удалось добавить ассистента. Повторите попытку.`},l={title:`Подключить удалённого ассистента`,instruction:`Вставка ссылки для привязки из настроек «Привязать устройство» ассистента или просто его адреса, затем подтверждение запроса там.`,linkGuidance:`Эта ссылка получена из QR-кода для привязки. Чтобы подключить это устройство, вставьте сюда ссылку для привязки с компьютера ассистента.`,legacyLinkGuidance:`Эта ссылка создана в более старой версии приложения и больше не работает. Создайте новую ссылку для привязки на компьютере ассистента и вставьте её сюда.`,addressLabel:`Адрес или ссылка для привязки`,addressPlaceholder:`https://your-assistant.ts.net`,nameLabel:`Имя (необязательно)`,approveOnHost:`Подтвердите этот код на машине ассистента, чтобы завершить подключение.`,waitingForApproval:`Ожидание подтверждения…`,retrying:`Ассистент ещё не готов к привязке. Попытки продолжаются, пока не истечёт срок действия кода.`,expiresIn:`Истекает через {time}`,retryExpired:`Срок действия кода привязки истёк, прежде чем ассистент был готов к привязке. Начните заново, чтобы получить новый код.`,submitError:`Не удалось подключиться к этому ассистенту. Повторите попытку.`,importedTitle:`Привязка импортирована`,importedBody:`Эта привязка только для доступа: сейчас она работает, но срок доступа истекает, и сама она не продлевается. Когда это произойдёт, создайте новую ссылку для привязки на машине ассистента и вставьте её сюда, чтобы выполнить привязку заново.`},u={repairTitle:`Восстановить ассистента?`,repairBody:`Восстановление заново выпускает токен аутентификации этого ассистента. На всех других устройствах и в сессиях браузера вход будет сброшен, и их нужно будет подключить заново.`,repairConfirm:`Восстановить`,authFailedTitle:`Не удаётся аутентифицировать ассистента`,authFailedBody:`Токен аутентификации для {name} отсутствует или его больше нельзя обновить, поэтому этого ассистента не подключить. Его можно восстановить, отключить или выбрать другого.`,wakeAndRepair:`Разбудить и восстановить`,retire:`Отключить ассистента`},d={whatsChanged:`Что изменилось`,privacyPreferences:`Настройки приватности`,analyticsLabel:`Отправлять аналитику`,analyticsHelp:`Отправлять обезличенные данные об использовании`,diagnosticsLabel:`Отправлять диагностику`,diagnosticsHelp:`Отправлять отчёты о сбоях, трассы диалогов и записи сессий`,agreements:`Соглашения`,agreeTo:`Я принимаю <link>{policy}</link>`},f={addOption:`Добавить «{value}»`,enterHint:`↵ Enter`,freeTextHint:`Ввод своего варианта и ↵, чтобы добавить`},p={ariaLabel:`Шаг {current} из {total}`},m={authorizationFailed:`Не удалось начать авторизацию Google Calendar.`},h={greetingNamed:`Привет, {name}!`,greeting:`Привет!`,introNamed:`Я {name}, новый ИИ-ассистент.`,intro:`Я новый ИИ-ассистент.`},g={setupLine:`ИИ, который только отвечает на вопросы, уже знаком.`,helpLine:`Чем больше я помогаю,`,punchLine:`Я другой.`,betterLine:`тем лучше я становлюсь,`,lessLine:`и тем меньше работы остаётся.`},_={title:`Создание характера`,lockedBody:`Характер зафиксирован; чтобы что-то ещё поменять, сообщение ассистенту`,axisAriaLabel:`От {left} до {right}`,axes:{companionCoworker:{left:`Компаньон`,right:`Коллега`},genzBoomer:{left:`Gen Z`,right:`Baby Boomer`},executeCollaborate:{left:`Самостоятельный`,right:`Совместный`},playfulSerious:{left:`Игривый`,right:`Серьёзный`},politeUnfiltered:{left:`Вежливый`,right:`Без фильтра`}}},v={title:`Лицо и имя`,previousCharacter:`Предыдущий персонаж`,nextCharacter:`Следующий персонаж`,namePlaceholder:`Как зовут ассистента`,nameAriaLabel:`Имя ассистента`,editName:`Изменить имя`,shuffle:`Случайные имя и внешность`,hearVoice:`Послушай мой голос`,stopVoice:`Остановить образец голоса`},y={title:`Вот начальный объём использования,<br></br> чтобы начать.`},b={title:`Начало.`,body:`Пара деталей, чтобы узнать собеседника.`,firstNameLabel:`Имя`,firstNamePlaceholder:`Имя`,lastNameLabel:`А фамилия?`,lastNamePlaceholder:`Фамилия (необязательно)`,roleLabel:`Род занятий`,rolePlaceholder:`Должность`,hobbiesLabel:`Есть хобби?`,hobbiesPlaceholder:`Машины, книги, помидоры на подоконнике?`},x={wakingTitle:`Просыпается`,missingScopeTitle:`Доступ не включён`,title:`Давай упростим`,wakingBody:`Ассистент готовится`,missingScopeBody:`Отметь разрешение Google Calendar, чтобы я мог назначить Check-in.`,body:`Подключение Google Calendar, чтобы найти время для Check-in.`,startingAssistant:`Запускаем ассистента…`,waitingAuthorization:`Ждём авторизацию…`,connectCalendar:`Подключить календарь →`},S={titleNamed:`{name} уже запущен и работает`,title:`Ассистент уже запущен и работает`,bodyNamed:`Общая история уже есть: характер, воспоминания и прошлые диалоги. Повторная настройка перезапишет то, кем сейчас является {name}.`,body:`Уже есть общая история: характер, воспоминания и прошлые диалоги. Повторная настройка перезапишет то, кем сейчас является ассистент.`,keepNamed:`Оставить {name} и начать диалог`,keep:`Оставить ассистента и начать диалог`,redoNamed:`Начать заново и собрать характер {name} снова`,redo:`Начать заново и собрать характер заново`},C={title:`Давай поговорим завтра`,body:`Добавление встречи в календарь, чтобы продолжить с того же места.`,permissionBody:`{name} добавит одно событие Check-in на второй день. Для этого нужен доступ к событиям календаря и адресу почты, но не к входящим и не к файлам. Отключить можно в любой момент.`,unnamedAssistant:`ассистент`,waitingAuthorization:`Ждём авторизацию...`,connectGoogleCalendar:`Подключить Google Calendar`},w={titleWithTime:`Check-in назначен на завтра в {time}!`,title:`Check-in назначен!`},T={searching:`Поиск в интернете…`,readingProfiles:`Читаю публичные профили…`,skimming:`Просматриваю главное…`,connectingDots:`Соединяю точки…`,piecing:`Собираю картину…`,almostThere:`Почти готово…`},E={updatingPersonality:`Обновляю характер…`,findingVoice:`Ищу свой голос…`,gettingIntoCharacter:`Вхожу в роль…`,almostThere:`Почти готово…`},D={title:`Вот что удалось найти`,bodyLoadingWithClaims:`Ещё проверяю остальное. Просмотр по мере появления.`,bodyReadyWithClaims:`Я поискал в интернете. Смело убирай всё, что неправда.`,bodyLoadingEmpty:`Ещё собираю это вместе…`,bodyReadyEmpty:`Мало что нашлось, дозаполним по ходу диалога.`,removeClaim:`Убрать «{claim}»`,notMe:`Это не я`,stillSearching:`Ещё ищу…`},O={title:`Вот с чего можно начать`,pickOne:`Выбор одного, чтобы сразу включиться, или своё начало. <skip>Перейти к диалогу</skip>`,loading:`Собираю несколько идей…`,alreadySetUp:`Уже настроен {count, plural, one {плагин} few {плагина} many {плагинов} other {плагина}} <plugins></plugins> для работы`,listAnd:` и `,listCommaAnd:` и `,listComma:`, `,fallbacks:{brief:{suggestion:`Соберу короткий бриф о новостях в этой сфере`,prompt:`Сделай короткий бриф: что нового в моей сфере прямо сейчас.`},weekly:{suggestion:`Буду присылать еженедельный бриф по новостям в этой области`,prompt:`Настройка еженедельного брифа по новостям в моей области.`},week:{suggestion:`Помогу взять неделю под контроль`,prompt:`Помоги взять мою неделю под контроль.`},draft:{suggestion:`Набросаю текст по нескольким черновым заметкам`,prompt:`Набросай текст по нескольким черновым заметкам, которые я дам.`}}},k={title:`Всё готово`,setupNote:`Плагины уже настроены под этот профиль.`,letsChat:`Давай поговорим`},A={actions:e,welcome:t,startScreen:n,privacyScreen:r,hostingScreen:i,apiKeyScreen:a,selectAssistantScreen:o,hatchingScreen:s,addRemoteOriginDialog:c,connectAssistantDialog:l,connectRecoveryDialog:u,consentControls:d,onboardingAutocomplete:f,stepIndicator:p,googleCalendar:m,introductionScreen:h,pitchStep:g,createPersonalityStep:_,giveMeAFaceScreen:v,integrationStep:y,researchOnboardingScreen:b,letsChatTomorrowStep:x,existingAssistantStep:S,checkinConnectScreen:C,meetingCreatedStep:w,lookingYouUpStep:T,finishingUpStep:E,researchResultsStep:D,suggestionsStep:O,letsChatReadyStep:k};export{e as actions,c as addRemoteOriginDialog,a as apiKeyScreen,C as checkinConnectScreen,l as connectAssistantDialog,u as connectRecoveryDialog,d as consentControls,_ as createPersonalityStep,A as default,S as existingAssistantStep,E as finishingUpStep,v as giveMeAFaceScreen,m as googleCalendar,s as hatchingScreen,i as hostingScreen,y as integrationStep,h as introductionScreen,k as letsChatReadyStep,x as letsChatTomorrowStep,T as lookingYouUpStep,w as meetingCreatedStep,f as onboardingAutocomplete,g as pitchStep,r as privacyScreen,b as researchOnboardingScreen,D as researchResultsStep,o as selectAssistantScreen,n as startScreen,p as stepIndicator,O as suggestionsStep,t as welcome};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={continue:`Continuar`,back:`Atrás`,forward:`Adelante`,cancel:`Cancelar`,start:`Empezar`,add:`Añadir`,adding:`Añadiendo…`,connect:`Conectar`,connecting:`Conectando…`,tryAgain:`Volver a intentarlo`,remove:`Quitar {value}`,logIn:`Iniciar sesión`,logOut:`Cerrar sesión`,loginToUse:`Inicia sesión para usar`,downloadMacApp:`Descargar la app de macOS`,claim:`Reclamar`,skipForNow:`Omitir por ahora`,starting:`Empezando…`},t={title:`Te damos la bienvenida a Vellum`,body:`Tu propia inteligencia personal está a un paso.`,continueWithoutAccount:`Continuar sin cuenta`},n={createAssistant:`Crear tu asistente`},r={title:`Antes de empezar`,body:`Elige tus preferencias de privacidad. Puedes cambiarlas cuando quieras en los ajustes.`,skipToChat:`Ir al chat`},i={title:`Alojamiento`,body:`Elige dónde quieres que viva tu asistente.`,needHelp:`¿Necesitas ayuda para decidir?`,optionsAriaLabel:`Opciones de alojamiento`},a={title:`Conectar un proveedor de modelos`,body:`Elige el proveedor de modelos que debe usar tu asistente.`,providerLabel:`Proveedor`,modelLabel:`Modelo`,baseUrlLabel:`URL base`,modelsLabel:`Modelos`,modelsPlaceholder:`modelo-1, modelo-2`,modelsHelp:`Identificadores de modelo separados por comas que expone tu endpoint.`,apiKeyLabel:`Clave de API de {provider}`,apiKeyPlaceholder:`Introduce tu clave de API`,noKeyPrompt:`¿No la tienes?`,getKeyLink:`Consigue una clave de API aquí`},o={title:`Elige un asistente`,listAriaLabel:`Asistentes`,createNew:`Crear un asistente nuevo`,connectRemote:`Conectar un asistente remoto`,addRemote:`Añadir un asistente remoto`,unnamedAssistant:`el asistente`,connectingToAssistant:`Conectando con tu asistente…`,rowActionsAriaLabel:`Acciones de {name}`,removeFromDevice:`Quitar de este dispositivo…`,selfHosted:`Autoalojado`,selfHostedWithHost:`Autoalojado · {host}`,currentWithHost:`Actual · {host}`,remoteWithHost:`Remoto · {host}`},s={apiKeyFailed:`Tu clave de API no ha funcionado`,genericFailure:`Algo ha salido mal`,localFallbackPitch:`Empieza hoy con un asistente local`,updateApiKey:`Actualizar la clave de API`,ready:`¡Tu asistente está listo!`,waking:`Despertando…`,wakingBody:`Un momento, tu asistente te hará algunas preguntas en cuanto esté en marcha.`,progressAriaLabel:`Progreso del arranque del asistente`,phase:{initializing:`Preparándolo todo…`,provisioning:`Configurando tu asistente…`,connecting:`Conectando con tu asistente…`,resizing:`Preparando tu máquina…`,ready:`Listo`}},c={title:`Añadir un asistente remoto`,body:`Pega el enlace https que te dio la página de vinculación de tu asistente.`,addressLabel:`Dirección del asistente`,addFailed:`No se pudo añadir el asistente. Inténtalo de nuevo.`},l={title:`Conectar un asistente remoto`,instruction:`Pega el enlace de vinculación de los ajustes «Vincular un dispositivo» del asistente, o solo su dirección, y aprueba allí la solicitud.`,linkGuidance:`Este enlace proviene de un código QR de vinculación. Para conectar este dispositivo, pega aquí el enlace de vinculación del equipo del asistente.`,legacyLinkGuidance:`Este enlace proviene de una versión anterior de la aplicación y ya no se puede usar. Genera un nuevo enlace de vinculación en el equipo del asistente y pégalo aquí.`,addressLabel:`Dirección o enlace de vinculación`,addressPlaceholder:`https://your-assistant.ts.net`,nameLabel:`Nombre (opcional)`,approveOnHost:`Aprueba este código en la máquina del asistente para terminar de conectar.`,waitingForApproval:`Esperando la aprobación…`,retrying:`El asistente aún no está listo para vincularse. Se seguirá intentando hasta que caduque el código.`,expiresIn:`Caduca en {time}`,retryExpired:`El código de vinculación caducó antes de que el asistente estuviera listo para vincularse. Empieza de nuevo para obtener uno nuevo.`,submitError:`No se pudo conectar con ese asistente. Inténtalo de nuevo.`,importedTitle:`Vinculación importada`,importedBody:`Esta vinculación es solo de acceso: funciona ahora, pero su acceso caduca y no puede renovarse por sí solo. Cuando caduque, genera un nuevo enlace de vinculación en la máquina del asistente y pégalo aquí para volver a vincular.`},u={repairTitle:`¿Reparar el asistente?`,repairBody:`Reparar vuelve a aprovisionar el token de autenticación de este asistente. Se cerrará la sesión en cualquier otro dispositivo o navegador conectado y tendrán que volver a conectarse.`,repairConfirm:`Reparar`,authFailedTitle:`No se puede autenticar el asistente`,authFailedBody:`Falta el token de autenticación de {name} o ya no se puede renovar, así que no es posible conectar este asistente. Puedes repararlo, retirarlo o elegir otro asistente.`,wakeAndRepair:`Despertar y reparar`,retire:`Retirar el asistente`},d={agreeTo:`Acepto <link>{policy}</link>`,whatsChanged:`Qué ha cambiado`,privacyPreferences:`Preferencias de privacidad`,analyticsLabel:`Compartir analíticas`,analyticsHelp:`Enviar datos agregados de uso del producto`,diagnosticsLabel:`Compartir diagnósticos`,diagnosticsHelp:`Enviar informes de fallos, trazas de conversación y datos de repetición de sesión`,agreements:`Acuerdos`},f={addOption:`Añadir «{value}»`,enterHint:`↵ Intro`,freeTextHint:`Escribe lo que quieras y pulsa ↵ para añadirlo`},p={ariaLabel:`Paso {current} de {total}`},m={authorizationFailed:`No se pudo iniciar la autorización de Google Calendar.`},h={greetingNamed:`¡Hola, {name}!`,greeting:`¡Hola!`,introNamed:`Soy {name}, tu nuevo asistente de IA.`,intro:`Soy tu nuevo asistente de IA.`},g={setupLine:`Has usado IA que solo responde preguntas.`,helpLine:`Cuanto más ayudo,`,punchLine:`Yo soy distinto.`,betterLine:`mejor me vuelvo,`,lessLine:`y menos tienes que hacer tú.`},_={title:`Crea mi personalidad`,lockedBody:`Personalidad bloqueada, habla con tu asistente para hacer más cambios`,axisAriaLabel:`De {left} a {right}`,axes:{companionCoworker:{left:`Compañero`,right:`Colega`},genzBoomer:{left:`Gen Z`,right:`Baby Boomer`},executeCollaborate:{left:`Independiente`,right:`Colaborativo`},playfulSerious:{left:`Juguetón`,right:`Serio`},politeUnfiltered:{left:`Educado`,right:`Sin filtro`}}},v={title:`Dame una cara y un nombre`,previousCharacter:`Personaje anterior`,nextCharacter:`Personaje siguiente`,namePlaceholder:`Ponle nombre a tu asistente`,nameAriaLabel:`Nombre del asistente`,editName:`Editar nombre`,shuffle:`Cambiar nombre y apariencia`,hearVoice:`Escuchar mi voz`,stopVoice:`Detener la muestra de voz`},y={title:`Aquí tienes algo de uso inicial<br></br> para empezar.`},b={title:`Empecemos por ti.`,body:`Unos detalles para que pueda conocerte.`,firstNameLabel:`¿Cómo debería llamarte?`,firstNamePlaceholder:`Tu nombre`,lastNameLabel:`¿Y tu apellido?`,lastNamePlaceholder:`Tu apellido (opcional)`,roleLabel:`Tu rol`,rolePlaceholder:`¿A qué te dedicas?`,hobbiesLabel:`¿Algún hobby?`,hobbiesPlaceholder:`Coches, libros, cultivar tomates?`},x={wakingTitle:`Despertando`,missingScopeTitle:`Acceso no activado`,title:`Déjame facilitártelo`,wakingBody:`Tu asistente se está preparando`,missingScopeBody:`Marca la casilla junto al permiso de Google Calendar para que pueda reservar el check-in.`,body:`Conecta tu Google Calendar para que pueda encontrar un momento para hacer el check-in y empezar a ayudar.`,startingAssistant:`Arrancando el asistente…`,waitingAuthorization:`Esperando la autorización…`,connectCalendar:`Conectar calendario →`},S={titleNamed:`{name} ya está en marcha`,title:`Tu asistente ya está en marcha`,bodyNamed:`Los dos tenéis historia: una personalidad, recuerdos y conversaciones pasadas. Volver a hacer la configuración sobrescribiría quién es {name} ahora.`,body:`Los dos tenéis historia: una personalidad, recuerdos y conversaciones pasadas. Volver a hacer la configuración sobrescribiría quién es tu asistente ahora.`,keepNamed:`Conservar a {name} y empezar a chatear`,keep:`Conservar a tu asistente y empezar a chatear`,redoNamed:`Empezar de cero y reconstruir la personalidad de {name}`,redo:`Empezar de cero y reconstruir su personalidad`},C={title:`Hablemos mañana`,body:`Añade una reunión en tu calendario para retomar donde lo dejamos.`,permissionBody:`{name} añadirá un único evento de check-in del día 2. Obtiene permiso para gestionar los eventos de tu calendario y ver tu dirección de correo, no tu bandeja de entrada ni tus archivos, y puedes desconectarlo en cualquier momento.`,unnamedAssistant:`tu asistente`,waitingAuthorization:`Esperando la autorización...`,connectGoogleCalendar:`Conectar Google Calendar`},w={titleWithTime:`¡Check-in programado para mañana a las {time}!`,title:`¡Check-in programado!`},T={searching:`Buscando en la web para conocerte…`,readingProfiles:`Leyendo perfiles públicos…`,skimming:`Repasando lo más destacado…`,connectingDots:`Conectando los puntos…`,piecing:`Ensamblando las piezas…`,almostThere:`Casi listo…`},E={updatingPersonality:`Actualizando mi personalidad…`,findingVoice:`Encontrando mi voz…`,gettingIntoCharacter:`Entrando en personaje…`,almostThere:`Casi listo…`},D={title:`Esto es lo que he encontrado sobre ti`,bodyLoadingWithClaims:`Todavía estoy revisando el resto. Puedes ir mirando lo que va llegando.`,bodyReadyWithClaims:`He buscado en la web. Siéntete libre de quitar cualquier cosa que no sea cierta.`,bodyLoadingEmpty:`Todavía lo estoy armando…`,bodyReadyEmpty:`No he encontrado mucho, lo iremos completando al chatear.`,removeClaim:`Quitar «{claim}»`,notMe:`Esto no soy yo`,stillSearching:`Todavía buscando…`},O={title:`Esto es lo que podríamos hacer primero`,pickOne:`Elige una para empezar, o empieza con lo tuyo. <skip>Ir al chat</skip>`,loading:`Preparando algunas ideas…`,alreadySetUp:`Ya he configurado {count, plural, one {el plugin} other {los plugins}} <plugins></plugins> para ayudarte con tu trabajo`,listAnd:` y `,listCommaAnd:` y `,listComma:`, `,fallbacks:{brief:{suggestion:`Prepararé un resumen rápido de lo nuevo en tu campo`,prompt:`Dame un resumen rápido de lo nuevo en mi campo ahora mismo.`},weekly:{suggestion:`Te enviaré un briefing semanal de noticias de tu ámbito`,prompt:`Configura un briefing semanal de noticias de mi ámbito.`},week:{suggestion:`Te ayudaré a ponerte al día con tu semana`,prompt:`Ayúdame a ponerme al día con mi semana.`},draft:{suggestion:`Redactaré algo a partir de unas notas sueltas`,prompt:`Redacta algo a partir de unas notas sueltas que te daré.`}}},k={title:`Ya está todo listo`,setupNote:`Me he configurado con plugins según quién eres.`,letsChat:`Hablemos`},A={actions:e,welcome:t,startScreen:n,privacyScreen:r,hostingScreen:i,apiKeyScreen:a,selectAssistantScreen:o,hatchingScreen:s,addRemoteOriginDialog:c,connectAssistantDialog:l,connectRecoveryDialog:u,consentControls:d,onboardingAutocomplete:f,stepIndicator:p,googleCalendar:m,introductionScreen:h,pitchStep:g,createPersonalityStep:_,giveMeAFaceScreen:v,integrationStep:y,researchOnboardingScreen:b,letsChatTomorrowStep:x,existingAssistantStep:S,checkinConnectScreen:C,meetingCreatedStep:w,lookingYouUpStep:T,finishingUpStep:E,researchResultsStep:D,suggestionsStep:O,letsChatReadyStep:k};export{e as actions,c as addRemoteOriginDialog,a as apiKeyScreen,C as checkinConnectScreen,l as connectAssistantDialog,u as connectRecoveryDialog,d as consentControls,_ as createPersonalityStep,A as default,S as existingAssistantStep,E as finishingUpStep,v as giveMeAFaceScreen,m as googleCalendar,s as hatchingScreen,i as hostingScreen,y as integrationStep,h as introductionScreen,k as letsChatReadyStep,x as letsChatTomorrowStep,T as lookingYouUpStep,w as meetingCreatedStep,f as onboardingAutocomplete,g as pitchStep,r as privacyScreen,b as researchOnboardingScreen,D as researchResultsStep,o as selectAssistantScreen,n as startScreen,p as stepIndicator,O as suggestionsStep,t as welcome};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./react-DPM_L_aA.js";var t=e();function n({icon:e,title:n,description:r,actions:i}){return(0,t.jsxs)(`div`,{className:`flex h-full min-h-[400px] flex-col items-center justify-center gap-4 px-4 py-24 text-center`,children:[(0,t.jsx)(`div`,{className:`flex h-16 w-16 items-center justify-center rounded-xl bg-[var(--surface-base)]`,children:(0,t.jsx)(e,{size:32,className:`text-[var(--content-tertiary)]`})}),(0,t.jsx)(`h2`,{className:`text-title-medium text-[var(--content-default)]`,children:n}),(0,t.jsx)(`p`,{className:`max-w-md text-body-medium-lighter text-[var(--content-tertiary)]`,children:r}),i?(0,t.jsx)(`div`,{className:`flex flex-col items-center gap-3`,children:i}):null]})}export{n as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e,t}from"./react-DPM_L_aA.js";import{uv as n}from"./index-7XDiAJ-A.js";var r=t();function i(){return(0,r.jsx)(e,{to:n.account.login,replace:!0})}export{i as PasswordResetPage};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./react-DPM_L_aA.js";import{Xn as t,Yn as n,pn as r}from"./index-7XDiAJ-A.js";var i=e();function a({blob:e}){let a=n(e,`application/pdf`);return a===null?(0,i.jsx)(t,{}):(0,i.jsx)(`span`,{className:`block w-full [&_canvas]:w-full!`,children:(0,i.jsx)(r,{url:a})})}export{a as PdfFilePreview};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{Kn as t,N as n,O as r,Yn as i,in as a,on as o,sn as s}from"./vendor-WUN87CSE.js";import{b as c,f as l,t as u}from"./react-DPM_L_aA.js";import{P as d,pi as f}from"./icons-CSdHOix6.js";import{ay as p,ft as m,tp as h,uv as g}from"./index-7XDiAJ-A.js";import{a as _,c as v,l as y,o as b,s as x}from"./latest-assistant-text-CVRVSoFg.js";import{a as S,c as C,i as w,n as T,o as E,r as D,t as O}from"./use-assistant-identity-details-oVmPdjVe.js";var k=e(c(),1),A=u(),j=`rgba(36, 41, 46, 0.25)`,M=`#FDFDFC`;function N({axis:e,value:t,onValueChange:n,tone:i,disabled:c}){let{t:l}=r(`intelligence`),u=l(e.leftKey),d=l(e.rightKey);return(0,A.jsxs)(`div`,{className:`flex w-full shrink-0 flex-wrap items-center gap-x-5 gap-y-1.5 sm:flex-nowrap`,style:{opacity:c?.7:1},children:[(0,A.jsx)(`span`,{className:`order-1 flex-1 text-left text-sm sm:w-32 sm:flex-none sm:text-right sm:text-[17px]`,style:{color:i.fg},children:u}),(0,A.jsx)(`span`,{className:`order-2 flex-1 text-right text-sm sm:order-3 sm:w-32 sm:flex-none sm:text-left sm:text-[17px]`,style:{color:i.fg},children:d}),(0,A.jsxs)(a,{"data-owns-horizontal-drag":``,className:`relative order-3 flex h-6 w-full touch-none items-center select-none sm:order-2 sm:w-auto sm:flex-1`,value:[t],onValueChange:e=>n(e[0]??S),disabled:c,min:0,max:100,step:1,"aria-label":l(`personalitySliderRow.rangeAriaLabel`,{left:u,right:d}),children:[(0,A.jsx)(s,{className:`relative h-2 w-full grow rounded-full sm:h-3`,style:{backgroundColor:j}}),(0,A.jsx)(o,{className:`block h-5 w-5 cursor-grab rounded-full shadow-sm transition-transform active:scale-95 active:cursor-grabbing keyboard-focus:outline-none keyboard-focus:ring-2 keyboard-focus:ring-white/70 data-[disabled]:cursor-not-allowed data-[disabled]:active:scale-100 sm:h-6 sm:w-6`,style:{backgroundColor:M}})]})]})}async function P({assistantId:e,values:t,assistantName:r}){return D({assistantId:e,content:y(t,void 0,r),title:n(`applyPersonalityUpdate.conversationTitle`,{ns:`intelligence`}),context:`identity_personality_update`})}function F(){let{t:e}=r(`intelligence`),n=m(),a=l(),o=i(),{components:s,traits:c,customImageUrl:u}=h(n),d=T(n),f=t({queryKey:x(n),queryFn:()=>b(n)}),[y,S]=(0,k.useState)(null),[C,w]=(0,k.useState)(!1),D=y??f.data??{},j=d.data?.identity?.name||e(`identityOverview.defaultAssistantName`);return(0,A.jsx)(E,{components:s,traits:c,customImageUrl:u,entrance:!0,children:(0,A.jsx)(I,{assistantName:j,values:D,onValueChange:(e,t)=>S({...D,[e]:t}),applying:C,onUpdate:()=>{w(!0);let t=_(D);P({assistantId:n,values:t,assistantName:d.data?.identity?.name}).then(async r=>{w(!1),r?(await v(n,t),o.invalidateQueries({queryKey:x(n)}),o.invalidateQueries({queryKey:O(n)}),p.success(e(`personalityPage.updateSuccessToast`)),a(g.identity)):p.error(e(`personalityPage.updateErrorToast`))})},onBack:()=>void a(g.identity)})})}function I({assistantName:e,values:t,onValueChange:n,applying:i,onUpdate:a,onBack:o}){let{t:s}=r(`intelligence`),{tone:c,bottomReserve:l}=C();return(0,A.jsxs)(A.Fragment,{children:[(0,A.jsxs)(`button`,{type:`button`,onClick:o,className:`absolute top-4 left-4 z-20 flex cursor-pointer items-center gap-1.5 rounded-full py-2 pr-4 pl-3 text-body-medium-default backdrop-blur-sm transition-all duration-150 active:scale-[0.97] ${c.isLight?`bg-black/10 hover:bg-black/20`:`bg-white/10 hover:bg-white/20`}`,style:{color:c.fg},children:[(0,A.jsx)(f,{className:`h-4 w-4`,"aria-hidden":!0}),s(`personalityPage.back`)]}),(0,A.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col items-center overflow-y-auto px-6`,style:{paddingBottom:l},children:[(0,A.jsx)(`div`,{className:`w-full min-h-14 shrink-[4]`,style:{flexBasis:`12%`}}),(0,A.jsxs)(`div`,{className:`flex shrink-0 flex-col items-center gap-2 text-center`,children:[(0,A.jsx)(`h1`,{className:`text-[2.6rem] leading-none max-sm:text-[2rem]`,style:{fontFamily:`var(--font-serif)`},children:s(`personalityPage.title`)}),(0,A.jsx)(`p`,{className:`max-w-md text-[15px]`,style:{color:c.fgMuted},children:s(`personalityPage.subtitle`)})]}),(0,A.jsx)(`div`,{className:`w-full min-h-3 shrink-[2] basis-10`}),(0,A.jsx)(`div`,{className:`flex w-full max-w-2xl shrink-0 flex-col`,children:w.map((e,r)=>(0,A.jsxs)(k.Fragment,{children:[r>0&&(0,A.jsx)(`div`,{className:`w-full min-h-2.5 shrink basis-8 sm:basis-11`}),(0,A.jsx)(N,{axis:e,value:t[e.id]??S,onValueChange:t=>n(e.id,t),tone:c,disabled:i})]},e.id))}),(0,A.jsx)(`div`,{className:`w-full min-h-3 shrink-[2] basis-12`}),(0,A.jsx)(`button`,{type:`button`,onClick:a,disabled:i,className:`flex min-h-11 min-w-[240px] max-w-full shrink-0 cursor-pointer items-center justify-center gap-2 rounded-[10px] px-6 py-2 text-body-medium-default transition-transform duration-150 active:scale-[0.97] disabled:cursor-default disabled:opacity-80 disabled:active:scale-100`,style:{backgroundColor:c.isLight?`#1A1A1A`:`#FFFFFF`,color:c.isLight?`#FFFFFF`:`#1A1A1A`},children:i?(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(`div`,{className:`h-4 w-4 shrink-0 animate-spin rounded-full border-2 border-transparent`,style:{borderTopColor:c.isLight?`#FFFFFF`:`#1A1A1A`,borderRightColor:c.isLight?`#FFFFFF`:`#1A1A1A`}}),(0,A.jsx)(`span`,{className:`min-w-0 text-center`,children:s(`personalityPage.updatingPersonality`,{name:e})})]}):(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(d,{className:`h-4 w-4`,"aria-hidden":!0}),s(`personalityPage.updatePersonality`)]})})]})]})}export{F as PersonalityPage};
|