@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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{I as t,N as n,Qn as r,Zn as i,er as a,j as o}from"./vendor-kNpRDQWe.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{Cd as M,Cr as N,Dr as P,Er as F,Gv as I,Li as L,Nf as R,Or as z,Pv as B,Sd as ee,Sp as te,Sr as ne,Sv as re,Tr as ie,Tv as ae,Y as oe,Yv as se,_y as ce,ay as le,bd as ue,by as V,cg as de,df as fe,di as pe,dy as H,eg as U,ey as W,ff as me,fv as he,gc as ge,hc as _e,hl as ve,im as ye,iv as be,jf as xe,kr as Se,lf as Ce,mc as G,ml as we,ng as Te,ny as K,on as Ee,oy as q,pg as De,py as Oe,ry as J,sg as ke,ty as Y,uf as Ae,ur as X,uy as je,vs as Me,vy as Z,wd as Ne,wr as Pe,xd as Fe,yd as Ie,yu as Le,yv as Re}from"./index-D_aS89pX.js";import{t as ze}from"./use-platform-assistant-id-CLcP1OSp.js";var Be=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`}]]),Ve=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`}]]),Q=e(s(),1);function He({assistantId:e,providerKey:n,displayName:r,managedAvailable:i,connectionsQueryKey:o,allConnections:s}){let c=a(),l=De(),u=(0,Q.useRef)(null),d=(0,Q.useRef)(null),f=(0,Q.useRef)(null),p=(0,Q.useRef)(null),[m,h]=(0,Q.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,Q.useCallback)(e=>{if(e.type!==`vellum:oauth-complete`||!d.current||e.requestId!==d.current.requestId)return;let{oauthStatus:n,oauthCode:i}=e;_(),g(),n===`connected`?(Y.success(t(`useOauthConnect.accountConnected`,{name:r})),c.invalidateQueries({queryKey:o})):Y.error(i?t(`useOauthConnect.authorizationError`,{name:r,code:i}):t(`useOauthConnect.authorizationFailed`,{name:r}))},[o,r,c]),y=(0,Q.useCallback)(async(e,t)=>{if(!i)return!1;for(let r=0;r<8;r+=1){r>0&&await Pe(750);try{if(c.invalidateQueries({queryKey:o}),N(await c.fetchQuery({...G({path:{assistant_id:e}}),staleTime:0}),n,t))return!0}catch{}}return!1},[o,i,n,c]);(0,Q.useEffect)(()=>{let e=e=>{let t=d.current;if(!t)return;let n=ie(e,window.location.origin,t.requestId);n&&v(n)},t=e=>{let t=d.current;if(!t)return;let n=F(e,t.requestId);n&&(v(n),window.localStorage.removeItem(P(t.requestId)))};return window.addEventListener(`message`,e),window.addEventListener(`storage`,t),()=>{window.removeEventListener(`message`,e),window.removeEventListener(`storage`,t)}},[v]),Se((0,Q.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,Q.useEffect)(()=>de(()=>{let e=d.current;e&&(async()=>{let n=await y(e.platformAssistantId,e.baselineConnectionSignatures);d.current&&(g(),n&&Y.success(t(`useOauthConnect.accountConnected`,{name:r})))})()}),[y,r]),(0,Q.useEffect)(()=>()=>{f.current&&clearInterval(f.current),p.current&&clearTimeout(p.current),u.current&&!u.current.closed&&u.current.close()},[]);let b=ve();return{handleConnect:(a=[])=>{if(!i)return;let o=crypto.randomUUID();h(!0);let m=async i=>{let u;try{u=await te(e)}catch(e){_(),g(),Y.error(e instanceof Error?e.message:t(`useOauthConnect.startFailed`,{name:r}));return}let f=ne(await c.fetchQuery({...G({path:{assistant_id:u}}),staleTime:0}).catch(()=>u===e?s??[]:[]),n);d.current={requestId:o,provider:n,platformAssistantId:u,baselineConnectionSignatures:f},b.mutate({path:{assistant_id:u,provider:n},body:{requested_scopes:a,redirect_after_connect:`${be.account.oauth.popupComplete}?requestId=${o}${l?`&native=1`:``}`}},{onSuccess(e){if(l){ke(e.connect_url);return}i&&!i.closed?i.location.href=e.connect_url:d.current&&(_(),g(),Y.error(t(`useOauthConnect.popupClosed`,{name:r})))},onError(e){_(),g();let n=Re(e,void 0,t(`useOauthConnect.startFailed`,{name:r}));Y.error(n)}})};if(l){m(null);return}let x=window.open(``,`_blank`,`width=500,height=600`);if(x===null){g(),Y.error(t(`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 n=window.localStorage.getItem(P(e.requestId));if(n){let t=z(n);if(t&&t.requestId===e.requestId){v(t),window.localStorage.removeItem(P(e.requestId));return}}let i=await y(e.platformAssistantId,e.baselineConnectionSignatures);if(d.current){if(i){_(),g(),Y.success(t(`useOauthConnect.accountConnected`,{name:r}));return}_(),g(),Y.error(t(`useOauthConnect.authPopupClosed`,{name:r}))}},1e3))},100),m(x)},oauthInProgress:m,startOAuthPending:b.isPending}}var $=u();function Ue({displayName:e,providerKey:t,logoUrl:n,connections:r,connectionsLoading:i,startPending:a,oauthInProgress:s,disconnectingId:c,onConnect:l,onDisconnect:u,connectPresets:d=[]}){let{t:f}=o(`settings`),p=a||s;return i?(0,$.jsx)(`div`,{className:`flex items-center justify-center py-10`,children:(0,$.jsx)(D,{className:`h-5 w-5 animate-spin text-[var(--content-disabled)]`})}):r.length===0?a||s?(0,$.jsxs)(`div`,{className:`flex flex-col items-center gap-3 py-10`,children:[(0,$.jsx)(X,{providerKey:t,displayName:e,logoUrl:n,size:48}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,$.jsx)(D,{className:`h-3.5 w-3.5 animate-spin`}),f(`managedOauthTab.waitingForAuthorization`)]})]}):(0,$.jsxs)(`div`,{className:`flex flex-col items-center gap-3 py-10`,children:[(0,$.jsx)(X,{providerKey:t,displayName:e,logoUrl:n,size:48}),(0,$.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-secondary)]`,children:f(`managedOauthTab.connectToContinue`)}),(0,$.jsxs)(`div`,{className:`flex flex-col items-center gap-2`,children:[(0,$.jsx)(V,{variant:`primary`,size:`compact`,leftIcon:(0,$.jsx)(E,{}),onClick:()=>l(),disabled:p,children:f(`managedOauthTab.connectAccount`)}),d.map(e=>(0,$.jsx)(V,{variant:`outlined`,size:`compact`,leftIcon:(0,$.jsx)(Ve,{}),onClick:()=>l(e.scopes),disabled:p,children:e.label},e.id))]})]}):(0,$.jsxs)(`div`,{className:`rounded-lg border border-[var(--border-base)]`,children:[(0,$.jsx)(`ul`,{className:`divide-y divide-[var(--border-base)]`,children:r.map(r=>{let i=c===r.id,a=r.account_label??f(`managedOauthTab.accountFallback`,{name:e});return(0,$.jsxs)(`li`,{className:`flex items-center gap-3 px-4 py-3`,children:[(0,$.jsx)(X,{providerKey:t,displayName:e,logoUrl:n,size:20}),(0,$.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-body-medium-default text-[var(--content-default)]`,children:a}),(0,$.jsx)(V,{variant:`dangerOutline`,size:`compact`,iconOnly:i?(0,$.jsx)(D,{className:`animate-spin`}):(0,$.jsx)(k,{}),onClick:()=>u(r),disabled:i,"aria-label":f(`managedOauthTab.disconnectAriaLabel`,{account:a})})]},r.id)})}),(0,$.jsx)(`div`,{className:`border-t border-[var(--border-base)] px-4 py-3 dark:border-[var(--border-base)]`,children:p?(0,$.jsxs)(`div`,{className:`flex items-center gap-2 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,$.jsx)(D,{className:`h-3.5 w-3.5 animate-spin`}),f(`managedOauthTab.waitingForAuthorization`)]}):(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,$.jsx)(V,{variant:`primary`,size:`compact`,leftIcon:(0,$.jsx)(T,{}),onClick:()=>l(),disabled:p,children:f(`managedOauthTab.connectAccountLower`)}),d.map(e=>(0,$.jsx)(V,{variant:`outlined`,size:`compact`,leftIcon:(0,$.jsx)(Ve,{}),onClick:()=>l(e.scopes),disabled:p,children:e.label},e.id))]})})]})}function We(e){return e.length>16?`${e.slice(0,12)}…${e.slice(-4)}`:e.length>8?`${e.slice(0,8)}…`:e}function Ge(e){try{return new Date(e).toLocaleDateString(void 0,{year:`numeric`,month:`short`,day:`numeric`})}catch{return``}}function Ke({assistantId:e,providerKey:t,displayName:n,logoUrl:s}){let{t:c}=o(`settings`),l=a(),u=i({...Fe({path:{assistant_id:e},query:{provider_key:t}}),select:e=>e.apps}),f=i({...M({path:{assistant_id:e,providerKey:t}}),select:e=>e.oauth_callback_url}),p=u.data??[],m=f.data??null,h=r({queries:p.map(t=>({...Ie({path:{assistant_id:e,appId:t.id}}),select:e=>e.connections}))}),g={};p.forEach((e,t)=>{g[e.id]=h[t]?.data??[]});let _=ee({path:{assistant_id:e},query:{provider_key:t}}),v=fe({onSuccess:()=>{l.invalidateQueries({queryKey:_}),A(``),N(``),C(!1),Y.success(c(`yourOwnOauthTab.appAddedToast`,{name:n}))},onError:e=>{Y.error(e.message||c(`yourOwnOauthTab.createFailedToast`))}}),y=Ae({onSuccess:()=>{l.invalidateQueries({queryKey:_}),Y.success(c(`yourOwnOauthTab.appDeletedToast`))},onError:e=>{Y.error(e.message||c(`yourOwnOauthTab.deleteFailedToast`))}}),b=Ce({onSuccess:e=>{`auth_url`in e&&(window.location.href=e.auth_url)},onError:e=>{Y.error(e.message||c(`yourOwnOauthTab.connectFailedToast`))}}),x=me(),[S,C]=(0,Q.useState)(!1),[w,A]=(0,Q.useState)(``),[j,N]=(0,Q.useState)(``),[P,F]=(0,Q.useState)(!1),[I,L]=(0,Q.useState)(null),[R,z]=(0,Q.useState)(null),B=v.isPending,te=y.isPending?y.variables?.path?.id??null:null,ne=b.isPending?b.variables?.path?.appId??null:null,re=x.isPending?x.variables?.path?.id??null:null,ie=()=>{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}})},ae=()=>{let t=I;L(null),t&&y.mutate({path:{assistant_id:e,id:t.id}})},oe=t=>{b.mutate({path:{assistant_id:e,appId:t.id},body:{callback_transport:`gateway`,scopes:[]}})};return u.isLoading?(0,$.jsx)(`div`,{className:`flex items-center justify-center py-10`,children:(0,$.jsx)(D,{className:`h-5 w-5 animate-spin text-[var(--content-disabled)]`})}):(0,$.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[p.length===0||S?(0,$.jsx)(Z.Root,{children:(0,$.jsxs)(Z.Body,{className:`flex flex-col gap-3`,children:[(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-default)]`,children:p.length===0?c(`yourOwnOauthTab.addOwnApp`,{name:n}):c(`yourOwnOauthTab.addAnotherApp`,{name:n})}),(0,$.jsx)(`p`,{className:`text-body-small-default leading-relaxed text-[var(--content-tertiary)]`,children:c(`yourOwnOauthTab.credentialsNote`)})]}),m?(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`p`,{className:`text-body-small-default text-[var(--content-secondary)]`,children:c(`yourOwnOauthTab.redirectUrl`)}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(H,{type:`text`,value:m,readOnly:!0,fullWidth:!0}),(0,$.jsx)(V,{type:`button`,variant:`outlined`,size:`compact`,onClick:()=>{Te(m,{successMessage:c(`yourOwnOauthTab.copiedToast`),errorMessage:c(`yourOwnOauthTab.copyFailedToast`),onCopied:()=>{F(!0),setTimeout(()=>F(!1),2e3)}})},"aria-label":c(P?`yourOwnOauthTab.copiedAria`:`yourOwnOauthTab.copyRedirectAria`),iconOnly:P?(0,$.jsx)(d,{"aria-hidden":!0}):(0,$.jsx)(O,{"aria-hidden":!0})})]}),(0,$.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:c(`yourOwnOauthTab.redirectHint`)})]}):null,(0,$.jsx)(H,{label:c(`yourOwnOauthTab.clientId`),type:`text`,value:w,onChange:e=>A(e.target.value),placeholder:c(`yourOwnOauthTab.clientIdPlaceholder`),fullWidth:!0}),(0,$.jsx)(H,{label:c(`yourOwnOauthTab.clientSecret`),type:`password`,value:j,onChange:e=>N(e.target.value),placeholder:c(`yourOwnOauthTab.clientSecretPlaceholder`),fullWidth:!0}),(0,$.jsxs)(`div`,{className:`flex items-center justify-end gap-2 pt-1`,children:[p.length>0?(0,$.jsx)(V,{type:`button`,variant:`outlined`,size:`compact`,onClick:()=>{C(!1),A(``),N(``)},disabled:B,children:c(`yourOwnOauthTab.cancel`)}):null,(0,$.jsx)(V,{type:`button`,size:`compact`,onClick:ie,disabled:B||!w.trim()||!j.trim(),leftIcon:B?(0,$.jsx)(D,{className:`animate-spin`,"aria-hidden":!0}):(0,$.jsx)(E,{"aria-hidden":!0}),children:c(`yourOwnOauthTab.addApp`)})]})]})}):null,p.map(e=>{let r=g[e.id]??[],i=te===e.id,a=ne===e.id;return(0,$.jsx)(Z.Root,{children:(0,$.jsxs)(Z.Body,{className:`flex flex-col gap-3`,children:[(0,$.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[(0,$.jsxs)(`div`,{className:`min-w-0 space-y-0.5`,children:[(0,$.jsx)(`p`,{className:`truncate text-body-medium-default text-[var(--content-default)]`,children:We(e.client_id)}),(0,$.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:c(`yourOwnOauthTab.addedOn`,{date:Ge(e.created_at)})})]}),(0,$.jsx)(V,{type:`button`,variant:`dangerOutline`,size:`compact`,onClick:()=>L(e),disabled:i,"aria-label":c(`yourOwnOauthTab.deleteAppAria`,{id:We(e.client_id)}),iconOnly:i?(0,$.jsx)(D,{className:`animate-spin`,"aria-hidden":!0}):(0,$.jsx)(k,{"aria-hidden":!0})})]}),r.length>0?(0,$.jsx)(`ul`,{className:`divide-y divide-[var(--border-base)] overflow-hidden rounded-md border border-[var(--border-base)] dark:divide-[var(--border-base)] dark:border-[var(--border-base)]`,children:r.map(r=>{let i=re===r.id,a=r.account_info??c(`yourOwnOauthTab.accountFallback`,{name:n});return(0,$.jsxs)(`li`,{className:`flex items-center gap-3 px-3 py-2`,children:[(0,$.jsx)(X,{providerKey:t,displayName:n,logoUrl:s,size:18}),(0,$.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-body-medium-lighter text-[var(--content-default)]`,children:a}),(0,$.jsx)(V,{type:`button`,variant:`dangerOutline`,size:`compact`,onClick:()=>z({appId:e.id,connection:r}),disabled:i,"aria-label":c(`yourOwnOauthTab.disconnectAria`,{account:a}),iconOnly:i?(0,$.jsx)(D,{className:`animate-spin`,"aria-hidden":!0}):(0,$.jsx)(k,{"aria-hidden":!0})})]},r.id)})}):null,(0,$.jsx)(V,{type:`button`,size:`compact`,onClick:()=>oe(e),disabled:a,className:`w-full`,leftIcon:a?(0,$.jsx)(D,{className:`animate-spin`,"aria-hidden":!0}):(0,$.jsx)(T,{"aria-hidden":!0}),children:c(a?`yourOwnOauthTab.waitingAuthorization`:`yourOwnOauthTab.connectAccount`)})]})},e.id)}),p.length>0&&!S?(0,$.jsx)(V,{type:`button`,variant:`outlined`,size:`compact`,onClick:()=>C(!0),className:`w-full border-dashed`,leftIcon:(0,$.jsx)(E,{"aria-hidden":!0}),children:c(`yourOwnOauthTab.addAnotherAppButton`)}):null,(0,$.jsx)(W,{open:I!==null,title:c(`yourOwnOauthTab.deleteAppTitle`),message:I?c(`yourOwnOauthTab.deleteAppMessage`,{id:We(I.client_id)}):``,confirmLabel:c(`yourOwnOauthTab.delete`),destructive:!0,onConfirm:ae,onCancel:()=>L(null)}),(0,$.jsx)(W,{open:R!==null,title:c(`yourOwnOauthTab.disconnectTitle`,{name:n}),message:R?c(`yourOwnOauthTab.disconnectMessage`,{account:R.connection.account_info??c(`yourOwnOauthTab.accountFallback`,{name:n})}):``,confirmLabel:c(`yourOwnOauthTab.disconnect`),destructive:!0,onConfirm:()=>{let t=R;z(null),t&&x.mutate({path:{assistant_id:e,id:t.connection.id}},{onSuccess:()=>{let r=ue({path:{assistant_id:e,appId:t.appId}});l.invalidateQueries({queryKey:r}),l.invalidateQueries({queryKey:_}),Y.success(c(`yourOwnOauthTab.disconnectedToast`,{name:n}))},onError:e=>{Y.error(e.message||c(`yourOwnOauthTab.disconnectFailedToast`))}})},onCancel:()=>z(null)})]})}var qe={};function Je(e){return qe[e]??[]}function Ye({assistantId:e,platformAssistantId:t,providerKey:n,displayName:r,description:s,logoUrl:c,platformGate:l,onClose:u}){let{t:d}=o(`settings`),f=a(),p=l===`full`,m=!xe(),[h,g]=(0,Q.useState)(l===`gated`&&m?`your-own`:`managed`),_=(0,Q.useMemo)(()=>[{value:`managed`,label:d(`integrationDetailModal.managedTab`)},{value:`your-own`,label:d(`integrationDetailModal.yourOwnTab`)}],[d]);(0,Q.useEffect)(()=>{!m&&h===`your-own`&&g(`managed`)},[m,h]);let[v,y]=(0,Q.useState)(null),[b,S]=(0,Q.useState)(null),C=_e({path:{assistant_id:t}}),{data:w,isLoading:T}=i({...G({path:{assistant_id:t}}),enabled:p}),E=(w??[]).filter(e=>e.provider===n&&e.connected),{handleConnect:D,oauthInProgress:O,startOAuthPending:k}=He({assistantId:e,providerKey:n,displayName:r,managedAvailable:p,connectionsQueryKey:C,allConnections:w}),A={path:{assistant_id:t}},j=we({onSuccess(e,t){Y.success(d(`integrationDetailModal.disconnectedToast`,{name:r}));let n=t.path.connection_id;ge(f,A,e=>e?.filter(e=>e.id!==n)),f.invalidateQueries({queryKey:C}),y(null)},onError(e){let t=Re(e,void 0,d(`integrationDetailModal.disconnectFailedToast`,{name:r}));Y.error(t),y(null)}});L(),(0,Q.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:r}),F=s?d(`integrationDetailModal.subtitleWithDescription`,{name:r,description:s}):d(`integrationDetailModal.subtitle`,{name:r});return(0,$.jsxs)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/40 p-4`,children:[(0,$.jsxs)(`div`,{role:`dialog`,"aria-modal":`true`,"aria-labelledby":`integration-modal-title`,className:`flex w-full max-w-[520px] flex-col overflow-hidden rounded-xl bg-white shadow-xl dark:bg-[var(--surface-lift)]`,children:[(0,$.jsxs)(`div`,{className:`flex items-start justify-between gap-3 border-b border-[var(--border-base)] px-5 py-4 dark:border-[var(--border-base)]`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,$.jsx)(X,{providerKey:n,displayName:r,logoUrl:c,size:32}),(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`h2`,{id:`integration-modal-title`,className:`text-title-small text-[var(--content-default)]`,children:d(`integrationDetailModal.title`,{name:r})}),(0,$.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:F})]})]}),(0,$.jsx)(V,{variant:`ghost`,size:`compact`,iconOnly:(0,$.jsx)(x,{}),"aria-label":d(`integrationDetailModal.close`),onClick:u})]}),(0,$.jsxs)(`div`,{className:`space-y-4 px-5 py-4`,children:[l!==`gated`&&m&&(0,$.jsx)(le,{ariaLabel:d(`integrationDetailModal.oauthModeAriaLabel`),items:_,value:h,onChange:g}),h===`managed`&&l!==`gated`?l===`disabled`?(0,$.jsx)(Ee,{children:d(`integrationDetailModal.loginNotice`)}):(0,$.jsx)(Ue,{displayName:r,providerKey:n,logoUrl:c,connections:E,connectionsLoading:T,startPending:k,oauthInProgress:O,disconnectingId:j.isPending?v:null,onConnect:D,onDisconnect:M,connectPresets:Je(n)}):m?(0,$.jsx)(Ke,{assistantId:e,providerKey:n,displayName:r,logoUrl:c}):null]}),(0,$.jsx)(`div`,{className:`flex justify-end border-t border-[var(--border-base)] px-5 py-3 dark:border-[var(--border-base)]`,children:(0,$.jsx)(V,{variant:`outlined`,size:`compact`,onClick:u,children:d(`integrationDetailModal.confirm`)})})]}),(0,$.jsx)(W,{open:b!==null,title:d(`integrationDetailModal.disconnectTitle`,{name:r}),message:b?d(`integrationDetailModal.disconnectMessage`,{account:P}):``,confirmLabel:d(`integrationDetailModal.disconnect`),destructive:!0,onConfirm:N,onCancel:()=>S(null)})]})}function Xe({platformAssistantId:e,providerKey:t,displayName:n,description:r,logoUrl:i,connection:s,platformGate:c,onConfigure:l}){let{t:u}=o(`settings`),d=a(),f=!!s?.connected,[p,m]=(0,Q.useState)(!1),[h,g]=(0,Q.useState)(!1),_=_e({path:{assistant_id:e}}),v={path:{assistant_id:e}},y=we({onSuccess(e,t){Y.success(u(`integrationRow.disconnectedToast`,{name:n}));let r=t.path.connection_id;ge(d,v,e=>e?.filter(e=>e.id!==r)),d.invalidateQueries({queryKey:_})},onError(e){let t=Re(e,void 0,u(`integrationRow.disconnectFailedToast`,{name:n}));Y.error(t)}}),b=()=>{s?.id&&g(!0)};return(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(Z.Root,{children:(0,$.jsxs)(Z.Body,{padding:`sm`,className:`flex items-center gap-4 px-4`,children:[(0,$.jsx)(X,{providerKey:t,displayName:n,logoUrl:i,size:32}),(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,$.jsx)(`p`,{className:`truncate text-title-small text-[var(--content-default)]`,children:n}),r&&(0,$.jsx)(`p`,{className:`truncate text-body-medium-lighter text-[var(--content-tertiary)]`,children:r})]}),f&&c===`full`?(0,$.jsx)(`div`,{className:`shrink-0`,children:(0,$.jsx)(Ze,{displayName:n,open:p,onOpenChange:m,onEditConnections:()=>{m(!1),l()},onDisable:()=>{m(!1),b()},disablePending:y.isPending})}):(0,$.jsx)(V,{variant:`primary`,onClick:l,className:`shrink-0`,children:u(`integrationRow.enable`)})]})}),(0,$.jsx)(W,{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 Ze({displayName:e,open:t,onOpenChange:n,onEditConnections:r,onDisable:i,disablePending:a}){let{t:s}=o(`settings`);return pe()?(0,$.jsxs)(K.Root,{open:t,onOpenChange:n,children:[(0,$.jsx)(K.Trigger,{asChild:!0,children:(0,$.jsx)(V,{variant:`outlined`,rightIcon:(0,$.jsx)(j,{}),"aria-haspopup":`menu`,"aria-expanded":t,children:s(`integrationRow.configure`)})}),(0,$.jsxs)(K.Content,{children:[(0,$.jsx)(K.Header,{children:(0,$.jsx)(K.Title,{children:e})}),(0,$.jsxs)(K.Body,{children:[(0,$.jsx)(se,{icon:y,label:s(`integrationRow.editConnections`),onSelect:r}),(0,$.jsx)(se,{icon:a?D:f,label:s(`integrationRow.disable`),onSelect:()=>{a||i()}})]})]})]}):(0,$.jsxs)(Oe.Root,{open:t,onOpenChange:n,children:[(0,$.jsx)(Oe.Trigger,{asChild:!0,children:(0,$.jsx)(V,{variant:`outlined`,rightIcon:(0,$.jsx)(j,{}),"aria-haspopup":`menu`,"aria-expanded":t,children:s(`integrationRow.configure`)})}),(0,$.jsxs)(Oe.Content,{align:`end`,sideOffset:4,role:`menu`,className:`w-56 overflow-hidden p-0`,children:[(0,$.jsx)(V,{type:`button`,role:`menuitem`,variant:`ghost`,onClick:r,className:`w-full justify-start rounded-none`,leftIcon:(0,$.jsx)(y,{"aria-hidden":!0}),children:s(`integrationRow.editConnections`)}),(0,$.jsx)(V,{type:`button`,role:`menuitem`,variant:`dangerGhost`,onClick:i,disabled:a,className:`w-full justify-start rounded-none`,leftIcon:a?(0,$.jsx)(D,{className:`animate-spin`,"aria-hidden":!0}):(0,$.jsx)(f,{"aria-hidden":!0}),children:s(`integrationRow.disable`)})]})]})}var Qe=[{value:`none`,labelKey:`mcpAddServerModal.authNone`},{value:`oauth`,labelKey:`mcpAddServerModal.authOAuth`},{value:`bearer`,labelKey:`mcpAddServerModal.authBearer`},{value:`api-key`,labelKey:`mcpAddServerModal.authApiKey`}],$e=[{value:`sse`,labelKey:`mcpAddServerModal.transportSse`},{value:`streamable-http`,labelKey:`mcpAddServerModal.transportStreamableHttp`},{value:`stdio`,labelKey:`mcpAddServerModal.transportStdio`}];function et(e){return Qe.map(({value:t,labelKey:n})=>({value:t,label:e(n)}))}function tt(e){return $e.map(({value:t,labelKey:n})=>({value:t,label:e(n)}))}function nt({open:e,onClose:t,onAdd:n,isPending:r}){let{t:i}=o(`settings`),a=(0,Q.useMemo)(()=>et(i),[i]),s=(0,Q.useMemo)(()=>tt(i),[i]),[c,l]=(0,Q.useState)(``),[u,d]=(0,Q.useState)(`sse`),[f,p]=(0,Q.useState)(``),[m,h]=(0,Q.useState)(``),[g,_]=(0,Q.useState)(``),[v,y]=(0,Q.useState)(`none`),[b,x]=(0,Q.useState)(``),[S,C]=(0,Q.useState)(`X-API-Key`),[w,T]=(0,Q.useState)(``),E=(0,Q.useCallback)(()=>{l(``),d(`sse`),p(``),h(``),_(``),y(`none`),x(``),C(`X-API-Key`),T(``)},[]),D=(0,Q.useCallback)(()=>{r||(E(),t())},[r,E,t]),O=(0,Q.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,$.jsx)(J.Root,{open:e,onOpenChange:e=>{e||D()},children:(0,$.jsxs)(J.Content,{size:`md`,children:[(0,$.jsxs)(J.Header,{icon:Be,children:[(0,$.jsx)(J.Title,{children:i(`mcpAddServerModal.title`)}),(0,$.jsx)(J.Description,{children:i(`mcpAddServerModal.description`)})]}),(0,$.jsx)(J.Body,{children:(0,$.jsxs)(`div`,{className:`space-y-4`,children:[(0,$.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,$.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`mcp-name`,children:i(`mcpAddServerModal.serverNameLabel`)}),(0,$.jsx)(H,{id:`mcp-name`,type:`text`,value:c,onChange:e=>l(e.target.value),placeholder:i(`mcpAddServerModal.namePlaceholder`),fullWidth:!0,autoFocus:!0})]}),(0,$.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,$.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`mcp-transport`,children:i(`mcpAddServerModal.transportLabel`)}),(0,$.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,$.jsx)(`option`,{value:e.value,children:e.label},e.value))})]}),k?(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,$.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`mcp-command`,children:i(`mcpAddServerModal.commandLabel`)}),(0,$.jsx)(H,{id:`mcp-command`,type:`text`,value:m,onChange:e=>h(e.target.value),placeholder:i(`mcpAddServerModal.commandPlaceholder`),fullWidth:!0})]}),(0,$.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,$.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`mcp-args`,children:i(`mcpAddServerModal.argsLabel`)}),(0,$.jsx)(H,{id:`mcp-args`,type:`text`,value:g,onChange:e=>_(e.target.value),placeholder:i(`mcpAddServerModal.argsPlaceholder`),fullWidth:!0})]})]}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,$.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`mcp-url`,children:i(`mcpAddServerModal.serverUrlLabel`)}),(0,$.jsx)(H,{id:`mcp-url`,type:`url`,value:f,onChange:e=>p(e.target.value),placeholder:i(`mcpAddServerModal.urlPlaceholder`),fullWidth:!0})]}),(0,$.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,$.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`mcp-auth`,children:i(`mcpAddServerModal.authenticationLabel`)}),(0,$.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:a.map(e=>(0,$.jsx)(`option`,{value:e.value,children:e.label},e.value))})]}),v===`oauth`?(0,$.jsx)(`p`,{className:`rounded-md border border-[var(--border-element)] bg-[var(--surface-base)] px-3 py-2 text-body-small-default text-[var(--content-tertiary)]`,children:i(`mcpAddServerModal.oauthHint`)}):null,v===`bearer`?(0,$.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,$.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`mcp-bearer`,children:i(`mcpAddServerModal.bearerTokenLabel`)}),(0,$.jsx)(H,{id:`mcp-bearer`,type:`password`,value:b,onChange:e=>x(e.target.value),placeholder:i(`mcpAddServerModal.bearerPlaceholder`),fullWidth:!0})]}):null,v===`api-key`?(0,$.jsxs)(`div`,{className:`flex gap-3`,children:[(0,$.jsxs)(`div`,{className:`flex-1 space-y-1.5`,children:[(0,$.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`mcp-apikey-header`,children:i(`mcpAddServerModal.headerNameLabel`)}),(0,$.jsx)(H,{id:`mcp-apikey-header`,type:`text`,value:S,onChange:e=>C(e.target.value),placeholder:i(`mcpAddServerModal.apiKeyHeaderPlaceholder`),fullWidth:!0})]}),(0,$.jsxs)(`div`,{className:`flex-1 space-y-1.5`,children:[(0,$.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`mcp-apikey-value`,children:i(`mcpAddServerModal.apiKeyLabel`)}),(0,$.jsx)(H,{id:`mcp-apikey-value`,type:`password`,value:w,onChange:e=>T(e.target.value),placeholder:i(`mcpAddServerModal.apiKeyPlaceholder`),fullWidth:!0})]})]}):null]})]})}),(0,$.jsxs)(J.Footer,{children:[(0,$.jsx)(V,{variant:`ghost`,onClick:D,disabled:r,children:i(`mcpAddServerModal.cancel`)}),(0,$.jsx)(V,{variant:`primary`,onClick:O,disabled:!A||r,children:i(r?`mcpAddServerModal.adding`:`mcpAddServerModal.addServer`)})]})]})})}async function rt(e){let{data:t,response:n}=await U.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 it(e){let{data:t,response:n}=await U.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 at(e,t){let{response:n}=await U.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 ot(e,t){let{response:n}=await U.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 st(e,t){let{response:n}=await U.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 ct(e,t){let{data:n,response:r}=await U.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 lt(e,t){let{data:n,response:r}=await U.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 ut(e,t){let{response:n}=await U.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 dt(e){let{response:t}=await U.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 ft={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)]`}},pt={icon:p,className:`text-[var(--system-negative-strong)]`};function mt(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 ht({server:e,toolsSummary:t,onToggleEnabled:n,onRemove:r,onConfigure:i,onAuthenticate:a,onRevokeOAuth:s,isUpdating:c,isAuthenticating:l,isRevoking:u}){let{t:d}=o(`settings`),[f,p]=(0,Q.useState)(!1),m=ft[e.status]??pt,g=m.icon,y=(0,Q.useCallback)(t=>n(e.id,t),[n,e.id]),x=(0,Q.useCallback)(()=>r(e.id),[r,e.id]),S=(0,Q.useCallback)(()=>i(e.id),[i,e.id]),C=(0,Q.useCallback)(()=>a(e.id),[a,e.id]),w=(0,Q.useCallback)(()=>s(e.id),[s,e.id]),T=(0,Q.useCallback)(()=>p(e=>!e),[]);return(0,$.jsx)(Z.Root,{children:(0,$.jsxs)(Z.Body,{children:[(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,$.jsx)(`div`,{className:`flex min-w-0 flex-1 items-center gap-3`,children:(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(`span`,{className:`truncate text-body-medium-default text-[var(--content-default)]`,children:e.id}),(0,$.jsxs)(`span`,{className:`flex items-center gap-1 text-label-medium-default ${m.className}`,children:[(0,$.jsx)(g,{className:`h-3.5 w-3.5`}),mt(e.status,d)]}),e.hasOAuth?(0,$.jsx)(`span`,{className:`rounded-full bg-[var(--surface-lift)] px-2 py-0.5 text-label-small-default text-[var(--content-secondary)]`,children:d(`mcpServerCard.oauthBadge`)}):null]}),(0,$.jsxs)(`div`,{className:`mt-0.5 flex items-center gap-2 text-body-small-default text-[var(--content-tertiary)]`,children:[(0,$.jsx)(`span`,{children:e.transport.type}),t?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`span`,{"aria-hidden":`true`,children:`·`}),(0,$.jsx)(`span`,{children:d(`mcpServerCard.toolCount`,{count:t.toolCount})}),(0,$.jsx)(`span`,{"aria-hidden":`true`,children:`·`}),(0,$.jsx)(`span`,{children:d(`mcpServerCard.estimatedTokens`,{count:t.estimatedTokens.toLocaleString()})})]}):null]})]})}),(0,$.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[c||l?(0,$.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,$.jsx)(V,{variant:`ghost`,size:`compact`,leftIcon:(0,$.jsx)(_,{}),onClick:C,disabled:l,children:d(l?`mcpServerCard.authenticating`:`mcpServerCard.authenticate`)}):null,e.hasOAuth?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(V,{variant:`ghost`,size:`compact`,leftIcon:(0,$.jsx)(b,{}),onClick:C,disabled:l,tooltip:d(`mcpServerCard.reAuthTooltip`),children:d(`mcpServerCard.reAuth`)}),(0,$.jsx)(V,{variant:`dangerGhost`,size:`compact`,leftIcon:(0,$.jsx)(v,{}),onClick:w,disabled:u,tooltip:d(`mcpServerCard.revokeOAuthTooltip`),children:d(u?`mcpServerCard.revoking`:`mcpServerCard.revoke`)})]}):null,(0,$.jsx)(je,{checked:e.enabled,onChange:y,disabled:c,"aria-label":e.enabled?d(`mcpServerCard.toggleDisableAriaLabel`,{serverId:e.id}):d(`mcpServerCard.toggleEnableAriaLabel`,{serverId:e.id})}),(0,$.jsx)(V,{variant:`ghost`,size:`compact`,onClick:S,tooltip:d(`mcpServerCard.configureTooltip`),children:d(`mcpServerCard.configure`)}),(0,$.jsx)(V,{variant:`dangerGhost`,size:`compact`,iconOnly:(0,$.jsx)(k,{}),onClick:x,tooltip:d(`mcpServerCard.removeServerTooltip`),"aria-label":d(`mcpServerCard.removeServerAriaLabel`,{serverId:e.id})})]})]}),t&&t.tools.length>0?(0,$.jsxs)(`div`,{className:`mt-3 border-t border-[var(--border-base)] pt-2`,children:[(0,$.jsxs)(`button`,{type:`button`,onClick: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,$.jsx)(j,{className:`h-3.5 w-3.5`}):(0,$.jsx)(h,{className:`h-3.5 w-3.5`}),d(`mcpServerCard.registeredTools`,{count:t.toolCount})]}),f?(0,$.jsx)(`div`,{className:`mt-2 max-h-60 overflow-y-auto`,children:t.tools.map(e=>(0,$.jsx)(B,{title:e.name,subtitle:e.description||void 0,trailing:(0,$.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 gt=[`none`,`bearer`,`api-key`],_t=[`low`,`medium`,`high`];function vt(e,t){switch(e){case`none`:return t(`mcpServerDetailModal.authNone`);case`bearer`:return t(`mcpServerDetailModal.authBearerToken`);case`api-key`:return t(`mcpServerDetailModal.authApiKey`)}}function yt(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 bt({server:e,toolsSummary:t,onClose:n,onSave:r,isPending:i}){let{t:a}=o(`settings`),[s,c]=(0,Q.useState)(`medium`),[l,u]=(0,Q.useState)(`none`),[d,f]=(0,Q.useState)(``),[p,m]=(0,Q.useState)(`X-API-Key`),[h,g]=(0,Q.useState)(``);(0,Q.useEffect)(()=>{e&&(c(e.defaultRiskLevel),u(e.authType),f(``),m(e.authHeaderName??`X-API-Key`),g(``))},[e]);let _=(0,Q.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,Q.useCallback)(()=>{i||n()},[i,n]);return e?(0,$.jsx)(J.Root,{open:!!e,onOpenChange:e=>{e||v()},children:(0,$.jsxs)(J.Content,{size:`lg`,children:[(0,$.jsxs)(J.Header,{icon:Be,children:[(0,$.jsx)(J.Title,{children:e.id}),(0,$.jsx)(J.Description,{children:a(`mcpServerDetailModal.description`,{transport:e.transport.type,status:e.status})})]}),(0,$.jsx)(J.Body,{children:(0,$.jsxs)(`div`,{className:`space-y-5`,children:[(0,$.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,$.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`mcp-risk`,children:a(`mcpServerDetailModal.defaultRiskLevel`)}),(0,$.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:_t.map(e=>(0,$.jsx)(`option`,{value:e,children:yt(e,a)},e))})]}),e.transport.type===`stdio`?null:(0,$.jsxs)($.Fragment,{children:[e.hasOAuth?(0,$.jsxs)(`div`,{className:`flex items-center gap-2 rounded-md border border-[var(--border-element)] bg-[var(--surface-base)] px-3 py-2`,children:[(0,$.jsx)(`span`,{className:`text-body-small-default text-[var(--content-secondary)]`,children:a(`mcpServerDetailModal.authentication`)}),(0,$.jsx)(`span`,{className:`rounded-full bg-[var(--surface-lift)] px-2 py-0.5 text-label-small-default text-[var(--content-default)]`,children:a(`mcpServerDetailModal.oauthBadge`)}),(0,$.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:a(`mcpServerDetailModal.oauthManagedHint`)})]}):null,e.hasOAuth?null:(0,$.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,$.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`mcp-detail-auth`,children:a(`mcpServerDetailModal.authentication`)}),(0,$.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:gt.map(e=>(0,$.jsx)(`option`,{value:e,children:vt(e,a)},e))})]}),l===`bearer`&&!e.hasOAuth?(0,$.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,$.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`mcp-detail-bearer`,children:a(`mcpServerDetailModal.bearerToken`)}),(0,$.jsx)(H,{id:`mcp-detail-bearer`,type:`password`,value:d,onChange:e=>f(e.target.value),placeholder:e.hasStaticAuth&&e.authType===`bearer`?a(`mcpServerDetailModal.bearerTokenPlaceholderKeep`):a(`mcpServerDetailModal.bearerTokenPlaceholder`),fullWidth:!0})]}):null,l===`api-key`&&!e.hasOAuth?(0,$.jsxs)(`div`,{className:`flex gap-3`,children:[(0,$.jsxs)(`div`,{className:`flex-1 space-y-1.5`,children:[(0,$.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`mcp-detail-apikey-header`,children:a(`mcpServerDetailModal.headerName`)}),(0,$.jsx)(H,{id:`mcp-detail-apikey-header`,type:`text`,value:p,onChange:e=>m(e.target.value),placeholder:a(`mcpServerDetailModal.headerNamePlaceholder`),fullWidth:!0})]}),(0,$.jsxs)(`div`,{className:`flex-1 space-y-1.5`,children:[(0,$.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`mcp-detail-apikey-value`,children:a(`mcpServerDetailModal.apiKey`)}),(0,$.jsx)(H,{id:`mcp-detail-apikey-value`,type:`password`,value:h,onChange:e=>g(e.target.value),placeholder:e.hasStaticAuth&&e.authType===`api-key`?a(`mcpServerDetailModal.apiKeyPlaceholderKeep`):a(`mcpServerDetailModal.apiKeyPlaceholder`),fullWidth:!0})]})]}):null]}),t&&t.tools.length>0?(0,$.jsxs)(`div`,{className:`space-y-2`,children:[(0,$.jsx)(`h3`,{className:`text-body-medium-default text-[var(--content-default)]`,children:a(`mcpServerDetailModal.registeredToolsHeading`,{count:t.toolCount})}),(0,$.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:a(`mcpServerDetailModal.tokenOverhead`,{count:t.estimatedTokens.toLocaleString()})}),(0,$.jsx)(`div`,{className:`max-h-64 overflow-y-auto rounded-lg border border-[var(--border-base)]`,children:(0,$.jsxs)(`table`,{className:`w-full text-body-small-default`,children:[(0,$.jsx)(`thead`,{children:(0,$.jsxs)(`tr`,{className:`border-b border-[var(--border-base)] bg-[var(--surface-base)]`,children:[(0,$.jsx)(`th`,{className:`px-3 py-2 text-left font-medium text-[var(--content-secondary)]`,children:a(`mcpServerDetailModal.tableTool`)}),(0,$.jsx)(`th`,{className:`px-3 py-2 text-left font-medium text-[var(--content-secondary)]`,children:a(`mcpServerDetailModal.tableDescription`)}),(0,$.jsx)(`th`,{className:`px-3 py-2 text-right font-medium text-[var(--content-secondary)]`,children:a(`mcpServerDetailModal.tableTokens`)})]})}),(0,$.jsx)(`tbody`,{children:t.tools.map(e=>(0,$.jsxs)(`tr`,{className:`border-b border-[var(--border-base)] last:border-b-0`,children:[(0,$.jsx)(`td`,{className:`px-3 py-2 font-medium text-[var(--content-default)]`,children:e.name}),(0,$.jsx)(`td`,{className:`max-w-xs truncate px-3 py-2 text-[var(--content-tertiary)]`,children:e.description||a(`mcpServerDetailModal.emptyDescription`)}),(0,$.jsx)(`td`,{className:`px-3 py-2 text-right text-[var(--content-tertiary)]`,children:a(`mcpServerDetailModal.toolEstimatedTokens`,{count:e.estimatedTokens.toLocaleString()})})]},e.name))})]})})]}):null]})}),(0,$.jsxs)(J.Footer,{children:[(0,$.jsx)(V,{variant:`ghost`,onClick:v,disabled:i,children:a(`mcpServerDetailModal.cancel`)}),(0,$.jsx)(V,{variant:`primary`,onClick:_,disabled:i,children:a(i?`mcpServerDetailModal.saving`:`mcpServerDetailModal.save`)})]})]})}):null}var xt=`mcp-servers`,St=`mcp-tools-summary`;function Ct(){let{t:e}=o(`settings`),t=oe(),n=a(),r=c(),s=Le.use.mcpAddServer(),l=Le.use.hasHydrated(),[u,d]=(0,Q.useState)(!1),[f,p]=(0,Q.useState)(null),[m,h]=(0,Q.useState)(null),[g,_]=(0,Q.useState)(new Set),[v,y]=(0,Q.useState)(!1),[x,S]=(0,Q.useState)(!1),[C,w]=(0,Q.useState)(!1),[T,O]=(0,Q.useState)(!1),[k,A]=(0,Q.useState)(null),[j,M]=(0,Q.useState)(null),{data:N,isLoading:P,isError:F}=i({queryKey:[xt,t],queryFn:()=>rt(t)}),{data:I}=i({queryKey:[St,t],queryFn:()=>it(t)}),L=(0,Q.useCallback)(()=>{n.invalidateQueries({queryKey:[xt,t]}),n.invalidateQueries({queryKey:[St,t]})},[n,t]),R=(0,Q.useMemo)(()=>{let e=new Map;if(I)for(let t of I.servers)e.set(t.serverId,t);return e},[I]),z=(0,Q.useMemo)(()=>!f||!N?null:N.servers.find(e=>e.id===f)??null,[f,N]),B=(0,Q.useCallback)(async(n,r)=>{_(e=>new Set(e).add(n));try{await at(t,{name:n,enabled:r}),L()}catch{Y.error(e(r?`mcpPage.toastEnableFailed`:`mcpPage.toastDisableFailed`,{serverId:n}))}finally{_(e=>{let t=new Set(e);return t.delete(n),t})}},[t,L,e]),ee=(0,Q.useCallback)(async()=>{if(m){S(!0);try{await st(t,m),L(),Y.success(e(`mcpPage.toastRemoved`,{serverId:m})),h(null)}catch{Y.error(e(`mcpPage.toastRemoveFailed`,{serverId:m}))}finally{S(!1)}}},[m,t,L,e]),te=(0,Q.useCallback)(async n=>{A(n);let r;try{r=await ct(t,n)}catch{Y.error(e(`mcpPage.toastAuthStartFailed`,{serverId:n})),A(null);return}try{if(r.already_authenticated){Y.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 lt(t,n);if(r.status===`complete`){Y.success(e(`mcpPage.toastAuthenticatedSuccess`,{serverId:n})),L();return}if(r.status===`error`){Y.error(r.error??e(`mcpPage.toastAuthFailed`,{serverId:n}));return}}Y.error(e(`mcpPage.toastAuthTimedOut`,{serverId:n}))}catch{Y.error(e(`mcpPage.toastAuthPollingFailed`,{serverId:n}))}finally{A(null),L()}},[t,L,e]),ne=(0,Q.useCallback)(async n=>{M(n);try{await ut(t,n),L(),Y.success(e(`mcpPage.toastOAuthRevoked`,{serverId:n}))}catch{Y.error(e(`mcpPage.toastOAuthRevokeFailed`,{serverId:n}))}finally{M(null)}},[t,L,e]),re=(0,Q.useCallback)(async n=>{let r=n.autoAuth?window.open(`about:blank`,`_blank`,`noopener`):null;y(!0);try{await ot(t,n),L(),Y.success(e(`mcpPage.toastAdded`,{name:n.name})),d(!1)}catch{Y.error(e(`mcpPage.toastAddFailed`,{name:n.name})),r?.close(),y(!1);return}if(y(!1),n.autoAuth){A(n.name);try{let i=await ct(t,n.name);if(i.already_authenticated){r?.close(),Y.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 lt(t,n.name);if(r.status===`complete`){Y.success(e(`mcpPage.toastAuthenticatedSuccess`,{serverId:n.name})),L();return}if(r.status===`error`){Y.error(r.error??e(`mcpPage.toastAuthFailed`,{serverId:n.name}));return}}Y.error(e(`mcpPage.toastAuthTimedOut`,{serverId:n.name}))}catch{r?.close(),Y.error(e(`mcpPage.toastAuthStartFailed`,{serverId:n.name}))}finally{A(null),L()}}},[t,L,e]),ie=(0,Q.useCallback)(async(n,r)=>{w(!0);try{await at(t,r),L(),Y.success(e(`mcpPage.toastUpdated`,{serverId:n})),p(null)}catch{Y.error(e(`mcpPage.toastUpdateFailed`,{serverId:n}))}finally{w(!1)}},[t,L,e]),ae=(0,Q.useCallback)(async()=>{O(!0);try{await dt(t),L(),Y.success(e(`mcpPage.toastReloadSuccess`))}catch{Y.error(e(`mcpPage.toastReloadFailed`))}finally{O(!1)}},[t,L,e]),se=(0,Q.useCallback)(()=>{s?d(!0):Me(r,{prompt:e(`mcpPage.setupPrompt`)})},[s,r,e]),ce=N?.servers??[];return(0,$.jsxs)(`div`,{className:`space-y-4`,children:[(0,$.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`h2`,{className:`text-title-small text-[var(--content-default)]`,children:e(`mcpPage.title`)}),(0,$.jsx)(`p`,{className:`mt-0.5 text-body-small-default text-[var(--content-tertiary)]`,children:e(`mcpPage.subtitle`)})]}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(V,{variant:`ghost`,size:`compact`,iconOnly:(0,$.jsx)(b,{className:T?`animate-spin`:``}),onClick:ae,disabled:T,tooltip:e(`mcpPage.reloadTooltip`),"aria-label":e(`mcpPage.reloadAriaLabel`)}),s?(0,$.jsx)(V,{variant:`primary`,size:`compact`,leftIcon:(0,$.jsx)(E,{}),onClick:()=>d(!0),children:e(`mcpPage.addServerButton`)}):null]})]}),I?(0,$.jsxs)(`div`,{className:`flex gap-4 text-body-small-default text-[var(--content-tertiary)]`,children:[(0,$.jsx)(`span`,{children:e(`mcpPage.totalTools`,{count:I.totalToolCount})}),(0,$.jsx)(`span`,{children:e(`mcpPage.totalTokens`,{count:I.totalEstimatedTokens.toLocaleString()})})]}):null,P?(0,$.jsxs)(`div`,{className:`flex items-center gap-2 py-6 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,$.jsx)(D,{className:`h-4 w-4 animate-spin`}),(0,$.jsx)(`span`,{children:e(`mcpPage.loading`)})]}):F?(0,$.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:e(`mcpPage.loadError`)}):ce.length===0?(0,$.jsxs)(`button`,{type:`button`,onClick:se,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,$.jsx)(Be,{className:`h-6 w-6 text-[var(--content-disabled)]`}),(0,$.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-default)]`,children:e(`mcpPage.emptyTitle`)}),(0,$.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:e(s?`mcpPage.emptyAddSubtitle`:`mcpPage.emptyChatSubtitle`)})]}):(0,$.jsx)(`div`,{className:`space-y-2`,children:ce.map(e=>(0,$.jsx)(ht,{server:e,toolsSummary:R.get(e.id),onToggleEnabled:B,onRemove:h,onConfigure:p,onAuthenticate:te,onRevokeOAuth:ne,isUpdating:g.has(e.id),isAuthenticating:k===e.id,isRevoking:j===e.id},e.id))}),s?(0,$.jsx)(nt,{open:u,onClose:()=>d(!1),onAdd:re,isPending:v}):null,(0,$.jsx)(bt,{server:z,toolsSummary:f?R.get(f):void 0,onClose:()=>p(null),onSave:ie,isPending:C}),(0,$.jsx)(W,{open:!!m,title:e(`mcpPage.removeDialogTitle`),message:m?e(`mcpPage.removeDialogMessage`,{serverId:m}):``,confirmLabel:e(`mcpPage.removeDialogConfirm`),destructive:!0,isPending:x,onConfirm:ee,onCancel:()=>h(null)})]})}function wt(){return(0,$.jsx)(Ct,{})}var Tt=`vellum:integrations:bannerDismissed`;function Et(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 Dt(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 Ot(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 kt=[{value:`all`,labelKey:`integrationsPage.filterAll`},{value:`enabled`,labelKey:`integrationsPage.filterEnabled`},{value:`not-enabled`,labelKey:`integrationsPage.filterNotEnabled`}];function At(e,t){return e?.find(e=>e.provider===t)??null}function jt(e){return e===`mcp`?`mcp`:`oauth`}function Mt(){let{t:e}=o(`settings`),[t]=l(),r=c(),a=R(),[s,u]=(0,Q.useState)(null),[d,f]=(0,Q.useState)(!0),[p,h]=(0,Q.useState)(``),[_,v]=(0,Q.useState)(`all`),[y,b]=(0,Q.useState)(!0),[x,S]=(0,Q.useState)(null);(0,Q.useEffect)(()=>{b(re(Tt,`false`)===`true`)},[]);let C=()=>{b(!0),ae(Tt,`true`)};(0,Q.useEffect)(()=>{let e=!0;return(async()=>{try{let t=await ye();e&&t.ok&&u(t.data)}catch(e){he(e,{context:`integrations.getAssistant`})}finally{e&&f(!1)}})(),()=>{e=!1}},[]);let{platformAssistantId:w,isLoading:T}=ze(s?.id,a===`full`),{data:E,isLoading:O,isError:k}=i({...Ne({path:{assistant_id:s?.id??``}}),select:e=>e.providers,enabled:!!s}),{data:A,isLoading:j}=i({...G({path:{assistant_id:w??``}}),enabled:!!w&&a===`full`});(0,Q.useEffect)(()=>{let n=t.get(`oauth_status`);if(!n)return;let i=t.get(`oauth_provider`),a=i?i.charAt(0).toUpperCase()+i.slice(1):null;if(n===`connected`)Y.success(a?e(`integrationsPage.accountConnectedToast`,{providerLabel:a}):e(`integrationsPage.accountConnectedToastGeneric`));else if(n===`error`){let n=t.get(`oauth_code`)??`unknown`;Y.error(Et(e,n)??(a?e(`integrationsPage.connectFailedToast`,{providerLabel:a}):e(`integrationsPage.connectFailedToastGeneric`)))}r(be.settings.integrations,{replace:!0})},[t,r,e]);let M=(0,Q.useMemo)(()=>E?.filter(e=>e.supports_managed_mode)??[],[E]),N=(0,Q.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=!!At(A,e.provider_key)?.connected;return _===`enabled`?t:!t})),[...t].sort((e,t)=>{let n=!!At(A,e.provider_key)?.connected;if(n!==!!At(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,_]),P=d||O||j||T,F=Dt(e,p,_),L=Ot(e,p,_),z=(0,Q.useMemo)(()=>x?M.find(e=>e.provider_key===x)??null:null,[M,x]),B=kt.map(({value:t,labelKey:n})=>({value:t,label:e(n)}));return(0,$.jsxs)(`div`,{className:`space-y-4`,children:[!y&&(0,$.jsx)(ce,{tone:`info`,icon:(0,$.jsx)(g,{className:`h-3.5 w-3.5`}),onDismiss:C,children:(0,$.jsx)(n,{ns:`settings`,i18nKey:`integrationsPage.tipBanner`,components:{tip:(0,$.jsx)(`span`,{className:`text-body-medium-default`})}})}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(H,{type:`text`,value:p,onChange:e=>h(e.target.value),placeholder:e(`integrationsPage.searchPlaceholder`),"aria-label":e(`integrationsPage.searchAriaLabel`),leftIcon:(0,$.jsx)(m,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),fullWidth:!0,wrapperClassName:`flex-1`}),(0,$.jsx)(I,{options:B,value:_,onChange:v,"aria-label":e(`integrationsPage.filterAriaLabel`),menuAlign:`end`,className:`w-36 shrink-0`})]}),(0,$.jsx)(`div`,{children:P?(0,$.jsxs)(`div`,{className:`flex items-center gap-2 py-6 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,$.jsx)(D,{className:`h-4 w-4 animate-spin`}),(0,$.jsx)(`span`,{children:e(`integrationsPage.loading`)})]}):k?(0,$.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:e(`integrationsPage.loadFailed`)}):s?N.length===0?(0,$.jsxs)(`div`,{className:`flex flex-col items-center gap-2 rounded-lg border border-dashed border-[var(--border-element)] px-4 py-12 text-center`,children:[(0,$.jsx)(m,{className:`h-6 w-6 text-[var(--content-disabled)]`}),(0,$.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-default)]`,children:F}),(0,$.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:L})]}):(0,$.jsx)(`div`,{className:`space-y-2`,children:N.map(e=>(0,$.jsx)(Xe,{platformAssistantId:w??s.id,providerKey:e.provider_key,displayName:e.display_name??e.provider_key,description:e.description,logoUrl:e.logo_url,connection:At(A,e.provider_key),platformGate:a,onConfigure:()=>S(e.provider_key)},e.provider_key))}):(0,$.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:e(`integrationsPage.noAssistant`)})}),z&&s&&(0,$.jsx)(Ye,{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:a,onClose:()=>S(null)})]})}function Nt(){let{t:e}=o(`settings`),[t,n]=l(),r=jt(t.get(`tab`));return(0,$.jsx)(`div`,{className:`space-y-6`,children:(0,$.jsxs)(q.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,$.jsxs)(q.List,{children:[(0,$.jsx)(q.Trigger,{value:`oauth`,children:e(`integrationsPage.tabOAuth`)}),(0,$.jsx)(q.Trigger,{value:`mcp`,children:e(`integrationsPage.tabMcp`)})]}),(0,$.jsx)(q.Panel,{value:`oauth`,className:`pt-4`,children:(0,$.jsx)(Q.Suspense,{children:(0,$.jsx)(Mt,{})})}),(0,$.jsx)(q.Panel,{value:`mcp`,className:`pt-4`,children:(0,$.jsx)(wt,{})})]})})}export{Nt as IntegrationsPage};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
var e={conversationTitle:`正在更新個性`},t={conversationTitle:`正在更新名稱`},n={greeting:`哈囉,我是 {name}`,renamingInProgressAriaLabel:`正在重新命名`},r={all:`全部`,skillCategoriesAriaLabel:`技能類別`},i={askAboutThis:`詢問此內容`,askPrompt:`告訴我你對「{title}」的記憶,以及它如何與你所知的其他內容連結。`,backAriaLabel:`返回`,closeAriaLabel:`關閉`,connectionCount:`{count, plural, 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, other {+{count} 個更多}}`},c={clearSearchAriaLabel:`清除搜尋`,dragToRotateHint:`拖曳以旋轉 · 捲動以縮放`,emptyDetail:`隨著你的助理學習並連結想法,它們將在這裡顯示為一張生動的記憶地圖。`,emptyTitle:`尚無概念`,enterFullscreenAriaLabel:`進入全螢幕`,exitFullscreenAriaLabel:`離開全螢幕`,loadErrorDetail:`擷取助理的記憶時發生問題。請稍後再試。`,loadErrorTitle:`無法載入記憶圖`,resetViewAriaLabel:`重設檢視`,searchConceptsAriaLabel:`搜尋概念`,searchConceptsPlaceholder:`搜尋概念…`,truncatedNotice:`{count, plural, other {顯示 {count} 個連結最多的概念}}`,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, other {# 則記憶}}`,memoryCountLabel:`{count, plural, other {則記憶}}`,renameErrorToast:`重新命名未成功。請再試一次。`,renameSuccessToast:`向 {newName} 問好!`,scheduleCadence:`{cadence} · 下次 {nextRun}`,scheduleGhosts:{inboxTriageCadence:`每 2 小時`,inboxTriageName:`收件匣整理`,morningBriefingCadence:`每個工作日 8:00`,morningBriefingName:`晨間簡報`},setUpSchedule:`建立排程`,updateAvatarAndName:`更新頭像和名稱`,viewMoreSchedules:`{count, plural, other {檢視 {count} 個更多…}}`},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:`Z 世代`,right:`嬰兒潮世代`},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:`掛鉤`,install:`安裝`,licenseLabel:`授權`,loadErrorDetail:`它可能不存在,或者您的助理可能正在使用較舊的版本。`,loadErrorTitle:`我們無法載入此外掛程式。`,localSource:`本機`,remove:`移除`,removePluginTitle:`移除外掛程式`,skillsLabel:`技能`,sourceLabel:`來源`,toolsLabel:`工具`,upgrade:`升級`,upgradePluginTitle:`升級外掛程式`,upgradeTitle:`升級 {fromSha} → {toSha}`},O={disabled:`已停用`,enabled:`已啟用`,installingAriaLabel:`正在安裝`,installPluginAriaLabel:`安裝外掛程式`,moreIssues:`{count, plural, 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, other {# 個啟用中}}`,activeLabel:`{count, plural, other {啟用中}}`,appAndDocCount:`{count, plural, other {# 個應用程式或文件}}`,appCount:`{count, plural, other {# 個應用程式}}`,connectedCount:`{count, plural, other {# 個已連線}}`,connectedLabel:`{count, plural, other {已連線}}`,itemCount:`{count, plural, other {# 個項目}}`,itemLabel:`{count, plural, other {項目}}`,noSchedulesText:`尚未排定任何項目`,personCount:`{count, plural, other {# 位人員}}`,personLabel:`{count, plural, other {人員}}`,skillAndPluginCount:`{count, plural, other {# 個技能或外掛程式}}`,skillCount:`{count, plural, other {# 個技能}}`},W={failureMessage:`載入外掛程式失敗`},G={statusError:{title:`無法檢查您的記憶設定`,detail:`讀取此助理的記憶狀態時發生錯誤,因此目前無法提供可靠的資訊。`},off:{title:`記憶功能已關閉`,detail:`您的助理不會保留您對話中的任何內容,因此無法繪製記憶圖。請重新開啟記憶功能以再次開始記憶。`},legacy:{title:`升級至記憶功能 v3`,detail:`您的助理正在使用舊版記憶引擎。記憶功能 v3 會將其所知的內容重組為概念的連結維基,而此記憶圖正是根據該維基繪製的。`},unknown:{title:`記憶圖無法使用`,detail:`此助理的記憶後端未提供足夠的資訊來解釋原因。請更新您的助理,此頁面將會告知您所需的內容。`},prompts:{v2:`將我的記憶從 v2 遷移至 v3。這很可能是您的「記憶功能 v3 遷移」技能,但請弄清楚我的語料庫實際需要什麼,並嚴格遵循您使用的任何技能。
|
|
2
|
+
|
|
3
|
+
請在背景執行,並在完成時或遇到阻礙時通知我。`,v1:`將我的記憶從 v1 遷移至 v3。這很可能是兩個步驟,先是您的「記憶功能 v2 遷移」技能,然後是您的「記憶功能 v3 遷移」技能,但請弄清楚我的助理實際需要什麼,並嚴格遵循您使用的任何技能。
|
|
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};
|
|
@@ -0,0 +1,5 @@
|
|
|
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}`,scheduleGhosts:{inboxTriageCadence:`Каждые 2 часа`,inboxTriageName:`Разбор входящих`,morningBriefingCadence:`По будням в 8:00`,morningBriefingName:`Утренняя сводка`},setUpSchedule:`Создать расписание`,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};
|
|
@@ -0,0 +1,5 @@
|
|
|
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}`,scheduleGhosts:{inboxTriageCadence:`Cada 2 horas`,inboxTriageName:`Revisión del buzón`,morningBriefingCadence:`Cada día laborable a las 8:00`,morningBriefingName:`Resumen matutino`},setUpSchedule:`Crear una`,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};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
var e={conversationTitle:`正在更新个性`},t={conversationTitle:`正在更新名称`},n={greeting:`你好,我是 {name}`,renamingInProgressAriaLabel:`正在重命名`},r={all:`全部`,skillCategoriesAriaLabel:`技能类别`},i={askAboutThis:`询问此内容`,askPrompt:`告诉我你对“{title}”的记忆,以及它如何与你所知的其他内容联系起来。`,backAriaLabel:`返回`,closeAriaLabel:`关闭`,connectionCount:`{count, plural, 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, other {+{count} 个更多}}`},c={clearSearchAriaLabel:`清除搜索`,dragToRotateHint:`拖动旋转 · 滚动缩放`,emptyDetail:`随着你的助手学习和关联想法,它们将在这里显示为一张生动的记忆地图。`,emptyTitle:`暂无概念`,enterFullscreenAriaLabel:`进入全屏`,exitFullscreenAriaLabel:`退出全屏`,loadErrorDetail:`获取助手记忆时出现问题。请稍后重试。`,loadErrorTitle:`无法加载记忆图`,resetViewAriaLabel:`重置视图`,searchConceptsAriaLabel:`搜索概念`,searchConceptsPlaceholder:`搜索概念…`,truncatedNotice:`{count, plural, other {显示 {count} 个连接最多的概念}}`,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, other {# 条记忆}}`,memoryCountLabel:`{count, plural, other {条记忆}}`,renameErrorToast:`重命名未成功。请重试。`,renameSuccessToast:`向 {newName} 问好!`,scheduleCadence:`{cadence} · 下次 {nextRun}`,scheduleGhosts:{inboxTriageCadence:`每 2 小时`,inboxTriageName:`收件箱整理`,morningBriefingCadence:`每个工作日 8:00`,morningBriefingName:`早间简报`},setUpSchedule:`创建定时任务`,updateAvatarAndName:`更新头像和名称`,viewMoreSchedules:`{count, plural, other {查看 {count} 个更多…}}`},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:`Z世代`,right:`婴儿潮一代`},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:`钩子`,install:`安装`,licenseLabel:`许可证`,loadErrorDetail:`它可能不存在,或者您的助手可能正在使用较旧的版本。`,loadErrorTitle:`我们无法加载此插件。`,localSource:`本地`,remove:`移除`,removePluginTitle:`移除插件`,skillsLabel:`技能`,sourceLabel:`来源`,toolsLabel:`工具`,upgrade:`升级`,upgradePluginTitle:`升级插件`,upgradeTitle:`升级 {fromSha} → {toSha}`},O={disabled:`已禁用`,enabled:`已启用`,installingAriaLabel:`正在安装`,installPluginAriaLabel:`安装插件`,moreIssues:`{count, plural, 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, other {# 个活跃}}`,activeLabel:`{count, plural, other {活跃}}`,appAndDocCount:`{count, plural, other {# 个应用或文档}}`,appCount:`{count, plural, other {# 个应用}}`,connectedCount:`{count, plural, other {# 个已连接}}`,connectedLabel:`{count, plural, other {已连接}}`,itemCount:`{count, plural, other {# 个项目}}`,itemLabel:`{count, plural, other {项目}}`,noSchedulesText:`尚未安排任何内容`,personCount:`{count, plural, other {# 个人}}`,personLabel:`{count, plural, other {人}}`,skillAndPluginCount:`{count, plural, other {# 个技能或插件}}`,skillCount:`{count, plural, other {# 个技能}}`},W={failureMessage:`加载插件失败`},G={statusError:{title:`无法检查您的记忆设置`,detail:`读取此助手的记忆状态时发生错误,因此暂时无法提供可靠信息。`},off:{title:`记忆已关闭`,detail:`您的助手不会保留您对话中的任何内容,因此无法绘制记忆图。请重新开启记忆以开始记忆。`},legacy:{title:`升级到记忆 v3`,detail:`您的助手正在使用旧版记忆引擎。记忆 v3 将其所知内容重组为概念的链接维基,此记忆图正是基于该维基绘制的。`},unknown:{title:`记忆图不可用`,detail:`此助手的记忆后端未报告足够信息来解释原因。请更新您的助手,此页面将告知您所需内容。`},prompts:{v2:`将我的记忆从 v2 迁移到 v3。这很可能是您的“记忆 v3 迁移”技能,但请弄清楚我的语料库实际需要什么,并严格遵循您使用的任何技能。
|
|
2
|
+
|
|
3
|
+
在后台运行它,并在完成后或遇到阻碍时通知我。`,v1:`将我的记忆从 v1 迁移到 v3。这很可能是两步操作,您的“记忆 v2 迁移”技能,然后是您的“记忆 v3 迁移”技能,但请弄清楚我的助手实际需要什么,并严格遵循您使用的任何技能。
|
|
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 +1 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{
|
|
1
|
+
import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{j as t}from"./vendor-kNpRDQWe.js";import{b as n,d as r,i,n as a,t as o}from"./react-DPM_L_aA.js";import{Rr as s}from"./icons-CSdHOix6.js";import{W_ as c,iv as l,qi as u,tv as d,ys as f,yy as p}from"./index-D_aS89pX.js";import{t as m}from"./page-shell-DLe_v5G-.js";var h=e(n(),1),g=o(),_={schedules:`sections.schedules`,superpowers:`sections.superpowers`,plugins:`sections.superpowers`,skills:`sections.superpowers`,memory:`sections.memory`,library:`sections.library`,workspace:`sections.workspace`,contacts:`sections.contacts`,channels:`sections.channels`};function v(){let{t:e}=t(`intelligence`),n=c.use.name(),{pathname:o}=r(),v=f(),y=u.use.setTopBarCenter(),b=d(o),x=b?e(_[b.key]):null;return(0,h.useEffect)(()=>(y(v&&x?(0,g.jsx)(p,{variant:`body-medium-default`,className:`truncate text-[var(--content-secondary)]`,children:x}):null),()=>{y(null)}),[v,x,y]),b?(0,g.jsxs)(m,{children:[(0,g.jsxs)(`div`,{className:`mb-4 flex shrink-0 items-center gap-1.5`,children:[(0,g.jsx)(a,{to:l.identity,className:`-ml-2 flex h-8 w-8 shrink-0 cursor-pointer items-center justify-center rounded-md text-[var(--content-secondary)] transition-colors outline-none hover:bg-[var(--surface-hover)] hover:text-[var(--content-default)] focus-visible:ring-2 focus-visible:ring-[var(--ring)]`,"aria-label":e(`intelligenceLayout.backToAriaLabel`,{name:n||e(`identityOverview.defaultAssistantName`)}),title:e(`intelligenceLayout.backToTitle`,{name:n||e(`identityOverview.defaultAssistantName`)}),children:(0,g.jsx)(s,{className:`h-5 w-5`,"aria-hidden":!0})}),(0,g.jsx)(`h1`,{className:`text-title-large text-[var(--content-default)] max-md:hidden`,children:x})]}),(0,g.jsx)(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-y-auto`,children:(0,g.jsx)(i,{})})]}):(0,g.jsx)(`div`,{className:`flex min-h-0 flex-1 flex-col`,children:(0,g.jsx)(i,{})})}export{v as IntelligenceLayout};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{b as t,f as n}from"./react-DPM_L_aA.js";import{iv as r}from"./index-D_aS89pX.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,4 +1,4 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{
|
|
1
|
+
import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{f as t,g as n,u as r}from"./vendor-kNpRDQWe.js";import{b as i,t as a}from"./react-DPM_L_aA.js";import{$h as o,Cp as s,Yh as c,_v as l}from"./index-D_aS89pX.js";var u={companionCoworker:`companion-coworker`,genzBoomer:`genz-boomer`,executeCollaborate:`execute-collaborate`,playfulSerious:`playful-serious`,politeUnfiltered:`polite-unfiltered`},d=2;function f({processing:e,sawProcessing:t,hasReply:n,stableReads:r}){return e===void 0?n&&r>=d:!e&&(n||t)}var p=e=>Math.max(0,Math.min(100,Math.round(e)));function m(e,t,n){let r=t=>p(e[t]??50),i=r(u.companionCoworker),a=r(u.executeCollaborate),o=r(u.playfulSerious),s=r(u.politeUnfiltered),c=t?.trim()||`The user`,l=n?.trim(),d=l?`Your name is ${l}. Write exactly \`- **Name:** ${l}\` in IDENTITY.md — do not rename yourself or invent a different name, even if the file currently shows a placeholder or a different name. This changes your personality, not who you are.`:"Keep your existing name exactly as it is — this changes your personality, not who you are. Do not rename yourself, and if your name is already set, carry it through verbatim (don't treat it as a placeholder to fill). Whatever the name ends up being, keep it on IDENTITY.md's `- **Name:** …` line.";return`<system-message>
|
|
2
2
|
${c} wants to customize your personality.
|
|
3
3
|
This is what they want you to be:
|
|
4
4
|
Companion (0-100): ${100-i}
|
|
@@ -20,5 +20,5 @@ IDENTITY.md must keep a line reading exactly \`- **Personality:** <one short sen
|
|
|
20
20
|
${d}
|
|
21
21
|
|
|
22
22
|
Each rewritten file must still be complete: SOUL.md keeps everything you operate by — how you use memory, your boundaries, your compliance stance — re-expressed in your new voice rather than dropped. When you finish, both files should read top-to-bottom as this new personality, with nothing left in the generic default voice.
|
|
23
|
-
</system-message>`}var h=`data/personality-sliders.json`;function g(e){return[`personality-sliders`,e]}function _(e){return typeof e!=`object`||!e||Array.isArray(e)?!1:Object.values(e).every(e=>typeof e==`number`)}function v(e){return Object.fromEntries(Object.values(u).map(t=>[t,e[t]??50]))}async function y(e){let{data:t,error:n,response:r}=await
|
|
23
|
+
</system-message>`}var h=`data/personality-sliders.json`;function g(e){return[`personality-sliders`,e]}function _(e){return typeof e!=`object`||!e||Array.isArray(e)?!1:Object.values(e).every(e=>typeof e==`number`)}function v(e){return Object.fromEntries(Object.values(u).map(t=>[t,e[t]??50]))}async function y(e){let{data:t,error:n,response:r}=await c({path:{assistant_id:e},query:{path:h},throwOnError:!1});if(l(r,n,`Failed to fetch personality sliders`),r.status===404)return null;if(!r.ok||!t)throw Error(`Failed to fetch personality sliders`);let i=JSON.parse(t.content);if(!_(i))throw Error(`Personality sliders sidecar is malformed`);return i}async function b(e,t){try{let{error:n,response:r}=await o({path:{assistant_id:e},body:{path:h,content:JSON.stringify(t,null,2),encoding:`utf-8`},throwOnError:!1});return l(r,n,`Failed to save personality sliders`),r.ok}catch{return!1}}var x=e(i(),1),S=a(),C=.25,w=.46,T=.3,E=.85,D=.4,O=14,k=8;function A({art:e,stage:i,entrance:a=!1,entranceDelay:o=0,restSinkFraction:s=0,bumpNonce:c}){let l=t(),{w:u,h:d}=i,[f,p]=(0,x.useState)({x:0,y:0});(0,x.useEffect)(()=>{if(l)return;let e=e=>{p({x:(e.clientX/window.innerWidth-.5)*2,y:(e.clientY/window.innerHeight-.5)*2})};return window.addEventListener(`mousemove`,e),()=>window.removeEventListener(`mousemove`,e)},[l]);let m=a&&!l,h=r();(0,x.useEffect)(()=>{(c??0)>0&&!l&&h.start({y:[0,-34,8,0],transition:{duration:.45,ease:`easeOut`}})},[c,l,h]);let[g,_]=(0,x.useState)(!1),[v,y]=(0,x.useState)(!a);if((0,x.useEffect)(()=>{if(l||!v)return;let e=!1,t,n=n=>{e||(_(!0),t=setTimeout(()=>{e||(_(!1),t=setTimeout(n,140))},140))},r=()=>{t=setTimeout(()=>n(r),2500+Math.random()*4e3)};return a?n(()=>n(r)):r(),()=>{e=!0,clearTimeout(t)}},[l,v,a]),u===0||d===0)return null;let b=u*E,A=Math.min(Math.min(u,d)*T,b*e.bbox.h/e.bbox.w),j=A*e.bbox.w/e.bbox.h,M=(u-j)/2,N=d-(1-C)*A+d*s,P=D*d-(N+A/2),F=(w-C)*A,I=e.bbox.x+e.bbox.w/2,L=e.bbox.y+e.bbox.h/2,R=(0,S.jsx)(`div`,{style:{transform:`translate(${f.x*O}px, ${f.y*k}px)`,transition:`transform 0.5s cubic-bezier(0.22, 1, 0.36, 1)`},children:(0,S.jsx)(`svg`,{viewBox:`${e.bbox.x} ${e.bbox.y} ${e.bbox.w} ${e.bbox.h}`,width:j,height:A,style:{overflow:`visible`,display:`block`},children:(0,S.jsx)(`g`,{style:{transform:g?`scaleY(0.1)`:`scaleY(1)`,transformOrigin:`${I}px ${L}px`,transition:`transform 0.14s ease-in-out`},children:e.paths.map((e,t)=>(0,S.jsx)(`path`,{d:e.svgPath,fill:e.color},t))})})});return(0,S.jsx)(n.div,{"aria-hidden":`true`,className:`pointer-events-none absolute z-[2]`,style:{left:M,top:N,width:j,height:A,transformOrigin:`center`},initial:m?{y:P,scale:.35}:!1,animate:m?{y:[P,F,0],scale:[.35,1,1]}:{y:0,scale:1},transition:m?{duration:1,delay:o,times:[0,.7,1],ease:`easeInOut`}:{duration:0},onAnimationComplete:()=>y(!0),children:c===void 0?R:(0,S.jsx)(n.div,{animate:h,children:R})})}var j=T*(1-C);function M({conversationId:e,content:t,transport:n}){let r={conversationId:e,content:t,sourceChannel:`vellum`,interface:n,hidden:!0,scripted:!0,clientMessageId:crypto.randomUUID()};return n===`web`&&(r.clientOs=s()),r}function N(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(!(!n||n.role!==`assistant`))return(n.contentBlocks??[]).filter(e=>e.type===`text`).map(e=>e.text).join(`
|
|
24
24
|
`).trim()}return``}export{v as a,b as c,A as i,m as l,M as n,y as o,j as r,g as s,N as t,f as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={heading:`您的库为空`,body:`让您的助手构建一些内容,或导入共享应用`,newConversation:`新建对话`,separator:`或`,importFile:`导入 .vellum 文件`},t={importFailed:`导入应用失败`,imported:`{name} 已导入`,loadingAria:`正在加载应用`,retry:`重试`,import:`导入`,searchPlaceholder:`搜索您的库`,noMatches:`没有应用或文档与“{query}”匹配`,pinned:`已置顶`,recents:`最近`,documents:`文档`},n={exported:`应用已导出`,shareFailed:`分享应用失败`,actionsTitle:`{appName} 的选项`,unpin:`取消置顶`,pin:`置顶`,share:`分享`,shareSub:`导出为 .vellum 文件`,deployed:`已部署到 Vercel`,copyLink:`复制链接`,redeploy:`重新部署`,redeploySub:`发布当前版本`,deploy:`部署到 Vercel`,deploySub:`发布为静态页面`,delete:`删除`},r={backToLibrary:`返回库`},i={libraryEmptyState:e,libraryView:t,libraryAppCard:n,libraryDetailPage:r};export{i as default,n as libraryAppCard,r as libraryDetailPage,e as libraryEmptyState,t as libraryView};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={heading:`您的資料庫是空的`,body:`請您的助理建立內容,或匯入共享應用程式`,newConversation:`新增對話`,separator:`或`,importFile:`匯入 .vellum 檔案`},t={importFailed:`匯入應用程式失敗`,imported:`已匯入 {name}`,loadingAria:`正在載入應用程式`,retry:`重試`,import:`匯入`,searchPlaceholder:`搜尋您的資料庫`,noMatches:`沒有應用程式或文件符合「{query}」`,pinned:`已釘選`,recents:`最近項目`,documents:`文件`},n={exported:`應用程式已匯出`,shareFailed:`分享應用程式失敗`,actionsTitle:`{appName} 的選項`,unpin:`取消釘選`,pin:`釘選`,share:`分享`,shareSub:`匯出為 .vellum 檔案`,deployed:`已部署至 Vercel`,copyLink:`複製連結`,redeploy:`重新部署`,redeploySub:`發佈目前版本`,deploy:`部署至 Vercel`,deploySub:`發佈為靜態頁面`,delete:`刪除`},r={backToLibrary:`返回資料庫`},i={libraryEmptyState:e,libraryView:t,libraryAppCard:n,libraryDetailPage:r};export{i as default,n as libraryAppCard,r as libraryDetailPage,e as libraryEmptyState,t as libraryView};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{j as t}from"./vendor-kNpRDQWe.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{As as c,Bn as l,Gm as u,Y as d,ar as f,iv as p,l as m,or as h,ty as g,vs as _,ys as v}from"./index-D_aS89pX.js";import{t as y}from"./deploy-dialogs-BbxlNwkW.js";import{t as b}from"./use-edge-swipe-back-BN1FCIPJ.js";import{t as x}from"./app-types-CBnv5WGq.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=d(),T=i(),{pathname:E}=r(),D=v(),O=f.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),u({path:{assistant_id:o,id:n},throwOnError:!0}).then(({data:e})=>{I.current===n&&(c(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(p.library.root)},[T]);b({containerRef:k,onBack:L,enabled:D,navKey:E,prefetchHref:p.library.root});let R=m(),z=(0,S.useCallback)(()=>{A&&R(A)},[A,R]),B=(0,S.useCallback)(async()=>{if(!(!A||P)){F(!0);try{await h(o,A.appId,A.name),g.success(e(`libraryAppCard.exported`),{description:`${A.name}.vellum`})}catch(t){g.error(e(`libraryAppCard.shareFailed`),{description:t instanceof Error?t.message:void 0})}finally{F(!1)}}},[o,A,P,e]),V=(0,S.useCallback)(()=>{A&&f.getState().deployApp(o,A.appId,A.name,A.html)},[o,A]),H=(0,S.useCallback)(e=>{_(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)(l,{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};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{Zn as t,er as n,j as r}from"./vendor-kNpRDQWe.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{$u as y,Gr as b,Hn as x,Km as S,Nu as C,Pu as w,Vn as T,Vt as E,Y as D,ar as O,by as k,cn as A,dy as j,fi as M,ia as N,iv as P,ks as F,ln as I,o as L,or as R,qv as z,ty as B,vs as V,ya as H}from"./index-D_aS89pX.js";import{t as U}from"./deploy-dialogs-BbxlNwkW.js";import{t as W}from"./app-types-CBnv5WGq.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:N(`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:L(new Date(e.updatedAt))})]})]})}function Y({accept:e,fileInputRef:t,isImporting:n,onImportBundle:i,onNewConversation:a}){let{t:o}=r(`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)(k,{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)(k,{variant:`outlined`,size:`regular`,onClick:()=>t.current?.click(),disabled:n,children:[n?(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:n,onOpen:i,onPin:a,onDelete:o,onDeploy:s,justImported:c,onAnimationEnd:l}){let{t:u}=r(`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)(()=>F(t,e.id),[t,e.id]),b=(0,G.useCallback)(async()=>{if(!d){f(!0);try{await R(t,e.id,e.name),B.success(u(`libraryAppCard.exported`),{description:`${e.name}.vellum`})}catch(e){B.error(u(`libraryAppCard.shareFailed`),{description:e instanceof Error?e.message:void 0})}finally{f(!1)}}},[t,e.id,e.name,d,u]),[S,C]=(0,G.useState)(!1),[w,D]=(0,G.useState)(!1),O=(0,G.useCallback)(()=>D(!0),[]),{deployedUrl:k}=x(t,e.id,{enabled:w&&g!=null}),A=(0,G.useCallback)(()=>{k!=null&&T(k)},[k]);return(0,K.jsx)(M,{trailingActions:[{id:`pin`,label:n?`Unpin`:`Pin`,icon:n?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:N(`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:N(`relative w-full cursor-pointer overflow-hidden rounded-xl`,`outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)]`),children:(0,K.jsx)(E,{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:n,open:S,onOpenChange:e=>{e&&O(),C(e)},onPin:()=>a(e),onDelete:h?()=>h(e):void 0,onShare:m?void 0:b,onDeploy:g,deployedUrl:k,onCopyDeployedLink:A})}),(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:L(new Date(e.createdAt))})]})]})})}function Z({appName:e,isPinned:t,open:n,onOpenChange:i,onPin:a,onDelete:o,onShare:c,onDeploy:l,deployedUrl:d,onCopyDeployedLink:f}){let{t:y}=r(`library`),b=d!=null&&d!==``&&f!=null,x=y(`libraryAppCard.actionsTitle`,{appName:e});return(0,K.jsxs)(z.Root,{open:n,onOpenChange:i,children:[(0,K.jsx)(z.Trigger,{asChild:!0,children:(0,K.jsx)(k,{variant:`primary`,size:`compact`,iconOnly:(0,K.jsx)(u,{}),"aria-label":x,onClick:e=>e.stopPropagation()})}),(0,K.jsxs)(z.Content,{title:x,children:[(0,K.jsx)(z.Item,{icon:t?p:_,label:y(t?`libraryAppCard.unpin`:`libraryAppCard.pin`),onSelect:a}),c?(0,K.jsx)(z.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)(z.Item,{icon:h,label:y(`libraryAppCard.deployed`),description:(0,K.jsx)(`span`,{className:`break-all`,children:d}),trailing:y(`libraryAppCard.copyLink`),onSelect:()=>f?.()}),(0,K.jsx)(z.Item,{icon:m,label:y(`libraryAppCard.redeploy`),description:y(`libraryAppCard.redeploySub`),onSelect:l})]}):l?(0,K.jsx)(z.Item,{icon:s,label:y(`libraryAppCard.deploy`),description:y(`libraryAppCard.deploySub`),onSelect:l}):null,o?(0,K.jsx)(z.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}=b(e),{data:r=[],isLoading:i,error:a}=t({...C({path:{assistant_id:e}}),select:e=>e.apps}),{data:o=[],isLoading:s,error:c}=t({...y({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}=r(`library`),c=n(),{togglePin:u,pinnedAppIds:f}=b(e),p=O.use.isDeploying(),{apps:m,documents:h,filteredApps:g,pinnedApps:_,recentApps:v,filteredDocuments:y,searchText:x,setSearchText:S,loading:C,error:T}=ee(e),{pendingDelete:E,isDeleting:D,requestDelete:M,confirmDelete:N,cancelDelete:P}=A(e),[L]=(0,G.useState)(()=>H()?void 0:`.vellum`),R=(0,G.useRef)(null),[z,V]=(0,G.useState)(!1),W=(0,G.useCallback)(async t=>{let n=t.target.files?.[0];if(!(!n||z)){V(!0);try{let t=await te(e,n);await c.invalidateQueries({queryKey:w({path:{assistant_id:e}})}),B.success(s(`libraryView.imported`,{name:t.name})),o(t.appId)}catch(e){B.error(e instanceof Error?e.message:s(`libraryView.importFailed`))}finally{V(!1),R.current&&(R.current.value=``)}}},[e,z,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 F(e,t);O.getState().deployApp(e,t,n,r)}catch{O.getState().deployApp(e,t,n,``)}},[e,p,m]),X=(0,G.useCallback)(e=>u(e.id),[u]);return C?(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`)})}):T?(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:T}),(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:z,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)(k,{variant:`outlined`,size:`regular`,onClick:()=>R.current?.click(),disabled:z,children:[z?(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)(j,{fullWidth:!0,type:`text`,placeholder:s(`libraryView.searchPlaceholder`),value:x,onChange:e=>S(e.target.value),leftIcon:(0,K.jsx)(l,{size:16})})}),(0,K.jsx)(`div`,{className:`flex-1 overflow-y-auto`,children:g.length===0&&y.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:x})})]}):(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:M,onDeploy:q}),(0,K.jsx)(Q,{title:s(`libraryView.recents`),apps:v,assistantId:e,pinnedAppIds:f,onOpen:o,onPin:X,onDelete:M,onDeploy:q}),y.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:y.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)(I,{app:E,isDeleting:D,onConfirm:N,onCancel:P})]})}function re(){let e=D(),t=a();return(0,K.jsx)(ne,{assistantId:e,onNewConversation:(0,G.useCallback)(e=>{V(t,{prompt:e})},[t]),onOpenDocument:(0,G.useCallback)(e=>{t(P.document(e))},[t]),onOpenApp:(0,G.useCallback)(e=>{t(P.library.app(e))},[t])})}export{re as LibraryPage};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{
|
|
1
|
+
import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{j as t}from"./vendor-kNpRDQWe.js";import{b as n,d as r,t as i}from"./react-DPM_L_aA.js";import{Cy as a,Fg as o,Fo as s,Io as c,Lo as l,Po as u,by as d,fg as f,fv as p,iv as m,jr as h,pg as g}from"./index-D_aS89pX.js";import{n as _,t as v}from"./auth-welcome-screen-_mWoDKPq.js";import{n as y,t as b}from"./use-return-to-short-circuit-Dc9IrWhB.js";var x=e(n(),1),S=i();function C({children:e}){let{t:n}=t();return(0,S.jsxs)(`div`,{className:`fixed inset-0 z-50 flex flex-col items-center justify-center bg-[var(--surface-base)] text-[var(--content-default)]`,children:[(0,S.jsx)(`img`,{src:h(`/vellum-logo.svg`),alt:n(`nativeSplash.logoAlt`),width:220,height:66,className:`block dark:hidden`}),(0,S.jsx)(`img`,{src:h(`/vellum-logo-white.svg`),alt:n(`nativeSplash.logoAlt`),width:220,height:66,className:`hidden dark:block`}),e,(0,S.jsx)(`div`,{"aria-hidden":!0,className:`pointer-events-none absolute left-1/2 w-full max-w-[900px] -translate-x-1/2`,style:{bottom:0},children:(0,S.jsx)(`img`,{src:h(`/login-background-characters.svg`),alt:``,width:880,height:182,className:`h-auto w-full`})})]})}function w({children:e,className:t}){return(0,S.jsx)(`p`,{className:a(`text-body-small-default text-center text-[var(--system-negative-strong)]`,t),children:e})}function T({returnTo:e}){let{t:n}=t(`account`),[r,i]=(0,x.useState)(null),[a,o]=(0,x.useState)(!1),m=async()=>{i(null),o(!0);try{await f({returnTo:e??null})}catch(e){if(s(e)){o(!1);return}p(e,{context:`native_login`,tags:{authError:c(e)??`unclassified`}}),i(n(l(e),{community:u})),o(!1)}};return(0,S.jsx)(C,{children:(0,S.jsxs)(`div`,{className:`z-10 mt-8 flex w-full max-w-[320px] flex-col items-center gap-3`,children:[r&&(0,S.jsx)(w,{className:`max-w-[280px]`,children:r}),(0,S.jsx)(d,{type:`button`,variant:`primary`,fullWidth:!0,onClick:()=>{m()},disabled:a,className:`max-w-[300px]`,children:n(`loginPage.signIn`)})]})})}function E({returnTo:e}){let{t:n}=t(`account`),{search:i}=r(),a=o(e?`${m.account.signup}?returnTo=${encodeURIComponent(e)}`:m.account.signup,i);return(0,S.jsx)(v,{returnTo:e,errorContext:`web_login`,fillsViewport:!0,secondary:{label:n(`loginPage.signUp`),href:a}})}function D(){let e=g(),t=b();return t.kind===`wait`?e?(0,S.jsx)(C,{}):(0,S.jsx)(_,{fillsViewport:!0,children:(0,S.jsx)(y,{})}):t.kind===`redirect`?t.node:e?(0,S.jsx)(T,{returnTo:t.returnTo}):(0,S.jsx)(E,{returnTo:t.returnTo})}export{D as LoginPage};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{j as t}from"./vendor-kNpRDQWe.js";import{b as n,g as r,t as i}from"./react-DPM_L_aA.js";import{Ff as a,Ng as o,iv as s,ss as c}from"./index-D_aS89pX.js";import{r as l,t as u}from"./account-shell-DK0R6Tov.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`),s.account.login),t=e.startsWith(`http`)||e===s.account.login?e:`${s.account.login}?returnTo=${encodeURIComponent(e)}`,r=!1;return i().then(()=>{r||c(t)},()=>{r||c(t)}),()=>{r=!0}},[i,n]),(0,f.jsx)(u,{children:(0,f.jsx)(l,{title:e(`logoutPage.title`)})})}export{p as LogoutPage};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={retrying:`正在重試…`,retry:`重試`},t={inbound:`收件`,outbound:`寄件`,noSubject:`(無主旨)`,addressesLoadFailed:`無法載入電子郵件地址。`,noAddress:`尚未註冊電子郵件地址。`,setUpLink:`請在 AI 設定、電子郵件中設定。`,totals:`總計`,sentToday:`今日已寄出`,dailyLimitSub:`每日上限 {limit, number} 封`,receivedToday:`今日已收到`,sentThisMonth:`本月已寄出`,receivedThisMonth:`本月已收到`,recentEmails:`近期電子郵件`,loading:`正在載入…`,emailsLoadFailed:`無法載入近期電子郵件。`,noEmails:`尚無電子郵件。`},n={longSleep:`長時間休眠`,hideDetails:`隱藏詳細資訊`,showDetails:`顯示詳細資訊`,intro:`您的助理在過去 {days, plural, one {# 天} other {# 天}} 的生命週期事件,最新在前。`,loading:`正在載入系統事件...`,loadFailed:`載入系統事件失敗。請重新整理後再試。`,empty:`過去 {days, plural, one {# 天} other {# 天}} 未記錄任何系統事件。`,loadingOlder:`正在載入較舊的事件...`,loadOlder:`載入較舊的事件`},r={platformLoginNotice:`請登入 Vellum 平台以查看電子郵件。`},i={platformLoginNotice:`請登入 Vellum 平台以查看系統事件。`,notAvailable:`目前助理無法使用系統事件。`},a={errorRetryRow:e,emailsTab:t,systemEventsTab:n,emailsPage:r,systemEventsPage:i};export{a as default,r as emailsPage,t as emailsTab,e as errorRetryRow,i as systemEventsPage,n as systemEventsTab};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={retrying:`正在重试…`,retry:`重试`},t={inbound:`收件`,outbound:`发件`,noSubject:`(无主题)`,addressesLoadFailed:`无法加载电子邮件地址。`,noAddress:`尚未注册电子邮件地址。`,setUpLink:`在AI设置、电子邮件中设置一个。`,totals:`总计`,sentToday:`今日已发送`,dailyLimitSub:`每日限额 {limit, number} 中的`,receivedToday:`今日已接收`,sentThisMonth:`本月已发送`,receivedThisMonth:`本月已接收`,recentEmails:`近期电子邮件`,loading:`正在加载…`,emailsLoadFailed:`无法加载近期电子邮件。`,noEmails:`暂无电子邮件。`},n={longSleep:`长时间休眠`,hideDetails:`隐藏详情`,showDetails:`显示详情`,intro:`您的助手在过去 {days, plural, one {# 天} other {# 天}} 的生命周期事件,最新在前。`,loading:`正在加载系统事件...`,loadFailed:`加载系统事件失败。请刷新后重试。`,empty:`过去 {days, plural, one {# 天} other {# 天}} 未记录任何系统事件。`,loadingOlder:`正在加载更早的事件...`,loadOlder:`加载更早的事件`},r={platformLoginNotice:`登录 Vellum 平台以查看电子邮件。`},i={platformLoginNotice:`登录 Vellum 平台以查看系统事件。`,notAvailable:`当前助手无法使用系统事件。`},a={errorRetryRow:e,emailsTab:t,systemEventsTab:n,emailsPage:r,systemEventsPage:i};export{a as default,r as emailsPage,t as emailsTab,e as errorRetryRow,i as systemEventsPage,n as systemEventsTab};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{b as t,d as n,i as r,t as i}from"./react-DPM_L_aA.js";import{Jt as a,xi as o}from"./icons-CSdHOix6.js";import{
|
|
1
|
+
import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{b as t,d as n,i as r,t as i}from"./react-DPM_L_aA.js";import{Jt as a,xi as o}from"./icons-CSdHOix6.js";import{Nf as s,iv as c}from"./index-D_aS89pX.js";import{n as l,t as u}from"./sidebar-tree-DzK404Jf.js";var d=o(`monitor-cog`,[[`path`,{d:`M12 17v4`,key:`1riwvh`}],[`path`,{d:`m14.305 7.53.923-.382`,key:`1mlnsw`}],[`path`,{d:`m15.228 4.852-.923-.383`,key:`82mpwg`}],[`path`,{d:`m16.852 3.228-.383-.924`,key:`ln4sir`}],[`path`,{d:`m16.852 8.772-.383.923`,key:`1dejw0`}],[`path`,{d:`m19.148 3.228.383-.924`,key:`192kgf`}],[`path`,{d:`m19.53 9.696-.382-.924`,key:`fiavlr`}],[`path`,{d:`m20.772 4.852.924-.383`,key:`1j8mgp`}],[`path`,{d:`m20.772 7.148.924.383`,key:`zix9be`}],[`path`,{d:`M22 13v2a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h7`,key:`1tnzv8`}],[`path`,{d:`M8 21h8`,key:`1ev6f3`}],[`circle`,{cx:`18`,cy:`6`,r:`3`,key:`1h7g24`}]]),f=e(t(),1),p=[{id:`emails`,label:`Emails`,href:c.logs.emails,icon:a},{id:`system-events`,label:`System Events`,href:c.logs.systemEvents,icon:d}],m=i();function h(){let e=s({platformHostedOnly:!0}),t=s(),{pathname:i}=n(),a=(0,f.useMemo)(()=>p.filter(n=>!(n.id===`system-events`&&e===`gated`||n.id===`emails`&&t===`gated`)),[e,t]),o=(0,f.useMemo)(()=>{let e=p.find(e=>i===e.href||i.startsWith(e.href+`/`));return e?e.label:i===c.logs.root?p[0]?.label??`Logs & Usage`:`Logs & Usage`},[i]);return(0,m.jsx)(l,{backHref:c.assistant,sidebar:(0,m.jsx)(u,{items:a,indexPath:c.logs.root}),title:o,menuRoute:c.logs.root,children:(0,m.jsx)(r,{})})}export{h as LogsLayout};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as e}from"./vendor-kNpRDQWe.js";import{t}from"./react-DPM_L_aA.js";import{t as n}from"./preview-error-CyxFuY6O.js";import{In as r,Jt as i,Zt as a}from"./index-D_aS89pX.js";import{t as o}from"./use-truncated-blob-text-BSWOxKWU.js";var s=t(),c=512*1024;function l({blob:t,filename:l}){let{t:u}=e(`chat`),{text:d,truncated:f,decodeFailed:p}=o(t,c);return p?(0,s.jsx)(n,{filename:l}):d===null?(0,s.jsx)(r,{}):(0,s.jsxs)(`div`,{className:`flex min-h-0 flex-col gap-2`,children:[(0,s.jsx)(i,{content:d}),f&&(0,s.jsx)(a,{children:u(`previewTruncationNotice.markdown`)})]})}export{l as MarkdownPreview};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{b as t,t as n}from"./react-DPM_L_aA.js";import{
|
|
1
|
+
import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{b as t,t as n}from"./react-DPM_L_aA.js";import{Fn as r,In as i,Za as a}from"./index-D_aS89pX.js";var o=e(t(),1),s=n(),c=`nodownload noplaybackrate`;function l({blob:e,filename:t,kind:n}){let l=r(e,(0,o.useMemo)(()=>a({sniffedMime:null,serverMime:e.type.length>0?e.type:null,filename:t}).mime,[e,t]));return l===null?(0,s.jsx)(i,{}):n===`image`?(0,s.jsx)(`div`,{className:`flex justify-center`,children:(0,s.jsx)(`img`,{src:l,alt:t,className:`h-auto max-w-full rounded-lg border border-[var(--border-element)]`})}):n===`audio`?(0,s.jsx)(`audio`,{src:l,controls:!0,controlsList:c,preload:`metadata`,"aria-label":t,className:`w-full`}):(0,s.jsx)(`video`,{src:l,controls:!0,controlsList:c,playsInline:!0,preload:`metadata`,"aria-label":t,className:`max-w-full rounded-lg border border-[var(--border-element)]`})}export{l as MediaPreview};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{I as t,Xn as n,Zn as r,er as i,j as a}from"./vendor-kNpRDQWe.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{Jt as w,Sh as T,So as te,To as ne,Y as E,_v as re,ay as ie,by as D,fy as ae,gv as O,iv as oe,oo as se,ou as k,ry as A,ty as j,vs as M,wo as N,yh as P,yi as F,yu as I,yv as L,yy as ce}from"./index-D_aS89pX.js";var R=e(o(),1),z={x:600,y:450},le=`memory_tab_v1`,ue=crypto.randomUUID();function B(e){typeof window>`u`||k()&&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 t(`getMemoryGraphNode.failureMessage`,{ns:`intelligence`})}function he(e,t){return n({queryKey:[`memory-graph-node`,e,t],enabled:!!(e&&t),queryFn:async()=>{let{data:n,error:r,response:i}=await T({path:{assistant_id:e},query:{id:t??``},throwOnError:!1});if(re(i,r,J()),!i.ok)throw new O(i.status,L(r,i,J()));return n??{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 t(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}=a(`intelligence`);return e.length<=X?(0,q.jsx)(w,{content:e}):(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(w,{content:t?e:Se(e)}),(0,q.jsx)(D,{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:n,neighbors:i,onTravel:o,onCrumb:s,onClose:c,onOpenThread:l}){let{t:d}=a(`intelligence`),f=r(he(e,t.id)),p=f.data,h=xe(t.updatedAtMs),g=p?.title??t.label,v=be(n);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:[n.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(n.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===n.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)(D,{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`)}),i.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:i.length})})]}),(0,q.jsx)(`ul`,{className:`flex list-none flex-col gap-0.5`,children:i.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)(D,{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)(D,{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}=a(`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)(D,{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:i,onToggleLink:o,onToggleLearned:s,linkActive:c,learnedActive:l}){let{t:u}=a(`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||i)&&(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}),i&&(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 t(`memoryUnavailable.prompts.v2`,{ns:`intelligence`})}function Ae(){return t(`memoryUnavailable.prompts.v1`,{ns:`intelligence`})}function je(){return t(`memoryUnavailable.prompts.enable`,{ns:`intelligence`})}function Me(){return{title:t(`memoryUnavailable.statusError.title`,{ns:`intelligence`}),detail:t(`memoryUnavailable.statusError.detail`,{ns:`intelligence`}),action:`retry`}}function Ne(e){return e===`off`?{title:t(`memoryUnavailable.off.title`,{ns:`intelligence`}),detail:t(`memoryUnavailable.off.detail`,{ns:`intelligence`}),action:`settings`,prompt:je()}:e===`v1`||e===`v2`?{title:t(`memoryUnavailable.legacy.title`,{ns:`intelligence`}),detail:t(`memoryUnavailable.legacy.detail`,{ns:`intelligence`}),action:`upgrade`,prompt:e===`v1`?Ae():Q()}:{title:t(`memoryUnavailable.unknown.title`,{ns:`intelligence`}),detail:t(`memoryUnavailable.unknown.detail`,{ns:`intelligence`}),action:`none`}}function Pe({assistantId:e,onOpenThread:t}){let{t:n}=a(`intelligence`),o=s(),c=i(),l=r(N(e));(0,R.useEffect)(()=>{te(c,e)},[c,e]);let u=se(`memoryOptOut`),d=I.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)(D,{variant:`primary`,size:`compact`,leftIcon:(0,q.jsx)(m,{}),onClick:()=>{B(`upgrade_v3_clicked`),t(_)},children:n(`memoryUpgradePrompt.upgradeMemory`)}):g.action===`retry`?y=(0,q.jsx)(D,{variant:`outlined`,size:`compact`,leftIcon:(0,q.jsx)(v,{}),onClick:()=>{l.refetch()},children:n(`memoryUpgradePrompt.tryAgain`)}):g.action===`settings`&&f?y=(0,q.jsx)(D,{variant:`outlined`,size:`compact`,leftIcon:(0,q.jsx)(p,{}),onClick:()=>o(`${oe.settings.developer}?tab=memory`),children:n(`memoryUpgradePrompt.memorySettings`)}):g.action===`settings`&&t&&_&&(y=(0,q.jsx)(D,{variant:`primary`,size:`compact`,leftIcon:(0,q.jsx)(m,{}),onClick:()=>{B(`enable_memory_clicked`),t(_)},children:n(`memoryUpgradePrompt.turnMemoryOn`)})),(0,q.jsx)(me,{title:g.title,detail:g.detail,action:y})}function Fe({value:e,onChange:t}){let{t:n}=a(`intelligence`),r=[{value:`all`,label:n(`recencyLens.all`)},{value:`month`,label:n(`recencyLens.month`)},{value:`week`,label:n(`recencyLens.week`)}];return(0,q.jsx)(ie,{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:n,onToggleFullscreen:i,onOpenThread:o,headerAction:s,handleRef:c}){let{t:u}=a(`intelligence`),d=(0,R.useRef)(null),p=(0,R.useRef)(null),m=r(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}),re=(0,R.useRef)([]),ie=(0,R.useRef)([]),ae=(0,R.useRef)({content:`#e5e7eb`,tertiary:`#8792a0`}),O=(0,R.useRef)(null),oe=(0,R.useRef)(!1),se=(0,R.useRef)(null),k=(0,R.useRef)(null),[A,j]=(0,R.useState)(null),[M,N]=(0,R.useState)(null),[P,F]=(0,R.useState)([]),I=P.at(-1)??null,L=(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,j(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=>{O.current=e,E.current.lastInteractAt=performance.now(),E.current.dirty=!0},[]),Q=(0,R.useCallback)(e=>{L(e),Z(e.id)},[L,Z]),Ae=(0,R.useCallback)(e=>{se.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):k.current=e},[v.nodes,Ae]);(0,R.useEffect)(()=>{let e=k.current;e&&v.nodes.some(t=>t.id===e)&&(k.current=null,Ae(e))},[v.nodes,Ae]),(0,R.useImperativeHandle)(c,()=>({focusNode:je}),[je]);let Me=(0,R.useCallback)(()=>{F([]),H(``),j(null),O.current=null,oe.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):j(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;ae.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`,ae.current=ot(t),E.current.dirty=!0};g();let _=new ResizeObserver(g);_.observe(t);let y=new MutationObserver(()=>{ae.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=ae.current,g=Date.now(),_=O.current;if(!d.dragging&&e-d.lastInteractAt>Ve&&!u&&!_&&(d.yaw+=Be*t),_){let e=r.find(e=>e.id===_);if(!e)O.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&&(O.current=null)}}if(oe.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&&(oe.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 D=d.hoveredId,k=D?s.get(D):void 0,A=e=>!D||e===D||(k?.has(e)??!1),j=J.current,M=j.active,N=e=>!M||(j.matches?.has(e)??!1),P=be.current,F=e=>ct(e.updatedAtMs,P,g),I=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?!I.learned:!I.link))continue;let o=M&&(!N(e.fromId)||!N(e.toId))||!a&&(F(t.node)||F(r.node)),s=D!=null&&(e.fromId===D||e.toId===D),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:D==null?u:s?.9:A(e.fromId)&&A(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=M&&!N(i.id),c=le(i.id),l=s||F(i)&&!c,d=R?c&&!l:!l&&A(i.id),f=i.id===D,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=se.current;if(y&&y.id===i.id){let t=e-y.start;if(t>at)se.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(M&&!N(r.id)||F(r)&&!i||!(R?i:M?t.depth>.3:D==null?o.has(r.id)||r.degree>=Je&&t.depth>.55:A(r.id)))continue;n.globalAlpha=(r.id===D||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,re.current=B.map(e=>({id:e.node.id,sx:e.sx,sy:e.sy,sr:e.sr,depth:e.depth,updatedAtMs:e.node.updatedAtMs})),ie.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 re.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 ie.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;O.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 j(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,j(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:A??M,Tt=x&&(v.nodes.length>it||!!V),Et=!!(i||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)(D,{variant:`ghost`,iconOnly:(0,q.jsx)(ee,{}),onClick:()=>Oe(1.25),"aria-label":u(`conceptGraphView.zoomInAriaLabel`),tooltip:u(`conceptGraphView.zoomInAriaLabel`)}),(0,q.jsx)(D,{variant:`ghost`,iconOnly:(0,q.jsx)(b,{}),onClick:()=>Oe(.8),"aria-label":u(`conceptGraphView.zoomOutAriaLabel`),tooltip:u(`conceptGraphView.zoomOutAriaLabel`)}),(0,q.jsx)(D,{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:[i?(0,q.jsx)(D,{variant:`ghost`,iconOnly:n?(0,q.jsx)(h,{}):(0,q.jsx)(l,{}),onClick:i,"aria-label":u(n?`conceptGraphView.exitFullscreenAriaLabel`:`conceptGraphView.enterFullscreenAriaLabel`),tooltip:u(n?`conceptGraphView.exitFullscreenAriaLabel`:`conceptGraphView.enterFullscreenAriaLabel`)}):null,Tt?(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(D,{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 P({path:{assistant_id:e},body:{content:t},throwOnError:!0});return n}function ft({open:e,onOpenChange:t,assistantId:n,onCreated:r}){let{t:o}=a(`intelligence`),s=i(),[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){j.error(i.message||o(`createMemoryModal.saveError`));return}j.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:N(n).queryKey})])}catch(e){let t=e instanceof Error?e.message:o(`createMemoryModal.createError`);j.error(t)}finally{d(!1)}}},[n,c,t,r,s,o]);return(0,q.jsx)(A.Root,{open:e,onOpenChange:t,children:(0,q.jsxs)(A.Content,{size:`sm`,children:[(0,q.jsx)(A.Header,{children:(0,q.jsx)(A.Title,{children:o(`createMemoryModal.title`)})}),(0,q.jsx)(A.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)(ce,{as:`p`,variant:`body-medium-lighter`,className:`text-(--content-secondary)`,children:o(`createMemoryModal.helperText`)})]})}),(0,q.jsxs)(A.Footer,{children:[(0,q.jsx)(A.Close,{asChild:!0,children:(0,q.jsx)(D,{variant:`outlined`,disabled:u,children:o(`createMemoryModal.cancel`)})}),(0,q.jsx)(D,{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}=a(`intelligence`),n=E(),[i,o]=(0,R.useState)(!1),s=(0,R.useRef)(null),c=r(ne(n)),l=r(N(n)),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:n,className:`h-full w-full`,onOpenThread:e,handleRef:s,headerAction:u?(0,q.jsx)(D,{variant:`primary`,size:`compact`,leftIcon:(0,q.jsx)(x,{}),onClick:()=>o(!0),children:t(`memoryPage.createMemory`)}):void 0}),u?(0,q.jsx)(ft,{open:i,onOpenChange:o,assistantId:n,onCreated:e=>{e&&s.current?.focusNode(e)}}):null]})}function mt(){let e=s();return(0,q.jsx)(pt,{onOpenThread:t=>{B(`chat_from_node`),M(e,{prompt:t})}},E())}export{mt as MemoryPageRoute};
|