@vellumai/web 0.10.12 → 0.11.0-staging.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{AnimatePresence-3WpfAWHe.js → AnimatePresence-DPfyu3ET.js} +1 -1
- package/dist/assets/{BundleConfirmPage-CDklssHh.js → BundleConfirmPage-CChUOtcg.js} +1 -1
- package/dist/assets/{a2a-invite-DUYZLVQb.js → a2a-invite-pyBtaaeG.js} +1 -1
- package/dist/assets/{about-page-CT70Pgvf.js → about-page-DGUK5p8j.js} +1 -1
- package/dist/assets/access-CHoOc28F.js +1 -0
- package/dist/assets/{account-page-D5cJIu1-.js → account-page-BQkbkIBf.js} +1 -1
- package/dist/assets/{account-shell-C_IH8r44.js → account-shell-Dk4aC-Ls.js} +1 -1
- package/dist/assets/{acp-run-actions-CAjb0Wcm.js → acp-run-actions-BWR9i8MT.js} +1 -1
- package/dist/assets/{acp-run-detail-panel-DqzZdPiN.js → acp-run-detail-panel-np07jHCY.js} +1 -1
- package/dist/assets/{acp-run-store-C6n-XeY_.js → acp-run-store-B_eDLRwl.js} +1 -1
- package/dist/assets/{activity-steps-panel-BzHQOJsQ.js → activity-steps-panel-DA5HdB61.js} +1 -1
- package/dist/assets/add-credential-modal-rP3DdyDH.js +1 -0
- package/dist/assets/{add-credits-modal-CCEMf2_U.js → add-credits-modal-fT_gTTP5.js} +1 -1
- package/dist/assets/ai-page-eBXLZw6t.js +1 -0
- package/dist/assets/animated-avatar-BcgncPkc.js +1 -0
- package/dist/assets/{api-XwdNiVE9.js → api-BlN0EOWF.js} +1 -1
- package/dist/assets/api-CI6Y6DLb.js +1 -0
- package/dist/assets/{api-key-screen-BXn2F-lQ.js → api-key-screen-B6aLgYrf.js} +1 -1
- package/dist/assets/{app-card-Uowaj1kh.js → app-card-A7PMnlAT.js} +1 -1
- package/dist/assets/{archive-redirect-page-CpKvFqvX.js → archive-redirect-page-BH7h0Lk7.js} +1 -1
- package/dist/assets/{assistant-feature-flag-store-CLqMw4mK.js → assistant-feature-flag-store-DV5Zr1c4.js} +1 -1
- package/dist/assets/{assistant-status-panel-DKnWIr7_.js → assistant-status-panel-CxMEVjFY.js} +1 -1
- package/dist/assets/auth-store-BW4V6iLb.js +2 -0
- package/dist/assets/avatar-random-BiEMZGl7.js +1 -0
- package/dist/assets/{avatar-renderer-DK54o2kQ.js → avatar-renderer-ClUVcQmf.js} +1 -1
- package/dist/assets/{background-task-actions-CmYMPa2o.js → background-task-actions-Y-aaTGGd.js} +1 -1
- package/dist/assets/{background-task-detail-panel-KDqjs7i2.js → background-task-detail-panel-CGAeD1Ym.js} +1 -1
- package/dist/assets/{background-task-store-DFS8MP5D.js → background-task-store-DMP8ByUq.js} +1 -1
- package/dist/assets/billing-page-5GkNMPN6.js +3 -0
- package/dist/assets/{billing-redirect-page-BRcj5q0u.js → billing-redirect-page-B1o1rsQZ.js} +1 -1
- package/dist/assets/{bookmarks-page-fFnFzh4F.js → bookmarks-page-B1-9GBEx.js} +1 -1
- package/dist/assets/{browser-CNL8hh8H.js → browser-CTZVDjOL.js} +2 -2
- package/dist/assets/build-state-DaLynPsy.js +1 -0
- package/dist/assets/channels-page-route-BLy5uT8z.js +9 -0
- package/dist/assets/chat-avatar-DQx81apI.js +1 -0
- package/dist/assets/chat-markdown-message-CdM44BjA.js +2 -0
- package/dist/assets/{checkbox-BY0BDJjm.js → checkbox-CRmgkYah.js} +1 -1
- package/dist/assets/checkout-continuation-DIMnSvv3.js +1 -0
- package/dist/assets/checkout-page-BZQpdPLT.js +1 -0
- package/dist/assets/checkout-return-target-DI6Hb-9L.js +1 -0
- package/dist/assets/client-feature-flag-store-BDrcV52r.js +1 -0
- package/dist/assets/{client-identity-BS5mQsaQ.js → client-identity-DhkdvP5w.js} +1 -1
- package/dist/assets/{command-palette-CsRPcIM-.js → command-palette-BTaT__fo.js} +1 -1
- package/dist/assets/{command-palette-window-page-BzQ_oDaq.js → command-palette-window-page-DAC710zo.js} +1 -1
- package/dist/assets/{community-page-mlhk4LsN.js → community-page-CsEKt9wX.js} +1 -1
- package/dist/assets/{connect-page-PuRyFup0.js → connect-page-B4aTS7Yj.js} +1 -1
- package/dist/assets/{consent-controls-BOFoWAYO.js → consent-controls-OcgxuxS0.js} +1 -1
- package/dist/assets/consent-hzYg-zbh.js +1 -0
- package/dist/assets/{contacts-gateway-C5OljhCC.js → contacts-gateway-B6OrAmU3.js} +1 -1
- package/dist/assets/{contacts-page-route-VBlklzVL.js → contacts-page-route-BF8J2JDt.js} +1 -1
- package/dist/assets/{conversation-cache-CqCkWHT6.js → conversation-cache-DU44A0zv.js} +1 -1
- package/dist/assets/{conversation-navigation-Wm7_pLFs.js → conversation-navigation-Bo95jhXQ.js} +1 -1
- package/dist/assets/{conversation-queries-Ba_1sW5M.js → conversation-queries-Bvh4bAZ6.js} +1 -1
- package/dist/assets/{credential-entry-page-Bfrl1sD_.js → credential-entry-page-CHinHO85.js} +1 -1
- package/dist/assets/credentials-page-DzlUvhn4.js +1 -0
- package/dist/assets/{danger-zone-redirect-page-DKfrmf_o.js → danger-zone-redirect-page-SU45WI74.js} +1 -1
- package/dist/assets/debug-page-TgklOyxq.js +4 -0
- package/dist/assets/{deploy-dialogs-BNMcZzII.js → deploy-dialogs-Day3_9Lh.js} +1 -1
- package/dist/assets/{deploy-store-CxnShfQj.js → deploy-store-Brp7LoZ_.js} +1 -1
- package/dist/assets/{detail-card-CwtjhGfi.js → detail-card-Du8OuE3q.js} +1 -1
- package/dist/assets/{detail-panel-stop-button-C1rystDS.js → detail-panel-stop-button-BNuh6N0s.js} +1 -1
- package/dist/assets/{detail-shell-DcNnOqM_.js → detail-shell-Cyqr5FXJ.js} +1 -1
- package/dist/assets/{developer-page-Bu7HBiPJ.js → developer-page-BobJIDnJ.js} +1 -1
- package/dist/assets/{devices-redirect-page-Cvt_H5ig.js → devices-redirect-page-B14wK98N.js} +1 -1
- package/dist/assets/{diagnostics-Dva51gYK.js → diagnostics-T_96Uyh5.js} +1 -1
- package/dist/assets/doctor-handoff-store-CYjL1S0n.js +1 -0
- package/dist/assets/document-viewer-container-BIS1iPUz.js +2 -0
- package/dist/assets/{document-viewer-page-kV6TCXu0.js → document-viewer-page-CcGTGI8C.js} +1 -1
- package/dist/assets/effective-timezone-CmcoXrio.js +1 -0
- package/dist/assets/{emails-page-D9E3uXkG.js → emails-page-CbAcUM70.js} +1 -1
- package/dist/assets/{esm-BWFeAIOX.js → esm-BKewCp71.js} +2 -2
- package/dist/assets/{esm-DKdDWqsF.js → esm-Deuay4YU.js} +2 -2
- package/dist/assets/{esm-C6-ZMSya.js → esm-Dk6A-sQ0.js} +2 -2
- package/dist/assets/{esm-BQjZqfJZ.js → esm-IoT87yZe.js} +2 -2
- package/dist/assets/{esm-BTyZM-kf.js → esm-PYpy75OW.js} +2 -2
- package/dist/assets/esm-xItcektK.js +2 -0
- package/dist/assets/feature-flag-catalog-TjLF99gJ.js +1 -0
- package/dist/assets/file-markdown-DaflJFk7.js +2 -0
- package/dist/assets/{first-run-scope-BoT9LMYw.js → first-run-scope-DKYDP-Kz.js} +1 -1
- package/dist/assets/{funnel-events-CK938pi2.js → funnel-events-n2IVlwTo.js} +1 -1
- package/dist/assets/general-page-CtfWmXZi.js +1 -0
- package/dist/assets/{haptics-D9eNTUq-.js → haptics-DvWjk9Fg.js} +2 -2
- package/dist/assets/hatching-screen-Btkqf3MF.js +1 -0
- package/dist/assets/{home-page-route-BOCisuYY.js → home-page-route-BV2GBxZi.js} +1 -1
- package/dist/assets/{hosting-screen-6xIW6q02.js → hosting-screen-CTtZrpXi.js} +1 -1
- package/dist/assets/{identity-page-route-qWwRSRld.js → identity-page-route-DsU3eoey.js} +1 -1
- package/dist/assets/index-DMFNBbtE.js +11 -0
- package/dist/assets/index-UKZ4bO6i.css +2 -0
- package/dist/assets/{ingest-DGkxw0Go.js → ingest-BizI657K.js} +1 -1
- package/dist/assets/{inspect-page-CRBfQ5WU.js → inspect-page-BcTmA6nR.js} +3 -3
- package/dist/assets/{integration-icon-Dvjn3ytY.js → integration-icon-dv-9Zzx3.js} +1 -1
- package/dist/assets/integrations-page-CTST1yxp.js +1 -0
- package/dist/assets/{intelligence-layout-DP9zklR6.js → intelligence-layout-MNoGhi-l.js} +1 -1
- package/dist/assets/{keyboard-shortcuts-redirect-page--bCvhp62.js → keyboard-shortcuts-redirect-page-CBI_mZIL.js} +1 -1
- package/dist/assets/{library-detail-page-pviljaQw.js → library-detail-page-CI4p4bVi.js} +1 -1
- package/dist/assets/{library-page-CYYuLywk.js → library-page-SAKHIHZb.js} +1 -1
- package/dist/assets/local-mode-BTovbt13.js +39 -0
- package/dist/assets/{local-runtime-upgrade-BggVMXfW.js → local-runtime-upgrade-CoFpjlw3.js} +1 -1
- package/dist/assets/login-flow-B4pa-3II.js +1 -0
- package/dist/assets/{login-page-DdHXGGAt.js → login-page-CVnwfJ3R.js} +1 -1
- package/dist/assets/{logout-page-DjihP6Qk.js → logout-page-km3RHlGI.js} +1 -1
- package/dist/assets/{logs-layout-C84-h0Hn.js → logs-layout-D4Ubybh3.js} +1 -1
- package/dist/assets/{machine-sizes-DAflIPTM.js → machine-sizes-DO8duvpy.js} +1 -1
- package/dist/assets/{memory-page-route-dGWTWCWF.js → memory-page-route-JRgoyHnC.js} +1 -1
- package/dist/assets/{memory-router-playground-page-CjUiz_bH.js → memory-router-playground-page-DvbF6E2-.js} +1 -1
- package/dist/assets/{messages-Dl5_cjD9.js → messages-Coz9buJR.js} +2 -2
- package/dist/assets/{metric-card-CkAD9RpC.js → metric-card-05a5slPx.js} +1 -1
- package/dist/assets/{mobile-sidebar-drawer-CbJ5JfXT.js → mobile-sidebar-drawer-DtKU2vlu.js} +1 -1
- package/dist/assets/native-anchor-CeekjwVy.js +1 -0
- package/dist/assets/native-biometric-BAMIyaSS.js +6 -0
- package/dist/assets/{native-file-B6_oAU2Q.js → native-file-ySSv1sQ7.js} +2 -2
- package/dist/assets/navigation-resolver-D4jPigYv.js +1 -0
- package/dist/assets/{not-found-DV3iLBwm.js → not-found-OqaWNmdx.js} +1 -1
- package/dist/assets/{notifications-page-B9vnqyB1.js → notifications-page-CWtQZnHw.js} +1 -1
- package/dist/assets/{oauth-complete-page-BSxiDbQm.js → oauth-complete-page-rVmA2Cl8.js} +1 -1
- package/dist/assets/{oauth-connection-utils-DbcihBL8.js → oauth-connection-utils-CWPUW4MK.js} +1 -1
- package/dist/assets/{oauth-popup-complete-page-CyYbqLoK.js → oauth-popup-complete-page-DBsOvLES.js} +1 -1
- package/dist/assets/{onboarding-layout-Dd5fPfE7.js → onboarding-layout-DLs1hfp_.js} +1 -1
- package/dist/assets/onboarding-store-bZ2qYISk.js +1 -0
- package/dist/assets/open-workspace-file-DNaU5wg2.js +2 -0
- package/dist/assets/{page-empty-state-BA3_YQN2.js → page-empty-state-L-3_3LSi.js} +1 -1
- package/dist/assets/{page-shell-_QxBKTK3.js → page-shell-C7SUgga9.js} +1 -1
- package/dist/assets/{pairing-page-DPfIgf3F.js → pairing-page-ZkFipOSH.js} +1 -1
- package/dist/assets/{password-reset-page-D55bGMVy.js → password-reset-page-iASQZawH.js} +1 -1
- package/dist/assets/{personality-page-fJJd-i4s.js → personality-page-B621HU2-.js} +1 -1
- package/dist/assets/plans-page-DAVt4mwm.js +1 -0
- package/dist/assets/{platform-detection-CMiRPRCq.js → platform-detection-XEAAu4c-.js} +1 -1
- package/dist/assets/{platform-login-notice-BG9TFAJa.js → platform-login-notice-BaCrIk0m.js} +1 -1
- package/dist/assets/{platform-loopback-page-DunGLusR.js → platform-loopback-page-jBGJSmyh.js} +1 -1
- package/dist/assets/{plugin-detail-page-BngHrN8T.js → plugin-detail-page-Bx2wzKEf.js} +1 -1
- package/dist/assets/{plugins-page-DD0t1_pE.js → plugins-page-B2zQ2iGh.js} +1 -1
- package/dist/assets/{prefs-BZnS5vR_.js → prefs-bw85lYLp.js} +1 -1
- package/dist/assets/{privacy-page-nZvfh3dh.js → privacy-page-DZEcN0PF.js} +1 -1
- package/dist/assets/privacy-screen-DXkQbNvk.js +1 -0
- package/dist/assets/{provider-callback-page-BwANEd-K.js → provider-callback-page-BeDYWdc_.js} +1 -1
- package/dist/assets/{provider-signup-page-Cz2DP-jP.js → provider-signup-page-CVKaVhiB.js} +1 -1
- package/dist/assets/provisioning-targets-BTjyR9nk.js +1 -0
- package/dist/assets/{quick-input-page-CF2MJnCE.js → quick-input-page-Dq-0BGrJ.js} +1 -1
- package/dist/assets/{remote-gateway-session-BHjZ9gQ6.js → remote-gateway-session-yRYdsfDx.js} +1 -1
- package/dist/assets/{research-mock-page-DnbQpZcp.js → research-mock-page-BJEpxdMv.js} +1 -1
- package/dist/assets/research-onboarding-route-DwRSK3R4.js +50 -0
- package/dist/assets/{research-results-view-CxhTn2J7.js → research-results-view-C4sIw2gK.js} +1 -1
- package/dist/assets/{resolved-assistants-store-C-PdxK8f.js → resolved-assistants-store-Dw5UuGyB.js} +1 -1
- package/dist/assets/retire-confirm-dialog-BuS97P1t.js +1 -0
- package/dist/assets/review-terms-screen-CTNEkesk.js +1 -0
- package/dist/assets/{risk-C_bbPQPd.js → risk-DmicWnoH.js} +2 -2
- package/dist/assets/routes-Bzk5oLRb.js +23 -0
- package/dist/assets/routes-D9sNqB_o.js +1 -0
- package/dist/assets/{runtime-upgrade-banner-DQI-l3Yc.js → runtime-upgrade-banner-DPMpuefs.js} +2 -2
- package/dist/assets/schedules-page-A9pwMmex.js +1 -0
- package/dist/assets/{security-redirect-page-BEohiPDW.js → security-redirect-page-4DKqyPsf.js} +1 -1
- package/dist/assets/{select-assistant-screen-C2q8wO2f.js → select-assistant-screen-BPXqMOtp.js} +1 -1
- package/dist/assets/{settings-divider-CXIrJieH.js → settings-divider-Ro7lPCkV.js} +1 -1
- package/dist/assets/settings-layout-CrOIplp2.js +1 -0
- package/dist/assets/settings-navigation-Ccol_TOM.js +1 -0
- package/dist/assets/{share-feedback-modal-B05-nKgu.js → share-feedback-modal-IyuFKIAE.js} +1 -1
- package/dist/assets/{sidebar-tree-ByF78JHW.js → sidebar-tree-_HwQiPki.js} +1 -1
- package/dist/assets/{signup-page-CGauGszD.js → signup-page-D44Im_Pf.js} +1 -1
- package/dist/assets/{signup-shell-Bw6r9tWP.js → signup-shell-CMsBZ8vG.js} +1 -1
- package/dist/assets/{site-favicon-CCyX9r-Z.js → site-favicon-DzmWythg.js} +1 -1
- package/dist/assets/skill-detail-page-HW_A5KMG.js +1 -0
- package/dist/assets/{skill-detail-panel-crqCBZbU.js → skill-detail-panel-CrwVImjM.js} +1 -1
- package/dist/assets/{skills-C1CAcW7T.js → skills-Djg056es.js} +1 -1
- package/dist/assets/{skills-page-BikP-AR7.js → skills-page-DZVxAbua.js} +1 -1
- package/dist/assets/slack-setup-wizard-DK2F8LXc.js +1 -0
- package/dist/assets/{sounds-page-9_otQ97S.js → sounds-page-CtII5pFQ.js} +1 -1
- package/dist/assets/{src-D89CNeuT.js → src-te3YTBG-.js} +4 -4
- package/dist/assets/{start-screen-DSF3melT.js → start-screen-CkJiCl9b.js} +1 -1
- package/dist/assets/{subagent-detail-panel-q0g4JWAX.js → subagent-detail-panel-tuHcbKyo.js} +1 -1
- package/dist/assets/{subagent-store-D-GPthdC.js → subagent-store-CQKOOAm6.js} +1 -1
- package/dist/assets/{superpowers-page-UgdWFWsF.js → superpowers-page-f4EChE6q.js} +1 -1
- package/dist/assets/{system-events-page-Bw94HLwx.js → system-events-page-oxkNLamU.js} +1 -1
- package/dist/assets/{system-events-redirect-page-BGZQC8-K.js → system-events-redirect-page-Bm9bipNo.js} +1 -1
- package/dist/assets/{theme-stage-page-bEZxHTyN.js → theme-stage-page-5wL3M-2c.js} +1 -1
- package/dist/assets/{threshold-presets-BO8En2q0.js → threshold-presets-BdTTHCnm.js} +1 -1
- package/dist/assets/{tiptap-document-editor-CyY1HRzV.js → tiptap-document-editor-CHn2wCDv.js} +1 -1
- package/dist/assets/{tool-detail-panel-DFMOphDJ.js → tool-detail-panel-BqhEUAMJ.js} +1 -1
- package/dist/assets/{transcript-message-body-shared-nWAkSzar.js → transcript-message-body-shared-D3uxHQt5.js} +1 -1
- package/dist/assets/{trust-rules-api-C0-hkXT2.js → trust-rules-api-B5lfygCA.js} +1 -1
- package/dist/assets/{upgrade-cancel-page-DwxI6NLL.js → upgrade-cancel-page-BRA25NVC.js} +1 -1
- package/dist/assets/{upgrade-success-page-SO92J-Rf.js → upgrade-success-page-BlZDEVkm.js} +1 -1
- package/dist/assets/{usage-redirect-page-BJBkecYr.js → usage-redirect-page-BOfJ7uot.js} +1 -1
- package/dist/assets/{use-active-assistant-id-Cjbsk2Q3.js → use-active-assistant-id-CldxA_-M.js} +1 -1
- package/dist/assets/{use-app-theme-Q42fO5Nz.js → use-app-theme-CGie3Dma.js} +1 -1
- package/dist/assets/{use-assistant-capability-gxe56K48.js → use-assistant-capability-C8pZDYlr.js} +1 -1
- package/dist/assets/{use-assistant-identity-details-CpHkzjrI.js → use-assistant-identity-details-CE6-JkNE.js} +1 -1
- package/dist/assets/{use-avatar-accent-var-PV9tsBJj.js → use-avatar-accent-var-vpakP1ce.js} +1 -1
- package/dist/assets/{use-bookmarks-BbJtKyHe.js → use-bookmarks-CIhaNp5_.js} +1 -1
- package/dist/assets/{use-bundled-avatar-components-Gp_YaD6o.js → use-bundled-avatar-components-Bbs4vCnX.js} +2 -2
- package/dist/assets/use-checkout-dismiss-refresh-BpmG1OQ0.js +1 -0
- package/dist/assets/use-command-palette-sections-CXU-OW-6.js +1 -0
- package/dist/assets/{use-edge-swipe-DVeTYbmY.js → use-edge-swipe-Wm9pU2HX.js} +1 -1
- package/dist/assets/{use-edge-swipe-back-DDq-N20h.js → use-edge-swipe-back-BcSHNCwS.js} +1 -1
- package/dist/assets/{use-edit-app-DfFIonqZ.js → use-edit-app-CYK9-rGD.js} +1 -1
- package/dist/assets/{use-effective-timezone-LqzBqHBy.js → use-effective-timezone-Dqs8OaXJ.js} +1 -1
- package/dist/assets/use-invite-link-dialog-DdiGDpLS.js +1 -0
- package/dist/assets/{use-ios-app-nudge-BO8jWfr0.js → use-ios-app-nudge-t0SIn8xv.js} +1 -1
- package/dist/assets/use-is-org-ready-D0q2NIZU.js +1 -0
- package/dist/assets/use-onboarding-login-BmYpiSIt.js +1 -0
- package/dist/assets/use-platform-assistant-id-Cm5BfOD8.js +1 -0
- package/dist/assets/use-platform-gate-bFyCaLbM.js +1 -0
- package/dist/assets/{use-reduced-motion-Se97jRQ-.js → use-reduced-motion-W1fCe3vS.js} +1 -1
- package/dist/assets/{use-save-twilio-credentials-CUQ6gdIj.js → use-save-twilio-credentials-Bm-WW_5V.js} +1 -1
- package/dist/assets/{use-skill-actions-DgK7Nmt1.js → use-skill-actions-C4J1lG_r.js} +1 -1
- package/dist/assets/{use-skill-detail-files-_v4zUF6S.js → use-skill-detail-files-BKtCag3o.js} +1 -1
- package/dist/assets/use-sticky-profiles-mC9bd8xU.js +1 -0
- package/dist/assets/{use-subagent-card-data-YbAN73Fw.js → use-subagent-card-data-Dp1wCoRB.js} +1 -1
- package/dist/assets/use-supports-credentials-settings-BbfghcWq.js +1 -0
- package/dist/assets/{use-swipe-engine-DRvffOuu.js → use-swipe-engine-6PcZZMVD.js} +1 -1
- package/dist/assets/{utils-BtC1KiH4.js → utils-BCDvGOqU.js} +1 -1
- package/dist/assets/{voice-list-DJeZeHuA.js → voice-list-IdN1mqlX.js} +1 -1
- package/dist/assets/{voice-page-DQcyxaPl.js → voice-page-CxWJ-zo7.js} +1 -1
- package/dist/assets/{voice-picker-modal-BXMvQihh.js → voice-picker-modal-BHRanF0C.js} +1 -1
- package/dist/assets/{weather-forecast-display-D2sn4QD4.js → weather-forecast-display-BAAnrNdd.js} +1 -1
- package/dist/assets/{web-Bj8XUknF.js → web-B3Q8ntoM.js} +1 -1
- package/dist/assets/{web-BE7l06mM.js → web-BlvxItuO.js} +1 -1
- package/dist/assets/{welcome-screen-n-cGiojh.js → welcome-screen-jOvMiW_R.js} +1 -1
- package/dist/assets/{workflow-detail-panel-Cq3AwWXE.js → workflow-detail-panel-DGL2BZSr.js} +1 -1
- package/dist/assets/{workflow-store-QV5aMjTt.js → workflow-store-CMNMu-fc.js} +1 -1
- package/dist/assets/workspace-page-BZBNul96.js +1 -0
- package/dist/assets/workspace-tree-query-COH0vdQ-.js +1 -0
- package/dist/index.html +140 -137
- package/package.json +1 -1
- package/dist/assets/access-D3fUSyFH.js +0 -1
- package/dist/assets/ai-page-BznkOakE.js +0 -1
- package/dist/assets/animated-avatar-DzfEDnTh.js +0 -1
- package/dist/assets/api-CJFoPWHm.js +0 -1
- package/dist/assets/auth-store-D9BqFncz.js +0 -2
- package/dist/assets/billing-page-Cc5fHBn2.js +0 -3
- package/dist/assets/build-state-WR9nlRgM.js +0 -1
- package/dist/assets/channels-page-route-wxREzs6W.js +0 -9
- package/dist/assets/chat-avatar-DIDq1Jt5.js +0 -1
- package/dist/assets/chat-markdown-message-ERK48E1Z.js +0 -2
- package/dist/assets/client-feature-flag-store-oTfL8Oiz.js +0 -1
- package/dist/assets/consent-DbD2Hcbf.js +0 -1
- package/dist/assets/credentials-page-B-AJyMvk.js +0 -1
- package/dist/assets/debug-page-DWEIExMH.js +0 -4
- package/dist/assets/document-viewer-container-Cl4jDmfx.js +0 -2
- package/dist/assets/effective-timezone-qiooajmO.js +0 -1
- package/dist/assets/esm-CDPcGg-B.js +0 -2
- package/dist/assets/feature-flag-catalog-BAyJlRMY.js +0 -1
- package/dist/assets/file-Ddp9Dqgl.js +0 -1
- package/dist/assets/file-markdown-CLmQTpqL.js +0 -2
- package/dist/assets/general-page-DpKVqj5t.js +0 -1
- package/dist/assets/hatching-screen-d3SWqFKY.js +0 -1
- package/dist/assets/index-B0l9Wjpj.css +0 -2
- package/dist/assets/index-BOC87TAq.js +0 -11
- package/dist/assets/integrations-page-D5KWY6v-.js +0 -1
- package/dist/assets/local-mode-Ckii2tmN.js +0 -39
- package/dist/assets/login-flow-BCNBNLzu.js +0 -1
- package/dist/assets/native-anchor-CVNubOIm.js +0 -1
- package/dist/assets/native-biometric-CntdlaL-.js +0 -6
- package/dist/assets/onboarding-store-DutUn1E3.js +0 -1
- package/dist/assets/open-workspace-file-CpveqBim.js +0 -2
- package/dist/assets/plans-page-C-JyEPT_.js +0 -1
- package/dist/assets/privacy-screen-D2aDT6E6.js +0 -1
- package/dist/assets/research-onboarding-route-yg2iKw6i.js +0 -50
- package/dist/assets/retire-confirm-dialog--eF_pXhA.js +0 -1
- package/dist/assets/review-terms-screen-Dpk-gyJE.js +0 -1
- package/dist/assets/routes-BBFM42ft.js +0 -23
- package/dist/assets/routes-vE-2hncW.js +0 -1
- package/dist/assets/schedules-page-Dgu-znOf.js +0 -1
- package/dist/assets/settings-layout-b7iBWIT-.js +0 -1
- package/dist/assets/settings-navigation-BGdjm0Ki.js +0 -1
- package/dist/assets/skill-detail-page-GlV5JRzQ.js +0 -1
- package/dist/assets/slack-setup-wizard-DKj1_XdA.js +0 -1
- package/dist/assets/stream-watchdog-BafbDdX9.js +0 -1
- package/dist/assets/use-checkout-dismiss-refresh-kdxxDNpF.js +0 -1
- package/dist/assets/use-command-palette-sections-BWjxkwKB.js +0 -1
- package/dist/assets/use-invite-link-dialog-DX58-LWY.js +0 -1
- package/dist/assets/use-is-org-ready-X_98Cnx9.js +0 -1
- package/dist/assets/use-onboarding-login-B8rpbSEh.js +0 -1
- package/dist/assets/use-platform-gate-Dry0Nv4f.js +0 -1
- package/dist/assets/use-sticky-profiles-B0zVD3uk.js +0 -1
- package/dist/assets/workspace-page-CL9z2Jrs.js +0 -1
- /package/dist/assets/{app-info-qQex8Ndg.js → app-info-DefDjPEl.js} +0 -0
- /package/dist/assets/{app-types-CBg2__YH.js → app-types-DSkgEmV3.js} +0 -0
- /package/dist/assets/{apple-logo-poQac1tY.js → apple-logo--8ZT6Umn.js} +0 -0
- /package/dist/assets/{avatar-bundled-components-CecbESCk.js → avatar-bundled-components-DPqbVXi9.js} +0 -0
- /package/dist/assets/{avatar-subagent-C9WTTUjI.js → avatar-subagent-CRA2B82x.js} +0 -0
- /package/dist/assets/{avatar-svg-compositor-FtVPqzlC.js → avatar-svg-compositor-Dl-ckXRE.js} +0 -0
- /package/dist/assets/{avatar-tone-CMoWR2JX.js → avatar-tone-BKwvoDSj.js} +0 -0
- /package/dist/assets/{browser-timezone-C_0jBUid.js → browser-timezone-CGwaX5Uv.js} +0 -0
- /package/dist/assets/{build.umd-59c0EvgO.js → build.umd-Bixyt_xE.js} +0 -0
- /package/dist/assets/{by-tool-use-id-index-aoRP6d51.js → by-tool-use-id-index-M50wYE1f.js} +0 -0
- /package/dist/assets/{chat-BrL0k2UY.js → chat-CDFCY8f0.js} +0 -0
- /package/dist/assets/{chat-layout-slots-store-C2IFeZFr.js → chat-layout-slots-store-BJfYGnd7.js} +0 -0
- /package/dist/assets/{conversation-list-fetchers-D84gJs6f.js → conversation-list-fetchers-DLZho4T7.js} +0 -0
- /package/dist/assets/{conversation-selection-3EKkKt0G.js → conversation-selection-oJy8Oht3.js} +0 -0
- /package/dist/assets/{conversation-store-bshB7nDP.js → conversation-store-C--wWMNW.js} +0 -0
- /package/dist/assets/{definitions-PikNVFdS.js → definitions-D_AmTPWg.js} +0 -0
- /package/dist/assets/{definitions-OhJf_HMS.js → definitions-JF3PcEff.js} +0 -0
- /package/dist/assets/{dictation-overlay-page-zpoNqudq.js → dictation-overlay-page-DtgaXzdF.js} +0 -0
- /package/dist/assets/{edge-swipe-arbiter-store-DyemvsR-.js → edge-swipe-arbiter-store-CQnDi2yf.js} +0 -0
- /package/dist/assets/{edit-chat-session-yPtopwB6.js → edit-chat-session-D37Qx6ol.js} +0 -0
- /package/dist/assets/{emoji-catalog-data-COLzb2Wj.js → emoji-catalog-data-BCc1YNMR.js} +0 -0
- /package/dist/assets/{environment-store-BFVmN-OW.js → environment-store-Bft0lpgv.js} +0 -0
- /package/dist/assets/{esm-DEY-lP80.js → esm-DNvorKcw.js} +0 -0
- /package/dist/assets/{external-urls-BYwuIdYk.js → external-urls-_vjsdj2L.js} +0 -0
- /package/dist/assets/{eye-bbox-DXmmg9ML.js → eye-bbox-DU39FEUp.js} +0 -0
- /package/dist/assets/{file-editor-DpNdd7HZ.js → file-editor-phorJEVv.js} +0 -0
- /package/dist/assets/{format-date-RZ9mCDCy.js → format-date-BGnM4mqL.js} +0 -0
- /package/dist/assets/{format-file-size-CQaPE33p.js → format-file-size-BgMTiWPt.js} +0 -0
- /package/dist/assets/{get-memory-stats-ERcqnC0Q.js → get-memory-stats-DMSpgqW_.js} +0 -0
- /package/dist/assets/{hard-navigate-DZlpL1No.js → hard-navigate-DyUrcxe0.js} +0 -0
- /package/dist/assets/{latest-assistant-text-D5WR-o6J.js → latest-assistant-text-C0pZSmc9.js} +0 -0
- /package/dist/assets/{link-click-BoSQACXo.js → link-click-DLYgWZdo.js} +0 -0
- /package/dist/assets/{misc-DckBb5zz.js → misc-CuYswARt.js} +0 -0
- /package/dist/assets/{mutation-error-CwYvaYnb.js → mutation-error-DEknRDAQ.js} +0 -0
- /package/dist/assets/{native-deep-link-PvbVHiPM.js → native-deep-link-DCBJ-Rw0.js} +0 -0
- /package/dist/assets/{oauth-popup-DZEqljdC.js → oauth-popup-OhSYYlQF.js} +0 -0
- /package/dist/assets/{onboarding-step-layout-CURfuoh4.js → onboarding-step-layout-D9rghAjS.js} +0 -0
- /package/dist/assets/{optimistic-lifecycle-C2a6IJ7E.js → optimistic-lifecycle-BINTsVFx.js} +0 -0
- /package/dist/assets/{pdf-IQXtc7_x.js → pdf-BlwLcQAc.js} +0 -0
- /package/dist/assets/{plugin-attribution-DCFEMRUF.js → plugin-attribution-DrwveSW_.js} +0 -0
- /package/dist/assets/{plugins-surface-D4i2vqBz.js → plugins-surface-B43Op43l.js} +0 -0
- /package/dist/assets/{pointer-RLpjGG7A.js → pointer-BbPfN86L.js} +0 -0
- /package/dist/assets/{prechat-DIuViPZk.js → prechat-CeL4a_1i.js} +0 -0
- /package/dist/assets/{profile-metadata-h4CTeMKT.js → profile-metadata-BhqRdqUJ.js} +0 -0
- /package/dist/assets/{provider-key-B3R8SlMJ.js → provider-key-1rLTitmu.js} +0 -0
- /package/dist/assets/{proxy-RtD8704m.js → proxy-D7UPVac3.js} +0 -0
- /package/dist/assets/{public-asset-CbDDcomC.js → public-asset-BBVUuTT_.js} +0 -0
- /package/dist/assets/{react-query.gen-Mwd5l-vZ.js → react-query.gen-BC3STDmV.js} +0 -0
- /package/dist/assets/{research-facts-UIXXE8D6.js → research-facts-B7Ev1zv0.js} +0 -0
- /package/dist/assets/{research-onboarding-persistence-CceFfAqE.js → research-onboarding-persistence-51lJoYJ2.js} +0 -0
- /package/dist/assets/{sandbox-bridge-DgDrAWv3.js → sandbox-bridge-BxW8HZq_.js} +0 -0
- /package/dist/assets/{schedules-DF5cTXBf.js → schedules-DIpn4jGl.js} +0 -0
- /package/dist/assets/{sdk.gen-DPKrJeho.js → sdk.gen-B5ygTzyg.js} +0 -0
- /package/dist/assets/{setting-row-0LXvW7Kh.js → setting-row-BwXKepmJ.js} +0 -0
- /package/dist/assets/{sound-manager-xEbUgFv-.js → sound-manager-DlaDOZ8r.js} +0 -0
- /package/dist/assets/{status-badge-pill-z1OKPW3B.js → status-badge-pill-wJPMXQk1.js} +0 -0
- /package/dist/assets/{theme-preferences-ln8xC5zH.js → theme-preferences-Bb2pPRXa.js} +0 -0
- /package/dist/assets/{three-dot-indicator-SJcKW5cG.js → three-dot-indicator-BMvKQ_On.js} +0 -0
- /package/dist/assets/{use-assistant-avatar-DSu2_Mzi.js → use-assistant-avatar-IcRIy2-c.js} +0 -0
- /package/dist/assets/{use-bus-subscription-Cu4Y9DQi.js → use-bus-subscription-nUrbz9Mu.js} +0 -0
- /package/dist/assets/{use-copy-to-clipboard-DBVpNZOl.js → use-copy-to-clipboard-cF7ZSilD.js} +0 -0
- /package/dist/assets/{use-is-mobile-Bz2l7wPL.js → use-is-mobile-BlQuzI5Z.js} +0 -0
- /package/dist/assets/{viewer-store-BDpZVbcr.js → viewer-store-Ct0SDE-n.js} +0 -0
- /package/dist/assets/{web-7I6Bn0iP.js → web-9Cwi5jnT.js} +0 -0
- /package/dist/assets/{web-CBluPLFP.js → web-Bi-BvsRt.js} +0 -0
- /package/dist/assets/{web-Cmg3AbZk.js → web-D486_dlv.js} +0 -0
- /package/dist/assets/{web-DHVjLzid.js → web-DUb4LJ2M.js} +0 -0
- /package/dist/assets/{web-BEpNr5_U.js → web-l9DWMZeA.js} +0 -0
- /package/dist/assets/{web-BPyURh2Z.js → web-sr1ba6fP.js} +0 -0
- /package/dist/assets/{workflow-status-DXdUkbSd.js → workflow-status-HyIIhMBP.js} +0 -0
- /package/dist/assets/{workspace-theme-tokens-J8dqkK9n.js → workspace-theme-tokens-DNNwX-XS.js} +0 -0
- /package/dist/assets/{xterm-CdT0HObJ.js → xterm-DgGqTfet.js} +0 -0
- /package/dist/assets/{xterm-addon-fit-CPcVj1i5.js → xterm-addon-fit-BVObYBMM.js} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./is-electron-m5eeGBnd.js";var t=e=>e,n=(e,t)=>`${e}/${t}`,r=t(`/assistant/settings/usage`),i=`message`,a={assistant:t(`/assistant`),about:t(`/assistant/about`),bundleConfirm:t(`/assistant/bundle/confirm`),remotePair:t(`/assistant/pair`),credentialEntry:t(`/assistant/credentials/enter`),quickInput:t(`/assistant/quick-input`),conversations:t(`/assistant/conversations`),conversation:e=>n(t(`/assistant/conversations`),e),conversationAtMessage:(e,r)=>`${n(t(`/assistant/conversations`),e)}?${i}=${encodeURIComponent(r)}`,conversationWithPrompt:(e,r,i)=>{let a=`${n(t(`/assistant/conversations`),e)}?prompt=${encodeURIComponent(r)}`;return i?`${a}&relay=${encodeURIComponent(i)}`:a},inspect:e=>`${n(t(`/assistant/conversations`),e)}/inspect`,logs:{root:t(`/assistant/logs`),emails:t(`/assistant/logs/emails`),systemEvents:t(`/assistant/logs/system-events`)},account:{root:t(`/account`),login:t(`/account/login`),signup:t(`/account/signup`),providerSignup:t(`/account/provider/signup`),providerCallback:t(`/account/provider/callback`),oauth:{popupComplete:t(`/account/oauth/popup-complete`),complete:t(`/account/oauth/complete`),desktopComplete:t(`/account/oauth/desktop-complete`)}},welcome:t(`/assistant/welcome`),selectAssistant:t(`/assistant/select-assistant`),reviewTerms:t(`/assistant/review-terms`),onboarding:{start:t(`/assistant/onboarding/start`),hosting:t(`/assistant/onboarding/hosting`),apiKey:t(`/assistant/onboarding/api-key`),privacy:t(`/assistant/onboarding/privacy`),hatching:t(`/assistant/onboarding/hatching`),research:t(`/assistant/onboarding/research`)},home:t(`/assistant/home`),schedules:{root:t(`/assistant/schedules`),detail:e=>n(t(`/assistant/schedules`),e)},identity:t(`/assistant/identity`),personality:t(`/assistant/personality`),memory:t(`/assistant/memory`),superpowers:t(`/assistant/superpowers`),plugins:t(`/assistant/plugins`),skills:{root:t(`/assistant/skills`),detail:e=>n(t(`/assistant/skills`),encodeURIComponent(e))},workspace:t(`/assistant/workspace`),library:{root:t(`/assistant/library`),app:e=>n(t(`/assistant/library`),e)},document:e=>n(t(`/assistant/documents`),e),connect:t(`/assistant/connect`),channels:t(`/assistant/channels`),contacts:{root:t(`/assistant/contacts`)},plans:t(`/assistant/plans`),settings:{root:t(`/assistant/settings`),general:t(`/assistant/settings/general`),ai:t(`/assistant/settings/ai`),integrations:t(`/assistant/settings/integrations`),credentials:t(`/assistant/settings/credentials`),notifications:t(`/assistant/settings/notifications`),voice:t(`/assistant/settings/voice`),sounds:t(`/assistant/settings/sounds`),privacy:t(`/assistant/settings/privacy`),bookmarks:t(`/assistant/settings/bookmarks`),usage:r,usageBilling:`${r}?tab=billing`,usageBillingConfigureTopUps:`${r}?tab=billing&configure_top_up=1`,usageBillingCheckout:e=>`${r}?${new URLSearchParams({tab:`billing`,session_id:e}).toString()}`,usageForSchedule:e=>`${r}?${new URLSearchParams({tab:`usage`,range:`7d`,groupBy:`schedule`,scheduleId:e}).toString()}`,community:t(`/assistant/settings/community`),developer:t(`/assistant/settings/developer`),mcp:t(`/assistant/settings/mcp`),debug:t(`/assistant/settings/debug`),dangerZone:t(`/assistant/settings/danger-zone`),systemEvents:t(`/assistant/settings/system-events`),upgradeCancel:t(`/assistant/settings/billing/upgrade/cancel`),upgradeSuccess:t(`/assistant/settings/billing/upgrade/success`)},admin:{root:t(`/admin`)},docs:{hostingOptions:t(`/docs/hosting-options`),legal:{privacyPolicy:t(`/docs/privacy-policy`),termsOfUse:t(`/docs/vellum-terms-of-use`),dataSharing:t(`/docs/data-sharing`),prohibitedUse:t(`/docs/prohibited-use`),privacyAndData:t(`/docs/trust-security/privacy-and-data`)}}},o=[{key:`schedules`,label:`Schedules`,to:a.schedules.root},{key:`superpowers`,label:`My Superpowers`,to:a.superpowers},{key:`plugins`,label:`My Superpowers`,to:a.plugins},{key:`skills`,label:`My Superpowers`,to:a.skills.root},{key:`memory`,label:`Memory`,to:a.memory},{key:`library`,label:`Library`,to:a.library.root},{key:`workspace`,label:`Workspace`,to:a.workspace},{key:`contacts`,label:`Contacts`,to:a.contacts.root},{key:`channels`,label:`Channels`,to:a.channels}],s=[a.identity,a.personality],c=(e,t)=>e===t||e.startsWith(`${t}/`);function l(e){return o.find(({to:t})=>c(e,t))??null}function u(e){return o.find(t=>t.key===e)}function d(e){return s.some(t=>c(e,t))||l(e)!==null}function f(e){return e===a.assistant||e===`${a.assistant}/`||e.startsWith(`${a.conversations}/`)}function p(e){if(e===a.assistant||e===`${a.assistant}/`)return!0;let t=`${a.conversations}/`;if(!e.startsWith(t))return!1;let n=e.slice(t.length).replace(/\/+$/,``);return n.length>0&&!n.includes(`/`)}var m=`vellum.ai`;function h(e){return g(e)}function g(e){return`https://${m}${e}`}function _(){return e()?`${window.__VELLUM_CONFIG__?.webUrl??window.location.origin}${a.admin.root}`:a.admin.root}export{g as a,f as c,_ as i,h as l,u as n,d as o,l as r,p as s,i as t,a as u};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./capture-error-Bj8_eutd.js";import{t as n}from"./react-BFJW0bSv.js";import{t as r}from"./button-Dy5001j6.js";import{f 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"./useInfiniteQuery-Dk8q0n49.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{n as f,t as p}from"./settings-CfuLzwIw.js";import{t as m}from"./chart-column-BLKW3sjY.js";import{t as h}from"./chevron-down-B5A-0g8A.js";import{t as g}from"./chevron-right-HU6H84S0.js";import{t as _}from"./clock-BYTc0Ds9.js";import{t as v}from"./coins-Hrmb9tmj.js";import{t as y}from"./loader-circle-XREx3i4W.js";import{t as b}from"./play-B0-JEtcm.js";import{t as x}from"./repeat-GCVYEp1h.js";import{t as S}from"./trash-2-L5LNgw9o.js";import{t as C}from"./x-JBAsSOmg.js";import{t as w}from"./notice-BMK7xqUw.js";import{i as T,j as E}from"./src-D89CNeuT.js";import{t as D}from"./tag-NXcyiTkK.js";import{n as O,t as k}from"./input-hw3el2GJ.js";import{t as A}from"./toggle-lfnhEAcN.js";import{t as j}from"./modal-BR4CUFBd.js";import{t as M}from"./panel-item-CrtoJCrd.js";import{n as N}from"./toast-LgLp4obE.js";import{t as P}from"./dropdown-BCfnSdIZ.js";import{F,M as I,N as ee,P as te,Vt as ne,Xt as re,Yt as ie,_ as ae,c as L,d as R,dt as z,ft as oe,g as se,j as ce,mt as le,pt as ue,ut as de,v as fe,y as pe}from"./react-query.gen-r3I6j8-1.js";import{u as B}from"./routes-vE-2hncW.js";import{n as me,t as he}from"./conversation-navigation-Wm7_pLFs.js";import{n as ge}from"./use-is-mobile-Bz2l7wPL.js";import{t as _e}from"./effective-timezone-qiooajmO.js";import{t as ve}from"./assistant-feature-flag-store-CLqMw4mK.js";import{t as V}from"./use-effective-timezone-LqzBqHBy.js";import{t as ye}from"./use-assistant-capability-gxe56K48.js";import{t as be}from"./use-active-assistant-id-Cjbsk2Q3.js";import{t as xe}from"./detail-card-CwtjhGfi.js";import{a as Se,c as Ce,i as we,l as Te,n as Ee,o as De,r as Oe,s as ke,t as Ae,u as je}from"./page-empty-state-BA3_YQN2.js";import{r as Me,t as Ne}from"./profile-metadata-h4CTeMKT.js";var H=e(n(),1),Pe={frequency:`daily`,minute:0,hour24:9,weekdays:[1],dayOfMonth:1},U=[{value:0,letter:`S`,short:`Sun`,full:`Sunday`},{value:1,letter:`M`,short:`Mon`,full:`Monday`},{value:2,letter:`T`,short:`Tue`,full:`Tuesday`},{value:3,letter:`W`,short:`Wed`,full:`Wednesday`},{value:4,letter:`T`,short:`Thu`,full:`Thursday`},{value:5,letter:`F`,short:`Fri`,full:`Friday`},{value:6,letter:`S`,short:`Sat`,full:`Saturday`}],Fe=[1,2,3,4,5];function W(e,t,n){return Number.isFinite(e)?Math.min(n,Math.max(t,Math.round(e))):t}function Ie(e){let t=Array.from(new Set(e.map(e=>W(e,0,6)).filter(e=>Number.isInteger(e)))).sort((e,t)=>e-t);return t.length>0?t:[1]}function Le(e){let t=W(e.minute,0,59),n=W(e.hour24,0,23);switch(e.frequency){case`hourly`:return`${t} * * * *`;case`daily`:return`${t} ${n} * * *`;case`weekly`:return`${t} ${n} * * ${Ie(e.weekdays).join(`,`)}`;case`monthly`:return e.dayOfMonth===`last`?`${t} ${n} L * *`:`${t} ${n} ${W(e.dayOfMonth,1,28)} * *`}}function Re(e,t){let n=W(e,0,23),r=W(t,0,59),i=n<12?`AM`:`PM`;return`${n%12==0?12:n%12}:${String(r).padStart(2,`0`)} ${i}`}function ze(e){let t=[`th`,`st`,`nd`,`rd`],n=e%100;return`${e}${t[(n-20)%10]??t[n]??t[0]}`}function Be(e){let t=Ie(e),n=new Set(t);if(t.length===7)return`every day`;if(t.length===5&&Fe.every(e=>n.has(e)))return`every weekday`;if(t.length===2&&n.has(0)&&n.has(6))return`every weekend`;if(t.length===1)return`every ${U[t[0]]?.full??`day`}`;let r=t.map(e=>U[e]?.short??``),i=r.pop();return`every ${r.join(`, `)} & ${i}`}function Ve(e){let t=Re(e.hour24,e.minute);switch(e.frequency){case`hourly`:{let t=W(e.minute,0,59);return`Runs every hour at :${String(t).padStart(2,`0`)}`}case`daily`:return`Runs every day at ${t}`;case`weekly`:return`Runs ${Be(e.weekdays)} at ${t}`;case`monthly`:return e.dayOfMonth===`last`?`Runs on the last day of every month at ${t}`:`Runs on the ${ze(W(e.dayOfMonth,1,28))} of every month at ${t}`}}var G=l(),He=[{value:`hourly`,label:`Hourly`},{value:`daily`,label:`Daily`},{value:`weekly`,label:`Weekly`},{value:`monthly`,label:`Monthly`}],Ue=Array.from({length:12},(e,t)=>{let n=t+1;return{value:String(n),label:String(n)}}),We=Array.from({length:12},(e,t)=>{let n=t*5,r=String(n).padStart(2,`0`);return{value:r,label:r}}),Ge=[...Array.from({length:28},(e,t)=>{let n=t+1;return{value:String(n),label:ze(n)}}),{value:`last`,label:`Last day`}],Ke=[{value:`AM`,label:`AM`},{value:`PM`,label:`PM`}];function qe(e,t){let n=e%12;return t===`PM`?n+12:n}function Je(e){try{let t=new Intl.DateTimeFormat(`en-US`,{timeZone:e,timeZoneName:`short`}).formatToParts(new Date).find(e=>e.type===`timeZoneName`)?.value;return t&&t!==e?`${e} · ${t}`:e}catch{return e}}function Ye({isOpen:e,assistantId:t,onClose:n,onCreated:r}){return(0,G.jsx)(j.Root,{open:e,onOpenChange:e=>{e||n()},children:e?(0,G.jsx)(Xe,{assistantId:t,onClose:n,onCreated:r}):null})}function Xe({assistantId:e,onClose:t,onCreated:n}){let i=V(),[a,o]=(0,H.useState)(``),[s,c]=(0,H.useState)(``),[l,u]=(0,H.useState)(``),[d,f]=(0,H.useState)(`simple`),[p,m]=(0,H.useState)(Pe),[h,g]=(0,H.useState)(``),[_,v]=(0,H.useState)(!1),[y,b]=(0,H.useState)(null),x=a.trim(),S=s.trim(),C=l.trim(),w=h.trim(),T=(0,H.useMemo)(()=>d===`simple`?Le(p):w,[d,p,w]),E=(0,H.useMemo)(()=>d===`simple`?Ve(p):w||`Enter a cron expression to continue.`,[d,p,w]),D=(0,H.useMemo)(()=>Je(i),[i]),A=x.length>0&&S.length>0&&C.length>0&&T.length>0&&!_;return(0,G.jsxs)(j.Content,{size:`md`,children:[(0,G.jsxs)(j.Header,{children:[(0,G.jsx)(j.Title,{children:`Create schedule`}),(0,G.jsx)(j.Description,{children:`Schedule a recurring instruction for your assistant. Runs in execute mode — the message is delivered to the assistant on each fire.`})]}),(0,G.jsxs)(`form`,{onSubmit:async t=>{if(t.preventDefault(),A){v(!0),b(null);try{await Ee(e,{name:x,description:S,expression:T,message:C,timezone:i}),v(!1),n()}catch(e){b(e instanceof Error?e.message:`Failed to create schedule.`),v(!1)}}},children:[(0,G.jsx)(j.Body,{children:(0,G.jsxs)(`div`,{className:`flex flex-col gap-5`,children:[(0,G.jsx)(k,{label:`Name`,placeholder:`Morning briefing`,value:a,onChange:e=>o(e.target.value),required:!0,autoFocus:!0,fullWidth:!0}),(0,G.jsx)(O,{label:`Description`,placeholder:`What is this schedule for?`,value:s,onChange:e=>c(e.target.value),required:!0,fullWidth:!0,rows:2}),(0,G.jsx)(tt,{label:`Repeat`,children:d===`simple`?(0,G.jsx)(Ze,{cadence:p,onChange:m}):(0,G.jsx)(et,{value:h,onChange:g,onUseSimple:()=>f(`simple`)})}),(0,G.jsx)(nt,{summary:E,mono:d===`advanced`&&w.length>0,timezoneLabel:D}),d===`simple`?(0,G.jsx)(`button`,{type:`button`,onClick:()=>{g(e=>e||Le(p)),f(`advanced`)},className:`self-start text-body-small-default text-[var(--content-tertiary)] underline-offset-2 transition-colors hover:text-[var(--content-default)] hover:underline`,children:`Advanced — write a cron expression`}):null,(0,G.jsx)(O,{label:`Message`,placeholder:`What should the assistant do on each fire?`,value:l,onChange:e=>u(e.target.value),required:!0,fullWidth:!0,rows:4}),y?(0,G.jsx)(`p`,{className:`text-body-small-default text-[var(--system-negative-strong)]`,children:y}):null]})}),(0,G.jsxs)(j.Footer,{children:[(0,G.jsx)(r,{variant:`outlined`,onClick:t,type:`button`,children:`Cancel`}),(0,G.jsx)(r,{variant:`primary`,type:`submit`,disabled:!A,children:_?`Creating…`:`Create schedule`})]})]})]})}function Ze({cadence:e,onChange:t}){return(0,G.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,G.jsx)(E,{items:He,value:e.frequency,onChange:n=>t({...e,frequency:n}),ariaLabel:`How often the schedule runs`}),e.frequency===`hourly`?(0,G.jsx)(K,{label:`At minute`,children:(0,G.jsx)(P,{options:We,value:String(e.minute).padStart(2,`0`),onChange:n=>t({...e,minute:Number(n)}),"aria-label":`Minute`,className:`w-24`})}):null,e.frequency===`weekly`?(0,G.jsx)(K,{label:`On these days`,children:(0,G.jsx)($e,{value:e.weekdays,onChange:n=>t({...e,weekdays:n})})}):null,e.frequency===`monthly`?(0,G.jsx)(K,{label:`On day`,children:(0,G.jsx)(P,{options:Ge,value:e.dayOfMonth===`last`?`last`:String(e.dayOfMonth),onChange:n=>t({...e,dayOfMonth:n===`last`?`last`:Number(n)}),"aria-label":`Day of month`,className:`w-32`})}):null,e.frequency===`hourly`?null:(0,G.jsx)(K,{label:`At time`,children:(0,G.jsx)(Qe,{hour24:e.hour24,minute:e.minute,onChange:(n,r)=>t({...e,hour24:n,minute:r})})})]})}function Qe({hour24:e,minute:t,onChange:n}){let r=e<12?`AM`:`PM`,i=e%12==0?12:e%12;return(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(P,{options:Ue,value:String(i),onChange:e=>n(qe(Number(e),r),t),"aria-label":`Hour`,className:`w-[72px]`}),(0,G.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:`:`}),(0,G.jsx)(P,{options:We,value:String(t).padStart(2,`0`),onChange:t=>n(e,Number(t)),"aria-label":`Minute`,className:`w-[72px]`}),(0,G.jsx)(`div`,{className:`w-[112px]`,children:(0,G.jsx)(E,{items:Ke,value:r,onChange:e=>n(qe(i,e),t),ariaLabel:`AM or PM`})})]})}function $e({value:e,onChange:t}){let n=new Set(e),r=e=>{let r=new Set(n);r.has(e)?r.size>1&&r.delete(e):r.add(e),t([...r].sort((e,t)=>e-t))};return(0,G.jsx)(`div`,{className:`flex gap-1.5`,children:U.map(e=>{let t=n.has(e.value);return(0,G.jsx)(`button`,{type:`button`,onClick:()=>r(e.value),"aria-pressed":t,"aria-label":e.full,title:e.full,className:u(`flex h-9 w-9 items-center justify-center rounded-md border text-body-medium-default transition-colors`,t?`border-[var(--border-active)] bg-[var(--surface-active)] text-[var(--content-emphasised)]`:`border-[var(--field-border)] text-[var(--content-tertiary)] hover:border-[var(--border-active)] hover:text-[var(--content-default)]`),children:e.letter},e.value)})})}function et({value:e,onChange:t,onUseSimple:n}){return(0,G.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,G.jsx)(k,{placeholder:`0 9 * * *`,value:e,onChange:e=>t(e.target.value),fullWidth:!0,className:`font-mono`,"aria-label":`Cron expression`,helperText:`Standard 5-field cron (minute hour day month weekday). RRULE expressions are also accepted.`}),(0,G.jsx)(`button`,{type:`button`,onClick:n,className:`self-start text-body-small-default text-[var(--content-tertiary)] underline-offset-2 transition-colors hover:text-[var(--content-default)] hover:underline`,children:`← Back to the simple builder`})]})}function tt({label:e,children:t}){return(0,G.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,G.jsx)(`span`,{className:`text-body-small-default text-[var(--content-secondary)]`,children:e}),t]})}function K({label:e,children:t}){return(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-3 gap-y-1.5`,children:[(0,G.jsx)(`span`,{className:`min-w-[88px] text-body-small-default text-[var(--content-tertiary)]`,children:e}),t]})}function nt({summary:e,mono:t,timezoneLabel:n}){return(0,G.jsxs)(`div`,{className:`flex items-start gap-3 rounded-lg border border-[var(--border-subtle)] bg-[var(--surface-lift)] px-3.5 py-3`,children:[(0,G.jsx)(_,{className:`mt-0.5 h-4 w-4 shrink-0 text-[var(--content-tertiary)]`,"aria-hidden":!0}),(0,G.jsxs)(`div`,{className:`min-w-0`,children:[(0,G.jsx)(`p`,{className:u(`text-body-medium-default text-[var(--content-default)]`,t&&`break-all font-mono`),children:e}),(0,G.jsxs)(`p`,{className:`mt-0.5 text-body-small-default text-[var(--content-tertiary)]`,children:[`Times use your timezone — `,n,`.`]})]})]})}function rt(e=_e(),t=Date.now()){return Me(`7d`,e,t)}function q(e){return e?new Date(e).toLocaleString(void 0,{month:`short`,day:`numeric`,hour:`numeric`,minute:`2-digit`,hour12:!0}):`—`}function it(e){return e==null?`—`:e<1e3?`${e}ms`:`${(e/1e3).toFixed(1)}s`}var at=new Intl.NumberFormat(void 0,{style:`currency`,currency:`USD`,minimumFractionDigits:2,maximumFractionDigits:2});function J(e){return e==null||!Number.isFinite(e)?`—`:at.format(e)}function Y(e){return`${e.toLocaleString()} ${e===1?`run`:`runs`}`}function ot(e){let t=Math.round(e/6e4);return t>=60&&t%60==0?`Every ${t/60} hr`:`Every ${t} min`}function st(e){if(!e)return;let t=new Set,n=[];for(let r of e)for(let e of r.runs)t.has(e.id)||(t.add(e.id),n.push(e));return n}function ct(e){return!!e.conversationId&&e.conversationExists===!0&&e.conversationArchivedAt==null}function lt(e){return ct(e)?e.conversationId??null:null}function X(e){return typeof e==`string`&&e.length>0}var ut={heartbeat:`system-heartbeat`,consolidation:`system-consolidation`,retrospective:`system-memory-retrospective`};function dt(e){if(e.cronExpression)return e.timezone?`Cron: ${e.cronExpression} (${e.timezone})`:`Cron: ${e.cronExpression}`;let t=ot(e.intervalMs);return e.activeHoursStart!=null&&e.activeHoursEnd!=null&&(t+=` (${e.activeHoursStart}:00–${e.activeHoursEnd}:00)`),t}function ft(e){return ot(e.intervalMs)}var pt=`After conversation activity`;function mt(e,t){return e.status===`fired`||e.status===`cancelled`?!0:e.status===`firing`?!1:e.nextRunAt==null||!e.enabled&&e.nextRunAt<=t}function ht(e,t){let n=[],r=[],i=[];for(let a of e)a.isOneShot?mt(a,t)?i.push(a):r.push(a):n.push(a);return n.sort((e,t)=>e.enabled===t.enabled?(e.nextRunAt??1/0)-(t.nextRunAt??1/0):e.enabled?-1:1),r.sort((e,t)=>(e.nextRunAt??1/0)-(t.nextRunAt??1/0)),i.sort((e,t)=>{let n=e.lastRunAt??e.nextRunAt??0;return(t.lastRunAt??t.nextRunAt??0)-n}),{recurring:n,upcomingOneTime:r,pastOneTime:i}}function gt(e,t,n=!0){return{queryKey:[{_id:`schedulesUsagesummaryGet`,path:{assistant_id:e??``},_tz:t}],queryFn:()=>e?Se(e,rt(t)):Promise.resolve([]),enabled:n,staleTime:1e4}}function _t(e){return{scheduleId:e,runCount:0,totalEstimatedCostUsd:0,eventCount:0}}function vt(e,t,n){let r=(t??[]).filter(e=>{let t=e.startedAt??e.createdAt;return t>=n.from&&t<=n.to});return{scheduleId:e,runCount:r.length,totalEstimatedCostUsd:r.reduce((e,t)=>{let n=t.estimatedCostUsd;return typeof n==`number`&&Number.isFinite(n)?e+n:e},0),eventCount:0}}function yt({status:e}){return(0,G.jsx)(`span`,{className:`inline-block h-2 w-2 rounded-full`,style:{backgroundColor:e===`ok`||e===`completed`?`var(--system-positive-strong)`:e===`error`||e===`failed`?`var(--system-negative-strong)`:`var(--content-tertiary)`},"aria-label":e??`unknown`})}function bt({scheduleName:e,usage:t,onOpenUsage:n}){if(t.status===`loading`)return(0,G.jsxs)(`div`,{"aria-label":`Loading schedule usage`,className:`flex w-[156px] shrink-0 items-center justify-end gap-3`,children:[(0,G.jsx)(`span`,{className:`h-5 w-16 animate-pulse rounded bg-[var(--surface-muted)]`}),(0,G.jsx)(`span`,{className:`h-5 w-16 animate-pulse rounded bg-[var(--surface-muted)]`})]});let r=t.status===`error`,i=r?`--`:J(t.summary.totalEstimatedCostUsd),a=r?`--`:Y(t.summary.runCount),o=t.status===`ready`&&!(t.summary.totalEstimatedCostUsd>0),s=t.status===`ready`&&t.summary.runCount===0,c=o?`text-[var(--content-tertiary)]`:`text-[var(--content-default)]`,l=s?`text-[var(--content-tertiary)]`:`text-[var(--content-default)]`;return(0,G.jsxs)(`div`,{className:`flex w-[156px] shrink-0 items-center justify-end gap-3 text-right text-body-small-default`,children:[n?(0,G.jsx)(`button`,{type:`button`,onClick:n,"aria-label":`View usage for ${e}`,className:`min-w-[64px] cursor-pointer rounded px-1 py-0.5 text-right transition-colors hover:bg-[var(--surface-hover)] ${c}`,children:i}):(0,G.jsx)(`span`,{"aria-label":`Cost for ${e} in the last 7 days: ${i}`,className:`block min-w-[64px] px-1 py-0.5 ${c}`,children:i}),(0,G.jsx)(`span`,{"aria-label":`Runs for ${e} in the last 7 days: ${a}`,className:`block min-w-[64px] px-1 py-0.5 ${l}`,children:a})]})}function xt({name:e,subtitle:t,enabled:n,nextRunAt:r,lastRunAt:i,usage:a,helperText:o,statusLabel:s,statusTone:c=`neutral`,onClick:l}){return(0,G.jsx)(`div`,{className:`flex flex-wrap items-center gap-3 rounded-md px-2 py-3 transition-colors hover:bg-[var(--surface-hover)] [&+&]:border-t [&+&]:border-[var(--border-base)]`,children:(0,G.jsxs)(`button`,{type:`button`,onClick:l,"aria-label":`Open ${e}`,className:`flex min-w-0 flex-1 cursor-pointer flex-wrap items-center gap-3 text-left focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)]`,children:[(0,G.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,G.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,G.jsx)(`span`,{className:`truncate text-body-medium-default text-[var(--content-default)]`,children:e})}),(0,G.jsx)(`div`,{className:`mt-0.5 text-body-small-default text-[var(--content-tertiary)]`,children:t}),o?(0,G.jsx)(`div`,{className:`mt-0.5 text-body-small-default text-[var(--content-secondary)]`,children:o}):null,(0,G.jsxs)(`div`,{className:`mt-0.5 flex flex-wrap items-center gap-x-3 gap-y-1 text-body-small-default text-[var(--content-tertiary)]`,children:[r?(0,G.jsxs)(`span`,{children:[`Next: `,q(r)]}):null,i?(0,G.jsxs)(`span`,{children:[`Last: `,q(i)]}):null]})]}),(0,G.jsxs)(`div`,{className:`flex shrink-0 flex-wrap items-center justify-end gap-3`,children:[(0,G.jsx)(bt,{scheduleName:e,usage:a}),s?(0,G.jsx)(D,{tone:c,children:s}):(0,G.jsx)(`span`,{className:`h-2 w-2 rounded-full`,style:{backgroundColor:n?`var(--system-positive-strong)`:`var(--content-disabled)`},"aria-label":n?`enabled`:`disabled`}),(0,G.jsx)(g,{className:`h-4 w-4 text-[var(--content-tertiary)]`})]})]})})}function St({heartbeatConfig:e,consolidationConfig:t,retrospectiveConfig:n,heartbeatUsage:r,consolidationUsage:i,retrospectiveUsage:a,isLoading:o,hasError:s,onRetry:c,onSelectHeartbeat:l,onSelectConsolidation:u,onSelectRetrospective:d}){let f=e!=null,p=t?.available===!0,m=n?.available===!0,g=f||p||m;if(!o&&!s&&!g)return null;let _=[...f?[r]:[],...p?[i]:[],...m?[a]:[]].filter(e=>e.status===`ready`),v=_.reduce((e,t)=>e+(t.summary.totalEstimatedCostUsd??0),0),b=o?(0,G.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,G.jsx)(y,{className:`h-5 w-5 animate-spin text-stone-400`})}):s&&!g?(0,G.jsxs)(w,{tone:`error`,children:[`Failed to load system jobs.`,` `,(0,G.jsx)(`button`,{type:`button`,onClick:c,className:`cursor-pointer underline hover:no-underline`,children:`Retry`})]}):(0,G.jsxs)(`div`,{children:[f?(0,G.jsx)(xt,{name:`Heartbeat`,subtitle:dt(e),enabled:e.enabled,nextRunAt:e.nextRunAt,lastRunAt:e.lastRunAt,usage:r,onClick:l}):null,p?(0,G.jsx)(xt,{name:`Consolidation`,subtitle:ft(t),enabled:t.enabled,helperText:t.enabled?void 0:`Memory is off, so consolidation is paused.`,nextRunAt:t.nextRunAt,lastRunAt:t.lastRunAt,usage:i,statusLabel:t.enabled?void 0:`Paused`,statusTone:`warning`,onClick:u}):null,m?(0,G.jsx)(xt,{name:`Memory retrospective`,subtitle:pt,enabled:n.enabled,helperText:n.enabled?void 0:`Memory is off, so retrospectives are paused.`,nextRunAt:n.nextRunAt,lastRunAt:n.lastRunAt,usage:a,statusLabel:n.enabled?void 0:`Paused`,statusTone:`warning`,onClick:d}):null,s?(0,G.jsx)(`div`,{className:`pt-3 first:pt-0`,children:(0,G.jsxs)(w,{tone:`error`,children:[`Some system jobs failed to load.`,` `,(0,G.jsx)(`button`,{type:`button`,onClick:c,className:`cursor-pointer underline hover:no-underline`,children:`Retry`})]})}):null]});return(0,G.jsx)(xe,{children:(0,G.jsx)(T.Root,{type:`multiple`,children:(0,G.jsxs)(T.Item,{value:`system-jobs`,children:[(0,G.jsxs)(T.Trigger,{className:`group justify-between gap-3`,children:[(0,G.jsxs)(`span`,{className:`flex min-w-0 flex-wrap items-baseline gap-x-2 gap-y-1 text-left`,children:[(0,G.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-secondary)]`,children:`System`}),(0,G.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Built-in jobs managed by the assistant runtime`})]}),(0,G.jsxs)(`span`,{className:`flex shrink-0 items-center gap-3`,children:[_.length>0?(0,G.jsxs)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:[J(v),` (7d)`]}):null,(0,G.jsx)(h,{className:`h-4 w-4 shrink-0 text-[var(--content-tertiary)] transition-transform group-data-[state=open]:rotate-180`})]})]}),(0,G.jsx)(T.Content,{children:(0,G.jsx)(`div`,{className:`mt-3`,children:b})})]})})})}function Z(e,t){return{id:e.id,jobId:t,status:e.status,startedAt:e.startedAt??e.scheduledFor,finishedAt:e.finishedAt,durationMs:e.durationMs,output:`skipReason`in e&&e.skipReason?`Skipped: ${e.skipReason}`:null,error:e.error,conversationId:e.conversationId,conversationExists:e.conversationExists,conversationArchivedAt:e.conversationArchivedAt,estimatedCostUsd:e.estimatedCostUsd,createdAt:e.createdAt,...`title`in e?{title:e.title}:{}}}function Ct(e){return e.runs.map(e=>Z(e,`heartbeat`))}function wt(e){return e.runs.map(e=>Z(e,`consolidation`))}function Tt(e){return e.runs.map(e=>Z(e,`retrospective`))}var Q=1e4;function Et(e,t,n,r,i){return e?{status:`loading`}:t?{status:`error`}:{status:`ready`,summary:vt(n,r,i)}}function Dt(e,n){let r=o(),i={path:{assistant_id:e??``}},{data:a,isLoading:c,isError:l,refetch:u}=s({...ce(i),enabled:!!e,staleTime:Q}),{data:d,isLoading:f,isError:p,refetch:m}=s({...se(i),enabled:!!e,staleTime:Q}),{data:h,isLoading:g,isError:_,refetch:v}=s({...de(i),enabled:!!e,staleTime:Q}),y={path:{assistant_id:e??``},query:{limit:100}},{data:b,isLoading:x,isError:S,refetch:C}=s({...F(y),select:Ct,enabled:!!e&&a!=null,staleTime:Q}),{data:w,isLoading:T,isError:E,refetch:D}=s({...pe(y),select:wt,enabled:!!e&&d?.available===!0,staleTime:Q}),{data:O,isLoading:k,isError:A,refetch:j}=s({...ue(y),select:Tt,enabled:!!e&&h?.available===!0,staleTime:Q}),M=(0,H.useMemo)(()=>rt(n),[n]),P=(0,H.useMemo)(()=>Et(x,S,ut.heartbeat,b,M),[b,S,x,M]),ee=(0,H.useMemo)(()=>Et(T,E,ut.consolidation,w,M),[w,E,T,M]),ae=(0,H.useMemo)(()=>Et(k,A,ut.retrospective,O,M),[O,A,k,M]),L=t=>{if(!e)return;let n={heartbeat:{config:ce(i).queryKey,runs:F(y).queryKey,infinite:te(i)},consolidation:{config:se(i).queryKey,runs:pe(y).queryKey,infinite:fe(i)},retrospective:{config:de(i).queryKey,runs:ue(y).queryKey,infinite:oe(i)}}[t];r.invalidateQueries({queryKey:n.config}),r.invalidateQueries({queryKey:n.runs}),r.invalidateQueries({queryKey:n.infinite})},R=re({onSuccess:e=>{e.ran?N.success(`Heartbeat started.`):N.info(`Heartbeat skipped.`)},onError:e=>{t(e,{context:`heartbeat_run_now`}),N.error(`Failed to run heartbeat.`)},onSettled:()=>L(`heartbeat`)}),z=ne({onSuccess:e=>{e.ran?N.success(`Consolidation queued.`):N.info(`Consolidation already queued or running.`)},onError:e=>{t(e,{context:`consolidation_run_now`}),N.error(`Failed to run consolidation.`)},onSettled:()=>L(`consolidation`)}),le=ie({onSuccess:e=>{I(r,i,e),N.success(e.enabled?`Heartbeat enabled.`:`Heartbeat disabled.`)},onError:e=>{t(e,{context:`heartbeat_toggle`}),N.error(`Failed to toggle heartbeat.`)}});return{heartbeatConfig:a,consolidationConfig:d,retrospectiveConfig:h,heartbeatUsage:P,consolidationUsage:ee,retrospectiveUsage:ae,isLoading:c||f||g,hasError:l||p||_,isHeartbeatRunning:R.isPending,isConsolidationRunning:z.isPending,isHeartbeatLoading:c,isHeartbeatError:l,isConsolidationLoading:f,isConsolidationError:p,isRetrospectiveLoading:g,isRetrospectiveError:_,refetchHeartbeat:u,refetchConsolidation:m,refetchRetrospective:v,runHeartbeatNow:()=>{e&&R.mutate({path:{assistant_id:e}})},runConsolidationNow:()=>{e&&z.mutate({path:{assistant_id:e}})},toggleHeartbeat:t=>{e&&le.mutate({body:{enabled:t},path:{assistant_id:e}})},refetchAll:()=>{u(),m(),v(),C(),D(),j()}}}function Ot({children:e}){return(0,G.jsx)(d,{variant:`label-small-default`,as:`div`,className:`mb-2 uppercase tracking-wider text-[var(--content-tertiary)]`,children:e})}function $({label:e,value:t}){return(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-4 py-1`,children:[(0,G.jsx)(`span`,{className:`text-body-medium-lighter text-[var(--content-secondary)]`,children:e}),(0,G.jsx)(`span`,{className:`min-w-0 text-right text-body-medium-lighter text-[var(--content-default)]`,children:t})]})}function kt({icon:e,value:t,label:n}){return(0,G.jsxs)(`div`,{className:`flex items-center gap-3 rounded-lg border border-[var(--border-base)] bg-[var(--surface-lift)] p-3`,children:[(0,G.jsx)(`span`,{className:`flex h-8 w-8 shrink-0 items-center justify-center rounded-md bg-[var(--surface-sunken)] text-[var(--content-secondary)]`,children:e}),(0,G.jsxs)(`div`,{className:`min-w-0`,children:[(0,G.jsx)(`div`,{className:`truncate text-body-large-default text-[var(--content-default)]`,children:t}),(0,G.jsx)(`div`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:n})]})]})}function At({usage:e}){return e.status===`loading`?(0,G.jsx)(`div`,{className:`grid grid-cols-2 gap-3 pt-2`,children:Array.from({length:2},(e,t)=>(0,G.jsx)(`div`,{className:`h-[60px] animate-pulse rounded-lg bg-[var(--surface-muted)]`},t))}):e.status===`error`?null:(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-3 pt-2`,children:[(0,G.jsx)(kt,{icon:(0,G.jsx)(v,{className:`h-4 w-4`}),value:J(e.summary.totalEstimatedCostUsd),label:`7 Day Cost`}),(0,G.jsx)(kt,{icon:(0,G.jsx)(x,{className:`h-4 w-4`}),value:Y(e.summary.runCount),label:`7 Day Runs`})]})}function jt(e){return e.exists&&e.archivedAt==null}function Mt({run:e,index:t,isExpanded:n,disableDirectOpen:r,onOpenConversation:i,onToggleDetails:a}){let o=lt(e),s=e.conversations??(o?[{id:o,title:null,exists:!0,archivedAt:null}]:[]),c=X(e.output),l=X(e.error),d=!r&&s.length===1&&jt(s[0])?s[0].id:null,f=!d&&(s.length>0||c||l),p=`schedule-run-details-${t}`,m=!!d||f,h=(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(yt,{status:e.status}),(0,G.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,G.jsx)(`div`,{className:`text-body-medium-lighter text-[var(--content-default)]`,children:q(e.startedAt)}),(0,G.jsxs)(`div`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:[it(e.durationMs),` ·`,` `,J(e.estimatedCostUsd)]}),e.status===`error`&&e.error?(0,G.jsxs)(`div`,{className:`mt-0.5 text-body-small-default text-[var(--system-negative-strong)]`,children:[e.error.slice(0,120),e.error.length>120?`…`:``]}):null]}),m?(0,G.jsx)(g,{className:u(`h-4 w-4 shrink-0 text-[var(--content-tertiary)] transition-transform`,f&&n?`rotate-90`:``)}):null]}),_=f&&n?(0,G.jsx)(`div`,{id:p,className:`px-2 pb-3`,children:(0,G.jsxs)(`div`,{className:`space-y-3 rounded-md border border-[var(--border-subtle)] bg-[var(--surface-sunken)] p-3`,children:[s.length>0?(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`div`,{className:`mb-1 text-body-small-default text-[var(--content-secondary)]`,children:`Conversations`}),(0,G.jsx)(`div`,{className:`space-y-1`,children:s.map(e=>jt(e)?(0,G.jsx)(`button`,{type:`button`,onClick:()=>i(e.id),className:`block w-full truncate text-left text-body-small-default text-[var(--content-default)] hover:underline`,children:X(e.title)?e.title:`Conversation`},e.id):(0,G.jsxs)(`span`,{className:`block truncate text-body-small-default text-[var(--content-tertiary)] italic`,children:[X(e.title)?e.title:`Conversation`,` `,e.exists?`(archived)`:`(unavailable)`]},e.id))})]}):null,c?(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`div`,{className:`mb-1 text-body-small-default text-[var(--content-secondary)]`,children:`Output`}),(0,G.jsx)(`pre`,{className:`max-h-64 overflow-auto whitespace-pre-wrap break-words text-body-small-default font-mono text-[var(--content-default)]`,children:e.output})]}):null,l?(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`div`,{className:`mb-1 text-body-small-default text-[var(--content-secondary)]`,children:`Error`}),(0,G.jsx)(`pre`,{className:`max-h-64 overflow-auto whitespace-pre-wrap break-words text-body-small-default font-mono text-[var(--system-negative-strong)]`,children:e.error})]}):null]})}):null;return d?(0,G.jsx)(`div`,{children:(0,G.jsx)(`button`,{type:`button`,onClick:()=>i(d),"aria-label":`Open conversation for run at ${q(e.startedAt)}`,className:`flex w-full cursor-pointer items-center gap-3 px-2 py-3 text-left shadow-none transition-colors hover:bg-[var(--surface-hover)] focus:outline-none`,children:h})}):f?(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`button`,{type:`button`,onClick:()=>a(e.id),"aria-label":`Toggle details for run at ${q(e.startedAt)}`,"aria-expanded":n,"aria-controls":p,className:`flex w-full cursor-pointer items-center gap-3 px-2 py-3 text-left shadow-none transition-colors hover:bg-[var(--surface-hover)] focus:outline-none`,children:h}),_]}):(0,G.jsx)(`div`,{className:`flex items-center gap-3 px-2 py-3`,children:h})}function Nt({runs:e,isLoading:t,disableDirectOpen:n,onOpenConversation:r}){let[i,a]=(0,H.useState)(null);return t?(0,G.jsx)(`div`,{className:`flex items-center justify-center py-6`,children:(0,G.jsx)(y,{className:`h-5 w-5 animate-spin text-stone-400`})}):!e||e.length===0?(0,G.jsx)(`p`,{className:`py-2 text-body-medium-lighter text-[var(--content-tertiary)] italic`,children:`No runs yet.`}):(0,G.jsx)(`div`,{className:`divide-y divide-[var(--border-base)]`,children:e.map((e,t)=>(0,G.jsx)(Mt,{run:e,index:t,isExpanded:i===e.id,disableDirectOpen:n,onOpenConversation:r,onToggleDetails:e=>a(t=>t===e?null:e)},e.id))})}function Pt({schedule:e,assistantId:n,usage:i,isMobile:o,onClose:c,onDeleted:l}){let f=a(),{data:p,isLoading:h}=s({queryKey:le({path:{assistant_id:n,id:e.id}}),queryFn:()=>we(n,e.id),staleTime:1e4}),[g,_]=(0,H.useState)(!1),[v,b]=(0,H.useState)(!1),[x,w]=(0,H.useState)(!1),T=async()=>{_(!0);try{await De(n,e.id)}catch(e){t(e,{context:`schedule_run_now`}),N.error(`Failed to run schedule.`)}finally{_(!1)}},E=async()=>{w(!0);try{await Oe(n,e.id),l()}catch(e){t(e,{context:`schedule_delete`}),N.error(`Failed to delete schedule.`),w(!1),b(!1)}};return(0,G.jsxs)(`div`,{className:u(`flex h-full flex-col bg-[var(--surface-overlay)]`,!o&&`rounded-[var(--radius-xl)] border border-[var(--border-base)]`),children:[(0,G.jsxs)(`div`,{className:`flex shrink-0 items-center gap-3 border-b border-[var(--border-base)] p-[var(--app-spacing-lg)]`,children:[(0,G.jsx)(`div`,{className:`min-w-0 flex-1`,children:(0,G.jsx)(d,{variant:`title-small`,className:`truncate text-[var(--content-default)]`,children:e.name})}),(0,G.jsx)(r,{variant:`ghost`,iconOnly:(0,G.jsx)(C,{}),onClick:c,"aria-label":`Close schedule details`,tooltip:`Close`,className:`shrink-0`})]}),(0,G.jsxs)(`div`,{className:`flex-1 space-y-6 overflow-y-auto px-[var(--app-spacing-lg)] py-[var(--app-spacing-lg)]`,children:[e.description?(0,G.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-secondary)]`,children:e.description}):null,(0,G.jsxs)(`section`,{children:[(0,G.jsx)(Ot,{children:`Details`}),(0,G.jsxs)(`div`,{className:`rounded-lg border border-[var(--border-base)] bg-[var(--surface-lift)] px-4 py-2`,children:[e.cadenceDescription?(0,G.jsx)($,{label:`Cadence`,value:e.cadenceDescription}):null,(0,G.jsx)($,{label:`Mode`,value:e.mode}),(0,G.jsx)($,{label:`Status`,value:e.enabled?`Enabled`:`Disabled`}),(0,G.jsx)($,{label:`Next run`,value:q(e.nextRunAt)}),e.lastRunAt?(0,G.jsx)($,{label:`Last run`,value:(0,G.jsxs)(`span`,{className:`flex items-center justify-end gap-2`,children:[(0,G.jsx)(yt,{status:e.lastStatus}),q(e.lastRunAt)]})}):null]})]}),(0,G.jsx)(At,{usage:i}),(0,G.jsxs)(`section`,{children:[(0,G.jsx)(Ot,{children:`Recent runs`}),(0,G.jsx)(Nt,{runs:p?.runs,isLoading:h,disableDirectOpen:e.mode===`script`,onOpenConversation:e=>he(f,e)})]})]}),(0,G.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between gap-2 border-t border-[var(--border-base)] p-[var(--app-spacing-lg)]`,children:[v?(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(r,{variant:`ghost`,onClick:()=>b(!1),disabled:x,children:`Cancel`}),(0,G.jsx)(r,{variant:`danger`,onClick:()=>void E(),disabled:x,children:x?`Deleting…`:`Yes, delete`})]}):(0,G.jsx)(r,{variant:`dangerOutline`,leftIcon:(0,G.jsx)(S,{className:`h-3.5 w-3.5`}),onClick:()=>b(!0),children:`Delete`}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(r,{variant:`outlined`,leftIcon:(0,G.jsx)(m,{className:`h-3.5 w-3.5`}),onClick:()=>f(B.settings.usageForSchedule(e.id)),children:`View usage`}),e.mode===`script`?(0,G.jsx)(r,{variant:`primary`,leftIcon:g?(0,G.jsx)(y,{className:`h-3.5 w-3.5 animate-spin`}):void 0,onClick:()=>void T(),disabled:g,children:g?`Running…`:`Run now`}):null]})]})]})}function Ft(e){if(e.status===`loading`)return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`span`,{className:`h-4 w-12 animate-pulse rounded bg-[var(--surface-muted)]`}),(0,G.jsx)(`span`,{className:`h-4 w-10 animate-pulse rounded bg-[var(--surface-muted)]`})]});if(e.status===`error`)return(0,G.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`—`});let{summary:t}=e;return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`span`,{className:`text-body-small-default text-[var(--content-secondary)]`,children:J(t.totalEstimatedCostUsd)}),(0,G.jsx)(`span`,{className:`text-body-small-default text-[var(--content-secondary)]`,children:Y(t.runCount)})]})}function It({name:e,metaParts:t,usage:n,enabled:r,selected:i,onClick:a,onToggle:o,toggleAriaLabel:s}){return(0,G.jsxs)(`div`,{className:`flex items-center gap-3 rounded-md px-2 py-3 transition-colors [&+&]:border-t [&+&]:border-[var(--border-base)] ${i?`bg-[var(--surface-active)]`:`hover:bg-[var(--surface-hover)]`}`,children:[o?(0,G.jsx)(A,{checked:r,onChange:o,"aria-label":s}):null,(0,G.jsxs)(`button`,{type:`button`,onClick:a,className:`flex min-w-0 flex-1 cursor-pointer items-center gap-4 text-left focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)]`,children:[(0,G.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-1`,children:[(0,G.jsx)(`span`,{className:`truncate text-body-medium-default text-[var(--content-default)]`,children:e}),t.length>0?(0,G.jsx)(`span`,{className:`flex min-w-0 items-center gap-2 text-label-small-default text-[var(--content-tertiary)]`,children:t.map((e,t)=>(0,G.jsxs)(H.Fragment,{children:[t>0?(0,G.jsx)(`span`,{className:`h-[3px] w-[3px] shrink-0 rounded-full bg-[var(--content-tertiary)]`}):null,(0,G.jsx)(`span`,{className:`truncate`,children:e})]},t))}):null]}),(0,G.jsxs)(`div`,{className:`flex shrink-0 items-center gap-4`,children:[Ft(n),(0,G.jsx)(g,{className:`h-4 w-4 text-[var(--content-tertiary)]`})]})]})]})}function Lt({schedule:e,usage:t,selected:n,onClick:r,onToggle:i}){let a=e.isOneShot?``:e.cadenceDescription.trim(),o=e.lastRunAt??e.nextRunAt,s=[a,o?q(o):``].filter(Boolean);return(0,G.jsx)(It,{name:e.name,metaParts:s,usage:t,enabled:e.enabled,selected:n,onClick:r,onToggle:i,toggleAriaLabel:i?`Toggle ${e.name}`:void 0})}function Rt({recurring:e,oneTime:t,pastOneTime:n,usageForSchedule:i,isLoading:a,isError:o,refetch:s,onToggle:c,onSelectSchedule:l,selectedScheduleId:u,onStartNewChat:d,onCreateSchedule:p,pastOpen:m,onPastOpenChange:h,systemTasksSlot:_}){let v=e=>(0,G.jsx)(Lt,{schedule:e,usage:i(e.id),selected:e.id===u,onClick:()=>l(e.id),onToggle:t=>c(e.id,t)},e.id),y=e=>(0,G.jsx)(Lt,{schedule:e,usage:i(e.id),selected:e.id===u,onClick:()=>l(e.id)},e.id),b=n.length>0?(0,G.jsx)(T.Root,{type:`single`,collapsible:!0,className:`mt-3`,value:m?`past`:``,onValueChange:e=>h(e===`past`),children:(0,G.jsxs)(T.Item,{value:`past`,children:[(0,G.jsxs)(T.Trigger,{className:`group gap-[var(--app-spacing-xs)] px-2 text-label-small-default text-[var(--content-tertiary)]`,children:[(0,G.jsx)(g,{size:14,"aria-hidden":!0,className:`shrink-0 transition-transform group-data-[state=open]:rotate-90`}),(0,G.jsxs)(`span`,{children:[`Past (`,n.length,`)`]})]}),(0,G.jsx)(T.Content,{children:(0,G.jsx)(`div`,{className:`pt-1`,children:n.map(y)})})]})}):null;return(0,G.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto`,children:[a?(0,G.jsx)(`div`,{className:`space-y-3`,children:Array.from({length:2},(e,t)=>(0,G.jsx)(`div`,{className:`h-12 animate-pulse rounded-md bg-[var(--surface-muted)]`},t))}):o&&e.length===0?(0,G.jsx)(w,{tone:`error`,actions:(0,G.jsx)(`button`,{type:`button`,onClick:s,className:`cursor-pointer underline hover:no-underline`,children:`Retry`}),children:`Failed to load schedules.`}):e.length===0&&t.length===0&&n.length===0?(0,G.jsx)(Ae,{icon:f,title:`No schedules yet`,description:`Ask your assistant to set one up, or create one yourself.`,actions:(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(r,{variant:`primary`,size:`regular`,onClick:d,children:`New Conversation`}),(0,G.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`or`}),(0,G.jsx)(r,{variant:`outlined`,size:`regular`,onClick:p,children:`Create schedule`})]})}):(0,G.jsxs)(`div`,{children:[e.map(v),t.length>0?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`p`,{className:`mt-3 px-2 text-label-small-default text-[var(--content-tertiary)]`,children:`One-time`}),t.map(y)]}):null,b]}),_?(0,G.jsx)(`div`,{className:`mt-[var(--app-spacing-lg)]`,children:_}):null]})}var zt=`Default (assistant's main model)`,Bt=`Custom call-site model`;function Vt(e,t){return t?.[e]?.displayName??e}function Ht(e,t){if(e==null)return;if(e.provider!=null||e.model!=null)return Bt;let n=e.profile?.trim();return n?`Override (${Vt(n,t)})`:void 0}function Ut({assistantId:e,pinnedProfile:t,defaultCallSite:n=`mainAgent`,fallbackLabel:r=zt,respectCallSiteOverride:i=!1}){let a=t==null,{data:o}=s({...L({path:{assistant_id:e}}),enabled:!!e,staleTime:6e4}),c=(0,H.useMemo)(()=>o?Ne(o):{},[o]),{data:l}=s({...R({path:{assistant_id:e}}),enabled:!!e&&a,staleTime:6e4}),u=a&&i?Ht(o?.llm?.callSites?.[n],c):void 0,d=a?l?.callSites.find(e=>e.id===n)?.defaultProfile:void 0,f=t==null?u??(d==null?r:`Default (${Vt(d,c)})`):Vt(t,c);return(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,G.jsx)(`span`,{className:`text-[var(--content-secondary)]`,children:`Model profile`}),(0,G.jsx)(`span`,{className:`min-w-0 text-right`,children:f})]})}function Wt({runs:e,isLoading:t,emptyMessage:n=`No runs yet.`,hasMore:i=!1,isLoadingMore:o=!1,onLoadMore:s}){let c=a(),[l,u]=(0,H.useState)(null);return(0,G.jsx)(xe,{title:`Recent runs`,children:t?(0,G.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,G.jsx)(y,{className:`h-5 w-5 animate-spin text-stone-400`})}):!e||e.length===0?(0,G.jsx)(`p`,{className:`py-4 text-center text-body-medium-lighter text-[var(--content-tertiary)] italic`,children:n}):(0,G.jsxs)(`div`,{className:`divide-y divide-[var(--border-base)]`,children:[e.map((e,t)=>{let n=lt(e),r=X(e.output),i=X(e.error),a=!n&&(r||i),o=l===e.id,s=`schedule-run-details-${t}`;return(0,G.jsxs)(`div`,{children:[(0,G.jsx)(M,{label:(0,G.jsxs)(`span`,{className:`flex min-w-0 flex-1 items-center gap-3`,children:[(0,G.jsx)(yt,{status:e.status}),(0,G.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,G.jsx)(`span`,{className:`block truncate text-body-medium-lighter text-[var(--content-default)]`,children:X(e.title)?e.title:q(e.startedAt)}),(0,G.jsxs)(`span`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:[X(e.title)?`${q(e.startedAt)} · `:``,it(e.durationMs),` ·`,` `,J(e.estimatedCostUsd),e.status===`error`&&e.error&&(0,G.jsxs)(`span`,{className:`ml-2 text-[var(--system-negative-strong)]`,children:[e.error.slice(0,80),e.error.length>80?`…`:``]})]})]}),n||a?(0,G.jsx)(g,{className:`h-4 w-4 shrink-0 text-[var(--content-tertiary)] transition-transform ${o?`rotate-90`:``}`}):null]}),onSelect:n?()=>he(c,n):a?()=>u(o?null:e.id):void 0,"aria-label":`Run at ${q(e.startedAt)}`,"aria-expanded":a?o:void 0,"aria-controls":a?s:void 0,className:`h-auto py-2.5 gap-3 -mx-2 px-2`}),a&&o?(0,G.jsx)(`div`,{id:s,className:`px-2 pb-3`,children:(0,G.jsxs)(`div`,{className:`space-y-3 rounded-md border border-[var(--border-subtle)] bg-[var(--surface-sunken)] p-3`,children:[r?(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`div`,{className:`mb-1 text-body-small-default text-[var(--content-secondary)]`,children:`Output`}),(0,G.jsx)(`pre`,{className:`max-h-64 overflow-auto whitespace-pre-wrap break-words text-body-small-default font-mono text-[var(--content-default)]`,children:e.output})]}):null,i?(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`div`,{className:`mb-1 text-body-small-default text-[var(--content-secondary)]`,children:`Error`}),(0,G.jsx)(`pre`,{className:`max-h-64 overflow-auto whitespace-pre-wrap break-words text-body-small-default font-mono text-[var(--system-negative-strong)]`,children:e.error})]}):null]})}):null]},e.id)}),i&&s?(0,G.jsx)(`div`,{className:`flex justify-center pt-3`,children:(0,G.jsx)(r,{variant:`outlined`,size:`compact`,onClick:s,disabled:o,leftIcon:o?(0,G.jsx)(y,{className:`h-3.5 w-3.5 animate-spin`}):void 0,children:o?`Loading…`:`Load more`})}):null]})})}var Gt={heartbeat:`heartbeatAgent`,consolidation:`memoryV2Consolidation`,retrospective:`memoryRetrospective`};function Kt({children:e}){return(0,G.jsx)(d,{variant:`label-small-default`,as:`div`,className:`mb-2 uppercase tracking-wider text-[var(--content-tertiary)]`,children:e})}function qt({kind:e,assistantId:t,systemTasks:n,canOpenMemorySettings:i,isMobile:o,onClose:s}){let l=a(),{heartbeatConfig:f,consolidationConfig:m,retrospectiveConfig:h}=n,g,_,v,x,S,T,E;e===`heartbeat`?(g=`Heartbeat`,_=f?dt(f):``,v=f?.enabled??!1,x=f?.nextRunAt??null,S=f?.lastRunAt??null,T=n.isHeartbeatRunning,E=n.runHeartbeatNow):e===`consolidation`?(g=`Consolidation`,_=m?ft(m):``,v=m?.enabled??!1,x=m?.nextRunAt??null,S=m?.lastRunAt??null,T=n.isConsolidationRunning,E=n.runConsolidationNow):(g=`Memory retrospective`,_=pt,v=h?.enabled??!1,x=h?.nextRunAt??null,S=h?.lastRunAt??null,T=!1,E=void 0);let D=e!==`heartbeat`,O=e===`retrospective`,k=D&&!v,j=T||k,M=D?v?`On · Managed by Memory`:`Paused`:v?`Enabled`:`Disabled`,N=O?`Memory is off, so retrospectives are paused. Turn Memory back on to resume them.`:`Memory is off, so consolidation is paused. Turn Memory back on to resume consolidation.`,P=D&&v&&i,F={path:{assistant_id:t},query:{limit:25}},I=e===`heartbeat`?ee(F):e===`consolidation`?ae(F):z(F),{data:te,isLoading:ne,fetchNextPage:re,hasNextPage:ie,isFetchingNextPage:L}=c({queryKey:I.queryKey,queryFn:I.queryFn,initialPageParam:{path:F.path,query:{}},getNextPageParam:e=>e.nextCursor??void 0,staleTime:1e4}),R=st(te?.pages.map(t=>({runs:t.runs.map(t=>Z(t,e))})));return(0,G.jsxs)(`div`,{className:u(`flex h-full flex-col bg-[var(--surface-overlay)]`,!o&&`rounded-[var(--radius-xl)] border border-[var(--border-base)]`),children:[(0,G.jsxs)(`div`,{className:`flex shrink-0 items-center gap-3 border-b border-[var(--border-base)] p-[var(--app-spacing-lg)]`,children:[(0,G.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,G.jsx)(d,{variant:`title-small`,className:`truncate text-[var(--content-default)]`,children:g}),_?(0,G.jsx)(d,{variant:`body-small-default`,as:`p`,className:`truncate text-[var(--content-tertiary)]`,children:_}):null]}),(0,G.jsx)(r,{variant:`ghost`,iconOnly:(0,G.jsx)(C,{}),onClick:s,"aria-label":`Close schedule details`,tooltip:`Close`,className:`shrink-0`})]}),(0,G.jsxs)(`div`,{className:`flex-1 space-y-6 overflow-y-auto px-[var(--app-spacing-lg)] py-[var(--app-spacing-lg)]`,children:[(0,G.jsxs)(`section`,{children:[(0,G.jsx)(Kt,{children:`Details`}),(0,G.jsxs)(`div`,{className:`space-y-2 rounded-lg border border-[var(--border-base)] bg-[var(--surface-lift)] px-4 py-3 text-body-medium-lighter`,children:[(0,G.jsx)(Ut,{assistantId:t,defaultCallSite:Gt[e],fallbackLabel:`Default (system task model)`,respectCallSiteOverride:!0}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,G.jsx)(`span`,{className:`text-[var(--content-secondary)]`,children:`Status`}),(0,G.jsxs)(`span`,{className:`flex items-center gap-2 text-[var(--content-default)]`,children:[(0,G.jsx)(`span`,{children:M}),D?null:(0,G.jsx)(A,{checked:v,onChange:n.toggleHeartbeat,"aria-label":`Toggle ${g}`})]})]}),O?null:(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,G.jsx)(`span`,{className:`text-[var(--content-secondary)]`,children:`Next run`}),(0,G.jsx)(`span`,{className:`text-[var(--content-default)]`,children:q(x)})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,G.jsx)(`span`,{className:`text-[var(--content-secondary)]`,children:`Last run`}),(0,G.jsx)(`span`,{className:`text-[var(--content-default)]`,children:q(S)})]})]}),k?(0,G.jsx)(w,{tone:`warning`,className:`mt-4`,actions:i?(0,G.jsx)(r,{variant:`outlined`,size:`compact`,onClick:()=>l(`${B.settings.developer}?tab=memory`),children:`Turn on Memory`}):void 0,children:N}):null]}),(0,G.jsx)(Wt,{runs:R,isLoading:ne,hasMore:ie,isLoadingMore:L,onLoadMore:()=>void re()})]}),P||E?(0,G.jsxs)(`div`,{className:`flex shrink-0 items-center justify-end gap-2 border-t border-[var(--border-base)] p-[var(--app-spacing-lg)]`,children:[P?(0,G.jsx)(r,{variant:`outlined`,leftIcon:(0,G.jsx)(p,{className:`h-3.5 w-3.5`}),onClick:()=>l(`${B.settings.developer}?tab=memory`),children:`Memory settings`}):null,E?(0,G.jsx)(r,{variant:`primary`,leftIcon:T?(0,G.jsx)(y,{className:`h-3.5 w-3.5 animate-spin`}):(0,G.jsx)(b,{className:`h-3.5 w-3.5`}),onClick:E,disabled:j,children:T?`Running…`:`Run now`}):null]}):null]})}function Jt(e){let n=V(),[r]=(0,H.useState)(()=>Date.now()),{data:i,isLoading:a,isError:o,refetch:c}=s(ke(e)),{data:l,isLoading:u,isError:d}=s(gt(e,n,!0)),{recurring:f,oneTime:p,pastOneTime:m}=(0,H.useMemo)(()=>{let e=ht(i??[],r);return{recurring:e.recurring,oneTime:e.upcomingOneTime,pastOneTime:e.pastOneTime}},[r,i]),h=(0,H.useMemo)(()=>new Map((l??[]).map(e=>[e.scheduleId,e])),[l]);return{recurring:f,oneTime:p,pastOneTime:m,usageForSchedule:(0,H.useCallback)(e=>u?{status:`loading`}:d?{status:`error`}:{status:`ready`,summary:h.get(e)??_t(e)},[d,u,h]),handleToggle:(0,H.useCallback)(async(n,r)=>{if(e)try{await Ce(e,n,r),c()}catch(e){t(e,{context:`schedule_toggle`}),N.error(`Failed to toggle schedule.`)}},[e,c]),isLoading:a,isError:o,refetch:(0,H.useCallback)(()=>{c()},[c])}}function Yt(){let e=a(),{scheduleId:t}=i(),n=be(),r=ge(),o=V(),s=Jt(n),c=Dt(n,o),l=ye(`memoryOptOut`),u=ve.use.settingsDeveloperNav(),d=l&&u===!0,[f,p]=(0,H.useState)(!1),m=t??null,[h,g]=(0,H.useState)(null),[_,v]=(0,H.useState)(!1),y=(0,H.useCallback)(t=>{e(t?B.schedules.detail(t):B.schedules.root)},[e]),b=m?s.recurring.find(e=>e.id===m)??s.oneTime.find(e=>e.id===m)??s.pastOneTime.find(e=>e.id===m)??null:null;(0,H.useEffect)(()=>{m&&!s.isLoading&&!s.isError&&!b&&y(null)},[m,b,s.isLoading,s.isError,y]);let x=h===`heartbeat`?c.heartbeatConfig!=null:h===`consolidation`?c.consolidationConfig?.available===!0:h===`retrospective`?c.retrospectiveConfig?.available===!0:!1;(0,H.useEffect)(()=>{h&&!c.isLoading&&!x&&g(null)},[h,x,c.isLoading]);let S=(0,H.useCallback)(e=>{g(null),y(e)},[y]),C=(0,H.useCallback)(e=>{m&&y(null),g(e)},[y,m]),w=(0,H.useCallback)(()=>{me(e)},[e]),T=(b?(0,G.jsx)(Pt,{schedule:b,assistantId:n,usage:s.usageForSchedule(b.id),isMobile:r,onClose:()=>y(null),onDeleted:()=>{y(null),s.refetch()}}):null)??(h&&x?(0,G.jsx)(qt,{kind:h,assistantId:n,systemTasks:c,canOpenMemorySettings:d,isMobile:r,onClose:()=>g(null)}):null),E=(0,G.jsx)(Rt,{recurring:s.recurring,oneTime:s.oneTime,pastOneTime:s.pastOneTime,usageForSchedule:s.usageForSchedule,isLoading:s.isLoading,isError:s.isError,refetch:s.refetch,onToggle:s.handleToggle,onSelectSchedule:S,selectedScheduleId:m,onStartNewChat:w,onCreateSchedule:()=>p(!0),pastOpen:_,onPastOpenChange:v,systemTasksSlot:(0,G.jsx)(St,{heartbeatConfig:c.heartbeatConfig,consolidationConfig:c.consolidationConfig,retrospectiveConfig:c.retrospectiveConfig,heartbeatUsage:c.heartbeatUsage,consolidationUsage:c.consolidationUsage,retrospectiveUsage:c.retrospectiveUsage,isLoading:c.isLoading,hasError:c.hasError,onRetry:c.refetchAll,onSelectHeartbeat:()=>C(`heartbeat`),onSelectConsolidation:()=>C(`consolidation`),onSelectRetrospective:()=>C(`retrospective`)})});return T&&r?(0,G.jsx)(je,{children:T}):(0,G.jsxs)(G.Fragment,{children:[T&&!r?(0,G.jsx)(Te,{storageKey:`schedulesDetailDrawerWidth`,detailKey:m??h??void 0,section:E,detail:T}):E,(0,G.jsx)(Ye,{isOpen:f,assistantId:n,onClose:()=>p(!1),onCreated:()=>{p(!1),s.refetch()}})]})}export{Yt as SchedulesPage};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{l as n,r,u as i}from"./chunk-5KNZJZUH-Bsoom5--.js";import{t as a}from"./jsx-runtime-D3ZM-ToX.js";import{t as o}from"./use-supports-bookmarks-C3J7FtDn.js";import{t as s}from"./log-in-CqVJRYe-.js";import{t as c}from"./log-out-B4hsBWnk.js";import{n as l}from"./resolved-assistants-store-C-PdxK8f.js";import{i as u}from"./auth-store-D9BqFncz.js";import{u as d}from"./routes-vE-2hncW.js";import{i as f}from"./use-platform-gate-Dry0Nv4f.js";import{t as p}from"./client-feature-flag-store-oTfL8Oiz.js";import{r as m,t as h}from"./settings-navigation-BGdjm0Ki.js";import{t as g}from"./use-onboarding-login-B8rpbSEh.js";import{t as _}from"./assistant-feature-flag-store-CLqMw4mK.js";import{n as v,t as y}from"./sidebar-tree-ByF78JHW.js";var b=e(t(),1),x=a();function S(){let e=_.use.settingsDeveloperNav(),t=_.use.credentialsSettings(),a=p.use.platformNotifications(),S=o(l.use.activeAssistantId()),C=f({platformHostedOnly:!0}),w=f()===`full`?`Billing & Usage`:`Usage`,{pathname:T}=n(),E=i(),D=u(),{login:O}=g(),k=(0,b.useMemo)(()=>h.filter(e=>!(e.id===`notifications`&&(!a||C===`gated`)||e.id===`bookmarks`&&!S||e.id===`credentials`&&!t||e.id===`developer`)).map(e=>e.id===`billing`?{...e,label:w}:e),[a,C,S,t,w]),A=(0,b.useMemo)(()=>{let t=[];return e&&t.push(...h.filter(e=>e.id===`developer`)),t.push(D?{id:`logout`,label:`Log Out`,icon:c,onSelect:()=>void m(E)}:{id:`login`,label:`Log In`,icon:s,onSelect:()=>void O()}),t},[e,D,E,O]),j=(0,b.useMemo)(()=>{if(T===d.settings.root)return`Settings`;let e=h.find(e=>T===e.href||T.startsWith(e.href+`/`));return e?e.id===`billing`?w:e.label:`Settings`},[T,w]);return(0,x.jsx)(v,{backHref:d.assistant,sidebar:(0,x.jsx)(y,{items:k,bottomItems:A,indexPath:d.settings.root}),title:j,children:(0,x.jsx)(r,{})})}export{S as SettingsLayout};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./bell-Ct4a9v6Y.js";import{n as t}from"./use-supports-bookmarks-C3J7FtDn.js";import{t as n}from"./bug-VUcJFHwN.js";import{t as r}from"./chart-column-BLKW3sjY.js";import{t as i}from"./code-qafFA0_-.js";import{n as a,t as o}from"./sliders-horizontal-slneqAyY.js";import{t as s}from"./key-round-0Zop_GsZ.js";import{t as c}from"./mic-xmDFUbCL.js";import{t as l}from"./puzzle-BVC3TGko.js";import{t as u}from"./shield-check-22NwY9JM.js";import{t as d}from"./users-iLvfYFOP.js";import{t as f}from"./volume-2-CvT-JEIl.js";import{d as p,f as m,n as h}from"./local-mode-Ckii2tmN.js";import{t as g}from"./is-electron-m5eeGBnd.js";import{n as _}from"./auth-store-D9BqFncz.js";import{g as v}from"./native-biometric-CntdlaL-.js";import{u as y}from"./routes-vE-2hncW.js";import"./build-state-WR9nlRgM.js";import{t as b}from"./hard-navigate-DZlpL1No.js";function x(){return m()?y.welcome:y.onboarding.privacy}function S(e){g()&&window.vellum?.identity?.setName(e)}async function C(e){if(m()){let t=h();if(t&&p(t)){await v(!1),_.setState({platformSession:`absent`});return}await v(!1),await _.getState().logout(),e(x())}else await _.getState().logout(),S(``),b(y.account.login)}var w=[{id:`assistant-status`,label:`General`,href:y.settings.general,icon:o},{id:`model`,label:`Models & Services`,href:y.settings.ai,icon:a},{id:`integrations`,label:`Integrations`,href:y.settings.integrations,icon:l},{id:`credentials`,label:`Credentials`,href:y.settings.credentials,icon:s},{id:`notifications`,label:`Notifications`,href:y.settings.notifications,icon:e},{id:`voice`,label:`Voice`,href:y.settings.voice,icon:c},{id:`sounds`,label:`Sounds`,href:y.settings.sounds,icon:f},{id:`privacy`,label:`Permissions & Privacy`,href:y.settings.privacy,icon:u},{id:`bookmarks`,label:`Bookmarks`,href:y.settings.bookmarks,icon:t},{id:`billing`,label:`Usage`,href:y.settings.usage,icon:r},{id:`community`,label:`Community`,href:y.settings.community,icon:d},{id:`debug`,label:`Debug`,href:y.settings.debug,icon:n},{id:`developer`,label:`Developer`,href:y.settings.developer,icon:i}],T={developer:`debug`,advanced:`debug`,model:`model`,privacy:`privacy`,security:`assistant-status`,"voice & sounds":`voice`,"voice and sounds":`voice`,devices:`assistant-status`,"self-hosted assistants":`assistant-status`},E={"keyboard-shortcuts":`${y.settings.general}?preferences=open`,"keyboard shortcuts":`${y.settings.general}?preferences=open`,services:y.settings.ai,"text-to-speech":y.settings.ai,"speech-to-text":y.settings.ai,archive:`${y.settings.debug}?tab=archive`,billing:y.settings.usageBilling,"billing & usage":y.settings.usageBilling,usage:`${y.settings.usage}?tab=usage`};function D(e){return e.trim().toLowerCase()}function O(e){let t=D(e),n=E[t];if(n)return n;let r=T[t];if(r){let e=w.find(e=>e.id===r);if(e)return e.href}return w.find(e=>D(e.label)===t||e.id===t)?.href??null}export{S as i,O as n,C as r,w as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./capture-error-Bj8_eutd.js";import{t as n}from"./react-BFJW0bSv.js";import{F as r,t as i}from"./button-Dy5001j6.js";import{f as a,l as o,n 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"./jsx-runtime-D3ZM-ToX.js";import{t as f}from"./card-DRIctGVs.js";import{t as p}from"./createLucideIcon-CAM1RhH8.js";import{t as m}from"./arrow-down-to-line-Bh_5sIPp.js";import{t as h}from"./arrow-left-C2ylPLHq.js";import{a as g,n as _,o as v,r as y,t as b}from"./use-skill-actions-DgK7Nmt1.js";import{t as x}from"./chevron-down-B5A-0g8A.js";import{t as S}from"./menu-BvjhxZo7.js";import{t as C}from"./code-qafFA0_-.js";import{t as w}from"./external-link-CS0aVYGt.js";import{t as T}from"./eye-BMVGQXHT.js";import{t as E}from"./file-text-Br730Q4B.js";import{t as D}from"./folder-DF8nFp7N.js";import{t as O}from"./loader-circle-XREx3i4W.js";import{t as k}from"./trash-2-L5LNgw9o.js";import{t as A}from"./triangle-alert-CQfiAg_t.js";import{j}from"./src-D89CNeuT.js";import{n as M,t as N}from"./file-markdown-CLmQTpqL.js";import{St as P,bt as F,sn as I}from"./react-query.gen-r3I6j8-1.js";import{u as L}from"./routes-vE-2hncW.js";import{n as R}from"./use-is-mobile-Bz2l7wPL.js";import{t as z}from"./open-workspace-file-CpveqBim.js";import{t as ee}from"./use-active-assistant-id-Cjbsk2Q3.js";import{n as B,t as V}from"./use-skill-detail-files-_v4zUF6S.js";import{n as H,r as te,t as ne}from"./skills-C1CAcW7T.js";import{t as U}from"./use-edge-swipe-back-DDq-N20h.js";import{i as W,n as G,r as K,t as q}from"./file-editor-DpNdd7HZ.js";var J=p(`search-x`,[[`path`,{d:`m13.5 8.5-5 5`,key:`1cs55j`}],[`path`,{d:`m8.5 8.5 5 5`,key:`a8mexj`}],[`circle`,{cx:`11`,cy:`11`,r:`8`,key:`4ej97u`}],[`path`,{d:`m21 21-4.3-4.3`,key:`1qie3q`}]]),Y=e(n(),1),X=d();function re({assistantId:e,skill:t,onBack:n,onInstall:r,onRemove:a,isInstalling:o=!1,isRemoving:s=!1,sourceConversationId:c}){let l=y(t),u=H(t),{fileEntries:d,setSelectedPath:p,activePath:_,activeFile:b,isFilesLoading:x,fileContent:S,isBinary:C,isContentLoading:w}=V(e,t.id);return(0,X.jsxs)(`div`,{className:`flex h-[calc(100vh-14rem)] flex-col`,children:[(0,X.jsxs)(`div`,{className:`mb-4 flex items-start gap-3`,children:[(0,X.jsx)(i,{type:`button`,variant:`ghost`,iconOnly:(0,X.jsx)(h,{"aria-hidden":!0}),"aria-label":`Back to skills`,onClick:n}),(0,X.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-3 sm:flex-row sm:items-center`,children:[(0,X.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-center gap-3`,children:[(0,X.jsx)(v,{skill:t,className:`h-8 w-8 text-3xl`}),(0,X.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,X.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-2 gap-y-1`,children:[(0,X.jsx)(`h2`,{className:`text-title-medium`,style:{color:`var(--content-default)`},children:t.name}),(0,X.jsx)(g,{origin:t.origin})]}),(0,X.jsx)(`p`,{className:`mt-0.5 line-clamp-2 text-body-medium-lighter`,style:{color:`var(--content-secondary)`},children:t.description}),(0,X.jsx)(B,{skill:{origin:t.origin,sourceConversationId:c},className:`mt-1`})]})]}),l?o?(0,X.jsx)(`div`,{className:`flex h-9 items-center px-3`,children:(0,X.jsx)(O,{className:`h-4 w-4 animate-spin`,style:{color:`var(--content-tertiary)`}})}):(0,X.jsx)(i,{type:`button`,onClick:r,disabled:!r,leftIcon:(0,X.jsx)(m,{"aria-hidden":!0}),children:`Install`}):(0,X.jsx)(i,{type:`button`,variant:u?`dangerOutline`:`outlined`,onClick:a,disabled:!u||s||!a,leftIcon:s?(0,X.jsx)(O,{className:`animate-spin`,"aria-hidden":!0}):(0,X.jsx)(k,{"aria-hidden":!0}),children:`Remove`})]})]}),(0,X.jsx)(f.Root,{asChild:!0,noPadding:!0,children:(0,X.jsxs)(`div`,{className:`flex flex-1 flex-col overflow-hidden sm:grid`,style:{gridTemplateColumns:`240px 1fr`},children:[(0,X.jsx)(`div`,{className:`max-h-40 shrink-0 overflow-y-auto border-b p-2 sm:max-h-none sm:border-b-0 sm:border-r`,style:{borderColor:`var(--border-base)`},children:x?(0,X.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,X.jsx)(O,{className:`h-4 w-4 animate-spin`,style:{color:`var(--content-tertiary)`}})}):d.length===0?(0,X.jsx)(`p`,{className:`px-3 py-4 text-center text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`No files available.`}):d.map(e=>{let t=_===e.path,n=(e.mimeType??``).endsWith(`/directory`);return(0,X.jsxs)(`button`,{type:`button`,onClick:()=>p(e.path),className:`flex w-full items-center gap-2 rounded px-2 py-1.5 text-left text-body-medium-lighter transition-colors hover:bg-[var(--surface-hover)]`,style:{color:t?`var(--primary-base)`:`var(--content-default)`,backgroundColor:t?`color-mix(in oklab, var(--primary-base) 10%, transparent)`:void 0},children:[n?(0,X.jsx)(D,{className:`h-4 w-4 shrink-0`,style:{color:`var(--system-mid-strong)`}}):(0,X.jsx)(E,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-secondary)`}}),(0,X.jsx)(`span`,{className:`truncate`,children:e.name})]},e.path)})}),(0,X.jsx)(`div`,{className:`min-h-0 flex-1 overflow-hidden`,children:w?(0,X.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,X.jsx)(O,{className:`h-6 w-6 animate-spin`,style:{color:`var(--content-tertiary)`}})}):b?(0,X.jsx)(ie,{assistantId:e,skillId:t.id,fileName:b.name,filePath:b.path,content:S,isBinary:C,editable:t.kind===`installed`},`${t.id}/${b.path}`):(0,X.jsx)(`p`,{className:`flex h-full items-center justify-center text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`Select a file to view its contents.`})})]})})]})}function ie({assistantId:e,skillId:n,fileName:r,filePath:a,content:o,isBinary:s,editable:c}){let u=l(),[d,f]=(0,Y.useState)(!1),[p,m]=(0,Y.useState)(``),h=`skills/${n}/${a}`,g=I({onSuccess:()=>{f(!1),m(``),u.invalidateQueries({queryKey:[{_id:`skillsByIdFilesContentGet`}]}),u.invalidateQueries({queryKey:[{_id:`skillsByIdFilesGet`}]}),a===`SKILL.md`&&ne(u,e)},onError:e=>{t(e,{context:`skill-file-save`,bestEffort:!0})}}),_=d&&p!==(o??``),v=(0,Y.useCallback)(()=>{!_||g.isPending||g.mutate({path:{assistant_id:e},body:{path:h,content:p,encoding:`utf8`}})},[_,g,e,h,p]),y=(0,Y.useCallback)(()=>{f(!0),m(o??``),g.reset()},[o,g]),b=(0,Y.useCallback)(()=>{f(!1),m(``),g.reset()},[g]);if(s)return(0,X.jsx)(`p`,{className:`flex h-full items-center justify-center text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`Binary file — no preview available.`});if(o===null)return(0,X.jsxs)(`p`,{className:`flex h-full items-center justify-center text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:[`No preview available for `,r,`.`]});let x=c?(0,X.jsx)(i,{variant:`ghost`,size:`regular`,iconOnly:(0,X.jsx)(w,{"aria-hidden":!0}),onClick:()=>void z(h),"aria-label":`Open in Workspace`,className:`hover:bg-[var(--surface-base)]`}):void 0;return M(r,void 0)&&!d?(0,X.jsx)(`div`,{className:`relative flex h-full flex-col`,children:(0,X.jsxs)(`div`,{className:`relative flex-1 overflow-auto px-6 py-4`,style:{color:`var(--content-default)`},children:[(0,X.jsx)(q,{content:o,fileName:r,showEdit:c,isEditing:!1,onToggleEdit:y,extraActions:x}),(0,X.jsx)(N,{content:o})]})}):(0,X.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,X.jsxs)(`div`,{className:`relative flex-1 overflow-hidden`,children:[(0,X.jsx)(q,{content:d?p:o,fileName:r,showEdit:c,isEditing:d,onToggleEdit:()=>d?b():y(),extraActions:x}),d?(0,X.jsx)(K,{value:p,onChange:m,onSave:v}):(0,X.jsx)(W,{content:o,readOnly:!c,onStartEdit:y})]}),d&&(0,X.jsx)(G,{isDirty:_,isSaving:g.isPending,error:g.isError?`Save failed`:null,onSave:v,onDiscard:b})]})}var ae=e(r(),1);function oe({fileName:e,content:t,isBinary:n,viewMode:r=`preview`}){return n?(0,X.jsx)(`p`,{className:`flex h-full items-center justify-center text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`Binary file — no preview available.`}):t===null?(0,X.jsxs)(`p`,{className:`flex h-full items-center justify-center text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:[`No preview available for `,e,`.`]}):M(e,void 0)&&r===`preview`?(0,X.jsx)(`div`,{className:`h-full overflow-auto px-6 py-4`,style:{color:`var(--content-default)`},children:(0,X.jsx)(N,{content:t})}):(0,X.jsx)(`pre`,{className:`h-full overflow-y-auto whitespace-pre-wrap break-words p-4 font-mono text-body-small-default`,style:{color:`var(--content-default)`},children:t})}function se({assistantId:e,skill:t,onBack:n,onInstall:r,onRemove:a,isInstalling:o=!1,isRemoving:s=!1,swipeContainerRef:c,sourceConversationId:l}){let u=y(t),d=H(t),{fileEntries:p,setSelectedPath:m,activePath:_,activeFile:b,isFilesLoading:x,fileContent:S,isBinary:w,isContentLoading:E}=V(e,t.id),[D,k]=(0,Y.useState)(`preview`);(0,Y.useEffect)(()=>{k(`preview`)},[_]);let[A,N]=(0,Y.useState)(null);(0,Y.useEffect)(()=>{N(document.getElementById(`viewport-overlays`))},[]);let P=b?M(b.name,void 0):!1,F=P?D:`raw`,I=(0,X.jsxs)(`div`,{ref:c,className:`fixed inset-0 z-40 flex flex-col overflow-hidden bg-[var(--surface-overlay)]`,style:{paddingTop:`calc(8px + var(--safe-area-inset-top, env(safe-area-inset-top, 0px)))`,paddingBottom:`calc(8px + var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px)))`,paddingLeft:`calc(12px + var(--safe-area-inset-left, env(safe-area-inset-left, 0px)))`,paddingRight:`calc(12px + var(--safe-area-inset-right, env(safe-area-inset-right, 0px)))`},children:[(0,X.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,X.jsx)(i,{variant:`ghost`,iconOnly:(0,X.jsx)(h,{"aria-hidden":!0}),expandOnMobile:!0,"aria-label":`Back to skills`,onClick:n,className:`max-md:bg-[var(--surface-active)]`}),(0,X.jsx)(`span`,{className:`min-w-0 flex-1 truncate px-2 text-center text-body-medium-default`,style:{color:`var(--content-secondary)`},children:t.name}),(0,X.jsx)(ce,{available:u,removable:d,isInstalling:o,isRemoving:s,onInstall:r,onRemove:a})]}),(0,X.jsxs)(`div`,{className:`mt-4 flex flex-col gap-2`,children:[(0,X.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,X.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,X.jsx)(v,{skill:t,className:`h-6 w-6 shrink-0 text-[22px] leading-none`}),(0,X.jsx)(`h2`,{className:`min-w-0 truncate text-title-medium`,style:{color:`var(--content-emphasised)`},children:t.name})]}),(0,X.jsx)(g,{origin:t.origin})]}),(0,X.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:t.description}),(0,X.jsx)(B,{skill:{origin:t.origin,sourceConversationId:l}})]}),(0,X.jsx)(f.Root,{asChild:!0,noPadding:!0,children:(0,X.jsxs)(`div`,{className:`mt-6 flex min-h-0 flex-1 flex-col overflow-hidden rounded-2xl border bg-[var(--surface-lift)]`,style:{borderColor:`var(--border-hover)`},children:[(0,X.jsxs)(`div`,{className:`flex items-center justify-between gap-2 border-b px-3 py-2`,style:{borderColor:`var(--border-hover)`},children:[(0,X.jsx)(le,{fileEntries:p,activePath:_,activeName:b?.name??null,onSelect:m}),(0,X.jsx)(j,{iconOnly:!0,ariaLabel:`File view mode`,value:F,onChange:k,items:[{value:`preview`,label:`Preview`,icon:(0,X.jsx)(T,{"aria-hidden":!0}),disabled:!P},{value:`raw`,label:`Source`,icon:(0,X.jsx)(C,{"aria-hidden":!0})}]})]}),(0,X.jsx)(`div`,{className:`min-h-0 flex-1 overflow-hidden`,children:x||E?(0,X.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,X.jsx)(O,{className:`h-6 w-6 animate-spin`,style:{color:`var(--content-tertiary)`}})}):b?(0,X.jsx)(oe,{fileName:b.name,content:S,isBinary:w,viewMode:F}):(0,X.jsx)(`p`,{className:`flex h-full items-center justify-center text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`Select a file to view its contents.`})})]})})]});return A?(0,ae.createPortal)(I,A):I}function ce({available:e,removable:t,isInstalling:n,isRemoving:r,onInstall:a,onRemove:o}){return n||r?(0,X.jsx)(i,{variant:`ghost`,iconOnly:(0,X.jsx)(O,{className:`animate-spin`,"aria-hidden":!0}),expandOnMobile:!0,disabled:!0,"aria-label":`Pending`,className:`max-md:bg-[var(--surface-active)]`}):e?(0,X.jsx)(i,{variant:`ghost`,iconOnly:(0,X.jsx)(m,{"aria-hidden":!0}),expandOnMobile:!0,"aria-label":`Install skill`,onClick:a,disabled:!a,className:`max-md:bg-[var(--surface-active)]`}):t?(0,X.jsx)(i,{variant:`dangerGhost`,iconOnly:(0,X.jsx)(k,{"aria-hidden":!0}),expandOnMobile:!0,"aria-label":`Remove skill`,onClick:o,disabled:!o,className:`max-md:rounded-full max-md:bg-[var(--system-negative-weak)]`}):(0,X.jsx)(i,{variant:`dangerGhost`,iconOnly:(0,X.jsx)(k,{"aria-hidden":!0}),expandOnMobile:!0,disabled:!0,title:`Bundled skills cannot be removed`,"aria-label":`Bundled skill cannot be removed`,className:`max-md:rounded-full max-md:bg-[var(--system-negative-weak)]`})}function Z(e){return(e??``).endsWith(`/directory`)}function le({fileEntries:e,activePath:t,activeName:n,onSelect:r}){let i=n??`Select a file`;return e.length===0?(0,X.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2 text-body-medium-default`,style:{color:`var(--content-emphasised)`},children:[(0,X.jsx)(Q,{}),(0,X.jsx)(`span`,{className:`truncate`,children:i})]}):(0,X.jsxs)(S.Root,{children:[(0,X.jsx)(S.Trigger,{children:(0,X.jsxs)(`button`,{type:`button`,className:`flex min-w-0 items-center gap-2 rounded-md text-body-medium-default`,style:{color:`var(--content-emphasised)`},children:[(0,X.jsx)(Q,{}),(0,X.jsx)(`span`,{className:`truncate`,children:i}),(0,X.jsx)(x,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-tertiary)`},"aria-hidden":!0})]})}),(0,X.jsx)(S.Content,{align:`start`,children:e.map(e=>{let n=Z(e.mimeType);return(0,X.jsx)(S.Item,{onSelect:()=>r(e.path),leftIcon:n?(0,X.jsx)(D,{}):(0,X.jsx)(E,{}),"aria-current":e.path===t?`true`:void 0,children:e.name},e.path)})})]})}function Q(){return(0,X.jsx)(`span`,{className:`flex h-6 w-6 shrink-0 items-center justify-center rounded-md bg-[var(--surface-base)]`,"aria-hidden":!0,children:(0,X.jsx)(E,{className:`h-4 w-4`,style:{color:`var(--content-secondary)`}})})}function ue(){return(0,X.jsx)(_,{icon:A,iconColor:`var(--system-danger)`,title:`Failed to load skills`,subtitle:`Something went wrong. Try refreshing the page.`})}function $(){return(0,X.jsx)(`div`,{className:`flex items-center justify-center py-16`,children:(0,X.jsx)(O,{className:`h-6 w-6 animate-spin`,style:{color:`var(--content-tertiary)`}})})}function de(){let e=ee(),{skillId:t}=a(),n=c(),r=o(),{pathname:l}=r,d=R(),f=(0,Y.useRef)(null),p=r.state,m=typeof p?.listSearch==`string`?p.listSearch:``,g=u({...P({path:{assistant_id:e},query:{include:`catalog`}}),select:e=>e.skills,refetchOnMount:`always`}),v=(0,Y.useCallback)(()=>{n(`${L.superpowers}${m}`,{replace:!0})},[n,m]);U({containerRef:f,onBack:v,enabled:d,navKey:l});let{handleInstall:y,handleRemove:x,isInstallingSkill:S,isRemovingSkill:C,skillPendingRemoval:w,confirmRemove:T,cancelRemove:E}=b(e,{onRemoved:v}),D=g.data,O=(0,Y.useMemo)(()=>D?.find(e=>e.id===t)??null,[D,t]),k=u({...F({path:{assistant_id:e,id:t??``}}),enabled:!!t&&O?.origin===`assistant-memory`,select:e=>e.skill.origin===`assistant-memory`?e.skill.sourceConversationId??null:null});if(!t)return(0,X.jsx)(s,{to:L.superpowers,replace:!0});if(g.isLoading)return(0,X.jsx)($,{});if(g.isError&&!O)return(0,X.jsx)(ue,{});if(!O&&g.isFetching)return(0,X.jsx)($,{});if(!O)return(0,X.jsx)(_,{icon:J,title:`Skill not found`,subtitle:`This skill may have been removed, or the link is out of date.`,children:(0,X.jsx)(i,{type:`button`,variant:`outlined`,className:`mt-4`,leftIcon:(0,X.jsx)(h,{"aria-hidden":!0}),onClick:v,children:`Back to My Superpowers`})});let A={assistantId:e,skill:O,onBack:v,onInstall:()=>y(O),onRemove:()=>x(O),isInstalling:S(O),isRemoving:C(O),sourceConversationId:k.data??void 0};return(0,X.jsxs)(X.Fragment,{children:[d?(0,X.jsx)(se,{...A,swipeContainerRef:f}):(0,X.jsx)(re,{...A}),(0,X.jsx)(te,{skillName:w?.name??null,onConfirm:T,onCancel:E})]})}export{de as SkillDetailPage};
|
|
@@ -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{t as r}from"./jsx-runtime-D3ZM-ToX.js";import{t as i}from"./typography-DEI9Ra9z.js";import{t as a}from"./clipboard-copy-JwIceweN.js";import{t as o}from"./external-link-CS0aVYGt.js";import{t as s}from"./plus-jH3kAliM.js";import{A as c}from"./src-D89CNeuT.js";import{t as l}from"./input-hw3el2GJ.js";import{t as u}from"./use-copy-to-clipboard-DBVpNZOl.js";var d=e(t(),1),f={bot:[`app_mentions:read`,`assistant:write`,`channels:history`,`channels:join`,`channels:read`,`chat:write`,`files:read`,`files:write`,`groups:history`,`groups:read`,`im:history`,`im:read`,`im:write`,`mpim:history`,`mpim:read`,`reactions:read`,`reactions:write`,`users:read`],user:[`channels:history`,`channels:read`,`groups:history`,`groups:read`,`im:history`,`im:read`,`mpim:history`,`mpim:read`,`users:read`,`search:read`,`reactions:read`]};function p(e,t=``){let n=e.trim().slice(0,35)||`My Assistant`,r={display_information:{name:n,...t?{description:t}:{},background_color:`#1a1a2e`},features:{app_home:{home_tab_enabled:!1,messages_tab_enabled:!0,messages_tab_read_only_enabled:!1},bot_user:{display_name:n,always_online:!0},assistant_view:{assistant_description:t||n,suggested_prompts:[]}},oauth_config:{scopes:f},settings:{event_subscriptions:{bot_events:[`app_mention`,`message.channels`,`message.groups`,`message.im`,`message.mpim`,`reaction_added`]},interactivity:{is_enabled:!0},org_deploy_enabled:!1,socket_mode_enabled:!0,token_rotation_enabled:!1}};return`https://api.slack.com/apps?new_app=1&manifest_json=`+encodeURIComponent(JSON.stringify(r))}var m=r(),h=[`create-app`,`app-token`,`install-and-connect`],g=[{id:`create-app`,label:`Create App`},{id:`app-token`,label:`App Token`},{id:`install-and-connect`,label:`Install & Connect`}];function _({assistantName:e,initialStepId:t=`create-app`,onSave:n,saveStatus:r=`idle`,saveError:i=null}){let[a,o]=(0,d.useState)(t),[s,l]=(0,d.useState)(e),u=(0,d.useRef)(!1);(0,d.useEffect)(()=>{u.current||l(e)},[e]);let[f,_]=(0,d.useState)(``),[x,S]=(0,d.useState)(``),C=h.indexOf(a),w=(0,d.useCallback)(()=>{let e=p(s.trim()||`My Assistant`);window.open(e,`_blank`,`noopener,noreferrer`)},[s]),T=(0,d.useCallback)(()=>{n?.(x.trim(),f.trim())},[n,x,f]),E=(0,d.useCallback)(e=>{e<C&&o(h[e])},[C]),D=(0,d.useCallback)(()=>{let e=C+1;e<h.length&&o(h[e])},[C]);return(0,m.jsx)(`div`,{"data-slot":`slack-setup-wizard`,children:(0,m.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,m.jsx)(c,{steps:g,current:C,onStepSelect:E,disabled:r===`pending`}),(0,m.jsxs)(`div`,{className:`rounded-lg bg-[var(--surface-sunken)] p-4`,children:[a===`create-app`&&(0,m.jsx)(v,{slackAppName:s,onSlackAppNameChange:e=>{u.current=!0,l(e)},onCreateApp:w,onNext:D}),a===`app-token`&&(0,m.jsx)(y,{tokenName:s.trim()||e,appToken:f,onAppTokenChange:_,onNext:D}),a===`install-and-connect`&&(0,m.jsx)(b,{botToken:x,saveStatus:r,saveError:i,onBotTokenChange:S,onSave:T})]})]})})}function v({slackAppName:e,onSlackAppNameChange:t,onCreateApp:r,onNext:a}){let c=e.trim().length>0;return(0,m.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,m.jsx)(i,{as:`p`,variant:`body-medium-lighter`,className:`text-[color:var(--content-default)]`,children:`Name your Slack app, then click below to create it. All permissions and settings will be pre-configured automatically.`}),(0,m.jsx)(l,{label:`App Name`,value:e,onChange:e=>t(e.target.value.slice(0,35)),placeholder:`My Assistant`,fullWidth:!0}),(0,m.jsx)(`div`,{className:`flex items-center gap-3`,children:(0,m.jsx)(n,{type:`button`,disabled:!c,onClick:()=>{r(),a()},leftIcon:(0,m.jsx)(s,{"aria-hidden":!0,className:`size-4`}),rightIcon:(0,m.jsx)(o,{"aria-hidden":!0,className:`size-4`}),children:`Create Slack App`})}),(0,m.jsxs)(i,{as:`p`,variant:`body-small-default`,className:`text-[color:var(--content-faint)]`,children:[`Already have a Slack app?`,` `,(0,m.jsx)(n,{variant:`link`,onClick:a,children:`Skip to next step`})]})]})}function y({tokenName:e,appToken:t,onAppTokenChange:r,onNext:o}){let{copy:s,copied:c}=u();return(0,m.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,m.jsx)(i,{as:`p`,variant:`body-medium-lighter`,className:`text-[color:var(--content-default)]`,children:`On your app's settings page in Slack:`}),(0,m.jsxs)(`ol`,{className:`list-decimal list-inside space-y-1 text-body-medium-lighter text-[var(--content-default)]`,children:[(0,m.jsxs)(`li`,{children:[`Go to `,(0,m.jsx)(`strong`,{children:`Basic Information`}),` → `,(0,m.jsx)(`strong`,{children:`App-Level Tokens`})]}),(0,m.jsxs)(`li`,{children:[`Click `,(0,m.jsx)(`strong`,{children:`Generate Token and Scopes`})]}),(0,m.jsxs)(`li`,{children:[`Name it`,` `,(0,m.jsxs)(n,{variant:`ghost`,size:`compact`,onClick:()=>s(e),className:`inline-flex gap-1 rounded bg-[var(--surface-base)] px-1.5 py-0.5 font-mono text-body-small-default text-[color:var(--content-strong)] hover:bg-[var(--surface-hover)] h-auto`,tooltip:`Click to copy`,children:[e,(0,m.jsx)(a,{"aria-hidden":!0,className:`size-3`})]}),c&&(0,m.jsx)(i,{as:`span`,variant:`body-small-default`,className:`ml-1 text-[color:var(--content-positive)]`,children:`Copied!`}),` `,`and add the `,(0,m.jsx)(`strong`,{children:`connections:write`}),` scope`]}),(0,m.jsxs)(`li`,{children:[`Click `,(0,m.jsx)(`strong`,{children:`Generate`}),` and copy the token`]})]}),(0,m.jsxs)(`div`,{className:`flex items-end gap-3`,children:[(0,m.jsx)(`div`,{className:`flex-1`,children:(0,m.jsx)(l,{label:`App Token`,type:`password`,value:t,onChange:e=>r(e.target.value),placeholder:`xapp-...`,fullWidth:!0})}),(0,m.jsx)(n,{type:`button`,variant:`primary`,onClick:o,disabled:!t.trim(),children:`Next >`})]})]})}function b({botToken:e,saveStatus:t,saveError:r,onBotTokenChange:a,onSave:o}){return(0,m.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,m.jsxs)(`ol`,{className:`list-decimal list-inside space-y-1 text-body-medium-lighter text-[var(--content-default)]`,children:[(0,m.jsxs)(`li`,{children:[`Go to `,(0,m.jsx)(`strong`,{children:`Install App`}),` in the sidebar`]}),(0,m.jsxs)(`li`,{children:[`Click `,(0,m.jsx)(`strong`,{children:`Install to Workspace`}),` and approve the permissions`]}),(0,m.jsxs)(`li`,{children:[`Copy the `,(0,m.jsx)(`strong`,{children:`Bot User OAuth Token`}),` shown on the page`]})]}),(0,m.jsx)(i,{as:`p`,variant:`body-small-default`,className:`text-[color:var(--content-faint)]`,children:`If Slack shows “Request approval” instead, a workspace admin needs to approve the app first.`}),(0,m.jsxs)(`div`,{className:`flex items-end gap-3`,children:[(0,m.jsx)(`div`,{className:`flex-1`,children:(0,m.jsx)(l,{label:`Bot Token`,type:`password`,value:e,onChange:e=>a(e.target.value),placeholder:`xoxb-...`,fullWidth:!0})}),(0,m.jsx)(n,{type:`button`,variant:`primary`,onClick:o,disabled:!e.trim()||t===`pending`,children:t===`pending`?`Saving…`:`Save`})]}),t===`success`&&(0,m.jsx)(i,{as:`p`,variant:`body-small-default`,className:`text-[color:var(--content-positive)]`,children:`Credentials saved.`}),t===`error`&&r&&(0,m.jsx)(i,{as:`p`,variant:`body-small-default`,className:`text-[color:var(--system-negative-strong)]`,children:r})]})}export{_ as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{H as e,kt as t,q as n,z as r}from"./capture-error-Bj8_eutd.js";import{t as i}from"./createLucideIcon-CAM1RhH8.js";import{o as a}from"./diagnostics-Dva51gYK.js";var o=100;function s(i,a){let s=r(),c=e();if(!s)return;let{beforeBreadcrumb:l=null,maxBreadcrumbs:u=o}=s.getOptions();if(u<=0)return;let d={timestamp:n(),...i},f=l?t(()=>l(d,a)):d;f!==null&&(s.emit&&s.emit(`beforeAddBreadcrumb`,f,a),c.addBreadcrumb(f,u))}var c=i(`archive`,[[`rect`,{width:`20`,height:`5`,x:`2`,y:`3`,rx:`1`,key:`1wp1u1`}],[`path`,{d:`M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8`,key:`1s80jp`}],[`path`,{d:`M10 12h4`,key:`a56b0p`}]]);function l(e){if(typeof e==`string`){try{let t=JSON.parse(e);if(t&&typeof t==`object`&&!Array.isArray(t))return t}catch{}return null}return e&&typeof e==`object`&&!Array.isArray(e)?e:null}function u(e){let t=e.message;return t&&typeof t==`object`&&!Array.isArray(t)?t:e}function d(e,t){return e instanceof Error?e:Error(t)}function f(e){let{idleTimeoutMs:t,assistantId:n,getActiveTurnSending:r}=e,i=null,o=null,c=0,l=0,u=null,d=()=>{i&&=(clearTimeout(i),null)};return{arm:(e,f)=>{d(),i=setTimeout(()=>{i=null,u=`watchdog`;let d=null;try{d=r?.()??null}catch{}let p=o===null?null:Date.now()-o;a(`sse_watchdog_fired`,{assistantId:n,attempt:f,idleTimeoutMs:t,wasTurnSending:d,lastByteAgeMs:p,keepalivesReceivedSinceConnect:c,dataFramesReceivedSinceConnect:l}),s({category:`sse.watchdog`,level:`warning`,message:`watchdog_fired`,data:{assistantId:n,attempt:f,idleTimeoutMs:t,wasTurnSending:d,lastByteAgeMs:p,keepalivesReceivedSinceConnect:c,dataFramesReceivedSinceConnect:l}}),e.abort()},t)},clear:d,resetCounters:()=>{o=null,c=0,l=0},recordTraffic:e=>{e?l++:c++,o=Date.now()},consumeLastAbortCause:()=>{let e=u;return u=null,e}}}export{c as a,u as i,d as n,s as o,l as r,f 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{u as r}from"./chunk-5KNZJZUH-Bsoom5--.js";import{n as i}from"./QueryClientProvider-CMu7CkQU.js";import{t as a}from"./useQuery-Bz-fbQ-m.js";import{t as o}from"./useMutation-CXGTrp4W.js";import{t as s}from"./jsx-runtime-D3ZM-ToX.js";import{t as c}from"./typography-DEI9Ra9z.js";import{t as l}from"./createLucideIcon-CAM1RhH8.js";import{t as u}from"./arrow-right-B-jRJNWP.js";import{t as d}from"./check-sC49_hjU.js";import{t as f}from"./circle-alert-DVCpoZrc.js";import{t as p}from"./circle-check-CjGnAahM.js";import{t as m}from"./coins-Hrmb9tmj.js";import{n as h,t as g}from"./sliders-horizontal-slneqAyY.js";import{t as _}from"./hard-drive-DWFPKcXI.js";import{t as v}from"./info-vgPTIsGI.js";import{t as y}from"./triangle-alert-CQfiAg_t.js";import{t as b}from"./notice-BMK7xqUw.js";import{t as x}from"./modal-BR4CUFBd.js";import{n as S}from"./toast-LgLp4obE.js";import{t as C}from"./confirm-dialog-UYFm4osC.js";import{t as w}from"./dropdown-BCfnSdIZ.js";import{t as T}from"./is-electron-m5eeGBnd.js";import{n as E}from"./resolved-assistants-store-C-PdxK8f.js";import{D,k as O}from"./auth-store-D9BqFncz.js";import{t as k}from"./dist-BwAT3VYQ.js";import{u as A}from"./routes-vE-2hncW.js";import{t as j}from"./use-is-org-ready-X_98Cnx9.js";import{n as ee,r as M}from"./browser-CNL8hh8H.js";import{n as N}from"./use-assistant-avatar-DSu2_Mzi.js";import{$ as P,C as te,O as F,at as I,c as ne,ct as L,et as R,it as re,jt as ie,l as z,lt as ae,nt as B,ot as oe,r as se,rt as ce,st as le,tt as ue,ut as V,y as H}from"./react-query.gen-Mwd5l-vZ.js";import{t as de}from"./avatar-bundled-components-CecbESCk.js";import{n as U}from"./use-avatar-accent-var-PV9tsBJj.js";import{t as fe}from"./proxy-RtD8704m.js";import{t as W}from"./AnimatePresence-3WpfAWHe.js";import{t as pe}from"./use-reduced-motion-Se97jRQ-.js";import{n as me,t as he}from"./avatar-tone-CMoWR2JX.js";import{t as ge}from"./chat-avatar-DIDq1Jt5.js";import{t as G}from"./avatar-renderer-DK54o2kQ.js";import{n as _e}from"./use-bundled-avatar-components-Gp_YaD6o.js";import{t as ve}from"./environment-store-BFVmN-OW.js";import{a as ye,n as K,r as be,t as xe}from"./machine-sizes-DAflIPTM.js";var q=l(`computer`,[[`rect`,{width:`14`,height:`8`,x:`5`,y:`2`,rx:`2`,key:`wc9tft`}],[`rect`,{width:`20`,height:`8`,x:`2`,y:`14`,rx:`2`,key:`w68u3i`}],[`path`,{d:`M6 18h2`,key:`rwmk9e`}],[`path`,{d:`M12 18h6`,key:`aqd8w3`}]]),J=e(t(),1),Y=`vellum.pro-checkout-intent`,Se=1800*1e3;function Ce(e){try{sessionStorage.setItem(Y,JSON.stringify({...e,savedAt:Date.now()}))}catch{}}function we(){if(typeof sessionStorage>`u`)return null;let e=null;try{e=sessionStorage.getItem(Y)}catch{return null}if(!e)return null;let t;try{t=JSON.parse(e)}catch{return Te(),null}return!Ee(t)||Date.now()-t.savedAt>Se?(Te(),null):t}function Te(){try{sessionStorage.removeItem(Y)}catch{}}function Ee(e){if(typeof e!=`object`||!e)return!1;let t=e;return typeof t.savedAt==`number`?t.kind===`package`?typeof t.packageKey==`string`:t.kind===`custom`:!1}var X=s();function De({icon:e}){return(0,X.jsx)(`span`,{className:`flex h-11 w-11 items-center justify-center rounded-full`,style:{backgroundColor:`color-mix(in oklab, var(--system-negative-strong) 12%, transparent)`},children:(0,X.jsx)(e,{className:`h-5 w-5`,style:{color:`var(--system-negative-strong)`},"aria-hidden":`true`})})}var Oe={fontFamily:`var(--font-serif)`,fontSize:`32px`,fontWeight:400,lineHeight:1.2,letterSpacing:`0.64px`};function ke({title:e,subtitle:t}){return(0,X.jsxs)(`header`,{className:`flex flex-col items-center gap-2 pt-12 text-center`,children:[(0,X.jsx)(`h2`,{className:`text-[var(--content-emphasised)]`,style:Oe,children:e}),t&&(0,X.jsx)(`p`,{className:`text-[14px] font-normal text-[var(--content-secondary)]`,children:t})]})}var Ae=[{bodyShape:`star`,eyeStyle:`curious`,color:`yellow`,size:103,position:`-left-[28px] -top-[33px]`,rotate:180},{bodyShape:`star`,eyeStyle:`curious`,color:`orange`,size:109,position:`left-[63%] -top-[62px] -translate-x-1/2`,rotate:-8},{bodyShape:`blob`,eyeStyle:`grumpy`,color:`green`,size:76,position:`-right-[25px] top-[60px]`,rotate:1},{bodyShape:`stack`,eyeStyle:`gentle`,color:`purple`,size:110,position:`-left-[39px] top-[74%]`,rotate:0},{bodyShape:`urchin`,eyeStyle:`goofy`,color:`pink`,size:137,position:`-right-[42px] -bottom-[40px]`,rotate:180},{bodyShape:`sprout`,eyeStyle:`curious`,color:`orange`,size:72,position:`left-[37%] -bottom-[22px] -translate-x-1/2`,rotate:0}],je=[{bodyShape:`star`,eyeStyle:`curious`,color:`yellow`,size:103,position:`-left-[28px] -top-[33px]`,rotate:180},{bodyShape:`star`,eyeStyle:`curious`,color:`orange`,size:109,position:`left-[63%] -top-[62px] -translate-x-1/2`,rotate:-8},{bodyShape:`blob`,eyeStyle:`grumpy`,color:`green`,size:76,position:`-right-[25px] top-[60px]`,rotate:1}];function Me({variant:e=`full`}){let t=_e();return t?(0,X.jsx)(`div`,{"aria-hidden":`true`,"data-testid":`creature-corners`,className:`pointer-events-none absolute inset-0 select-none`,children:(e===`top`?je:Ae).map((e,n)=>(0,X.jsx)(`span`,{className:`absolute ${e.position}`,style:{rotate:`${e.rotate}deg`},children:(0,X.jsx)(G,{components:t,bodyShapeId:e.bodyShape,eyeStyleId:e.eyeStyle,colorId:e.color,size:e.size})},n))}):null}function Ne(e,t=!0){let{data:n}=a({...se(),enabled:t&&e==null}),{data:r}=a({...F({path:{id:e??``}}),enabled:t&&e!=null});return e==null?n:r}function Pe({assistantId:e}){let t=r(),i=Ne(e,j())?.name||`your assistant`;return(0,X.jsxs)(`div`,{className:`relative flex min-h-[320px] flex-col items-center justify-center overflow-hidden px-8 pb-16 [animation:onboarding-step-in_350ms_ease-out] motion-reduce:[animation:none]`,children:[(0,X.jsx)(Me,{variant:`full`}),(0,X.jsxs)(`div`,{className:`relative flex w-full flex-col items-center`,children:[(0,X.jsx)(ke,{title:`You're all set!`,subtitle:`Enjoy the new found power.`}),(0,X.jsx)(`div`,{className:`mt-10 flex w-full flex-col items-center gap-10`,children:(0,X.jsxs)(n,{variant:`primary`,"data-testid":`onboarding-complete-return`,onClick:()=>{e!=null&&O(e),t(A.assistant,{replace:!0})},children:[`Return to `,i]})})]})]})}function Fe(e=!0,t){let n=Ne(t,e),r=t??n?.id,{data:i,isError:o,isFetching:s,dataUpdatedAt:c,errorUpdatedAt:l}=a({...ne({path:{assistant_id:r??``}}),enabled:e&&!!r});return{assistant:n,assistantId:r,domains:i,domainsError:o,domainsFetching:s,domainsUpdatedAt:c,domainsErrorUpdatedAt:l}}var Ie=1e3,Le=1e4,Re=2500,ze=2e3,Be=[`machine_size`,`subdomain`,`non_field_errors`],Ve={subdomain_taken:`That subdomain is already taken. Try another.`,assistant_already_has_domain:`Your assistant already has a custom domain.`,no_assistant_to_attach_domain:`We couldn't find an assistant to attach this domain to.`,exceeds_machine_tier:`That machine size isn't available on your plan.`,provisioning_submission_failed:`We couldn't queue your upgrade just now. Try again in a moment.`,no_active_pro:`We couldn't confirm your Pro plan yet. Try again in a moment.`};function He(e,t){if(e&&typeof e==`object`){let t=e;if(typeof t.error==`string`){let e=Ve[t.error];if(e)return e}for(let e of Be){let n=t[e];if(Array.isArray(n)&&typeof n[0]==`string`)return n[0]}if(typeof t.detail==`string`)return t.detail}return t}var Ue=`h-8 rounded-lg border border-[var(--border-element)] bg-[var(--field-bg)] px-2.5 text-[14px] text-[var(--content-default)] placeholder:text-[var(--content-tertiary)] outline-none transition-[border-color] duration-150 focus:border-[var(--border-active)] disabled:cursor-not-allowed disabled:opacity-60`,We=`text-[11px] font-medium text-[var(--content-secondary)]`;function Ge({onExit:e,machineBusy:t=!1,assistantId:r}){let a=i(),s=ve.use.emailRootDomain(),{assistant:c,assistantId:l,domains:u}=Fe(!0,r),d=u?.results[0],[f,p]=(0,J.useState)(``),[m,h]=(0,J.useState)(`hi`),[g,_]=(0,J.useState)(!1);(0,J.useEffect)(()=>{if(!g){if(d){p(d.subdomain),_(!0);return}!c?.handle||f||(p(c.handle),_(!0))}},[c?.handle,d,g,f]);let[v,y]=(0,J.useState)(null),[S,C]=(0,J.useState)(!1),w=o(I()),T=!!d||S,E=w.isPending||S;return(0,J.useEffect)(()=>{if(!S)return;let t=setTimeout(e,800);return()=>clearTimeout(t)},[S,e]),(0,X.jsxs)(X.Fragment,{children:[(0,X.jsxs)(x.Body,{className:`animate-[onboarding-step-in_350ms_ease-out] space-y-6 pb-0 motion-reduce:animate-none`,children:[(0,X.jsx)(Me,{variant:`top`}),(0,X.jsx)(ke,{title:`Assistant Email`,subtitle:`Set up an email for your assistant.`}),(0,X.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,X.jsxs)(`div`,{className:`flex items-end gap-2`,children:[(0,X.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,X.jsx)(`label`,{htmlFor:`onboarding-email-prefix`,className:We,children:`Prefix`}),(0,X.jsx)(`input`,{id:`onboarding-email-prefix`,value:m,onChange:e=>h(e.target.value.toLowerCase().trim()),disabled:E||T,readOnly:T,placeholder:`hi`,className:`${Ue} w-24`})]}),(0,X.jsx)(`span`,{className:`flex h-8 items-center text-[var(--content-secondary)]`,children:`@`}),(0,X.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-1`,children:[(0,X.jsx)(`label`,{htmlFor:`onboarding-email-handle`,className:We,children:`Handle (public)`}),(0,X.jsx)(`input`,{id:`onboarding-email-handle`,value:f,onChange:e=>{p(e.target.value.toLowerCase().trim()),v&&y(null)},disabled:E||T,readOnly:T,autoFocus:!0,placeholder:`my-assistant`,"aria-invalid":!!v,className:`${Ue} w-full min-w-0`})]}),(0,X.jsxs)(`span`,{className:`flex h-8 shrink-0 items-center text-[14px] text-[var(--content-tertiary)]`,children:[`.`,s]})]}),v&&(0,X.jsx)(`p`,{className:`text-body-small-default text-[var(--system-negative-strong)]`,children:v}),T&&(0,X.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`This domain has been set and cannot be changed.`})]}),t&&!T&&(0,X.jsx)(b,{tone:`neutral`,children:`Your assistant is restarting — you can set the domain in a moment.`}),!T&&(0,X.jsx)(b,{tone:`info`,className:`border-transparent bg-[var(--surface-active)]`,children:(0,X.jsx)(`span`,{className:`font-medium text-[var(--content-tertiary)]`,children:`You won't be able to change the handle once set.`})}),S?(0,X.jsx)(b,{tone:`success`,children:`Domain set — redirecting…`}):null]}),(0,X.jsx)(x.Footer,{className:`items-center pt-6`,children:T?(0,X.jsx)(n,{variant:`primary`,"data-testid":`onboarding-domain-continue`,onClick:e,children:`Continue`}):(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(n,{variant:`outlined`,"data-testid":`onboarding-domain-skip`,disabled:E,onClick:()=>{E||w.mutate({body:{skipped:!0}},{onSuccess:e,onError:()=>e()})},children:`Skip`}),(0,X.jsx)(n,{variant:`primary`,"data-testid":`onboarding-domain-set`,disabled:!f||E||t,onClick:()=>{E||t||!f||w.mutate({body:{subdomain:f,...m?{email_username:m}:{}}},{onSuccess:()=>{y(null),C(!0),a.invalidateQueries({queryKey:H()}),a.invalidateQueries({queryKey:z({path:{assistant_id:l??``}})}),a.invalidateQueries({queryKey:L()})},onError:e=>{y(He(e,`Couldn't register that subdomain. Try a different one.`))}})},children:`Next`})]})})]})}function Ke({onGoToBilling:e}){return(0,X.jsxs)(`div`,{className:`flex flex-col items-center gap-4 px-6 py-10 text-center`,children:[(0,X.jsx)(De,{icon:f}),(0,X.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,X.jsx)(c,{variant:`title-small`,as:`h1`,children:`Couldn't reach billing`}),(0,X.jsx)(c,{variant:`body-medium-lighter`,as:`p`,className:`text-[var(--content-secondary)]`,children:`We hit a problem checking your subscription. Your upgrade may still be processing — return to billing to refresh.`})]}),(0,X.jsx)(n,{variant:`primary`,"data-testid":`onboarding-go-to-billing`,onClick:e,children:`Go to billing`})]})}function qe(e){let{targets:t,fromSnapshot:n,credits:r}=e,i=[];return t.machineSize!=null&&i.push({key:`machine`,label:`Machine`,from:n.machineSize!=null&&n.machineSize!==t.machineSize?K[n.machineSize]:void 0,to:K[t.machineSize]}),t.storageGib!=null&&i.push({key:`storage`,label:`Storage`,from:n.storageGib!=null&&n.storageGib!==t.storageGib?`${n.storageGib} GB`:void 0,to:`${t.storageGib} GB`}),r!=null&&i.push({key:`credits`,label:`Credits`,from:r.from,to:r.to}),i}var Je=60,Ye=Je*2;function Xe({imageUrl:e,animateIn:t=!0}){return(0,X.jsxs)(`div`,{"aria-hidden":!0,"data-testid":`takeover-backdrop`,className:`pointer-events-none absolute inset-0 overflow-hidden${t?` provision-avatar-reveal`:``}`,children:[(0,X.jsx)(`img`,{src:e,alt:``,decoding:`async`,draggable:!1,className:`absolute left-1/2 top-1/2 max-w-none -translate-x-1/2 -translate-y-1/2 object-cover object-center`,style:{filter:`blur(${Je}px)`,width:`calc(100% + ${Ye*2}px)`,height:`calc(100% + ${Ye*2}px)`}}),(0,X.jsx)(`div`,{className:`absolute inset-0 bg-black/55`})]})}function Ze(e,t){if(t!=null)return e?.credit_tiers?.find(e=>e.tier===t)}function Qe(e,t){let n=e?.find(e=>e.id===`pro`);return Ze(n,t)?.label??null}function $e(e){let t=j(),{data:n}=a({...P(),enabled:t&&e!=null});if(e==null)return null;let r=n?.plans.find(e=>e.id===`pro`);if(r==null)return null;if(e.kind===`package`){let t=r.packages.find(t=>t.key===e.packageKey);return Ze(r,t?.credit_tier)?.label??(t?.credits_usd==null?null:`${t.credits_usd} credits`)}return Qe(n?.plans,e.creditTier)}function et(e){let t=j(),{data:n}=a({...P(),enabled:t&&e!=null});return Qe(n?.plans,e)}function tt(e){let t=E.use.activeAssistantId(),n=e===void 0?t:e,{components:r,traits:i,customImageUrl:a,isLoading:o}=N(n),s=n!=null&&!o,c=U(r,i)??(a?null:(r??de).colors?.[0]?.hex??null);return{tintHex:s&&c?me(c):he,backdropImageUrl:s?a:null,ready:s,avatar:{components:r,traits:i,customImageUrl:a}}}function nt(e,t){let{intervalMs:n,enabled:r}=t,[i,a]=(0,J.useState)(0);return(0,J.useEffect)(()=>{if(!r||e<=1){a(0);return}let t=setInterval(()=>{a(t=>(t+1)%e)},n);return()=>{clearInterval(t),a(0)}},[e,n,r]),!r||e<=1?0:Math.min(i,e-1)}function rt(e,t){let[n,r]=(0,J.useState)(e),i=(0,J.useRef)(0);return(0,J.useEffect)(()=>{i.current=performance.now()},[]),(0,J.useEffect)(()=>{if(t<=0||e===n)return;let a=t-(performance.now()-i.current);if(a<=0){i.current=performance.now(),r(e);return}let o=setTimeout(()=>{i.current=performance.now(),r(e)},a);return()=>clearTimeout(o)},[e,n,t]),t<=0?e:n}var it=`--takeover-surface`,at=`var(${it},${he})`,ot=`color-mix(in srgb, var(--content-emphasised) 10%, transparent)`,st=2,ct=2500,lt=240,ut=1.414,dt=[{minHeight:680,size:lt},{minHeight:600,size:184}],ft=132;function pt(e){for(let t of dt)if(e>=t.minHeight)return t.size;return ft}function mt(){let[e,t]=(0,J.useState)(()=>pt(typeof window>`u`?1/0:window.innerHeight));return(0,J.useEffect)(()=>{let e=()=>t(pt(window.innerHeight));return window.addEventListener(`resize`,e),()=>window.removeEventListener(`resize`,e)},[]),e}var ht={machine:h,storage:_,credits:m},gt={idle:``,working:` is-working`,settling:` is-settling`,stalled:` is-stalled`,grown:` is-evolved`};function _t(e,t){return e===`DONE`||e===`NOT_APPLICABLE`?`grown`:e===`STALLED`?`stalled`:e===`WAITING`||e===`RESIZING`?t?`settling`:`working`:`idle`}function vt({assistantId:e,mode:t}){let{avatar:n,ready:r}=tt(e),i=_e(),a=mt(),o=t===`working`||t===`settling`;return(0,X.jsxs)(`div`,{"aria-hidden":!0,className:`provision-avatar-evolve relative z-10 flex flex-col items-center${gt[r?t:`idle`]}`,style:{"--provision-avatar-size":`${a}px`,"--provision-avatar-growth":ut},children:[(0,X.jsx)(`div`,{className:`provision-avatar-stage`,children:(0,X.jsx)(`div`,{className:`provision-avatar-layer`,children:(0,X.jsx)(`div`,{className:`provision-avatar-current`,children:(0,X.jsx)(`div`,{className:`provision-avatar-strain`,children:r&&(0,X.jsx)(`div`,{className:`provision-avatar-reveal`,children:(0,X.jsx)(ge,{components:n.components??i,traits:n.traits,customImageUrl:n.customImageUrl,size:a,isAssistantBusy:o})})})})})}),(0,X.jsx)(`div`,{className:`provision-avatar-shadow`})]})}function Z({status:e,caption:t}){return(0,X.jsxs)(`div`,{className:`flex flex-col items-center gap-1.5`,children:[(0,X.jsx)(`h1`,{className:`text-[var(--content-emphasised)]`,style:Oe,children:e}),t&&(0,X.jsx)(c,{variant:`body-medium-lighter`,as:`p`,className:`max-w-sm text-[var(--content-secondary)]`,children:t})]})}function Q({icon:e,label:t,from:n,to:r,done:i=!1}){return(0,X.jsxs)(`div`,{className:`flex flex-1 items-center gap-2 rounded-lg px-2 py-1.5`,style:{backgroundColor:ot},children:[(0,X.jsx)(`span`,{className:`flex h-6 w-6 shrink-0 items-center justify-center`,children:(0,X.jsx)(e,{className:`h-3.5 w-3.5 text-[var(--content-tertiary)]`,"aria-hidden":`true`})}),(0,X.jsxs)(`div`,{className:`flex flex-col gap-1 text-left`,children:[(0,X.jsx)(`span`,{className:`text-[12px] font-medium leading-tight text-[var(--content-tertiary)]`,children:t}),(0,X.jsxs)(`span`,{className:`flex items-center gap-1.5 text-[14px] font-medium leading-[18px] text-[var(--content-emphasised)]`,children:[n&&(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(`span`,{children:n}),(0,X.jsx)(u,{className:`h-3 w-3 shrink-0 text-[var(--content-tertiary)]`,"aria-hidden":`true`})]}),(0,X.jsx)(`span`,{children:r}),i&&(0,X.jsx)(d,{className:`h-3.5 w-3.5 shrink-0 text-[var(--system-positive-strong)]`,"aria-hidden":`true`})]})]})]})}function yt({label:e}){return(0,X.jsx)(`span`,{className:`rounded-lg px-3 py-2 text-[14px] text-[var(--content-emphasised)]`,style:{backgroundColor:ot},children:e})}function bt({children:e}){return(0,X.jsx)(`div`,{className:`flex w-full max-w-sm flex-wrap items-stretch justify-center gap-2`,children:e})}function xt({intent:e,targets:t,fromSnapshot:n}){let r=$e(e),i=pe(),a=qe({targets:t,fromSnapshot:n,credits:r?{from:`0`,to:r}:null}),o=a.length>st&&!i,s=nt(a.length,{intervalMs:ct,enabled:o});if(a.length===0)return null;if(o){let e=a[s];return(0,X.jsx)(bt,{children:(0,X.jsx)(W,{mode:`popLayout`,initial:!1,children:(0,X.jsx)(fe.div,{className:`flex flex-1`,initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.25},children:(0,X.jsx)(Q,{icon:ht[e.key],label:e.label,from:e.from,to:e.to,done:!1})},e.key)})})}return(0,X.jsx)(bt,{children:a.map(e=>(0,X.jsx)(Q,{icon:ht[e.key],label:e.label,from:e.from,to:e.to,done:!1},e.key))})}function St({intent:e}){return e.kind===`package`?(0,X.jsx)(bt,{children:(0,X.jsx)(yt,{label:`${e.packageKey.charAt(0).toUpperCase()+e.packageKey.slice(1)} package`})}):(0,X.jsxs)(bt,{children:[e.machineTier!=null&&(0,X.jsx)(Q,{icon:h,label:`Machine`,to:xe[e.machineTier]??e.machineTier}),e.storageTier!=null&&(0,X.jsx)(Q,{icon:_,label:`Storage`,to:e.storageTier.toUpperCase()}),e.creditTier!=null&&(0,X.jsx)(yt,{label:`${e.creditTier.replace(`credits_`,``)} credits`})]})}function Ct({targets:e,fromSnapshot:t,done:n=!1}){return(0,X.jsx)(bt,{children:qe({targets:e,fromSnapshot:t,credits:null}).map(e=>(0,X.jsx)(Q,{icon:ht[e.key],label:e.label,from:n?void 0:e.from,to:e.to,done:n},e.key))})}function wt({state:e,softWaiting:t,intent:r,resizeCredits:i,targets:a,fromSnapshot:o,celebrating:s,onCelebrationEnd:c,assistantId:l,escapeAvailable:u,onEscape:d,onPhaseChange:f,kickError:p,confirm:m,dwellMs:h=Re,phaseMinMs:g=900}){let _=i!==void 0,v=et(i??null),y=(0,J.useRef)(c);(0,J.useEffect)(()=>{y.current=c},[c]);let b=rt(e,g),x=b===`DONE`||b===`NOT_APPLICABLE`,S=b===`RESIZING`?`WAITING`:b,C=(0,J.useRef)(f);(0,J.useEffect)(()=>{C.current=f},[f]),(0,J.useEffect)(()=>{C.current?.(b)},[b]);let{tintHex:w,backdropImageUrl:T}=tt(l),E=s&&x;return(0,J.useEffect)(()=>{if(!E)return;let e=setTimeout(()=>y.current(),h);return()=>clearTimeout(e)},[E,h]),(0,X.jsxs)(`div`,{"data-theme":`dark`,className:`provision-surface-settle relative flex h-full min-h-[420px] w-full flex-col items-center [justify-content:safe_center] gap-10 px-6 py-10 text-center`,style:{[it]:w,backgroundColor:at},children:[T&&(0,X.jsx)(Xe,{imageUrl:T}),(0,X.jsx)(vt,{assistantId:l,mode:_t(b,t)}),(0,X.jsx)(`div`,{className:`relative z-10 flex min-h-[144px] w-full flex-col items-center gap-8 [animation:onboarding-step-in_420ms_ease-out] motion-reduce:[animation:none]`,children:k()},S)]});function D(e=`Continue in the background`){return u?(0,X.jsx)(n,{variant:`ghost`,"data-testid":`provisioning-escape`,onClick:d,children:e}):null}function O(){return _?(0,X.jsx)(bt,{children:v==null?(0,X.jsx)(yt,{label:`Credits updated`}):(0,X.jsx)(Q,{icon:ht.credits,label:`Credits`,to:v,done:!0})}):null}function k(){if(b===`CONFIRMING`)return(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(Z,{status:`Confirming your upgrade…`,caption:`This might take a couple seconds.`}),r&&(0,X.jsx)(St,{intent:r}),D()]});if(b===`WAITING`||b===`RESIZING`)return(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(Z,{status:`Upgrading your assistant…`,caption:t?`Still working — this can take a minute or two.`:`This might take a couple seconds.`}),(0,X.jsx)(xt,{intent:r,targets:a,fromSnapshot:o}),D()]});if(b===`DONE`)return(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(Z,{status:`All done!`}),(0,X.jsx)(Ct,{targets:a,fromSnapshot:o,done:!0}),O()]});if(b===`NOT_APPLICABLE`)return(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(Z,{status:`Your plan is ready`}),O()]});if(b===`STALLED`){let e=p!=null;return(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(Z,{status:e?`We hit a snag upgrading your assistant`:`This is taking longer than expected`,caption:e?He(p,`Retry in the background — we'll keep working on your upgrade.`):`This may take a couple of minutes.`}),(0,X.jsx)(xt,{intent:r,targets:a,fromSnapshot:o}),e?D(`Retry in the background`):D()]})}return b===`CONFIRM_TIMEOUT`?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(Z,{status:`Still confirming your upgrade`,caption:`Your payment went through safely — this can take a minute.`}),(0,X.jsxs)(`div`,{className:`flex items-center gap-2 pt-1`,children:[(0,X.jsx)(n,{variant:`outlined`,"data-testid":`onboarding-go-to-billing`,onClick:m.onGoToBilling,children:`Go to billing`}),(0,X.jsx)(n,{variant:`primary`,"data-testid":`onboarding-retry`,onClick:m.onRetry,children:`Try again`})]})]}):null}}function Tt(e,t){if(!e)return!1;let n=e.machineSize==null||t?.machineSize!=null&&ye(t.machineSize)>=ye(e.machineSize),r=e.storageGib==null||t?.storageGib!=null&&t.storageGib>=e.storageGib;return n&&r}function Et(e){let{planId:t,targets:n,actuals:r,initialActuals:i,resizeOperationInFlight:a,sawOperation:o,msSinceWatchStart:s,confirmExpired:c,serverVerdict:l=null,statusObservedSinceTargetsMet:u=!0}=e;if(t!==`pro`)return{state:c?`CONFIRM_TIMEOUT`:`CONFIRMING`,softWaiting:!1};let d=o||a,f=l===`started`||l===`in_progress`,p=o||u;if(!a){let e=f?p:d||l===`already_done`||i!=null&&!Tt(n,i);if(Tt(n,r)){if(e)return{state:`DONE`,softWaiting:!1};if(!f)return{state:`NOT_APPLICABLE`,softWaiting:!1}}else{if(l===`already_done`)return{state:`DONE`,softWaiting:!1};if(l===`not_applicable`)return{state:`NOT_APPLICABLE`,softWaiting:!1}}}return s!=null&&s>=9e4?{state:`STALLED`,softWaiting:!1}:d||l===`started`||l===`in_progress`?{state:`RESIZING`,softWaiting:!1}:{state:`WAITING`,softWaiting:s!=null&&s>=3e4}}var Dt=2e3,Ot=1e3,kt=[`DONE`,`NOT_APPLICABLE`,`CONFIRM_TIMEOUT`];function At(e){if(!e)return!1;if(e.state===`resizing_machine`||e.state===`resizing_storage`)return!0;let t=e.active_operation?.operation;return typeof t==`string`&&t.startsWith(`resize`)}function jt({open:e}){let t=i(),n=j(),[r,s]=(0,J.useState)(!1),[c,l]=(0,J.useState)(0),[u,d]=(0,J.useState)(null),[f,p]=(0,J.useState)(null),[m,h]=(0,J.useState)(null),[g,_]=(0,J.useState)(null),[v,y]=(0,J.useState)(null),[b,x]=(0,J.useState)(null),[S,C]=(0,J.useState)(null),[w,T]=(0,J.useState)(!1),E=(0,J.useRef)(!1),O=(0,J.useRef)(!1),k=(0,J.useRef)(0),[A,ee]=(0,J.useState)(!1),[M,N]=(0,J.useState)(null),[P,I]=(0,J.useState)(null),[ne,R]=(0,J.useState)(()=>Date.now()),[re,ie]=(0,J.useState)(!0);(0,J.useEffect)(()=>{e||(s(!1),l(0),d(null),p(null),h(null),ee(!1),N(null),I(null),ie(!0),_(null),y(null),x(null),C(null),T(!1),E.current=!1,O.current=!1,k.current+=1)},[e]),(0,J.useEffect)(()=>{e&&(d(Date.now()),t.invalidateQueries({queryKey:V()}),t.invalidateQueries({queryKey:L()}))},[e,t]);let z=f!=null,B=a({...ae(),refetchInterval:e=>e.state.data?.plan_id===`pro`||r?!1:Ie,refetchIntervalInBackground:!1,enabled:e&&n&&!z}),ce=(u!=null&&B.dataUpdatedAt>=u?B.data?.plan_id:null)??null;(0,J.useEffect)(()=>{if(!e||z||ce!==`pro`)return;let t=Date.now();p(t),R(t)},[e,z,ce]),(0,J.useEffect)(()=>{if(!e||z)return;let t=setTimeout(()=>s(!0),Le);return()=>clearTimeout(t)},[e,z,c]);let ue=(0,J.useCallback)(()=>{s(!1),l(e=>e+1),D.getState().fetchOrganizations(),t.invalidateQueries({queryKey:V()})},[t]),H=(0,J.useCallback)(()=>{let e=Date.now();h(e),R(e)},[]),{mutate:de}=o(oe()),U=(0,J.useCallback)(e=>{let t=k.current;de({},{onSuccess:n=>{t===k.current&&(C(null),n.state===`not_applicable`&&n.reason===`no_active_pro`?O.current?C({error:`no_active_pro`}):(O.current=!0,T(!0),e===`escape`&&H()):(_(n.state),e===`escape`&&H()))},onError:e=>{t===k.current&&C(e)}})},[de,H]);(0,J.useEffect)(()=>{!e||!n||!z||E.current||(E.current=!0,U(`auto`))},[e,n,z,U]),(0,J.useEffect)(()=>{if(!w)return;let e=k.current,t=setTimeout(()=>{T(!1),e===k.current&&U(`auto`)},ze);return()=>clearTimeout(t)},[w,U]);let fe=(0,J.useCallback)(()=>U(`escape`),[U]),W=a({...le(),enabled:e&&n&&z}),pe=re?Dt:!1,me=a({...se(),enabled:e&&n&&z,refetchInterval:e=>e.state.data?.id==null?pe:!1,retry:!1}),he=z&&u!=null&&W.dataUpdatedAt>=u,ge=he&&!W.isPending&&!W.isFetching,G=(he?W.data?.primary_assistant_id:null)??(W.isPending?null:me.data?.id??null),_e=a({...F({path:{id:G??`unresolved`}}),enabled:e&&n&&z&&G!=null,refetchInterval:pe,retry:!1}),ve=a({...te({path:{id:G??`unresolved`}}),enabled:e&&n&&z&&G!=null,refetchInterval:pe,retry:!1}),ye=At(ve.data);(0,J.useEffect)(()=>{ye&&ee(!0)},[ye]);let K=W.data,xe=(0,J.useMemo)(()=>K?{machineSize:be(K.max_machine_tier).at(-1)??null,storageGib:K.selected_storage_gib??null}:null,[K]),q=_e.data,Y=(0,J.useMemo)(()=>q?{machineSize:q.machine_size??null,storageGib:q.provisioned_storage_gib??null}:null,[q]),Se=P===G,Ce=Tt(xe,Y),we=b===G;(0,J.useEffect)(()=>{e&&(Ce?(y(e=>e!=null&&we?e:Date.now()),x(G)):(y(null),x(null)))},[e,Ce,G,we]),(0,J.useEffect)(()=>{!e||!Y||M!=null&&Se||(N(Y),I(G))},[e,Y,G,M,Se]);let Te=m??f,Ee=Te==null?null:Math.max(0,ne-Te),{state:X,softWaiting:De}=Et({planId:z?`pro`:ce,targets:xe,actuals:Y,initialActuals:Se?M:null,resizeOperationInFlight:ye,sawOperation:A,msSinceWatchStart:Ee,confirmExpired:r,serverVerdict:g,statusObservedSinceTargetsMet:v!=null&&we&&ve.dataUpdatedAt>v}),Oe=kt.includes(X),ke=e&&z&&!Oe;return(0,J.useEffect)(()=>{ie(ke)},[ke]),(0,J.useEffect)(()=>{if(!e||!z||Oe)return;let t=setInterval(()=>R(Date.now()),Ot);return()=>clearInterval(t)},[e,z,Oe]),{state:X,softWaiting:De,targets:xe,actualsSnapshot:M,assistantId:G,domainSetupAvailable:K?.domain_setup_available,onboardingSettled:ge,confirmError:!z&&B.isError,targetsError:z&&W.isError&&(!K||!he),escapeEligible:Ee!=null&&Ee>=6e4,retryConfirm:ue,kickProvisioning:fe,kickError:S}}var Mt=200,Nt=380;function Pt(){return typeof window<`u`&&window.matchMedia?.(`(prefers-reduced-motion: reduce)`).matches===!0}var Ft=e=>e===`WAITING`||e===`RESIZING`||e===`STALLED`,It=e=>e===`DONE`||e===`NOT_APPLICABLE`,Lt={machineSize:null,storageGib:null};function Rt({open:e,onClose:t,dwellMs:n,phaseMinMs:r,mode:a=`checkout`,resizeCredits:o}){let s=a===`resize`,c=i(),[l,u]=(0,J.useState)(`provisioning`),[d,f]=(0,J.useState)(`idle`),p=(0,J.useRef)([]),[m,h]=(0,J.useState)(null),[g,_]=(0,J.useState)(null),[v,y]=(0,J.useState)(null),[b,w]=(0,J.useState)(!1),T=jt({open:e});(0,J.useEffect)(()=>{if(e){h(s?null:we()),y(e=>e??Date.now());return}p.current.forEach(clearTimeout),p.current=[],u(`provisioning`),f(`idle`),_(null),y(null),w(!1)},[e,s]),(0,J.useEffect)(()=>()=>{p.current.forEach(clearTimeout)},[]),(0,J.useEffect)(()=>{l===`complete`&&Te()},[l]);let E=Ft(T.state),D=It(g??T.state),{targets:O,assistantId:k,domainSetupAvailable:A,onboardingSettled:j}=T,{tintHex:ee,backdropImageUrl:M}=tt(k),N=s&&A===!0,{domains:P,domainsError:te,domainsFetching:F,domainsUpdatedAt:I,domainsErrorUpdatedAt:ne}=Fe(e&&N,k),L=(P?.results.length??0)>0,R=(0,J.useRef)(null);(0,J.useEffect)(()=>{if(!e){R.current=null;return}!N||k==null||R.current!==k&&(R.current=k,c.invalidateQueries({queryKey:z({path:{assistant_id:k}})}))},[e,N,k,c]);let re=!F&&(v!=null&&I>=v||v!=null&&!!te&&ne>=v),[ie,ae]=(0,J.useState)(!1),B=j&&(!N||re);(0,J.useEffect)(()=>{if(!e){ae(!1);return}B&&ae(!0)},[e,B]);let oe=(0,J.useCallback)(()=>{let e=s?A===!0&&!L?`domain`:`complete`:A===!1?`complete`:`domain`;if(Pt()){u(e);return}f(`covering`),p.current.push(setTimeout(()=>{u(e),f(`revealing`),p.current.push(setTimeout(()=>f(`idle`),Nt))},Mt))},[A,s,L]),se=(0,J.useCallback)(()=>{w(!0)},[]),ce=(0,J.useCallback)(()=>{T.kickProvisioning(),S.info(T.kickError==null?`Your upgrade continues in the background.`:`We'll retry your upgrade in the background.`),w(!1),t()},[T,t]),le=(0,J.useCallback)(()=>{w(!1)},[]),ue=l===`provisioning`&&(T.confirmError||T.targetsError),V=l===`provisioning`&&!ue,H=V&&!D,de=`transition-[background-color] duration-300 ease-out${V?` bg-black p-0`:``}`,U=V?`[animation:fadeIn_0.45s_ease-out_both]`:d===`revealing`?`[animation:fadeInUp_0.42s_ease-out_0.12s_both]`:`[animation:fadeIn_0.25s_ease-out_both]`;return(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(x.Root,{open:e,onOpenChange:e=>{e||t()},children:(0,X.jsxs)(x.Content,{size:`md`,hideCloseButton:l!==`complete`,dismissOnOverlayClick:!H,onEscapeKeyDown:H?e=>e.preventDefault():void 0,onInteractOutside:H?e=>e.preventDefault():void 0,"data-theme":V?`dark`:void 0,overlayClassName:de,className:V?`overflow-y-auto inset-0 max-w-none w-screen h-screen max-h-none rounded-none border-0`:`overflow-hidden`,style:{[it]:ee},children:[(0,X.jsx)(`div`,{className:`flex min-h-0 flex-1 flex-col motion-reduce:[animation:none] ${U}`,children:fe()},l),d!==`idle`&&(0,X.jsx)(`div`,{"aria-hidden":!0,"data-testid":`takeover-exit-sheet`,className:`pointer-events-none fixed inset-0 z-50 ${d===`covering`?`[animation:fadeIn_200ms_ease-in_both]`:`[animation:fadeIn_380ms_ease-out_both_reverse]`}`,style:{backgroundColor:at},children:M&&(0,X.jsx)(Xe,{imageUrl:M,animateIn:!1})})]})}),(0,X.jsx)(C,{open:b&&E,title:`Continue in the background?`,message:`Your assistant is still upgrading. Chatting won't be available until it finishes — you can keep waiting here, or continue and we'll let you know when it's ready.`,confirmLabel:`Continue`,cancelLabel:`Keep waiting`,onConfirm:ce,onCancel:le})]});function fe(){return l===`provisioning`?T.confirmError||T.targetsError?(0,X.jsx)(Ke,{onGoToBilling:t}):(0,X.jsx)(wt,{state:T.state,softWaiting:T.softWaiting,intent:m,resizeCredits:s?o:void 0,targets:O??Lt,fromSnapshot:T.actualsSnapshot??Lt,celebrating:ie,onCelebrationEnd:oe,assistantId:k,escapeAvailable:E&&T.escapeEligible,onEscape:se,onPhaseChange:_,kickError:T.kickError,confirm:{onRetry:T.retryConfirm,onGoToBilling:t},dwellMs:n,phaseMinMs:r}):l===`domain`?(0,X.jsx)(Ge,{machineBusy:E,assistantId:k,onExit:()=>u(`complete`)}):(0,X.jsx)(Pe,{assistantId:k})}}function zt(e){return e!=null&&!e.customized}function Bt(e){return zt(e)?e.name:`Custom`}var Vt=[`mighty`,`super`,`ultra`],Ht=[`free`,...Vt];function Ut(e){return Ht.indexOf(e)}function Wt(e,t){if(e===null)return`upgrade`;let n=Ut(e),r=Ut(t);return n===-1||r===-1?`upgrade`:r===n?`current`:r<n?`downgrade`:`upgrade`}function Gt(e,t){if(e.length===0)return null;let n=[...e].sort((e,t)=>Vt.indexOf(e.key)-Vt.indexOf(t.key));if(!t)return n[0];let r=n.findIndex(e=>e.key===t);return r===-1?n[0]:r>=n.length-1?null:n[r+1]}var Kt=`billing-portal-return-snapshot`;function qt(e){try{sessionStorage.removeItem(Kt),sessionStorage.setItem(Kt,JSON.stringify(e))}catch{}}function Jt(){if(typeof sessionStorage>`u`)return null;try{let e=sessionStorage.getItem(Kt);if(!e)return null;let t=JSON.parse(e);return typeof t.cancel_at_period_end!=`boolean`||typeof t.plan_id!=`string`?null:{cancel_at_period_end:t.cancel_at_period_end,cancel_at:t.cancel_at??null,plan_id:t.plan_id}}catch{return null}}function Yt(){try{sessionStorage.removeItem(Kt)}catch{}}function Xt(e){return e?{cancel_at_period_end:e.cancel_at_period_end,cancel_at:e.cancel_at??null,plan_id:e.plan_id}:null}function Zt(e){let t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleDateString(void 0,{year:`numeric`,month:`long`,day:`numeric`})}function Qt(e){return e?e.cancel_at??e.current_period_end??null:null}function $t(e){let t=i();return(0,J.useEffect)(()=>M(()=>{t.invalidateQueries(ae())}),[t]),ie({onSuccess:t=>{e&&qt(e),ee(t.portal_url)},onError:()=>{S.error(`Couldn't open the billing portal. Please try again.`,{id:`billing-portal-session-error`})}})}function en(){return T()||k.isNativePlatform()?`native`:`web`}function tn(e){let t=e/100;return Number.isInteger(t)?`$${t}`:`$${t.toFixed(2)}`}function $(e){return`${tn(e)}/mo`}function nn(e){return`${e>0?`+`:`−`}${tn(Math.abs(e))}/mo`}function rn(e){return e.disabled===!0}function an({machineTiers:e,storageTiers:t,selectedMachineTier:n,selectedStorageTier:r,onMachineTierChange:i,onStorageTierChange:a,currentMachinePriceCents:o,currentStoragePriceCents:s}){let l=(0,J.useMemo)(()=>e.map(e=>{let t=xe[e.tier]??e.label,n=o==null?`+${$(e.price_cents)}`:e.price_cents===o?`(${$(e.price_cents)}, current)`:nn(e.price_cents-o);return{value:e.tier,label:`${t} ${n}`,disabled:rn(e)}}),[e,o]),u=(0,J.useMemo)(()=>t.map(e=>{let t=s==null?`+${$(e.price_cents)}`:e.price_cents===s?`(${$(e.price_cents)}, current)`:nn(e.price_cents-s);return{value:e.tier,label:`${e.storage_gib} GB ${t}`,disabled:rn(e)}}),[t,s]);return(0,X.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,X.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,X.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,X.jsx)(c,{as:`p`,variant:`label-small-default`,className:`text-[var(--content-secondary)]`,children:`Machine`}),(0,X.jsx)(`span`,{title:`Determines the CPU and memory allocated to your assistant`,children:(0,X.jsx)(v,{className:`h-3 w-3 text-[var(--content-tertiary)]`})})]}),(0,X.jsx)(w,{"aria-label":`Machine tier`,placeholder:`Select a machine tier`,value:n??``,onChange:i,options:l})]}),(0,X.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,X.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,X.jsx)(c,{as:`p`,variant:`label-small-default`,className:`text-[var(--content-secondary)]`,children:`Storage`}),(0,X.jsx)(`span`,{title:`Persistent disk space for your assistant's files and data`,children:(0,X.jsx)(v,{className:`h-3 w-3 text-[var(--content-tertiary)]`})})]}),(0,X.jsx)(w,{"aria-label":`Storage tier`,placeholder:`Select a storage tier`,value:r??``,onChange:a,options:u})]})]})}var on=new Set([`active`,`trialing`,`past_due`]);function sn(e){return e.plan_id!==`base`&&e.cancel_at_period_end!==!0&&!e.cancel_at&&e.status!=null&&on.has(e.status)}var cn=[`target_plan_id`,`confirm`,`machine_tier`,`storage_tier`,`credit_tier`,`package`,`non_field_errors`];function ln(e,t){if(e&&typeof e==`object`){for(let t of cn)if(t in e){let n=e[t];if(Array.isArray(n)&&typeof n[0]==`string`)return n[0]}if(`detail`in e&&typeof e.detail==`string`)return e.detail}return t}function un(e,t){let n=e.filter(e=>!rn(e));return t!==null&&n.some(e=>e.tier===t)?t:n[0]?.tier??null}function dn(e,t,n){return t===void 0?n:t!==null&&(t===n||e.some(e=>e.tier===t))?t:null}function fn(e){return e.length?Math.min(...e.map(e=>e.price_cents)):0}function pn(){let e=i(),t=o(ce());return{changePackage:async n=>{try{let r=await t.mutateAsync({body:{package:n}});return await Promise.all([e.invalidateQueries({queryKey:V()}),e.invalidateQueries({queryKey:R()}),e.invalidateQueries({queryKey:L()})]),r}catch(e){return S.error(ln(e,`Failed to change your plan. Please try again.`)),null}},isPending:t.isPending}}function mn({enabled:e=!0}={}){let t=i(),n=j(),r=e&&n,s=a({...ae(),enabled:r}).data,c=s!=null&&s.plan_id!==`base`,l=a({...le(),enabled:r&&c}),u=a({...P(),enabled:r&&c}).data?.plans.find(e=>e.id===`pro`)?.machine_tiers??[],d=e=>u.find(t=>t.tier===e)?.price_cents??null,f=o(B()),p=o(re()),m=o(ue()),h={machineTier:l.data?.max_machine_tier??null,storageTier:l.data?.selected_storage_tier??null,storageGib:l.data?.selected_storage_gib??null,creditTier:s?.selected_credit_tier??null},g=s!=null&&s.plan_id!==`base`&&s.status!=null&&on.has(s.status)&&s.cancel_at_period_end!==!0&&!s.cancel_at,_=!c||!l.isPending,v=f.isPending||p.isPending||m.isPending,y=()=>Promise.all([t.invalidateQueries({queryKey:V()}),t.invalidateQueries({queryKey:L()}),t.invalidateQueries({queryKey:R()})]);return{changeTiers:async e=>{let t=e.machineTier!==h.machineTier,n=e.storageTier!==h.storageTier,r=e.creditTier!==h.creditTier,i=d(e.machineTier),a=d(h.machineTier),o=t&&i!=null&&a!=null&&i<a,s=[];if(t&&s.push(new Promise(t=>{f.mutate({body:{machine_tier:e.machineTier}},{onSuccess:()=>t({dimension:`machine`,ok:!0}),onError:e=>t({dimension:`machine`,ok:!1,error:e})})})),n&&s.push(new Promise(t=>{p.mutate({body:{storage_tier:e.storageTier}},{onSuccess:()=>t({dimension:`storage`,ok:!0}),onError:e=>t({dimension:`storage`,ok:!1,error:e})})})),r&&s.push(new Promise(t=>{m.mutate({body:{credit_tier:e.creditTier}},{onSuccess:()=>t({dimension:`credit`,ok:!0}),onError:e=>t({dimension:`credit`,ok:!1,error:e})})})),s.length===0)return{needsResize:!1,creditChanged:!1};let c=await Promise.all(s);await y();let l=c.some(e=>e.ok&&e.dimension===`machine`)&&!o,u=c.some(e=>e.ok&&e.dimension===`storage`),g=l||u,_=c.some(e=>e.ok&&e.dimension===`credit`),v=c.filter(e=>!e.ok);if(v.length>0){let e=v.map(e=>ln(e.error,`Failed to update ${e.dimension} tier.`)).join(` `);return S.error(e),g||_?{needsResize:g,creditChanged:_}:null}return{needsResize:g,creditChanged:_}},isPending:v,current:h,eligible:g,currentReady:_}}var hn=`__none__`,gn=`No extra credits`;function _n(e){return`${e.storage_gib} GB storage`}function vn(e){return`${tn(e.credits_usd*100)} of bundled credits`}function yn(e){let{proPlan:t,seed:n,machineTier:r,storageTier:i,creditChoice:a}=e,o=t.machine_tiers,s=t.storage_tiers,c=t.credit_tiers??[],l=o.find(e=>e.tier===r)??null,u=s.find(e=>e.tier===i)??null,d=a&&a!==`__none__`?c.find(e=>e.tier===a)??null:null,f=n==null?null:o.find(e=>e.tier===n.machineTier)??null,p=n==null?null:s.find(e=>e.tier===n.storageTier)??null,m=n!=null&&n.creditTier!=null?c.find(e=>e.tier===n.creditTier)??null:null,h=n!=null&&n.machineTier!=null&&f==null,g=n!=null&&p==null,_=[{key:`base`,label:`Pro base plan — ${$(t.base_price_cents)}`,changed:!1}];if(l!=null){let e=n!=null&&!h&&f?.tier!==l.tier;_.push({key:`machine`,label:l.description,previousLabel:e&&f!=null?f.description:void 0,changed:e})}if(u!=null){let e=n!=null&&!g&&p?.tier!==u.tier;_.push({key:`storage`,label:_n(u),previousLabel:e&&p!=null?_n(p):void 0,changed:e})}let v=a===`__none__`?gn:d==null?null:vn(d);if(v!=null){let e=n!=null&&(n.creditTier??`__none__`)!==a,t=n?.creditTier==null?gn:m==null?void 0:vn(m);_.push({key:`credit`,label:v,previousLabel:e?t:void 0,changed:e})}let y=t.base_price_cents+(l?.price_cents??0)+(u?.price_cents??0)+(d?.price_cents??0),b=h||g||n!=null&&n.creditTier!=null&&m==null;if(n==null||b)return{totalCents:y,previousTotalCents:null,deltaCents:null,rows:_};let x=t.base_price_cents+(f?.price_cents??0)+(p?.price_cents??0)+(m?.price_cents??0);return{totalCents:y,previousTotalCents:x,deltaCents:y-x,rows:_}}function bn(e){return(0,X.jsxs)(`span`,{className:`text-[12px] font-medium text-[var(--content-disabled)]`,children:[`+`,$(e)]})}function xn({open:e,proPlan:t,pending:r,currentStorageGib:i,initialSelection:a,onClose:o,onContinue:s}){let c=e?a??null:null,[l,u]=(0,J.useState)(()=>c?.machineTier??``),[d,f]=(0,J.useState)(()=>c?.storageTier??``),[h,v]=(0,J.useState)(()=>c?c.creditTier??`__none__`:``),[y,b]=(0,J.useState)({open:e,initialSelection:a});(y.open!==e||y.initialSelection!==a)&&(b({open:e,initialSelection:a}),u(c?.machineTier??``),f(c?.storageTier??``),v(c?c.creditTier??`__none__`:``));let S=t.machine_tiers,C=(0,J.useMemo)(()=>t.storage_tiers.filter(e=>!e.legacy||e.tier===a?.storageTier),[t.storage_tiers,a?.storageTier]),T=t.credit_tiers??[],E=(0,J.useMemo)(()=>(t.credit_tiers??[]).filter(e=>!e.legacy),[t.credit_tiers]),D=e=>rn(e)||e.legacy&&e.tier!==a?.storageTier||i!=null&&e.storage_gib<i,O=S.map(e=>({value:e.tier,label:e.description,icon:(0,X.jsx)(q,{className:`h-4 w-4`,"aria-hidden":!0}),suffix:bn(e.price_cents),disabled:rn(e)})),k=C.map(e=>({value:e.tier,label:e.label,icon:(0,X.jsx)(_,{className:`h-4 w-4`,"aria-hidden":!0}),suffix:bn(e.price_cents),disabled:D(e)})),A=h&&h!==`__none__`?T.find(e=>e.tier===h)??null:null,j=A?.legacy?A:null,ee=[{value:hn,label:gn,icon:(0,X.jsx)(m,{className:`h-4 w-4`,"aria-hidden":!0})},...E.map(e=>({value:e.tier,label:e.label,icon:(0,X.jsx)(m,{className:`h-4 w-4`,"aria-hidden":!0}),suffix:bn(e.price_cents)})),...j?[{value:j.tier,label:j.label,icon:(0,X.jsx)(m,{className:`h-4 w-4`,"aria-hidden":!0}),suffix:bn(j.price_cents),disabled:!0}]:[]],M=S.find(e=>e.tier===l)??null,N=d!==``&&d===a?.storageTier,P=C.find(e=>e.tier===d&&(N||!D(e)))??null,te=h===`__none__`||h===a?.creditTier||E.some(e=>e.tier===h),F=h!==``&&te?h:null,I=M!=null&&P!=null&&F!=null,ne=a!=null&&l===(a.machineTier??``)&&d===a.storageTier&&h===(a.creditTier??`__none__`),L=(0,J.useMemo)(()=>yn({proPlan:t,seed:a??null,machineTier:l,storageTier:d,creditChoice:h}),[t,a,l,d,h]);return(0,X.jsx)(x.Root,{open:e,onOpenChange:e=>{e||o()},children:(0,X.jsx)(x.Content,{size:`lg`,"data-theme":`light`,hideCloseButton:!0,overlayClassName:`backdrop-blur-[2px]`,className:`max-w-[820px] md:min-h-[min(608px,calc(100vh-4rem))]`,children:(0,X.jsx)(x.Body,{className:`p-4`,children:(0,X.jsxs)(`div`,{className:`flex flex-col gap-8 md:flex-row md:gap-12`,children:[(0,X.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-6 md:flex-1`,children:[(0,X.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,X.jsx)(`div`,{className:`flex shrink-0 items-center justify-center rounded-xl bg-[var(--surface-active)] p-[14px]`,children:(0,X.jsx)(g,{className:`h-6 w-6 text-[var(--content-emphasised)]`,"aria-hidden":!0})}),(0,X.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1`,children:[(0,X.jsx)(x.Title,{className:`text-[16px] font-medium text-[var(--content-emphasised)]`,children:`Create a custom plan`}),(0,X.jsx)(x.Description,{className:`mt-0 text-[14px] font-medium leading-[18px] text-[var(--content-tertiary)]`,children:`Just better.`})]})]}),(0,X.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,X.jsx)(`span`,{className:`text-[11px] font-medium text-[var(--content-secondary)]`,children:`Select a machine size:`}),(0,X.jsx)(w,{"aria-label":`Machine size`,placeholder:`Select a machine size`,value:l,onChange:u,options:O})]}),(0,X.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,X.jsx)(`span`,{className:`text-[11px] font-medium text-[var(--content-secondary)]`,children:`Select storage:`}),(0,X.jsx)(w,{"aria-label":`Storage`,placeholder:`Select storage`,value:d,onChange:f,options:k})]}),(0,X.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,X.jsx)(`span`,{className:`text-[11px] font-medium text-[var(--content-secondary)]`,children:`Bundle some credits:`}),(0,X.jsx)(w,{"aria-label":`Credit bundle`,placeholder:`Select a credit bundle`,value:h,onChange:v,options:ee})]})]}),(0,X.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-16 md:pt-[5px]`,children:[(0,X.jsx)(`span`,{className:`text-[16px] font-medium text-[var(--content-emphasised)]`,children:`Recap`}),(0,X.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,X.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,X.jsx)(`span`,{className:`text-[24px] font-medium text-[var(--content-default)]`,children:$(L.totalCents)}),L.deltaCents!=null&&L.deltaCents!==0&&L.previousTotalCents!=null&&(0,X.jsxs)(`span`,{className:`text-[12px] font-medium ${L.deltaCents>0?`text-[var(--system-positive-strong)]`:`text-[var(--system-negative-strong)]`}`,children:[nn(L.deltaCents),` compared to previous (`,tn(L.previousTotalCents),`)`]}),(0,X.jsx)(`span`,{className:`text-[11px] font-medium text-[var(--content-tertiary)]`,children:`Total`})]}),(0,X.jsx)(`div`,{className:`h-px w-full bg-[var(--border-hover)]`}),(0,X.jsx)(`span`,{className:`text-[12px] font-medium text-[var(--content-tertiary)]`,children:`Your selection:`}),(0,X.jsx)(`ul`,{className:`flex flex-col gap-2`,children:L.rows.map(e=>(0,X.jsxs)(`li`,{className:`flex flex-col gap-2`,children:[e.previousLabel!=null&&(0,X.jsxs)(`div`,{className:`relative flex w-fit items-start gap-2`,children:[(0,X.jsx)(p,{className:`mt-0.5 h-4 w-4 shrink-0 text-[var(--content-disabled)]`,"aria-hidden":!0}),(0,X.jsx)(`s`,{className:`text-[14px] font-medium leading-[18px] text-[var(--content-disabled)] no-underline`,children:e.previousLabel}),(0,X.jsx)(`span`,{"aria-hidden":!0,className:`pointer-events-none absolute -left-1 right-0 top-[9px] h-px bg-[var(--content-disabled)]`})]}),(0,X.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,X.jsx)(p,{className:`mt-0.5 h-4 w-4 shrink-0 ${e.changed?`text-[var(--system-positive-strong)]`:`text-[var(--content-secondary)]`}`,"aria-hidden":!0}),(0,X.jsx)(`span`,{className:`text-[14px] font-medium leading-[18px] text-[var(--content-secondary)]`,children:e.label})]})]},e.key))}),(0,X.jsx)(n,{variant:`primary`,fullWidth:!0,disabled:!I||ne||r,onClick:()=>{!I||ne||r||s({machineTier:M.tier,storageTier:P.tier,creditTier:F===`__none__`?null:F})},children:`Continue`}),(0,X.jsx)(n,{variant:`ghost`,fullWidth:!0,disabled:r,onClick:o,children:`Cancel`})]})]})]})})})})}var Sn={free:{tagline:`Get to know your assistant.`,cta:`Start Free`,priceCaption:`Forever`},mighty:{tagline:`More capacity for consistent use.`,cta:`Power Up`,priceCaption:`Billed monthly`,recommended:!0,upgradeBlurb:`$25 in Credits, more storage and power`},super:{tagline:`Stronger performance for heavier workloads.`,cta:`Go Super`,priceCaption:`Billed monthly`,extraFeatures:[`Assistant email and subdomain`],upgradeBlurb:`$45 credits, 3× storage, more power, and email.`},ultra:{tagline:`Built for sustained, high-demand work.`,cta:`Unleash Ultra`,priceCaption:`Billed monthly`,extraFeatures:[`Assistant email and subdomain`],upgradeBlurb:`$115 credits, 2x storage, more power, and email.`}};function Cn(e){return Sn[e]}function wn(e){return`Downgrade to ${e}`}var Tn=`Your machine downsizes now and your storage stays. No refund — a prorated credit applies to your next invoice.`,En=`You'll be charged the prorated difference now.`,Dn=`Your plan changes now. Any prorated difference is charged now or credited to your next invoice.`;function On({open:e,relation:t,packageName:r,pending:i,onCancel:a,onConfirm:o}){let s=t===`downgrade`,l=t===`switch`,u=s?`Downgrade to ${r}?`:l?`Switch to ${r}?`:`Upgrade to ${r}?`,d=s?Tn:l?Dn:En;return(0,X.jsx)(x.Root,{open:e,onOpenChange:e=>{!e&&!i&&a()},children:(0,X.jsxs)(x.Content,{size:`md`,hideCloseButton:!0,children:[(0,X.jsx)(x.Header,{children:(0,X.jsx)(x.Title,{icon:s?y:void 0,children:u})}),(0,X.jsx)(x.Body,{children:(0,X.jsx)(c,{as:`p`,variant:`body-medium-default`,className:`text-(--content-secondary)`,children:d})}),(0,X.jsxs)(x.Footer,{children:[(0,X.jsx)(n,{variant:`outlined`,onClick:a,disabled:i,children:`Cancel`}),(0,X.jsx)(n,{variant:s?`danger`:`primary`,onClick:o,disabled:i,"data-testid":`confirm-package-switch-button`,children:s?wn(r):`Switch to ${r}`})]})]})})}var kn={free:{bodyShape:`ninja`,eyeStyle:`angry`,color:`yellow`},mighty:{bodyShape:`blob`,eyeStyle:`grumpy`,color:`green`},super:{bodyShape:`urchin`,eyeStyle:`goofy`,color:`teal`},ultra:{bodyShape:`sprout`,eyeStyle:`curious`,color:`orange`}};function An({tier:e,size:t=40}){let n=kn[e]??kn.free,r=_e();return(0,X.jsx)(`div`,{"aria-hidden":!0,className:`inline-flex shrink-0`,children:r?(0,X.jsx)(G,{components:r,bodyShapeId:n.bodyShape,colorId:n.color,size:t}):(0,X.jsx)(`div`,{style:{width:t,height:t}})})}var jn=`Small`;function Mn(e){return e?.machine_size?K[e.machine_size]??e.machine_size:jn}function Nn(e){let t=e?.credits_usd??0,n=e?.storage_gib??4;return[{icon:q,label:`${Mn(e)} Machine`},{icon:m,label:`$${t} credits`},{icon:_,label:`${n} GB`}]}function Pn(){let e=i();(0,J.useEffect)(()=>M(()=>{e.invalidateQueries({queryKey:V()}),e.invalidateQueries({queryKey:R()}),e.invalidateQueries({queryKey:L()})}),[e])}export{zt as A,Xt as C,Jt as D,Qt as E,Ze as F,Fe as I,Ce as L,Bt as M,Wt as N,$t as O,Rt as P,en as S,Zt as T,un as _,An as a,tn as b,Cn as c,pn as d,on as f,dn as g,fn as h,Nn as i,Gt as j,Vt as k,xn as l,sn as m,jn as n,On as o,ln as p,Mn as r,wn as s,Pn as t,mn as u,an as v,Yt as w,$ as x,nn as y};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{n}from"./QueryClientProvider-CMu7CkQU.js";import{t as r}from"./useQuery-Bz-fbQ-m.js";import{t as i}from"./createLucideIcon-CAM1RhH8.js";import{n as a,t as o}from"./settings-CfuLzwIw.js";import{t as s}from"./chevron-left-CytMddTB.js";import{t as c}from"./chevron-right-HU6H84S0.js";import{t as l}from"./globe-CMtjL_s_.js";import{t as u}from"./layout-grid-DA_CfD6d.js";import{t as d}from"./message-square-CQGiY4zk.js";import{t as f}from"./monitor-B1y28fS1.js";import{t as p}from"./search-BVW-n8to.js";import{n as m,t as h}from"./zoom-in-CaLYwni-.js";import{n as g,t as _}from"./create-selectors-Qo7kcikX.js";import{ct as v,f as y,h as b,r as x}from"./local-mode-Ckii2tmN.js";import{t as S}from"./is-electron-m5eeGBnd.js";import{n as C}from"./resolved-assistants-store-C-PdxK8f.js";import{nr as w}from"./sdk.gen-BVAVE6A_.js";import{r as T}from"./utils-CnB60ZJN.js";import{n as E}from"./api-errors-CFiCT7Ap.js";import{A as D,D as O,I as ee,O as te,T as k,j as A}from"./auth-store-D9BqFncz.js";import{et as j}from"./sdk.gen-BIu1DgTs.js";import{u as M}from"./routes-vE-2hncW.js";import{t as N}from"./use-is-org-ready-X_98Cnx9.js";import{a as P,i as F,r as I}from"./feature-flag-catalog-BAyJlRMY.js";import{t as L}from"./client-feature-flag-store-oTfL8Oiz.js";import{t as R}from"./haptics-D9eNTUq-.js";import{F as z}from"./react-query.gen-Mwd5l-vZ.js";import{s as B}from"./chat-BrL0k2UY.js";var V=i(`contact`,[[`path`,{d:`M16 2v2`,key:`scm5qe`}],[`path`,{d:`M7 22v-2a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v2`,key:`1waht3`}],[`path`,{d:`M8 2v2`,key:`pbkmx`}],[`circle`,{cx:`12`,cy:`11`,r:`3`,key:`itu57m`}],[`rect`,{x:`3`,y:`4`,width:`18`,height:`18`,rx:`2`,key:`12vinp`}]]),H=i(`square-pen`,[[`path`,{d:`M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7`,key:`1m0v6g`}],[`path`,{d:`M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z`,key:`ohrbg2`}]]),U=e(t(),1);function W({sessionStatus:e,hasPlatformSession:t}){let r=n(),i=N(),a=O.use.currentOrganizationId(),o=A(e)&&!v()&&(t||!y())&&i,s=L.use.multiPlatformAssistant();C.use.selectedAssistantId(),C.use.assistants();let c=a??k(),l=s&&!v()&&c?te(c):null,u=l&&!x().some(e=>e.assistantId===l)?l:null,{data:d}=ee({enabled:o,selectedPlatformAssistantId:u});(0,U.useEffect)(()=>{D.setInputs({sessionStatus:e,hasPlatformSession:t,queryClient:r,selectedPlatformAssistantId:u,isOrgReady:i}),D.respondToInputs()},[e,t,r,u,i]),(0,U.useEffect)(()=>{d&&D.applyServerResult(d)},[d])}var G=`0.8.5`,K=5e3,q=6e4;function J(){return T(G)?{staleTime:q,refetchInterval:!1}:{staleTime:K,refetchInterval:K}}var Y=new Set(Object.keys(I)),X=new Set(Object.keys(F));async function Z(){let{data:e,error:t,response:n}=await j({throwOnError:!1});if(E(n,t,`Failed to fetch client feature flags`),!n.ok||!e)throw Error(`Failed to fetch client feature flags: ${n.status}`);return e}function ne(e){let t={},n={};for(let[r,i]of Object.entries(e)){let e=P(r);typeof i==`boolean`&&Y.has(e)?t[e]=i:typeof i==`string`&&X.has(e)&&(n[e]=i)}return{boolFlags:t,stringFlags:n}}function re(e){let t=J(),n=e&&!b(),{data:i}=r({queryKey:z(),queryFn:Z,enabled:n,...t,retry:1});(0,U.useEffect)(()=>{if(i?.flags){let{boolFlags:e,stringFlags:t}=ne(i.flags),n=L.getState();n.setFlags(e),Object.keys(t).length>0&&n.setStringFlags(t)}},[i])}var Q=_(g((e,t)=>({isOpen:!1,open:()=>e({isOpen:!0}),close:()=>e({isOpen:!1}),toggle:()=>e({isOpen:!t().isOpen})})));async function ie(){if(!S())return!1;let e=window.vellum?.commandPalette?.open;return e?(await e(),!0):!1}async function ae(){S()&&await window.vellum?.commandPalette?.dismiss()}async function oe(e){S()&&await window.vellum?.commandPalette?.select(e)}var $={conversations:[],memories:[],schedules:[],contacts:[]};async function se(e,t,n){let r=n?.limit??20;try{let{data:i,response:a}=await w({path:{assistant_id:e},query:{q:t,limit:r,categories:`conversations,schedules,contacts`},throwOnError:!1,signal:n?.signal});return!a?.ok||!i?$:i.results}catch(n){return n instanceof DOMException&&n.name===`AbortError`||console.error(`[global-search] search failed`,{assistantId:e,query:t,err:n}),$}}var ce=150,le=2;function ue({itemCount:e,onSelect:t,assistantId:n,isOpen:r,onClose:i}){let a=Q.use.isOpen(),o=r??a,s=Q.use.open(),c=Q.use.close(),[l,u]=(0,U.useState)(``),[d,f]=(0,U.useState)(0),[p,m]=(0,U.useState)(!1),[h,g]=(0,U.useState)(null),_=(0,U.useRef)(()=>0);(0,U.useLayoutEffect)(()=>{_.current=typeof e==`function`?e:()=>e});let v=(0,U.useRef)(null),y=(0,U.useRef)(null),b=(0,U.useCallback)(()=>{v.current&&=(clearTimeout(v.current),null),y.current?.abort(),y.current=null},[]),x=(0,U.useCallback)(()=>{s(),f(0)},[s]),S=(0,U.useCallback)(()=>{c(),u(``),f(0),m(!1),g(null),b(),i?.()},[c,b,i]),C=(0,U.useCallback)(()=>{o?S():x()},[o,S,x]);(0,U.useEffect)(()=>{o||(u(``),f(0),m(!1),g(null),b())},[o,b]);let w=(0,U.useCallback)(e=>{b();let t=e.trim();if(t.length<le||!n){m(!1),g(null);return}m(!0),v.current=setTimeout(()=>{if(!n){m(!1);return}let e=new AbortController;y.current=e,se(n,t,{signal:e.signal}).then(t=>{y.current===e&&(g(t),m(!1))}).catch(()=>{y.current===e&&m(!1)})},ce)},[b,n]),T=(0,U.useCallback)(e=>{u(e),f(0),w(e)},[w]);return(0,U.useEffect)(()=>()=>{y.current?.abort(),v.current&&clearTimeout(v.current)},[]),{isOpen:o,query:l,selectedIndex:d,isSearching:p,searchResults:h,open:x,close:S,toggle:C,setQuery:T,handleKeyDown:(0,U.useCallback)(e=>{if(e.key===`k`&&(e.metaKey||e.ctrlKey)){e.preventDefault(),S();return}let n=_.current();switch(e.key){case`ArrowDown`:e.preventDefault(),n>0&&f(e=>Math.min(e+1,n-1));break;case`ArrowUp`:e.preventDefault(),f(e=>Math.max(e-1,0));break;case`Enter`:e.preventDefault(),n>0&&t?.(d);break;case`Escape`:e.preventDefault(),S();break}},[t,d,S])}}function de(e,t){let n=[],r=e.conversations.filter(e=>!t.has(e.id)).map(e=>({id:`search-conv-${e.id}`,icon:d,title:e.title??`Untitled`,subtitle:e.excerpt}));r.length>0&&n.push({id:`search-conversations`,label:`Conversations`,items:r});let i=e.schedules.map(e=>({id:`search-schedule-${e.id}`,icon:a,title:e.name,subtitle:e.expression??e.message}));i.length>0&&n.push({id:`search-schedules`,label:`Schedules`,items:i});let o=e.contacts.map(e=>({id:`search-contact-${e.id}`,icon:V,title:e.displayName,subtitle:e.notes??void 0}));return o.length>0&&n.push({id:`search-contacts`,label:`Contacts`,items:o}),n}function fe(e){return{id:`actions`,label:`Actions`,items:[{id:`action-new-conversation`,icon:H,title:`New Conversation`,shortcutHint:S()?`⌘N`:`⌘⇧O`},{id:`action-current-conversation`,icon:f,title:`Current Conversation`,shortcutHint:`⌘⇧N`},{id:`action-settings`,icon:o,title:`Settings`,shortcutHint:`⌘,`},{id:`action-library`,icon:u,title:`Library`},{id:`action-intelligence`,icon:l,title:e},{id:`action-back`,icon:s,title:`Back`,shortcutHint:`⌘[`},{id:`action-forward`,icon:c,title:`Forward`,shortcutHint:`⌘]`},{id:`action-zoom-in`,icon:h,title:`Zoom In`,shortcutHint:`⌘+`},{id:`action-zoom-out`,icon:m,title:`Zoom Out`,shortcutHint:`⌘−`},{id:`action-actual-size`,icon:p,title:`Actual Size`,shortcutHint:`⌘0`}]}}function pe(e){return{id:`conversations`,label:`Recent`,items:e.slice(0,5).map(e=>({id:`conv-${e.conversationId}`,icon:d,title:e.title??`Untitled`,subtitle:e.lastMessageAt?B(e.lastMessageAt):void 0}))}}function me(e,t){switch(e.id){case`action-new-conversation`:t.startNewConversation();break;case`action-current-conversation`:R.light(),t.navigate(M.assistant);break;case`action-settings`:R.light(),t.navigateToSettings();break;case`action-intelligence`:R.light(),t.navigate(M.identity);break;case`action-library`:R.light(),t.navigate(M.library.root);break;case`action-back`:t.navigate(-1);break;case`action-forward`:t.navigate(1);break;case`action-zoom-in`:document.body.style.zoom=String(parseFloat(document.body.style.zoom||`1`)+.1);break;case`action-zoom-out`:document.body.style.zoom=String(Math.max(.5,parseFloat(document.body.style.zoom||`1`)-.1));break;case`action-actual-size`:document.body.style.zoom=`1`;break;default:if(e.id.startsWith(`conv-`)){let n=e.id.slice(5);t.switchConversation(n)}else if(e.id.startsWith(`search-conv-`)){let n=e.id.slice(12);t.switchConversation(n)}else e.id.startsWith(`search-schedule-`)?(R.light(),t.navigate(M.schedules.detail(e.id.slice(16)))):e.id.startsWith(`search-contact-`)&&(R.light(),t.navigate(M.identity));break}}function he({assistantId:e,assistantName:t,conversations:n,activeConversationId:r,startNewConversation:i,switchConversation:a,navigate:o,navigateToSettings:s,isOpen:c,onClose:l,onItemSelect:u}){let d=(0,U.useMemo)(()=>{let e=fe(t??`Assistant`),r=pe(n);return[e,...r.items.length>0?[r]:[]]},[n,t]),f=(0,U.useMemo)(()=>new Set(n.slice(0,5).map(e=>e.conversationId)),[n]),p=(0,U.useCallback)(e=>{if(u){u(e);return}me(e,{startNewConversation:i,switchConversation:a,navigate:o,activeConversationId:r,navigateToSettings:s})},[i,a,o,r,s,u]),m=(0,U.useRef)([]),h=(0,U.useRef)(()=>{}),g=ue({itemCount:()=>m.current.reduce((e,t)=>e+t.items.length,0),onSelect:(0,U.useCallback)(e=>{let t=e;for(let e of m.current){if(t<e.items.length){let n=e.items[t];p(n),h.current();return}t-=e.items.length}},[p]),assistantId:e,isOpen:c,onClose:l});(0,U.useLayoutEffect)(()=>{h.current=g.close});let _=(0,U.useMemo)(()=>{if(!g.query.trim())return d;let e=g.query.toLowerCase().trim();return d.map(t=>({...t,items:t.items.filter(t=>t.title.toLowerCase().includes(e))})).filter(e=>e.items.length>0)},[d,g.query]),v=(0,U.useMemo)(()=>{let e=g.searchResults?de(g.searchResults,f):[];return[..._,...e]},[_,g.searchResults,f]);return(0,U.useLayoutEffect)(()=>{m.current=v}),{commandPalette:g,mergedSections:v,handleItemSelect:(0,U.useCallback)(e=>{p(e),h.current()},[p])}}export{Q as a,W as c,oe as i,H as l,ae as n,re as o,ie as r,J as s,he as t,V 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"./button-Dy5001j6.js";import{n as r}from"./QueryClientProvider-CMu7CkQU.js";import{t as i}from"./useQuery-Bz-fbQ-m.js";import{t as a}from"./useMutation-CXGTrp4W.js";import{t as o}from"./jsx-runtime-D3ZM-ToX.js";import{t as s}from"./typography-DEI9Ra9z.js";import{c,i as l,m as u,n as d,p as f,r as p,s as m,t as h}from"./use-save-twilio-credentials-CUQ6gdIj.js";import{t as g}from"./check-sC49_hjU.js";import{o as _}from"./list-row-B1wPb2Au.js";import{t as v}from"./link-2-BKL8QWRX.js";import{t as y}from"./loader-circle-XREx3i4W.js";import{t as b}from"./input-hw3el2GJ.js";import{t as x}from"./modal-BR4CUFBd.js";import{Jt as S,Qt as C,en as w}from"./sdk.gen-BVAVE6A_.js";import{G as T,K as E,U as D,W as O,o as k,s as A,x as j}from"./react-query.gen-r3I6j8-1.js";import{r as M}from"./utils-CnB60ZJN.js";import{n as N,r as P,t as F}from"./api-errors-CFiCT7Ap.js";import{n as I}from"./sdk.gen-DPKrJeho.js";import{t as L}from"./mutation-error-CwYvaYnb.js";import{t as R}from"./a2a-invite-DUYZLVQb.js";function z(e){return e?.trim()||`your assistant`}var B=e(t(),1),V=o(),H=[`no_one`,`guardian_only`,`trusted_contacts`,`any_contact`,`strangers`],U=`trusted_contacts`,W=new Set([`platform`,`a2a`]),G=new Set([`vellum`,`whatsapp`]);function K(e){return G.has(e)}var q={no_one:`No one`,guardian_only:`Only you`,trusted_contacts:`Verified contacts`,any_contact:`Any contact`,strangers:`Strangers`};function J(e){return{no_one:`No one can message ${e} on this channel — every message is blocked, including yours.`,guardian_only:`Only you can message ${e}. Everyone else is turned away.`,trusted_contacts:`You and the people you’ve verified can message ${e}. Anyone else is asked to verify first, and you’re notified.`,any_contact:`You and any known contact can message ${e}, including contacts you haven’t verified yet. Strangers are asked to verify first.`,strangers:`Anyone can message ${e}, including complete strangers.`}}function Y(e){let t=e-Date.now();if(t<=0)return`Expired`;let n=Math.ceil(t/(1e3*60*60*24));return n===1?`Expires in 1 day`:`Expires in ${n} days`}function X({open:e,assistantId:t,onClose:r}){let[i,o]=(0,B.useState)(!1),c=(0,B.useRef)(null),l=(0,B.useRef)(!1),u=a({...D({path:{assistant_id:t}})}),d=(0,B.useRef)(u.mutate);(0,B.useLayoutEffect)(()=>{d.current=u.mutate});let f=(0,B.useRef)(u.reset);(0,B.useLayoutEffect)(()=>{f.current=u.reset}),(0,B.useEffect)(()=>{e&&!l.current&&d.current({path:{assistant_id:t}}),l.current=e},[e,t]),(0,B.useEffect)(()=>()=>{c.current&&clearTimeout(c.current)},[]);let p=(0,B.useCallback)(()=>{f.current(),o(!1),c.current&&=(clearTimeout(c.current),null),r()},[r]),m=(0,B.useCallback)(e=>{navigator.clipboard.writeText(e).then(()=>{o(!0),c.current&&clearTimeout(c.current),c.current=setTimeout(()=>o(!1),2e3)})},[]),h=u.isSuccess&&u.data.token?R({senderAssistantId:t,token:u.data.token}):``;return(0,V.jsx)(x.Root,{open:e,onOpenChange:e=>{e||p()},children:(0,V.jsxs)(x.Content,{size:`sm`,children:[(0,V.jsx)(x.Header,{children:(0,V.jsx)(x.Title,{children:`Share Connection Link`})}),(0,V.jsx)(x.Body,{children:u.isPending?(0,V.jsxs)(`div`,{className:`flex items-center gap-2 py-2 text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:[(0,V.jsx)(y,{className:`h-4 w-4 animate-spin`}),`Creating invite link…`]}):u.isError?(0,V.jsxs)(`div`,{className:`space-y-3`,children:[(0,V.jsx)(`p`,{role:`alert`,className:`!m-0 text-body-medium-lighter`,style:{color:`var(--system-negative-strong)`},children:`Failed to create invite link. Make sure A2A is enabled for your assistant.`}),(0,V.jsx)(n,{variant:`outlined`,onClick:()=>u.mutate({path:{assistant_id:t}}),children:`Try Again`})]}):u.isSuccess?(0,V.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,V.jsx)(s,{variant:`body-medium-lighter`,style:{color:`var(--content-secondary)`},children:`Share this link with another assistant owner to establish a connection.`}),(0,V.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,V.jsx)(b,{type:`text`,readOnly:!0,value:h,fullWidth:!0,wrapperClassName:`flex-1`,className:`font-mono`,onFocus:e=>e.currentTarget.select()}),(0,V.jsx)(`button`,{type:`button`,onClick:()=>m(h),"aria-label":`Copy invite link`,className:`flex h-9 w-9 shrink-0 items-center justify-center rounded-md border border-[var(--border-base)] hover:bg-[var(--surface-hover)]`,children:i?(0,V.jsx)(g,{className:`h-4 w-4`}):(0,V.jsx)(_,{className:`h-4 w-4`})})]}),u.data.expiresAt!=null&&(0,V.jsx)(s,{variant:`body-small-default`,style:{color:`var(--content-tertiary)`},children:Y(u.data.expiresAt)})]}):null}),(0,V.jsx)(x.Footer,{children:(0,V.jsx)(n,{variant:`outlined`,onClick:p,children:`Done`})})]})})}function Z({onClick:e}){return(0,V.jsx)(n,{variant:`outlined`,size:`compact`,leftIcon:(0,V.jsx)(v,{className:`h-3.5 w-3.5`}),onClick:e,children:`Share Connection Link`})}function Q(e){return typeof e==`string`&&H.includes(e)}function $(e){return W.has(e)}function ee(e){return(e?.policies??[]).filter(e=>!$(e.channelType)&&!K(e.channelType)).map(e=>({...e,policy:Q(e.policy)?e.policy:`trusted_contacts`}))}async function te(e,t,n,r){if($(t))throw new F(403,`Channel "${t}" is internal and is not user-configurable.`);let{data:i,error:a,response:o}=await I({path:{assistant_id:e,channel_type:t},body:{policy:n,note:r??null},throwOnError:!1});if(N(o,a,`Failed to save channel policy.`),!o.ok)throw new F(o.status,P(a,o,`Failed to save channel policy.`));if(!i?.policy)throw new F(500,`Gateway returned no policy in response.`);return i.policy}var ne=`0.10.0`;function re(){return M(ne)}function ie(e){let t=r(),n=re(),o=(0,B.useMemo)(()=>({path:{assistant_id:e}}),[e]),s=(0,B.useMemo)(()=>u(o),[o]),l=i({...f(o),enabled:n,select:ee}),d=(0,B.useMemo)(()=>{let e={};for(let t of l.data??[])c(t.channelType)&&(e[t.channelType]=t.policy);return e},[l.data]),p=a({mutationFn:({channelKey:t,policy:n})=>te(e,t,n),onSuccess:()=>t.invalidateQueries({queryKey:s}),onError:L(`Failed to save channel policy`)}),m=(0,B.useCallback)((e,t)=>{p.mutate({channelKey:e,policy:t})},[p]);return n?{policies:d,savingKey:p.isPending?p.variables?.channelKey??null:null,isLoading:l.isPending,isError:l.isError,onChange:m}:{policies:void 0,savingKey:null,isLoading:!1,isError:!1,onChange:void 0}}var ae={slack:`I want to reach you on Slack. Let's set it up.`,telegram:`I want to reach you on Telegram. Let's set it up.`,phone:`I want to be able to call you. Let's set you up with a phone number.`},oe=15e3;function se({assistantId:e,onStartSetupConversation:t}){let n=r(),o=(0,B.useMemo)(()=>({path:{assistant_id:e}}),[e]),s=(0,B.useMemo)(()=>A(o),[o]),c=i({...k(o),enabled:!!e,refetchInterval:oe,select:e=>e.snapshots}),u=(0,B.useMemo)(()=>ce(c.data??[]),[c.data]),f=u.some(e=>e.key===`slack`&&e.status===`ready`),m=i({...O(o),enabled:f,select:e=>e.threadMode}),g=ie(e),_=(0,B.useCallback)(()=>n.invalidateQueries({queryKey:s}),[n,s]),v=a({mutationFn:async t=>{let n={path:{assistant_id:e},throwOnError:!0};t===`slack`?await S(n):t===`telegram`?await C(n):t===`phone`&&await w(n)},onSettled:(t,r,i)=>{_(),i===`slack`&&l(n,e)}}),y=d({assistantId:e}),b=p({assistantId:e}),x=h({assistantId:e}),D=a({...E(),onSuccess:()=>{n.invalidateQueries({queryKey:T(o)})}}),j=y.mutateAsync,M=(0,B.useCallback)(async e=>{await j(e)},[j]),N=b.mutate,P=(0,B.useCallback)((e,t)=>{N({botToken:e,appToken:t})},[N]),F=D.mutate,I=(0,B.useCallback)(t=>{F({path:{assistant_id:e},body:{threadMode:t}})},[F,e]),L=x.mutateAsync,R=(0,B.useCallback)(async(e,t)=>{await L({accountSid:e,authToken:t})},[L]),z=(0,B.useCallback)(e=>{t&&t(ae[e])},[t]),V=v.mutate,H=(0,B.useCallback)(e=>{V(e)},[V]);return{channels:u,pendingChannelKey:v.isPending?v.variables??null:null,slackThreadMode:m.data,slackThreadModePending:D.isPending,channelPolicies:g.policies,policySavingKey:g.savingKey,policiesLoading:g.isLoading,policiesError:g.isError,onChannelPolicyChange:g.onChange,onSetup:t?z:void 0,onDisconnect:H,onSaveTelegramToken:M,onSaveSlackConfig:P,slackSaveStatus:b.status,slackSaveError:b.error?.message??null,onSlackThreadModeChange:I,onSaveTwilioCredentials:R}}function ce(e){let t=new Map;for(let n of e)t.set(n.channel,n);return m.map(e=>{let n=t.get(e);return{key:e,status:le(n),address:n?.channelHandle??void 0}})}function le(e){return e?e.ready||e.setupStatus===`ready`?`ready`:e.setupStatus===`incomplete`?`incomplete`:`not_configured`:`not_configured`}function ue(e){let t=r(),[n,i]=(0,B.useState)(!1);return{isOpen:n,open:(0,B.useCallback)(()=>{i(!0)},[]),close:(0,B.useCallback)(()=>{i(!1),t.invalidateQueries({queryKey:j({path:{assistant_id:e}})})},[t,e])}}export{U as a,J as c,X as i,z as l,se as n,H as o,Z as r,q as s,ue as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{D as e,T as t,i as n}from"./auth-store-D9BqFncz.js";function r(){let r=e.use.currentOrganizationId();return e.use.status(),n()?r!=null||t()!=null:!0}export{r as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{l as n}from"./chunk-5KNZJZUH-Bsoom5--.js";import{t as r}from"./is-electron-m5eeGBnd.js";import{f as i}from"./native-biometric-CntdlaL-.js";import{u as a}from"./routes-vE-2hncW.js";import{n as o,t as s}from"./build-state-WR9nlRgM.js";import{n as c}from"./login-flow-BCNBNLzu.js";var l=e(t(),1);function u(e){let t=n(),[u,d]=(0,l.useState)(!1),[f,p]=(0,l.useState)(null),m=(0,l.useRef)(0);return{loading:u,error:f,login:async()=>{let n=e??o(s({sessionSettled:!0,isAuthenticated:!0}),t.pathname),r=++m.current;p(null),d(!0);try{await i(c,`${a.account.providerCallback}?returnTo=${encodeURIComponent(n)}`,{returnTo:n})}catch{if(r!==m.current)return;p(`Something went wrong. Please try again.`),d(!1)}},cancel:()=>{m.current++,d(!1),p(null),r()&&window.vellum?.auth?.cancelOAuth()}}}export{u as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{f as e,m as t}from"./local-mode-Ckii2tmN.js";import{U as n,i as r}from"./auth-store-D9BqFncz.js";function i(){let e=n.use.assistantState();return!!(e.kind===`self_hosted`||e.kind===`active`&&e.isLocal)}function a(){let e=n.use.assistantState();return e.kind===`active`&&!e.isLocal}function o(){let e=n.use.assistantState();return e.kind===`loading`||e.kind===`initializing`||e.kind===`cleaning_up`}function s(n={}){let a=r(),o=t(),s=i();return n.platformHostedOnly?s?`gated`:a?`full`:`disabled`:e()&&o?`gated`:a?`full`:`disabled`}export{s as i,i as n,o as r,a as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{r as t}from"./capture-error-Bj8_eutd.js";import{t as n}from"./react-BFJW0bSv.js";import{t as r}from"./button-Dy5001j6.js";import{n as i}from"./QueryClientProvider-CMu7CkQU.js";import{t as a}from"./useQuery-Bz-fbQ-m.js";import{t as o}from"./jsx-runtime-D3ZM-ToX.js";import{t as s}from"./typography-DEI9Ra9z.js";import{t as c}from"./chevron-right-HU6H84S0.js";import{t as l}from"./loader-circle-XREx3i4W.js";import{j as u,k as d}from"./src-D89CNeuT.js";import{t as f}from"./tag-NXcyiTkK.js";import{n as p,t as m}from"./input-hw3el2GJ.js";import{t as h}from"./toggle-lfnhEAcN.js";import{t as g}from"./modal-BR4CUFBd.js";import{n as _}from"./toast-LgLp4obE.js";import{t as ee}from"./dropdown-BCfnSdIZ.js";import{t as v}from"./is-electron-m5eeGBnd.js";import{Gt as y,Ht as b,Kt as x,Vt as S,ar as te,or as C}from"./sdk.gen-BVAVE6A_.js";import{H as w,_t as T,c as E,gt as D}from"./react-query.gen-r3I6j8-1.js";import{t as O}from"./assistant-identity-store-DIyVo8LV.js";import{i as k,r as A,t as j}from"./utils-CnB60ZJN.js";import{n as M}from"./use-platform-gate-Dry0Nv4f.js";import{t as N}from"./use-is-org-ready-X_98Cnx9.js";var P=e(n(),1),F={anthropic:[{id:`claude-fable-5`,displayName:`Claude Fable 5`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,adaptiveThinkingOnly:!0,longContextPricingThresholdTokens:2e5},{id:`claude-opus-5`,displayName:`Claude Opus 5`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`claude-opus-4-8`,displayName:`Claude Opus 4.8`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`claude-opus-4-7`,displayName:`Claude Opus 4.7`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`claude-opus-4-6`,displayName:`Claude Opus 4.6`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`claude-sonnet-5`,displayName:`Claude Sonnet 5`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`claude-sonnet-4-6`,displayName:`Claude Sonnet 4.6`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:64e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`claude-sonnet-4-5-20250929`,displayName:`Claude Sonnet 4.5`,contextWindowTokens:2e5,defaultContextWindowTokens:2e5,maxOutputTokens:64e3,supportsThinking:!0},{id:`claude-opus-4-5-20251101`,displayName:`Claude Opus 4.5`,contextWindowTokens:2e5,defaultContextWindowTokens:2e5,maxOutputTokens:64e3,supportsThinking:!0},{id:`claude-haiku-4-5-20251001`,displayName:`Claude Haiku 4.5`,contextWindowTokens:2e5,defaultContextWindowTokens:2e5,maxOutputTokens:64e3,supportsThinking:!0}],openai:[{id:`gpt-5.6-sol`,displayName:`GPT-5.6 Sol`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:272e3},{id:`gpt-5.6-terra`,displayName:`GPT-5.6 Terra`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:272e3},{id:`gpt-5.6-luna`,displayName:`GPT-5.6 Luna`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:272e3},{id:`gpt-5.5`,displayName:`GPT-5.5`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:272e3},{id:`gpt-5.5-pro`,displayName:`GPT-5.5 Pro`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:272e3},{id:`gpt-5.4`,displayName:`GPT-5.4`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:272e3},{id:`gpt-5.2`,displayName:`GPT-5.2`,contextWindowTokens:4e5,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0},{id:`gpt-5.4-mini`,displayName:`GPT-5.4 Mini`,contextWindowTokens:4e5,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0},{id:`gpt-5.4-nano`,displayName:`GPT-5.4 Nano`,contextWindowTokens:4e5,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0}],gemini:[{id:`gemini-3.6-flash`,displayName:`Gemini 3.6 Flash`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:65536,supportsThinking:!0},{id:`gemini-3.5-flash`,displayName:`Gemini 3.5 Flash`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:65536,supportsThinking:!0},{id:`gemini-3.5-flash-lite`,displayName:`Gemini 3.5 Flash-Lite`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:65536,supportsThinking:!0},{id:`gemini-3.1-pro-preview`,displayName:`Gemini 3.1 Pro Preview`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:65536,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`gemini-3.1-pro-preview-customtools`,displayName:`Gemini 3.1 Pro Preview (Custom Tools)`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:65536,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`gemini-3-flash-preview`,displayName:`Gemini 3 Flash Preview`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:65536,supportsThinking:!0},{id:`gemini-3.1-flash-lite-preview`,displayName:`Gemini 3.1 Flash-Lite Preview`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:65536,supportsThinking:!0},{id:`gemini-3.1-flash-lite`,displayName:`Gemini 3.1 Flash-Lite`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:65536,supportsThinking:!0},{id:`gemini-2.5-flash`,displayName:`Gemini 2.5 Flash`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:65536,supportsThinking:!0},{id:`gemini-2.5-flash-lite`,displayName:`Gemini 2.5 Flash Lite`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:65536},{id:`gemini-2.5-pro`,displayName:`Gemini 2.5 Pro`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:65536,supportsThinking:!0,longContextPricingThresholdTokens:2e5}],ollama:[{id:`llama3.2`,displayName:`Llama 3.2`,contextWindowTokens:128e3,defaultContextWindowTokens:128e3,maxOutputTokens:4096},{id:`mistral`,displayName:`Mistral`,contextWindowTokens:32768,defaultContextWindowTokens:32768,maxOutputTokens:4096}],fireworks:[{id:`accounts/fireworks/models/kimi-k2p6`,displayName:`Kimi K2.6`,contextWindowTokens:262144,defaultContextWindowTokens:2e5,maxOutputTokens:32768,supportsThinking:!0},{id:`accounts/fireworks/models/glm-5p2`,displayName:`GLM 5.2`,contextWindowTokens:104e4,defaultContextWindowTokens:2e5,maxOutputTokens:131072,supportsThinking:!0},{id:`accounts/fireworks/models/kimi-k2p5`,displayName:`Kimi K2.5`,contextWindowTokens:256e3,defaultContextWindowTokens:2e5,maxOutputTokens:32768},{id:`accounts/fireworks/models/minimax-m3`,displayName:`MiniMax M3`,contextWindowTokens:524288,defaultContextWindowTokens:2e5,maxOutputTokens:512e3,supportsThinking:!0},{id:`accounts/fireworks/models/minimax-m2p7`,displayName:`MiniMax M2.7`,contextWindowTokens:196608,defaultContextWindowTokens:196608,maxOutputTokens:25e3},{id:`accounts/fireworks/models/minimax-m2p5`,displayName:`MiniMax M2.5`,contextWindowTokens:196608,defaultContextWindowTokens:196608,maxOutputTokens:25e3},{id:`accounts/fireworks/models/deepseek-v4-pro`,displayName:`DeepSeek V4 Pro`,contextWindowTokens:104e4,defaultContextWindowTokens:2e5,maxOutputTokens:131072,supportsThinking:!0},{id:`accounts/fireworks/models/deepseek-v4-flash`,displayName:`DeepSeek V4 Flash`,contextWindowTokens:104e4,defaultContextWindowTokens:2e5,maxOutputTokens:131072,supportsThinking:!0}],together:[{id:`MiniMaxAI/MiniMax-M3`,displayName:`MiniMax M3`,contextWindowTokens:524288,defaultContextWindowTokens:2e5,maxOutputTokens:512e3,supportsThinking:!0}],openrouter:[{id:`anthropic/claude-fable-5`,displayName:`Claude Fable 5`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,adaptiveThinkingOnly:!0,longContextPricingThresholdTokens:2e5},{id:`anthropic/claude-opus-5`,displayName:`Claude Opus 5`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`anthropic/claude-opus-4.8`,displayName:`Claude Opus 4.8`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`anthropic/claude-opus-4.7`,displayName:`Claude Opus 4.7`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`anthropic/claude-opus-4.6`,displayName:`Claude Opus 4.6`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`anthropic/claude-sonnet-5`,displayName:`Claude Sonnet 5`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`anthropic/claude-sonnet-4.6`,displayName:`Claude Sonnet 4.6`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:64e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`anthropic/claude-sonnet-4.5`,displayName:`Claude Sonnet 4.5`,contextWindowTokens:2e5,defaultContextWindowTokens:2e5,maxOutputTokens:64e3,supportsThinking:!0},{id:`anthropic/claude-opus-4.5`,displayName:`Claude Opus 4.5`,contextWindowTokens:2e5,defaultContextWindowTokens:2e5,maxOutputTokens:64e3,supportsThinking:!0},{id:`anthropic/claude-haiku-4.5`,displayName:`Claude Haiku 4.5`,contextWindowTokens:2e5,defaultContextWindowTokens:2e5,maxOutputTokens:64e3,supportsThinking:!0},{id:`openai/gpt-5.6-sol`,displayName:`GPT-5.6 Sol`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:272e3},{id:`openai/gpt-5.6-sol-pro`,displayName:`GPT-5.6 Sol Pro`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:272e3},{id:`openai/gpt-5.6-terra`,displayName:`GPT-5.6 Terra`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:272e3},{id:`openai/gpt-5.6-terra-pro`,displayName:`GPT-5.6 Terra Pro`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:272e3},{id:`openai/gpt-5.6-luna`,displayName:`GPT-5.6 Luna`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:272e3},{id:`openai/gpt-5.6-luna-pro`,displayName:`GPT-5.6 Luna Pro`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:272e3},{id:`x-ai/grok-4.5`,displayName:`Grok 4.5`,contextWindowTokens:5e5,defaultContextWindowTokens:2e5,maxOutputTokens:3e4,supportsThinking:!0},{id:`x-ai/grok-4.3`,displayName:`Grok 4.3`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:16e3,supportsThinking:!0},{id:`x-ai/grok-4.20`,displayName:`Grok 4.20`,contextWindowTokens:2e6,defaultContextWindowTokens:2e5,maxOutputTokens:16e3,supportsThinking:!0},{id:`deepseek/deepseek-r1-0528`,displayName:`DeepSeek R1`,contextWindowTokens:163840,defaultContextWindowTokens:163840,maxOutputTokens:32e3,supportsThinking:!0},{id:`deepseek/deepseek-chat-v3-0324`,displayName:`DeepSeek V3`,contextWindowTokens:163840,defaultContextWindowTokens:163840,maxOutputTokens:32e3},{id:`deepseek/deepseek-v4-pro`,displayName:`DeepSeek V4 Pro`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:384e3,supportsThinking:!0},{id:`deepseek/deepseek-v4-flash`,displayName:`DeepSeek V4 Flash`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:384e3,supportsThinking:!0},{id:`deepseek/deepseek-v3.2-speciale`,displayName:`DeepSeek V3.2 Speciale`,contextWindowTokens:163840,defaultContextWindowTokens:163840,maxOutputTokens:163840,supportsThinking:!0},{id:`qwen/qwen3.5-plus-02-15`,displayName:`Qwen 3.5 Plus`,contextWindowTokens:131072,defaultContextWindowTokens:131072,maxOutputTokens:8192,supportsThinking:!0},{id:`qwen/qwen3.5-397b-a17b`,displayName:`Qwen 3.5 397B`,contextWindowTokens:131072,defaultContextWindowTokens:131072,maxOutputTokens:8192,supportsThinking:!0},{id:`qwen/qwen3.5-flash-02-23`,displayName:`Qwen 3.5 Flash`,contextWindowTokens:131072,defaultContextWindowTokens:131072,maxOutputTokens:8192},{id:`qwen/qwen3-coder-next`,displayName:`Qwen 3 Coder`,contextWindowTokens:131072,defaultContextWindowTokens:131072,maxOutputTokens:8192},{id:`moonshotai/kimi-k3`,displayName:`Kimi K3`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:131072,supportsThinking:!0,adaptiveThinkingOnly:!0},{id:`moonshotai/kimi-k2.6`,displayName:`Kimi K2.6`,contextWindowTokens:262144,defaultContextWindowTokens:2e5,maxOutputTokens:32768,supportsThinking:!0},{id:`moonshotai/kimi-k2.5`,displayName:`Kimi K2.5`,contextWindowTokens:256e3,defaultContextWindowTokens:2e5,maxOutputTokens:32768},{id:`minimax/minimax-m3`,displayName:`MiniMax M3`,contextWindowTokens:524288,defaultContextWindowTokens:2e5,maxOutputTokens:512e3,supportsThinking:!0},{id:`minimax/minimax-m2.7`,displayName:`MiniMax M2.7`,contextWindowTokens:196608,defaultContextWindowTokens:196608,maxOutputTokens:131072,supportsThinking:!0},{id:`minimax/minimax-m2.5`,displayName:`MiniMax M2.5`,contextWindowTokens:196608,defaultContextWindowTokens:196608,maxOutputTokens:196608,supportsThinking:!0},{id:`minimax/minimax-m2.1`,displayName:`MiniMax M2.1`,contextWindowTokens:196608,defaultContextWindowTokens:196608,maxOutputTokens:196608,supportsThinking:!0},{id:`minimax/minimax-m2`,displayName:`MiniMax M2`,contextWindowTokens:196608,defaultContextWindowTokens:196608,maxOutputTokens:196608,supportsThinking:!0},{id:`minimax/minimax-m2-her`,displayName:`MiniMax M2-her`,contextWindowTokens:65536,defaultContextWindowTokens:65536,maxOutputTokens:2048},{id:`minimax/minimax-m1`,displayName:`MiniMax M1`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:4e4,supportsThinking:!0},{id:`minimax/minimax-01`,displayName:`MiniMax-01`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:1e6},{id:`z-ai/glm-5.2`,displayName:`GLM-5.2`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:131072,supportsThinking:!0},{id:`mistralai/mistral-medium-3`,displayName:`Mistral Medium 3`,contextWindowTokens:131072,defaultContextWindowTokens:131072,maxOutputTokens:16e3},{id:`mistralai/mistral-small-2603`,displayName:`Mistral Small 4`,contextWindowTokens:131072,defaultContextWindowTokens:131072,maxOutputTokens:16e3},{id:`mistralai/devstral-2512`,displayName:`Devstral 2`,contextWindowTokens:131072,defaultContextWindowTokens:131072,maxOutputTokens:16e3},{id:`meta-llama/llama-4-maverick`,displayName:`Llama 4 Maverick`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:16e3},{id:`meta-llama/llama-4-scout`,displayName:`Llama 4 Scout`,contextWindowTokens:327680,defaultContextWindowTokens:2e5,maxOutputTokens:16e3},{id:`amazon/nova-pro-v1`,displayName:`Amazon Nova Pro`,contextWindowTokens:3e5,defaultContextWindowTokens:2e5,maxOutputTokens:5e3},{id:`openrouter/owl-alpha`,displayName:`Owl Alpha`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:262144}],"vercel-ai-gateway":[{id:`anthropic/claude-fable-5`,displayName:`Claude Fable 5`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,adaptiveThinkingOnly:!0,longContextPricingThresholdTokens:2e5},{id:`anthropic/claude-opus-5`,displayName:`Claude Opus 5`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`anthropic/claude-opus-4.8`,displayName:`Claude Opus 4.8`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`anthropic/claude-opus-4.6`,displayName:`Claude Opus 4.6`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`anthropic/claude-sonnet-5`,displayName:`Claude Sonnet 5`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`anthropic/claude-sonnet-4.6`,displayName:`Claude Sonnet 4.6`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:64e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`anthropic/claude-haiku-4.5`,displayName:`Claude Haiku 4.5`,contextWindowTokens:2e5,defaultContextWindowTokens:2e5,maxOutputTokens:64e3,supportsThinking:!0},{id:`openai/gpt-5.5`,displayName:`GPT-5.5`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:272e3},{id:`openai/gpt-5.5-pro`,displayName:`GPT-5.5 Pro`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:272e3},{id:`xai/grok-4.3`,displayName:`Grok 4.3`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:16e3,supportsThinking:!0},{id:`moonshotai/kimi-k2.6`,displayName:`Kimi K2.6`,contextWindowTokens:262144,defaultContextWindowTokens:2e5,maxOutputTokens:32768,supportsThinking:!0},{id:`deepseek/deepseek-v4-flash`,displayName:`DeepSeek V4 Flash`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:384e3,supportsThinking:!0}],minimax:[{id:`MiniMax-M3`,displayName:`MiniMax M3`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:512e3,supportsThinking:!0},{id:`MiniMax-M2.7`,displayName:`MiniMax M2.7`,contextWindowTokens:2e5,defaultContextWindowTokens:2e5,maxOutputTokens:16384,supportsThinking:!0}],atlascloud:[{id:`deepseek-ai/deepseek-v4-pro`,displayName:`DeepSeek V4 Pro`,contextWindowTokens:128e3,defaultContextWindowTokens:128e3,maxOutputTokens:8192,supportsThinking:!0}],litellm:[],baseten:[{id:`thinkingmachines/inkling`,displayName:`Inkling`,contextWindowTokens:262144,defaultContextWindowTokens:2e5,maxOutputTokens:32768,supportsThinking:!0}],"openai-compatible":[]},I={anthropic:`claude-opus-4-8`,openai:`gpt-5.5`,gemini:`gemini-2.5-flash`,ollama:`llama3.2`,fireworks:`accounts/fireworks/models/kimi-k2p5`,together:`MiniMaxAI/MiniMax-M3`,openrouter:`x-ai/grok-4.20`,"vercel-ai-gateway":`anthropic/claude-sonnet-4.6`,minimax:`MiniMax-M2.7`,atlascloud:`deepseek-ai/deepseek-v4-pro`,litellm:``,baseten:`thinkingmachines/inkling`,"openai-compatible":``},L={vellum:`Vellum`,chatgpt:`ChatGPT Subscription`,anthropic:`Anthropic`,openai:`OpenAI`,gemini:`Google Gemini`,ollama:`Ollama`,fireworks:`Fireworks`,together:`Together AI`,openrouter:`OpenRouter`,"vercel-ai-gateway":`Vercel AI Gateway`,"openai-compatible":`OpenAI-compatible`,minimax:`MiniMax`,atlascloud:`Atlas Cloud`,litellm:`LiteLLM`,baseten:`Baseten`};F.anthropic;var R=[`anthropic`,`openai`,`gemini`,`fireworks`,`together`],z=(()=>{let e=new Set,t=new Set,n=[];for(let r of R)for(let i of F[r])e.has(i.id)||t.has(i.displayName)||(e.add(i.id),t.add(i.displayName),n.push(i));return n})();function ne(e){let t=e.indexOf(`/`);if(t<=0)return null;let n=e.slice(0,t),r=R.find(e=>e===n),i=e.slice(t+1);return r&&i?{provider:r,model:i}:null}function re(e){let t=ne(e);return t?t.provider:R.find(t=>F[t].some(t=>t.id===e))}function B(e){return e===`vellum`?z:F[e]??[]}function V(e){return I[e]}var ie=`openai-compatible`,ae=[`anthropic`,`openai`,`fireworks`,`together`,`openrouter`,`vercel-ai-gateway`,`gemini`,`ollama`,`minimax`,`atlascloud`,`litellm`,`baseten`],oe=`vellum`,se=new Set(R),ce=1e3,H=1e3,U=[`default`,`firecrawl`],W={default:`Vellum`,firecrawl:`Firecrawl`},le={firecrawl:`fc-...`},ue={firecrawl:`vellum:ai:firecrawlKey`},de=new Set([`firecrawl`]),fe=[`vellum`,`inference-provider-native`,`perplexity`,`brave`,`tavily`,`firecrawl`],G={vellum:`Vellum`,"inference-provider-native":`Provider Native`,perplexity:`Perplexity`,brave:`Brave`,tavily:`Tavily`,firecrawl:`Firecrawl`},pe={perplexity:`pplx-...`,brave:`BSA...`,tavily:`tvly-...`,firecrawl:`fc-...`},me={perplexity:`vellum:ai:perplexityKey`,brave:`vellum:ai:braveKey`,tavily:`vellum:ai:tavilyKey`,firecrawl:`vellum:ai:firecrawlKey`},K=new Set([`perplexity`,`brave`,`tavily`,`firecrawl`]),he=new Set([`managed`,`your-own`]);function ge(e,t){return he.has(e)?e:t}function _e(e,t){let n=t.filter(t=>t in e).map(t=>({name:t,...e[t]})),r=new Set(t),i=Object.entries(e).filter(([e])=>!r.has(e)).map(([e,t])=>({name:e,...t}));return[...n,...i]}function ve(e){if(e&&typeof e==`object`&&`success`in e&&e.success===!1)throw Error(`Failed to provision API key: server returned success=false`)}function ye(e,t,n=ce){return Math.min(Number.isFinite(e)?Math.max(Math.round(e),n):n,t)}function be(e,t){return e.toLocaleString(`en-US`,{maximumFractionDigits:t,minimumFractionDigits:0})}function xe(e){let t=Array.isArray(e)?e[0]??0:e,n=Math.round(t);return Math.abs(n)>=1e6?`${be(n/1e6,2)}M`:Math.abs(n)>=1e3?`${be(n/1e3,1)}K`:n.toLocaleString(`en-US`)}function Se(e){return me[e]??``}function Ce(e){return ue[e]??``}var we={maxTokens:!1,contextWindow:!1,effort:!1,speed:!1,verbosity:!1,temperature:!1,topP:!1,thinking:!1,thinkingLevel:!1};function Te(e){return e===`gpt-5`||e.startsWith(`gpt-5.`)||e.startsWith(`gpt-5-`)}function q(e){return e.startsWith(`anthropic/`)}function Ee(e,t){let n=t.toLowerCase();return B(e).find(e=>e.id.toLowerCase()===n)}function De(e,t){return Ee(e,t)?.adaptiveThinkingOnly===!0}function Oe(e){return q(e)||e.startsWith(`x-ai/grok-4`)||e.startsWith(`deepseek/deepseek-r1`)||e===`qwen/qwen3.5-plus-02-15`||e===`qwen/qwen3.5-397b-a17b`||e===`moonshotai/kimi-k2.6`}var ke=[`minimal`,`low`,`medium`,`high`],Ae=[`low`,`medium`,`high`];function je(e){return/^gemini-3.*pro/.test(e)}var Me=new Set(ke);function Ne(e){return typeof e==`string`&&Me.has(e)}function Pe(e){return je(e.toLowerCase())?Ae:ke}function Fe(e,t){let n=Ee(e,t);return n?.supportsThinking===void 0?e===`anthropic`?!0:e===`openrouter`?Oe(t):e===`vercel-ai-gateway`?q(t):!1:n.supportsThinking}function Ie(e,t,n){return e===`anthropic`?!t.includes(`haiku`)&&n:e===`openai`?Te(t):e===`openrouter`||e===`vercel-ai-gateway`?q(t)?!t.includes(`haiku`)&&n:n:e===`fireworks`||e===`together`||e===`baseten`?n:!1}var Le=new Set([`openai-compatible`,`fireworks`,`minimax`,`atlascloud`,`baseten`,`ollama`,`openrouter`,`together`,`vercel-ai-gateway`]);function Re(e,t){return t||Le.has(e)}function ze(e,t){if(!e||!t)return we;let n=e.toLowerCase(),r=t.toLowerCase(),i=n===`anthropic`||(n===`openrouter`||n===`vercel-ai-gateway`)&&q(r),a=Fe(n,r);return{maxTokens:!0,contextWindow:!0,effort:Ie(n,r,a),speed:n===`anthropic`&&r.includes(`opus`),verbosity:n===`openai`&&Te(r),temperature:i,topP:Re(n,i),thinking:(n===`anthropic`||n===`openrouter`||n===`vercel-ai-gateway`&&q(r))&&a&&!De(n,r),thinkingLevel:n===`gemini`&&a}}var J=`0.10.8`;function Y(){return A(J)}var X=o(),Z=[`inherit`,`none`,`low`,`medium`,`high`,`xhigh`,`max`],Be=[`standard`,`fast`],Ve=[`low`,`medium`,`high`],He=`default`,Ue=64e3;function We({label:e,value:t,onChange:n,defaultValue:i,max:a,disabled:o}){let s=t===null,c=t??i,[l,u]=(0,P.useState)(s?``:String(t)),[f,p]=(0,P.useState)(t);t!==f&&(p(t),u(t===null?``:String(t)));function h(e){u(e);let t=e.trim();if(t===``){n(null);return}let r=Number(t);Number.isFinite(r)&&r>=1e3&&r<=a&&n(r)}function g(e){let r=e.trim();if(r===``){n(null);return}let i=Number(r);if(!Number.isFinite(i)){u(t===null?``:String(t));return}let o=ye(i,a);u(String(o)),n(o)}return(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,X.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:e}),s?(0,X.jsxs)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:[`Default · `,xe(i)]}):null]}),(0,X.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,X.jsx)(`div`,{className:`flex-1`,children:(0,X.jsx)(d,{value:c,onValueChange:e=>n(typeof e==`number`?e:e[0]),min:ce,max:a,step:H,disabled:o,"aria-label":e})}),(0,X.jsx)(m,{type:`number`,inputMode:`numeric`,value:l,placeholder:String(i),onChange:e=>h(e.target.value),onBlur:e=>g(e.target.value),onKeyDown:e=>{e.key===`Enter`&&g(e.currentTarget.value)},min:ce,max:a,step:H,disabled:o,"aria-label":`${e} (tokens)`,wrapperClassName:`w-32 shrink-0`,className:`text-right tabular-nums`}),(0,X.jsx)(r,{variant:`ghost`,size:`compact`,onClick:()=>n(null),disabled:o||s,children:`Reset`})]})]})}function Ge({visibility:e,isReadOnly:t,model:n,selectedModel:r,defaultMaxOutputTokens:i,defaultContextWindowMaxInputTokens:a,maxTokens:o,onMaxTokensChange:s,contextWindowMaxInputTokens:c,onContextWindowChange:l,effort:f,onEffortChange:p,speed:m,onSpeedChange:g,verbosity:_,onVerbosityChange:ee,temperatureEnabled:v,onTemperatureEnabledChange:y,temperature:b,onTemperatureChange:x,topPEnabled:S,onTopPEnabledChange:te,topP:C,onTopPChange:w,thinkingEnabled:T,onThinkingEnabledChange:E,thinkingStreamThinking:D,onThinkingStreamThinkingChange:O,thinkingLevel:k,onThinkingLevelChange:A}){let j=Y(),M=r?.maxOutputTokens??Ue,N=r?.contextWindowTokens??2e5,P=Math.min(i??Ue,M),F=Math.min(a??2e5,N);return(0,X.jsxs)(`div`,{className:`space-y-4`,children:[!t&&j&&(0,X.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Fields left at their default are saved with the values shown and won’t change if the assistant defaults change later.`}),e.maxTokens&&(0,X.jsx)(We,{label:`Max Output Tokens`,value:o,onChange:s,defaultValue:P,max:M,disabled:t}),e.contextWindow&&(0,X.jsx)(We,{label:`Context Window`,value:c,onChange:l,defaultValue:F,max:N,disabled:t||!r}),e.effort&&(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Effort`}),(0,X.jsx)(u,{items:Z.map(e=>({value:e,label:e===`inherit`?`default`:e,disabled:t})),value:f,onChange:e=>p(e),ariaLabel:`Effort`})]}),e.speed&&(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Speed`}),(0,X.jsx)(u,{items:Be.map(e=>({value:e,label:e,disabled:t})),value:m,onChange:e=>g(e),ariaLabel:`Speed`})]}),e.verbosity&&(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Verbosity`}),(0,X.jsx)(u,{items:Ve.map(e=>({value:e,label:e,disabled:t})),value:_,onChange:e=>ee(e),ariaLabel:`Verbosity`})]}),e.temperature&&(0,X.jsxs)(`div`,{className:`space-y-2`,children:[(0,X.jsx)(h,{checked:v,onChange:e=>y(e),label:`Temperature`,disabled:t}),v&&(0,X.jsx)(`div`,{className:`flex items-center justify-between`,children:(0,X.jsx)(`div`,{className:`flex-1`,children:(0,X.jsx)(d,{value:b,onValueChange:e=>x(typeof e==`number`?e:e[0]),min:0,max:2,step:.01,disabled:t,showValue:!0,formatValue:e=>typeof e==`number`?e.toFixed(2):String(e)})})})]}),e.topP&&(0,X.jsxs)(`div`,{className:`space-y-2`,children:[(0,X.jsx)(h,{checked:S,onChange:e=>te(e),label:`Top P`,disabled:t}),S&&(0,X.jsx)(`div`,{className:`flex items-center justify-between`,children:(0,X.jsx)(`div`,{className:`flex-1`,children:(0,X.jsx)(d,{value:C,onValueChange:e=>w(typeof e==`number`?e:e[0]),min:0,max:1,step:.01,disabled:t,showValue:!0,formatValue:e=>typeof e==`number`?e.toFixed(2):String(e)})})})]}),e.thinking&&(0,X.jsxs)(`div`,{className:`space-y-3`,children:[(0,X.jsx)(h,{checked:T,onChange:e=>{E(e),e||O(!1)},label:`Enable extended thinking`,disabled:t}),T&&(0,X.jsx)(`div`,{className:`pl-4`,children:(0,X.jsx)(h,{checked:D,onChange:e=>O(e),label:`Stream thinking tokens`,disabled:t})})]}),e.thinkingLevel&&(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsxs)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:[`Thinking level`,` `,(0,X.jsx)(`span`,{className:`text-[var(--content-disabled)]`,children:`(default = inherit)`})]}),(0,X.jsx)(u,{items:[`default`,...Pe(n)].map(e=>({value:e,label:`${e}`,disabled:t})),value:k,onChange:A,ariaLabel:`Thinking level`})]})]})}var Ke=[`anthropic`,`openai`,`gemini`,`ollama`,`fireworks`,`together`,`openrouter`,`vercel-ai-gateway`,`minimax`,`atlascloud`,`litellm`,`baseten`,`openai-compatible`];function qe(e){let t=e.split(`/`);return t.length<3||t[0]!==`credential`?null:{service:t[1],field:t.slice(2).join(`/`)}}function Je(e){switch(e){case 409:return`A provider with these settings already exists.`;case 404:return`Provider not found. It may have been removed.`;case 400:return`Invalid configuration. Check the provider settings.`;default:return`Failed to save provider. Please try again.`}}function Q(e,t){if(e!==400)return;let n=t?.error?.message;return typeof n==`string`&&n.length>0?n:void 0}function Ye(e){return e.label?e.label:e.auth.type===`oauth_subscription`?L.chatgpt:L[e.provider]??e.provider}var Xe=new Set([`ollama`]);function Ze(e,t){return!Xe.has(e)||t}function Qe(e){return ae.filter(t=>Ze(t,e))}function $e(e){return Ke.filter(t=>Ze(t,e))}function et(e){return Object.keys(F).filter(t=>Ze(t,e))}function tt(){return Qe(M())}function nt(){return $e(M())}function rt(){return et(M())}function it(e,t){let n=[...new Set(e.map(e=>e.provider))].filter(e=>Ze(e,t)),r=[];return n.includes(`vellum`)&&r.push(oe),r.push(...Ke.filter(e=>n.includes(e)),...n.filter(e=>e!==`vellum`&&!Ke.includes(e))),r}var $=`${ie}::`;function at(e){return`${$}${e}`}function ot(e){return e.startsWith($)?e.slice($.length):null}function st(e,t,n){let r=[];for(let i of e){if(i===`vellum`){r.push({value:i,label:n(i),meta:`Managed`});continue}if(i!==`openai-compatible`){r.push({value:i,label:n(i)});continue}for(let e of t)e.provider===`openai-compatible`&&r.push({value:at(e.name),label:e.label&&e.label.trim()!==``?e.label:e.name,meta:`Custom`})}return r}var ct=new Set([`gpt-5.5`,`gpt-5.4`,`gpt-5.4-mini`,`gpt-5.3-codex`]);function lt(e){return(e??[]).map(e=>({id:e.id,displayName:e.displayName??e.id}))}function ut(e,t,n){return!e||B(e).length===0?!1:(t?n.find(e=>e.name===t):void 0)?.auth.type===`oauth_subscription`?!0:!t&&n.length>0&&n.every(e=>e.auth.type===`oauth_subscription`)}var dt={"no-provider":{placeholder:`Select a provider first`,hint:null},"configure-connection":{placeholder:`Configure models on connection`,hint:`No models available. Configure models on the provider connection first.`},"unknown-to-catalog":{placeholder:`No models available`,hint:`No models are available for this provider in this app version. Update the app, or enter a custom model ID.`}},ft=`__custom-model-id__`;function pt({text:e}){return(0,X.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:e})}function mt({provider:e,model:t,providerConnection:n,onProviderChange:i,onModelChange:a,onConnectionChange:o,connections:c,isReadOnly:l,availableConnectionsForProvider:u,connectionNotFound:d,hideProviderField:f=!1}){let p=e.length>0&&t.length===0,[h,g]=(0,P.useState)(!1),_=ut(e,n,u),v=e!==``&&!_;(0,P.useEffect)(()=>{v||g(!1)},[e,v]);function y(e){if(e===ft){g(!0),a(``);return}a(e)}let b=rt(),x=M(),S=(0,P.useMemo)(()=>{let t=it(c??[],x);return e&&!t.includes(e)?[...t,e]:t},[c,e,x]),te=c===void 0?b:S,C=(0,P.useMemo)(()=>{if(!e)return[];let t=B(e);if(t.length>0)return ut(e,n,u)?t.filter(e=>ct.has(e.id)):t;if(n){let e=u.find(e=>e.name===n);return e?lt(e.models):[]}let r=new Set,i=[];for(let e of u)for(let t of e.models??[])r.has(t.id)||(r.add(t.id),i.push({id:t.id,displayName:t.displayName??t.id}));return i},[e,n,u]),w=(0,P.useMemo)(()=>{if(!t||C.some(e=>e.id===t))return C;let n=B(e).find(e=>e.id===t),r=u.flatMap(e=>e.models??[]).find(e=>e.id===t),i=n?.displayName??r?.displayName??t;return[...C,{id:t,displayName:i}]},[t,C,e,u]),T=e?C.length===0?e===`openai-compatible`?`configure-connection`:`unknown-to-catalog`:null:`no-provider`,E=T?dt[T]:null;return(0,P.useEffect)(()=>{if(!e||h)return;let n=B(e);n.length>0&&!n.some(e=>e.id===t)||t&&C.length>0&&!C.some(e=>e.id===t)&&a(``)},[t,C,a,e,h]),(0,X.jsxs)(X.Fragment,{children:[!f&&(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsx)(`label`,{id:`profile-editor-provider-label`,className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Provider`}),(0,X.jsx)(ee,{value:e===`openai-compatible`&&n?at(n):e,onChange:e=>{let t=ot(e);if(t){i(`openai-compatible`),o(t);return}i(e)},disabled:l,placeholder:`Select a provider…`,"aria-labelledby":`profile-editor-provider-label`,options:[...st(te,c??[],e=>L[e]??e).map(({value:e,label:t,meta:n})=>({value:e,label:t,suffix:n?(0,X.jsx)(pt,{text:n}):void 0})),...d&&e===`openai-compatible`&&n?[{value:at(n),label:`${n} (not found)`}]:[],...e===`openai-compatible`&&!n?[{value:`openai-compatible`,label:L[`openai-compatible`]??`openai-compatible`}]:[]]}),te.length===0&&!l?(0,X.jsx)(s,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:`No provider connections. Open Providers to add one.`}):null]}),d&&!l&&(0,X.jsx)(s,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:`This profile referenced a credential that no longer exists. Saving resets it to use the provider’s available key.`}),(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Model`}),h?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(m,{value:t,onChange:e=>a(e.target.value),disabled:l,placeholder:`provider/model-id`,"aria-label":`Custom model ID`,fullWidth:!0,autoFocus:!0}),(0,X.jsx)(r,{variant:`link`,size:`compact`,disabled:l,onClick:()=>g(!1),children:`Choose from list`})]}):(0,X.jsx)(ee,{value:t,onChange:y,disabled:l||!e,options:[{value:``,label:E?.placeholder??`Select a model`},...w.map(e=>({value:e.id,label:e.displayName})),...v?[{value:ft,label:`Enter a custom model ID…`}]:[]]}),h?(0,X.jsx)(s,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:`Enter the exact model identifier your provider expects. It's sent to the connection as-is.`}):p&&!l?(0,X.jsx)(s,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:E?.hint??`Select a model.`}):null]})]})}function ht(e){return e.toLowerCase().split(/[^a-z0-9]+/).filter(Boolean).join(`-`)}function gt(e){return ht(e)}function _t(e,t){let n=new Set(t.map(e=>e.toLowerCase()));if(!n.has(e.toLowerCase()))return e;let r=2,i=`${e}-${r}`;for(;n.has(i.toLowerCase());)r+=1,i=`${e}-${r}`;return i}function vt(e,t){return{name:L[e]??e,key:_t(`${gt(e)}-personal`,t)}}function yt(e,t){return{name:e,key:_t(gt(e),t)}}var bt=`0.10.12`;async function xt(e,t){await k(t);let n=O.getState().assistantId;return e!=null&&n!==e?!1:j(bt)}function St(e,t,n){return[`credentialPresence`,e,t,n]}function Ct({assistantId:e,credentialKind:n,credentialName:r,enabled:i=!0}){let o=N(),s=a({queryKey:St(e??``,n,r),queryFn:async()=>{let{data:t}=await C({path:{assistant_id:e},body:{type:n,name:r},throwOnError:!0});return t.found},enabled:!!e&&i&&o,retry:t,staleTime:3e4});return{hasStoredCredential:s.data??!1,isLoading:s.isLoading}}function wt({assistantId:e,onConnected:t}){let[n,i]=(0,P.useState)(`idle`),[a,o]=(0,P.useState)(``),[c,u]=(0,P.useState)(null);async function d(){i(`starting`),u(null);let t=window.open(`about:blank`,`_blank`);try{let{data:{authorize_url:n}}=await b({path:{assistant_id:e},throwOnError:!0});t?(t.opener=null,t.location.href=n):window.open(n,`_blank`,`noopener`),i(`paste_url`)}catch{t?.close(),i(`failed`),u(`Failed to start ChatGPT sign-in. Please try again.`)}}async function f(){u(null);let n=a.trim();if(!n){u(`Please paste the URL from the error page.`);return}let r;try{r=new URL(n)}catch{u(`Invalid URL. Please paste the full URL from the address bar.`);return}let o=r.searchParams.get(`code`),s=r.searchParams.get(`state`);if(!o){u(`The URL is missing the authorization code. Make sure you copied the full URL.`);return}if(!s){u(`The URL is missing the state parameter. Make sure you copied the full URL.`);return}i(`exchanging`);try{await S({path:{assistant_id:e},body:{code:o,state:s},throwOnError:!0}),i(`completed`);let{data:n}=await y({path:{assistant_id:e},query:{provider:`openai`},throwOnError:!0});t(n.connections.find(e=>e.name===`chatgpt-subscription`||e.name===`openai-chatgpt`)||{name:`chatgpt-subscription`,provider:`openai`,auth:{type:`oauth_subscription`,credential:`credential/openai/chatgpt-subscription`},label:`ChatGPT Subscription`,createdAt:Date.now(),updatedAt:Date.now(),baseUrl:null,models:null,isManaged:!1})}catch{i(`failed`),u(`Failed to complete sign-in. Please try again.`)}}function p(){i(`idle`),o(``),u(null)}return(0,X.jsxs)(`div`,{className:`space-y-3 rounded-lg border border-[var(--border-base)] p-4`,children:[(0,X.jsx)(s,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:`Connect your ChatGPT subscription to use OpenAI models without an API key.`}),n===`idle`||n===`paste_url`?(0,X.jsxs)(`div`,{className:`space-y-3`,children:[(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsxs)(s,{variant:`body-small-default`,as:`p`,className:n===`paste_url`?`text-[var(--content-tertiary)] line-through`:`text-[var(--content-secondary)]`,children:[`1. Click “Sign in with ChatGPT”`,n===`idle`?` below`:null,` to open a popup`]}),(0,X.jsx)(s,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-secondary)]`,children:`2. Sign in, then you'll land on an error page — that's expected`}),(0,X.jsx)(s,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-secondary)]`,children:`3. Copy the full URL from that page's address bar and paste it below`})]}),n===`idle`?(0,X.jsx)(r,{variant:`outlined`,size:`compact`,onClick:()=>void d(),children:`Sign in with ChatGPT`}):(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(m,{value:a,onChange:e=>{o(e.target.value),u(null)},placeholder:`Paste callback URL here...`,fullWidth:!0}),(0,X.jsx)(`div`,{className:`flex justify-end`,children:(0,X.jsx)(r,{variant:`primary`,size:`compact`,disabled:!a.trim(),onClick:()=>void f(),children:`Complete Sign In`})})]})]}):null,n===`starting`?(0,X.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,X.jsx)(l,{className:`h-4 w-4 animate-spin text-[var(--content-tertiary)]`}),(0,X.jsx)(s,{variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,children:`Starting sign-in...`})]}):null,n===`exchanging`?(0,X.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,X.jsx)(l,{className:`h-4 w-4 animate-spin text-[var(--content-tertiary)]`}),(0,X.jsx)(s,{variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,children:`Completing sign-in...`})]}):null,n===`completed`?(0,X.jsx)(s,{variant:`body-small-default`,as:`p`,className:`text-[var(--system-positive-strong)]`,children:`ChatGPT subscription connected successfully.`}):null,c?(0,X.jsx)(s,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:c}):null,n===`failed`?(0,X.jsx)(r,{variant:`outlined`,size:`compact`,onClick:p,children:`Try Again`}):null]})}var Tt=new Set(Object.entries(L).flatMap(([e,t])=>[e.toLowerCase(),t.toLowerCase()])),Et={reserved:`That name belongs to a built-in provider. Pick another.`,duplicate:`A custom provider with this name already exists.`};function Dt(e,t,n){let r=e.trim().toLowerCase();return r?Tt.has(r)?`reserved`:(t??[]).some(e=>e.provider===`openai-compatible`&&e.name!==n&&(e.label?.trim()||e.name).toLowerCase()===r)?`duplicate`:null:null}function Ot({apiKeyValue:e,onApiKeyChange:t,credential:n,onCredentialChange:i,isLoadingCredential:a,apiKeyPlaceholder:o,provider:u,providerCredentials:d,showAdvancedSection:f,onError:p}){let[h,g]=(0,P.useState)(!1),[_,v]=(0,P.useState)(!1),[y,b]=(0,P.useState)(``);return(0,X.jsxs)(X.Fragment,{children:[(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`API Key`}),a?(0,X.jsxs)(`div`,{className:`flex items-center gap-2 h-8`,children:[(0,X.jsx)(l,{className:`h-4 w-4 animate-spin text-[var(--content-tertiary)]`}),(0,X.jsx)(s,{variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,children:`Loading…`})]}):(0,X.jsx)(m,{type:`password`,value:e,onChange:e=>{t(e.target.value),p(null)},placeholder:o,fullWidth:!0})]}),f&&(0,X.jsxs)(`div`,{children:[(0,X.jsxs)(`button`,{type:`button`,"aria-expanded":h,onClick:()=>g(e=>!e),className:`flex items-center gap-1 text-body-small-default text-[var(--content-secondary)] w-full text-left`,children:[(0,X.jsx)(c,{className:`h-4 w-4 transition-transform ${h?`rotate-90`:``}`}),(0,X.jsx)(`span`,{children:`Advanced`}),(0,X.jsx)(`span`,{className:`text-[var(--content-tertiary)] ml-1`,children:`· Credential reference`})]}),h&&(0,X.jsxs)(`div`,{className:`mt-2 space-y-3`,children:[(()=>{let e=d.map(e=>{let t=`credential/${e.service}/${e.field}`;return{label:t,value:t}}),t=e.some(e=>e.value===n),r=n&&!t?[{label:n,value:n},...e]:e;return r.length===0?null:(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Credential Reference`}),(0,X.jsx)(ee,{"aria-label":`Credential reference`,value:n,onChange:e=>{i(e)},options:r})]})})(),_&&(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`New Credential Name`}),(0,X.jsxs)(`div`,{className:`flex gap-2`,children:[(0,X.jsx)(m,{value:y,onChange:e=>b(e.target.value),placeholder:`e.g. team-key`,fullWidth:!0}),(0,X.jsx)(r,{variant:`primary`,size:`compact`,disabled:!y.trim(),onClick:()=>{let e=y.trim();e&&(i(`credential/${u}/${e}`),v(!1),b(``))},children:`Use`})]})]}),(0,X.jsx)(`div`,{className:`flex justify-end`,children:(0,X.jsx)(r,{variant:`ghost`,size:`compact`,onClick:()=>{_?(v(!1),b(``)):v(!0)},children:_?`Cancel`:`+ New Credential`})})]})]})]})}var kt=`•`.repeat(8);function At(e,t){return t?kt:e}function jt(e){let t=[];for(let n of e)if(n.type===`api_key`)t.push({service:n.name,field:`api_key`});else if(n.type===`credential`){let e=n.name.lastIndexOf(`:`);if(e>=0){let r=n.name.slice(0,e),i=n.name.slice(e+1);r&&i&&t.push({service:r,field:i})}}return t}function Mt({assistantId:e,enabled:n=!0}){let r=N(),i=a({...D({path:{assistant_id:e}}),enabled:!!e&&n&&r,select:e=>jt(e.secrets),retry:t,staleTime:3e4});return{credentials:i.data??[],isLoading:i.isLoading}}function Nt({assistantId:e,existingNames:t,connections:n,defaultProviderType:a,onCreated:o,onCancel:l,variant:u=`modal`}){let d=nt(),f=a&&d.includes(a)?a:d[0]??`anthropic`,p=vt(f,t),[h,v]=(0,P.useState)(f===`openai-compatible`?``:p.name),[y,b]=(0,P.useState)(p.key),[S,C]=(0,P.useState)(f),w=S===`chatgpt`,E=w?`openai`:S,D=w?`oauth_subscription`:E===`ollama`?`none`:`api_key`,[O,k]=(0,P.useState)(()=>f===`ollama`?``:f===`openai-compatible`?`credential/${p.key}/api_key`:`credential/${f}/api_key`),[A,j]=(0,P.useState)(``),[M,N]=(0,P.useState)(``),[F,I]=(0,P.useState)(!1),[R,z]=(0,P.useState)(null),[ne,re]=(0,P.useState)(!1),B=E===`openai-compatible`,V=(0,P.useMemo)(()=>{let e=!w&&!d.includes(E)?[...d,E]:[...d],t=e.indexOf(`openai`);return t>=0&&e.splice(t+1,0,`chatgpt`),e},[w,E,d]),ie=(0,P.useRef)(!1);function ae(e){ie.current=!0,v(e)}let[oe,se]=(0,P.useState)(``),[ce,H]=(0,P.useState)(!1),U=i(),W=(0,P.useMemo)(()=>qe(O),[O]),le=D===`api_key`&&W!==null,{hasStoredCredential:ue,isLoading:de}=Ct({assistantId:e,credentialKind:`credential`,credentialName:W?`${W.service}:${W.field}`:``,enabled:le}),{credentials:fe}=Mt({assistantId:e,enabled:!0}),G=B?Dt(h,n):null,pe=y.trim().length>0&&(!B||h.trim().length>0)&&G===null;async function me(){if(pe){I(!0),z(null);try{let t;if(D===`api_key`){let n=O.trim()||`credential/${B?y:E}/api_key`,r=oe.trim();if(r){H(!0);try{let t=qe(n);await te({path:{assistant_id:e},body:t?{type:`credential`,name:`${t.service}:${t.field}`,value:r}:{type:`api_key`,name:E,value:r},throwOnError:!0});let i=St(e,`credential`,t?`${t.service}:${t.field}`:``);U.setQueryData(i,!0),U.invalidateQueries({queryKey:T({path:{assistant_id:e}})})}catch{z(`Failed to save API key. Please try again.`);return}finally{H(!1)}t={type:`api_key`,credential:n}}else if(ue)t={type:`api_key`,credential:n};else if(B)t={type:`none`};else{z(`Enter an API key or select an existing credential.`);return}}else if(D===`oauth_subscription`){z(`Use the "Sign in with ChatGPT" button to connect your subscription.`);return}else t={type:`none`};let n=h.trim()||null,r={name:y.trim(),provider:E,auth:t,...n!==null&&{label:n},...B&&{base_url:A.trim()||null,models:M.trim()?M.split(`,`).map(e=>({id:e.trim()})).filter(e=>e.id):null}},{data:i,error:a,response:s}=await x({path:{assistant_id:e},body:r});if(!s?.ok){z(Q(s?.status,a)??Je(s?.status));return}if(!i){z(`Server returned an empty response. Please try again.`);return}_.success(`Provider connected`),o(i)}catch{z(`Failed to save provider. Please try again.`)}finally{I(!1)}}}let K=fe.filter(e=>e.service===E),he=K.length>0,ge=At(`Enter your API key`,ue),_e=ne,ve=(0,X.jsxs)(`div`,{children:[(0,X.jsxs)(`button`,{type:`button`,"aria-expanded":_e,onClick:()=>re(e=>!e),className:`flex items-center gap-1 text-body-small-default text-[var(--content-secondary)] w-full text-left`,children:[(0,X.jsx)(c,{className:`h-4 w-4 transition-transform ${_e?`rotate-90`:``}`}),(0,X.jsx)(`span`,{children:`Advanced`})]}),_e&&(0,X.jsx)(`div`,{className:`mt-2 space-y-4`,children:(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsxs)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:[`Display Name`,` `,(0,X.jsx)(`span`,{className:`text-[var(--content-disabled)]`,children:`(optional)`})]}),(0,X.jsx)(m,{value:h,onChange:e=>ae(e.target.value),placeholder:`e.g. My Anthropic Key`,fullWidth:!0})]})})]}),ye=(0,X.jsxs)(`div`,{className:`space-y-4`,children:[(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Provider`}),(0,X.jsx)(ee,{"aria-label":`Provider`,value:S,onChange:e=>{if(C(e),z(null),e===`chatgpt`)return;let{name:n,key:r}=vt(e,t);ie.current||v(e===`openai-compatible`?``:n),b(r),k(e===`ollama`?``:e===`openai-compatible`?`credential/${r}/api_key`:`credential/${e}/api_key`)},options:[...V.filter(e=>e!==`openai-compatible`).map(e=>({value:e,label:L[e]})),...V.includes(`openai-compatible`)?[{value:`openai-compatible`,label:`Custom provider`}]:[]]}),B?(0,X.jsx)(s,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:`Custom providers connect to any endpoint that serves the OpenAI-compatible API — xAI, Groq, LM Studio, vLLM, and similar.`}):null]}),B&&(0,X.jsxs)(X.Fragment,{children:[(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Name`}),(0,X.jsx)(m,{value:h,onChange:e=>ae(e.target.value),placeholder:`xAI`,fullWidth:!0}),G?(0,X.jsx)(s,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:Et[G]}):null]}),(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Base URL`}),(0,X.jsx)(m,{value:A,onChange:e=>j(e.target.value),placeholder:`https://api.x.ai/v1`,fullWidth:!0})]}),(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Models`}),(0,X.jsx)(m,{value:M,onChange:e=>N(e.target.value),placeholder:`model-1, model-2`,fullWidth:!0}),(0,X.jsx)(s,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:`Comma-separated model identifiers exposed by your endpoint.`})]})]}),D===`api_key`&&(0,X.jsx)(Ot,{apiKeyValue:oe,onApiKeyChange:se,credential:O,onCredentialChange:k,isLoadingCredential:de,apiKeyPlaceholder:ge,provider:E,providerCredentials:K,showAdvancedSection:he,onError:z}),B&&D===`api_key`?(0,X.jsx)(s,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:`Leave the key empty for local endpoints — they connect keyless.`}):null,D===`oauth_subscription`&&(0,X.jsx)(wt,{assistantId:e,onConnected:o}),!w&&!B&&ve,R&&(0,X.jsx)(s,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:R})]}),be=(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(r,{variant:`ghost`,size:`compact`,onClick:l,children:`Cancel`}),!w&&(0,X.jsx)(r,{variant:`primary`,size:`compact`,disabled:!pe||F||ce,onClick:()=>void me(),children:F?`Saving…`:B&&h.trim()?`Add ${h.trim()}`:`Add`})]});return u===`inline`?(0,X.jsxs)(`div`,{className:`space-y-4`,children:[ye,(0,X.jsx)(`div`,{className:`flex justify-end gap-2`,children:be})]}):(0,X.jsxs)(g.Content,{size:`md`,children:[(0,X.jsxs)(g.Header,{children:[(0,X.jsx)(g.Title,{children:`Add Provider`}),(0,X.jsx)(g.Description,{children:`Choose a provider and paste its API key.`})]}),(0,X.jsx)(g.Body,{children:ye}),(0,X.jsx)(g.Footer,{children:be})]})}function Pt(e,t,n){let r=(0,P.useRef)(!1),i=(0,P.useRef)(!1);return{handleLabelChange:(0,P.useCallback)(a=>{i.current=!0,t(a),e===`create`&&!r.current&&n(ht(a))},[e,t,n]),handleKeyChange:(0,P.useCallback)(e=>{r.current=!0,i.current=!0,n(e)},[n]),resetDirty:(0,P.useCallback)(()=>{r.current=!1,i.current=!1},[]),getDirty:(0,P.useCallback)(()=>i.current,[])}}var Ft=`__create_new_provider__`;function It(e,t){return e===t?!0:e===`vellum`&&se.has(t)}function Lt({isOpen:e,mode:t,profileName:n,initialValues:r,existingNames:i,connections:a,assistantId:o,onSave:s,onCancel:c}){return(0,X.jsx)(g.Root,{open:e,onOpenChange:e=>{e||c()},children:e?(0,X.jsx)(Rt,{mode:t,profileName:n,initialValues:r,existingNames:i,connections:a,assistantId:o,onSave:s,onCancel:c}):null})}function Rt({mode:e,profileName:t,initialValues:n,existingNames:o,connections:l,assistantId:u,onSave:d,onCancel:_}){let[v,y]=(0,P.useState)(e),b=n?.invariant===!0&&v!==`create`,x=v===`view`||b,S=M(),te=n?.status??`active`,[C,T]=(0,P.useState)(n?.label??``),[D,O]=(0,P.useState)(n?.description??``),[k,A]=(0,P.useState)(e===`create`?``:t??``),[j,N]=(0,P.useState)(n?.provider&&n.provider!==`chatgpt`?n.provider:``),[F,I]=(0,P.useState)(n?.model??``),[R,z]=(0,P.useState)(n?.provider_connection??``),[V,ae]=(0,P.useState)(n?.status??`active`),[se,ce]=(0,P.useState)([]),[H,U]=(0,P.useState)(!1),[W,le]=(0,P.useState)(null),[ue,de]=(0,P.useState)(n?.maxTokens??null),[fe,G]=(0,P.useState)(n?.contextWindow?.maxInputTokens??null),[pe,me]=(0,P.useState)(n?.effort??`inherit`),[K,he]=(0,P.useState)(n?.speed??`standard`),[ge,_e]=(0,P.useState)(n?.verbosity??`medium`),[ve,ye]=(0,P.useState)(typeof n?.temperature==`number`),[be,xe]=(0,P.useState)(typeof n?.temperature==`number`?n.temperature:.7),[Se,Ce]=(0,P.useState)(typeof n?.topP==`number`),[we,Te]=(0,P.useState)(typeof n?.topP==`number`?n.topP:.95),q=x&&V!==te,[Ee,De]=(0,P.useState)(n?.thinking?.enabled??!1),[Oe,ke]=(0,P.useState)(n?.thinking?.streamThinking??!1),[Ae,je]=(0,P.useState)(Ne(n?.thinking?.level)?n.thinking.level:He),Me=(0,P.useMemo)(()=>j===`vellum`?ne(F):null,[j,F]),Pe=Me?.model??F,Fe=(0,P.useMemo)(()=>j?B(j).find(e=>e.id===Pe)??null:null,[j,Pe]),{data:Ie}=a({...E({path:{assistant_id:u}}),staleTime:3e4}),Le=Ie?.llm?.default?.maxTokens,Re=Ie?.llm?.default?.contextWindow?.maxInputTokens,J=(0,P.useMemo)(()=>ze(j===`vellum`?Me?.provider??re(F)??n?.provider??``:j,Pe),[j,F,Pe,Me,n?.provider]),Y=(0,P.useMemo)(()=>{let e=l??[];if(se.length===0)return e;let t=new Set(e.map(e=>e.name));return[...e,...se.filter(e=>!t.has(e.name))]},[l,se]),Z=(0,P.useMemo)(()=>j?Y.filter(e=>It(e.provider,j)):[],[j,Y]),Be=R!==``&&!Z.some(e=>e.name===R),{handleLabelChange:Ve,handleKeyChange:Ue,resetDirty:We,getDirty:Ke}=Pt(v,T,A),qe=i(),[Je,Q]=(0,P.useState)(!1),[Ye,Xe]=(0,P.useState)(!1),[Ze,Qe]=(0,P.useState)(!1);(0,P.useEffect)(()=>{n?.provider_connection===`vellum`&&j===(n?.provider??``)&&l?.find(e=>e.name===n.provider_connection)?.provider===`vellum`&&N(oe)},[l,j,n]),(0,P.useEffect)(()=>{We(),Q(!1),Xe(!1),Qe(!1),ce([])},[t,e,We]);function $e(e){if(e===j)return;N(e),I(``);let t=Y.filter(t=>It(t.provider,e));z(t.length===1?t[0].name:``),de(null),G(null),me(`inherit`),he(`standard`),_e(`medium`),ye(!1),xe(.7),Ce(!1),Te(.95),De(!1),ke(!1),je(He)}function et(e){if(z(e),j&&B(j).length===0&&F)if(e===``)new Set(Z.flatMap(e=>(e.models??[]).map(e=>e.id))).has(F)||I(``);else{let t=Z.find(t=>t.name===e);new Set((t?.models??[]).map(e=>e.id)).has(F)||I(``)}}function tt(e){let t=B(j).find(t=>t.id===e);if(t)return t.displayName;for(let t of Z){let n=(t.models??[]).find(t=>t.id===e);if(n)return n.displayName??n.id}return e}function nt(e){if(e!==F&&(I(e),de(null),G(null),v===`create`&&e&&!Ke())){let{name:t,key:n}=yt(tt(e),o);T(t),A(n)}}function rt(e){let t=e.provider;t!==`vellum`&&(ce(t=>t.some(t=>t.name===e.name)?t:[...t,e]),N(t),z(e.name),I(``),Q(!1),Qe(!0),qe.invalidateQueries({queryKey:w({path:{assistant_id:u}})}))}let $=k.trim(),ct=$.length===0,lt=/\s/.test(k),ut=v===`create`?o.includes($):o.filter(e=>e!==t).includes($),dt=j.length===0,ft=j.length>0&&F.length===0,ht=ct||lt||ut||dt||ft,gt=ct?`Key is required`:lt?`Key cannot contain whitespace`:ut?`A profile with this key already exists`:null;async function _t(){if(!(ht&&!x)){if(x){if(!q)return;U(!0),le(null);try{await d($,{status:`active`},{mode:`merge`})}catch{le(`Failed to save profile. Please try again.`)}finally{U(!1)}return}U(!0),le(null);try{let e={},t=R===``&&Z.length===1?Z[0].name:R,r=Be?``:t,i=j===`vellum`&&await xt(u),a=j===`vellum`?i?oe:Me?.provider??re(F)??n?.provider??``:j,o=Pe,s=i?``:r;v===`edit`?(e.label=C.trim()||null,e.description=D.trim()||null,e.provider=a||null,e.model=o||null,e.provider_connection=s||null):(C.trim()&&(e.label=C.trim()),D.trim()&&(e.description=D.trim()),a&&(e.provider=a),o&&(e.model=o),s&&(e.provider_connection=s)),J.maxTokens&&ue!==null&&(e.maxTokens=ue),J.contextWindow&&fe!==null&&(e.contextWindow={maxInputTokens:fe}),J.effort&&pe!==`inherit`&&(e.effort=pe),J.speed&&K!==`standard`&&(e.speed=K),J.verbosity&&(e.verbosity=ge),J.temperature&&(ve?e.temperature=be:v===`edit`&&(e.temperature=null)),J.topP&&(Se?e.topP=we:v===`edit`&&(e.topP=null)),J.thinking&&(e.thinking={enabled:Ee,...Ee?{streamThinking:Oe}:{}}),J.thinkingLevel&&Ae!==`default`&&(e.thinking={enabled:!0,level:Ae}),(v===`edit`||V!==`active`)&&(e.status=V),await d($,e)}catch{le(`Failed to save profile. Please try again.`)}finally{U(!1)}}}let vt=v===`create`?`New Profile`:v===`edit`?`Edit Profile`:n?.label??t??`Profile`,bt=v===`create`,St=(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:bt?`Name`:`Display Name`}),(0,X.jsx)(m,{type:`text`,value:C,onChange:e=>Ve(e.target.value),placeholder:`e.g. Fast & Cheap`,disabled:x,fullWidth:!0})]}),Ct=(0,X.jsx)(p,{label:(0,X.jsxs)(X.Fragment,{children:[`Description`,` `,(0,X.jsx)(`span`,{className:`text-[var(--content-disabled)]`,children:`(optional)`})]}),value:D,onChange:e=>O(e.target.value),placeholder:`Describe when to use this profile`,disabled:x,rows:2,fullWidth:!0,className:`resize-none`}),wt=(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Key`}),(0,X.jsx)(m,{type:`text`,value:k,onChange:e=>Ue(e.target.value),placeholder:`e.g. fast-cheap`,disabled:x||v===`edit`,fullWidth:!0}),gt&&!x?(0,X.jsx)(s,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:gt}):null]}),Tt=!x||V!==`active`?(0,X.jsx)(h,{checked:V===`active`,onChange:e=>ae(e?`active`:`disabled`),label:`Active`,className:`touch-mobile:mt-2 touch-mobile:[&_button]:h-7 touch-mobile:[&_button]:w-10 touch-mobile:[&_button>span]:h-6 touch-mobile:[&_button>span]:w-6`}):null,Et=(0,X.jsx)(Ge,{visibility:J,isReadOnly:x,model:F,selectedModel:Fe,defaultMaxOutputTokens:Le,defaultContextWindowMaxInputTokens:Re,maxTokens:ue,onMaxTokensChange:de,contextWindowMaxInputTokens:fe,onContextWindowChange:G,effort:pe,onEffortChange:me,speed:K,onSpeedChange:he,verbosity:ge,onVerbosityChange:_e,temperatureEnabled:ve,onTemperatureEnabledChange:ye,temperature:be,onTemperatureChange:xe,topPEnabled:Se,onTopPEnabledChange:Ce,topP:we,onTopPChange:Te,thinkingEnabled:Ee,onThinkingEnabledChange:De,thinkingStreamThinking:Oe,onThinkingStreamThinkingChange:ke,thinkingLevel:Ae,onThinkingLevelChange:je}),Dt=W?(0,X.jsx)(s,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:W}):null,Ot=(0,P.useMemo)(()=>{let e=st(it(Y,S),Y,e=>L[e]??e).map(({value:e,label:t,meta:n})=>({value:e,label:t,suffix:n?(0,X.jsx)(pt,{text:n}):void 0}));return e.push({value:Ft,label:`+ Create new provider`}),e},[S,Y]),kt=(0,X.jsxs)(`div`,{className:`space-y-4`,children:[(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsx)(`label`,{id:`profile-editor-provider-label`,className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Provider`}),(0,X.jsx)(ee,{value:Je?Ft:j===`openai-compatible`&&R?at(R):j,onChange:e=>{if(e===Ft){Q(!0),Qe(!1);return}if(!e)return;Q(!1);let t=ot(e);if(t){j===`openai-compatible`?I(``):$e(ie),z(t);return}$e(e)},placeholder:`Select a provider…`,"aria-labelledby":`profile-editor-provider-label`,options:Ot}),Ze?(0,X.jsx)(s,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:`New provider connection will show up in the Providers section.`}):null]}),Je?(0,X.jsx)(Nt,{variant:`inline`,assistantId:u,existingNames:Y.map(e=>e.name),connections:Y,defaultProviderType:j||void 0,onCreated:rt,onCancel:()=>Q(!1)}):(0,X.jsx)(mt,{provider:j,model:F,providerConnection:R,onProviderChange:$e,onModelChange:nt,onConnectionChange:et,connections:Y,isReadOnly:x,availableConnectionsForProvider:Z,connectionNotFound:Be,hideProviderField:!0})]}),At=Ye||!!gt&&Ke(),jt=F===``?null:(0,X.jsxs)(`div`,{children:[(0,X.jsxs)(`button`,{type:`button`,"aria-expanded":At,onClick:()=>Xe(e=>!e),className:`flex items-center gap-1 text-body-small-default text-[var(--content-secondary)] w-full text-left`,children:[(0,X.jsx)(c,{className:`h-4 w-4 transition-transform ${At?`rotate-90`:``}`}),(0,X.jsx)(`span`,{children:`Advanced`})]}),At?(0,X.jsxs)(`div`,{className:`mt-4 space-y-4`,children:[St,wt,Et]}):null]});return(0,X.jsxs)(g.Content,{size:`md`,children:[(0,X.jsx)(g.Header,{children:v===`view`?(0,X.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,X.jsx)(g.Title,{children:vt}),(0,X.jsx)(f,{tone:`positive`,children:`Platform`})]}):(0,X.jsx)(g.Title,{children:vt})}),(0,X.jsx)(g.Body,{children:bt?(0,X.jsxs)(`div`,{className:`space-y-4`,children:[kt,Ct,Tt,jt,Dt]}):(0,X.jsxs)(`div`,{className:`space-y-4`,children:[St,Ct,wt,Tt,(0,X.jsx)(mt,{provider:j,model:F,providerConnection:R,onProviderChange:$e,onModelChange:nt,onConnectionChange:et,connections:l,isReadOnly:x,availableConnectionsForProvider:Z,connectionNotFound:Be}),Et,Dt]})}),(0,X.jsx)(g.Footer,{children:x?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(r,{variant:`outlined`,className:`touch-mobile:h-10`,onClick:_,disabled:H,"data-testid":`modal-cancel-btn`,children:`Close`}),(0,X.jsx)(r,{variant:`outlined`,className:`touch-mobile:h-10`,onClick:()=>{y(`create`),A(``),We()},disabled:H,children:`Save As New`}),(0,X.jsx)(r,{variant:`primary`,className:`touch-mobile:h-10`,onClick:()=>void _t(),disabled:!q||H,"data-testid":`modal-save-btn`,children:H?`Saving…`:`Save`})]}):(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(r,{variant:`outlined`,className:`touch-mobile:h-10`,onClick:_,disabled:H,"data-testid":`modal-cancel-btn`,children:`Cancel`}),(0,X.jsx)(r,{variant:`primary`,className:`touch-mobile:h-10`,onClick:()=>void _t(),disabled:ht||H,"data-testid":`modal-save-btn`,children:H?`Saving…`:`Save`})]})})]})}var zt=`/assistant/assets/pcm-downsample-worklet-CwNZrVLe.js`;function Bt(){if(!(typeof window>`u`))return window.AudioContext??window.webkitAudioContext}function Vt(e){let t=Bt();if(!t)throw Error(`Web Audio API is not available in this environment`);return new t(e)}var Ht=`pcm-downsample`,Ut=1600,Wt=16e3;function Gt(){return v()?window.vellum?.helper?.dictation:void 0}function Kt(){let e=Gt();return!!e?.transcribe&&!!e.onTranscribed}var qt=null,Jt=null;async function Yt(){return qt||(qt=Vt(),Jt=qt.audioWorklet.addModule(zt)),qt.state!==`running`&&await qt.resume(),await Jt,qt}async function Xt(e,t){try{let n=await Yt(),r=n.createMediaStreamSource(e),i=new AudioWorkletNode(n,Ht,{numberOfInputs:1,numberOfOutputs:0,channelCount:1}),a=[],o=0,s=0;return i.port.onmessage=e=>{let r=new Int16Array(e.data);if(r.length===0||(a.push(r),o+=r.length,o<Ut))return;let i=new Int16Array(o),c=0;for(let e of a)i.set(e,c),c+=e.length;a=[],o=0,s+=1,(s===1||s%50==0)&&console.info(`dictation: pushed audio chunk #${s} (${i.byteLength} bytes, context=${n.state})`),t(i.buffer)},r.connect(i),console.info(`dictation: audio pump started (context=${n.state})`),()=>{i.port.onmessage=null,i.disconnect(),r.disconnect()}}catch(e){return console.warn(`native-dictation-partials: audio pump failed`,e),null}}var Zt=8e3;async function Qt(e){let t=Gt();if(!t?.transcribe||!t.onTranscribed)return null;let n;try{n=await $t(e)}catch(e){let t=e instanceof DOMException?`${e.name}: ${e.message}`:e;return console.warn(`dictation: blob decode for native transcribe failed`,t),null}if(n.byteLength===0)return null;let r=null,i=t.onTranscribed(e=>{r?.(e.text||null)});try{let e=await t.transcribe(n);if(!e.ok)return console.info(`dictation: native transcribe unavailable:`,e.reason),null;let i=await new Promise(e=>{r=e,setTimeout(()=>e(null),Zt)});return console.info(`dictation: native transcribe ${i?`chars=${i.length}`:`produced no text`}`),i}catch(e){return console.warn(`dictation: native transcribe failed`,e),null}finally{i()}}async function $t(e){let t=await e.arrayBuffer(),n=await new OfflineAudioContext(1,1,Wt).decodeAudioData(t),r=n.numberOfChannels,i=n.length,a=n.getChannelData(0);if(r>1){let e=new Float32Array(i);for(let t=0;t<r;t++){let a=n.getChannelData(t);for(let t=0;t<i;t++)e[t]+=a[t]/r}a=e}let o=new Int16Array(i);for(let e=0;e<i;e++){let t=a[e],n=t<-1?-1:t>1?1:t;o[e]=n<0?n*32768:n*32767}return o.buffer}var en=4e3;async function tn(e,t){let n=Gt();if(!n)return null;let r=n.pushAudioChunk?.bind(n),i=t?.stream,a=!!i&&!!r,o=n.onPartial(t=>{e(t.text)}),s=null,c=null,l=n.onFinalized?.(e=>{s=e.text||null,c?.(s)})??null,u=()=>{l?.(),o()};try{let e=await n.setPartials(!0,void 0,a);if(!e.ok)return console.info(`native-dictation-partials: unavailable:`,e.reason),u(),null}catch(e){return console.warn(`native-dictation-partials: setPartials failed`,e),u(),null}let d=null;if(a&&(d=await Xt(i,e=>r(e)),!d))return u(),n.setPartials(!1).catch(()=>{}),null;let f=null;return()=>f||(d?.(),o(),n.setPartials(!1).catch(()=>{}),f=(async()=>{let e=s;return!e&&l&&(e=await new Promise(e=>{c=e,setTimeout(()=>e(null),en)})),l?.(),console.info(e===null?`dictation: native finalized not received`:`dictation: native finalized chars=${e.length}`),e})(),f)}var nn=[{id:`vellum`,displayName:`Vellum`,subtitle:`Text-to-speech through your Vellum account — billed to Vellum credits, no separate API key needed.`,supportsVoiceSelection:!1,apiKeyPlaceholder:`Connected via your Vellum account`,credentialsGuide:{description:`Connect this assistant to your Vellum account; managed speech uses that connection instead of a provider API key.`,url:`https://platform.vellum.ai/`,linkLabel:`Open Vellum Platform`}},{id:`elevenlabs`,displayName:`ElevenLabs`,subtitle:`High-quality voice synthesis for conversations and read-aloud. Requires an ElevenLabs API key.`,supportsVoiceSelection:!0,apiKeyPlaceholder:`sk_…`,credentialsGuide:{description:`Sign in to ElevenLabs, go to your Profile, and copy your API key.`,url:`https://elevenlabs.io/app/settings/api-keys`,linkLabel:`Open ElevenLabs API Keys`}},{id:`fish-audio`,displayName:`Fish Audio`,subtitle:`Natural-sounding voice synthesis with custom voice cloning. Requires a Fish Audio API key and voice reference ID.`,supportsVoiceSelection:!0,apiKeyPlaceholder:`Enter your Fish Audio API key`,credentialsGuide:{description:`Sign in to Fish Audio, navigate to API Keys in your dashboard, and create a new key.`,url:`https://fish.audio/app/api-keys/`,linkLabel:`Open Fish Audio API Keys`}},{id:`deepgram`,displayName:`Deepgram`,subtitle:`Fast, accurate text-to-speech synthesis. Uses the same API key as Deepgram speech-to-text.`,supportsVoiceSelection:!1,apiKeyPlaceholder:`Enter your Deepgram API key`,credentialsGuide:{description:`Sign in to Deepgram, navigate to your API Keys page, and create or copy an existing key. This is the same key used for speech-to-text.`,url:`https://console.deepgram.com/`,linkLabel:`Open Deepgram Console`}},{id:`xai`,displayName:`xAI`,subtitle:`Text-to-speech from xAI with expressive voices (eve, ara, rex, sal, leo). Requires an xAI API key.`,supportsVoiceSelection:!1,apiKeyPlaceholder:`Enter your xAI API key`,credentialsGuide:{description:`Sign in to the xAI console, navigate to API Keys, and create a new key.`,url:`https://console.x.ai/`,linkLabel:`Open xAI Console`}}],rn=`macos-native`,an=[{id:`vellum`,displayName:`Vellum`,subtitle:`Transcription through your Vellum account — billed to Vellum credits, no separate API key needed.`},{id:`deepgram`,displayName:`Deepgram`,subtitle:`Fast, accurate speech-to-text transcription. Uses the same API key as Deepgram text-to-speech.`,apiKeyPlaceholder:`Enter your Deepgram API key`,credentialsGuide:{description:`Sign in to Deepgram, navigate to your API Keys page, and create or copy an existing key. This is the same key used for text-to-speech.`,url:`https://console.deepgram.com/`,linkLabel:`Open Deepgram Console`}},{id:`openai`,displayName:`OpenAI`,subtitle:`OpenAI Whisper transcription. Requires an OpenAI API key.`,apiKeyPlaceholder:`sk-…`,credentialsGuide:{description:`Sign in to the OpenAI platform, navigate to API Keys, and create a new secret key.`,url:`https://platform.openai.com/api-keys`,linkLabel:`Open OpenAI API Keys`}},{id:rn,displayName:`macOS Native Dictation`,subtitle:`Apple's on-device speech recognition, running locally through the macOS helper. Works offline and needs no API key.`,requiresNativeDictation:!0,setupWarning:`Requires macOS Dictation to be turned on: open System Settings → Keyboard, then enable Dictation. macOS downloads the on-device speech model the first time Dictation is enabled — without it, voice input produces no transcript.`}],on=[{id:`mailgun`,displayName:`Mailgun`,setupSkill:`mailgun-setup`,docsUrl:`https://www.mailgun.com/`},{id:`resend`,displayName:`Resend`,setupSkill:`resend-setup`,docsUrl:`https://resend.com/`}],sn=[`gemini-3.1-flash-image-preview`,`gemini-3-pro-image-preview`,`gpt-image-2`],cn={"gemini-3.1-flash-image-preview":`Nano Banana 2`,"gemini-3-pro-image-preview":`Nano Banana Pro`,"gpt-image-2":`GPT Image 2`};function ln(e){return e.startsWith(`gpt-`)||e.startsWith(`dall-e-`)?`openai`:(e.startsWith(`gemini-`),`gemini`)}var un=`vellum:ai:imageGenMode`,dn=`vellum:ai:imageGenModel`,fn=`vellum:ai:webSearchProvider`,pn=`vellum:ai:webFetchProvider`,mn=`vellum:ai:emailMode`,hn=`vellum:ai:emailByoProvider`,gn=`vellum:voice:ttsProvider`,_n=`vellum:voice:ttsApiKey:`,vn=`vellum:voice:ttsVoiceId:`,yn=`vellum:voice:sttProvider`,bn=`vellum:voice:sttApiKey:`;function xn(e,t){let n=e.filter(e=>e.status!==`disabled`);return t&&n.some(e=>e.name===t)?t:n[0]?.name}function Sn(e,t){let n=new Set;for(let e of t)e&&n.add(e);return e.filter(e=>e.status!==`disabled`||n.has(e.name))}function Cn(e){let t=e.label??e.name;return e.status===`disabled`?`${t} (Disabled)`:t}var wn={profiles:{},profileOrder:[]};function Tn(e,t){let n=e?.profiles,r=e?.profileOrder,i=!!n&&Object.keys(n).length>0,[a,o]=(0,P.useState)(wn),[s,c]=(0,P.useState)(t);return t!==s&&(c(t),o(wn)),(0,P.useEffect)(()=>{i&&o({profiles:n,profileOrder:r??[]})},[i,n,r]),i?{profiles:n,profileOrder:r??[]}:t===s?a:wn}export{de as $,Nt as A,Je as B,Kt as C,Bt as D,Vt as E,Dt as F,_e as G,Ye as H,wt as I,ge as J,Ce as K,St as L,At as M,Ot as N,zt as O,Et as P,pe as Q,Ct as R,ln as S,Qt as T,Q as U,qe as V,ve as W,G as X,K as Y,fe as Z,on as _,hn as a,L as at,an as b,dn as c,_n as d,W as et,gn as f,sn as g,fn as h,Sn as i,oe as it,Mt as j,Lt as k,bn as l,pn as m,Cn as n,le as nt,mn as o,V as ot,vn as p,Se as q,xn as r,ae as rt,un as s,B as st,Tn as t,U as tt,yn as u,cn as v,tn as w,nn as x,rn as y,tt as z};
|