@vellumai/web 0.10.12-staging.2 → 0.10.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{AnimatePresence-DwfFixKx.js → AnimatePresence-3WpfAWHe.js} +1 -1
- package/dist/assets/{BundleConfirmPage-gQyAQ1Np.js → BundleConfirmPage-CDklssHh.js} +1 -1
- package/dist/assets/{a2a-invite-h0ZA9fjr.js → a2a-invite-DUYZLVQb.js} +1 -1
- package/dist/assets/{about-page-o4HW3X7x.js → about-page-CT70Pgvf.js} +1 -1
- package/dist/assets/access-D3fUSyFH.js +1 -0
- package/dist/assets/{account-page-CCGELSOs.js → account-page-D5cJIu1-.js} +1 -1
- package/dist/assets/{account-shell-AfPNPQvp.js → account-shell-C_IH8r44.js} +1 -1
- package/dist/assets/{acp-run-actions-Ct6s3jTx.js → acp-run-actions-CAjb0Wcm.js} +1 -1
- package/dist/assets/{acp-run-detail-panel-6KF1gTs7.js → acp-run-detail-panel-DqzZdPiN.js} +1 -1
- package/dist/assets/{acp-run-store-DvHGcG6-.js → acp-run-store-C6n-XeY_.js} +1 -1
- package/dist/assets/{activity-steps-panel-BixdRLE2.js → activity-steps-panel-BzHQOJsQ.js} +1 -1
- package/dist/assets/{add-credits-modal-IV5EP5Uo.js → add-credits-modal-CCEMf2_U.js} +1 -1
- package/dist/assets/ai-page-BznkOakE.js +1 -0
- package/dist/assets/{animated-avatar-B7_KzM7V.js → animated-avatar-DzfEDnTh.js} +1 -1
- package/dist/assets/{api-DL5vlAJ0.js → api-CJFoPWHm.js} +1 -1
- package/dist/assets/{api-BafF_-rc.js → api-XwdNiVE9.js} +1 -1
- package/dist/assets/{api-key-screen-Dh7AJqr3.js → api-key-screen-BXn2F-lQ.js} +1 -1
- package/dist/assets/{app-card-BV9XWgfV.js → app-card-Uowaj1kh.js} +1 -1
- package/dist/assets/{app-info-Bus9qaJo.js → app-info-qQex8Ndg.js} +1 -1
- package/dist/assets/{archive-redirect-page-Cyh8EfTp.js → archive-redirect-page-CpKvFqvX.js} +1 -1
- package/dist/assets/{assistant-feature-flag-store-DrFDLNVv.js → assistant-feature-flag-store-CLqMw4mK.js} +1 -1
- package/dist/assets/assistant-identity-store-DIyVo8LV.js +1 -0
- package/dist/assets/{assistant-status-panel-DODbammu.js → assistant-status-panel-DKnWIr7_.js} +1 -1
- package/dist/assets/{auth-store-CK95leo_.js → auth-store-D9BqFncz.js} +2 -2
- package/dist/assets/{avatar-renderer-DAklEC5T.js → avatar-renderer-DK54o2kQ.js} +1 -1
- package/dist/assets/avatar-svg-compositor-FtVPqzlC.js +1 -0
- package/dist/assets/{background-task-actions-BfAGLLHN.js → background-task-actions-CmYMPa2o.js} +1 -1
- package/dist/assets/{background-task-detail-panel-DOWj29Ko.js → background-task-detail-panel-KDqjs7i2.js} +1 -1
- package/dist/assets/{background-task-store-CN04oS2z.js → background-task-store-DFS8MP5D.js} +1 -1
- package/dist/assets/billing-page-Cc5fHBn2.js +3 -0
- package/dist/assets/{billing-redirect-page-BsV6cEpx.js → billing-redirect-page-BRcj5q0u.js} +1 -1
- package/dist/assets/{bookmarks-page-CPmWAOGH.js → bookmarks-page-fFnFzh4F.js} +1 -1
- package/dist/assets/{browser-DtFBB5v5.js → browser-CNL8hh8H.js} +2 -2
- package/dist/assets/{build-state-DoiXhrgx.js → build-state-WR9nlRgM.js} +1 -1
- package/dist/assets/{capture-error-CqtAGHQu.js → capture-error-Bj8_eutd.js} +1 -1
- package/dist/assets/{channels-page-route-BBwlgesO.js → channels-page-route-wxREzs6W.js} +1 -1
- package/dist/assets/{chat-avatar-C7xsXP27.js → chat-avatar-DIDq1Jt5.js} +1 -1
- package/dist/assets/{chat-layout-slots-store-C325hn1X.js → chat-layout-slots-store-C2IFeZFr.js} +1 -1
- package/dist/assets/{chat-markdown-message-C2uQyAXa.js → chat-markdown-message-ERK48E1Z.js} +2 -2
- package/dist/assets/{checkbox-BZTUJtxM.js → checkbox-BY0BDJjm.js} +1 -1
- package/dist/assets/{client-feature-flag-store-DR6pLmyc.js → client-feature-flag-store-oTfL8Oiz.js} +1 -1
- package/dist/assets/{client-identity-ChGFRQsv.js → client-identity-BS5mQsaQ.js} +1 -1
- package/dist/assets/{command-palette-CYwgr9BF.js → command-palette-CsRPcIM-.js} +1 -1
- package/dist/assets/{command-palette-window-page-ByOPmEAV.js → command-palette-window-page-BzQ_oDaq.js} +1 -1
- package/dist/assets/{community-page-D7FDDkdu.js → community-page-mlhk4LsN.js} +1 -1
- package/dist/assets/{confirm-dialog-DZX6LhLy.js → confirm-dialog-UYFm4osC.js} +1 -1
- package/dist/assets/{connect-page-BXelaj8V.js → connect-page-PuRyFup0.js} +1 -1
- package/dist/assets/consent-DbD2Hcbf.js +1 -0
- package/dist/assets/{consent-controls-DoUmeaFm.js → consent-controls-BOFoWAYO.js} +1 -1
- package/dist/assets/{contacts-gateway-BI9Ok4O5.js → contacts-gateway-C5OljhCC.js} +1 -1
- package/dist/assets/{contacts-page-route-C2cmfHU4.js → contacts-page-route-VBlklzVL.js} +1 -1
- package/dist/assets/{conversation-cache-irOw8vtk.js → conversation-cache-CqCkWHT6.js} +1 -1
- package/dist/assets/{conversation-list-fetchers-CeiuJYcE.js → conversation-list-fetchers-D84gJs6f.js} +1 -1
- package/dist/assets/{conversation-navigation-DUNqTEXk.js → conversation-navigation-Wm7_pLFs.js} +1 -1
- package/dist/assets/{conversation-queries-Bo-ZW6ul.js → conversation-queries-Ba_1sW5M.js} +1 -1
- package/dist/assets/{conversation-store-C0tvFESx.js → conversation-store-bshB7nDP.js} +1 -1
- package/dist/assets/{credential-entry-page-Dt_0bNAT.js → credential-entry-page-Bfrl1sD_.js} +1 -1
- package/dist/assets/{credentials-page-BDfP4yY4.js → credentials-page-B-AJyMvk.js} +1 -1
- package/dist/assets/{danger-zone-redirect-page-CpEYg1lA.js → danger-zone-redirect-page-DKfrmf_o.js} +1 -1
- package/dist/assets/{debug-page-Bh4VqdzS.js → debug-page-DWEIExMH.js} +2 -2
- package/dist/assets/{deploy-dialogs-D_AQFfc0.js → deploy-dialogs-BNMcZzII.js} +1 -1
- package/dist/assets/{deploy-store-Co5K25DO.js → deploy-store-CxnShfQj.js} +1 -1
- package/dist/assets/{detail-card-BKbhBGhy.js → detail-card-CwtjhGfi.js} +1 -1
- package/dist/assets/{detail-panel-stop-button-C-Y-hevf.js → detail-panel-stop-button-C1rystDS.js} +1 -1
- package/dist/assets/{detail-shell-BW-7Q0R6.js → detail-shell-DcNnOqM_.js} +1 -1
- package/dist/assets/{developer-page-tydL_eOW.js → developer-page-Bu7HBiPJ.js} +1 -1
- package/dist/assets/{devices-redirect-page-7yfm7RVK.js → devices-redirect-page-Cvt_H5ig.js} +1 -1
- package/dist/assets/{diagnostics-C1vLQi8c.js → diagnostics-Dva51gYK.js} +1 -1
- package/dist/assets/{dictation-overlay-page-BM_PPlmh.js → dictation-overlay-page-zpoNqudq.js} +1 -1
- package/dist/assets/{dictation-overlay-w1YHEfFR.js → dictation-overlay-pePw7mLd.js} +1 -1
- package/dist/assets/{dist-BswnB-bR.js → dist-DC9QooLF.js} +1 -1
- package/dist/assets/{dist-CQN0ZAOZ.js → dist-oCfq2a_n.js} +1 -1
- package/dist/assets/{document-viewer-container-Do8yUakJ.js → document-viewer-container-Cl4jDmfx.js} +2 -2
- package/dist/assets/{document-viewer-page-BzM3ABt9.js → document-viewer-page-kV6TCXu0.js} +1 -1
- package/dist/assets/{edge-swipe-arbiter-store-D9XJTxJJ.js → edge-swipe-arbiter-store-DyemvsR-.js} +1 -1
- package/dist/assets/effective-timezone-qiooajmO.js +1 -0
- package/dist/assets/{emails-page-Cn56Zrp2.js → emails-page-D9E3uXkG.js} +1 -1
- package/dist/assets/{environment-store-BXSWXdjm.js → environment-store-BFVmN-OW.js} +1 -1
- package/dist/assets/esm-BQjZqfJZ.js +2 -0
- package/dist/assets/esm-BTyZM-kf.js +2 -0
- package/dist/assets/esm-BWFeAIOX.js +2 -0
- package/dist/assets/{esm-DCA3xHJS.js → esm-C6-ZMSya.js} +2 -2
- package/dist/assets/esm-CDPcGg-B.js +2 -0
- package/dist/assets/esm-DEY-lP80.js +1 -0
- package/dist/assets/esm-DKdDWqsF.js +2 -0
- package/dist/assets/{eye-bbox-vHbpD-XX.js → eye-bbox-DXmmg9ML.js} +1 -1
- package/dist/assets/{file-editor-AqFGpEiG.js → file-editor-DpNdd7HZ.js} +1 -1
- package/dist/assets/{file-markdown-Dz0E8JCw.js → file-markdown-CLmQTpqL.js} +1 -1
- package/dist/assets/{first-run-scope-vr9PkCPF.js → first-run-scope-BoT9LMYw.js} +1 -1
- package/dist/assets/{funnel-events-wLEIhAS6.js → funnel-events-CK938pi2.js} +1 -1
- package/dist/assets/general-page-DpKVqj5t.js +1 -0
- package/dist/assets/{get-memory-stats-B9qL5lJg.js → get-memory-stats-ERcqnC0Q.js} +1 -1
- package/dist/assets/{haptics-BOyIPZDm.js → haptics-D9eNTUq-.js} +2 -2
- package/dist/assets/{hatching-screen-DKqcfIqT.js → hatching-screen-d3SWqFKY.js} +1 -1
- package/dist/assets/{home-page-route-4LoUJVyf.js → home-page-route-BOCisuYY.js} +1 -1
- package/dist/assets/{hosting-screen-ChxMs5SE.js → hosting-screen-6xIW6q02.js} +1 -1
- package/dist/assets/{identity-page-route-BZv_8gEN.js → identity-page-route-qWwRSRld.js} +1 -1
- package/dist/assets/index-B0l9Wjpj.css +2 -0
- package/dist/assets/{index-4G2A642F.js → index-BOC87TAq.js} +3 -3
- package/dist/assets/{ingest-JAa1OGej.js → ingest-DGkxw0Go.js} +1 -1
- package/dist/assets/{inspect-page-D6BmfgaE.js → inspect-page-CRBfQ5WU.js} +3 -3
- package/dist/assets/{installed-plugins-query-BARnE4gA.js → installed-plugins-query-C29LGAEV.js} +1 -1
- package/dist/assets/{integration-icon-B5V_-Cwm.js → integration-icon-Dvjn3ytY.js} +1 -1
- package/dist/assets/{integrations-page-CiKJbgld.js → integrations-page-D5KWY6v-.js} +1 -1
- package/dist/assets/{intelligence-layout-iZMnS_UR.js → intelligence-layout-DP9zklR6.js} +1 -1
- package/dist/assets/{invalidate-plugin-queries-QIHve9na.js → invalidate-plugin-queries-DamxiwYv.js} +1 -1
- package/dist/assets/{keyboard-shortcuts-redirect-page-Bj55BTMo.js → keyboard-shortcuts-redirect-page--bCvhp62.js} +1 -1
- package/dist/assets/{latest-assistant-text-BjCANctw.js → latest-assistant-text-D5WR-o6J.js} +1 -1
- package/dist/assets/{library-detail-page-rAKEZjAC.js → library-detail-page-pviljaQw.js} +1 -1
- package/dist/assets/{library-page-DLXws76z.js → library-page-CYYuLywk.js} +1 -1
- package/dist/assets/{list-row-MeHwwyA6.js → list-row-B1wPb2Au.js} +1 -1
- package/dist/assets/{local-mode-CTrmCbAp.js → local-mode-Ckii2tmN.js} +1 -1
- package/dist/assets/{local-runtime-upgrade-DhywiNJj.js → local-runtime-upgrade-BggVMXfW.js} +1 -1
- package/dist/assets/{login-flow-GvzsqmPU.js → login-flow-BCNBNLzu.js} +1 -1
- package/dist/assets/{login-page-BpyN5i3N.js → login-page-DdHXGGAt.js} +1 -1
- package/dist/assets/{logout-page-BYTvA7jR.js → logout-page-DjihP6Qk.js} +1 -1
- package/dist/assets/{logs-layout-CAsT7PSA.js → logs-layout-C84-h0Hn.js} +1 -1
- package/dist/assets/{memory-page-route-Ct0vQuTQ.js → memory-page-route-dGWTWCWF.js} +1 -1
- package/dist/assets/{memory-router-playground-page-Dw5KRcud.js → memory-router-playground-page-CjUiz_bH.js} +1 -1
- package/dist/assets/{menu-CKZtG-s_.js → menu-BvjhxZo7.js} +1 -1
- package/dist/assets/{messages-DR9NaU6I.js → messages-Dl5_cjD9.js} +1 -1
- package/dist/assets/{metric-card-BGMRvm8T.js → metric-card-CkAD9RpC.js} +1 -1
- package/dist/assets/{mobile-sidebar-drawer-Dwe3U09O.js → mobile-sidebar-drawer-CbJ5JfXT.js} +1 -1
- package/dist/assets/{modal-DwsThLGg.js → modal-BR4CUFBd.js} +1 -1
- package/dist/assets/mutation-error-CwYvaYnb.js +1 -0
- package/dist/assets/native-anchor-CVNubOIm.js +1 -0
- package/dist/assets/{native-biometric-BBZbTKi0.js → native-biometric-CntdlaL-.js} +1 -1
- package/dist/assets/{native-file-fkzAxQg0.js → native-file-B6_oAU2Q.js} +2 -2
- package/dist/assets/{not-found-BAcyD9Pu.js → not-found-DV3iLBwm.js} +1 -1
- package/dist/assets/{notice-DCp7WO3L.js → notice-BMK7xqUw.js} +1 -1
- package/dist/assets/{notifications-page-DzAAMGmB.js → notifications-page-B9vnqyB1.js} +1 -1
- package/dist/assets/{oauth-complete-page-pSE2ePnC.js → oauth-complete-page-BSxiDbQm.js} +1 -1
- package/dist/assets/{oauth-connection-utils-U3iVzpfJ.js → oauth-connection-utils-DbcihBL8.js} +1 -1
- package/dist/assets/{oauth-popup-complete-page-D4Uc4M6G.js → oauth-popup-complete-page-CyYbqLoK.js} +1 -1
- package/dist/assets/{onboarding-layout-1lVX8db0.js → onboarding-layout-Dd5fPfE7.js} +1 -1
- package/dist/assets/{onboarding-store-hpvNtD3A.js → onboarding-store-DutUn1E3.js} +1 -1
- package/dist/assets/open-workspace-file-CpveqBim.js +2 -0
- package/dist/assets/{page-empty-state-BOJLN0oo.js → page-empty-state-BA3_YQN2.js} +1 -1
- package/dist/assets/{page-shell-CdgW9nzA.js → page-shell-_QxBKTK3.js} +1 -1
- package/dist/assets/{pairing-page-KqVmsFUh.js → pairing-page-DPfIgf3F.js} +1 -1
- package/dist/assets/{panel-item-ldBYDDDs.js → panel-item-CrtoJCrd.js} +1 -1
- package/dist/assets/{password-reset-page-CMaCRCUO.js → password-reset-page-D55bGMVy.js} +1 -1
- package/dist/assets/{personality-page-Dt5aGp-e.js → personality-page-fJJd-i4s.js} +1 -1
- package/dist/assets/plans-page-C-JyEPT_.js +1 -0
- package/dist/assets/{platform-detection-DOh3jMAT.js → platform-detection-CMiRPRCq.js} +1 -1
- package/dist/assets/{platform-login-notice-LOYoqOMf.js → platform-login-notice-BG9TFAJa.js} +1 -1
- package/dist/assets/{platform-loopback-page-BscTnDN8.js → platform-loopback-page-DunGLusR.js} +1 -1
- package/dist/assets/{plugin-detail-page-rtP8WprQ.js → plugin-detail-page-BngHrN8T.js} +1 -1
- package/dist/assets/{plugins-page-BlLCo_51.js → plugins-page-DD0t1_pE.js} +1 -1
- package/dist/assets/plugins-surface-D4i2vqBz.js +1 -0
- package/dist/assets/{popover-BFL-uOLh.js → popover-BRpYVASI.js} +1 -1
- package/dist/assets/{prefs-B2UAscQt.js → prefs-BZnS5vR_.js} +1 -1
- package/dist/assets/{privacy-page-DIfDx43s.js → privacy-page-nZvfh3dh.js} +1 -1
- package/dist/assets/{privacy-screen-CT2vDIPL.js → privacy-screen-D2aDT6E6.js} +1 -1
- package/dist/assets/{provider-callback-page-CBhBrIAp.js → provider-callback-page-BwANEd-K.js} +1 -1
- package/dist/assets/{provider-key-BoyxWMGQ.js → provider-key-B3R8SlMJ.js} +1 -1
- package/dist/assets/{provider-signup-page-MRdEILUW.js → provider-signup-page-Cz2DP-jP.js} +1 -1
- package/dist/assets/{quick-input-page-ZAHDIH7x.js → quick-input-page-CF2MJnCE.js} +1 -1
- package/dist/assets/{react-query.gen-oEdI--ip.js → react-query.gen-Mwd5l-vZ.js} +1 -1
- package/dist/assets/{react-query.gen-CbsPBjd9.js → react-query.gen-r3I6j8-1.js} +1 -1
- package/dist/assets/{remote-gateway-session-DAfJAELv.js → remote-gateway-session-BHjZ9gQ6.js} +1 -1
- package/dist/assets/{research-facts-e-0TmtJP.js → research-facts-UIXXE8D6.js} +1 -1
- package/dist/assets/{research-mock-page-DTTf0zfR.js → research-mock-page-DnbQpZcp.js} +1 -1
- package/dist/assets/{research-onboarding-persistence-BN6g1lF7.js → research-onboarding-persistence-CceFfAqE.js} +1 -1
- package/dist/assets/{research-onboarding-route-xdBEvVjC.js → research-onboarding-route-yg2iKw6i.js} +1 -1
- package/dist/assets/{research-results-view-DhHY5ZPj.js → research-results-view-CxhTn2J7.js} +1 -1
- package/dist/assets/{resolved-assistants-store-PdwcxGwN.js → resolved-assistants-store-C-PdxK8f.js} +1 -1
- package/dist/assets/{retire-confirm-dialog-BF8nORxR.js → retire-confirm-dialog--eF_pXhA.js} +1 -1
- package/dist/assets/{review-terms-screen-DWW0H6gs.js → review-terms-screen-Dpk-gyJE.js} +1 -1
- package/dist/assets/{risk-DXfbjxrL.js → risk-C_bbPQPd.js} +1 -1
- package/dist/assets/{routes-C3xPjNWF.js → routes-BBFM42ft.js} +11 -11
- package/dist/assets/{routes-bwxCYLJj.js → routes-vE-2hncW.js} +1 -1
- package/dist/assets/{runtime-upgrade-banner-Dlp0eQiE.js → runtime-upgrade-banner-DQI-l3Yc.js} +2 -2
- package/dist/assets/{schedules-o0jcCr54.js → schedules-DF5cTXBf.js} +1 -1
- package/dist/assets/{schedules-page-BCofuXAr.js → schedules-page-Dgu-znOf.js} +1 -1
- package/dist/assets/{sdk.gen-C6q_cviY.js → sdk.gen-BIu1DgTs.js} +1 -1
- package/dist/assets/{security-redirect-page-B_ci75cb.js → security-redirect-page-BEohiPDW.js} +1 -1
- package/dist/assets/{select-assistant-screen-g68FASxq.js → select-assistant-screen-C2q8wO2f.js} +1 -1
- package/dist/assets/{setting-row-CxQBrD8s.js → setting-row-0LXvW7Kh.js} +1 -1
- package/dist/assets/{settings-divider-ORJowxpl.js → settings-divider-CXIrJieH.js} +1 -1
- package/dist/assets/{settings-layout-DvMiWCPp.js → settings-layout-b7iBWIT-.js} +1 -1
- package/dist/assets/settings-navigation-BGdjm0Ki.js +1 -0
- package/dist/assets/{share-feedback-modal-BlqdxyC5.js → share-feedback-modal-B05-nKgu.js} +1 -1
- package/dist/assets/{sidebar-tree-DtsphGOt.js → sidebar-tree-ByF78JHW.js} +1 -1
- package/dist/assets/{signup-page-B-9iClzh.js → signup-page-CGauGszD.js} +1 -1
- package/dist/assets/{signup-shell-CS8qe8J1.js → signup-shell-Bw6r9tWP.js} +1 -1
- package/dist/assets/{site-favicon-BwdB2A7_.js → site-favicon-CCyX9r-Z.js} +1 -1
- package/dist/assets/{skill-detail-page-RlOqtrxz.js → skill-detail-page-GlV5JRzQ.js} +1 -1
- package/dist/assets/{skill-detail-panel-72NTcSvY.js → skill-detail-panel-crqCBZbU.js} +1 -1
- package/dist/assets/{skills-CS48H_5g.js → skills-C1CAcW7T.js} +1 -1
- package/dist/assets/{skills-page-B5c4S__U.js → skills-page-BikP-AR7.js} +1 -1
- package/dist/assets/{slack-setup-wizard-DyLOaNeb.js → slack-setup-wizard-DKj1_XdA.js} +1 -1
- package/dist/assets/{cpu-eUAdrpWb.js → sliders-horizontal-slneqAyY.js} +1 -1
- package/dist/assets/{sound-manager-BkU9w22u.js → sound-manager-xEbUgFv-.js} +1 -1
- package/dist/assets/{sounds-page-B_VfIF_f.js → sounds-page-9_otQ97S.js} +1 -1
- package/dist/assets/{src-B9F84D64.js → src-D89CNeuT.js} +1 -1
- package/dist/assets/{start-screen-BzchtmN4.js → start-screen-DSF3melT.js} +1 -1
- package/dist/assets/{stream-watchdog-LwK1DR5Q.js → stream-watchdog-BafbDdX9.js} +1 -1
- package/dist/assets/{subagent-detail-panel-CnkzZsGz.js → subagent-detail-panel-q0g4JWAX.js} +1 -1
- package/dist/assets/{subagent-store-CM0X7ol2.js → subagent-store-D-GPthdC.js} +1 -1
- package/dist/assets/{superpowers-page-D0T5rLBb.js → superpowers-page-UgdWFWsF.js} +1 -1
- package/dist/assets/{system-events-page-9lCNzX-7.js → system-events-page-Bw94HLwx.js} +1 -1
- package/dist/assets/{system-events-redirect-page-AHa_MARa.js → system-events-redirect-page-BGZQC8-K.js} +1 -1
- package/dist/assets/{tag-D8NAGb0r.js → tag-NXcyiTkK.js} +1 -1
- package/dist/assets/{theme-stage-page-CntGqJIW.js → theme-stage-page-bEZxHTyN.js} +1 -1
- package/dist/assets/{threshold-presets-ti1ttrv3.js → threshold-presets-BO8En2q0.js} +1 -1
- package/dist/assets/{tiptap-document-editor-BOuerIA1.js → tiptap-document-editor-CyY1HRzV.js} +1 -1
- package/dist/assets/{toast-DR7D7Uma.js → toast-LgLp4obE.js} +1 -1
- package/dist/assets/{tool-detail-panel-B6-P-pe0.js → tool-detail-panel-DFMOphDJ.js} +1 -1
- package/dist/assets/{transcript-message-body-shared-CQwPiuDN.js → transcript-message-body-shared-nWAkSzar.js} +1 -1
- package/dist/assets/{trust-rules-api-lD2Ni46I.js → trust-rules-api-C0-hkXT2.js} +1 -1
- package/dist/assets/{upgrade-cancel-page-D0hw2jKj.js → upgrade-cancel-page-DwxI6NLL.js} +1 -1
- package/dist/assets/{upgrade-success-page-CmEZ39Sn.js → upgrade-success-page-SO92J-Rf.js} +1 -1
- package/dist/assets/{usage-redirect-page-Cq2M7ii4.js → usage-redirect-page-BJBkecYr.js} +1 -1
- package/dist/assets/{use-active-assistant-id-BcM35kFN.js → use-active-assistant-id-Cjbsk2Q3.js} +1 -1
- package/dist/assets/{use-app-theme-DVqzJFH6.js → use-app-theme-Q42fO5Nz.js} +1 -1
- package/dist/assets/{use-assistant-avatar-DpMH3A_7.js → use-assistant-avatar-DSu2_Mzi.js} +1 -1
- package/dist/assets/{use-assistant-capability-DkGxxxTG.js → use-assistant-capability-gxe56K48.js} +1 -1
- package/dist/assets/{use-assistant-identity-details-CN_tizo0.js → use-assistant-identity-details-CpHkzjrI.js} +1 -1
- package/dist/assets/{use-avatar-accent-var-C4DSU-BO.js → use-avatar-accent-var-PV9tsBJj.js} +1 -1
- package/dist/assets/{use-bookmarks-DzswOt-6.js → use-bookmarks-BbJtKyHe.js} +1 -1
- package/dist/assets/{use-bundled-avatar-components-IQw2k8-g.js → use-bundled-avatar-components-Gp_YaD6o.js} +2 -2
- package/dist/assets/{use-bus-subscription-DIENjckU.js → use-bus-subscription-Cu4Y9DQi.js} +1 -1
- package/dist/assets/use-checkout-dismiss-refresh-kdxxDNpF.js +1 -0
- package/dist/assets/{use-command-palette-sections-BFYwWTT8.js → use-command-palette-sections-BWjxkwKB.js} +1 -1
- package/dist/assets/{use-discord-nudge-CRU-lEHV.js → use-discord-nudge-C_QdHIeX.js} +1 -1
- package/dist/assets/{use-edge-swipe-6PtOzG4E.js → use-edge-swipe-DVeTYbmY.js} +1 -1
- package/dist/assets/{use-edge-swipe-back-Y66_jaFR.js → use-edge-swipe-back-DDq-N20h.js} +1 -1
- package/dist/assets/{use-edit-app-B3lr2KkA.js → use-edit-app-DfFIonqZ.js} +1 -1
- package/dist/assets/{use-effective-timezone-Da7pvXSm.js → use-effective-timezone-LqzBqHBy.js} +1 -1
- package/dist/assets/{use-invite-link-dialog-4cPtNBj0.js → use-invite-link-dialog-DX58-LWY.js} +1 -1
- package/dist/assets/use-ios-app-nudge-BO8jWfr0.js +1 -0
- package/dist/assets/use-is-org-ready-X_98Cnx9.js +1 -0
- package/dist/assets/{use-onboarding-login-DWweCRJ-.js → use-onboarding-login-B8rpbSEh.js} +1 -1
- package/dist/assets/{use-platform-gate-DcS6snds.js → use-platform-gate-Dry0Nv4f.js} +1 -1
- package/dist/assets/{use-reduced-motion-Bv27WKCk.js → use-reduced-motion-Se97jRQ-.js} +1 -1
- package/dist/assets/{use-save-twilio-credentials-BDbv1FdS.js → use-save-twilio-credentials-CUQ6gdIj.js} +1 -1
- package/dist/assets/{use-skill-actions-C34mG6kK.js → use-skill-actions-DgK7Nmt1.js} +1 -1
- package/dist/assets/{use-skill-detail-files-M-YjNd2c.js → use-skill-detail-files-_v4zUF6S.js} +1 -1
- package/dist/assets/use-sticky-profiles-B0zVD3uk.js +1 -0
- package/dist/assets/{use-subagent-card-data-CmbaKWII.js → use-subagent-card-data-YbAN73Fw.js} +1 -1
- package/dist/assets/{use-supports-bookmarks-CJC-T2ro.js → use-supports-bookmarks-C3J7FtDn.js} +1 -1
- package/dist/assets/{use-swipe-engine-RAFE-Hrf.js → use-swipe-engine-DRvffOuu.js} +1 -1
- package/dist/assets/{utils-DW4oHJu6.js → utils-BtC1KiH4.js} +1 -1
- package/dist/assets/{utils-CrvvcikL.js → utils-CnB60ZJN.js} +1 -1
- package/dist/assets/{viewer-store-CLSpfTlZ.js → viewer-store-BDpZVbcr.js} +1 -1
- package/dist/assets/{voice-list-woCTax9H.js → voice-list-DJeZeHuA.js} +1 -1
- package/dist/assets/{voice-page-BDjuMuY8.js → voice-page-DQcyxaPl.js} +1 -1
- package/dist/assets/{voice-picker-modal-BiCmmLJz.js → voice-picker-modal-BXMvQihh.js} +1 -1
- package/dist/assets/{weather-forecast-display-D5OkfHyL.js → weather-forecast-display-D2sn4QD4.js} +1 -1
- package/dist/assets/{web-BMLENaxE.js → web-7I6Bn0iP.js} +1 -1
- package/dist/assets/{web-BK2xLXXm.js → web-BE7l06mM.js} +1 -1
- package/dist/assets/{web-BLJkVZnq.js → web-BEpNr5_U.js} +1 -1
- package/dist/assets/{web-Cc4zhBG7.js → web-BPyURh2Z.js} +1 -1
- package/dist/assets/{web-D6tBOv21.js → web-Bj8XUknF.js} +1 -1
- package/dist/assets/{web-Cimwq57E.js → web-CBluPLFP.js} +1 -1
- package/dist/assets/{web-C4ApmvCw.js → web-Cmg3AbZk.js} +1 -1
- package/dist/assets/{web-BQLS3-Jp.js → web-DHVjLzid.js} +1 -1
- package/dist/assets/{welcome-screen-BTmdDQ8q.js → welcome-screen-n-cGiojh.js} +1 -1
- package/dist/assets/{workflow-detail-panel-BigYPr9m.js → workflow-detail-panel-Cq3AwWXE.js} +1 -1
- package/dist/assets/{workflow-store-B-5tSUVD.js → workflow-store-QV5aMjTt.js} +1 -1
- package/dist/assets/{workspace-page-D1Ds9_ey.js → workspace-page-CL9z2Jrs.js} +1 -1
- package/dist/index.html +228 -229
- package/package.json +1 -1
- package/dist/assets/access-DFmdmMm5.js +0 -1
- package/dist/assets/ai-page-_F_gn-vY.js +0 -1
- package/dist/assets/assistant-identity-store-RThYdwnA.js +0 -1
- package/dist/assets/avatar-svg-compositor-CgyK5D40.js +0 -1
- package/dist/assets/billing-page-D1vuR7wJ.js +0 -3
- package/dist/assets/consent-Bkslj0yQ.js +0 -1
- package/dist/assets/crown-DTdTkF6n.js +0 -1
- package/dist/assets/effective-timezone-CnKC3vj0.js +0 -1
- package/dist/assets/esm-CBsKAtYP.js +0 -2
- package/dist/assets/esm-CkAk1b7M.js +0 -1
- package/dist/assets/esm-DVuEArjY.js +0 -2
- package/dist/assets/esm-LrelsjXA.js +0 -2
- package/dist/assets/esm-NJgNz35U.js +0 -2
- package/dist/assets/esm-PbRZjFG7.js +0 -2
- package/dist/assets/general-page-CVLpYzRN.js +0 -1
- package/dist/assets/index-_3FdgMgw.css +0 -2
- package/dist/assets/mutation-error--1w2EbUT.js +0 -1
- package/dist/assets/native-anchor-DtMEHD4d.js +0 -1
- package/dist/assets/open-workspace-file-C0ZDhKxD.js +0 -2
- package/dist/assets/plans-page-B0jfFMS-.js +0 -1
- package/dist/assets/plugins-surface-C6q5ZBC0.js +0 -1
- package/dist/assets/settings-navigation-DCqMil0c.js +0 -1
- package/dist/assets/sliders-horizontal-D5dtNWk8.js +0 -1
- package/dist/assets/use-checkout-dismiss-refresh-DRknWbR3.js +0 -1
- package/dist/assets/use-ios-app-nudge-BV5eX4Fv.js +0 -1
- package/dist/assets/use-is-org-ready-DryM43xt.js +0 -1
- package/dist/assets/use-sticky-profiles-CostDY59.js +0 -1
- /package/dist/assets/{Combination-C7TWRLS7.js → Combination-CkAMwkbS.js} +0 -0
- /package/dist/assets/{api-errors-BRGPPSWw.js → api-errors-CFiCT7Ap.js} +0 -0
- /package/dist/assets/{app-types-DSkgEmV3.js → app-types-CBg2__YH.js} +0 -0
- /package/dist/assets/{apple-logo-BaqMf8q6.js → apple-logo-poQac1tY.js} +0 -0
- /package/dist/assets/{avatar-bundled-components-CTd294ra.js → avatar-bundled-components-CecbESCk.js} +0 -0
- /package/dist/assets/{avatar-subagent-BpXST4nO.js → avatar-subagent-C9WTTUjI.js} +0 -0
- /package/dist/assets/{avatar-tone-4L7foPzW.js → avatar-tone-CMoWR2JX.js} +0 -0
- /package/dist/assets/{browser-timezone-DGz-HvxU.js → browser-timezone-C_0jBUid.js} +0 -0
- /package/dist/assets/{build.umd-DlzJAHJ4.js → build.umd-59c0EvgO.js} +0 -0
- /package/dist/assets/{by-tool-use-id-index-DcsiqOhc.js → by-tool-use-id-index-aoRP6d51.js} +0 -0
- /package/dist/assets/{chat-BIJEFb5u.js → chat-BrL0k2UY.js} +0 -0
- /package/dist/assets/{client.gen-Dq2brHDV.js → client.gen-CV05d-kw.js} +0 -0
- /package/dist/assets/{conversation-selection-Cx6Axfzb.js → conversation-selection-3EKkKt0G.js} +0 -0
- /package/dist/assets/{create-selectors-B-P03-8K.js → create-selectors-Qo7kcikX.js} +0 -0
- /package/dist/assets/{definitions-MzBHgkRs.js → definitions-OhJf_HMS.js} +0 -0
- /package/dist/assets/{definitions-quuEj_td.js → definitions-PikNVFdS.js} +0 -0
- /package/dist/assets/{dices-FpUbVcWW.js → dices-DcuIF52A.js} +0 -0
- /package/dist/assets/{dist-BJSu8g5P.js → dist-BwAT3VYQ.js} +0 -0
- /package/dist/assets/{dist-CKLJHt4Z.js → dist-CaYJ736y.js} +0 -0
- /package/dist/assets/{dist-BKxs5XmY.js → dist-jXSU-ejH.js} +0 -0
- /package/dist/assets/{domains-BwT1h2fD.js → domains-DWRzNRJy.js} +0 -0
- /package/dist/assets/{download-BBg2iaa4.js → download-CywcQLB2.js} +0 -0
- /package/dist/assets/{dropdown-Dt0Iof85.js → dropdown-BCfnSdIZ.js} +0 -0
- /package/dist/assets/{edit-chat-session-BVmK2sam.js → edit-chat-session-yPtopwB6.js} +0 -0
- /package/dist/assets/{ellipsis-BRJI5_P1.js → ellipsis-DnoqTkj4.js} +0 -0
- /package/dist/assets/{emoji-catalog-data-BCc1YNMR.js → emoji-catalog-data-COLzb2Wj.js} +0 -0
- /package/dist/assets/{event-bus-D2jlU6rm.js → event-bus-DSxmBYhD.js} +0 -0
- /package/dist/assets/{external-link-CAce-RVu.js → external-link-CS0aVYGt.js} +0 -0
- /package/dist/assets/{external-urls-HAW1JmbX.js → external-urls-BYwuIdYk.js} +0 -0
- /package/dist/assets/{eye-DTyDWiqu.js → eye-BMVGQXHT.js} +0 -0
- /package/dist/assets/{eye-off-fuOP4Lij.js → eye-off-Jdx8qkOK.js} +0 -0
- /package/dist/assets/{feature-flag-catalog-C45bOtg3.js → feature-flag-catalog-BAyJlRMY.js} +0 -0
- /package/dist/assets/{file-CNougInA.js → file-Ddp9Dqgl.js} +0 -0
- /package/dist/assets/{file-code-DD3K2kve.js → file-code-BDHws4Dk.js} +0 -0
- /package/dist/assets/{file-plus-Dq2xo7Ic.js → file-plus-C3SBA8ll.js} +0 -0
- /package/dist/assets/{file-text-BCsUYVEF.js → file-text-Br730Q4B.js} +0 -0
- /package/dist/assets/{folder-Dgxb-gKb.js → folder-DF8nFp7N.js} +0 -0
- /package/dist/assets/{folder-open-CAb0DLYq.js → folder-open-Nlg0OphT.js} +0 -0
- /package/dist/assets/{format-date-C5pKGCAG.js → format-date-RZ9mCDCy.js} +0 -0
- /package/dist/assets/{format-file-size-Btq3aJL3.js → format-file-size-CQaPE33p.js} +0 -0
- /package/dist/assets/{globe-CEgs-yoc.js → globe-CMtjL_s_.js} +0 -0
- /package/dist/assets/{hard-drive-dYuXAWBE.js → hard-drive-DWFPKcXI.js} +0 -0
- /package/dist/assets/{hard-navigate-V2EFapkk.js → hard-navigate-DZlpL1No.js} +0 -0
- /package/dist/assets/{heart-BqO0KKAc.js → heart-789ajxtB.js} +0 -0
- /package/dist/assets/{impersonate-version-flag-QIrc9g5I.js → impersonate-version-flag-4Ki_3iKD.js} +0 -0
- /package/dist/assets/{inbox-DXYIwUrn.js → inbox-B6TknLsk.js} +0 -0
- /package/dist/assets/{info-CYiVdnQV.js → info-vgPTIsGI.js} +0 -0
- /package/dist/assets/{input-C-GkeWCw.js → input-hw3el2GJ.js} +0 -0
- /package/dist/assets/{is-electron-7N7iyz1y.js → is-electron-m5eeGBnd.js} +0 -0
- /package/dist/assets/{key-round-CSc3w5ka.js → key-round-0Zop_GsZ.js} +0 -0
- /package/dist/assets/{laptop-ByoaxLxg.js → laptop-DSZhU52i.js} +0 -0
- /package/dist/assets/{layout-grid-PPpVK0nJ.js → layout-grid-DA_CfD6d.js} +0 -0
- /package/dist/assets/{link-2-BMNZFfWH.js → link-2-BKL8QWRX.js} +0 -0
- /package/dist/assets/{link-CowyzCIZ.js → link-BfUb7cwC.js} +0 -0
- /package/dist/assets/{link-click-DLYgWZdo.js → link-click-BoSQACXo.js} +0 -0
- /package/dist/assets/{list-CDyb1CGV.js → list-DNbTcxAh.js} +0 -0
- /package/dist/assets/{loader-circle-BzJ2kz3F.js → loader-circle-XREx3i4W.js} +0 -0
- /package/dist/assets/{log-in-Bhye1kwc.js → log-in-CqVJRYe-.js} +0 -0
- /package/dist/assets/{log-out-BLE632qu.js → log-out-B4hsBWnk.js} +0 -0
- /package/dist/assets/{machine-sizes-Cu2Qa0bd.js → machine-sizes-DAflIPTM.js} +0 -0
- /package/dist/assets/{mail-DABv3_Ue.js → mail-CMdPNysl.js} +0 -0
- /package/dist/assets/{message-circle-gk_DFUIg.js → message-circle-BsH7vHtN.js} +0 -0
- /package/dist/assets/{message-square-zCNXaHYX.js → message-square-CQGiY4zk.js} +0 -0
- /package/dist/assets/{message-square-text-asdoy3SW.js → message-square-text-D0Q7W58R.js} +0 -0
- /package/dist/assets/{mic-DZrWtAAu.js → mic-xmDFUbCL.js} +0 -0
- /package/dist/assets/{minimize-2-BR0ed4mI.js → minimize-2-CaXsUqSp.js} +0 -0
- /package/dist/assets/{misc-CAQM4FGM.js → misc-DckBb5zz.js} +0 -0
- /package/dist/assets/{monitor-B5vtTCxm.js → monitor-B1y28fS1.js} +0 -0
- /package/dist/assets/{moon-DSdti3GO.js → moon-BJzODLTY.js} +0 -0
- /package/dist/assets/{native-deep-link-D4jZANvf.js → native-deep-link-PvbVHiPM.js} +0 -0
- /package/dist/assets/{oauth-popup-Bru0o3W0.js → oauth-popup-DZEqljdC.js} +0 -0
- /package/dist/assets/{onboarding-step-layout-D9rghAjS.js → onboarding-step-layout-CURfuoh4.js} +0 -0
- /package/dist/assets/{optimistic-lifecycle-50vNA6dY.js → optimistic-lifecycle-C2a6IJ7E.js} +0 -0
- /package/dist/assets/{paperclip-DVE0scjU.js → paperclip-c8Xlrnx4.js} +0 -0
- /package/dist/assets/{pdf-DFUISXhq.js → pdf-IQXtc7_x.js} +0 -0
- /package/dist/assets/{plugin-attribution-CItr0rSf.js → plugin-attribution-DCFEMRUF.js} +0 -0
- /package/dist/assets/{pointer-QlIwQKYH.js → pointer-RLpjGG7A.js} +0 -0
- /package/dist/assets/{prechat-EVefdGcO.js → prechat-DIuViPZk.js} +0 -0
- /package/dist/assets/{profile-metadata-D2IzF-q3.js → profile-metadata-h4CTeMKT.js} +0 -0
- /package/dist/assets/{progress-bar-CJxkStgF.js → progress-bar-C_T5_pf2.js} +0 -0
- /package/dist/assets/{proxy-Ca4nD_gM.js → proxy-RtD8704m.js} +0 -0
- /package/dist/assets/{public-asset-CoSMBS62.js → public-asset-CbDDcomC.js} +0 -0
- /package/dist/assets/{rotate-ccw-Da_2DvhY.js → rotate-ccw-BjzeX7qz.js} +0 -0
- /package/dist/assets/{sandbox-bridge-BhR-nW2z.js → sandbox-bridge-DgDrAWv3.js} +0 -0
- /package/dist/assets/{sdk.gen-CsFDyJ6U.js → sdk.gen-BVAVE6A_.js} +0 -0
- /package/dist/assets/{sdk.gen-DEFA-6EJ.js → sdk.gen-DPKrJeho.js} +0 -0
- /package/dist/assets/{search-DA3TmTuR.js → search-BVW-n8to.js} +0 -0
- /package/dist/assets/{semver-Bfq1LtyW.js → semver-BpijV4FQ.js} +0 -0
- /package/dist/assets/{send-DHWUIK7G.js → send-Q71Exj3z.js} +0 -0
- /package/dist/assets/{shield-check-C7I-REGg.js → shield-check-22NwY9JM.js} +0 -0
- /package/dist/assets/{shield-B69p45Kq.js → shield-fzs_emVe.js} +0 -0
- /package/dist/assets/{smartphone-BbK6bGuE.js → smartphone-mDNwm_ss.js} +0 -0
- /package/dist/assets/{sparkles-DC8kqYjt.js → sparkles-Ccrj7hxd.js} +0 -0
- /package/dist/assets/{square-Bn3X6ZlO.js → square-D_e8nR-F.js} +0 -0
- /package/dist/assets/{status-badge-pill-wJPMXQk1.js → status-badge-pill-z1OKPW3B.js} +0 -0
- /package/dist/assets/{sun-BKEPYS7Q.js → sun-Dw0t1n1O.js} +0 -0
- /package/dist/assets/{terminal-Cs_TREv-.js → terminal-CdCI6wMV.js} +0 -0
- /package/dist/assets/{theme-preferences-LQuLaIA6.js → theme-preferences-ln8xC5zH.js} +0 -0
- /package/dist/assets/{three-dot-indicator-CfjkCgEH.js → three-dot-indicator-SJcKW5cG.js} +0 -0
- /package/dist/assets/{toggle-D776PTw-.js → toggle-lfnhEAcN.js} +0 -0
- /package/dist/assets/{trash-2-De6X8YiM.js → trash-2-L5LNgw9o.js} +0 -0
- /package/dist/assets/{triangle-alert--e3n47gm.js → triangle-alert-CQfiAg_t.js} +0 -0
- /package/dist/assets/{typed-storage-zmOSvIeO.js → typed-storage-9Sn8tkE7.js} +0 -0
- /package/dist/assets/{use-copy-to-clipboard-O2AZwhGa.js → use-copy-to-clipboard-DBVpNZOl.js} +0 -0
- /package/dist/assets/{use-is-mobile-Cx2xnNUx.js → use-is-mobile-Bz2l7wPL.js} +0 -0
- /package/dist/assets/{user-Dq9DUxnU.js → user-_zNqL48O.js} +0 -0
- /package/dist/assets/{user-plus-CXMJ1x_5.js → user-plus-oiIr9ey8.js} +0 -0
- /package/dist/assets/{users-DWDkv8ju.js → users-iLvfYFOP.js} +0 -0
- /package/dist/assets/{video-CZnrM0pw.js → video-BcgduiJ6.js} +0 -0
- /package/dist/assets/{volume-2-Bj3y3ZBJ.js → volume-2-CvT-JEIl.js} +0 -0
- /package/dist/assets/{workflow-DbPANJpf.js → workflow-cWWiPi3K.js} +0 -0
- /package/dist/assets/{workflow-status-CgrMMiJT.js → workflow-status-DXdUkbSd.js} +0 -0
- /package/dist/assets/{workspace-theme-tokens-bLqHFK0a.js → workspace-theme-tokens-J8dqkK9n.js} +0 -0
- /package/dist/assets/{wrench-tjOqvzJ2.js → wrench-0WW0zkkG.js} +0 -0
- /package/dist/assets/{x-DuBvjmAE.js → x-JBAsSOmg.js} +0 -0
- /package/dist/assets/{xterm-DZ5GcyM-.js → xterm-CdT0HObJ.js} +0 -0
- /package/dist/assets/{xterm-addon-fit-SiMU5kXG.js → xterm-addon-fit-CPcVj1i5.js} +0 -0
- /package/dist/assets/{zoom-in-BBlu4Gwn.js → zoom-in-CaLYwni-.js} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{r as t}from"./capture-error-Bj8_eutd.js";import{t as n}from"./react-BFJW0bSv.js";import{t as r}from"./button-Dy5001j6.js";import{n as i}from"./QueryClientProvider-CMu7CkQU.js";import{t as a}from"./useQuery-Bz-fbQ-m.js";import{t as o}from"./jsx-runtime-D3ZM-ToX.js";import{t as s}from"./typography-DEI9Ra9z.js";import{t as c}from"./chevron-right-HU6H84S0.js";import{t as l}from"./loader-circle-XREx3i4W.js";import{j as u,k as d}from"./src-D89CNeuT.js";import{t as f}from"./tag-NXcyiTkK.js";import{n as p,t as m}from"./input-hw3el2GJ.js";import{t as h}from"./toggle-lfnhEAcN.js";import{t as g}from"./modal-BR4CUFBd.js";import{n as _}from"./toast-LgLp4obE.js";import{t as ee}from"./dropdown-BCfnSdIZ.js";import{t as v}from"./is-electron-m5eeGBnd.js";import{Gt as y,Ht as b,Kt as x,Vt as S,ar as te,or as C}from"./sdk.gen-BVAVE6A_.js";import{H as w,_t as T,c as E,gt as D}from"./react-query.gen-r3I6j8-1.js";import{t as O}from"./assistant-identity-store-DIyVo8LV.js";import{i as k,r as A,t as j}from"./utils-CnB60ZJN.js";import{n as M}from"./use-platform-gate-Dry0Nv4f.js";import{t as N}from"./use-is-org-ready-X_98Cnx9.js";var P=e(n(),1),F={anthropic:[{id:`claude-fable-5`,displayName:`Claude Fable 5`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,adaptiveThinkingOnly:!0,longContextPricingThresholdTokens:2e5},{id:`claude-opus-5`,displayName:`Claude Opus 5`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`claude-opus-4-8`,displayName:`Claude Opus 4.8`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`claude-opus-4-7`,displayName:`Claude Opus 4.7`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`claude-opus-4-6`,displayName:`Claude Opus 4.6`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`claude-sonnet-5`,displayName:`Claude Sonnet 5`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`claude-sonnet-4-6`,displayName:`Claude Sonnet 4.6`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:64e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`claude-sonnet-4-5-20250929`,displayName:`Claude Sonnet 4.5`,contextWindowTokens:2e5,defaultContextWindowTokens:2e5,maxOutputTokens:64e3,supportsThinking:!0},{id:`claude-opus-4-5-20251101`,displayName:`Claude Opus 4.5`,contextWindowTokens:2e5,defaultContextWindowTokens:2e5,maxOutputTokens:64e3,supportsThinking:!0},{id:`claude-haiku-4-5-20251001`,displayName:`Claude Haiku 4.5`,contextWindowTokens:2e5,defaultContextWindowTokens:2e5,maxOutputTokens:64e3,supportsThinking:!0}],openai:[{id:`gpt-5.6-sol`,displayName:`GPT-5.6 Sol`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:272e3},{id:`gpt-5.6-terra`,displayName:`GPT-5.6 Terra`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:272e3},{id:`gpt-5.6-luna`,displayName:`GPT-5.6 Luna`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:272e3},{id:`gpt-5.5`,displayName:`GPT-5.5`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:272e3},{id:`gpt-5.5-pro`,displayName:`GPT-5.5 Pro`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:272e3},{id:`gpt-5.4`,displayName:`GPT-5.4`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:272e3},{id:`gpt-5.2`,displayName:`GPT-5.2`,contextWindowTokens:4e5,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0},{id:`gpt-5.4-mini`,displayName:`GPT-5.4 Mini`,contextWindowTokens:4e5,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0},{id:`gpt-5.4-nano`,displayName:`GPT-5.4 Nano`,contextWindowTokens:4e5,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0}],gemini:[{id:`gemini-3.6-flash`,displayName:`Gemini 3.6 Flash`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:65536,supportsThinking:!0},{id:`gemini-3.5-flash`,displayName:`Gemini 3.5 Flash`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:65536,supportsThinking:!0},{id:`gemini-3.5-flash-lite`,displayName:`Gemini 3.5 Flash-Lite`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:65536,supportsThinking:!0},{id:`gemini-3.1-pro-preview`,displayName:`Gemini 3.1 Pro Preview`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:65536,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`gemini-3.1-pro-preview-customtools`,displayName:`Gemini 3.1 Pro Preview (Custom Tools)`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:65536,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`gemini-3-flash-preview`,displayName:`Gemini 3 Flash Preview`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:65536,supportsThinking:!0},{id:`gemini-3.1-flash-lite-preview`,displayName:`Gemini 3.1 Flash-Lite Preview`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:65536,supportsThinking:!0},{id:`gemini-3.1-flash-lite`,displayName:`Gemini 3.1 Flash-Lite`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:65536,supportsThinking:!0},{id:`gemini-2.5-flash`,displayName:`Gemini 2.5 Flash`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:65536,supportsThinking:!0},{id:`gemini-2.5-flash-lite`,displayName:`Gemini 2.5 Flash Lite`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:65536},{id:`gemini-2.5-pro`,displayName:`Gemini 2.5 Pro`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:65536,supportsThinking:!0,longContextPricingThresholdTokens:2e5}],ollama:[{id:`llama3.2`,displayName:`Llama 3.2`,contextWindowTokens:128e3,defaultContextWindowTokens:128e3,maxOutputTokens:4096},{id:`mistral`,displayName:`Mistral`,contextWindowTokens:32768,defaultContextWindowTokens:32768,maxOutputTokens:4096}],fireworks:[{id:`accounts/fireworks/models/kimi-k2p6`,displayName:`Kimi K2.6`,contextWindowTokens:262144,defaultContextWindowTokens:2e5,maxOutputTokens:32768,supportsThinking:!0},{id:`accounts/fireworks/models/glm-5p2`,displayName:`GLM 5.2`,contextWindowTokens:104e4,defaultContextWindowTokens:2e5,maxOutputTokens:131072,supportsThinking:!0},{id:`accounts/fireworks/models/kimi-k2p5`,displayName:`Kimi K2.5`,contextWindowTokens:256e3,defaultContextWindowTokens:2e5,maxOutputTokens:32768},{id:`accounts/fireworks/models/minimax-m3`,displayName:`MiniMax M3`,contextWindowTokens:524288,defaultContextWindowTokens:2e5,maxOutputTokens:512e3,supportsThinking:!0},{id:`accounts/fireworks/models/minimax-m2p7`,displayName:`MiniMax M2.7`,contextWindowTokens:196608,defaultContextWindowTokens:196608,maxOutputTokens:25e3},{id:`accounts/fireworks/models/minimax-m2p5`,displayName:`MiniMax M2.5`,contextWindowTokens:196608,defaultContextWindowTokens:196608,maxOutputTokens:25e3},{id:`accounts/fireworks/models/deepseek-v4-pro`,displayName:`DeepSeek V4 Pro`,contextWindowTokens:104e4,defaultContextWindowTokens:2e5,maxOutputTokens:131072,supportsThinking:!0},{id:`accounts/fireworks/models/deepseek-v4-flash`,displayName:`DeepSeek V4 Flash`,contextWindowTokens:104e4,defaultContextWindowTokens:2e5,maxOutputTokens:131072,supportsThinking:!0}],together:[{id:`MiniMaxAI/MiniMax-M3`,displayName:`MiniMax M3`,contextWindowTokens:524288,defaultContextWindowTokens:2e5,maxOutputTokens:512e3,supportsThinking:!0}],openrouter:[{id:`anthropic/claude-fable-5`,displayName:`Claude Fable 5`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,adaptiveThinkingOnly:!0,longContextPricingThresholdTokens:2e5},{id:`anthropic/claude-opus-5`,displayName:`Claude Opus 5`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`anthropic/claude-opus-4.8`,displayName:`Claude Opus 4.8`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`anthropic/claude-opus-4.7`,displayName:`Claude Opus 4.7`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`anthropic/claude-opus-4.6`,displayName:`Claude Opus 4.6`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`anthropic/claude-sonnet-5`,displayName:`Claude Sonnet 5`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`anthropic/claude-sonnet-4.6`,displayName:`Claude Sonnet 4.6`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:64e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`anthropic/claude-sonnet-4.5`,displayName:`Claude Sonnet 4.5`,contextWindowTokens:2e5,defaultContextWindowTokens:2e5,maxOutputTokens:64e3,supportsThinking:!0},{id:`anthropic/claude-opus-4.5`,displayName:`Claude Opus 4.5`,contextWindowTokens:2e5,defaultContextWindowTokens:2e5,maxOutputTokens:64e3,supportsThinking:!0},{id:`anthropic/claude-haiku-4.5`,displayName:`Claude Haiku 4.5`,contextWindowTokens:2e5,defaultContextWindowTokens:2e5,maxOutputTokens:64e3,supportsThinking:!0},{id:`openai/gpt-5.6-sol`,displayName:`GPT-5.6 Sol`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:272e3},{id:`openai/gpt-5.6-sol-pro`,displayName:`GPT-5.6 Sol Pro`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:272e3},{id:`openai/gpt-5.6-terra`,displayName:`GPT-5.6 Terra`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:272e3},{id:`openai/gpt-5.6-terra-pro`,displayName:`GPT-5.6 Terra Pro`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:272e3},{id:`openai/gpt-5.6-luna`,displayName:`GPT-5.6 Luna`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:272e3},{id:`openai/gpt-5.6-luna-pro`,displayName:`GPT-5.6 Luna Pro`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:272e3},{id:`x-ai/grok-4.5`,displayName:`Grok 4.5`,contextWindowTokens:5e5,defaultContextWindowTokens:2e5,maxOutputTokens:3e4,supportsThinking:!0},{id:`x-ai/grok-4.3`,displayName:`Grok 4.3`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:16e3,supportsThinking:!0},{id:`x-ai/grok-4.20`,displayName:`Grok 4.20`,contextWindowTokens:2e6,defaultContextWindowTokens:2e5,maxOutputTokens:16e3,supportsThinking:!0},{id:`deepseek/deepseek-r1-0528`,displayName:`DeepSeek R1`,contextWindowTokens:163840,defaultContextWindowTokens:163840,maxOutputTokens:32e3,supportsThinking:!0},{id:`deepseek/deepseek-chat-v3-0324`,displayName:`DeepSeek V3`,contextWindowTokens:163840,defaultContextWindowTokens:163840,maxOutputTokens:32e3},{id:`deepseek/deepseek-v4-pro`,displayName:`DeepSeek V4 Pro`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:384e3,supportsThinking:!0},{id:`deepseek/deepseek-v4-flash`,displayName:`DeepSeek V4 Flash`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:384e3,supportsThinking:!0},{id:`deepseek/deepseek-v3.2-speciale`,displayName:`DeepSeek V3.2 Speciale`,contextWindowTokens:163840,defaultContextWindowTokens:163840,maxOutputTokens:163840,supportsThinking:!0},{id:`qwen/qwen3.5-plus-02-15`,displayName:`Qwen 3.5 Plus`,contextWindowTokens:131072,defaultContextWindowTokens:131072,maxOutputTokens:8192,supportsThinking:!0},{id:`qwen/qwen3.5-397b-a17b`,displayName:`Qwen 3.5 397B`,contextWindowTokens:131072,defaultContextWindowTokens:131072,maxOutputTokens:8192,supportsThinking:!0},{id:`qwen/qwen3.5-flash-02-23`,displayName:`Qwen 3.5 Flash`,contextWindowTokens:131072,defaultContextWindowTokens:131072,maxOutputTokens:8192},{id:`qwen/qwen3-coder-next`,displayName:`Qwen 3 Coder`,contextWindowTokens:131072,defaultContextWindowTokens:131072,maxOutputTokens:8192},{id:`moonshotai/kimi-k3`,displayName:`Kimi K3`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:131072,supportsThinking:!0,adaptiveThinkingOnly:!0},{id:`moonshotai/kimi-k2.6`,displayName:`Kimi K2.6`,contextWindowTokens:262144,defaultContextWindowTokens:2e5,maxOutputTokens:32768,supportsThinking:!0},{id:`moonshotai/kimi-k2.5`,displayName:`Kimi K2.5`,contextWindowTokens:256e3,defaultContextWindowTokens:2e5,maxOutputTokens:32768},{id:`minimax/minimax-m3`,displayName:`MiniMax M3`,contextWindowTokens:524288,defaultContextWindowTokens:2e5,maxOutputTokens:512e3,supportsThinking:!0},{id:`minimax/minimax-m2.7`,displayName:`MiniMax M2.7`,contextWindowTokens:196608,defaultContextWindowTokens:196608,maxOutputTokens:131072,supportsThinking:!0},{id:`minimax/minimax-m2.5`,displayName:`MiniMax M2.5`,contextWindowTokens:196608,defaultContextWindowTokens:196608,maxOutputTokens:196608,supportsThinking:!0},{id:`minimax/minimax-m2.1`,displayName:`MiniMax M2.1`,contextWindowTokens:196608,defaultContextWindowTokens:196608,maxOutputTokens:196608,supportsThinking:!0},{id:`minimax/minimax-m2`,displayName:`MiniMax M2`,contextWindowTokens:196608,defaultContextWindowTokens:196608,maxOutputTokens:196608,supportsThinking:!0},{id:`minimax/minimax-m2-her`,displayName:`MiniMax M2-her`,contextWindowTokens:65536,defaultContextWindowTokens:65536,maxOutputTokens:2048},{id:`minimax/minimax-m1`,displayName:`MiniMax M1`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:4e4,supportsThinking:!0},{id:`minimax/minimax-01`,displayName:`MiniMax-01`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:1e6},{id:`z-ai/glm-5.2`,displayName:`GLM-5.2`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:131072,supportsThinking:!0},{id:`mistralai/mistral-medium-3`,displayName:`Mistral Medium 3`,contextWindowTokens:131072,defaultContextWindowTokens:131072,maxOutputTokens:16e3},{id:`mistralai/mistral-small-2603`,displayName:`Mistral Small 4`,contextWindowTokens:131072,defaultContextWindowTokens:131072,maxOutputTokens:16e3},{id:`mistralai/devstral-2512`,displayName:`Devstral 2`,contextWindowTokens:131072,defaultContextWindowTokens:131072,maxOutputTokens:16e3},{id:`meta-llama/llama-4-maverick`,displayName:`Llama 4 Maverick`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:16e3},{id:`meta-llama/llama-4-scout`,displayName:`Llama 4 Scout`,contextWindowTokens:327680,defaultContextWindowTokens:2e5,maxOutputTokens:16e3},{id:`amazon/nova-pro-v1`,displayName:`Amazon Nova Pro`,contextWindowTokens:3e5,defaultContextWindowTokens:2e5,maxOutputTokens:5e3},{id:`openrouter/owl-alpha`,displayName:`Owl Alpha`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:262144}],"vercel-ai-gateway":[{id:`anthropic/claude-fable-5`,displayName:`Claude Fable 5`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,adaptiveThinkingOnly:!0,longContextPricingThresholdTokens:2e5},{id:`anthropic/claude-opus-5`,displayName:`Claude Opus 5`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`anthropic/claude-opus-4.8`,displayName:`Claude Opus 4.8`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`anthropic/claude-opus-4.6`,displayName:`Claude Opus 4.6`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`anthropic/claude-sonnet-5`,displayName:`Claude Sonnet 5`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`anthropic/claude-sonnet-4.6`,displayName:`Claude Sonnet 4.6`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:64e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`anthropic/claude-haiku-4.5`,displayName:`Claude Haiku 4.5`,contextWindowTokens:2e5,defaultContextWindowTokens:2e5,maxOutputTokens:64e3,supportsThinking:!0},{id:`openai/gpt-5.5`,displayName:`GPT-5.5`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:272e3},{id:`openai/gpt-5.5-pro`,displayName:`GPT-5.5 Pro`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:272e3},{id:`xai/grok-4.3`,displayName:`Grok 4.3`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:16e3,supportsThinking:!0},{id:`moonshotai/kimi-k2.6`,displayName:`Kimi K2.6`,contextWindowTokens:262144,defaultContextWindowTokens:2e5,maxOutputTokens:32768,supportsThinking:!0},{id:`deepseek/deepseek-v4-flash`,displayName:`DeepSeek V4 Flash`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:384e3,supportsThinking:!0}],minimax:[{id:`MiniMax-M3`,displayName:`MiniMax M3`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:512e3,supportsThinking:!0},{id:`MiniMax-M2.7`,displayName:`MiniMax M2.7`,contextWindowTokens:2e5,defaultContextWindowTokens:2e5,maxOutputTokens:16384,supportsThinking:!0}],atlascloud:[{id:`deepseek-ai/deepseek-v4-pro`,displayName:`DeepSeek V4 Pro`,contextWindowTokens:128e3,defaultContextWindowTokens:128e3,maxOutputTokens:8192,supportsThinking:!0}],litellm:[],baseten:[{id:`thinkingmachines/inkling`,displayName:`Inkling`,contextWindowTokens:262144,defaultContextWindowTokens:2e5,maxOutputTokens:32768,supportsThinking:!0}],"openai-compatible":[]},I={anthropic:`claude-opus-4-8`,openai:`gpt-5.5`,gemini:`gemini-2.5-flash`,ollama:`llama3.2`,fireworks:`accounts/fireworks/models/kimi-k2p5`,together:`MiniMaxAI/MiniMax-M3`,openrouter:`x-ai/grok-4.20`,"vercel-ai-gateway":`anthropic/claude-sonnet-4.6`,minimax:`MiniMax-M2.7`,atlascloud:`deepseek-ai/deepseek-v4-pro`,litellm:``,baseten:`thinkingmachines/inkling`,"openai-compatible":``},L={vellum:`Vellum`,chatgpt:`ChatGPT Subscription`,anthropic:`Anthropic`,openai:`OpenAI`,gemini:`Google Gemini`,ollama:`Ollama`,fireworks:`Fireworks`,together:`Together AI`,openrouter:`OpenRouter`,"vercel-ai-gateway":`Vercel AI Gateway`,"openai-compatible":`OpenAI-compatible`,minimax:`MiniMax`,atlascloud:`Atlas Cloud`,litellm:`LiteLLM`,baseten:`Baseten`};F.anthropic;var R=[`anthropic`,`openai`,`gemini`,`fireworks`,`together`],z=(()=>{let e=new Set,t=new Set,n=[];for(let r of R)for(let i of F[r])e.has(i.id)||t.has(i.displayName)||(e.add(i.id),t.add(i.displayName),n.push(i));return n})();function ne(e){let t=e.indexOf(`/`);if(t<=0)return null;let n=e.slice(0,t),r=R.find(e=>e===n),i=e.slice(t+1);return r&&i?{provider:r,model:i}:null}function re(e){let t=ne(e);return t?t.provider:R.find(t=>F[t].some(t=>t.id===e))}function B(e){return e===`vellum`?z:F[e]??[]}function V(e){return I[e]}var ie=`openai-compatible`,ae=[`anthropic`,`openai`,`fireworks`,`together`,`openrouter`,`vercel-ai-gateway`,`gemini`,`ollama`,`minimax`,`atlascloud`,`litellm`,`baseten`],oe=`vellum`,se=new Set(R),ce=1e3,H=1e3,U=[`default`,`firecrawl`],W={default:`Vellum`,firecrawl:`Firecrawl`},le={firecrawl:`fc-...`},ue={firecrawl:`vellum:ai:firecrawlKey`},de=new Set([`firecrawl`]),fe=[`vellum`,`inference-provider-native`,`perplexity`,`brave`,`tavily`,`firecrawl`],G={vellum:`Vellum`,"inference-provider-native":`Provider Native`,perplexity:`Perplexity`,brave:`Brave`,tavily:`Tavily`,firecrawl:`Firecrawl`},pe={perplexity:`pplx-...`,brave:`BSA...`,tavily:`tvly-...`,firecrawl:`fc-...`},me={perplexity:`vellum:ai:perplexityKey`,brave:`vellum:ai:braveKey`,tavily:`vellum:ai:tavilyKey`,firecrawl:`vellum:ai:firecrawlKey`},K=new Set([`perplexity`,`brave`,`tavily`,`firecrawl`]),he=new Set([`managed`,`your-own`]);function ge(e,t){return he.has(e)?e:t}function _e(e,t){let n=t.filter(t=>t in e).map(t=>({name:t,...e[t]})),r=new Set(t),i=Object.entries(e).filter(([e])=>!r.has(e)).map(([e,t])=>({name:e,...t}));return[...n,...i]}function ve(e){if(e&&typeof e==`object`&&`success`in e&&e.success===!1)throw Error(`Failed to provision API key: server returned success=false`)}function ye(e,t,n=ce){return Math.min(Number.isFinite(e)?Math.max(Math.round(e),n):n,t)}function be(e,t){return e.toLocaleString(`en-US`,{maximumFractionDigits:t,minimumFractionDigits:0})}function xe(e){let t=Array.isArray(e)?e[0]??0:e,n=Math.round(t);return Math.abs(n)>=1e6?`${be(n/1e6,2)}M`:Math.abs(n)>=1e3?`${be(n/1e3,1)}K`:n.toLocaleString(`en-US`)}function Se(e){return me[e]??``}function Ce(e){return ue[e]??``}var we={maxTokens:!1,contextWindow:!1,effort:!1,speed:!1,verbosity:!1,temperature:!1,topP:!1,thinking:!1,thinkingLevel:!1};function Te(e){return e===`gpt-5`||e.startsWith(`gpt-5.`)||e.startsWith(`gpt-5-`)}function q(e){return e.startsWith(`anthropic/`)}function Ee(e,t){let n=t.toLowerCase();return B(e).find(e=>e.id.toLowerCase()===n)}function De(e,t){return Ee(e,t)?.adaptiveThinkingOnly===!0}function Oe(e){return q(e)||e.startsWith(`x-ai/grok-4`)||e.startsWith(`deepseek/deepseek-r1`)||e===`qwen/qwen3.5-plus-02-15`||e===`qwen/qwen3.5-397b-a17b`||e===`moonshotai/kimi-k2.6`}var ke=[`minimal`,`low`,`medium`,`high`],Ae=[`low`,`medium`,`high`];function je(e){return/^gemini-3.*pro/.test(e)}var Me=new Set(ke);function Ne(e){return typeof e==`string`&&Me.has(e)}function Pe(e){return je(e.toLowerCase())?Ae:ke}function Fe(e,t){let n=Ee(e,t);return n?.supportsThinking===void 0?e===`anthropic`?!0:e===`openrouter`?Oe(t):e===`vercel-ai-gateway`?q(t):!1:n.supportsThinking}function Ie(e,t,n){return e===`anthropic`?!t.includes(`haiku`)&&n:e===`openai`?Te(t):e===`openrouter`||e===`vercel-ai-gateway`?q(t)?!t.includes(`haiku`)&&n:n:e===`fireworks`||e===`together`||e===`baseten`?n:!1}var Le=new Set([`openai-compatible`,`fireworks`,`minimax`,`atlascloud`,`baseten`,`ollama`,`openrouter`,`together`,`vercel-ai-gateway`]);function Re(e,t){return t||Le.has(e)}function ze(e,t){if(!e||!t)return we;let n=e.toLowerCase(),r=t.toLowerCase(),i=n===`anthropic`||(n===`openrouter`||n===`vercel-ai-gateway`)&&q(r),a=Fe(n,r);return{maxTokens:!0,contextWindow:!0,effort:Ie(n,r,a),speed:n===`anthropic`&&r.includes(`opus`),verbosity:n===`openai`&&Te(r),temperature:i,topP:Re(n,i),thinking:(n===`anthropic`||n===`openrouter`||n===`vercel-ai-gateway`&&q(r))&&a&&!De(n,r),thinkingLevel:n===`gemini`&&a}}var J=`0.10.8`;function Y(){return A(J)}var X=o(),Z=[`inherit`,`none`,`low`,`medium`,`high`,`xhigh`,`max`],Be=[`standard`,`fast`],Ve=[`low`,`medium`,`high`],He=`default`,Ue=64e3;function We({label:e,value:t,onChange:n,defaultValue:i,max:a,disabled:o}){let s=t===null,c=t??i,[l,u]=(0,P.useState)(s?``:String(t)),[f,p]=(0,P.useState)(t);t!==f&&(p(t),u(t===null?``:String(t)));function h(e){u(e);let t=e.trim();if(t===``){n(null);return}let r=Number(t);Number.isFinite(r)&&r>=1e3&&r<=a&&n(r)}function g(e){let r=e.trim();if(r===``){n(null);return}let i=Number(r);if(!Number.isFinite(i)){u(t===null?``:String(t));return}let o=ye(i,a);u(String(o)),n(o)}return(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,X.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:e}),s?(0,X.jsxs)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:[`Default · `,xe(i)]}):null]}),(0,X.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,X.jsx)(`div`,{className:`flex-1`,children:(0,X.jsx)(d,{value:c,onValueChange:e=>n(typeof e==`number`?e:e[0]),min:ce,max:a,step:H,disabled:o,"aria-label":e})}),(0,X.jsx)(m,{type:`number`,inputMode:`numeric`,value:l,placeholder:String(i),onChange:e=>h(e.target.value),onBlur:e=>g(e.target.value),onKeyDown:e=>{e.key===`Enter`&&g(e.currentTarget.value)},min:ce,max:a,step:H,disabled:o,"aria-label":`${e} (tokens)`,wrapperClassName:`w-32 shrink-0`,className:`text-right tabular-nums`}),(0,X.jsx)(r,{variant:`ghost`,size:`compact`,onClick:()=>n(null),disabled:o||s,children:`Reset`})]})]})}function Ge({visibility:e,isReadOnly:t,model:n,selectedModel:r,defaultMaxOutputTokens:i,defaultContextWindowMaxInputTokens:a,maxTokens:o,onMaxTokensChange:s,contextWindowMaxInputTokens:c,onContextWindowChange:l,effort:f,onEffortChange:p,speed:m,onSpeedChange:g,verbosity:_,onVerbosityChange:ee,temperatureEnabled:v,onTemperatureEnabledChange:y,temperature:b,onTemperatureChange:x,topPEnabled:S,onTopPEnabledChange:te,topP:C,onTopPChange:w,thinkingEnabled:T,onThinkingEnabledChange:E,thinkingStreamThinking:D,onThinkingStreamThinkingChange:O,thinkingLevel:k,onThinkingLevelChange:A}){let j=Y(),M=r?.maxOutputTokens??Ue,N=r?.contextWindowTokens??2e5,P=Math.min(i??Ue,M),F=Math.min(a??2e5,N);return(0,X.jsxs)(`div`,{className:`space-y-4`,children:[!t&&j&&(0,X.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Fields left at their default are saved with the values shown and won’t change if the assistant defaults change later.`}),e.maxTokens&&(0,X.jsx)(We,{label:`Max Output Tokens`,value:o,onChange:s,defaultValue:P,max:M,disabled:t}),e.contextWindow&&(0,X.jsx)(We,{label:`Context Window`,value:c,onChange:l,defaultValue:F,max:N,disabled:t||!r}),e.effort&&(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Effort`}),(0,X.jsx)(u,{items:Z.map(e=>({value:e,label:e===`inherit`?`default`:e,disabled:t})),value:f,onChange:e=>p(e),ariaLabel:`Effort`})]}),e.speed&&(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Speed`}),(0,X.jsx)(u,{items:Be.map(e=>({value:e,label:e,disabled:t})),value:m,onChange:e=>g(e),ariaLabel:`Speed`})]}),e.verbosity&&(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Verbosity`}),(0,X.jsx)(u,{items:Ve.map(e=>({value:e,label:e,disabled:t})),value:_,onChange:e=>ee(e),ariaLabel:`Verbosity`})]}),e.temperature&&(0,X.jsxs)(`div`,{className:`space-y-2`,children:[(0,X.jsx)(h,{checked:v,onChange:e=>y(e),label:`Temperature`,disabled:t}),v&&(0,X.jsx)(`div`,{className:`flex items-center justify-between`,children:(0,X.jsx)(`div`,{className:`flex-1`,children:(0,X.jsx)(d,{value:b,onValueChange:e=>x(typeof e==`number`?e:e[0]),min:0,max:2,step:.01,disabled:t,showValue:!0,formatValue:e=>typeof e==`number`?e.toFixed(2):String(e)})})})]}),e.topP&&(0,X.jsxs)(`div`,{className:`space-y-2`,children:[(0,X.jsx)(h,{checked:S,onChange:e=>te(e),label:`Top P`,disabled:t}),S&&(0,X.jsx)(`div`,{className:`flex items-center justify-between`,children:(0,X.jsx)(`div`,{className:`flex-1`,children:(0,X.jsx)(d,{value:C,onValueChange:e=>w(typeof e==`number`?e:e[0]),min:0,max:1,step:.01,disabled:t,showValue:!0,formatValue:e=>typeof e==`number`?e.toFixed(2):String(e)})})})]}),e.thinking&&(0,X.jsxs)(`div`,{className:`space-y-3`,children:[(0,X.jsx)(h,{checked:T,onChange:e=>{E(e),e||O(!1)},label:`Enable extended thinking`,disabled:t}),T&&(0,X.jsx)(`div`,{className:`pl-4`,children:(0,X.jsx)(h,{checked:D,onChange:e=>O(e),label:`Stream thinking tokens`,disabled:t})})]}),e.thinkingLevel&&(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsxs)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:[`Thinking level`,` `,(0,X.jsx)(`span`,{className:`text-[var(--content-disabled)]`,children:`(default = inherit)`})]}),(0,X.jsx)(u,{items:[`default`,...Pe(n)].map(e=>({value:e,label:`${e}`,disabled:t})),value:k,onChange:A,ariaLabel:`Thinking level`})]})]})}var Ke=[`anthropic`,`openai`,`gemini`,`ollama`,`fireworks`,`together`,`openrouter`,`vercel-ai-gateway`,`minimax`,`atlascloud`,`litellm`,`baseten`,`openai-compatible`];function qe(e){let t=e.split(`/`);return t.length<3||t[0]!==`credential`?null:{service:t[1],field:t.slice(2).join(`/`)}}function Je(e){switch(e){case 409:return`A provider with these settings already exists.`;case 404:return`Provider not found. It may have been removed.`;case 400:return`Invalid configuration. Check the provider settings.`;default:return`Failed to save provider. Please try again.`}}function Q(e,t){if(e!==400)return;let n=t?.error?.message;return typeof n==`string`&&n.length>0?n:void 0}function Ye(e){return e.label?e.label:e.auth.type===`oauth_subscription`?L.chatgpt:L[e.provider]??e.provider}var Xe=new Set([`ollama`]);function Ze(e,t){return!Xe.has(e)||t}function Qe(e){return ae.filter(t=>Ze(t,e))}function $e(e){return Ke.filter(t=>Ze(t,e))}function et(e){return Object.keys(F).filter(t=>Ze(t,e))}function tt(){return Qe(M())}function nt(){return $e(M())}function rt(){return et(M())}function it(e,t){let n=[...new Set(e.map(e=>e.provider))].filter(e=>Ze(e,t)),r=[];return n.includes(`vellum`)&&r.push(oe),r.push(...Ke.filter(e=>n.includes(e)),...n.filter(e=>e!==`vellum`&&!Ke.includes(e))),r}var $=`${ie}::`;function at(e){return`${$}${e}`}function ot(e){return e.startsWith($)?e.slice($.length):null}function st(e,t,n){let r=[];for(let i of e){if(i===`vellum`){r.push({value:i,label:n(i),meta:`Managed`});continue}if(i!==`openai-compatible`){r.push({value:i,label:n(i)});continue}for(let e of t)e.provider===`openai-compatible`&&r.push({value:at(e.name),label:e.label&&e.label.trim()!==``?e.label:e.name,meta:`Custom`})}return r}var ct=new Set([`gpt-5.5`,`gpt-5.4`,`gpt-5.4-mini`,`gpt-5.3-codex`]);function lt(e){return(e??[]).map(e=>({id:e.id,displayName:e.displayName??e.id}))}function ut(e,t,n){return!e||B(e).length===0?!1:(t?n.find(e=>e.name===t):void 0)?.auth.type===`oauth_subscription`?!0:!t&&n.length>0&&n.every(e=>e.auth.type===`oauth_subscription`)}var dt={"no-provider":{placeholder:`Select a provider first`,hint:null},"configure-connection":{placeholder:`Configure models on connection`,hint:`No models available. Configure models on the provider connection first.`},"unknown-to-catalog":{placeholder:`No models available`,hint:`No models are available for this provider in this app version. Update the app, or enter a custom model ID.`}},ft=`__custom-model-id__`;function pt({text:e}){return(0,X.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:e})}function mt({provider:e,model:t,providerConnection:n,onProviderChange:i,onModelChange:a,onConnectionChange:o,connections:c,isReadOnly:l,availableConnectionsForProvider:u,connectionNotFound:d,hideProviderField:f=!1}){let p=e.length>0&&t.length===0,[h,g]=(0,P.useState)(!1),_=ut(e,n,u),v=e!==``&&!_;(0,P.useEffect)(()=>{v||g(!1)},[e,v]);function y(e){if(e===ft){g(!0),a(``);return}a(e)}let b=rt(),x=M(),S=(0,P.useMemo)(()=>{let t=it(c??[],x);return e&&!t.includes(e)?[...t,e]:t},[c,e,x]),te=c===void 0?b:S,C=(0,P.useMemo)(()=>{if(!e)return[];let t=B(e);if(t.length>0)return ut(e,n,u)?t.filter(e=>ct.has(e.id)):t;if(n){let e=u.find(e=>e.name===n);return e?lt(e.models):[]}let r=new Set,i=[];for(let e of u)for(let t of e.models??[])r.has(t.id)||(r.add(t.id),i.push({id:t.id,displayName:t.displayName??t.id}));return i},[e,n,u]),w=(0,P.useMemo)(()=>{if(!t||C.some(e=>e.id===t))return C;let n=B(e).find(e=>e.id===t),r=u.flatMap(e=>e.models??[]).find(e=>e.id===t),i=n?.displayName??r?.displayName??t;return[...C,{id:t,displayName:i}]},[t,C,e,u]),T=e?C.length===0?e===`openai-compatible`?`configure-connection`:`unknown-to-catalog`:null:`no-provider`,E=T?dt[T]:null;return(0,P.useEffect)(()=>{if(!e||h)return;let n=B(e);n.length>0&&!n.some(e=>e.id===t)||t&&C.length>0&&!C.some(e=>e.id===t)&&a(``)},[t,C,a,e,h]),(0,X.jsxs)(X.Fragment,{children:[!f&&(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsx)(`label`,{id:`profile-editor-provider-label`,className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Provider`}),(0,X.jsx)(ee,{value:e===`openai-compatible`&&n?at(n):e,onChange:e=>{let t=ot(e);if(t){i(`openai-compatible`),o(t);return}i(e)},disabled:l,placeholder:`Select a provider…`,"aria-labelledby":`profile-editor-provider-label`,options:[...st(te,c??[],e=>L[e]??e).map(({value:e,label:t,meta:n})=>({value:e,label:t,suffix:n?(0,X.jsx)(pt,{text:n}):void 0})),...d&&e===`openai-compatible`&&n?[{value:at(n),label:`${n} (not found)`}]:[],...e===`openai-compatible`&&!n?[{value:`openai-compatible`,label:L[`openai-compatible`]??`openai-compatible`}]:[]]}),te.length===0&&!l?(0,X.jsx)(s,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:`No provider connections. Open Providers to add one.`}):null]}),d&&!l&&(0,X.jsx)(s,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:`This profile referenced a credential that no longer exists. Saving resets it to use the provider’s available key.`}),(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Model`}),h?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(m,{value:t,onChange:e=>a(e.target.value),disabled:l,placeholder:`provider/model-id`,"aria-label":`Custom model ID`,fullWidth:!0,autoFocus:!0}),(0,X.jsx)(r,{variant:`link`,size:`compact`,disabled:l,onClick:()=>g(!1),children:`Choose from list`})]}):(0,X.jsx)(ee,{value:t,onChange:y,disabled:l||!e,options:[{value:``,label:E?.placeholder??`Select a model`},...w.map(e=>({value:e.id,label:e.displayName})),...v?[{value:ft,label:`Enter a custom model ID…`}]:[]]}),h?(0,X.jsx)(s,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:`Enter the exact model identifier your provider expects. It's sent to the connection as-is.`}):p&&!l?(0,X.jsx)(s,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:E?.hint??`Select a model.`}):null]})]})}function ht(e){return e.toLowerCase().split(/[^a-z0-9]+/).filter(Boolean).join(`-`)}function gt(e){return ht(e)}function _t(e,t){let n=new Set(t.map(e=>e.toLowerCase()));if(!n.has(e.toLowerCase()))return e;let r=2,i=`${e}-${r}`;for(;n.has(i.toLowerCase());)r+=1,i=`${e}-${r}`;return i}function vt(e,t){return{name:L[e]??e,key:_t(`${gt(e)}-personal`,t)}}function yt(e,t){return{name:e,key:_t(gt(e),t)}}var bt=`0.10.12`;async function xt(e,t){await k(t);let n=O.getState().assistantId;return e!=null&&n!==e?!1:j(bt)}function St(e,t,n){return[`credentialPresence`,e,t,n]}function Ct({assistantId:e,credentialKind:n,credentialName:r,enabled:i=!0}){let o=N(),s=a({queryKey:St(e??``,n,r),queryFn:async()=>{let{data:t}=await C({path:{assistant_id:e},body:{type:n,name:r},throwOnError:!0});return t.found},enabled:!!e&&i&&o,retry:t,staleTime:3e4});return{hasStoredCredential:s.data??!1,isLoading:s.isLoading}}function wt({assistantId:e,onConnected:t}){let[n,i]=(0,P.useState)(`idle`),[a,o]=(0,P.useState)(``),[c,u]=(0,P.useState)(null);async function d(){i(`starting`),u(null);let t=window.open(`about:blank`,`_blank`);try{let{data:{authorize_url:n}}=await b({path:{assistant_id:e},throwOnError:!0});t?(t.opener=null,t.location.href=n):window.open(n,`_blank`,`noopener`),i(`paste_url`)}catch{t?.close(),i(`failed`),u(`Failed to start ChatGPT sign-in. Please try again.`)}}async function f(){u(null);let n=a.trim();if(!n){u(`Please paste the URL from the error page.`);return}let r;try{r=new URL(n)}catch{u(`Invalid URL. Please paste the full URL from the address bar.`);return}let o=r.searchParams.get(`code`),s=r.searchParams.get(`state`);if(!o){u(`The URL is missing the authorization code. Make sure you copied the full URL.`);return}if(!s){u(`The URL is missing the state parameter. Make sure you copied the full URL.`);return}i(`exchanging`);try{await S({path:{assistant_id:e},body:{code:o,state:s},throwOnError:!0}),i(`completed`);let{data:n}=await y({path:{assistant_id:e},query:{provider:`openai`},throwOnError:!0});t(n.connections.find(e=>e.name===`chatgpt-subscription`||e.name===`openai-chatgpt`)||{name:`chatgpt-subscription`,provider:`openai`,auth:{type:`oauth_subscription`,credential:`credential/openai/chatgpt-subscription`},label:`ChatGPT Subscription`,createdAt:Date.now(),updatedAt:Date.now(),baseUrl:null,models:null,isManaged:!1})}catch{i(`failed`),u(`Failed to complete sign-in. Please try again.`)}}function p(){i(`idle`),o(``),u(null)}return(0,X.jsxs)(`div`,{className:`space-y-3 rounded-lg border border-[var(--border-base)] p-4`,children:[(0,X.jsx)(s,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:`Connect your ChatGPT subscription to use OpenAI models without an API key.`}),n===`idle`||n===`paste_url`?(0,X.jsxs)(`div`,{className:`space-y-3`,children:[(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsxs)(s,{variant:`body-small-default`,as:`p`,className:n===`paste_url`?`text-[var(--content-tertiary)] line-through`:`text-[var(--content-secondary)]`,children:[`1. Click “Sign in with ChatGPT”`,n===`idle`?` below`:null,` to open a popup`]}),(0,X.jsx)(s,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-secondary)]`,children:`2. Sign in, then you'll land on an error page — that's expected`}),(0,X.jsx)(s,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-secondary)]`,children:`3. Copy the full URL from that page's address bar and paste it below`})]}),n===`idle`?(0,X.jsx)(r,{variant:`outlined`,size:`compact`,onClick:()=>void d(),children:`Sign in with ChatGPT`}):(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(m,{value:a,onChange:e=>{o(e.target.value),u(null)},placeholder:`Paste callback URL here...`,fullWidth:!0}),(0,X.jsx)(`div`,{className:`flex justify-end`,children:(0,X.jsx)(r,{variant:`primary`,size:`compact`,disabled:!a.trim(),onClick:()=>void f(),children:`Complete Sign In`})})]})]}):null,n===`starting`?(0,X.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,X.jsx)(l,{className:`h-4 w-4 animate-spin text-[var(--content-tertiary)]`}),(0,X.jsx)(s,{variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,children:`Starting sign-in...`})]}):null,n===`exchanging`?(0,X.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,X.jsx)(l,{className:`h-4 w-4 animate-spin text-[var(--content-tertiary)]`}),(0,X.jsx)(s,{variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,children:`Completing sign-in...`})]}):null,n===`completed`?(0,X.jsx)(s,{variant:`body-small-default`,as:`p`,className:`text-[var(--system-positive-strong)]`,children:`ChatGPT subscription connected successfully.`}):null,c?(0,X.jsx)(s,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:c}):null,n===`failed`?(0,X.jsx)(r,{variant:`outlined`,size:`compact`,onClick:p,children:`Try Again`}):null]})}var Tt=new Set(Object.entries(L).flatMap(([e,t])=>[e.toLowerCase(),t.toLowerCase()])),Et={reserved:`That name belongs to a built-in provider. Pick another.`,duplicate:`A custom provider with this name already exists.`};function Dt(e,t,n){let r=e.trim().toLowerCase();return r?Tt.has(r)?`reserved`:(t??[]).some(e=>e.provider===`openai-compatible`&&e.name!==n&&(e.label?.trim()||e.name).toLowerCase()===r)?`duplicate`:null:null}function Ot({apiKeyValue:e,onApiKeyChange:t,credential:n,onCredentialChange:i,isLoadingCredential:a,apiKeyPlaceholder:o,provider:u,providerCredentials:d,showAdvancedSection:f,onError:p}){let[h,g]=(0,P.useState)(!1),[_,v]=(0,P.useState)(!1),[y,b]=(0,P.useState)(``);return(0,X.jsxs)(X.Fragment,{children:[(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`API Key`}),a?(0,X.jsxs)(`div`,{className:`flex items-center gap-2 h-8`,children:[(0,X.jsx)(l,{className:`h-4 w-4 animate-spin text-[var(--content-tertiary)]`}),(0,X.jsx)(s,{variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,children:`Loading…`})]}):(0,X.jsx)(m,{type:`password`,value:e,onChange:e=>{t(e.target.value),p(null)},placeholder:o,fullWidth:!0})]}),f&&(0,X.jsxs)(`div`,{children:[(0,X.jsxs)(`button`,{type:`button`,"aria-expanded":h,onClick:()=>g(e=>!e),className:`flex items-center gap-1 text-body-small-default text-[var(--content-secondary)] w-full text-left`,children:[(0,X.jsx)(c,{className:`h-4 w-4 transition-transform ${h?`rotate-90`:``}`}),(0,X.jsx)(`span`,{children:`Advanced`}),(0,X.jsx)(`span`,{className:`text-[var(--content-tertiary)] ml-1`,children:`· Credential reference`})]}),h&&(0,X.jsxs)(`div`,{className:`mt-2 space-y-3`,children:[(()=>{let e=d.map(e=>{let t=`credential/${e.service}/${e.field}`;return{label:t,value:t}}),t=e.some(e=>e.value===n),r=n&&!t?[{label:n,value:n},...e]:e;return r.length===0?null:(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Credential Reference`}),(0,X.jsx)(ee,{"aria-label":`Credential reference`,value:n,onChange:e=>{i(e)},options:r})]})})(),_&&(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`New Credential Name`}),(0,X.jsxs)(`div`,{className:`flex gap-2`,children:[(0,X.jsx)(m,{value:y,onChange:e=>b(e.target.value),placeholder:`e.g. team-key`,fullWidth:!0}),(0,X.jsx)(r,{variant:`primary`,size:`compact`,disabled:!y.trim(),onClick:()=>{let e=y.trim();e&&(i(`credential/${u}/${e}`),v(!1),b(``))},children:`Use`})]})]}),(0,X.jsx)(`div`,{className:`flex justify-end`,children:(0,X.jsx)(r,{variant:`ghost`,size:`compact`,onClick:()=>{_?(v(!1),b(``)):v(!0)},children:_?`Cancel`:`+ New Credential`})})]})]})]})}var kt=`•`.repeat(8);function At(e,t){return t?kt:e}function jt(e){let t=[];for(let n of e)if(n.type===`api_key`)t.push({service:n.name,field:`api_key`});else if(n.type===`credential`){let e=n.name.lastIndexOf(`:`);if(e>=0){let r=n.name.slice(0,e),i=n.name.slice(e+1);r&&i&&t.push({service:r,field:i})}}return t}function Mt({assistantId:e,enabled:n=!0}){let r=N(),i=a({...D({path:{assistant_id:e}}),enabled:!!e&&n&&r,select:e=>jt(e.secrets),retry:t,staleTime:3e4});return{credentials:i.data??[],isLoading:i.isLoading}}function Nt({assistantId:e,existingNames:t,connections:n,defaultProviderType:a,onCreated:o,onCancel:l,variant:u=`modal`}){let d=nt(),f=a&&d.includes(a)?a:d[0]??`anthropic`,p=vt(f,t),[h,v]=(0,P.useState)(f===`openai-compatible`?``:p.name),[y,b]=(0,P.useState)(p.key),[S,C]=(0,P.useState)(f),w=S===`chatgpt`,E=w?`openai`:S,D=w?`oauth_subscription`:E===`ollama`?`none`:`api_key`,[O,k]=(0,P.useState)(()=>f===`ollama`?``:f===`openai-compatible`?`credential/${p.key}/api_key`:`credential/${f}/api_key`),[A,j]=(0,P.useState)(``),[M,N]=(0,P.useState)(``),[F,I]=(0,P.useState)(!1),[R,z]=(0,P.useState)(null),[ne,re]=(0,P.useState)(!1),B=E===`openai-compatible`,V=(0,P.useMemo)(()=>{let e=!w&&!d.includes(E)?[...d,E]:[...d],t=e.indexOf(`openai`);return t>=0&&e.splice(t+1,0,`chatgpt`),e},[w,E,d]),ie=(0,P.useRef)(!1);function ae(e){ie.current=!0,v(e)}let[oe,se]=(0,P.useState)(``),[ce,H]=(0,P.useState)(!1),U=i(),W=(0,P.useMemo)(()=>qe(O),[O]),le=D===`api_key`&&W!==null,{hasStoredCredential:ue,isLoading:de}=Ct({assistantId:e,credentialKind:`credential`,credentialName:W?`${W.service}:${W.field}`:``,enabled:le}),{credentials:fe}=Mt({assistantId:e,enabled:!0}),G=B?Dt(h,n):null,pe=y.trim().length>0&&(!B||h.trim().length>0)&&G===null;async function me(){if(pe){I(!0),z(null);try{let t;if(D===`api_key`){let n=O.trim()||`credential/${B?y:E}/api_key`,r=oe.trim();if(r){H(!0);try{let t=qe(n);await te({path:{assistant_id:e},body:t?{type:`credential`,name:`${t.service}:${t.field}`,value:r}:{type:`api_key`,name:E,value:r},throwOnError:!0});let i=St(e,`credential`,t?`${t.service}:${t.field}`:``);U.setQueryData(i,!0),U.invalidateQueries({queryKey:T({path:{assistant_id:e}})})}catch{z(`Failed to save API key. Please try again.`);return}finally{H(!1)}t={type:`api_key`,credential:n}}else if(ue)t={type:`api_key`,credential:n};else if(B)t={type:`none`};else{z(`Enter an API key or select an existing credential.`);return}}else if(D===`oauth_subscription`){z(`Use the "Sign in with ChatGPT" button to connect your subscription.`);return}else t={type:`none`};let n=h.trim()||null,r={name:y.trim(),provider:E,auth:t,...n!==null&&{label:n},...B&&{base_url:A.trim()||null,models:M.trim()?M.split(`,`).map(e=>({id:e.trim()})).filter(e=>e.id):null}},{data:i,error:a,response:s}=await x({path:{assistant_id:e},body:r});if(!s?.ok){z(Q(s?.status,a)??Je(s?.status));return}if(!i){z(`Server returned an empty response. Please try again.`);return}_.success(`Provider connected`),o(i)}catch{z(`Failed to save provider. Please try again.`)}finally{I(!1)}}}let K=fe.filter(e=>e.service===E),he=K.length>0,ge=At(`Enter your API key`,ue),_e=ne,ve=(0,X.jsxs)(`div`,{children:[(0,X.jsxs)(`button`,{type:`button`,"aria-expanded":_e,onClick:()=>re(e=>!e),className:`flex items-center gap-1 text-body-small-default text-[var(--content-secondary)] w-full text-left`,children:[(0,X.jsx)(c,{className:`h-4 w-4 transition-transform ${_e?`rotate-90`:``}`}),(0,X.jsx)(`span`,{children:`Advanced`})]}),_e&&(0,X.jsx)(`div`,{className:`mt-2 space-y-4`,children:(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsxs)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:[`Display Name`,` `,(0,X.jsx)(`span`,{className:`text-[var(--content-disabled)]`,children:`(optional)`})]}),(0,X.jsx)(m,{value:h,onChange:e=>ae(e.target.value),placeholder:`e.g. My Anthropic Key`,fullWidth:!0})]})})]}),ye=(0,X.jsxs)(`div`,{className:`space-y-4`,children:[(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Provider`}),(0,X.jsx)(ee,{"aria-label":`Provider`,value:S,onChange:e=>{if(C(e),z(null),e===`chatgpt`)return;let{name:n,key:r}=vt(e,t);ie.current||v(e===`openai-compatible`?``:n),b(r),k(e===`ollama`?``:e===`openai-compatible`?`credential/${r}/api_key`:`credential/${e}/api_key`)},options:[...V.filter(e=>e!==`openai-compatible`).map(e=>({value:e,label:L[e]})),...V.includes(`openai-compatible`)?[{value:`openai-compatible`,label:`Custom provider`}]:[]]}),B?(0,X.jsx)(s,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:`Custom providers connect to any endpoint that serves the OpenAI-compatible API — xAI, Groq, LM Studio, vLLM, and similar.`}):null]}),B&&(0,X.jsxs)(X.Fragment,{children:[(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Name`}),(0,X.jsx)(m,{value:h,onChange:e=>ae(e.target.value),placeholder:`xAI`,fullWidth:!0}),G?(0,X.jsx)(s,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:Et[G]}):null]}),(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Base URL`}),(0,X.jsx)(m,{value:A,onChange:e=>j(e.target.value),placeholder:`https://api.x.ai/v1`,fullWidth:!0})]}),(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Models`}),(0,X.jsx)(m,{value:M,onChange:e=>N(e.target.value),placeholder:`model-1, model-2`,fullWidth:!0}),(0,X.jsx)(s,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:`Comma-separated model identifiers exposed by your endpoint.`})]})]}),D===`api_key`&&(0,X.jsx)(Ot,{apiKeyValue:oe,onApiKeyChange:se,credential:O,onCredentialChange:k,isLoadingCredential:de,apiKeyPlaceholder:ge,provider:E,providerCredentials:K,showAdvancedSection:he,onError:z}),B&&D===`api_key`?(0,X.jsx)(s,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:`Leave the key empty for local endpoints — they connect keyless.`}):null,D===`oauth_subscription`&&(0,X.jsx)(wt,{assistantId:e,onConnected:o}),!w&&!B&&ve,R&&(0,X.jsx)(s,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:R})]}),be=(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(r,{variant:`ghost`,size:`compact`,onClick:l,children:`Cancel`}),!w&&(0,X.jsx)(r,{variant:`primary`,size:`compact`,disabled:!pe||F||ce,onClick:()=>void me(),children:F?`Saving…`:B&&h.trim()?`Add ${h.trim()}`:`Add`})]});return u===`inline`?(0,X.jsxs)(`div`,{className:`space-y-4`,children:[ye,(0,X.jsx)(`div`,{className:`flex justify-end gap-2`,children:be})]}):(0,X.jsxs)(g.Content,{size:`md`,children:[(0,X.jsxs)(g.Header,{children:[(0,X.jsx)(g.Title,{children:`Add Provider`}),(0,X.jsx)(g.Description,{children:`Choose a provider and paste its API key.`})]}),(0,X.jsx)(g.Body,{children:ye}),(0,X.jsx)(g.Footer,{children:be})]})}function Pt(e,t,n){let r=(0,P.useRef)(!1),i=(0,P.useRef)(!1);return{handleLabelChange:(0,P.useCallback)(a=>{i.current=!0,t(a),e===`create`&&!r.current&&n(ht(a))},[e,t,n]),handleKeyChange:(0,P.useCallback)(e=>{r.current=!0,i.current=!0,n(e)},[n]),resetDirty:(0,P.useCallback)(()=>{r.current=!1,i.current=!1},[]),getDirty:(0,P.useCallback)(()=>i.current,[])}}var Ft=`__create_new_provider__`;function It(e,t){return e===t?!0:e===`vellum`&&se.has(t)}function Lt({isOpen:e,mode:t,profileName:n,initialValues:r,existingNames:i,connections:a,assistantId:o,onSave:s,onCancel:c}){return(0,X.jsx)(g.Root,{open:e,onOpenChange:e=>{e||c()},children:e?(0,X.jsx)(Rt,{mode:t,profileName:n,initialValues:r,existingNames:i,connections:a,assistantId:o,onSave:s,onCancel:c}):null})}function Rt({mode:e,profileName:t,initialValues:n,existingNames:o,connections:l,assistantId:u,onSave:d,onCancel:_}){let[v,y]=(0,P.useState)(e),b=n?.invariant===!0&&v!==`create`,x=v===`view`||b,S=M(),te=n?.status??`active`,[C,T]=(0,P.useState)(n?.label??``),[D,O]=(0,P.useState)(n?.description??``),[k,A]=(0,P.useState)(e===`create`?``:t??``),[j,N]=(0,P.useState)(n?.provider&&n.provider!==`chatgpt`?n.provider:``),[F,I]=(0,P.useState)(n?.model??``),[R,z]=(0,P.useState)(n?.provider_connection??``),[V,ae]=(0,P.useState)(n?.status??`active`),[se,ce]=(0,P.useState)([]),[H,U]=(0,P.useState)(!1),[W,le]=(0,P.useState)(null),[ue,de]=(0,P.useState)(n?.maxTokens??null),[fe,G]=(0,P.useState)(n?.contextWindow?.maxInputTokens??null),[pe,me]=(0,P.useState)(n?.effort??`inherit`),[K,he]=(0,P.useState)(n?.speed??`standard`),[ge,_e]=(0,P.useState)(n?.verbosity??`medium`),[ve,ye]=(0,P.useState)(typeof n?.temperature==`number`),[be,xe]=(0,P.useState)(typeof n?.temperature==`number`?n.temperature:.7),[Se,Ce]=(0,P.useState)(typeof n?.topP==`number`),[we,Te]=(0,P.useState)(typeof n?.topP==`number`?n.topP:.95),q=x&&V!==te,[Ee,De]=(0,P.useState)(n?.thinking?.enabled??!1),[Oe,ke]=(0,P.useState)(n?.thinking?.streamThinking??!1),[Ae,je]=(0,P.useState)(Ne(n?.thinking?.level)?n.thinking.level:He),Me=(0,P.useMemo)(()=>j===`vellum`?ne(F):null,[j,F]),Pe=Me?.model??F,Fe=(0,P.useMemo)(()=>j?B(j).find(e=>e.id===Pe)??null:null,[j,Pe]),{data:Ie}=a({...E({path:{assistant_id:u}}),staleTime:3e4}),Le=Ie?.llm?.default?.maxTokens,Re=Ie?.llm?.default?.contextWindow?.maxInputTokens,J=(0,P.useMemo)(()=>ze(j===`vellum`?Me?.provider??re(F)??n?.provider??``:j,Pe),[j,F,Pe,Me,n?.provider]),Y=(0,P.useMemo)(()=>{let e=l??[];if(se.length===0)return e;let t=new Set(e.map(e=>e.name));return[...e,...se.filter(e=>!t.has(e.name))]},[l,se]),Z=(0,P.useMemo)(()=>j?Y.filter(e=>It(e.provider,j)):[],[j,Y]),Be=R!==``&&!Z.some(e=>e.name===R),{handleLabelChange:Ve,handleKeyChange:Ue,resetDirty:We,getDirty:Ke}=Pt(v,T,A),qe=i(),[Je,Q]=(0,P.useState)(!1),[Ye,Xe]=(0,P.useState)(!1),[Ze,Qe]=(0,P.useState)(!1);(0,P.useEffect)(()=>{n?.provider_connection===`vellum`&&j===(n?.provider??``)&&l?.find(e=>e.name===n.provider_connection)?.provider===`vellum`&&N(oe)},[l,j,n]),(0,P.useEffect)(()=>{We(),Q(!1),Xe(!1),Qe(!1),ce([])},[t,e,We]);function $e(e){if(e===j)return;N(e),I(``);let t=Y.filter(t=>It(t.provider,e));z(t.length===1?t[0].name:``),de(null),G(null),me(`inherit`),he(`standard`),_e(`medium`),ye(!1),xe(.7),Ce(!1),Te(.95),De(!1),ke(!1),je(He)}function et(e){if(z(e),j&&B(j).length===0&&F)if(e===``)new Set(Z.flatMap(e=>(e.models??[]).map(e=>e.id))).has(F)||I(``);else{let t=Z.find(t=>t.name===e);new Set((t?.models??[]).map(e=>e.id)).has(F)||I(``)}}function tt(e){let t=B(j).find(t=>t.id===e);if(t)return t.displayName;for(let t of Z){let n=(t.models??[]).find(t=>t.id===e);if(n)return n.displayName??n.id}return e}function nt(e){if(e!==F&&(I(e),de(null),G(null),v===`create`&&e&&!Ke())){let{name:t,key:n}=yt(tt(e),o);T(t),A(n)}}function rt(e){let t=e.provider;t!==`vellum`&&(ce(t=>t.some(t=>t.name===e.name)?t:[...t,e]),N(t),z(e.name),I(``),Q(!1),Qe(!0),qe.invalidateQueries({queryKey:w({path:{assistant_id:u}})}))}let $=k.trim(),ct=$.length===0,lt=/\s/.test(k),ut=v===`create`?o.includes($):o.filter(e=>e!==t).includes($),dt=j.length===0,ft=j.length>0&&F.length===0,ht=ct||lt||ut||dt||ft,gt=ct?`Key is required`:lt?`Key cannot contain whitespace`:ut?`A profile with this key already exists`:null;async function _t(){if(!(ht&&!x)){if(x){if(!q)return;U(!0),le(null);try{await d($,{status:`active`},{mode:`merge`})}catch{le(`Failed to save profile. Please try again.`)}finally{U(!1)}return}U(!0),le(null);try{let e={},t=R===``&&Z.length===1?Z[0].name:R,r=Be?``:t,i=j===`vellum`&&await xt(u),a=j===`vellum`?i?oe:Me?.provider??re(F)??n?.provider??``:j,o=Pe,s=i?``:r;v===`edit`?(e.label=C.trim()||null,e.description=D.trim()||null,e.provider=a||null,e.model=o||null,e.provider_connection=s||null):(C.trim()&&(e.label=C.trim()),D.trim()&&(e.description=D.trim()),a&&(e.provider=a),o&&(e.model=o),s&&(e.provider_connection=s)),J.maxTokens&&ue!==null&&(e.maxTokens=ue),J.contextWindow&&fe!==null&&(e.contextWindow={maxInputTokens:fe}),J.effort&&pe!==`inherit`&&(e.effort=pe),J.speed&&K!==`standard`&&(e.speed=K),J.verbosity&&(e.verbosity=ge),J.temperature&&(ve?e.temperature=be:v===`edit`&&(e.temperature=null)),J.topP&&(Se?e.topP=we:v===`edit`&&(e.topP=null)),J.thinking&&(e.thinking={enabled:Ee,...Ee?{streamThinking:Oe}:{}}),J.thinkingLevel&&Ae!==`default`&&(e.thinking={enabled:!0,level:Ae}),(v===`edit`||V!==`active`)&&(e.status=V),await d($,e)}catch{le(`Failed to save profile. Please try again.`)}finally{U(!1)}}}let vt=v===`create`?`New Profile`:v===`edit`?`Edit Profile`:n?.label??t??`Profile`,bt=v===`create`,St=(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:bt?`Name`:`Display Name`}),(0,X.jsx)(m,{type:`text`,value:C,onChange:e=>Ve(e.target.value),placeholder:`e.g. Fast & Cheap`,disabled:x,fullWidth:!0})]}),Ct=(0,X.jsx)(p,{label:(0,X.jsxs)(X.Fragment,{children:[`Description`,` `,(0,X.jsx)(`span`,{className:`text-[var(--content-disabled)]`,children:`(optional)`})]}),value:D,onChange:e=>O(e.target.value),placeholder:`Describe when to use this profile`,disabled:x,rows:2,fullWidth:!0,className:`resize-none`}),wt=(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Key`}),(0,X.jsx)(m,{type:`text`,value:k,onChange:e=>Ue(e.target.value),placeholder:`e.g. fast-cheap`,disabled:x||v===`edit`,fullWidth:!0}),gt&&!x?(0,X.jsx)(s,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:gt}):null]}),Tt=!x||V!==`active`?(0,X.jsx)(h,{checked:V===`active`,onChange:e=>ae(e?`active`:`disabled`),label:`Active`,className:`touch-mobile:mt-2 touch-mobile:[&_button]:h-7 touch-mobile:[&_button]:w-10 touch-mobile:[&_button>span]:h-6 touch-mobile:[&_button>span]:w-6`}):null,Et=(0,X.jsx)(Ge,{visibility:J,isReadOnly:x,model:F,selectedModel:Fe,defaultMaxOutputTokens:Le,defaultContextWindowMaxInputTokens:Re,maxTokens:ue,onMaxTokensChange:de,contextWindowMaxInputTokens:fe,onContextWindowChange:G,effort:pe,onEffortChange:me,speed:K,onSpeedChange:he,verbosity:ge,onVerbosityChange:_e,temperatureEnabled:ve,onTemperatureEnabledChange:ye,temperature:be,onTemperatureChange:xe,topPEnabled:Se,onTopPEnabledChange:Ce,topP:we,onTopPChange:Te,thinkingEnabled:Ee,onThinkingEnabledChange:De,thinkingStreamThinking:Oe,onThinkingStreamThinkingChange:ke,thinkingLevel:Ae,onThinkingLevelChange:je}),Dt=W?(0,X.jsx)(s,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:W}):null,Ot=(0,P.useMemo)(()=>{let e=st(it(Y,S),Y,e=>L[e]??e).map(({value:e,label:t,meta:n})=>({value:e,label:t,suffix:n?(0,X.jsx)(pt,{text:n}):void 0}));return e.push({value:Ft,label:`+ Create new provider`}),e},[S,Y]),kt=(0,X.jsxs)(`div`,{className:`space-y-4`,children:[(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsx)(`label`,{id:`profile-editor-provider-label`,className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Provider`}),(0,X.jsx)(ee,{value:Je?Ft:j===`openai-compatible`&&R?at(R):j,onChange:e=>{if(e===Ft){Q(!0),Qe(!1);return}if(!e)return;Q(!1);let t=ot(e);if(t){j===`openai-compatible`?I(``):$e(ie),z(t);return}$e(e)},placeholder:`Select a provider…`,"aria-labelledby":`profile-editor-provider-label`,options:Ot}),Ze?(0,X.jsx)(s,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:`New provider connection will show up in the Providers section.`}):null]}),Je?(0,X.jsx)(Nt,{variant:`inline`,assistantId:u,existingNames:Y.map(e=>e.name),connections:Y,defaultProviderType:j||void 0,onCreated:rt,onCancel:()=>Q(!1)}):(0,X.jsx)(mt,{provider:j,model:F,providerConnection:R,onProviderChange:$e,onModelChange:nt,onConnectionChange:et,connections:Y,isReadOnly:x,availableConnectionsForProvider:Z,connectionNotFound:Be,hideProviderField:!0})]}),At=Ye||!!gt&&Ke(),jt=F===``?null:(0,X.jsxs)(`div`,{children:[(0,X.jsxs)(`button`,{type:`button`,"aria-expanded":At,onClick:()=>Xe(e=>!e),className:`flex items-center gap-1 text-body-small-default text-[var(--content-secondary)] w-full text-left`,children:[(0,X.jsx)(c,{className:`h-4 w-4 transition-transform ${At?`rotate-90`:``}`}),(0,X.jsx)(`span`,{children:`Advanced`})]}),At?(0,X.jsxs)(`div`,{className:`mt-4 space-y-4`,children:[St,wt,Et]}):null]});return(0,X.jsxs)(g.Content,{size:`md`,children:[(0,X.jsx)(g.Header,{children:v===`view`?(0,X.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,X.jsx)(g.Title,{children:vt}),(0,X.jsx)(f,{tone:`positive`,children:`Platform`})]}):(0,X.jsx)(g.Title,{children:vt})}),(0,X.jsx)(g.Body,{children:bt?(0,X.jsxs)(`div`,{className:`space-y-4`,children:[kt,Ct,Tt,jt,Dt]}):(0,X.jsxs)(`div`,{className:`space-y-4`,children:[St,Ct,wt,Tt,(0,X.jsx)(mt,{provider:j,model:F,providerConnection:R,onProviderChange:$e,onModelChange:nt,onConnectionChange:et,connections:l,isReadOnly:x,availableConnectionsForProvider:Z,connectionNotFound:Be}),Et,Dt]})}),(0,X.jsx)(g.Footer,{children:x?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(r,{variant:`outlined`,className:`touch-mobile:h-10`,onClick:_,disabled:H,"data-testid":`modal-cancel-btn`,children:`Close`}),(0,X.jsx)(r,{variant:`outlined`,className:`touch-mobile:h-10`,onClick:()=>{y(`create`),A(``),We()},disabled:H,children:`Save As New`}),(0,X.jsx)(r,{variant:`primary`,className:`touch-mobile:h-10`,onClick:()=>void _t(),disabled:!q||H,"data-testid":`modal-save-btn`,children:H?`Saving…`:`Save`})]}):(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(r,{variant:`outlined`,className:`touch-mobile:h-10`,onClick:_,disabled:H,"data-testid":`modal-cancel-btn`,children:`Cancel`}),(0,X.jsx)(r,{variant:`primary`,className:`touch-mobile:h-10`,onClick:()=>void _t(),disabled:ht||H,"data-testid":`modal-save-btn`,children:H?`Saving…`:`Save`})]})})]})}var zt=`/assistant/assets/pcm-downsample-worklet-CwNZrVLe.js`;function Bt(){if(!(typeof window>`u`))return window.AudioContext??window.webkitAudioContext}function Vt(e){let t=Bt();if(!t)throw Error(`Web Audio API is not available in this environment`);return new t(e)}var Ht=`pcm-downsample`,Ut=1600,Wt=16e3;function Gt(){return v()?window.vellum?.helper?.dictation:void 0}function Kt(){let e=Gt();return!!e?.transcribe&&!!e.onTranscribed}var qt=null,Jt=null;async function Yt(){return qt||(qt=Vt(),Jt=qt.audioWorklet.addModule(zt)),qt.state!==`running`&&await qt.resume(),await Jt,qt}async function Xt(e,t){try{let n=await Yt(),r=n.createMediaStreamSource(e),i=new AudioWorkletNode(n,Ht,{numberOfInputs:1,numberOfOutputs:0,channelCount:1}),a=[],o=0,s=0;return i.port.onmessage=e=>{let r=new Int16Array(e.data);if(r.length===0||(a.push(r),o+=r.length,o<Ut))return;let i=new Int16Array(o),c=0;for(let e of a)i.set(e,c),c+=e.length;a=[],o=0,s+=1,(s===1||s%50==0)&&console.info(`dictation: pushed audio chunk #${s} (${i.byteLength} bytes, context=${n.state})`),t(i.buffer)},r.connect(i),console.info(`dictation: audio pump started (context=${n.state})`),()=>{i.port.onmessage=null,i.disconnect(),r.disconnect()}}catch(e){return console.warn(`native-dictation-partials: audio pump failed`,e),null}}var Zt=8e3;async function Qt(e){let t=Gt();if(!t?.transcribe||!t.onTranscribed)return null;let n;try{n=await $t(e)}catch(e){let t=e instanceof DOMException?`${e.name}: ${e.message}`:e;return console.warn(`dictation: blob decode for native transcribe failed`,t),null}if(n.byteLength===0)return null;let r=null,i=t.onTranscribed(e=>{r?.(e.text||null)});try{let e=await t.transcribe(n);if(!e.ok)return console.info(`dictation: native transcribe unavailable:`,e.reason),null;let i=await new Promise(e=>{r=e,setTimeout(()=>e(null),Zt)});return console.info(`dictation: native transcribe ${i?`chars=${i.length}`:`produced no text`}`),i}catch(e){return console.warn(`dictation: native transcribe failed`,e),null}finally{i()}}async function $t(e){let t=await e.arrayBuffer(),n=await new OfflineAudioContext(1,1,Wt).decodeAudioData(t),r=n.numberOfChannels,i=n.length,a=n.getChannelData(0);if(r>1){let e=new Float32Array(i);for(let t=0;t<r;t++){let a=n.getChannelData(t);for(let t=0;t<i;t++)e[t]+=a[t]/r}a=e}let o=new Int16Array(i);for(let e=0;e<i;e++){let t=a[e],n=t<-1?-1:t>1?1:t;o[e]=n<0?n*32768:n*32767}return o.buffer}var en=4e3;async function tn(e,t){let n=Gt();if(!n)return null;let r=n.pushAudioChunk?.bind(n),i=t?.stream,a=!!i&&!!r,o=n.onPartial(t=>{e(t.text)}),s=null,c=null,l=n.onFinalized?.(e=>{s=e.text||null,c?.(s)})??null,u=()=>{l?.(),o()};try{let e=await n.setPartials(!0,void 0,a);if(!e.ok)return console.info(`native-dictation-partials: unavailable:`,e.reason),u(),null}catch(e){return console.warn(`native-dictation-partials: setPartials failed`,e),u(),null}let d=null;if(a&&(d=await Xt(i,e=>r(e)),!d))return u(),n.setPartials(!1).catch(()=>{}),null;let f=null;return()=>f||(d?.(),o(),n.setPartials(!1).catch(()=>{}),f=(async()=>{let e=s;return!e&&l&&(e=await new Promise(e=>{c=e,setTimeout(()=>e(null),en)})),l?.(),console.info(e===null?`dictation: native finalized not received`:`dictation: native finalized chars=${e.length}`),e})(),f)}var nn=[{id:`vellum`,displayName:`Vellum`,subtitle:`Text-to-speech through your Vellum account — billed to Vellum credits, no separate API key needed.`,supportsVoiceSelection:!1,apiKeyPlaceholder:`Connected via your Vellum account`,credentialsGuide:{description:`Connect this assistant to your Vellum account; managed speech uses that connection instead of a provider API key.`,url:`https://platform.vellum.ai/`,linkLabel:`Open Vellum Platform`}},{id:`elevenlabs`,displayName:`ElevenLabs`,subtitle:`High-quality voice synthesis for conversations and read-aloud. Requires an ElevenLabs API key.`,supportsVoiceSelection:!0,apiKeyPlaceholder:`sk_…`,credentialsGuide:{description:`Sign in to ElevenLabs, go to your Profile, and copy your API key.`,url:`https://elevenlabs.io/app/settings/api-keys`,linkLabel:`Open ElevenLabs API Keys`}},{id:`fish-audio`,displayName:`Fish Audio`,subtitle:`Natural-sounding voice synthesis with custom voice cloning. Requires a Fish Audio API key and voice reference ID.`,supportsVoiceSelection:!0,apiKeyPlaceholder:`Enter your Fish Audio API key`,credentialsGuide:{description:`Sign in to Fish Audio, navigate to API Keys in your dashboard, and create a new key.`,url:`https://fish.audio/app/api-keys/`,linkLabel:`Open Fish Audio API Keys`}},{id:`deepgram`,displayName:`Deepgram`,subtitle:`Fast, accurate text-to-speech synthesis. Uses the same API key as Deepgram speech-to-text.`,supportsVoiceSelection:!1,apiKeyPlaceholder:`Enter your Deepgram API key`,credentialsGuide:{description:`Sign in to Deepgram, navigate to your API Keys page, and create or copy an existing key. This is the same key used for speech-to-text.`,url:`https://console.deepgram.com/`,linkLabel:`Open Deepgram Console`}},{id:`xai`,displayName:`xAI`,subtitle:`Text-to-speech from xAI with expressive voices (eve, ara, rex, sal, leo). Requires an xAI API key.`,supportsVoiceSelection:!1,apiKeyPlaceholder:`Enter your xAI API key`,credentialsGuide:{description:`Sign in to the xAI console, navigate to API Keys, and create a new key.`,url:`https://console.x.ai/`,linkLabel:`Open xAI Console`}}],rn=`macos-native`,an=[{id:`vellum`,displayName:`Vellum`,subtitle:`Transcription through your Vellum account — billed to Vellum credits, no separate API key needed.`},{id:`deepgram`,displayName:`Deepgram`,subtitle:`Fast, accurate speech-to-text transcription. Uses the same API key as Deepgram text-to-speech.`,apiKeyPlaceholder:`Enter your Deepgram API key`,credentialsGuide:{description:`Sign in to Deepgram, navigate to your API Keys page, and create or copy an existing key. This is the same key used for text-to-speech.`,url:`https://console.deepgram.com/`,linkLabel:`Open Deepgram Console`}},{id:`openai`,displayName:`OpenAI`,subtitle:`OpenAI Whisper transcription. Requires an OpenAI API key.`,apiKeyPlaceholder:`sk-…`,credentialsGuide:{description:`Sign in to the OpenAI platform, navigate to API Keys, and create a new secret key.`,url:`https://platform.openai.com/api-keys`,linkLabel:`Open OpenAI API Keys`}},{id:rn,displayName:`macOS Native Dictation`,subtitle:`Apple's on-device speech recognition, running locally through the macOS helper. Works offline and needs no API key.`,requiresNativeDictation:!0,setupWarning:`Requires macOS Dictation to be turned on: open System Settings → Keyboard, then enable Dictation. macOS downloads the on-device speech model the first time Dictation is enabled — without it, voice input produces no transcript.`}],on=[{id:`mailgun`,displayName:`Mailgun`,setupSkill:`mailgun-setup`,docsUrl:`https://www.mailgun.com/`},{id:`resend`,displayName:`Resend`,setupSkill:`resend-setup`,docsUrl:`https://resend.com/`}],sn=[`gemini-3.1-flash-image-preview`,`gemini-3-pro-image-preview`,`gpt-image-2`],cn={"gemini-3.1-flash-image-preview":`Nano Banana 2`,"gemini-3-pro-image-preview":`Nano Banana Pro`,"gpt-image-2":`GPT Image 2`};function ln(e){return e.startsWith(`gpt-`)||e.startsWith(`dall-e-`)?`openai`:(e.startsWith(`gemini-`),`gemini`)}var un=`vellum:ai:imageGenMode`,dn=`vellum:ai:imageGenModel`,fn=`vellum:ai:webSearchProvider`,pn=`vellum:ai:webFetchProvider`,mn=`vellum:ai:emailMode`,hn=`vellum:ai:emailByoProvider`,gn=`vellum:voice:ttsProvider`,_n=`vellum:voice:ttsApiKey:`,vn=`vellum:voice:ttsVoiceId:`,yn=`vellum:voice:sttProvider`,bn=`vellum:voice:sttApiKey:`;function xn(e,t){let n=e.filter(e=>e.status!==`disabled`);return t&&n.some(e=>e.name===t)?t:n[0]?.name}function Sn(e,t){let n=new Set;for(let e of t)e&&n.add(e);return e.filter(e=>e.status!==`disabled`||n.has(e.name))}function Cn(e){let t=e.label??e.name;return e.status===`disabled`?`${t} (Disabled)`:t}var wn={profiles:{},profileOrder:[]};function Tn(e,t){let n=e?.profiles,r=e?.profileOrder,i=!!n&&Object.keys(n).length>0,[a,o]=(0,P.useState)(wn),[s,c]=(0,P.useState)(t);return t!==s&&(c(t),o(wn)),(0,P.useEffect)(()=>{i&&o({profiles:n,profileOrder:r??[]})},[i,n,r]),i?{profiles:n,profileOrder:r??[]}:t===s?a:wn}export{de as $,Nt as A,Je as B,Kt as C,Bt as D,Vt as E,Dt as F,_e as G,Ye as H,wt as I,ge as J,Ce as K,St as L,At as M,Ot as N,zt as O,Et as P,pe as Q,Ct as R,ln as S,Qt as T,Q as U,qe as V,ve as W,G as X,K as Y,fe as Z,on as _,hn as a,L as at,an as b,dn as c,_n as d,W as et,gn as f,sn as g,fn as h,Sn as i,oe as it,Mt as j,Lt as k,bn as l,pn as m,Cn as n,le as nt,mn as o,V as ot,vn as p,Se as q,xn as r,ae as rt,un as s,B as st,Tn as t,U as tt,yn as u,cn as v,tn as w,nn as x,rn as y,tt as z};
|
package/dist/assets/{use-subagent-card-data-CmbaKWII.js → use-subagent-card-data-YbAN73Fw.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{b as n,h as r,x as i}from"./risk-
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{b as n,h as r,x as i}from"./risk-C_bbPQPd.js";import{n as a}from"./subagent-store-D-GPthdC.js";import{_ as o,b as s,h as c,x as l}from"./site-favicon-CCyX9r-Z.js";function u(e,t){if(t===e)return{kind:`identity`};if(e==null)return{kind:`first`};let n=e.length,r=t.length;return r>n&&(n===0||t[0]===e[0]&&t[n-1]===e[n-1])?{kind:`append`,from:n}:r===n&&r>=1&&t[r-1]!==e[r-1]&&t[r-1].id===e[r-1].id&&e[r-1].type===`text`&&t[r-1].type===`text`&&t[r-1].content.length>=e[r-1].content.length&&t[r-1].content.startsWith(e[r-1].content)&&(r===1||t[r-2]===e[r-2])?{kind:`mutate-last`}:{kind:`fallback`}}var d=e(t(),1);function f(e,t){return JSON.stringify(e)===JSON.stringify(t)}function p(e=E){let t=null,n=[],r=[];function i(e){let i=D(e);return t=e,n=i.steps,r=i.toolMeta,{steps:n,toolMeta:r}}function a(a){let o=u(t,a);switch(o.kind){case`identity`:return{steps:n,toolMeta:r};case`first`:return i(a);case`append`:{let i=a.length,s=n.slice(),c=r.slice();for(let t=o.from;t<i;t++)e(s,c,a[t]);return t=a,n=s,r=c,{steps:n,toolMeta:r}}case`mutate-last`:{let i=a.length,o=n.slice(),s=r.slice(),c=o[o.length-1],l;c&&c.kind===`thinking`&&c.detailKey===a[i-1].id&&(l=c,o.pop(),s.pop()),e(o,s,a[i-1]),t=a;let u=o[o.length-1];return l&&u&&f(l,u)?{steps:n,toolMeta:r}:(n=o,r=s,{steps:n,toolMeta:r})}case`fallback`:return i(a)}}return{project:a}}function m(e){let t=(0,d.useRef)(null),n=(0,d.useRef)(null);t.current??=p();let r=t.current.project(e),i=n.current;return i!=null&&i.steps===r.steps&&i.toolMeta===r.toolMeta?i:(n.current=r,r)}var h=160,g=[];function _(e){return i(e.replace(/\s+/g,` `).trim(),h)}function v(e){let t=((e.input&&typeof e.input.url==`string`?e.input.url:``)||e.content||``).trim(),n=t?s(t):``;return n?`Reading ${n}`:`Reading…`}function y(e,t){let n=typeof e==`number`&&Number.isFinite(e)?t-e:0;return n>0?o(n):``}function b(e,t){return{kind:`web_search_error`,title:`Web search failed`,durationLabel:e,errorMessage:_(t.result??t.content)||`Web search failed`,detailKey:t.toolUseId}}function x(e,t){let n=e.toLowerCase();if(!t)return{};switch(n){case`bash`:case`host_bash`:return{command:t};case`str_replace_editor`:case`text_editor`:return{path:t};case`computer`:return{action:t};case`skill`:case`skill_execute`:case`skill_invoke`:case`skill_load`:return{skill:t};case`subagent_spawn`:return{label:t};default:return{}}}function S(e){let t=e.toolName??``,n=e.content??``,i=r(t,e.input??x(t,n));return{kind:`tool`,durationLabel:``,toolCallId:e.toolUseId??``,iconName:i.iconName,title:i.title,info:i.info||n,activity:i.activity,status:`running`}}function C(e,t){for(let n=e.length-1;n>=0;n--){let r=e[n];if(r.running){if(t.toolUseId){if(r.toolCallId===t.toolUseId)return n;continue}if(!t.toolName||r.toolName===t.toolName)return n}}return-1}function w(e,t,n){return C(e.map((e,n)=>{let r=t[n];return e.kind===`tool`?{toolCallId:e.toolCallId,toolName:r?.toolName??``,running:e.status===`running`}:e.kind===`web_search`?{toolCallId:r?.toolUseId??``,toolName:r?.toolName??``,running:e.title===`Searching the web`}:{toolCallId:``,toolName:r?.toolName??``,running:!1}}),n)}function T(e){switch(e){case`running`:case`pending`:case`awaiting_input`:return`loading`;case`completed`:return`complete`;case`failed`:case`aborted`:case`interrupted`:return`error`;default:return`loading`}}function E(e,t,n){if(n.type===`text`){let r=_(n.content);if(r.length===0)return;e.push({kind:`thinking`,durationLabel:``,text:r,detailKey:n.id}),t.push(void 0);return}if(n.type===`tool_call`){let r=n.toolName??``;if(c.has(r)){if(r===`web_fetch`)e.push({kind:`thinking`,durationLabel:``,text:v(n),detailKey:n.toolUseId}),t.push(void 0);else{let i=n.input&&typeof n.input.query==`string`?n.input.query:n.content||void 0;e.push({kind:`web_search`,query:i,title:`Searching the web`,durationLabel:``,linkCount:0,results:[],detailKey:n.toolUseId}),t.push({startTs:n.timestamp,toolName:r,toolUseId:n.toolUseId})}return}e.push(S(n)),t.push({startTs:n.timestamp,toolName:r});return}if(n.type===`tool_result`){let r=w(e,t,n);if(r===-1)return;let i=e[r],a=t[r]?.startTs,o=y(a,n.timestamp);if(i.kind===`web_search`){if(n.isError){e[r]=b(o,n);return}let t=l(n.result??n.content);e[r]={...i,title:`Searched the web`,query:i.query||n.searchQuery,durationLabel:o,linkCount:t.length,results:t};return}if(i.kind!==`tool`)return;e[r]={...i,status:n.isError?`error`:`completed`,durationLabel:o};return}if(n.type===`error`){let r=w(e,t,n);if(r!==-1){let i=e[r];i.kind===`tool`?e[r]={...i,status:`error`}:i.kind===`web_search`&&(e[r]=b(y(t[r]?.startTs,n.timestamp),n))}let i=_(n.content)||`Subagent error`;e.push({kind:`tool_error`,message:i}),t.push(void 0);return}}function D(e){let t=[],n=[];for(let r of e)E(t,n,r);return{steps:t,toolMeta:n}}function O(e,{steps:t,toolMeta:n}){let r=T(e.status),{currentStepTitle:i,currentStepInfo:a}=k(e,t,n);return{state:r,currentStepTitle:i,currentStepInfo:a,stepCount:`${t.length} step${t.length===1?``:`s`}`,steps:t,carouselItems:[]}}function k(e,t,r){let i=e.status===`completed`||e.status===`failed`||e.status===`aborted`||e.status===`interrupted`;if(t.length===0){let t;return t=e.status===`failed`?`Failed`:e.status===`aborted`?`Aborted`:e.status===`interrupted`?`Interrupted`:e.status===`completed`?`Finished`:`Working`,{currentStepTitle:t,currentStepInfo:e.error||e.label}}let a=t[t.length-1];if(a.kind===`thinking`)return{currentStepTitle:i?`Thought`:`Thinking`,currentStepInfo:a.text};if(a.kind===`tool`){if(a.status===`running`)return{currentStepTitle:`Working`,currentStepInfo:a.info};if(!i)return{currentStepTitle:`Finalizing`,currentStepInfo:a.info};let e=r[t.length-1]?.toolName??``;return{currentStepTitle:e?`Used ${n(e)}`:`Done`,currentStepInfo:a.info}}return a.kind===`tool_error`?{currentStepTitle:`Errored`,currentStepInfo:a.message}:a.kind===`web_search`?{currentStepTitle:a.title,currentStepInfo:``}:a.kind===`web_search_error`?{currentStepTitle:a.title,currentStepInfo:a.errorMessage}:{currentStepTitle:``,currentStepInfo:``}}function A(e){let t=a(t=>t.byId[e]),n=m(t?.events??g),r=(0,d.useRef)(null);if(!t)return r.current=null,null;let i=O(t,n),o=r.current;return o!=null&&o.steps===i.steps&&o.state===i.state&&o.currentStepTitle===i.currentStepTitle&&o.currentStepInfo===i.currentStepInfo&&o.stepCount===i.stepCount?o:(r.current=i,i)}function j(e,t,n){if(n.type===`text`){if((n.content??``).trim().length===0)return;e.push({toolCallId:n.id,toolName:``,title:`Thought`,activity:``,input:{},status:`completed`,durationLabel:``,kind:`thinking`,thinkingText:n.content}),t.push({startTs:n.timestamp,running:!1});return}if(n.type===`tool_call`){let i=n.toolUseId??``;if(!i)return;let a=n.toolName??``;if(a===`web_search`){let r=n.input&&typeof n.input.query==`string`?n.input.query:n.content||void 0;e.push({toolCallId:i,toolName:a,title:`Searched the web`,activity:``,input:n.input??{},status:`running`,durationLabel:``,kind:`web_search`,searchQuery:r,searchResults:[]}),t.push({startTs:n.timestamp,running:!0});return}let o=r(a,n.input??x(a,n.content??``));e.push({toolCallId:i,toolName:a,title:o.title,activity:o.activity,input:n.input??{},status:`running`,durationLabel:``,kind:`tool`}),t.push({startTs:n.timestamp,running:!0});return}if(n.type===`tool_result`||n.type===`error`){let r=C(e.map((e,n)=>({toolCallId:e.toolCallId,toolName:e.toolName,running:t[n].running})),n);if(r===-1)return;let i=e[r],a=t[r].startTs,o=y(a,n.timestamp);e[r]=i.kind===`web_search`?{...i,status:n.isError?`error`:`completed`,durationLabel:o,searchQuery:i.searchQuery||n.searchQuery,searchResults:n.isError?[]:l(n.result??n.content),result:n.isError?n.result??n.content:void 0}:{...i,result:n.result??n.content,status:n.isError?`error`:`completed`,durationLabel:o},t[r].running=!1}}export{u as i,A as n,m as r,j as t};
|
package/dist/assets/{use-supports-bookmarks-CJC-T2ro.js → use-supports-bookmarks-C3J7FtDn.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./createLucideIcon-CAM1RhH8.js";import{n as t}from"./utils-
|
|
1
|
+
import{t as e}from"./createLucideIcon-CAM1RhH8.js";import{n as t}from"./utils-CnB60ZJN.js";var n=e(`bookmark`,[[`path`,{d:`M17 3a2 2 0 0 1 2 2v15a1 1 0 0 1-1.496.868l-4.512-2.578a2 2 0 0 0-1.984 0l-4.512 2.578A1 1 0 0 1 5 20V5a2 2 0 0 1 2-2z`,key:`oz39mx`}]]),r=`0.8.1`;function i(e){return t(r,e)}export{n,i as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./createLucideIcon-CAM1RhH8.js";import{t as r}from"./pointer-
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./createLucideIcon-CAM1RhH8.js";import{t as r}from"./pointer-RLpjGG7A.js";var i=n(`menu`,[[`path`,{d:`M4 5h16`,key:`1tepv9`}],[`path`,{d:`M4 12h16`,key:`1lakjw`}],[`path`,{d:`M4 19h16`,key:`1djgab`}]]),a=e(t(),1),o=80,s=8,c=.8,l=.35;function u({enabled:e,axis:t,commitThresholdPx:n=o,deadzonePx:i=s,escapeRatio:u=c,overdragDamping:d=l,touchOnly:f=!0,onCommit:p,onMove:m,onReset:h}){let[g,_]=(0,a.useState)(0),[v,y]=(0,a.useState)(!1),[b]=(0,a.useState)(()=>r()),x=(0,a.useRef)(null),S=(0,a.useCallback)(()=>{x.current=null,_(0),y(!1),h?.()},[h]);return{dragOffset:g,isDragging:v,onTouchStart:(0,a.useCallback)(t=>{if(!e||f&&!b)return;if(t.touches.length!==1){S();return}let n=t.touches[0];x.current={touchId:n.identifier,startX:n.clientX,startY:n.clientY,resolved:`undecided`,lastDelta:0,lastEscape:0}},[e,f,b,S]),onTouchMove:(0,a.useCallback)(e=>{let r=x.current;if(!r)return;if(e.touches.length!==1){S();return}let a=e.touches[0];if(a.identifier!==r.touchId)return;let o=a.clientX-r.startX,s=a.clientY-r.startY,c=t===`horizontal`?o:s,l=t===`horizontal`?s:o;if(r.lastDelta=c,r.lastEscape=l,r.resolved===`undecided`){if(Math.abs(c)<i&&Math.abs(l)<i)return;if(Math.abs(l)>Math.abs(c)*u){x.current=null;return}r.resolved=`primary`,y(!0)}if(r.resolved!==`primary`)return;if(Math.abs(c)<n&&Math.abs(l)>Math.abs(c)*u){S();return}let f=Math.sign(c),p=Math.abs(c),h=f*(p<=n?p:n+(p-n)*d);_(h),m?.(h)},[t,i,u,n,d,m,S]),onTouchEnd:(0,a.useCallback)(e=>{let r=x.current;if(!r||r.resolved!==`primary`){S();return}if(e.touches.length>0){S();return}let i=Array.from(e.changedTouches).find(e=>e.identifier===r.touchId),a=i?i.clientX-r.startX:null,o=i?i.clientY-r.startY:null,s=a!==null&&o!==null?t===`horizontal`?a:o:r.lastDelta,c=a!==null&&o!==null?t===`horizontal`?o:a:r.lastEscape;!(Math.abs(c)>Math.abs(s)*u)&&Math.abs(s)>=n&&p?.(s),S()},[t,n,u,p,S]),onTouchCancel:S}}export{i as n,u as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{n}from"./button-Dy5001j6.js";import{n as r}from"./QueryClientProvider-CMu7CkQU.js";import{t as i}from"./useQuery-Bz-fbQ-m.js";import{t as a}from"./useMutation-CXGTrp4W.js";import{t as o}from"./jsx-runtime-D3ZM-ToX.js";import{t as s}from"./cn-CJf7MmLX.js";import{t as c}from"./createLucideIcon-CAM1RhH8.js";import{t as l}from"./bell-Ct4a9v6Y.js";import{t as u}from"./settings-CfuLzwIw.js";import{t as d}from"./clock-BYTc0Ds9.js";import{t as f}from"./list-
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{n}from"./button-Dy5001j6.js";import{n as r}from"./QueryClientProvider-CMu7CkQU.js";import{t as i}from"./useQuery-Bz-fbQ-m.js";import{t as a}from"./useMutation-CXGTrp4W.js";import{t as o}from"./jsx-runtime-D3ZM-ToX.js";import{t as s}from"./cn-CJf7MmLX.js";import{t as c}from"./createLucideIcon-CAM1RhH8.js";import{t as l}from"./bell-Ct4a9v6Y.js";import{t as u}from"./settings-CfuLzwIw.js";import{t as d}from"./clock-BYTc0Ds9.js";import{t as f}from"./list-DNbTcxAh.js";import{t as p}from"./mail-CMdPNysl.js";import{t as m}from"./message-square-CQGiY4zk.js";import{t as h}from"./rotate-ccw-BjzeX7qz.js";import{t as g}from"./shield-check-22NwY9JM.js";import{t as _}from"./trash-2-L5LNgw9o.js";import{j as v}from"./src-D89CNeuT.js";import{Ft as y,It as b,Lt as x,Rt as S}from"./sdk.gen-BVAVE6A_.js";import{I as C,L as w}from"./react-query.gen-r3I6j8-1.js";import{r as T}from"./utils-CnB60ZJN.js";import{t as E}from"./use-bus-subscription-Cu4Y9DQi.js";import{r as D}from"./format-date-RZ9mCDCy.js";var O=c(`mail-open`,[[`path`,{d:`M21.2 8.4c.5.38.8.97.8 1.6v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V10a2 2 0 0 1 .8-1.6l8-6a2 2 0 0 1 2.4 0l8 6Z`,key:`1jhwl8`}],[`path`,{d:`m22 10-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 10`,key:`1qfld7`}]]),k=`0.10.5`;function A(){return T(k)}var j=e(t(),1),M=o(),N={security:{icon:g,strong:`var(--feed-nudge-strong)`,weak:`var(--feed-nudge-weak)`},email:{icon:p,strong:`var(--feed-digest-strong)`,weak:`var(--feed-digest-weak)`},scheduling:{icon:d,strong:`var(--feed-thread-strong)`,weak:`var(--feed-thread-weak)`},background:{icon:u,strong:`var(--system-info-strong)`,weak:`var(--system-info-weak)`},system:{icon:l,strong:`var(--feed-digest-strong)`,weak:`var(--feed-digest-weak)`}},P=[`security`,`email`,`scheduling`,`background`,`system`],F=`all`;function I({categories:e,activeFilter:t,onFilterChange:n}){let r=P.filter(t=>e.includes(t));if(r.length<=1)return null;let i=[{value:F,label:`All`,icon:(0,M.jsx)(f,{className:`h-4 w-4`})},...r.map(e=>{let t=N[e].icon;return{value:e,label:e.charAt(0).toUpperCase()+e.slice(1),icon:(0,M.jsx)(t,{className:`h-4 w-4`})}})];return(0,M.jsx)(v,{ariaLabel:`Filter notifications`,value:t??F,onChange:e=>n(e===F?null:e),items:i,className:`self-start !w-auto [&>*]:!flex-none`})}function L({label:e,onClick:t,className:r,children:i}){return(0,M.jsx)(n,{content:e,children:(0,M.jsx)(`button`,{type:`button`,"aria-label":e,onClick:e=>{e.stopPropagation(),t()},className:s(`flex h-8 w-8 shrink-0 cursor-pointer items-center justify-center rounded-md`,`text-[var(--content-secondary)] transition-colors`,`hover:bg-[var(--surface-hover)] hover:text-[var(--content-default)]`,r),children:i})})}function R(e){return e&&N[e]?N[e]:N.system}function z({item:e,isActive:t=!1,validConversationIds:n,onSelect:r,onDismiss:i,onToggleRead:a,onGoToThread:o,trailingAction:c=`dismiss`}){let[l,u]=(0,j.useState)(!1),d=R(e.category),f=d.icon,g=e.status===`new`,v=c===`restore`;return(0,M.jsxs)(`button`,{type:`button`,onClick:()=>r(e),onMouseEnter:()=>u(!0),onMouseLeave:()=>u(!1),className:s(`flex min-h-[48px] w-full cursor-pointer items-center gap-[var(--app-spacing-sm)]`,`rounded-[var(--radius-md)] px-[var(--app-spacing-md)] py-[var(--app-spacing-sm)]`,`transition-[background-color,opacity] duration-150`,t?`bg-[var(--surface-active)]`:l?`bg-[var(--surface-hover)]`:`bg-[var(--surface-overlay)]`,!g&&!t&&`opacity-70`),children:[(0,M.jsxs)(`span`,{className:`relative shrink-0`,"aria-hidden":`true`,children:[(0,M.jsx)(`span`,{className:`flex items-center justify-center rounded-full`,style:{width:26,height:26,backgroundColor:d.weak},children:(0,M.jsx)(f,{width:12,height:12,style:{color:d.strong}})}),g&&(0,M.jsx)(`span`,{className:`absolute -left-0.5 -top-0.5 h-2 w-2 rounded-full bg-[var(--system-mid-strong)]`})]}),(0,M.jsx)(`span`,{className:s(`text-body-medium-default min-w-0 flex-1 truncate text-left`,`text-[var(--content-secondary)]`),children:e.title??e.summary}),l&&!v?(0,M.jsxs)(`span`,{className:`flex shrink-0 items-center gap-[var(--app-spacing-sm)]`,children:[a&&(0,M.jsx)(L,{label:g?`Mark as read`:`Mark as unread`,onClick:()=>a(e.id,g?`seen`:`new`),children:g?(0,M.jsx)(O,{width:16,height:16}):(0,M.jsx)(p,{width:16,height:16})}),o&&e.conversationId&&(!n||n.has(e.conversationId))&&(0,M.jsx)(L,{label:`Go to thread`,onClick:()=>{g&&a&&a(e.id,`seen`),o(e.conversationId)},children:(0,M.jsx)(m,{width:16,height:16})}),(0,M.jsx)(L,{label:`Dismiss`,onClick:()=>i(e.id),children:(0,M.jsx)(_,{width:16,height:16})})]}):l&&v?(0,M.jsxs)(L,{label:`Restore`,onClick:()=>i(e.id),className:`w-auto gap-[var(--app-spacing-xs)] px-2`,children:[(0,M.jsx)(h,{width:16,height:16,"aria-hidden":`true`}),(0,M.jsx)(`span`,{className:`text-body-small-default`,children:`Restore`})]}):(0,M.jsx)(`span`,{className:`shrink-0 text-body-small-default text-[var(--content-tertiary)]`,children:D(e.timestamp)})]})}function B(e){let t=r(),n=(0,j.useRef)(null),o=(0,j.useRef)(0),s=(0,j.useMemo)(()=>({path:{assistant_id:e??``},query:{timeAwaySeconds:0}}),[e]),c=(0,j.useMemo)(()=>C(s),[s]);E(`app.hidden`,()=>{n.current=Date.now()}),E(`app.resume`,({signal:r})=>{r!==`online`&&n.current!==null&&(o.current=Math.round((Date.now()-n.current)/1e3),n.current=null,e&&t.invalidateQueries({queryKey:c}))});let l=i({queryKey:c,queryFn:async({signal:t})=>{let{data:n}=await x({path:{assistant_id:e},query:{timeAwaySeconds:o.current},signal:t,throwOnError:!0});return n},enabled:!!e,staleTime:3e4}),u=a({mutationFn:async({itemId:t,status:n})=>{let{data:r}=await b({path:{assistant_id:e,id:t},body:{status:n},throwOnError:!0});return r},onMutate:async({itemId:e,status:n})=>{await t.cancelQueries({queryKey:c});let r=t.getQueryData(c);return w(t,s,t=>t&&{...t,items:t.items.map(t=>t.id===e?{...t,status:n}:t)}),{previous:r}},onError:(e,n,r)=>{r?.previous&&w(t,s,r.previous)},onSettled:()=>{t.invalidateQueries({queryKey:c})}}),d=a({mutationFn:async({itemId:t,actionId:n})=>{let{data:r}=await y({path:{assistant_id:e,id:t,actionId:n},throwOnError:!0});return r},onMutate:async({itemId:e})=>{await t.cancelQueries({queryKey:c});let n=t.getQueryData(c);return w(t,s,t=>t&&{...t,items:t.items.map(t=>t.id===e?{...t,status:`acted_on`}:t)}),{previous:n}},onError:(e,n,r)=>{r?.previous&&w(t,s,r.previous)},onSettled:()=>{t.invalidateQueries({queryKey:c})}}),f=a({mutationFn:async({from:t,to:n,ids:r})=>{let{data:i}=await S({path:{assistant_id:e},body:{from:t,to:n,ids:r},throwOnError:!0});return i},onMutate:async({from:e,to:n,ids:r})=>{await t.cancelQueries({queryKey:c});let i=t.getQueryData(c),a=new Set(e),o=r?new Set(r):null;return w(t,s,e=>{if(!e)return e;let t=e.items.map(e=>a.has(e.status)&&e.status!==n&&(!o||o.has(e.id))?{...e,status:n}:e),r=t.filter(e=>e.status===`new`).length;return{...e,items:t,contextBanner:{...e.contextBanner,newCount:r}}}),{previous:i}},onError:(e,n,r)=>{r?.previous&&w(t,s,r.previous)},onSettled:()=>{t.invalidateQueries({queryKey:c})}}),p=(0,j.useCallback)(()=>{e&&t.invalidateQueries({queryKey:c})},[e,t,c]);return{...l,updateStatus:u,triggerAction:d,markAll:f,invalidate:p}}function V(e){return[...e].sort((e,t)=>e.priority===t.priority?new Date(t.createdAt).getTime()-new Date(e.createdAt).getTime():t.priority-e.priority)}function H(e){let t=new Date,n=new Date(t.getFullYear(),t.getMonth(),t.getDate()),r=new Date(t.getFullYear(),t.getMonth(),t.getDate()-1),i={today:[],yesterday:[],older:[]};for(let t of e){let e=new Date(t.createdAt);e>=n?i.today.push(t):e>=r?i.yesterday.push(t):i.older.push(t)}let a=new Map;return i.today.length>0&&a.set(`today`,i.today),i.yesterday.length>0&&a.set(`yesterday`,i.yesterday),i.older.length>0&&a.set(`older`,i.older),a}function U(e,t){return t===null?e:e.filter(e=>(e.category??`system`)===t)}function W(e){return e.filter(e=>e.urgency!==`high`&&e.urgency!==`critical`)}function G(e){return W(e.filter(e=>e.status!==`dismissed`))}function K(e){return{from:[`new`],to:`seen`,ids:e.filter(e=>e.status===`new`).map(e=>e.id)}}function q(e){return{from:[`new`,`seen`,`acted_on`],to:`dismissed`,ids:e.map(e=>e.id)}}function J(e){let t=new Set;for(let n of e)t.add(n.category??`system`);return[...t]}export{G as a,V as c,N as d,I as f,J as i,B as l,O as m,W as n,H as o,A as p,U as r,K as s,q as t,z as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./assistant-identity-store-
|
|
1
|
+
import{t as e}from"./assistant-identity-store-DIyVo8LV.js";import{n as t,r as n,t as r}from"./semver-BpijV4FQ.js";function i(e,t,n={}){return t(e.getState())?Promise.resolve():new Promise(r=>{let i,a=()=>{i!==void 0&&clearTimeout(i),o(),r()},o=e.subscribe(e=>{t(e)&&a()});n.timeoutMs!==void 0&&(i=setTimeout(a,n.timeoutMs))})}function a(t){return c(e.use.version(),t)}function o(t,n){let r=e.use.assistantId();return a(t)&&n!=null&&n===r}function s(t){let n=e.getState().version;return c(n,t)}function c(e,i){if(!e)return!1;let a=n(e),o=n(i);if(!a||!o)return!1;let s=r({...a,pre:null},{...o,pre:null});if(s!==0)return s>0;let c=a.pre!==null&&a.pre.startsWith(`dev`),l=o.pre!==null&&o.pre.startsWith(`dev`);return c&&l?t(a.pre,o.pre)>=0:c===l?!0:c}var l=5e3;function u(t=l){return i(e,e=>!!e.version,{timeoutMs:t})}export{i as a,u as i,o as n,a as r,s as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./capture-error-
|
|
1
|
+
import{t as e}from"./capture-error-Bj8_eutd.js";import{n as t,t as n}from"./create-selectors-Qo7kcikX.js";import{n as r,xt as i}from"./sdk.gen-BVAVE6A_.js";var a=new Map;function o(e,t){return`${e}::${t}`}function s(e,t){let n=o(e,t),i=a.get(n);return i??(i=r({path:{assistant_id:e,id:t},throwOnError:!0}).then(e=>e.data.html).catch(e=>{throw a.delete(n),e}),a.set(n,i)),i}function c(e,t,n){a.set(o(e,t),Promise.resolve(n))}function l(e,t){a.delete(o(e,t))}function u(e){if(typeof e!=`object`||!e)return!1;let t=e.error;if(typeof t!=`object`||!t||t.code!==`NOT_FOUND`)return!1;let n=t.message;return typeof n==`string`&&n.startsWith(`App not found`)}function d(e,t){let n=e.mainView;return n===`document`||n===`subagent-detail`||n===`tool-detail`||n===`activity-steps`||n===`workflow-detail`||n===`acp-run-detail`||n===`background-task-detail`||n===`skill-detail`||n===`channel-setup`?e[t]:n}function f(e,t){return e.messageId!=null||t.messageId!=null?e.messageId===t.messageId&&e.groupIndex===t.groupIndex:e.toolCalls[0]?.id===t.toolCalls[0]?.id}function p(e,t){return t.messageId==null?e.thinkingText===t.thinkingText:e.messageId===t.messageId&&e.thinkingGroupIndex===t.thinkingGroupIndex&&e.thinkingItemIndex===t.thinkingItemIndex}var m={mainView:`chat`,activeAppId:null,openedAppState:null,activeDocumentSurfaceId:null,openedDocumentState:null,isAppMinimized:!1,intelligenceTab:`identity`,assetsRefreshKey:0,viewBeforeDocument:`chat`,activeSubagentId:null,viewBeforeSubagentDetail:`chat`,activeToolDetail:null,viewBeforeToolDetail:`chat`,activeActivitySteps:null,viewBeforeActivitySteps:`chat`,activeWorkflowRunId:null,viewBeforeWorkflowDetail:`chat`,activeAcpRunId:null,viewBeforeAcpRunDetail:`chat`,activeBackgroundTaskId:null,viewBeforeBackgroundTaskDetail:`chat`,activeSkillDetailId:null,viewBeforeSkillDetail:`chat`,activeChannelSetup:null,viewBeforeChannelSetup:`chat`,ruleEditorRequestSeq:0,ruleEditorRequestToolCallId:null},h=n(t()((t,n)=>({...m,setMainView:e=>{n().mainView!==e&&t({mainView:e})},setIntelligenceTab:e=>{n().intelligenceTab!==e&&t({intelligenceTab:e})},openApp:e=>{t({mainView:`app`,activeAppId:e,openedAppState:null,isAppMinimized:!1})},loadApp:async(i,a)=>{t({mainView:`app`,activeAppId:a,openedAppState:null,isAppMinimized:!1});try{let{data:e}=await r({path:{assistant_id:i,id:a},throwOnError:!0});if(n().activeAppId!==a)return;t({openedAppState:{appId:e.appId,dirName:e.dirName,name:e.name,html:e.html}}),c(i,e.appId,e.html)}catch(r){if(n().activeAppId!==a)return;u(r)||e(r,{context:`openApp`}),t({mainView:`chat`,activeAppId:null,openedAppState:null})}},setLoadedApp:e=>{t({openedAppState:e})},handleAppLoadFailed:()=>{t({mainView:`chat`,activeAppId:null,openedAppState:null})},closeApp:()=>{t({mainView:`chat`,activeAppId:null,openedAppState:null,isAppMinimized:!1})},toggleAppMinimized:()=>{t({isAppMinimized:!n().isAppMinimized})},minimizeApp:()=>{t({isAppMinimized:!0})},handleAppUnpinned:e=>{let t=n();return t.activeAppId!==e||t.mainView!==`app`&&t.mainView!==`app-editing`?!1:(n().closeApp(),!0)},enterAppEditing:()=>{t({mainView:`app-editing`})},exitAppEditing:()=>{t({mainView:`app`})},openSubagentDetail:e=>{t({mainView:`subagent-detail`,activeSubagentId:e,viewBeforeSubagentDetail:d(n(),`viewBeforeSubagentDetail`)})},closeSubagentDetail:()=>{t({mainView:n().viewBeforeSubagentDetail,activeSubagentId:null})},openWorkflowDetail:e=>{t({mainView:`workflow-detail`,activeWorkflowRunId:e,viewBeforeWorkflowDetail:d(n(),`viewBeforeWorkflowDetail`)})},closeWorkflowDetail:()=>{t({mainView:n().viewBeforeWorkflowDetail,activeWorkflowRunId:null})},openAcpRunDetail:e=>{t({mainView:`acp-run-detail`,activeAcpRunId:e,viewBeforeAcpRunDetail:d(n(),`viewBeforeAcpRunDetail`)})},closeAcpRunDetail:()=>{t({mainView:n().viewBeforeAcpRunDetail,activeAcpRunId:null})},openBackgroundTaskDetail:e=>{t({mainView:`background-task-detail`,activeBackgroundTaskId:e,viewBeforeBackgroundTaskDetail:d(n(),`viewBeforeBackgroundTaskDetail`)})},closeBackgroundTaskDetail:()=>{t({mainView:n().viewBeforeBackgroundTaskDetail,activeBackgroundTaskId:null})},openSkillDetail:e=>{t({mainView:`skill-detail`,activeSkillDetailId:e,viewBeforeSkillDetail:d(n(),`viewBeforeSkillDetail`)})},closeSkillDetail:()=>{t({mainView:n().viewBeforeSkillDetail,activeSkillDetailId:null})},openProcessDetail:({kind:e,id:t})=>{switch(e){case`subagent`:n().openSubagentDetail(t);return;case`workflow`:n().openWorkflowDetail(t);return;case`acp-run`:n().openAcpRunDetail(t);return;case`background-task`:n().openBackgroundTaskDetail(t);return;default:}},closeActiveDetail:()=>{switch(n().mainView){case`subagent-detail`:n().closeSubagentDetail();return;case`workflow-detail`:n().closeWorkflowDetail();return;case`acp-run-detail`:n().closeAcpRunDetail();return;case`background-task-detail`:n().closeBackgroundTaskDetail();return;default:return}},openChannelSetup:e=>{t({mainView:`channel-setup`,activeChannelSetup:e,viewBeforeChannelSetup:d(n(),`viewBeforeChannelSetup`)})},closeChannelSetup:()=>{t({mainView:n().viewBeforeChannelSetup,activeChannelSetup:null})},openToolDetail:e=>{t({mainView:`tool-detail`,activeToolDetail:e,viewBeforeToolDetail:d(n(),`viewBeforeToolDetail`)})},toggleToolDetail:e=>{let t=n(),r=t.activeToolDetail;t.mainView===`tool-detail`&&r!=null&&(e.kind===`thinking`?r.kind===`thinking`&&p(r,e):r.kind!==`thinking`&&r.toolCallId===e.toolCallId)?n().closeToolDetail():n().openToolDetail(e)},closeToolDetail:()=>{t({mainView:n().viewBeforeToolDetail,activeToolDetail:null})},requestRuleEditor:e=>{e&&t(t=>({ruleEditorRequestSeq:t.ruleEditorRequestSeq+1,ruleEditorRequestToolCallId:e}))},openActivitySteps:e=>{t({mainView:`activity-steps`,activeActivitySteps:e,viewBeforeActivitySteps:d(n(),`viewBeforeActivitySteps`)})},toggleActivitySteps:e=>{let t=n(),r=t.activeActivitySteps;t.mainView===`activity-steps`&&r!=null&&f(r,e)?n().closeActivitySteps():n().openActivitySteps(e)},closeActivitySteps:()=>{t({mainView:n().viewBeforeActivitySteps,activeActivitySteps:null})},openDocument:()=>{t({mainView:`document`,openedDocumentState:null,viewBeforeDocument:d(n(),`viewBeforeDocument`)})},loadDocument:async(e,r)=>{let a=d(n(),`viewBeforeDocument`);t({mainView:`document`,activeDocumentSurfaceId:r,openedDocumentState:null,viewBeforeDocument:a});try{let{data:o}=await i({path:{assistant_id:e,id:r},throwOnError:!0});if(n().activeDocumentSurfaceId!==r)return;if(!o){t({mainView:a,activeDocumentSurfaceId:null,openedDocumentState:null});return}t({openedDocumentState:{surfaceId:o.surfaceId,conversationId:o.conversationId,documentName:o.title??`Untitled`,content:o.content??``}})}catch{if(n().activeDocumentSurfaceId!==r)return;t({mainView:a,activeDocumentSurfaceId:null,openedDocumentState:null})}},setLoadedDocument:e=>{t({openedDocumentState:e})},updateDocumentContent:(e,r,i)=>{let a=n();if(!a.openedDocumentState||a.openedDocumentState.surfaceId!==e)return;let o=a.openedDocumentState,s=i===`append`?o.content+r:r;t({openedDocumentState:{...o,content:s}})},handleDocumentLoadFailed:()=>{t({mainView:n().viewBeforeDocument,activeDocumentSurfaceId:null,openedDocumentState:null})},closeDocument:()=>{t({mainView:n().viewBeforeDocument,activeDocumentSurfaceId:null,openedDocumentState:null})},refreshAssets:()=>{t({assetsRefreshKey:n().assetsRefreshKey+1})},reset:()=>t({...m})})));export{s as a,l as i,p as n,c as o,h as r,f as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-Dy5001j6.js";import{n as r}from"./QueryClientProvider-CMu7CkQU.js";import{t as i}from"./useQuery-Bz-fbQ-m.js";import{t as a}from"./jsx-runtime-D3ZM-ToX.js";import{t as o}from"./cn-CJf7MmLX.js";import{t as s}from"./check-sC49_hjU.js";import{t as c}from"./square-
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-Dy5001j6.js";import{n as r}from"./QueryClientProvider-CMu7CkQU.js";import{t as i}from"./useQuery-Bz-fbQ-m.js";import{t as a}from"./jsx-runtime-D3ZM-ToX.js";import{t as o}from"./cn-CJf7MmLX.js";import{t as s}from"./check-sC49_hjU.js";import{t as c}from"./square-D_e8nR-F.js";import{t as l}from"./volume-2-CvT-JEIl.js";import"./src-D89CNeuT.js";import{n as u}from"./toast-LgLp4obE.js";import{t as d}from"./dropdown-BCfnSdIZ.js";import{j as f}from"./sdk.gen-BVAVE6A_.js";import{Ft as p,Pt as m,c as h,l as g}from"./react-query.gen-r3I6j8-1.js";import{t as _}from"./use-is-org-ready-X_98Cnx9.js";var v=e(t(),1);function y(e,t={}){let n=_(),{data:r}=i({...m({path:{assistant_id:e??``}}),enabled:n&&!!e&&(t.enabled??!0),staleTime:6e4,retry:!1});return{voices:r?.voices??[],defaultModel:r?.defaultModel??null,fetched:!!r}}function b(e){let t=_()&&!!e,n=r(),{data:a}=i({...p({path:{assistant_id:e??``}}),enabled:t,staleTime:1/0,retry:!1}),{data:o}=i({...h({path:{assistant_id:e??``}}),enabled:t,staleTime:3e4}),s=o?.services?.tts,c=s?.mode===`managed`||s?.provider===`vellum`,l=a?.providers?.find(e=>e.id===`vellum`)?.supportsVoiceSelection===!0,{voices:d,defaultModel:m}=y(e,{enabled:t&&c}),b=t&&c&&l&&d.length>0,x=t&&!!o&&!c,[S,C]=(0,v.useState)(!1),[w,T]=(0,v.useState)(null),E=(0,v.useMemo)(()=>{let e=s?.providers?.vellum?.model;return w??e??m??d[0]?.model??``},[w,s,m,d]),D=(0,v.useRef)(Promise.resolve()),O=(0,v.useRef)(0),k=(0,v.useCallback)(t=>{if(!e||t===E)return;let r=++O.current;T(t),C(!0),D.current=D.current.then(async()=>{try{let{response:r}=await f({path:{assistant_id:e},body:{services:{tts:{providers:{vellum:{model:t}}}}},throwOnError:!1});if(!r?.ok){u.error(`Couldn't change the voice just now — try again.`);return}await n.invalidateQueries({queryKey:g({path:{assistant_id:e}})})}catch{u.error(`Couldn't change the voice just now — try again.`)}finally{r===O.current&&(T(null),C(!1))}})},[e,E,n]);return{available:b,isByok:x,voices:d,currentModel:E,defaultModel:m??``,selectModel:k,selecting:S}}var x={deepgram:`Deepgram`,elevenlabs:`ElevenLabs`},S=`Uses Vellum credits, through providers like ElevenLabs and Deepgram.`;function C(e){let t=e.indexOf(` · `);return t===-1?{traits:e,accent:``}:{accent:e.slice(0,t),traits:e.slice(t+3)}}function w(e){let{traits:t}=C(e);return t.charAt(0).toUpperCase()+t.slice(1)}function T(e){let t=new Map;for(let n of e){let{accent:e}=C(n.description),r=e||`Other`,i=t.get(r);i?i.push(n):t.set(r,[n])}return[...t.entries()].sort((e,t)=>e[0].localeCompare(t[0])).map(([e,t])=>({accent:e,voices:[...t].sort((e,t)=>C(e.description).traits.localeCompare(C(t.description).traits))}))}var E=a();function D({description:e,className:t}){let{accent:n}=C(e);return(0,E.jsxs)(`span`,{className:o(`truncate`,t),children:[w(e),n&&(0,E.jsx)(`span`,{className:`text-[var(--content-tertiary)]`,children:` · ${n}`})]})}function O(){let[e,t]=(0,v.useState)(null),n=(0,v.useRef)(null),r=(0,v.useRef)(0),i=()=>{r.current++,n.current?.pause(),n.current=null,t(null)};(0,v.useEffect)(()=>()=>{r.current++,n.current?.pause(),n.current=null},[]);function a(e){if(!e.sampleUrl)return;n.current?.pause();let i=++r.current,a=new Audio(e.sampleUrl);n.current=a,t(e.model);let o=()=>{r.current===i&&t(null)};a.onended=o,a.onerror=o,a.play().catch(()=>{r.current===i&&(u.error(`Could not play the voice sample.`),t(null))})}return{previewingModel:e,play:a,stop:i}}function k({assistantId:e,heading:t,className:r,onSelect:i,value:a,onChange:u,showSource:f=!1,filterBySource:p=!1}){let{available:m,voices:h,currentModel:g,defaultModel:_,selectModel:y,selecting:S}=b(e),C=a!==void 0&&u!==void 0,D=C?a:g,k=e=>{C?u(e):y(e),i?.()},A=(0,v.useMemo)(()=>{let e=new Set,t=[];for(let n of h)e.has(n.source)||(e.add(n.source),t.push(n.source));return t.sort((e,t)=>(x[e]??e).localeCompare(x[t]??t))},[h]),[j,M]=(0,v.useState)(null),N=h.find(e=>e.model===D)?.source,P=p?j??N??A[0]??null:null,F=p&&A.length>1,I=(0,v.useMemo)(()=>T(P?h.filter(e=>e.source===P):h),[h,P]),{previewingModel:L,play:R,stop:z}=O(),B=(0,v.useRef)(null);(0,v.useEffect)(()=>{B.current?.scrollIntoView?.({block:`nearest`})},[]);let V=h.length>0;return(C?!V:!m)?null:(0,E.jsxs)(`div`,{className:o(`flex flex-col gap-2`,t&&`border-t border-[var(--border-subtle)] pt-3`,r),children:[t&&(0,E.jsx)(`span`,{className:`text-label-medium-default text-[var(--content-secondary)]`,children:t}),F&&(0,E.jsx)(`div`,{className:`px-1 pb-1`,children:(0,E.jsx)(d,{value:P??``,onChange:M,options:A.map(e=>({value:e,label:x[e]??e})),"aria-label":`Voice provider`})}),(0,E.jsx)(`div`,{role:`listbox`,"aria-label":`Assistant voice`,className:o(`flex flex-col overflow-y-auto`,p?`max-h-[60vh]`:`max-h-80`,S&&`pointer-events-none opacity-70`),children:I.map(e=>(0,E.jsxs)(`div`,{role:`group`,"aria-label":e.accent,children:[(0,E.jsx)(`div`,{className:`px-3 pb-1 pt-3 text-label-small-default text-[var(--content-tertiary)]`,children:e.accent}),e.voices.map(e=>{let t=e.model===D,r=L===e.model,i=e.model===_;return(0,E.jsxs)(`div`,{ref:t?B:void 0,role:`option`,"aria-selected":t,onClick:()=>k(e.model),className:o(`group flex cursor-pointer items-center gap-2 rounded-md px-3 py-2.5 transition-colors`,t?`bg-[var(--surface-active)]`:`hover:bg-[var(--surface-hover)]`),children:[(0,E.jsxs)(`span`,{className:`min-w-0 flex-1 truncate text-body-medium-default text-[var(--content-default)]`,children:[w(e.description),i&&(0,E.jsxs)(`span`,{className:`text-[var(--content-tertiary)]`,children:[` `,`(default)`]})]}),f&&!p&&(0,E.jsx)(`span`,{className:`shrink-0 text-body-small-default text-[var(--content-tertiary)]`,children:x[e.source]??e.source}),(0,E.jsxs)(`div`,{className:`relative flex size-7 shrink-0 items-center justify-center`,children:[e.sampleUrl!==``&&(0,E.jsx)(n,{variant:`ghost`,size:`compact`,iconOnly:r?(0,E.jsx)(c,{}):(0,E.jsx)(l,{}),"aria-label":r?`Stop preview`:`Preview ${e.description}`,className:o(`absolute inset-0 transition-opacity`,r?`opacity-100`:`opacity-0 group-hover:opacity-100 focus-visible:opacity-100 touch-mobile:opacity-100`),onClick:t=>{t.stopPropagation(),r?z():R(e)}}),t&&(0,E.jsx)(s,{"aria-hidden":!0,className:o(`pointer-events-none size-4 text-[var(--system-positive-strong)] transition-opacity`,r?`opacity-0`:e.sampleUrl===``?`opacity-100`:`opacity-100 group-hover:opacity-0 group-focus-within:opacity-0`)})]})]},e.model)})]},e.accent))})]})}export{b as a,w as i,k as n,y as o,S as r,D as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{a as t,c as n,i as r}from"./local-settings-C-dW2vkq.js";import{t as i}from"./react-BFJW0bSv.js";import{t as a}from"./button-Dy5001j6.js";import{m as o,n as s,t as c}from"./chunk-5KNZJZUH-Bsoom5--.js";import{t as l}from"./jsx-runtime-D3ZM-ToX.js";import{r as u}from"./middleware-HE0NLvPl.js";import{t as d}from"./info-CYiVdnQV.js";import{j as f,k as p}from"./src-B9F84D64.js";import{t as m}from"./toggle-D776PTw-.js";import{t as h}from"./dropdown-Dt0Iof85.js";import{t as g}from"./assistant-identity-store-RThYdwnA.js";import{u as _}from"./routes-bwxCYLJj.js";import{C as v,S as y,T as b,a as x,b as ee,c as te,f as S,g as C,h as w,m as T,p as E,s as D,t as O,w as k,x as ne}from"./voice-picker-modal-BiCmmLJz.js";import{a as A,r as j,t as M}from"./voice-list-woCTax9H.js";import{t as N}from"./use-active-assistant-id-BcM35kFN.js";import{t as P}from"./detail-card-BKbhBGhy.js";var F=e(i(),1),I=l();function L(){let e=N(),{available:t,voices:n,currentModel:r}=A(e),i=n.find(e=>e.model===r)??n[0],[o,s]=(0,F.useState)(!1),l=g.use.name(),u=l?`${l}’s Voice`:`Voice`;return t&&i?(0,I.jsxs)(P,{title:u,subtitle:j,children:[(0,I.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,I.jsx)(M,{description:i.description,className:`min-w-0 text-body-medium-lighter text-[var(--content-default)]`}),(0,I.jsx)(a,{variant:`outlined`,onClick:()=>s(!0),className:`shrink-0`,children:`Change`})]}),(0,I.jsx)(O,{assistantId:e,open:o,onOpenChange:s})]}):(0,I.jsx)(P,{title:u,children:(0,I.jsxs)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:[`Your assistant speaks through a provider you configured yourself. Set its voice on`,` `,(0,I.jsx)(c,{to:`${_.settings.ai}#text-to-speech`,className:`text-[var(--primary-base)] hover:underline`,children:`Models & Services`}),`.`]})})}var R=[{prefKey:`showUserTranscript`,label:`Show the words you say`,description:`Live transcription while you speak.`},{prefKey:`showAssistantTranscript`,label:`Show the words the assistant says`,description:`Text alongside the spoken response.`}],z=`We recommend keeping both off to start. It feels more like a real conversation.`;function B(){return(0,I.jsx)(`span`,{className:`shrink-0 rounded-full bg-[var(--surface-active)] px-2 py-0.5 text-body-small-default text-[var(--content-tertiary)]`,children:`Recommended off`})}function V({label:e,description:t,showBadge:n,checked:r,onChange:i}){return(0,I.jsxs)(`div`,{className:`flex items-center justify-between gap-3 py-1`,children:[(0,I.jsxs)(`div`,{className:`min-w-0`,children:[(0,I.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,I.jsx)(`span`,{className:`truncate text-body-medium-lighter text-[var(--content-default)]`,children:e}),n?(0,I.jsx)(B,{}):null]}),t?(0,I.jsx)(`div`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:t}):null]}),(0,I.jsx)(m,{checked:r,onChange:i,"aria-label":e})]})}function H({showDescription:e=!1,showRecommendedBadge:t=!1}){let n=D.use.showUserTranscript(),r=D.use.showAssistantTranscript(),i=D.use.setShowUserTranscript(),a=D.use.setShowAssistantTranscript(),o={showUserTranscript:{checked:n,onChange:i},showAssistantTranscript:{checked:r,onChange:a}};return(0,I.jsx)(I.Fragment,{children:R.map(n=>{let r=o[n.prefKey];return(0,I.jsx)(V,{label:n.label,description:e?n.description:void 0,showBadge:t,checked:r.checked,onChange:r.onChange},n.prefKey)})})}var U=[{label:`Ctrl`,activator:{kind:`modifierOnly`,modifiers:[`control`]}},{label:`Alt`,activator:{kind:`modifierOnly`,modifiers:[`option`]}},{label:`Ctrl+Shift`,activator:{kind:`modifierOnly`,modifiers:[`control`,`shift`]}}],W={label:`Fn`,activator:E},G=`text-body-small-default text-[var(--content-tertiary)]`;function K(){let[e]=o(),t=e.get(`tab`);return t===`sounds`?(0,I.jsx)(s,{replace:!0,to:_.settings.sounds}):t===`services`?(0,I.jsx)(s,{replace:!0,to:_.settings.ai}):(0,I.jsx)(q,{})}function q(){return(0,I.jsxs)(`div`,{className:`flex flex-col gap-8`,children:[(0,I.jsxs)(Y,{heading:`Output`,description:`How your assistant sounds.`,children:[(0,I.jsx)(L,{}),(0,I.jsx)(J,{})]}),(0,I.jsxs)(Y,{heading:`Input`,description:`How you talk to your assistant.`,children:[(0,I.jsx)(re,{}),(0,I.jsx)(ie,{}),(0,I.jsx)(oe,{})]}),(0,I.jsx)(Y,{heading:`Captions`,children:(0,I.jsx)(X,{})})]})}function J(){let{available:e}=A(N());return e?(0,I.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5 px-1 text-body-small-default text-[var(--content-tertiary)]`,children:[(0,I.jsx)(d,{className:`h-3.5 w-3.5 shrink-0 text-[var(--content-quiet)]`}),(0,I.jsx)(`span`,{children:`Want to use your own API key for STT or TTS, or set a custom voice?`}),(0,I.jsxs)(c,{to:`${_.settings.ai}#text-to-speech`,className:`inline-flex items-center gap-1 text-[var(--content-secondary)] underline decoration-[var(--border-element)] underline-offset-2 hover:text-[var(--content-default)]`,children:[`Set it up in Models & Services`,(0,I.jsx)(u,{className:`h-3 w-3`})]})]}):null}function Y({heading:e,description:t,children:n}){return(0,I.jsxs)(`section`,{className:`flex flex-col gap-4`,children:[(0,I.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,I.jsx)(`h2`,{className:`text-label-medium-default uppercase tracking-wide text-[var(--content-tertiary)]`,children:e}),t&&(0,I.jsx)(`p`,{className:`text-body-small-default text-[var(--content-quiet)]`,children:t})]}),n]})}function X(){return(0,I.jsx)(P,{title:`Captions`,subtitle:`Show live text of what you and the assistant say during a voice conversation.`,children:(0,I.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,I.jsx)(H,{showDescription:!0}),(0,I.jsx)(`p`,{className:`${G} pt-1`,children:z})]})})}var Z=``;function re(){let[e,r]=(0,F.useState)([]),[i,o]=(0,F.useState)(!1),[s,c]=(0,F.useState)(()=>b()),l=(0,F.useCallback)(async()=>{if(navigator.mediaDevices?.enumerateDevices)try{let e=(await navigator.mediaDevices.enumerateDevices()).filter(e=>e.kind===`audioinput`);o(e.length>0&&e.every(e=>!e.label)),r(e.filter(e=>e.deviceId!==``&&e.deviceId!==`default`&&e.deviceId!==`communications`))}catch{r([]),o(!1)}},[]),u=(0,F.useCallback)(async()=>{try{let e=await navigator.mediaDevices.getUserMedia({audio:!0});for(let t of e.getTracks())t.stop()}catch{}l()},[l]);(0,F.useEffect)(()=>{l();let e=navigator.mediaDevices;if(!e?.addEventListener)return;let t=()=>void l();return e.addEventListener(`devicechange`,t),()=>e.removeEventListener(`devicechange`,t)},[l]);let d=(0,F.useMemo)(()=>[{value:Z,label:`System Default`},...e.map((e,t)=>({value:e.deviceId,label:e.label||`Microphone ${t+1}`}))],[e]),f=(0,F.useCallback)(e=>{c(e),e===Z?t(k):n(k,e)},[]);return(0,I.jsx)(P,{title:`Microphone`,subtitle:`Which input device is used for dictation and voice conversations.`,children:(0,I.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,I.jsx)(`div`,{className:`max-w-xs`,children:(0,I.jsx)(h,{options:d,value:d.some(e=>e.value===s)?s:Z,onChange:f,"aria-label":`Microphone`})}),i&&(0,I.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,I.jsx)(a,{variant:`outlined`,onClick:u,children:`Allow Microphone Access`}),(0,I.jsx)(`span`,{className:G,children:`Grant microphone access to list your available input devices.`})]})]})})}function ie(){let e=te(),[t,i]=(0,F.useState)(()=>{let t=r(T,``);return t?ne(t,{preserveFunction:e}):e?W.activator:{kind:`off`}}),[a,o]=(0,F.useState)(!1),[s,c]=(0,F.useState)([]),l=(0,F.useRef)(null),u=(0,F.useRef)(!1),f=(0,F.useMemo)(()=>e?[W,...U]:U,[e]),p=t.kind!==`off`,h=p&&!e,g=(0,F.useCallback)(e=>{i(e),n(T,y(e)),o(!1),c([])},[]),_=(0,F.useCallback)(()=>{o(!0),c([]),u.current=!1,requestAnimationFrame(()=>{l.current?.focus()})},[]),b=(0,F.useCallback)(()=>{o(!1),c([]),u.current=!1},[]),x=(0,F.useCallback)(t=>{let n=[];return e&&t.getModifierState(`Fn`)&&n.push(`function`),t.ctrlKey&&n.push(`control`),t.altKey&&n.push(`option`),t.shiftKey&&n.push(`shift`),t.metaKey&&n.push(`command`),n},[e]),D=(0,F.useCallback)(e=>{if(e.preventDefault(),e.stopPropagation(),e.key===`Escape`){b();return}let t=x(e),n=e.key;if(n===`Control`||n===`Alt`||n===`Shift`||n===`Meta`||n===`Fn`){c(t.includes(`function`)?E.modifiers:v(t));return}if(t.includes(`function`)){g(E);return}u.current=!0,g({kind:`key`,label:n.length===1?n.toUpperCase():n,modifiers:t})},[b,x,g]),O=(0,F.useCallback)(e=>{if(!a)return;e.preventDefault(),e.stopPropagation();let t=e.key;if(t===`Control`||t===`Alt`||t===`Shift`||t===`Meta`||t===`Fn`){if(u.current){u.current=!1,c([]);return}x(e).length===0&&s.length>0&&g({kind:`modifierOnly`,modifiers:s})}},[x,a,s,g]);(0,F.useEffect)(()=>{if(!a)return;let e=e=>{l.current&&!l.current.contains(e.target)&&b()};return window.addEventListener(`mousedown`,e),()=>window.removeEventListener(`mousedown`,e)},[b,a]);let k=p&&!f.some(e=>C(e.activator,t));return(0,I.jsx)(P,{title:`Push to Talk`,subtitle:`Hold the activation key to dictate text or start a voice conversation.`,children:(0,I.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,I.jsx)(m,{checked:p,onChange:n=>{n?t.kind===`off`&&g(e?W.activator:S):g({kind:`off`})},label:`Enable Push to Talk`}),p&&(0,I.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,I.jsx)(`span`,{className:G,children:`Activation Key:`}),(0,I.jsxs)(`div`,{ref:l,tabIndex:a?0:-1,onKeyDown:a?D:void 0,onKeyUp:a?O:void 0,className:`flex flex-wrap items-center gap-2 focus:outline-none`,children:[f.map(e=>{let n=C(e.activator,t);return(0,I.jsx)(Q,{label:e.label,selected:n,onClick:()=>g(e.activator)},e.label)}),a?(0,I.jsx)(Q,{label:s.length>0?ee(s):`Press any key…`,selected:!0,recording:!0,onClick:b}):(0,I.jsx)(Q,{label:k?w(t):`Custom`,selected:k,onClick:_})]}),h&&(0,I.jsxs)(`div`,{className:`flex items-start gap-1 pt-1 text-body-small-default text-[var(--content-quiet)]`,children:[(0,I.jsx)(d,{className:`mt-0.5 h-3 w-3 shrink-0`}),(0,I.jsx)(`span`,{children:`Push-to-Talk only works while this tab is focused, and browsers may intercept some shortcuts (e.g. Ctrl+T) before the page can see them. For always-on PTT, use the Vellum desktop app.`})]})]})]})})}function Q({label:e,selected:t,recording:n=!1,onClick:r}){return(0,I.jsxs)(`button`,{type:`button`,onClick:r,className:[`inline-flex items-center gap-2 rounded-lg border px-3 py-1.5 text-body-medium-lighter transition-colors`,`border-[var(--border-subtle)]`,t?`bg-[var(--surface-active)]`:`bg-[var(--surface-lift)] hover:bg-[var(--surface-hover)]`,n?`animate-pulse`:``].filter(Boolean).join(` `),children:[(0,I.jsx)(`span`,{className:[`inline-block h-2.5 w-2.5 rounded-full border`,t?`border-[var(--primary-base)] bg-[var(--primary-base)]`:`border-[var(--border-element)]`].join(` `)}),(0,I.jsx)(`span`,{className:`text-[var(--content-default)]`,children:e})]})}var ae=[{value:`low`,label:`Low`},{value:`medium`,label:`Medium`},{value:`high`,label:`High`}];function oe(){let e=D.use.pauseBeforeReplyMs(),t=D.use.setPauseBeforeReplyMs(),n=D.use.interruptSensitivity(),r=D.use.setInterruptSensitivity(),i=e!==null||n!==null;return(0,I.jsx)(P,{title:`Turn taking`,subtitle:`Where your turn ends and the assistant's begins. Applies to hands-free conversations — under push to talk, the key decides.`,children:(0,I.jsxs)(`div`,{className:`flex flex-col gap-5`,children:[(0,I.jsx)($,{label:`Pause before reply`,description:`How long the assistant waits after you stop speaking before it replies. A longer pause lets you gather your thoughts mid-sentence without being cut off.`,isDefault:e===null,children:(0,I.jsx)(`div`,{className:`max-w-xs`,children:(0,I.jsx)(p,{value:(e??1200)/1e3,onValueChange:e=>{typeof e==`number`&&t(Math.round(e*1e3))},min:500/1e3,max:x/1e3,step:.1,showValue:!0,formatValue:e=>`${(typeof e==`number`?e:e[0]).toFixed(1)}s`,"aria-label":`Pause before reply`})})}),(0,I.jsx)($,{label:`Interrupt sensitivity`,description:`How easily talking over the assistant interrupts it. Lower it if the assistant cuts itself off on background noise or filler words; raise it to interrupt more quickly.`,isDefault:n===null,children:(0,I.jsx)(`div`,{className:`max-w-xs`,children:(0,I.jsx)(f,{items:ae,value:n??`medium`,onChange:r,ariaLabel:`Interrupt sensitivity`})})}),i&&(0,I.jsx)(`div`,{children:(0,I.jsx)(a,{variant:`outlined`,onClick:()=>{t(null),r(null)},children:`Reset to defaults`})})]})})}function $({label:e,description:t,isDefault:n,children:r}){return(0,I.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,I.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,I.jsx)(`span`,{className:`text-body-medium-lighter text-[var(--content-default)]`,children:e}),n&&(0,I.jsx)(`span`,{className:`shrink-0 rounded-full bg-[var(--surface-active)] px-2 py-0.5 text-body-small-default text-[var(--content-tertiary)]`,children:`Default`})]}),(0,I.jsx)(`p`,{className:G,children:t}),r]})}export{K as VoicePage};
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{a as t,c as n,i as r}from"./local-settings-C-dW2vkq.js";import{t as i}from"./react-BFJW0bSv.js";import{t as a}from"./button-Dy5001j6.js";import{m as o,n as s,t as c}from"./chunk-5KNZJZUH-Bsoom5--.js";import{t as l}from"./jsx-runtime-D3ZM-ToX.js";import{r as u}from"./middleware-HE0NLvPl.js";import{t as d}from"./info-vgPTIsGI.js";import{j as f,k as p}from"./src-D89CNeuT.js";import{t as m}from"./toggle-lfnhEAcN.js";import{t as h}from"./dropdown-BCfnSdIZ.js";import{t as g}from"./assistant-identity-store-DIyVo8LV.js";import{u as _}from"./routes-vE-2hncW.js";import{C as v,S as y,T as b,a as x,b as ee,c as te,f as S,g as C,h as w,m as T,p as E,s as D,t as O,w as k,x as ne}from"./voice-picker-modal-BXMvQihh.js";import{a as A,r as j,t as M}from"./voice-list-DJeZeHuA.js";import{t as N}from"./use-active-assistant-id-Cjbsk2Q3.js";import{t as P}from"./detail-card-CwtjhGfi.js";var F=e(i(),1),I=l();function L(){let e=N(),{available:t,voices:n,currentModel:r}=A(e),i=n.find(e=>e.model===r)??n[0],[o,s]=(0,F.useState)(!1),l=g.use.name(),u=l?`${l}’s Voice`:`Voice`;return t&&i?(0,I.jsxs)(P,{title:u,subtitle:j,children:[(0,I.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,I.jsx)(M,{description:i.description,className:`min-w-0 text-body-medium-lighter text-[var(--content-default)]`}),(0,I.jsx)(a,{variant:`outlined`,onClick:()=>s(!0),className:`shrink-0`,children:`Change`})]}),(0,I.jsx)(O,{assistantId:e,open:o,onOpenChange:s})]}):(0,I.jsx)(P,{title:u,children:(0,I.jsxs)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:[`Your assistant speaks through a provider you configured yourself. Set its voice on`,` `,(0,I.jsx)(c,{to:`${_.settings.ai}#text-to-speech`,className:`text-[var(--primary-base)] hover:underline`,children:`Models & Services`}),`.`]})})}var R=[{prefKey:`showUserTranscript`,label:`Show the words you say`,description:`Live transcription while you speak.`},{prefKey:`showAssistantTranscript`,label:`Show the words the assistant says`,description:`Text alongside the spoken response.`}],z=`We recommend keeping both off to start. It feels more like a real conversation.`;function B(){return(0,I.jsx)(`span`,{className:`shrink-0 rounded-full bg-[var(--surface-active)] px-2 py-0.5 text-body-small-default text-[var(--content-tertiary)]`,children:`Recommended off`})}function V({label:e,description:t,showBadge:n,checked:r,onChange:i}){return(0,I.jsxs)(`div`,{className:`flex items-center justify-between gap-3 py-1`,children:[(0,I.jsxs)(`div`,{className:`min-w-0`,children:[(0,I.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,I.jsx)(`span`,{className:`truncate text-body-medium-lighter text-[var(--content-default)]`,children:e}),n?(0,I.jsx)(B,{}):null]}),t?(0,I.jsx)(`div`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:t}):null]}),(0,I.jsx)(m,{checked:r,onChange:i,"aria-label":e})]})}function H({showDescription:e=!1,showRecommendedBadge:t=!1}){let n=D.use.showUserTranscript(),r=D.use.showAssistantTranscript(),i=D.use.setShowUserTranscript(),a=D.use.setShowAssistantTranscript(),o={showUserTranscript:{checked:n,onChange:i},showAssistantTranscript:{checked:r,onChange:a}};return(0,I.jsx)(I.Fragment,{children:R.map(n=>{let r=o[n.prefKey];return(0,I.jsx)(V,{label:n.label,description:e?n.description:void 0,showBadge:t,checked:r.checked,onChange:r.onChange},n.prefKey)})})}var U=[{label:`Ctrl`,activator:{kind:`modifierOnly`,modifiers:[`control`]}},{label:`Alt`,activator:{kind:`modifierOnly`,modifiers:[`option`]}},{label:`Ctrl+Shift`,activator:{kind:`modifierOnly`,modifiers:[`control`,`shift`]}}],W={label:`Fn`,activator:E},G=`text-body-small-default text-[var(--content-tertiary)]`;function K(){let[e]=o(),t=e.get(`tab`);return t===`sounds`?(0,I.jsx)(s,{replace:!0,to:_.settings.sounds}):t===`services`?(0,I.jsx)(s,{replace:!0,to:_.settings.ai}):(0,I.jsx)(q,{})}function q(){return(0,I.jsxs)(`div`,{className:`flex flex-col gap-8`,children:[(0,I.jsxs)(Y,{heading:`Output`,description:`How your assistant sounds.`,children:[(0,I.jsx)(L,{}),(0,I.jsx)(J,{})]}),(0,I.jsxs)(Y,{heading:`Input`,description:`How you talk to your assistant.`,children:[(0,I.jsx)(re,{}),(0,I.jsx)(ie,{}),(0,I.jsx)(oe,{})]}),(0,I.jsx)(Y,{heading:`Captions`,children:(0,I.jsx)(X,{})})]})}function J(){let{available:e}=A(N());return e?(0,I.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5 px-1 text-body-small-default text-[var(--content-tertiary)]`,children:[(0,I.jsx)(d,{className:`h-3.5 w-3.5 shrink-0 text-[var(--content-quiet)]`}),(0,I.jsx)(`span`,{children:`Want to use your own API key for STT or TTS, or set a custom voice?`}),(0,I.jsxs)(c,{to:`${_.settings.ai}#text-to-speech`,className:`inline-flex items-center gap-1 text-[var(--content-secondary)] underline decoration-[var(--border-element)] underline-offset-2 hover:text-[var(--content-default)]`,children:[`Set it up in Models & Services`,(0,I.jsx)(u,{className:`h-3 w-3`})]})]}):null}function Y({heading:e,description:t,children:n}){return(0,I.jsxs)(`section`,{className:`flex flex-col gap-4`,children:[(0,I.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,I.jsx)(`h2`,{className:`text-label-medium-default uppercase tracking-wide text-[var(--content-tertiary)]`,children:e}),t&&(0,I.jsx)(`p`,{className:`text-body-small-default text-[var(--content-quiet)]`,children:t})]}),n]})}function X(){return(0,I.jsx)(P,{title:`Captions`,subtitle:`Show live text of what you and the assistant say during a voice conversation.`,children:(0,I.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,I.jsx)(H,{showDescription:!0}),(0,I.jsx)(`p`,{className:`${G} pt-1`,children:z})]})})}var Z=``;function re(){let[e,r]=(0,F.useState)([]),[i,o]=(0,F.useState)(!1),[s,c]=(0,F.useState)(()=>b()),l=(0,F.useCallback)(async()=>{if(navigator.mediaDevices?.enumerateDevices)try{let e=(await navigator.mediaDevices.enumerateDevices()).filter(e=>e.kind===`audioinput`);o(e.length>0&&e.every(e=>!e.label)),r(e.filter(e=>e.deviceId!==``&&e.deviceId!==`default`&&e.deviceId!==`communications`))}catch{r([]),o(!1)}},[]),u=(0,F.useCallback)(async()=>{try{let e=await navigator.mediaDevices.getUserMedia({audio:!0});for(let t of e.getTracks())t.stop()}catch{}l()},[l]);(0,F.useEffect)(()=>{l();let e=navigator.mediaDevices;if(!e?.addEventListener)return;let t=()=>void l();return e.addEventListener(`devicechange`,t),()=>e.removeEventListener(`devicechange`,t)},[l]);let d=(0,F.useMemo)(()=>[{value:Z,label:`System Default`},...e.map((e,t)=>({value:e.deviceId,label:e.label||`Microphone ${t+1}`}))],[e]),f=(0,F.useCallback)(e=>{c(e),e===Z?t(k):n(k,e)},[]);return(0,I.jsx)(P,{title:`Microphone`,subtitle:`Which input device is used for dictation and voice conversations.`,children:(0,I.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,I.jsx)(`div`,{className:`max-w-xs`,children:(0,I.jsx)(h,{options:d,value:d.some(e=>e.value===s)?s:Z,onChange:f,"aria-label":`Microphone`})}),i&&(0,I.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,I.jsx)(a,{variant:`outlined`,onClick:u,children:`Allow Microphone Access`}),(0,I.jsx)(`span`,{className:G,children:`Grant microphone access to list your available input devices.`})]})]})})}function ie(){let e=te(),[t,i]=(0,F.useState)(()=>{let t=r(T,``);return t?ne(t,{preserveFunction:e}):e?W.activator:{kind:`off`}}),[a,o]=(0,F.useState)(!1),[s,c]=(0,F.useState)([]),l=(0,F.useRef)(null),u=(0,F.useRef)(!1),f=(0,F.useMemo)(()=>e?[W,...U]:U,[e]),p=t.kind!==`off`,h=p&&!e,g=(0,F.useCallback)(e=>{i(e),n(T,y(e)),o(!1),c([])},[]),_=(0,F.useCallback)(()=>{o(!0),c([]),u.current=!1,requestAnimationFrame(()=>{l.current?.focus()})},[]),b=(0,F.useCallback)(()=>{o(!1),c([]),u.current=!1},[]),x=(0,F.useCallback)(t=>{let n=[];return e&&t.getModifierState(`Fn`)&&n.push(`function`),t.ctrlKey&&n.push(`control`),t.altKey&&n.push(`option`),t.shiftKey&&n.push(`shift`),t.metaKey&&n.push(`command`),n},[e]),D=(0,F.useCallback)(e=>{if(e.preventDefault(),e.stopPropagation(),e.key===`Escape`){b();return}let t=x(e),n=e.key;if(n===`Control`||n===`Alt`||n===`Shift`||n===`Meta`||n===`Fn`){c(t.includes(`function`)?E.modifiers:v(t));return}if(t.includes(`function`)){g(E);return}u.current=!0,g({kind:`key`,label:n.length===1?n.toUpperCase():n,modifiers:t})},[b,x,g]),O=(0,F.useCallback)(e=>{if(!a)return;e.preventDefault(),e.stopPropagation();let t=e.key;if(t===`Control`||t===`Alt`||t===`Shift`||t===`Meta`||t===`Fn`){if(u.current){u.current=!1,c([]);return}x(e).length===0&&s.length>0&&g({kind:`modifierOnly`,modifiers:s})}},[x,a,s,g]);(0,F.useEffect)(()=>{if(!a)return;let e=e=>{l.current&&!l.current.contains(e.target)&&b()};return window.addEventListener(`mousedown`,e),()=>window.removeEventListener(`mousedown`,e)},[b,a]);let k=p&&!f.some(e=>C(e.activator,t));return(0,I.jsx)(P,{title:`Push to Talk`,subtitle:`Hold the activation key to dictate text or start a voice conversation.`,children:(0,I.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,I.jsx)(m,{checked:p,onChange:n=>{n?t.kind===`off`&&g(e?W.activator:S):g({kind:`off`})},label:`Enable Push to Talk`}),p&&(0,I.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,I.jsx)(`span`,{className:G,children:`Activation Key:`}),(0,I.jsxs)(`div`,{ref:l,tabIndex:a?0:-1,onKeyDown:a?D:void 0,onKeyUp:a?O:void 0,className:`flex flex-wrap items-center gap-2 focus:outline-none`,children:[f.map(e=>{let n=C(e.activator,t);return(0,I.jsx)(Q,{label:e.label,selected:n,onClick:()=>g(e.activator)},e.label)}),a?(0,I.jsx)(Q,{label:s.length>0?ee(s):`Press any key…`,selected:!0,recording:!0,onClick:b}):(0,I.jsx)(Q,{label:k?w(t):`Custom`,selected:k,onClick:_})]}),h&&(0,I.jsxs)(`div`,{className:`flex items-start gap-1 pt-1 text-body-small-default text-[var(--content-quiet)]`,children:[(0,I.jsx)(d,{className:`mt-0.5 h-3 w-3 shrink-0`}),(0,I.jsx)(`span`,{children:`Push-to-Talk only works while this tab is focused, and browsers may intercept some shortcuts (e.g. Ctrl+T) before the page can see them. For always-on PTT, use the Vellum desktop app.`})]})]})]})})}function Q({label:e,selected:t,recording:n=!1,onClick:r}){return(0,I.jsxs)(`button`,{type:`button`,onClick:r,className:[`inline-flex items-center gap-2 rounded-lg border px-3 py-1.5 text-body-medium-lighter transition-colors`,`border-[var(--border-subtle)]`,t?`bg-[var(--surface-active)]`:`bg-[var(--surface-lift)] hover:bg-[var(--surface-hover)]`,n?`animate-pulse`:``].filter(Boolean).join(` `),children:[(0,I.jsx)(`span`,{className:[`inline-block h-2.5 w-2.5 rounded-full border`,t?`border-[var(--primary-base)] bg-[var(--primary-base)]`:`border-[var(--border-element)]`].join(` `)}),(0,I.jsx)(`span`,{className:`text-[var(--content-default)]`,children:e})]})}var ae=[{value:`low`,label:`Low`},{value:`medium`,label:`Medium`},{value:`high`,label:`High`}];function oe(){let e=D.use.pauseBeforeReplyMs(),t=D.use.setPauseBeforeReplyMs(),n=D.use.interruptSensitivity(),r=D.use.setInterruptSensitivity(),i=e!==null||n!==null;return(0,I.jsx)(P,{title:`Turn taking`,subtitle:`Where your turn ends and the assistant's begins. Applies to hands-free conversations — under push to talk, the key decides.`,children:(0,I.jsxs)(`div`,{className:`flex flex-col gap-5`,children:[(0,I.jsx)($,{label:`Pause before reply`,description:`How long the assistant waits after you stop speaking before it replies. A longer pause lets you gather your thoughts mid-sentence without being cut off.`,isDefault:e===null,children:(0,I.jsx)(`div`,{className:`max-w-xs`,children:(0,I.jsx)(p,{value:(e??1200)/1e3,onValueChange:e=>{typeof e==`number`&&t(Math.round(e*1e3))},min:500/1e3,max:x/1e3,step:.1,showValue:!0,formatValue:e=>`${(typeof e==`number`?e:e[0]).toFixed(1)}s`,"aria-label":`Pause before reply`})})}),(0,I.jsx)($,{label:`Interrupt sensitivity`,description:`How easily talking over the assistant interrupts it. Lower it if the assistant cuts itself off on background noise or filler words; raise it to interrupt more quickly.`,isDefault:n===null,children:(0,I.jsx)(`div`,{className:`max-w-xs`,children:(0,I.jsx)(f,{items:ae,value:n??`medium`,onChange:r,ariaLabel:`Interrupt sensitivity`})})}),i&&(0,I.jsx)(`div`,{children:(0,I.jsx)(a,{variant:`outlined`,onClick:()=>{t(null),r(null)},children:`Reset to defaults`})})]})})}function $({label:e,description:t,isDefault:n,children:r}){return(0,I.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,I.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,I.jsx)(`span`,{className:`text-body-medium-lighter text-[var(--content-default)]`,children:e}),n&&(0,I.jsx)(`span`,{className:`shrink-0 rounded-full bg-[var(--surface-active)] px-2 py-0.5 text-body-small-default text-[var(--content-tertiary)]`,children:`Default`})]}),(0,I.jsx)(`p`,{className:G,children:t}),r]})}export{K as VoicePage};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e}from"./local-settings-C-dW2vkq.js";import{t}from"./button-Dy5001j6.js";import{t as n}from"./chunk-5KNZJZUH-Bsoom5--.js";import{t as r}from"./jsx-runtime-D3ZM-ToX.js";import{t as i}from"./cn-CJf7MmLX.js";import{n as a,t as o}from"./middleware-HE0NLvPl.js";import"./src-
|
|
1
|
+
import{i as e}from"./local-settings-C-dW2vkq.js";import{t}from"./button-Dy5001j6.js";import{t as n}from"./chunk-5KNZJZUH-Bsoom5--.js";import{t as r}from"./jsx-runtime-D3ZM-ToX.js";import{t as i}from"./cn-CJf7MmLX.js";import{n as a,t as o}from"./middleware-HE0NLvPl.js";import"./src-D89CNeuT.js";import{t as s}from"./modal-BR4CUFBd.js";import{n as c,t as l}from"./create-selectors-Qo7kcikX.js";import{t as u}from"./is-electron-m5eeGBnd.js";import{u as d}from"./routes-vE-2hncW.js";import{a as f,n as p}from"./voice-list-DJeZeHuA.js";var m=`vellum:voice:inputDeviceId`;function h(){return e(m,``)}function g(){let e=h();return{echoCancellation:!0,noiseSuppression:!0,autoGainControl:!0,...e?{deviceId:{exact:e}}:{}}}async function _(){let e=g();try{return await navigator.mediaDevices.getUserMedia({audio:e})}catch(t){if(e.deviceId&&t instanceof DOMException&&t.name===`OverconstrainedError`){let{deviceId:t,...n}=e;return navigator.mediaDevices.getUserMedia({audio:n})}throw t}}var v=`vellum:voice:activationKey`,y={kind:`modifierOnly`,modifiers:[`control`]},b={kind:`modifierOnly`,modifiers:[`function`]},x=[`function`,`control`,`option`,`shift`,`command`],S={function:`Fn`,control:`Ctrl`,option:`Alt`,shift:`Shift`,command:`Cmd`};function C(e){return Array.from(new Set(e)).sort((e,t)=>x.indexOf(e)-x.indexOf(t))}function w(e){return C(e).map(e=>S[e]).join(`+`)}function T(e){if(e.kind===`off`)return`Off`;if(e.kind===`modifierOnly`)return w(e.modifiers);let t=w(e.modifiers);return t?`${t}+${e.label}`:e.label}function E(e,t){if(e.kind!==t.kind)return!1;if(e.kind===`off`||t.kind===`off`)return!0;let n=C(e.modifiers),r=C(t.modifiers);return n.length!==r.length||n.some((e,t)=>e!==r[t])?!1:e.kind===`key`&&t.kind===`key`?e.label===t.label:!0}function D(e){return JSON.stringify(e)}function O(e){return e.kind===`modifierOnly`&&e.modifiers.length===1&&e.modifiers[0]===`function`}function k(e){return typeof e==`string`&&x.includes(e)}function A(e,t){let n=e.filter(k);return t.preserveFunction&&n.includes(`function`)?b.modifiers:C(t.preserveFunction?n:n.filter(e=>e!==`function`))}function j(e,t={}){if(!e)return y;if(e===`fn`)return{kind:`modifierOnly`,modifiers:t.preserveFunction?b.modifiers:y.modifiers};if(e===`ctrl`)return y;if(e===`fn_shift`)return{kind:`modifierOnly`,modifiers:t.preserveFunction?b.modifiers:[`shift`]};if(e===`off`)return{kind:`off`};try{let n=JSON.parse(e);if(n.kind===`off`)return{kind:`off`};if(n.kind===`modifierOnly`&&Array.isArray(n.modifiers)){let e=A(n.modifiers,t);return e.length===0?y:{kind:`modifierOnly`,modifiers:e}}if(n.kind===`key`&&typeof n.label==`string`&&Array.isArray(n.modifiers))return{kind:`key`,label:n.label,modifiers:A(n.modifiers,t)}}catch{}return y}function M(e){let t=[];return e.ctrlKey&&t.push(`control`),e.altKey&&t.push(`option`),e.shiftKey&&t.push(`shift`),e.metaKey&&t.push(`command`),t}function N(e){return e===`Control`||e===`Alt`||e===`Shift`||e===`Meta`||e===`Fn`}function P(e,t){if(e.length!==t.length)return!1;let n=C(e),r=C(t);return n.every((e,t)=>e===r[t])}function F(e,t){if(t.kind===`off`||t.modifiers.includes(`function`))return!1;let n=M(e),r=t.modifiers.filter(e=>e!==`function`);return t.kind===`modifierOnly`?N(e.key)?P(n,r):!1:(e.key.length===1?e.key.toUpperCase():e.key)===t.label?P(n,r):!1}function I(e,t){if(t.kind===`off`||t.modifiers.includes(`function`))return!1;let n=t.modifiers.filter(e=>e!==`function`);return t.kind===`modifierOnly`?!!(e.key===`Control`&&n.includes(`control`)||e.key===`Alt`&&n.includes(`option`)||e.key===`Shift`&&n.includes(`shift`)||e.key===`Meta`&&n.includes(`command`)):(e.key.length===1?e.key.toUpperCase():e.key)===t.label}function L(){return u()}function R(){return u()&&typeof window.vellum?.helper?.hotkey?.fnPushToTalk==`function`&&typeof window.vellum?.helper?.hotkey?.onEvent==`function`}async function z(e){if(!R())return!1;try{return(await window.vellum.helper.hotkey.fnPushToTalk(e)).ok}catch{return!1}}function B(e){return R()?window.vellum.helper.hotkey.onEvent(e):()=>void 0}var V=1200,H=3e3,U=`medium`,W={high:100,medium:250,low:600};function G(e){return W[e]}function K(e){return Number.isFinite(e)?Math.round(Math.min(H,Math.max(500,e))):V}var q={showUserTranscript:!1,showAssistantTranscript:!1,firstRunSeen:!1,pauseBeforeReplyMs:null,interruptSensitivity:null},J=`vellum:voice-prefs`,Y=c()(a((e,t)=>({...q,setShowUserTranscript:t=>e({showUserTranscript:t}),setShowAssistantTranscript:t=>e({showAssistantTranscript:t}),markFirstRunSeen:()=>{t().firstRunSeen||e({firstRunSeen:!0})},setPauseBeforeReplyMs:t=>e({pauseBeforeReplyMs:t===null?null:K(t)}),setInterruptSensitivity:t=>e({interruptSensitivity:t})}),{name:J,storage:o(()=>localStorage),partialize:e=>({showUserTranscript:e.showUserTranscript,showAssistantTranscript:e.showAssistantTranscript,firstRunSeen:e.firstRunSeen,pauseBeforeReplyMs:e.pauseBeforeReplyMs,interruptSensitivity:e.interruptSensitivity})})),X=l(Y);typeof window<`u`&&window.addEventListener(`storage`,e=>{e.key===J&&Y.persist.rehydrate()});var Z=r();function Q({className:e}){return(0,Z.jsxs)(`p`,{className:i(`text-label-small-default text-[var(--content-tertiary)]`,e),children:[`Speech providers, transcription, and API keys live in`,` `,(0,Z.jsx)(n,{to:`${d.settings.ai}#text-to-speech`,className:`text-[var(--content-secondary)] underline decoration-[var(--border-element)] underline-offset-2 hover:text-[var(--content-default)]`,children:`Models & Services`}),`.`]})}function $({assistantId:e,open:t,onOpenChange:n}){return(0,Z.jsx)(s.Root,{open:t,onOpenChange:n,children:(0,Z.jsx)(s.Content,{size:`md`,children:(0,Z.jsx)(ee,{assistantId:e,onDone:()=>n(!1)})})})}function ee({assistantId:e,onDone:n}){let{available:r,currentModel:i,selectModel:a,selecting:o}=f(e);return(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(s.Header,{children:[(0,Z.jsx)(s.Title,{children:`Voices`}),r&&(0,Z.jsx)(s.Description,{children:`Uses Vellum credits, through providers like ElevenLabs and Deepgram.`})]}),(0,Z.jsx)(s.Body,{children:(0,Z.jsx)(p,{assistantId:e,filterBySource:!0,value:i,onChange:a})}),(0,Z.jsxs)(s.Footer,{className:`items-center justify-between gap-3`,children:[(0,Z.jsx)(Q,{}),(0,Z.jsx)(t,{variant:`primary`,onClick:n,disabled:o,className:`shrink-0`,children:`Done`})]})]})}export{C,_ as E,D as S,h as T,F as _,H as a,w as b,L as c,R as d,y as f,E as g,T as h,V as i,z as l,v as m,Q as n,G as o,b as p,U as r,X as s,$ as t,B as u,I as v,m as w,j as x,O as y};
|
package/dist/assets/{weather-forecast-display-D5OkfHyL.js → weather-forecast-display-D2sn4QD4.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./jsx-runtime-D3ZM-ToX.js";import{c as r,d as i,f as a,i as o,l as s,n as c,o as l,p as u,r as d,s as f,t as p,u as m}from"./surface-parse-helpers-CEJ3tQ9Q.js";import{t as h}from"./cloud-RlApB3rO.js";import{t as g}from"./moon-DSdti3GO.js";import{t as _}from"./sun-BKEPYS7Q.js";import{t as v}from"./misc-CAQM4FGM.js";var y=e(t(),1),b={"sun.max.fill":{icon:_,className:`text-orange-500`},"cloud.sun.fill":{icon:s,className:`text-amber-400`},"moon.fill":{icon:g,className:`text-blue-400`},"cloud.moon.fill":{icon:i,className:`text-blue-400`},"cloud.fill":{icon:h,className:`text-stone-400`},"cloud.rain.fill":{icon:m,className:`text-blue-400`},snowflake:{icon:f,className:`text-blue-300`},"cloud.bolt.fill":{icon:a,className:`text-orange-500`},"cloud.fog.fill":{icon:u,className:`text-stone-400`}},x={sunny:{icon:_,className:`text-orange-500`},clear:{icon:_,className:`text-orange-500`},"partly cloudy":{icon:s,className:`text-amber-400`},"mostly sunny":{icon:s,className:`text-amber-400`},cloudy:{icon:h,className:`text-stone-400`},overcast:{icon:h,className:`text-stone-400`},rainy:{icon:m,className:`text-blue-400`},rain:{icon:m,className:`text-blue-400`},drizzle:{icon:m,className:`text-blue-400`},snow:{icon:f,className:`text-blue-300`},snowy:{icon:f,className:`text-blue-300`},thunderstorm:{icon:a,className:`text-orange-500`},thunder:{icon:a,className:`text-orange-500`},foggy:{icon:u,className:`text-stone-400`},fog:{icon:u,className:`text-stone-400`},mist:{icon:u,className:`text-stone-400`},hazy:{icon:u,className:`text-stone-400`},night:{icon:g,className:`text-blue-400`},"mainly clear":{icon:_,className:`text-orange-500`},"mostly cloudy":{icon:h,className:`text-stone-400`},breezy:{icon:l,className:`text-stone-400`},windy:{icon:l,className:`text-stone-400`},cool:{icon:h,className:`text-stone-400`},warm:{icon:_,className:`text-orange-500`},hot:{icon:_,className:`text-orange-500`},cold:{icon:f,className:`text-blue-300`},"cold snap":{icon:f,className:`text-blue-300`},"warm, mostly sunny":{icon:s,className:`text-amber-400`},"cooler, breezy":{icon:l,className:`text-stone-400`}},S={icon:h,className:`text-stone-400`};function C(e){let t=b[e];if(t)return t;let n=e.toLowerCase(),r=x[n];if(r)return r;for(let[e,t]of Object.entries(x))if(n.includes(e))return t;return S}function w(e){if(typeof e==`string`){let t=e.match(/^(\d+)\s*mph\s*(.*)/i);if(t)return{speed:Number(t[1]),direction:t[2]?.trim()||void 0}}return{}}function T(e){let t;if(typeof e.location==`string`)t=e.location;else{let n=d(e.location);n&&typeof n.name==`string`&&(t=n.name)}if(!t)return null;let n=d(e.current),r=c(n?.temp)??c(e.currentTemp)??c(e.temperature)??c(e.temp),i=c(n?.feelsLike)??c(n?.feels_like)??c(n?.apparentTemperature)??c(e.feelsLike)??c(e.feels_like)??c(e.apparentTemperature),a=o(n?.condition)??o(e.condition),s=c(n?.humidity)??c(e.humidity),l=w(n?.wind??e.wind),u=c(n?.windSpeed)??c(n?.wind_speed)??c(e.windSpeed)??c(e.wind_speed)??l.speed,f=o(n?.windDirection)??o(n?.wind_direction)??o(e.windDirection)??o(e.wind_direction)??l.direction,m=d(e.units),h=o(m?.temperature)??o(n?.unit)??o(e.unit)??`F`,g=o(m?.speed)??o(e.windUnit)??o(e.wind_unit),_=p(e.hourly).map((e,t)=>({id:o(e.id)??String(t),time:o(e.time)??``,icon:o(e.icon)??o(e.condition)??`cloud.fill`,temp:c(e.tempC)??c(e.temp)??c(e.temperature),tempC:c(e.tempC)})),v=p([e.forecast,e.daily,e.days].find(Array.isArray)).map((e,t)=>({id:o(e.id)??String(t),day:o(e.day)??o(e.date),dayLabel:o(e.dayLabel)??o(e.date),icon:o(e.icon)??o(e.condition)??`cloud.fill`,low:c(e.low),high:c(e.high),lowC:c(e.lowC),highC:c(e.highC),precip:c(e.precip)??c(e.precipitation)??c(e.precipitationProbability),condition:o(e.condition)}));return{location:t,currentTemp:r,feelsLike:i,condition:a,humidity:s,windSpeed:u,windDirection:f,windUnit:g,unit:h,hourly:_.length>0?_:void 0,forecast:v.length>0?v:void 0}}function E(e){return e*9/5+32}function D(e){return(e-32)*5/9}function O(e,t,n){if(e===void 0)return null;let r=e;return t&&!n&&(r=D(e)),!t&&n&&(r=E(e)),`${Math.round(r)}`}function k(e,t,n){return e.tempC===void 0?e.temp===void 0?null:O(e.temp,t,n):O(e.tempC,!1,n)}function A(e,t,n){return e.lowC===void 0?O(e.low,t,n):O(e.lowC,!1,n)}function j(e,t,n){return e.highC===void 0?O(e.high,t,n):O(e.highC,!1,n)}var M=n();function N({icon:e,size:t=20}){let{icon:n,className:r}=C(e);return(0,M.jsx)(n,{width:t,height:t,className:r})}function P({useFahrenheit:e,onToggle:t}){return(0,M.jsxs)(`div`,{className:`flex overflow-hidden rounded-md border border-[var(--border-element)]`,children:[(0,M.jsx)(`button`,{type:`button`,onClick:()=>t(!0),className:v(`px-2 py-0.5 text-body-small-default transition-colors`,e?`bg-[var(--primary-base)] text-[var(--content-inset)]`:`bg-transparent text-[var(--content-quiet)]`),children:`°F`}),(0,M.jsx)(`button`,{type:`button`,onClick:()=>t(!1),className:v(`px-2 py-0.5 text-body-small-default transition-colors`,e?`bg-transparent text-[var(--content-quiet)]`:`bg-[var(--primary-base)] text-[var(--content-inset)]`),children:`°C`})]})}function F({data:e,sourceIsFahrenheit:t,useFahrenheit:n,onToggle:i}){let a=e.location,o=O(e.currentTemp,t,n),s=O(e.feelsLike,t,n),c=n?`F`:`C`,u=e.forecast?.[0],d=u?j(u,t,n):null,f=u?A(u,t,n):null,p=null;return e.windSpeed!==void 0&&(p=`${Math.round(e.windSpeed)} ${e.windUnit??`mph`}`,e.windDirection&&(p=`${e.windDirection} ${p}`)),(0,M.jsxs)(`div`,{children:[(0,M.jsxs)(`div`,{className:`flex items-start justify-between`,children:[(0,M.jsxs)(`div`,{children:[(0,M.jsx)(`div`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:a}),o!==null&&(0,M.jsxs)(`div`,{className:`mt-1 text-4xl font-light text-[var(--content-default)]`,children:[o,`°`,c]}),e.condition&&(0,M.jsx)(`div`,{className:`mt-0.5 text-body-small-default text-[var(--content-quiet)]`,children:e.condition})]}),(0,M.jsx)(P,{useFahrenheit:n,onToggle:i})]}),(0,M.jsxs)(`div`,{className:`mt-2 flex flex-wrap items-center gap-3`,children:[s!==null&&(0,M.jsxs)(`span`,{className:`text-body-small-default text-[var(--content-quiet)]`,children:[`Feels like `,s,`°`]}),d!==null&&f!==null&&(0,M.jsxs)(`span`,{className:`text-body-small-default text-[var(--content-quiet)]`,children:[`H:`,d,`° L:`,f,`°`]}),p&&(0,M.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-full bg-[var(--tag-bg-neutral)] px-2 py-0.5 text-label-medium-default text-[var(--content-tertiary)]`,children:[(0,M.jsx)(l,{width:12,height:12}),p]}),e.humidity!==void 0&&(0,M.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-full bg-[var(--tag-bg-neutral)] px-2 py-0.5 text-label-medium-default text-[var(--content-tertiary)]`,children:[(0,M.jsx)(r,{width:12,height:12}),e.humidity,`%`]})]})]})}function I({hourly:e,sourceIsFahrenheit:t,useFahrenheit:n}){return(0,M.jsx)(`div`,{className:`mt-3 border-t border-[var(--border-element)] pt-3`,children:(0,M.jsx)(`div`,{className:`flex gap-3 overflow-x-auto`,children:e.map((e,r)=>{let i=e.time.toLowerCase()===`now`,a=k(e,t,n);return(0,M.jsxs)(`div`,{className:`flex min-w-[3rem] shrink-0 flex-col items-center gap-1`,children:[(0,M.jsx)(`span`,{className:i?`text-body-small-emphasised text-[var(--content-default)]`:`text-label-medium-default text-[var(--content-quiet)]`,children:i?`Now`:e.time}),(0,M.jsx)(N,{icon:e.icon,size:18}),a!==null&&(0,M.jsxs)(`span`,{className:`text-body-small-default text-[var(--content-default)]`,children:[a,`°`]})]},e.id??r)})})})}function L({forecast:e,currentTemp:t,sourceIsFahrenheit:n,useFahrenheit:r}){let{globalMin:i,globalMax:a}=(0,y.useMemo)(()=>{let t=1/0,n=-1/0;for(let r of e){let e=r.lowC??r.low,i=r.highC??r.high;e!==void 0&&e<t&&(t=e),i!==void 0&&i>n&&(n=i)}return{globalMin:t===1/0?0:t,globalMax:n===-1/0?100:n}},[e]),o=a-i||1;return(0,M.jsx)(`div`,{className:`mt-3 border-t border-[var(--border-element)] pt-3`,children:(0,M.jsx)(`div`,{className:`flex flex-col gap-2`,children:e.map((e,s)=>{let c=e.dayLabel??e.day??`Day ${s+1}`,l=c.toLowerCase()===`today`,u=A(e,n,r),d=j(e,n,r),f=e.precip,p=e.lowC??e.low??i,m=e.highC??e.high??a,h=(p-i)/o*100,g=(m-i)/o*100,_=Math.max(g-h,2),y=null;if(l&&t!==void 0){let r=(e.lowC!==void 0||e.highC!==void 0)&&n?(t-32)*5/9:t;y=m===p?50:(Math.max(p,Math.min(m,r))-p)/(m-p)*100}return(0,M.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,M.jsx)(`span`,{className:v(`w-12 shrink-0 truncate text-body-small-default`,l?`text-[var(--content-default)]`:`text-[var(--content-quiet)]`),children:c}),(0,M.jsxs)(`div`,{className:`flex w-10 shrink-0 items-center justify-center gap-0.5`,children:[(0,M.jsx)(N,{icon:e.icon,size:16}),f!==void 0&&f>0&&(0,M.jsxs)(`span`,{className:`text-label-small-default text-blue-400`,children:[Math.round(f),`%`]})]}),(0,M.jsx)(`span`,{className:`w-7 shrink-0 text-right text-body-small-default text-[var(--content-faint)]`,children:u===null?`--`:`${u}°`}),(0,M.jsxs)(`div`,{className:`relative h-1.5 flex-1 overflow-hidden rounded-full bg-[var(--border-subtle)]`,children:[(0,M.jsx)(`div`,{className:`absolute top-0 h-full rounded-full bg-[var(--primary-base)]`,style:{left:`${h}%`,width:`${_}%`}}),y!==null&&(0,M.jsx)(`div`,{className:`absolute top-1/2 h-2.5 w-2.5 -translate-x-1/2 -translate-y-1/2 rounded-full border-2 border-[var(--aux-white)] bg-[var(--aux-white)] shadow-sm`,style:{left:`${h+y/100*_}%`}})]}),(0,M.jsx)(`span`,{className:`w-7 shrink-0 text-right text-body-small-default text-[var(--content-default)]`,children:d===null?`--`:`${d}°`})]},e.id??s)})})})}function R({templateData:e,fallback:t}){let n=(0,y.useMemo)(()=>T(e),[e]),r=n?.unit?.toUpperCase()===`F`||n?.unit?.toLowerCase()===`fahrenheit`,[i,a]=(0,y.useState)(null),o=i??r;return!n||n.currentTemp===void 0&&!n.forecast?.length?t??null:(0,M.jsxs)(`div`,{className:`mt-3`,children:[(0,M.jsx)(F,{data:n,sourceIsFahrenheit:r,useFahrenheit:o,onToggle:a}),n.hourly&&n.hourly.length>0&&(0,M.jsx)(I,{hourly:n.hourly,sourceIsFahrenheit:r,useFahrenheit:o}),n.forecast&&n.forecast.length>0&&(0,M.jsx)(L,{forecast:n.forecast,currentTemp:n.currentTemp,sourceIsFahrenheit:r,useFahrenheit:o})]})}export{R as WeatherForecastDisplay};
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./jsx-runtime-D3ZM-ToX.js";import{c as r,d as i,f as a,i as o,l as s,n as c,o as l,p as u,r as d,s as f,t as p,u as m}from"./surface-parse-helpers-CEJ3tQ9Q.js";import{t as h}from"./cloud-RlApB3rO.js";import{t as g}from"./moon-BJzODLTY.js";import{t as _}from"./sun-Dw0t1n1O.js";import{t as v}from"./misc-DckBb5zz.js";var y=e(t(),1),b={"sun.max.fill":{icon:_,className:`text-orange-500`},"cloud.sun.fill":{icon:s,className:`text-amber-400`},"moon.fill":{icon:g,className:`text-blue-400`},"cloud.moon.fill":{icon:i,className:`text-blue-400`},"cloud.fill":{icon:h,className:`text-stone-400`},"cloud.rain.fill":{icon:m,className:`text-blue-400`},snowflake:{icon:f,className:`text-blue-300`},"cloud.bolt.fill":{icon:a,className:`text-orange-500`},"cloud.fog.fill":{icon:u,className:`text-stone-400`}},x={sunny:{icon:_,className:`text-orange-500`},clear:{icon:_,className:`text-orange-500`},"partly cloudy":{icon:s,className:`text-amber-400`},"mostly sunny":{icon:s,className:`text-amber-400`},cloudy:{icon:h,className:`text-stone-400`},overcast:{icon:h,className:`text-stone-400`},rainy:{icon:m,className:`text-blue-400`},rain:{icon:m,className:`text-blue-400`},drizzle:{icon:m,className:`text-blue-400`},snow:{icon:f,className:`text-blue-300`},snowy:{icon:f,className:`text-blue-300`},thunderstorm:{icon:a,className:`text-orange-500`},thunder:{icon:a,className:`text-orange-500`},foggy:{icon:u,className:`text-stone-400`},fog:{icon:u,className:`text-stone-400`},mist:{icon:u,className:`text-stone-400`},hazy:{icon:u,className:`text-stone-400`},night:{icon:g,className:`text-blue-400`},"mainly clear":{icon:_,className:`text-orange-500`},"mostly cloudy":{icon:h,className:`text-stone-400`},breezy:{icon:l,className:`text-stone-400`},windy:{icon:l,className:`text-stone-400`},cool:{icon:h,className:`text-stone-400`},warm:{icon:_,className:`text-orange-500`},hot:{icon:_,className:`text-orange-500`},cold:{icon:f,className:`text-blue-300`},"cold snap":{icon:f,className:`text-blue-300`},"warm, mostly sunny":{icon:s,className:`text-amber-400`},"cooler, breezy":{icon:l,className:`text-stone-400`}},S={icon:h,className:`text-stone-400`};function C(e){let t=b[e];if(t)return t;let n=e.toLowerCase(),r=x[n];if(r)return r;for(let[e,t]of Object.entries(x))if(n.includes(e))return t;return S}function w(e){if(typeof e==`string`){let t=e.match(/^(\d+)\s*mph\s*(.*)/i);if(t)return{speed:Number(t[1]),direction:t[2]?.trim()||void 0}}return{}}function T(e){let t;if(typeof e.location==`string`)t=e.location;else{let n=d(e.location);n&&typeof n.name==`string`&&(t=n.name)}if(!t)return null;let n=d(e.current),r=c(n?.temp)??c(e.currentTemp)??c(e.temperature)??c(e.temp),i=c(n?.feelsLike)??c(n?.feels_like)??c(n?.apparentTemperature)??c(e.feelsLike)??c(e.feels_like)??c(e.apparentTemperature),a=o(n?.condition)??o(e.condition),s=c(n?.humidity)??c(e.humidity),l=w(n?.wind??e.wind),u=c(n?.windSpeed)??c(n?.wind_speed)??c(e.windSpeed)??c(e.wind_speed)??l.speed,f=o(n?.windDirection)??o(n?.wind_direction)??o(e.windDirection)??o(e.wind_direction)??l.direction,m=d(e.units),h=o(m?.temperature)??o(n?.unit)??o(e.unit)??`F`,g=o(m?.speed)??o(e.windUnit)??o(e.wind_unit),_=p(e.hourly).map((e,t)=>({id:o(e.id)??String(t),time:o(e.time)??``,icon:o(e.icon)??o(e.condition)??`cloud.fill`,temp:c(e.tempC)??c(e.temp)??c(e.temperature),tempC:c(e.tempC)})),v=p([e.forecast,e.daily,e.days].find(Array.isArray)).map((e,t)=>({id:o(e.id)??String(t),day:o(e.day)??o(e.date),dayLabel:o(e.dayLabel)??o(e.date),icon:o(e.icon)??o(e.condition)??`cloud.fill`,low:c(e.low),high:c(e.high),lowC:c(e.lowC),highC:c(e.highC),precip:c(e.precip)??c(e.precipitation)??c(e.precipitationProbability),condition:o(e.condition)}));return{location:t,currentTemp:r,feelsLike:i,condition:a,humidity:s,windSpeed:u,windDirection:f,windUnit:g,unit:h,hourly:_.length>0?_:void 0,forecast:v.length>0?v:void 0}}function E(e){return e*9/5+32}function D(e){return(e-32)*5/9}function O(e,t,n){if(e===void 0)return null;let r=e;return t&&!n&&(r=D(e)),!t&&n&&(r=E(e)),`${Math.round(r)}`}function k(e,t,n){return e.tempC===void 0?e.temp===void 0?null:O(e.temp,t,n):O(e.tempC,!1,n)}function A(e,t,n){return e.lowC===void 0?O(e.low,t,n):O(e.lowC,!1,n)}function j(e,t,n){return e.highC===void 0?O(e.high,t,n):O(e.highC,!1,n)}var M=n();function N({icon:e,size:t=20}){let{icon:n,className:r}=C(e);return(0,M.jsx)(n,{width:t,height:t,className:r})}function P({useFahrenheit:e,onToggle:t}){return(0,M.jsxs)(`div`,{className:`flex overflow-hidden rounded-md border border-[var(--border-element)]`,children:[(0,M.jsx)(`button`,{type:`button`,onClick:()=>t(!0),className:v(`px-2 py-0.5 text-body-small-default transition-colors`,e?`bg-[var(--primary-base)] text-[var(--content-inset)]`:`bg-transparent text-[var(--content-quiet)]`),children:`°F`}),(0,M.jsx)(`button`,{type:`button`,onClick:()=>t(!1),className:v(`px-2 py-0.5 text-body-small-default transition-colors`,e?`bg-transparent text-[var(--content-quiet)]`:`bg-[var(--primary-base)] text-[var(--content-inset)]`),children:`°C`})]})}function F({data:e,sourceIsFahrenheit:t,useFahrenheit:n,onToggle:i}){let a=e.location,o=O(e.currentTemp,t,n),s=O(e.feelsLike,t,n),c=n?`F`:`C`,u=e.forecast?.[0],d=u?j(u,t,n):null,f=u?A(u,t,n):null,p=null;return e.windSpeed!==void 0&&(p=`${Math.round(e.windSpeed)} ${e.windUnit??`mph`}`,e.windDirection&&(p=`${e.windDirection} ${p}`)),(0,M.jsxs)(`div`,{children:[(0,M.jsxs)(`div`,{className:`flex items-start justify-between`,children:[(0,M.jsxs)(`div`,{children:[(0,M.jsx)(`div`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:a}),o!==null&&(0,M.jsxs)(`div`,{className:`mt-1 text-4xl font-light text-[var(--content-default)]`,children:[o,`°`,c]}),e.condition&&(0,M.jsx)(`div`,{className:`mt-0.5 text-body-small-default text-[var(--content-quiet)]`,children:e.condition})]}),(0,M.jsx)(P,{useFahrenheit:n,onToggle:i})]}),(0,M.jsxs)(`div`,{className:`mt-2 flex flex-wrap items-center gap-3`,children:[s!==null&&(0,M.jsxs)(`span`,{className:`text-body-small-default text-[var(--content-quiet)]`,children:[`Feels like `,s,`°`]}),d!==null&&f!==null&&(0,M.jsxs)(`span`,{className:`text-body-small-default text-[var(--content-quiet)]`,children:[`H:`,d,`° L:`,f,`°`]}),p&&(0,M.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-full bg-[var(--tag-bg-neutral)] px-2 py-0.5 text-label-medium-default text-[var(--content-tertiary)]`,children:[(0,M.jsx)(l,{width:12,height:12}),p]}),e.humidity!==void 0&&(0,M.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-full bg-[var(--tag-bg-neutral)] px-2 py-0.5 text-label-medium-default text-[var(--content-tertiary)]`,children:[(0,M.jsx)(r,{width:12,height:12}),e.humidity,`%`]})]})]})}function I({hourly:e,sourceIsFahrenheit:t,useFahrenheit:n}){return(0,M.jsx)(`div`,{className:`mt-3 border-t border-[var(--border-element)] pt-3`,children:(0,M.jsx)(`div`,{className:`flex gap-3 overflow-x-auto`,children:e.map((e,r)=>{let i=e.time.toLowerCase()===`now`,a=k(e,t,n);return(0,M.jsxs)(`div`,{className:`flex min-w-[3rem] shrink-0 flex-col items-center gap-1`,children:[(0,M.jsx)(`span`,{className:i?`text-body-small-emphasised text-[var(--content-default)]`:`text-label-medium-default text-[var(--content-quiet)]`,children:i?`Now`:e.time}),(0,M.jsx)(N,{icon:e.icon,size:18}),a!==null&&(0,M.jsxs)(`span`,{className:`text-body-small-default text-[var(--content-default)]`,children:[a,`°`]})]},e.id??r)})})})}function L({forecast:e,currentTemp:t,sourceIsFahrenheit:n,useFahrenheit:r}){let{globalMin:i,globalMax:a}=(0,y.useMemo)(()=>{let t=1/0,n=-1/0;for(let r of e){let e=r.lowC??r.low,i=r.highC??r.high;e!==void 0&&e<t&&(t=e),i!==void 0&&i>n&&(n=i)}return{globalMin:t===1/0?0:t,globalMax:n===-1/0?100:n}},[e]),o=a-i||1;return(0,M.jsx)(`div`,{className:`mt-3 border-t border-[var(--border-element)] pt-3`,children:(0,M.jsx)(`div`,{className:`flex flex-col gap-2`,children:e.map((e,s)=>{let c=e.dayLabel??e.day??`Day ${s+1}`,l=c.toLowerCase()===`today`,u=A(e,n,r),d=j(e,n,r),f=e.precip,p=e.lowC??e.low??i,m=e.highC??e.high??a,h=(p-i)/o*100,g=(m-i)/o*100,_=Math.max(g-h,2),y=null;if(l&&t!==void 0){let r=(e.lowC!==void 0||e.highC!==void 0)&&n?(t-32)*5/9:t;y=m===p?50:(Math.max(p,Math.min(m,r))-p)/(m-p)*100}return(0,M.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,M.jsx)(`span`,{className:v(`w-12 shrink-0 truncate text-body-small-default`,l?`text-[var(--content-default)]`:`text-[var(--content-quiet)]`),children:c}),(0,M.jsxs)(`div`,{className:`flex w-10 shrink-0 items-center justify-center gap-0.5`,children:[(0,M.jsx)(N,{icon:e.icon,size:16}),f!==void 0&&f>0&&(0,M.jsxs)(`span`,{className:`text-label-small-default text-blue-400`,children:[Math.round(f),`%`]})]}),(0,M.jsx)(`span`,{className:`w-7 shrink-0 text-right text-body-small-default text-[var(--content-faint)]`,children:u===null?`--`:`${u}°`}),(0,M.jsxs)(`div`,{className:`relative h-1.5 flex-1 overflow-hidden rounded-full bg-[var(--border-subtle)]`,children:[(0,M.jsx)(`div`,{className:`absolute top-0 h-full rounded-full bg-[var(--primary-base)]`,style:{left:`${h}%`,width:`${_}%`}}),y!==null&&(0,M.jsx)(`div`,{className:`absolute top-1/2 h-2.5 w-2.5 -translate-x-1/2 -translate-y-1/2 rounded-full border-2 border-[var(--aux-white)] bg-[var(--aux-white)] shadow-sm`,style:{left:`${h+y/100*_}%`}})]}),(0,M.jsx)(`span`,{className:`w-7 shrink-0 text-right text-body-small-default text-[var(--content-default)]`,children:d===null?`--`:`${d}°`})]},e.id??s)})})})}function R({templateData:e,fallback:t}){let n=(0,y.useMemo)(()=>T(e),[e]),r=n?.unit?.toUpperCase()===`F`||n?.unit?.toLowerCase()===`fahrenheit`,[i,a]=(0,y.useState)(null),o=i??r;return!n||n.currentTemp===void 0&&!n.forecast?.length?t??null:(0,M.jsxs)(`div`,{className:`mt-3`,children:[(0,M.jsx)(F,{data:n,sourceIsFahrenheit:r,useFahrenheit:o,onToggle:a}),n.hourly&&n.hourly.length>0&&(0,M.jsx)(I,{hourly:n.hourly,sourceIsFahrenheit:r,useFahrenheit:o}),n.forecast&&n.forecast.length>0&&(0,M.jsx)(L,{forecast:n.forecast,currentTemp:n.currentTemp,sourceIsFahrenheit:r,useFahrenheit:o})]})}export{R as WeatherForecastDisplay};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./dist-
|
|
1
|
+
import{n as e}from"./dist-BwAT3VYQ.js";var t=class extends e{async getSafeAreaInsets(){return{insets:{top:0,left:0,right:0,bottom:0}}}async getStatusBarHeight(){return{statusBarHeight:0}}setImmersiveNavigationBar(){throw this.unimplemented(`Method not supported on Web.`)}unsetImmersiveNavigationBar(){throw this.unimplemented(`Method not supported on Web.`)}};export{t as SafeAreaWeb};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e,r as t}from"./dist-
|
|
1
|
+
import{n as e,r as t}from"./dist-BwAT3VYQ.js";import{n}from"./definitions-PikNVFdS.js";function r(e){let t=e.split(`/`).filter(e=>e!==`.`),n=[];return t.forEach(e=>{e===`..`&&n.length>0&&n[n.length-1]!==`..`?n.pop():n.push(e)}),n.join(`/`)}function i(e,t){e=r(e),t=r(t);let n=e.split(`/`),i=t.split(`/`);return e!==t&&n.every((e,t)=>e===i[t])}var a=class r extends e{constructor(){super(...arguments),this.DB_VERSION=1,this.DB_NAME=`Disc`,this._writeCmds=[`add`,`put`,`delete`],this.downloadFile=async e=>{let n=t(e,e.webFetchExtra),r=await fetch(e.url,n),i;if(!e.progress)i=await r.blob();else if(!r?.body)i=new Blob;else{let t=r.body.getReader(),n=0,a=[],o=r.headers.get(`content-type`),s=parseInt(r.headers.get(`content-length`)||`0`,10);for(;;){let{done:r,value:i}=await t.read();if(r)break;a.push(i),n+=i?.length||0;let o={url:e.url,bytes:n,contentLength:s};this.notifyListeners(`progress`,o)}let c=new Uint8Array(n),l=0;for(let e of a)e!==void 0&&(c.set(e,l),l+=e.length);i=new Blob([c.buffer],{type:o||void 0})}return{path:(await this.writeFile({path:e.path,directory:e.directory??void 0,recursive:e.recursive??!1,data:i})).uri,blob:i}}}readFileInChunks(e,t){throw this.unavailable(`Method not implemented.`)}async initDb(){if(this._db!==void 0)return this._db;if(!(`indexedDB`in window))throw this.unavailable(`This browser doesn't support IndexedDB`);return new Promise((e,t)=>{let n=indexedDB.open(this.DB_NAME,this.DB_VERSION);n.onupgradeneeded=r.doUpgrade,n.onsuccess=()=>{this._db=n.result,e(n.result)},n.onerror=()=>t(n.error),n.onblocked=()=>{console.warn(`db blocked`)}})}static doUpgrade(e){let t=e.target.result;switch(e.oldVersion){default:t.objectStoreNames.contains(`FileStorage`)&&t.deleteObjectStore(`FileStorage`),t.createObjectStore(`FileStorage`,{keyPath:`path`}).createIndex(`by_folder`,`folder`)}}async dbRequest(e,t){let n=this._writeCmds.indexOf(e)===-1?`readonly`:`readwrite`;return this.initDb().then(r=>new Promise((i,a)=>{let o=r.transaction([`FileStorage`],n).objectStore(`FileStorage`)[e](...t);o.onsuccess=()=>i(o.result),o.onerror=()=>a(o.error)}))}async dbIndexRequest(e,t,n){let r=this._writeCmds.indexOf(t)===-1?`readonly`:`readwrite`;return this.initDb().then(i=>new Promise((a,o)=>{let s=i.transaction([`FileStorage`],r).objectStore(`FileStorage`).index(e)[t](...n);s.onsuccess=()=>a(s.result),s.onerror=()=>o(s.error)}))}getPath(e,t){let n=t===void 0?``:t.replace(/^[/]+|[/]+$/g,``),r=``;return e!==void 0&&(r+=`/`+e),t!==``&&(r+=`/`+n),r}async clear(){(await this.initDb()).transaction([`FileStorage`],`readwrite`).objectStore(`FileStorage`).clear()}async readFile(e){let t=this.getPath(e.directory,e.path),n=await this.dbRequest(`get`,[t]);if(n===void 0)throw Error(`File does not exist.`);return{data:n.content?n.content:``}}async writeFile(e){let t=this.getPath(e.directory,e.path),n=e.data,r=e.encoding,i=e.recursive,a=await this.dbRequest(`get`,[t]);if(a&&a.type===`directory`)throw Error(`The supplied path is a directory.`);let o=t.substr(0,t.lastIndexOf(`/`));if(await this.dbRequest(`get`,[o])===void 0){let t=o.indexOf(`/`,1);if(t!==-1){let n=o.substr(t);await this.mkdir({path:n,directory:e.directory,recursive:i})}}if(!r&&!(n instanceof Blob)&&(n=n.indexOf(`,`)>=0?n.split(`,`)[1]:n,!this.isBase64String(n)))throw Error(`The supplied data is not valid base64 content.`);let s=Date.now(),c={path:t,folder:o,type:`file`,size:n instanceof Blob?n.size:n.length,ctime:s,mtime:s,content:n};return await this.dbRequest(`put`,[c]),{uri:c.path}}async appendFile(e){let t=this.getPath(e.directory,e.path),n=e.data,r=e.encoding,i=t.substr(0,t.lastIndexOf(`/`)),a=Date.now(),o=a,s=await this.dbRequest(`get`,[t]);if(s&&s.type===`directory`)throw Error(`The supplied path is a directory.`);if(await this.dbRequest(`get`,[i])===void 0){let t=i.indexOf(`/`,1);if(t!==-1){let n=i.substr(t);await this.mkdir({path:n,directory:e.directory,recursive:!0})}}if(!r&&!this.isBase64String(n))throw Error(`The supplied data is not valid base64 content.`);if(s!==void 0){if(s.content instanceof Blob)throw Error(`The occupied entry contains a Blob object which cannot be appended to.`);n=s.content!==void 0&&!r?btoa(atob(s.content)+atob(n)):s.content+n,o=s.ctime}let c={path:t,folder:i,type:`file`,size:n.length,ctime:o,mtime:a,content:n};await this.dbRequest(`put`,[c])}async deleteFile(e){let t=this.getPath(e.directory,e.path);if(await this.dbRequest(`get`,[t])===void 0)throw Error(`File does not exist.`);if((await this.dbIndexRequest(`by_folder`,`getAllKeys`,[IDBKeyRange.only(t)])).length!==0)throw Error(`Folder is not empty.`);await this.dbRequest(`delete`,[t])}async mkdir(e){let t=this.getPath(e.directory,e.path),n=e.recursive,r=t.substr(0,t.lastIndexOf(`/`)),i=(t.match(/\//g)||[]).length,a=await this.dbRequest(`get`,[r]),o=await this.dbRequest(`get`,[t]);if(i===1)throw Error(`Cannot create Root directory`);if(o!==void 0)throw Error(`Current directory does already exist.`);if(!n&&i!==2&&a===void 0)throw Error(`Parent directory must exist`);if(n&&i!==2&&a===void 0){let t=r.substr(r.indexOf(`/`,1));await this.mkdir({path:t,directory:e.directory,recursive:n})}let s=Date.now(),c={path:t,folder:r,type:`directory`,size:0,ctime:s,mtime:s};await this.dbRequest(`put`,[c])}async rmdir(e){let{path:t,directory:n,recursive:r}=e,i=this.getPath(n,t),a=await this.dbRequest(`get`,[i]);if(a===void 0)throw Error(`Folder does not exist.`);if(a.type!==`directory`)throw Error(`Requested path is not a directory`);let o=await this.readdir({path:t,directory:n});if(o.files.length!==0&&!r)throw Error(`Folder is not empty`);for(let e of o.files){let i=`${t}/${e.name}`;(await this.stat({path:i,directory:n})).type===`file`?await this.deleteFile({path:i,directory:n}):await this.rmdir({path:i,directory:n,recursive:r})}await this.dbRequest(`delete`,[i])}async readdir(e){let t=this.getPath(e.directory,e.path),n=await this.dbRequest(`get`,[t]);if(e.path!==``&&n===void 0)throw Error(`Folder does not exist.`);let r=await this.dbIndexRequest(`by_folder`,`getAllKeys`,[IDBKeyRange.only(t)]);return{files:await Promise.all(r.map(async e=>{let n=await this.dbRequest(`get`,[e]);return n===void 0&&(n=await this.dbRequest(`get`,[e+`/`])),{name:e.substring(t.length+1),type:n.type,size:n.size,ctime:n.ctime,mtime:n.mtime,uri:n.path}}))}}async getUri(e){let t=this.getPath(e.directory,e.path),n=await this.dbRequest(`get`,[t]);return n===void 0&&(n=await this.dbRequest(`get`,[t+`/`])),{uri:n?.path||t}}async stat(e){let t=this.getPath(e.directory,e.path),n=await this.dbRequest(`get`,[t]);if(n===void 0&&(n=await this.dbRequest(`get`,[t+`/`])),n===void 0)throw Error(`Entry does not exist.`);return{name:n.path.substring(t.length+1),type:n.type,size:n.size,ctime:n.ctime,mtime:n.mtime,uri:n.path}}async rename(e){await this._copy(e,!0)}async copy(e){return this._copy(e,!1)}async requestPermissions(){return{publicStorage:`granted`}}async checkPermissions(){return{publicStorage:`granted`}}async _copy(e,t=!1){let{toDirectory:r}=e,{to:a,from:o,directory:s}=e;if(!a||!o)throw Error(`Both to and from must be provided`);r||=s;let c=this.getPath(s,o),l=this.getPath(r,a);if(c===l)return{uri:l};if(i(c,l))throw Error(`To path cannot contain the from path`);let u;try{u=await this.stat({path:a,directory:r})}catch{let e=a.split(`/`);e.pop();let t=e.join(`/`);if(e.length>0&&(await this.stat({path:t,directory:r})).type!==`directory`)throw Error(`Parent directory of the to path is a file`)}if(u&&u.type===`directory`)throw Error(`Cannot overwrite a directory with a file`);let d=await this.stat({path:o,directory:s}),f=async(e,t,n)=>{let i=this.getPath(r,e),a=await this.dbRequest(`get`,[i]);a.ctime=t,a.mtime=n,await this.dbRequest(`put`,[a])},p=d.ctime?d.ctime:Date.now();switch(d.type){case`file`:{let e=await this.readFile({path:o,directory:s});t&&await this.deleteFile({path:o,directory:s});let i;!(e.data instanceof Blob)&&!this.isBase64String(e.data)&&(i=n.UTF8);let c=await this.writeFile({path:a,directory:r,data:e.data,encoding:i});return t&&await f(a,p,d.mtime),c}case`directory`:{if(u)throw Error(`Cannot move a directory over an existing object`);try{await this.mkdir({path:a,directory:r,recursive:!1}),t&&await f(a,p,d.mtime)}catch{}let e=(await this.readdir({path:o,directory:s})).files;for(let n of e)await this._copy({from:`${o}/${n.name}`,to:`${a}/${n.name}`,directory:s,toDirectory:r},t);t&&await this.rmdir({path:o,directory:s})}}return{uri:l}}isBase64String(e){try{return btoa(atob(e))==e}catch{return!1}}};a._debug=!0;export{a as FilesystemWeb};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./dist-
|
|
1
|
+
import{n as e}from"./dist-BwAT3VYQ.js";var t=class extends e{constructor(){super(...arguments),this.pending=[],this.deliveredNotifications=[],this.hasNotificationSupport=()=>{if(!(`Notification`in window)||!Notification.requestPermission)return!1;if(Notification.permission!==`granted`)try{new Notification(``)}catch(e){if(e instanceof Error&&e.name===`TypeError`)return!1}return!0}}async getDeliveredNotifications(){let e=[];for(let t of this.deliveredNotifications){let n={title:t.title,id:parseInt(t.tag),body:t.body};e.push(n)}return{notifications:e}}async removeDeliveredNotifications(e){for(let t of e.notifications){let e=this.deliveredNotifications.find(e=>e.tag===String(t.id));e?.close(),this.deliveredNotifications=this.deliveredNotifications.filter(()=>!e)}}async removeAllDeliveredNotifications(){for(let e of this.deliveredNotifications)e.close();this.deliveredNotifications=[]}async createChannel(){throw this.unimplemented(`Not implemented on web.`)}async deleteChannel(){throw this.unimplemented(`Not implemented on web.`)}async listChannels(){throw this.unimplemented(`Not implemented on web.`)}async schedule(e){if(!this.hasNotificationSupport())throw this.unavailable(`Notifications not supported in this browser.`);for(let t of e.notifications)this.sendNotification(t);return{notifications:e.notifications.map(e=>({id:e.id}))}}async getPending(){return{notifications:this.pending}}async registerActionTypes(){throw this.unimplemented(`Not implemented on web.`)}async cancel(e){this.pending=this.pending.filter(t=>!e.notifications.find(e=>e.id===t.id))}async areEnabled(){let{display:e}=await this.checkPermissions();return{value:e===`granted`}}async changeExactNotificationSetting(){throw this.unimplemented(`Not implemented on web.`)}async checkExactNotificationSetting(){throw this.unimplemented(`Not implemented on web.`)}async requestPermissions(){if(!this.hasNotificationSupport())throw this.unavailable(`Notifications not supported in this browser.`);return{display:this.transformNotificationPermission(await Notification.requestPermission())}}async checkPermissions(){if(!this.hasNotificationSupport())throw this.unavailable(`Notifications not supported in this browser.`);return{display:this.transformNotificationPermission(Notification.permission)}}transformNotificationPermission(e){switch(e){case`granted`:return`granted`;case`denied`:return`denied`;default:return`prompt`}}sendPending(){let e=[],t=new Date().getTime();for(let n of this.pending)n.schedule?.at&&n.schedule.at.getTime()<=t&&(this.buildNotification(n),e.push(n));this.pending=this.pending.filter(t=>!e.find(e=>e===t))}sendNotification(e){if(e.schedule?.at){let t=e.schedule.at.getTime()-new Date().getTime();this.pending.push(e),setTimeout(()=>{this.sendPending()},t);return}this.buildNotification(e)}buildNotification(e){let t=new Notification(e.title,{body:e.body,tag:String(e.id)});return t.addEventListener(`click`,this.onClick.bind(this,e),!1),t.addEventListener(`show`,this.onShow.bind(this,e),!1),t.addEventListener(`close`,()=>{this.deliveredNotifications=this.deliveredNotifications.filter(()=>!this)},!1),this.deliveredNotifications.push(t),t}onClick(e){let t={actionId:`tap`,notification:e};this.notifyListeners(`localNotificationActionPerformed`,t)}onShow(e){this.notifyListeners(`localNotificationReceived`,e)}};export{t as LocalNotificationsWeb};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./dist-
|
|
1
|
+
import{n as e}from"./dist-BwAT3VYQ.js";function t(){let e=window.navigator.connection||window.navigator.mozConnection||window.navigator.webkitConnection,t=`unknown`,n=e?e.type||e.effectiveType:null;if(n&&typeof n==`string`)switch(n){case`bluetooth`:case`cellular`:t=`cellular`;break;case`none`:t=`none`;break;case`ethernet`:case`wifi`:case`wimax`:t=`wifi`;break;case`other`:case`unknown`:t=`unknown`;break;case`slow-2g`:case`2g`:case`3g`:t=`cellular`;break;case`4g`:t=`wifi`;break;default:break}return t}var n=class extends e{constructor(){super(),this.handleOnline=()=>{let e={connected:!0,connectionType:t()};this.notifyListeners(`networkStatusChange`,e)},this.handleOffline=()=>{this.notifyListeners(`networkStatusChange`,{connected:!1,connectionType:`none`})},typeof window<`u`&&(window.addEventListener(`online`,this.handleOnline),window.addEventListener(`offline`,this.handleOffline))}async getStatus(){if(!window.navigator)throw this.unavailable(`Browser does not support the Network Information API`);let e=window.navigator.onLine,n=t();return{connected:e,connectionType:e?n:`none`}}};new n;export{n as NetworkWeb};
|