@vellumai/web 0.11.1 → 0.11.2-staging.2
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/README.md +1 -1
- package/dist/assets/{AnimatePresence-D23js3-M.js → AnimatePresence-CHo6D7IH.js} +1 -1
- package/dist/assets/{BundleConfirmPage-C1-BZKI9.js → BundleConfirmPage-j6ko1Z2E.js} +1 -1
- package/dist/assets/{a2a-invite-CfhpXDTT.js → a2a-invite-Bld7VHkJ.js} +1 -1
- package/dist/assets/{about-page-Dtg-I99x.js → about-page-BBS2ZLwu.js} +1 -1
- package/dist/assets/access-CVnesk0m.js +1 -0
- package/dist/assets/{account-page-DP2HVinz.js → account-page-mMG1nL1O.js} +1 -1
- package/dist/assets/{account-shell-BxZ339N3.js → account-shell-BmH96-Ie.js} +1 -1
- package/dist/assets/{acp-run-actions-BGbBYETY.js → acp-run-actions-zSUs8U3N.js} +1 -1
- package/dist/assets/acp-run-detail-panel-SN6NIuW5.js +5 -0
- package/dist/assets/{acp-run-store-CmGaPJm1.js → acp-run-store-DdzY8U9Y.js} +1 -1
- package/dist/assets/activity-steps-panel-bduSS8_d.js +1 -0
- package/dist/assets/{add-credential-modal-DQZ43BJU.js → add-credential-modal-4zzd0MPK.js} +1 -1
- package/dist/assets/add-credits-modal-DNYP2NMD.js +1 -0
- package/dist/assets/ai-page-BMqECtJX.js +1 -0
- package/dist/assets/android-consumption-only-D3L1Nc41.js +1 -0
- package/dist/assets/{animated-avatar-CDeJNhwm.js → animated-avatar-B0vCEKkY.js} +1 -1
- package/dist/assets/{api-C8TlQNEU.js → api-CGsj1Pig.js} +1 -1
- package/dist/assets/{api-key-screen-CoLZh8vw.js → api-key-screen-tqtaQUVf.js} +1 -1
- package/dist/assets/api-pN-AgY8Q.js +1 -0
- package/dist/assets/{app-card-DgDV-yMd.js → app-card-BJigGog3.js} +1 -1
- package/dist/assets/{app-info-Bdfw54u1.js → app-info-BDq_9VB8.js} +1 -1
- package/dist/assets/archive-BQ3zdIPv.js +1 -0
- package/dist/assets/{archive-redirect-page-CWJIEUlH.js → archive-redirect-page-Cxcg7zGt.js} +1 -1
- package/dist/assets/{assistant-feature-flag-store-CMUNSAPL.js → assistant-feature-flag-store-BvLDPeej.js} +1 -1
- package/dist/assets/assistant-identity-store-B51BX78j.js +1 -0
- package/dist/assets/{assistant-status-panel-Bt_19-BI.js → assistant-status-panel-DyjhJvK6.js} +1 -1
- package/dist/assets/auth-store-C9aYqB9U.js +2 -0
- package/dist/assets/{avatar-random-IysJ0Bdt.js → avatar-random-BR8w4F35.js} +1 -1
- package/dist/assets/{avatar-renderer-3EVhZ7TB.js → avatar-renderer-TpNgmnU1.js} +1 -1
- package/dist/assets/background-task-actions-DmocXKSr.js +1 -0
- package/dist/assets/{background-task-detail-panel-DqXuwo9q.js → background-task-detail-panel-DCtBOnvF.js} +1 -1
- package/dist/assets/{background-task-store-CN04oS2z.js → background-task-store-DpOSZFT8.js} +1 -1
- package/dist/assets/billing-page-TF_LgX6K.js +3 -0
- package/dist/assets/{billing-redirect-page-CiHoDQHE.js → billing-redirect-page-QFlD3jYy.js} +1 -1
- package/dist/assets/{bookmarks-page-Bk04EUIg.js → bookmarks-page-Brvj5Jf6.js} +1 -1
- package/dist/assets/browser-CcdNg0HN.js +2 -0
- package/dist/assets/build-state-9uUe0jN5.js +1 -0
- package/dist/assets/{capture-error-FWzaVb8P.js → capture-error-CqtAGHQu.js} +1 -1
- package/dist/assets/channels-page-route-8vJJE2LN.js +9 -0
- package/dist/assets/{chat-avatar-CIF_o6y5.js → chat-avatar-B5fx9Xm3.js} +1 -1
- package/dist/assets/{chat-layout-slots-store-C325hn1X.js → chat-layout-slots-store-DP8MgnXi.js} +1 -1
- package/dist/assets/chat-markdown-message-B7qvlO44.js +1 -0
- package/dist/assets/checkbox-PU47Djxg.js +1 -0
- package/dist/assets/checkout-continuation-CYDyrqci.js +1 -0
- package/dist/assets/checkout-page-MpIPAAgf.js +1 -0
- package/dist/assets/checkout-return-target-BStfEab4.js +1 -0
- package/dist/assets/{client-feature-flag-store-Bg5XEI2b.js → client-feature-flag-store-Cw39NfCq.js} +1 -1
- package/dist/assets/{client-identity-bdtPpHZK.js → client-identity-BZBfwdGQ.js} +1 -1
- package/dist/assets/{command-palette-B3TVIQUH.js → command-palette-Bd1GTwZQ.js} +1 -1
- package/dist/assets/command-palette-window-page-CoweYsZl.js +1 -0
- package/dist/assets/{community-page-BZmxfsXK.js → community-page-BWMwSeEZ.js} +1 -1
- package/dist/assets/{confirm-dialog-DZX6LhLy.js → confirm-dialog-j9o2h3xs.js} +1 -1
- package/dist/assets/{connect-page-D_I1YM62.js → connect-page-BxSNhZ8N.js} +1 -1
- package/dist/assets/{consent-controls-CiKmEzBn.js → consent-controls-Bs63UL5k.js} +1 -1
- package/dist/assets/consent-logPJwKV.js +1 -0
- package/dist/assets/{contacts-gateway-C628mrY_.js → contacts-gateway-DRzp5PC6.js} +1 -1
- package/dist/assets/{contacts-page-route--hTzWT8X.js → contacts-page-route-BOpVOsYK.js} +1 -1
- package/dist/assets/{conversation-cache-BzPdBPXN.js → conversation-cache-D1AJdwZd.js} +1 -1
- package/dist/assets/{conversation-list-fetchers-BZnx9EMN.js → conversation-list-fetchers-C6W8PkvR.js} +1 -1
- package/dist/assets/conversation-navigation-Bf3cDRKh.js +1 -0
- package/dist/assets/{conversation-queries-3taor2DZ.js → conversation-queries-BBj4FfQn.js} +1 -1
- package/dist/assets/{conversation-store-C0tvFESx.js → conversation-store-CTMy9QPV.js} +1 -1
- package/dist/assets/{copy-to-clipboard-DaTa8Tbi.js → copy-to-clipboard-DgY-nZpm.js} +1 -1
- package/dist/assets/{credential-entry-page-BCAYmsDK.js → credential-entry-page-CreYYbwf.js} +1 -1
- package/dist/assets/credentials-page-DBLT8nUI.js +1 -0
- package/dist/assets/csv-preview-cEf_PW-P.js +4 -0
- package/dist/assets/{danger-zone-redirect-page-BcdEHbAX.js → danger-zone-redirect-page-CIt8Y6Rf.js} +1 -1
- package/dist/assets/debug-page-DfPZPo6D.js +4 -0
- package/dist/assets/{deploy-dialogs-CpUMrpHq.js → deploy-dialogs-CuaO05wL.js} +1 -1
- package/dist/assets/{deploy-store-BJ-njgv-.js → deploy-store-BDIOP-i9.js} +1 -1
- package/dist/assets/{detail-card-D-5EWmAS.js → detail-card-BElAV1cp.js} +1 -1
- package/dist/assets/{detail-drawer-BglFkWVa.js → detail-drawer-Cd_EQJkJ.js} +1 -1
- package/dist/assets/detail-panel-stop-button-Bhew_kym.js +1 -0
- package/dist/assets/{detail-shell-D9L3L7AM.js → detail-shell-BjqibXNX.js} +1 -1
- package/dist/assets/developer-page-DwBmhm09.js +1 -0
- package/dist/assets/{device-settings-DXp9L4iB.js → device-settings-CUIsZfaf.js} +1 -1
- package/dist/assets/{devices-redirect-page-BNpxDctf.js → devices-redirect-page-DePzNUvG.js} +1 -1
- package/dist/assets/{diagnostics-CLHyv7Xw.js → diagnostics-DykDXmF3.js} +1 -1
- package/dist/assets/{dictation-overlay-w1YHEfFR.js → dictation-overlay-CnPWVnXc.js} +1 -1
- package/dist/assets/{dictation-overlay-page-DUWJ13of.js → dictation-overlay-page-C9yp3YUN.js} +1 -1
- package/dist/assets/{dist-BswnB-bR.js → dist-BDdp8zqz.js} +1 -1
- package/dist/assets/{dist-CQN0ZAOZ.js → dist-C68qFSny.js} +1 -1
- package/dist/assets/doctor-handoff-store-CvOwsVRo.js +1 -0
- package/dist/assets/document-viewer-container-iB63ww7P.js +2 -0
- package/dist/assets/document-viewer-page-CA1ParJ6.js +1 -0
- package/dist/assets/{domains-OaR_FpOR.js → domains-Cwi5sL0m.js} +1 -1
- package/dist/assets/{dropdown-DswWMJhz.js → dropdown-B3FHWc_n.js} +1 -1
- package/dist/assets/{edge-swipe-arbiter-store-D9XJTxJJ.js → edge-swipe-arbiter-store-BwC23ScO.js} +1 -1
- package/dist/assets/effective-timezone-BX46fWmk.js +1 -0
- package/dist/assets/{emails-page-Bqr8Buvt.js → emails-page-Bo0Bwem2.js} +1 -1
- package/dist/assets/{environment-store-Bbx4f6SQ.js → environment-store-DxX3xxt2.js} +1 -1
- package/dist/assets/esm-754moU0G.js +2 -0
- package/dist/assets/esm-Bek1ps3d.js +2 -0
- package/dist/assets/esm-CMkpCv1_.js +2 -0
- package/dist/assets/esm-ChJ8E5v0.js +1 -0
- package/dist/assets/esm-DjeyDwcY.js +2 -0
- package/dist/assets/esm-Jw5qNk7q.js +2 -0
- package/dist/assets/esm-S7iZcDlp.js +1 -0
- package/dist/assets/esm-Tsd0irpJ.js +2 -0
- package/dist/assets/esm-UxVM8v-Z.js +2 -0
- package/dist/assets/{feature-flag-catalog-CWHnoWvT.js → feature-flag-catalog-CpyCubJW.js} +1 -1
- package/dist/assets/file-DOePafLU.js +1 -0
- package/dist/assets/file-editor-BfJR0ScX.js +1 -0
- package/dist/assets/file-markdown-DnVLY_b_.js +2 -0
- package/dist/assets/{first-run-scope-7wWjJ4Tn.js → first-run-scope-CPJpXaWU.js} +1 -1
- package/dist/assets/{funnel-events-RT_kdQHK.js → funnel-events-B9hFLlxs.js} +1 -1
- package/dist/assets/general-page-BXeIQDGi.js +1 -0
- package/dist/assets/{get-memory-stats-CthVfpul.js → get-memory-stats-BnRGtUPT.js} +1 -1
- package/dist/assets/{haptics-rJpeBta-.js → haptics-C4p_Rjba.js} +2 -2
- package/dist/assets/hatching-screen-BUpSlvBy.js +1 -0
- package/dist/assets/home-page-route-BPht0PNp.js +1 -0
- package/dist/assets/hosting-screen-DxtyBx0I.js +1 -0
- package/dist/assets/identity-BplXBnQ5.js +1 -0
- package/dist/assets/{identity-page-route-CvxG-nhn.js → identity-page-route-DgmrXhhV.js} +2 -2
- package/dist/assets/index-C7_04HXM.css +2 -0
- package/dist/assets/index-CPeIfypI.js +11 -0
- package/dist/assets/{ingest-BbV11WbG.js → ingest-BzFSv_f8.js} +1 -1
- package/dist/assets/{inspect-page-D_9E5ham.js → inspect-page-C8aLJOd6.js} +4 -4
- package/dist/assets/{installed-plugins-query-6u0jUM-L.js → installed-plugins-query-3ACToZeY.js} +1 -1
- package/dist/assets/{integration-icon-tiuVoy54.js → integration-icon-B1G4FQT2.js} +1 -1
- package/dist/assets/integrations-page-Bp2Q81Qt.js +1 -0
- package/dist/assets/{intelligence-layout-CVzq_bDm.js → intelligence-layout-BRC0qkZ7.js} +1 -1
- package/dist/assets/{invalidate-memory-queries-BPL6t0Cu.js → invalidate-memory-queries-DonPN3eH.js} +1 -1
- package/dist/assets/{invalidate-plugin-queries-QmmXCyiN.js → invalidate-plugin-queries-B0OpJSUW.js} +1 -1
- package/dist/assets/{keyboard-shortcuts-redirect-page-D_Rf5W7f.js → keyboard-shortcuts-redirect-page-DTabmI62.js} +1 -1
- package/dist/assets/latest-assistant-text-CwHBWP6s.js +24 -0
- package/dist/assets/{library-detail-page-CKWN2cc7.js → library-detail-page-gC4yIWnV.js} +1 -1
- package/dist/assets/{library-page-CuNX2WgS.js → library-page-B10gnbXU.js} +1 -1
- package/dist/assets/{paperclip-DVE0scjU.js → lightbulb-NdZMkb6Y.js} +1 -1
- package/dist/assets/{local-mode-9zpgPNoq.js → local-mode-DHueA-BJ.js} +2 -2
- package/dist/assets/local-runtime-upgrade-CnY-6TiF.js +1 -0
- package/dist/assets/local-settings-Bx7FsNo5.js +1 -0
- package/dist/assets/{login-flow-llpmkEjN.js → login-flow-CQhvCbQQ.js} +1 -1
- package/dist/assets/{login-page-SG4TPVDu.js → login-page-CbWRbJDE.js} +1 -1
- package/dist/assets/{logout-page-CBGk_cSN.js → logout-page-DCyzi0V6.js} +1 -1
- package/dist/assets/{logs-layout-B4EPBuaC.js → logs-layout-CYkqau4S.js} +1 -1
- package/dist/assets/media-preview-D9t2Q84i.js +1 -0
- package/dist/assets/memory-page-route-j_3602nh.js +6 -0
- package/dist/assets/{memory-router-playground-page-ftfbkFhf.js → memory-router-playground-page-x5X662qi.js} +1 -1
- package/dist/assets/{menu-CKZtG-s_.js → menu-wESJw6y3.js} +1 -1
- package/dist/assets/message-content-B6_GZQl9.js +1 -0
- package/dist/assets/message-files-panel-C8JokH6e.js +1 -0
- package/dist/assets/messages-Dyp1xUqz.js +13 -0
- package/dist/assets/{metric-card-B-Tt9p-1.js → metric-card-DpZFp8-q.js} +1 -1
- package/dist/assets/mobile-sidebar-drawer-BwCIAm23.js +1 -0
- package/dist/assets/{modal-DwsThLGg.js → modal-xr_vw1ZO.js} +1 -1
- package/dist/assets/mutation-error-YLfUU5XL.js +1 -0
- package/dist/assets/native-anchor-D1Sy2PbD.js +1 -0
- package/dist/assets/native-biometric-DetUqtjl.js +6 -0
- package/dist/assets/native-file-B71h3csB.js +2 -0
- package/dist/assets/{navigation-resolver-Lxhf-tbn.js → navigation-resolver-CzEY-5nE.js} +1 -1
- package/dist/assets/{not-found-p1VhZpMs.js → not-found-Bh7ZsdAo.js} +1 -1
- package/dist/assets/notice-Dslxs3H6.js +1 -0
- package/dist/assets/notifications-BTG4cTbF.js +1 -0
- package/dist/assets/notifications-page-BA2BW5y6.js +1 -0
- package/dist/assets/{oauth-complete-page-KSpFlPD6.js → oauth-complete-page-3xYlafpb.js} +1 -1
- package/dist/assets/{oauth-connection-utils-D9CTptlA.js → oauth-connection-utils-BrGz4Zc5.js} +1 -1
- package/dist/assets/{oauth-popup-complete-page-C5cG_z3A.js → oauth-popup-complete-page-BtwDCi5P.js} +1 -1
- package/dist/assets/{onboarding-layout-K7X9fV8B.js → onboarding-layout-iPzXbZk1.js} +1 -1
- package/dist/assets/onboarding-store-BiTZenvP.js +1 -0
- package/dist/assets/open-workspace-file-CivxJWcw.js +2 -0
- package/dist/assets/{page-empty-state-B0da-Sm9.js → page-empty-state-D-y7eP1V.js} +1 -1
- package/dist/assets/{page-shell-CN7ioeP_.js → page-shell-ZNQR4ZTn.js} +1 -1
- package/dist/assets/pairing-page-P5ghxF0M.js +1 -0
- package/dist/assets/{panel-item-DGs4s9r-.js → panel-item-CJh95P_q.js} +1 -1
- package/dist/assets/paperclip--f908Kg3.js +1 -0
- package/dist/assets/{password-reset-page-Bq3ehgjW.js → password-reset-page-SsfAE_J-.js} +1 -1
- package/dist/assets/pdf-file-preview-Dj8vmmw-.js +1 -0
- package/dist/assets/pdf-preview-pscVmtvX.js +2 -0
- package/dist/assets/{personality-page-DeZSBQ6W.js → personality-page-Bz_rNBSs.js} +1 -1
- package/dist/assets/plans-page-BfyCgy38.js +1 -0
- package/dist/assets/platform-detection-AHYibqOx.js +1 -0
- package/dist/assets/{platform-login-notice-D-yQLWUo.js → platform-login-notice-DFmjUE9q.js} +1 -1
- package/dist/assets/platform-loopback-page-BGF_H8f_.js +1 -0
- package/dist/assets/{plugin-detail-page-DF9vmm23.js → plugin-detail-page-UUM9vxvV.js} +1 -1
- package/dist/assets/{plugins-page-BDZiCqWZ.js → plugins-page-Dae3rghA.js} +1 -1
- package/dist/assets/plugins-surface-C_pFzsVo.js +1 -0
- package/dist/assets/{popover-BFL-uOLh.js → popover-B-3isZCV.js} +1 -1
- package/dist/assets/{prefs-B6fvTCOn.js → prefs-CfRaGUUx.js} +1 -1
- package/dist/assets/preview-error-BrLE2D3A.js +1 -0
- package/dist/assets/preview-skeleton-Biw3dosM.js +1 -0
- package/dist/assets/privacy-page-BhEGh78C.js +1 -0
- package/dist/assets/{privacy-screen-D2EBZTX8.js → privacy-screen-CWVCI_KU.js} +1 -1
- package/dist/assets/provider-callback-page-DP5cKqPE.js +1 -0
- package/dist/assets/{provider-key-w3CzmGtq.js → provider-key-CgC-RLmR.js} +1 -1
- package/dist/assets/{provider-signup-page-D5mOXHww.js → provider-signup-page-BjiiJWS_.js} +1 -1
- package/dist/assets/{provisioning-targets-CT4slXZJ.js → provisioning-targets-Cah9jNBe.js} +1 -1
- package/dist/assets/{quick-input-page-COgnUnT_.js → quick-input-page-BYf7UWY4.js} +1 -1
- package/dist/assets/radio-card-nav-C_pSc4PD.js +1 -0
- package/dist/assets/{react-query.gen-BVTEjHsw.js → react-query.gen-BtYBixpk.js} +1 -1
- package/dist/assets/react-query.gen-C7om930f.js +1 -0
- package/dist/assets/{remote-gateway-session-CgxYHgOD.js → remote-gateway-session-C8pRadB2.js} +1 -1
- package/dist/assets/{research-facts-BcW4fghT.js → research-facts-BUfgocIh.js} +1 -1
- package/dist/assets/{research-mock-page-BFm8-rLU.js → research-mock-page-CGkqkXHp.js} +1 -1
- package/dist/assets/{research-onboarding-persistence-BN6g1lF7.js → research-onboarding-persistence-DwV372yy.js} +1 -1
- package/dist/assets/research-onboarding-route-DZF-B2Rk.js +50 -0
- package/dist/assets/{research-results-view-BBf2iyCA.js → research-results-view-BFZFPpev.js} +1 -1
- package/dist/assets/{resolved-assistants-store-8HQDfxZh.js → resolved-assistants-store-C6oDdTxB.js} +1 -1
- package/dist/assets/retire-confirm-dialog-8xlq4bkx.js +1 -0
- package/dist/assets/{review-terms-screen-zzdu4AQi.js → review-terms-screen-C5BAI3Rx.js} +1 -1
- package/dist/assets/{routes-GmNvdtLW.js → routes-DrfnNoYS.js} +1 -1
- package/dist/assets/routes-uGHUgv4F.js +23 -0
- package/dist/assets/runtime-upgrade-banner-DjFuJawk.js +2 -0
- package/dist/assets/{sandbox-bridge-CjHMJYTZ.js → sandbox-bridge-B5H4c27m.js} +84 -2
- package/dist/assets/{schedules-B6KivAAT.js → schedules-_ofAwdnr.js} +1 -1
- package/dist/assets/{schedules-page-BQSGUmn5.js → schedules-page-3ZE1nR6I.js} +1 -1
- package/dist/assets/{sdk.gen-BySz4QYj.js → sdk.gen-CjtCuSlS.js} +1 -1
- package/dist/assets/{sdk.gen-DVW3wpbx.js → sdk.gen-ies09CqM.js} +1 -1
- package/dist/assets/{security-redirect-page-T1J6IoOb.js → security-redirect-page-B9T_2mcB.js} +1 -1
- package/dist/assets/select-assistant-screen-D4WHHv61.js +1 -0
- package/dist/assets/semver-Bfq1LtyW.js +1 -0
- package/dist/assets/{setting-row-DEyL7IUP.js → setting-row-C4jX7c_4.js} +1 -1
- package/dist/assets/{settings-divider-Bf5WJ9ve.js → settings-divider-BkLQFMlW.js} +1 -1
- package/dist/assets/settings-layout-BmOglXDq.js +1 -0
- package/dist/assets/settings-navigation-CyH-twYD.js +1 -0
- package/dist/assets/share-feedback-modal-Rwuho_1S.js +2 -0
- package/dist/assets/{sidebar-tree-D6fHs4GK.js → sidebar-tree-Dxx5qLMQ.js} +1 -1
- package/dist/assets/{signup-page-DqfStkXZ.js → signup-page-BAEo45pt.js} +1 -1
- package/dist/assets/{signup-shell-CMXUBUal.js → signup-shell-Dwuv81sx.js} +1 -1
- package/dist/assets/site-favicon-CDH0mg6Q.js +1 -0
- package/dist/assets/{skill-detail-page-SvM2JKKY.js → skill-detail-page-DswXTTyb.js} +1 -1
- package/dist/assets/{skill-detail-panel-Cpl1Z7V3.js → skill-detail-panel-DhQFBAFF.js} +1 -1
- package/dist/assets/{skills-BL4RgwAd.js → skills-CbF2uKXV.js} +1 -1
- package/dist/assets/{skills-page-BYtAFZzb.js → skills-page-CNYM3Qsj.js} +1 -1
- package/dist/assets/{slack-setup-wizard-dVkbEE6P.js → slack-setup-wizard-DPzdheN0.js} +1 -1
- package/dist/assets/{sound-manager-DUo0lHGZ.js → sound-manager-Bv6Sc7Ut.js} +1 -1
- package/dist/assets/{sounds-page-CfeiEoJP.js → sounds-page-Bpeq0MQn.js} +1 -1
- package/dist/assets/src-Da9g8qsW.js +293 -0
- package/dist/assets/{start-screen-CqbeEmEE.js → start-screen-CSxaBn88.js} +1 -1
- package/dist/assets/subagent-detail-panel-CidisBCf.js +4 -0
- package/dist/assets/{subagent-store-DyKwOIj_.js → subagent-store-DibRR9Ij.js} +2 -2
- package/dist/assets/{superpowers-page-DltosgGe.js → superpowers-page-BouZK3P4.js} +1 -1
- package/dist/assets/{system-events-page-Cg0uMSMs.js → system-events-page-BrvTNeiN.js} +1 -1
- package/dist/assets/{system-events-redirect-page-C44suO-c.js → system-events-redirect-page-CKNhBiUK.js} +1 -1
- package/dist/assets/{tag-D8NAGb0r.js → tag-gOOX7fbA.js} +1 -1
- package/dist/assets/text-preview-DwgKh8PW.js +1 -0
- package/dist/assets/{theme-preferences-LQuLaIA6.js → theme-preferences-B2X7Xgir.js} +1 -1
- package/dist/assets/{theme-stage-page-CnKpq5QT.js → theme-stage-page-LIhQbqRQ.js} +1 -1
- package/dist/assets/{threshold-presets-B-gOdjC4.js → threshold-presets-B-RqvhUM.js} +1 -1
- package/dist/assets/{tiptap-document-editor-D-lwPWrV.js → tiptap-document-editor-BvGaiGeN.js} +1 -1
- package/dist/assets/{toast-DR7D7Uma.js → toast-BtFgiPe3.js} +1 -1
- package/dist/assets/tool-detail-panel-B2CIRZkB.js +2 -0
- package/dist/assets/transcript-message-body-shared-BfKwS5qD.js +1 -0
- package/dist/assets/{trust-rules-api-iUGCiDDM.js → trust-rules-api-Dbyz25hE.js} +1 -1
- package/dist/assets/typed-storage-OO7emDaU.js +1 -0
- package/dist/assets/{upgrade-cancel-page-D8is9-gw.js → upgrade-cancel-page-DjeqfvTa.js} +1 -1
- package/dist/assets/{upgrade-success-page-3W1VuHqB.js → upgrade-success-page-B4TCn340.js} +1 -1
- package/dist/assets/{usage-redirect-page-C6qXe-4h.js → usage-redirect-page-Cd58Bed0.js} +1 -1
- package/dist/assets/{use-active-assistant-id-CjvzlL4t.js → use-active-assistant-id-JLsAfn3e.js} +1 -1
- package/dist/assets/{use-app-theme-BLGjiz96.js → use-app-theme-yiZ38i4_.js} +1 -1
- package/dist/assets/{use-assistant-avatar--4s_vvar.js → use-assistant-avatar-Bjqx8JUy.js} +1 -1
- package/dist/assets/{use-assistant-capability-BaZVGuCu.js → use-assistant-capability-CnI3VItU.js} +1 -1
- package/dist/assets/use-assistant-identity-details-D-7oN9gr.js +1 -0
- package/dist/assets/use-attachment-preview-CQjpDfsc.js +2 -0
- package/dist/assets/use-attachment-squares-8Hx-p8ls.js +1 -0
- package/dist/assets/{use-avatar-accent-var-BaftJG7F.js → use-avatar-accent-var-BafXGBXW.js} +1 -1
- package/dist/assets/{use-bookmarks-B6Y60m9F.js → use-bookmarks-DO9wmU-2.js} +1 -1
- package/dist/assets/{use-bundled-avatar-components-IQw2k8-g.js → use-bundled-avatar-components-BcyasJwu.js} +2 -2
- package/dist/assets/{use-bus-subscription-CyRPH_gr.js → use-bus-subscription-DiCq1_ki.js} +1 -1
- package/dist/assets/use-checkout-dismiss-refresh-CV_H4uEB.js +1 -0
- package/dist/assets/use-command-palette-sections-BshFMe0w.js +1 -0
- package/dist/assets/{use-discord-nudge-CRU-lEHV.js → use-discord-nudge-DED9TaIm.js} +1 -1
- package/dist/assets/{use-edge-swipe-Gst62FjL.js → use-edge-swipe-CRkrRNLg.js} +1 -1
- package/dist/assets/{use-edge-swipe-back-D12vbvly.js → use-edge-swipe-back-Dk2xXjh4.js} +1 -1
- package/dist/assets/use-edit-app-Bd1eXXFq.js +1 -0
- package/dist/assets/{use-effective-timezone-Bx9QaO25.js → use-effective-timezone-BM5B7KHp.js} +1 -1
- package/dist/assets/use-invite-link-dialog-TNGI1l4g.js +1 -0
- package/dist/assets/{use-ios-app-nudge-CrBEIZ8w.js → use-ios-app-nudge-CadXZRJC.js} +1 -1
- package/dist/assets/use-is-org-ready-3vHDbj4G.js +1 -0
- package/dist/assets/use-local-file-info-D2-ycwyJ.js +1 -0
- package/dist/assets/{use-onboarding-login-X8pB53cV.js → use-onboarding-login-CiQyxJLM.js} +1 -1
- package/dist/assets/{use-platform-assistant-id-CIoqMsyh.js → use-platform-assistant-id-DgrNmSy2.js} +1 -1
- package/dist/assets/{use-platform-gate-CqEOGZtI.js → use-platform-gate-C5bNA5Pn.js} +1 -1
- package/dist/assets/{use-reduced-motion-bjjt6x6d.js → use-reduced-motion-fR0m_opJ.js} +1 -1
- package/dist/assets/{use-return-to-short-circuit-B295pgoV.js → use-return-to-short-circuit-g88hMnN8.js} +1 -1
- package/dist/assets/{use-save-twilio-credentials-CCp1iqBf.js → use-save-twilio-credentials-yqA7lnzq.js} +1 -1
- package/dist/assets/{use-skill-actions-BLHTDn21.js → use-skill-actions-B_tz3CI7.js} +1 -1
- package/dist/assets/{use-skill-detail-files-BVBb8uoK.js → use-skill-detail-files-DdWFIu5-.js} +1 -1
- package/dist/assets/use-sticky-profiles-D5TVHOgw.js +1 -0
- package/dist/assets/use-subagent-card-data-bjGydvhR.js +1 -0
- package/dist/assets/{use-supports-bookmarks-DbG5HZ6P.js → use-supports-bookmarks-DwTpI8uM.js} +1 -1
- package/dist/assets/use-supports-credentials-settings-3jGHR8fw.js +1 -0
- package/dist/assets/{use-swipe-engine-RAFE-Hrf.js → use-swipe-engine-Bkqjs1Zk.js} +1 -1
- package/dist/assets/use-transcript-message-by-id-BgyP3Ki5.js +1 -0
- package/dist/assets/use-transcript-messages-C2uwkjKL.js +3 -0
- package/dist/assets/{utils-Ction0uF.js → utils-3IBGVjNS.js} +1 -1
- package/dist/assets/utils-DtVy-_pB.js +1 -0
- package/dist/assets/viewer-store-DbIS4l8d.js +1 -0
- package/dist/assets/{voice-list-CCLkiF-c.js → voice-list-D26Lzbpv.js} +1 -1
- package/dist/assets/{voice-page-Bvgm-7L8.js → voice-page-CQ2Vp8p4.js} +1 -1
- package/dist/assets/{voice-providers-note-g4IBSHFm.js → voice-providers-note-Ck7hNTfp.js} +1 -1
- package/dist/assets/{weather-forecast-display-Bg_OjY6Q.js → weather-forecast-display-DrJp8zrP.js} +1 -1
- package/dist/assets/web-CDfRXQwd.js +1 -0
- package/dist/assets/web-Ccq6YqQk.js +1 -0
- package/dist/assets/web-Cw8N9FBf.js +1 -0
- package/dist/assets/web-Cwkvk3kH.js +1 -0
- package/dist/assets/web-KS3MoLo7.js +1 -0
- package/dist/assets/web-PODqCw-i.js +1 -0
- package/dist/assets/web-aKLBqXiN.js +1 -0
- package/dist/assets/web-vlqDFmAp.js +1 -0
- package/dist/assets/welcome-screen-CdsjDVfi.js +1 -0
- package/dist/assets/{workflow-detail-panel-BNzNSNAT.js → workflow-detail-panel-CsRhUrbM.js} +1 -1
- package/dist/assets/{workflow-store-Cbd3x6KN.js → workflow-store-zCcRcvi8.js} +1 -1
- package/dist/assets/workspace-page-CFuSxp5s.js +1 -0
- package/dist/assets/workspace-path-links-vDBIljq_.js +1 -0
- package/dist/assets/workspace-tree-query-Dfkrp_rV.js +1 -0
- package/dist/index.html +282 -271
- package/package.json +1 -1
- package/dist/assets/access-BJiXpwUJ.js +0 -1
- package/dist/assets/acp-run-detail-panel-C_M19m8P.js +0 -5
- package/dist/assets/activity-steps-panel-BsmwWzP1.js +0 -1
- package/dist/assets/add-credits-modal-3Rsd1ZeS.js +0 -1
- package/dist/assets/ai-page-B9mJkV_p.js +0 -1
- package/dist/assets/api-DDKNgE8n.js +0 -1
- package/dist/assets/assistant-identity-store-BczULg2T.js +0 -1
- package/dist/assets/auth-store-BwKMFgpK.js +0 -2
- package/dist/assets/background-task-actions-DX0pUvY9.js +0 -1
- package/dist/assets/billing-page-CED96NEp.js +0 -3
- package/dist/assets/browser-Bses4IN3.js +0 -2
- package/dist/assets/build-state-DPMhQpLB.js +0 -1
- package/dist/assets/channels-page-route-BooWFQMp.js +0 -9
- package/dist/assets/chat-markdown-message-f4cLJfax.js +0 -2
- package/dist/assets/checkbox-BZTUJtxM.js +0 -1
- package/dist/assets/checkout-continuation-CcuqWhhp.js +0 -1
- package/dist/assets/checkout-page-BateK-Nf.js +0 -1
- package/dist/assets/checkout-return-target-Cib3fzdY.js +0 -1
- package/dist/assets/command-palette-window-page-Bp9WplfA.js +0 -1
- package/dist/assets/consent-s5g0Gmb2.js +0 -1
- package/dist/assets/conversation-navigation-D63NJmBl.js +0 -1
- package/dist/assets/credentials-page-CYBmOQhl.js +0 -1
- package/dist/assets/debug-page-CHuby9yt.js +0 -4
- package/dist/assets/detail-panel-stop-button-DgKaA6yz.js +0 -1
- package/dist/assets/developer-page-CUJqTs2_.js +0 -1
- package/dist/assets/dist-BKxs5XmY.js +0 -1
- package/dist/assets/doctor-handoff-store-DWNbuW3P.js +0 -1
- package/dist/assets/document-viewer-container-Doc7G7NK.js +0 -2
- package/dist/assets/document-viewer-page-_jndOS7P.js +0 -1
- package/dist/assets/effective-timezone-CnKC3vj0.js +0 -1
- package/dist/assets/esm-B2M2kM_8.js +0 -2
- package/dist/assets/esm-BgRAHqeR.js +0 -2
- package/dist/assets/esm-CXX8rcv3.js +0 -2
- package/dist/assets/esm-Chh8mHmh.js +0 -1
- package/dist/assets/esm-Cl2UNC_o.js +0 -2
- package/dist/assets/esm-ClO8yhvi.js +0 -2
- package/dist/assets/esm-DOATKqE3.js +0 -2
- package/dist/assets/esm-UUuqyyp5.js +0 -1
- package/dist/assets/file-editor-DcH2Os5o.js +0 -1
- package/dist/assets/file-markdown-DBLxtb0M.js +0 -2
- package/dist/assets/general-page-DoAKoumC.js +0 -1
- package/dist/assets/handle-logout-BTgnSSUm.js +0 -1
- package/dist/assets/hatching-screen-Q59qvj8_.js +0 -1
- package/dist/assets/home-page-route-TPR5p3LW.js +0 -1
- package/dist/assets/hosting-screen-DRrmkmoO.js +0 -1
- package/dist/assets/identity-Cb4xS1Kk.js +0 -1
- package/dist/assets/index-Ch9eoFem.js +0 -11
- package/dist/assets/index-D8Xiv4z3.css +0 -2
- package/dist/assets/integrations-page-CnjTLjpf.js +0 -1
- package/dist/assets/latest-assistant-text-DPm0HIWu.js +0 -24
- package/dist/assets/list-row-BYrmPIC4.js +0 -1
- package/dist/assets/local-runtime-upgrade-JwVgn034.js +0 -1
- package/dist/assets/local-settings-C-dW2vkq.js +0 -1
- package/dist/assets/memory-page-route-C8nIc6Mb.js +0 -6
- package/dist/assets/messages-BzNSqJQx.js +0 -13
- package/dist/assets/mobile-sidebar-drawer-BnxfQaDB.js +0 -1
- package/dist/assets/mutation-error-CXV1BKlB.js +0 -1
- package/dist/assets/native-anchor-BiuEQHcy.js +0 -1
- package/dist/assets/native-biometric-B96mgKGP.js +0 -6
- package/dist/assets/native-file-BvwfoU6A.js +0 -2
- package/dist/assets/notice-DCp7WO3L.js +0 -1
- package/dist/assets/notifications-page-BAYd0t-0.js +0 -1
- package/dist/assets/onboarding-store-OVV4wyh5.js +0 -1
- package/dist/assets/open-workspace-file-DucrTmt3.js +0 -2
- package/dist/assets/pairing-page-BRPUYbzJ.js +0 -1
- package/dist/assets/plans-page-BxebYucs.js +0 -1
- package/dist/assets/platform-detection-a_IB3-0w.js +0 -1
- package/dist/assets/platform-loopback-page-DESnWJYO.js +0 -1
- package/dist/assets/plugins-surface-C4peMNec.js +0 -1
- package/dist/assets/privacy-page-sZhcJ3uB.js +0 -1
- package/dist/assets/provider-callback-page-BZlfsT4J.js +0 -1
- package/dist/assets/react-query.gen-0mspArBl.js +0 -1
- package/dist/assets/research-onboarding-route-ZOwRvfGs.js +0 -50
- package/dist/assets/retire-confirm-dialog-m6ORm5Pq.js +0 -1
- package/dist/assets/risk-uPLh5W5z.js +0 -3
- package/dist/assets/routes-BP00Ewbf.js +0 -23
- package/dist/assets/runtime-upgrade-banner-yZYtWxoJ.js +0 -2
- package/dist/assets/select-assistant-screen-B5N_TUcG.js +0 -1
- package/dist/assets/session-corner-action-vhb51vd3.js +0 -1
- package/dist/assets/settings-layout-BtT0532M.js +0 -1
- package/dist/assets/settings-navigation-BDpUXrOI.js +0 -1
- package/dist/assets/share-feedback-modal-DO6_oaZg.js +0 -2
- package/dist/assets/site-favicon-Dh1OTgFr.js +0 -1
- package/dist/assets/src-BAS7a2RG.js +0 -293
- package/dist/assets/subagent-detail-panel-jp0r0ZFk.js +0 -4
- package/dist/assets/tool-detail-panel-CXcjfDGo.js +0 -2
- package/dist/assets/transcript-message-body-shared-woOFNF_q.js +0 -1
- package/dist/assets/typed-storage-C-R1po3l.js +0 -1
- package/dist/assets/use-assistant-identity-details-C99kNyQf.js +0 -1
- package/dist/assets/use-checkout-dismiss-refresh-BkIzNk6B.js +0 -1
- package/dist/assets/use-command-palette-sections-CAmbyguu.js +0 -1
- package/dist/assets/use-edit-app-BF9YK7AV.js +0 -1
- package/dist/assets/use-invite-link-dialog-DN2IHVZE.js +0 -1
- package/dist/assets/use-is-org-ready-zouQ5CN4.js +0 -1
- package/dist/assets/use-sticky-profiles-bdq2XW7H.js +0 -1
- package/dist/assets/use-subagent-card-data-B8JTa5rQ.js +0 -1
- package/dist/assets/use-supports-credentials-settings-CgWfA2eQ.js +0 -1
- package/dist/assets/utils-C-YNXdkX.js +0 -1
- package/dist/assets/viewer-store--hIQLNm5.js +0 -1
- package/dist/assets/web-BEtLqoWJ.js +0 -1
- package/dist/assets/web-C8NouSk8.js +0 -1
- package/dist/assets/web-Cv3bLSQ5.js +0 -1
- package/dist/assets/web-D82T2zyn.js +0 -1
- package/dist/assets/web-RKFLO25W.js +0 -1
- package/dist/assets/web-XmQWRS1M.js +0 -1
- package/dist/assets/web-ZsA8B5nq.js +0 -1
- package/dist/assets/web-s9eE6ZyC.js +0 -1
- package/dist/assets/welcome-screen-Cga6YuF9.js +0 -1
- package/dist/assets/workspace-page-BFJO59Ch.js +0 -1
- package/dist/assets/workspace-tree-query-CqcOBNKw.js +0 -1
- /package/dist/assets/{Combination-C7TWRLS7.js → Combination-CWTYp834.js} +0 -0
- /package/dist/assets/{api-errors-SZKDzMLE.js → api-errors-BRGPPSWw.js} +0 -0
- /package/dist/assets/{app-types-o5Qc-xkK.js → app-types-BGJfNjSJ.js} +0 -0
- /package/dist/assets/{apple-logo-Cg-KnqW2.js → apple-logo-BOBq3-Sn.js} +0 -0
- /package/dist/assets/{arrow-down-to-line-Bh_5sIPp.js → arrow-down-to-line-DMGjBlMw.js} +0 -0
- /package/dist/assets/{arrow-left-C2ylPLHq.js → arrow-left-W84B6oJL.js} +0 -0
- /package/dist/assets/{arrow-right-B-jRJNWP.js → arrow-right-ChqGeAaW.js} +0 -0
- /package/dist/assets/{arrow-up-BNd4Gpy7.js → arrow-up-CWzHzcyU.js} +0 -0
- /package/dist/assets/{avatar-bundled-components-CTd294ra.js → avatar-bundled-components-BvKt7I7O.js} +0 -0
- /package/dist/assets/{avatar-subagent-BpXST4nO.js → avatar-subagent-tkmKhEWI.js} +0 -0
- /package/dist/assets/{avatar-svg-compositor-DclcUb1M.js → avatar-svg-compositor-axSwKFvf.js} +0 -0
- /package/dist/assets/{avatar-tone-4L7foPzW.js → avatar-tone-D99t9DAP.js} +0 -0
- /package/dist/assets/{ban-B__z3LwE.js → ban-BKp90l-0.js} +0 -0
- /package/dist/assets/{bell-Ct4a9v6Y.js → bell-2SnK9BVD.js} +0 -0
- /package/dist/assets/{brain-BIzJCPA6.js → brain-CN4zzNgU.js} +0 -0
- /package/dist/assets/{browser-timezone-DGz-HvxU.js → browser-timezone-Br-HawKV.js} +0 -0
- /package/dist/assets/{bug-VUcJFHwN.js → bug-DdmWJIkz.js} +0 -0
- /package/dist/assets/{build.umd-oXvZOmIf.js → build.umd-CaLt9YHe.js} +0 -0
- /package/dist/assets/{by-tool-use-id-index-DcsiqOhc.js → by-tool-use-id-index-CUFuQqHz.js} +0 -0
- /package/dist/assets/{calendar-RYdAv74D.js → calendar-qrPKlf1H.js} +0 -0
- /package/dist/assets/{chart-column-BLKW3sjY.js → chart-column-k8S2UYq8.js} +0 -0
- /package/dist/assets/{chat-BIJEFb5u.js → chat-Dy2BC2i1.js} +0 -0
- /package/dist/assets/{check-sC49_hjU.js → check-Dt2rQhdg.js} +0 -0
- /package/dist/assets/{chevron-down-B5A-0g8A.js → chevron-down-BNidRDh1.js} +0 -0
- /package/dist/assets/{chevron-left-CytMddTB.js → chevron-left-CrxnPze-.js} +0 -0
- /package/dist/assets/{chevron-right-HU6H84S0.js → chevron-right-CANAtgGn.js} +0 -0
- /package/dist/assets/{chevron-up-2Qqarz0p.js → chevron-up-DofScvyy.js} +0 -0
- /package/dist/assets/{circle-alert-DVCpoZrc.js → circle-alert-DQMH8VJH.js} +0 -0
- /package/dist/assets/{circle-check-CjGnAahM.js → circle-check-DvrCdroD.js} +0 -0
- /package/dist/assets/{circle-check-big-DSsDH5_6.js → circle-check-big-DtV6IJuh.js} +0 -0
- /package/dist/assets/{circle-minus-DNfBAj4g.js → circle-minus-BBDKV6k6.js} +0 -0
- /package/dist/assets/{circle-x-17dBxF06.js → circle-x-DTjJzoQl.js} +0 -0
- /package/dist/assets/{client.gen-DHOmbzD9.js → client.gen-Dq2brHDV.js} +0 -0
- /package/dist/assets/{clipboard-copy-JwIceweN.js → clipboard-copy-BYpgEh2O.js} +0 -0
- /package/dist/assets/{clock-BYTc0Ds9.js → clock-DeynsyYL.js} +0 -0
- /package/dist/assets/{cloud-off-BCBGTmt0.js → cloud-off-BFACQbO0.js} +0 -0
- /package/dist/assets/{cloud-RlApB3rO.js → cloud-q4J30bVb.js} +0 -0
- /package/dist/assets/{code-qafFA0_-.js → code-D6SOwRrI.js} +0 -0
- /package/dist/assets/{coins-Hrmb9tmj.js → coins-CcTuNVlN.js} +0 -0
- /package/dist/assets/{conversation-selection-B954w311.js → conversation-selection-CJs3Fnse.js} +0 -0
- /package/dist/assets/{create-selectors-B-P03-8K.js → create-selectors-BfxF8Sx_.js} +0 -0
- /package/dist/assets/{definitions-CL6e7nYF.js → definitions-BfdxiZ6b.js} +0 -0
- /package/dist/assets/{definitions-BD-g60mP.js → definitions-Rm_PEX9e.js} +0 -0
- /package/dist/assets/{dices-DcuIF52A.js → dices-C3diFTyP.js} +0 -0
- /package/dist/assets/{dist-CKLJHt4Z.js → dist-EanpjdWC.js} +0 -0
- /package/dist/assets/{dist-CFSiz2ry2.js → dist-an0Z446E.js} +0 -0
- /package/dist/assets/{download-CywcQLB2.js → download-Cnb8zZrK.js} +0 -0
- /package/dist/assets/{edit-chat-session-Beky6Vpg.js → edit-chat-session-DVzLQLWl.js} +0 -0
- /package/dist/assets/{ellipsis-BRJI5_P1.js → ellipsis-C5fQnusC.js} +0 -0
- /package/dist/assets/{ellipsis-vertical-nov0xhhF.js → ellipsis-vertical-qQRDY5dB.js} +0 -0
- /package/dist/assets/{emoji-catalog-data-5pJaL_3N.js → emoji-catalog-data-Cjooln6g.js} +0 -0
- /package/dist/assets/{event-bus-CvZyJQ26.js → event-bus-CbDg1VDt.js} +0 -0
- /package/dist/assets/{external-link-CAce-RVu.js → external-link-GPGZ1LGU.js} +0 -0
- /package/dist/assets/{external-urls-97O9n0lb.js → external-urls-BL9qY0s8.js} +0 -0
- /package/dist/assets/{eye-DTyDWiqu.js → eye-B_jBDDRn.js} +0 -0
- /package/dist/assets/{eye-bbox-DE8r0Vt3.js → eye-bbox-CRs175_n.js} +0 -0
- /package/dist/assets/{eye-off-fuOP4Lij.js → eye-off-DQ4xakzN.js} +0 -0
- /package/dist/assets/{file-code-DD3K2kve.js → file-code-CrtJR2ax.js} +0 -0
- /package/dist/assets/{file-plus-Dq2xo7Ic.js → file-plus-DjC7wnGp.js} +0 -0
- /package/dist/assets/{file-text-BCsUYVEF.js → file-text-CwGsMgaa.js} +0 -0
- /package/dist/assets/{folder-g06qTW2O.js → folder-_l8GIyQp.js} +0 -0
- /package/dist/assets/{folder-open-CAb0DLYq.js → folder-open-BTlvhHNO.js} +0 -0
- /package/dist/assets/{format-date-CKGQir4m.js → format-date-CQUMvfqf.js} +0 -0
- /package/dist/assets/{format-file-size-Eu-Z0CxL.js → format-file-size-C5XdzvvA.js} +0 -0
- /package/dist/assets/{globe-BDvXuPkw.js → globe-CdLn4IX7.js} +0 -0
- /package/dist/assets/{hard-drive-CncrDZ7V.js → hard-drive-sI2ZzmqM.js} +0 -0
- /package/dist/assets/{hard-navigate-V2EFapkk.js → hard-navigate-BYoBFmE4.js} +0 -0
- /package/dist/assets/{heart-2AHOP0tB.js → heart-DFD4eqW-.js} +0 -0
- /package/dist/assets/{inbox-DXYIwUrn.js → inbox-OC3STytq.js} +0 -0
- /package/dist/assets/{info-CYiVdnQV.js → info-DkhVkzmK.js} +0 -0
- /package/dist/assets/{input-C-GkeWCw.js → input-tXUFa7Eo.js} +0 -0
- /package/dist/assets/{is-electron-7N7iyz1y.js → is-electron-DIlIrdJX.js} +0 -0
- /package/dist/assets/{key-round-CSc3w5ka.js → key-round-BFkuiQGH.js} +0 -0
- /package/dist/assets/{laptop-ByoaxLxg.js → laptop-BGOychmC.js} +0 -0
- /package/dist/assets/{layout-grid-PPpVK0nJ.js → layout-grid-Ct4RT2Ea.js} +0 -0
- /package/dist/assets/{link-2-BMNZFfWH.js → link-2-DhyrrFaE.js} +0 -0
- /package/dist/assets/{link-CowyzCIZ.js → link-DOobzBVg.js} +0 -0
- /package/dist/assets/{link-click-BEiniqcG.js → link-click-aVk_YdAp.js} +0 -0
- /package/dist/assets/{list-CDyb1CGV.js → list-D2LnQ7lS.js} +0 -0
- /package/dist/assets/{loader-circle-BzJ2kz3F.js → loader-circle-DWWXcfTQ.js} +0 -0
- /package/dist/assets/{log-in-Bhye1kwc.js → log-in-D4nsqRbG.js} +0 -0
- /package/dist/assets/{log-out-BLE632qu.js → log-out-CF9mMMsz.js} +0 -0
- /package/dist/assets/{machine-sizes-D0oAlF9f.js → machine-sizes-B9nt_h-U.js} +0 -0
- /package/dist/assets/{mail-DABv3_Ue.js → mail-DyUf40pu.js} +0 -0
- /package/dist/assets/{message-circle-gk_DFUIg.js → message-circle-ByXBaIaq.js} +0 -0
- /package/dist/assets/{message-square-zCNXaHYX.js → message-square-CHUvAEY9.js} +0 -0
- /package/dist/assets/{message-square-text-asdoy3SW.js → message-square-text-CN_v46So.js} +0 -0
- /package/dist/assets/{mic-DZrWtAAu.js → mic-BZZo0R22.js} +0 -0
- /package/dist/assets/{middleware-HE0NLvPl.js → middleware-Bxr-mmHu.js} +0 -0
- /package/dist/assets/{minimize-2-BR0ed4mI.js → minimize-2-Dj9FY4aF.js} +0 -0
- /package/dist/assets/{misc-CAQM4FGM.js → misc-BBsGq1IU.js} +0 -0
- /package/dist/assets/{monitor-B5vtTCxm.js → monitor-RX4oi4Nj.js} +0 -0
- /package/dist/assets/{moon-DSdti3GO.js → moon-CHW45huN.js} +0 -0
- /package/dist/assets/{native-deep-link-BJjxOpZm.js → native-deep-link-jXO4XsVj.js} +0 -0
- /package/dist/assets/{oauth-popup-Ql5xgtlO.js → oauth-popup-DAMkjCsP.js} +0 -0
- /package/dist/assets/{onboarding-step-layout-DGtbhZJb.js → onboarding-step-layout-Bsc_5btV.js} +0 -0
- /package/dist/assets/{optimistic-lifecycle-50vNA6dY.js → optimistic-lifecycle-GoMZsAsc.js} +0 -0
- /package/dist/assets/{pdf-8fO1Wz7e.js → pdf-OYDWiYl0.js} +0 -0
- /package/dist/assets/{pencil-CLJIvYKH.js → pencil-Cm5DdeRM.js} +0 -0
- /package/dist/assets/{play-CCT817Ah.js → play-Dh6Bw5AP.js} +0 -0
- /package/dist/assets/{plugin-attribution-Hjqz10My.js → plugin-attribution-DAf_69AU.js} +0 -0
- /package/dist/assets/{plus-JG7kWjHA.js → plus-EJu6s6xR.js} +0 -0
- /package/dist/assets/{pointer-QlIwQKYH.js → pointer-CQ4DXHXb.js} +0 -0
- /package/dist/assets/{prechat-EVefdGcO.js → prechat-C4MZwKWX.js} +0 -0
- /package/dist/assets/{profile-metadata-BksFtHNq.js → profile-metadata-CA6wxcVJ.js} +0 -0
- /package/dist/assets/{progress-bar-CJxkStgF.js → progress-bar-3GUUAhXi.js} +0 -0
- /package/dist/assets/{proxy-CNtrhN4q.js → proxy-DrtKRLtr.js} +0 -0
- /package/dist/assets/{public-asset-CD3ouSWU.js → public-asset-OTnPMErp.js} +0 -0
- /package/dist/assets/{puzzle-CtM3jM-f.js → puzzle-4NgH5snP.js} +0 -0
- /package/dist/assets/{refresh-cw-Ci7hSykC.js → refresh-cw-EZQqnaxp.js} +0 -0
- /package/dist/assets/{repeat-CIQpv9Nd.js → repeat-CP_vsQPN.js} +0 -0
- /package/dist/assets/{rotate-ccw-Da_2DvhY.js → rotate-ccw-CL6IkaAI.js} +0 -0
- /package/dist/assets/{sdk.gen-DEFA-6EJ.js → sdk.gen-BpJ1vF7l.js} +0 -0
- /package/dist/assets/{search-DA3TmTuR.js → search-DL-2uX3K.js} +0 -0
- /package/dist/assets/{send-DHWUIK7G.js → send-Bdmy_GSE.js} +0 -0
- /package/dist/assets/{settings-DyEBEqeQ.js → settings-6_RIT4kT.js} +0 -0
- /package/dist/assets/{shield-9aFTFyT9.js → shield-CAWgGAqm.js} +0 -0
- /package/dist/assets/{shield-check-z7CU-gBq.js → shield-check-CNsbiH1v.js} +0 -0
- /package/dist/assets/{sliders-horizontal-slneqAyY.js → sliders-horizontal-BwdOIxz8.js} +0 -0
- /package/dist/assets/{smartphone-BbK6bGuE.js → smartphone-CIrxb2NM.js} +0 -0
- /package/dist/assets/{sparkles-DC8kqYjt.js → sparkles-DfEFn3Bh.js} +0 -0
- /package/dist/assets/{square-Bn3X6ZlO.js → square-DTFrgbZb.js} +0 -0
- /package/dist/assets/{status-badge-pill-ZNNoKV1T.js → status-badge-pill-CFoeNqKo.js} +0 -0
- /package/dist/assets/{sun-BKEPYS7Q.js → sun-BauGiwdK.js} +0 -0
- /package/dist/assets/{surface-parse-helpers-CEJ3tQ9Q.js → surface-parse-helpers-iPHZ9D7N.js} +0 -0
- /package/dist/assets/{target-cdw7WP5q.js → target-CJU4DUFo.js} +0 -0
- /package/dist/assets/{terminal-Cs_TREv-.js → terminal-BucMVaPU.js} +0 -0
- /package/dist/assets/{three-dot-indicator-CfjkCgEH.js → three-dot-indicator-CeTxs9-J.js} +0 -0
- /package/dist/assets/{toggle-D776PTw-.js → toggle-BEPV0rQM.js} +0 -0
- /package/dist/assets/{trash-2-De6X8YiM.js → trash-2-DfVRfykB.js} +0 -0
- /package/dist/assets/{triangle-alert--e3n47gm.js → triangle-alert-D6bAGtMw.js} +0 -0
- /package/dist/assets/{upload-Bdbyo_ok.js → upload-DsWG9TbD.js} +0 -0
- /package/dist/assets/{use-copy-to-clipboard-BarKTY4m.js → use-copy-to-clipboard-RUBxQIiE.js} +0 -0
- /package/dist/assets/{use-is-mobile-Cx2xnNUx.js → use-is-mobile-MmHo-OM6.js} +0 -0
- /package/dist/assets/{user-Dq9DUxnU.js → user-DHC7OLPE.js} +0 -0
- /package/dist/assets/{user-plus-CXMJ1x_5.js → user-plus-DjxxnQ8G.js} +0 -0
- /package/dist/assets/{users-DWDkv8ju.js → users-OcC3p9Jn.js} +0 -0
- /package/dist/assets/{video-CQJlht8Q.js → video-Dtwi0MD9.js} +0 -0
- /package/dist/assets/{volume-2-Bj3y3ZBJ.js → volume-2-BXDl4IEg.js} +0 -0
- /package/dist/assets/{workflow-DbPANJpf.js → workflow-Bsy5y3W0.js} +0 -0
- /package/dist/assets/{workflow-status-CgrMMiJT.js → workflow-status-D0bBEpGp.js} +0 -0
- /package/dist/assets/{workspace-theme-tokens-bLqHFK0a.js → workspace-theme-tokens-dJKcMIdP.js} +0 -0
- /package/dist/assets/{wrench-tjOqvzJ2.js → wrench-DhynFba1.js} +0 -0
- /package/dist/assets/{x-DuBvjmAE.js → x-D4O9yIS7.js} +0 -0
- /package/dist/assets/{xterm-Ip5qSQfD.js → xterm-DARAJ0SV.js} +0 -0
- /package/dist/assets/{xterm-addon-fit-BbxIpbO2.js → xterm-addon-fit-BDf8Eu9n.js} +0 -0
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/native-file-BvwfoU6A.js","assets/chunk-jRWAZmH_.js","assets/preload-helper-Cv2QeVDK.js","assets/is-electron-7N7iyz1y.js","assets/dist-CFSiz2ry2.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{o as e,t}from"./chunk-jRWAZmH_.js";import{t as n}from"./capture-error-FWzaVb8P.js";import{t as r}from"./react-BFJW0bSv.js";import{t as i}from"./button-Dy5001j6.js";import{t as a}from"./preload-helper-Cv2QeVDK.js";import{m as o,t as s,u as c}from"./chunk-5KNZJZUH-Bsoom5--.js";import{n as l}from"./QueryClientProvider-CMu7CkQU.js";import{t as u}from"./useQuery-Bz-fbQ-m.js";import{t as d}from"./useInfiniteQuery-Dk8q0n49.js";import{t as f}from"./useMutation-CXGTrp4W.js";import{t as p}from"./jsx-runtime-D3ZM-ToX.js";import{t as m}from"./typography-DEI9Ra9z.js";import{t as h}from"./card-DRIctGVs.js";import{t as g}from"./createLucideIcon-CAM1RhH8.js";import{t as _}from"./arrow-left-C2ylPLHq.js";import{t as v}from"./check-sC49_hjU.js";import{t as y}from"./chevron-down-B5A-0g8A.js";import{t as b}from"./chevron-up-2Qqarz0p.js";import{t as x}from"./circle-check-CjGnAahM.js";import{t as S}from"./coins-Hrmb9tmj.js";import{D as C,F as w,M as T,N as E,O as D,P as O,T as k,_ as A,a as j,b as M,c as N,d as P,f as F,g as ee,h as te,j as ne,k as re,l as ie,m as ae,n as oe,o as se,p as ce,s as le,t as I,u as L,v as ue,w as R,x as de,y as fe}from"./use-checkout-dismiss-refresh-BkIzNk6B.js";import{n as z,o as pe}from"./list-row-BYrmPIC4.js";import{n as me,t as he}from"./target-cdw7WP5q.js";import{t as ge}from"./download-CywcQLB2.js";import{t as _e}from"./external-link-CAce-RVu.js";import{t as ve}from"./info-CYiVdnQV.js";import{t as B}from"./loader-circle-BzJ2kz3F.js";import{t as ye}from"./sparkles-DC8kqYjt.js";import{t as be}from"./triangle-alert--e3n47gm.js";import{t as xe}from"./users-DWDkv8ju.js";import{t as Se}from"./x-DuBvjmAE.js";import{t as V}from"./notice-DCp7WO3L.js";import{M as Ce,r as we}from"./src-BAS7a2RG.js";import{t as Te}from"./tag-D8NAGb0r.js";import{t as Ee}from"./input-C-GkeWCw.js";import{t as De}from"./toggle-D776PTw-.js";import{t as H}from"./modal-DwsThLGg.js";import{n as U}from"./toast-DR7D7Uma.js";import{t as Oe}from"./confirm-dialog-DZX6LhLy.js";import{t as ke}from"./dropdown-DswWMJhz.js";import{i as Ae,n as je,t as Me}from"./api-errors-SZKDzMLE.js";import{c as Ne,o as Pe}from"./auth-store-BwKMFgpK.js";import{dt as Fe,ft as Ie}from"./sdk.gen-DVW3wpbx.js";import{jr as Le}from"./sdk.gen-BySz4QYj.js";import{w as Re}from"./native-biometric-B96mgKGP.js";import{d as W}from"./routes-GmNvdtLW.js";import{i as G,r as ze,t as Be}from"./use-platform-gate-CqEOGZtI.js";import{r as Ve}from"./use-is-org-ready-zouQ5CN4.js";import{Bt as He,Ht as Ue,Vt as We,_t as Ge,c as Ke,d as qe,zt as Je}from"./react-query.gen-0mspArBl.js";import{n as Ye,r as Xe}from"./browser-Bses4IN3.js";import{n as Ze,t as Qe}from"./conversation-navigation-D63NJmBl.js";import{n as $e}from"./use-is-mobile-Cx2xnNUx.js";import{t as et}from"./effective-timezone-CnKC3vj0.js";import{$ as tt,B as nt,G as rt,H as it,J as at,K as ot,L as st,Mt as ct,Q as lt,R as ut,U as dt,V as ft,W as pt,X as mt,Y as ht,Z as gt,ct as _t,dt as vt,et as yt,ft as bt,gt as xt,ht as St,it as Ct,lt as wt,nt as Tt,pt as Et,q as Dt,st as Ot,tt as kt,ut as At,wt as jt,z as Mt}from"./react-query.gen-BVTEjHsw.js";import{t as Nt}from"./use-effective-timezone-Bx9QaO25.js";import{t as Pt}from"./misc-CAQM4FGM.js";import{t as Ft}from"./copy-to-clipboard-DaTa8Tbi.js";import{t as It}from"./platform-login-notice-D-yQLWUo.js";import{t as Lt}from"./use-active-assistant-id-CjvzlL4t.js";import{t as Rt}from"./format-date-CKGQir4m.js";import{t as zt}from"./add-credits-modal-3Rsd1ZeS.js";import{t as Bt}from"./link-click-BEiniqcG.js";import{t as Vt}from"./schedules-B6KivAAT.js";import{i as Ht,n as Ut,r as Wt,t as Gt}from"./profile-metadata-BksFtHNq.js";import{t as Kt}from"./checkout-return-target-Cib3fzdY.js";var qt=g(`crown`,[[`path`,{d:`M11.562 3.266a.5.5 0 0 1 .876 0L15.39 8.87a1 1 0 0 0 1.516.294L21.183 5.5a.5.5 0 0 1 .798.519l-2.834 10.246a1 1 0 0 1-.956.734H5.81a1 1 0 0 1-.957-.734L2.02 6.02a.5.5 0 0 1 .798-.519l4.276 3.664a1 1 0 0 0 1.516-.294z`,key:`1vdc57`}],[`path`,{d:`M5 21h14`,key:`11awu3`}]]),Jt=g(`tree-palm`,[[`path`,{d:`M13 8c0-2.76-2.46-5-5.5-5S2 5.24 2 8h2l1-1 1 1h4`,key:`foxbe7`}],[`path`,{d:`M13 7.14A5.82 5.82 0 0 1 16.5 6c3.04 0 5.5 2.24 5.5 5h-3l-1-1-1 1h-3`,key:`18arnh`}],[`path`,{d:`M5.89 9.71c-2.15 2.15-2.3 5.47-.35 7.43l4.24-4.25.7-.7.71-.71 2.12-2.12c-1.95-1.96-5.27-1.8-7.42.35`,key:`ywahnh`}],[`path`,{d:`M11 15.5c.5 2.5-.17 4.5-1 6.5h4c2-5.5-.5-12-1-14`,key:`ft0feo`}]]),K=e(r(),1);function Yt(e){return e.get(`tab`)===`billing`||e.has(`adjust_plan`)||e.has(`pro_onboarding`)||e.has(`billing_status`)||e.has(`session_id`)}function Xt(e,t){return e===`full`?!0:e===`disabled`?Yt(t):!1}function Zt(e){if(!e)return{};let t={};for(let n of e.callSites)!n.id||!n.displayName||(t[n.id]={id:n.id,displayName:n.displayName,description:n.description,domain:n.domain});return t}function q(e){return Number.isFinite(e)?Math.round(e).toLocaleString():`0`}function Qt(e){return!Number.isFinite(e)||e===0?`$0.00`:`$${e.toFixed(2)}`}var $t=`model`,en={model:`Model`,task:`Action`,profile:`Profile`},tn=[{value:`model`,label:en.model},{value:`task`,label:en.task},{value:`profile`,label:en.profile}];function nn(e){return e===`model`||e===`task`||e===`profile`}function rn(e){switch(e){case`model`:return`model`;case`task`:return`call_site`;case`profile`:return`inference_profile`}}function an(e){switch(e){case`model`:return`model`;case`task`:return`llm_call_site`;case`profile`:return`inference_profile`}}function on(e,t,n){if(e===`task`){let e=t.groupKey;return e?n.callSites?.[e]?.displayName??t.group:t.group}if(e===`profile`){let e=t.groupKey;return e?n.profiles?.[e]?.displayName??t.group:t.group||`Default / Unset`}return t.group}function sn(e,t,n){return!e||e.length===0?[]:e.map(e=>{let r=on(t,e,n);return r===e.group?e:{...e,group:r}})}var cn=6,ln=`value:`,un=`null:`;function dn(e,t=`schedule`){return e===null?`${un}${nn(t)?rn(t):t}`:`${ln}${e}`}function fn(e){return[...e].sort((e,t)=>{if(e.date!==t.date)return e.date<t.date?-1:1;let n=_n(e.bucketId),r=_n(t.bucketId);return n===r?e.bucketId===t.bucketId?0:e.bucketId<t.bucketId?-1:1:n-r})}function pn(e){return e.map(e=>({bucketId:e.bucketId,date:e.date,displayLabel:e.displayLabel,totalInputTokens:e.totalInputTokens,totalOutputTokens:e.totalOutputTokens,totalEstimatedCostUsd:e.totalEstimatedCostUsd,eventCount:e.eventCount,groups:{}}))}function mn(e,t,n){return t!==`task`&&t!==`profile`?[...e]:e.map(e=>{let r=!1,i={};for(let[a,o]of Object.entries(e.groups)){let e=on(t,gn(o),n);e===o.group?i[a]=o:(r=!0,i[a]={...o,group:e})}return r?{...e,groups:i}:e})}function hn(e){let t=new Map;for(let n of e)for(let[e,r]of Object.entries(n.groups)){let n=t.get(e);t.set(e,{label:n?.label??r.group,totalEstimatedCostUsd:(n?.totalEstimatedCostUsd??0)+r.totalEstimatedCostUsd})}let n=Array.from(t.entries()).sort(([e,t],[n,r])=>t.totalEstimatedCostUsd===r.totalEstimatedCostUsd?t.label===r.label?e===n?0:e<n?-1:1:t.label<r.label?-1:1:r.totalEstimatedCostUsd-t.totalEstimatedCostUsd).map(([e,t],n)=>({seriesKey:e,label:t.label,totalEstimatedCostUsd:t.totalEstimatedCostUsd,colorIndex:n}));return{items:n,visibleItems:n.slice(0,cn)}}function gn(e){return{group:e.group,groupId:e.groupKey,groupKey:e.groupKey,totalInputTokens:e.totalInputTokens,totalOutputTokens:e.totalOutputTokens,totalCacheCreationTokens:0,totalCacheReadTokens:0,totalEstimatedCostUsd:e.totalEstimatedCostUsd,eventCount:e.eventCount,turnCount:null}}function _n(e){let t=e.lastIndexOf(`|`);if(t<0)return 0;let n=Number(e.slice(t+1));return Number.isFinite(n)?n:0}var J=p(),vn=140,yn=40,bn=28,xn=2,Sn=2,Cn=1e-6,wn=12,Tn=220,En=56,Dn=[40,80,60,100,50,70,30],On=[18,24,28,35,42,50,64,78,92,106,118,96,84,74,68,80,88,72,56,48,40,34,26,20],kn=[`var(--usage-trend-stack-positive, var(--system-positive-strong, #10b981))`,`var(--usage-trend-stack-info, var(--system-info-strong, #3b82f6))`,`var(--usage-trend-stack-mid, var(--system-mid-strong, #f59e0b))`,`var(--usage-trend-stack-secondary, var(--content-secondary, #6b7280))`,`var(--usage-trend-stack-negative, var(--system-negative-strong, #f87171))`,`var(--usage-trend-stack-tertiary, var(--content-tertiary, #9ca3af))`];function An(e){return kn[e%kn.length]}function jn(e){return e.displayLabel?e.displayLabel:e.date}function Mn(e,t){let n=e+wn,r=t+wn;return n+Tn>window.innerWidth&&(n=e-Tn-wn),r+En>window.innerHeight&&(r=t-En-wn),{x:n,y:r}}function Nn({buckets:e,isHourly:t,legendItems:n}){let[r,i]=(0,K.useState)(null),a=(0,K.useMemo)(()=>fn(e),[e]),o=(0,K.useMemo)(()=>hn(e),[e]),s=n??o.items,c=n??o.visibleItems,l=(0,K.useMemo)(()=>a.reduce((e,t)=>Math.max(e,t.totalEstimatedCostUsd),0),[a]),u=(0,K.useCallback)((e,t)=>{let n=Mn(e.clientX,e.clientY);i({...t,x:n.x,y:n.y})},[]),d=(0,K.useCallback)(()=>i(null),[]);if(a.length===0){let e=(0,J.jsx)(Rn,{title:t?`No hourly data`:`No daily data`,subtitle:`No usage recorded in this time range`});return c.length===0?e:(0,J.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[e,(0,J.jsx)(Ln,{items:c})]})}let f=t?bn:yn;return(0,J.jsxs)(`div`,{className:`overflow-x-auto`,children:[(0,J.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,J.jsx)(`div`,{className:`flex items-end gap-2`,style:{height:`${vn}px`},"aria-hidden":`true`,children:a.map(e=>{let t=l>0?e.totalEstimatedCostUsd/l:0,r=Math.max(xn,vn*t);return(0,J.jsx)(`div`,{className:`flex items-end`,style:{width:`${f}px`,minWidth:`${f}px`,height:`${r}px`,opacity:e.totalEstimatedCostUsd>0?1:.3},title:`${jn(e)}: ${Qt(e.totalEstimatedCostUsd)}`,"data-usage-series-bar":e.bucketId,children:(0,J.jsx)(Fn,{bucket:e,height:r,legendItems:s,hasLegendOverride:n!=null,onSegmentHover:u,onSegmentLeave:d})},e.bucketId)})}),(0,J.jsx)(`div`,{className:`flex items-start gap-2`,children:a.map(e=>(0,J.jsxs)(`div`,{className:`flex flex-col items-center gap-0.5`,style:{width:`${f}px`,minWidth:`${f}px`},children:[(0,J.jsx)(`span`,{className:`truncate text-[10px]`,style:{color:`var(--content-secondary)`},children:Qt(e.totalEstimatedCostUsd)}),(0,J.jsx)(`span`,{className:`truncate text-[10px]`,style:{color:`var(--content-tertiary)`},children:jn(e)})]},e.bucketId))}),c.length>0?(0,J.jsx)(Ln,{items:c}):null]}),r?(0,J.jsx)(In,{tooltip:r}):null]})}function Pn({isHourly:e}){let t=e?On:Dn,n=e?bn:yn;return(0,J.jsx)(`div`,{className:`flex items-end gap-2`,style:{height:`${vn}px`},"aria-hidden":`true`,children:t.map((e,t)=>(0,J.jsx)(`div`,{className:`rounded-sm`,style:{width:`${n}px`,height:`${e}px`,background:`color-mix(in srgb, var(--border-base) 40%, transparent)`}},t))})}function Fn({bucket:e,height:t,legendItems:n,hasLegendOverride:r,onSegmentHover:i,onSegmentLeave:a}){let o=Object.keys(e.groups).length>0,s=n.filter(e=>(e.state??`active`)===`active`).flatMap(t=>{let n=e.groups[t.seriesKey];return!n||n.totalEstimatedCostUsd<=0?[]:[{item:t,value:n}]});if(s.length===0&&!o&&!r){let n={label:`Total`,bucketLabel:jn(e),cost:Qt(e.totalEstimatedCostUsd)};return(0,J.jsx)(`div`,{className:`w-full rounded-sm`,title:`${n.label}: ${n.cost}`,onMouseEnter:e=>i(e,n),onMouseMove:e=>i(e,n),onMouseLeave:a,style:{height:`${t}px`,background:An(0)},"data-usage-series-segment-label":n.label,"data-usage-fallback-segment":`true`})}return s.length===0?null:(0,J.jsx)(`div`,{className:`flex w-full flex-col-reverse overflow-hidden rounded-sm`,style:{height:`${t}px`},"data-usage-series-stack":e.bucketId,children:s.map(({item:n,value:r})=>{let o={label:n.label,bucketLabel:jn(e),cost:Qt(r.totalEstimatedCostUsd)};return(0,J.jsx)(`div`,{title:`${o.label}: ${o.cost}`,onMouseEnter:e=>i(e,o),onMouseMove:e=>i(e,o),onMouseLeave:a,style:{height:`${Math.max(Sn,t*r.totalEstimatedCostUsd/Math.max(e.totalEstimatedCostUsd,Cn))}px`,background:An(n.colorIndex)},"data-usage-series-segment":n.seriesKey,"data-usage-series-segment-label":n.label,"data-usage-series-color-index":n.colorIndex},n.seriesKey)})})}function In({tooltip:e}){return(0,J.jsxs)(`div`,{className:`pointer-events-none fixed z-50 max-w-[220px] rounded-md border px-2 py-1 shadow-xl`,style:{left:`${e.x}px`,top:`${e.y}px`,background:`var(--surface-overlay, var(--surface-lift))`,borderColor:`var(--border-base)`},"aria-hidden":`true`,children:[(0,J.jsx)(`div`,{className:`truncate text-body-small-default`,style:{color:`var(--content-default)`},children:e.label}),(0,J.jsxs)(`div`,{className:`truncate text-body-small-default`,style:{color:`var(--content-tertiary)`},children:[e.bucketLabel,` · `,e.cost]})]})}function Ln({items:e}){return(0,J.jsx)(`div`,{className:`flex flex-wrap items-center gap-x-3 gap-y-1 pt-1`,children:e.map(e=>{let t=e.state??`active`,n=t===`inactive`;return(0,J.jsxs)(`div`,{className:`flex min-w-0 items-center gap-1`,"data-usage-legend-state":t,children:[(0,J.jsx)(`span`,{className:`h-[7px] w-[7px] shrink-0 rounded-full`,style:{background:n?`var(--content-tertiary)`:An(e.colorIndex),opacity:n?.45:1},"aria-hidden":`true`,"data-usage-series-color-index":e.colorIndex}),(0,J.jsx)(`span`,{className:n?`truncate text-[10px] line-through`:`truncate text-[10px]`,style:{color:`var(--content-tertiary)`,opacity:n?.65:1},children:e.label})]},e.seriesKey)})})}function Rn({title:e,subtitle:t}){return(0,J.jsxs)(`div`,{className:`flex flex-col items-center justify-center rounded-md py-12 text-center`,style:{color:`var(--content-tertiary)`},children:[(0,J.jsx)(`p`,{className:`text-body-medium-default`,style:{color:`var(--content-secondary)`},children:e}),(0,J.jsx)(`p`,{className:`mt-1 text-body-small-default`,children:t})]})}function zn(e){return nn(e)?rn(e):e}function Bn(e){return Wn({from:e.from,to:e.to},e.scheduleId)}function Vn(e){return Wn({from:e.from,to:e.to,...e.granularity?{granularity:e.granularity}:{},...e.tz?{tz:e.tz}:{}},e.scheduleId)}function Hn(e){return Wn({from:e.from,to:e.to,groupBy:zn(e.groupBy)},e.scheduleId)}function Un(e){return Wn({from:e.from,to:e.to,granularity:e.granularity,groupBy:zn(e.groupBy),...e.tz?{tz:e.tz}:{}},e.scheduleId)}function Wn(e,t){return t?{...e,scheduleId:t}:e}function Gn(e){return[`${q(e.totalInputTokens)} direct`,`${q(e.totalCacheCreationTokens)} cache created`,`${q(e.totalCacheReadTokens)} cache read`,`${q(e.totalOutputTokens)} out`].join(` / `)}function Kn(e){return!Number.isFinite(e)||e===0?`0`:e>=1e6||e>=999950&&e<1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}k`:e.toLocaleString()}function qn(e){return`${Kn(e.totalInputTokens+e.totalCacheCreationTokens+e.totalCacheReadTokens)} in / ${Kn(e.totalOutputTokens)} out`}var Jn=`task`,Yn=`model`,Xn=new Set([400,404,422]),Zn=3,Qn=new Set([`today`,`yesterday`,`7d`,`30d`,`90d`,`all`]),$n=new Set([`actor`,`provider`,`model`,`conversation`,`task`,`profile`,`schedule`]),er={task:en.task,profile:en.profile,model:en.model,provider:`Provider`,actor:`Actor`,conversation:`Conversation`,schedule:`Schedule`},tr=[{value:`task`,label:er.task},{value:`profile`,label:er.profile},{value:`model`,label:er.model},{value:`provider`,label:er.provider},{value:`schedule`,label:er.schedule},{value:`conversation`,label:er.conversation}];function nr(e){let t=e.get(`range`),n=e.get(`groupBy`),r=or(n)?n:Jn;return{range:ar(t)?t:`7d`,groupBy:r,scheduleId:r===`schedule`?rr(e):void 0}}function rr(e){let t=e.get(`scheduleId`);if(!(!t||t.trim().length===0))return t}function ir(e,t){let n=new URLSearchParams(e);return t.range!==void 0&&n.set(`range`,t.range),t.groupBy!==void 0&&n.set(`groupBy`,t.groupBy),t.scheduleId!==void 0&&(t.scheduleId===null||t.scheduleId.trim().length===0?n.delete(`scheduleId`):n.set(`scheduleId`,t.scheduleId)),n.get(`groupBy`)!==`schedule`&&n.delete(`scheduleId`),n}function ar(e){return e!=null&&Qn.has(e)}function or(e){return e!=null&&$n.has(e)}function sr(e){return e!==`conversation`}function cr(e,t){return e!==`task`&&e!==`profile`?!1:ur(t)}function lr(e,t){return!ur(t)&&e<Zn}function ur(e){return e instanceof Me&&Xn.has(e.status)}function dr(e,t){let n=e===`hourly`?`Hourly Trend`:`Daily Trend`;return!t||t===`conversation`?n:`${n} by ${er[t]}`}function fr({requestedGranularity:e,isLoading:t,buckets:n}){return e===`hourly`&&(t||!n||n.length===0||n.some(pr))?`hourly`:`daily`}function pr(e){return e.bucketId.includes(`|`)||mr(e.date)}function mr(e){return/^\d{4}-\d{2}-\d{2} ([01]\d|2[0-3]):00$/.test(e)}function hr(e,t,n=Date.now()){return Wt(e,t,n)}function gr(e){return e===`today`||e===`yesterday`?`hourly`:`daily`}function _r({prompt:e,children:t,variant:n=`outlined`,size:r=`regular`,className:a}){let o=c(),s=(0,K.useCallback)(()=>{Ze(o,{prompt:e})},[o,e]);return(0,J.jsx)(i,{variant:n,size:r,leftIcon:(0,J.jsx)(ye,{}),onClick:s,className:a,children:t})}var vr=[{value:`today`,label:`Today`},{value:`yesterday`,label:`Yesterday`},{value:`7d`,label:`Last 7 days`},{value:`30d`,label:`Last 30 days`},{value:`90d`,label:`Last 90 days`},{value:`all`,label:`All time`}],yr=300*1e3,br=[`Please load the llm-cost-optimizer skill.`,`Analyze my recent LLM usage and explain the biggest cost contributors by call site, model, and profile.`,`Check my current llm.default, llm.callSites, and llm.profiles.`,`Give me a concise summary of what is driving cost and what you would optimize first.`,`Do not change config yet.`].join(` `),xr=[`Please load the llm-cost-optimizer skill.`,`Analyze my recent LLM usage and current LLM config, then recommend the safest cost-optimization changes.`,`If changes are clearly safe, show me the exact config commands you would run and ask for confirmation before applying them.`].join(` `);function Sr({assistantId:e}){let[t,n]=o(),{range:r,groupBy:i,scheduleId:a}=(0,K.useMemo)(()=>nr(t),[t]),s=Nt(),c=(0,K.useCallback)(e=>{n(t=>ir(t,e),{replace:!0})},[n]),l=(0,K.useMemo)(()=>hr(r,s),[r,s]),d=(0,K.useMemo)(()=>gr(r),[r]),f=u({queryKey:Ge({path:{assistant_id:e}}),queryFn:()=>Vt(e),staleTime:1e4}),p=(0,K.useCallback)(e=>{c({range:e})},[c]),m=u({...Ue({path:{assistant_id:e},query:Bn({from:l.from,to:l.to,scheduleId:a})})}),h=u({queryKey:Je({path:{assistant_id:e},query:Hn({from:l.from,to:l.to,groupBy:i,scheduleId:a})}),queryFn:async({signal:t})=>{try{let{data:n}=await Le({path:{assistant_id:e},query:Hn({from:l.from,to:l.to,groupBy:i,scheduleId:a}),signal:t,throwOnError:!0});return{groupBy:i,response:n}}catch(n){if(!cr(i,n))throw n;let{data:r}=await Le({path:{assistant_id:e},query:Hn({from:l.from,to:l.to,groupBy:Yn,scheduleId:a}),signal:t,throwOnError:!0});return{groupBy:Yn,response:r}}},retry:lr}),g=h.data?.groupBy??i,_=sr(g)?g:void 0,v=u({...We({path:{assistant_id:e},query:Un({from:l.from,to:l.to,granularity:d,groupBy:_??`actor`,tz:s,scheduleId:a})}),enabled:!!_,retry:lr}),y=u({...He({path:{assistant_id:e},query:Vn({from:l.from,to:l.to,granularity:d,tz:s,scheduleId:a})}),enabled:!_||v.isError}),b=u({...qe({path:{assistant_id:e}}),enabled:g===`task`,staleTime:1/0}),x=u({...Ke({path:{assistant_id:e}}),select:Gt,enabled:g===`profile`,staleTime:yr}),S=(0,K.useMemo)(()=>({callSites:Zt(b.data),profiles:x.data??{}}),[b.data,x.data]),C=(0,K.useMemo)(()=>{let e=h.data;if(e)return sn(e.response.breakdown,e.groupBy,S)},[h.data,S]),w=(0,K.useMemo)(()=>{if(!(!_||!v.data))return mn(v.data.buckets,_,S)},[v.data,_,S]),T=(0,K.useMemo)(()=>{if(y.data)return pn(y.data.buckets)},[y.data]),E=(0,K.useMemo)(()=>_?v.error?T?{isLoading:!1,error:null,data:T,refetch:y.refetch}:{isLoading:y.isLoading||!T&&!y.error,error:y.error??v.error,data:void 0,refetch:y.error?y.refetch:v.refetch}:{isLoading:v.isLoading,error:v.error,data:w,refetch:v.refetch}:{isLoading:y.isLoading,error:y.error,data:T,refetch:y.refetch},[T,y.error,y.isLoading,y.refetch,w,_,v.error,v.isLoading,v.refetch]),D=fr({requestedGranularity:d,isLoading:E.isLoading,buckets:E.data}),O=D===`hourly`,k=_&&v.error?void 0:g,A=(0,K.useMemo)(()=>{if(!(g!==`schedule`||!a))return Cr(f.data,a)},[g,a,f.data]);return(0,J.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,J.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[(0,J.jsx)(`h3`,{className:`text-title-small`,style:{color:`var(--content-default)`},children:`Usage`}),(0,J.jsx)(`div`,{className:`flex flex-wrap items-center justify-end gap-2`,children:(0,J.jsx)(Er,{range:r,onChange:p})})]}),(0,J.jsx)(`section`,{"aria-label":`Totals`,children:(0,J.jsx)(Or,{query:m,skeleton:(0,J.jsx)(jr,{}),render:e=>(0,J.jsx)(kr,{totals:e})})}),(0,J.jsx)(Dr,{title:`Inference Usage`,children:(0,J.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,J.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[(0,J.jsx)(`h4`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:dr(D,k)}),(0,J.jsx)(`div`,{className:`flex flex-wrap items-center justify-end gap-2`,children:(0,J.jsx)(Mr,{value:g,onChange:e=>{e===i&&g!==i&&(h.refetch(),v.refetch()),c({groupBy:e,scheduleId:e===`schedule`?void 0:null})}})})]}),(0,J.jsx)(Or,{query:E,skeleton:(0,J.jsx)(Pn,{isHourly:O}),render:e=>(0,J.jsx)(Nn,{buckets:e,isHourly:O,legendItems:A})})]})}),(0,J.jsx)(Nr,{query:h,groups:C}),(0,J.jsx)(Tr,{})]})}function Cr(e,t){let n=e??[];return[...n.some(e=>e.id===t)?[]:[{id:t,label:wr(t)}],...n.map(e=>({id:e.id,label:e.name||e.id}))].map((e,n)=>({seriesKey:dn(e.id,`schedule`),label:e.label,colorIndex:n,state:e.id===t?`active`:`inactive`}))}function wr(e){return`Unknown schedule (${e})`}function Tr(){return(0,J.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,J.jsx)(`div`,{className:`h-px w-full`,style:{background:`linear-gradient(to right, transparent, var(--border-base), transparent)`}}),(0,J.jsx)(Dr,{title:`Cost assistant`,subtitle:`Review recent spend and tune model profile choices.`,children:(0,J.jsxs)(`div`,{className:`flex flex-col gap-2 rounded-md px-3 py-3 sm:flex-row sm:items-center`,children:[(0,J.jsx)(_r,{prompt:br,children:`Analyze costs with assistant`}),(0,J.jsx)(_r,{prompt:xr,variant:`ghost`,children:`Optimize settings`})]})})]})}function Er({range:e,onChange:t}){return(0,J.jsx)(`div`,{className:`flex items-center`,children:(0,J.jsx)(ke,{value:e,onChange:t,options:vr.map(e=>({value:e.value,label:e.label}))})})}function Dr({title:e,subtitle:t,children:n}){return(0,J.jsxs)(`section`,{className:`flex flex-col gap-3 rounded-md border px-4 py-4`,style:{background:`var(--surface-lift)`,borderColor:`var(--border-base)`},children:[(0,J.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,J.jsx)(`h3`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:e}),t?(0,J.jsx)(`p`,{className:`text-body-small-default`,style:{color:`var(--content-tertiary)`},children:t}):null]}),n]})}function Or({query:e,skeleton:t,render:n}){return e.isLoading?(0,J.jsx)(J.Fragment,{children:t}):e.error?(0,J.jsx)(Rr,{message:e.error instanceof Error?e.error.message:`Failed to load usage.`,onRetry:()=>e.refetch()}):e.data?(0,J.jsx)(J.Fragment,{children:n(e.data)}):(0,J.jsx)(J.Fragment,{children:t})}function kr({totals:e}){return(0,J.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,J.jsxs)(`div`,{className:`flex flex-wrap items-baseline justify-between gap-4`,children:[(0,J.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,J.jsx)(`span`,{style:{fontSize:`30px`,fontWeight:600,lineHeight:1,color:`var(--content-default)`},children:Qt(e.totalEstimatedCostUsd)}),(0,J.jsx)(`span`,{className:`text-body-small-default`,style:{color:`var(--content-secondary)`},children:`Cost`})]}),(0,J.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,J.jsx)(`span`,{className:`text-title-small`,style:{color:`var(--content-default)`},children:q(e.eventCount)}),(0,J.jsx)(`span`,{className:`text-body-small-default`,style:{color:`var(--content-secondary)`},children:`LLM Calls`})]})]}),(0,J.jsxs)(`div`,{className:`grid grid-cols-2 gap-3 sm:grid-cols-4`,children:[(0,J.jsx)(Ar,{label:`Direct Input Tokens`,value:q(e.totalInputTokens)}),(0,J.jsx)(Ar,{label:`Output Tokens`,value:q(e.totalOutputTokens)}),(0,J.jsx)(Ar,{label:`Cache Created`,value:q(e.totalCacheCreationTokens)}),(0,J.jsx)(Ar,{label:`Cache Read`,value:q(e.totalCacheReadTokens)})]})]})}function Ar({label:e,value:t}){return(0,J.jsxs)(`div`,{className:`flex flex-col gap-1 rounded-md px-3 py-2`,style:{background:`color-mix(in srgb, var(--border-base) 15%, transparent)`},children:[(0,J.jsx)(`span`,{className:`text-body-small-default`,style:{color:`var(--content-default)`},children:t}),(0,J.jsx)(`span`,{className:`text-label-medium-default`,style:{color:`var(--content-tertiary)`},children:e})]})}function jr(){return(0,J.jsxs)(`div`,{className:`flex flex-col gap-4`,"aria-hidden":`true`,children:[(0,J.jsxs)(`div`,{className:`flex flex-wrap items-baseline justify-between gap-4`,children:[(0,J.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,J.jsx)(Y,{width:140,height:30}),(0,J.jsx)(Y,{width:90,height:12})]}),(0,J.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,J.jsx)(Y,{width:60,height:16}),(0,J.jsx)(Y,{width:60,height:12})]})]}),(0,J.jsx)(`div`,{className:`grid grid-cols-2 gap-3 sm:grid-cols-4`,children:Array.from({length:4}).map((e,t)=>(0,J.jsxs)(`div`,{className:`flex flex-col gap-1 rounded-md px-3 py-2`,style:{background:`color-mix(in srgb, var(--border-base) 15%, transparent)`},children:[(0,J.jsx)(Y,{width:`50%`,height:12}),(0,J.jsx)(Y,{width:`70%`,height:11})]},t))})]})}function Mr({value:e,onChange:t}){return(0,J.jsx)(`div`,{className:`flex items-center`,children:(0,J.jsx)(ke,{value:e,onChange:t,menuAlign:`end`,menuMinWidth:196,options:tr.map(e=>({value:e.value,label:e.label}))})})}function Nr({query:e,groups:t}){let[n,r]=(0,K.useState)(new Set),i=e=>{r(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})};return(0,J.jsx)(Dr,{title:`Breakdown`,children:(0,J.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,J.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,J.jsx)(Pr,{label:`% of total`,active:n.has(`pct`),onClick:()=>i(`pct`)}),(0,J.jsx)(Pr,{label:`Tokens`,active:n.has(`tokens`),onClick:()=>i(`tokens`)}),(0,J.jsx)(Pr,{label:`Turns`,active:n.has(`turns`),onClick:()=>i(`turns`)})]}),(0,J.jsx)(Or,{query:e,skeleton:(0,J.jsx)(Ir,{}),render:e=>(0,J.jsx)(Fr,{groups:t??e.response.breakdown,groupBy:e.groupBy,showPct:n.has(`pct`),showTokens:n.has(`tokens`),showTurns:n.has(`turns`)})})]})})}function Pr({label:e,active:t,onClick:n}){return(0,J.jsx)(`button`,{type:`button`,onClick:n,className:`rounded-full border px-2.5 py-1 text-label-medium-default`,style:{borderColor:t?`var(--content-secondary)`:`var(--border-base)`,background:t?`color-mix(in srgb, var(--content-secondary) 15%, transparent)`:`transparent`,color:t?`var(--content-default)`:`var(--content-tertiary)`},children:e})}function Fr({groups:e,groupBy:t,showPct:n,showTokens:r,showTurns:i}){let a=c();if(e.length===0)return(0,J.jsx)(Lr,{title:`No breakdown data`,subtitle:`No usage recorded for this grouping`});let o=e.reduce((e,t)=>e+t.totalEstimatedCostUsd,0);return(0,J.jsx)(`div`,{className:`overflow-hidden rounded-md`,children:(0,J.jsxs)(`table`,{className:`w-full table-fixed`,children:[(0,J.jsx)(`thead`,{children:(0,J.jsxs)(`tr`,{style:{borderBottom:`1px solid var(--border-base)`},children:[(0,J.jsx)(`th`,{className:`px-3 py-2.5 text-left text-label-medium-default`,style:{color:`var(--content-tertiary)`},children:`Group`}),r?(0,J.jsx)(`th`,{className:`px-3 py-2.5 text-left text-label-medium-default`,style:{color:`var(--content-tertiary)`,width:`35%`},children:`Tokens`}):null,i?(0,J.jsx)(`th`,{className:`px-3 py-2.5 text-right text-label-medium-default`,style:{color:`var(--content-tertiary)`,width:`72px`},children:`Turns`}):null,n?(0,J.jsx)(`th`,{className:`px-3 py-2.5 text-right text-label-medium-default`,style:{color:`var(--content-tertiary)`,width:`64px`},children:`%`}):null,(0,J.jsx)(`th`,{className:`px-3 py-2.5 text-right text-label-medium-default`,style:{color:`var(--content-tertiary)`,width:`100px`},children:`Cost`})]})}),(0,J.jsx)(`tbody`,{children:e.map((e,c)=>{let l=Gn(e),u=qn(e),d=t===`conversation`?e.groupId:null,f=o>0?Math.round(e.totalEstimatedCostUsd/o*100):0;return(0,J.jsxs)(`tr`,{className:d?`cursor-pointer hover:bg-[var(--surface-hover)]`:void 0,onClick:d?e=>{e.target.closest(`a`)||Qe(a,d)}:void 0,style:{borderTop:c===0?`none`:`1px solid var(--border-base)`},children:[(0,J.jsx)(`td`,{className:`min-w-0 px-3 py-2`,style:{color:`var(--content-default)`},children:d?(0,J.jsx)(s,{to:W.conversation(d),className:`block truncate text-body-medium-lighter`,title:e.group,onClick:e=>{Bt(e)||(e.preventDefault(),Qe(a,d))},children:e.group}):(0,J.jsx)(`span`,{className:`block truncate text-body-medium-lighter`,title:e.group,children:e.group})}),r?(0,J.jsx)(`td`,{className:`min-w-0 px-3 py-2`,style:{color:`var(--content-secondary)`},children:(0,J.jsx)(`span`,{className:`block truncate text-body-small-default`,title:l,children:u})}):null,i?(0,J.jsx)(`td`,{className:`whitespace-nowrap px-3 py-2 text-right`,children:(0,J.jsx)(`span`,{className:`text-body-small-default`,style:{color:`var(--content-tertiary)`},children:e.turnCount==null?`—`:e.turnCount.toLocaleString()})}):null,n?(0,J.jsx)(`td`,{className:`whitespace-nowrap px-3 py-2 text-right`,children:(0,J.jsxs)(`span`,{className:`text-body-small-default`,style:{color:`var(--content-tertiary)`},children:[f,`%`]})}):null,(0,J.jsx)(`td`,{className:`whitespace-nowrap px-3 py-2 text-right`,children:(0,J.jsx)(`span`,{className:`text-body-medium-lighter`,style:{color:`var(--content-default)`},children:Qt(e.totalEstimatedCostUsd)})})]},e.groupKey??e.groupId??`${e.group}-${c}`)})})]})})}function Ir(){return(0,J.jsx)(`div`,{className:`flex flex-col gap-2`,"aria-hidden":`true`,children:Array.from({length:4}).map((e,t)=>(0,J.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,J.jsx)(Y,{width:100,height:14}),(0,J.jsx)(Y,{width:`60%`,height:12}),(0,J.jsx)(Y,{width:50,height:14})]},t))})}function Y({width:e,height:t}){return(0,J.jsx)(`div`,{className:`rounded-sm`,style:{width:typeof e==`number`?`${e}px`:e,height:`${t}px`,background:`color-mix(in srgb, var(--border-base) 40%, transparent)`}})}function Lr({title:e,subtitle:t}){return(0,J.jsxs)(`div`,{className:`flex flex-col items-center gap-1 py-8 text-center`,children:[(0,J.jsx)(`span`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:e}),(0,J.jsx)(`span`,{className:`text-body-small-default`,style:{color:`var(--content-tertiary)`},children:t})]})}function Rr({message:e,onRetry:t}){return(0,J.jsxs)(`div`,{className:`flex flex-col gap-2 py-2`,children:[(0,J.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,J.jsx)(be,{className:`h-4 w-4 shrink-0`,style:{color:`var(--system-negative-strong, #f87171)`}}),(0,J.jsx)(`span`,{className:`text-body-medium-lighter`,style:{color:`var(--content-default)`},children:e})]}),t?(0,J.jsx)(`button`,{type:`button`,onClick:t,className:`self-start rounded-md border px-3 py-1 text-body-small-default`,style:{background:`var(--surface-lift)`,borderColor:`var(--border-base)`,color:`var(--content-default)`},children:`Retry`}):null]})}function zr({open:e,onCancel:t,onConfirm:n,confirming:r,lostFeatures:a}){return(0,J.jsx)(H.Root,{open:e,onOpenChange:e=>{!e&&!r&&t()},children:(0,J.jsxs)(H.Content,{size:`md`,hideCloseButton:!0,children:[(0,J.jsx)(H.Header,{children:(0,J.jsx)(H.Title,{icon:be,children:`Downgrade to Base?`})}),(0,J.jsxs)(H.Body,{children:[(0,J.jsx)(m,{as:`p`,variant:`body-medium-default`,className:`text-(--content-secondary)`,children:`Downgrading removes the following Pro features:`}),(0,J.jsx)(`ul`,{className:`mt-4 list-disc space-y-2 pl-5`,children:a.map(e=>(0,J.jsx)(`li`,{children:(0,J.jsx)(m,{as:`span`,variant:`body-medium-default`,children:e})},e))})]}),(0,J.jsxs)(H.Footer,{children:[(0,J.jsx)(i,{variant:`outlined`,onClick:t,disabled:r,children:`Keep Pro`}),(0,J.jsx)(i,{variant:`danger`,onClick:n,disabled:r,"data-testid":`confirm-downgrade-button`,children:`Confirm Downgrade`})]})]})})}var Br=`__none__`;function Vr(e){return`${e.label} — ${O(e.price_cents)}`}function Hr({creditTiers:e,selectedCreditTier:t,onCreditTierChange:n,disabled:r=!1}){let i=(0,K.useMemo)(()=>[{value:Br,label:`No credit bundle — ${O(0)}`},...e.map(e=>({value:e.tier,label:Vr(e)}))],[e]);return(0,J.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,J.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,J.jsx)(m,{as:`p`,variant:`label-small-default`,className:`text-[var(--content-secondary)]`,children:`Credit bundle`}),(0,J.jsx)(`span`,{title:`A monthly allotment of credits added to your Pro Plan subscription`,children:(0,J.jsx)(ve,{className:`h-3 w-3 text-[var(--content-tertiary)]`})})]}),(0,J.jsx)(ke,{"aria-label":`Credit bundle`,placeholder:`Select a credit bundle`,disabled:r,value:t??Br,onChange:e=>n(e===Br?null:e),options:i})]})}function Ur({features:e,variant:t,header:n,maxInline:r=3}){return t===`inline`?(0,J.jsx)(J.Fragment,{children:e.slice(0,r).join(`, `)}):(0,J.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[n&&(0,J.jsx)(m,{as:`p`,variant:`body-small-default`,className:`text-[var(--content-secondary)]`,children:n}),(0,J.jsx)(`ul`,{className:`flex flex-col gap-2`,children:e.map(e=>(0,J.jsxs)(`li`,{className:`flex items-start gap-2`,children:[(0,J.jsx)(x,{className:`mt-0.5 h-4 w-4 shrink-0 text-[var(--content-tertiary)]`,"aria-hidden":!0}),(0,J.jsx)(m,{as:`span`,variant:`body-medium-default`,children:e})]},e))})]})}function Wr({plan:e,isCurrent:t,onPro:n,planDisplayName:r,currentPlanFeatures:a,cancelAtPeriodEnd:o,isCanceled:s,cancelDate:c,formatGraceDate:l,proTierChangeMode:u,creditTiersEnabled:d,creditTiers:f,displayCreditTier:p,onCreditTierChange:g,selectedMachineTier:_,selectedStorageTier:v,onMachineTierChange:y,onStorageTierChange:b,machineTiersForPicker:x,storageTiersForPicker:S,currentMachinePrice:C,currentStoragePrice:w,currentCreditPriceUnknown:D,proCurrentTotalCents:k,proLiveTotalCents:A,proTotalDelta:j,onboardingLoading:M,tierChangePending:N,machineChanged:F,storageChanged:ee,creditChanged:te,tierChangeError:ne,upgradePending:re,portalPending:ie,onUpgrade:oe,onApplyTierChange:se,onDowngradeClick:ce,onKeepPlan:le}){let I=e.id===`pro`,L=e.id===`base`,ue=I&&n&&o&&!s,R=I&&(!t||t&&u),de=I&&t&&u,fe=I&&t;return(0,J.jsx)(h.Root,{className:`flex flex-col bg-[var(--surface-base)]`,children:(0,J.jsxs)(h.Body,{padding:`lg`,className:`max-sm:p-4`,children:[(0,J.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,J.jsx)(`span`,{"aria-hidden":!0,className:`flex h-9 w-9 items-center justify-center rounded-lg border border-[var(--border-base)] bg-[var(--surface-lift)]`,children:I?(0,J.jsx)(qt,{className:`h-5 w-5 text-[var(--content-default)]`}):(0,J.jsx)(Jt,{className:`h-5 w-5 text-[var(--content-default)]`})}),(0,J.jsxs)(`div`,{className:`flex min-h-6 items-center gap-2`,children:[(0,J.jsx)(m,{as:`h3`,variant:`title-small`,"data-testid":`modal-plan-name`,children:fe?r:e.name}),t&&(0,J.jsx)(Te,{tone:`positive`,children:`Current`})]}),(0,J.jsx)(m,{as:`p`,variant:`body-small-default`,className:`-mt-2 text-[var(--content-tertiary)]`,children:L?`All you need for a capable assistant`:`More features, more compute, more storage`}),ue&&c&&(0,J.jsxs)(m,{as:`p`,variant:`body-small-default`,className:`text-[var(--system-mid-strong)]`,"data-testid":`modal-cancels-on`,children:[`Your plan ends on `,l(c)]}),(0,J.jsx)(`hr`,{className:`border-t border-[var(--border-base)]`}),(0,J.jsx)(`div`,{className:`flex flex-col gap-1`,children:L?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(m,{as:`p`,variant:`title-medium`,children:`Free`}),(0,J.jsx)(m,{as:`p`,variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,children:`Forever`})]}):t&&!(R&&A!=null)&&(k==null||D)?M?(0,J.jsxs)(`div`,{className:`flex items-center gap-2 text-[var(--content-tertiary)]`,children:[(0,J.jsx)(B,{className:`h-4 w-4 animate-spin`}),(0,J.jsx)(m,{as:`span`,variant:`body-medium-lighter`,children:`Loading your plan...`})]}):(0,J.jsx)(m,{as:`p`,variant:`body-medium-lighter`,className:`text-[var(--content-tertiary)]`,"data-testid":`modal-pro-price-unavailable`,children:`Current plan pricing unavailable`}):(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,J.jsx)(m,{as:`p`,variant:`title-medium`,"data-testid":`modal-pro-price`,children:R&&A!=null?(0,J.jsxs)(J.Fragment,{children:[O(A),j!=null&&j!==0&&(0,J.jsxs)(`span`,{className:`ml-1 text-[var(--content-tertiary)]`,children:[`(`,T(j),`)`]})]}):k==null?e.id===`pro`?`From ${O(e.base_price_cents+P(e.machine_tiers)+P(e.storage_tiers))}`:null:`Currently ${O(k)}`}),R&&j!=null&&j!==0&&(0,J.jsx)(`span`,{title:`Your Pro Plan subscription will change from ${O(k)} to ${O(A)}.`,children:(0,J.jsx)(ve,{className:`h-3 w-3 text-[var(--content-tertiary)]`})})]}),e.id===`pro`&&(0,J.jsxs)(m,{as:`p`,variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,"data-testid":`modal-pro-base-fee`,children:[E(e.base_price_cents),` base fee`]})]})}),(0,J.jsx)(Ur,{features:fe&&a?a:e.included_features,variant:`checklist`}),I&&!d&&(0,J.jsx)(m,{as:`p`,variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,"data-testid":`modal-credits-not-included`,children:`*Credits not included`})]}),(0,J.jsxs)(`div`,{className:`mt-4 flex flex-1 flex-col justify-end gap-4`,children:[!t&&I&&(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`hr`,{className:`border-t border-[var(--border-base)]`}),d&&(0,J.jsx)(Hr,{creditTiers:f,selectedCreditTier:p,onCreditTierChange:g,disabled:re}),(0,J.jsx)(ae,{machineTiers:x,storageTiers:S,selectedMachineTier:_,selectedStorageTier:v,onMachineTierChange:y,onStorageTierChange:b}),(0,J.jsx)(i,{variant:`primary`,className:`w-full`,onClick:oe,disabled:re||!_||!v,"data-testid":`modal-upgrade-to-pro-button`,children:`Upgrade to Pro`})]}),de&&(M?(0,J.jsxs)(`div`,{className:`flex items-center gap-2 text-[var(--content-tertiary)]`,children:[(0,J.jsx)(B,{className:`h-4 w-4 animate-spin`}),(0,J.jsx)(m,{as:`span`,variant:`body-medium-lighter`,children:`Loading your plan...`})]}):(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`hr`,{className:`border-t border-[var(--border-base)]`}),d&&(0,J.jsx)(Hr,{creditTiers:f,selectedCreditTier:p,onCreditTierChange:g,disabled:N}),(0,J.jsx)(ae,{machineTiers:x,storageTiers:S,selectedMachineTier:_,selectedStorageTier:v,onMachineTierChange:y,onStorageTierChange:b,currentMachinePriceCents:C,currentStoragePriceCents:w}),ne&&(0,J.jsx)(V,{tone:`error`,children:ne}),(0,J.jsx)(i,{variant:`primary`,className:`w-full`,onClick:se,disabled:N||!F&&!ee&&!te,"data-testid":`modal-change-tier-button`,children:`Update Plan`})]})),!t&&L&&n&&!o&&(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`hr`,{className:`border-t border-[var(--border-base)]`}),(0,J.jsx)(i,{variant:`outlined`,className:`w-full`,onClick:ce,disabled:ie,"data-testid":`modal-downgrade-to-base-button`,children:`Downgrade to Base`})]}),ue&&(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`hr`,{className:`border-t border-[var(--border-base)]`}),(0,J.jsx)(i,{variant:`outlined`,className:`w-full`,onClick:le,disabled:ie,"data-testid":`modal-keep-plan-button`,children:`Keep your Plan`})]})]})]})})}function Gr({open:e,onClose:t,onTierUpgraded:n}){let r=l(),a=u(tt()),o=u(wt()),s=f(vt()),c=f(Tt()),d=f(Ct()),p=f(kt()),h=M(te(o.data)),[g,v]=(0,K.useState)(`plans`),[y,b]=(0,K.useState)(!1),[x,S]=(0,K.useState)(null),[C,w]=(0,K.useState)(null),[T,E]=(0,K.useState)(void 0);(0,K.useEffect)(()=>Xe(()=>{r.invalidateQueries({queryKey:At()}),r.invalidateQueries({queryKey:yt()}),r.invalidateQueries({queryKey:_t()}),t()}),[r,t]);let D=o.data?.plan_id,O=D===`pro`,k=u({...Ot(),enabled:O}),j=k.data?.max_machine_tier??null,P=k.data?.selected_storage_tier??null,ee=k.data?.selected_storage_gib??null,ne=o.data?.cancel_at_period_end===!0||!!o.data?.cancel_at,ae=o.data?.status===`canceled`,oe=ue(o.data),se=o.data?.status,le=se!=null&&N.has(se),I=O&&le&&!ne&&!ae,L=a.data?.plans.find(e=>e.id===`pro`),R=L?.credit_tiers??[],fe=R.length>0,z=o.data?.selected_credit_tier??null,pe=e=>R.find(t=>t.tier===e)?.price_cents??0,me=pe(z),he=z!=null&&!R.some(e=>e.tier===z),ge=T===void 0?z:T,_e=pe(ge),ve=re(o.data?.package),ye=O&&k.isSuccess&&L?de({machineTier:j,storageTier:P,storageGib:ee,creditTier:z},L):null,xe=L?.machine_tiers??[],Se=I&&ee!=null?(L?.storage_tiers??[]).map(e=>e.storage_gib<ee?{...e,disabled:!0}:e):L?.storage_tiers??[];(0,K.useEffect)(()=>{if(!e){S(null),w(null),E(void 0);return}if(L){if(I){if(j==null||P==null)return;S(e=>ce(xe,e??j)),w(e=>ce(Se,e??P)),E(e=>F(R,e,z));return}S(e=>ce(L.machine_tiers,e)),w(e=>ce(L.storage_tiers,e)),E(e=>F(R,e,null))}},[e,L,I,j,P,z]);let Ce=a.data?.plans.find(e=>e.id===`base`),we=new Set(Ce?.included_features??[]),Te=(L?.included_features??[]).filter(e=>!we.has(e)),Ee=()=>{if(!s.isPending){if(!x||!C){U.error(`Pick a machine and storage tier to continue.`,{id:`pro-upgrade-error`});return}s.mutate({body:{target_plan_id:`pro`,confirm:!0,machine_tier:x,storage_tier:C,credit_tier:ge,return_target:Kt()}},{onSuccess:e=>{if(e.checkout_url){Re({kind:`custom`,machineTier:x,storageTier:C,creditTier:ge}),Ne(r),Ye(e.checkout_url);return}if(e.status===`no_op`){U.info(`You're already on Pro.`,{id:`pro-upgrade`}),t();return}U.error(e.message??`Failed to start upgrade. Please try again.`,{id:`pro-upgrade-error`})},onError:e=>{U.error(ie(e,`Failed to start upgrade. Please try again.`),{id:`pro-upgrade-error`})}})}},De=()=>{h.isPending||(v(`plans`),h.mutate({}))},Oe=()=>{r.invalidateQueries({queryKey:At()}),r.invalidateQueries({queryKey:_t()}),r.invalidateQueries({queryKey:yt()})},ke=c.isPending||d.isPending||p.isPending,Ae=x!=null&&x!==j,je=C!=null&&C!==P,Me=fe&&T!==void 0&&T!==z,Pe=e=>xe.find(t=>t.tier===e)?.price_cents??null,Fe=e=>Se.find(t=>t.tier===e)?.price_cents??null,Ie=Pe(x),Le=Fe(C),W=Pe(j),G=Fe(P),ze=Ae&&Ie!=null&&W!=null&&Ie<W,Be=()=>{if(ke)return;let e=[];Ae&&x&&e.push(new Promise(e=>{c.mutate({body:{machine_tier:x}},{onSuccess:()=>e({dimension:`machine`,ok:!0}),onError:t=>e({dimension:`machine`,ok:!1,error:t})})})),je&&C&&e.push(new Promise(e=>{d.mutate({body:{storage_tier:C}},{onSuccess:()=>e({dimension:`storage`,ok:!0}),onError:t=>e({dimension:`storage`,ok:!1,error:t})})})),Me&&e.push(new Promise(e=>{p.mutate({body:{credit_tier:ge}},{onSuccess:()=>e({dimension:`credit`,ok:!0}),onError:t=>e({dimension:`credit`,ok:!1,error:t})})})),Promise.all(e).then(e=>{Oe();let r=e.some(e=>e.ok&&e.dimension===`storage`),i=e.some(e=>e.ok&&e.dimension===`machine`)&&!ze,a=(r||i)&&!!n,o=e.filter(e=>!e.ok);if(o.length>0){let e=o.map(e=>ie(e.error,`Failed to update ${e.dimension} tier.`)).join(` `);U.error(e,{id:`pro-tier-change-error`}),a&&(t(),n());return}a?(t(),n()):U.success(Me&&!Ae&&!je?`Credit bundle updated.`:`Plan updated.`,{id:`pro-tier-change`})})},Ve=()=>{if(!ke){if(ze){b(!0);return}Be()}},He=()=>{b(!1),Be()},Ue=e=>Ie!=null&&Le!=null?e.base_price_cents+Ie+Le+_e:null,We=e=>W!=null&&G!=null?e.base_price_cents+W+G+me:null,Ge=c.isError||d.isError||p.isError?ie(c.error??d.error??p.error,`Failed to update plan. Please try again.`):null,Ke=a.isLoading||o.isLoading,qe=a.isError||o.isError||!a.data||!o.data;return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(H.Root,{open:e,onOpenChange:e=>{e||(v(`plans`),t())},children:(0,J.jsx)(H.Content,{size:g===`plans`?`lg`:`md`,children:g===`downgrade-confirm`?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(H.Header,{children:(0,J.jsx)(H.Title,{icon:be,children:`Downgrade to Base?`})}),(0,J.jsxs)(H.Body,{children:[(0,J.jsx)(m,{as:`p`,variant:`body-medium-default`,className:`text-(--content-secondary)`,children:`Downgrading removes the following Pro features:`}),(0,J.jsx)(`ul`,{className:`mt-4 list-disc space-y-2 pl-5`,children:Te.map(e=>(0,J.jsx)(`li`,{children:(0,J.jsx)(m,{as:`span`,variant:`body-medium-default`,children:e})},e))})]}),(0,J.jsxs)(H.Footer,{children:[(0,J.jsx)(i,{variant:`ghost`,onClick:()=>v(`plans`),disabled:h.isPending,leftIcon:(0,J.jsx)(_,{className:`h-4 w-4`}),children:`Back`}),(0,J.jsx)(i,{variant:`danger`,onClick:De,disabled:h.isPending,"data-testid":`confirm-downgrade-button`,children:`Confirm Downgrade`})]})]}):(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(H.Header,{children:(0,J.jsx)(H.Title,{className:`sr-only`,children:`Upgrade Plan`})}),(0,J.jsx)(H.Body,{children:Ke?(0,J.jsxs)(`div`,{className:`flex items-center gap-2 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,J.jsx)(B,{className:`h-4 w-4 animate-spin`}),(0,J.jsx)(m,{as:`span`,variant:`body-medium-lighter`,children:`Loading plans...`})]}):qe?(0,J.jsx)(V,{tone:`error`,children:`Failed to load plans. Please try again later.`}):(0,J.jsxs)(`div`,{className:`space-y-4 sm:space-y-6`,children:[(0,J.jsxs)(`div`,{className:`space-y-2 pb-2 pt-4 text-center`,children:[(0,J.jsx)(m,{as:`p`,variant:`title-medium`,children:`Your Assistant, Your Way`}),(0,J.jsx)(m,{as:`p`,variant:`body-medium-lighter`,className:`text-[var(--content-secondary)]`,children:`Choose the plan that works best for you and your assistant.`})]}),(0,J.jsx)(`div`,{className:`grid grid-cols-1 gap-4 md:grid-cols-2`,children:a.data.plans.map(e=>{let t=e.id===D,n=e.id===`pro`&&L?Ue(L):null,r=e.id===`pro`&&L?We(L):null;return(0,J.jsx)(Wr,{plan:e,isCurrent:t,onPro:O,planDisplayName:ve,currentPlanFeatures:ye,cancelAtPeriodEnd:ne,isCanceled:ae,cancelDate:oe,formatGraceDate:A,proTierChangeMode:I,creditTiersEnabled:fe,creditTiers:R,displayCreditTier:ge,onCreditTierChange:E,selectedMachineTier:x,selectedStorageTier:C,onMachineTierChange:S,onStorageTierChange:w,machineTiersForPicker:xe,storageTiersForPicker:Se,currentMachinePrice:W,currentStoragePrice:G,currentCreditPriceUnknown:he,proCurrentTotalCents:r,proLiveTotalCents:n,proTotalDelta:n!=null&&r!=null?n-r:null,onboardingLoading:k.isLoading,tierChangePending:ke,machineChanged:Ae,storageChanged:je,creditChanged:Me,tierChangeError:Ge,upgradePending:s.isPending,portalPending:h.isPending,onUpgrade:Ee,onApplyTierChange:Ve,onDowngradeClick:()=>v(`downgrade-confirm`),onKeepPlan:()=>h.mutate({})},e.id)})})]})}),(0,J.jsxs)(H.Footer,{className:`relative items-center`,children:[(0,J.jsx)(m,{as:`p`,variant:`body-small-default`,className:`pointer-events-none absolute inset-x-0 text-center text-[var(--content-tertiary)]`,children:(0,J.jsx)(`span`,{className:`pointer-events-auto`,children:`You can change or cancel your plan at any time from billing settings.`})}),(0,J.jsx)(`div`,{className:`ml-auto`,children:(0,J.jsx)(i,{variant:`outlined`,onClick:t,"data-testid":`modal-cancel-button`,children:`Cancel`})})]})]})})}),(0,J.jsx)(zr,{open:y,onCancel:()=>b(!1),onConfirm:He,confirming:ke,lostFeatures:[`Reduced CPU and memory for your assistant — it will resize to the smaller compute profile.`]})]})}function Kr({open:e,confirming:t,onCancel:n,onConfirm:r}){return(0,J.jsx)(Oe,{open:e,title:`Disable automatic top-ups?`,message:`Auto top-ups will stop. Any saved payment method stays on file.`,confirmLabel:t?`Disabling…`:`Disable`,cancelLabel:`Keep enabled`,destructive:!0,onConfirm:r,onCancel:n})}var qr={threshold_usd:`100`,amount_usd:`10`,monthly_cap_usd:``};function Jr(e){if(e===``||e===`-`)return e;let t=parseFloat(e);return Number.isFinite(t)?String(Math.trunc(t)):``}function Yr(e){let t={},n=parseFloat(e.threshold_usd),r=parseFloat(e.amount_usd);if((!Number.isFinite(r)||r<10||r>500)&&(t.amount_usd=`Must be between $10 and $500`),(!Number.isFinite(n)||n<1||n>100)&&(t.threshold_usd=`Must be between $1 and $100`),e.monthly_cap_usd!==``){let n=parseFloat(e.monthly_cap_usd);!Number.isFinite(n)||n<25||n>1e4?t.monthly_cap_usd=`Must be between $25 and $10,000`:Number.isFinite(r)&&n<r&&(t.monthly_cap_usd=`Must be at least the top-up amount`)}return t}function Xr(e,t,n,r){if(n[e])return n[e];if(r)return t[e]}function Zr({initialValues:e=qr,submitting:t,serverErrors:n,onSave:r,onCancel:a}){let[o,s]=(0,K.useState)(e),[c,l]=(0,K.useState)({threshold_usd:!1,amount_usd:!1,monthly_cap_usd:!1}),u=Yr(o),d=e=>t=>{s(n=>({...n,[e]:t.target.value}))},f=e=>()=>{l(t=>({...t,[e]:!0})),s(t=>({...t,[e]:Jr(t[e])}))},p=e=>Xr(e,u,n,c[e]);return(0,J.jsx)(`div`,{className:`mt-4`,children:(0,J.jsxs)(`div`,{className:`flex flex-wrap items-start gap-3`,children:[(0,J.jsx)(`div`,{className:`min-w-[10rem] flex-1`,children:(0,J.jsx)(Ee,{type:`number`,step:`1`,label:`Auto-reload when balance below`,value:o.threshold_usd,onChange:d(`threshold_usd`),onBlur:f(`threshold_usd`),errorText:p(`threshold_usd`),"data-testid":`auto-top-up-threshold-input`,fullWidth:!0})}),(0,J.jsx)(`div`,{className:`min-w-[10rem] flex-1`,children:(0,J.jsx)(Ee,{type:`number`,step:`1`,label:`Auto-reload amount`,value:o.amount_usd,onChange:d(`amount_usd`),onBlur:f(`amount_usd`),errorText:p(`amount_usd`),"data-testid":`auto-top-up-amount-input`,fullWidth:!0})}),(0,J.jsx)(`div`,{className:`min-w-[10rem] flex-1`,children:(0,J.jsx)(Ee,{type:`number`,step:`1`,label:`Monthly spending cap`,helperText:`Pauses auto top-ups for the rest of the month once spending reaches this amount. Manual purchases also count toward the total. Leave empty for no limit.`,value:o.monthly_cap_usd,onChange:d(`monthly_cap_usd`),onBlur:f(`monthly_cap_usd`),errorText:p(`monthly_cap_usd`),"data-testid":`auto-top-up-cap-input`,fullWidth:!0})}),(0,J.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 pt-[18px]`,children:[(0,J.jsx)(i,{variant:`outlined`,onClick:a,disabled:t,children:`Cancel`}),(0,J.jsx)(i,{variant:`primary`,onClick:()=>{l({threshold_usd:!0,amount_usd:!0,monthly_cap_usd:!0});let e={threshold_usd:Jr(o.threshold_usd),amount_usd:Jr(o.amount_usd),monthly_cap_usd:Jr(o.monthly_cap_usd)};s(e);let t=Yr(e);if(Object.keys(t).length!==0)return;let n=e=>e===``?``:`${parseInt(e,10)}.00`;r({threshold_usd:n(e.threshold_usd),amount_usd:n(e.amount_usd),monthly_cap_usd:e.monthly_cap_usd===``?``:n(e.monthly_cap_usd)})},disabled:t,"data-testid":`auto-top-up-save-button`,children:`Save`})]})]})})}var Qr=t(((e,t)=>{t.exports=`SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED`})),$r=t(((e,t)=>{var n=Qr();function r(){}function i(){}i.resetWarningCache=r,t.exports=function(){function e(e,t,r,i,a,o){if(o!==n){var s=Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name=`Invariant Violation`,s}}e.isRequired=e;function t(){return e}var a={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:i,resetWarningCache:r};return a.PropTypes=a,a}})),X=e(t(((e,t)=>{t.exports=$r()()}))(),1);function ei(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function ti(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?ei(Object(n),!0).forEach(function(t){ri(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ei(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function ni(e){"@babel/helpers - typeof";return ni=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},ni(e)}function ri(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ii(e,t){if(e==null)return{};var n={},r=Object.keys(e),i,a;for(a=0;a<r.length;a++)i=r[a],!(t.indexOf(i)>=0)&&(n[i]=e[i]);return n}function ai(e,t){if(e==null)return{};var n=ii(e,t),r,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)r=a[i],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function oi(e,t){return si(e)||ci(e,t)||li(e,t)||di()}function si(e){if(Array.isArray(e))return e}function ci(e,t){var n=e&&(typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`]);if(n!=null){var r=[],i=!0,a=!1,o,s;try{for(n=n.call(e);!(i=(o=n.next()).done)&&(r.push(o.value),!(t&&r.length===t));i=!0);}catch(e){a=!0,s=e}finally{try{!i&&n.return!=null&&n.return()}finally{if(a)throw s}}return r}}function li(e,t){if(e){if(typeof e==`string`)return ui(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`)return Array.from(e);if(n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ui(e,t)}}function ui(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function di(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
3
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var Z=function(e,t,n){var r=!!n,i=K.useRef(n);K.useEffect(function(){i.current=n},[n]),K.useEffect(function(){if(!r||!e)return function(){};var n=function(){i.current&&i.current.apply(i,arguments)};return e.on(t,n),function(){e.off(t,n)}},[r,t,e,i])},fi=function(e){var t=K.useRef(e);return K.useEffect(function(){t.current=e},[e]),t.current},pi=function(e){return e!==null&&ni(e)===`object`},mi=function(e){return pi(e)&&typeof e.then==`function`},hi=function(e){return pi(e)&&typeof e.elements==`function`&&typeof e.createToken==`function`&&typeof e.createPaymentMethod==`function`&&typeof e.confirmCardPayment==`function`},gi=`[object Object]`,_i=function e(t,n){if(!pi(t)||!pi(n))return t===n;var r=Array.isArray(t);if(r!==Array.isArray(n))return!1;var i=Object.prototype.toString.call(t)===gi;if(i!==(Object.prototype.toString.call(n)===gi))return!1;if(!i&&!r)return t===n;var a=Object.keys(t),o=Object.keys(n);if(a.length!==o.length)return!1;for(var s={},c=0;c<a.length;c+=1)s[a[c]]=!0;for(var l=0;l<o.length;l+=1)s[o[l]]=!0;var u=Object.keys(s);if(u.length!==a.length)return!1;var d=t,f=n;return u.every(function(t){return e(d[t],f[t])})},vi=function(e,t,n){return pi(e)?Object.keys(e).reduce(function(r,i){var a=!pi(t)||!_i(e[i],t[i]);return n.includes(i)?(a&&console.warn(`Unsupported prop change: options.${i} is not a mutable property.`),r):a?ti(ti({},r||{}),{},ri({},i,e[i])):r},null):null},yi="Invalid prop `stripe` supplied to `Elements`. We recommend using the `loadStripe` utility from `@stripe/stripe-js`. See https://stripe.com/docs/stripe-js/react#elements-props-stripe for details.",bi=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:yi;if(e===null||hi(e))return e;throw Error(t)},xi=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:yi;if(mi(e))return{tag:`async`,stripePromise:Promise.resolve(e).then(function(e){return bi(e,t)})};var n=bi(e,t);return n===null?{tag:`empty`}:{tag:`sync`,stripe:n}},Si=function(e){!e||!e._registerWrapper||!e.registerAppInfo||(e._registerWrapper({name:`react-stripe-js`,version:`6.4.0`}),e.registerAppInfo({name:`react-stripe-js`,version:`6.4.0`,url:`https://stripe.com/docs/stripe-js/react`}))},Ci=K.createContext(null);Ci.displayName=`ElementsContext`;var wi=function(e,t){if(!e)throw Error(`Could not find Elements context; You need to wrap the part of your app that ${t} in an <Elements> provider.`);return e},Ti=function(e){var t=e.stripe,n=e.options,r=e.children,i=K.useMemo(function(){return xi(t)},[t]),a=oi(K.useState(function(){return{stripe:i.tag===`sync`?i.stripe:null,elements:i.tag===`sync`?i.stripe.elements(n):null}}),2),o=a[0],s=a[1];K.useEffect(function(){var e=!0,t=function(e){s(function(t){return t.stripe?t:{stripe:e,elements:e.elements(n)}})};return i.tag===`async`&&!o.stripe?i.stripePromise.then(function(n){n&&e&&t(n)}):i.tag===`sync`&&!o.stripe&&t(i.stripe),function(){e=!1}},[i,o,n]);var c=fi(t);K.useEffect(function(){c!==null&&c!==t&&console.warn("Unsupported prop change on Elements: You cannot change the `stripe` prop after setting it.")},[c,t]);var l=fi(n);return K.useEffect(function(){if(o.elements){var e=vi(n,l,[`clientSecret`,`fonts`]);e&&o.elements.update(e)}},[n,l,o.elements]),K.useEffect(function(){Si(o.stripe)},[o.stripe]),K.createElement(Ci.Provider,{value:o},r)};Ti.propTypes={stripe:X.default.any,options:X.default.object};var Ei=function(e){return wi(K.useContext(Ci),e)},Di=function(e){var t=e.children;return t(Ei(`mounts <ElementsConsumer>`))};Di.propTypes={children:X.default.func.isRequired};var Oi=K.createContext(null);Oi.displayName=`CheckoutContext`;var ki=function(e){var t=K.useContext(Oi),n=K.useContext(Ci);if(t){if(n)throw Error(`You cannot wrap the part of your app that ${e} in both a checkout provider and <Elements> provider.`);return t}else return wi(n,e)},Ai=[`mode`],ji=function(e){return e.charAt(0).toUpperCase()+e.slice(1)},Q=function(e,t,n){var r=`${ji(e)}Element`,i=t?function(e){ki(`mounts <${r}>`);var t=e.id,n=e.className;return K.createElement(`div`,{id:t,className:n})}:function(t){var n=t.id,i=t.className,a=t.options,o=a===void 0?{}:a,s=t.onBlur,c=t.onFocus,l=t.onReady,u=t.onChange,d=t.onEscape,f=t.onClick,p=t.onLoadError,m=t.onLoaderStart,h=t.onNetworksChange,g=t.onConfirm,_=t.onCancel,v=t.onShippingAddressChange,y=t.onShippingRateChange,b=t.onSavedPaymentMethodRemove,x=t.onSavedPaymentMethodUpdate,S=t.onAvailablePaymentMethodsChange,C=ki(`mounts <${r}>`),w=`elements`in C?C.elements:null,T=`checkoutState`in C?C.checkoutState:null,E=T?.type===`success`||T?.type===`loading`?T.sdk:null,D=oi(K.useState(null),2),O=D[0],k=D[1],A=K.useRef(null),j=K.useRef(null);Z(O,`blur`,s),Z(O,`focus`,c),Z(O,`escape`,d),Z(O,`click`,f),Z(O,`loaderror`,p),Z(O,`loaderstart`,m),Z(O,`networkschange`,h),Z(O,`confirm`,g),Z(O,`cancel`,_),Z(O,`shippingaddresschange`,v),Z(O,`shippingratechange`,y),Z(O,`savedpaymentmethodremove`,b),Z(O,`savedpaymentmethodupdate`,x),Z(O,`availablepaymentmethodschange`,S),Z(O,`change`,u);var M;l&&(M=e===`expressCheckout`?l:function(){l(O)}),Z(O,`ready`,M),K.useLayoutEffect(function(){if(A.current===null&&j.current!==null&&(w||E)){var t=null;if(E){var n=E,i=E;switch(e){case`paymentForm`:t=i.createForm(o);break;case`payment`:t=n.createPaymentElement(o);break;case`address`:if(`mode`in o){var a=o.mode,s=ai(o,Ai);if(a===`shipping`)t=n.createShippingAddressElement(s);else if(a===`billing`)t=n.createBillingAddressElement(s);else throw Error(`Invalid options.mode. mode must be 'billing' or 'shipping'.`)}else throw Error(`You must supply options.mode. mode must be 'billing' or 'shipping'.`);break;case`expressCheckout`:t=n.createExpressCheckoutElement(o);break;case`currencySelector`:t=E.createCurrencySelectorElement();break;case`taxId`:t=n.createTaxIdElement(o);break;case`contactDetails`:t=n.createContactDetailsElement();break;default:throw Error(`<${r}> is not supported inside a checkout provider. Use an <Elements> provider instead.`)}}else w&&(t=w.create(e,o));A.current=t,k(t),t&&t.mount(j.current)}},[w,E,o]);var N=fi(o);return K.useEffect(function(){if(A.current){var e=vi(o,N,[`paymentRequest`]);e&&`update`in A.current&&A.current.update(e)}},[o,N]),K.useLayoutEffect(function(){return function(){if(A.current&&typeof A.current.destroy==`function`)try{A.current.destroy(),A.current=null}catch{}}},[]),K.createElement(`div`,{id:n,className:i,ref:j})};return i.propTypes={id:X.default.string,className:X.default.string,onChange:X.default.func,onBlur:X.default.func,onFocus:X.default.func,onReady:X.default.func,onEscape:X.default.func,onClick:X.default.func,onLoadError:X.default.func,onLoaderStart:X.default.func,onNetworksChange:X.default.func,onConfirm:X.default.func,onCancel:X.default.func,onShippingAddressChange:X.default.func,onShippingRateChange:X.default.func,onSavedPaymentMethodRemove:X.default.func,onSavedPaymentMethodUpdate:X.default.func,onAvailablePaymentMethodsChange:X.default.func,options:X.default.object},i.displayName=r,i.__elementType=e,i},$=typeof window>`u`,Mi=K.createContext(null);Mi.displayName=`EmbeddedCheckoutProviderContext`,Q(`auBankAccount`,$),Q(`card`,$),Q(`cardNumber`,$),Q(`cardExpiry`,$),Q(`cardCvc`,$),Q(`iban`,$),Q(`payment`,$),Q(`expressCheckout`,$),Q(`paymentRequestButton`,$),Q(`linkAuthentication`,$),Q(`contactDetails`,$),Q(`address`,$),Q(`shippingAddress`,$),Q(`paymentMethodMessaging`,$),Q(`taxId`,$),Q(`issuingCardNumberDisplay`,$),Q(`issuingCardCvcDisplay`,$),Q(`issuingCardExpiryDisplay`,$),Q(`issuingCardPinDisplay`,$),Q(`issuingCardCopyButton`,$);var Ni=`dahlia`,Pi=`https://js.stripe.com`,Fi=`${Pi}/${Ni}/stripe.js`,Ii=/^https:\/\/js\.stripe\.com\/v3\/?(\?.*)?$/,Li=/^https:\/\/js\.stripe\.com\/(v3|[a-z]+)\/stripe\.js(\?.*)?$/,Ri=`loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used`,zi=function(e){return Ii.test(e)||Li.test(e)},Bi=function(){for(var e=document.querySelectorAll(`script[src^="${Pi}"]`),t=0;t<e.length;t++){var n=e[t];if(zi(n.src))return n}return null},Vi=function(e){var t=e&&!e.advancedFraudSignals?`?advancedFraudSignals=false`:``,n=document.createElement(`script`);n.src=`${Fi}${t}`;var r=document.head||document.body;if(!r)throw Error(`Expected document.body not to be null. Stripe.js requires a <body> element.`);return r.appendChild(n),n},Hi=null,Ui=null,Wi=null,Gi=function(e){return function(t){e(Error(`Failed to load Stripe.js`,{cause:t}))}},Ki=function(e,t){return function(){window.Stripe?e(window.Stripe):t(Error(`Stripe.js not available`))}},qi=function(e){return Hi===null?(Hi=new Promise(function(t,n){if(typeof window>`u`||typeof document>`u`){t(null);return}if(window.Stripe&&e&&console.warn(Ri),window.Stripe){t(window.Stripe);return}try{var r=Bi();if(r&&e)console.warn(Ri);else if(!r)r=Vi(e);else if(r&&Wi!==null&&Ui!==null){var i;r.removeEventListener(`load`,Wi),r.removeEventListener(`error`,Ui),(i=r.parentNode)==null||i.removeChild(r),r=Vi(e)}Wi=Ki(t,n),Ui=Gi(n),r.addEventListener(`load`,Wi),r.addEventListener(`error`,Ui)}catch(e){n(e);return}}),Hi.catch(function(e){return Hi=null,Promise.reject(e)})):Hi},Ji,Yi=!1,Xi=function(){return Ji||(Ji=qi(null).catch(function(e){return Ji=null,Promise.reject(e)}),Ji)};Promise.resolve().then(function(){return Xi()}).catch(function(e){Yi||console.warn(e)});function Zi(){return typeof document<`u`&&document.documentElement.classList.contains(`dark`)?{theme:`night`}:{theme:`stripe`}}function Qi({open:e,onClose:t,onSavedOptimistic:n}){let r=f(it()),{mutate:i,reset:a}=r;return(0,K.useEffect)(()=>{e||a()},[e,i,a]),(0,K.useMemo)(()=>Zi(),[r.data?.client_secret??null]),(0,J.jsx)(H.Root,{open:e,onOpenChange:e=>{e||t()},children:(0,J.jsxs)(H.Content,{size:`sm`,children:[(0,J.jsx)(H.Header,{children:(0,J.jsx)(H.Title,{children:`Save Payment Method`})}),(0,J.jsx)(H.Body,{className:`min-h-[260px]`,children:(0,J.jsx)($i,{})})]})})}function $i(){return(0,K.useEffect)(()=>{console.warn(`[AutoTopUpPaymentMethodModal] VITE_STRIPE_PUBLISHABLE_KEY is not set; the payment-method modal cannot mount Stripe Elements.`)},[]),(0,J.jsx)(V,{tone:`error`,children:`Payment method setup is currently unavailable. Please try again later.`})}var ea={visa:`Visa`,mastercard:`Mastercard`,amex:`Amex`,discover:`Discover`,diners:`Diners Club`,jcb:`JCB`,unionpay:`UnionPay`};function ta(e){return ea[e.toLowerCase()]??e}function na({brand:e,last4:t,onUpdateCard:n,onRemove:r,removing:a=!1}){return(0,J.jsxs)(`div`,{"data-testid":`payment-method-row`,className:`flex items-center justify-between gap-2 rounded-lg bg-[var(--surface-base)] pl-3 pr-2 py-1.5`,children:[(0,J.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,J.jsx)(me,{"aria-hidden":!0,className:`h-4 w-4 shrink-0 text-[var(--content-default)]`}),(0,J.jsxs)(`div`,{className:`min-w-0`,children:[(0,J.jsx)(m,{as:`p`,variant:`body-medium-default`,className:`truncate text-[var(--content-default)]`,children:e?ta(e):`Saved card`}),t!=null&&(0,J.jsxs)(m,{as:`p`,variant:`body-small-default`,className:`truncate text-[var(--content-tertiary)]`,children:[`Ending in `,t]})]})]}),(0,J.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[(0,J.jsx)(i,{variant:`outlined`,onClick:n,"data-testid":`payment-method-update`,children:`Update Card`}),(0,J.jsx)(i,{variant:`dangerOutline`,onClick:r,disabled:a,"data-testid":`payment-method-remove`,children:a?`Removing…`:`Remove`})]})]})}function ra(e){if(!e)return``;let t=parseFloat(e);return Number.isFinite(t)?String(Math.trunc(t)):``}function ia(e){if(!e)return`$0`;let t=parseFloat(e);if(!Number.isFinite(t))return`$0`;let n=Math.abs(t).toLocaleString(`en-US`,{minimumFractionDigits:2,maximumFractionDigits:2}),r=n.endsWith(`.00`)?n.slice(0,-3):n;return t<0?`-$${r}`:`$${r}`}var aa={enabled:!1,threshold_usd:null,amount_usd:null,monthly_cap_usd:null,has_payment_method:!1,payment_method_brand:null,payment_method_last4:null,stripe_payment_method_updated_at:null,last_charge_at:null,last_failure_at:null,last_failure_reason:null,disabled_due_to_repeated_failures:!1,paused_until:null,current_month_credits_purchased_usd:`0.00`,current_month_charged_usd:`0.00`,next_trigger_amount_usd:null,stubbed:!1};function oa(e){if(!e||typeof e!=`object`||Array.isArray(e))return{};let t={};for(let[n,r]of Object.entries(e))Array.isArray(r)&&typeof r[0]==`string`&&(t[n]=r[0]);return t}function sa({testId:e,children:t}){return(0,J.jsx)(`div`,{"data-testid":e,className:`flex h-8 min-w-0 flex-1 items-center gap-1.5 rounded-lg bg-[var(--surface-base)] px-2`,children:t})}function ca(){let e=l(),t=u(Mt()),n=f(dt()),r=f(st()),a=f(ut()),[s,c]=o(),d=(0,K.useRef)(null),[p,h]=(0,K.useState)(`view`),[g,_]=(0,K.useState)(!1),[v,y]=(0,K.useState)(!1),[b,x]=(0,K.useState)(!1),[C,w]=(0,K.useState)(!1),[T,E]=(0,K.useState)(!1),[D,O]=(0,K.useState)(!1);(0,K.useEffect)(()=>{C&&t.data?.has_payment_method&&w(!1)},[C,t.data?.has_payment_method]);let k=()=>{n.reset(),r.reset(),h(`form`)},A=e=>{if(_(!0),!e.has_payment_method||e.disabled_due_to_repeated_failures===!0){w(!0),E(!1);return}w(!1),k()},j=s.get(`configure_top_up`)===`1`;if((0,K.useEffect)(()=>{if(!j||t.data==null)return;let e=new URLSearchParams(s);e.delete(`configure_top_up`),c(e,{replace:!0});let n=t.data;if(n.enabled===!0)return;A(n);let r=typeof window<`u`&&window.matchMedia?.(`(prefers-reduced-motion: reduce)`).matches===!0;d.current?.scrollIntoView({behavior:r?`auto`:`smooth`,block:`center`})},[j,t.data]),t.isLoading)return(0,J.jsx)(`div`,{"data-testid":`auto-top-up-card`,children:(0,J.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Loading…`})});if(t.isError||!t.data)return(0,J.jsx)(`div`,{"data-testid":`auto-top-up-card`,children:(0,J.jsx)(V,{tone:`error`,children:`Failed to load auto top-up configuration.`})});let M=t.data,N=M.enabled===!0,P=M.disabled_due_to_repeated_failures===!0&&!N,F=()=>{h(`view`),_(!1)},ee=()=>{r.reset(),y(!1)},te=t=>{n.mutate({body:{enabled:!0,threshold_usd:t.threshold_usd,amount_usd:t.amount_usd,monthly_cap_usd:t.monthly_cap_usd===``?null:t.monthly_cap_usd}},{onSuccess:t=>{ft(e,void 0,e=>({...t,payment_method_brand:e?.payment_method_brand??null,payment_method_last4:e?.payment_method_last4??null})),e.invalidateQueries({queryKey:nt()}),F()}})},ne=()=>{r.mutate({},{onSuccess:()=>{ft(e,void 0,e=>({...aa,has_payment_method:e?.has_payment_method??!1,payment_method_brand:e?.payment_method_brand??null,payment_method_last4:e?.payment_method_last4??null,stripe_payment_method_updated_at:e?.stripe_payment_method_updated_at??null})),y(!1),h(`view`),_(!1)}})},re=()=>{a.mutate({},{onSuccess:()=>{ft(e,void 0,{...M,enabled:!1,has_payment_method:!1,payment_method_brand:null,payment_method_last4:null}),e.invalidateQueries({queryKey:nt()}),x(!1),F()},onError:()=>{x(!1)}})},ie=e=>{if(e&&!N){A(M);return}if(!e&&!N&&g){w(!1),F();return}!e&&N&&y(!0)},ae=async()=>{let t=Date.now(),n=M.stripe_payment_method_updated_at??null;try{await e.invalidateQueries({queryKey:nt()})}catch{}for(;Date.now()-t<2e4;){try{let t=await e.fetchQuery(Mt());if(t.has_payment_method&&t.stripe_payment_method_updated_at!==n)break}catch{}await new Promise(e=>setTimeout(e,1500))}w(!1),g&&k()},oe=p===`form`,se=oa(n.error),ce=n.isError&&Object.keys(se).length===0;return(0,J.jsxs)(`div`,{ref:d,"data-testid":`auto-top-up-card`,children:[(0,J.jsx)(`div`,{className:`flex items-center justify-between gap-4`,children:(0,J.jsx)(De,{checked:N||g,onChange:ie,label:`Enable Extra Usage`})}),M.has_payment_method&&(0,J.jsx)(`div`,{className:`mt-3`,children:(0,J.jsx)(na,{brand:M.payment_method_brand,last4:M.payment_method_last4,onUpdateCard:()=>O(!0),onRemove:()=>x(!0),removing:a.isPending})}),N&&!oe&&(0,J.jsxs)(`div`,{className:`mt-3 flex w-full items-center gap-2`,children:[(0,J.jsxs)(sa,{testId:`auto-top-up-summary`,children:[(0,J.jsx)(S,{className:`h-3.5 w-3.5 shrink-0 text-[var(--content-default)]`,"aria-hidden":`true`}),(0,J.jsxs)(m,{variant:`body-medium-default`,className:`truncate text-[var(--content-default)]`,children:[`Add `,ia(M.amount_usd),` when balance falls under`,` `,ia(M.threshold_usd)]})]}),M.monthly_cap_usd!=null&&(0,J.jsx)(sa,{testId:`auto-top-up-cap-progress`,children:(0,J.jsxs)(m,{variant:`body-medium-default`,className:`truncate text-[var(--content-default)]`,children:[(0,J.jsxs)(`span`,{children:[ia(M.current_month_credits_purchased_usd),` `]}),(0,J.jsxs)(`span`,{className:`text-[var(--content-tertiary)]`,children:[`/ `,ia(M.monthly_cap_usd),` this month`]})]})}),(0,J.jsx)(i,{variant:`outlined`,onClick:k,"data-testid":`auto-top-up-edit-button`,className:`shrink-0`,children:`Adjust`})]}),P&&(0,J.jsx)(V,{tone:`warning`,className:`mt-3`,"data-testid":`auto-top-up-declined-cutoff`,actions:(0,J.jsx)(i,{variant:`outlined`,onClick:()=>O(!0),"data-testid":`auto-top-up-add-pm-button`,children:`Add payment method`}),children:`We paused automatic reloads after several declined payments. Add a new payment method to turn auto-reload back on.`}),(0,J.jsx)(`div`,{className:`grid transition-[grid-template-rows] duration-200 ease-in-out`,style:{gridTemplateRows:C&&!P?`1fr`:`0fr`},children:(0,J.jsx)(`div`,{className:`overflow-hidden`,children:(0,J.jsxs)(`div`,{className:`mt-3 flex flex-col gap-3`,children:[!T&&(0,J.jsxs)(`div`,{className:`flex h-8 items-center justify-between gap-3 rounded-lg bg-[var(--system-mid-weak)] px-2`,children:[(0,J.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,J.jsx)(ve,{className:`h-4 w-4 shrink-0 text-[var(--system-mid-strong)]`,"aria-hidden":`true`}),(0,J.jsx)(m,{variant:`body-medium-default`,className:`truncate text-[var(--system-mid-strong)]`,children:`Extra usage requires you to connect a credit card.`})]}),(0,J.jsx)(`button`,{type:`button`,"aria-label":`Dismiss`,onClick:()=>E(!0),className:`flex shrink-0 cursor-pointer items-center justify-center rounded p-0.5 text-[var(--system-mid-strong)] opacity-70 transition-opacity hover:opacity-100`,children:(0,J.jsx)(Se,{className:`h-2.5 w-2.5`,strokeWidth:2,"aria-hidden":`true`})})]}),(0,J.jsx)(i,{variant:`primary`,onClick:()=>O(!0),"data-testid":`auto-top-up-add-pm-button`,className:`self-start`,children:`Add a Credit Card`})]})})}),ce&&(0,J.jsx)(V,{tone:`error`,className:`mt-4`,"data-testid":`auto-top-up-update-error`,children:`Failed to save automatic top-ups. Please try again.`}),r.isError&&(0,J.jsx)(V,{tone:`error`,className:`mt-4`,"data-testid":`auto-top-up-disable-error`,children:`Failed to disable automatic top-ups. Please try again.`}),a.isError&&(0,J.jsx)(V,{tone:`error`,className:`mt-4`,"data-testid":`auto-top-up-remove-error`,children:`Failed to remove the payment method. Please try again.`}),oe&&(0,J.jsx)(Zr,{initialValues:N?{threshold_usd:ra(M.threshold_usd),amount_usd:ra(M.amount_usd),monthly_cap_usd:ra(M.monthly_cap_usd)}:void 0,submitting:n.isPending,serverErrors:se,onCancel:F,onSave:te}),(N||oe)&&(0,J.jsx)(V,{tone:`info`,className:`mt-4`,children:`If you're too close to your monthly limit, the auto-reload will only top up to that limit.`}),(0,J.jsx)(Kr,{open:v,confirming:r.isPending,onCancel:ee,onConfirm:ne}),(0,J.jsx)(Oe,{open:b,title:`Remove payment method?`,message:`Removing your card will turn off Extra Usage.`,confirmLabel:a.isPending?`Removing…`:`Remove`,isPending:a.isPending,cancelLabel:`Keep card`,destructive:!0,onConfirm:re,onCancel:()=>x(!1)}),(0,J.jsx)(Qi,{open:D,onClose:()=>O(!1),onSavedOptimistic:ae})]})}function la(e){let t=parseFloat(e);return Number.isFinite(t)?`$${t.toFixed(2)}`:`$${e}`}function ua(e){let t=e.trim();if(t===``)return`Enter a daily limit`;let n=parseFloat(t);if(!Number.isFinite(n)||n<1)return`Must be at least $1`;if(!/^\d+(\.\d{1,2})?$/.test(t))return`Use at most two decimal places`}function da(){let e=l(),t=u(pt()),n=u(bt()),r=f(Dt()),[a,o]=(0,K.useState)(null),[s,c]=(0,K.useState)(!1),[d,p]=(0,K.useState)(!1);if(t.isLoading)return(0,J.jsx)(`div`,{"data-testid":`daily-credit-limit-card`,children:(0,J.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Loading…`})});if(t.isError||!t.data)return(0,J.jsx)(`div`,{"data-testid":`daily-credit-limit-card`,children:(0,J.jsx)(V,{tone:`error`,children:`Failed to load daily credit limit settings.`})});let m=t.data,h=m.daily_credit_limit_usd!=null,g=h||d,_=a??m.daily_credit_limit_usd??``,v=ua(_),y=n.data,b=y?.daily_spend_usd??m.current_day_spent_usd,x=y?.daily_limit_reached===!0,S=e=>{o(e.target.value)},C=t=>{r.mutate({body:{daily_credit_limit_usd:t}},{onSuccess:n=>{ot(e,void 0,n),e.invalidateQueries({queryKey:rt()}),e.invalidateQueries({queryKey:Et()}),o(null),c(!1),t===null&&p(!1)}})},w=e=>{if(e){p(!0);return}p(!1),o(null),c(!1),h&&C(null)},T=()=>{c(!0),!v&&C(parseFloat(_.trim()).toFixed(2))},E=r.isError,D=s?v:void 0;return(0,J.jsxs)(`div`,{"data-testid":`daily-credit-limit-card`,children:[(0,J.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,J.jsx)(De,{checked:g,onChange:w,disabled:r.isPending,label:`Set a daily credit limit`}),g&&(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(`div`,{className:`flex flex-wrap items-start gap-3`,children:[(0,J.jsx)(`div`,{className:`w-60 max-w-full`,children:(0,J.jsx)(Ee,{type:`number`,step:`0.01`,min:`1`,label:`Stop spending Vellum credits after`,helperText:`Per UTC day. Resets at midnight UTC.`,placeholder:`0.00`,value:_,onChange:S,onBlur:()=>c(!0),errorText:D,"data-testid":`daily-credit-limit-input`,fullWidth:!0})}),(0,J.jsx)(`div`,{className:`flex shrink-0 items-center gap-2 pt-[18px]`,children:(0,J.jsx)(i,{variant:`primary`,onClick:T,disabled:r.isPending,"data-testid":`daily-credit-limit-save-button`,children:`Save`})})]}),h&&m.daily_credit_limit_usd!=null&&(0,J.jsxs)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,"data-testid":`daily-credit-limit-progress`,children:[la(b),` of`,` `,la(m.daily_credit_limit_usd),` spent today`]}),x&&(0,J.jsx)(V,{tone:`warning`,"data-testid":`daily-credit-limit-reached`,children:`Today's Vellum credit spend has reached this limit. Generation resumes after midnight UTC or when you raise the limit.`})]})]}),(0,J.jsx)(`p`,{className:`mt-3 text-body-small-default text-[var(--content-tertiary)]`,children:`Applies to Vellum credit spend only. Usage billed to your own provider API keys isn't limited. Resets at midnight UTC.`}),E&&(0,J.jsx)(V,{tone:`error`,className:`mt-4`,"data-testid":`daily-credit-limit-update-error`,children:`Failed to save daily credit limit. Please try again.`})]})}function fa(e){let t=parseFloat(e);return Number.isFinite(t)?`$${t.toFixed(2)}`:`$${e}`}function pa(e){if(e.trim()===``)return;let t=parseFloat(e);if(!Number.isFinite(t)||t<1||t>1e3)return`Must be between $1 and $1,000`;if(!/^\d+(\.\d{1,2})?$/.test(e.trim()))return`Use at most two decimal places`}function ma(){let e=l(),t=u(ht()),n=f(lt()),[r,a]=(0,K.useState)(null),[o,s]=(0,K.useState)(!1);if(t.isLoading)return(0,J.jsx)(`div`,{"data-testid":`low-balance-alert-card`,children:(0,J.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Loading…`})});if(t.isError||!t.data)return(0,J.jsx)(`div`,{"data-testid":`low-balance-alert-card`,children:(0,J.jsx)(V,{tone:`error`,children:`Failed to load low-balance alert settings.`})});let c=t.data,d=r??c.threshold_usd??``,p=pa(d),m=e=>{a(e.target.value)},h=t=>{n.mutate({body:{threshold_usd:t}},{onSuccess:t=>{gt(e,void 0,t),e.invalidateQueries({queryKey:mt()}),a(null),s(!1)}})},g=()=>{if(s(!0),p)return;let e=d.trim();h(e===``?null:parseFloat(e).toFixed(2))},_=()=>{a(``),s(!1),h(null)},v=n.isError,y=o?p:void 0;return(0,J.jsxs)(`div`,{"data-testid":`low-balance-alert-card`,children:[(0,J.jsxs)(`div`,{className:`flex flex-wrap items-start gap-3`,children:[(0,J.jsx)(`div`,{className:`w-60 max-w-full`,children:(0,J.jsx)(Ee,{type:`number`,step:`0.01`,label:`Alert me when my balance drops below`,helperText:`Default is ${fa(c.default_threshold_usd)} when unset`,placeholder:c.effective_threshold_usd,value:d,onChange:m,onBlur:()=>s(!0),errorText:y,"data-testid":`low-balance-alert-input`,fullWidth:!0})}),(0,J.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 pt-[18px]`,children:[c.threshold_usd!=null&&(0,J.jsx)(i,{variant:`outlined`,onClick:_,disabled:n.isPending,"data-testid":`low-balance-alert-reset-button`,children:`Reset to default`}),(0,J.jsx)(i,{variant:`primary`,onClick:g,disabled:n.isPending,"data-testid":`low-balance-alert-save-button`,children:`Save`})]})]}),v&&(0,J.jsx)(V,{tone:`error`,className:`mt-4`,"data-testid":`low-balance-alert-update-error`,children:`Failed to save low-balance alert. Please try again.`})]})}function ha(e){return e.replace(/\.00$/,``)}function ga({icon:e,value:t,label:n}){return(0,J.jsxs)(`div`,{className:`flex h-8 min-w-0 flex-1 items-center gap-1.5 rounded-lg bg-[var(--surface-base)] px-2 py-1.5`,children:[(0,J.jsx)(`span`,{"aria-hidden":`true`,className:`flex h-3.5 w-3.5 shrink-0 items-center justify-center text-[var(--content-default)]`,children:e}),(0,J.jsx)(m,{variant:`body-medium-default`,as:`span`,className:`text-[var(--content-default)]`,children:t}),(0,J.jsx)(m,{variant:`body-small-default`,as:`span`,className:`min-w-0 truncate text-[var(--content-tertiary)]`,children:n})]})}function _a(){let{data:e,isLoading:t,isError:n}=u(jt()),[r,a]=(0,K.useState)(!1),o=(0,K.useCallback)(e=>{Ft(e,{successMessage:`Copied to clipboard!`,errorMessage:`Couldn't copy the referral link.`,onCopied:()=>{a(!0),setTimeout(()=>a(!1),2e3)}})},[]),s=e?.is_eligible_for_credits===!1;return(0,J.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,J.jsx)(m,{as:`p`,variant:`body-medium-default`,className:`text-[var(--content-tertiary)]`,children:s?`Invite friends to Vellum. You'll start earning referral credits once you've purchased credits or upgraded to Pro.`:e?`Share Vellum with friends - you'll each earn ${ha(e.referrer_credit_amount)} credits when they sign up, up to ${ha(e.earning_cap)} total.`:`Share Vellum with friends and earn credits for every signup.`}),s&&(0,J.jsx)(m,{as:`p`,variant:`body-medium-default`,className:`text-[var(--content-tertiary)]`,children:`You're not currently earning referral credits. Buy credits or upgrade to Pro to start earning — your invite link still works in the meantime.`}),t?(0,J.jsxs)(`div`,{className:`flex items-center gap-2 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,J.jsx)(B,{className:`h-4 w-4 animate-spin`}),`Loading...`]}):n||!e?(0,J.jsx)(V,{tone:`error`,children:`Failed to load referral information.`}):(0,J.jsxs)(`div`,{className:`flex flex-wrap items-start gap-2`,children:[(0,J.jsx)(ga,{icon:(0,J.jsx)(S,{className:`h-3.5 w-3.5`}),value:ha(e.total_earned),label:`Credits Earned`}),(0,J.jsx)(ga,{icon:(0,J.jsx)(xe,{className:`h-3.5 w-3.5`}),value:e.referred_count,label:`Friends Referred`}),(0,J.jsx)(i,{variant:`outlined`,className:`shrink-0`,onClick:()=>o(e.referral_url),leftIcon:r?(0,J.jsx)(v,{className:`h-3.5 w-3.5`}):(0,J.jsx)(pe,{className:`h-3.5 w-3.5`}),"data-testid":`referral-copy-button`,children:r?`Copied!`:`Share Link`})]})]})}function va({open:e,onOpenChange:t}){return(0,J.jsx)(H.Root,{open:e,onOpenChange:t,children:(0,J.jsxs)(H.Content,{"data-testid":`referral-modal`,children:[(0,J.jsx)(H.Header,{children:(0,J.jsx)(H.Title,{children:`Earn Free Credits`})}),(0,J.jsx)(H.Body,{children:(0,J.jsx)(_a,{})})]})})}var ya=2e3;function ba(e){let t=parseFloat(e);if(Number.isNaN(t))return`0`;let n=Math.abs(t).toLocaleString(`en-US`,{minimumFractionDigits:2,maximumFractionDigits:2}),r=n.endsWith(`.00`)?n.slice(0,-3):n;return t<0?`-${r}`:r}function xa(){let e=l(),{data:t,isLoading:n,isError:r}=u(bt()),a=t??null,[o,s]=(0,K.useState)(!1),[c,d]=(0,K.useState)(!1),[f,p]=(0,K.useState)(!1),g=(0,K.useRef)(0),_=(0,K.useRef)(null),v=ct({onSuccess:()=>{e.invalidateQueries({queryKey:Et()})},onError:()=>{g.current<3&&(_.current=setTimeout(()=>{v.reset()},ya))}});(0,K.useEffect)(()=>()=>{_.current&&clearTimeout(_.current)},[]);let y=v.mutate;(0,K.useEffect)(()=>{a&&a.settled_balance===`0.00`&&a.pending_compute===`0.00`&&a.effective_balance===`0.00`&&g.current<3&&!v.isPending&&!v.isError&&!v.isSuccess&&(g.current+=1,y({}))},[a,v.isPending,v.isError,v.isSuccess,y]);let b=(0,J.jsxs)(`div`,{className:`flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between sm:gap-4`,children:[(0,J.jsxs)(`div`,{className:`min-w-0`,children:[(0,J.jsx)(m,{as:`h2`,variant:`title-medium`,className:`text-[var(--content-emphasised)]`,children:`Credit Balance`}),(0,J.jsx)(m,{as:`p`,variant:`body-medium-default`,className:`mt-2 text-[var(--content-tertiary)]`,children:`Quick overview of your balances and other things`})]}),(0,J.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,J.jsx)(i,{variant:`outlined`,leftIcon:(0,J.jsx)(S,{className:`h-4 w-4`,"aria-hidden":!0}),onClick:()=>d(!0),"data-testid":`earn-credits-button`,children:`Earn Free Credits`}),(0,J.jsx)(i,{variant:`primary`,onClick:()=>s(!0),disabled:n||!a,"data-testid":`add-credits-button`,children:`Add Credits`})]})]});return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(h,{padding:`md`,children:[b,n?(0,J.jsxs)(`div`,{className:`mt-4 flex items-center gap-2 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,J.jsx)(B,{className:`h-4 w-4 animate-spin`}),`Loading billing summary...`]}):r?(0,J.jsx)(`div`,{className:`mt-4`,children:(0,J.jsx)(V,{tone:`error`,children:`Failed to load billing summary. Please try again later.`})}):a?(0,J.jsxs)(J.Fragment,{children:[(()=>{if(!a)return null;let e=parseFloat(a.effective_balance)<0;return(0,J.jsx)(`div`,{className:`mt-4`,children:(0,J.jsx)(we,{icon:(0,J.jsx)(S,{className:`h-4 w-4`,"aria-hidden":!0}),value:(0,J.jsx)(`span`,{"data-testid":`effective-balance`,children:ba(a.effective_balance)}),label:`Balance`,tone:e?`negative`:`default`})})})(),a.is_degraded&&(0,J.jsx)(`div`,{className:`mt-4`,children:(0,J.jsx)(V,{tone:`warning`,children:`Pending charges could not be calculated. The balance shown may be incomplete.`})})]}):(0,J.jsx)(`p`,{className:`mt-4 text-body-medium-lighter text-[var(--content-tertiary)]`,children:`No billing information available.`}),(0,J.jsx)(`div`,{className:`mt-6`,children:(0,J.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,J.jsx)(De,{checked:f,onChange:p,label:`Custom low balance alert`}),f&&(0,J.jsx)(ma,{})]})}),(0,J.jsx)(`div`,{className:`mt-6 border-t border-[var(--border-base)] pt-6`,children:(0,J.jsx)(ca,{})}),(0,J.jsx)(`div`,{className:`mt-6 border-t border-[var(--border-base)] pt-6`,children:(0,J.jsx)(da,{})})]}),(0,J.jsx)(zt,{open:o,onOpenChange:s}),(0,J.jsx)(va,{open:c,onOpenChange:d})]})}var Sa=1e3,Ca=15e3,wa=3e3,Ta=45e3,Ea=`billing-portal-return`;function Da(e,t){if(!e)return{kind:`info`,message:`Subscription updated.`};let n=e.cancel_at_period_end||!!e.cancel_at,r=t.cancel_at_period_end||!!t.cancel_at;return!n&&r?{kind:`info`,message:`Pro plan canceled. You'll have access until ${t.cancel_at?A(t.cancel_at):`the end of your billing period`}.`}:n&&!r?{kind:`success`,message:`Pro plan reactivated.`}:{kind:`info`,message:`Subscription updated.`}}function Oa(){let[e]=o(),t=c(),n=l(),r=(0,K.useRef)(null);return(0,K.useEffect)(()=>()=>{r.current!==null&&(clearInterval(r.current),r.current=null)},[]),(0,K.useEffect)(()=>{if(e.get(`portal_return`)!==`true`)return;let i={current:!1},a=fe(),o=wt(),s=At(),c=Date.now();async function l(){await n.invalidateQueries({queryKey:s});let e=await n.fetchQuery(o);return{cancel_at_period_end:e.cancel_at_period_end,cancel_at:e.cancel_at}}async function u(){let e=await l();for(;!i.current&&a&&e.cancel_at_period_end===a.cancel_at_period_end&&e.cancel_at===a.cancel_at&&Date.now()-c<Ca&&(await new Promise(e=>setTimeout(e,Sa)),!i.current);)e=await l();return e}return(async()=>{try{let e=await u();if(i.current)return;let{kind:t,message:n}=Da(a,e);t===`success`?U.success(n,{id:Ea}):U.info(n,{id:Ea})}catch{if(i.current)return;U.info(`Subscription updated.`,{id:Ea})}finally{if(!i.current){ee(),t(W.settings.usageBilling,{replace:!0});let e=Date.now();r.current!==null&&clearInterval(r.current),r.current=setInterval(()=>{if(Date.now()-e>=Ta){r.current!==null&&(clearInterval(r.current),r.current=null);return}l().catch(e=>{console.error(`billing poll error:`,e)})},wa)}}})(),()=>{i.current=!0}},[e,t,n]),null}var ka=[7,30,90].map(e=>({value:`${e}`,label:`Last ${e} days`}));function Aa(e,t=et()){let{fromDate:n,toDate:r}=Ut(e,t);return{from:n,to:r}}function ja(e,t){let n=new Date(e),r=new Date(t);return Math.round((r.getTime()-n.getTime())/864e5)+1}function Ma({from:e,to:t}){let n=ja(e,t);return n===7?7:n===90?90:30}function Na({value:e,onChange:t}){let n=Nt(),r=(0,K.useMemo)(()=>`${Ma(e)}`,[e]);return(0,J.jsx)(ke,{options:ka,value:r,onChange:e=>{let r=Number(e);t(Aa(r,n),r)},"aria-label":`Date range`})}var Pa={strokeDasharray:`3 3`,stroke:`var(--border-subtle)`,strokeOpacity:.4},Fa={fontSize:12,fill:`var(--content-tertiary)`},Ia={stroke:`var(--border-subtle)`,strokeOpacity:.4},La=[`#3b82f6`,`#10b981`,`#f59e0b`,`#ef4444`,`#8b5cf6`,`#06b6d4`,`#ec4899`,`#84cc16`];function Ra({item:e}){return(0,J.jsxs)(`div`,{className:`flex items-center gap-2 py-0.5 text-[13px] text-[var(--content-default)]`,children:[(0,J.jsx)(`span`,{className:`h-2 w-2 shrink-0 rounded-full`,style:{backgroundColor:e.color}}),(0,J.jsx)(`span`,{children:e.label}),(0,J.jsx)(`span`,{className:`ml-auto tabular-nums`,children:e.value})]})}function za({active:e,payload:t,hoveredKey:n,label:r,labelMap:i,colorMap:a,formatValue:o,showTotal:s,formatLabel:c}){if(!e||!t?.length)return null;let l=t.filter(e=>e.value!=null&&e.dataKey!=null).map(e=>({key:String(e.dataKey),label:i[String(e.dataKey)]??String(e.dataKey),value:o(Number(e.value)),color:a[String(e.dataKey)]??`#6b7280`,numericValue:Number(e.value)})).sort((e,t)=>e.numericValue===t.numericValue?e.label.localeCompare(t.label):t.numericValue-e.numericValue),u=n?l.find(e=>e.key===n):null,d=u?l.filter(e=>e.key!==n):l,f=l.reduce((e,t)=>e+t.numericValue,0);return(0,J.jsxs)(`div`,{className:`rounded-lg border border-[var(--border-subtle)] bg-[var(--surface-overlay)] px-3.5 py-2.5 shadow-[var(--shadow-popover)]`,children:[(0,J.jsx)(`div`,{className:`mb-1.5 text-xs font-medium text-[var(--content-secondary)]`,children:(c??Ht)(String(r))}),u&&(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(Ra,{item:u}),d.length>0&&(0,J.jsx)(`div`,{className:`my-1.5 border-t border-[var(--border-subtle)]`})]}),d.map(e=>(0,J.jsx)(Ra,{item:e},e.key)),s&&(0,J.jsx)(`div`,{className:`mt-1 flex items-center gap-2 border-t border-[var(--border-subtle)] pt-1.5 text-[13px] font-semibold text-[var(--content-default)]`,children:(0,J.jsxs)(`span`,{children:[`Total: `,o(f)]})})]})}function Ba(e,t){let[n,r]=e,[i,a]=t,o=r-n||1;return e=>i+(e-n)/o*(a-i)}function Va(e){if(e<=0)return 1;let t=10**Math.floor(Math.log10(e)),n=e/t,r;return r=n<=1?1:n<=2?2:n<=2.5?2.5:n<=5?5:10,r*t}function Ha(e){if(e>=1)return+!Number.isInteger(e);let t=e/10**Math.floor(Math.log10(e)),n=Math.abs(t-2.5)<.01;return Math.ceil(-Math.log10(e))+ +!!n}function Ua(e,t){let n=Math.max(0,...e),r=t?.tickCount??5;return n===0?t?.integerOnly?r:1:t?.integerOnly?Math.max(1,Math.ceil(n/r))*r:Va(n/r)*r}function Wa(e,t){if(e===0)return[0];let n=e/t,r=10**(n>=1?0:Math.ceil(-Math.log10(n))+2),i=[];for(let e=0;e<=t;e++)i.push(Math.round(n*e*r)/r);return i}function Ga(e,t,n,r,i){let a=Math.min(i,n/2,r/2);return[`M${e},${t+a}`,`A${a},${a} 0 0 1 ${e+a},${t}`,`H${e+n-a}`,`A${a},${a} 0 0 1 ${e+n},${t+a}`,`V${t+r}`,`H${e}`,`Z`].join(``)}function Ka(e,t){if(e<=0)return[];if(t)return e<=3?Array.from({length:e},(e,t)=>t):[0,Math.floor(e/2),e-1];let n=Math.max(1,Math.ceil(e/Math.min(e,12))),r=[];for(let t=0;t<e;t+=n)r.push(t);return r[r.length-1]!==e-1&&r.push(e-1),r}var qa=40,Ja={fontSize:11,fill:`var(--content-tertiary)`},Ya={runtime_proxy_api:`#3b82f6`,oauth_proxy:`#f59e0b`};function Xa(e,t){return Ya[e]??La[t%La.length]??`#6b7280`}function Za(e,t){let n=new Set,r={};for(let t of e)for(let e of t.groups)n.add(e.group_key),r[e.group_key]=e.group_label;return{data:e.map(e=>{let n={date:e.date};for(let r of e.groups)n[r.group_key]=t===`spend`?parseFloat(r.total_usd):r.event_count;return n}),stackKeys:Array.from(n),labelMap:r}}function Qa({stackKeys:e,labelMap:t}){return(0,J.jsx)(`div`,{className:`flex flex-wrap items-center justify-center gap-x-5 gap-y-1 pt-3 text-body-small-default`,children:e.map((e,n)=>(0,J.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,J.jsx)(`span`,{className:`inline-block h-2.5 w-2.5 rounded-sm`,style:{backgroundColor:Xa(e,n)}}),(0,J.jsx)(`span`,{className:`text-[var(--content-quiet)]`,children:t[e]??e})]},e))})}var $a=350,eo={top:8,right:4,bottom:32,left:0},to=.2,no=5,ro=12,io=200;function ao({buckets:e,metric:t,onBarClick:n}){let r=$e(),i=(0,K.useRef)(null),[a,o]=(0,K.useState)(0);(0,K.useEffect)(()=>{let e=i.current;if(!e)return;let t=new ResizeObserver(([e])=>{e&&o(e.contentRect.width)});return t.observe(e),()=>t.disconnect()},[]);let{data:s,stackKeys:c,labelMap:l}=(0,K.useMemo)(()=>Za(e,t),[e,t]),u=(0,K.useMemo)(()=>{let e={};for(let t=0;t<c.length;t++)e[c[t]]=Xa(c[t],t);return e},[c]),d=(0,K.useCallback)(e=>t===`spend`?`$${e.toLocaleString(`en-US`,{minimumFractionDigits:2,maximumFractionDigits:2})}`:e.toLocaleString(`en-US`),[t]),[f,p]=(0,K.useState)(null),m=r?qa:56,h=r?Ja:Fa,g=eo.left+m,_=Math.max(0,a-g-eo.right),v=eo.top,y=$a-eo.top-eo.bottom,b=(0,K.useMemo)(()=>s.map(e=>c.reduce((t,n)=>t+(Number(e[n])||0),0)),[s,c]),x=t===`events`,S=(0,K.useMemo)(()=>Ua(b,{integerOnly:x,tickCount:no}),[b,x]),C=(0,K.useMemo)(()=>Wa(S,no),[S]),w=(0,K.useCallback)(e=>{if(t===`spend`){if(e===0)return`$0`;let t=S/no,n=Math.max(t<1?2:0,Ha(t));return`$${e.toLocaleString(`en-US`,{minimumFractionDigits:n,maximumFractionDigits:n})}`}return e.toLocaleString(`en-US`)},[t,S]),T=(0,K.useMemo)(()=>Ba([0,S],[v+y,v]),[S,v,y]),E=s.length,D=E>0?_/E:0,O=D*(1-to),k=(D-O)/2,A=(0,K.useMemo)(()=>Ka(E,r),[E,r]),j=c.length===0,M=j?[]:s.map((e,t)=>{let n=g+t*D+k,r=0;return{di:t,x:n,segments:c.map((t,i)=>{let a=Number(e[t])||0,o=r;r+=a;let s=T(r),l=T(o)-s,u=i===c.length-1;return{key:t,val:a,x:n,y:s,h:l,color:Xa(t,i),isLast:u}})}}),N=(e,t,n)=>{let r=i.current?.getBoundingClientRect();r&&p({x:e.clientX-r.left,y:e.clientY-r.top,datumIndex:t,hoveredKey:n})},P=()=>p(null),F=e=>{n&&n(e)},ee=f?c.filter(e=>(Number(s[f.datumIndex]?.[e])||0)>0).map(e=>({dataKey:e,value:Number(s[f.datumIndex]?.[e])||0})):[],te={left:f?Math.max(0,Math.min(f.x+ro,a-io)):0,top:f?f.y-ro:0,visibility:f?`visible`:`hidden`};return(0,J.jsxs)(`div`,{onMouseDown:e=>e.preventDefault(),children:[(0,J.jsx)(`div`,{ref:i,className:`relative w-full`,style:{height:$a},children:j?(0,J.jsx)(`div`,{className:`flex h-full items-center justify-center text-body-medium-lighter text-[var(--content-faint)]`,children:`No usage data for this period`}):a>0?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(`svg`,{width:a,height:$a,className:`block`,children:[C.map(e=>(0,J.jsx)(`line`,{x1:g,x2:g+_,y1:T(e),y2:T(e),stroke:Pa.stroke,strokeOpacity:Pa.strokeOpacity,strokeDasharray:Pa.strokeDasharray},e)),(0,J.jsx)(`line`,{x1:g,x2:g+_,y1:v+y,y2:v+y,stroke:Ia.stroke,strokeOpacity:Ia.strokeOpacity}),C.map(e=>(0,J.jsx)(`text`,{x:g-8,y:T(e),textAnchor:`end`,dominantBaseline:`middle`,fontSize:h.fontSize,fill:h.fill,children:w(e)},e)),A.map(e=>{let t=s[e];return t?(0,J.jsx)(`text`,{x:g+e*D+D/2,y:v+y+20,textAnchor:`middle`,fontSize:h.fontSize,fill:h.fill,children:Ht(String(t.date))},e):null}),M.map(({di:e,segments:t})=>t.map(t=>{if(t.h<=0)return null;let r=f?.hoveredKey&&f.hoveredKey!==t.key?.4:1,i={key:`${e}-${t.key}`,fill:t.color,opacity:r,cursor:n?`pointer`:void 0,onMouseMove:n=>N(n,e,t.key),onMouseLeave:P,onClick:()=>F(t.key)};return t.isLast?(0,J.jsx)(`path`,{...i,d:Ga(t.x,t.y,O,t.h,3)}):(0,J.jsx)(`rect`,{...i,x:t.x,y:t.y,width:O,height:t.h})}))]}),(0,J.jsx)(`div`,{className:`pointer-events-none absolute z-[1] max-w-[calc(100vw-32px)] -translate-y-full`,style:te,children:(0,J.jsx)(za,{active:!!f,payload:ee,hoveredKey:f?.hoveredKey??void 0,label:f?String(s[f.datumIndex]?.date):``,labelMap:l,colorMap:u,formatValue:d})})]}):null}),!j&&(0,J.jsx)(Qa,{stackKeys:c,labelMap:l})]})}function oo(e=et()){return Aa(30,e)}function so(e){if(e)return e.usageSource===`oauth_proxy`?`oauth_provider`:an(e.llmDimension??`model`)}function co(e,t=et()){return{from:e.dateRange.from,to:e.dateRange.to,tz:t,...e.drilldown?{usage_source:e.drilldown.usageSource,group_by:so(e.drilldown)}:{}}}function lo(e,t=et()){return{from:e.dateRange.from,to:e.dateRange.to,tz:t,...e.drilldown?{usage_source:e.drilldown.usageSource}:{}}}function uo(e,t,n){return e===`full`&&t!==`gated`&&n}function fo(e){let t=Nt(),n=uo(G({platformHostedOnly:!0}),G(),Be()),r=u({...St({query:co(e,t)}),enabled:n}),i=u({...xt({query:lo(e,t)}),enabled:n});return{series:r.data,totals:i.data,isLoading:r.isLoading||i.isLoading,isError:r.isError||i.isError}}var po=[{value:`spend`,label:`Spend ($)`},{value:`events`,label:`Events`}];function mo(e){if(e===void 0)return`—`;let t=parseFloat(e);return Number.isNaN(t)?`$0.00`:`$${t.toLocaleString(`en-US`,{minimumFractionDigits:2,maximumFractionDigits:2})}`}function ho(e){return e===void 0?`—`:e.toLocaleString(`en-US`)}function go(){let e=Nt(),[t,n]=(0,K.useState)(30),[r,i]=(0,K.useState)(()=>oo(e)),a=(0,K.useMemo)(()=>t===null?r:Aa(t,e),[t,r,e]),o=(e,t)=>{n(t),i(e)},[s,c]=(0,K.useState)(null),[l,u]=(0,K.useState)(`spend`),{series:d,totals:f,isLoading:p,isError:g}=fo({dateRange:a,setDateRange:e=>{n(null),i(e)},drilldown:s,setDrilldown:c}),v=s?void 0:e=>{let t={runtime_proxy_api:`runtime_proxy`,oauth_proxy:`oauth_proxy`}[e];t&&c({usageSource:t,...t===`runtime_proxy`?{llmDimension:$t}:{}})};return(0,J.jsx)(h,{padding:`md`,children:(0,J.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,J.jsxs)(`div`,{className:`flex flex-wrap items-start justify-between gap-3`,children:[(0,J.jsxs)(`div`,{children:[(0,J.jsx)(m,{as:`h2`,variant:`title-medium`,className:`text-[var(--content-default)]`,children:`Credit Usage`}),(0,J.jsx)(m,{as:`p`,variant:`body-small-default`,className:`mt-2 text-[var(--content-tertiary)]`,children:`Overview of your spending habits.`})]}),(0,J.jsxs)(`div`,{className:`flex flex-wrap items-center justify-end gap-2 [&_[role=combobox]]:h-8 [&_[role=radio]]:h-7`,children:[(0,J.jsx)(Na,{value:a,onChange:o}),(0,J.jsx)(`div`,{className:`w-44`,children:(0,J.jsx)(Ce,{items:po,value:l,onChange:u,ariaLabel:`Chart metric`})})]})]}),(0,J.jsxs)(`div`,{className:`grid grid-cols-1 gap-2 sm:grid-cols-2`,children:[(0,J.jsx)(we,{icon:(0,J.jsx)(S,{className:`h-4 w-4`,"aria-hidden":!0}),value:p?(0,J.jsx)(B,{className:`h-4 w-4 animate-spin`,"aria-hidden":!0}):mo(f?.total_usd),label:`Spend`}),(0,J.jsx)(we,{icon:(0,J.jsx)(he,{className:`h-4 w-4`,"aria-hidden":!0}),value:p?(0,J.jsx)(B,{className:`h-4 w-4 animate-spin`,"aria-hidden":!0}):ho(f?.event_count),label:`Events`})]}),s&&(0,J.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[(0,J.jsx)(`div`,{children:(0,J.jsxs)(`button`,{className:`flex items-center gap-1.5 text-body-medium-lighter text-[var(--content-tertiary)] transition-colors hover:text-[var(--content-secondary)]`,onClick:()=>c(null),children:[(0,J.jsx)(_,{className:`h-3.5 w-3.5`}),(0,J.jsx)(`span`,{children:`Back to all usage`}),(0,J.jsx)(`span`,{className:`text-[var(--content-tertiary)]`,children:`/`}),(0,J.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-default)]`,children:s.usageSource===`runtime_proxy`?`LLM Spend`:`OAuth Spend`})]})}),s.usageSource===`runtime_proxy`&&(0,J.jsx)(`div`,{className:`w-56`,children:(0,J.jsx)(Ce,{items:tn,value:s.llmDimension??`model`,onChange:e=>c({usageSource:`runtime_proxy`,llmDimension:e}),ariaLabel:`LLM spend dimension`})})]}),p?(0,J.jsx)(`div`,{className:`flex h-[345px] items-center justify-center rounded-xl bg-[var(--surface-base)]`,children:(0,J.jsx)(B,{className:`h-6 w-6 animate-spin text-[var(--content-tertiary)]`})}):g?(0,J.jsx)(`div`,{className:`flex h-[345px] items-center justify-center rounded-xl bg-[var(--surface-base)] text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Failed to load usage data.`}):d?(0,J.jsx)(`div`,{className:`rounded-xl bg-[var(--surface-base)] p-3`,children:(0,J.jsx)(ao,{buckets:d.buckets,metric:l,onBarClick:v})}):null]})})}function _o(){let{data:e}=u(wt()),t=M((0,K.useMemo)(()=>te(e),[e]));if(!e||e.plan_id!==`pro`||e.status===`canceled`||!e.cancel_at_period_end&&!e.cancel_at)return null;let n=ue(e);return n?(0,J.jsx)(V,{tone:`info`,title:`Your Pro plan will end on ${A(n)}.`,actions:(0,J.jsx)(i,{variant:`outlined`,size:`compact`,onClick:()=>t.mutate({}),disabled:t.isPending,leftIcon:t.isPending?(0,J.jsx)(B,{className:`animate-spin`}):void 0,"data-testid":`grace-period-reactivate-button`,children:`Reactivate`}),"data-testid":`grace-period-banner`,children:`You'll keep Pro features until then.`}):null}var vo={invoices:[],has_more:!1},yo=4,bo=`text-body-small-default [--vbtn-fg:var(--content-tertiary)] hover:[--vbtn-fg:var(--content-secondary)]`;function xo(e){switch(e){case`paid`:return`positive`;case`open`:return`warning`;case`uncollectible`:return`negative`;default:return`neutral`}}function So(e,t){let n=t.toUpperCase();try{let t=new Intl.NumberFormat(void 0,{style:`currency`,currency:n}),r=t.resolvedOptions().maximumFractionDigits??2;return t.format(e/10**r)}catch{return`${(e/100).toFixed(2)} ${n}`}}function Co(e){return Rt(new Date(e*1e3),{alwaysShowYear:!0})}function wo(e){let t=document.createElement(`a`);t.href=e,t.target=`_blank`,t.rel=`noopener noreferrer`,document.body.appendChild(t),t.click(),t.remove()}function To(){let[e,t]=(0,K.useState)(!1),[r,o]=(0,K.useState)(!1),[s,c]=(0,K.useState)(!1),[u,f]=(0,K.useState)(!1),p=(0,K.useRef)(0),g=l(),_=d({enabled:e,queryKey:at(),queryFn:async({signal:e,pageParam:t})=>{let{data:n,error:r,response:i}=await Ie({throwOnError:!1,signal:e,query:t?{starting_after:t}:void 0});if(i?.status===404)return vo;if(je(i,r,`Failed to load invoices.`),!i.ok||!n)throw Ae(r,i);return n},initialPageParam:void 0,getNextPageParam:e=>e.has_more?e.invoices.at(-1)?.id:void 0}),v=_.data?.pages.flatMap(e=>e.invoices)??[],x=r?v:v.slice(0,yo),S=v.length>yo,C=_.isFetchNextPageError||u,w=(r||!S)&&_.hasNextPage&&!C,T=_.isRefetching||_.isFetchingNextPage;function E(){let e=p.current;_.fetchNextPage().then(t=>{e===p.current&&f(t.isError)})}function D(){let e=p.current;_.refetch().then(t=>{if(e===p.current){if(t.isError){f(!0);return}E()}})}async function O(){c(!0);try{let{data:e,response:t}=await Fe({throwOnError:!1,parseAs:`blob`});if(!t?.ok||!(e instanceof Blob))throw Error(`Failed to download invoices (${t?.status??`network error`})`);let{saveFile:n}=await a(async()=>{let{saveFile:e}=await import(`./native-file-BvwfoU6A.js`).then(e=>e.t);return{saveFile:e}},__vite__mapDeps([0,1,2,3,4]));await n(e,`invoices.zip`)}catch(e){n(e,{context:`download_all_invoices`}),U.error(`Failed to download invoices.`)}finally{c(!1)}}return(0,J.jsx)(h,{padding:`md`,children:(0,J.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,J.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,J.jsxs)(`div`,{children:[(0,J.jsx)(m,{as:`h2`,variant:`title-medium`,className:`text-[var(--content-default)]`,children:`Invoices`}),(0,J.jsx)(m,{as:`p`,variant:`body-small-default`,className:`mt-2 text-[var(--content-tertiary)]`,children:`Your billing history.`})]}),(0,J.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[e&&v.length>0&&(0,J.jsx)(i,{variant:`outlined`,leftIcon:s?(0,J.jsx)(B,{className:`animate-spin`}):(0,J.jsx)(ge,{className:`h-4 w-4`}),onClick:O,disabled:s,"data-testid":`invoices-download-all`,children:`Download all`}),(0,J.jsx)(i,{variant:`outlined`,leftIcon:e?(0,J.jsx)(b,{className:`h-4 w-4`}):(0,J.jsx)(y,{className:`h-4 w-4`}),onClick:()=>{p.current+=1,f(!1),e&&g.cancelQueries({queryKey:at()}),t(e=>!e)},"data-testid":`invoices-toggle`,children:e?`Hide invoices`:`Show invoices`})]})]}),e?_.isLoading?(0,J.jsxs)(`div`,{className:`flex items-center gap-2 py-6 text-[var(--content-tertiary)]`,children:[(0,J.jsx)(B,{className:`h-4 w-4 animate-spin`}),(0,J.jsx)(m,{as:`span`,variant:`body-small-default`,children:`Loading invoices...`})]}):_.isLoadingError?(0,J.jsx)(V,{tone:`error`,children:`Failed to load invoices.`}):v.length===0?(0,J.jsx)(m,{as:`p`,variant:`body-small-default`,className:`py-6 text-center text-[var(--content-tertiary)]`,"data-testid":`invoices-empty`,children:`No Invoices Found`}):(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`div`,{className:`overflow-x-auto`,children:(0,J.jsxs)(`table`,{className:`w-full`,"data-testid":`invoices-table`,children:[(0,J.jsx)(`thead`,{children:(0,J.jsxs)(`tr`,{className:`border-b border-[var(--border-base)] text-left`,children:[(0,J.jsx)(`th`,{className:`pb-2 pr-4 text-body-small-default text-[var(--content-tertiary)]`,children:`Date`}),(0,J.jsx)(`th`,{className:`pb-2 pr-4 text-body-small-default text-[var(--content-tertiary)]`,children:`Amount`}),(0,J.jsx)(`th`,{className:`pb-2 pr-4 text-body-small-default text-[var(--content-tertiary)]`,children:`Status`}),(0,J.jsx)(`th`,{className:`pb-2 text-body-small-default text-[var(--content-tertiary)]`,children:`Action`})]})}),(0,J.jsx)(`tbody`,{children:x.map(e=>(0,J.jsxs)(`tr`,{className:`border-b border-[var(--border-base)] last:border-0`,"data-testid":`invoice-row`,children:[(0,J.jsx)(`td`,{className:`py-3 pr-4`,children:(0,J.jsx)(m,{as:`span`,variant:`body-small-default`,className:`text-[var(--content-secondary)]`,children:Co(e.created)})}),(0,J.jsx)(`td`,{className:`py-3 pr-4`,children:(0,J.jsx)(m,{as:`span`,variant:`body-small-default`,className:`text-[var(--content-secondary)]`,children:So(e.amount_due,e.currency)})}),(0,J.jsx)(`td`,{className:`py-3 pr-4`,children:e.status&&(0,J.jsx)(Te,{tone:xo(e.status),children:e.status})}),(0,J.jsx)(`td`,{className:`py-3`,children:(0,J.jsxs)(`div`,{className:`flex items-center gap-1`,children:[e.hosted_invoice_url&&(0,J.jsx)(i,{asChild:!0,variant:`ghost`,size:`compact`,leftIcon:(0,J.jsx)(_e,{className:`h-3.5 w-3.5`}),children:(0,J.jsx)(`a`,{href:e.hosted_invoice_url,target:`_blank`,rel:`noopener noreferrer`,children:`View`})}),e.invoice_pdf&&(0,J.jsx)(i,{variant:`ghost`,size:`compact`,iconOnly:(0,J.jsx)(ge,{className:`h-3.5 w-3.5`}),"aria-label":`Download invoice PDF`,onClick:()=>wo(e.invoice_pdf)})]})})]},e.id))})]})}),(S||w||C)&&(0,J.jsxs)(`div`,{className:`flex flex-wrap items-center gap-4 self-start`,children:[S&&(0,J.jsx)(i,{variant:`link`,onClick:()=>o(e=>!e),className:bo,"data-testid":`invoices-show-more`,children:r?`Show less`:`Show more (${v.length-yo} more)`}),w&&(0,J.jsx)(i,{variant:`link`,onClick:E,disabled:_.isFetchingNextPage,leftIcon:_.isFetchingNextPage&&(0,J.jsx)(B,{className:`h-4 w-4 animate-spin`}),className:bo,"data-testid":`invoices-load-more`,children:`Load more`}),C&&(0,J.jsxs)(`div`,{className:`flex items-center gap-2`,"data-testid":`invoices-load-more-error`,children:[(0,J.jsx)(m,{as:`span`,variant:`body-small-default`,className:`text-[color:var(--content-negative)]`,children:`Failed to load more invoices.`}),(0,J.jsx)(i,{variant:`link`,onClick:D,disabled:T,leftIcon:T&&(0,J.jsx)(B,{className:`h-4 w-4 animate-spin`}),className:bo,"data-testid":`invoices-load-more-retry`,children:`Retry`})]})]})]}):null]})})}function Eo({icon:e,label:t,multiline:n=!1}){return(0,J.jsxs)(`div`,{className:Pt(`flex items-center gap-1.5 rounded-lg bg-[var(--surface-overlay)] px-2 py-1.5`,n?`min-h-8 min-w-0`:`h-8`),children:[(0,J.jsx)(e,{className:`h-3.5 w-3.5 shrink-0 text-[var(--content-default)]`,"aria-hidden":!0}),(0,J.jsx)(m,{as:`span`,variant:`body-medium-default`,className:Pt(`text-[var(--content-default)]`,n?`whitespace-normal`:`whitespace-nowrap`),children:t})]})}function Do({title:e,specs:t,ctaLabel:n,ctaTestId:r,pending:a=!1,disabled:o=!1,onCtaClick:s,className:c}){return(0,J.jsxs)(`div`,{"data-theme":`dark`,className:Pt(`flex min-w-0 flex-1 flex-col items-center justify-center gap-5 rounded-xl bg-[var(--surface-base)] py-5 pl-3 pr-4`,c),children:[(0,J.jsxs)(`div`,{className:`flex flex-col items-center gap-2 text-center`,children:[(0,J.jsx)(m,{as:`span`,variant:`body-large-default`,className:`text-[var(--content-default)]`,children:e}),t?.length?(0,J.jsx)(`div`,{className:`flex flex-wrap items-center justify-center gap-2`,children:t.map(e=>(0,J.jsx)(Eo,{icon:e.icon,label:e.label},e.label))}):null]}),(0,J.jsx)(i,{variant:`primary`,className:`h-8 shrink-0`,onClick:s,disabled:o||a,leftIcon:a?(0,J.jsx)(B,{className:`h-4 w-4 animate-spin`}):void 0,"data-testid":r,children:n})]})}function Oo({tierKey:e,name:t,nameTestId:n,tag:r,specs:i,className:a}){let o=i!=null&&i.length>0;return(0,J.jsxs)(`div`,{"data-theme":`light`,className:Pt(`flex min-w-0 flex-1 flex-col items-center justify-center gap-4 rounded-xl bg-[var(--surface-base)] py-3 pl-3 pr-4`,a),children:[o?(0,J.jsx)(`div`,{className:`h-px w-full bg-[var(--border-base)]`}):null,(0,J.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,J.jsx)(k,{tier:e,size:48}),(0,J.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:[(0,J.jsx)(m,{as:`span`,variant:`body-large-default`,className:`text-[var(--content-default)]`,"data-testid":n,children:t}),r]})]}),o?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`div`,{className:`h-px w-full bg-[var(--border-base)]`}),(0,J.jsx)(`div`,{className:`flex flex-wrap items-center justify-center gap-2`,children:i.map(e=>(0,J.jsx)(Eo,{icon:e.icon,label:e.label,multiline:e.multiline},e.label))})]}):null]})}var ko={pro:{actionLabel:`Manage`,actionVariant:`outlined`,actionTestId:`plan-card-manage-button`,showsRenewal:!0},base:{actionLabel:`View All Plans`,actionVariant:`primary`,actionTestId:`plan-card-upgrade-button`,showsRenewal:!0}},Ao=ko.pro;function jo(){return(0,J.jsx)(m,{as:`h2`,variant:`title-medium`,className:`text-[var(--content-emphasised)]`,children:`Plan`})}function Mo({packages:e,proPlan:t,currentKey:n,isProUser:r,canChangePackage:i,relation:a,onManage:o,onTierUpgraded:s}){let c=l(),u=f(vt()),{changePackage:d,isPending:p}=le(),{changeTiers:m,isPending:h,current:g,currentReady:_}=se({enabled:r}),[v,y]=(0,K.useState)(!1),[b,x]=(0,K.useState)(!1),[S,C]=(0,K.useState)(!1);I();let w=(0,K.useMemo)(()=>!r||g.storageTier==null?null:{machineTier:g.machineTier,storageTier:g.storageTier,creditTier:g.creditTier},[r,g.machineTier,g.storageTier,g.creditTier]),T=D(e,n),E=e.length>0,O=T!=null&&a!==`switch`,k=r&&E&&(a===`switch`||T==null&&n!=null&&e.some(e=>e.key===n)),A=v||u.isPending||p,M=async()=>{if(!T)return;let e=await d(T.key);e&&(x(!1),e.status===`ok`?s?.():U.success(`You're already on this plan.`))},N=async()=>{if(T){if(r&&!i){o();return}if(r){x(!0);return}y(!0);try{let e=await u.mutateAsync({body:{target_plan_id:`pro`,package:T.key,confirm:!0,return_target:Kt()}});e.status===`redirect`&&e.checkout_url?(Re({kind:`package`,packageKey:T.key}),Ne(c),Ye(e.checkout_url)):(await c.invalidateQueries({queryKey:At()}),await c.invalidateQueries({queryKey:yt()}))}catch(e){U.error(ie(e,`Failed to start the upgrade checkout. Please try again.`))}finally{y(!1)}}},P=async e=>{let t=await m(e);t&&(C(!1),t.needsResize?s?.():U.success(t.creditChanged?`Credit bundle updated.`:`Plan updated.`))},F=()=>{if(!i){o();return}if(!(h||!_)){if(w==null){o();return}C(!0)}},ee=i&&(h||!_);return O?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(Do,{className:`lg:flex-[2]`,title:`Upgrade to ${T.name}`,specs:R(T),ctaLabel:`Upgrade`,ctaTestId:`recommended-upgrade-button`,pending:A,onCtaClick:()=>void N()}),(0,J.jsx)(oe,{open:b,relation:a,packageName:T.name,targetPackage:T,pending:A,onConfirm:()=>void M(),onCancel:()=>x(!1)})]}):k&&t?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(Do,{className:`lg:flex-[2]`,title:`Create a custom plan`,ctaLabel:`Customize`,ctaTestId:`recommended-customize-button`,pending:h,disabled:ee,onCtaClick:F}),(0,J.jsx)(j,{open:S,proPlan:t,pending:h,currentStorageGib:g.storageGib,initialSelection:w,onClose:()=>C(!1),onContinue:e=>void P(e)})]}):null}function No({onManage:e,onTierUpgraded:t}){let n=c(),r=u(wt()),a=u(tt());if(r.isLoading||a.isLoading)return(0,J.jsxs)(h,{padding:`md`,children:[(0,J.jsx)(jo,{}),(0,J.jsxs)(`div`,{className:`mt-4 flex items-center gap-2 text-[var(--content-tertiary)]`,children:[(0,J.jsx)(B,{className:`h-4 w-4 animate-spin`}),(0,J.jsx)(m,{as:`span`,variant:`body-small-default`,children:`Loading plan...`})]})]});let o=r.data,s=a.data?.plans,l=s?.find(e=>e.id===o?.plan_id);if(r.isError||a.isError||!o||!s||!l)return(0,J.jsx)(V,{tone:`error`,children:`Failed to load plan.`});let d=ko[l.id]??Ao,f=l.id===`pro`?re(o.package):l.name??l.id,p=d.showsRenewal&&(o.cancel_at_period_end===!0||!!o.cancel_at),g=o.status===`canceled`,_=ue(o),v=d.showsRenewal&&!p&&!g&&o.current_period_end,y=d.showsRenewal&&p&&!g&&_,b=s.find(e=>e.id===`pro`),x=b?.packages??[],S=o.package?.key??null,w=S??`free`,T=x.length>0&&(l.id===`base`||C(o.package)||L(o)),E=L(o),D=l.id===`base`||C(o.package)?`upgrade`:`switch`,O=l.id!==`base`&&C(o.package)?x.find(e=>e.key===S)??null:null,k=O?R(O):null;return(0,J.jsx)(h,{padding:`md`,children:(0,J.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,J.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,J.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1`,children:[(0,J.jsx)(jo,{}),v&&(0,J.jsxs)(m,{variant:`body-small-default`,as:`div`,className:`leading-snug text-[var(--content-tertiary)]`,"data-testid":`plan-card-renews`,children:[`Monthly Payment • Your subscription will auto renew on`,` `,A(o.current_period_end),`.`]}),y&&(0,J.jsxs)(m,{variant:`body-small-default`,as:`div`,className:`leading-snug text-[var(--system-mid-strong)]`,"data-testid":`plan-card-cancels`,children:[`Your plan ends on `,A(_),`.`]})]}),(0,J.jsx)(i,{variant:d.actionVariant,onClick:T?()=>n(W.plans):e,"data-testid":d.actionTestId,className:`shrink-0`,children:d.actionLabel})]}),(0,J.jsxs)(`div`,{className:`flex flex-col gap-2 lg:flex-row lg:items-stretch`,children:[(0,J.jsx)(Oo,{tierKey:w,name:f,nameTestId:`plan-card-name`,className:`lg:flex-[3]`,tag:(0,J.jsx)(Te,{className:`bg-[var(--feed-digest-weak)] text-[var(--content-default)]`,children:`Current Plan`}),specs:k}),(0,J.jsx)(Mo,{packages:x,proPlan:b,currentKey:S,isProUser:l.id!==`base`,canChangePackage:E,relation:D,onManage:e,onTierUpgraded:t})]})]})})}function Po(){let[e]=o(),t=c(),n=l();return(0,K.useEffect)(()=>{let r=e.get(`billing_status`);r&&(r===`success`?(U.success(`Payment received! Your credit balance will update shortly.`,{id:`billing-status`}),n.invalidateQueries({queryKey:bt().queryKey})):r===`cancel`&&U.info(`Checkout was cancelled. No credits were added.`,{id:`billing-status`}),t(W.settings.usageBilling,{replace:!0}))},[e,t,n]),null}function Fo({onFinishSetup:e}){let t=Ve(),{data:n}=u({...wt(),enabled:t}),r=n?.plan_id===`pro`,{data:a}=u({...Ot(),enabled:r&&t}),o=r&&a?.domain_setup_available===!0,{domains:s}=w(o,a?.primary_assistant_id),c=s!==void 0&&s.results.length===0;return!o||!c?null:(0,J.jsx)(V,{tone:`info`,title:`Finish setting up your ${re(n?.package)} plan`,actions:(0,J.jsx)(i,{variant:`outlined`,size:`compact`,onClick:e,"data-testid":`finish-pro-setup-button`,children:`Finish setup`}),"data-testid":`finish-pro-setup-notice`,children:`Your assistant's email address hasn't been set up yet.`})}function Io(){let e=G({platformHostedOnly:!0}),t=G(),n=Be(),r=ze(),[i,a]=o(),[s,c]=(0,K.useState)(!1),l=(0,K.useCallback)(()=>c(!0),[]),u=(0,K.useCallback)(()=>c(!1),[]),[d,f]=(0,K.useState)(!1),p=(0,K.useCallback)(()=>f(!0),[]),[m,h]=(0,K.useState)(!1);(0,K.useEffect)(()=>{if(t!==`full`)return;let e=i.has(`adjust_plan`),n=i.has(`pro_onboarding`);!e&&!n||(e&&c(!0),n&&h(!0),a(e=>{let t=new URLSearchParams(e);return t.delete(`adjust_plan`),t.delete(`pro_onboarding`),t},{replace:!0}))},[t,i,a]);let g=i.has(`session_id`),_=(0,K.useCallback)(()=>{h(!1),a(e=>{let t=new URLSearchParams(e);return t.delete(`session_id`),t},{replace:!0})},[a]),v=(0,K.useCallback)(()=>{a(e=>{let t=new URLSearchParams(e);return t.set(`pro_onboarding`,``),t},{replace:!0})},[a]);if(t===`disabled`)return(0,J.jsx)(`div`,{className:`space-y-4`,children:(0,J.jsx)(It,{children:`Log in to the Vellum platform to manage billing and usage.`})});if(r)return(0,J.jsx)(`div`,{className:`space-y-4`,children:(0,J.jsxs)(`div`,{className:`flex items-center gap-2 py-6 text-body-medium-lighter text-[var(--content-secondary)]`,children:[(0,J.jsx)(B,{className:`h-4 w-4 animate-spin`}),`Loading billing…`]})});let y=n,b=y||g||m;return!n&&e!==`gated`?(0,J.jsx)(`div`,{className:`space-y-4`,children:(0,J.jsx)(V,{tone:`warning`,children:`Billing isn't available for the current assistant state.`})}):(0,J.jsxs)(`div`,{className:`space-y-4`,children:[(0,J.jsxs)(K.Suspense,{fallback:null,children:[(0,J.jsx)(Po,{}),(0,J.jsx)(Oa,{})]}),y&&(0,J.jsx)(_o,{}),y&&(0,J.jsx)(Fo,{onFinishSetup:v}),y&&(0,J.jsx)(No,{onManage:l,onTierUpgraded:p}),y&&(0,J.jsx)(Gr,{open:s,onClose:u,onTierUpgraded:p}),(0,J.jsx)(K.Suspense,{fallback:null,children:(0,J.jsx)(xa,{})}),(0,J.jsx)(K.Suspense,{fallback:null,children:(0,J.jsx)(To,{})}),b&&(0,J.jsx)(ne,{open:g||m,onClose:_}),y&&(0,J.jsx)(ne,{mode:`resize`,open:d,onClose:()=>f(!1)})]})}function Lo(){let e=Lt(),t=G({platformHostedOnly:!0}),n=G();return(0,J.jsxs)(`div`,{className:`space-y-4`,children:[t===`full`&&n!==`gated`&&(0,J.jsx)(go,{}),(0,J.jsx)(Sr,{assistantId:e})]})}function Ro(){let e=G(),[t,n]=o(),r=Xt(e,t),i=r&&t.get(`tab`)!==`usage`?`billing`:`usage`,a=Pe();return(0,K.useEffect)(()=>{if(a&&t.get(`tab`)!==i){let e=new URLSearchParams(t);e.set(`tab`,i),n(e,{replace:!0})}},[a,t,i,n]),(0,J.jsx)(`div`,{className:`space-y-6`,children:(0,J.jsxs)(z.Root,{value:i,onValueChange:e=>{let r=new URLSearchParams(t);r.set(`tab`,e),n(r,{replace:!0})},children:[(0,J.jsxs)(z.List,{children:[r&&(0,J.jsx)(z.Trigger,{value:`billing`,children:`Billing`}),(0,J.jsx)(z.Trigger,{value:`usage`,children:`Usage`})]}),r&&(0,J.jsx)(z.Panel,{value:`billing`,className:`pt-4`,children:(0,J.jsx)(Io,{})}),(0,J.jsx)(z.Panel,{value:`usage`,className:`pt-4`,children:(0,J.jsx)(Lo,{})})]})})}export{Ro as BillingPage};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/esm-BgRAHqeR.js","assets/preload-helper-Cv2QeVDK.js","assets/dist-CFSiz2ry2.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{t as e}from"./capture-error-FWzaVb8P.js";import{t}from"./preload-helper-Cv2QeVDK.js";import{t as n}from"./is-electron-7N7iyz1y.js";import{u as r}from"./native-biometric-B96mgKGP.js";import{t as i}from"./dist-CFSiz2ry2.js";function a(t,n){if(!r())return()=>void 0;let i=null,a=!1;return n().then(e=>{if(a){e.remove();return}i=e}).catch(n=>{e(n,{context:t,level:`warning`})}),()=>{a=!0,i?.remove()}}var o=async(e,r)=>{if(n()){window.open(e,`_blank`);return}if(i.isNativePlatform())try{let{Browser:n}=await t(async()=>{let{Browser:e}=await import(`./esm-BgRAHqeR.js`);return{Browser:e}},__vite__mapDeps([0,1,2]));await n.open({url:e,presentationStyle:`popover`})}catch{r(e)}else r(e)},s=e=>o(e,e=>{window.location.href=e}),c=async e=>{if(n())return window.open(e,`_blank`),!0;if(i.isNativePlatform())try{let{Browser:n}=await t(async()=>{let{Browser:e}=await import(`./esm-BgRAHqeR.js`);return{Browser:e}},__vite__mapDeps([0,1,2]));return await n.open({url:e,presentationStyle:`popover`}),!0}catch{}return window.open(e,`_blank`)!==null},l=e=>o(e,e=>{window.open(e,`_blank`,`noopener,noreferrer`)}),u=e=>a(`capacitor_browser_finished`,async()=>{let{Browser:n}=await t(async()=>{let{Browser:e}=await import(`./esm-BgRAHqeR.js`);return{Browser:e}},__vite__mapDeps([0,1,2]));return n.addListener(`browserFinished`,e)});export{a,c as i,s as n,u as r,l as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{dt as e,f as t,h as n,m as r}from"./local-mode-9zpgPNoq.js";import{n as i,t as a}from"./resolved-assistants-store-8HQDfxZh.js";import{Y as o,at as s,n as c,rt as l}from"./auth-store-BwKMFgpK.js";import{l as u}from"./remote-gateway-session-CgxYHgOD.js";import{a as d,i as f,n as p,r as m,s as h}from"./prefs-B6fvTCOn.js";function g(e){let t=o();return(t==null?e:a(e,t)).some(e=>e.isPlatformHosted)}function _(a){let{sessionStatus:o,platformSession:_}=c.getState(),{assistants:v,assistantsHydrated:y}=i.getState(),b=n();return{isLocalClient:t(),isPlatformDisabled:r(),isRemoteGateway:b,remoteGatewayPublicPathPrefix:b?u():``,isGatewayAuth:e(),hasAssistants:v.length>0,hasPlatformHostedAssistant:g(v),sessionSettled:s(o),isAuthenticated:l(o),platformSession:_,tosAccepted:h(),privacyConsent:d(),analyticsConsentCurrent:p(),diagnosticsConsentCurrent:f(),consentHydrated:m(),assistantsHydrated:y,...a}}export{_ as t};
|
|
@@ -1,9 +0,0 @@
|
|
|
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,t as i,u as a}from"./chunk-5KNZJZUH-Bsoom5--.js";import{n as o}from"./QueryClientProvider-CMu7CkQU.js";import{t as s}from"./useQuery-Bz-fbQ-m.js";import{t as c}from"./useMutation-CXGTrp4W.js";import{t as l}from"./jsx-runtime-D3ZM-ToX.js";import{t as u}from"./cn-CJf7MmLX.js";import{t as d}from"./typography-DEI9Ra9z.js";import{t as f}from"./card-DRIctGVs.js";import{_ as p,c as m,f as h,g,l as _,o as v,u as y,x as b}from"./use-save-twilio-credentials-CCp1iqBf.js";import{t as x}from"./chevron-down-B5A-0g8A.js";import{t as S}from"./circle-check-big-DSsDH5_6.js";import{t as C}from"./list-row-BYrmPIC4.js";import{o as w,r as T,t as E,u as D}from"./threshold-presets-B-gOdjC4.js";import{t as O}from"./message-square-zCNXaHYX.js";import{t as k}from"./search-DA3TmTuR.js";import{t as A}from"./notice-DCp7WO3L.js";import{N as j,P as M,a as N,i as P}from"./src-BAS7a2RG.js";import{t as F}from"./tag-D8NAGb0r.js";import{t as I}from"./input-C-GkeWCw.js";import{t as ee}from"./panel-item-DGs4s9r-.js";import{t as L}from"./confirm-dialog-DZX6LhLy.js";import{t as R}from"./dropdown-DswWMJhz.js";import{n as te,t as ne}from"./create-selectors-B-P03-8K.js";import{t as re}from"./assistant-identity-store-BczULg2T.js";import{i as ie}from"./utils-C-YNXdkX.js";import{d as ae}from"./routes-GmNvdtLW.js";import{n as oe}from"./conversation-navigation-D63NJmBl.js";import{i as se,o as ce,r as z}from"./sdk.gen-DEFA-6EJ.js";import{t as le}from"./assistant-feature-flag-store-CMUNSAPL.js";import{t as B}from"./public-asset-CD3ouSWU.js";import{t as ue}from"./use-active-assistant-id-CjvzlL4t.js";import{t as de}from"./slack-setup-wizard-dVkbEE6P.js";import{t as fe}from"./index-Ch9eoFem.js";import{t as pe}from"./detail-card-D-5EWmAS.js";import{n as me,t as he}from"./mobile-sidebar-drawer-BnxfQaDB.js";import{c as ge,i as _e,n as ve,o as ye,r as be,s as xe,t as Se}from"./use-invite-link-dialog-DN2IHVZE.js";import{t as V}from"./mutation-error-CXV1BKlB.js";var H=e(t(),1),U=ne(te()(e=>({selectedAdapter:`slack`,selectAdapter:t=>e({selectedAdapter:t})}))),W={slack:{label:`Slack`,disconnectMessage:`This clears the stored Slack bot and app tokens for this assistant. You can reconnect later.`,hasTrustFloorControl:!1},telegram:{label:`Telegram`,disconnectMessage:`This clears the stored Telegram bot token for this assistant. You can reconnect later.`,hasTrustFloorControl:!0,disconnectedPitch:e=>`Connect a Telegram bot so ${e} can send and receive messages on Telegram.`},phone:{label:`Phone Calling`,disconnectMessage:`This clears the stored Twilio credentials for this assistant. You can reconnect later.`,hasTrustFloorControl:!0,disconnectedPitch:e=>`Connect your Twilio account so ${e} can make and answer phone calls.`}},G=l();function K({channels:e,selectedKey:t,onSelect:n}){return(0,G.jsx)(f.Root,{className:`flex h-full flex-col overflow-hidden`,children:(0,G.jsxs)(f.Body,{className:`flex min-h-0 min-w-0 flex-1 flex-col gap-4`,children:[(0,G.jsx)(`h2`,{className:`text-title-medium`,style:{color:`var(--content-default)`},children:`Channels`}),(0,G.jsx)(`div`,{className:`flex flex-col gap-1`,children:e.map(e=>(0,G.jsx)(Ce,{channel:e,selected:e.key===t,onClick:()=>n(e.key)},e.key))})]})})}function Ce({channel:e,selected:t,onClick:n}){let r=e.status===`ready`,i=h(e.key),a=r?`Connected`:`Not connected`;return(0,G.jsx)(ee,{asChild:!0,active:t,label:`${i}, ${a}`,children:(0,G.jsxs)(`button`,{type:`button`,onClick:n,className:`flex h-auto w-full items-center gap-2 rounded-[6px] px-[8px] py-2 text-left`,children:[(0,G.jsx)(y,{channelId:e.key,className:`h-4 w-4 shrink-0 text-[color:var(--content-secondary)]`}),(0,G.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-body-medium-default`,children:i}),(0,G.jsx)(`span`,{className:`flex shrink-0 items-center`,children:(0,G.jsx)(F,{tone:r?`positive`:`neutral`,children:a})})]})})}function we({icon:e,title:t,description:n,action:r,className:i}){return(0,G.jsxs)(`div`,{className:u(`flex flex-col items-center justify-center gap-3 px-4 py-12 text-center`,i),children:[e?(0,G.jsx)(`div`,{className:`flex h-12 w-12 items-center justify-center rounded-xl bg-[var(--surface-sunken)] text-[var(--content-tertiary)]`,children:e}):null,(0,G.jsx)(`h3`,{className:`text-title-small text-[var(--content-default)]`,children:t}),n?(0,G.jsx)(`p`,{className:`max-w-md text-body-medium-lighter text-[color:var(--content-tertiary)]`,children:n}):null,r?(0,G.jsx)(`div`,{className:`mt-1`,children:r}):null]})}function Te({assistantDisplayName:e,policy:t,saving:n=!1,loading:r=!1,error:i=!1,onChange:a}){let o=t??`trusted_contacts`,s=ge(e),c=ye.map(e=>({value:e,label:xe[e],tooltip:s[e]}));return(0,G.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,G.jsxs)(d,{as:`span`,variant:`body-small-emphasised`,className:`text-[color:var(--content-secondary)]`,children:[`Who can message `,e]}),r?(0,G.jsx)(d,{as:`span`,variant:`body-small-lighter`,className:`text-[color:var(--content-tertiary)]`,children:`Loading…`}):i?(0,G.jsx)(d,{as:`span`,variant:`body-small-lighter`,className:`text-[color:var(--content-negative)]`,children:`Couldn’t load this setting. Try reopening this page.`}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{style:{maxWidth:280},children:(0,G.jsx)(R,{value:o,onChange:a,options:c,disabled:n,"aria-label":`Who can message ${e}`})}),(0,G.jsx)(d,{as:`span`,variant:`body-small-lighter`,className:`text-[color:var(--content-tertiary)]`,children:s[o]}),o===`trusted_contacts`?(0,G.jsxs)(A,{tone:`info`,className:`max-w-lg`,children:[`People you haven’t verified yet (even teammates in the same channel) can’t get through: `,e,` lets them know they need to be verified and notifies you. You can verify people ahead of time in Contacts.`]}):null]})]})}function Ee({address:e,pending:t,onDisconnect:r}){return(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(F,{tone:`positive`,leftIcon:(0,G.jsx)(S,{}),children:`Connected`}),e?(0,G.jsx)(`span`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:e}):null,(0,G.jsx)(`div`,{className:`ml-auto`,children:(0,G.jsx)(n,{type:`button`,variant:`danger`,onClick:r,disabled:!r||t,children:t?`Disconnecting…`:`Disconnect`})})]})}function De({children:e}){return(0,G.jsxs)(f.Root,{children:[(0,G.jsx)(f.Header,{children:(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`img`,{src:B(`/images/integrations/slack.svg`),alt:``,className:`size-8 rounded-lg bg-[var(--surface-sunken)] p-1`}),(0,G.jsx)(d,{as:`span`,variant:`body-medium-default`,children:`Slack setup`})]})}),(0,G.jsx)(f.Body,{children:e})]})}E.map(e=>e.riskThreshold);var Oe=[`none`,`low`];function q(e){if(e!==void 0)return e===`none`?`none`:`low`}var J={none:{label:T(`none`).label,sublabel:`asks every time`,tone:`negative`,dotColor:`var(--system-negative-strong)`},low:{label:T(`low`).label,sublabel:`safe lookups`,tone:`warning`,dotColor:`var(--system-mid-strong)`},medium:{label:T(`medium`).label,sublabel:`broader lookups`,tone:`info`,dotColor:`var(--system-info-strong)`},high:{label:T(`high`).label,sublabel:`any lookup`,tone:`positive`,dotColor:`var(--system-positive-strong)`}},Y=[`trusted_contact`,`unverified_contact`,`unknown`];function ke(e,t){let n={};for(let r of e){if(r.selector.scope!==`channel`||r.selector.adapter!==t)continue;let e=r.selector.channelExternalId;e&&(r.contactType===`trusted_contact`||!(e in n))&&(n[e]=r.threshold)}return n}function X(e,t,n){return n===`channels`?e.selector.scope===`adapter`&&e.selector.adapter===t:e.selector.scope===`channel_type`&&e.selector.adapter===t&&e.selector.channelType===`dm`}function Ae(e,t,n){let r;for(let i of e)X(i,t,n)&&(i.contactType===`trusted_contact`||r===void 0)&&(r=i.threshold);return r}var je=`__default__`;function Z({color:e}){return(0,G.jsx)(`span`,{"aria-hidden":`true`,className:`h-1.5 w-1.5 shrink-0 rounded-full`,style:{backgroundColor:e}})}function Me({tier:e,defaultTier:t,disabled:n,onTierChange:r,onReset:i,"aria-label":a}){let o=q(e??t??void 0),s=q(t??void 0)??null,c=Oe.map(e=>({value:e,label:J[e].label,icon:(0,G.jsx)(Z,{color:J[e].dotColor}),suffix:e===s?(0,G.jsx)(`span`,{className:`text-[color:var(--content-tertiary)]`,children:`default`}):void 0,tooltip:J[e].sublabel}));return s===null&&c.unshift({value:je,label:`Default`,icon:(0,G.jsx)(Z,{color:`transparent`}),tooltip:`follows the default level`}),(0,G.jsx)(R,{value:o??``,onChange:e=>{e===je||e===s?i():r(e)},options:c,placeholder:`Default`,disabled:n,size:`compact`,menuAlign:`end`,"aria-label":a})}function Q(e){return e.type===`dm`?`dm`:e.isPrivate?`private`:`public`}function Ne(e){return e.filter(e=>Q(e)!==`dm`)}function Pe(e,t,n){let r=t.trim().toLowerCase();return e.filter(e=>(n===null||Q(e)===n)&&(r===``||e.name.toLowerCase().includes(r))).sort((e,t)=>e.name.localeCompare(t.name))}function Fe(e){let t={public:0,private:0,dm:0};for(let n of e)t[Q(n)]+=1;return t}function Ie(e){return e.memberCount==null?null:e.memberCount===1?`1 member`:`${e.memberCount} members`}var Le=[{value:null,label:`All`},{value:`public`,label:`Public`},{value:`private`,label:`Private`}],Re={public:b,private:D},ze=100,Be=new Set;function Ve({assistantDisplayName:e,slackHandle:t,channels:n,loading:r=!1,error:i=!1,tierOverrides:a,defaultTier:o=null,accessControlsSupported:s=!0,tierOverridesLoading:c=!1,tierOverridesError:l=!1,pendingChannelIds:f=Be,onTierChange:p,onTierReset:m}){let[h,g]=(0,H.useState)(``),[_,v]=(0,H.useState)(null),y=(0,H.useMemo)(()=>Ne(n??[]),[n]),x=(0,H.useMemo)(()=>Pe(y,h,_),[y,h,_]),S=(0,H.useMemo)(()=>Fe(y),[y]),C=t??`@${e}`;return(0,G.jsxs)(`div`,{className:`flex flex-col gap-3 p-4`,children:[(0,G.jsx)(d,{as:`p`,variant:`body-small-lighter`,className:`text-[color:var(--content-tertiary)]`,children:(0,G.jsxs)(G.Fragment,{children:[`Add with`,` `,(0,G.jsxs)(`code`,{className:`text-[color:var(--content-secondary)]`,children:[`/invite `,C]}),` `,`or remove with`,` `,(0,G.jsxs)(`code`,{className:`text-[color:var(--content-secondary)]`,children:[`/remove `,C]}),` `,`in that Slack channel. Only channels `,e,` is in appear here.`]})}),r?(0,G.jsx)(d,{as:`span`,variant:`body-small-lighter`,className:`text-[color:var(--content-tertiary)]`,children:`Loading…`}):i?(0,G.jsx)(d,{as:`span`,variant:`body-small-lighter`,className:`text-[color:var(--content-negative)]`,children:`Couldn’t load channels. Try reopening this page.`}):y.length===0?(0,G.jsx)(we,{icon:(0,G.jsx)(b,{className:`h-6 w-6`}),title:`No channels yet`}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`min-w-56 flex-1`,children:(0,G.jsx)(I,{type:`search`,value:h,onChange:e=>g(e.target.value),placeholder:`Search channels`,"aria-label":`Search channels`,leftIcon:(0,G.jsx)(k,{className:`h-4 w-4`}),fullWidth:!0})}),(0,G.jsx)(`div`,{className:`flex items-center gap-2`,role:`group`,"aria-label":`Filter channels by type`,children:Le.map(({value:e,label:t})=>{let n=_===e,r=e===null?y.length:S[e];return(0,G.jsxs)(`button`,{type:`button`,"aria-pressed":n,onClick:()=>v(e),className:u(`inline-flex h-6 items-center rounded-full px-2.5 text-body-small-emphasised leading-none transition-colors`,n?`bg-[var(--content-default)] text-[var(--surface-base)]`:`bg-[var(--tag-bg-neutral)] text-[color:var(--content-secondary)] hover:text-[color:var(--content-default)]`),children:[t,` `,r]},e??`all`)})})]}),x.length===0?(0,G.jsx)(d,{as:`span`,variant:`body-small-lighter`,className:`py-4 text-center text-[color:var(--content-tertiary)]`,children:`No channels match.`}):x.length>ze?(0,G.jsx)(`div`,{className:`h-96`,children:(0,G.jsx)(N,{items:x,computeItemKey:(e,t)=>t.id,itemContent:(e,t)=>(0,G.jsx)(He,{channel:t,pending:f.has(t.id),overridesLoading:c,overridesError:l,defaultTier:o,accessControls:s,tierOverride:a?.[t.id],onTierChange:e=>p?.(t.id,e),onReset:()=>m?.(t.id)}),className:`h-full`})}):(0,G.jsx)(`div`,{className:`max-h-96 overflow-y-auto`,children:x.map(e=>(0,G.jsx)(He,{channel:e,pending:f.has(e.id),overridesLoading:c,overridesError:l,defaultTier:o,accessControls:s,tierOverride:a?.[e.id],onTierChange:t=>p?.(e.id,t),onReset:()=>m?.(e.id)},e.id))})]})]})}function He({channel:e,pending:t,overridesLoading:n,overridesError:r,defaultTier:i,accessControls:a,tierOverride:o,onTierChange:s,onReset:c}){let l=Q(e);if(l===`dm`)return null;let u=Re[l],d=Ie(e),f=`[&+&]:border-t [&+&]:border-[var(--border-base)]`;return a?(0,G.jsx)(C,{className:f,leading:(0,G.jsx)(u,{className:`h-4 w-4 text-[var(--content-tertiary)]`}),title:e.name,subtitle:d??void 0,trailing:(0,G.jsx)(`div`,{className:`w-40 sm:w-48`,children:(0,G.jsx)(Me,{tier:o,defaultTier:i,disabled:t||n||r,onTierChange:s,onReset:c,"aria-label":`Assistant Access in ${e.name}`})})}):(0,G.jsx)(C,{className:f,leading:(0,G.jsx)(u,{className:`h-4 w-4 text-[var(--content-tertiary)]`}),title:e.name,trailing:d==null?void 0:(0,G.jsx)(`span`,{className:`text-body-small-default text-[color:var(--content-tertiary)]`,children:d})})}function Ue(e){return e===`none`?`Asks before every action, even a web search.`:`Asks before anything beyond looking things up and saving files in its own workspace.`}function We({defaultTier:e}){let t=q(e??void 0)??null;return(0,G.jsx)(`div`,{className:`flex flex-col gap-2 px-4 py-3`,children:(0,G.jsx)(`ul`,{className:`grid gap-x-6 gap-y-3 sm:grid-cols-2`,children:[...Oe].reverse().map(e=>{let n=J[e];return(0,G.jsxs)(`li`,{className:`flex flex-col gap-0.5`,children:[(0,G.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,G.jsx)(Z,{color:n.dotColor}),(0,G.jsx)(d,{as:`span`,variant:`body-small-emphasised`,children:n.label}),e===t?(0,G.jsx)(d,{as:`span`,variant:`body-small-default`,className:`text-[color:var(--content-tertiary)]`,children:`· default`}):null]}),(0,G.jsx)(d,{as:`span`,variant:`body-small-lighter`,className:`text-[color:var(--content-tertiary)]`,children:Ue(e)})]},e)})})})}var Ge=[{bucket:`channels`,icon:b,title:`Channels`,description:`Public and private channels`},{bucket:`dm`,icon:O,title:`Direct messages`,description:`One-on-one DMs`}];function Ke({assistantName:e,globalDefaultTier:t,bucketTiers:n,loading:r,error:a,pendingBuckets:o,onBucketChange:s,onBucketReset:c}){return(0,G.jsxs)(f.Root,{children:[(0,G.jsx)(f.Header,{children:(0,G.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[`Default access`,(0,G.jsxs)(d,{as:`p`,variant:`body-small-lighter`,className:`text-[color:var(--content-tertiary)]`,children:[`How much `,e,` does on its own, by conversation type. Individual channels can override this below, and`,` `,(0,G.jsx)(i,{to:ae.settings.privacy,className:`text-[var(--content-link)] underline hover:text-[var(--content-link-hover)]`,children:`Trust Rules`}),` `,`fine-tune when it asks.`]})]})}),(0,G.jsx)(f.Body,{className:`py-1`,children:Ge.map(({bucket:e,icon:i,title:l,description:u})=>{let d=e===`dm`?n?.channels??t:t;return(0,G.jsx)(C,{className:`[&+&]:border-t [&+&]:border-[var(--border-base)]`,leading:(0,G.jsx)(i,{className:`h-4 w-4 text-[var(--content-tertiary)]`}),title:l,subtitle:u,trailing:(0,G.jsx)(`div`,{className:`w-40 sm:w-48`,children:(0,G.jsx)(Me,{tier:n?.[e],defaultTier:d,disabled:r||a||o.has(e),onTierChange:t=>s(e,t),onReset:()=>c(e),"aria-label":`Default Assistant Access for ${l}`})})},e)})}),(0,G.jsx)(f.Footer,{className:`p-0`,children:(0,G.jsx)(We,{defaultTier:t})})]})}var qe=`0.11.0`;function Je(){return ie(qe)}var Ye=new Set([404,501]);function Xe(e){let t=fe(e);return t!==void 0&&Ye.has(t)}function Ze(e,t,n){return Y.map(r=>({selector:{scope:`channel`,adapter:e,channelExternalId:t},contactType:r,threshold:n}))}function Qe(e,t,n){return e.selector.scope===`channel`&&e.selector.adapter===t&&e.selector.channelExternalId===n}function $e(e,t){return t===`channels`?{scope:`adapter`,adapter:e}:{scope:`channel_type`,adapter:e,channelType:`dm`}}function et(e,t,n){let r=$e(e,t);return Y.map(e=>({selector:r,contactType:e,threshold:n}))}function tt({assistantId:e,adapter:t}){let n=o(),r=Je()&&!!e,i=(0,H.useMemo)(()=>({path:{assistant_id:e}}),[e]),a=(0,H.useMemo)(()=>p(i),[i]),l=(0,H.useMemo)(()=>[`channel-permission-resolve`,e,t],[e,t]),u=s({...g(i),enabled:r}),d=u.data?.cells,f=(0,H.useMemo)(()=>d?ke(d,t):void 0,[d,t]),m=(0,H.useMemo)(()=>d?{channels:Ae(d,t,`channels`),dm:Ae(d,t,`dm`)}:void 0,[d,t]),h=s({queryKey:l,queryFn:async()=>{let{data:e}=await ce({...i,body:{adapter:t,contactType:`trusted_contact`},throwOnError:!0});return e.resolved?.threshold??null},enabled:r,retry:!1,staleTime:3e4}),_=(e,t)=>{let r=n.getQueryData(a),i=Date.now();return n.setQueryData(a,n=>({cells:[...(n?.cells??[]).filter(t=>!e(t)),...t.map(e=>({...e,updatedAt:i}))]})),{previous:r}},v=c({mutationFn:async({channelExternalId:e,tier:n})=>{await Promise.all(Ze(t,e,n).map(e=>se({...i,body:e,throwOnError:!0})))},onMutate:({channelExternalId:e,tier:n})=>_(n=>Qe(n,t,e),Ze(t,e,n)),onError:(e,t,r)=>{n.setQueryData(a,r?.previous),V(`Failed to save channel settings`)(e)},onSettled:()=>n.invalidateQueries({queryKey:a})}),y=c({mutationFn:async({channelExternalId:e})=>{await Promise.all(Y.map(n=>z({...i,body:{selector:{scope:`channel`,adapter:t,channelExternalId:e},contactType:n},throwOnError:!0})))},onMutate:({channelExternalId:e})=>_(n=>Qe(n,t,e),[]),onError:(e,t,r)=>{n.setQueryData(a,r?.previous),V(`Failed to reset channel settings`)(e)},onSettled:()=>n.invalidateQueries({queryKey:a})}),b=c({mutationFn:async({bucket:e,tier:n})=>{await Promise.all(et(t,e,n).map(e=>se({...i,body:e,throwOnError:!0})))},onMutate:({bucket:e,tier:n})=>_(n=>X(n,t,e),et(t,e,n)),onError:(e,t,r)=>{n.setQueryData(a,r?.previous),V(`Failed to save the default`)(e)},onSettled:(e,t,{bucket:r})=>{n.invalidateQueries({queryKey:a}),r===`channels`&&n.invalidateQueries({queryKey:l})}}),x=c({mutationFn:async({bucket:e})=>{let n=$e(t,e);await Promise.all(Y.map(e=>z({...i,body:{selector:n,contactType:e},throwOnError:!0})))},onMutate:({bucket:e})=>_(n=>X(n,t,e),[]),onError:(e,t,r)=>{n.setQueryData(a,r?.previous),V(`Failed to reset the default`)(e)},onSettled:(e,t,{bucket:r})=>{n.invalidateQueries({queryKey:a}),r===`channels`&&n.invalidateQueries({queryKey:l})}}),S=(0,H.useMemo)(()=>{let e=new Set;return v.isPending&&v.variables&&e.add(v.variables.channelExternalId),y.isPending&&y.variables&&e.add(y.variables.channelExternalId),e},[v.isPending,v.variables,y.isPending,y.variables]),C=(0,H.useMemo)(()=>{let e=new Set;return b.isPending&&b.variables&&e.add(b.variables.bucket),x.isPending&&x.variables&&e.add(x.variables.bucket),e},[b.isPending,b.variables,x.isPending,x.variables]);return!r||u.isError&&Xe(u.error)?{supported:!1,tierOverrides:void 0,defaultCellTier:void 0,bucketTiers:void 0,pendingChannelIds:new Set,pendingBuckets:new Set,isLoading:!1,isError:!1,onTierChange:void 0,onTierReset:void 0,onBucketChange:void 0,onBucketReset:void 0}:{supported:!0,tierOverrides:f,defaultCellTier:h.data,bucketTiers:m,pendingChannelIds:S,pendingBuckets:C,isLoading:u.isPending,isError:u.isError,onTierChange:(e,t)=>v.mutate({channelExternalId:e,tier:t}),onTierReset:e=>{f?.[e]!==void 0&&y.mutate({channelExternalId:e})},onBucketChange:(e,t)=>b.mutate({bucket:e,tier:t}),onBucketReset:e=>{m?.[e]!==void 0&&x.mutate({bucket:e})}}}function nt({assistantId:e,assistantDisplayName:t,slackHandle:n}){let r=s({...v(e),enabled:!!e,select:e=>e.channels}),i=tt({assistantId:e,adapter:`slack`}),a=s({queryKey:[`thresholds`,e],queryFn:()=>w(e),enabled:i.supported&&!!e,staleTime:3e4}).data?.interactive??null,o=i.defaultCellTier===void 0?null:i.defaultCellTier??a,c=(0,G.jsx)(Ve,{assistantDisplayName:t,slackHandle:n,accessControlsSupported:i.supported,defaultTier:o,channels:r.data,loading:r.isPending,error:r.isError,tierOverrides:i.tierOverrides,tierOverridesLoading:i.isLoading,tierOverridesError:i.isError,pendingChannelIds:i.pendingChannelIds,onTierChange:i.onTierChange,onTierReset:i.onTierReset});return!i.supported||!i.onBucketChange||!i.onBucketReset?(0,G.jsx)(f.Root,{noPadding:!0,clipContents:!0,children:c}):(0,G.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[i.isError?(0,G.jsx)(A,{tone:`error`,children:`Couldn’t load access settings. These controls stay disabled until they load. Try reopening this page.`}):null,(0,G.jsx)(Ke,{assistantName:t,globalDefaultTier:a,bucketTiers:i.bucketTiers,loading:i.isLoading,error:i.isError,pendingBuckets:i.pendingBuckets,onBucketChange:i.onBucketChange,onBucketReset:i.onBucketReset}),(0,G.jsx)(f.Root,{noPadding:!0,clipContents:!0,children:(0,G.jsx)(P.Root,{type:`single`,collapsible:!0,children:(0,G.jsxs)(P.Item,{value:`per-channel-overrides`,children:[(0,G.jsxs)(P.Trigger,{className:`group justify-between gap-2 px-4 py-3`,children:[(0,G.jsx)(d,{as:`span`,variant:`body-small-emphasised`,children:`Per-channel overrides`}),(0,G.jsx)(x,{"aria-hidden":`true`,className:`h-4 w-4 shrink-0 text-[var(--content-tertiary)] transition-transform group-data-[state=open]:rotate-180`})]}),(0,G.jsx)(P.Content,{className:`border-[var(--border-base)] data-[state=open]:border-t`,children:c})]})})})]})}function rt({slackHandle:e,disconnectPending:t=!1,onDisconnect:r,children:i}){return(0,G.jsxs)(f.Root,{children:[(0,G.jsx)(f.Header,{children:(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`img`,{src:B(`/images/integrations/slack.svg`),alt:``,className:`size-8 rounded-lg bg-[var(--surface-sunken)] p-1`}),e?(0,G.jsx)(d,{as:`span`,variant:`body-medium-default`,children:e}):null,(0,G.jsx)(F,{tone:`positive`,leftIcon:(0,G.jsx)(S,{}),children:`Connected`}),(0,G.jsx)(`div`,{className:`ml-auto`,children:(0,G.jsx)(n,{type:`button`,variant:`ghost`,onClick:r,disabled:!r||t,children:t?`Disconnecting…`:`Disconnect`})})]})}),(0,G.jsx)(f.Body,{children:i})]})}function it({threadMode:e,threadModePending:t=!1,onThreadModeChange:n}){return(0,G.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,G.jsx)(d,{as:`span`,variant:`body-small-emphasised`,className:`text-[color:var(--content-secondary)]`,children:`Thread Behavior`}),(0,G.jsxs)(M,{value:e??`mention_then_thread`,onValueChange:e=>n?.(e),disabled:t||!n,"aria-label":`Slack thread behavior`,children:[(0,G.jsx)(j,{value:`mention_only`,label:`Mentions only`,helperText:`Bot only responds when @mentioned.`}),(0,G.jsx)(j,{value:`mention_then_thread`,label:`Follow threads after first mention`,helperText:`After an @mention in a thread, bot listens to all subsequent replies.`})]})]})}function at({onSave:e}){let[t,r]=(0,H.useState)(``),[i,a]=(0,H.useState)(!1),[o,s]=(0,H.useState)(null),c=t.trim().length>0&&!i;return(0,G.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,G.jsx)(I,{label:`Bot Token`,type:`password`,value:t,onChange:e=>r(e.target.value),placeholder:`Paste your Telegram bot token`,disabled:i,fullWidth:!0}),o?(0,G.jsx)(`p`,{className:`text-label-small`,style:{color:`var(--content-negative)`},children:o}):null,(0,G.jsx)(`div`,{children:(0,G.jsx)(n,{type:`button`,onClick:async()=>{if(!(!e||!c)){a(!0),s(null);try{await e(t.trim()),r(``)}catch(e){s(e instanceof Error?e.message:`Failed to save`)}finally{a(!1)}}},disabled:!c,children:i?`Saving…`:`Save`})})]})}function ot({onSave:e}){let[t,r]=(0,H.useState)(``),[i,a]=(0,H.useState)(``),[o,s]=(0,H.useState)(!1),[c,l]=(0,H.useState)(null),u=t.trim().length>0&&i.trim().length>0&&!o;return(0,G.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,G.jsx)(I,{label:`Account SID`,type:`text`,value:t,onChange:e=>r(e.target.value),placeholder:`ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx`,disabled:o,fullWidth:!0}),(0,G.jsx)(I,{label:`Auth Token`,type:`password`,value:i,onChange:e=>a(e.target.value),placeholder:`Twilio auth token`,disabled:o,fullWidth:!0}),c?(0,G.jsx)(`p`,{className:`text-label-small`,style:{color:`var(--content-negative)`},children:c}):null,(0,G.jsx)(`div`,{children:(0,G.jsx)(n,{type:`button`,onClick:async()=>{if(!(!e||!u)){s(!0),l(null);try{await e(t.trim(),i.trim()),r(``),a(``)}catch(e){l(e instanceof Error?e.message:`Failed to save`)}finally{s(!1)}}},disabled:!u,children:o?`Saving…`:`Save`})})]})}function st({channel:e,assistantId:t,assistantName:r,assistantDisplayName:i,pending:a,initialManualEntry:o=!1,onSetup:s,onDisconnect:c,onSaveTelegramToken:l,onSaveSlackConfig:u,slackSaveStatus:d,slackSaveError:f,slackThreadMode:p,slackThreadModePending:m=!1,onSlackThreadModeChange:g,onSaveTwilioCredentials:_,policy:v,policySaving:b=!1,policyLoading:x=!1,policyError:S=!1,onPolicyChange:C}){let w=e.status===`ready`,[T,E]=(0,H.useState)(o);if(e.key===`slack`)return(0,G.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[w?(0,G.jsx)(rt,{slackHandle:e.address,disconnectPending:a,onDisconnect:c,children:(0,G.jsx)(it,{threadMode:p,threadModePending:m,onThreadModeChange:g})}):(0,G.jsx)(De,{children:(0,G.jsx)(de,{assistantName:r,onSave:u,saveStatus:d,saveError:f})}),w?(0,G.jsx)(nt,{assistantId:t,assistantDisplayName:i,slackHandle:e.address}):null]});let D=W[e.key];return(0,G.jsx)(`div`,{className:`flex flex-col gap-4`,children:w?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Ee,{address:e.address,pending:a,onDisconnect:c}),D.hasTrustFloorControl&&C?(0,G.jsx)(Te,{assistantDisplayName:i,policy:v,saving:b,loading:x,error:S,onChange:C}):null]}):T?e.key===`telegram`?(0,G.jsx)(at,{onSave:l}):(0,G.jsx)(ot,{onSave:_}):(0,G.jsx)(we,{icon:(0,G.jsx)(y,{channelId:e.key,className:`h-6 w-6`}),title:`${h(e.key)} isn't connected`,description:D.disconnectedPitch?.(i),action:(0,G.jsxs)(`div`,{className:`flex flex-col items-center gap-1`,children:[(0,G.jsx)(n,{type:`button`,variant:`outlined`,onClick:s,disabled:!s||a,children:a?`Opening…`:`Set up`}),(0,G.jsx)(n,{type:`button`,variant:`link`,onClick:()=>E(!0),children:`or connect manually`})]})})})}var $={no_one:{title:`Block all messages?`,message:`Setting this channel to “No one” hard-denies every inbound message, including messages from you.
|
|
2
|
-
|
|
3
|
-
You can reverse this at any time.`,confirmLabel:`Block all`,destructive:!0},any_contact:{title:`Allow any contact?`,message:`“Any contact” admits every matched contact in this channel (including pending, unverified ones), not just your verified contacts.
|
|
4
|
-
|
|
5
|
-
Best for channels consisting of only people you already trust.`,confirmLabel:`Allow any contact`},strangers:{title:`Allow strangers?`,message:`Are you sure you want to allow strangers to contact your assistant through this channel?
|
|
6
|
-
|
|
7
|
-
Doing so could cost you money and open you up to security and privacy vulnerabilities.
|
|
8
|
-
|
|
9
|
-
Enable with extreme caution.`,confirmLabel:`Allow strangers`,destructive:!0}};function ct({assistantId:e,assistantName:t,channels:n,pendingChannelKey:r=null,slackThreadMode:i,slackThreadModePending:a=!1,channelPolicies:o,policySavingKey:s=null,policiesLoading:c=!1,policiesError:l=!1,onChannelPolicyChange:u,onSetup:d,onDisconnect:f,onSaveTelegramToken:p,onSaveSlackConfig:m,slackSaveStatus:h,slackSaveError:g,onSlackThreadModeChange:v,onSaveTwilioCredentials:y,initialChannel:b=null}){let x=U.use.selectedAdapter(),S=U.use.selectAdapter(),[C,w]=(0,H.useState)(null),[T,E]=(0,H.useState)(null),[D,O]=(0,H.useState)(!1),[k]=(0,H.useState)(b);(0,H.useEffect)(()=>{k&&S(k)},[k,S]);let A=_(t),j=C?W[C]:null,M=T?$[T.policy]:null,N=(e,t)=>{if($[t]){E({channelKey:e,policy:t});return}u?.(e,t)},P=e=>{S(e),O(!1)},F=n.find(e=>e.key===x)??n[0];if(!F)return null;let I=(0,G.jsx)(st,{channel:F,assistantId:e,assistantName:t,assistantDisplayName:A,pending:r===F.key,initialManualEntry:k===F.key,onSetup:d?()=>d(F.key):void 0,onDisconnect:f?()=>w(F.key):void 0,onSaveTelegramToken:p,onSaveSlackConfig:m,slackSaveStatus:h,slackSaveError:g,slackThreadMode:i,slackThreadModePending:a,onSlackThreadModeChange:v,onSaveTwilioCredentials:y,policy:o?.[F.key],policySaving:s===F.key,policyLoading:c,policyError:l,onPolicyChange:u?e=>N(F.key,e):void 0},F.key);return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-4 overflow-hidden sm:flex-row sm:gap-6`,children:[(0,G.jsx)(`div`,{className:`flex items-center sm:hidden`,children:(0,G.jsx)(me,{onClick:()=>O(!0)})}),(0,G.jsx)(he,{open:D,onClose:()=>O(!1),title:`Channels`,children:(0,G.jsx)(K,{channels:n,selectedKey:F.key,onSelect:P})}),(0,G.jsx)(`aside`,{className:`hidden min-h-0 w-[320px] shrink-0 overflow-y-auto self-stretch sm:block`,children:(0,G.jsx)(K,{channels:n,selectedKey:F.key,onSelect:P})}),(0,G.jsx)(`section`,{className:`min-h-0 min-w-0 flex-1 overflow-y-auto`,children:F.key===`slack`?I:(0,G.jsx)(pe,{children:I})})]}),(0,G.jsx)(L,{open:C!==null,title:`Disconnect ${j?.label??``}?`,message:j?.disconnectMessage??``,confirmLabel:`Disconnect`,destructive:!0,onConfirm:()=>{C&&f&&f(C),w(null)},onCancel:()=>w(null)}),(0,G.jsx)(L,{open:T!==null,title:M?.title??``,message:M?.message??``,confirmLabel:M?.confirmLabel??`Confirm`,destructive:M?.destructive??!1,onConfirm:()=>{T&&u?.(T.channelKey,T.policy),E(null)},onCancel:()=>E(null)})]})}function lt(){let[e,t]=r(),n=e.get(`setup`),i=n&&m(n)?n:null;return(0,H.useEffect)(()=>{i&&t(e=>(e.delete(`setup`),e),{replace:!0})},[i,t]),i}function ut({assistantId:e,onStartSetupConversation:t}){let n=le.use.a2aChannel(),r=re.use.name(),i=lt(),a=Se(e);return(0,G.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-6 overflow-hidden`,children:[(0,G.jsx)(ct,{assistantId:e,assistantName:_(r),initialChannel:i,...ve({assistantId:e,onStartSetupConversation:t})}),n?(0,G.jsx)(be,{onClick:a.open}):null,(0,G.jsx)(_e,{open:a.isOpen,assistantId:e,onClose:a.close})]})}function dt(){let e=a(),t=ue();return(0,G.jsx)(ut,{assistantId:t,onStartSetupConversation:t=>{oe(e,{prompt:t})}},t)}export{dt as ChannelsPageRoute};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/native-file-BvwfoU6A.js","assets/chunk-jRWAZmH_.js","assets/preload-helper-Cv2QeVDK.js","assets/is-electron-7N7iyz1y.js","assets/dist-CFSiz2ry2.js","assets/pdf-8fO1Wz7e.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./capture-error-FWzaVb8P.js";import{t as n}from"./react-BFJW0bSv.js";import{F as r,t as i}from"./button-Dy5001j6.js";import{t as a}from"./preload-helper-Cv2QeVDK.js";import{t as o}from"./useQuery-Bz-fbQ-m.js";import{t as s}from"./jsx-runtime-D3ZM-ToX.js";import{t as c}from"./typography-DEI9Ra9z.js";import{t as l}from"./check-sC49_hjU.js";import{t as u}from"./chevron-left-CytMddTB.js";import{t as d}from"./chevron-right-HU6H84S0.js";import{o as f}from"./list-row-BYrmPIC4.js";import{t as p}from"./download-CywcQLB2.js";import{t as m}from"./eye-off-fuOP4Lij.js";import{t as h}from"./eye-DTyDWiqu.js";import{n as g,r as _}from"./workspace-tree-query-CqcOBNKw.js";import{t as v}from"./key-round-CSc3w5ka.js";import{t as y}from"./loader-circle-BzJ2kz3F.js";import{t as b}from"./x-DuBvjmAE.js";import{_ as x,c as S,s as C}from"./src-BAS7a2RG.js";import{n as w}from"./toast-DR7D7Uma.js";import{n as T,t as E}from"./file-markdown-DBLxtb0M.js";import{n as D}from"./resolved-assistants-store-8HQDfxZh.js";import{dt as ee,l as O}from"./sdk.gen-BySz4QYj.js";import{t as k}from"./dist-CFSiz2ry2.js";import{r as A}from"./use-is-org-ready-zouQ5CN4.js";import{n as j}from"./browser-Bses4IN3.js";import{t as M}from"./haptics-rJpeBta-.js";import{t as te}from"./edge-swipe-arbiter-store-D9XJTxJJ.js";import{t as N}from"./copy-to-clipboard-DaTa8Tbi.js";import{t as ne}from"./native-anchor-BiuEQHcy.js";var P=e(n(),1),re=e(r(),1),F=s(),ie=`width=500,height=600`;function I(e){if(!e)return null;let t;try{let n=typeof window>`u`?`http://localhost`:window.location.origin;t=new URL(e,n)}catch{return null}return t.protocol!==`https:`&&t.protocol!==`http:`?null:t}function L(e){let t=I(e);if(!t)return!1;let n=t.pathname.toLowerCase();return t.searchParams.get(`response_type`)===`code`&&t.searchParams.has(`client_id`)&&t.searchParams.has(`redirect_uri`)||t.searchParams.has(`client_id`)&&t.searchParams.has(`redirect_uri`)&&/oauth|authorize|auth/.test(n)}function ae(e){if(typeof window>`u`)return null;let t=I(e);return!t||t.origin!==window.location.origin?null:`${t.pathname}${t.search}${t.hash}`}function R(e){return I(e)?.href??null}function z(e){if(!L(e))return!1;if(k.isNativePlatform()){let t=R(e);return t?(j(t),!0):!1}let t=window.open(e,`_blank`,ie);return t===null?!1:(t.focus(),!0)}function B(e){return z(e)}function V(e){if(z(e))return!0;let t=window.open(e,`_blank`);return t===null?!1:(t.focus(),!0)}function oe(e,t){let n=ae(e);if(n)return t.push(n),{kind:`routed`};let r=R(e);return r?t.isNative?(j(r),{kind:`opened`}):V(r)?{kind:`opened`}:{kind:`blocked`,url:r}:{kind:`invalid`}}async function H(e,t){if(!t||t.startsWith(`rehydrated:`))return null;try{let{data:n,error:r}=await O({path:{assistant_id:e,id:t},parseAs:`blob`,throwOnError:!1});return!r&&n instanceof Blob?n:null}catch{return null}}async function se(e,t){let{saveFile:n}=await a(async()=>{let{saveFile:e}=await import(`./native-file-BvwfoU6A.js`).then(e=>e.t);return{saveFile:e}},__vite__mapDeps([0,1,2,3,4]));if(t){let r=await H(t,e.id);if(r){await n(r,e.filename);return}}e.previewUrl&&await n(e.previewUrl,e.filename)}function U(e){if(!Number.isFinite(e)||e<=0)return`0 B`;let t=[`B`,`KB`,`MB`,`GB`],n=e,r=0;for(;n>=1024&&r<t.length-1;)n/=1024,r+=1;return`${n>=10||r===0?Math.round(n).toString():n.toFixed(1)} ${t[r]}`}function ce(e,t){let n=(e||``).toLowerCase(),r=t.split(`.`).pop()?.toLowerCase()??``;return n.startsWith(`image/`)?`image`:n.startsWith(`video/`)?`video`:n.startsWith(`audio/`)?`audio`:n===`application/pdf`||r===`pdf`?`pdf`:n===`application/zip`||n===`application/x-tar`||n===`application/gzip`||[`zip`,`tar`,`gz`,`tgz`,`rar`,`7z`].includes(r)?`archive`:n===`text/csv`||n===`application/vnd.ms-excel`||n===`application/vnd.openxmlformats-officedocument.spreadsheetml.sheet`||[`csv`,`xlsx`,`xls`,`numbers`].includes(r)?`spreadsheet`:`ts.tsx.js.jsx.py.rb.go.rs.java.kt.swift.c.cc.cpp.h.hpp.sh.bash.zsh.html.css.scss.json.yaml.yml.toml.xml`.split(`.`).includes(r)?`code`:n===`application/msword`||n===`application/vnd.openxmlformats-officedocument.wordprocessingml.document`||[`doc`,`docx`,`pages`].includes(r)?`document`:n.startsWith(`text/`)||[`txt`,`md`,`rtf`].includes(r)?`text`:`file`}function W(e){let t=e.replace(/\s/g,``),n=t.endsWith(`==`)?2:+!!t.endsWith(`=`);return Math.max(0,Math.floor(t.length*3/4)-n)}function G(e){let t=e.match(/;base64,(.*)$/);if(!t?.[1])return null;let n=atob(t[1]),r=new Uint8Array(n.length);for(let e=0;e<n.length;e++)r[e]=n.charCodeAt(e);return r}function le(e,t=28){if(e.length<=t)return e;let n=Math.max(4,Math.floor((t-1)/2));return`${e.slice(0,n)}…${e.slice(e.length-n)}`}var ue=1.5,de=20,fe=!1;async function pe(){let e=await a(()=>import(`./pdf-8fO1Wz7e.js`),__vite__mapDeps([5,2]));return fe||=(e.GlobalWorkerOptions.workerSrc=`https://cdn.jsdelivr.net/npm/pdfjs-dist@${e.version}/legacy/build/pdf.worker.min.mjs`,!0),e}function me({url:e,className:t}){let n=(0,P.useRef)(null),[r,i]=(0,P.useState)(null),[a,o]=(0,P.useState)(0),[s,c]=(0,P.useState)(!0),[l,u]=(0,P.useState)(null),d=(0,P.useRef)(new Map),f=(0,P.useRef)(new Set);(0,P.useEffect)(()=>{let t=!1;async function n(){c(!0),u(null),i(null),o(0),f.current.clear();try{let n=await pe(),r;if(e.startsWith(`data:`)){let t=G(e);r=t?{data:t}:e}else r=e;let a=await n.getDocument(r).promise;if(t){a.destroy();return}i(a),o(Math.min(a.numPages,de))}catch{t||u(`Failed to load PDF.`)}finally{t||c(!1)}}return n(),()=>{t=!0}},[e]),(0,P.useEffect)(()=>()=>{r&&r.destroy()},[r]);let p=(0,P.useCallback)(async e=>{if(!r||f.current.has(e))return;let t=d.current.get(e);if(t){f.current.add(e);try{let n=await r.getPage(e),i=n.getViewport({scale:ue});t.width=i.width,t.height=i.height,await n.render({canvas:t,viewport:i}).promise}catch{f.current.delete(e)}}},[r]);(0,P.useEffect)(()=>{if(!r||a===0)return;let e=new IntersectionObserver(e=>{for(let t of e){if(!t.isIntersecting)continue;let e=Number(t.target.dataset.page);e&&p(e)}},{root:n.current,rootMargin:`200px`});return d.current.forEach(t=>e.observe(t)),()=>e.disconnect()},[r,a,p]);let m=(0,P.useCallback)(e=>t=>{t?d.current.set(e,t):d.current.delete(e)},[]);return s?(0,F.jsx)(`div`,{className:`flex items-center justify-center py-24`,children:(0,F.jsx)(y,{className:`h-8 w-8 animate-spin text-white/70`})}):l?(0,F.jsx)(`div`,{className:`w-full max-w-sm rounded-lg border border-white/15 bg-white/[0.08] p-8 text-center`,children:(0,F.jsx)(`p`,{className:`text-body-medium-lighter text-white/80`,children:l})}):(0,F.jsx)(`div`,{ref:n,className:`flex max-h-[80vh] flex-col items-center gap-2 overflow-y-auto rounded ${t??``}`,children:Array.from({length:a},(e,t)=>(0,F.jsx)(`canvas`,{ref:m(t+1),"data-page":t+1,className:`w-[90vw] max-w-[800px]`,style:{height:`auto`}},t+1))})}function K({message:e,filename:t,onDownload:n,downloadDisabled:r=!1}){return(0,F.jsxs)(`div`,{className:`w-full max-w-sm rounded-lg border border-white/15 bg-white/[0.08] p-8 text-center`,children:[(0,F.jsx)(`p`,{className:`text-body-medium-lighter text-white/80`,children:e}),(0,F.jsx)(i,{variant:`ghost`,leftIcon:(0,F.jsx)(p,{}),onClick:n,disabled:r,"aria-label":`Download ${t}`,className:`mt-4 text-white/70 hover:bg-white/10 hover:text-white max-md:bg-transparent`,tintColor:`currentColor`,children:`Download`})]})}var q=class extends Error{};async function he(e,t,n){if(t>204800)throw new q;if(e.startsWith(`data:`)){let t=G(e);if(!t)throw Error(`Malformed data URI`);return new TextDecoder().decode(t)}let r=await fetch(e,{signal:n});if(!r.ok)throw Error(`Failed to load file: ${r.status}`);let i=await r.blob();if(i.size>204800)throw new q;return i.text()}function ge({url:e,filename:n,mimeType:r,sizeBytes:i}){let[o,s]=(0,P.useState)({status:`loading`});return(0,P.useEffect)(()=>{let n=new AbortController;return s({status:`loading`}),he(e,i,n.signal).then(e=>{n.signal.aborted||s({status:`ready`,text:e})}).catch(e=>{if(n.signal.aborted)return;let r=e instanceof q;r||t(e,{context:`attachment-text-preview`,bestEffort:!0}),s({status:`error`,tooLarge:r})}),()=>n.abort()},[e,i]),o.status===`loading`?(0,F.jsx)(`div`,{className:`flex items-center justify-center py-24`,children:(0,F.jsx)(y,{className:`h-8 w-8 animate-spin text-white/70`})}):o.status===`error`?(0,F.jsx)(K,{message:o.tooLarge?`File too large to preview inline.`:`Failed to load preview.`,filename:n,onDownload:async()=>{let{saveFile:t}=await a(async()=>{let{saveFile:e}=await import(`./native-file-BvwfoU6A.js`).then(e=>e.t);return{saveFile:e}},__vite__mapDeps([0,1,2,3,4]));await t(e,n)}}):(0,F.jsx)(`div`,{className:`max-h-[80vh] w-[min(90vw,800px)] overflow-auto rounded-lg p-6`,style:{backgroundColor:`var(--surface-overlay)`,color:`var(--content-default)`},children:(0,F.jsx)(_e,{text:o.text,filename:n,mimeType:r})})}function _e({text:e,filename:t,mimeType:n}){return T(t,n)?(0,F.jsx)(E,{content:e}):(0,F.jsx)(`pre`,{className:`whitespace-pre-wrap break-words font-mono text-body-small-default`,children:e})}var J=60,ve=.8,ye=8,be=.35;function xe({enabled:e,onPrev:t,onNext:n}){let[r,i]=(0,P.useState)(0),[a,o]=(0,P.useState)(!1),s=(0,P.useRef)(null),c=(0,P.useCallback)(()=>{s.current=null,i(0),o(!1)},[]);return{dragOffset:r,isDragging:a,onTouchStart:(0,P.useCallback)(t=>{if(!e)return;if(t.touches.length!==1){c();return}let n=t.touches[0];s.current={touchId:n.identifier,startX:n.clientX,startY:n.clientY,axis:`undecided`,lastDx:0}},[e,c]),onTouchMove:(0,P.useCallback)(e=>{let t=s.current;if(!t)return;if(e.touches.length!==1){c();return}let n=e.touches[0];if(n.identifier!==t.touchId)return;let r=n.clientX-t.startX,a=n.clientY-t.startY;if(t.lastDx=r,t.axis===`undecided`){if(Math.abs(r)<ye&&Math.abs(a)<ye)return;if(Math.abs(a)>Math.abs(r)*ve){s.current=null;return}t.axis=`horizontal`,o(!0)}if(t.axis!==`horizontal`)return;if(Math.abs(r)<J&&Math.abs(a)>Math.abs(r)*ve){c();return}let l=Math.sign(r),u=Math.abs(r);i(l*(u<=J?u:J+(u-J)*be))},[c]),onTouchEnd:(0,P.useCallback)(e=>{let r=s.current;if(!r||r.axis!==`horizontal`){c();return}if(e.touches.length>0){c();return}let i=Array.from(e.changedTouches).find(e=>e.identifier===r.touchId),a=i?i.clientX-r.startX:r.lastDx;a<=-J?(M.light(),n()):a>=J&&(M.light(),t()),c()},[n,t,c]),onTouchCancel:c}}var Se=new Set([`ts`,`tsx`,`js`,`jsx`,`py`,`json`,`md`,`sh`,`bash`,`html`,`css`,`yaml`,`yml`,`txt`]),Ce=new Set([`application/json`,`application/javascript`,`application/xml`]),we=e=>{let t=e.lastIndexOf(`.`);return t===-1||t===e.length-1?``:e.slice(t+1).toLowerCase()},Y=({open:e,onClose:t,attachment:n,assistantId:r,siblingAttachments:s,onNavigate:l})=>{let f=(0,P.useRef)(null);(0,P.useEffect)(()=>{e&&f.current?.focus()},[e]);let m=te.use.registerBackOwner(),h=te.use.unregisterBackOwner();(0,P.useEffect)(()=>{if(e)return m(),()=>h()},[e,m,h]);let g=!n.previewUrl&&n.id.startsWith(`rehydrated:`),v=e&&!n.previewUrl&&!!r&&!!n.id&&!g,{data:x,isError:S}=o({queryKey:[`attachmentContent`,r,n.id],queryFn:async()=>{let e=await H(r,n.id);if(!e)throw Error(`Failed to load file`);return e},enabled:v,staleTime:1/0,retry:!1}),[C,w]=(0,P.useState)(null);(0,P.useEffect)(()=>{if(!x){w(null);return}let e=URL.createObjectURL(x);return w(e),()=>{URL.revokeObjectURL(e),w(null)}},[x]);let T=n.previewUrl??C,[E,D]=(0,P.useState)(null),ee=v&&!C&&!S,O=g?`Preview unavailable — file content was not preserved in chat history.`:S?`Failed to load preview.`:null,k=(0,P.useMemo)(()=>!s||s.length<=1?-1:s.findIndex(e=>e.id===n.id),[s,n.id]),A=k!==-1&&s!=null&&s.length>1,j=(0,P.useCallback)(()=>{!A||!s||!l||l(s[(k-1+s.length)%s.length])},[A,s,k,l]),M=(0,P.useCallback)(()=>{!A||!s||!l||l(s[(k+1)%s.length])},[A,s,k,l]),{dragOffset:N,isDragging:ne,onTouchStart:ie,onTouchMove:I,onTouchEnd:L,onTouchCancel:ae}=xe({enabled:A,onPrev:j,onNext:M}),R=(0,P.useCallback)(e=>{e.key===`Escape`?(e.preventDefault(),t()):e.key===`ArrowLeft`&&A?(e.preventDefault(),j()):e.key===`ArrowRight`&&A&&(e.preventDefault(),M())},[t,j,M,A]),z=(0,P.useCallback)(e=>{e.target===f.current&&t()},[t]),B=(0,P.useCallback)(async()=>{if(!T)return;let{saveFile:e}=await a(async()=>{let{saveFile:e}=await import(`./native-file-BvwfoU6A.js`).then(e=>e.t);return{saveFile:e}},__vite__mapDeps([0,1,2,3,4]));await e(T,n.filename)},[T,n.filename]);if(!e)return null;let V=n.mimeType.toLowerCase(),oe=V.startsWith(`image/`),se=V.startsWith(`video/`),ce=V===`application/pdf`||V===`application/octet-stream`&&n.filename.toLowerCase().endsWith(`.pdf`),W=we(n.filename),G=V.startsWith(`text/`)||Ce.has(V)||Se.has(W);return(0,re.createPortal)((0,F.jsxs)(`div`,{ref:f,role:`dialog`,"aria-modal":`true`,"aria-label":`Preview of ${n.filename}`,tabIndex:-1,className:`fixed inset-0 z-50 flex flex-col items-center justify-center bg-black/80 outline-none [-webkit-app-region:no-drag]`,style:{paddingTop:`var(--safe-area-inset-top, env(safe-area-inset-top, 0px))`,paddingBottom:`var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px))`,paddingLeft:`var(--safe-area-inset-left, env(safe-area-inset-left, 0px))`,paddingRight:`var(--safe-area-inset-right, env(safe-area-inset-right, 0px))`},onKeyDown:R,onClick:z,children:[(0,F.jsxs)(`div`,{className:`absolute inset-x-0 top-0 z-10 flex items-center gap-3 px-4`,style:{paddingTop:`calc(var(--safe-area-inset-top, env(safe-area-inset-top, 0px)) + 1rem)`},children:[(0,F.jsx)(c,{variant:`body-small-default`,className:`w-11 shrink-0 truncate text-white/50`,children:U(n.sizeBytes)}),(0,F.jsx)(c,{as:`div`,variant:`body-medium-lighter`,className:`min-w-0 flex-1 truncate text-center text-white/90`,children:n.filename}),(0,F.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[(0,F.jsx)(i,{variant:`ghost`,iconOnly:(0,F.jsx)(p,{}),expandOnMobile:!1,onClick:B,disabled:!T,"aria-label":`Download ${n.filename}`,className:`h-11 w-11 rounded-full bg-white/10 text-white/70 hover:bg-white/20 hover:text-white`,tintColor:`currentColor`}),(0,F.jsx)(i,{variant:`ghost`,iconOnly:(0,F.jsx)(b,{}),expandOnMobile:!1,onClick:t,"aria-label":`Close preview`,className:`h-11 w-11 rounded-full bg-white/10 text-white/70 hover:bg-white/20 hover:text-white`,tintColor:`currentColor`})]})]}),A&&(0,F.jsxs)(`div`,{className:`pointer-events-none absolute inset-x-0 top-1/2 z-10 flex -translate-y-1/2 items-center justify-between px-4`,children:[(0,F.jsx)(i,{variant:`ghost`,iconOnly:(0,F.jsx)(u,{}),expandOnMobile:!1,onClick:j,"aria-label":`Previous attachment`,className:`pointer-events-auto h-11 w-11 rounded-full bg-white/10 text-white/70 hover:bg-white/20 hover:text-white`,tintColor:`currentColor`}),(0,F.jsx)(i,{variant:`ghost`,iconOnly:(0,F.jsx)(d,{}),expandOnMobile:!1,onClick:M,"aria-label":`Next attachment`,className:`pointer-events-auto h-11 w-11 rounded-full bg-white/10 text-white/70 hover:bg-white/20 hover:text-white`,tintColor:`currentColor`})]}),(0,F.jsx)(`div`,{className:`flex items-center justify-center`,style:{transform:`translateX(${N}px)`,transition:ne?`none`:`transform 200ms ease-out`,touchAction:`pan-y`},onClick:e=>e.stopPropagation(),onTouchStart:ie,onTouchMove:I,onTouchEnd:L,onTouchCancel:ae,children:ee?(0,F.jsx)(`div`,{className:`flex items-center justify-center py-24`,children:(0,F.jsx)(y,{className:`h-8 w-8 animate-spin text-white/70`})}):O?(0,F.jsx)(K,{message:O,filename:n.filename,onDownload:B,downloadDisabled:!T}):ce&&T?(0,F.jsx)(me,{url:T}):oe&&T&&E!==T?(0,F.jsx)(`img`,{src:T,alt:n.filename,onError:()=>D(T),className:`max-h-[80vh] max-w-[90vw] rounded object-contain`}):se&&T?(0,F.jsx)(`video`,{"data-testid":`video-preview`,src:T,poster:n.thumbnailUrl??void 0,controls:!0,className:`max-h-[80vh] max-w-[90vw] rounded`}):G&&T?(0,F.jsx)(ge,{url:T,filename:n.filename,mimeType:n.mimeType,sizeBytes:n.sizeBytes}):(0,F.jsxs)(`div`,{className:`flex w-full max-w-sm flex-col items-center rounded-lg border border-white/15 bg-white/[0.08] p-8 text-center`,children:[(0,F.jsx)(_,{className:`h-16 w-16 text-white/60`}),(0,F.jsx)(`p`,{className:`mt-4 text-body-medium-default text-white/90`,children:n.filename}),(0,F.jsx)(`p`,{className:`mt-1 text-body-small-default text-white/60`,children:U(n.sizeBytes)}),(0,F.jsx)(i,{variant:`ghost`,leftIcon:(0,F.jsx)(p,{}),onClick:B,disabled:!T,"aria-label":`Download ${n.filename}`,className:`mt-4 text-white/70 hover:bg-white/10 hover:text-white max-md:bg-transparent`,tintColor:`currentColor`,children:`Download`})]})}),A&&(0,F.jsx)(`div`,{className:`absolute inset-x-0 bottom-0 z-10 flex justify-center`,style:{paddingBottom:`calc(var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px)) + 2rem)`},onClick:e=>e.stopPropagation(),children:(0,F.jsxs)(c,{variant:`body-small-default`,className:`text-white/50`,children:[k+1,` / `,s.length]})})]}),document.body)};function Te(e,t){let[n,r]=(0,P.useState)(null),i=(0,P.useCallback)(e=>r(e),[]),a=(0,P.useCallback)(()=>r(null),[]),o=(0,P.useCallback)(e=>r(e),[]);return{openPreview:i,previewModal:n?(0,F.jsx)(Y,{open:!0,onClose:a,attachment:n,assistantId:e,siblingAttachments:t,onNavigate:o}):null}}var Ee=1500,X=`inline-flex max-w-full min-w-0 items-center gap-1.5 rounded-lg bg-[var(--surface-overlay)] px-2 py-1 align-middle text-[0.85em] leading-tight text-[var(--content-secondary)]`,Z=`shrink-0 rounded-sm p-0.5 text-[var(--content-tertiary)] transition-colors hover:text-[var(--content-secondary)] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[var(--border-focus)]`;function De({type:e,service:t,field:n,assistantId:r,neutralized:i}){let a=D.use.activeAssistantId(),o=r===void 0?a:r,[s,c]=(0,P.useState)(null),[u,d]=(0,P.useState)(!1),[p,g]=(0,P.useState)(!1),_=(0,P.useRef)(null),b=(0,P.useRef)(0),x=e??`Secret`,S=t!==void 0&&n!==void 0&&o!=null,C=S?`${t}:${n}`:x,T=(0,P.useCallback)(()=>{b.current++,c(null),d(!1),g(!1),_.current&&=(clearTimeout(_.current),null)},[]),E=(0,P.useCallback)(async()=>{if(!S)return;let e=++b.current;d(!0);try{let{data:r}=await ee({path:{assistant_id:o},body:{service:t,field:n},throwOnError:!0});b.current===e&&c(r.value)}catch{b.current===e&&w.error(`Couldn't reveal ${C}.`)}finally{b.current===e&&d(!1)}},[S,o,t,n,C]),O=(0,P.useCallback)(()=>{s!=null&&N(s,{errorMessage:`Couldn't copy. Reveal and copy manually.`,onCopied:()=>{g(!0),_.current&&clearTimeout(_.current),_.current=setTimeout(()=>g(!1),Ee)}})},[s]);if(i)return(0,F.jsxs)(`span`,{className:X,title:`Redaction marker — not verified by the assistant`,children:[(0,F.jsx)(v,{className:`h-3.5 w-3.5 shrink-0`,"aria-hidden":!0}),(0,F.jsx)(`span`,{className:`truncate`,children:`Redacted`})]});if(!S)return(0,F.jsxs)(`span`,{className:X,title:`Redacted — this value is not linked to a stored credential`,children:[(0,F.jsx)(v,{className:`h-3.5 w-3.5 shrink-0`,"aria-hidden":!0}),(0,F.jsx)(`span`,{className:`truncate`,children:x})]});let k=s!==null;return(0,F.jsxs)(`span`,{className:X,children:[(0,F.jsx)(v,{className:`h-3.5 w-3.5 shrink-0`,"aria-hidden":!0}),k?(0,F.jsx)(`span`,{className:`min-w-0 truncate font-mono text-[var(--content-default)]`,children:s}):(0,F.jsx)(`button`,{type:`button`,onClick:()=>void E(),disabled:u,"aria-label":`Reveal value for ${C}`,title:`${x} · click to reveal`,className:`min-w-0 select-none truncate rounded-sm text-left blur-[3px] transition-[filter] hover:blur-[2px] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[var(--border-focus)]`,children:C}),u?(0,F.jsx)(y,{className:`h-3.5 w-3.5 shrink-0 animate-spin`,"aria-hidden":!0}):k?(0,F.jsxs)(F.Fragment,{children:[(0,F.jsx)(`button`,{type:`button`,onClick:O,"aria-label":`Copy value for ${C}`,title:`Copy value`,className:Z,children:p?(0,F.jsx)(l,{className:`h-3.5 w-3.5`,"aria-hidden":!0}):(0,F.jsx)(f,{className:`h-3.5 w-3.5`,"aria-hidden":!0})}),(0,F.jsx)(`button`,{type:`button`,onClick:T,"aria-label":`Hide value for ${C}`,title:`Hide value`,className:Z,children:(0,F.jsx)(m,{className:`h-3.5 w-3.5`,"aria-hidden":!0})})]}):(0,F.jsx)(`button`,{type:`button`,onClick:()=>void E(),disabled:u,"aria-label":`Reveal value for ${C}`,title:`Click to reveal`,className:Z,children:(0,F.jsx)(h,{className:`h-3.5 w-3.5`,"aria-hidden":!0})})]})}var Oe=`redacted`;function ke(e){try{return decodeURIComponent(e)}catch{return}}function Ae(){return RegExp(`〔${Oe}:([^:\u3014\u3015]+?)(?::([A-Za-z0-9_.%-]+):([A-Za-z0-9_.%-]+))?〕`,`g`)}function je(){return RegExp(`〔\\u2060${Oe}:([^:\\u3014\\u3015]+?)(?::([A-Za-z0-9_.%-]+):([A-Za-z0-9_.%-]+))?〕`,`g`)}function Me(e){let[,t,n,r]=e;if(n!==void 0&&r!==void 0){let e=ke(n),i=ke(r);if(e!==void 0&&i!==void 0)return{type:t,service:e,field:i}}return{type:t}}var Q=`redacted-credential`,Ne=new Set([`pre`,`code`,`style`,`script`,`a`]);function Pe(e){return e.type===`element`}function Fe(e){let t=[],n=Ae(),r;for(;(r=n.exec(e))!==null;){let e=Me(r);t.push({index:r.index,length:r[0].length,element:{type:`element`,tagName:Q,properties:{type:e.type,...e.service!==void 0&&e.field!==void 0?{service:e.service,field:e.field}:{}},children:[]}})}let i=je();for(;(r=i.exec(e))!==null;)t.push({index:r.index,length:r[0].length,element:{type:`element`,tagName:Q,properties:{neutralized:!0},children:[]}});if(t.length===0)return;t.sort((e,t)=>e.index-t.index);let a=[],o=0;for(let n of t)n.index>o&&a.push({type:`text`,value:e.slice(o,n.index)}),a.push(n.element),o=n.index+n.length;return o<e.length&&a.push({type:`text`,value:e.slice(o)}),a}function Ie(e){if(Pe(e)&&Ne.has(e.tagName))return;let t=e.children;if(t)for(let e=t.length-1;e>=0;e--){let n=t[e];if(n.type!==`text`){Ie(n);continue}let r=n.value;if(!r.includes(`〔`))continue;let i=Fe(r);i&&t.splice(e,1,...i)}}function Le(){return e=>{Ie(e)}}var Re=new Set([`pre`,`code`,`style`,`script`]),ze=5,Be=.4,Ve=`stream-word-fade`;function He(e){return e.type===`element`}function Ue(e){if(He(e)&&Re.has(e.tagName))return;let t=e.children;if(t)for(let e=t.length-1;e>=0;e--){let n=t[e];if(n.type!==`text`){Ue(n);continue}let r=n.value.match(/\S+|\s+/g);if(!r||r.length===1&&/^\s+$/.test(r[0]))continue;let i=r.map(e=>/^\s+$/.test(e)?{type:`text`,value:e}:{type:`element`,tagName:`span`,properties:{className:[Ve]},children:[{type:`text`,value:e}]});t.splice(e,1,...i)}}function We(e,t){if(He(e)){let n=e.properties?.className;if(Array.isArray(n)&&n.includes(Ve)){t.push(e);return}}if(e.children)for(let n of e.children)We(n,t)}function Ge(e){let t=e?.caughtUp??!1;return e=>{if(Ue(e),t)return;let n=[];We(e,n);let r=Math.min(ze,n.length);for(let e=0;e<r;e++){let t=n[n.length-1-e],r=(Be+(1-Be)*((e+1)/(ze+1))).toFixed(3);t.properties={...t.properties,style:`opacity:${r}`}}}}var Ke=`workspace-path`,qe=`/workspace/`,Je=512,Ye=/[\s`"'<>|&;:,=$*?[\]{}()\\!#]/;function Xe(e){let t=e.trim();if(t.length===0||t.length>Je||Ye.test(t)||t.endsWith(`/`)||t.startsWith(`~`))return null;let n;if(t.startsWith(`/`)){let e=t.lastIndexOf(qe);if(e===-1)return null;n=t.slice(e+11)}else if(n=t.startsWith(`./`)?t.slice(2):t,!n.includes(`/`))return null;return n.length===0||n.split(`/`).some(e=>e.length===0||e.startsWith(`.`))?null:n}function Ze(e){let t=e.lastIndexOf(`/`);return t===-1?``:e.slice(0,t)}function Qe(e){let t=e.lastIndexOf(`/`);return t===-1?e:e.slice(t+1)}function $e(e){return`vellum://workspace/${e.split(`/`).map(encodeURIComponent).join(`/`)}`}var et=new Set([`pre`,`a`,`style`,`script`]);function tt(e){return e.type===`element`}function nt(e){if(e.children.length!==1)return;let t=e.children[0];return t.type===`text`?t.value:void 0}function rt(e){let t=e.children;if(t){for(let e of t)if(tt(e)&&!et.has(e.tagName)){if(e.tagName===`code`){let t=nt(e),n=t===void 0?null:Xe(t);n!==null&&t!==void 0&&(e.tagName=Ke,e.properties={...e.properties,path:n,raw:t},e.children=[]);continue}rt(e)}}}function it(){return e=>{rt(e)}}var at=15e3,ot=1e4,st=9e4;function ct({path:e,raw:t,assistantId:n,onOpen:r}){let i=t??e??``,a=A(),s=!!(e&&n&&r&&a),[c]=(0,P.useState)(()=>Date.now()+st),{data:l}=o({...g({assistantId:n??``,path:e?Ze(e):``}),enabled:s,staleTime:at,retry:!1,refetchInterval:t=>Date.now()>=c||(t.state.data?.entries.some(t=>t.type===`file`&&t.path===e)??!1)?!1:ot});return!(0,P.useMemo)(()=>e!=null&&(l?.entries.some(t=>t.type===`file`&&t.path===e)??!1),[l,e])||!e||!r?(0,F.jsx)(`code`,{className:C,children:i}):(0,F.jsx)(`button`,{type:`button`,onClick:()=>r($e(e),Qe(e)),className:`${C} cursor-pointer text-[var(--system-positive-strong)] underline decoration-dotted underline-offset-2 hover:opacity-80`,title:`Open ${e}`,children:i})}function $(e){return e!=null&&(e.startsWith(`vellum://workspace/`)||e.startsWith(`vellum://host/`))}function lt(e){return $(e)?e:x(e)}function ut({href:e,children:t}){return(0,F.jsx)(`a`,{href:e,target:`_blank`,rel:L(e)?void 0:`noopener noreferrer`,onClick:t=>{if(B(e)){t.preventDefault();return}ne(t,e)},className:`text-[var(--system-positive-strong)] underline hover:opacity-80`,children:t})}var dt=`my-2 max-w-full max-h-[400px] rounded-lg border border-[var(--border-default)] object-contain`;function ft({alt:e}){return(0,F.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded bg-[var(--surface-sunken)] px-1.5 py-0.5 text-body-small-default text-[var(--content-tertiary)]`,children:[`Image failed to load`,e?` (${e})`:``]})}function pt({src:e,alt:t}){let[n,r]=(0,P.useState)(!1);return n?(0,F.jsx)(ft,{alt:t}):(0,F.jsx)(`img`,{src:e,alt:t,onError:()=>r(!0),className:dt})}function mt(e){try{return decodeURIComponent(e)}catch{return e}}function ht({src:e,alt:n,attachments:r,assistantId:i,onOpenPreview:a}){let[o,s]=(0,P.useState)(null),[c,l]=(0,P.useState)(!1),u=mt(e.split(`/`).pop()??``),d=r?.find(e=>e.filename===u);if((0,P.useEffect)(()=>{if(!d||!i||d.id.startsWith(`rehydrated:`))return;let e=!1;return(async()=>{try{let{data:t,error:n}=await O({path:{assistant_id:i,id:d.id},parseAs:`blob`,throwOnError:!1});if(e)return;if(n||!(t instanceof Blob)){l(!0);return}s(URL.createObjectURL(t))}catch(n){e||(l(!0),t(n,{context:`WorkspaceInlineImage`,bestEffort:!0}))}})(),()=>{e=!0,s(e=>(e&&URL.revokeObjectURL(e),null))}},[d,i]),c||!d&&!o)return(0,F.jsx)(ft,{alt:n||u});if(!o)return(0,F.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded bg-[var(--surface-sunken)] px-1.5 py-0.5 text-body-small-default text-[var(--content-tertiary)]`,children:[`Loading image…`,n?` (${n})`:``]});let f=(0,F.jsx)(`img`,{src:o,alt:n,className:dt});return!d||!a?f:(0,F.jsx)(`button`,{type:`button`,onClick:()=>a(d),className:`cursor-zoom-in appearance-none border-0 bg-transparent p-0`,"aria-label":n?`Expand image: ${n}`:`Expand image`,children:f})}var gt=(0,P.memo)(function({content:e,className:t,hardLineBreaks:n,onVellumLinkClick:r,attachments:i,assistantId:a,streamWordFade:o,redactedCredentialChips:s,workspacePathLinks:c}){let{openPreview:l,previewModal:u}=Te(a,i),d=(0,P.useCallback)(({href:e,children:t})=>r&&$(e)?(0,F.jsx)(`a`,{href:e,onClick:t=>{t.preventDefault(),e&&r(e,t.currentTarget.textContent??``)},className:`text-[var(--system-positive-strong)] underline hover:opacity-80 cursor-pointer`,children:t}):(0,F.jsx)(ut,{href:e,children:t}),[r]),f=(0,P.useMemo)(()=>[...s?[Le]:[],...c&&r?[it]:[],...o?[[Ge,{caughtUp:o===`caughtUp`}]]:[]],[s,o,c,r]),p=(0,P.useMemo)(()=>({src:e,alt:t})=>$(e)?(0,F.jsx)(ht,{src:e,alt:t,attachments:i,assistantId:a,onOpenPreview:l}):(0,F.jsx)(pt,{src:e,alt:t}),[i,a,l]),m=(0,P.useMemo)(()=>({[Q]:e=>(0,F.jsx)(De,{...e,assistantId:a},`${a??``}\u0000${e.service??``}\u0000${e.field??``}`),[Ke]:e=>(0,F.jsx)(ct,{...e,assistantId:a,onOpen:r})}),[a,r]);return(0,F.jsxs)(F.Fragment,{children:[(0,F.jsx)(S,{content:e,className:t,hardLineBreaks:n,linkComponent:d,imageComponent:p,urlTransform:lt,extraRehypePlugins:f,extraComponents:s||c&&r?m:void 0}),u]})});export{W as a,se as c,V as d,ce as i,H as l,Te as n,U as o,Y as r,le as s,gt as t,oe as u};
|
|
@@ -1 +0,0 @@
|
|
|
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{a as r,t as i}from"./cn-CJf7MmLX.js";import{t as a}from"./typography-DEI9Ra9z.js";import{t as o}from"./createLucideIcon-CAM1RhH8.js";import{t as s}from"./check-sC49_hjU.js";import{a as c,i as l,o as u,r as d,s as f,t as p}from"./dist-BKxs5XmY.js";var m=o(`minus`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}]]),h=e(t(),1);function g(e){let t=h.useRef({value:e,previous:e});return h.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}function _(e){let[t,n]=h.useState(void 0);return c(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});let t=new ResizeObserver(t=>{if(!Array.isArray(t)||!t.length)return;let r=t[0],i,a;if(`borderBoxSize`in r){let e=r.borderBoxSize,t=Array.isArray(e)?e[0]:e;i=t.inlineSize,a=t.blockSize}else i=e.offsetWidth,a=e.offsetHeight;n({width:i,height:a})});return t.observe(e,{box:`border-box`}),()=>t.unobserve(e)}else n(void 0)},[e]),t}var v=n(),y=`Checkbox`,[b,x]=f(y),[S,C]=b(y);function w(e){let{__scopeCheckbox:t,checked:n,children:r,defaultChecked:i,disabled:a,form:o,name:s,onCheckedChange:c,required:u,value:d=`on`,internal_do_not_use_render:f}=e,[p,m]=l({prop:n,defaultProp:i??!1,onChange:c,caller:y}),[g,_]=h.useState(null),[b,x]=h.useState(null),C=h.useRef(!1),w=g?!!o||!!g.closest(`form`):!0,T={checked:p,disabled:a,setChecked:m,control:g,setControl:_,name:s,form:o,value:d,hasConsumerStoppedPropagationRef:C,required:u,defaultChecked:N(i)?!1:i,isFormControl:w,bubbleInput:b,setBubbleInput:x};return(0,v.jsx)(S,{scope:t,...T,children:M(f)?f(T):r})}var T=`CheckboxTrigger`,E=h.forwardRef(({__scopeCheckbox:e,onKeyDown:t,onClick:n,...i},a)=>{let{control:o,value:s,disabled:c,checked:l,required:d,setControl:f,setChecked:m,hasConsumerStoppedPropagationRef:g,isFormControl:_,bubbleInput:y}=C(T,e),b=r(a,f),x=h.useRef(l);return h.useEffect(()=>{let e=o?.form;if(e){let t=()=>m(x.current);return e.addEventListener(`reset`,t),()=>e.removeEventListener(`reset`,t)}},[o,m]),(0,v.jsx)(p.button,{type:`button`,role:`checkbox`,"aria-checked":N(l)?`mixed`:l,"aria-required":d,"data-state":P(l),"data-disabled":c?``:void 0,disabled:c,value:s,...i,ref:b,onKeyDown:u(t,e=>{e.key===`Enter`&&e.preventDefault()}),onClick:u(n,e=>{m(e=>N(e)?!0:!e),y&&_&&(g.current=e.isPropagationStopped(),g.current||e.stopPropagation())})})});E.displayName=T;var D=h.forwardRef((e,t)=>{let{__scopeCheckbox:n,name:r,checked:i,defaultChecked:a,required:o,disabled:s,value:c,onCheckedChange:l,form:u,...d}=e;return(0,v.jsx)(w,{__scopeCheckbox:n,checked:i,defaultChecked:a,disabled:s,required:o,onCheckedChange:l,name:r,form:u,value:c,internal_do_not_use_render:({isFormControl:e})=>(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(E,{...d,ref:t,__scopeCheckbox:n}),e&&(0,v.jsx)(j,{__scopeCheckbox:n})]})})});D.displayName=y;var O=`CheckboxIndicator`,k=h.forwardRef((e,t)=>{let{__scopeCheckbox:n,forceMount:r,...i}=e,a=C(O,n);return(0,v.jsx)(d,{present:r||N(a.checked)||a.checked===!0,children:(0,v.jsx)(p.span,{"data-state":P(a.checked),"data-disabled":a.disabled?``:void 0,...i,ref:t,style:{pointerEvents:`none`,...e.style}})})});k.displayName=O;var A=`CheckboxBubbleInput`,j=h.forwardRef(({__scopeCheckbox:e,...t},n)=>{let{control:i,hasConsumerStoppedPropagationRef:a,checked:o,defaultChecked:s,required:c,disabled:l,name:u,value:d,form:f,bubbleInput:m,setBubbleInput:y}=C(A,e),b=r(n,y),x=g(o),S=_(i);h.useEffect(()=>{let e=m;if(!e)return;let t=window.HTMLInputElement.prototype,n=Object.getOwnPropertyDescriptor(t,`checked`).set,r=!a.current;if(x!==o&&n){let t=new Event(`click`,{bubbles:r});e.indeterminate=N(o),n.call(e,N(o)?!1:o),e.dispatchEvent(t)}},[m,x,o,a]);let w=h.useRef(N(o)?!1:o);return(0,v.jsx)(p.input,{type:`checkbox`,"aria-hidden":!0,defaultChecked:s??w.current,required:c,disabled:l,name:u,value:d,form:f,...t,tabIndex:-1,ref:b,style:{...t.style,...S,position:`absolute`,pointerEvents:`none`,opacity:0,margin:0,transform:`translateX(-100%)`}})});j.displayName=A;function M(e){return typeof e==`function`}function N(e){return e===`indeterminate`}function P(e){return N(e)?`indeterminate`:e?`checked`:`unchecked`}function F({checked:e,onCheckedChange:t,label:n,helperText:r,disabled:o=!1,id:c,name:l,className:u,ref:d,"aria-label":f,...p}){let g=(0,h.useId)(),_=c??g,y=n?`${_}-label`:void 0,b=r?`${_}-helper`:void 0,x=e===`indeterminate`,S=i(`inline-flex h-4 w-4 shrink-0 items-center justify-center rounded-[4px]`,`border transition-colors outline-none cursor-pointer`,`keyboard-focus:ring-2 keyboard-focus:ring-[var(--ring)] keyboard-focus:ring-offset-0`,`bg-[var(--surface-lift)] border-[var(--border-base)]`,`data-[state=checked]:bg-[var(--system-positive-strong)] data-[state=checked]:border-transparent`,`data-[state=indeterminate]:bg-[var(--system-positive-strong)] data-[state=indeterminate]:border-transparent`,`disabled:cursor-not-allowed disabled:bg-[var(--surface-overlay)]`,`disabled:data-[state=checked]:bg-[var(--surface-overlay)]`,`disabled:data-[state=indeterminate]:bg-[var(--surface-overlay)]`,`disabled:border-[var(--border-base)]`),C=i(`h-3 w-3`,o?`text-[color:var(--content-disabled)]`:`text-[color:var(--aux-white)]`),w=(0,v.jsx)(D,{...p,ref:d,id:_,name:l,checked:e,disabled:o,onCheckedChange:t,"aria-label":n?void 0:f,"aria-labelledby":n?y:void 0,"aria-describedby":b,"data-slot":`checkbox`,className:S,children:(0,v.jsx)(k,{forceMount:!0,className:`flex items-center justify-center`,children:x?(0,v.jsx)(m,{className:C,strokeWidth:3,"aria-hidden":`true`}):e===!0?(0,v.jsx)(s,{className:C,strokeWidth:3,"aria-hidden":`true`}):null})});return!n&&!r?(0,v.jsx)(`span`,{"data-slot":`checkbox`,className:u,children:w}):(0,v.jsxs)(`div`,{"data-slot":`checkbox`,className:i(`flex gap-2.5`,r?`items-start`:`items-center`,u),children:[w,(0,v.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-0.5`,children:[n?(0,v.jsx)(a,{as:`label`,variant:`body-medium-default`,id:y,htmlFor:_,className:i(`cursor-pointer select-none`,o?`cursor-not-allowed text-[color:var(--content-disabled)]`:`text-[color:var(--content-default)]`),children:n}):null,r?(0,v.jsx)(`span`,{id:b,className:`text-body-small-default text-[color:var(--content-secondary)]`,children:r}):null]})]})}export{F as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{T as e}from"./native-biometric-B96mgKGP.js";import{t}from"./client-feature-flag-store-Bg5XEI2b.js";function n(){let e=t.use.marketingPricingTakeover(),n=t.use.hydrated();return e?`enabled`:n?`disabled`:`pending`}var r=`continue`;function i(t,n){return e(t.get(r),n)}export{i as n,n as r,r as t};
|
|
@@ -1 +0,0 @@
|
|
|
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,t as i,u as a}from"./chunk-5KNZJZUH-Bsoom5--.js";import{n as o}from"./QueryClientProvider-CMu7CkQU.js";import{t as s}from"./useMutation-CXGTrp4W.js";import{t as c}from"./jsx-runtime-D3ZM-ToX.js";import{t as l}from"./loader-circle-BzJ2kz3F.js";import{Z as u,c as d,l as f}from"./auth-store-BwKMFgpK.js";import{b as p,w as m,x as h}from"./native-biometric-B96mgKGP.js";import{d as g}from"./routes-GmNvdtLW.js";import{a as _}from"./use-platform-gate-CqEOGZtI.js";import{i as v}from"./use-is-org-ready-zouQ5CN4.js";import{n as y}from"./browser-Bses4IN3.js";import{dt as b}from"./react-query.gen-BVTEjHsw.js";import{n as x,r as S}from"./checkout-continuation-CcuqWhhp.js";import{t as C}from"./checkout-return-target-Cib3fzdY.js";var w=e(t(),1),T=c();function E(){h(),f()}function D(){let e=a(),[t]=r(),c=t.get(`package`)??``,f=(0,w.useMemo)(()=>c?null:p(t),[c,t]),h=_(),D=v(),O=S(),k=x(t,g.plans),A=k===g.plans?`View plans`:`Continue setup`,j=o(),{mutateAsync:M}=s(b()),[N,P]=(0,w.useState)(!1),[F,I]=(0,w.useState)(!1),L=(0,w.useRef)(`idle`),R=(0,w.useCallback)(async()=>{L.current=`running`,P(!1),I(!1);let t=C();try{let n=await M({body:f?{target_plan_id:`pro`,confirm:!0,machine_tier:f.machineTier,storage_tier:f.storageTier,credit_tier:f.creditTier,return_target:t}:{target_plan_id:`pro`,package:c,confirm:!0,return_target:t}});if(L.current!==`running`)return;if(n.status===`redirect`&&n.checkout_url){L.current=`handed_off`,m(f?{kind:`custom`,machineTier:f.machineTier,storageTier:f.storageTier,creditTier:f.creditTier}:{kind:`package`,packageKey:c}),d(j),I(t===`native`),y(n.checkout_url);return}L.current=`settled`,E(),e(k===g.plans&&c?g.plansForPackage(c):k,{replace:!0})}catch{if(L.current!==`running`)return;L.current=`settled`,P(!0)}},[k,f,M,e,c,j]),z=(0,w.useCallback)(()=>{if(D===`ready`){R();return}L.current=`idle`,P(!1),I(!1),D===`unavailable`&&u.getState().fetchOrganizations()},[D,R]);return(0,w.useEffect)(()=>{if(!c&&!f||h===`disabled`||h===`gated`||O===`disabled`){if(L.current===`handed_off`)return;L.current=`settled`,E(),e(k,{replace:!0});return}if(!(O!==`enabled`||h!==`full`||L.current!==`idle`)&&D!==`resolving`){if(D===`unavailable`){L.current=`settled`,P(!0);return}R()}},[k,f,h,e,D,c,R,O]),N?(0,T.jsxs)(`div`,{className:`flex h-full w-full flex-col items-center justify-center gap-4 px-6 text-center`,children:[(0,T.jsx)(`p`,{className:`text-[var(--content-default)]`,children:`We couldn’t start your checkout. Please try again.`}),(0,T.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,T.jsx)(n,{onClick:z,children:`Try again`}),(0,T.jsx)(i,{to:k,onClick:E,className:`text-sm text-[var(--content-tertiary)] underline`,children:A})]})]}):F?(0,T.jsxs)(`div`,{className:`flex h-full w-full flex-col items-center justify-center gap-4 px-6 text-center`,children:[(0,T.jsx)(`p`,{className:`text-[var(--content-default)]`,children:`Checkout opened in your browser. Finish there to complete your upgrade.`}),(0,T.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,T.jsx)(n,{onClick:z,children:`Reopen checkout`}),(0,T.jsx)(i,{to:k,className:`text-sm text-[var(--content-tertiary)] underline`,children:A})]})]}):(0,T.jsxs)(`div`,{className:`flex h-full w-full flex-col items-center justify-center gap-3`,children:[(0,T.jsx)(l,{className:`h-6 w-6 animate-spin text-[var(--content-tertiary)]`,"aria-label":`Preparing checkout`}),(0,T.jsx)(`p`,{className:`text-sm text-[var(--content-tertiary)]`,children:`Preparing checkout…`})]})}export{D as CheckoutPage};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./is-electron-7N7iyz1y.js";import{t}from"./dist-CFSiz2ry2.js";function n(){return e()||t.isNativePlatform()?`native`:`web`}export{n as t};
|
|
@@ -1 +0,0 @@
|
|
|
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,i,n as a,o,t as s}from"./use-command-palette-sections-CAmbyguu.js";import{dt as c}from"./local-mode-9zpgPNoq.js";import{n as l}from"./resolved-assistants-store-8HQDfxZh.js";import{$ as u,Z as d,i as f,n as p,s as m}from"./auth-store-BwKMFgpK.js";import{t as h}from"./client-feature-flag-store-Bg5XEI2b.js";import{t as g}from"./use-app-theme-BLGjiz96.js";import{i as _}from"./conversation-queries-3taor2DZ.js";import{CommandPalette as v}from"./command-palette-B3TVIQUH.js";var y=e(t(),1),b=n(),x=()=>void 0,S=e=>void 0,C=e=>{switch(e.id){case`action-new-conversation`:return{kind:`newConversation`};case`action-current-conversation`:return{kind:`currentConversation`};case`action-settings`:return{kind:`openSettings`};case`action-library`:return{kind:`openLibrary`};case`action-intelligence`:return{kind:`openIdentity`};default:return e.id.startsWith(`conv-`)?{kind:`openConversation`,conversationId:e.id.slice(5)}:e.id.startsWith(`search-conv-`)?{kind:`openConversation`,conversationId:e.id.slice(12)}:e.id.startsWith(`search-schedule-`)||e.id.startsWith(`search-contact-`)?{kind:`openIdentity`}:null}};function w(){let e=p.use.sessionStatus(),t=m(),n=f();g(),o(!t),r({sessionStatus:e,hasPlatformSession:n});let w=l.use.assistants(),T=l.use.activeAssistantId(),E=l.use.selectedAssistantId(),D=d.use.currentOrganizationId(),O=h.use.multiPlatformAssistant(),k=(0,y.useMemo)(()=>{let e=O&&!c()&&D?u(D):T;if(!e)return null;let t=w.find(t=>t.id===e);return t?{id:t.id,name:t.name}:null},[O,T,w,D,E]),A=k?.id??null,{conversations:j}=_(A,!0),M=(0,y.useCallback)(e=>{let t=C(e);t&&i(t)},[]),{commandPalette:N,mergedSections:P,handleItemSelect:F}=s({assistantId:A,assistantName:k?.name,conversations:j,activeConversationId:void 0,startNewConversation:x,switchConversation:x,navigate:S,navigateToSettings:x,isOpen:!0,onClose:()=>{a()},onItemSelect:M});return(0,b.jsx)(`div`,{className:`h-screen w-screen bg-transparent`,children:(0,b.jsx)(v,{isOpen:!0,surface:`window`,onClose:N.close,query:N.query,onQueryChange:N.setQuery,highlightTokens:N.searchTokens,selectedIndex:N.selectedIndex,sections:P,isSearching:N.isSearching,onItemSelect:F,onKeyDown:N.handleKeyDown})})}export{w as CommandPaletteWindowPage};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./onboarding-store-OVV4wyh5.js";function t(){let{shareAnalytics:t,serverAnalyticsEffective:n,pendingAnalyticsOptIn:r}=e.getState();return t===!1?!1:r?!0:n??!0}export{t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{d as e}from"./routes-GmNvdtLW.js";import{t}from"./conversation-store-C0tvFESx.js";import{r as n}from"./viewer-store--hIQLNm5.js";import{t as r}from"./haptics-rJpeBta-.js";import{r as i}from"./subagent-store-DyKwOIj_.js";import{t as a}from"./workflow-store-Cbd3x6KN.js";import{t as o}from"./conversation-selection-B954w311.js";import{t as s}from"./sound-manager-DUo0lHGZ.js";var c=`vellum:focus-composer`,l=!1;function u(){l=!0,typeof window<`u`&&window.dispatchEvent(new Event(c))}function d(){let e=l;return l=!1,e}var f=[`input`,`textarea`,`select`,`[contenteditable=""]`,`[contenteditable="true"]`,`[role="textbox"]`].join(`,`);function p(e){return!!e?.closest(f)}function m(e){return!!e?.closest(`a[href], button, summary`)}function h(e,t){return!(e.defaultPrevented||e.metaKey||e.ctrlKey||e.altKey||e.isComposing||e.keyCode===229||typeof e.key!=`string`||e.key.length!==1||p(t)||e.key===` `&&m(t))}function g({value:e,text:t,selectionStart:n,selectionEnd:r}){let i=Math.max(0,Math.min(n??e.length,e.length)),a=Math.max(i,Math.min(r??i,e.length));return{value:e.slice(0,i)+t+e.slice(a),cursor:i+t.length}}function _(o,s,c){c?.silent||r.light(),n.getState().setMainView(`chat`),s!==t.getState().activeConversationId&&(i.getState().reset(),a.getState().reset()),t.getState().setActiveConversationId(s),o(c?.messageId?e.conversationAtMessage(s,c.messageId):e.conversation(s))}function v(c,l){l?.silent||(r.light(),s().play(`new_conversation`)),n.getState().setMainView(`chat`),i.getState().reset(),a.getState().reset();let d=o();t.getState().setActiveConversationId(d);let f=e.conversation(d);if(l?.prompt){let e=new URLSearchParams({prompt:l.prompt});f=`${f}?${e.toString()}`}c(f),u()}export{g as a,d as i,v as n,u as o,c as r,h as s,_ as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{r as t}from"./capture-error-FWzaVb8P.js";import{t as n}from"./react-BFJW0bSv.js";import{t as r}from"./button-Dy5001j6.js";import{n as i}from"./QueryClientProvider-CMu7CkQU.js";import{t as a}from"./useQuery-Bz-fbQ-m.js";import{t as o}from"./jsx-runtime-D3ZM-ToX.js";import{t as s}from"./card-DRIctGVs.js";import{t as c}from"./check-sC49_hjU.js";import{t as l}from"./chevron-down-B5A-0g8A.js";import{o as u}from"./list-row-BYrmPIC4.js";import{t as d}from"./eye-off-fuOP4Lij.js";import{t as f}from"./eye-DTyDWiqu.js";import{t as p}from"./key-round-CSc3w5ka.js";import{t as m}from"./link-2-BMNZFfWH.js";import{t as h}from"./loader-circle-BzJ2kz3F.js";import{t as g}from"./plus-JG7kWjHA.js";import{t as _}from"./search-DA3TmTuR.js";import{t as v}from"./trash-2-De6X8YiM.js";import{M as y}from"./src-BAS7a2RG.js";import{t as b}from"./tag-D8NAGb0r.js";import{t as x}from"./popover-BFL-uOLh.js";import{t as S}from"./input-C-GkeWCw.js";import{t as C}from"./modal-DwsThLGg.js";import{n as w,t as T}from"./panel-item-DGs4s9r-.js";import{n as E}from"./toast-DR7D7Uma.js";import{t as D}from"./confirm-dialog-DZX6LhLy.js";import{t as O}from"./assistant-identity-store-BczULg2T.js";import{Kr as k,dt as A,ut as j}from"./sdk.gen-BySz4QYj.js";import{r as M}from"./use-is-org-ready-zouQ5CN4.js";import{qt as N}from"./react-query.gen-0mspArBl.js";import{n as P}from"./use-is-mobile-Cx2xnNUx.js";import{t as F}from"./copy-to-clipboard-DaTa8Tbi.js";import{t as I}from"./use-active-assistant-id-CjvzlL4t.js";import{n as L,t as R}from"./add-credential-modal-DQZ43BJU.js";import{t as z}from"./not-found-p1VhZpMs.js";import{t as B}from"./detail-card-D-5EWmAS.js";import{t as V}from"./use-supports-credentials-settings-CgWfA2eQ.js";var H=e(n(),1),U=o(),W=1500;function G(e){if(!e)return``;try{return new Date(e).toLocaleDateString(void 0,{year:`numeric`,month:`short`,day:`numeric`})}catch{return``}}function ee({credential:e,assistantId:t,generatingLink:n,deleting:r,onGenerateLink:i,onDelete:a}){let o=`${e.service}:${e.field}`,[c,l]=(0,H.useState)(!1),u=[e.alias?o:null,e.createdAt?`added ${G(e.createdAt)}`:null].filter(e=>!!e);return(0,U.jsx)(s.Root,{children:(0,U.jsxs)(s.Body,{padding:`sm`,className:`flex items-center gap-4 px-4`,children:[(0,U.jsx)(p,{className:`h-5 w-5 shrink-0 text-[var(--content-secondary)]`,"aria-hidden":!0}),(0,U.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,U.jsx)(`p`,{className:`truncate text-title-small text-[var(--content-default)]`,children:e.alias||o}),(0,U.jsx)(`div`,{className:`mt-0.5 flex min-w-0 items-center`,children:(0,U.jsx)(K,{assistantId:t,credential:e})}),u.length>0&&(0,U.jsx)(`p`,{className:`mt-0.5 truncate font-mono text-body-medium-lighter text-[var(--content-tertiary)]`,children:u.join(` · `)})]}),(0,U.jsx)(`div`,{className:`shrink-0`,children:(0,U.jsx)(q,{name:o,open:c,onOpenChange:l,generatingLink:n,deleting:r,onGenerateLink:()=>{l(!1),i()},onDelete:()=>{l(!1),a()}})})]})})}function K({assistantId:e,credential:t}){let[n,r]=(0,H.useState)(null),[i,a]=(0,H.useState)(!1),[o,s]=(0,H.useState)(!1),l=(0,H.useRef)(null),p=(0,H.useRef)(0),m=`${t.service}:${t.field}`,g=(0,H.useCallback)(()=>{p.current++,r(null),a(!1),s(!1),l.current&&=(clearTimeout(l.current),null)},[]);(0,H.useEffect)(()=>{g()},[t.updatedAt,g]);let _=(0,H.useCallback)(async()=>{let n=++p.current;a(!0);try{let{data:i}=await A({path:{assistant_id:e},body:{service:t.service,field:t.field},throwOnError:!0});p.current===n&&r(i.value)}catch{p.current===n&&E.error(`Couldn't reveal ${m}.`)}finally{p.current===n&&a(!1)}},[e,t.service,t.field,m]),v=(0,H.useCallback)(()=>{n!=null&&F(n,{errorMessage:`Couldn't copy. Reveal and copy manually.`,onCopied:()=>{s(!0),l.current&&clearTimeout(l.current),l.current=setTimeout(()=>s(!1),W)}})},[n]),y=n!==null;return t.hasSecret?(0,U.jsxs)(`span`,{className:`inline-flex min-w-0 items-center gap-1.5 align-middle font-mono text-body-medium-lighter`,children:[(0,U.jsx)(`button`,{type:`button`,onClick:()=>y?g():void _(),disabled:i,"aria-label":y?`Hide value for ${m}`:`Reveal value for ${m}`,title:y?`Hide value`:`Click to reveal`,"data-private":!0,className:`min-w-0 truncate rounded-sm text-left transition-[filter,color] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[var(--border-focus)] ${y?`text-[var(--content-secondary)]`:`select-none text-[var(--content-tertiary)] blur-[3px] hover:blur-[2px]`}`,children:y?n:t.scrubbedValue}),i?(0,U.jsx)(h,{className:`h-3.5 w-3.5 shrink-0 animate-spin`,"aria-hidden":!0}):y?(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`button`,{type:`button`,onClick:v,"aria-label":`Copy value for ${m}`,title:`Copy value`,className:`shrink-0 rounded-sm p-0.5 text-[var(--content-tertiary)] transition-colors hover:text-[var(--content-secondary)] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[var(--border-focus)]`,children:o?(0,U.jsx)(c,{className:`h-3.5 w-3.5`,"aria-hidden":!0}):(0,U.jsx)(u,{className:`h-3.5 w-3.5`,"aria-hidden":!0})}),(0,U.jsx)(`button`,{type:`button`,onClick:g,"aria-label":`Hide value for ${m}`,title:`Hide value`,className:`shrink-0 rounded-sm p-0.5 text-[var(--content-tertiary)] transition-colors hover:text-[var(--content-secondary)] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[var(--border-focus)]`,children:(0,U.jsx)(d,{className:`h-3.5 w-3.5`,"aria-hidden":!0})})]}):(0,U.jsx)(`button`,{type:`button`,onClick:()=>void _(),"aria-label":`Reveal value for ${m}`,title:`Click to reveal`,className:`shrink-0 rounded-sm p-0.5 text-[var(--content-tertiary)] transition-colors hover:text-[var(--content-secondary)] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[var(--border-focus)]`,children:(0,U.jsx)(f,{className:`h-3.5 w-3.5`,"aria-hidden":!0})})]}):(0,U.jsx)(`span`,{className:`min-w-0 truncate font-mono text-body-medium-lighter text-[var(--content-tertiary)]`,children:t.scrubbedValue})}function q({name:e,open:t,onOpenChange:n,generatingLink:i,deleting:a,onGenerateLink:o,onDelete:s}){let c=P(),u=i||a,d=(0,U.jsx)(r,{variant:`outlined`,rightIcon:(0,U.jsx)(l,{}),"aria-haspopup":`menu`,"aria-expanded":t,"aria-label":`Configure ${e}`,leftIcon:u?(0,U.jsx)(h,{className:`animate-spin`,"aria-hidden":!0}):void 0,children:`Configure`});return c?(0,U.jsxs)(w.Root,{open:t,onOpenChange:n,children:[(0,U.jsx)(w.Trigger,{asChild:!0,children:d}),(0,U.jsxs)(w.Content,{children:[(0,U.jsx)(w.Header,{children:(0,U.jsx)(w.Title,{children:e})}),(0,U.jsxs)(w.Body,{children:[(0,U.jsx)(T,{icon:i?h:m,label:`Generate link`,onSelect:()=>{u||o()}}),(0,U.jsx)(T,{icon:a?h:v,label:`Delete`,onSelect:()=>{u||s()}})]})]})]}):(0,U.jsxs)(x.Root,{open:t,onOpenChange:n,children:[(0,U.jsx)(x.Trigger,{asChild:!0,children:d}),(0,U.jsxs)(x.Content,{align:`end`,sideOffset:4,role:`menu`,className:`w-56 overflow-hidden p-0`,children:[(0,U.jsx)(r,{type:`button`,role:`menuitem`,variant:`ghost`,onClick:o,disabled:u,className:`w-full justify-start rounded-none`,leftIcon:i?(0,U.jsx)(h,{className:`animate-spin`,"aria-hidden":!0}):(0,U.jsx)(m,{"aria-hidden":!0}),children:`Generate link`}),(0,U.jsx)(r,{type:`button`,role:`menuitem`,variant:`dangerGhost`,onClick:s,disabled:u,className:`w-full justify-start rounded-none`,leftIcon:a?(0,U.jsx)(h,{className:`animate-spin`,"aria-hidden":!0}):(0,U.jsx)(v,{"aria-hidden":!0}),children:`Delete`})]})]})}function te(e){return e>0xe8d4a51000?e:e*1e3}async function ne(e,t){let{data:n,response:r}=await k.post({url:`/v1/assistants/{assistant_id}/credential-requests`,path:{assistant_id:e},body:t});if(!r?.ok)throw Error(`Failed to create credential request: ${r?.status}`);return n}var J=6;function Y(){let e=I(),t=V(e),n=O.use.assistantId();return O.use.version()!==null&&n===e&&!t?(0,U.jsx)(z,{}):t?(0,U.jsx)(X,{}):null}function X(){let e=I(),n=i(),o=M(),c=L(e),l=a({queryKey:c,queryFn:async()=>{let{data:t}=await j({path:{assistant_id:e},body:{},throwOnError:!0});return{credentials:t.credentials,managedCredentials:t.managedCredentials}},enabled:o,retry:t}),d=(0,H.useMemo)(()=>l.data?.credentials??[],[l.data]),f=(0,H.useMemo)(()=>l.data?.managedCredentials??[],[l.data]),v=N({onError:e=>{E.error(e.message||`Failed to delete credential`)}}),[x,w]=(0,H.useState)(!1),[T,O]=(0,H.useState)(`own`),[k,A]=(0,H.useState)(``),[P,z]=(0,H.useState)(null),[V,W]=(0,H.useState)(null),[G,K]=(0,H.useState)(null),q=v.isPending?`${v.variables?.body?.service}:${v.variables?.body?.field}`:null,Y=(0,H.useMemo)(()=>{let e=k.trim().toLowerCase();return e?d.filter(t=>[t.service,t.field,`${t.service}:${t.field}`,t.alias??``].join(` `).toLowerCase().includes(e)):d},[d,k]);(0,H.useEffect)(()=>{d.length<=J&&A(``)},[d.length]),(0,H.useEffect)(()=>{d.length===0&&f.length>0&&O(`managed`)},[d.length,f.length]);let X=()=>{let t=P;z(null),t&&v.mutate({path:{assistant_id:e},body:{service:t.service,field:t.field}},{onSuccess:()=>{n.invalidateQueries({queryKey:c}),E.success(`Deleted ${t.service}:${t.field}.`)}})},re=async t=>{let n=`${t.service}:${t.field}`;K(n);try{let r=await ne(e,{service:t.service,field:t.field,label:t.alias??void 0});r.ok&&r.url?W({name:n,url:r.url,expiresAt:r.expiresAt??null}):E.error(r.error||`Failed to generate a one-time link`)}catch(e){E.error(e instanceof Error?e.message:`Failed to generate a one-time link`)}finally{K(null)}},ie=()=>{let e=V?.url;e&&F(e,{successMessage:`Link copied to clipboard.`,errorMessage:`Couldn't copy the link. Select it and copy manually.`})};if(l.isLoading)return(0,U.jsx)(`div`,{className:`flex items-center justify-center py-10`,children:(0,U.jsx)(h,{className:`h-5 w-5 animate-spin text-[var(--content-disabled)]`})});let Z=d.length>0,Q=f.length>0,ae=d.length>J,$=T===`managed`&&Q;return(0,U.jsxs)(`div`,{className:`space-y-4`,children:[(0,U.jsx)(B,{title:`Credentials`,subtitle:$?`Provided through your Vellum-managed integrations. These are read-only here.`:`Stored encrypted in your assistant's credential vault. Reveal a value on demand, or replace or delete it at any time.`,accessory:(0,U.jsxs)(`div`,{className:`flex items-center gap-2`,children:[Q?(0,U.jsx)(y,{items:[{value:`own`,label:`Your own`},{value:`managed`,label:`Managed`}],value:T,onChange:O,ariaLabel:`Credential source`}):null,!$&&Z?(0,U.jsx)(r,{type:`button`,variant:`primary`,size:`regular`,onClick:()=>w(!0),leftIcon:(0,U.jsx)(g,{"aria-hidden":!0}),children:`Add`}):null]}),children:$?(0,U.jsx)(`div`,{className:`space-y-2`,children:f.map(e=>(0,U.jsx)(s.Root,{children:(0,U.jsxs)(s.Body,{padding:`sm`,className:`flex items-center gap-4 px-4`,children:[(0,U.jsx)(p,{className:`h-5 w-5 shrink-0 text-[var(--content-secondary)]`,"aria-hidden":!0}),(0,U.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,U.jsx)(`p`,{className:`truncate text-title-small text-[var(--content-default)]`,children:e.provider}),(0,U.jsxs)(`p`,{className:`truncate text-body-medium-lighter text-[var(--content-tertiary)]`,children:[e.accountInfo??e.handle,` · `,e.status]})]}),(0,U.jsx)(b,{tone:`neutral`,children:`Managed`})]})},e.handle))}):(0,U.jsxs)(`div`,{className:`space-y-4`,children:[Z?(0,U.jsxs)(`div`,{className:`space-y-3`,children:[ae?(0,U.jsx)(S,{type:`text`,value:k,onChange:e=>A(e.target.value),placeholder:`Search credentials`,"aria-label":`Search credentials`,leftIcon:(0,U.jsx)(_,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),fullWidth:!0}):null,Y.length===0?(0,U.jsxs)(`p`,{className:`px-1 py-2 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[`No credentials matched “`,k.trim(),`”.`]}):(0,U.jsx)(`div`,{className:`space-y-2`,children:Y.map(t=>{let n=`${t.service}:${t.field}`;return(0,U.jsx)(ee,{credential:t,assistantId:e,generatingLink:G===n,deleting:q===n,onGenerateLink:()=>void re(t),onDelete:()=>z(t)},t.credentialId??n)})})]}):(0,U.jsxs)(`div`,{className:`flex flex-col items-center justify-center px-6 py-12 text-center`,children:[(0,U.jsx)(`div`,{className:`flex h-12 w-12 items-center justify-center rounded-full bg-[var(--surface-base)]`,children:(0,U.jsx)(p,{className:`h-6 w-6 text-[var(--content-disabled)] dark:text-[var(--content-default)]`,"aria-hidden":!0})}),(0,U.jsx)(`h3`,{className:`mt-4 text-title-small text-[var(--content-default)]`,children:`No credentials yet`}),(0,U.jsx)(`p`,{className:`mt-1 text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Add an API key or token to let tools and integrations use it.`})]}),Z?null:(0,U.jsx)(r,{type:`button`,variant:`outlined`,size:`compact`,onClick:()=>w(!0),className:`w-full border-dashed`,leftIcon:(0,U.jsx)(g,{"aria-hidden":!0}),children:`Add Credential`})]})}),(0,U.jsx)(D,{open:P!==null,title:`Delete credential`,message:P?`Delete ${P.service}:${P.field}? Tools and integrations using it will lose access.`:``,confirmLabel:`Delete`,destructive:!0,onConfirm:X,onCancel:()=>z(null)}),(0,U.jsx)(R,{open:x,onClose:()=>w(!1)}),(0,U.jsx)(C.Root,{open:V!==null,onOpenChange:e=>{e||W(null)},children:(0,U.jsxs)(C.Content,{size:`sm`,children:[(0,U.jsxs)(C.Header,{children:[(0,U.jsx)(C.Title,{icon:m,children:`One-time credential link`}),(0,U.jsx)(C.Description,{children:V?`Send this link to whoever should provide ${V.name}. It works exactly once${V.expiresAt===null?``:` and expires ${new Date(te(V.expiresAt)).toLocaleString()}`}. Anyone with the link can set this credential, so share it over a trusted channel.`:``})]}),(0,U.jsx)(C.Body,{children:(0,U.jsx)(S,{label:`Link`,type:`text`,readOnly:!0,value:V?.url??``,onFocus:e=>e.currentTarget.select(),fullWidth:!0})}),(0,U.jsx)(C.Footer,{children:(0,U.jsx)(r,{type:`button`,size:`compact`,onClick:ie,leftIcon:(0,U.jsx)(u,{"aria-hidden":!0}),children:`Copy link`})})]})})]})}export{Y as CredentialsPage};
|