@vellumai/web 0.11.0-staging.2 → 0.11.0
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-DPfyu3ET.js → AnimatePresence-xdH2KLtr.js} +1 -1
- package/dist/assets/{BundleConfirmPage-CChUOtcg.js → BundleConfirmPage-4StSZy-f.js} +1 -1
- package/dist/assets/{a2a-invite-pyBtaaeG.js → a2a-invite-C1xJNSGF.js} +1 -1
- package/dist/assets/{about-page-DGUK5p8j.js → about-page-C3tJLjvD.js} +1 -1
- package/dist/assets/access-B_b48snn.js +1 -0
- package/dist/assets/{account-page-D3ERiewh.js → account-page-BvXVc1IK.js} +1 -1
- package/dist/assets/{account-shell-Dk4aC-Ls.js → account-shell-D6aWpePp.js} +1 -1
- package/dist/assets/{acp-run-actions-BH8wuBAL.js → acp-run-actions-8ioRAI8C.js} +1 -1
- package/dist/assets/{acp-run-detail-panel-dqVK6rPq.js → acp-run-detail-panel-B8ULpnis.js} +1 -1
- package/dist/assets/{acp-run-store-B_eDLRwl.js → acp-run-store-CpH4OeOS.js} +1 -1
- package/dist/assets/{activity-steps-panel-xxl2hu3E.js → activity-steps-panel-D8fAVo9_.js} +1 -1
- package/dist/assets/{add-credential-modal-CY_--m8L.js → add-credential-modal-Cu6aAlhm.js} +1 -1
- package/dist/assets/{add-credits-modal-fT_gTTP5.js → add-credits-modal-BelWmezc.js} +1 -1
- package/dist/assets/{ai-page-B02NwVRu.js → ai-page-Dd-qECGn.js} +1 -1
- package/dist/assets/{animated-avatar-BcgncPkc.js → animated-avatar-DknFwi9-.js} +1 -1
- package/dist/assets/{api-C3QSs67k.js → api-BpGogBsg.js} +1 -1
- package/dist/assets/{api-LG8zI3nK.js → api-Coj5enET.js} +1 -1
- package/dist/assets/{api-key-screen-CvBdN6Ae.js → api-key-screen-BhynbUuC.js} +1 -1
- package/dist/assets/{app-card-CAaFL1oB.js → app-card-BF2l9ot8.js} +1 -1
- package/dist/assets/{app-info-DefDjPEl.js → app-info-fS0zIUcN.js} +1 -1
- package/dist/assets/{archive-redirect-page-BH7h0Lk7.js → archive-redirect-page-DOF2veAy.js} +1 -1
- package/dist/assets/{assistant-feature-flag-store-CAdgpPiS.js → assistant-feature-flag-store-B00tpY5e.js} +1 -1
- package/dist/assets/assistant-identity-store-6On4WZ62.js +1 -0
- package/dist/assets/{assistant-status-panel-BTnD-jhG.js → assistant-status-panel-D2PXdHw0.js} +1 -1
- package/dist/assets/{auth-store-5qq59BAN.js → auth-store-EmLZOAkN.js} +2 -2
- package/dist/assets/{avatar-random-BMSYTcJK.js → avatar-random-DjmD5llT.js} +1 -1
- package/dist/assets/{avatar-renderer-ClUVcQmf.js → avatar-renderer-BrNjnimz.js} +1 -1
- package/dist/assets/{background-task-actions-DmP5s0oO.js → background-task-actions-B1bLmbnw.js} +1 -1
- package/dist/assets/{background-task-detail-panel-BCYAElGc.js → background-task-detail-panel-56ZpprL7.js} +1 -1
- package/dist/assets/{background-task-store-DMP8ByUq.js → background-task-store-C5J8CFan.js} +1 -1
- package/dist/assets/billing-page-CbelI-Ui.js +3 -0
- package/dist/assets/billing-redirect-page-BIfv18MY.js +1 -0
- package/dist/assets/{bookmarks-page-D_Jr-a4Q.js → bookmarks-page-BOhi-7gN.js} +1 -1
- package/dist/assets/{browser-CTZVDjOL.js → browser-DvKwnK9l.js} +2 -2
- package/dist/assets/{build-state-m0LQ5Iis.js → build-state-C_Hy9WqC.js} +1 -1
- package/dist/assets/calendar-RYdAv74D.js +1 -0
- package/dist/assets/{capture-error-Bj8_eutd.js → capture-error-Dj49ma74.js} +1 -1
- package/dist/assets/channels-page-route-CiOtL1JY.js +9 -0
- package/dist/assets/{chat-avatar-CvEA6z0H.js → chat-avatar-C9l3drVu.js} +1 -1
- package/dist/assets/{chat-layout-slots-store-BJfYGnd7.js → chat-layout-slots-store-KQz1WMKU.js} +1 -1
- package/dist/assets/{chat-markdown-message-rxPKNeTx.js → chat-markdown-message-9ogr9-mn.js} +2 -2
- package/dist/assets/{checkbox-CRmgkYah.js → checkbox-D7Eg2K35.js} +1 -1
- package/dist/assets/checkout-continuation-DmIXoV4L.js +1 -0
- package/dist/assets/checkout-page-2Xr9vx27.js +1 -0
- package/dist/assets/checkout-return-target-DQBOhh64.js +1 -0
- package/dist/assets/{client-feature-flag-store-CMncoan8.js → client-feature-flag-store-BdNCabm_.js} +1 -1
- package/dist/assets/{client-identity-DhkdvP5w.js → client-identity-yPmEu-I1.js} +1 -1
- package/dist/assets/{command-palette-BTaT__fo.js → command-palette-CzbYrcNM.js} +1 -1
- package/dist/assets/{command-palette-window-page-gq0zowBe.js → command-palette-window-page-CHQdRfhu.js} +1 -1
- package/dist/assets/{community-page-CsEKt9wX.js → community-page-_nhJqpCD.js} +1 -1
- package/dist/assets/{confirm-dialog-UYFm4osC.js → confirm-dialog-D-Yjf2uS.js} +1 -1
- package/dist/assets/{connect-page-B4aTS7Yj.js → connect-page-DS-7aFqU.js} +1 -1
- package/dist/assets/consent-c8EJ3D2A.js +1 -0
- package/dist/assets/{consent-controls-OcgxuxS0.js → consent-controls-DVeAjj2Z.js} +1 -1
- package/dist/assets/{contacts-gateway-B6OrAmU3.js → contacts-gateway-BlLLBft6.js} +1 -1
- package/dist/assets/{contacts-page-route-DNoCUXE7.js → contacts-page-route-eTUOUhJL.js} +1 -1
- package/dist/assets/{conversation-cache-DKvwwWNo.js → conversation-cache-CqrrtLGM.js} +1 -1
- package/dist/assets/{conversation-list-fetchers-DM-Y61u5.js → conversation-list-fetchers-CavIngGf.js} +1 -1
- package/dist/assets/{conversation-navigation-DsN0hcpL.js → conversation-navigation-D8y9l5qL.js} +1 -1
- package/dist/assets/{conversation-queries-CWvK6RLK.js → conversation-queries-688XB7Bh.js} +1 -1
- package/dist/assets/{conversation-store-C--wWMNW.js → conversation-store-D_eevw7L.js} +1 -1
- package/dist/assets/{credential-entry-page-CHinHO85.js → credential-entry-page-C22Mw_ea.js} +1 -1
- package/dist/assets/{credentials-page-BsJFuOc9.js → credentials-page-da3G5EjN.js} +1 -1
- package/dist/assets/{danger-zone-redirect-page-SU45WI74.js → danger-zone-redirect-page-QELjAt0B.js} +1 -1
- package/dist/assets/{debug-page-BziypDgA.js → debug-page-BElAND4u.js} +2 -2
- package/dist/assets/{deploy-dialogs-DZSd5o9b.js → deploy-dialogs-DcxJ8zmL.js} +1 -1
- package/dist/assets/{deploy-store-D6snB1j5.js → deploy-store-Dxp-S0Jo.js} +1 -1
- package/dist/assets/{detail-card-Du8OuE3q.js → detail-card-BiNdiBiS.js} +1 -1
- package/dist/assets/{detail-panel-stop-button-BNuh6N0s.js → detail-panel-stop-button-CZuQfGZs.js} +1 -1
- package/dist/assets/{detail-shell-Cyqr5FXJ.js → detail-shell-DB1cQBnE.js} +1 -1
- package/dist/assets/{developer-page-QMFEIyBS.js → developer-page-Ck66ks9T.js} +1 -1
- package/dist/assets/{devices-redirect-page-B14wK98N.js → devices-redirect-page-B3KUr7o2.js} +1 -1
- package/dist/assets/{diagnostics-T_96Uyh5.js → diagnostics-9AhdBjYA.js} +1 -1
- package/dist/assets/{dictation-overlay-pePw7mLd.js → dictation-overlay-CRLGSCST.js} +1 -1
- package/dist/assets/{dictation-overlay-page-DtgaXzdF.js → dictation-overlay-page-DHI92ftK.js} +1 -1
- package/dist/assets/{dist-oCfq2a_n.js → dist-CXcArvGs.js} +1 -1
- package/dist/assets/{dist-DC9QooLF.js → dist-Ckcpfjj7.js} +1 -1
- package/dist/assets/{doctor-handoff-store-CYjL1S0n.js → doctor-handoff-store-DPviL0wb.js} +1 -1
- package/dist/assets/{document-viewer-container-B7TEDeV0.js → document-viewer-container-Dxc95Z_9.js} +2 -2
- package/dist/assets/{document-viewer-page-3Eq8L562.js → document-viewer-page-ClsAgnVX.js} +1 -1
- package/dist/assets/{edge-swipe-arbiter-store-CQnDi2yf.js → edge-swipe-arbiter-store-QUBer3EI.js} +1 -1
- package/dist/assets/effective-timezone-CnKC3vj0.js +1 -0
- package/dist/assets/emails-page-D1eq8Mcq.js +1 -0
- package/dist/assets/{environment-store-Bft0lpgv.js → environment-store-nuDZk7wN.js} +1 -1
- package/dist/assets/esm-0ejhUWK7.js +2 -0
- package/dist/assets/esm-BPFGl7Zp.js +2 -0
- package/dist/assets/esm-C2uShH10.js +2 -0
- package/dist/assets/esm-CAByj-hK.js +2 -0
- package/dist/assets/esm-Cn1fOTtj.js +2 -0
- package/dist/assets/esm-Df-J9imF.js +1 -0
- package/dist/assets/{esm-Dk6A-sQ0.js → esm-t0mP3xUe.js} +2 -2
- package/dist/assets/{eye-bbox-C_V87iLg.js → eye-bbox-u0VzlPuw.js} +1 -1
- package/dist/assets/{file-editor-phorJEVv.js → file-editor-plAxQBKk.js} +1 -1
- package/dist/assets/{file-markdown-DaflJFk7.js → file-markdown-B0zje_y3.js} +1 -1
- package/dist/assets/first-run-scope-Br96Z0Ol.js +1 -0
- package/dist/assets/{funnel-events-n2IVlwTo.js → funnel-events-BqvFi8Sp.js} +1 -1
- package/dist/assets/{general-page-lbkufqHg.js → general-page-mGY10EuY.js} +1 -1
- package/dist/assets/get-memory-stats-CdA2IhkV.js +1 -0
- package/dist/assets/{haptics-DvWjk9Fg.js → haptics-BTcSZuHP.js} +2 -2
- package/dist/assets/{hatching-screen-D81diZoa.js → hatching-screen-DwNw31vj.js} +1 -1
- package/dist/assets/{home-page-route-CHe8eoLz.js → home-page-route-B2ScoHEE.js} +1 -1
- package/dist/assets/{hosting-screen-D9atAksQ.js → hosting-screen-DKijoYxW.js} +1 -1
- package/dist/assets/identity-page-route-DD_U3Te5.js +7 -0
- package/dist/assets/{index-0f48hi7h.js → index-BEpJ8S2b.js} +3 -3
- package/dist/assets/{ingest-BizI657K.js → ingest-D3dRmJA9.js} +1 -1
- package/dist/assets/{inspect-page-COwvbHtX.js → inspect-page-DVgajY0Q.js} +3 -3
- package/dist/assets/{installed-plugins-query-Cgek0q7G.js → installed-plugins-query-s6Kf3pL8.js} +1 -1
- package/dist/assets/{integration-icon-dv-9Zzx3.js → integration-icon-CmjrEk0J.js} +1 -1
- package/dist/assets/{integrations-page-CJOBwxXp.js → integrations-page-BnPiOw9v.js} +1 -1
- package/dist/assets/intelligence-layout-DfdvpHl4.js +1 -0
- package/dist/assets/invalidate-memory-queries-D8VNhm2x.js +1 -0
- package/dist/assets/{invalidate-plugin-queries-C3NTXkCX.js → invalidate-plugin-queries-v7687-U8.js} +1 -1
- package/dist/assets/{keyboard-shortcuts-redirect-page-CBI_mZIL.js → keyboard-shortcuts-redirect-page-DMytLINR.js} +1 -1
- package/dist/assets/{latest-assistant-text-DOepZ_Io.js → latest-assistant-text-BIlBGS_i.js} +1 -1
- package/dist/assets/library-detail-page-BzvbB9Ud.js +1 -0
- package/dist/assets/{library-page-CNA794WY.js → library-page-DK2Dx8vo.js} +1 -1
- package/dist/assets/{list-row-B1wPb2Au.js → list-row-BOvxGO5h.js} +1 -1
- package/dist/assets/{local-mode-BTovbt13.js → local-mode-BKousn41.js} +1 -1
- package/dist/assets/{local-runtime-upgrade-Bqn3d7Q7.js → local-runtime-upgrade-COcJaRWH.js} +1 -1
- package/dist/assets/login-flow-BVUkpWP_.js +1 -0
- package/dist/assets/login-page-BR42WUVt.js +1 -0
- package/dist/assets/{logout-page-CpFeuLA_.js → logout-page-B8EOSvAV.js} +1 -1
- package/dist/assets/{logs-layout-BUiPeZ4I.js → logs-layout-DK6gVU21.js} +1 -1
- package/dist/assets/memory-page-route-CW1Fgh6X.js +2 -0
- package/dist/assets/{memory-router-playground-page-D4UIq8mw.js → memory-router-playground-page-B-6Yt7rp.js} +1 -1
- package/dist/assets/{menu-BvjhxZo7.js → menu-BKrcAFYk.js} +1 -1
- package/dist/assets/{messages-CFcAW4iz.js → messages-BuqyOjvT.js} +1 -1
- package/dist/assets/{metric-card-05a5slPx.js → metric-card-j9s-2nkl.js} +1 -1
- package/dist/assets/{mobile-sidebar-drawer-DtKU2vlu.js → mobile-sidebar-drawer-BLGt_R0d.js} +1 -1
- package/dist/assets/{modal-BR4CUFBd.js → modal-CoOkN7c0.js} +1 -1
- package/dist/assets/mutation-error-DoEwwcm3.js +1 -0
- package/dist/assets/native-anchor-BeAcmUWk.js +1 -0
- package/dist/assets/{native-biometric-BAMIyaSS.js → native-biometric-DUHF57O_.js} +1 -1
- package/dist/assets/{native-file-ySSv1sQ7.js → native-file-CfGNNXKe.js} +2 -2
- package/dist/assets/navigation-resolver-BIPJSTY5.js +1 -0
- package/dist/assets/{not-found-OqaWNmdx.js → not-found-Dh7Vxgjl.js} +1 -1
- package/dist/assets/{notice-BMK7xqUw.js → notice-B6naz_-V.js} +1 -1
- package/dist/assets/{notifications-page-ClfcJeLf.js → notifications-page-BB5kRj1s.js} +1 -1
- package/dist/assets/{oauth-complete-page-rVmA2Cl8.js → oauth-complete-page-01jk0-Xz.js} +1 -1
- package/dist/assets/{oauth-connection-utils-CWPUW4MK.js → oauth-connection-utils-DhmVsbum.js} +1 -1
- package/dist/assets/{oauth-popup-complete-page-DBsOvLES.js → oauth-popup-complete-page-DdR3sLCH.js} +1 -1
- package/dist/assets/{onboarding-layout-DLs1hfp_.js → onboarding-layout-CYU5QNQ5.js} +1 -1
- package/dist/assets/{onboarding-store-bZ2qYISk.js → onboarding-store-CHsGFmyD.js} +1 -1
- package/dist/assets/open-workspace-file-AUDky4i4.js +2 -0
- package/dist/assets/{page-empty-state-DT-tC1u6.js → page-empty-state-DTRXFoHj.js} +1 -1
- package/dist/assets/{page-shell-C7SUgga9.js → page-shell-Ns8K4aqQ.js} +1 -1
- package/dist/assets/{pairing-page-ZkFipOSH.js → pairing-page-COqX_5vT.js} +1 -1
- package/dist/assets/{panel-item-CrtoJCrd.js → panel-item-CQt19wOM.js} +1 -1
- package/dist/assets/{password-reset-page-iASQZawH.js → password-reset-page-Ck1m9qRW.js} +1 -1
- package/dist/assets/{personality-page-BJpW3UXD.js → personality-page-B0GpJMv5.js} +1 -1
- package/dist/assets/plans-page-GiIsWq7v.js +1 -0
- package/dist/assets/{platform-detection-XEAAu4c-.js → platform-detection-D1fBX4KG.js} +1 -1
- package/dist/assets/{platform-login-notice-CdYiKsE8.js → platform-login-notice-D_-ZVyk8.js} +1 -1
- package/dist/assets/platform-loopback-page-B68rydoU.js +1 -0
- package/dist/assets/{plugin-detail-page-Bx2wzKEf.js → plugin-detail-page-DGzmeb3j.js} +1 -1
- package/dist/assets/plugins-page-C7Xd3LTL.js +1 -0
- package/dist/assets/plugins-surface-BGSKlIwH.js +1 -0
- package/dist/assets/{popover-BRpYVASI.js → popover-CDZiHp1D.js} +1 -1
- package/dist/assets/{prefs-bw85lYLp.js → prefs-BplCYXxl.js} +1 -1
- package/dist/assets/{privacy-page-B0QN4qZO.js → privacy-page-NhPZ8klL.js} +1 -1
- package/dist/assets/{privacy-screen-vp4uUpm6.js → privacy-screen-hSx7ZwqA.js} +1 -1
- package/dist/assets/{provider-callback-page-BH6DES7c.js → provider-callback-page-Dkxi-_kI.js} +1 -1
- package/dist/assets/{provider-key-D2Nsf9zh.js → provider-key-B07UMm1T.js} +1 -1
- package/dist/assets/provider-signup-page-BapnHqaW.js +1 -0
- package/dist/assets/{provisioning-targets-BTjyR9nk.js → provisioning-targets-epeYMPhZ.js} +1 -1
- package/dist/assets/{quick-input-page-Dq-0BGrJ.js → quick-input-page-DnjOMI1n.js} +1 -1
- package/dist/assets/{react-query.gen-BC3STDmV.js → react-query.gen-9VRdubOj.js} +1 -1
- package/dist/assets/{react-query.gen-C5c1Acuq.js → react-query.gen-BeiAUt-2.js} +1 -1
- package/dist/assets/{remote-gateway-session-yRYdsfDx.js → remote-gateway-session-DJ1rzXEw.js} +1 -1
- package/dist/assets/{research-facts-B7Ev1zv0.js → research-facts-B5ItKoAK.js} +1 -1
- package/dist/assets/{research-mock-page-BJEpxdMv.js → research-mock-page-gbOSvFQL.js} +1 -1
- package/dist/assets/{research-onboarding-persistence-51lJoYJ2.js → research-onboarding-persistence-CgJDwdl9.js} +1 -1
- package/dist/assets/{research-onboarding-route-CFL3q__m.js → research-onboarding-route-DpgbtSS0.js} +1 -1
- package/dist/assets/{research-results-view-C4sIw2gK.js → research-results-view-WQsLxBlE.js} +1 -1
- package/dist/assets/{resolved-assistants-store-Dw5UuGyB.js → resolved-assistants-store-FEmi1gGu.js} +1 -1
- package/dist/assets/{retire-confirm-dialog-CsSY2-T8.js → retire-confirm-dialog-CFJqb_EM.js} +1 -1
- package/dist/assets/review-terms-screen-c4Vt5WqP.js +1 -0
- package/dist/assets/{risk-CdT92Vqr.js → risk-RmzL2Rk_.js} +2 -2
- package/dist/assets/routes-CsoiCk2y.js +1 -0
- package/dist/assets/routes-NQmj27cY.js +23 -0
- package/dist/assets/{runtime-upgrade-banner-DPqzKtZU.js → runtime-upgrade-banner-BM2b81eK.js} +2 -2
- package/dist/assets/{schedules-6hzhR_C_.js → schedules-BMEs36wC.js} +1 -1
- package/dist/assets/schedules-page-BkOE2joT.js +1 -0
- package/dist/assets/{sdk.gen-BIu1DgTs.js → sdk.gen-DHJ7Pbqq.js} +1 -1
- package/dist/assets/{security-redirect-page-4DKqyPsf.js → security-redirect-page-CMMujz_x.js} +1 -1
- package/dist/assets/{select-assistant-screen-CVV3iqMy.js → select-assistant-screen-S526udI9.js} +1 -1
- package/dist/assets/{setting-row-BwXKepmJ.js → setting-row-D10FtQcP.js} +1 -1
- package/dist/assets/{settings-CfuLzwIw.js → settings-PGZ9c_uo.js} +1 -1
- package/dist/assets/{settings-divider-Ro7lPCkV.js → settings-divider-CItcvksF.js} +1 -1
- package/dist/assets/settings-layout-DKr7K-B6.js +1 -0
- package/dist/assets/{settings-navigation-CSG7jiyJ.js → settings-navigation-ji_jJYq2.js} +1 -1
- package/dist/assets/{share-feedback-modal-BoWCg4KH.js → share-feedback-modal-GLBRzcZa.js} +1 -1
- package/dist/assets/{sidebar-tree-C_PPNHe5.js → sidebar-tree-CEPitR5K.js} +1 -1
- package/dist/assets/signup-page-C0y2CTKm.js +1 -0
- package/dist/assets/{signup-shell-CMsBZ8vG.js → signup-shell-DxP2zqed.js} +1 -1
- package/dist/assets/{site-favicon-BB1pYWLF.js → site-favicon-Dx98M-cB.js} +1 -1
- package/dist/assets/{skill-detail-page-CTobyK6L.js → skill-detail-page-o3EhI_Q2.js} +1 -1
- package/dist/assets/{skill-detail-panel-CNzionF7.js → skill-detail-panel-DdQL6oky.js} +1 -1
- package/dist/assets/{skills-Cum1XWT2.js → skills-DT9YkYm6.js} +1 -1
- package/dist/assets/{skills-page-DZVxAbua.js → skills-page-BtFhw8jF.js} +1 -1
- package/dist/assets/{slack-setup-wizard-DK2F8LXc.js → slack-setup-wizard-C6ALDSEa.js} +1 -1
- package/dist/assets/{sound-manager-Bx-OcMAz.js → sound-manager-Dy2ohKg4.js} +1 -1
- package/dist/assets/{sounds-page-C45-RF4i.js → sounds-page-D4kMljoY.js} +1 -1
- package/dist/assets/{src-te3YTBG-.js → src-CnF7WXNj.js} +1 -1
- package/dist/assets/{start-screen-CkJiCl9b.js → start-screen-BiV4V5J1.js} +1 -1
- package/dist/assets/{subagent-detail-panel-DyyMdaNO.js → subagent-detail-panel-Cvmfu7Ym.js} +1 -1
- package/dist/assets/{subagent-store-MDi6lBXs.js → subagent-store-B2Uhma4F.js} +1 -1
- package/dist/assets/superpowers-page-CPBz-c5i.js +1 -0
- package/dist/assets/{system-events-page-DXAU01ZO.js → system-events-page-CpUI1rsZ.js} +1 -1
- package/dist/assets/{system-events-redirect-page-Bm9bipNo.js → system-events-redirect-page-BQrnMF4i.js} +1 -1
- package/dist/assets/{tag-NXcyiTkK.js → tag-Dn1d6hKF.js} +1 -1
- package/dist/assets/{theme-stage-page-BDTCmutO.js → theme-stage-page-CW3erTQ4.js} +1 -1
- package/dist/assets/{threshold-presets-BdTTHCnm.js → threshold-presets-ByKylDXk.js} +1 -1
- package/dist/assets/{tiptap-document-editor-CHn2wCDv.js → tiptap-document-editor-CbPrzkBM.js} +1 -1
- package/dist/assets/{toast-LgLp4obE.js → toast-BcMdOTp1.js} +1 -1
- package/dist/assets/{tool-detail-panel-DFrWEWKG.js → tool-detail-panel-DyfiRoE5.js} +1 -1
- package/dist/assets/{transcript-message-body-shared-D9_d2c2X.js → transcript-message-body-shared-Cb89j7p1.js} +1 -1
- package/dist/assets/{trust-rules-api-B5lfygCA.js → trust-rules-api-CVYU31TU.js} +1 -1
- package/dist/assets/upgrade-cancel-page-BSAoMrm5.js +1 -0
- package/dist/assets/{upgrade-success-page-Cb1Gl4MM.js → upgrade-success-page-CooDWnEr.js} +1 -1
- package/dist/assets/{usage-redirect-page-BOfJ7uot.js → usage-redirect-page-DtwSt4vM.js} +1 -1
- package/dist/assets/{use-active-assistant-id-CldxA_-M.js → use-active-assistant-id-CUKao_nq.js} +1 -1
- package/dist/assets/{use-app-theme-Dg8A6vPA.js → use-app-theme-BhnyqHgJ.js} +1 -1
- package/dist/assets/{use-assistant-avatar-bwLHcMz4.js → use-assistant-avatar-BcObK2L0.js} +1 -1
- package/dist/assets/{use-assistant-capability-CDS7GbSO.js → use-assistant-capability-BdWmg2Vg.js} +1 -1
- package/dist/assets/{use-assistant-identity-details-9JRWxXTQ.js → use-assistant-identity-details-BdFppz9B.js} +1 -1
- package/dist/assets/{use-avatar-accent-var-vpakP1ce.js → use-avatar-accent-var-rnSeYvBI.js} +1 -1
- package/dist/assets/{use-bookmarks-CK-nOiT-.js → use-bookmarks-DtteniG3.js} +1 -1
- package/dist/assets/{use-bundled-avatar-components-Bbs4vCnX.js → use-bundled-avatar-components-B1ARUeam.js} +2 -2
- package/dist/assets/{use-bus-subscription-nUrbz9Mu.js → use-bus-subscription-NoXmdzgx.js} +1 -1
- package/dist/assets/{use-checkout-dismiss-refresh-CqGR_OsB.js → use-checkout-dismiss-refresh-wRSmB_TU.js} +1 -1
- package/dist/assets/use-command-palette-sections-GAugkmjU.js +1 -0
- package/dist/assets/{use-discord-nudge-C_QdHIeX.js → use-discord-nudge-h0WPtIp6.js} +1 -1
- package/dist/assets/{use-edge-swipe-Wm9pU2HX.js → use-edge-swipe-DDntz5ZJ.js} +1 -1
- package/dist/assets/{use-edge-swipe-back-BcSHNCwS.js → use-edge-swipe-back-Rp4TEihl.js} +1 -1
- package/dist/assets/{use-edit-app-B_Nequzs.js → use-edit-app-BSbRuVnn.js} +1 -1
- package/dist/assets/{use-effective-timezone-Dqs8OaXJ.js → use-effective-timezone-Om_EkJxK.js} +1 -1
- package/dist/assets/{use-invite-link-dialog-CPPOduk8.js → use-invite-link-dialog-yw1dtYd_.js} +1 -1
- package/dist/assets/{use-ios-app-nudge-B-ojl-b1.js → use-ios-app-nudge-CeOXecJj.js} +1 -1
- package/dist/assets/{use-is-org-ready-C5xlYywh.js → use-is-org-ready-BrKAc9Df.js} +1 -1
- package/dist/assets/{use-onboarding-login-DI5gvqEG.js → use-onboarding-login-DsCjVy0U.js} +1 -1
- package/dist/assets/{use-platform-assistant-id-DOsSt6k1.js → use-platform-assistant-id-DSR1LFZF.js} +1 -1
- package/dist/assets/{use-platform-gate-C65D14xY.js → use-platform-gate-Cv2oOK8C.js} +1 -1
- package/dist/assets/{use-reduced-motion-W1fCe3vS.js → use-reduced-motion-D0Rb5Fd_.js} +1 -1
- package/dist/assets/use-return-to-short-circuit-DEKlWitV.js +1 -0
- package/dist/assets/{use-save-twilio-credentials-c9xG9RPK.js → use-save-twilio-credentials-CecOWIyh.js} +1 -1
- package/dist/assets/{use-skill-actions-BAAx1Eia.js → use-skill-actions-DTznrJR1.js} +1 -1
- package/dist/assets/{use-skill-detail-files-BvOKvY0-.js → use-skill-detail-files-CKgT7qkY.js} +1 -1
- package/dist/assets/{use-sticky-profiles-CdWX0mgI.js → use-sticky-profiles-CdiEmubF.js} +1 -1
- package/dist/assets/{use-subagent-card-data-DHuNtSy9.js → use-subagent-card-data-DJujXR76.js} +1 -1
- package/dist/assets/{use-supports-bookmarks-C3J7FtDn.js → use-supports-bookmarks-D4_-FkJA.js} +1 -1
- package/dist/assets/use-supports-credentials-settings-CGDLraXI.js +1 -0
- package/dist/assets/{use-swipe-engine-6PcZZMVD.js → use-swipe-engine-ehsGV4fb.js} +1 -1
- package/dist/assets/{utils-B0rBxtYP.js → utils-CP1NAeej.js} +1 -1
- package/dist/assets/{utils-CnB60ZJN.js → utils-D8KOSvh3.js} +1 -1
- package/dist/assets/{viewer-store-DLk-jp8U.js → viewer-store-BVsBGqdn.js} +1 -1
- package/dist/assets/{voice-list-CW8mzaHU.js → voice-list-DeqvOR_J.js} +1 -1
- package/dist/assets/{voice-page-0zsCIOdT.js → voice-page-Cas-WIf4.js} +1 -1
- package/dist/assets/voice-picker-modal-D0K6miA1.js +1 -0
- package/dist/assets/{weather-forecast-display-BAAnrNdd.js → weather-forecast-display-JW8ecLNy.js} +1 -1
- package/dist/assets/{web-9Cwi5jnT.js → web-BTtRunTK.js} +1 -1
- package/dist/assets/{web-Bi-BvsRt.js → web-Bd-5Eyoa.js} +1 -1
- package/dist/assets/{web-D486_dlv.js → web-ByAAA1Mb.js} +1 -1
- package/dist/assets/{web-sr1ba6fP.js → web-DFbI_g4o.js} +1 -1
- package/dist/assets/{web-BlvxItuO.js → web-DIn7jUpJ.js} +1 -1
- package/dist/assets/{web-l9DWMZeA.js → web-DYQ0KCC4.js} +1 -1
- package/dist/assets/{web-DUb4LJ2M.js → web-Db-2E0qX.js} +1 -1
- package/dist/assets/{web-B3Q8ntoM.js → web-PfT3uNnR.js} +1 -1
- package/dist/assets/{welcome-screen-DwOAZpZS.js → welcome-screen-D_DTupb3.js} +1 -1
- package/dist/assets/{workflow-detail-panel-DGL2BZSr.js → workflow-detail-panel-DAVe3vEm.js} +1 -1
- package/dist/assets/{workflow-store-lM7yKbUo.js → workflow-store-C3g-qg1u.js} +1 -1
- package/dist/assets/{workspace-page-D4NvhCv1.js → workspace-page-Dq0z3-Rs.js} +1 -1
- package/dist/assets/{workspace-tree-query-B1A-efgV.js → workspace-tree-query-D9VBUg-W.js} +1 -1
- package/dist/index.html +197 -194
- package/package.json +1 -1
- package/dist/assets/access-DS79PSR3.js +0 -1
- package/dist/assets/assistant-identity-store-DIyVo8LV.js +0 -1
- package/dist/assets/billing-page-B5j5TW_S.js +0 -3
- package/dist/assets/billing-redirect-page-B1o1rsQZ.js +0 -1
- package/dist/assets/channels-page-route-BYP9SOw5.js +0 -9
- package/dist/assets/checkout-continuation-U3Pd2nxi.js +0 -1
- package/dist/assets/checkout-page-C5_9GbP-.js +0 -1
- package/dist/assets/checkout-return-target-DI6Hb-9L.js +0 -1
- package/dist/assets/consent-hzYg-zbh.js +0 -1
- package/dist/assets/effective-timezone-CmcoXrio.js +0 -1
- package/dist/assets/emails-page-Wr4wPSYl.js +0 -1
- package/dist/assets/esm-BKewCp71.js +0 -2
- package/dist/assets/esm-DNvorKcw.js +0 -1
- package/dist/assets/esm-Deuay4YU.js +0 -2
- package/dist/assets/esm-IoT87yZe.js +0 -2
- package/dist/assets/esm-PYpy75OW.js +0 -2
- package/dist/assets/esm-xItcektK.js +0 -2
- package/dist/assets/first-run-scope-CL5YbC3b.js +0 -1
- package/dist/assets/get-memory-stats-BCYSpBF6.js +0 -1
- package/dist/assets/identity-page-route-CK3YsXCN.js +0 -7
- package/dist/assets/intelligence-layout-MNoGhi-l.js +0 -1
- package/dist/assets/library-detail-page-DVwI94NZ.js +0 -1
- package/dist/assets/login-flow-CD9tyuFG.js +0 -1
- package/dist/assets/login-page-BNStrcnU.js +0 -1
- package/dist/assets/memory-page-route-C0cBV7HD.js +0 -2
- package/dist/assets/mutation-error-DEknRDAQ.js +0 -1
- package/dist/assets/native-anchor-CeekjwVy.js +0 -1
- package/dist/assets/navigation-resolver-DPJxzx0h.js +0 -1
- package/dist/assets/open-workspace-file-DtK3a84K.js +0 -2
- package/dist/assets/plans-page-BDKqdYNM.js +0 -1
- package/dist/assets/platform-loopback-page-D0gXCm2S.js +0 -1
- package/dist/assets/plugins-page-B2zQ2iGh.js +0 -1
- package/dist/assets/plugins-surface-B43Op43l.js +0 -1
- package/dist/assets/provider-signup-page-BAPcG_iJ.js +0 -1
- package/dist/assets/review-terms-screen-BhyRQBjl.js +0 -1
- package/dist/assets/routes-CaP5Tqj7.js +0 -23
- package/dist/assets/routes-D9sNqB_o.js +0 -1
- package/dist/assets/schedules-page-DVnUeaoB.js +0 -1
- package/dist/assets/settings-layout-B_4PKJr9.js +0 -1
- package/dist/assets/signup-page-D0S_8XYw.js +0 -1
- package/dist/assets/superpowers-page-CaLzK5D-.js +0 -1
- package/dist/assets/upgrade-cancel-page-eiJEAvFz.js +0 -1
- package/dist/assets/use-command-palette-sections-CkpUaAKs.js +0 -1
- package/dist/assets/use-supports-credentials-settings-BbfghcWq.js +0 -1
- package/dist/assets/voice-picker-modal-PdsZwrsV.js +0 -1
- /package/dist/assets/{Combination-CkAMwkbS.js → Combination-BRDRMC4m.js} +0 -0
- /package/dist/assets/{api-errors-CFiCT7Ap.js → api-errors-DHvv5HEN.js} +0 -0
- /package/dist/assets/{app-types-DSkgEmV3.js → app-types-BnzWLsk5.js} +0 -0
- /package/dist/assets/{apple-logo--8ZT6Umn.js → apple-logo-C3XrRC_i.js} +0 -0
- /package/dist/assets/{avatar-bundled-components-DPqbVXi9.js → avatar-bundled-components-yyfTpx_l.js} +0 -0
- /package/dist/assets/{avatar-subagent-CRA2B82x.js → avatar-subagent-Bpy9-0YN.js} +0 -0
- /package/dist/assets/{avatar-svg-compositor-Dl-ckXRE.js → avatar-svg-compositor-DeuQqt-f.js} +0 -0
- /package/dist/assets/{avatar-tone-BKwvoDSj.js → avatar-tone-BBZKSrBa.js} +0 -0
- /package/dist/assets/{browser-timezone-CGwaX5Uv.js → browser-timezone-DGz-HvxU.js} +0 -0
- /package/dist/assets/{build.umd-Bixyt_xE.js → build.umd-CpQXlBwc.js} +0 -0
- /package/dist/assets/{by-tool-use-id-index-M50wYE1f.js → by-tool-use-id-index-DcsiqOhc.js} +0 -0
- /package/dist/assets/{chat-CDFCY8f0.js → chat-B9S7HTkM.js} +0 -0
- /package/dist/assets/{client.gen-CV05d-kw.js → client.gen-DPP573hb.js} +0 -0
- /package/dist/assets/{conversation-selection-oJy8Oht3.js → conversation-selection-Cx6Axfzb.js} +0 -0
- /package/dist/assets/{create-selectors-Qo7kcikX.js → create-selectors-B41BzcFF.js} +0 -0
- /package/dist/assets/{definitions-JF3PcEff.js → definitions-B2pe1hr8.js} +0 -0
- /package/dist/assets/{definitions-D_AmTPWg.js → definitions-B6TMLvuT.js} +0 -0
- /package/dist/assets/{dist-jXSU-ejH.js → dist-BbzsnMsY.js} +0 -0
- /package/dist/assets/{dist-CaYJ736y.js → dist-BxvMAFS8.js} +0 -0
- /package/dist/assets/{dist-BwAT3VYQ.js → dist-CCFYMOVM.js} +0 -0
- /package/dist/assets/{domains-DWRzNRJy.js → domains-BLQZqRIT.js} +0 -0
- /package/dist/assets/{dropdown-BCfnSdIZ.js → dropdown-BtWhNXSV.js} +0 -0
- /package/dist/assets/{edit-chat-session-D37Qx6ol.js → edit-chat-session-DDnAzqkB.js} +0 -0
- /package/dist/assets/{emoji-catalog-data-BCc1YNMR.js → emoji-catalog-data-DvjqmdH4.js} +0 -0
- /package/dist/assets/{event-bus-DSxmBYhD.js → event-bus-DYZhc6yM.js} +0 -0
- /package/dist/assets/{external-urls-_vjsdj2L.js → external-urls-DIbR-npW.js} +0 -0
- /package/dist/assets/{feature-flag-catalog-I9-eJQP_.js → feature-flag-catalog-CWB-r-Pj.js} +0 -0
- /package/dist/assets/{format-date-BGnM4mqL.js → format-date-BEAiOK8n.js} +0 -0
- /package/dist/assets/{format-file-size-BgMTiWPt.js → format-file-size-BtDHBEb-.js} +0 -0
- /package/dist/assets/{hard-navigate-DyUrcxe0.js → hard-navigate-V2EFapkk.js} +0 -0
- /package/dist/assets/{impersonate-version-flag-4Ki_3iKD.js → impersonate-version-flag-Cad5-ZZv.js} +0 -0
- /package/dist/assets/{input-hw3el2GJ.js → input-F_x2LXmm.js} +0 -0
- /package/dist/assets/{is-electron-m5eeGBnd.js → is-electron-D-TCQRcE.js} +0 -0
- /package/dist/assets/{link-click-DLYgWZdo.js → link-click-BIvzZsRn.js} +0 -0
- /package/dist/assets/{machine-sizes-DO8duvpy.js → machine-sizes-CT-fSRKD.js} +0 -0
- /package/dist/assets/{misc-CuYswARt.js → misc-CXDB4i-X.js} +0 -0
- /package/dist/assets/{native-deep-link-DCBJ-Rw0.js → native-deep-link-D4jZANvf.js} +0 -0
- /package/dist/assets/{oauth-popup-OhSYYlQF.js → oauth-popup-BsYPnBq7.js} +0 -0
- /package/dist/assets/{onboarding-step-layout-D9rghAjS.js → onboarding-step-layout-Do2o16kf.js} +0 -0
- /package/dist/assets/{optimistic-lifecycle-BINTsVFx.js → optimistic-lifecycle-Dxhc3mFf.js} +0 -0
- /package/dist/assets/{pdf-BlwLcQAc.js → pdf-CRRXY5Nb.js} +0 -0
- /package/dist/assets/{plugin-attribution-DrwveSW_.js → plugin-attribution-ug-jMTXi.js} +0 -0
- /package/dist/assets/{pointer-BbPfN86L.js → pointer-DAyn_9jY.js} +0 -0
- /package/dist/assets/{prechat-CeL4a_1i.js → prechat-EVefdGcO.js} +0 -0
- /package/dist/assets/{profile-metadata-BhqRdqUJ.js → profile-metadata-EGAGq_rk.js} +0 -0
- /package/dist/assets/{progress-bar-C_T5_pf2.js → progress-bar-B64ghmWk.js} +0 -0
- /package/dist/assets/{proxy-D7UPVac3.js → proxy-lxbolTGx.js} +0 -0
- /package/dist/assets/{public-asset-BBVUuTT_.js → public-asset-BoN50HP_.js} +0 -0
- /package/dist/assets/{sandbox-bridge-BxW8HZq_.js → sandbox-bridge-CjHMJYTZ.js} +0 -0
- /package/dist/assets/{sdk.gen-B5ygTzyg.js → sdk.gen-CtusrdLv.js} +0 -0
- /package/dist/assets/{sdk.gen-BHZ0fJla.js → sdk.gen-DeyOX3Kb.js} +0 -0
- /package/dist/assets/{semver-BpijV4FQ.js → semver-Ok0Hi8v9.js} +0 -0
- /package/dist/assets/{shield-fzs_emVe.js → shield-B69p45Kq.js} +0 -0
- /package/dist/assets/{shield-check-22NwY9JM.js → shield-check-C7I-REGg.js} +0 -0
- /package/dist/assets/{smartphone-mDNwm_ss.js → smartphone-zTfpbpuH.js} +0 -0
- /package/dist/assets/{sparkles-Ccrj7hxd.js → sparkles-nPSxUfsO.js} +0 -0
- /package/dist/assets/{square-D_e8nR-F.js → square-CRVB76KQ.js} +0 -0
- /package/dist/assets/{status-badge-pill-wJPMXQk1.js → status-badge-pill-CGODAHVT.js} +0 -0
- /package/dist/assets/{sun-Dw0t1n1O.js → sun-DXlsFvWD.js} +0 -0
- /package/dist/assets/{terminal-CdCI6wMV.js → terminal-BvDcWAOW.js} +0 -0
- /package/dist/assets/{theme-preferences-Bb2pPRXa.js → theme-preferences-LQuLaIA6.js} +0 -0
- /package/dist/assets/{three-dot-indicator-BMvKQ_On.js → three-dot-indicator-B_GPAioB.js} +0 -0
- /package/dist/assets/{toggle-lfnhEAcN.js → toggle-B4nIp0sf.js} +0 -0
- /package/dist/assets/{trash-2-L5LNgw9o.js → trash-2-BF5y4UkY.js} +0 -0
- /package/dist/assets/{triangle-alert-CQfiAg_t.js → triangle-alert-Dq3v0coH.js} +0 -0
- /package/dist/assets/{typed-storage-9Sn8tkE7.js → typed-storage-CcMT-hWr.js} +0 -0
- /package/dist/assets/{use-copy-to-clipboard-cF7ZSilD.js → use-copy-to-clipboard-VK_922zc.js} +0 -0
- /package/dist/assets/{use-is-mobile-BlQuzI5Z.js → use-is-mobile-Cx2xnNUx.js} +0 -0
- /package/dist/assets/{user-_zNqL48O.js → user-KBQkOaB5.js} +0 -0
- /package/dist/assets/{user-plus-oiIr9ey8.js → user-plus-CsHAo9W6.js} +0 -0
- /package/dist/assets/{users-iLvfYFOP.js → users-C0mu7-R4.js} +0 -0
- /package/dist/assets/{volume-2-CvT-JEIl.js → volume-2-DnyXryvu.js} +0 -0
- /package/dist/assets/{workflow-cWWiPi3K.js → workflow-CN4xwQpa.js} +0 -0
- /package/dist/assets/{workflow-status-HyIIhMBP.js → workflow-status-CgrMMiJT.js} +0 -0
- /package/dist/assets/{workspace-theme-tokens-DNNwX-XS.js → workspace-theme-tokens-D8TTf-DX.js} +0 -0
- /package/dist/assets/{wrench-0WW0zkkG.js → wrench-DDDwrNwL.js} +0 -0
- /package/dist/assets/{x-JBAsSOmg.js → x-BGag7vwj.js} +0 -0
- /package/dist/assets/{xterm-addon-fit-BVObYBMM.js → xterm-addon-fit-B1qPIPGd.js} +0 -0
- /package/dist/assets/{xterm-DgGqTfet.js → xterm-coCKWVob.js} +0 -0
- /package/dist/assets/{zoom-in-CaLYwni-.js → zoom-in-C96B1CNL.js} +0 -0
|
@@ -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-vgPTIsGI.js";import{A as f,M as p}from"./src-te3YTBG-.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-D9sNqB_o.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-PdsZwrsV.js";import{a as A,r as j,t as M}from"./voice-list-CW8mzaHU.js";import{t as N}from"./use-active-assistant-id-CldxA_-M.js";import{t as P}from"./detail-card-Du8OuE3q.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)(f,{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)(p,{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{A as f,M as p}from"./src-CnF7WXNj.js";import{t as m}from"./toggle-B4nIp0sf.js";import{t as h}from"./dropdown-BtWhNXSV.js";import{t as g}from"./assistant-identity-store-6On4WZ62.js";import{d as _}from"./routes-CsoiCk2y.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-D0K6miA1.js";import{a as A,r as j,t as M}from"./voice-list-DeqvOR_J.js";import{t as N}from"./use-active-assistant-id-CUKao_nq.js";import{t as P}from"./detail-card-BiNdiBiS.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)(f,{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)(p,{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};
|
|
@@ -0,0 +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-CnF7WXNj.js";import{t as s}from"./modal-CoOkN7c0.js";import{n as c,t as l}from"./create-selectors-B41BzcFF.js";import{t as u}from"./is-electron-D-TCQRcE.js";import{d}from"./routes-CsoiCk2y.js";import{a as f,n as p}from"./voice-list-DeqvOR_J.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-BAAnrNdd.js → weather-forecast-display-JW8ecLNy.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-BJzODLTY.js";import{t as _}from"./sun-Dw0t1n1O.js";import{t as v}from"./misc-CuYswARt.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-DXlsFvWD.js";import{t as v}from"./misc-CXDB4i-X.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-CCFYMOVM.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}from"./dist-
|
|
1
|
+
import{n as e}from"./dist-CCFYMOVM.js";var t=class extends e{constructor(){super(),this._lastWindow=null}async open(e){this._lastWindow=window.open(e.url,e.windowName||`_blank`)}async close(){return new Promise((e,t)=>{this._lastWindow==null?t(`No active window to close!`):(this._lastWindow.close(),this._lastWindow=null,e())})}};new t;export{t as BrowserWeb};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./dist-
|
|
1
|
+
import{n as e}from"./dist-CCFYMOVM.js";var t=class extends e{async canShare(){return typeof navigator>`u`||!navigator.share?{value:!1}:{value:!0}}async share(e){if(typeof navigator>`u`||!navigator.share)throw this.unavailable(`Share API not available in this browser`);return await navigator.share({title:e.title,text:e.text,url:e.url}),{}}};export{t as ShareWeb};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./dist-
|
|
1
|
+
import{n as e}from"./dist-CCFYMOVM.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};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e,r as t}from"./dist-
|
|
1
|
+
import{n as e,r as t}from"./dist-CCFYMOVM.js";import{n}from"./definitions-B6TMLvuT.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-CCFYMOVM.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-CCFYMOVM.js";var t=class extends e{constructor(){super(),this.handleVisibilityChange=()=>{let e={isActive:document.hidden!==!0};this.notifyListeners(`appStateChange`,e),document.hidden?this.notifyListeners(`pause`,null):this.notifyListeners(`resume`,null)},document.addEventListener(`visibilitychange`,this.handleVisibilityChange,!1)}exitApp(){throw this.unimplemented(`Not implemented on web.`)}async getInfo(){throw this.unimplemented(`Not implemented on web.`)}async getLaunchUrl(){return{url:``}}async getState(){return{isActive:document.hidden!==!0}}async minimizeApp(){throw this.unimplemented(`Not implemented on web.`)}async toggleBackButtonHandler(){throw this.unimplemented(`Not implemented on web.`)}async getAppLanguage(){return{value:navigator.language.split(`-`)[0].toLowerCase()}}};export{t as AppWeb};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./dist-
|
|
1
|
+
import{n as e}from"./dist-CCFYMOVM.js";import{n as t,t as n}from"./definitions-B2pe1hr8.js";var r=class extends e{constructor(){super(...arguments),this.selectionStarted=!1}async impact(e){let t=this.patternForImpact(e?.style);this.vibrateWithPattern(t)}async notification(e){let t=this.patternForNotification(e?.type);this.vibrateWithPattern(t)}async vibrate(e){let t=e?.duration||300;this.vibrateWithPattern([t])}async selectionStart(){this.selectionStarted=!0}async selectionChanged(){this.selectionStarted&&this.vibrateWithPattern([70])}async selectionEnd(){this.selectionStarted=!1}patternForImpact(e=n.Heavy){return e===n.Medium?[43]:e===n.Light?[20]:[61]}patternForNotification(e=t.Success){return e===t.Warning?[30,40,30,50,60]:e===t.Error?[27,45,50]:[35,65,21]}vibrateWithPattern(e){if(navigator.vibrate)navigator.vibrate(e);else throw this.unavailable(`Browser does not support the vibrate API`)}};export{r as HapticsWeb};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./button-Dy5001j6.js";import{u as t}from"./chunk-5KNZJZUH-Bsoom5--.js";import{t as n}from"./jsx-runtime-D3ZM-ToX.js";import{l as r}from"./local-mode-
|
|
1
|
+
import{t as e}from"./button-Dy5001j6.js";import{u as t}from"./chunk-5KNZJZUH-Bsoom5--.js";import{t as n}from"./jsx-runtime-D3ZM-ToX.js";import{l as r}from"./local-mode-BKousn41.js";import{d as i}from"./routes-CsoiCk2y.js";import{t as a}from"./use-onboarding-login-DsCjVy0U.js";import{t as o}from"./onboarding-layout-CYU5QNQ5.js";var s=n();function c(){let n=t(),{loading:c,error:l,login:u,cancel:d}=a();return(0,s.jsx)(o,{children:(0,s.jsx)(`div`,{className:`mx-auto flex min-h-screen w-full max-w-xl flex-col items-center px-6 pb-40 text-[var(--content-default)]`,children:(0,s.jsxs)(`div`,{className:`flex flex-1 flex-col items-center justify-center`,children:[(0,s.jsx)(`h1`,{className:`text-3xl font-semibold tracking-tight`,style:{animation:`fadeInUp 0.5s ease-out 0.1s both`},children:`Welcome to Vellum`}),(0,s.jsx)(`p`,{className:`mt-3 text-body-medium-lighter text-[var(--content-tertiary)]`,style:{animation:`fadeInUp 0.5s ease-out 0.3s both`},children:`Your own personal intelligence is just a step away.`}),l&&(0,s.jsx)(`p`,{className:`mt-4 text-body-small-default text-[var(--system-negative-strong)]`,children:l}),(0,s.jsxs)(`div`,{className:`mt-10 flex w-full max-w-sm flex-col gap-3`,style:{animation:`fadeInUp 0.5s ease-out 0.5s both`},children:[(0,s.jsx)(e,{variant:`primary`,size:`regular`,fullWidth:!0,className:`h-11 text-base`,onClick:c?d:()=>void u(),children:c?`Cancel`:`Log In`}),(0,s.jsx)(e,{variant:`ghost`,size:`regular`,fullWidth:!0,className:`h-11 text-base`,onClick:()=>{c&&d(),r()?n(i.selectAssistant):n(i.onboarding.hosting)},children:`Continue without account`})]})]})})})}export{c as WelcomeScreen};
|
|
@@ -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{t as r}from"./jsx-runtime-D3ZM-ToX.js";import{t as i}from"./typography-DEI9Ra9z.js";import{t as a}from"./arrow-down-to-line-Bh_5sIPp.js";import{t as o}from"./arrow-left-C2ylPLHq.js";import{n as s,r as c,t as l}from"./metric-card-
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-Dy5001j6.js";import{t as r}from"./jsx-runtime-D3ZM-ToX.js";import{t as i}from"./typography-DEI9Ra9z.js";import{t as a}from"./arrow-down-to-line-Bh_5sIPp.js";import{t as o}from"./arrow-left-C2ylPLHq.js";import{n as s,r as c,t as l}from"./metric-card-j9s-2nkl.js";import{t as u}from"./ban-B__z3LwE.js";import{t as d}from"./chevron-right-HU6H84S0.js";import{t as f}from"./circle-check-CjGnAahM.js";import{t as p}from"./square-CRVB76KQ.js";import{t as m}from"./triangle-alert-Dq3v0coH.js";import{t as h}from"./users-C0mu7-R4.js";import{t as g}from"./workflow-CN4xwQpa.js";import{t as _}from"./x-BGag7vwj.js";import"./src-CnF7WXNj.js";import{n as v,r as y,t as b}from"./workflow-status-CgrMMiJT.js";import{t as x}from"./proxy-lxbolTGx.js";import{t as S}from"./AnimatePresence-xdH2KLtr.js";import{t as C}from"./use-reduced-motion-D0Rb5Fd_.js";import{t as w}from"./three-dot-indicator-B_GPAioB.js";import{t as T}from"./avatar-renderer-BrNjnimz.js";import{n as E}from"./use-bundled-avatar-components-B1ARUeam.js";import{t as D}from"./avatar-subagent-Bpy9-0YN.js";import{t as O}from"./status-badge-pill-CGODAHVT.js";var k=e(t(),1),A=r();function j({onClick:e,ariaLabel:t}){return(0,A.jsxs)(`button`,{type:`button`,"aria-label":t,onClick:e,className:`flex h-8 shrink-0 cursor-pointer items-center gap-1.5 rounded-lg border border-[var(--system-negative-strong)] bg-transparent px-2.5 py-1.5 text-[var(--system-negative-strong)] transition-colors hover:bg-[var(--system-negative-weak)]`,children:[(0,A.jsx)(p,{className:`h-3 w-3`,fill:`currentColor`}),(0,A.jsx)(i,{variant:`label-small-default`,children:`Stop`})]})}function M({title:e,body:t,emptyText:n}){return(0,A.jsxs)(`div`,{className:`mb-5`,children:[(0,A.jsx)(i,{variant:`body-medium-default`,as:`h3`,className:`mb-2 text-[var(--content-emphasised)]`,children:e}),t?(0,A.jsx)(i,{variant:`body-medium-lighter`,as:`p`,className:`whitespace-pre-wrap break-words leading-relaxed text-[var(--content-default)]`,children:t}):(0,A.jsx)(i,{variant:`body-medium-lighter`,as:`p`,className:`text-[var(--content-tertiary)]`,children:n})]})}function N({leaf:e}){let t=e.status===`running`?`Running…`:`No result summary`;return(0,A.jsxs)(`div`,{children:[(0,A.jsxs)(`div`,{className:`mb-5 grid grid-cols-2 gap-3`,children:[(0,A.jsx)(l,{icon:(0,A.jsx)(a,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-secondary)`}}),target:e.inputTokens??0,format:e=>s(Math.round(e)),label:`Input`}),(0,A.jsx)(l,{icon:(0,A.jsx)(c,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-secondary)`}}),target:e.outputTokens??0,format:e=>s(Math.round(e)),label:`Output`})]}),(0,A.jsx)(M,{title:`Prompt`,body:e.promptSummary,emptyText:`No prompt summary`}),(0,A.jsx)(M,{title:`Result`,body:e.resultSummary,emptyText:t})]})}function P({status:e}){return(0,A.jsx)(O,{color:v(e),label:y(e)})}function F(e){switch(e){case`completed`:return`var(--system-positive-strong)`;case`failed`:return`var(--system-negative-strong)`;case`cancelled`:return`var(--content-secondary)`;default:return`var(--primary-base)`}}function I(e){switch(e){case`completed`:return`Completed`;case`failed`:return`Failed`;case`cancelled`:return`Cancelled`;default:return`Running`}}function L({status:e}){return(0,A.jsx)(O,{color:F(e),label:I(e)})}function R({status:e}){let t=C(),n=`h-3.5 w-3.5 shrink-0`,r;return r=e===`running`?(0,A.jsx)(w,{className:`shrink-0`,dotSize:4,gap:2}):e===`completed`?(0,A.jsx)(f,{className:n,style:{color:`var(--system-positive-strong)`}}):e===`failed`?(0,A.jsx)(m,{className:n,style:{color:`var(--system-negative-strong)`}}):(0,A.jsx)(u,{className:n,style:{color:`var(--content-secondary)`},role:`img`,"aria-label":`Cancelled`}),(0,A.jsx)(S,{mode:`wait`,initial:!1,children:(0,A.jsx)(x.span,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:t?{duration:0}:{duration:.15,ease:[.16,1,.3,1]},className:`flex shrink-0 items-center`,children:r},e)})}function z({runId:e,leaf:t,components:n,onSelect:r}){let a=t.label??`Subagent ${t.seq}`,o=t.promptSummary,s=D(`${e}:${t.seq}`);return(0,A.jsx)(`button`,{type:`button`,onClick:r,"aria-label":`Open ${a} details`,className:`flex w-full cursor-pointer items-center justify-between gap-2 rounded-[6px] px-2 py-1.5 text-left transition-colors hover:bg-[var(--surface-overlay)]`,children:(0,A.jsxs)(`div`,{className:`flex min-w-0 items-center gap-1.5`,children:[(0,A.jsx)(R,{status:t.status}),n?(0,A.jsx)(T,{components:n,bodyShapeId:s.bodyShape,eyeStyleId:s.eyeStyle,colorId:s.color,size:16}):(0,A.jsx)(`div`,{style:{width:16,height:16,flexShrink:0},"aria-hidden":!0}),(0,A.jsx)(i,{variant:`body-medium-default`,title:a,className:`max-w-[60%] shrink-0 truncate text-[var(--content-default)]`,children:a}),o&&(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(`span`,{"aria-hidden":!0,className:`shrink-0 text-[var(--content-tertiary)] opacity-10`,children:`|`}),(0,A.jsx)(i,{variant:`body-medium-lighter`,title:o,className:`min-w-0 truncate text-[var(--content-tertiary)]`,children:o})]})]})})}function B({entry:e,onClose:t,onStop:r,onRequestJournal:u}){let f=b(e.status),p=C(),m=e.label??e.runId,v=e.agentsSpawned||e.leaves.size,y=E(),S=[...e.leaves.values()].sort((e,t)=>e.seq-t.seq),[w,O]=(0,k.useState)(null),[M,F]=(0,k.useState)(e.runId);M!==e.runId&&(F(e.runId),O(null));let I=w==null?void 0:e.leaves.get(w),R=I?D(`${e.runId}:${I.seq}`):void 0,B=(0,k.useCallback)(()=>O(null),[]),V=I?I.label??`Subagent ${I.seq}`:``,H=I?V:m,U=f?`live`:`final`;return(0,k.useEffect)(()=>{u?.(e.runId)},[e.runId,U,u]),(0,A.jsxs)(`div`,{className:`flex h-full flex-col overflow-hidden rounded-xl bg-[var(--surface-lift)]`,children:[I&&(0,A.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 border-b border-[var(--border-hover)] px-5 py-3`,children:[(0,A.jsx)(`button`,{type:`button`,onClick:B,title:m,className:`min-w-0 shrink cursor-pointer truncate text-left text-[var(--content-default)] hover:underline`,children:(0,A.jsx)(i,{variant:`body-small-default`,as:`span`,children:m})}),(0,A.jsx)(d,{className:`h-2.5 w-2.5 shrink-0 text-[var(--content-tertiary)]`,"aria-hidden":!0}),(0,A.jsx)(i,{variant:`body-small-default`,as:`span`,title:V,className:`min-w-0 shrink truncate text-[var(--content-secondary)]`,children:V})]}),(0,A.jsxs)(`div`,{className:`flex shrink-0 items-center gap-3 border-b border-[var(--border-hover)] px-5 py-4`,children:[I&&(0,A.jsx)(n,{variant:`outlined`,iconOnly:(0,A.jsx)(o,{}),onClick:B,"aria-label":`Back to subagents`,tooltip:`Back`,className:`shrink-0 rounded-lg`}),I?y&&R?(0,A.jsx)(T,{components:y,bodyShapeId:R.bodyShape,eyeStyleId:R.eyeStyle,colorId:R.color,size:32}):(0,A.jsx)(`div`,{style:{width:32,height:32,flexShrink:0},"aria-hidden":!0}):(0,A.jsx)(`div`,{className:`flex h-8 w-8 shrink-0 items-center justify-center rounded-[6px] bg-[var(--surface-overlay)]`,children:(0,A.jsx)(g,{className:`h-4 w-4`,style:{color:`var(--content-secondary)`}})}),(0,A.jsx)(i,{variant:`title-medium`,title:H,className:`min-w-0 shrink truncate text-[var(--content-default)]`,children:H}),I?(0,A.jsx)(L,{status:I.status}):(0,A.jsx)(P,{status:e.status}),(0,A.jsx)(`span`,{className:`flex-1`}),f&&r&&(0,A.jsx)(j,{onClick:()=>r(e.runId),ariaLabel:`Stop workflow`}),(0,A.jsx)(n,{variant:`outlined`,iconOnly:(0,A.jsx)(_,{}),onClick:t,"aria-label":`Close workflow detail`,tooltip:`Close`,className:`shrink-0 rounded-lg`})]}),(0,A.jsx)(`div`,{className:`flex-1 overflow-y-auto px-5 py-5`,children:(0,A.jsx)(x.div,{initial:{opacity:0},animate:{opacity:1},transition:p?{duration:0}:{duration:.18,ease:[.16,1,.3,1]},children:I?(0,A.jsx)(N,{leaf:I}):(0,A.jsxs)(A.Fragment,{children:[(0,A.jsxs)(`div`,{className:`mb-5 grid grid-cols-3 gap-3`,children:[(0,A.jsx)(l,{icon:(0,A.jsx)(a,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-secondary)`}}),target:e.inputTokens,format:e=>s(Math.round(e)),label:`Input`}),(0,A.jsx)(l,{icon:(0,A.jsx)(c,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-secondary)`}}),target:e.outputTokens,format:e=>s(Math.round(e)),label:`Output`}),(0,A.jsx)(l,{icon:(0,A.jsx)(h,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-secondary)`}}),target:v,format:e=>s(Math.round(e)),label:`Agents`})]}),(0,A.jsxs)(`div`,{children:[(0,A.jsx)(i,{variant:`body-medium-default`,as:`h3`,className:`mb-4 text-[var(--content-emphasised)]`,children:`Subagents`}),S.length===0?(0,A.jsx)(i,{variant:`body-small-default`,className:`py-4 text-center text-[var(--content-tertiary)]`,children:`No subagents yet`}):(0,A.jsx)(`div`,{className:`flex flex-col gap-1`,children:S.map(t=>(0,A.jsx)(z,{runId:e.runId,leaf:t,components:y,onSelect:()=>O(t.seq)},t.seq))})]})]})},I?String(I.seq):`list`)})]})}export{B as WorkflowDetailPanel};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./capture-error-
|
|
1
|
+
import{t as e}from"./capture-error-Dj49ma74.js";import{n as t,t as n}from"./create-selectors-B41BzcFF.js";import{p as r}from"./api-BpGogBsg.js";import{n as i}from"./resolved-assistants-store-FEmi1gGu.js";import{Fr as a,Nr as o,Pr as s}from"./sdk.gen-DeyOX3Kb.js";import{t as c}from"./by-tool-use-id-index-DcsiqOhc.js";import{t as l}from"./workflow-status-CgrMMiJT.js";async function u(t,n){try{let{data:i,response:o}=await a({path:{assistant_id:t,id:n},throwOnError:!1});if(!o||!o.ok||!i)return null;let s=r.safeParse(i);return s.success?s.data:(e(s.error,{context:`fetchWorkflowJournal`}),null)}catch(t){return e(t,{context:`fetchWorkflowJournal`}),null}}async function d(t,n){try{let{data:e,response:r}=await s({path:{assistant_id:t,id:n},throwOnError:!1});return r?.ok&&e?e:r?.status===404?`not_found`:null}catch(t){return e(t,{context:`fetchWorkflowRun`}),null}}var f={byId:{},orderedIds:[],byToolUseId:new Map,fetchedAt:new Map,hydratedRunIds:new Set,notFoundRunIds:new Set,hydrationFailedRunIds:new Set,generation:0};function p(e,t){return{runId:e,status:`running`,agentsSpawned:0,inputTokens:0,outputTokens:0,startedAt:t,leaves:new Map}}function m(e){let t=e;for(let[n,r]of e)r.status===`running`&&(t===e&&(t=new Map(e)),t.set(n,{...r,status:`cancelled`}));return t}function h(e,t){return`${t}:${l(e)?`live`:`final`}`}function g(e){return e===`failed`?`failed`:e===`running`?`running`:`completed`}function _(e){return e===`interrupted`?`running`:e}var v=n(t()((e,t)=>({...f,startRun:n=>{let{byId:r,orderedIds:i,byToolUseId:a}=t(),o=r[n.runId];if(o){let t=o.label??n.label,i=o.toolUseId??n.toolUseId,s=t!==o.label,l=i!==o.toolUseId;if(!s&&!l)return;let u={...o,label:t,toolUseId:i},d=l?c(a,n.toolUseId,n.runId):a;e({byId:{...r,[n.runId]:u},byToolUseId:d});return}let s={...p(n.runId,n.timestamp),label:n.label,toolUseId:n.toolUseId},l=c(a,n.toolUseId,n.runId);e({byId:{...r,[n.runId]:s},orderedIds:[...i,n.runId],byToolUseId:l})},applyProgress:n=>{let{byId:r,orderedIds:i}=t(),a=r[n.runId],o=a??p(n.runId,Date.now()),s={...o,status:_(o.status),phase:n.phase??o.phase,message:n.message??o.message,agentsSpawned:n.agentsSpawned??o.agentsSpawned,label:o.label??n.label};e({byId:{...r,[n.runId]:s},orderedIds:a?i:[...i,n.runId]})},leafStarted:n=>{let{byId:r,orderedIds:i}=t(),a=r[n.runId],o=a??p(n.runId,Date.now()),s=_(o.status),c=o.leaves.get(n.seq);if(c&&c.status!==`running`){s!==o.status&&e({byId:{...r,[n.runId]:{...o,status:s}}});return}let l={seq:n.seq,status:`running`,label:n.label??c?.label,promptSummary:n.promptSummary??c?.promptSummary},u=new Map(o.leaves).set(n.seq,l),d=Math.max(o.agentsSpawned,u.size);e({byId:{...r,[n.runId]:{...o,status:s,agentsSpawned:d,leaves:u}},orderedIds:a?i:[...i,n.runId]})},leafFinished:n=>{let{byId:r,orderedIds:i}=t(),a=r[n.runId],o=a??p(n.runId,Date.now()),s=o.leaves.get(n.seq),c={seq:n.seq,status:n.status,label:n.label??s?.label,promptSummary:s?.promptSummary,inputTokens:n.inputTokens??s?.inputTokens,outputTokens:n.outputTokens??s?.outputTokens,resultSummary:n.resultSummary??s?.resultSummary};if(s&&s.status===c.status&&s.label===c.label&&s.inputTokens===c.inputTokens&&s.outputTokens===c.outputTokens&&s.resultSummary===c.resultSummary)return;let l=new Map(o.leaves).set(n.seq,c),u=0,d=0;for(let e of l.values())u+=e.inputTokens??0,d+=e.outputTokens??0;e({byId:{...r,[n.runId]:{...o,inputTokens:Math.max(o.inputTokens,u),outputTokens:Math.max(o.outputTokens,d),leaves:l}},orderedIds:a?i:[...i,n.runId]})},completeRun:n=>{let{byId:r,orderedIds:i}=t(),a=r[n.runId],o=a??p(n.runId,Date.now()),s=l(n.status)?o.leaves:m(o.leaves),c={...o,status:n.status,agentsSpawned:n.agentsSpawned,inputTokens:n.inputTokens,outputTokens:n.outputTokens,summary:n.summary??o.summary,leaves:s};e({byId:{...r,[n.runId]:c},orderedIds:a?i:[...i,n.runId]})},backfillFromJournal:(n,r)=>{let{byId:i,orderedIds:a}=t(),o=i[n],s=o??p(n,Date.now()),c=!1,u=s.leaves;for(let e of r.leaves){let t=s.leaves.get(e.seq),n=g(e.status);if(!t){c||=(u=new Map(s.leaves),!0),u.set(e.seq,{seq:e.seq,status:n,label:e.label,promptSummary:e.promptSummary,resultSummary:e.resultSummary,inputTokens:e.inputTokens,outputTokens:e.outputTokens});continue}(t.status===`running`||t.status===`cancelled`)&&n!==`running`&&(c||=(u=new Map(s.leaves),!0),u.set(e.seq,{...t,status:n,label:t.label??e.label,promptSummary:t.promptSummary??e.promptSummary,resultSummary:t.resultSummary??e.resultSummary,inputTokens:t.inputTokens??e.inputTokens,outputTokens:t.outputTokens??e.outputTokens}))}let d=l(s.status)?r.status??s.status:s.status,f=l(s.status)&&!l(d)?m(u):u,h={...s,status:d,agentsSpawned:Math.max(s.agentsSpawned,r.agentsSpawned??s.agentsSpawned),inputTokens:Math.max(s.inputTokens,r.inputTokens??s.inputTokens),outputTokens:Math.max(s.outputTokens,r.outputTokens??s.outputTokens),phase:r.phase??s.phase,leaves:f};e({byId:{...i,[n]:h},orderedIds:o?a:[...a,n]})},fetchJournalIfNeeded:async(n,r)=>{let{byId:i,fetchedAt:a}=t(),o=i[r];if(!o)return;let s=h(o.status,r),c=a.get(s);if(c!==void 0&&c>=o.startedAt)return;let l=new Map(a);l.set(s,o.startedAt),e({fetchedAt:l});let d=t().generation,f=await u(n,r);if(!f){let n=new Map(t().fetchedAt);n.delete(s),e({fetchedAt:n});return}t().generation===d&&t().backfillFromJournal(r,f)},hydrateRunIfNeeded:async(n,r)=>{let{byId:i,hydratedRunIds:a}=t();if(i[r]||a.has(r))return;e({hydratedRunIds:new Set(a).add(r)});let o=t().generation,s=await d(n,r);if(t().generation===o){if(s===`not_found`){e({notFoundRunIds:new Set(t().notFoundRunIds).add(r)});return}if(s===null){let n=new Set(t().hydratedRunIds);n.delete(r),e({hydratedRunIds:n,hydrationFailedRunIds:new Set(t().hydrationFailedRunIds).add(r)});return}t().startRun({runId:r,label:s.name??void 0,timestamp:Date.now()}),l(s.status)?t().applyProgress({runId:r,agentsSpawned:s.agentsSpawned}):t().completeRun({runId:r,status:s.status,agentsSpawned:s.agentsSpawned,inputTokens:s.inputTokens,outputTokens:s.outputTokens}),await t().fetchJournalIfNeeded(n,r)}},abortRun:async e=>{let t=i.getState().activeAssistantId;if(t)try{await o({path:{assistant_id:t,id:e},throwOnError:!0})}catch{}},reset:()=>e({byId:{},orderedIds:[],byToolUseId:new Map,fetchedAt:new Map,hydratedRunIds:new Set,notFoundRunIds:new Set,hydrationFailedRunIds:new Set,generation:t().generation+1})})));export{v 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{m as r}from"./chunk-5KNZJZUH-Bsoom5--.js";import{n as i}from"./QueryClientProvider-CMu7CkQU.js";import{t as a}from"./useQuery-Bz-fbQ-m.js";import{t as o}from"./useMutation-CXGTrp4W.js";import{t as s}from"./jsx-runtime-D3ZM-ToX.js";import{t as c}from"./queryOptions-CMSBCFOf.js";import{t as l}from"./createLucideIcon-CAM1RhH8.js";import{t as u}from"./chevron-down-B5A-0g8A.js";import{t as d}from"./chevron-right-HU6H84S0.js";import{t as f}from"./menu-BvjhxZo7.js";import{t as p}from"./download-CywcQLB2.js";import{t as m}from"./eye-off-Jdx8qkOK.js";import{t as h}from"./eye-BMVGQXHT.js";import{t as g}from"./file-plus-C3SBA8ll.js";import{t as _}from"./file-text-Br730Q4B.js";import{n as v,r as y,t as b}from"./workspace-tree-query-B1A-efgV.js";import{t as x}from"./folder-open-Nlg0OphT.js";import{t as S}from"./folder-DF8nFp7N.js";import{n as C,t as w}from"./video-BcgduiJ6.js";import{t as T}from"./loader-circle-XREx3i4W.js";import{t as E}from"./pencil-D38YNe2r.js";import{t as D}from"./plus-jH3kAliM.js";import{t as O}from"./search-BVW-n8to.js";import{t as k}from"./trash-2-L5LNgw9o.js";import{t as A}from"./x-JBAsSOmg.js";import{k as j}from"./src-te3YTBG-.js";import{t as M}from"./input-hw3el2GJ.js";import{t as N}from"./modal-BR4CUFBd.js";import{n as P,t as F}from"./panel-item-CrtoJCrd.js";import{t as ee}from"./confirm-dialog-UYFm4osC.js";import{n as I,t as L}from"./file-markdown-DaflJFk7.js";import{Br as te,Hr as R,Ir as ne,Lr as z,Rr as B,Ur as re,zr as ie}from"./sdk.gen-BHZ0fJla.js";import{n as V}from"./use-is-mobile-BlQuzI5Z.js";import{n as H}from"./native-file-ySSv1sQ7.js";import{t as U}from"./use-active-assistant-id-CldxA_-M.js";import{n as W,t as ae}from"./mobile-sidebar-drawer-DtKU2vlu.js";import{i as G,n as oe,r as K,t as q}from"./file-editor-phorJEVv.js";import{t as J}from"./format-file-size-BgMTiWPt.js";var se=l(`arrow-down-a-z`,[[`path`,{d:`m3 16 4 4 4-4`,key:`1co6wj`}],[`path`,{d:`M7 20V4`,key:`1yoxec`}],[`path`,{d:`M20 8h-5`,key:`1vsyxs`}],[`path`,{d:`M15 10V6.5a2.5 2.5 0 0 1 5 0V10`,key:`ag13bf`}],[`path`,{d:`M15 14h5l-5 6h5`,key:`ur5jdg`}]]),ce=l(`arrow-down-wide-narrow`,[[`path`,{d:`m3 16 4 4 4-4`,key:`1co6wj`}],[`path`,{d:`M7 20V4`,key:`1yoxec`}],[`path`,{d:`M11 4h10`,key:`1w87gc`}],[`path`,{d:`M11 8h7`,key:`djye34`}],[`path`,{d:`M11 12h4`,key:`q8tih4`}]]),Y=l(`folder-plus`,[[`path`,{d:`M12 10v6`,key:`1bos4e`}],[`path`,{d:`M9 13h6`,key:`1uhe8q`}],[`path`,{d:`M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z`,key:`1kt360`}]]),X=e(t(),1);async function le(e){let{data:t,error:n}=await z({path:{assistant_id:e.assistantId},query:{path:e.path,...e.showHidden?{showHidden:`true`}:{}},parseAs:`blob`,throwOnError:!1});if(n||!(t instanceof Blob))throw Error(`Failed to download file`);await H(t,e.filename)}function ue(e){if(!e)return``;let t=e.indexOf(`;`);return(t===-1?e:e.slice(0,t)).trim()}function de(e,t){return ue(t)===`application/json`?!0:(e??``).toLowerCase().endsWith(`.json`)}function fe(e){try{return JSON.stringify(JSON.parse(e),null,2)}catch{return e}}function pe(e){return e.split(`/`).some(e=>e.startsWith(`.`))}var Z=s();function me(e){let{assistantId:t,path:n,name:r,showHidden:i}=e,[a,o]=(0,X.useState)(!1),[s,c]=(0,X.useState)(!1);return{isDownloading:a,error:s,download:(0,X.useCallback)(async()=>{c(!1),o(!0);try{await le({assistantId:t,path:n,filename:r,showHidden:i})}catch{c(!0)}finally{o(!1)}},[t,n,r,i])}}function he({assistantId:e,path:t,name:r,showHidden:i}){let{isDownloading:a,error:o,download:s}=me({assistantId:e,path:t,name:r,showHidden:i});return(0,Z.jsx)(n,{variant:`ghost`,size:`regular`,iconOnly:a?(0,Z.jsx)(T,{className:`animate-spin`,"aria-hidden":!0}):(0,Z.jsx)(p,{"aria-hidden":!0}),onClick:()=>void s(),disabled:a,"aria-label":`Download ${r}`,tooltip:o?`Download failed. Try again.`:`Download`})}function ge(e){return c({queryFn:async()=>{let{data:t,error:n}=await B({path:e.path,query:{path:e.query.path,...e.query.showHidden?{showHidden:`true`}:{}}});if(n)throw n;return t},queryKey:[`assistantsWorkspaceFileRetrieve`,e]})}function _e({mimeType:e}){let t=e.indexOf(`;`),n=(t===-1?e:e.slice(0,t)).trim(),r=_;return n.startsWith(`image/`)?r=C:n.startsWith(`video/`)?r=w:!n.startsWith(`text/`)&&n!==`application/json`&&n!==`application/octet-stream`&&(r=y),(0,Z.jsx)(`span`,{className:`flex h-5 w-5 shrink-0 items-center justify-center rounded`,style:{backgroundColor:`color-mix(in oklab, var(--content-default) 10%, transparent)`},children:(0,Z.jsx)(r,{className:`h-3.5 w-3.5`,style:{color:`var(--content-default)`}})})}function ve({viewMode:e,onChange:t}){return(0,Z.jsx)(`div`,{className:`inline-flex rounded-md p-0.5`,style:{backgroundColor:`color-mix(in oklab, var(--content-default) 6%, transparent)`},children:[`preview`,`source`].map(r=>{let i=e===r;return(0,Z.jsx)(n,{variant:`ghost`,onClick:()=>t(r),className:`h-auto rounded border-0 px-2.5 py-1 text-body-small-default hover:bg-transparent`,style:{backgroundColor:i?`var(--surface-lift)`:`transparent`,color:i?`var(--content-default)`:`var(--content-tertiary)`,boxShadow:i?`0 1px 2px rgba(0,0,0,0.15)`:void 0},children:r===`preview`?`Preview`:`Source`},r)})})}function Q({name:e,mimeType:t,size:n,rightContent:r}){return(0,Z.jsxs)(`div`,{className:`flex items-center justify-between gap-3 border-b px-3 py-2.5`,style:{borderColor:`var(--border-element)`},children:[(0,Z.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,Z.jsx)(_e,{mimeType:t}),(0,Z.jsx)(`span`,{className:`truncate text-body-medium-default`,style:{color:`var(--content-default)`},children:e}),n!=null&&(0,Z.jsx)(`span`,{className:`shrink-0 text-body-small-default`,style:{color:`var(--content-tertiary)`},children:J(n)})]}),r]})}function ye({assistantId:e,path:t,mimeType:n,showHidden:r}){let{data:i,isLoading:o}=a({queryFn:async()=>{let n=await z({path:{assistant_id:e},query:{path:t,...r?{showHidden:`true`}:{}},parseAs:`blob`});if(n.error)throw n.error;return n.data},queryKey:[`assistantsWorkspaceFileContentRetrieve`,{assistantId:e,path:t,showHidden:r}],enabled:!!t}),[s,c]=(0,X.useState)(null);return(0,X.useEffect)(()=>{if(!i)return;let e=URL.createObjectURL(i);return c(e),()=>{URL.revokeObjectURL(e),c(null)}},[i]),o?(0,Z.jsx)(`div`,{className:`flex items-center justify-center py-12`,children:(0,Z.jsx)(T,{className:`h-6 w-6 animate-spin`,style:{color:`var(--content-tertiary)`}})}):s?n.startsWith(`image/`)?(0,Z.jsx)(`div`,{className:`flex items-center justify-center p-4`,children:(0,Z.jsx)(`img`,{src:s,alt:t.split(`/`).pop()??`image`,className:`max-h-[70vh] max-w-full rounded object-contain`})}):n.startsWith(`video/`)?(0,Z.jsx)(`div`,{className:`flex items-center justify-center p-4`,children:(0,Z.jsx)(`video`,{src:s,controls:!0,className:`max-h-[70vh] max-w-full rounded`})}):null:null}function be({assistantId:e,path:t,name:r,mimeType:i,size:a,modifiedAt:o,showHidden:s}){let{isDownloading:c,error:l,download:u}=me({assistantId:e,path:t,name:r,showHidden:s});return(0,Z.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,Z.jsx)(Q,{name:r,mimeType:i,size:a}),(0,Z.jsx)(`div`,{className:`flex flex-1 items-center justify-center p-8`,children:(0,Z.jsxs)(`div`,{className:`w-full max-w-sm rounded-lg border p-6 text-center`,style:{borderColor:`var(--border-base)`,backgroundColor:`var(--surface-lift)`},children:[(0,Z.jsx)(y,{className:`mx-auto h-10 w-10`,style:{color:`var(--content-tertiary)`}}),(0,Z.jsx)(`p`,{className:`mt-3 text-body-medium-default`,style:{color:`var(--content-default)`},children:r}),(0,Z.jsxs)(`div`,{className:`mt-2 space-y-1`,children:[(0,Z.jsx)(`p`,{className:`text-body-small-default`,style:{color:`var(--content-secondary, var(--content-tertiary))`},children:i}),(0,Z.jsx)(`p`,{className:`text-body-small-default`,style:{color:`var(--content-secondary, var(--content-tertiary))`},children:J(a,`Unknown size`)}),o&&(0,Z.jsxs)(`p`,{className:`text-body-small-default`,style:{color:`var(--content-secondary, var(--content-tertiary))`},children:[`Modified: `,new Date(o).toLocaleString()]})]}),(0,Z.jsx)(n,{variant:`outlined`,size:`compact`,leftIcon:c?(0,Z.jsx)(T,{className:`animate-spin`,"aria-hidden":!0}):(0,Z.jsx)(p,{"aria-hidden":!0}),onClick:u,disabled:c,"aria-label":`Download ${r}`,className:`mt-4`,children:c?`Downloading…`:`Download`}),l&&(0,Z.jsx)(`p`,{className:`mt-2 text-body-small-default`,style:{color:`var(--system-error)`},children:`Download failed. Try again.`})]})})]})}function xe({assistantId:e,selectedPath:t,showHidden:r,viewMode:s,onChangeViewMode:c,onBrowse:l,pathRename:u,pathDelete:d}){let f=i(),{data:p,isLoading:m}=a({...ge({path:{assistant_id:e},query:{path:t??``,showHidden:r}}),enabled:!!t}),[h,g]=(0,X.useState)(null),[_,v]=(0,X.useState)(null);(0,X.useEffect)(()=>{if(!u)return;let{from:e,to:t}=u,n=n=>n===e?t:n.startsWith(`${e}/`)?t+n.slice(e.length):n;g(e=>e==null?e:n(e)),v(e=>e==null?e:{...e,path:n(e.path)})},[u]),(0,X.useEffect)(()=>{if(!d)return;let{path:e}=d,t=t=>t===e||t.startsWith(`${e}/`);g(e=>e!=null&&t(e)?null:e),v(e=>e!=null&&t(e.path)?null:e)},[d]);let y=h!=null&&h===t,b=p?.content??``,S=_?.path===t?_.content:b,C=()=>{g(null),v(null)},w=o({mutationFn:async({path:t,content:n})=>{let{error:r,response:i}=await re({path:{assistant_id:e},body:{path:t,content:n,encoding:`utf8`},throwOnError:!1});if(!i?.ok||r)throw Error(`Failed to save file`)},onSuccess:(e,t)=>{g(e=>e===t.path?null:e),v(e=>e?.path===t.path?null:e),f.invalidateQueries({queryKey:[`assistantsWorkspaceFileRetrieve`]})}}),E=S!==b,D=(0,X.useCallback)(()=>{t&&E&&!w.isPending&&w.mutate({path:t,content:S})},[t,E,w,S]);if(!t)return(0,Z.jsxs)(`div`,{className:`flex h-full flex-col items-center justify-center gap-3`,children:[(0,Z.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`Select a file to view`}),l&&(0,Z.jsx)(n,{type:`button`,onClick:l,leftIcon:(0,Z.jsx)(x,{"aria-hidden":!0}),className:`sm:hidden`,children:`Browse files`})]});if(m)return(0,Z.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,Z.jsx)(T,{className:`h-6 w-6 animate-spin`,style:{color:`var(--content-tertiary)`}})});if(!p)return(0,Z.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,Z.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`File not found`})});let O=p.mimeType??`application/octet-stream`,k=p.name??t.split(`/`).pop()??t,A=I(k,O),j=de(k,O),M=p.content!=null&&!A&&!j,N=t?pe(t):!0,P=y&&(0,Z.jsx)(oe,{isDirty:E,isSaving:w.isPending,error:w.isError?`Save failed`:null,onSave:D,onDiscard:C});if(A&&p.content!=null){let e=y?S:p.content;return(0,Z.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,Z.jsx)(Q,{name:k,mimeType:O,rightContent:(0,Z.jsx)(ve,{viewMode:s,onChange:e=>{y&&C(),c(e)}})}),(0,Z.jsxs)(`div`,{className:`relative flex-1 overflow-hidden`,children:[(0,Z.jsx)(q,{content:e,fileName:k,mimeType:O,showEdit:!N&&s===`source`,isEditing:y,onToggleEdit:()=>y?C():g(t)}),s===`preview`?(0,Z.jsx)(`div`,{className:`h-full overflow-auto px-6 py-4`,style:{color:`var(--content-default)`},children:(0,Z.jsx)(L,{content:e})}):y?(0,Z.jsx)(K,{value:S,onChange:e=>v({path:t,content:e}),onSave:D}):(0,Z.jsx)(G,{content:p.content,readOnly:N,onStartEdit:()=>g(t)})]}),P]})}if(j&&p.content!=null){let e=y?S:p.content,n=fe(e);return(0,Z.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,Z.jsx)(Q,{name:k,mimeType:O,rightContent:(0,Z.jsx)(ve,{viewMode:s,onChange:e=>{y&&C(),c(e)}})}),(0,Z.jsxs)(`div`,{className:`relative flex-1 overflow-hidden`,children:[(0,Z.jsx)(q,{content:s===`preview`?n:e,downloadContent:e,fileName:k,mimeType:O,showEdit:!N&&s===`source`,isEditing:y,onToggleEdit:()=>y?C():g(t)}),s===`preview`?(0,Z.jsx)(G,{content:n,readOnly:!0,whiteSpace:`pre`}):y?(0,Z.jsx)(K,{value:S,onChange:e=>v({path:t,content:e}),onSave:D}):(0,Z.jsx)(G,{content:p.content,readOnly:N,onStartEdit:()=>g(t)})]}),P]})}return M?(0,Z.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,Z.jsx)(Q,{name:k,mimeType:O,size:p.size}),(0,Z.jsxs)(`div`,{className:`relative flex-1 overflow-hidden`,children:[(0,Z.jsx)(q,{content:y?S:p.content??``,fileName:k,mimeType:O,showEdit:!N,isEditing:y,onToggleEdit:()=>y?C():g(t)}),y?(0,Z.jsx)(K,{value:S,onChange:e=>v({path:t,content:e}),onSave:D}):(0,Z.jsx)(G,{content:p.content??``,readOnly:N,onStartEdit:()=>g(t)})]}),P]}):O.startsWith(`image/`)||O.startsWith(`video/`)?(0,Z.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,Z.jsx)(Q,{name:k,mimeType:O,size:p.size,rightContent:(0,Z.jsx)(he,{assistantId:e,path:t,name:k,showHidden:r})}),(0,Z.jsx)(`div`,{className:`flex-1 overflow-auto`,children:(0,Z.jsx)(ye,{assistantId:e,path:t,mimeType:O,showHidden:r})})]}):(0,Z.jsx)(be,{assistantId:e,path:t,name:k,mimeType:O,size:p.size,modifiedAt:p.modifiedAt,showHidden:r})}function Se(e,t){if(t===`name`)return e;let n=e.slice();return n.sort((e,t)=>{let n=e.size??null,r=t.size??null;return n===null&&r===null?(e.name??``).localeCompare(t.name??``):n===null?1:r===null?-1:n===r?(e.name??``).localeCompare(t.name??``):r-n}),n}async function Ce(e,t,n,r){let i=n.toLowerCase(),a=r?.toLowerCase(),{data:o}=await R({path:{assistant_id:e},query:t?{path:t}:{}});if(o?.entries?.some(e=>{let t=(e.name??``).toLowerCase();return t===i&&t!==a}))throw Error(`"${n}" already exists here.`)}function we({entry:e}){return e.type===`directory`?(0,Z.jsx)(S,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-tertiary)`}}):e.mimeType?.startsWith(`image/`)?(0,Z.jsx)(C,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-tertiary)`}}):e.mimeType?.startsWith(`video/`)?(0,Z.jsx)(w,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-tertiary)`}}):(0,Z.jsx)(_,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-tertiary)`}})}function Te({entry:e,assistantId:t,expandedPaths:n,selectedPath:r,showHidden:i,sortMode:o,searchLower:s,onToggleExpand:c,onSelectPath:l,onRequestDelete:f,onRequestRename:p,onRequestCreate:m,depth:h}){let _=e.path??``,y=e.name??``,b=e.type===`directory`,x=n.has(_),S=r===_,C=y.startsWith(`.`),w=!pe(_),T=b&&(x||s.length>0),{data:D}=a({...v({assistantId:t,path:_,showHidden:i,includeDirSizes:o===`size`}),enabled:b&&T}),O=(0,X.useMemo)(()=>Se(D?.entries??[],o),[D?.entries,o]),A=s===``||y.toLowerCase().includes(s);if(s!==``&&!b&&!A)return null;let M=(0,Z.jsxs)(`button`,{onClick:()=>{b?c(_):l(_)},className:`flex w-full items-center gap-1.5 px-2 py-1 text-left text-body-medium-lighter transition-colors hover:bg-[var(--surface-hover)]`,style:{paddingLeft:`${h*14+8}px`,paddingRight:`8px`,color:S?`var(--content-default)`:C?`var(--content-tertiary)`:`var(--content-default)`,backgroundColor:S?`color-mix(in oklab, var(--primary-base) 12%, transparent)`:void 0,opacity:C&&!S?.7:1},children:[b?T?(0,Z.jsx)(u,{className:`h-3 w-3 shrink-0`,style:{color:`var(--content-tertiary)`}}):(0,Z.jsx)(d,{className:`h-3 w-3 shrink-0`,style:{color:`var(--content-tertiary)`}}):(0,Z.jsx)(`span`,{className:`h-3 w-3 shrink-0`}),(0,Z.jsx)(we,{entry:e}),(0,Z.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:y}),e.size!=null&&(0,Z.jsx)(`span`,{className:`shrink-0 text-label-medium-default tabular-nums`,style:{color:`var(--content-tertiary)`},children:J(e.size)})]});return(0,Z.jsxs)(`div`,{children:[w?(0,Z.jsxs)(j.Root,{children:[(0,Z.jsx)(j.Trigger,{children:M}),(0,Z.jsxs)(j.Content,{children:[b&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(j.Item,{leftIcon:(0,Z.jsx)(g,{className:`h-3.5 w-3.5`}),onSelect:()=>m({kind:`file`,parentPath:_}),children:`New File`}),(0,Z.jsx)(j.Item,{leftIcon:(0,Z.jsx)(Y,{className:`h-3.5 w-3.5`}),onSelect:()=>m({kind:`folder`,parentPath:_}),children:`New Folder`}),(0,Z.jsx)(j.Separator,{})]}),(0,Z.jsx)(j.Item,{leftIcon:(0,Z.jsx)(k,{className:`h-3.5 w-3.5`}),onSelect:()=>f({path:_,name:y,isDirectory:b}),children:`Delete`}),(0,Z.jsx)(j.Item,{leftIcon:(0,Z.jsx)(E,{className:`h-3.5 w-3.5`}),onSelect:()=>p({path:_,name:y,isDirectory:b}),children:`Rename`})]})]}):M,b&&T&&O.length>0&&(0,Z.jsx)(`div`,{children:O.map(e=>(0,Z.jsx)(Te,{entry:e,assistantId:t,expandedPaths:n,selectedPath:r,showHidden:i,sortMode:o,searchLower:s,onToggleExpand:c,onSelectPath:l,onRequestDelete:f,onRequestRename:p,onRequestCreate:m,depth:h+1},e.path))})]})}function Ee({title:e,placeholder:t,confirmLabel:r,pendingLabel:i,initialName:a,onCancel:o,onConfirm:s,pending:c,error:l}){let u=(0,X.useRef)(null),[d,f]=(0,X.useState)(a??``),p=d.trim(),m=p.length>0&&(/[/\\]/.test(p)||p===`.`||p===`..`),h=p.length>0&&!m&&!c;return(0,Z.jsx)(N.Root,{open:!0,onOpenChange:e=>{!e&&!c&&o()},children:(0,Z.jsx)(N.Content,{size:`sm`,hideCloseButton:!0,"aria-describedby":void 0,onOpenAutoFocus:e=>{e.preventDefault();let t=u.current;t&&(t.focus(),requestAnimationFrame(()=>{t.setSelectionRange(0,t.value.length)}))},onEscapeKeyDown:e=>{e.preventDefault(),e.stopPropagation(),c||o()},children:(0,Z.jsxs)(`form`,{onSubmit:e=>{e.preventDefault(),h&&s(p)},children:[(0,Z.jsx)(N.Header,{children:(0,Z.jsx)(N.Title,{children:e})}),(0,Z.jsx)(N.Body,{children:(0,Z.jsx)(M,{ref:u,label:`Name`,value:d,onChange:e=>f(e.target.value),placeholder:t,errorText:l??(m?`Enter a single file or folder name without slashes.`:void 0),autoComplete:`off`,spellCheck:!1,fullWidth:!0})}),(0,Z.jsxs)(N.Footer,{children:[(0,Z.jsx)(n,{type:`button`,variant:`outlined`,onClick:o,disabled:c,children:`Cancel`}),(0,Z.jsx)(n,{type:`submit`,variant:`primary`,disabled:!h,children:c?i:r})]})]})})})}function $({assistantId:e,expandedPaths:t,selectedPath:r,showHidden:s,sortMode:c,onToggleExpand:l,onExpandPath:u,onSelectPath:d,onToggleShowHidden:f,onChangeSortMode:p,onPathDeleted:g,onPathRenamed:_}){let y=i(),[x,S]=(0,X.useState)(``),C=x.trim().toLowerCase(),[w,T]=(0,X.useState)(!1),[E,D]=(0,X.useState)(null),[k,j]=(0,X.useState)(null),N=(0,X.useCallback)(()=>{D(null),j(null)},[]),{data:P,isLoading:F}=a(v({assistantId:e,showHidden:s,includeDirSizes:c===`size`})),I=(0,X.useMemo)(()=>Se(P?.entries??[],c),[P?.entries,c]),L=(0,X.useCallback)(()=>{for(let e of[b,`assistantsWorkspaceFileRetrieve`,`assistantsWorkspaceFileContentRetrieve`])y.invalidateQueries({queryKey:[e]})},[y]),R=o({mutationFn:async t=>{let n=t.parentPath?`${t.parentPath}/${t.name}`:t.name;await Ce(e,t.parentPath,t.name);let{error:r,response:i}=t.kind===`file`?await re({path:{assistant_id:e},body:{path:n,content:``,encoding:`utf8`},throwOnError:!1}):await ie({path:{assistant_id:e},body:{path:n},throwOnError:!1});if(r||!i?.ok)throw Error(typeof r==`string`?r:`Failed to create — check the name and try again.`);return{...t,path:n}},onSuccess:e=>{N(),L(),e.parentPath&&u(e.parentPath),e.kind===`file`?d(e.path):u(e.path)},onError:e=>{j(e instanceof Error?e.message:`Failed to create.`)}}),z=o({mutationFn:async t=>{let n=t.oldPath.lastIndexOf(`/`),r=n===-1?``:t.oldPath.slice(0,n),i=t.oldPath.slice(n+1),a=r?`${r}/${t.newName}`:t.newName;await Ce(e,r,t.newName,i);let{error:o,response:s}=await te({path:{assistant_id:e},body:{oldPath:t.oldPath,newPath:a},throwOnError:!1});if(o||!s?.ok)throw Error(typeof o==`string`?o:`Failed to rename — check the name and try again.`);return{oldPath:t.oldPath,newPath:a}},onSuccess:({oldPath:e,newPath:t})=>{N(),L(),_(e,t)},onError:e=>{j(e instanceof Error?e.message:`Failed to rename.`)}}),B=(0,X.useCallback)(e=>{j(null),D({type:`create`,...e})},[]),V=(0,X.useCallback)(e=>{j(null),D({type:`rename`,path:e.path,name:e.name})},[]),[H,U]=(0,X.useState)(null),W=o({mutationFn:async t=>{let{error:n,response:r}=await ne({path:{assistant_id:e},body:{path:t.path},throwOnError:!1});if(n||!r?.ok)throw Error(typeof n==`string`?n:`Failed to delete — try again.`);return t},onSuccess:e=>{U(null),L(),g(e.path)}}),ae=(0,X.useCallback)(e=>{W.reset(),U(e)},[W]);return(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(`div`,{className:`flex items-center justify-between border-b px-3 py-2.5`,style:{borderColor:`var(--border-element)`},children:[(0,Z.jsx)(`span`,{className:`text-body-medium-default`,style:{color:`var(--content-secondary)`},children:`Files`}),(0,Z.jsxs)(`div`,{className:`flex items-center gap-0.5`,children:[(0,Z.jsx)(n,{type:`button`,variant:`ghost`,size:`compact`,iconOnly:c===`size`?(0,Z.jsx)(ce,{"aria-hidden":!0}):(0,Z.jsx)(se,{"aria-hidden":!0}),onClick:()=>p(c===`size`?`name`:`size`),"aria-label":c===`size`?`Sort by name`:`Sort by size`,title:c===`size`?`Sorted by size — switch to name`:`Sorted by name — switch to size`,tintColor:c===`size`?`var(--content-default)`:`var(--content-tertiary)`}),(0,Z.jsx)(n,{type:`button`,variant:`ghost`,size:`compact`,iconOnly:s?(0,Z.jsx)(h,{"aria-hidden":!0}):(0,Z.jsx)(m,{"aria-hidden":!0}),onClick:f,"aria-label":s?`Hide hidden files`:`Show hidden files`,title:s?`Hide hidden files`:`Show hidden files`,tintColor:s?`var(--content-default)`:`var(--content-tertiary)`}),(0,Z.jsx)(De,{open:w,onOpenChange:T,onSelectKind:e=>{T(!1),B({kind:e,parentPath:``})}})]})]}),(0,Z.jsx)(`div`,{className:`px-3 py-2`,children:(0,Z.jsxs)(`div`,{className:`relative`,children:[(0,Z.jsx)(M,{type:`text`,value:x,onChange:e=>S(e.target.value),placeholder:`Search files`,leftIcon:(0,Z.jsx)(O,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),fullWidth:!0,spellCheck:!1,autoComplete:`off`}),x&&(0,Z.jsx)(n,{type:`button`,variant:`ghost`,size:`compact`,iconOnly:(0,Z.jsx)(A,{"aria-hidden":!0}),onClick:()=>S(``),"aria-label":`Clear search`,className:`absolute right-1.5 top-1/2 -translate-y-1/2`,tintColor:`var(--content-tertiary)`})]})}),(0,Z.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto py-1`,children:F?(0,Z.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,Z.jsx)(`div`,{className:`h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent`,style:{color:`var(--content-tertiary)`}})}):I.length?I.map(n=>(0,Z.jsx)(Te,{entry:n,assistantId:e,expandedPaths:t,selectedPath:r,showHidden:s,sortMode:c,searchLower:C,onToggleExpand:l,onSelectPath:d,onRequestDelete:ae,onRequestRename:V,onRequestCreate:B,depth:0},n.path)):(0,Z.jsx)(`p`,{className:`px-3 py-4 text-center text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`No files found`})}),E?.type===`create`&&(0,Z.jsx)(Ee,{title:E.kind===`file`?`New File`:`New Folder`,placeholder:E.kind===`file`?`filename.md`:`folder-name`,confirmLabel:`Create`,pendingLabel:`Creating…`,onCancel:N,onConfirm:e=>{j(null),R.mutate({kind:E.kind,parentPath:E.parentPath,name:e})},pending:R.isPending,error:k},`create-${E.kind}-${E.parentPath}`),E?.type===`rename`&&(0,Z.jsx)(Ee,{title:`Rename`,placeholder:E.name,confirmLabel:`Rename`,pendingLabel:`Renaming…`,initialName:E.name,onCancel:N,onConfirm:e=>{if(e===E.name){N();return}j(null),z.mutate({oldPath:E.path,newName:e})},pending:z.isPending,error:k},`rename-${E.path}`),(0,Z.jsx)(ee,{open:H!==null,title:H?.isDirectory?`Delete Folder`:`Delete File`,message:(0,Z.jsxs)(Z.Fragment,{children:[`Are you sure you want to delete`,` `,(0,Z.jsx)(`span`,{style:{color:`var(--content-default)`},children:H?.name}),H?.isDirectory?` and all of its contents`:``,`? This cannot be undone.`,W.error&&(0,Z.jsx)(`span`,{className:`mt-2 block`,style:{color:`var(--system-negative-strong)`},children:W.error.message})]}),confirmLabel:W.isPending?`Deleting…`:`Delete`,destructive:!0,isPending:W.isPending,onConfirm:()=>{H&&W.mutate(H)},onCancel:()=>U(null)})]})}function De({open:e,onOpenChange:t,onSelectKind:r}){return V()?(0,Z.jsxs)(P.Root,{open:e,onOpenChange:t,children:[(0,Z.jsx)(P.Trigger,{asChild:!0,children:(0,Z.jsx)(n,{type:`button`,variant:`ghost`,size:`compact`,iconOnly:(0,Z.jsx)(D,{"aria-hidden":!0}),"aria-label":`Create new file or folder`,title:`New file or folder`,tintColor:`var(--content-tertiary)`})}),(0,Z.jsxs)(P.Content,{children:[(0,Z.jsx)(P.Header,{className:`sr-only`,children:(0,Z.jsx)(P.Title,{children:`Create new`})}),(0,Z.jsxs)(P.Body,{className:`pt-0`,children:[(0,Z.jsx)(F,{icon:g,label:`New File`,onSelect:()=>r(`file`)}),(0,Z.jsx)(F,{icon:Y,label:`New Folder`,onSelect:()=>r(`folder`)})]})]})]}):(0,Z.jsxs)(f.Root,{open:e,onOpenChange:t,children:[(0,Z.jsx)(f.Trigger,{asChild:!0,children:(0,Z.jsx)(n,{type:`button`,variant:`ghost`,size:`compact`,iconOnly:(0,Z.jsx)(D,{"aria-hidden":!0}),"aria-label":`Create new file or folder`,title:`New file or folder`,tintColor:`var(--content-tertiary)`})}),(0,Z.jsxs)(f.Content,{align:`end`,sideOffset:4,children:[(0,Z.jsx)(f.Item,{leftIcon:(0,Z.jsx)(g,{className:`h-3.5 w-3.5`}),onSelect:()=>r(`file`),children:`New File`}),(0,Z.jsx)(f.Item,{leftIcon:(0,Z.jsx)(Y,{className:`h-3.5 w-3.5`}),onSelect:()=>r(`folder`),children:`New Folder`})]})]})}function Oe(e){let t=e.split(`/`),n=new Set;for(let e=1;e<t.length;e++)n.add(t.slice(0,e).join(`/`));return n}function ke({assistantId:e}){let[t,n]=r(),[i,a]=(0,X.useState)(()=>{let e=t.get(`file`);return e?Oe(e):new Set}),[o,s]=(0,X.useState)(()=>t.get(`file`)),[c,l]=(0,X.useState)(!1),[u,d]=(0,X.useState)(()=>t.get(`sort`)===`size`?`size`:`name`),[f,p]=(0,X.useState)(`preview`);(0,X.useEffect)(()=>{let e=t.get(`file`);e&&(s(e),a(t=>{let n=new Set(t);for(let t of Oe(e))n.add(t);return n.size===t.size?t:n}),n(e=>{let t=new URLSearchParams(e);return t.delete(`file`),t},{replace:!0}))},[t,n]);let m=(0,X.useCallback)(e=>{a(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),h=(0,X.useCallback)(e=>{a(t=>{if(t.has(e))return t;let n=new Set(t);return n.add(e),n})},[]),[g,_]=(0,X.useState)(!1),v=(0,X.useCallback)(e=>{s(e),_(!1)},[]),[y,b]=(0,X.useState)(null),x=(0,X.useCallback)(e=>{let t=t=>t===e||t.startsWith(`${e}/`);s(e=>e!==null&&t(e)?null:e),a(e=>{let n=new Set([...e].filter(e=>!t(e)));return n.size===e.size?e:n}),b({path:e})},[]),[S,C]=(0,X.useState)(null),w={assistantId:e,expandedPaths:i,selectedPath:o,showHidden:c,sortMode:u,onToggleExpand:m,onExpandPath:h,onSelectPath:v,onToggleShowHidden:()=>l(e=>!e),onChangeSortMode:d,onPathDeleted:x,onPathRenamed:(0,X.useCallback)((e,t)=>{let n=n=>n===e?t:n.startsWith(`${e}/`)?t+n.slice(e.length):n;s(e=>e===null?e:n(e)),a(e=>{let t=!1,r=new Set;for(let i of e){let e=n(i);e!==i&&(t=!0),r.add(e)}return t?r:e}),C({from:e,to:t})},[])};return(0,Z.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col gap-4`,children:[(0,Z.jsx)(`div`,{className:`flex items-center sm:hidden`,children:(0,Z.jsx)(W,{onClick:()=>_(!0)})}),(0,Z.jsx)(ae,{open:g,onClose:()=>_(!1),title:`Files`,children:(0,Z.jsx)($,{...w})}),(0,Z.jsxs)(`div`,{className:`grid min-h-0 flex-1 grid-cols-1 gap-4 sm:grid-cols-[320px_1fr]`,children:[(0,Z.jsx)(`div`,{className:`hidden min-h-0 min-w-0 flex-col overflow-hidden rounded-xl border sm:flex`,style:{backgroundColor:`var(--surface-overlay)`,borderColor:`var(--border-base)`},children:(0,Z.jsx)($,{...w})}),(0,Z.jsx)(`div`,{className:`flex min-h-0 min-w-0 flex-col overflow-hidden rounded-xl border`,style:{backgroundColor:`var(--surface-overlay)`,borderColor:`var(--border-base)`},children:(0,Z.jsx)(xe,{assistantId:e,selectedPath:o,showHidden:c,viewMode:f,onChangeViewMode:p,onBrowse:()=>_(!0),pathRename:S,pathDelete:y})})]})]})}function Ae(){return(0,Z.jsx)(ke,{assistantId:U()})}export{Ae as WorkspacePage};
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-Dy5001j6.js";import{m as r}from"./chunk-5KNZJZUH-Bsoom5--.js";import{n as i}from"./QueryClientProvider-CMu7CkQU.js";import{t as a}from"./useQuery-Bz-fbQ-m.js";import{t as o}from"./useMutation-CXGTrp4W.js";import{t as s}from"./jsx-runtime-D3ZM-ToX.js";import{t as c}from"./queryOptions-CMSBCFOf.js";import{t as l}from"./createLucideIcon-CAM1RhH8.js";import{t as u}from"./chevron-down-B5A-0g8A.js";import{t as d}from"./chevron-right-HU6H84S0.js";import{t as f}from"./menu-BKrcAFYk.js";import{t as p}from"./download-CywcQLB2.js";import{t as m}from"./eye-off-Jdx8qkOK.js";import{t as h}from"./eye-BMVGQXHT.js";import{t as g}from"./file-plus-C3SBA8ll.js";import{t as _}from"./file-text-Br730Q4B.js";import{n as v,r as y,t as b}from"./workspace-tree-query-D9VBUg-W.js";import{t as x}from"./folder-open-Nlg0OphT.js";import{t as S}from"./folder-DF8nFp7N.js";import{n as C,t as w}from"./video-BcgduiJ6.js";import{t as T}from"./loader-circle-XREx3i4W.js";import{t as E}from"./pencil-D38YNe2r.js";import{t as D}from"./plus-jH3kAliM.js";import{t as O}from"./search-BVW-n8to.js";import{t as k}from"./trash-2-BF5y4UkY.js";import{t as A}from"./x-BGag7vwj.js";import{k as j}from"./src-CnF7WXNj.js";import{t as M}from"./input-F_x2LXmm.js";import{t as N}from"./modal-CoOkN7c0.js";import{n as P,t as F}from"./panel-item-CQt19wOM.js";import{t as ee}from"./confirm-dialog-D-Yjf2uS.js";import{n as I,t as L}from"./file-markdown-B0zje_y3.js";import{Br as te,Hr as R,Ir as ne,Lr as z,Rr as B,Ur as re,zr as ie}from"./sdk.gen-DeyOX3Kb.js";import{n as V}from"./use-is-mobile-Cx2xnNUx.js";import{n as H}from"./native-file-CfGNNXKe.js";import{t as U}from"./use-active-assistant-id-CUKao_nq.js";import{n as W,t as ae}from"./mobile-sidebar-drawer-BLGt_R0d.js";import{i as G,n as oe,r as K,t as q}from"./file-editor-plAxQBKk.js";import{t as J}from"./format-file-size-BtDHBEb-.js";var se=l(`arrow-down-a-z`,[[`path`,{d:`m3 16 4 4 4-4`,key:`1co6wj`}],[`path`,{d:`M7 20V4`,key:`1yoxec`}],[`path`,{d:`M20 8h-5`,key:`1vsyxs`}],[`path`,{d:`M15 10V6.5a2.5 2.5 0 0 1 5 0V10`,key:`ag13bf`}],[`path`,{d:`M15 14h5l-5 6h5`,key:`ur5jdg`}]]),ce=l(`arrow-down-wide-narrow`,[[`path`,{d:`m3 16 4 4 4-4`,key:`1co6wj`}],[`path`,{d:`M7 20V4`,key:`1yoxec`}],[`path`,{d:`M11 4h10`,key:`1w87gc`}],[`path`,{d:`M11 8h7`,key:`djye34`}],[`path`,{d:`M11 12h4`,key:`q8tih4`}]]),Y=l(`folder-plus`,[[`path`,{d:`M12 10v6`,key:`1bos4e`}],[`path`,{d:`M9 13h6`,key:`1uhe8q`}],[`path`,{d:`M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z`,key:`1kt360`}]]),X=e(t(),1);async function le(e){let{data:t,error:n}=await z({path:{assistant_id:e.assistantId},query:{path:e.path,...e.showHidden?{showHidden:`true`}:{}},parseAs:`blob`,throwOnError:!1});if(n||!(t instanceof Blob))throw Error(`Failed to download file`);await H(t,e.filename)}function ue(e){if(!e)return``;let t=e.indexOf(`;`);return(t===-1?e:e.slice(0,t)).trim()}function de(e,t){return ue(t)===`application/json`?!0:(e??``).toLowerCase().endsWith(`.json`)}function fe(e){try{return JSON.stringify(JSON.parse(e),null,2)}catch{return e}}function pe(e){return e.split(`/`).some(e=>e.startsWith(`.`))}var Z=s();function me(e){let{assistantId:t,path:n,name:r,showHidden:i}=e,[a,o]=(0,X.useState)(!1),[s,c]=(0,X.useState)(!1);return{isDownloading:a,error:s,download:(0,X.useCallback)(async()=>{c(!1),o(!0);try{await le({assistantId:t,path:n,filename:r,showHidden:i})}catch{c(!0)}finally{o(!1)}},[t,n,r,i])}}function he({assistantId:e,path:t,name:r,showHidden:i}){let{isDownloading:a,error:o,download:s}=me({assistantId:e,path:t,name:r,showHidden:i});return(0,Z.jsx)(n,{variant:`ghost`,size:`regular`,iconOnly:a?(0,Z.jsx)(T,{className:`animate-spin`,"aria-hidden":!0}):(0,Z.jsx)(p,{"aria-hidden":!0}),onClick:()=>void s(),disabled:a,"aria-label":`Download ${r}`,tooltip:o?`Download failed. Try again.`:`Download`})}function ge(e){return c({queryFn:async()=>{let{data:t,error:n}=await B({path:e.path,query:{path:e.query.path,...e.query.showHidden?{showHidden:`true`}:{}}});if(n)throw n;return t},queryKey:[`assistantsWorkspaceFileRetrieve`,e]})}function _e({mimeType:e}){let t=e.indexOf(`;`),n=(t===-1?e:e.slice(0,t)).trim(),r=_;return n.startsWith(`image/`)?r=C:n.startsWith(`video/`)?r=w:!n.startsWith(`text/`)&&n!==`application/json`&&n!==`application/octet-stream`&&(r=y),(0,Z.jsx)(`span`,{className:`flex h-5 w-5 shrink-0 items-center justify-center rounded`,style:{backgroundColor:`color-mix(in oklab, var(--content-default) 10%, transparent)`},children:(0,Z.jsx)(r,{className:`h-3.5 w-3.5`,style:{color:`var(--content-default)`}})})}function ve({viewMode:e,onChange:t}){return(0,Z.jsx)(`div`,{className:`inline-flex rounded-md p-0.5`,style:{backgroundColor:`color-mix(in oklab, var(--content-default) 6%, transparent)`},children:[`preview`,`source`].map(r=>{let i=e===r;return(0,Z.jsx)(n,{variant:`ghost`,onClick:()=>t(r),className:`h-auto rounded border-0 px-2.5 py-1 text-body-small-default hover:bg-transparent`,style:{backgroundColor:i?`var(--surface-lift)`:`transparent`,color:i?`var(--content-default)`:`var(--content-tertiary)`,boxShadow:i?`0 1px 2px rgba(0,0,0,0.15)`:void 0},children:r===`preview`?`Preview`:`Source`},r)})})}function Q({name:e,mimeType:t,size:n,rightContent:r}){return(0,Z.jsxs)(`div`,{className:`flex items-center justify-between gap-3 border-b px-3 py-2.5`,style:{borderColor:`var(--border-element)`},children:[(0,Z.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,Z.jsx)(_e,{mimeType:t}),(0,Z.jsx)(`span`,{className:`truncate text-body-medium-default`,style:{color:`var(--content-default)`},children:e}),n!=null&&(0,Z.jsx)(`span`,{className:`shrink-0 text-body-small-default`,style:{color:`var(--content-tertiary)`},children:J(n)})]}),r]})}function ye({assistantId:e,path:t,mimeType:n,showHidden:r}){let{data:i,isLoading:o}=a({queryFn:async()=>{let n=await z({path:{assistant_id:e},query:{path:t,...r?{showHidden:`true`}:{}},parseAs:`blob`});if(n.error)throw n.error;return n.data},queryKey:[`assistantsWorkspaceFileContentRetrieve`,{assistantId:e,path:t,showHidden:r}],enabled:!!t}),[s,c]=(0,X.useState)(null);return(0,X.useEffect)(()=>{if(!i)return;let e=URL.createObjectURL(i);return c(e),()=>{URL.revokeObjectURL(e),c(null)}},[i]),o?(0,Z.jsx)(`div`,{className:`flex items-center justify-center py-12`,children:(0,Z.jsx)(T,{className:`h-6 w-6 animate-spin`,style:{color:`var(--content-tertiary)`}})}):s?n.startsWith(`image/`)?(0,Z.jsx)(`div`,{className:`flex items-center justify-center p-4`,children:(0,Z.jsx)(`img`,{src:s,alt:t.split(`/`).pop()??`image`,className:`max-h-[70vh] max-w-full rounded object-contain`})}):n.startsWith(`video/`)?(0,Z.jsx)(`div`,{className:`flex items-center justify-center p-4`,children:(0,Z.jsx)(`video`,{src:s,controls:!0,className:`max-h-[70vh] max-w-full rounded`})}):null:null}function be({assistantId:e,path:t,name:r,mimeType:i,size:a,modifiedAt:o,showHidden:s}){let{isDownloading:c,error:l,download:u}=me({assistantId:e,path:t,name:r,showHidden:s});return(0,Z.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,Z.jsx)(Q,{name:r,mimeType:i,size:a}),(0,Z.jsx)(`div`,{className:`flex flex-1 items-center justify-center p-8`,children:(0,Z.jsxs)(`div`,{className:`w-full max-w-sm rounded-lg border p-6 text-center`,style:{borderColor:`var(--border-base)`,backgroundColor:`var(--surface-lift)`},children:[(0,Z.jsx)(y,{className:`mx-auto h-10 w-10`,style:{color:`var(--content-tertiary)`}}),(0,Z.jsx)(`p`,{className:`mt-3 text-body-medium-default`,style:{color:`var(--content-default)`},children:r}),(0,Z.jsxs)(`div`,{className:`mt-2 space-y-1`,children:[(0,Z.jsx)(`p`,{className:`text-body-small-default`,style:{color:`var(--content-secondary, var(--content-tertiary))`},children:i}),(0,Z.jsx)(`p`,{className:`text-body-small-default`,style:{color:`var(--content-secondary, var(--content-tertiary))`},children:J(a,`Unknown size`)}),o&&(0,Z.jsxs)(`p`,{className:`text-body-small-default`,style:{color:`var(--content-secondary, var(--content-tertiary))`},children:[`Modified: `,new Date(o).toLocaleString()]})]}),(0,Z.jsx)(n,{variant:`outlined`,size:`compact`,leftIcon:c?(0,Z.jsx)(T,{className:`animate-spin`,"aria-hidden":!0}):(0,Z.jsx)(p,{"aria-hidden":!0}),onClick:u,disabled:c,"aria-label":`Download ${r}`,className:`mt-4`,children:c?`Downloading…`:`Download`}),l&&(0,Z.jsx)(`p`,{className:`mt-2 text-body-small-default`,style:{color:`var(--system-error)`},children:`Download failed. Try again.`})]})})]})}function xe({assistantId:e,selectedPath:t,showHidden:r,viewMode:s,onChangeViewMode:c,onBrowse:l,pathRename:u,pathDelete:d}){let f=i(),{data:p,isLoading:m}=a({...ge({path:{assistant_id:e},query:{path:t??``,showHidden:r}}),enabled:!!t}),[h,g]=(0,X.useState)(null),[_,v]=(0,X.useState)(null);(0,X.useEffect)(()=>{if(!u)return;let{from:e,to:t}=u,n=n=>n===e?t:n.startsWith(`${e}/`)?t+n.slice(e.length):n;g(e=>e==null?e:n(e)),v(e=>e==null?e:{...e,path:n(e.path)})},[u]),(0,X.useEffect)(()=>{if(!d)return;let{path:e}=d,t=t=>t===e||t.startsWith(`${e}/`);g(e=>e!=null&&t(e)?null:e),v(e=>e!=null&&t(e.path)?null:e)},[d]);let y=h!=null&&h===t,b=p?.content??``,S=_?.path===t?_.content:b,C=()=>{g(null),v(null)},w=o({mutationFn:async({path:t,content:n})=>{let{error:r,response:i}=await re({path:{assistant_id:e},body:{path:t,content:n,encoding:`utf8`},throwOnError:!1});if(!i?.ok||r)throw Error(`Failed to save file`)},onSuccess:(e,t)=>{g(e=>e===t.path?null:e),v(e=>e?.path===t.path?null:e),f.invalidateQueries({queryKey:[`assistantsWorkspaceFileRetrieve`]})}}),E=S!==b,D=(0,X.useCallback)(()=>{t&&E&&!w.isPending&&w.mutate({path:t,content:S})},[t,E,w,S]);if(!t)return(0,Z.jsxs)(`div`,{className:`flex h-full flex-col items-center justify-center gap-3`,children:[(0,Z.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`Select a file to view`}),l&&(0,Z.jsx)(n,{type:`button`,onClick:l,leftIcon:(0,Z.jsx)(x,{"aria-hidden":!0}),className:`sm:hidden`,children:`Browse files`})]});if(m)return(0,Z.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,Z.jsx)(T,{className:`h-6 w-6 animate-spin`,style:{color:`var(--content-tertiary)`}})});if(!p)return(0,Z.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,Z.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`File not found`})});let O=p.mimeType??`application/octet-stream`,k=p.name??t.split(`/`).pop()??t,A=I(k,O),j=de(k,O),M=p.content!=null&&!A&&!j,N=t?pe(t):!0,P=y&&(0,Z.jsx)(oe,{isDirty:E,isSaving:w.isPending,error:w.isError?`Save failed`:null,onSave:D,onDiscard:C});if(A&&p.content!=null){let e=y?S:p.content;return(0,Z.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,Z.jsx)(Q,{name:k,mimeType:O,rightContent:(0,Z.jsx)(ve,{viewMode:s,onChange:e=>{y&&C(),c(e)}})}),(0,Z.jsxs)(`div`,{className:`relative flex-1 overflow-hidden`,children:[(0,Z.jsx)(q,{content:e,fileName:k,mimeType:O,showEdit:!N&&s===`source`,isEditing:y,onToggleEdit:()=>y?C():g(t)}),s===`preview`?(0,Z.jsx)(`div`,{className:`h-full overflow-auto px-6 py-4`,style:{color:`var(--content-default)`},children:(0,Z.jsx)(L,{content:e})}):y?(0,Z.jsx)(K,{value:S,onChange:e=>v({path:t,content:e}),onSave:D}):(0,Z.jsx)(G,{content:p.content,readOnly:N,onStartEdit:()=>g(t)})]}),P]})}if(j&&p.content!=null){let e=y?S:p.content,n=fe(e);return(0,Z.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,Z.jsx)(Q,{name:k,mimeType:O,rightContent:(0,Z.jsx)(ve,{viewMode:s,onChange:e=>{y&&C(),c(e)}})}),(0,Z.jsxs)(`div`,{className:`relative flex-1 overflow-hidden`,children:[(0,Z.jsx)(q,{content:s===`preview`?n:e,downloadContent:e,fileName:k,mimeType:O,showEdit:!N&&s===`source`,isEditing:y,onToggleEdit:()=>y?C():g(t)}),s===`preview`?(0,Z.jsx)(G,{content:n,readOnly:!0,whiteSpace:`pre`}):y?(0,Z.jsx)(K,{value:S,onChange:e=>v({path:t,content:e}),onSave:D}):(0,Z.jsx)(G,{content:p.content,readOnly:N,onStartEdit:()=>g(t)})]}),P]})}return M?(0,Z.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,Z.jsx)(Q,{name:k,mimeType:O,size:p.size}),(0,Z.jsxs)(`div`,{className:`relative flex-1 overflow-hidden`,children:[(0,Z.jsx)(q,{content:y?S:p.content??``,fileName:k,mimeType:O,showEdit:!N,isEditing:y,onToggleEdit:()=>y?C():g(t)}),y?(0,Z.jsx)(K,{value:S,onChange:e=>v({path:t,content:e}),onSave:D}):(0,Z.jsx)(G,{content:p.content??``,readOnly:N,onStartEdit:()=>g(t)})]}),P]}):O.startsWith(`image/`)||O.startsWith(`video/`)?(0,Z.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,Z.jsx)(Q,{name:k,mimeType:O,size:p.size,rightContent:(0,Z.jsx)(he,{assistantId:e,path:t,name:k,showHidden:r})}),(0,Z.jsx)(`div`,{className:`flex-1 overflow-auto`,children:(0,Z.jsx)(ye,{assistantId:e,path:t,mimeType:O,showHidden:r})})]}):(0,Z.jsx)(be,{assistantId:e,path:t,name:k,mimeType:O,size:p.size,modifiedAt:p.modifiedAt,showHidden:r})}function Se(e,t){if(t===`name`)return e;let n=e.slice();return n.sort((e,t)=>{let n=e.size??null,r=t.size??null;return n===null&&r===null?(e.name??``).localeCompare(t.name??``):n===null?1:r===null?-1:n===r?(e.name??``).localeCompare(t.name??``):r-n}),n}async function Ce(e,t,n,r){let i=n.toLowerCase(),a=r?.toLowerCase(),{data:o}=await R({path:{assistant_id:e},query:t?{path:t}:{}});if(o?.entries?.some(e=>{let t=(e.name??``).toLowerCase();return t===i&&t!==a}))throw Error(`"${n}" already exists here.`)}function we({entry:e}){return e.type===`directory`?(0,Z.jsx)(S,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-tertiary)`}}):e.mimeType?.startsWith(`image/`)?(0,Z.jsx)(C,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-tertiary)`}}):e.mimeType?.startsWith(`video/`)?(0,Z.jsx)(w,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-tertiary)`}}):(0,Z.jsx)(_,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-tertiary)`}})}function Te({entry:e,assistantId:t,expandedPaths:n,selectedPath:r,showHidden:i,sortMode:o,searchLower:s,onToggleExpand:c,onSelectPath:l,onRequestDelete:f,onRequestRename:p,onRequestCreate:m,depth:h}){let _=e.path??``,y=e.name??``,b=e.type===`directory`,x=n.has(_),S=r===_,C=y.startsWith(`.`),w=!pe(_),T=b&&(x||s.length>0),{data:D}=a({...v({assistantId:t,path:_,showHidden:i,includeDirSizes:o===`size`}),enabled:b&&T}),O=(0,X.useMemo)(()=>Se(D?.entries??[],o),[D?.entries,o]),A=s===``||y.toLowerCase().includes(s);if(s!==``&&!b&&!A)return null;let M=(0,Z.jsxs)(`button`,{onClick:()=>{b?c(_):l(_)},className:`flex w-full items-center gap-1.5 px-2 py-1 text-left text-body-medium-lighter transition-colors hover:bg-[var(--surface-hover)]`,style:{paddingLeft:`${h*14+8}px`,paddingRight:`8px`,color:S?`var(--content-default)`:C?`var(--content-tertiary)`:`var(--content-default)`,backgroundColor:S?`color-mix(in oklab, var(--primary-base) 12%, transparent)`:void 0,opacity:C&&!S?.7:1},children:[b?T?(0,Z.jsx)(u,{className:`h-3 w-3 shrink-0`,style:{color:`var(--content-tertiary)`}}):(0,Z.jsx)(d,{className:`h-3 w-3 shrink-0`,style:{color:`var(--content-tertiary)`}}):(0,Z.jsx)(`span`,{className:`h-3 w-3 shrink-0`}),(0,Z.jsx)(we,{entry:e}),(0,Z.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:y}),e.size!=null&&(0,Z.jsx)(`span`,{className:`shrink-0 text-label-medium-default tabular-nums`,style:{color:`var(--content-tertiary)`},children:J(e.size)})]});return(0,Z.jsxs)(`div`,{children:[w?(0,Z.jsxs)(j.Root,{children:[(0,Z.jsx)(j.Trigger,{children:M}),(0,Z.jsxs)(j.Content,{children:[b&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(j.Item,{leftIcon:(0,Z.jsx)(g,{className:`h-3.5 w-3.5`}),onSelect:()=>m({kind:`file`,parentPath:_}),children:`New File`}),(0,Z.jsx)(j.Item,{leftIcon:(0,Z.jsx)(Y,{className:`h-3.5 w-3.5`}),onSelect:()=>m({kind:`folder`,parentPath:_}),children:`New Folder`}),(0,Z.jsx)(j.Separator,{})]}),(0,Z.jsx)(j.Item,{leftIcon:(0,Z.jsx)(k,{className:`h-3.5 w-3.5`}),onSelect:()=>f({path:_,name:y,isDirectory:b}),children:`Delete`}),(0,Z.jsx)(j.Item,{leftIcon:(0,Z.jsx)(E,{className:`h-3.5 w-3.5`}),onSelect:()=>p({path:_,name:y,isDirectory:b}),children:`Rename`})]})]}):M,b&&T&&O.length>0&&(0,Z.jsx)(`div`,{children:O.map(e=>(0,Z.jsx)(Te,{entry:e,assistantId:t,expandedPaths:n,selectedPath:r,showHidden:i,sortMode:o,searchLower:s,onToggleExpand:c,onSelectPath:l,onRequestDelete:f,onRequestRename:p,onRequestCreate:m,depth:h+1},e.path))})]})}function Ee({title:e,placeholder:t,confirmLabel:r,pendingLabel:i,initialName:a,onCancel:o,onConfirm:s,pending:c,error:l}){let u=(0,X.useRef)(null),[d,f]=(0,X.useState)(a??``),p=d.trim(),m=p.length>0&&(/[/\\]/.test(p)||p===`.`||p===`..`),h=p.length>0&&!m&&!c;return(0,Z.jsx)(N.Root,{open:!0,onOpenChange:e=>{!e&&!c&&o()},children:(0,Z.jsx)(N.Content,{size:`sm`,hideCloseButton:!0,"aria-describedby":void 0,onOpenAutoFocus:e=>{e.preventDefault();let t=u.current;t&&(t.focus(),requestAnimationFrame(()=>{t.setSelectionRange(0,t.value.length)}))},onEscapeKeyDown:e=>{e.preventDefault(),e.stopPropagation(),c||o()},children:(0,Z.jsxs)(`form`,{onSubmit:e=>{e.preventDefault(),h&&s(p)},children:[(0,Z.jsx)(N.Header,{children:(0,Z.jsx)(N.Title,{children:e})}),(0,Z.jsx)(N.Body,{children:(0,Z.jsx)(M,{ref:u,label:`Name`,value:d,onChange:e=>f(e.target.value),placeholder:t,errorText:l??(m?`Enter a single file or folder name without slashes.`:void 0),autoComplete:`off`,spellCheck:!1,fullWidth:!0})}),(0,Z.jsxs)(N.Footer,{children:[(0,Z.jsx)(n,{type:`button`,variant:`outlined`,onClick:o,disabled:c,children:`Cancel`}),(0,Z.jsx)(n,{type:`submit`,variant:`primary`,disabled:!h,children:c?i:r})]})]})})})}function $({assistantId:e,expandedPaths:t,selectedPath:r,showHidden:s,sortMode:c,onToggleExpand:l,onExpandPath:u,onSelectPath:d,onToggleShowHidden:f,onChangeSortMode:p,onPathDeleted:g,onPathRenamed:_}){let y=i(),[x,S]=(0,X.useState)(``),C=x.trim().toLowerCase(),[w,T]=(0,X.useState)(!1),[E,D]=(0,X.useState)(null),[k,j]=(0,X.useState)(null),N=(0,X.useCallback)(()=>{D(null),j(null)},[]),{data:P,isLoading:F}=a(v({assistantId:e,showHidden:s,includeDirSizes:c===`size`})),I=(0,X.useMemo)(()=>Se(P?.entries??[],c),[P?.entries,c]),L=(0,X.useCallback)(()=>{for(let e of[b,`assistantsWorkspaceFileRetrieve`,`assistantsWorkspaceFileContentRetrieve`])y.invalidateQueries({queryKey:[e]})},[y]),R=o({mutationFn:async t=>{let n=t.parentPath?`${t.parentPath}/${t.name}`:t.name;await Ce(e,t.parentPath,t.name);let{error:r,response:i}=t.kind===`file`?await re({path:{assistant_id:e},body:{path:n,content:``,encoding:`utf8`},throwOnError:!1}):await ie({path:{assistant_id:e},body:{path:n},throwOnError:!1});if(r||!i?.ok)throw Error(typeof r==`string`?r:`Failed to create — check the name and try again.`);return{...t,path:n}},onSuccess:e=>{N(),L(),e.parentPath&&u(e.parentPath),e.kind===`file`?d(e.path):u(e.path)},onError:e=>{j(e instanceof Error?e.message:`Failed to create.`)}}),z=o({mutationFn:async t=>{let n=t.oldPath.lastIndexOf(`/`),r=n===-1?``:t.oldPath.slice(0,n),i=t.oldPath.slice(n+1),a=r?`${r}/${t.newName}`:t.newName;await Ce(e,r,t.newName,i);let{error:o,response:s}=await te({path:{assistant_id:e},body:{oldPath:t.oldPath,newPath:a},throwOnError:!1});if(o||!s?.ok)throw Error(typeof o==`string`?o:`Failed to rename — check the name and try again.`);return{oldPath:t.oldPath,newPath:a}},onSuccess:({oldPath:e,newPath:t})=>{N(),L(),_(e,t)},onError:e=>{j(e instanceof Error?e.message:`Failed to rename.`)}}),B=(0,X.useCallback)(e=>{j(null),D({type:`create`,...e})},[]),V=(0,X.useCallback)(e=>{j(null),D({type:`rename`,path:e.path,name:e.name})},[]),[H,U]=(0,X.useState)(null),W=o({mutationFn:async t=>{let{error:n,response:r}=await ne({path:{assistant_id:e},body:{path:t.path},throwOnError:!1});if(n||!r?.ok)throw Error(typeof n==`string`?n:`Failed to delete — try again.`);return t},onSuccess:e=>{U(null),L(),g(e.path)}}),ae=(0,X.useCallback)(e=>{W.reset(),U(e)},[W]);return(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(`div`,{className:`flex items-center justify-between border-b px-3 py-2.5`,style:{borderColor:`var(--border-element)`},children:[(0,Z.jsx)(`span`,{className:`text-body-medium-default`,style:{color:`var(--content-secondary)`},children:`Files`}),(0,Z.jsxs)(`div`,{className:`flex items-center gap-0.5`,children:[(0,Z.jsx)(n,{type:`button`,variant:`ghost`,size:`compact`,iconOnly:c===`size`?(0,Z.jsx)(ce,{"aria-hidden":!0}):(0,Z.jsx)(se,{"aria-hidden":!0}),onClick:()=>p(c===`size`?`name`:`size`),"aria-label":c===`size`?`Sort by name`:`Sort by size`,title:c===`size`?`Sorted by size — switch to name`:`Sorted by name — switch to size`,tintColor:c===`size`?`var(--content-default)`:`var(--content-tertiary)`}),(0,Z.jsx)(n,{type:`button`,variant:`ghost`,size:`compact`,iconOnly:s?(0,Z.jsx)(h,{"aria-hidden":!0}):(0,Z.jsx)(m,{"aria-hidden":!0}),onClick:f,"aria-label":s?`Hide hidden files`:`Show hidden files`,title:s?`Hide hidden files`:`Show hidden files`,tintColor:s?`var(--content-default)`:`var(--content-tertiary)`}),(0,Z.jsx)(De,{open:w,onOpenChange:T,onSelectKind:e=>{T(!1),B({kind:e,parentPath:``})}})]})]}),(0,Z.jsx)(`div`,{className:`px-3 py-2`,children:(0,Z.jsxs)(`div`,{className:`relative`,children:[(0,Z.jsx)(M,{type:`text`,value:x,onChange:e=>S(e.target.value),placeholder:`Search files`,leftIcon:(0,Z.jsx)(O,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),fullWidth:!0,spellCheck:!1,autoComplete:`off`}),x&&(0,Z.jsx)(n,{type:`button`,variant:`ghost`,size:`compact`,iconOnly:(0,Z.jsx)(A,{"aria-hidden":!0}),onClick:()=>S(``),"aria-label":`Clear search`,className:`absolute right-1.5 top-1/2 -translate-y-1/2`,tintColor:`var(--content-tertiary)`})]})}),(0,Z.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto py-1`,children:F?(0,Z.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,Z.jsx)(`div`,{className:`h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent`,style:{color:`var(--content-tertiary)`}})}):I.length?I.map(n=>(0,Z.jsx)(Te,{entry:n,assistantId:e,expandedPaths:t,selectedPath:r,showHidden:s,sortMode:c,searchLower:C,onToggleExpand:l,onSelectPath:d,onRequestDelete:ae,onRequestRename:V,onRequestCreate:B,depth:0},n.path)):(0,Z.jsx)(`p`,{className:`px-3 py-4 text-center text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`No files found`})}),E?.type===`create`&&(0,Z.jsx)(Ee,{title:E.kind===`file`?`New File`:`New Folder`,placeholder:E.kind===`file`?`filename.md`:`folder-name`,confirmLabel:`Create`,pendingLabel:`Creating…`,onCancel:N,onConfirm:e=>{j(null),R.mutate({kind:E.kind,parentPath:E.parentPath,name:e})},pending:R.isPending,error:k},`create-${E.kind}-${E.parentPath}`),E?.type===`rename`&&(0,Z.jsx)(Ee,{title:`Rename`,placeholder:E.name,confirmLabel:`Rename`,pendingLabel:`Renaming…`,initialName:E.name,onCancel:N,onConfirm:e=>{if(e===E.name){N();return}j(null),z.mutate({oldPath:E.path,newName:e})},pending:z.isPending,error:k},`rename-${E.path}`),(0,Z.jsx)(ee,{open:H!==null,title:H?.isDirectory?`Delete Folder`:`Delete File`,message:(0,Z.jsxs)(Z.Fragment,{children:[`Are you sure you want to delete`,` `,(0,Z.jsx)(`span`,{style:{color:`var(--content-default)`},children:H?.name}),H?.isDirectory?` and all of its contents`:``,`? This cannot be undone.`,W.error&&(0,Z.jsx)(`span`,{className:`mt-2 block`,style:{color:`var(--system-negative-strong)`},children:W.error.message})]}),confirmLabel:W.isPending?`Deleting…`:`Delete`,destructive:!0,isPending:W.isPending,onConfirm:()=>{H&&W.mutate(H)},onCancel:()=>U(null)})]})}function De({open:e,onOpenChange:t,onSelectKind:r}){return V()?(0,Z.jsxs)(P.Root,{open:e,onOpenChange:t,children:[(0,Z.jsx)(P.Trigger,{asChild:!0,children:(0,Z.jsx)(n,{type:`button`,variant:`ghost`,size:`compact`,iconOnly:(0,Z.jsx)(D,{"aria-hidden":!0}),"aria-label":`Create new file or folder`,title:`New file or folder`,tintColor:`var(--content-tertiary)`})}),(0,Z.jsxs)(P.Content,{children:[(0,Z.jsx)(P.Header,{className:`sr-only`,children:(0,Z.jsx)(P.Title,{children:`Create new`})}),(0,Z.jsxs)(P.Body,{className:`pt-0`,children:[(0,Z.jsx)(F,{icon:g,label:`New File`,onSelect:()=>r(`file`)}),(0,Z.jsx)(F,{icon:Y,label:`New Folder`,onSelect:()=>r(`folder`)})]})]})]}):(0,Z.jsxs)(f.Root,{open:e,onOpenChange:t,children:[(0,Z.jsx)(f.Trigger,{asChild:!0,children:(0,Z.jsx)(n,{type:`button`,variant:`ghost`,size:`compact`,iconOnly:(0,Z.jsx)(D,{"aria-hidden":!0}),"aria-label":`Create new file or folder`,title:`New file or folder`,tintColor:`var(--content-tertiary)`})}),(0,Z.jsxs)(f.Content,{align:`end`,sideOffset:4,children:[(0,Z.jsx)(f.Item,{leftIcon:(0,Z.jsx)(g,{className:`h-3.5 w-3.5`}),onSelect:()=>r(`file`),children:`New File`}),(0,Z.jsx)(f.Item,{leftIcon:(0,Z.jsx)(Y,{className:`h-3.5 w-3.5`}),onSelect:()=>r(`folder`),children:`New Folder`})]})]})}function Oe(e){let t=e.split(`/`),n=new Set;for(let e=1;e<t.length;e++)n.add(t.slice(0,e).join(`/`));return n}function ke({assistantId:e}){let[t,n]=r(),[i,a]=(0,X.useState)(()=>{let e=t.get(`file`);return e?Oe(e):new Set}),[o,s]=(0,X.useState)(()=>t.get(`file`)),[c,l]=(0,X.useState)(!1),[u,d]=(0,X.useState)(()=>t.get(`sort`)===`size`?`size`:`name`),[f,p]=(0,X.useState)(`preview`);(0,X.useEffect)(()=>{let e=t.get(`file`);e&&(s(e),a(t=>{let n=new Set(t);for(let t of Oe(e))n.add(t);return n.size===t.size?t:n}),n(e=>{let t=new URLSearchParams(e);return t.delete(`file`),t},{replace:!0}))},[t,n]);let m=(0,X.useCallback)(e=>{a(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),h=(0,X.useCallback)(e=>{a(t=>{if(t.has(e))return t;let n=new Set(t);return n.add(e),n})},[]),[g,_]=(0,X.useState)(!1),v=(0,X.useCallback)(e=>{s(e),_(!1)},[]),[y,b]=(0,X.useState)(null),x=(0,X.useCallback)(e=>{let t=t=>t===e||t.startsWith(`${e}/`);s(e=>e!==null&&t(e)?null:e),a(e=>{let n=new Set([...e].filter(e=>!t(e)));return n.size===e.size?e:n}),b({path:e})},[]),[S,C]=(0,X.useState)(null),w={assistantId:e,expandedPaths:i,selectedPath:o,showHidden:c,sortMode:u,onToggleExpand:m,onExpandPath:h,onSelectPath:v,onToggleShowHidden:()=>l(e=>!e),onChangeSortMode:d,onPathDeleted:x,onPathRenamed:(0,X.useCallback)((e,t)=>{let n=n=>n===e?t:n.startsWith(`${e}/`)?t+n.slice(e.length):n;s(e=>e===null?e:n(e)),a(e=>{let t=!1,r=new Set;for(let i of e){let e=n(i);e!==i&&(t=!0),r.add(e)}return t?r:e}),C({from:e,to:t})},[])};return(0,Z.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col gap-4`,children:[(0,Z.jsx)(`div`,{className:`flex items-center sm:hidden`,children:(0,Z.jsx)(W,{onClick:()=>_(!0)})}),(0,Z.jsx)(ae,{open:g,onClose:()=>_(!1),title:`Files`,children:(0,Z.jsx)($,{...w})}),(0,Z.jsxs)(`div`,{className:`grid min-h-0 flex-1 grid-cols-1 gap-4 sm:grid-cols-[320px_1fr]`,children:[(0,Z.jsx)(`div`,{className:`hidden min-h-0 min-w-0 flex-col overflow-hidden rounded-xl border sm:flex`,style:{backgroundColor:`var(--surface-overlay)`,borderColor:`var(--border-base)`},children:(0,Z.jsx)($,{...w})}),(0,Z.jsx)(`div`,{className:`flex min-h-0 min-w-0 flex-col overflow-hidden rounded-xl border`,style:{backgroundColor:`var(--surface-overlay)`,borderColor:`var(--border-base)`},children:(0,Z.jsx)(xe,{assistantId:e,selectedPath:o,showHidden:c,viewMode:f,onChangeViewMode:p,onBrowse:()=>_(!0),pathRename:S,pathDelete:y})})]})]})}function Ae(){return(0,Z.jsx)(ke,{assistantId:U()})}export{Ae as WorkspacePage};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./queryOptions-CMSBCFOf.js";import{t}from"./createLucideIcon-CAM1RhH8.js";import{Hr as n}from"./sdk.gen-
|
|
1
|
+
import{t as e}from"./queryOptions-CMSBCFOf.js";import{t}from"./createLucideIcon-CAM1RhH8.js";import{Hr as n}from"./sdk.gen-DeyOX3Kb.js";var r=t(`file`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}]]),i=`assistantsWorkspaceTreeRetrieve`;function a({assistantId:t,path:r=``,showHidden:a=!1,includeDirSizes:o=!1}){return e({queryKey:[i,t,{path:r,showHidden:a,includeDirSizes:o}],queryFn:async()=>{let e={};r&&(e.path=r),a&&(e.showHidden=`true`),o&&(e.includeDirSizes=`true`);let{data:i,error:s}=await n({path:{assistant_id:t},query:e});if(s)throw s;if(!i)throw Error(`Failed to load workspace tree`);return i}})}export{a as n,r,i as t};
|