@vellumai/web 0.11.6-staging.1 → 0.11.6-staging.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{Trans-aGiJoe8I.js → Trans-v2rRKTPL.js} +1 -1
- package/dist/assets/{about-page-ZnkPsf0U.js → about-page-Dw0Uwev9.js} +1 -1
- package/dist/assets/{account-page-CdyM1iwP.js → account-page-DlvLIypA.js} +1 -1
- package/dist/assets/{acp-run-detail-panel-zRE7-vdm.js → acp-run-detail-panel-Iio-GZu9.js} +1 -1
- package/dist/assets/{activity-steps-panel-nbxTKOVk.js → activity-steps-panel-PJzUgOtB.js} +1 -1
- package/dist/assets/{add-credential-modal-BATaEuxb.js → add-credential-modal-D7srPAPB.js} +1 -1
- package/dist/assets/{add-credits-modal-DooRKUbe.js → add-credits-modal-DeNURe8K.js} +1 -1
- package/dist/assets/{ai-page-DPbjFKx7.js → ai-page-DD80M99s.js} +1 -1
- package/dist/assets/{android-billing-handoff-Ds3DxpCc.js → android-billing-handoff-Bh58jm76.js} +1 -1
- package/dist/assets/{api-key-screen-99woWR1P.js → api-key-screen-z0y8OmyR.js} +1 -1
- package/dist/assets/{app-card-B4Qtpfzx.js → app-card-BhEYWzKz.js} +1 -1
- package/dist/assets/{assistant-status-panel-Des4OppH.js → assistant-status-panel-DVk8iz06.js} +1 -1
- package/dist/assets/{auth-store-BS_AckaH.js → auth-store-CjmqULlA.js} +1 -1
- package/dist/assets/{auth-welcome-screen-D1S5M2Kh.js → auth-welcome-screen-CZqGjUcN.js} +1 -1
- package/dist/assets/{avatar-random-yqbTVEOu.js → avatar-random-BnLwN7Id.js} +1 -1
- package/dist/assets/{background-task-detail-panel-BLiP5JQ4.js → background-task-detail-panel-C45_k5DQ.js} +1 -1
- package/dist/assets/{billing-page-DOEkieS2.js → billing-page-CKwUJ6q-.js} +1 -1
- package/dist/assets/{bookmarks-page-BFaVU7b4.js → bookmarks-page-Dx3rKSni.js} +1 -1
- package/dist/assets/{browser-FhK1jedq.js → browser-BEhg-q3w.js} +1 -1
- package/dist/assets/{build-state-D823nCLC.js → build-state-B8LOllfu.js} +1 -1
- package/dist/assets/{bundle-confirm-page-DZnoSjc9.js → bundle-confirm-page-6fk5bxhm.js} +1 -1
- package/dist/assets/{channels-page-route-_rDah3g9.js → channels-page-route-oOKo0PJl.js} +1 -1
- package/dist/assets/{chat-BdKZmBwG.js → chat-CBvs4_4y.js} +1 -1
- package/dist/assets/{chat-avatar-CHLuqAEg.js → chat-avatar-UYWpN1Us.js} +1 -1
- package/dist/assets/{chat-markdown-message-_z6qxnqG.js → chat-markdown-message-u0xAGkrJ.js} +1 -1
- package/dist/assets/{checkout-continuation-DlHd_nON.js → checkout-continuation-BWg-BcSF.js} +1 -1
- package/dist/assets/{checkout-page-Ch_IEvCI.js → checkout-page-CbYIkUzX.js} +1 -1
- package/dist/assets/checkout-return-target-D-ski0RP.js +1 -0
- package/dist/assets/{client-perf-CLY3_q_D.js → client-perf-HISWGXqe.js} +1 -1
- package/dist/assets/{command-palette-k80zjQSl.js → command-palette-H8-iGtrr.js} +1 -1
- package/dist/assets/{command-palette-window-page-DqlKENK8.js → command-palette-window-page-BhTJGf5Z.js} +1 -1
- package/dist/assets/{community-page-nbMgxomH.js → community-page-D5Arbqn5.js} +1 -1
- package/dist/assets/{companion-surface-page-Ch88Na9Y.js → companion-surface-page-ocmWMzcw.js} +1 -1
- package/dist/assets/{composer-settings-LrZeVSAJ.js → composer-settings-C-0rpzHA.js} +1 -1
- package/dist/assets/{connect-page-DASZ4VQs.js → connect-page-mZ1hzLhX.js} +1 -1
- package/dist/assets/consent-CSU4nfO3.js +1 -0
- package/dist/assets/{consent-controls-BPQTRctP.js → consent-controls-BO5Fuj76.js} +1 -1
- package/dist/assets/{contacts-gateway-MKSgXEZy.js → contacts-gateway-DoiRPJZq.js} +1 -1
- package/dist/assets/{contacts-page-route-BnRkVN9h.js → contacts-page-route-BsBSdQ8v.js} +1 -1
- package/dist/assets/{conversation-cache-Cso4_Bep.js → conversation-cache-DOQdWaTg.js} +1 -1
- package/dist/assets/{conversation-navigation-CmHzY4Xq.js → conversation-navigation-116d0b9Q.js} +1 -1
- package/dist/assets/{conversation-queries-BF8k8u33.js → conversation-queries-tt9gZId5.js} +1 -1
- package/dist/assets/{conversation-selection-ISP-GEpt.js → conversation-selection-DKq2AZf8.js} +1 -1
- package/dist/assets/{copy-to-clipboard-B078_jza.js → copy-to-clipboard-CIyU3zmr.js} +1 -1
- package/dist/assets/{credential-entry-page-BPFHyo8L.js → credential-entry-page-Dd7upL78.js} +1 -1
- package/dist/assets/{credentials-page-DeWI9q-0.js → credentials-page-BVljsi9m.js} +1 -1
- package/dist/assets/{csv-preview-CqWvdRkQ.js → csv-preview-CeNy614y.js} +1 -1
- package/dist/assets/debug-page-DpV9vuot.js +4 -0
- package/dist/assets/{deploy-dialogs-6g154vY-.js → deploy-dialogs-TTQiNB6y.js} +1 -1
- package/dist/assets/{developer-page-Dc5sQTEA.js → developer-page-DBUNokt3.js} +1 -1
- package/dist/assets/{diagnostics-CDY7BQoh.js → diagnostics-Bi4k4B8U.js} +1 -1
- package/dist/assets/{dictation-overlay-page-DSdKbYyc.js → dictation-overlay-page-BmayMkea.js} +1 -1
- package/dist/assets/{doctor-handoff-store-DQO1EjVy.js → doctor-handoff-store-Do2X2LvI.js} +1 -1
- package/dist/assets/{document-viewer-container-BtW95bF_.js → document-viewer-container-CrbF9Z_4.js} +2 -2
- package/dist/assets/{document-viewer-page-UdVOXLpf.js → document-viewer-page-DqN6k_UB.js} +1 -1
- package/dist/assets/effective-timezone-BZrvS5yC.js +1 -0
- package/dist/assets/{emails-page-UnMnEidw.js → emails-page-BSDs_cnf.js} +1 -1
- package/dist/assets/{external-anchor-Bkm-fDSc.js → external-anchor-DKrqdxff.js} +1 -1
- package/dist/assets/{feed-item-status-actions-BHvscGQu.js → feed-item-status-actions-CCNKonlC.js} +1 -1
- package/dist/assets/{file-editor-C9OAvqwA.js → file-editor-Bn3fjyeW.js} +1 -1
- package/dist/assets/{file-markdown-B2klOAQg.js → file-markdown-8-h2vx0G.js} +1 -1
- package/dist/assets/{first-run-scope-DJpBBdJm.js → first-run-scope-lw_VDLUA.js} +1 -1
- package/dist/assets/{format-usd-RiDwg_QI.js → format-usd-B9okvVIq.js} +1 -1
- package/dist/assets/{funnel-events-BtXh2plQ.js → funnel-events-D-InjbTX.js} +1 -1
- package/dist/assets/{general-page-DN_w4TPU.js → general-page-DppPvamB.js} +1 -1
- package/dist/assets/{get-memory-stats-O7uGD6O3.js → get-memory-stats-BhVFtDQg.js} +1 -1
- package/dist/assets/{haptics-DvIfvjqC.js → haptics-DRyt58c5.js} +1 -1
- package/dist/assets/{hatching-screen-2q8r9puV.js → hatching-screen-1ZOPcV42.js} +1 -1
- package/dist/assets/{home-page-route-c2TGfb6a.js → home-page-route-D1QbN6M5.js} +1 -1
- package/dist/assets/{hosting-screen-CbyH6Atk.js → hosting-screen-C-uvieVy.js} +1 -1
- package/dist/assets/{i18n-DmTrjH8B.js → i18n-BDfnKs41.js} +1 -1
- package/dist/assets/{identity-KKhytdTo.js → identity-BueQJAR8.js} +1 -1
- package/dist/assets/{identity-page-route-D-3xzuIC.js → identity-page-route-BOQd6ko9.js} +1 -1
- package/dist/assets/{index-mFpsjcJ6.js → index-CfSEZ8JN.js} +1 -1
- package/dist/assets/{ingest-CU_Li3h3.js → ingest-BD3GYGpk.js} +1 -1
- package/dist/assets/{inspect-page-DKPQ27do.js → inspect-page-CGsWZzun.js} +1 -1
- package/dist/assets/{integrations-page-Bq0sWlli.js → integrations-page-D5H6XJIt.js} +1 -1
- package/dist/assets/{intelligence-layout-f5wyMaIl.js → intelligence-layout-_FM08eqn.js} +1 -1
- package/dist/assets/{invalidate-memory-queries-Br8jTINF.js → invalidate-memory-queries-DqdhPLUe.js} +1 -1
- package/dist/assets/{latest-assistant-text-Dced2okE.js → latest-assistant-text-BeS_23nt.js} +1 -1
- package/dist/assets/{library-detail-page-BOc9XP2T.js → library-detail-page-DLtBHLA8.js} +1 -1
- package/dist/assets/{library-page-Cu_cukyn.js → library-page-YT1vECkY.js} +1 -1
- package/dist/assets/{local-runtime-upgrade-w4ASPcze.js → local-runtime-upgrade-8SxM3rIp.js} +1 -1
- package/dist/assets/{login-flow-DsNuV6DN.js → login-flow-B8yCe4pl.js} +1 -1
- package/dist/assets/{login-page-DpsjjRMr.js → login-page-awRRidw5.js} +1 -1
- package/dist/assets/{logout-page-Cmz7sbQo.js → logout-page-nRjDnT8Z.js} +1 -1
- package/dist/assets/{logs-layout-C1Fe6XzX.js → logs-layout-D8c2JBmw.js} +1 -1
- package/dist/assets/{markdown-preview-DjFhlkUi.js → markdown-preview-BkK4kDdG.js} +1 -1
- package/dist/assets/{media-preview-D4MG8kYt.js → media-preview-lY5oZbAH.js} +1 -1
- package/dist/assets/{memory-page-route-DRbOMySi.js → memory-page-route-j0Dpopb-.js} +1 -1
- package/dist/assets/{memory-router-playground-page-BdMCdqle.js → memory-router-playground-page-BYD7TF11.js} +1 -1
- package/dist/assets/{message-files-panel-Fxs-rmt5.js → message-files-panel-aRAyF3Ir.js} +1 -1
- package/dist/assets/{messages-D29Jnu8v.js → messages-CCAr4He2.js} +1 -1
- package/dist/assets/native-anchor-C9EuQRVe.js +1 -0
- package/dist/assets/{native-biometric-B2BCv4UL.js → native-biometric-ntyxdDLY.js} +1 -1
- package/dist/assets/{navigation-resolver-CkRFZvMW.js → navigation-resolver-dBlKf1YD.js} +1 -1
- package/dist/assets/{not-found-D0BBLotb.js → not-found-DWwWs5dL.js} +1 -1
- package/dist/assets/{notifications-28pbXqp8.js → notifications-CdfIUmqd.js} +1 -1
- package/dist/assets/{notifications-page-KaEKT5jM.js → notifications-page-DqdfKth8.js} +1 -1
- package/dist/assets/{oauth-complete-page-C6qCszaI.js → oauth-complete-page-O3DSqE_R.js} +1 -1
- package/dist/assets/{oauth-popup-complete-page-BLcrBAUt.js → oauth-popup-complete-page-Bax7Z0q9.js} +1 -1
- package/dist/assets/{onboarding-store-CvgTQIIF.js → onboarding-store-BsVgs3Ut.js} +1 -1
- package/dist/assets/{open-workspace-file-BTTUgCt1.js → open-workspace-file-Cw5RJCCD.js} +2 -2
- package/dist/assets/{operational-status-BZXW6I_s.js → operational-status-DpG5GDPe.js} +1 -1
- package/dist/assets/{pairing-page-CqEOn5rN.js → pairing-page-BAjVwQx2.js} +1 -1
- package/dist/assets/{pdf-file-preview-uKdLOqN0.js → pdf-file-preview-DOGYGRl6.js} +1 -1
- package/dist/assets/{personality-page-2sZ6-R9f.js → personality-page-DHXw49da.js} +1 -1
- package/dist/assets/{plans-page-oZu0oBkq.js → plans-page-CEKWL3n4.js} +1 -1
- package/dist/assets/{platform-detection-BBpg4tha.js → platform-detection-BVSM8PRh.js} +1 -1
- package/dist/assets/{platform-login-notice-CWwlTxPN.js → platform-login-notice-Dq3m5QWH.js} +1 -1
- package/dist/assets/{platform-loopback-page-C9OvnmnD.js → platform-loopback-page-pQ4fn0Nn.js} +1 -1
- package/dist/assets/{prefs-BaoT5tM9.js → prefs-CXvngLdE.js} +1 -1
- package/dist/assets/{preview-skeleton-YDIO2gF1.js → preview-skeleton-DA_Jj0Wc.js} +1 -1
- package/dist/assets/{privacy-page-Dvb2GtB0.js → privacy-page-BMzUBvaJ.js} +1 -1
- package/dist/assets/{privacy-screen-Bqv76Nq2.js → privacy-screen-Dy6bC1QU.js} +1 -1
- package/dist/assets/{provider-callback-page-Ce2jTkvh.js → provider-callback-page-DI_iDUZB.js} +1 -1
- package/dist/assets/{provider-key-CMNgoPPW.js → provider-key-CXIl3HXm.js} +1 -1
- package/dist/assets/{provider-signup-page-D7KPQDTx.js → provider-signup-page-CEZYja-E.js} +1 -1
- package/dist/assets/{push-registration-Def6tMwq.js → push-registration-DSgQ3jMG.js} +1 -1
- package/dist/assets/{quick-input-page-D3EbU-FY.js → quick-input-page-DCkaYfUc.js} +1 -1
- package/dist/assets/{remove-from-device-dialog-BbJRKUXj.js → remove-from-device-dialog-CYJV-5IC.js} +1 -1
- package/dist/assets/{research-facts-xwTtzOsw.js → research-facts-DKRZaLQC.js} +1 -1
- package/dist/assets/{research-mock-page-C-vd6Js2.js → research-mock-page-Y0Hec2hX.js} +1 -1
- package/dist/assets/{research-onboarding-route-CNAu2dNs.js → research-onboarding-route-CREwj2sS.js} +1 -1
- package/dist/assets/{research-results-view-Jw7TJTaZ.js → research-results-view-CBvWhXB8.js} +1 -1
- package/dist/assets/{retire-confirm-dialog-RkS3NvLp.js → retire-confirm-dialog-B3ZUAlmZ.js} +1 -1
- package/dist/assets/{review-terms-screen-BWgeEqds.js → review-terms-screen-7OU_S96U.js} +1 -1
- package/dist/assets/{routes-eT5q78xz.js → routes-DvpgDVCJ.js} +6 -6
- package/dist/assets/{runtime-upgrade-banner-z2o_sHZe.js → runtime-upgrade-banner-lbVqs7Te.js} +1 -1
- package/dist/assets/{sandbox-bridge-lNdpH-lI.js → sandbox-bridge-BkKOlHRs.js} +1 -1
- package/dist/assets/{schedules-qIwqn-CD.js → schedules-5MJ4hhjn.js} +1 -1
- package/dist/assets/{schedules-CKSTyNa5.js → schedules-DCr5HsxY.js} +1 -1
- package/dist/assets/{schedules-page-DW7XjHcT.js → schedules-page-DRcO3zq3.js} +1 -1
- package/dist/assets/{section-membership-Bdo3i5eu.js → section-membership-CyAaLX8V.js} +1 -1
- package/dist/assets/{select-assistant-screen-k386tZII.js → select-assistant-screen-DJHzqmSj.js} +1 -1
- package/dist/assets/{self-hosted-servers-BDgPxWVB.js → self-hosted-servers-DTLMKzVl.js} +1 -1
- package/dist/assets/settings-CcU8vWuM.js +3 -0
- package/dist/assets/settings-Ce2mFlFl.js +3 -0
- package/dist/assets/{settings-layout-Y_R4_NQY.js → settings-layout-Brb4OeZD.js} +1 -1
- package/dist/assets/{settings-navigation-BoSIdnWk.js → settings-navigation-eZSfIWFH.js} +1 -1
- package/dist/assets/{share-feedback-modal-BEya0Yqs.js → share-feedback-modal-DuppDLIt.js} +1 -1
- package/dist/assets/{sidebar-tree-CdM-vr-W.js → sidebar-tree-hjulk9XJ.js} +1 -1
- package/dist/assets/{signup-page-DmElIotT.js → signup-page-pBgqV9xZ.js} +1 -1
- package/dist/assets/{site-favicon-BedPYfUd.js → site-favicon-zvd-HIsY.js} +1 -1
- package/dist/assets/{skill-detail-page-DyHeyxn6.js → skill-detail-page-CB5IciZz.js} +1 -1
- package/dist/assets/{skill-detail-panel-HctOj1h8.js → skill-detail-panel-CxyyNg-F.js} +1 -1
- package/dist/assets/{skills-v0VHK5y6.js → skills-DGBAogub.js} +1 -1
- package/dist/assets/{sound-manager-DYTGIzjx.js → sound-manager-BCNOVpEJ.js} +1 -1
- package/dist/assets/{sounds-page-BtxsdG4G.js → sounds-page-B9l4ortG.js} +1 -1
- package/dist/assets/{start-screen-C7dTCePQ.js → start-screen-BXejiAHk.js} +1 -1
- package/dist/assets/{status-badge-pill-Baw4Cqvw.js → status-badge-pill-B4knVe4X.js} +1 -1
- package/dist/assets/{stt-language-picker-modal-BPtrOwPj.js → stt-language-picker-modal-DoiPypZS.js} +1 -1
- package/dist/assets/{subagent-detail-panel--dEqnU_m.js → subagent-detail-panel-Dgs09-aR.js} +1 -1
- package/dist/assets/{subagent-store-Dl-mIb0t.js → subagent-store-B3w3yLSH.js} +1 -1
- package/dist/assets/{superpowers-page-DfnfxMoY.js → superpowers-page-DqtKtLl_.js} +1 -1
- package/dist/assets/{swipe-action-reveal-DgsLJylW.js → swipe-action-reveal-rwiWQgU_.js} +1 -1
- package/dist/assets/{system-events-page-CQz3l7aH.js → system-events-page-DVQ_Igth.js} +1 -1
- package/dist/assets/{telegram-setup-wizard-CUbUmp6W.js → telegram-setup-wizard-CYy9zEtc.js} +1 -1
- package/dist/assets/{text-preview-DwBFvH3m.js → text-preview-DG1TgtrX.js} +1 -1
- package/dist/assets/{theme-preferences-DIV1b2y-.js → theme-preferences-U-DK54R3.js} +1 -1
- package/dist/assets/{theme-stage-page-CGtNZKJ0.js → theme-stage-page-DncswvCE.js} +1 -1
- package/dist/assets/{threshold-presets-d4-WHyc0.js → threshold-presets-XHj6N666.js} +1 -1
- package/dist/assets/{tiptap-document-editor-CRVXDMaT.js → tiptap-document-editor-CeH50SNN.js} +1 -1
- package/dist/assets/{tool-detail-panel-DZ84LNQz.js → tool-detail-panel-CjI_rLvP.js} +1 -1
- package/dist/assets/{transcript-message-body-shared-BWxl7fY-.js → transcript-message-body-shared-DAn7Y7Ac.js} +1 -1
- package/dist/assets/{trust-rules-api-DiTTv8Xh.js → trust-rules-api-CpP3h7B2.js} +1 -1
- package/dist/assets/{upgrade-cancel-page-Ea5Sph4r.js → upgrade-cancel-page-Rayv5lL4.js} +1 -1
- package/dist/assets/{upgrade-success-page-BnRSiTpn.js → upgrade-success-page-BTYOlmt5.js} +1 -1
- package/dist/assets/{use-app-theme-C1S3mjC9.js → use-app-theme-CsfqodmR.js} +1 -1
- package/dist/assets/{use-assistant-avatar-BJgMIWOW.js → use-assistant-avatar-CT8Pozwx.js} +1 -1
- package/dist/assets/{use-assistant-capability-DMm0QlXl.js → use-assistant-capability-D_tZY-cd.js} +1 -1
- package/dist/assets/{use-assistant-identity-details-CxMeMMyX.js → use-assistant-identity-details-BqNPVmfH.js} +1 -1
- package/dist/assets/{use-attachment-preview-CBeM5b0S.js → use-attachment-preview-DuaQSNrO.js} +1 -1
- package/dist/assets/{use-attachment-squares-C-bgyqWz.js → use-attachment-squares-Cbx4ZiOb.js} +1 -1
- package/dist/assets/{use-bookmarks-FrEqnEhr.js → use-bookmarks-BZRDuTXA.js} +1 -1
- package/dist/assets/{use-checkout-dismiss-refresh-DFe-xI7y.js → use-checkout-dismiss-refresh-D9yXOKh9.js} +1 -1
- package/dist/assets/{use-command-palette-sections-PE4jpcjb.js → use-command-palette-sections-BUETm__K.js} +1 -1
- package/dist/assets/{use-copy-to-clipboard-81gBKimW.js → use-copy-to-clipboard-IWl9ygbI.js} +1 -1
- package/dist/assets/{use-edge-swipe-DKTO3Cv4.js → use-edge-swipe-CAV3Gs1-.js} +1 -1
- package/dist/assets/{use-edge-swipe-back-CyCOlcdD.js → use-edge-swipe-back-BgZR4YZn.js} +2 -2
- package/dist/assets/{use-edit-app-BhH9qfzH.js → use-edit-app-BzvFD5ew.js} +1 -1
- package/dist/assets/{use-effective-timezone-fVManBSH.js → use-effective-timezone-DByqidDL.js} +1 -1
- package/dist/assets/{use-invite-link-dialog-BN8Wpu4s.js → use-invite-link-dialog-DRNVCYW4.js} +1 -1
- package/dist/assets/{use-is-org-ready-BKgGDOej.js → use-is-org-ready-TE5xIhFU.js} +1 -1
- package/dist/assets/{use-onboarding-login-5Y1lz16z.js → use-onboarding-login-Q4gvH8Wj.js} +1 -1
- package/dist/assets/{use-platform-assistant-id-ozCBrdTi.js → use-platform-assistant-id-8TlYUj7-.js} +1 -1
- package/dist/assets/{use-platform-gate-BGciIhS7.js → use-platform-gate-PHzS1_gQ.js} +1 -1
- package/dist/assets/{use-return-to-short-circuit-D44uvNf1.js → use-return-to-short-circuit-BVG-rqwe.js} +1 -1
- package/dist/assets/{use-save-twilio-credentials-DKSM1mRw.js → use-save-twilio-credentials-CLM74CvJ.js} +1 -1
- package/dist/assets/{use-side-list-room-C6Z5u28A.js → use-side-list-room-Bq836e0c.js} +1 -1
- package/dist/assets/{use-skill-actions-BVDaCf6_.js → use-skill-actions-l1FxBNiT.js} +1 -1
- package/dist/assets/{use-skill-detail-files-DG06yE_k.js → use-skill-detail-files-CBPqC-XL.js} +1 -1
- package/dist/assets/{use-sticky-profiles-BKE8FjEv.js → use-sticky-profiles-C4JFSief.js} +1 -1
- package/dist/assets/{use-stt-language-selection-Gm1f-ivf.js → use-stt-language-selection-CGDAHN7_.js} +1 -1
- package/dist/assets/{use-subagent-card-data-Dy4-aRfP.js → use-subagent-card-data-dOGbE8zd.js} +1 -1
- package/dist/assets/{use-swipe-horizontal-DZyIbuDo.js → use-swipe-horizontal-Bad1Uh4M.js} +1 -1
- package/dist/assets/use-transcript-message-by-id-D684pai6.js +1 -0
- package/dist/assets/{use-transcript-messages-BB1rO2uq.js → use-transcript-messages-DIEDHw01.js} +1 -1
- package/dist/assets/{use-voice-sample-preview-Bv8Lpoi6.js → use-voice-sample-preview-BBqCdK2Z.js} +1 -1
- package/dist/assets/{viewer-store-BSA96yyy.js → viewer-store-Dgua7F-U.js} +1 -1
- package/dist/assets/{voice-page-8wEr3tXP.js → voice-page-BYDJEThX.js} +1 -1
- package/dist/assets/{voice-providers-note-DJFMA5E4.js → voice-providers-note-DpSF3-Ma.js} +1 -1
- package/dist/assets/{weather-forecast-display-BdKore4p.js → weather-forecast-display-MET3csCf.js} +1 -1
- package/dist/assets/{welcome-screen-BCDDdfJj.js → welcome-screen-Dn7IdxeX.js} +1 -1
- package/dist/assets/{workflow-detail-panel-DPJZRzuN.js → workflow-detail-panel-BUuxWGNn.js} +1 -1
- package/dist/assets/{workflow-store-JtZ4LqGp.js → workflow-store-CA048OMm.js} +1 -1
- package/dist/assets/{workspace-page-BhDvGikQ.js → workspace-page-CcIru1nv.js} +1 -1
- package/dist/index.html +93 -93
- package/package.json +1 -1
- package/dist/assets/checkout-return-target-B_TPDEoT.js +0 -1
- package/dist/assets/consent-BLSEyXFF.js +0 -1
- package/dist/assets/debug-page-BbaKlAFm.js +0 -4
- package/dist/assets/effective-timezone-CxitKH1O.js +0 -1
- package/dist/assets/native-anchor-CKzrSOXb.js +0 -1
- package/dist/assets/settings-BIPnhjK7.js +0 -3
- package/dist/assets/settings-Cm4c97nK.js +0 -3
- package/dist/assets/use-transcript-message-by-id-J-Bidsvj.js +0 -1
package/dist/assets/{runtime-upgrade-banner-z2o_sHZe.js → runtime-upgrade-banner-lbVqs7Te.js}
RENAMED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/web-Br6VELOy.js","assets/dist-Cr8OiiXj.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{k as t,l as n,v as r}from"./i18n-DmTrjH8B.js";import{t as i}from"./react-DJZBPgpf.js";import{t as a}from"./button-B1kEAcLt.js";import{t as o}from"./preload-helper-BewR0kVT.js";import{t as s}from"./chunk-5KNZJZUH-CPFsMQoz.js";import{n as c}from"./QueryClientProvider-BPZM68-A.js";import{t as l}from"./useQuery-BtL9k7Sh.js";import{t as u}from"./useMutation-Cl7cazkm.js";import{t as d}from"./jsx-runtime-COOF1INC.js";import{t as f}from"./createLucideIcon-CMfEC_aW.js";import{t as p}from"./circle-alert-BaeJJrSp.js";import{t as ee}from"./circle-check-CnoFVsRZ.js";import{t as te}from"./cloud-off-B8SagsfP.js";import{t as m}from"./info-C-HjpKAE.js";import{t as h}from"./loader-circle-DZ65N8bz.js";import{t as g}from"./moon-MfogEw5q.js";import{t as _}from"./refresh-cw-BDh1a2sj.js";import{t as v}from"./triangle-alert-B6J57Xfo.js";import{t as y}from"./wrench-ajjC5omI.js";import{n as b}from"./toast-BKrDuNtu.js";import{t as x}from"./confirm-dialog-EPYSBP_B.js";import{H as ne,Y as S,g as re}from"./local-mode-BQ8gp0wB.js";import{t as ie}from"./assistant-identity-store-DBkGjqzV.js";import{t as C}from"./is-electron-D45bjFI8.js";import{r as w,t as T}from"./resolved-assistants-store-DEtotxhR.js";import{ht as ae,lt as oe,rt as E,tt as D}from"./auth-store-BS_AckaH.js";import{Q as O,k as se}from"./sdk.gen-CrcsMCNX.js";import{n as k}from"./event-bus-CN0zipw2.js";import{m as ce}from"./native-biometric-B2BCv4UL.js";import{i as A,t as j}from"./dist-Cr8OiiXj.js";import{f as M}from"./routes-C6ueuiMd.js";import{t as le}from"./client-feature-flag-store-BmjgGl9P.js";import{r as ue,t as N}from"./operational-status-BZXW6I_s.js";import{t as P}from"./use-bus-subscription-DfxTm1-Q.js";import{O as F,k as I,wt as de}from"./react-query.gen-C5widOeH.js";import{t as L}from"./misc-dA4Wklt2.js";import{a as fe,i as pe,n as R,o as z,r as B,s as me,t as V}from"./local-runtime-upgrade-w4ASPcze.js";var he=f(`wifi-off`,[[`path`,{d:`M12 20h.01`,key:`zekei9`}],[`path`,{d:`M8.5 16.429a5 5 0 0 1 7 0`,key:`1bycff`}],[`path`,{d:`M5 12.859a10 10 0 0 1 5.17-2.69`,key:`1dl1wf`}],[`path`,{d:`M19 12.859a10 10 0 0 0-2.007-1.523`,key:`4k23kn`}],[`path`,{d:`M2 8.82a15 15 0 0 1 4.177-2.643`,key:`1grhjp`}],[`path`,{d:`M22 8.82a15 15 0 0 0-11.288-3.764`,key:`z3jwby`}],[`path`,{d:`m2 2 20 20`,key:`1ooewy`}]]),H=e(i(),1);function U(e){return C()?window.vellum?.connectivity?.onState(e)??(()=>void 0):()=>void 0}function W(e){C()&&window.vellum?.connectivity?.setDevice(e)}async function G(e){if(!C())return null;try{return await e()??null}catch{return null}}function ge(){return G(()=>window.vellum?.connectivity?.get())}function K(){return G(()=>window.vellum?.connectivity?.retry())}var _e=2e3;function ve(){let[e,t]=(0,H.useState)(`online`),n=(0,H.useRef)(null),r=(0,H.useCallback)(()=>{n.current&&=(clearTimeout(n.current),null)},[]),i=(0,H.useCallback)(e=>{e&&(r(),t(e))},[r]),a=(0,H.useCallback)(()=>{ge().then(i)},[i]);return P(`app.resume`,a),(0,H.useEffect)(()=>{let e=U(e=>{if(e===`online`){if(n.current)return;n.current=setTimeout(()=>{n.current=null,t(`online`)},_e)}else r(),t(e)});return window.addEventListener(`focus`,a),()=>{e(),window.removeEventListener(`focus`,a),r()}},[a,r]),{connectivityState:e,retryConnectivity:(0,H.useCallback)(()=>{K().then(i)},[i])}}var q=A(`Network`,{web:()=>o(()=>import(`./web-Br6VELOy.js`).then(e=>new e.NetworkWeb),__vite__mapDeps([0,1]))});function ye(){let[e,t]=(0,H.useState)(!0);return(0,H.useEffect)(()=>{if(!j.isNativePlatform())return;let e=!1;q.getStatus().then(n=>{e||t(n.connected)}).catch(()=>{});let n=q.addListener(`networkStatusChange`,n=>{e||t(n.connected)});return()=>{e=!0,n.then(e=>e.remove()).catch(()=>{})}},[]),e}var be=15e3;function xe(){let[e,t]=(0,H.useState)(null);return P(`app.resume`,()=>{t(Date.now()+be)}),(0,H.useEffect)(()=>{if(e===null)return;let n=e-Date.now();if(n<=0){t(null);return}let r=setTimeout(()=>{t(null)},n);return()=>clearTimeout(r)},[e]),e!==null}var J=d(),Se=6e4,Y={info:{container:`bg-[var(--system-info-weak)]`,content:`text-[color:var(--system-info-strong)]`,icon:`text-[color:var(--system-info-strong)]`,action:`[--status-banner-action-color:var(--system-info-strong)]`,DefaultIcon:m},success:{container:`bg-[var(--system-positive-weak)]`,content:`text-[color:var(--system-positive-strong)]`,icon:`text-[color:var(--system-positive-strong)]`,action:`[--status-banner-action-color:var(--system-positive-strong)]`,DefaultIcon:ee},warning:{container:`bg-[var(--system-mid-weak)]`,content:`text-[color:var(--system-mid-strong)]`,icon:`text-[color:var(--system-mid-strong)]`,action:`[--status-banner-action-color:var(--system-mid-strong)]`,DefaultIcon:p},error:{container:`bg-[var(--system-negative-weak)]`,content:`text-[color:var(--system-negative-strong)]`,icon:`text-[color:var(--system-negative-strong)]`,action:`[--status-banner-action-color:var(--system-negative-strong)]`,DefaultIcon:v},neutral:{container:`bg-[var(--surface-active)]`,content:`text-[color:var(--content-secondary)]`,icon:`text-[color:var(--content-secondary)]`,action:`[--status-banner-action-color:var(--content-secondary)]`,DefaultIcon:null}},Ce={web:`min-h-10 rounded-none px-4 py-[10px]`,electron:`min-h-8 rounded-[6px] px-2 py-[7px]`};function X({tone:e,title:t,children:n,icon:r,actions:i,placement:a=`web`,className:o,ref:s,...c}){let l=Y[e],u=e===`error`?`alert`:`status`,d=a===`web`?`text-body-medium-default leading-5`:`text-body-small-default leading-[18px]`,f=r===void 0?l.DefaultIcon?(0,J.jsx)(l.DefaultIcon,{"aria-hidden":`true`}):null:r;return(0,J.jsxs)(`div`,{...c,ref:s,role:u,"data-slot":`status-banner-notice`,"data-placement":a,"data-tone":e,className:L(`flex w-full shrink-0 items-center justify-between gap-3 overflow-hidden`,`text-[color:var(--content-default)]`,Ce[a],l.container,o),children:[(0,J.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-center gap-2`,children:[f?(0,J.jsx)(`span`,{className:L(`flex size-3.5 shrink-0 items-center justify-center [&_svg]:size-3.5`,l.icon),children:f}):null,(0,J.jsxs)(`div`,{className:`min-w-0`,children:[(0,J.jsx)(`div`,{className:L(`truncate`,l.content,d),children:t}),n?(0,J.jsx)(`div`,{className:`text-body-small-default leading-4 text-[color:var(--content-secondary)]`,children:n}):null]})]}),i?(0,J.jsx)(`div`,{className:L(`flex shrink-0 items-center border-l border-[color-mix(in_srgb,var(--status-banner-action-color)_22%,transparent)] text-label-medium-default`,`text-[color:var(--status-banner-action-color)]`,l.action,a===`web`?`gap-2 pl-4 leading-5`:`gap-1.5 pl-2 leading-[18px]`,`[&_[data-slot=button]]:h-auto [&_[data-slot=button]]:border-0 [&_[data-slot=button]]:bg-transparent`,`[&_[data-slot=button]]:-mx-1 [&_[data-slot=button]]:rounded-sm [&_[data-slot=button]]:px-1 [&_[data-slot=button]]:py-0`,`[&_[data-slot=button]]:text-body-small-default`,`[&_[data-slot=button]]:leading-[inherit] [&_[data-slot=button]]:shadow-none`,`[&_[data-slot=button]]:[--vbtn-fg:var(--status-banner-action-color)]`,`[&_[data-slot=button]]:hover:!bg-transparent [&_[data-slot=button]]:hover:!opacity-100`,`[&_[data-slot=button]]:hover:[--vbtn-fg:var(--status-banner-action-color)]`,`[&_[data-slot=button]]:focus-visible:ring-2 [&_[data-slot=button]]:focus-visible:ring-[var(--ring)] [&_[data-slot=button]]:focus-visible:ring-offset-0`),children:i}):null]})}var Z={initializing:`Assistant is initializing`,migrating:`Assistant is migrating`,provisioning:`Assistant is provisioning`,active:`Assistant is healthy`,sleeping:`Assistant is sleeping`,waking:`Assistant is waking`,restarting:`Assistant is restarting`,restoring_backup:`Assistant is restoring a backup`,upgrading_assistant_version:`Assistant is upgrading`,resizing_machine:`Assistant machine is resizing`,resizing_storage:`Assistant storage is resizing`,maintenance_mode:`Assistant is in maintenance mode`,crash_loop:`Assistant fatal error`,unreachable:`Assistant is unreachable`,not_found:`Assistant was not found`,retiring:`Assistant is retiring`},we={initializing:`Assistant failed to initialize`,migrating:`Assistant migration failed`,provisioning:`Assistant failed to provision`,waking:`Assistant failed to wake`,restarting:`Assistant restart failed`,restoring_backup:`Backup restore failed`,upgrading_assistant_version:`Assistant upgrade failed`,resizing_machine:`Machine resize failed`,resizing_storage:`Storage resize failed`,retiring:`Assistant failed to retire`};function Te(){return{tone:`warning`,title:Z.maintenance_mode,icon:(0,J.jsx)(y,{className:`h-4 w-4`,"aria-hidden":`true`})}}function Q(){return(0,J.jsx)(h,{className:`h-4 w-4 animate-spin`,"aria-hidden":`true`})}function Ee(){return(0,J.jsx)(`span`,{className:`busy-indicator inline-block size-2 rounded-full bg-current`,"aria-hidden":`true`})}function De(e,n){if(!(!e&&!n))return(0,J.jsxs)(J.Fragment,{children:[e?Ae():null,e&&n?(0,J.jsx)(`span`,{"aria-hidden":`true`,className:`h-3 w-px bg-[color-mix(in_srgb,var(--status-banner-action-color)_35%,transparent)]`}):null,n?(0,J.jsx)(a,{variant:`ghost`,size:`compact`,onClick:n,children:t(`statusBanner.dismiss`)}):null]})}function Oe(e,t,n){if(!e||N(e))return null;if(e.detail_state===`failed`){let r=we[e.state];if(r)return{tone:`error`,title:r,children:e.detail?.message??void 0,actions:De(t,n)}}switch(e.state){case`crash_loop`:case`unreachable`:case`not_found`:return{tone:`error`,title:Z[e.state],actions:t?Ae():void 0};case`sleeping`:return{tone:`neutral`,title:Z[e.state],icon:(0,J.jsx)(g,{className:`h-4 w-4`,"aria-hidden":`true`})};case`maintenance_mode`:return Te();case`upgrading_assistant_version`:case`resizing_machine`:case`resizing_storage`:case`initializing`:case`migrating`:case`provisioning`:return{tone:`info`,title:Z[e.state],icon:Q()};case`waking`:return{tone:`info`,title:Z[e.state],icon:Ee()};case`restarting`:case`restoring_backup`:case`retiring`:return{tone:`warning`,title:Z[e.state],icon:Q()};default:return{tone:`warning`,title:Z[e.state],icon:Q()}}}function ke(e,t,n,r){if(t&&(e===`sleeping`||e===`unreachable`))return{tone:`neutral`,title:`Your assistant can't be reached`,icon:(0,J.jsx)(te,{className:`h-4 w-4`,"aria-hidden":`true`}),children:`The connection to the paired assistant's host is down. Check the host machine and its tunnel.`};switch(e){case`sleeping`:return{tone:r?`error`:`neutral`,title:`Your assistant is asleep`,children:r,icon:(0,J.jsx)(g,{className:`h-4 w-4`,"aria-hidden":`true`}),actions:n};case`starting`:return{tone:`info`,title:`Your assistant is waking up`,icon:Ee()};case`upgrading`:return{tone:`warning`,title:`Assistant is upgrading`,icon:(0,J.jsx)(h,{className:`h-4 w-4 animate-spin`,"aria-hidden":`true`})};case`migrating`:return{tone:`info`,title:`Assistant is migrating`,icon:(0,J.jsx)(h,{className:`h-4 w-4 animate-spin`,"aria-hidden":`true`})};case`crashed`:return{tone:`error`,title:`Your assistant crashed`,children:r,actions:n};case`unreachable`:return{tone:r?`error`:`neutral`,title:`Your assistant is asleep`,icon:(0,J.jsx)(g,{className:`h-4 w-4`,"aria-hidden":`true`}),children:r,actions:n};case`unhealthy`:return{tone:`warning`,title:`Assistant is unhealthy`};default:return null}}function Ae(){return(0,J.jsx)(a,{asChild:!0,variant:`outlined`,size:`compact`,children:(0,J.jsx)(s,{to:`${M.settings.debug}?tab=doctor`,children:t(`statusBanner.goToDoctor`)})})}function $(e){return e===`sleeping`||e===`crashed`||e===`unreachable`}function je({banner:e,className:t,placement:n}){return(0,J.jsx)(`div`,{className:L(n===`electron`?`px-4 pt-2`:`px-0 pt-0`,t),children:(0,J.jsx)(X,{tone:e.tone,title:e.title,icon:e.icon,actions:e.actions,placement:n,children:e.children})})}function Me(){let e=C(),r=ce(),{connectivityState:i,retryConnectivity:o}=ve(),s=ye(),c=w.use.activeAssistantId(),l=w.use.selectedAssistantId(),u=w.use.assistants(),d=D.use.currentOrganizationId(),f=ae.use.assistantState(),p=ae.use.operationalStatusAssistantId(),ee=(0,H.useMemo)(()=>{let e=T(u,d).filter(e=>e.isPlatformHosted===!0&&e.isLocal===!1);return e.find(e=>e.id===l)?.id??e[0]?.id??null},[u,d,l]),m=p??c??ee,_=(0,H.useMemo)(()=>u.some(e=>e.id===c&&e.isPaired===!0),[u,c]),v=f.kind===`active`&&!f.isLocal&&!!c&&m===c,y=ue(m),b=oe(),{data:x,isError:ie,refetch:O}=y,[k,A]=(0,H.useState)(!1);(0,H.useEffect)(()=>{x?.state===`sleeping`?A(!0):(x?.state===`active`||x?.state===`crash_loop`||x?.state===`not_found`)&&A(!1)},[x?.state]),(0,H.useEffect)(()=>{if(!k||x?.state!==`unreachable`)return;let e=setTimeout(()=>{A(!1)},6e4);return()=>clearTimeout(e)},[k,x?.state]);let[j,M]=(0,H.useState)(!1);(0,H.useEffect)(()=>{x?.state===`active`?M(!0):(x?.state===`sleeping`||x?.state===`crash_loop`||x?.state===`not_found`)&&M(!1)},[x?.state]),(0,H.useEffect)(()=>{if(!j||x?.state!==`unreachable`)return;let e=setTimeout(()=>{M(!1)},15e3);return()=>clearTimeout(e)},[j,x?.state]);let le=xe(),[P,F]=(0,H.useState)(null);(0,H.useEffect)(()=>{m&&(x?.state===`restarting`?F(x.detail_state===`failed`?null:m):(x?.state===`active`||x?.state===`sleeping`||x?.state===`not_found`)&&F(null))},[m,x?.state,x?.detail_state]);let I=P!==null&&P===m;(0,H.useEffect)(()=>{if(!I||x?.state!==`crash_loop`)return;let e=setTimeout(()=>{F(null)},6e4);return()=>clearTimeout(e)},[I,x?.state]);let[de,L]=(0,H.useState)(null),fe=(0,H.useRef)(x?.state);(0,H.useEffect)(()=>{let e=fe.current;fe.current=x?.state,x?.state!==e&&L(null)},[x?.state]);let pe=(0,H.useCallback)(()=>{x?.state&&L(x.state)},[x?.state]),[R,z]=(0,H.useState)(!1),[B,me]=(0,H.useState)(null),[V,U]=(0,H.useState)(!1),[W,G]=(0,H.useState)(!1),[ge,K]=(0,H.useState)(null);(0,H.useEffect)(()=>{if(!W)return;let e=setTimeout(()=>{G(!1)},Se);return()=>clearTimeout(e)},[W]),(0,H.useEffect)(()=>{(b===`healthy`||b===`unhealthy`||b===`sleeping`)&&G(!1)},[b]),(0,H.useEffect)(()=>{G(!1)},[c]);let _e=(0,H.useCallback)(async()=>{if(!(!m||R)){z(!0),me(null);try{let{response:e}=await se({path:{assistant_id:m},throwOnError:!1});if(!e?.ok)throw Error(`Exit maintenance mode returned non-ok response`);await Promise.allSettled([O(),E.checkAssistant()])}catch(e){n(e,{context:`exit_maintenance_mode_status_banner`}),me(`Failed to exit maintenance mode. Please try again.`)}finally{z(!1)}}},[m,R,O]),q=(0,H.useCallback)(async()=>{if(!(!c||V)){U(!0),G(!0),K(null);try{let e=await S(c);if(!e.ok){G(!1),K(e.error||`Wake failed. Try running vellum wake in your terminal.`);return}await Promise.allSettled([O(),o(),E.checkAssistant()]),E.triggerReachabilityProbe()}catch(e){G(!1),n(e,{context:`wake_local_assistant_status_banner`}),K(`Wake failed. Try running vellum wake in your terminal.`)}finally{U(!1)}}},[c,V,O,o]);if((0,H.useEffect)(()=>{$(b)||K(null)},[b]),e&&i===`device-offline`||!e&&r&&!s)return{tone:`error`,title:`You're offline`,icon:(0,J.jsx)(he,{className:`h-4 w-4`,"aria-hidden":`true`})};if(!_&&!ne()&&$(b))return{tone:`neutral`,title:`Your assistant runs locally`,icon:(0,J.jsx)(g,{className:`h-4 w-4`,"aria-hidden":`true`}),children:`Open the Vellum desktop app or run vellum wake in your terminal to start it.`};let be=(V||W)&&!_&&$(b)?`starting`:b,Y=ke(be,_,!_&&$(be)&&c&&re(c)?(0,J.jsx)(a,{variant:`outlined`,size:`compact`,leftIcon:V?(0,J.jsx)(h,{className:`animate-spin`,"aria-hidden":`true`}):void 0,disabled:!c||V,onClick:()=>{q()},children:t(`statusBanner.wakeUp`)}):void 0,ge);if(Y)return Y;let Ce=f.kind===`active`&&f.isLocal;if(e&&Ce&&i===`backend-unreachable`)return{tone:`error`,title:`Trying to reach Vellum…`,icon:(0,J.jsx)(te,{className:`h-4 w-4`,"aria-hidden":`true`}),actions:(0,J.jsx)(a,{variant:`outlined`,size:`compact`,onClick:o,children:t(`statusBanner.retryNow`)})};let X=f.kind===`active`&&f.maintenanceMode?.enabled===!0&&(!x||N(x));if(ie&&!X&&!le)return{tone:`error`,title:`Assistant status is unavailable`,actions:v?Ae():void 0};let Z=x?.state===`unreachable`&&(k||le)?{...x,state:`waking`}:x?.state===`unreachable`&&j?{...x,state:`sleeping`}:x?.state===`crash_loop`&&I?{...x,state:`restarting`}:x,we=Z?.detail_state===`failed`&&Z.state===de,Q=X?Te():we?null:Oe(Z,v,pe);return!(x?.state===`maintenance_mode`||X)||!Q?Q:{...Q,tone:B?`error`:Q.tone,children:B,actions:m?(0,J.jsx)(a,{variant:`outlined`,size:`compact`,leftIcon:R?(0,J.jsx)(h,{className:`animate-spin`,"aria-hidden":`true`}):void 0,disabled:R,onClick:()=>{_e()},children:t(`statusBanner.resumeAssistant`)}):void 0}}function Ne({className:e,placement:t=C()?`electron`:`web`}){let n=Me();return n?(0,J.jsx)(je,{banner:n,className:e,placement:t}):null}var Pe=3e3;function Fe({assistantId:e,currentVersion:t,placement:n=`web`,className:i}){let{t:o}=r(),[s,c]=(0,H.useState)(!1),[u,d]=(0,H.useState)(null),f=ae(e=>e.assistantState),p=oe(),ee=w.use.activeAssistantId(),te=ie.use.version(),m=le.use.previewChannel(),h=e??ee,g=t??te,v=w(e=>h?e.assistants.find(e=>e.id===h):null),y=v?.cloud===`local`,S=v?.isPlatformHosted===!0&&v?.isLocal===!1,re=v?.runtimeVersion??g??null,C=v?.currentReleaseVersion??g??null,T=y?`local`:S?`platform`:null,{data:E}=ue(S?h??null:null),D=T===`local`?re:T===`platform`?C:null,O=y&&v?.isActiveLockfileAssistant===!0,se=f.kind===`self_hosted`?!f.health||f.health===`healthy`:f.kind===`active`&&f.isLocal?f.reachable!==!1&&(!f.health||f.health===`healthy`):!1,ce=!p||p===`healthy`,A=f.kind===`active`&&!f.isLocal&&f.reachable!==!1&&!f.maintenanceMode?.enabled&&(!f.health||f.health===`healthy`)&&(!E||E.state===`active`),j=!!h&&!!D&&!!v?.isLocal&&O&&se&&ce&&ne()||!!h&&!!D&&S&&A,M=pe(v?.releaseChannel,m),{data:N,refetch:P}=l({...de({query:T===`platform`?{channel:M}:{stable:!0,limit:100}}),enabled:j,refetchInterval:V,refetchOnReconnect:!0,refetchOnWindowFocus:!0});(0,H.useEffect)(()=>{if(!j)return;let e=()=>{P()},t=[k(`app.resume`,e),k(`power.resume`,e),k(`power.unlock`,e)];return()=>{for(let e of t)e()}},[P,j]);let F=(0,H.useMemo)(()=>T===`platform`?N?.find(e=>e.is_stable!==!1)??N?.[0]:B(N),[T,N])?.version??null,I=h&&F?`${h}:${F}`:null,he=fe(D,F),U=me({assistantId:h,targetVersion:F??void 0}),W=Ie({assistantId:h,targetVersion:F??void 0,shouldStopPolling:E?.detail_state===`failed`}),G=T===`platform`?W.isPending:U.isPending;return(0,H.useEffect)(()=>{if(!h||!F){d(null);return}d(z(h,F)?`${h}:${F}`:null)},[h,F]),!j||!F||!he||I!==null&&I===u||G?null:(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`div`,{className:L(n===`electron`?`px-4 pt-2`:`px-0 pt-0`,i),children:(0,J.jsx)(X,{tone:`info`,title:o(`runtimeUpgradeBanner.title`,{version:F}),placement:n,icon:(0,J.jsx)(_,{"aria-hidden":`true`}),actions:(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(a,{variant:`ghost`,size:`compact`,onClick:()=>c(!0),children:o(`runtimeUpgradeBanner.update`)}),(0,J.jsx)(`span`,{"aria-hidden":`true`,className:`h-3 w-px bg-[color-mix(in_srgb,var(--status-banner-action-color)_35%,transparent)]`}),(0,J.jsx)(a,{variant:`ghost`,size:`compact`,onClick:()=>{!h||!F||(R(h,F),d(`${h}:${F}`))},children:o(`runtimeUpgradeBanner.later`)})]})})}),(0,J.jsx)(x,{open:s,title:o(`runtimeUpgradeBanner.confirmTitle`),message:o(`runtimeUpgradeBanner.confirmMessage`,{version:F}),confirmLabel:o(`runtimeUpgradeBanner.update`),onConfirm:async()=>{if(!(!h||!F||!T)){c(!1);try{if(T===`platform`){let e=await W.upgrade();if(e.detail?.includes(`Already on the latest`)){b.warning(e.detail);return}}else await U.upgrade(),b.success(o(`runtimeUpgradeBanner.toastComplete`),{id:`runtime-upgrade-complete`,tone:`strong`});d(`${h}:${F}`)}catch(e){b.error(e instanceof Error?e.message:o(`runtimeUpgradeBanner.toastFailed`))}}},onCancel:()=>c(!1)})]})}function Ie({assistantId:e,targetVersion:n,shouldStopPolling:r=!1}){let i=c(),[a,o]=(0,H.useState)(!1),s=(0,H.useRef)(null),d=u({mutationFn:async()=>{if(!e)throw Error(`No assistant is active.`);let{data:t}=await O({path:{id:e},body:n?{version:n}:{},throwOnError:!0});return t}});return(0,H.useEffect)(()=>{!a||!r||(s.current=null,o(!1))},[a,r]),l({...F({path:{id:e??``}}),enabled:a&&!!e,refetchInterval:e=>{let n=e.state.data?.current_release_version;return n&&s.current&&n===s.current?(queueMicrotask(()=>{e.state.data&&w.getState().upsertFromApi(e.state.data),s.current=null,o(!1),b.success(t(`common:runtimeUpgradeBanner.toastComplete`),{id:`runtime-upgrade-complete`,tone:`strong`})}),!1):Pe}}),{isPending:d.isPending||a,upgrade:async()=>{if(!e)throw Error(`No assistant is active.`);let t=await d.mutateAsync();return t.detail?.includes(`Already on the latest`)||(s.current=t.version??n??null,s.current&&o(!0),i.invalidateQueries({queryKey:I({path:{id:e}})})),t}}}export{U as a,W as i,Ne as n,he as o,xe as r,Fe as t};
|
|
2
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{k as t,l as n,v as r}from"./i18n-BDfnKs41.js";import{t as i}from"./react-DJZBPgpf.js";import{t as a}from"./button-B1kEAcLt.js";import{t as o}from"./preload-helper-BewR0kVT.js";import{t as s}from"./chunk-5KNZJZUH-CPFsMQoz.js";import{n as c}from"./QueryClientProvider-BPZM68-A.js";import{t as l}from"./useQuery-BtL9k7Sh.js";import{t as u}from"./useMutation-Cl7cazkm.js";import{t as d}from"./jsx-runtime-COOF1INC.js";import{t as f}from"./createLucideIcon-CMfEC_aW.js";import{t as p}from"./circle-alert-BaeJJrSp.js";import{t as ee}from"./circle-check-CnoFVsRZ.js";import{t as te}from"./cloud-off-B8SagsfP.js";import{t as m}from"./info-C-HjpKAE.js";import{t as h}from"./loader-circle-DZ65N8bz.js";import{t as g}from"./moon-MfogEw5q.js";import{t as _}from"./refresh-cw-BDh1a2sj.js";import{t as v}from"./triangle-alert-B6J57Xfo.js";import{t as y}from"./wrench-ajjC5omI.js";import{n as b}from"./toast-BKrDuNtu.js";import{t as x}from"./confirm-dialog-EPYSBP_B.js";import{H as ne,Y as S,g as re}from"./local-mode-BQ8gp0wB.js";import{t as ie}from"./assistant-identity-store-DBkGjqzV.js";import{t as C}from"./is-electron-D45bjFI8.js";import{r as w,t as T}from"./resolved-assistants-store-DEtotxhR.js";import{ht as ae,lt as oe,rt as E,tt as D}from"./auth-store-CjmqULlA.js";import{Q as O,k as se}from"./sdk.gen-CrcsMCNX.js";import{n as k}from"./event-bus-CN0zipw2.js";import{m as ce}from"./native-biometric-ntyxdDLY.js";import{i as A,t as j}from"./dist-Cr8OiiXj.js";import{f as M}from"./routes-C6ueuiMd.js";import{t as le}from"./client-feature-flag-store-BmjgGl9P.js";import{r as ue,t as N}from"./operational-status-DpG5GDPe.js";import{t as P}from"./use-bus-subscription-DfxTm1-Q.js";import{O as F,k as I,wt as de}from"./react-query.gen-C5widOeH.js";import{t as L}from"./misc-dA4Wklt2.js";import{a as fe,i as pe,n as R,o as z,r as B,s as me,t as V}from"./local-runtime-upgrade-8SxM3rIp.js";var he=f(`wifi-off`,[[`path`,{d:`M12 20h.01`,key:`zekei9`}],[`path`,{d:`M8.5 16.429a5 5 0 0 1 7 0`,key:`1bycff`}],[`path`,{d:`M5 12.859a10 10 0 0 1 5.17-2.69`,key:`1dl1wf`}],[`path`,{d:`M19 12.859a10 10 0 0 0-2.007-1.523`,key:`4k23kn`}],[`path`,{d:`M2 8.82a15 15 0 0 1 4.177-2.643`,key:`1grhjp`}],[`path`,{d:`M22 8.82a15 15 0 0 0-11.288-3.764`,key:`z3jwby`}],[`path`,{d:`m2 2 20 20`,key:`1ooewy`}]]),H=e(i(),1);function U(e){return C()?window.vellum?.connectivity?.onState(e)??(()=>void 0):()=>void 0}function W(e){C()&&window.vellum?.connectivity?.setDevice(e)}async function G(e){if(!C())return null;try{return await e()??null}catch{return null}}function ge(){return G(()=>window.vellum?.connectivity?.get())}function K(){return G(()=>window.vellum?.connectivity?.retry())}var _e=2e3;function ve(){let[e,t]=(0,H.useState)(`online`),n=(0,H.useRef)(null),r=(0,H.useCallback)(()=>{n.current&&=(clearTimeout(n.current),null)},[]),i=(0,H.useCallback)(e=>{e&&(r(),t(e))},[r]),a=(0,H.useCallback)(()=>{ge().then(i)},[i]);return P(`app.resume`,a),(0,H.useEffect)(()=>{let e=U(e=>{if(e===`online`){if(n.current)return;n.current=setTimeout(()=>{n.current=null,t(`online`)},_e)}else r(),t(e)});return window.addEventListener(`focus`,a),()=>{e(),window.removeEventListener(`focus`,a),r()}},[a,r]),{connectivityState:e,retryConnectivity:(0,H.useCallback)(()=>{K().then(i)},[i])}}var q=A(`Network`,{web:()=>o(()=>import(`./web-Br6VELOy.js`).then(e=>new e.NetworkWeb),__vite__mapDeps([0,1]))});function ye(){let[e,t]=(0,H.useState)(!0);return(0,H.useEffect)(()=>{if(!j.isNativePlatform())return;let e=!1;q.getStatus().then(n=>{e||t(n.connected)}).catch(()=>{});let n=q.addListener(`networkStatusChange`,n=>{e||t(n.connected)});return()=>{e=!0,n.then(e=>e.remove()).catch(()=>{})}},[]),e}var be=15e3;function xe(){let[e,t]=(0,H.useState)(null);return P(`app.resume`,()=>{t(Date.now()+be)}),(0,H.useEffect)(()=>{if(e===null)return;let n=e-Date.now();if(n<=0){t(null);return}let r=setTimeout(()=>{t(null)},n);return()=>clearTimeout(r)},[e]),e!==null}var J=d(),Se=6e4,Y={info:{container:`bg-[var(--system-info-weak)]`,content:`text-[color:var(--system-info-strong)]`,icon:`text-[color:var(--system-info-strong)]`,action:`[--status-banner-action-color:var(--system-info-strong)]`,DefaultIcon:m},success:{container:`bg-[var(--system-positive-weak)]`,content:`text-[color:var(--system-positive-strong)]`,icon:`text-[color:var(--system-positive-strong)]`,action:`[--status-banner-action-color:var(--system-positive-strong)]`,DefaultIcon:ee},warning:{container:`bg-[var(--system-mid-weak)]`,content:`text-[color:var(--system-mid-strong)]`,icon:`text-[color:var(--system-mid-strong)]`,action:`[--status-banner-action-color:var(--system-mid-strong)]`,DefaultIcon:p},error:{container:`bg-[var(--system-negative-weak)]`,content:`text-[color:var(--system-negative-strong)]`,icon:`text-[color:var(--system-negative-strong)]`,action:`[--status-banner-action-color:var(--system-negative-strong)]`,DefaultIcon:v},neutral:{container:`bg-[var(--surface-active)]`,content:`text-[color:var(--content-secondary)]`,icon:`text-[color:var(--content-secondary)]`,action:`[--status-banner-action-color:var(--content-secondary)]`,DefaultIcon:null}},Ce={web:`min-h-10 rounded-none px-4 py-[10px]`,electron:`min-h-8 rounded-[6px] px-2 py-[7px]`};function X({tone:e,title:t,children:n,icon:r,actions:i,placement:a=`web`,className:o,ref:s,...c}){let l=Y[e],u=e===`error`?`alert`:`status`,d=a===`web`?`text-body-medium-default leading-5`:`text-body-small-default leading-[18px]`,f=r===void 0?l.DefaultIcon?(0,J.jsx)(l.DefaultIcon,{"aria-hidden":`true`}):null:r;return(0,J.jsxs)(`div`,{...c,ref:s,role:u,"data-slot":`status-banner-notice`,"data-placement":a,"data-tone":e,className:L(`flex w-full shrink-0 items-center justify-between gap-3 overflow-hidden`,`text-[color:var(--content-default)]`,Ce[a],l.container,o),children:[(0,J.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-center gap-2`,children:[f?(0,J.jsx)(`span`,{className:L(`flex size-3.5 shrink-0 items-center justify-center [&_svg]:size-3.5`,l.icon),children:f}):null,(0,J.jsxs)(`div`,{className:`min-w-0`,children:[(0,J.jsx)(`div`,{className:L(`truncate`,l.content,d),children:t}),n?(0,J.jsx)(`div`,{className:`text-body-small-default leading-4 text-[color:var(--content-secondary)]`,children:n}):null]})]}),i?(0,J.jsx)(`div`,{className:L(`flex shrink-0 items-center border-l border-[color-mix(in_srgb,var(--status-banner-action-color)_22%,transparent)] text-label-medium-default`,`text-[color:var(--status-banner-action-color)]`,l.action,a===`web`?`gap-2 pl-4 leading-5`:`gap-1.5 pl-2 leading-[18px]`,`[&_[data-slot=button]]:h-auto [&_[data-slot=button]]:border-0 [&_[data-slot=button]]:bg-transparent`,`[&_[data-slot=button]]:-mx-1 [&_[data-slot=button]]:rounded-sm [&_[data-slot=button]]:px-1 [&_[data-slot=button]]:py-0`,`[&_[data-slot=button]]:text-body-small-default`,`[&_[data-slot=button]]:leading-[inherit] [&_[data-slot=button]]:shadow-none`,`[&_[data-slot=button]]:[--vbtn-fg:var(--status-banner-action-color)]`,`[&_[data-slot=button]]:hover:!bg-transparent [&_[data-slot=button]]:hover:!opacity-100`,`[&_[data-slot=button]]:hover:[--vbtn-fg:var(--status-banner-action-color)]`,`[&_[data-slot=button]]:focus-visible:ring-2 [&_[data-slot=button]]:focus-visible:ring-[var(--ring)] [&_[data-slot=button]]:focus-visible:ring-offset-0`),children:i}):null]})}var Z={initializing:`Assistant is initializing`,migrating:`Assistant is migrating`,provisioning:`Assistant is provisioning`,active:`Assistant is healthy`,sleeping:`Assistant is sleeping`,waking:`Assistant is waking`,restarting:`Assistant is restarting`,restoring_backup:`Assistant is restoring a backup`,upgrading_assistant_version:`Assistant is upgrading`,resizing_machine:`Assistant machine is resizing`,resizing_storage:`Assistant storage is resizing`,maintenance_mode:`Assistant is in maintenance mode`,crash_loop:`Assistant fatal error`,unreachable:`Assistant is unreachable`,not_found:`Assistant was not found`,retiring:`Assistant is retiring`},we={initializing:`Assistant failed to initialize`,migrating:`Assistant migration failed`,provisioning:`Assistant failed to provision`,waking:`Assistant failed to wake`,restarting:`Assistant restart failed`,restoring_backup:`Backup restore failed`,upgrading_assistant_version:`Assistant upgrade failed`,resizing_machine:`Machine resize failed`,resizing_storage:`Storage resize failed`,retiring:`Assistant failed to retire`};function Te(){return{tone:`warning`,title:Z.maintenance_mode,icon:(0,J.jsx)(y,{className:`h-4 w-4`,"aria-hidden":`true`})}}function Q(){return(0,J.jsx)(h,{className:`h-4 w-4 animate-spin`,"aria-hidden":`true`})}function Ee(){return(0,J.jsx)(`span`,{className:`busy-indicator inline-block size-2 rounded-full bg-current`,"aria-hidden":`true`})}function De(e,n){if(!(!e&&!n))return(0,J.jsxs)(J.Fragment,{children:[e?Ae():null,e&&n?(0,J.jsx)(`span`,{"aria-hidden":`true`,className:`h-3 w-px bg-[color-mix(in_srgb,var(--status-banner-action-color)_35%,transparent)]`}):null,n?(0,J.jsx)(a,{variant:`ghost`,size:`compact`,onClick:n,children:t(`statusBanner.dismiss`)}):null]})}function Oe(e,t,n){if(!e||N(e))return null;if(e.detail_state===`failed`){let r=we[e.state];if(r)return{tone:`error`,title:r,children:e.detail?.message??void 0,actions:De(t,n)}}switch(e.state){case`crash_loop`:case`unreachable`:case`not_found`:return{tone:`error`,title:Z[e.state],actions:t?Ae():void 0};case`sleeping`:return{tone:`neutral`,title:Z[e.state],icon:(0,J.jsx)(g,{className:`h-4 w-4`,"aria-hidden":`true`})};case`maintenance_mode`:return Te();case`upgrading_assistant_version`:case`resizing_machine`:case`resizing_storage`:case`initializing`:case`migrating`:case`provisioning`:return{tone:`info`,title:Z[e.state],icon:Q()};case`waking`:return{tone:`info`,title:Z[e.state],icon:Ee()};case`restarting`:case`restoring_backup`:case`retiring`:return{tone:`warning`,title:Z[e.state],icon:Q()};default:return{tone:`warning`,title:Z[e.state],icon:Q()}}}function ke(e,t,n,r){if(t&&(e===`sleeping`||e===`unreachable`))return{tone:`neutral`,title:`Your assistant can't be reached`,icon:(0,J.jsx)(te,{className:`h-4 w-4`,"aria-hidden":`true`}),children:`The connection to the paired assistant's host is down. Check the host machine and its tunnel.`};switch(e){case`sleeping`:return{tone:r?`error`:`neutral`,title:`Your assistant is asleep`,children:r,icon:(0,J.jsx)(g,{className:`h-4 w-4`,"aria-hidden":`true`}),actions:n};case`starting`:return{tone:`info`,title:`Your assistant is waking up`,icon:Ee()};case`upgrading`:return{tone:`warning`,title:`Assistant is upgrading`,icon:(0,J.jsx)(h,{className:`h-4 w-4 animate-spin`,"aria-hidden":`true`})};case`migrating`:return{tone:`info`,title:`Assistant is migrating`,icon:(0,J.jsx)(h,{className:`h-4 w-4 animate-spin`,"aria-hidden":`true`})};case`crashed`:return{tone:`error`,title:`Your assistant crashed`,children:r,actions:n};case`unreachable`:return{tone:r?`error`:`neutral`,title:`Your assistant is asleep`,icon:(0,J.jsx)(g,{className:`h-4 w-4`,"aria-hidden":`true`}),children:r,actions:n};case`unhealthy`:return{tone:`warning`,title:`Assistant is unhealthy`};default:return null}}function Ae(){return(0,J.jsx)(a,{asChild:!0,variant:`outlined`,size:`compact`,children:(0,J.jsx)(s,{to:`${M.settings.debug}?tab=doctor`,children:t(`statusBanner.goToDoctor`)})})}function $(e){return e===`sleeping`||e===`crashed`||e===`unreachable`}function je({banner:e,className:t,placement:n}){return(0,J.jsx)(`div`,{className:L(n===`electron`?`px-4 pt-2`:`px-0 pt-0`,t),children:(0,J.jsx)(X,{tone:e.tone,title:e.title,icon:e.icon,actions:e.actions,placement:n,children:e.children})})}function Me(){let e=C(),r=ce(),{connectivityState:i,retryConnectivity:o}=ve(),s=ye(),c=w.use.activeAssistantId(),l=w.use.selectedAssistantId(),u=w.use.assistants(),d=D.use.currentOrganizationId(),f=ae.use.assistantState(),p=ae.use.operationalStatusAssistantId(),ee=(0,H.useMemo)(()=>{let e=T(u,d).filter(e=>e.isPlatformHosted===!0&&e.isLocal===!1);return e.find(e=>e.id===l)?.id??e[0]?.id??null},[u,d,l]),m=p??c??ee,_=(0,H.useMemo)(()=>u.some(e=>e.id===c&&e.isPaired===!0),[u,c]),v=f.kind===`active`&&!f.isLocal&&!!c&&m===c,y=ue(m),b=oe(),{data:x,isError:ie,refetch:O}=y,[k,A]=(0,H.useState)(!1);(0,H.useEffect)(()=>{x?.state===`sleeping`?A(!0):(x?.state===`active`||x?.state===`crash_loop`||x?.state===`not_found`)&&A(!1)},[x?.state]),(0,H.useEffect)(()=>{if(!k||x?.state!==`unreachable`)return;let e=setTimeout(()=>{A(!1)},6e4);return()=>clearTimeout(e)},[k,x?.state]);let[j,M]=(0,H.useState)(!1);(0,H.useEffect)(()=>{x?.state===`active`?M(!0):(x?.state===`sleeping`||x?.state===`crash_loop`||x?.state===`not_found`)&&M(!1)},[x?.state]),(0,H.useEffect)(()=>{if(!j||x?.state!==`unreachable`)return;let e=setTimeout(()=>{M(!1)},15e3);return()=>clearTimeout(e)},[j,x?.state]);let le=xe(),[P,F]=(0,H.useState)(null);(0,H.useEffect)(()=>{m&&(x?.state===`restarting`?F(x.detail_state===`failed`?null:m):(x?.state===`active`||x?.state===`sleeping`||x?.state===`not_found`)&&F(null))},[m,x?.state,x?.detail_state]);let I=P!==null&&P===m;(0,H.useEffect)(()=>{if(!I||x?.state!==`crash_loop`)return;let e=setTimeout(()=>{F(null)},6e4);return()=>clearTimeout(e)},[I,x?.state]);let[de,L]=(0,H.useState)(null),fe=(0,H.useRef)(x?.state);(0,H.useEffect)(()=>{let e=fe.current;fe.current=x?.state,x?.state!==e&&L(null)},[x?.state]);let pe=(0,H.useCallback)(()=>{x?.state&&L(x.state)},[x?.state]),[R,z]=(0,H.useState)(!1),[B,me]=(0,H.useState)(null),[V,U]=(0,H.useState)(!1),[W,G]=(0,H.useState)(!1),[ge,K]=(0,H.useState)(null);(0,H.useEffect)(()=>{if(!W)return;let e=setTimeout(()=>{G(!1)},Se);return()=>clearTimeout(e)},[W]),(0,H.useEffect)(()=>{(b===`healthy`||b===`unhealthy`||b===`sleeping`)&&G(!1)},[b]),(0,H.useEffect)(()=>{G(!1)},[c]);let _e=(0,H.useCallback)(async()=>{if(!(!m||R)){z(!0),me(null);try{let{response:e}=await se({path:{assistant_id:m},throwOnError:!1});if(!e?.ok)throw Error(`Exit maintenance mode returned non-ok response`);await Promise.allSettled([O(),E.checkAssistant()])}catch(e){n(e,{context:`exit_maintenance_mode_status_banner`}),me(`Failed to exit maintenance mode. Please try again.`)}finally{z(!1)}}},[m,R,O]),q=(0,H.useCallback)(async()=>{if(!(!c||V)){U(!0),G(!0),K(null);try{let e=await S(c);if(!e.ok){G(!1),K(e.error||`Wake failed. Try running vellum wake in your terminal.`);return}await Promise.allSettled([O(),o(),E.checkAssistant()]),E.triggerReachabilityProbe()}catch(e){G(!1),n(e,{context:`wake_local_assistant_status_banner`}),K(`Wake failed. Try running vellum wake in your terminal.`)}finally{U(!1)}}},[c,V,O,o]);if((0,H.useEffect)(()=>{$(b)||K(null)},[b]),e&&i===`device-offline`||!e&&r&&!s)return{tone:`error`,title:`You're offline`,icon:(0,J.jsx)(he,{className:`h-4 w-4`,"aria-hidden":`true`})};if(!_&&!ne()&&$(b))return{tone:`neutral`,title:`Your assistant runs locally`,icon:(0,J.jsx)(g,{className:`h-4 w-4`,"aria-hidden":`true`}),children:`Open the Vellum desktop app or run vellum wake in your terminal to start it.`};let be=(V||W)&&!_&&$(b)?`starting`:b,Y=ke(be,_,!_&&$(be)&&c&&re(c)?(0,J.jsx)(a,{variant:`outlined`,size:`compact`,leftIcon:V?(0,J.jsx)(h,{className:`animate-spin`,"aria-hidden":`true`}):void 0,disabled:!c||V,onClick:()=>{q()},children:t(`statusBanner.wakeUp`)}):void 0,ge);if(Y)return Y;let Ce=f.kind===`active`&&f.isLocal;if(e&&Ce&&i===`backend-unreachable`)return{tone:`error`,title:`Trying to reach Vellum…`,icon:(0,J.jsx)(te,{className:`h-4 w-4`,"aria-hidden":`true`}),actions:(0,J.jsx)(a,{variant:`outlined`,size:`compact`,onClick:o,children:t(`statusBanner.retryNow`)})};let X=f.kind===`active`&&f.maintenanceMode?.enabled===!0&&(!x||N(x));if(ie&&!X&&!le)return{tone:`error`,title:`Assistant status is unavailable`,actions:v?Ae():void 0};let Z=x?.state===`unreachable`&&(k||le)?{...x,state:`waking`}:x?.state===`unreachable`&&j?{...x,state:`sleeping`}:x?.state===`crash_loop`&&I?{...x,state:`restarting`}:x,we=Z?.detail_state===`failed`&&Z.state===de,Q=X?Te():we?null:Oe(Z,v,pe);return!(x?.state===`maintenance_mode`||X)||!Q?Q:{...Q,tone:B?`error`:Q.tone,children:B,actions:m?(0,J.jsx)(a,{variant:`outlined`,size:`compact`,leftIcon:R?(0,J.jsx)(h,{className:`animate-spin`,"aria-hidden":`true`}):void 0,disabled:R,onClick:()=>{_e()},children:t(`statusBanner.resumeAssistant`)}):void 0}}function Ne({className:e,placement:t=C()?`electron`:`web`}){let n=Me();return n?(0,J.jsx)(je,{banner:n,className:e,placement:t}):null}var Pe=3e3;function Fe({assistantId:e,currentVersion:t,placement:n=`web`,className:i}){let{t:o}=r(),[s,c]=(0,H.useState)(!1),[u,d]=(0,H.useState)(null),f=ae(e=>e.assistantState),p=oe(),ee=w.use.activeAssistantId(),te=ie.use.version(),m=le.use.previewChannel(),h=e??ee,g=t??te,v=w(e=>h?e.assistants.find(e=>e.id===h):null),y=v?.cloud===`local`,S=v?.isPlatformHosted===!0&&v?.isLocal===!1,re=v?.runtimeVersion??g??null,C=v?.currentReleaseVersion??g??null,T=y?`local`:S?`platform`:null,{data:E}=ue(S?h??null:null),D=T===`local`?re:T===`platform`?C:null,O=y&&v?.isActiveLockfileAssistant===!0,se=f.kind===`self_hosted`?!f.health||f.health===`healthy`:f.kind===`active`&&f.isLocal?f.reachable!==!1&&(!f.health||f.health===`healthy`):!1,ce=!p||p===`healthy`,A=f.kind===`active`&&!f.isLocal&&f.reachable!==!1&&!f.maintenanceMode?.enabled&&(!f.health||f.health===`healthy`)&&(!E||E.state===`active`),j=!!h&&!!D&&!!v?.isLocal&&O&&se&&ce&&ne()||!!h&&!!D&&S&&A,M=pe(v?.releaseChannel,m),{data:N,refetch:P}=l({...de({query:T===`platform`?{channel:M}:{stable:!0,limit:100}}),enabled:j,refetchInterval:V,refetchOnReconnect:!0,refetchOnWindowFocus:!0});(0,H.useEffect)(()=>{if(!j)return;let e=()=>{P()},t=[k(`app.resume`,e),k(`power.resume`,e),k(`power.unlock`,e)];return()=>{for(let e of t)e()}},[P,j]);let F=(0,H.useMemo)(()=>T===`platform`?N?.find(e=>e.is_stable!==!1)??N?.[0]:B(N),[T,N])?.version??null,I=h&&F?`${h}:${F}`:null,he=fe(D,F),U=me({assistantId:h,targetVersion:F??void 0}),W=Ie({assistantId:h,targetVersion:F??void 0,shouldStopPolling:E?.detail_state===`failed`}),G=T===`platform`?W.isPending:U.isPending;return(0,H.useEffect)(()=>{if(!h||!F){d(null);return}d(z(h,F)?`${h}:${F}`:null)},[h,F]),!j||!F||!he||I!==null&&I===u||G?null:(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`div`,{className:L(n===`electron`?`px-4 pt-2`:`px-0 pt-0`,i),children:(0,J.jsx)(X,{tone:`info`,title:o(`runtimeUpgradeBanner.title`,{version:F}),placement:n,icon:(0,J.jsx)(_,{"aria-hidden":`true`}),actions:(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(a,{variant:`ghost`,size:`compact`,onClick:()=>c(!0),children:o(`runtimeUpgradeBanner.update`)}),(0,J.jsx)(`span`,{"aria-hidden":`true`,className:`h-3 w-px bg-[color-mix(in_srgb,var(--status-banner-action-color)_35%,transparent)]`}),(0,J.jsx)(a,{variant:`ghost`,size:`compact`,onClick:()=>{!h||!F||(R(h,F),d(`${h}:${F}`))},children:o(`runtimeUpgradeBanner.later`)})]})})}),(0,J.jsx)(x,{open:s,title:o(`runtimeUpgradeBanner.confirmTitle`),message:o(`runtimeUpgradeBanner.confirmMessage`,{version:F}),confirmLabel:o(`runtimeUpgradeBanner.update`),onConfirm:async()=>{if(!(!h||!F||!T)){c(!1);try{if(T===`platform`){let e=await W.upgrade();if(e.detail?.includes(`Already on the latest`)){b.warning(e.detail);return}}else await U.upgrade(),b.success(o(`runtimeUpgradeBanner.toastComplete`),{id:`runtime-upgrade-complete`,tone:`strong`});d(`${h}:${F}`)}catch(e){b.error(e instanceof Error?e.message:o(`runtimeUpgradeBanner.toastFailed`))}}},onCancel:()=>c(!1)})]})}function Ie({assistantId:e,targetVersion:n,shouldStopPolling:r=!1}){let i=c(),[a,o]=(0,H.useState)(!1),s=(0,H.useRef)(null),d=u({mutationFn:async()=>{if(!e)throw Error(`No assistant is active.`);let{data:t}=await O({path:{id:e},body:n?{version:n}:{},throwOnError:!0});return t}});return(0,H.useEffect)(()=>{!a||!r||(s.current=null,o(!1))},[a,r]),l({...F({path:{id:e??``}}),enabled:a&&!!e,refetchInterval:e=>{let n=e.state.data?.current_release_version;return n&&s.current&&n===s.current?(queueMicrotask(()=>{e.state.data&&w.getState().upsertFromApi(e.state.data),s.current=null,o(!1),b.success(t(`common:runtimeUpgradeBanner.toastComplete`),{id:`runtime-upgrade-complete`,tone:`strong`})}),!1):Pe}}),{isPending:d.isPending||a,upgrade:async()=>{if(!e)throw Error(`No assistant is active.`);let t=await d.mutateAsync();return t.detail?.includes(`Already on the latest`)||(s.current=t.version??n??null,s.current&&o(!0),i.invalidateQueries({queryKey:I({path:{id:e}})})),t}}}export{U as a,W as i,Ne as n,he as o,xe as r,Fe as t};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-DJZBPgpf.js";import{n}from"./QueryClientProvider-BPZM68-A.js";import{t as r}from"./useQuery-BtL9k7Sh.js";import{n as i}from"./toast-BKrDuNtu.js";import{n as a,r as o}from"./react-query.gen-C_GLKG7m.js";import{t as s}from"./copy-to-clipboard-
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-DJZBPgpf.js";import{n}from"./QueryClientProvider-BPZM68-A.js";import{t as r}from"./useQuery-BtL9k7Sh.js";import{n as i}from"./toast-BKrDuNtu.js";import{n as a,r as o}from"./react-query.gen-C_GLKG7m.js";import{t as s}from"./copy-to-clipboard-CIyU3zmr.js";import{t as c}from"./deploy-store-Cz20nHuj.js";var l=e(t(),1);function u(e,t,{enabled:i=!0}={}){let s=n(),u=i&&e!==``&&t!=null,d=r({...a({path:{assistant_id:e,id:t??``}}),enabled:u}),f=c.use.isDeploying(),p=(0,l.useRef)(f);return(0,l.useEffect)(()=>{let n=p.current&&!f;p.current=f,n&&u&&s.invalidateQueries({queryKey:o({path:{assistant_id:e,id:t??``}})})},[f,u,e,t,s]),{deployedUrl:d.data?.published?d.data.publicUrl??null:null,isLoading:u&&d.isPending}}function d(e){s(e,{errorMessage:`Couldn't copy the link. Open it at ${e}`,onCopied:()=>{i.success(`Link copied`,{description:e,action:{label:`Open`,onClick:()=>window.open(e,`_blank`)}})}})}var f=/^\/v1\/x\//,p=/^(https?|mailto|tel):/i;function m(e){return typeof e==`string`&&p.test(e.trim())}function h(e){return JSON.stringify(e).replace(/<\//g,`<\\/`).replace(/<!--/g,`<\\!--`)}function g(){return`<script>
|
|
2
2
|
(function() {
|
|
3
3
|
var store = {};
|
|
4
4
|
var storageShim = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{f as e,h as t,p as n}from"./i18n-
|
|
1
|
+
import{f as e,h as t,p as n}from"./i18n-BDfnKs41.js";import{lr as r}from"./sdk.gen-BluU0h_N.js";import{Dt as i}from"./react-query.gen-C_GLKG7m.js";function a(e){let t=e,n=t.description??``;return{...e,description:n,cadenceDescription:t.cadenceDescription??n}}async function o(i){let{data:o,error:s,response:c}=await r({path:{assistant_id:i},throwOnError:!1});if(n(c,s,`Failed to load schedules.`),!c.ok)throw new e(c.status,t(s,c,`Failed to load schedules.`));return(o?.schedules??[]).map(a)}function s(e){return{queryKey:i({path:{assistant_id:e??``}}),queryFn:()=>e?o(e):Promise.resolve([]),staleTime:1e4}}export{s as n,o as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{f as e,h as t,p as n}from"./i18n-
|
|
1
|
+
import{f as e,h as t,p as n}from"./i18n-BDfnKs41.js";import{ar as r,cr as i,dr as a,fr as o,ir as s,or as c,sr as l,ur as u}from"./sdk.gen-BluU0h_N.js";async function d(r,i){let{error:a,response:o}=await u({path:{assistant_id:r},body:i,throwOnError:!1});if(n(o,a,`Failed to create schedule.`),!o.ok)throw new e(o.status,t(a,o,`Failed to create schedule.`))}async function f(i,a,o){let{error:s,response:c}=await r({path:{assistant_id:i,id:a},body:o,throwOnError:!1});if(n(c,s,`Failed to update schedule.`),!c.ok)throw new e(c.status,t(s,c,`Failed to update schedule.`))}var p=`Failed to move schedules to the selected profile.`;async function m(r,i,o){let{data:s,error:c,response:l}=await a({path:{assistant_id:r},body:{...i==null?{}:{from:i},to:o},throwOnError:!1});if(n(l,c,p),!l.ok)throw new e(l.status,t(c,l,p));return s?.reassigned??0}async function h(r,i,a=10,o){let{data:s,error:c,response:u}=await l({path:{assistant_id:r,id:i},query:{limit:a,before:o},throwOnError:!1});if(n(u,c,`Failed to load schedule runs.`),!u.ok)throw new e(u.status,t(c,u,`Failed to load schedule runs.`));return{runs:s?.runs??[],nextCursor:s?.nextCursor??null}}async function g(r,i){let{data:a,error:s,response:c}=await o({path:{assistant_id:r},query:{from:i.from,to:i.to},throwOnError:!1});if(n(c,s,`Failed to load schedule usage.`),!c.ok)throw new e(c.status,t(s,c,`Failed to load schedule usage.`));return a?.summaries??[]}async function _(r,a,o){let{error:s,response:c}=await i({path:{assistant_id:r,id:a},body:{enabled:o},throwOnError:!1});if(n(c,s,`Failed to toggle schedule.`),!c.ok)throw new e(c.status,t(s,c,`Failed to toggle schedule.`))}async function v(r,i){let{error:a,response:o}=await s({path:{assistant_id:r,id:i},throwOnError:!1});if(n(o,a,`Failed to delete schedule.`),!o.ok&&o.status!==204)throw new e(o.status,t(a,o,`Failed to delete schedule.`))}async function y(r,i){let{error:a,response:o}=await c({path:{assistant_id:r,id:i},throwOnError:!1});if(n(o,a,`Failed to run schedule.`),!o.ok)throw new e(o.status,t(a,o,`Failed to run schedule.`))}export{m as a,f as c,g as i,v as n,y as o,h as r,_ as s,d as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{k as t,l as n,v as r}from"./i18n-DmTrjH8B.js";import{t as i}from"./react-DJZBPgpf.js";import{t as a}from"./button-B1kEAcLt.js";import{d as o,p as s}from"./chunk-5KNZJZUH-CPFsMQoz.js";import{n as c}from"./QueryClientProvider-BPZM68-A.js";import{t as l}from"./useQuery-BtL9k7Sh.js";import{t as u}from"./useInfiniteQuery-Dz6qbDTQ.js";import{t as d}from"./useMutation-Cl7cazkm.js";import{t as f}from"./jsx-runtime-COOF1INC.js";import{t as p}from"./cn-naJKasky.js";import{t as m}from"./typography-SdxpXI_m.js";import{t as h}from"./card-B4b9cF6X.js";import{n as g,o as _}from"./list-row-BvCm9O6y.js";import{t as v}from"./calendar-Bbg9LoLZ.js";import{t as y}from"./chart-column-BSXp3tJF.js";import{t as b}from"./chevron-down-D437oaYt.js";import{t as x}from"./chevron-right-D5lPX854.js";import{t as S}from"./circle-alert-BaeJJrSp.js";import{t as C}from"./clock-HLo0irRS.js";import{t as w}from"./coins-S_-Fmv_r.js";import{t as T}from"./loader-circle-DZ65N8bz.js";import{t as E}from"./play-D-HSCeZj.js";import{t as D}from"./repeat-6uW-THNc.js";import{t as O}from"./settings-C37vdp_B.js";import{t as k}from"./trash-2-CVpEwOYZ.js";import{t as A}from"./notice-BHeYlKvv.js";import{s as j}from"./src-BKET5Cno.js";import{t as M}from"./tag-DAsImP7W.js";import{n as N,t as P}from"./input-ChbJ2nzd.js";import{t as ee}from"./toggle-CdhdS_iC.js";import{t as F}from"./modal-_49mDK_d.js";import{n as I}from"./toast-BKrDuNtu.js";import{t as L}from"./confirm-dialog-EPYSBP_B.js";import{t as R}from"./select-DmdFZj4l.js";import{t as z}from"./skeleton-BV6nOVEl.js";import{t as B}from"./Trans-aGiJoe8I.js";import{a as te,l as ne,n as re,o as ie,r as ae,s as oe}from"./profile-pickers-D8XVv50L.js";import{f as V}from"./routes-C6ueuiMd.js";import{B as se,C as ce,Ct as le,Dt as ue,H as de,S as fe,St as pe,Tt as me,U as he,V as ge,b as _e,d as ve,ln as ye,m as be,tn as xe,un as Se,wt as Ce,x as we,xt as Te,z as Ee}from"./react-query.gen-C_GLKG7m.js";import{n as De,r as Oe}from"./conversation-navigation-CmHzY4Xq.js";import{n as ke}from"./use-is-mobile-DYVRtRin.js";import{t as Ae}from"./effective-timezone-CxitKH1O.js";import{t as je}from"./use-assistant-capability-DMm0QlXl.js";import{t as Me}from"./assistant-feature-flag-store-Co_o5uD3.js";import{t as Ne}from"./use-effective-timezone-fVManBSH.js";import{t as Pe}from"./use-active-assistant-id-lxYJu99R.js";import{n as Fe}from"./detail-shell-CNYbfTO7.js";import{n as Ie}from"./schedules-qIwqn-CD.js";import{t as Le}from"./detail-card-D9EAxXI8.js";import{n as Re,t as ze}from"./detail-drawer-BoNujeL5.js";import{a as Be,c as Ve,i as He,n as Ue,o as We,r as Ge,s as Ke,t as qe}from"./schedules-CKSTyNa5.js";import{i as Je,n as Ye,t as Xe}from"./profile-metadata-DeknMkvV.js";import{t as Ze}from"./page-empty-state-iXCJNtzb.js";var H=e(i(),1),Qe={frequency:`daily`,minute:0,hour24:9,weekdays:[1],dayOfMonth:1},$e=[{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`}],et=[1,2,3,4,5];function U(e,t,n){return Number.isFinite(e)?Math.min(n,Math.max(t,Math.round(e))):t}function tt(e){let t=Array.from(new Set(e.map(e=>U(e,0,6)).filter(e=>Number.isInteger(e)))).sort((e,t)=>e-t);return t.length>0?t:[1]}function nt(e){let t=U(e.minute,0,59),n=U(e.hour24,0,23);switch(e.frequency){case`hourly`:return`${t} * * * *`;case`daily`:return`${t} ${n} * * *`;case`weekly`:return`${t} ${n} * * ${tt(e.weekdays).join(`,`)}`;case`monthly`:return e.dayOfMonth===`last`?`${t} ${n} L * *`:`${t} ${n} ${U(e.dayOfMonth,1,28)} * *`}}function rt(e,t){let n=U(e,0,23),r=U(t,0,59),i=n<12?`AM`:`PM`;return`${n%12==0?12:n%12}:${String(r).padStart(2,`0`)} ${i}`}function it(e){let t=[`th`,`st`,`nd`,`rd`],n=e%100;return`${e}${t[(n-20)%10]??t[n]??t[0]}`}function at(e){let t=tt(e),n=new Set(t);if(t.length===7)return`every day`;if(t.length===5&&et.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 ${$e[t[0]]?.full??`day`}`;let r=t.map(e=>$e[e]?.short??``),i=r.pop();return`every ${r.join(`, `)} & ${i}`}function ot(e){let t=rt(e.hour24,e.minute);switch(e.frequency){case`hourly`:{let t=U(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 ${at(e.weekdays)} at ${t}`;case`monthly`:return e.dayOfMonth===`last`?`Runs on the last day of every month at ${t}`:`Runs on the ${it(U(e.dayOfMonth,1,28))} of every month at ${t}`}}var W=f(),st=Array.from({length:12},(e,t)=>{let n=t+1;return{value:String(n),label:String(n)}}),ct=Array.from({length:12},(e,t)=>{let n=t*5,r=String(n).padStart(2,`0`);return{value:r,label:r}});function lt(e,t){let n=e%12;return t===`PM`?n+12:n}function ut(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 dt({isOpen:e,assistantId:t,onClose:n,onCreated:r}){return(0,W.jsx)(F.Root,{open:e,onOpenChange:e=>{e||n()},children:e?(0,W.jsx)(ft,{assistantId:t,onClose:n,onCreated:r}):null})}function ft({assistantId:e,onClose:t,onCreated:n}){let{t:i}=r(`settings`),o=Ne(),[s,c]=(0,H.useState)(``),[l,u]=(0,H.useState)(``),[d,f]=(0,H.useState)(``),[p,m]=(0,H.useState)(`simple`),[h,g]=(0,H.useState)(Qe),[_,v]=(0,H.useState)(``),[y,b]=(0,H.useState)(!1),[x,S]=(0,H.useState)(null),C=s.trim(),w=l.trim(),T=d.trim(),E=_.trim(),D=(0,H.useMemo)(()=>p===`simple`?nt(h):E,[p,h,E]),O=(0,H.useMemo)(()=>p===`simple`?ot(h):E||i(`createScheduleModal.cronContinuePrompt`),[p,h,E,i]),k=(0,H.useMemo)(()=>ut(o),[o]),A=C.length>0&&w.length>0&&T.length>0&&D.length>0&&!y;return(0,W.jsxs)(F.Content,{size:`md`,children:[(0,W.jsxs)(F.Header,{children:[(0,W.jsx)(F.Title,{children:i(`createScheduleModal.title`)}),(0,W.jsx)(F.Description,{children:i(`createScheduleModal.description`)})]}),(0,W.jsxs)(`form`,{onSubmit:async t=>{if(t.preventDefault(),A){b(!0),S(null);try{await qe(e,{name:C,description:w,expression:D,message:T,timezone:o}),b(!1),n()}catch(e){S(e instanceof Error?e.message:i(`createScheduleModal.createFailed`)),b(!1)}}},children:[(0,W.jsx)(F.Body,{children:(0,W.jsxs)(`div`,{className:`flex flex-col gap-5`,children:[(0,W.jsx)(P,{label:i(`createScheduleModal.nameLabel`),placeholder:i(`createScheduleModal.namePlaceholder`),value:s,onChange:e=>c(e.target.value),required:!0,autoFocus:!0,fullWidth:!0}),(0,W.jsx)(N,{label:i(`createScheduleModal.descriptionLabel`),placeholder:i(`createScheduleModal.descriptionPlaceholder`),value:l,onChange:e=>u(e.target.value),required:!0,fullWidth:!0,rows:2}),(0,W.jsx)(_t,{label:i(`createScheduleModal.repeatLabel`),children:p===`simple`?(0,W.jsx)(pt,{cadence:h,onChange:g}):(0,W.jsx)(gt,{value:_,onChange:v,onUseSimple:()=>m(`simple`)})}),(0,W.jsx)(vt,{summary:O,mono:p===`advanced`&&E.length>0,timezoneLabel:k}),p===`simple`?(0,W.jsx)(`button`,{type:`button`,onClick:()=>{v(e=>e||nt(h)),m(`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:i(`createScheduleModal.advancedCron`)}):null,(0,W.jsx)(N,{label:i(`createScheduleModal.messageLabel`),placeholder:i(`createScheduleModal.messagePlaceholder`),value:d,onChange:e=>f(e.target.value),required:!0,fullWidth:!0,rows:4}),x?(0,W.jsx)(`p`,{className:`text-body-small-default text-[var(--system-negative-strong)]`,children:x}):null]})}),(0,W.jsxs)(F.Footer,{children:[(0,W.jsx)(a,{variant:`outlined`,onClick:t,type:`button`,children:i(`createScheduleModal.cancel`)}),(0,W.jsx)(a,{variant:`primary`,type:`submit`,disabled:!A,children:i(y?`createScheduleModal.creating`:`createScheduleModal.create`)})]})]})]})}function pt({cadence:e,onChange:t}){let{t:n}=r(`settings`),i=[{value:`hourly`,label:n(`createScheduleModal.frequencyHourly`)},{value:`daily`,label:n(`createScheduleModal.frequencyDaily`)},{value:`weekly`,label:n(`createScheduleModal.frequencyWeekly`)},{value:`monthly`,label:n(`createScheduleModal.frequencyMonthly`)}],a=[...Array.from({length:28},(e,t)=>{let n=t+1;return{value:String(n),label:it(n)}}),{value:`last`,label:n(`createScheduleModal.lastDay`)}];return(0,W.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,W.jsx)(_,{items:i,value:e.frequency,onChange:n=>t({...e,frequency:n}),ariaLabel:n(`createScheduleModal.frequencyAriaLabel`)}),e.frequency===`hourly`?(0,W.jsx)(G,{label:n(`createScheduleModal.atMinute`),children:(0,W.jsx)(R,{options:ct,value:String(e.minute).padStart(2,`0`),onChange:n=>t({...e,minute:Number(n)}),"aria-label":n(`createScheduleModal.minuteAriaLabel`),className:`w-24`})}):null,e.frequency===`weekly`?(0,W.jsx)(G,{label:n(`createScheduleModal.onTheseDays`),children:(0,W.jsx)(ht,{value:e.weekdays,onChange:n=>t({...e,weekdays:n})})}):null,e.frequency===`monthly`?(0,W.jsx)(G,{label:n(`createScheduleModal.onDay`),children:(0,W.jsx)(R,{options:a,value:e.dayOfMonth===`last`?`last`:String(e.dayOfMonth),onChange:n=>t({...e,dayOfMonth:n===`last`?`last`:Number(n)}),"aria-label":n(`createScheduleModal.dayOfMonthAriaLabel`),className:`w-32`})}):null,e.frequency===`hourly`?null:(0,W.jsx)(G,{label:n(`createScheduleModal.atTime`),children:(0,W.jsx)(mt,{hour24:e.hour24,minute:e.minute,onChange:(n,r)=>t({...e,hour24:n,minute:r})})})]})}function mt({hour24:e,minute:t,onChange:n}){let{t:i}=r(`settings`),a=e<12?`AM`:`PM`,o=e%12==0?12:e%12,s=[{value:`AM`,label:i(`createScheduleModal.periodAm`)},{value:`PM`,label:i(`createScheduleModal.periodPm`)}];return(0,W.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,W.jsx)(R,{options:st,value:String(o),onChange:e=>n(lt(Number(e),a),t),"aria-label":i(`createScheduleModal.hourAriaLabel`),className:`w-[72px]`}),(0,W.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:`:`}),(0,W.jsx)(R,{options:ct,value:String(t).padStart(2,`0`),onChange:t=>n(e,Number(t)),"aria-label":i(`createScheduleModal.minuteAriaLabel`),className:`w-[72px]`}),(0,W.jsx)(`div`,{className:`w-[112px]`,children:(0,W.jsx)(_,{items:s,value:a,onChange:e=>n(lt(o,e),t),ariaLabel:i(`createScheduleModal.periodAriaLabel`)})})]})}function ht({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,W.jsx)(`div`,{className:`flex gap-1.5`,children:$e.map(e=>{let t=n.has(e.value);return(0,W.jsx)(`button`,{type:`button`,onClick:()=>r(e.value),"aria-pressed":t,"aria-label":e.full,title:e.full,className:p(`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 gt({value:e,onChange:t,onUseSimple:n}){let{t:i}=r(`settings`);return(0,W.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,W.jsx)(P,{placeholder:`0 9 * * *`,value:e,onChange:e=>t(e.target.value),fullWidth:!0,className:`font-mono`,"aria-label":i(`createScheduleModal.cronAriaLabel`),helperText:i(`createScheduleModal.cronHelper`)}),(0,W.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:i(`createScheduleModal.backToSimple`)})]})}function _t({label:e,children:t}){return(0,W.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,W.jsx)(`span`,{className:`text-body-small-default text-[var(--content-secondary)]`,children:e}),t]})}function G({label:e,children:t}){return(0,W.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-3 gap-y-1.5`,children:[(0,W.jsx)(`span`,{className:`min-w-[88px] text-body-small-default text-[var(--content-tertiary)]`,children:e}),t]})}function vt({summary:e,mono:t,timezoneLabel:n}){let{t:i}=r(`settings`);return(0,W.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,W.jsx)(C,{className:`mt-0.5 h-4 w-4 shrink-0 text-[var(--content-tertiary)]`,"aria-hidden":!0}),(0,W.jsxs)(`div`,{className:`min-w-0`,children:[(0,W.jsx)(`p`,{className:p(`text-body-medium-default text-[var(--content-default)]`,t&&`break-all font-mono`),children:e}),(0,W.jsx)(`p`,{className:`mt-0.5 text-body-small-default text-[var(--content-tertiary)]`,children:i(`createScheduleModal.timezoneNote`,{timezone:n})})]})]})}function yt(e=Ae(),t=Date.now()){return Je(Ye,e,t)}function K(e){return e?new Date(e).toLocaleString(void 0,{month:`short`,day:`numeric`,hour:`numeric`,minute:`2-digit`,hour12:!0}):`—`}function bt(e){return e==null?`—`:e<1e3?`${e}ms`:`${(e/1e3).toFixed(1)}s`}var xt=new Intl.NumberFormat(void 0,{style:`currency`,currency:`USD`,minimumFractionDigits:2,maximumFractionDigits:2});function q(e){return e==null||!Number.isFinite(e)?`—`:xt.format(e)}function St(e){return`${e.toLocaleString()} ${e===1?`run`:`runs`}`}function Ct(e){let t=Math.round(e/6e4);return t>=60&&t%60==0?`Every ${t/60} hr`:`Every ${t} min`}function wt(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 Tt(e){return!!e.conversationId&&e.conversationExists===!0&&e.conversationArchivedAt==null}function Et(e){return Tt(e)?e.conversationId??null:null}function J(e){return typeof e==`string`&&e.length>0}function Dt(e){return e.status===`pending`||e.status===`superseded`}function Ot(e){return e.status!==`skipped`&&e.status!==`missed`&&!Dt(e)}var kt={heartbeat:`system-heartbeat`,consolidation:`system-consolidation`,retrospective:`system-memory-retrospective`};function At(e){if(e.cronExpression)return e.timezone?`Cron: ${e.cronExpression} (${e.timezone})`:`Cron: ${e.cronExpression}`;let t=Ct(e.intervalMs);return e.activeHoursStart!=null&&e.activeHoursEnd!=null&&(t+=` (${e.activeHoursStart}:00–${e.activeHoursEnd}:00)`),t}function jt(e){return Ct(e.intervalMs)}var Mt=`After conversation activity`;function Nt(e){return e.status!==`fired`&&e.status!==`cancelled`}function Pt(e,t){return Nt(e)?e.status===`firing`?!1:e.nextRunAt==null||!e.enabled&&e.nextRunAt<=t:!0}function Ft(e,t){let n=[],r=[],i=[];for(let a of e)a.isOneShot?Pt(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 It(e,t,n=!0){return{queryKey:[{_id:`schedulesUsagesummaryGet`,path:{assistant_id:e??``},_tz:t}],queryFn:()=>e?He(e,yt(t)):Promise.resolve([]),enabled:n,staleTime:1e4}}function Lt(e){return{scheduleId:e,runCount:0,totalEstimatedCostUsd:0,eventCount:0}}function Rt(e,t,n){let r=(t??[]).filter(e=>{let t=e.startedAt??e.createdAt;return Ot(e)&&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 zt(e,t,n){let r=!!e&&n?.enabled!==!1,{data:i}=l({...be({path:{assistant_id:e}}),enabled:r,staleTime:6e4}),{data:a}=l({...ve({path:{assistant_id:e}}),enabled:r,staleTime:6e4}),o=i?.callSites.find(e=>e.id===t)?.defaultProfile??null;return o==null?{key:null,label:null}:{key:o,label:(a?Xe(a):{})[o]?.displayName??o}}function Bt(e,t,i){let{t:a}=r(`settings`),o=zt(e,`mainAgent`),[s,c]=(0,H.useState)(!1),l=(0,H.useMemo)(()=>o.key?t.filter(e=>Nt(e)&&e.inferenceProfile!==o.key).length:0,[o.key,t]),u=o.label,f=d({mutationFn:t=>Be(e,null,t),onSuccess:e=>{c(!1),i(),I.success(e===0?a(`scheduleProfileRebase.alreadyOnProfileToast`,{profile:u}):a(`scheduleProfileRebase.movedToast`,{count:e,profile:u}))},onError:e=>{n(e,{context:`schedules_rebase_inference_profile`}),I.error(a(`scheduleProfileRebase.moveFailedToast`))}});return{defaultProfileLabel:u,offDefaultCount:l,canRebase:l>0,requestRebase:()=>c(!0),dialogProps:{open:s&&o.key!=null,profileLabel:u,offDefaultCount:l,isPending:f.isPending,onConfirm:()=>{o.key&&f.mutate(o.key)},onCancel:()=>c(!1)}}}function Vt({open:e,profileLabel:t,offDefaultCount:n,isPending:i,onConfirm:a,onCancel:o}){let{t:s}=r(`settings`);return(0,W.jsx)(L,{open:e,title:s(`scheduleProfileRebase.dialogTitle`,{profile:t}),message:s(`scheduleProfileRebase.dialogMessage`,{count:n,profile:t}),confirmLabel:s(`scheduleProfileRebase.moveSchedules`),isPending:i,onConfirm:a,onCancel:o})}function Ht({status:e}){let{t}=r(`settings`);return(0,W.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??t(`scheduleSharedUi.unknownStatus`)})}function Ut({scheduleName:e,usage:t,onOpenUsage:n}){let{t:i}=r(`settings`);if(t.status===`loading`)return(0,W.jsxs)(`div`,{"aria-label":i(`scheduleSharedUi.loadingUsage`),className:`flex w-[156px] shrink-0 items-center justify-end gap-3`,children:[(0,W.jsx)(z,{as:`span`,className:`h-5 w-16`}),(0,W.jsx)(z,{as:`span`,className:`h-5 w-16`})]});let a=t.status===`error`,o=a?`--`:q(t.summary.totalEstimatedCostUsd),s=a?`--`:St(t.summary.runCount),c=t.status===`ready`&&!(t.summary.totalEstimatedCostUsd>0),l=t.status===`ready`&&t.summary.runCount===0,u=c?`text-[var(--content-tertiary)]`:`text-[var(--content-default)]`,d=l?`text-[var(--content-tertiary)]`:`text-[var(--content-default)]`;return(0,W.jsxs)(`div`,{className:`flex w-[156px] shrink-0 items-center justify-end gap-3 text-right text-body-small-default`,children:[n?(0,W.jsx)(`button`,{type:`button`,onClick:n,"aria-label":i(`scheduleSharedUi.viewUsageFor`,{name:e}),className:`min-w-[64px] cursor-pointer rounded px-1 py-0.5 text-right transition-colors hover:bg-[var(--surface-hover)] ${u}`,children:o}):(0,W.jsx)(`span`,{"aria-label":i(`scheduleSharedUi.costFor`,{name:e,cost:o}),className:`block min-w-[64px] px-1 py-0.5 ${u}`,children:o}),(0,W.jsx)(`span`,{"aria-label":i(`scheduleSharedUi.runsFor`,{name:e,runs:s}),className:`block min-w-[64px] px-1 py-0.5 ${d}`,children:s})]})}function Wt({name:e,subtitle:t,enabled:n,nextRunAt:i,lastRunAt:a,usage:o,helperText:s,statusLabel:c,statusTone:l=`neutral`,onClick:u}){let{t:d}=r(`settings`);return(0,W.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,W.jsxs)(`button`,{type:`button`,onClick:u,"aria-label":d(`systemTasksSection.openAriaLabel`,{name: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,W.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,W.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,W.jsx)(`span`,{className:`truncate text-body-medium-default text-[var(--content-default)]`,children:e})}),(0,W.jsx)(`div`,{className:`mt-0.5 text-body-small-default text-[var(--content-tertiary)]`,children:t}),s?(0,W.jsx)(`div`,{className:`mt-0.5 text-body-small-default text-[var(--content-secondary)]`,children:s}):null,(0,W.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:[i?(0,W.jsx)(`span`,{children:d(`systemTasksSection.nextRun`,{time:K(i)})}):null,a?(0,W.jsx)(`span`,{children:d(`systemTasksSection.lastRun`,{time:K(a)})}):null]})]}),(0,W.jsxs)(`div`,{className:`flex shrink-0 flex-wrap items-center justify-end gap-3`,children:[(0,W.jsx)(Ut,{scheduleName:e,usage:o}),c?(0,W.jsx)(M,{tone:l,children:c}):(0,W.jsx)(`span`,{className:`h-2 w-2 rounded-full`,style:{backgroundColor:n?`var(--system-positive-strong)`:`var(--content-disabled)`},"aria-label":d(n?`systemTasksSection.enabled`:`systemTasksSection.disabled`)}),(0,W.jsx)(x,{className:`h-4 w-4 text-[var(--content-tertiary)]`})]})]})})}function Gt({heartbeatConfig:e,consolidationConfig:t,retrospectiveConfig:n,heartbeatUsage:i,consolidationUsage:a,retrospectiveUsage:o,isLoading:s,hasError:c,onRetry:l,onSelectHeartbeat:u,onSelectConsolidation:d,onSelectRetrospective:f}){let{t:p}=r(`settings`),m=e!=null,h=t?.available===!0,g=n?.available===!0,_=m||h||g;if(!s&&!c&&!_)return null;let v=[...m?[i]:[],...h?[a]:[],...g?[o]:[]].filter(e=>e.status===`ready`),y=v.reduce((e,t)=>e+(t.summary.totalEstimatedCostUsd??0),0),x=s?(0,W.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,W.jsx)(T,{className:`h-5 w-5 animate-spin text-stone-400`})}):c&&!_?(0,W.jsx)(A,{tone:`error`,children:(0,W.jsx)(B,{ns:`settings`,i18nKey:`systemTasksSection.loadError`,components:{retryButton:(0,W.jsx)(`button`,{type:`button`,onClick:l,className:`cursor-pointer underline hover:no-underline`})}})}):(0,W.jsxs)(`div`,{children:[m?(0,W.jsx)(Wt,{name:p(`systemTasksSection.heartbeatName`),subtitle:At(e),enabled:e.enabled,nextRunAt:e.nextRunAt,lastRunAt:e.lastRunAt,usage:i,onClick:u}):null,h?(0,W.jsx)(Wt,{name:p(`systemTasksSection.consolidationName`),subtitle:jt(t),enabled:t.enabled,helperText:t.enabled?void 0:p(`systemTasksSection.consolidationPausedHelper`),nextRunAt:t.nextRunAt,lastRunAt:t.lastRunAt,usage:a,statusLabel:t.enabled?void 0:p(`systemTasksSection.paused`),statusTone:`warning`,onClick:d}):null,g?(0,W.jsx)(Wt,{name:p(`systemTasksSection.retrospectiveName`),subtitle:Mt,enabled:n.enabled,helperText:n.enabled?void 0:p(`systemTasksSection.retrospectivePausedHelper`),nextRunAt:n.nextRunAt,lastRunAt:n.lastRunAt,usage:o,statusLabel:n.enabled?void 0:p(`systemTasksSection.paused`),statusTone:`warning`,onClick:f}):null,c?(0,W.jsx)(`div`,{className:`pt-3 first:pt-0`,children:(0,W.jsx)(A,{tone:`error`,children:(0,W.jsx)(B,{ns:`settings`,i18nKey:`systemTasksSection.partialLoadError`,components:{retryButton:(0,W.jsx)(`button`,{type:`button`,onClick:l,className:`cursor-pointer underline hover:no-underline`})}})})}):null]});return(0,W.jsx)(Le,{children:(0,W.jsx)(j.Root,{type:`multiple`,children:(0,W.jsxs)(j.Item,{value:`system-jobs`,children:[(0,W.jsxs)(j.Trigger,{className:`group justify-between gap-3`,children:[(0,W.jsxs)(`span`,{className:`flex min-w-0 flex-wrap items-baseline gap-x-2 gap-y-1 text-left`,children:[(0,W.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-secondary)]`,children:p(`systemTasksSection.title`)}),(0,W.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:p(`systemTasksSection.subtitle`)})]}),(0,W.jsxs)(`span`,{className:`flex shrink-0 items-center gap-3`,children:[v.length>0?(0,W.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:p(`systemTasksSection.cost7d`,{cost:q(y)})}):null,(0,W.jsx)(b,{className:`h-4 w-4 shrink-0 text-[var(--content-tertiary)] transition-transform group-data-[state=open]:rotate-180`})]})]}),(0,W.jsx)(j.Content,{children:(0,W.jsx)(`div`,{className:`mt-3`,children:x})})]})})})}var Kt={disabled:`heartbeat is disabled`,outside_active_hours:`outside active hours`,overlap:`previous run was still active`,pre_first_user_message:`waiting for the first conversation`,max_consecutive_runs:`consecutive-run cap reached`,max_daily_runs:`daily run cap reached`,quiesced:`assistant was shutting down`};function qt(e){return e.status===`missed`?`Missed while the assistant was offline`:`skipReason`in e&&e.skipReason?`Skipped — ${Kt[e.skipReason]??e.skipReason}`:null}function Y(e,t){return{id:e.id,jobId:t,status:e.status,startedAt:e.startedAt??e.scheduledFor,finishedAt:e.finishedAt,durationMs:e.durationMs,output:qt(e),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 Jt(e){return e.runs.filter(e=>!Dt(e)).map(e=>Y(e,`heartbeat`))}function Yt(e){return e.runs.map(e=>Y(e,`consolidation`))}function Xt(e){return e.runs.map(e=>Y(e,`retrospective`))}var X=1e4;function Zt(e,t,n,r,i){return e?{status:`loading`}:t?{status:`error`}:{status:`ready`,summary:Rt(n,r,i)}}function Qt(e,r){let i=c(),a={path:{assistant_id:e??``}},{data:o,isLoading:s,isError:u,refetch:d}=l({...Ee(a),enabled:!!e,staleTime:X}),{data:f,isLoading:p,isError:m,refetch:h}=l({..._e(a),enabled:!!e,staleTime:X}),{data:g,isLoading:_,isError:v,refetch:y}=l({...Te(a),enabled:!!e,staleTime:X}),b={path:{assistant_id:e??``},query:{limit:100}},{data:x,isLoading:S,isError:C,refetch:w}=l({...he(b),select:Jt,enabled:!!e&&o!=null,staleTime:X}),{data:T,isLoading:E,isError:D,refetch:O}=l({...ce(b),select:Yt,enabled:!!e&&f?.available===!0,staleTime:X}),{data:k,isLoading:A,isError:j,refetch:M}=l({...Ce(b),select:Xt,enabled:!!e&&g?.available===!0,staleTime:X}),N=(0,H.useMemo)(()=>yt(r),[r]),P=(0,H.useMemo)(()=>Zt(S,C,kt.heartbeat,x,N),[x,C,S,N]),ee=(0,H.useMemo)(()=>Zt(E,D,kt.consolidation,T,N),[T,D,E,N]),F=(0,H.useMemo)(()=>Zt(A,j,kt.retrospective,k,N),[k,j,A,N]),L=t=>{if(!e)return;let n={heartbeat:{config:Ee(a).queryKey,runs:he(b).queryKey,infinite:de(a)},consolidation:{config:_e(a).queryKey,runs:ce(b).queryKey,infinite:fe(a)},retrospective:{config:Te(a).queryKey,runs:Ce(b).queryKey,infinite:le(a)}}[t];i.invalidateQueries({queryKey:n.config}),i.invalidateQueries({queryKey:n.runs}),i.invalidateQueries({queryKey:n.infinite})},R=Se({onSuccess:e=>{e.ran?I.success(t(`settings:useSystemTasks.heartbeatStarted`)):I.info(t(`settings:useSystemTasks.heartbeatSkipped`))},onError:e=>{n(e,{context:`heartbeat_run_now`}),I.error(t(`settings:useSystemTasks.heartbeatRunFailed`))},onSettled:()=>L(`heartbeat`)}),z=xe({onSuccess:e=>{e.ran?I.success(t(`settings:useSystemTasks.consolidationQueued`)):I.info(t(`settings:useSystemTasks.consolidationAlreadyQueued`))},onError:e=>{n(e,{context:`consolidation_run_now`}),I.error(t(`settings:useSystemTasks.consolidationRunFailed`))},onSettled:()=>L(`consolidation`)}),B=ye({onSuccess:e=>{se(i,a,e),I.success(e.enabled?t(`settings:useSystemTasks.heartbeatEnabled`):t(`settings:useSystemTasks.heartbeatDisabled`))},onError:e=>{n(e,{context:`heartbeat_toggle`}),I.error(t(`settings:useSystemTasks.heartbeatToggleFailed`))}});return{heartbeatConfig:o,consolidationConfig:f,retrospectiveConfig:g,heartbeatUsage:P,consolidationUsage:ee,retrospectiveUsage:F,isLoading:s||p||_,hasError:u||m||v,isHeartbeatRunning:R.isPending,isConsolidationRunning:z.isPending,isHeartbeatLoading:s,isHeartbeatError:u,isConsolidationLoading:p,isConsolidationError:m,isRetrospectiveLoading:_,isRetrospectiveError:v,refetchHeartbeat:d,refetchConsolidation:h,refetchRetrospective:y,runHeartbeatNow:()=>{e&&R.mutate({path:{assistant_id:e}})},runConsolidationNow:()=>{e&&z.mutate({path:{assistant_id:e}})},toggleHeartbeat:t=>{e&&B.mutate({body:{enabled:t},path:{assistant_id:e}})},refetchAll:()=>{d(),h(),y(),w(),O(),M()}}}function Z({id:e,title:t,subtitle:n,accessory:r,children:i,className:a}){let o=!!(t||n||r);return(0,W.jsx)(h,{asChild:!0,className:p(`rounded-lg`,a),children:(0,W.jsxs)(`section`,{id:e,children:[o&&(0,W.jsxs)(`div`,{className:`flex flex-row items-start justify-between gap-4`,children:[(0,W.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1`,children:[t&&(0,W.jsx)(m,{variant:`title-small`,as:`h2`,className:`text-[var(--content-emphasised)]`,children:t}),n&&(0,W.jsx)(m,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:n})]}),r&&(0,W.jsx)(`div`,{className:`shrink-0`,children:r})]}),i!=null&&(0,W.jsx)(`div`,{className:o?`mt-3`:``,children:i})]})})}function $t(e){return/^plugin:([^/]+)\//.exec(e??``)?.[1]??null}var en={user_disabled:`scheduleDisarmReason.userDisabled`,plugin_removed:`scheduleDisarmReason.pluginRemoved`,plugin_disabled:`scheduleDisarmReason.pluginDisabled`,declaration_removed:`scheduleDisarmReason.declarationRemoved`,declaration_disabled:`scheduleDisarmReason.declarationDisabled`};function tn(e){return e.enabled||!e.disarmReason?null:en[e.disarmReason]??null}function nn(e,t){return t?.[e]?.displayName??e}function rn({assistantId:e,pinnedProfile:t,defaultCallSite:n=`mainAgent`,fallbackLabel:i,respectCallSiteOverride:a=!1}){let{t:o}=r(`settings`),s=i??o(`modelProfileRow.defaultMainAgent`),c=(e,t)=>{if(e==null)return;if(e.provider!=null||e.model!=null)return o(`modelProfileRow.customCallSiteModel`);let n=e.profile?.trim();return n?o(`modelProfileRow.override`,{name:nn(n,t)}):void 0},u=t==null,{data:d}=l({...ve({path:{assistant_id:e}}),enabled:!!e,staleTime:6e4}),f=(0,H.useMemo)(()=>d?Xe(d):{},[d]),{label:p}=zt(e,n,{enabled:u}),m=u&&a?c(d?.llm?.callSites?.[n],f):void 0,h=t==null?m??(p==null?s:o(`modelProfileRow.defaultNamed`,{name:p})):nn(t,f);return(0,W.jsxs)(`div`,{className:`flex min-h-6 items-center justify-between gap-4`,children:[(0,W.jsx)(`span`,{className:`shrink-0 text-[var(--content-secondary)]`,children:o(`modelProfileRow.label`)}),(0,W.jsx)(`span`,{className:`min-w-0 truncate text-right`,title:h,children:h})]})}function an(e,t,n){let r=ne(e?.profiles??{},e?.profileOrder??[]);return[{value:null,label:`Default`},...ie(r,[t],n).map(e=>{let t=re(e,r,n);return{value:e.name,label:ae(e),...t?{issue:t}:{},...t===`undispatchable`?{reason:te(e)}:{}}})]}function on(e,t){let{data:n}=l({...ve({path:{assistant_id:e}}),enabled:!!e,staleTime:6e4}),r=oe();return(0,H.useMemo)(()=>an(n?.llm,t,{requireOwnProviderAndModel:r}),[n?.llm,t,r])}function sn({assistantId:e,value:t,onChange:n,disabled:i=!1,isSaving:a=!1,className:o,includeDefaultOption:s=!0,placeholder:c,variant:l,menuAlign:u}){let{t:d}=r(`settings`);return(0,W.jsx)(R,{value:t,onChange:n,onSelectNone:()=>n(null),options:on(e,t).filter(e=>s||e.value!=null).map(e=>({...e.issue===`undispatchable`?{icon:(0,W.jsx)(S,{className:`h-3.5 w-3.5 text-[var(--system-mid-strong)]`}),...e.reason?{tooltip:e.reason}:{}}:{},value:e.value,label:e.label})),disabled:i||a,placeholder:c,className:o,variant:l,menuAlign:u,"aria-label":d(`modelProfileSelect.ariaLabel`)})}function Q({label:e,value:t}){return(0,W.jsxs)(`div`,{className:`flex min-h-6 items-center justify-between gap-4`,children:[(0,W.jsx)(`span`,{className:`shrink-0 text-body-medium-lighter text-[var(--content-secondary)]`,children:e}),(0,W.jsx)(`span`,{className:`min-w-0 text-right text-body-medium-lighter text-[var(--content-default)]`,children:t})]})}function cn({schedule:e,assistantId:t,isPast:i}){let{t:a}=r(`schedules`),o=c(),s=ue({path:{assistant_id:t}}),l=d({mutationFn:n=>Ve(t,e.id,{inferenceProfile:n}),onMutate:async t=>{await o.cancelQueries({queryKey:s});let n=o.getQueryData(s)?.find(t=>t.id===e.id)?.inferenceProfile;return o.setQueryData(s,n=>n?.map(n=>n.id===e.id?{...n,inferenceProfile:t}:n)),{previousProfile:n}},onError:(t,r,i)=>{let c=i?.previousProfile;c!==void 0&&o.setQueryData(s,t=>t?.map(t=>t.id===e.id?{...t,inferenceProfile:c}:t)),n(t,{context:`schedule_update_inference_profile`}),I.error(a(`scheduleDetail.modelChangeFailed`))},onSettled:()=>o.invalidateQueries({queryKey:s})});return e.mode===`workflow`?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(Q,{label:a(`scheduleDetail.modelProfile`),value:a(`scheduleDetail.notUsedForWorkflow`)}),(0,W.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:a(`scheduleDetail.modelProfileWorkflowNote`)})]}):i?(0,W.jsx)(`div`,{className:`text-body-medium-lighter text-[var(--content-default)]`,children:(0,W.jsx)(rn,{assistantId:t,pinnedProfile:e.inferenceProfile})}):(0,W.jsx)(Q,{label:a(`scheduleDetail.modelProfile`),value:(0,W.jsx)(sn,{assistantId:t,value:e.inferenceProfile,onChange:t=>{t&&t!==e.inferenceProfile&&l.mutate(t)},includeDefaultOption:!1,placeholder:a(`scheduleDetail.chooseModel`),isSaving:l.isPending,variant:`ghost`,menuAlign:`end`,className:`-my-1 -mr-2`})})}function ln({icon:e,value:t,label:n}){return(0,W.jsxs)(`div`,{className:`flex items-center gap-3 rounded-lg border border-[var(--border-base)] bg-[var(--surface-lift)] p-3`,children:[(0,W.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,W.jsxs)(`div`,{className:`min-w-0`,children:[(0,W.jsx)(`div`,{className:`truncate text-body-large-default text-[var(--content-default)]`,children:t}),(0,W.jsx)(`div`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:n})]})]})}function un({usage:e}){let{t}=r(`schedules`);return e.status===`loading`?(0,W.jsx)(`div`,{className:`grid grid-cols-2 gap-3 pt-2`,children:Array.from({length:2},(e,t)=>(0,W.jsx)(z,{className:`h-[60px] rounded-lg`},t))}):e.status===`error`?null:(0,W.jsxs)(`div`,{className:`grid grid-cols-2 gap-3 pt-2`,children:[(0,W.jsx)(ln,{icon:(0,W.jsx)(w,{className:`h-4 w-4`}),value:q(e.summary.totalEstimatedCostUsd),label:t(`scheduleDetail.costLabel`,{days:7})}),(0,W.jsx)(ln,{icon:(0,W.jsx)(D,{className:`h-4 w-4`}),value:St(e.summary.runCount),label:t(`scheduleDetail.runsLabel`,{days:7})})]})}function dn(e){return e.exists&&e.archivedAt==null}function fn({run:e,index:t,isExpanded:n,disableDirectOpen:i,onOpenConversation:a,onToggleDetails:o}){let{t:s}=r(`schedules`),c=Et(e),l=e.conversations??(c?[{id:c,title:null,exists:!0,archivedAt:null}]:[]),u=J(e.output),d=J(e.error),f=!i&&l.length===1&&dn(l[0])?l[0].id:null,m=!f&&(l.length>0||u||d),h=`schedule-run-details-${t}`,g=!!f||m,_=(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(Ht,{status:e.status}),(0,W.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,W.jsx)(`div`,{className:`text-body-medium-lighter text-[var(--content-default)]`,children:K(e.startedAt)}),(0,W.jsxs)(`div`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:[bt(e.durationMs),` ·`,` `,q(e.estimatedCostUsd)]}),e.status===`error`&&e.error?(0,W.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]}),g?(0,W.jsx)(x,{className:p(`h-4 w-4 shrink-0 text-[var(--content-tertiary)] transition-transform`,m&&n?`rotate-90`:``)}):null]}),v=m&&n?(0,W.jsx)(`div`,{id:h,className:`px-2 pb-3`,children:(0,W.jsxs)(`div`,{className:`space-y-3 rounded-md border border-[var(--border-subtle)] bg-[var(--surface-sunken)] p-3`,children:[l.length>0?(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`div`,{className:`mb-1 text-body-small-default text-[var(--content-secondary)]`,children:s(`scheduleDetail.conversations`)}),(0,W.jsx)(`div`,{className:`space-y-1`,children:l.map(e=>dn(e)?(0,W.jsx)(`button`,{type:`button`,onClick:()=>a(e.id),className:`block w-full truncate text-left text-body-small-default text-[var(--content-default)] hover:underline`,children:J(e.title)?e.title:s(`scheduleDetail.conversation`)},e.id):(0,W.jsxs)(`span`,{className:`block truncate text-body-small-default text-[var(--content-tertiary)] italic`,children:[J(e.title)?e.title:s(`scheduleDetail.conversation`),` `,e.exists?s(`scheduleDetail.conversationArchived`):s(`scheduleDetail.conversationUnavailable`)]},e.id))})]}):null,u?(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`div`,{className:`mb-1 text-body-small-default text-[var(--content-secondary)]`,children:s(`scheduleDetail.output`)}),(0,W.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,d?(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`div`,{className:`mb-1 text-body-small-default text-[var(--content-secondary)]`,children:s(`scheduleDetail.error`)}),(0,W.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 f?(0,W.jsx)(`div`,{children:(0,W.jsx)(`button`,{type:`button`,onClick:()=>a(f),"aria-label":s(`scheduleDetail.openRunConversationAria`,{time:K(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:_})}):m?(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`button`,{type:`button`,onClick:()=>o(e.id),"aria-label":s(`scheduleDetail.toggleRunDetailsAria`,{time:K(e.startedAt)}),"aria-expanded":n,"aria-controls":h,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:_}),v]}):(0,W.jsx)(`div`,{className:`flex items-center gap-3 px-2 py-3`,children:_})}function pn({runs:e,isLoading:t,disableDirectOpen:n,onOpenConversation:i}){let{t:a}=r(`schedules`),[o,s]=(0,H.useState)(null);return t?(0,W.jsx)(`div`,{className:`flex items-center justify-center py-6`,children:(0,W.jsx)(T,{className:`h-5 w-5 animate-spin text-stone-400`})}):!e||e.length===0?(0,W.jsx)(`p`,{className:`py-2 text-body-medium-lighter text-[var(--content-tertiary)] italic`,children:a(`scheduleDetail.noRunsYet`)}):(0,W.jsx)(`div`,{className:`-mx-2 divide-y divide-[var(--border-base)]`,children:e.map((e,t)=>(0,W.jsx)(fn,{run:e,index:t,isExpanded:o===e.id,disableDirectOpen:n,onOpenConversation:i,onToggleDetails:e=>s(t=>t===e?null:e)},e.id))})}function mn({schedule:e,assistantId:t,usage:i,isPast:s=!1,onClose:c,onDeleted:u}){let{t:d}=r(`schedules`),f=o(),{data:p,isLoading:m}=l({queryKey:me({path:{assistant_id:t,id:e.id}}),queryFn:()=>Ge(t,e.id),staleTime:1e4}),[h,g]=(0,H.useState)(!1),[_,v]=(0,H.useState)(!1),[b,x]=(0,H.useState)(!1),S=$t(e.sourceKey),C=tn(e),w=S!==null&&!e.enabled,E=async()=>{g(!0);try{await We(t,e.id)}catch(e){n(e,{context:`schedule_run_now`}),I.error(d(`scheduleDetail.runFailed`))}finally{g(!1)}},D=async()=>{x(!0);try{await Ue(t,e.id),u()}catch(e){n(e,{context:`schedule_delete`}),I.error(d(`scheduleDetail.deleteFailed`)),x(!1),v(!1)}};return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsxs)(`div`,{className:`flex h-full flex-col bg-[var(--surface-overlay)] md:rounded-[var(--radius-xl)] md:border md:border-[var(--border-base)]`,children:[(0,W.jsx)(Fe,{title:e.name,headerActions:S?void 0:(0,W.jsx)(a,{variant:`dangerOutline`,iconOnly:(0,W.jsx)(k,{}),"aria-label":d(`scheduleDetail.delete`),tooltip:d(`scheduleDetail.delete`),onClick:()=>v(!0)}),closeLabel:d(`scheduleDetail.closeAria`),closeTooltip:d(`scheduleDetail.close`),onClose:c}),(0,W.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,W.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-secondary)]`,children:e.description}):null,(0,W.jsx)(Z,{title:d(`scheduleDetail.details`),children:(0,W.jsxs)(`div`,{className:`space-y-2`,children:[e.cadenceDescription?(0,W.jsx)(Q,{label:d(`scheduleDetail.cadence`),value:e.cadenceDescription}):null,(0,W.jsx)(Q,{label:d(`scheduleDetail.mode`),value:e.mode}),(0,W.jsx)(cn,{schedule:e,assistantId:t,isPast:s}),(0,W.jsx)(Q,{label:d(`scheduleDetail.status`),value:e.enabled?d(`scheduleDetail.enabled`):d(`scheduleDetail.disabled`)}),(0,W.jsx)(Q,{label:d(`scheduleDetail.nextRun`),value:K(e.nextRunAt)}),e.lastRunAt?(0,W.jsx)(Q,{label:d(`scheduleDetail.lastRun`),value:(0,W.jsxs)(`span`,{className:`flex items-center justify-end gap-2`,children:[(0,W.jsx)(Ht,{status:e.lastStatus}),K(e.lastRunAt)]})}):null]})}),(0,W.jsx)(un,{usage:i}),(0,W.jsx)(Z,{title:d(`scheduleDetail.recentRuns`),children:(0,W.jsx)(pn,{runs:p?.runs,isLoading:m,disableDirectOpen:e.mode===`script`,onOpenConversation:e=>De(f,e)})})]}),(0,W.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between gap-2 border-t border-[var(--border-hover)] p-[var(--app-spacing-lg)]`,children:[S?(0,W.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:C?d(`scheduleDetail.managedByPluginPaused`,{plugin:S,reason:d(C)}):d(`scheduleDetail.managedByPlugin`,{plugin:S})}):(0,W.jsx)(`span`,{}),(0,W.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,W.jsx)(a,{variant:`outlined`,leftIcon:(0,W.jsx)(y,{className:`h-3.5 w-3.5`}),onClick:()=>f(V.settings.usageForSchedule(e.id)),children:d(`scheduleDetail.viewUsage`)}),e.mode===`script`?(0,W.jsxs)(W.Fragment,{children:[w?(0,W.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:d(`scheduleDetail.turnOnToRun`)}):null,(0,W.jsx)(a,{variant:`primary`,leftIcon:h?(0,W.jsx)(T,{className:`h-3.5 w-3.5 animate-spin`}):void 0,onClick:()=>void E(),disabled:h||w,children:d(h?`scheduleDetail.running`:`scheduleDetail.runNow`)})]}):null]})]})]}),(0,W.jsx)(L,{open:_,title:d(`scheduleDetail.delete`),message:d(`scheduleDetail.deleteConfirmMessage`,{name:e.name}),confirmLabel:d(`scheduleDetail.confirmDelete`),cancelLabel:d(`scheduleDetail.cancel`),destructive:!0,isPending:b,onConfirm:()=>void D(),onCancel:()=>v(!1)})]})}function hn(e){if(e.status===`loading`)return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(z,{as:`span`,className:`h-4 w-12`}),(0,W.jsx)(z,{as:`span`,className:`h-4 w-10`})]});if(e.status===`error`)return(0,W.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`—`});let{summary:t}=e;return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`span`,{className:`text-body-small-default text-[var(--content-secondary)]`,children:q(t.totalEstimatedCostUsd)}),(0,W.jsx)(`span`,{className:`text-body-small-default text-[var(--content-secondary)]`,children:St(t.runCount)})]})}function gn({name:e,badge:t,metaParts:n,usage:r,enabled:i,selected:a,onClick:o,onToggle:s,toggleAriaLabel:c}){return(0,W.jsxs)(`div`,{className:`flex items-center gap-3 rounded-md px-2 py-3 transition-colors [&+&]:border-t [&+&]:border-[var(--border-base)] ${a?`bg-[var(--surface-active)]`:`hover:bg-[var(--surface-hover)]`}`,children:[s?(0,W.jsx)(ee,{checked:i,onChange:s,"aria-label":c}):null,(0,W.jsxs)(`button`,{type:`button`,onClick:o,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,W.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-1`,children:[(0,W.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[(0,W.jsx)(`span`,{className:`truncate text-body-medium-default text-[var(--content-default)]`,children:e}),t]}),n.length>0?(0,W.jsx)(`span`,{className:`flex min-w-0 items-center gap-2 text-label-small-default text-[var(--content-tertiary)]`,children:n.map((e,t)=>(0,W.jsxs)(H.Fragment,{children:[t>0?(0,W.jsx)(`span`,{className:`h-[3px] w-[3px] shrink-0 rounded-full bg-[var(--content-tertiary)]`}):null,(0,W.jsx)(`span`,{className:`truncate`,children:e})]},t))}):null]}),(0,W.jsxs)(`div`,{className:`flex shrink-0 items-center gap-4`,children:[hn(r),(0,W.jsx)(x,{className:`h-4 w-4 text-[var(--content-tertiary)]`})]})]})]})}function _n({schedule:e,usage:t,selected:n,onClick:i,onToggle:a}){let{t:o}=r(`schedules`),s=e.isOneShot?``:e.cadenceDescription.trim(),c=e.lastRunAt??e.nextRunAt,l=tn(e),u=[l?o(l):``,s,c?K(c):``].filter(Boolean),d=$t(e.sourceKey);return(0,W.jsx)(gn,{name:e.name,badge:d?(0,W.jsx)(M,{tone:`info`,children:d}):void 0,metaParts:u,usage:t,enabled:e.enabled,selected:n,onClick:i,onToggle:a,toggleAriaLabel:a?o(`scheduleRow.toggleAria`,{name:e.name}):void 0})}function vn({recurring:e,oneTime:t,pastOneTime:n,usageForSchedule:i,isLoading:o,isError:s,refetch:c,onToggle:l,onSelectSchedule:u,selectedScheduleId:d,onStartNewChat:f,onCreateSchedule:p,pastOpen:m,onPastOpenChange:h,onRebaseProfiles:g,defaultProfileLabel:_,systemTasksSlot:y}){let{t:b}=r(`schedules`),S=e=>(0,W.jsx)(_n,{schedule:e,usage:i(e.id),selected:e.id===d,onClick:()=>u(e.id),onToggle:t=>l(e.id,t)},e.id),C=e=>(0,W.jsx)(_n,{schedule:e,usage:i(e.id),selected:e.id===d,onClick:()=>u(e.id)},e.id),w=n.length>0?(0,W.jsx)(j.Root,{type:`single`,collapsible:!0,className:`mt-3`,value:m?`past`:``,onValueChange:e=>h(e===`past`),children:(0,W.jsxs)(j.Item,{value:`past`,children:[(0,W.jsxs)(j.Trigger,{className:`group gap-[var(--app-spacing-xs)] px-2 text-label-small-default text-[var(--content-tertiary)]`,children:[(0,W.jsx)(x,{size:14,"aria-hidden":!0,className:`shrink-0 transition-transform group-data-[state=open]:rotate-90`}),(0,W.jsx)(`span`,{children:b(`schedulesPanel.pastToggle`,{count:n.length})})]}),(0,W.jsx)(j.Content,{children:(0,W.jsx)(`div`,{className:`pt-1`,children:n.map(C)})})]})}):null;return(0,W.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto`,children:[o?(0,W.jsx)(`div`,{className:`space-y-3`,children:Array.from({length:2},(e,t)=>(0,W.jsx)(z,{className:`h-12 rounded-md`},t))}):s&&e.length===0?(0,W.jsx)(A,{tone:`error`,actions:(0,W.jsx)(`button`,{type:`button`,onClick:c,className:`cursor-pointer underline hover:no-underline`,children:b(`schedulesPanel.retry`)}),children:b(`schedulesPanel.loadFailed`)}):e.length===0&&t.length===0&&n.length===0?(0,W.jsx)(Ze,{icon:v,title:b(`schedulesPanel.emptyTitle`),description:b(`schedulesPanel.emptyDescription`),actions:(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(a,{variant:`primary`,size:`regular`,onClick:f,children:b(`schedulesPanel.newConversation`)}),(0,W.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:b(`schedulesPanel.emptyActionsSeparator`)}),(0,W.jsx)(a,{variant:`outlined`,size:`regular`,onClick:p,children:b(`schedulesPanel.createSchedule`)})]})}):(0,W.jsxs)(`div`,{children:[g&&_?(0,W.jsx)(`div`,{className:`mb-1 flex min-w-0 justify-end`,children:(0,W.jsx)(a,{variant:`outlined`,size:`compact`,onClick:g,className:`max-w-full truncate`,children:b(`schedulesPanel.useProfileForAll`,{profile:_})})}):null,e.map(S),t.length>0?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`p`,{className:`mt-3 px-2 text-label-small-default text-[var(--content-tertiary)]`,children:b(`schedulesPanel.oneTimeHeading`)}),t.map(C)]}):null,w]}),y?(0,W.jsx)(`div`,{className:`mt-[var(--app-spacing-lg)]`,children:y}):null]})}function yn({runs:e,isLoading:t,emptyMessage:n,hasMore:i=!1,isLoadingMore:s=!1,onLoadMore:c}){let{t:l}=r(`settings`),u=o(),[d,f]=(0,H.useState)(null),p=n??l(`recentRunsCard.emptyDefault`),m=i&&c?(0,W.jsx)(`div`,{className:`flex justify-center pt-3`,children:(0,W.jsx)(a,{variant:`outlined`,size:`compact`,onClick:c,disabled:s,leftIcon:s?(0,W.jsx)(T,{className:`h-3.5 w-3.5 animate-spin`}):void 0,children:l(s?`recentRunsCard.loadingMore`:`recentRunsCard.loadMore`)})}):null;return(0,W.jsx)(Z,{title:l(`recentRunsCard.title`),children:t?(0,W.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,W.jsx)(T,{className:`h-5 w-5 animate-spin text-stone-400`})}):!e||e.length===0?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`p`,{className:`py-4 text-center text-body-medium-lighter text-[var(--content-tertiary)] italic`,children:p}),m]}):(0,W.jsxs)(`div`,{className:`divide-y divide-[var(--border-base)]`,children:[e.map((e,t)=>{let n=Et(e),r=J(e.output),i=J(e.error),a=e.status===`skipped`||e.status===`missed`,o=!n&&!a&&(r||i),s=d===e.id,c=`schedule-run-details-${t}`;return(0,W.jsxs)(`div`,{children:[(0,W.jsx)(g,{label:(0,W.jsxs)(`span`,{className:`flex min-w-0 flex-1 items-center gap-3`,children:[(0,W.jsx)(Ht,{status:e.status}),(0,W.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,W.jsx)(`span`,{className:`block truncate text-body-medium-lighter text-[var(--content-default)]`,children:J(e.title)?e.title:K(e.startedAt)}),(0,W.jsxs)(`span`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:[J(e.title)?`${K(e.startedAt)} · `:``,a?(0,W.jsx)(W.Fragment,{children:r?e.output:e.status===`missed`?l(`recentRunsCard.missed`):l(`recentRunsCard.skipped`)}):(0,W.jsxs)(W.Fragment,{children:[bt(e.durationMs),` ·`,` `,q(e.estimatedCostUsd)]}),e.status===`error`&&e.error&&(0,W.jsxs)(`span`,{className:`ml-2 text-[var(--system-negative-strong)]`,children:[e.error.slice(0,80),e.error.length>80?`…`:``]})]})]}),n||o?(0,W.jsx)(x,{className:`h-4 w-4 shrink-0 text-[var(--content-tertiary)] transition-transform ${s?`rotate-90`:``}`}):null]}),onSelect:n?()=>De(u,n):o?()=>f(s?null:e.id):void 0,"aria-label":l(`recentRunsCard.runAtAria`,{time:K(e.startedAt)}),"aria-expanded":o?s:void 0,"aria-controls":o?c:void 0,className:`h-auto py-2.5 gap-3 -mx-2 px-2`}),o&&s?(0,W.jsx)(`div`,{id:c,className:`px-2 pb-3`,children:(0,W.jsxs)(`div`,{className:`space-y-3 rounded-md border border-[var(--border-subtle)] bg-[var(--surface-sunken)] p-3`,children:[r?(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`div`,{className:`mb-1 text-body-small-default text-[var(--content-secondary)]`,children:l(`recentRunsCard.output`)}),(0,W.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,W.jsxs)(`div`,{children:[(0,W.jsx)(`div`,{className:`mb-1 text-body-small-default text-[var(--content-secondary)]`,children:l(`recentRunsCard.error`)}),(0,W.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)}),m]})})}var bn={heartbeat:`heartbeatAgent`,consolidation:`memoryV2Consolidation`,retrospective:`memoryRetrospective`};function $({label:e,value:t}){return(0,W.jsxs)(`div`,{className:`flex min-h-6 items-center justify-between gap-4`,children:[(0,W.jsx)(`span`,{className:`shrink-0 text-[var(--content-secondary)]`,children:e}),(0,W.jsx)(`span`,{className:`flex min-w-0 items-center justify-end gap-2 text-right text-[var(--content-default)]`,children:t})]})}function xn({kind:e,assistantId:t,systemTasks:n,canOpenMemorySettings:i,onClose:s}){let{t:c}=r(`schedules`),l=o(),{heartbeatConfig:d,consolidationConfig:f,retrospectiveConfig:p}=n,m,h,g,_,v,y,b;e===`heartbeat`?(m=c(`systemTaskDetail.nameHeartbeat`),h=d?At(d):``,g=d?.enabled??!1,_=d?.nextRunAt??null,v=d?.lastRunAt??null,y=n.isHeartbeatRunning,b=n.runHeartbeatNow):e===`consolidation`?(m=c(`systemTaskDetail.nameConsolidation`),h=f?jt(f):``,g=f?.enabled??!1,_=f?.nextRunAt??null,v=f?.lastRunAt??null,y=n.isConsolidationRunning,b=n.runConsolidationNow):(m=c(`systemTaskDetail.nameRetrospective`),h=Mt,g=p?.enabled??!1,_=p?.nextRunAt??null,v=p?.lastRunAt??null,y=!1,b=void 0);let x=e!==`heartbeat`,S=e===`retrospective`,C=x&&!g,w=y||C,D=c(x?g?`systemTaskDetail.statusManagedOn`:`systemTaskDetail.statusPaused`:g?`scheduleDetail.enabled`:`scheduleDetail.disabled`),k=S&&p?.available===!0,j=c(k?`systemTaskDetail.pausedRetrospectiveSwitchedOff`:S?`systemTaskDetail.pausedRetrospective`:`systemTaskDetail.pausedConsolidation`),M=x&&g&&i,N={path:{assistant_id:t},query:{limit:25}},P=e===`heartbeat`?ge(N):e===`consolidation`?we(N):pe(N),{data:F,isLoading:I,fetchNextPage:L,hasNextPage:R,isFetchingNextPage:z}=u({queryKey:P.queryKey,queryFn:P.queryFn,initialPageParam:{path:N.path,query:{}},getNextPageParam:e=>e.nextCursor??void 0,staleTime:1e4}),B=wt(F?.pages.map(t=>({runs:t.runs.filter(e=>!Dt(e)).map(t=>Y(t,e))}))),te=B?.find(e=>Ot(e)&&e.status!==`running`),ne=v??te?.finishedAt??te?.startedAt??null;return(0,W.jsxs)(`div`,{className:`flex h-full flex-col bg-[var(--surface-overlay)] md:rounded-[var(--radius-xl)] md:border md:border-[var(--border-base)]`,children:[(0,W.jsx)(Fe,{title:m,closeLabel:c(`scheduleDetail.closeAria`),closeTooltip:c(`scheduleDetail.close`),onClose:s}),(0,W.jsxs)(`div`,{className:`flex-1 space-y-6 overflow-y-auto px-[var(--app-spacing-lg)] py-[var(--app-spacing-lg)]`,children:[(0,W.jsxs)(`div`,{children:[(0,W.jsx)(Z,{title:c(`scheduleDetail.details`),children:(0,W.jsxs)(`div`,{className:`space-y-2 text-body-medium-lighter`,children:[(0,W.jsx)($,{label:c(`scheduleDetail.status`),value:(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`span`,{className:`truncate`,children:D}),x?null:(0,W.jsx)(ee,{size:`sm`,checked:g,onChange:n.toggleHeartbeat,"aria-label":c(`scheduleDetail.toggleAria`,{name:m})})]})}),(0,W.jsx)(rn,{assistantId:t,defaultCallSite:bn[e],fallbackLabel:c(`systemTaskDetail.fallbackModelProfile`),respectCallSiteOverride:!0}),h?(0,W.jsx)($,{label:c(`systemTaskDetail.repeats`),value:(0,W.jsx)(`span`,{className:`truncate`,children:h})}):null,S?null:(0,W.jsx)($,{label:c(`scheduleDetail.nextRun`),value:(0,W.jsx)(`span`,{className:`truncate`,children:K(_)})}),(0,W.jsx)($,{label:c(`scheduleDetail.lastRun`),value:(0,W.jsx)(`span`,{className:`truncate`,children:K(ne)})})]})}),C?(0,W.jsx)(A,{tone:`warning`,className:`mt-4`,actions:i?(0,W.jsx)(a,{variant:`outlined`,size:`compact`,onClick:()=>l(`${V.settings.developer}?tab=memory`),children:c(k?`systemTaskDetail.openMemorySettings`:`systemTaskDetail.turnOnMemory`)}):void 0,children:j}):null]}),(0,W.jsx)(yn,{runs:B,isLoading:I,hasMore:R,isLoadingMore:z,onLoadMore:()=>void L()})]}),M||b?(0,W.jsxs)(`div`,{className:`flex shrink-0 items-center justify-end gap-2 border-t border-[var(--border-hover)] p-[var(--app-spacing-lg)]`,children:[M?(0,W.jsx)(a,{variant:`outlined`,leftIcon:(0,W.jsx)(O,{className:`h-3.5 w-3.5`}),onClick:()=>l(`${V.settings.developer}?tab=memory`),children:c(`systemTaskDetail.memorySettings`)}):null,b?(0,W.jsx)(a,{variant:`primary`,leftIcon:y?(0,W.jsx)(T,{className:`h-3.5 w-3.5 animate-spin`}):(0,W.jsx)(E,{className:`h-3.5 w-3.5`}),onClick:b,disabled:w,children:c(y?`scheduleDetail.running`:`scheduleDetail.runNow`)}):null]}):null]})}function Sn(e){let r=Ne(),[i]=(0,H.useState)(()=>Date.now()),{data:a,isLoading:o,isError:s,refetch:c}=l(Ie(e)),{data:u,isLoading:d,isError:f}=l(It(e,r,!0)),{recurring:p,oneTime:m,pastOneTime:h}=(0,H.useMemo)(()=>{let e=Ft(a??[],i);return{recurring:e.recurring,oneTime:e.upcomingOneTime,pastOneTime:e.pastOneTime}},[i,a]),g=(0,H.useMemo)(()=>new Map((u??[]).map(e=>[e.scheduleId,e])),[u]);return{recurring:p,oneTime:m,pastOneTime:h,usageForSchedule:(0,H.useCallback)(e=>d?{status:`loading`}:f?{status:`error`}:{status:`ready`,summary:g.get(e)??Lt(e)},[f,d,g]),handleToggle:(0,H.useCallback)(async(r,i)=>{if(e)try{await Ke(e,r,i),c()}catch(e){n(e,{context:`schedule_toggle`}),I.error(t(`schedules:scheduleDetail.toggleFailed`))}},[e,c]),isLoading:o,isError:s,refetch:(0,H.useCallback)(()=>{c()},[c])}}function Cn(){let e=o(),{scheduleId:t}=s(),n=Pe(),r=ke(),i=Ne(),a=Sn(n),c=Qt(n,i),l=je(`memoryOptOut`),u=Me.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?V.schedules.detail(t):V.schedules.root)},[e]),b=m?a.recurring.find(e=>e.id===m)??a.oneTime.find(e=>e.id===m)??a.pastOneTime.find(e=>e.id===m)??null:null;(0,H.useEffect)(()=>{m&&!a.isLoading&&!a.isError&&!b&&y(null)},[m,b,a.isLoading,a.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)(()=>{Oe(e)},[e]),T=Bt(n,(0,H.useMemo)(()=>[...a.recurring,...a.oneTime,...a.pastOneTime],[a.recurring,a.oneTime,a.pastOneTime]),a.refetch),E=(b?(0,W.jsx)(mn,{schedule:b,assistantId:n,usage:a.usageForSchedule(b.id),isPast:a.pastOneTime.some(e=>e.id===b.id),onClose:()=>y(null),onDeleted:()=>{y(null),a.refetch()}}):null)??(h&&x?(0,W.jsx)(xn,{kind:h,assistantId:n,systemTasks:c,canOpenMemorySettings:d,onClose:()=>g(null)}):null),D=(0,W.jsx)(vn,{recurring:a.recurring,oneTime:a.oneTime,pastOneTime:a.pastOneTime,usageForSchedule:a.usageForSchedule,isLoading:a.isLoading,isError:a.isError,refetch:a.refetch,onToggle:a.handleToggle,onSelectSchedule:S,selectedScheduleId:m,onStartNewChat:w,onCreateSchedule:()=>p(!0),pastOpen:_,onPastOpenChange:v,onRebaseProfiles:T.canRebase?T.requestRebase:void 0,defaultProfileLabel:T.defaultProfileLabel??void 0,systemTasksSlot:(0,W.jsx)(Gt,{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`)})}),O=(0,W.jsx)(Vt,{...T.dialogProps});return E&&r?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(Re,{children:E}),O]}):(0,W.jsxs)(W.Fragment,{children:[E&&!r?(0,W.jsx)(ze,{storageKey:`schedulesDetailDrawerWidth`,detailKey:m??h??void 0,section:D,detail:E}):D,(0,W.jsx)(dt,{isOpen:f,assistantId:n,onClose:()=>p(!1),onCreated:()=>{p(!1),a.refetch()}}),O]})}export{Cn as SchedulesPage};
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{k as t,l as n,v as r}from"./i18n-BDfnKs41.js";import{t as i}from"./react-DJZBPgpf.js";import{t as a}from"./button-B1kEAcLt.js";import{d as o,p as s}from"./chunk-5KNZJZUH-CPFsMQoz.js";import{n as c}from"./QueryClientProvider-BPZM68-A.js";import{t as l}from"./useQuery-BtL9k7Sh.js";import{t as u}from"./useInfiniteQuery-Dz6qbDTQ.js";import{t as d}from"./useMutation-Cl7cazkm.js";import{t as f}from"./jsx-runtime-COOF1INC.js";import{t as p}from"./cn-naJKasky.js";import{t as m}from"./typography-SdxpXI_m.js";import{t as h}from"./card-B4b9cF6X.js";import{n as g,o as _}from"./list-row-BvCm9O6y.js";import{t as v}from"./calendar-Bbg9LoLZ.js";import{t as y}from"./chart-column-BSXp3tJF.js";import{t as b}from"./chevron-down-D437oaYt.js";import{t as x}from"./chevron-right-D5lPX854.js";import{t as S}from"./circle-alert-BaeJJrSp.js";import{t as C}from"./clock-HLo0irRS.js";import{t as w}from"./coins-S_-Fmv_r.js";import{t as T}from"./loader-circle-DZ65N8bz.js";import{t as E}from"./play-D-HSCeZj.js";import{t as D}from"./repeat-6uW-THNc.js";import{t as O}from"./settings-C37vdp_B.js";import{t as k}from"./trash-2-CVpEwOYZ.js";import{t as A}from"./notice-BHeYlKvv.js";import{s as j}from"./src-BKET5Cno.js";import{t as M}from"./tag-DAsImP7W.js";import{n as N,t as P}from"./input-ChbJ2nzd.js";import{t as ee}from"./toggle-CdhdS_iC.js";import{t as F}from"./modal-_49mDK_d.js";import{n as I}from"./toast-BKrDuNtu.js";import{t as L}from"./confirm-dialog-EPYSBP_B.js";import{t as R}from"./select-DmdFZj4l.js";import{t as z}from"./skeleton-BV6nOVEl.js";import{t as B}from"./Trans-v2rRKTPL.js";import{a as te,l as ne,n as re,o as ie,r as ae,s as oe}from"./profile-pickers-D8XVv50L.js";import{f as V}from"./routes-C6ueuiMd.js";import{B as se,C as ce,Ct as le,Dt as ue,H as de,S as fe,St as pe,Tt as me,U as he,V as ge,b as _e,d as ve,ln as ye,m as be,tn as xe,un as Se,wt as Ce,x as we,xt as Te,z as Ee}from"./react-query.gen-C_GLKG7m.js";import{n as De,r as Oe}from"./conversation-navigation-116d0b9Q.js";import{n as ke}from"./use-is-mobile-DYVRtRin.js";import{t as Ae}from"./effective-timezone-BZrvS5yC.js";import{t as je}from"./use-assistant-capability-D_tZY-cd.js";import{t as Me}from"./assistant-feature-flag-store-Co_o5uD3.js";import{t as Ne}from"./use-effective-timezone-DByqidDL.js";import{t as Pe}from"./use-active-assistant-id-lxYJu99R.js";import{n as Fe}from"./detail-shell-CNYbfTO7.js";import{n as Ie}from"./schedules-5MJ4hhjn.js";import{t as Le}from"./detail-card-D9EAxXI8.js";import{n as Re,t as ze}from"./detail-drawer-BoNujeL5.js";import{a as Be,c as Ve,i as He,n as Ue,o as We,r as Ge,s as Ke,t as qe}from"./schedules-DCr5HsxY.js";import{i as Je,n as Ye,t as Xe}from"./profile-metadata-DeknMkvV.js";import{t as Ze}from"./page-empty-state-iXCJNtzb.js";var H=e(i(),1),Qe={frequency:`daily`,minute:0,hour24:9,weekdays:[1],dayOfMonth:1},$e=[{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`}],et=[1,2,3,4,5];function U(e,t,n){return Number.isFinite(e)?Math.min(n,Math.max(t,Math.round(e))):t}function tt(e){let t=Array.from(new Set(e.map(e=>U(e,0,6)).filter(e=>Number.isInteger(e)))).sort((e,t)=>e-t);return t.length>0?t:[1]}function nt(e){let t=U(e.minute,0,59),n=U(e.hour24,0,23);switch(e.frequency){case`hourly`:return`${t} * * * *`;case`daily`:return`${t} ${n} * * *`;case`weekly`:return`${t} ${n} * * ${tt(e.weekdays).join(`,`)}`;case`monthly`:return e.dayOfMonth===`last`?`${t} ${n} L * *`:`${t} ${n} ${U(e.dayOfMonth,1,28)} * *`}}function rt(e,t){let n=U(e,0,23),r=U(t,0,59),i=n<12?`AM`:`PM`;return`${n%12==0?12:n%12}:${String(r).padStart(2,`0`)} ${i}`}function it(e){let t=[`th`,`st`,`nd`,`rd`],n=e%100;return`${e}${t[(n-20)%10]??t[n]??t[0]}`}function at(e){let t=tt(e),n=new Set(t);if(t.length===7)return`every day`;if(t.length===5&&et.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 ${$e[t[0]]?.full??`day`}`;let r=t.map(e=>$e[e]?.short??``),i=r.pop();return`every ${r.join(`, `)} & ${i}`}function ot(e){let t=rt(e.hour24,e.minute);switch(e.frequency){case`hourly`:{let t=U(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 ${at(e.weekdays)} at ${t}`;case`monthly`:return e.dayOfMonth===`last`?`Runs on the last day of every month at ${t}`:`Runs on the ${it(U(e.dayOfMonth,1,28))} of every month at ${t}`}}var W=f(),st=Array.from({length:12},(e,t)=>{let n=t+1;return{value:String(n),label:String(n)}}),ct=Array.from({length:12},(e,t)=>{let n=t*5,r=String(n).padStart(2,`0`);return{value:r,label:r}});function lt(e,t){let n=e%12;return t===`PM`?n+12:n}function ut(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 dt({isOpen:e,assistantId:t,onClose:n,onCreated:r}){return(0,W.jsx)(F.Root,{open:e,onOpenChange:e=>{e||n()},children:e?(0,W.jsx)(ft,{assistantId:t,onClose:n,onCreated:r}):null})}function ft({assistantId:e,onClose:t,onCreated:n}){let{t:i}=r(`settings`),o=Ne(),[s,c]=(0,H.useState)(``),[l,u]=(0,H.useState)(``),[d,f]=(0,H.useState)(``),[p,m]=(0,H.useState)(`simple`),[h,g]=(0,H.useState)(Qe),[_,v]=(0,H.useState)(``),[y,b]=(0,H.useState)(!1),[x,S]=(0,H.useState)(null),C=s.trim(),w=l.trim(),T=d.trim(),E=_.trim(),D=(0,H.useMemo)(()=>p===`simple`?nt(h):E,[p,h,E]),O=(0,H.useMemo)(()=>p===`simple`?ot(h):E||i(`createScheduleModal.cronContinuePrompt`),[p,h,E,i]),k=(0,H.useMemo)(()=>ut(o),[o]),A=C.length>0&&w.length>0&&T.length>0&&D.length>0&&!y;return(0,W.jsxs)(F.Content,{size:`md`,children:[(0,W.jsxs)(F.Header,{children:[(0,W.jsx)(F.Title,{children:i(`createScheduleModal.title`)}),(0,W.jsx)(F.Description,{children:i(`createScheduleModal.description`)})]}),(0,W.jsxs)(`form`,{onSubmit:async t=>{if(t.preventDefault(),A){b(!0),S(null);try{await qe(e,{name:C,description:w,expression:D,message:T,timezone:o}),b(!1),n()}catch(e){S(e instanceof Error?e.message:i(`createScheduleModal.createFailed`)),b(!1)}}},children:[(0,W.jsx)(F.Body,{children:(0,W.jsxs)(`div`,{className:`flex flex-col gap-5`,children:[(0,W.jsx)(P,{label:i(`createScheduleModal.nameLabel`),placeholder:i(`createScheduleModal.namePlaceholder`),value:s,onChange:e=>c(e.target.value),required:!0,autoFocus:!0,fullWidth:!0}),(0,W.jsx)(N,{label:i(`createScheduleModal.descriptionLabel`),placeholder:i(`createScheduleModal.descriptionPlaceholder`),value:l,onChange:e=>u(e.target.value),required:!0,fullWidth:!0,rows:2}),(0,W.jsx)(_t,{label:i(`createScheduleModal.repeatLabel`),children:p===`simple`?(0,W.jsx)(pt,{cadence:h,onChange:g}):(0,W.jsx)(gt,{value:_,onChange:v,onUseSimple:()=>m(`simple`)})}),(0,W.jsx)(vt,{summary:O,mono:p===`advanced`&&E.length>0,timezoneLabel:k}),p===`simple`?(0,W.jsx)(`button`,{type:`button`,onClick:()=>{v(e=>e||nt(h)),m(`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:i(`createScheduleModal.advancedCron`)}):null,(0,W.jsx)(N,{label:i(`createScheduleModal.messageLabel`),placeholder:i(`createScheduleModal.messagePlaceholder`),value:d,onChange:e=>f(e.target.value),required:!0,fullWidth:!0,rows:4}),x?(0,W.jsx)(`p`,{className:`text-body-small-default text-[var(--system-negative-strong)]`,children:x}):null]})}),(0,W.jsxs)(F.Footer,{children:[(0,W.jsx)(a,{variant:`outlined`,onClick:t,type:`button`,children:i(`createScheduleModal.cancel`)}),(0,W.jsx)(a,{variant:`primary`,type:`submit`,disabled:!A,children:i(y?`createScheduleModal.creating`:`createScheduleModal.create`)})]})]})]})}function pt({cadence:e,onChange:t}){let{t:n}=r(`settings`),i=[{value:`hourly`,label:n(`createScheduleModal.frequencyHourly`)},{value:`daily`,label:n(`createScheduleModal.frequencyDaily`)},{value:`weekly`,label:n(`createScheduleModal.frequencyWeekly`)},{value:`monthly`,label:n(`createScheduleModal.frequencyMonthly`)}],a=[...Array.from({length:28},(e,t)=>{let n=t+1;return{value:String(n),label:it(n)}}),{value:`last`,label:n(`createScheduleModal.lastDay`)}];return(0,W.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,W.jsx)(_,{items:i,value:e.frequency,onChange:n=>t({...e,frequency:n}),ariaLabel:n(`createScheduleModal.frequencyAriaLabel`)}),e.frequency===`hourly`?(0,W.jsx)(G,{label:n(`createScheduleModal.atMinute`),children:(0,W.jsx)(R,{options:ct,value:String(e.minute).padStart(2,`0`),onChange:n=>t({...e,minute:Number(n)}),"aria-label":n(`createScheduleModal.minuteAriaLabel`),className:`w-24`})}):null,e.frequency===`weekly`?(0,W.jsx)(G,{label:n(`createScheduleModal.onTheseDays`),children:(0,W.jsx)(ht,{value:e.weekdays,onChange:n=>t({...e,weekdays:n})})}):null,e.frequency===`monthly`?(0,W.jsx)(G,{label:n(`createScheduleModal.onDay`),children:(0,W.jsx)(R,{options:a,value:e.dayOfMonth===`last`?`last`:String(e.dayOfMonth),onChange:n=>t({...e,dayOfMonth:n===`last`?`last`:Number(n)}),"aria-label":n(`createScheduleModal.dayOfMonthAriaLabel`),className:`w-32`})}):null,e.frequency===`hourly`?null:(0,W.jsx)(G,{label:n(`createScheduleModal.atTime`),children:(0,W.jsx)(mt,{hour24:e.hour24,minute:e.minute,onChange:(n,r)=>t({...e,hour24:n,minute:r})})})]})}function mt({hour24:e,minute:t,onChange:n}){let{t:i}=r(`settings`),a=e<12?`AM`:`PM`,o=e%12==0?12:e%12,s=[{value:`AM`,label:i(`createScheduleModal.periodAm`)},{value:`PM`,label:i(`createScheduleModal.periodPm`)}];return(0,W.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,W.jsx)(R,{options:st,value:String(o),onChange:e=>n(lt(Number(e),a),t),"aria-label":i(`createScheduleModal.hourAriaLabel`),className:`w-[72px]`}),(0,W.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:`:`}),(0,W.jsx)(R,{options:ct,value:String(t).padStart(2,`0`),onChange:t=>n(e,Number(t)),"aria-label":i(`createScheduleModal.minuteAriaLabel`),className:`w-[72px]`}),(0,W.jsx)(`div`,{className:`w-[112px]`,children:(0,W.jsx)(_,{items:s,value:a,onChange:e=>n(lt(o,e),t),ariaLabel:i(`createScheduleModal.periodAriaLabel`)})})]})}function ht({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,W.jsx)(`div`,{className:`flex gap-1.5`,children:$e.map(e=>{let t=n.has(e.value);return(0,W.jsx)(`button`,{type:`button`,onClick:()=>r(e.value),"aria-pressed":t,"aria-label":e.full,title:e.full,className:p(`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 gt({value:e,onChange:t,onUseSimple:n}){let{t:i}=r(`settings`);return(0,W.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,W.jsx)(P,{placeholder:`0 9 * * *`,value:e,onChange:e=>t(e.target.value),fullWidth:!0,className:`font-mono`,"aria-label":i(`createScheduleModal.cronAriaLabel`),helperText:i(`createScheduleModal.cronHelper`)}),(0,W.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:i(`createScheduleModal.backToSimple`)})]})}function _t({label:e,children:t}){return(0,W.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,W.jsx)(`span`,{className:`text-body-small-default text-[var(--content-secondary)]`,children:e}),t]})}function G({label:e,children:t}){return(0,W.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-3 gap-y-1.5`,children:[(0,W.jsx)(`span`,{className:`min-w-[88px] text-body-small-default text-[var(--content-tertiary)]`,children:e}),t]})}function vt({summary:e,mono:t,timezoneLabel:n}){let{t:i}=r(`settings`);return(0,W.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,W.jsx)(C,{className:`mt-0.5 h-4 w-4 shrink-0 text-[var(--content-tertiary)]`,"aria-hidden":!0}),(0,W.jsxs)(`div`,{className:`min-w-0`,children:[(0,W.jsx)(`p`,{className:p(`text-body-medium-default text-[var(--content-default)]`,t&&`break-all font-mono`),children:e}),(0,W.jsx)(`p`,{className:`mt-0.5 text-body-small-default text-[var(--content-tertiary)]`,children:i(`createScheduleModal.timezoneNote`,{timezone:n})})]})]})}function yt(e=Ae(),t=Date.now()){return Je(Ye,e,t)}function K(e){return e?new Date(e).toLocaleString(void 0,{month:`short`,day:`numeric`,hour:`numeric`,minute:`2-digit`,hour12:!0}):`—`}function bt(e){return e==null?`—`:e<1e3?`${e}ms`:`${(e/1e3).toFixed(1)}s`}var xt=new Intl.NumberFormat(void 0,{style:`currency`,currency:`USD`,minimumFractionDigits:2,maximumFractionDigits:2});function q(e){return e==null||!Number.isFinite(e)?`—`:xt.format(e)}function St(e){return`${e.toLocaleString()} ${e===1?`run`:`runs`}`}function Ct(e){let t=Math.round(e/6e4);return t>=60&&t%60==0?`Every ${t/60} hr`:`Every ${t} min`}function wt(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 Tt(e){return!!e.conversationId&&e.conversationExists===!0&&e.conversationArchivedAt==null}function Et(e){return Tt(e)?e.conversationId??null:null}function J(e){return typeof e==`string`&&e.length>0}function Dt(e){return e.status===`pending`||e.status===`superseded`}function Ot(e){return e.status!==`skipped`&&e.status!==`missed`&&!Dt(e)}var kt={heartbeat:`system-heartbeat`,consolidation:`system-consolidation`,retrospective:`system-memory-retrospective`};function At(e){if(e.cronExpression)return e.timezone?`Cron: ${e.cronExpression} (${e.timezone})`:`Cron: ${e.cronExpression}`;let t=Ct(e.intervalMs);return e.activeHoursStart!=null&&e.activeHoursEnd!=null&&(t+=` (${e.activeHoursStart}:00–${e.activeHoursEnd}:00)`),t}function jt(e){return Ct(e.intervalMs)}var Mt=`After conversation activity`;function Nt(e){return e.status!==`fired`&&e.status!==`cancelled`}function Pt(e,t){return Nt(e)?e.status===`firing`?!1:e.nextRunAt==null||!e.enabled&&e.nextRunAt<=t:!0}function Ft(e,t){let n=[],r=[],i=[];for(let a of e)a.isOneShot?Pt(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 It(e,t,n=!0){return{queryKey:[{_id:`schedulesUsagesummaryGet`,path:{assistant_id:e??``},_tz:t}],queryFn:()=>e?He(e,yt(t)):Promise.resolve([]),enabled:n,staleTime:1e4}}function Lt(e){return{scheduleId:e,runCount:0,totalEstimatedCostUsd:0,eventCount:0}}function Rt(e,t,n){let r=(t??[]).filter(e=>{let t=e.startedAt??e.createdAt;return Ot(e)&&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 zt(e,t,n){let r=!!e&&n?.enabled!==!1,{data:i}=l({...be({path:{assistant_id:e}}),enabled:r,staleTime:6e4}),{data:a}=l({...ve({path:{assistant_id:e}}),enabled:r,staleTime:6e4}),o=i?.callSites.find(e=>e.id===t)?.defaultProfile??null;return o==null?{key:null,label:null}:{key:o,label:(a?Xe(a):{})[o]?.displayName??o}}function Bt(e,t,i){let{t:a}=r(`settings`),o=zt(e,`mainAgent`),[s,c]=(0,H.useState)(!1),l=(0,H.useMemo)(()=>o.key?t.filter(e=>Nt(e)&&e.inferenceProfile!==o.key).length:0,[o.key,t]),u=o.label,f=d({mutationFn:t=>Be(e,null,t),onSuccess:e=>{c(!1),i(),I.success(e===0?a(`scheduleProfileRebase.alreadyOnProfileToast`,{profile:u}):a(`scheduleProfileRebase.movedToast`,{count:e,profile:u}))},onError:e=>{n(e,{context:`schedules_rebase_inference_profile`}),I.error(a(`scheduleProfileRebase.moveFailedToast`))}});return{defaultProfileLabel:u,offDefaultCount:l,canRebase:l>0,requestRebase:()=>c(!0),dialogProps:{open:s&&o.key!=null,profileLabel:u,offDefaultCount:l,isPending:f.isPending,onConfirm:()=>{o.key&&f.mutate(o.key)},onCancel:()=>c(!1)}}}function Vt({open:e,profileLabel:t,offDefaultCount:n,isPending:i,onConfirm:a,onCancel:o}){let{t:s}=r(`settings`);return(0,W.jsx)(L,{open:e,title:s(`scheduleProfileRebase.dialogTitle`,{profile:t}),message:s(`scheduleProfileRebase.dialogMessage`,{count:n,profile:t}),confirmLabel:s(`scheduleProfileRebase.moveSchedules`),isPending:i,onConfirm:a,onCancel:o})}function Ht({status:e}){let{t}=r(`settings`);return(0,W.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??t(`scheduleSharedUi.unknownStatus`)})}function Ut({scheduleName:e,usage:t,onOpenUsage:n}){let{t:i}=r(`settings`);if(t.status===`loading`)return(0,W.jsxs)(`div`,{"aria-label":i(`scheduleSharedUi.loadingUsage`),className:`flex w-[156px] shrink-0 items-center justify-end gap-3`,children:[(0,W.jsx)(z,{as:`span`,className:`h-5 w-16`}),(0,W.jsx)(z,{as:`span`,className:`h-5 w-16`})]});let a=t.status===`error`,o=a?`--`:q(t.summary.totalEstimatedCostUsd),s=a?`--`:St(t.summary.runCount),c=t.status===`ready`&&!(t.summary.totalEstimatedCostUsd>0),l=t.status===`ready`&&t.summary.runCount===0,u=c?`text-[var(--content-tertiary)]`:`text-[var(--content-default)]`,d=l?`text-[var(--content-tertiary)]`:`text-[var(--content-default)]`;return(0,W.jsxs)(`div`,{className:`flex w-[156px] shrink-0 items-center justify-end gap-3 text-right text-body-small-default`,children:[n?(0,W.jsx)(`button`,{type:`button`,onClick:n,"aria-label":i(`scheduleSharedUi.viewUsageFor`,{name:e}),className:`min-w-[64px] cursor-pointer rounded px-1 py-0.5 text-right transition-colors hover:bg-[var(--surface-hover)] ${u}`,children:o}):(0,W.jsx)(`span`,{"aria-label":i(`scheduleSharedUi.costFor`,{name:e,cost:o}),className:`block min-w-[64px] px-1 py-0.5 ${u}`,children:o}),(0,W.jsx)(`span`,{"aria-label":i(`scheduleSharedUi.runsFor`,{name:e,runs:s}),className:`block min-w-[64px] px-1 py-0.5 ${d}`,children:s})]})}function Wt({name:e,subtitle:t,enabled:n,nextRunAt:i,lastRunAt:a,usage:o,helperText:s,statusLabel:c,statusTone:l=`neutral`,onClick:u}){let{t:d}=r(`settings`);return(0,W.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,W.jsxs)(`button`,{type:`button`,onClick:u,"aria-label":d(`systemTasksSection.openAriaLabel`,{name: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,W.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,W.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,W.jsx)(`span`,{className:`truncate text-body-medium-default text-[var(--content-default)]`,children:e})}),(0,W.jsx)(`div`,{className:`mt-0.5 text-body-small-default text-[var(--content-tertiary)]`,children:t}),s?(0,W.jsx)(`div`,{className:`mt-0.5 text-body-small-default text-[var(--content-secondary)]`,children:s}):null,(0,W.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:[i?(0,W.jsx)(`span`,{children:d(`systemTasksSection.nextRun`,{time:K(i)})}):null,a?(0,W.jsx)(`span`,{children:d(`systemTasksSection.lastRun`,{time:K(a)})}):null]})]}),(0,W.jsxs)(`div`,{className:`flex shrink-0 flex-wrap items-center justify-end gap-3`,children:[(0,W.jsx)(Ut,{scheduleName:e,usage:o}),c?(0,W.jsx)(M,{tone:l,children:c}):(0,W.jsx)(`span`,{className:`h-2 w-2 rounded-full`,style:{backgroundColor:n?`var(--system-positive-strong)`:`var(--content-disabled)`},"aria-label":d(n?`systemTasksSection.enabled`:`systemTasksSection.disabled`)}),(0,W.jsx)(x,{className:`h-4 w-4 text-[var(--content-tertiary)]`})]})]})})}function Gt({heartbeatConfig:e,consolidationConfig:t,retrospectiveConfig:n,heartbeatUsage:i,consolidationUsage:a,retrospectiveUsage:o,isLoading:s,hasError:c,onRetry:l,onSelectHeartbeat:u,onSelectConsolidation:d,onSelectRetrospective:f}){let{t:p}=r(`settings`),m=e!=null,h=t?.available===!0,g=n?.available===!0,_=m||h||g;if(!s&&!c&&!_)return null;let v=[...m?[i]:[],...h?[a]:[],...g?[o]:[]].filter(e=>e.status===`ready`),y=v.reduce((e,t)=>e+(t.summary.totalEstimatedCostUsd??0),0),x=s?(0,W.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,W.jsx)(T,{className:`h-5 w-5 animate-spin text-stone-400`})}):c&&!_?(0,W.jsx)(A,{tone:`error`,children:(0,W.jsx)(B,{ns:`settings`,i18nKey:`systemTasksSection.loadError`,components:{retryButton:(0,W.jsx)(`button`,{type:`button`,onClick:l,className:`cursor-pointer underline hover:no-underline`})}})}):(0,W.jsxs)(`div`,{children:[m?(0,W.jsx)(Wt,{name:p(`systemTasksSection.heartbeatName`),subtitle:At(e),enabled:e.enabled,nextRunAt:e.nextRunAt,lastRunAt:e.lastRunAt,usage:i,onClick:u}):null,h?(0,W.jsx)(Wt,{name:p(`systemTasksSection.consolidationName`),subtitle:jt(t),enabled:t.enabled,helperText:t.enabled?void 0:p(`systemTasksSection.consolidationPausedHelper`),nextRunAt:t.nextRunAt,lastRunAt:t.lastRunAt,usage:a,statusLabel:t.enabled?void 0:p(`systemTasksSection.paused`),statusTone:`warning`,onClick:d}):null,g?(0,W.jsx)(Wt,{name:p(`systemTasksSection.retrospectiveName`),subtitle:Mt,enabled:n.enabled,helperText:n.enabled?void 0:p(`systemTasksSection.retrospectivePausedHelper`),nextRunAt:n.nextRunAt,lastRunAt:n.lastRunAt,usage:o,statusLabel:n.enabled?void 0:p(`systemTasksSection.paused`),statusTone:`warning`,onClick:f}):null,c?(0,W.jsx)(`div`,{className:`pt-3 first:pt-0`,children:(0,W.jsx)(A,{tone:`error`,children:(0,W.jsx)(B,{ns:`settings`,i18nKey:`systemTasksSection.partialLoadError`,components:{retryButton:(0,W.jsx)(`button`,{type:`button`,onClick:l,className:`cursor-pointer underline hover:no-underline`})}})})}):null]});return(0,W.jsx)(Le,{children:(0,W.jsx)(j.Root,{type:`multiple`,children:(0,W.jsxs)(j.Item,{value:`system-jobs`,children:[(0,W.jsxs)(j.Trigger,{className:`group justify-between gap-3`,children:[(0,W.jsxs)(`span`,{className:`flex min-w-0 flex-wrap items-baseline gap-x-2 gap-y-1 text-left`,children:[(0,W.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-secondary)]`,children:p(`systemTasksSection.title`)}),(0,W.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:p(`systemTasksSection.subtitle`)})]}),(0,W.jsxs)(`span`,{className:`flex shrink-0 items-center gap-3`,children:[v.length>0?(0,W.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:p(`systemTasksSection.cost7d`,{cost:q(y)})}):null,(0,W.jsx)(b,{className:`h-4 w-4 shrink-0 text-[var(--content-tertiary)] transition-transform group-data-[state=open]:rotate-180`})]})]}),(0,W.jsx)(j.Content,{children:(0,W.jsx)(`div`,{className:`mt-3`,children:x})})]})})})}var Kt={disabled:`heartbeat is disabled`,outside_active_hours:`outside active hours`,overlap:`previous run was still active`,pre_first_user_message:`waiting for the first conversation`,max_consecutive_runs:`consecutive-run cap reached`,max_daily_runs:`daily run cap reached`,quiesced:`assistant was shutting down`};function qt(e){return e.status===`missed`?`Missed while the assistant was offline`:`skipReason`in e&&e.skipReason?`Skipped — ${Kt[e.skipReason]??e.skipReason}`:null}function Y(e,t){return{id:e.id,jobId:t,status:e.status,startedAt:e.startedAt??e.scheduledFor,finishedAt:e.finishedAt,durationMs:e.durationMs,output:qt(e),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 Jt(e){return e.runs.filter(e=>!Dt(e)).map(e=>Y(e,`heartbeat`))}function Yt(e){return e.runs.map(e=>Y(e,`consolidation`))}function Xt(e){return e.runs.map(e=>Y(e,`retrospective`))}var X=1e4;function Zt(e,t,n,r,i){return e?{status:`loading`}:t?{status:`error`}:{status:`ready`,summary:Rt(n,r,i)}}function Qt(e,r){let i=c(),a={path:{assistant_id:e??``}},{data:o,isLoading:s,isError:u,refetch:d}=l({...Ee(a),enabled:!!e,staleTime:X}),{data:f,isLoading:p,isError:m,refetch:h}=l({..._e(a),enabled:!!e,staleTime:X}),{data:g,isLoading:_,isError:v,refetch:y}=l({...Te(a),enabled:!!e,staleTime:X}),b={path:{assistant_id:e??``},query:{limit:100}},{data:x,isLoading:S,isError:C,refetch:w}=l({...he(b),select:Jt,enabled:!!e&&o!=null,staleTime:X}),{data:T,isLoading:E,isError:D,refetch:O}=l({...ce(b),select:Yt,enabled:!!e&&f?.available===!0,staleTime:X}),{data:k,isLoading:A,isError:j,refetch:M}=l({...Ce(b),select:Xt,enabled:!!e&&g?.available===!0,staleTime:X}),N=(0,H.useMemo)(()=>yt(r),[r]),P=(0,H.useMemo)(()=>Zt(S,C,kt.heartbeat,x,N),[x,C,S,N]),ee=(0,H.useMemo)(()=>Zt(E,D,kt.consolidation,T,N),[T,D,E,N]),F=(0,H.useMemo)(()=>Zt(A,j,kt.retrospective,k,N),[k,j,A,N]),L=t=>{if(!e)return;let n={heartbeat:{config:Ee(a).queryKey,runs:he(b).queryKey,infinite:de(a)},consolidation:{config:_e(a).queryKey,runs:ce(b).queryKey,infinite:fe(a)},retrospective:{config:Te(a).queryKey,runs:Ce(b).queryKey,infinite:le(a)}}[t];i.invalidateQueries({queryKey:n.config}),i.invalidateQueries({queryKey:n.runs}),i.invalidateQueries({queryKey:n.infinite})},R=Se({onSuccess:e=>{e.ran?I.success(t(`settings:useSystemTasks.heartbeatStarted`)):I.info(t(`settings:useSystemTasks.heartbeatSkipped`))},onError:e=>{n(e,{context:`heartbeat_run_now`}),I.error(t(`settings:useSystemTasks.heartbeatRunFailed`))},onSettled:()=>L(`heartbeat`)}),z=xe({onSuccess:e=>{e.ran?I.success(t(`settings:useSystemTasks.consolidationQueued`)):I.info(t(`settings:useSystemTasks.consolidationAlreadyQueued`))},onError:e=>{n(e,{context:`consolidation_run_now`}),I.error(t(`settings:useSystemTasks.consolidationRunFailed`))},onSettled:()=>L(`consolidation`)}),B=ye({onSuccess:e=>{se(i,a,e),I.success(e.enabled?t(`settings:useSystemTasks.heartbeatEnabled`):t(`settings:useSystemTasks.heartbeatDisabled`))},onError:e=>{n(e,{context:`heartbeat_toggle`}),I.error(t(`settings:useSystemTasks.heartbeatToggleFailed`))}});return{heartbeatConfig:o,consolidationConfig:f,retrospectiveConfig:g,heartbeatUsage:P,consolidationUsage:ee,retrospectiveUsage:F,isLoading:s||p||_,hasError:u||m||v,isHeartbeatRunning:R.isPending,isConsolidationRunning:z.isPending,isHeartbeatLoading:s,isHeartbeatError:u,isConsolidationLoading:p,isConsolidationError:m,isRetrospectiveLoading:_,isRetrospectiveError:v,refetchHeartbeat:d,refetchConsolidation:h,refetchRetrospective:y,runHeartbeatNow:()=>{e&&R.mutate({path:{assistant_id:e}})},runConsolidationNow:()=>{e&&z.mutate({path:{assistant_id:e}})},toggleHeartbeat:t=>{e&&B.mutate({body:{enabled:t},path:{assistant_id:e}})},refetchAll:()=>{d(),h(),y(),w(),O(),M()}}}function Z({id:e,title:t,subtitle:n,accessory:r,children:i,className:a}){let o=!!(t||n||r);return(0,W.jsx)(h,{asChild:!0,className:p(`rounded-lg`,a),children:(0,W.jsxs)(`section`,{id:e,children:[o&&(0,W.jsxs)(`div`,{className:`flex flex-row items-start justify-between gap-4`,children:[(0,W.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1`,children:[t&&(0,W.jsx)(m,{variant:`title-small`,as:`h2`,className:`text-[var(--content-emphasised)]`,children:t}),n&&(0,W.jsx)(m,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:n})]}),r&&(0,W.jsx)(`div`,{className:`shrink-0`,children:r})]}),i!=null&&(0,W.jsx)(`div`,{className:o?`mt-3`:``,children:i})]})})}function $t(e){return/^plugin:([^/]+)\//.exec(e??``)?.[1]??null}var en={user_disabled:`scheduleDisarmReason.userDisabled`,plugin_removed:`scheduleDisarmReason.pluginRemoved`,plugin_disabled:`scheduleDisarmReason.pluginDisabled`,declaration_removed:`scheduleDisarmReason.declarationRemoved`,declaration_disabled:`scheduleDisarmReason.declarationDisabled`};function tn(e){return e.enabled||!e.disarmReason?null:en[e.disarmReason]??null}function nn(e,t){return t?.[e]?.displayName??e}function rn({assistantId:e,pinnedProfile:t,defaultCallSite:n=`mainAgent`,fallbackLabel:i,respectCallSiteOverride:a=!1}){let{t:o}=r(`settings`),s=i??o(`modelProfileRow.defaultMainAgent`),c=(e,t)=>{if(e==null)return;if(e.provider!=null||e.model!=null)return o(`modelProfileRow.customCallSiteModel`);let n=e.profile?.trim();return n?o(`modelProfileRow.override`,{name:nn(n,t)}):void 0},u=t==null,{data:d}=l({...ve({path:{assistant_id:e}}),enabled:!!e,staleTime:6e4}),f=(0,H.useMemo)(()=>d?Xe(d):{},[d]),{label:p}=zt(e,n,{enabled:u}),m=u&&a?c(d?.llm?.callSites?.[n],f):void 0,h=t==null?m??(p==null?s:o(`modelProfileRow.defaultNamed`,{name:p})):nn(t,f);return(0,W.jsxs)(`div`,{className:`flex min-h-6 items-center justify-between gap-4`,children:[(0,W.jsx)(`span`,{className:`shrink-0 text-[var(--content-secondary)]`,children:o(`modelProfileRow.label`)}),(0,W.jsx)(`span`,{className:`min-w-0 truncate text-right`,title:h,children:h})]})}function an(e,t,n){let r=ne(e?.profiles??{},e?.profileOrder??[]);return[{value:null,label:`Default`},...ie(r,[t],n).map(e=>{let t=re(e,r,n);return{value:e.name,label:ae(e),...t?{issue:t}:{},...t===`undispatchable`?{reason:te(e)}:{}}})]}function on(e,t){let{data:n}=l({...ve({path:{assistant_id:e}}),enabled:!!e,staleTime:6e4}),r=oe();return(0,H.useMemo)(()=>an(n?.llm,t,{requireOwnProviderAndModel:r}),[n?.llm,t,r])}function sn({assistantId:e,value:t,onChange:n,disabled:i=!1,isSaving:a=!1,className:o,includeDefaultOption:s=!0,placeholder:c,variant:l,menuAlign:u}){let{t:d}=r(`settings`);return(0,W.jsx)(R,{value:t,onChange:n,onSelectNone:()=>n(null),options:on(e,t).filter(e=>s||e.value!=null).map(e=>({...e.issue===`undispatchable`?{icon:(0,W.jsx)(S,{className:`h-3.5 w-3.5 text-[var(--system-mid-strong)]`}),...e.reason?{tooltip:e.reason}:{}}:{},value:e.value,label:e.label})),disabled:i||a,placeholder:c,className:o,variant:l,menuAlign:u,"aria-label":d(`modelProfileSelect.ariaLabel`)})}function Q({label:e,value:t}){return(0,W.jsxs)(`div`,{className:`flex min-h-6 items-center justify-between gap-4`,children:[(0,W.jsx)(`span`,{className:`shrink-0 text-body-medium-lighter text-[var(--content-secondary)]`,children:e}),(0,W.jsx)(`span`,{className:`min-w-0 text-right text-body-medium-lighter text-[var(--content-default)]`,children:t})]})}function cn({schedule:e,assistantId:t,isPast:i}){let{t:a}=r(`schedules`),o=c(),s=ue({path:{assistant_id:t}}),l=d({mutationFn:n=>Ve(t,e.id,{inferenceProfile:n}),onMutate:async t=>{await o.cancelQueries({queryKey:s});let n=o.getQueryData(s)?.find(t=>t.id===e.id)?.inferenceProfile;return o.setQueryData(s,n=>n?.map(n=>n.id===e.id?{...n,inferenceProfile:t}:n)),{previousProfile:n}},onError:(t,r,i)=>{let c=i?.previousProfile;c!==void 0&&o.setQueryData(s,t=>t?.map(t=>t.id===e.id?{...t,inferenceProfile:c}:t)),n(t,{context:`schedule_update_inference_profile`}),I.error(a(`scheduleDetail.modelChangeFailed`))},onSettled:()=>o.invalidateQueries({queryKey:s})});return e.mode===`workflow`?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(Q,{label:a(`scheduleDetail.modelProfile`),value:a(`scheduleDetail.notUsedForWorkflow`)}),(0,W.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:a(`scheduleDetail.modelProfileWorkflowNote`)})]}):i?(0,W.jsx)(`div`,{className:`text-body-medium-lighter text-[var(--content-default)]`,children:(0,W.jsx)(rn,{assistantId:t,pinnedProfile:e.inferenceProfile})}):(0,W.jsx)(Q,{label:a(`scheduleDetail.modelProfile`),value:(0,W.jsx)(sn,{assistantId:t,value:e.inferenceProfile,onChange:t=>{t&&t!==e.inferenceProfile&&l.mutate(t)},includeDefaultOption:!1,placeholder:a(`scheduleDetail.chooseModel`),isSaving:l.isPending,variant:`ghost`,menuAlign:`end`,className:`-my-1 -mr-2`})})}function ln({icon:e,value:t,label:n}){return(0,W.jsxs)(`div`,{className:`flex items-center gap-3 rounded-lg border border-[var(--border-base)] bg-[var(--surface-lift)] p-3`,children:[(0,W.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,W.jsxs)(`div`,{className:`min-w-0`,children:[(0,W.jsx)(`div`,{className:`truncate text-body-large-default text-[var(--content-default)]`,children:t}),(0,W.jsx)(`div`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:n})]})]})}function un({usage:e}){let{t}=r(`schedules`);return e.status===`loading`?(0,W.jsx)(`div`,{className:`grid grid-cols-2 gap-3 pt-2`,children:Array.from({length:2},(e,t)=>(0,W.jsx)(z,{className:`h-[60px] rounded-lg`},t))}):e.status===`error`?null:(0,W.jsxs)(`div`,{className:`grid grid-cols-2 gap-3 pt-2`,children:[(0,W.jsx)(ln,{icon:(0,W.jsx)(w,{className:`h-4 w-4`}),value:q(e.summary.totalEstimatedCostUsd),label:t(`scheduleDetail.costLabel`,{days:7})}),(0,W.jsx)(ln,{icon:(0,W.jsx)(D,{className:`h-4 w-4`}),value:St(e.summary.runCount),label:t(`scheduleDetail.runsLabel`,{days:7})})]})}function dn(e){return e.exists&&e.archivedAt==null}function fn({run:e,index:t,isExpanded:n,disableDirectOpen:i,onOpenConversation:a,onToggleDetails:o}){let{t:s}=r(`schedules`),c=Et(e),l=e.conversations??(c?[{id:c,title:null,exists:!0,archivedAt:null}]:[]),u=J(e.output),d=J(e.error),f=!i&&l.length===1&&dn(l[0])?l[0].id:null,m=!f&&(l.length>0||u||d),h=`schedule-run-details-${t}`,g=!!f||m,_=(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(Ht,{status:e.status}),(0,W.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,W.jsx)(`div`,{className:`text-body-medium-lighter text-[var(--content-default)]`,children:K(e.startedAt)}),(0,W.jsxs)(`div`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:[bt(e.durationMs),` ·`,` `,q(e.estimatedCostUsd)]}),e.status===`error`&&e.error?(0,W.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]}),g?(0,W.jsx)(x,{className:p(`h-4 w-4 shrink-0 text-[var(--content-tertiary)] transition-transform`,m&&n?`rotate-90`:``)}):null]}),v=m&&n?(0,W.jsx)(`div`,{id:h,className:`px-2 pb-3`,children:(0,W.jsxs)(`div`,{className:`space-y-3 rounded-md border border-[var(--border-subtle)] bg-[var(--surface-sunken)] p-3`,children:[l.length>0?(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`div`,{className:`mb-1 text-body-small-default text-[var(--content-secondary)]`,children:s(`scheduleDetail.conversations`)}),(0,W.jsx)(`div`,{className:`space-y-1`,children:l.map(e=>dn(e)?(0,W.jsx)(`button`,{type:`button`,onClick:()=>a(e.id),className:`block w-full truncate text-left text-body-small-default text-[var(--content-default)] hover:underline`,children:J(e.title)?e.title:s(`scheduleDetail.conversation`)},e.id):(0,W.jsxs)(`span`,{className:`block truncate text-body-small-default text-[var(--content-tertiary)] italic`,children:[J(e.title)?e.title:s(`scheduleDetail.conversation`),` `,e.exists?s(`scheduleDetail.conversationArchived`):s(`scheduleDetail.conversationUnavailable`)]},e.id))})]}):null,u?(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`div`,{className:`mb-1 text-body-small-default text-[var(--content-secondary)]`,children:s(`scheduleDetail.output`)}),(0,W.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,d?(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`div`,{className:`mb-1 text-body-small-default text-[var(--content-secondary)]`,children:s(`scheduleDetail.error`)}),(0,W.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 f?(0,W.jsx)(`div`,{children:(0,W.jsx)(`button`,{type:`button`,onClick:()=>a(f),"aria-label":s(`scheduleDetail.openRunConversationAria`,{time:K(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:_})}):m?(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`button`,{type:`button`,onClick:()=>o(e.id),"aria-label":s(`scheduleDetail.toggleRunDetailsAria`,{time:K(e.startedAt)}),"aria-expanded":n,"aria-controls":h,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:_}),v]}):(0,W.jsx)(`div`,{className:`flex items-center gap-3 px-2 py-3`,children:_})}function pn({runs:e,isLoading:t,disableDirectOpen:n,onOpenConversation:i}){let{t:a}=r(`schedules`),[o,s]=(0,H.useState)(null);return t?(0,W.jsx)(`div`,{className:`flex items-center justify-center py-6`,children:(0,W.jsx)(T,{className:`h-5 w-5 animate-spin text-stone-400`})}):!e||e.length===0?(0,W.jsx)(`p`,{className:`py-2 text-body-medium-lighter text-[var(--content-tertiary)] italic`,children:a(`scheduleDetail.noRunsYet`)}):(0,W.jsx)(`div`,{className:`-mx-2 divide-y divide-[var(--border-base)]`,children:e.map((e,t)=>(0,W.jsx)(fn,{run:e,index:t,isExpanded:o===e.id,disableDirectOpen:n,onOpenConversation:i,onToggleDetails:e=>s(t=>t===e?null:e)},e.id))})}function mn({schedule:e,assistantId:t,usage:i,isPast:s=!1,onClose:c,onDeleted:u}){let{t:d}=r(`schedules`),f=o(),{data:p,isLoading:m}=l({queryKey:me({path:{assistant_id:t,id:e.id}}),queryFn:()=>Ge(t,e.id),staleTime:1e4}),[h,g]=(0,H.useState)(!1),[_,v]=(0,H.useState)(!1),[b,x]=(0,H.useState)(!1),S=$t(e.sourceKey),C=tn(e),w=S!==null&&!e.enabled,E=async()=>{g(!0);try{await We(t,e.id)}catch(e){n(e,{context:`schedule_run_now`}),I.error(d(`scheduleDetail.runFailed`))}finally{g(!1)}},D=async()=>{x(!0);try{await Ue(t,e.id),u()}catch(e){n(e,{context:`schedule_delete`}),I.error(d(`scheduleDetail.deleteFailed`)),x(!1),v(!1)}};return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsxs)(`div`,{className:`flex h-full flex-col bg-[var(--surface-overlay)] md:rounded-[var(--radius-xl)] md:border md:border-[var(--border-base)]`,children:[(0,W.jsx)(Fe,{title:e.name,headerActions:S?void 0:(0,W.jsx)(a,{variant:`dangerOutline`,iconOnly:(0,W.jsx)(k,{}),"aria-label":d(`scheduleDetail.delete`),tooltip:d(`scheduleDetail.delete`),onClick:()=>v(!0)}),closeLabel:d(`scheduleDetail.closeAria`),closeTooltip:d(`scheduleDetail.close`),onClose:c}),(0,W.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,W.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-secondary)]`,children:e.description}):null,(0,W.jsx)(Z,{title:d(`scheduleDetail.details`),children:(0,W.jsxs)(`div`,{className:`space-y-2`,children:[e.cadenceDescription?(0,W.jsx)(Q,{label:d(`scheduleDetail.cadence`),value:e.cadenceDescription}):null,(0,W.jsx)(Q,{label:d(`scheduleDetail.mode`),value:e.mode}),(0,W.jsx)(cn,{schedule:e,assistantId:t,isPast:s}),(0,W.jsx)(Q,{label:d(`scheduleDetail.status`),value:e.enabled?d(`scheduleDetail.enabled`):d(`scheduleDetail.disabled`)}),(0,W.jsx)(Q,{label:d(`scheduleDetail.nextRun`),value:K(e.nextRunAt)}),e.lastRunAt?(0,W.jsx)(Q,{label:d(`scheduleDetail.lastRun`),value:(0,W.jsxs)(`span`,{className:`flex items-center justify-end gap-2`,children:[(0,W.jsx)(Ht,{status:e.lastStatus}),K(e.lastRunAt)]})}):null]})}),(0,W.jsx)(un,{usage:i}),(0,W.jsx)(Z,{title:d(`scheduleDetail.recentRuns`),children:(0,W.jsx)(pn,{runs:p?.runs,isLoading:m,disableDirectOpen:e.mode===`script`,onOpenConversation:e=>De(f,e)})})]}),(0,W.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between gap-2 border-t border-[var(--border-hover)] p-[var(--app-spacing-lg)]`,children:[S?(0,W.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:C?d(`scheduleDetail.managedByPluginPaused`,{plugin:S,reason:d(C)}):d(`scheduleDetail.managedByPlugin`,{plugin:S})}):(0,W.jsx)(`span`,{}),(0,W.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,W.jsx)(a,{variant:`outlined`,leftIcon:(0,W.jsx)(y,{className:`h-3.5 w-3.5`}),onClick:()=>f(V.settings.usageForSchedule(e.id)),children:d(`scheduleDetail.viewUsage`)}),e.mode===`script`?(0,W.jsxs)(W.Fragment,{children:[w?(0,W.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:d(`scheduleDetail.turnOnToRun`)}):null,(0,W.jsx)(a,{variant:`primary`,leftIcon:h?(0,W.jsx)(T,{className:`h-3.5 w-3.5 animate-spin`}):void 0,onClick:()=>void E(),disabled:h||w,children:d(h?`scheduleDetail.running`:`scheduleDetail.runNow`)})]}):null]})]})]}),(0,W.jsx)(L,{open:_,title:d(`scheduleDetail.delete`),message:d(`scheduleDetail.deleteConfirmMessage`,{name:e.name}),confirmLabel:d(`scheduleDetail.confirmDelete`),cancelLabel:d(`scheduleDetail.cancel`),destructive:!0,isPending:b,onConfirm:()=>void D(),onCancel:()=>v(!1)})]})}function hn(e){if(e.status===`loading`)return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(z,{as:`span`,className:`h-4 w-12`}),(0,W.jsx)(z,{as:`span`,className:`h-4 w-10`})]});if(e.status===`error`)return(0,W.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`—`});let{summary:t}=e;return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`span`,{className:`text-body-small-default text-[var(--content-secondary)]`,children:q(t.totalEstimatedCostUsd)}),(0,W.jsx)(`span`,{className:`text-body-small-default text-[var(--content-secondary)]`,children:St(t.runCount)})]})}function gn({name:e,badge:t,metaParts:n,usage:r,enabled:i,selected:a,onClick:o,onToggle:s,toggleAriaLabel:c}){return(0,W.jsxs)(`div`,{className:`flex items-center gap-3 rounded-md px-2 py-3 transition-colors [&+&]:border-t [&+&]:border-[var(--border-base)] ${a?`bg-[var(--surface-active)]`:`hover:bg-[var(--surface-hover)]`}`,children:[s?(0,W.jsx)(ee,{checked:i,onChange:s,"aria-label":c}):null,(0,W.jsxs)(`button`,{type:`button`,onClick:o,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,W.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-1`,children:[(0,W.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[(0,W.jsx)(`span`,{className:`truncate text-body-medium-default text-[var(--content-default)]`,children:e}),t]}),n.length>0?(0,W.jsx)(`span`,{className:`flex min-w-0 items-center gap-2 text-label-small-default text-[var(--content-tertiary)]`,children:n.map((e,t)=>(0,W.jsxs)(H.Fragment,{children:[t>0?(0,W.jsx)(`span`,{className:`h-[3px] w-[3px] shrink-0 rounded-full bg-[var(--content-tertiary)]`}):null,(0,W.jsx)(`span`,{className:`truncate`,children:e})]},t))}):null]}),(0,W.jsxs)(`div`,{className:`flex shrink-0 items-center gap-4`,children:[hn(r),(0,W.jsx)(x,{className:`h-4 w-4 text-[var(--content-tertiary)]`})]})]})]})}function _n({schedule:e,usage:t,selected:n,onClick:i,onToggle:a}){let{t:o}=r(`schedules`),s=e.isOneShot?``:e.cadenceDescription.trim(),c=e.lastRunAt??e.nextRunAt,l=tn(e),u=[l?o(l):``,s,c?K(c):``].filter(Boolean),d=$t(e.sourceKey);return(0,W.jsx)(gn,{name:e.name,badge:d?(0,W.jsx)(M,{tone:`info`,children:d}):void 0,metaParts:u,usage:t,enabled:e.enabled,selected:n,onClick:i,onToggle:a,toggleAriaLabel:a?o(`scheduleRow.toggleAria`,{name:e.name}):void 0})}function vn({recurring:e,oneTime:t,pastOneTime:n,usageForSchedule:i,isLoading:o,isError:s,refetch:c,onToggle:l,onSelectSchedule:u,selectedScheduleId:d,onStartNewChat:f,onCreateSchedule:p,pastOpen:m,onPastOpenChange:h,onRebaseProfiles:g,defaultProfileLabel:_,systemTasksSlot:y}){let{t:b}=r(`schedules`),S=e=>(0,W.jsx)(_n,{schedule:e,usage:i(e.id),selected:e.id===d,onClick:()=>u(e.id),onToggle:t=>l(e.id,t)},e.id),C=e=>(0,W.jsx)(_n,{schedule:e,usage:i(e.id),selected:e.id===d,onClick:()=>u(e.id)},e.id),w=n.length>0?(0,W.jsx)(j.Root,{type:`single`,collapsible:!0,className:`mt-3`,value:m?`past`:``,onValueChange:e=>h(e===`past`),children:(0,W.jsxs)(j.Item,{value:`past`,children:[(0,W.jsxs)(j.Trigger,{className:`group gap-[var(--app-spacing-xs)] px-2 text-label-small-default text-[var(--content-tertiary)]`,children:[(0,W.jsx)(x,{size:14,"aria-hidden":!0,className:`shrink-0 transition-transform group-data-[state=open]:rotate-90`}),(0,W.jsx)(`span`,{children:b(`schedulesPanel.pastToggle`,{count:n.length})})]}),(0,W.jsx)(j.Content,{children:(0,W.jsx)(`div`,{className:`pt-1`,children:n.map(C)})})]})}):null;return(0,W.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto`,children:[o?(0,W.jsx)(`div`,{className:`space-y-3`,children:Array.from({length:2},(e,t)=>(0,W.jsx)(z,{className:`h-12 rounded-md`},t))}):s&&e.length===0?(0,W.jsx)(A,{tone:`error`,actions:(0,W.jsx)(`button`,{type:`button`,onClick:c,className:`cursor-pointer underline hover:no-underline`,children:b(`schedulesPanel.retry`)}),children:b(`schedulesPanel.loadFailed`)}):e.length===0&&t.length===0&&n.length===0?(0,W.jsx)(Ze,{icon:v,title:b(`schedulesPanel.emptyTitle`),description:b(`schedulesPanel.emptyDescription`),actions:(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(a,{variant:`primary`,size:`regular`,onClick:f,children:b(`schedulesPanel.newConversation`)}),(0,W.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:b(`schedulesPanel.emptyActionsSeparator`)}),(0,W.jsx)(a,{variant:`outlined`,size:`regular`,onClick:p,children:b(`schedulesPanel.createSchedule`)})]})}):(0,W.jsxs)(`div`,{children:[g&&_?(0,W.jsx)(`div`,{className:`mb-1 flex min-w-0 justify-end`,children:(0,W.jsx)(a,{variant:`outlined`,size:`compact`,onClick:g,className:`max-w-full truncate`,children:b(`schedulesPanel.useProfileForAll`,{profile:_})})}):null,e.map(S),t.length>0?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`p`,{className:`mt-3 px-2 text-label-small-default text-[var(--content-tertiary)]`,children:b(`schedulesPanel.oneTimeHeading`)}),t.map(C)]}):null,w]}),y?(0,W.jsx)(`div`,{className:`mt-[var(--app-spacing-lg)]`,children:y}):null]})}function yn({runs:e,isLoading:t,emptyMessage:n,hasMore:i=!1,isLoadingMore:s=!1,onLoadMore:c}){let{t:l}=r(`settings`),u=o(),[d,f]=(0,H.useState)(null),p=n??l(`recentRunsCard.emptyDefault`),m=i&&c?(0,W.jsx)(`div`,{className:`flex justify-center pt-3`,children:(0,W.jsx)(a,{variant:`outlined`,size:`compact`,onClick:c,disabled:s,leftIcon:s?(0,W.jsx)(T,{className:`h-3.5 w-3.5 animate-spin`}):void 0,children:l(s?`recentRunsCard.loadingMore`:`recentRunsCard.loadMore`)})}):null;return(0,W.jsx)(Z,{title:l(`recentRunsCard.title`),children:t?(0,W.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,W.jsx)(T,{className:`h-5 w-5 animate-spin text-stone-400`})}):!e||e.length===0?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`p`,{className:`py-4 text-center text-body-medium-lighter text-[var(--content-tertiary)] italic`,children:p}),m]}):(0,W.jsxs)(`div`,{className:`divide-y divide-[var(--border-base)]`,children:[e.map((e,t)=>{let n=Et(e),r=J(e.output),i=J(e.error),a=e.status===`skipped`||e.status===`missed`,o=!n&&!a&&(r||i),s=d===e.id,c=`schedule-run-details-${t}`;return(0,W.jsxs)(`div`,{children:[(0,W.jsx)(g,{label:(0,W.jsxs)(`span`,{className:`flex min-w-0 flex-1 items-center gap-3`,children:[(0,W.jsx)(Ht,{status:e.status}),(0,W.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,W.jsx)(`span`,{className:`block truncate text-body-medium-lighter text-[var(--content-default)]`,children:J(e.title)?e.title:K(e.startedAt)}),(0,W.jsxs)(`span`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:[J(e.title)?`${K(e.startedAt)} · `:``,a?(0,W.jsx)(W.Fragment,{children:r?e.output:e.status===`missed`?l(`recentRunsCard.missed`):l(`recentRunsCard.skipped`)}):(0,W.jsxs)(W.Fragment,{children:[bt(e.durationMs),` ·`,` `,q(e.estimatedCostUsd)]}),e.status===`error`&&e.error&&(0,W.jsxs)(`span`,{className:`ml-2 text-[var(--system-negative-strong)]`,children:[e.error.slice(0,80),e.error.length>80?`…`:``]})]})]}),n||o?(0,W.jsx)(x,{className:`h-4 w-4 shrink-0 text-[var(--content-tertiary)] transition-transform ${s?`rotate-90`:``}`}):null]}),onSelect:n?()=>De(u,n):o?()=>f(s?null:e.id):void 0,"aria-label":l(`recentRunsCard.runAtAria`,{time:K(e.startedAt)}),"aria-expanded":o?s:void 0,"aria-controls":o?c:void 0,className:`h-auto py-2.5 gap-3 -mx-2 px-2`}),o&&s?(0,W.jsx)(`div`,{id:c,className:`px-2 pb-3`,children:(0,W.jsxs)(`div`,{className:`space-y-3 rounded-md border border-[var(--border-subtle)] bg-[var(--surface-sunken)] p-3`,children:[r?(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`div`,{className:`mb-1 text-body-small-default text-[var(--content-secondary)]`,children:l(`recentRunsCard.output`)}),(0,W.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,W.jsxs)(`div`,{children:[(0,W.jsx)(`div`,{className:`mb-1 text-body-small-default text-[var(--content-secondary)]`,children:l(`recentRunsCard.error`)}),(0,W.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)}),m]})})}var bn={heartbeat:`heartbeatAgent`,consolidation:`memoryV2Consolidation`,retrospective:`memoryRetrospective`};function $({label:e,value:t}){return(0,W.jsxs)(`div`,{className:`flex min-h-6 items-center justify-between gap-4`,children:[(0,W.jsx)(`span`,{className:`shrink-0 text-[var(--content-secondary)]`,children:e}),(0,W.jsx)(`span`,{className:`flex min-w-0 items-center justify-end gap-2 text-right text-[var(--content-default)]`,children:t})]})}function xn({kind:e,assistantId:t,systemTasks:n,canOpenMemorySettings:i,onClose:s}){let{t:c}=r(`schedules`),l=o(),{heartbeatConfig:d,consolidationConfig:f,retrospectiveConfig:p}=n,m,h,g,_,v,y,b;e===`heartbeat`?(m=c(`systemTaskDetail.nameHeartbeat`),h=d?At(d):``,g=d?.enabled??!1,_=d?.nextRunAt??null,v=d?.lastRunAt??null,y=n.isHeartbeatRunning,b=n.runHeartbeatNow):e===`consolidation`?(m=c(`systemTaskDetail.nameConsolidation`),h=f?jt(f):``,g=f?.enabled??!1,_=f?.nextRunAt??null,v=f?.lastRunAt??null,y=n.isConsolidationRunning,b=n.runConsolidationNow):(m=c(`systemTaskDetail.nameRetrospective`),h=Mt,g=p?.enabled??!1,_=p?.nextRunAt??null,v=p?.lastRunAt??null,y=!1,b=void 0);let x=e!==`heartbeat`,S=e===`retrospective`,C=x&&!g,w=y||C,D=c(x?g?`systemTaskDetail.statusManagedOn`:`systemTaskDetail.statusPaused`:g?`scheduleDetail.enabled`:`scheduleDetail.disabled`),k=S&&p?.available===!0,j=c(k?`systemTaskDetail.pausedRetrospectiveSwitchedOff`:S?`systemTaskDetail.pausedRetrospective`:`systemTaskDetail.pausedConsolidation`),M=x&&g&&i,N={path:{assistant_id:t},query:{limit:25}},P=e===`heartbeat`?ge(N):e===`consolidation`?we(N):pe(N),{data:F,isLoading:I,fetchNextPage:L,hasNextPage:R,isFetchingNextPage:z}=u({queryKey:P.queryKey,queryFn:P.queryFn,initialPageParam:{path:N.path,query:{}},getNextPageParam:e=>e.nextCursor??void 0,staleTime:1e4}),B=wt(F?.pages.map(t=>({runs:t.runs.filter(e=>!Dt(e)).map(t=>Y(t,e))}))),te=B?.find(e=>Ot(e)&&e.status!==`running`),ne=v??te?.finishedAt??te?.startedAt??null;return(0,W.jsxs)(`div`,{className:`flex h-full flex-col bg-[var(--surface-overlay)] md:rounded-[var(--radius-xl)] md:border md:border-[var(--border-base)]`,children:[(0,W.jsx)(Fe,{title:m,closeLabel:c(`scheduleDetail.closeAria`),closeTooltip:c(`scheduleDetail.close`),onClose:s}),(0,W.jsxs)(`div`,{className:`flex-1 space-y-6 overflow-y-auto px-[var(--app-spacing-lg)] py-[var(--app-spacing-lg)]`,children:[(0,W.jsxs)(`div`,{children:[(0,W.jsx)(Z,{title:c(`scheduleDetail.details`),children:(0,W.jsxs)(`div`,{className:`space-y-2 text-body-medium-lighter`,children:[(0,W.jsx)($,{label:c(`scheduleDetail.status`),value:(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`span`,{className:`truncate`,children:D}),x?null:(0,W.jsx)(ee,{size:`sm`,checked:g,onChange:n.toggleHeartbeat,"aria-label":c(`scheduleDetail.toggleAria`,{name:m})})]})}),(0,W.jsx)(rn,{assistantId:t,defaultCallSite:bn[e],fallbackLabel:c(`systemTaskDetail.fallbackModelProfile`),respectCallSiteOverride:!0}),h?(0,W.jsx)($,{label:c(`systemTaskDetail.repeats`),value:(0,W.jsx)(`span`,{className:`truncate`,children:h})}):null,S?null:(0,W.jsx)($,{label:c(`scheduleDetail.nextRun`),value:(0,W.jsx)(`span`,{className:`truncate`,children:K(_)})}),(0,W.jsx)($,{label:c(`scheduleDetail.lastRun`),value:(0,W.jsx)(`span`,{className:`truncate`,children:K(ne)})})]})}),C?(0,W.jsx)(A,{tone:`warning`,className:`mt-4`,actions:i?(0,W.jsx)(a,{variant:`outlined`,size:`compact`,onClick:()=>l(`${V.settings.developer}?tab=memory`),children:c(k?`systemTaskDetail.openMemorySettings`:`systemTaskDetail.turnOnMemory`)}):void 0,children:j}):null]}),(0,W.jsx)(yn,{runs:B,isLoading:I,hasMore:R,isLoadingMore:z,onLoadMore:()=>void L()})]}),M||b?(0,W.jsxs)(`div`,{className:`flex shrink-0 items-center justify-end gap-2 border-t border-[var(--border-hover)] p-[var(--app-spacing-lg)]`,children:[M?(0,W.jsx)(a,{variant:`outlined`,leftIcon:(0,W.jsx)(O,{className:`h-3.5 w-3.5`}),onClick:()=>l(`${V.settings.developer}?tab=memory`),children:c(`systemTaskDetail.memorySettings`)}):null,b?(0,W.jsx)(a,{variant:`primary`,leftIcon:y?(0,W.jsx)(T,{className:`h-3.5 w-3.5 animate-spin`}):(0,W.jsx)(E,{className:`h-3.5 w-3.5`}),onClick:b,disabled:w,children:c(y?`scheduleDetail.running`:`scheduleDetail.runNow`)}):null]}):null]})}function Sn(e){let r=Ne(),[i]=(0,H.useState)(()=>Date.now()),{data:a,isLoading:o,isError:s,refetch:c}=l(Ie(e)),{data:u,isLoading:d,isError:f}=l(It(e,r,!0)),{recurring:p,oneTime:m,pastOneTime:h}=(0,H.useMemo)(()=>{let e=Ft(a??[],i);return{recurring:e.recurring,oneTime:e.upcomingOneTime,pastOneTime:e.pastOneTime}},[i,a]),g=(0,H.useMemo)(()=>new Map((u??[]).map(e=>[e.scheduleId,e])),[u]);return{recurring:p,oneTime:m,pastOneTime:h,usageForSchedule:(0,H.useCallback)(e=>d?{status:`loading`}:f?{status:`error`}:{status:`ready`,summary:g.get(e)??Lt(e)},[f,d,g]),handleToggle:(0,H.useCallback)(async(r,i)=>{if(e)try{await Ke(e,r,i),c()}catch(e){n(e,{context:`schedule_toggle`}),I.error(t(`schedules:scheduleDetail.toggleFailed`))}},[e,c]),isLoading:o,isError:s,refetch:(0,H.useCallback)(()=>{c()},[c])}}function Cn(){let e=o(),{scheduleId:t}=s(),n=Pe(),r=ke(),i=Ne(),a=Sn(n),c=Qt(n,i),l=je(`memoryOptOut`),u=Me.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?V.schedules.detail(t):V.schedules.root)},[e]),b=m?a.recurring.find(e=>e.id===m)??a.oneTime.find(e=>e.id===m)??a.pastOneTime.find(e=>e.id===m)??null:null;(0,H.useEffect)(()=>{m&&!a.isLoading&&!a.isError&&!b&&y(null)},[m,b,a.isLoading,a.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)(()=>{Oe(e)},[e]),T=Bt(n,(0,H.useMemo)(()=>[...a.recurring,...a.oneTime,...a.pastOneTime],[a.recurring,a.oneTime,a.pastOneTime]),a.refetch),E=(b?(0,W.jsx)(mn,{schedule:b,assistantId:n,usage:a.usageForSchedule(b.id),isPast:a.pastOneTime.some(e=>e.id===b.id),onClose:()=>y(null),onDeleted:()=>{y(null),a.refetch()}}):null)??(h&&x?(0,W.jsx)(xn,{kind:h,assistantId:n,systemTasks:c,canOpenMemorySettings:d,onClose:()=>g(null)}):null),D=(0,W.jsx)(vn,{recurring:a.recurring,oneTime:a.oneTime,pastOneTime:a.pastOneTime,usageForSchedule:a.usageForSchedule,isLoading:a.isLoading,isError:a.isError,refetch:a.refetch,onToggle:a.handleToggle,onSelectSchedule:S,selectedScheduleId:m,onStartNewChat:w,onCreateSchedule:()=>p(!0),pastOpen:_,onPastOpenChange:v,onRebaseProfiles:T.canRebase?T.requestRebase:void 0,defaultProfileLabel:T.defaultProfileLabel??void 0,systemTasksSlot:(0,W.jsx)(Gt,{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`)})}),O=(0,W.jsx)(Vt,{...T.dialogProps});return E&&r?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(Re,{children:E}),O]}):(0,W.jsxs)(W.Fragment,{children:[E&&!r?(0,W.jsx)(ze,{storageKey:`schedulesDetailDrawerWidth`,detailKey:m??h??void 0,section:D,detail:E}):D,(0,W.jsx)(dt,{isOpen:f,assistantId:n,onClose:()=>p(!1),onCreated:()=>{p(!1),a.refetch()}}),O]})}export{Cn as SchedulesPage};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{f as e,g as t,h as n,p as r}from"./i18n-
|
|
1
|
+
import{f as e,g as t,h as n,p as r}from"./i18n-BDfnKs41.js";import{t as i}from"./queryOptions-DGyQTr3e.js";import{at as a,tt as o,ut as s}from"./sdk.gen-BluU0h_N.js";import{A as c,L as l,M as u,j as d}from"./react-query.gen-C_GLKG7m.js";import{t as f}from"./client-perf-HISWGXqe.js";import{a as p}from"./diagnostics-Bi4k4B8U.js";function m(e){return!!e&&!e.startsWith(`system:`)}function h(e){return e.isPinned===!0||e.groupId===`system:pinned`}function g(e){return e.surfacedAt==null?e.conversationType===`background`||e.conversationType===`scheduled`||e.groupId===`system:background`||e.groupId===`system:scheduled`:!1}function _(e){return e.conversationType===`scheduled`||e.groupId===`system:scheduled`}function v(e){return!e.hasUnseenLatestAssistantMessage&&!g(e)&&e.conversationId!=null&&e.latestAssistantMessageAt!=null}function y(e){return e.hasUnseenLatestAssistantMessage===!0&&!g(e)&&e.conversationId!=null}function b(e){return e.hasUnseenLatestAssistantMessage===!0&&!g(e)&&e.archivedAt==null}function ee(e){return e.reduce((e,t)=>b(t)?e+1:e,0)}function x(e){let t=e.headers.get(`content-length`);if(t===null||t.trim()===``)return null;let n=Number(t);return Number.isFinite(n)?n:null}var S={},C={conversationType:`background`},w={conversationType:`scheduled`},T={archiveStatus:`archived`},te={archiveStatus:`archived`,conversationType:`background`},ne=c({path:{assistant_id:``}})[0]._id;function re(e,t={}){return c({path:{assistant_id:e??``},query:t})}function E(e){return c({path:{assistant_id:e??``}})}function D(e){let t=e[0];if(typeof t!=`object`||!t||t._id!==ne)return;let n=t.query;if(!(typeof n!=`object`||!n))return n}function O(e,t){return{queryKey:E(e),predicate:e=>{let n=D(e.queryKey);return n!==void 0&&t(n)}}}function k(e){return e.groupId!==void 0||e.originChannel!==void 0}function A(e){return e.archiveStatus===`archived`}function j(e){return e.conversationType===void 0&&(e.archiveStatus===void 0||e.archiveStatus===`active`)&&e.originChannel===void 0&&e.groupId===void 0&&e.needsAttention===void 0&&e.foregroundOnly===void 0}function M(e){return(t,n)=>(n[e]??0)-(t[e]??0)}var N=M(`lastMessageAt`);function ie(e){return e.filter(e=>e.archivedAt===void 0).sort(N)}function P(e,t){let n=e.findIndex(e=>N(t,e)<=0),r=n===-1?e.length:n;return[...e.slice(0,r),t,...e.slice(r)]}function ae(e,t){let{conversations:n,hasMore:r}=e,i=n[n.length-1];return r&&i!==void 0&&N(t,i)>0?e:{conversations:P(n,t),hasMore:r}}function F(e,t,{pinnedInjected:n}){if(!t.hasMore)return t;let r=n?t.conversations.filter(e=>e.isPinned!==!0):t.conversations;if(r.length===0)return e;let i=Math.min(...r.map(e=>e.lastMessageAt??0)),a=new Set(t.conversations.map(e=>e.conversationId)),o=e.conversations.filter(e=>!a.has(e.conversationId)&&(e.draft===!0||(e.lastMessageAt??0)<i));return{conversations:[...t.conversations,...o],hasMore:t.hasMore}}function I(e){return typeof e==`number`&&Number.isFinite(e)?e:void 0}function L(e){return typeof e==`string`?e:void 0}function R(e){if(e)return{sourceChannel:e.sourceChannel,externalChatId:e.externalChatId,externalThreadId:e.externalThreadId,externalChatName:e.externalChatName,externalUserId:L(e.externalUserId),displayName:L(e.displayName),username:L(e.username),slackChannel:e.slackChannel?{channelId:e.slackChannel.channelId,name:e.slackChannel.name,link:e.slackChannel.link?.webUrl?{webUrl:e.slackChannel.link.webUrl}:void 0}:void 0,slackThread:e.slackThread?{channelId:e.slackThread.channelId,threadTs:e.slackThread.threadTs,link:e.slackThread.link?.appUrl||e.slackThread.link?.webUrl?{appUrl:e.slackThread.link.appUrl,webUrl:e.slackThread.link.webUrl}:void 0}:void 0}}function z(e){let t=e.assistantAttention,n=e.channelBinding?.sourceChannel??L(e.conversationOriginChannel);return{conversationId:e.id,title:e.title,createdAt:I(e.createdAt),lastMessageAt:I(e.lastMessageAt??e.updatedAt),hasUnseenLatestAssistantMessage:t?.hasUnseenLatestAssistantMessage,latestAssistantMessageAt:I(t?.latestAssistantMessageAt),lastSeenAssistantMessageAt:I(t?.lastSeenAssistantMessageAt),archivedAt:e.archivedAt,surfacedAt:I(e.surfacedAt),groupId:L(e.groupId),source:e.source,isPinned:e.isPinned,conversationType:e.conversationType,scheduleJobId:e.scheduleJobId,displayOrder:I(e.displayOrder),channelBinding:R(e.channelBinding),originChannel:n,isProcessing:e.isProcessing,historyOrphaned:e.historyOrphaned}}function B(e){return z(e)}function V(e){return u({path:{assistant_id:e??``}})}var H=200,U=[`telegram`,`phone`,`vellum`,`whatsapp`,`slack`,`email`,`platform`,`a2a`,`discord`];function W(e){return A(e)?`archived`:e.conversationType===void 0?e.originChannel===void 0?e.groupId===void 0?`foreground`:`section`:`origin_channel`:e.conversationType}function G(e,t){return k(e)?t:[...e.conversationType===`background`&&!A(e)?t.filter(e=>!_(e)):t].sort(M(A(e)?`archivedAt`:`lastMessageAt`))}function K(e,t,n,r){p(`conversation_list_page_fetch`,{assistantId:e,offset:0,status:t.status,count:t.conversations.length,hasMore:t.hasMore,durationMs:t.durationMs,bytes:t.bytes,listKind:n,source:r})}async function q(t,i,a,s={},c=50){let l=performance.now(),{data:u,error:d,response:f}=await o({path:{assistant_id:t},query:{...s,limit:c,offset:i},throwOnError:!1});r(f,d,`Failed to list conversations.`);let m=Math.round(performance.now()-l);if(!f.ok){p(`conversation_list_page_fetch_error`,{assistantId:t,offset:i,status:f.status,durationMs:m,bytes:x(f),listKind:W(s),source:a});let r=n(d,f,`Failed to list conversations.`);throw new e(f.status,r)}return{conversations:(u?.conversations??[]).map(z),hasMore:u?.hasMore??!1,status:f.status,durationMs:m,bytes:x(f)}}async function J(e,t={}){let n=[],r=new Set,i=performance.now(),a=0,o=0,s=null,c=r=>{let c=Math.round(performance.now()-i);p(`conversation_list_drain`,{assistantId:e,outcome:r,pages:a,rows:n.length,totalMs:c,maxPageMs:o,totalBytes:s,listKind:W(t)}),f(`client_list.drain`,c,{outcome:r,pages:a,rows:n.length,max_page_ms:o,total_bytes:s,list_kind:W(t)})};try{for(let i=0;i<H;i++){let c=await q(e,i*50,`drain`,t);a++,o=Math.max(o,c.durationMs),c.bytes!==null&&(s=(s??0)+c.bytes),i===0&&K(e,c,W(t),`drain`);for(let e of c.conversations)r.has(e.conversationId)||(r.add(e.conversationId),n.push(e));if(!c.hasMore||c.conversations.length===0)break}}catch(e){throw c(`error`),e}return c(`ok`),G(t,n)}async function oe(e){let{conversations:t}=await q(e,0,`existence_probe`);return t.length>0}async function se(e){let t=await q(e,0,`landing`,{foregroundOnly:`true`},1);return K(e,t,`foreground`,`landing`),t.conversations[0]??null}var ce=`system:pinned`,le=`system:all`,ue=`vellum`;async function de(e,n){let{data:i,error:a,response:o}=await s({path:{assistant_id:e},throwOnError:!1,signal:n});if(r(o,a,`Failed to fetch unread conversation count.`),!o.ok){if(o.status===404)return null;throw t(a,o)}return i?.count??null}function Y(e){return d({path:{assistant_id:e??``}})}async function X(e,n){let{data:i,error:o,response:s}=await a({path:{assistant_id:e},throwOnError:!1,signal:n});if(r(s,o,`Failed to fetch sidebar sections.`),!s.ok){if(s.status===404)return null;throw t(o,s)}return i?.sections??null}async function fe(e,t={},n=`first_page_refresh`){let r=await q(e,0,n,t);return K(e,r,W(t),n),{conversations:G(t,r.conversations),hasMore:r.hasMore}}async function pe(e,t,n){let r=await q(e,n,`load_more`,t);return{conversations:r.conversations,hasMore:r.hasMore}}var Z=3e4;function me(e){return i({queryKey:V(e),queryFn:({signal:t})=>de(e,t),staleTime:Z,refetchOnWindowFocus:!1})}function he(e){return i({queryKey:Y(e),queryFn:({signal:t})=>X(e,t),staleTime:Z,refetchOnWindowFocus:!1})}var ge=[`groupId`,`isPinned`,`archivedAt`,`surfacedAt`,`conversationType`,`originChannel`];function _e(e){return ge.some(t=>t in e)}function Q(e){return e.archivedAt!=null||e.conversationType===`private`?!1:e.conversationType!==`background`&&e.conversationType!==`scheduled`&&e.groupId!==`system:background`&&e.groupId!==`system:scheduled`?!0:e.source===`subagent`?!1:e.surfacedAt!=null||m(e.groupId)}function ve(e,t){if(!Q(e))return!1;let{groupId:n,originChannel:r}=t;if(n===`system:pinned`){if(!h(e))return!1}else if(n===`system:all`){if(h(e)||m(e.groupId))return!1}else if(n!==void 0&&e.groupId!==n)return!1;return r===void 0?!0:r===`vellum`?e.originChannel==null||e.originChannel===`vellum`:e.originChannel===r}function $(e,t){if(h(e))return t.kind===`pinned`;if(m(e.groupId))return t.kind===`group`&&t.groupId===e.groupId;let n=e.originChannel;return n==null||n===`vellum`?t.kind===`chats`:t.kind===`channel`&&t.channelId===n}function ye(e,t,n){if(!t)return;let r=Y(t),i=e.getQueryData(r);if(i==null||i.some(e=>$(n,e)))return;if(h(n)){e.setQueryData(r,[{kind:`pinned`,total:1,unread:0},...i]);return}let a=n.groupId;if(m(a)){let n=(e.getQueryData(l({path:{assistant_id:t}}))?.groups)?.find(e=>e.id===a);if(!n)return;e.setQueryData(r,[...i,{kind:`group`,groupId:a,name:n.name,icon:n.icon??null,sortPosition:n.sortPosition??0,total:1,unread:0}]);return}let o=n.originChannel;o==null||o===`vellum`||e.setQueryData(r,[...i,{kind:`channel`,channelId:o,total:1,unread:0}])}function be(e,t,n){if(!t)return[];let r=[],i=e.getQueriesData({queryKey:E(t)});for(let[t,a]of i){let i=D(t);if(!i||!k(i))continue;if(!a){r.push(t);continue}let o=a.conversations,s=o.findIndex(e=>e.conversationId===n.conversationId),c=ve(n,i);if(c===(s!==-1)){if(c&&o[s]!==n){let r=[...o];r[s]=n,e.setQueryData(t,{conversations:r,hasMore:a.hasMore})}continue}if(c){let r=ae(a,n);if(r===a)continue;e.setQueryData(t,r)}else e.setQueryData(t,{conversations:o.filter(e=>e.conversationId!==n.conversationId),hasMore:a.hasMore});r.push(t)}return r}export{D as A,b as B,P as C,C as D,T as E,j as F,_ as G,g as H,k as I,x as L,O as M,re as N,S as O,A as P,y as R,N as S,te as T,h as U,ee as V,m as W,me as _,be as a,ie as b,le as c,se as d,oe as f,Y as g,he as h,_e as i,E as j,w as k,ce as l,pe as m,Q as n,ue as o,fe as p,$ as r,U as s,ye as t,J as u,V as v,F as w,M as x,B as y,v as z};
|
package/dist/assets/{select-assistant-screen-k386tZII.js → select-assistant-screen-DJHzqmSj.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{v as t}from"./i18n-DmTrjH8B.js";import{t as n}from"./react-DJZBPgpf.js";import{t as r}from"./button-B1kEAcLt.js";import{d as i,h as a}from"./chunk-5KNZJZUH-CPFsMQoz.js";import{t as o}from"./jsx-runtime-COOF1INC.js";import{t as s}from"./check-bDVYejGM.js";import{t as c}from"./menu-DPM2p9S5.js";import{t as l}from"./cloud-6GKvvsQ6.js";import{t as u}from"./ellipsis-vertical-BJaOQqv_.js";import{t as d}from"./globe-DJ3y3hQh.js";import{t as f}from"./laptop-XN6nYvdB.js";import{t as p}from"./link-2-Di62Fo_i.js";import{t as m}from"./plus-rgqTRjE1.js";import{t as h}from"./notice-BHeYlKvv.js";import{n as ee,t as g}from"./input-ChbJ2nzd.js";import{t as _}from"./modal-_49mDK_d.js";import{t as v}from"./confirm-dialog-EPYSBP_B.js";import{G as y,H as b,Q as x,S,Y as te,g as ne,h as C,it as re,k as ie,pt as w,t as ae,v as oe}from"./local-mode-BQ8gp0wB.js";import{t as se}from"./is-electron-D45bjFI8.js";import{n as ce,r as le}from"./resolved-assistants-store-DEtotxhR.js";import{t as ue}from"./Trans-aGiJoe8I.js";import{X as de,i as fe,tt as pe}from"./auth-store-BS_AckaH.js";import{c as me}from"./remote-gateway-session-C3H0Oq0r.js";import{f as T}from"./routes-C6ueuiMd.js";import{g as he,u as ge}from"./platform-detection-BBpg4tha.js";import{a as E,i as _e,n as ve,t as ye}from"./remove-from-device-dialog-BbJRKUXj.js";import{t as be}from"./use-onboarding-login-5Y1lz16z.js";import{n as xe,t as D}from"./retire-confirm-dialog-RkS3NvLp.js";import{t as Se}from"./onboarding-layout-C9v6Q2QQ.js";import{i as Ce}from"./format-date-C4mrDYY6.js";import{t as we}from"./index-mFpsjcJ6.js";import{t as Te}from"./radio-card-nav-CgGzva7O.js";import{a as O,i as Ee,n as De,o as k,t as Oe}from"./self-hosted-servers-BDgPxWVB.js";var A=e(n(),1);async function ke(e){let t=()=>window.location.assign(`${e.url}${T.assistant}`);if(!ge()){t();return}await De(e.url)||t()}function Ae(e){return O(S()?me():window.location.origin)===e.url}var j=o(),M=`Failed to add the assistant. Please try again.`;function N(e){for(let t of[`/assistant/pair`,`/assistant`])if(e.endsWith(t))return e.slice(0,-t.length);return e}function je({open:e,onClose:n,onAdded:i}){let{t:a}=t(`onboarding`),[o,s]=(0,A.useState)(``),[c,l]=(0,A.useState)(!1),[u,f]=(0,A.useState)(null);(0,A.useEffect)(()=>{e&&(s(``),l(!1),f(null))},[e]);let p=()=>{c||n()},m=async()=>{if(!o.trim()||c)return;let e=O(o),t=e===null?null:O(N(e));if(t===null){f(`Enter the full https address, like https://example.com/assistant-1.`);return}l(!0),f(null);try{let e=await k.getState().addOrigin({url:t});if(e.ok){i(e.origin);return}f(M)}catch(e){console.error(`addRemoteOriginDialog.add failed`,e),f(M)}l(!1)};return(0,j.jsx)(_.Root,{open:e,onOpenChange:e=>{e||p()},children:(0,j.jsxs)(_.Content,{size:`md`,children:[(0,j.jsxs)(_.Header,{icon:d,children:[(0,j.jsx)(_.Title,{children:a(`addRemoteOriginDialog.title`)}),(0,j.jsx)(_.Description,{children:a(`addRemoteOriginDialog.body`)})]}),(0,j.jsx)(_.Body,{children:(0,j.jsxs)(`div`,{className:`space-y-4`,children:[(0,j.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,j.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`add-remote-origin-url`,children:a(`addRemoteOriginDialog.addressLabel`)}),(0,j.jsx)(g,{id:`add-remote-origin-url`,type:`url`,value:o,onChange:e=>s(e.target.value),placeholder:`https://example.com/assistant-1`,fullWidth:!0,autoFocus:!0})]}),u&&(0,j.jsx)(`p`,{className:`text-body-small-default text-[var(--system-negative-strong)]`,children:u})]})}),(0,j.jsxs)(_.Footer,{children:[(0,j.jsx)(r,{variant:`ghost`,onClick:p,disabled:c,children:a(`actions.cancel`)}),(0,j.jsx)(r,{variant:`primary`,onClick:()=>void m(),disabled:!o.trim()||c,children:a(c?`actions.adding`:`actions.add`)})]})]})})}function Me({open:e,initialBundle:n,guidanceMessage:i,onClose:a,onImported:o}){let{t:s}=t(`onboarding`),[c,l]=(0,A.useState)(``),[u,d]=(0,A.useState)(``),[f,m]=(0,A.useState)(!1),[v,y]=(0,A.useState)(null),[b,x]=(0,A.useState)(null);(0,A.useEffect)(()=>{e&&(l(n??``),d(``),m(!1),y(null),x(null))},[e,n]);let S=()=>{f||a()},te=async()=>{let e=c.trim();if(!(!e||f)){m(!0),y(null);try{let t=await C(e,u.trim()||void 0);if(!t.ok)y(t.error);else if(t.accessOnly)x(t.assistantId);else{o(t.assistantId);return}}catch(e){console.error(`connectAssistantDialog.import failed`,e),y(`Failed to import the pairing bundle. Please try again.`)}m(!1)}};return b==null?(0,j.jsx)(_.Root,{open:e,onOpenChange:e=>{e||S()},children:(0,j.jsxs)(_.Content,{size:`md`,children:[(0,j.jsxs)(_.Header,{icon:p,children:[(0,j.jsx)(_.Title,{children:s(`connectAssistantDialog.title`)}),(0,j.jsx)(_.Description,{children:(0,j.jsx)(ue,{i18nKey:`connectAssistantDialog.instruction`,ns:`onboarding`,components:{code:(0,j.jsx)(`code`,{})}})})]}),(0,j.jsx)(_.Body,{children:(0,j.jsxs)(`div`,{className:`space-y-4`,children:[i&&(0,j.jsx)(h,{tone:`info`,children:i}),(0,j.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,j.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`connect-assistant-bundle`,children:s(`connectAssistantDialog.bundleLabel`)}),(0,j.jsx)(ee,{id:`connect-assistant-bundle`,value:c,onChange:e=>l(e.target.value),placeholder:`eyJnYXRld2F5...`,rows:4,fullWidth:!0,autoFocus:!0})]}),(0,j.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,j.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`connect-assistant-name`,children:s(`connectAssistantDialog.nameLabel`)}),(0,j.jsx)(g,{id:`connect-assistant-name`,type:`text`,value:u,onChange:e=>d(e.target.value),placeholder:`office-mac`,fullWidth:!0})]}),v&&(0,j.jsx)(`p`,{className:`text-body-small-default text-[var(--system-negative-strong)]`,children:v})]})}),(0,j.jsxs)(_.Footer,{children:[(0,j.jsx)(r,{variant:`ghost`,onClick:S,disabled:f,children:s(`actions.cancel`)}),(0,j.jsx)(r,{variant:`primary`,onClick:()=>void te(),disabled:!c.trim()||f,children:s(f?`actions.connecting`:`actions.connect`)})]})]})}):(0,j.jsx)(_.Root,{open:e,onOpenChange:e=>{e||S()},children:(0,j.jsxs)(_.Content,{size:`sm`,children:[(0,j.jsx)(_.Header,{icon:p,children:(0,j.jsx)(_.Title,{children:s(`connectAssistantDialog.importedTitle`)})}),(0,j.jsx)(_.Body,{children:(0,j.jsx)(h,{tone:`warning`,children:s(`connectAssistantDialog.importedBody`)})}),(0,j.jsx)(_.Footer,{children:(0,j.jsx)(r,{variant:`primary`,onClick:()=>o(b),children:s(`actions.continue`)})})]})})}function Ne({open:e,assistantName:n,isPending:i,errorMessage:a,onCancel:o,onRepair:s,onRetire:c}){let{t:l}=t(`onboarding`),[u,d]=(0,A.useState)(`menu`);(0,A.useEffect)(()=>{e&&d(`menu`)},[e]);let f=a?(0,j.jsx)(`span`,{className:`mt-3 block text-body-small-default text-[var(--system-negative-strong)]`,children:a}):null;return u===`confirm-repair`?(0,j.jsx)(v,{open:e,title:l(`connectRecoveryDialog.repairTitle`),message:(0,j.jsxs)(j.Fragment,{children:[l(`connectRecoveryDialog.repairBody`),f]}),confirmLabel:l(`connectRecoveryDialog.repairConfirm`),isPending:i,onConfirm:s,onCancel:()=>d(`menu`)}):u===`confirm-retire`?(0,j.jsx)(D,{open:e,isPending:i,extraMessage:f,onConfirm:c,onCancel:()=>d(`menu`)}):(0,j.jsx)(_.Root,{open:e,onOpenChange:e=>{!e&&!i&&o()},children:(0,j.jsxs)(_.Content,{size:`sm`,hideCloseButton:!0,onEscapeKeyDown:e=>{e.preventDefault(),e.stopPropagation(),i||o()},children:[(0,j.jsx)(_.Header,{children:(0,j.jsx)(_.Title,{children:l(`connectRecoveryDialog.authFailedTitle`)})}),(0,j.jsxs)(_.Body,{children:[(0,j.jsx)(_.Description,{children:l(`connectRecoveryDialog.authFailedBody`,{name:n})}),f,(0,j.jsxs)(`div`,{className:`mt-5 flex w-full flex-col gap-2`,children:[(0,j.jsx)(r,{variant:`primary`,fullWidth:!0,disabled:i,onClick:()=>d(`confirm-repair`),children:l(`connectRecoveryDialog.wakeAndRepair`)}),(0,j.jsx)(r,{variant:`dangerOutline`,fullWidth:!0,disabled:i,onClick:()=>d(`confirm-retire`),children:l(`connectRecoveryDialog.retire`)}),(0,j.jsx)(r,{variant:`outlined`,fullWidth:!0,disabled:i,onClick:o,children:l(`actions.cancel`)})]})]})]})})}function Pe(e){return e.name?e.name:e.isPaired?`Paired Assistant`:e.isLocal&&e.cloud===`local`?e.id:e.isLocal?`Local Assistant`:`Cloud Assistant`}function Fe(e,t){if(e)try{return t(`selectAssistantScreen.selfHostedWithHost`,{host:new URL(e).hostname})}catch{}return t(`selectAssistantScreen.selfHosted`)}function P(e,t){let n=e.isPaired?w(e.runtimeUrl):e.isLocal?oe()?`On this computer`:Fe(e.ingressUrl,t):`Cloud-hosted`;return e.hatchedAt?`${n} · Created ${Ce(e.hatchedAt)}`:n}function F(e){return new URL(e.url).hostname}function Ie(e){return e.name??F(e)}function I(e){return`origin:${e.url}`}var L=`origin:vellum-cloud`;function Le(e){let t=new URLSearchParams(e);return t.delete(`register`),t.delete(`name`),t}function Re(){let{t:e}=t(`onboarding`),n=i(),[o,s]=a(),c=o.get(`fromLogin`)===`1`,u=o.get(`noAutoSkip`)===`1`,f=se(),h=oe(),ee=fe(),g=le.use.assistants(),_=pe.use.currentOrganizationId(),v=k.use.origins(),S=k.use.hydrated(),C=he(),{loading:w,error:ue,login:me,cancel:ge}=be(),[D,Ce]=(0,A.useState)(null),M=D===null?null:{url:D,name:`Vellum Cloud`},N=M!==null,Fe=e=>e.isPaired||e.isLocal&&h||ee,P=g.filter(ce),F=P.filter(Fe),Re=F.length>0||v.length>0||M!==null,z=b(),Be=!ee&&z,[B,V]=(0,A.useState)(null),[H,Ue]=(0,A.useState)(!1),[We,Ge]=(0,A.useState)(!1),[Ke,qe]=(0,A.useState)(null),[U,Je]=(0,A.useState)(null),[Ye,W]=(0,A.useState)(!1),[Xe,G]=(0,A.useState)(null),[K,q]=(0,A.useState)(null),[Ze,Qe]=(0,A.useState)(!1),[$e,J]=(0,A.useState)(null),[et,tt]=(0,A.useState)(!1),[Y,nt]=(0,A.useState)(null),[rt,it]=(0,A.useState)(!1),[at,ot]=(0,A.useState)(null),st=E.use.open(),ct=E.use.initialBundle(),lt=E.use.guidanceMessage(),ut=E.use.deepLinkDrainSettled(),X=(0,A.useRef)(!1);(0,A.useEffect)(()=>{we()},[]),(0,A.useEffect)(()=>{Oe(),k.getState().hydrate()},[]),(0,A.useEffect)(()=>{if(!C)return;let e=!1;return Ee().then(t=>{e||Ce(t)}),()=>{e=!0}},[C]);let Z=(0,A.useRef)(!1);(0,A.useEffect)(()=>{if(Z.current)return;Z.current=!0;let e=o.get(`register`);if(e===null)return;let t=()=>s(Le,{replace:!0}),n=O(e);if(n===null){t();return}k.getState().addOrigin({url:n,name:o.get(`name`)??void 0}).then(e=>{e.ok?t():Z.current=!1}).catch(()=>{Z.current=!1})},[o,s]),(0,A.useEffect)(()=>{if(B===L&&N||B!=null&&v.some(e=>I(e)===B))return;if(F.length===0){let e=v[0],t=e?I(e):N?L:null;B!==t&&V(t);return}if(B!=null&&F.some(e=>e.id===B))return;let e=de(_);V(F.find(t=>t.id===e)?.id??F[0].id)},[B,F,_,v,N]);let Q=async e=>{Ue(!0),qe(null);try{await _e(e),n(T.assistant,{replace:!0})}catch(t){console.error(`selectAssistant.handleConnect failed`,t),e.isLocal&&b()&&(y(t)||re(t)||t instanceof ae)&&ne(e.id)?Je(e):e.isPaired&&y(t)?qe(`This pairing has expired. Run vellum pair on the assistant's machine and import it again with vellum connect import.`):qe(`Failed to connect. Please try again.`),Ue(!1)}},dt=()=>{Je(null),W(!1),G(null),Ge(!1)},ft=async()=>{if(!(!U||Ye)){W(!0),G(null);try{let e=await te(U.id,{repairGuardian:!0});if(e.ok){x(),dt(),Q(U);return}G(e.error||`Repair failed. Please try again.`)}catch(e){console.error(`selectAssistant.recoveryRepair failed`,e),G(`Repair failed. Please try again.`)}W(!1)}},pt=async()=>{if(!(!U||Ye)){W(!0),G(null);try{let e=await xe(U.id);if(e.ok){dt(),n(e.nextRoute,{replace:!0});return}G(e.error)}catch(e){console.error(`selectAssistant.recoveryRetire failed`,e),G(`Failed to retire assistant. Please try again.`)}W(!1)}},mt=()=>{Ze||(q(null),J(null))},ht=async()=>{if(!(!K||Ze)){if(Qe(!0),J(null),K.isPaired){let e=await ve(K.id);e.ok?(X.current=!0,q(null)):J(e.error),Qe(!1);return}try{let e=await ie(K.id);if(e.ok){let e=le.getState();e.activeAssistantId===K.id&&e.setActiveAssistantId(null),X.current=!0,q(null)}else J(e.error??`Failed to remove. Please try again.`)}catch(e){console.error(`selectAssistant.removeFromDevice failed`,e),J(`Failed to remove. Please try again.`)}Qe(!1)}},gt=()=>{rt||(nt(null),ot(null))},_t=async()=>{!Y||rt||(it(!0),ot(null),await k.getState().removeOrigin(Y.url),k.getState().origins.some(e=>e.url===Y.url)?ot(`Failed to remove. Please try again.`):(X.current=!0,nt(null)),it(!1))},vt=e=>{E.getState().closeConnectDialog(),Q(le.getState().assistants.find(t=>t.id===e)??{id:e,isLocal:!1,isPlatformHosted:!1,isPaired:!0})},yt=e=>{tt(!1),ke(e)};(0,A.useEffect)(()=>{c||u||X.current||h&&S&&(v.length>0||f&&!ut||H||We||st||P.length!==0&&P.length===1&&F.length===1&&(Ge(!0),Q(F[0])))},[P.length,F.length,ut,h,v.length,S]);let bt=()=>{if(B===L){De(null).then(e=>{!e&&D!==null&&window.location.assign(D)});return}let e=v.find(e=>I(e)===B);if(e){Ae(e)?n(T.assistant,{replace:!0}):ke(e);return}let t=P.find(e=>e.id===B);t&&Q(t)},xt=()=>{n(h?T.welcome:T.assistant)},$=ue??Ke;return We&&!$&&!U?(0,j.jsx)(ze,{}):(0,j.jsxs)(Se,{avatarWave:`beside`,children:[(0,j.jsx)(`div`,{className:`mx-auto flex w-full max-w-xl flex-col items-center ${f?`min-h-full px-8 pt-21 pb-4 electron-prechat-type`:`min-h-screen px-6 pb-40 pt-6 md:min-h-full md:pb-6`} text-[var(--content-default)]`,children:(0,j.jsxs)(`div`,{className:`flex w-full flex-col items-center ${f?``:`flex-1 justify-center`}`,children:[(0,j.jsx)(`h1`,{className:`text-center text-5xl font-normal tracking-tight md:text-4xl lg:text-5xl`,style:{fontFamily:`var(--font-serif)`,animation:`fadeInUp 0.5s ease-out 0.1s both`},children:e(`selectAssistantScreen.title`)}),$&&(0,j.jsx)(`p`,{className:`mt-4 text-body-small-default text-[var(--system-negative-strong)]`,children:$}),(0,j.jsxs)(`div`,{role:`radiogroup`,"aria-label":e(`selectAssistantScreen.listAriaLabel`),onKeyDown:Te,className:`flex w-full flex-col ${f?`mt-8 gap-2`:`mt-10 gap-3`}`,style:{animation:`fadeInUp 0.5s ease-out 0.3s both`},children:[P.map(t=>{let n=Fe(t);return(0,j.jsx)(Ve,{assistant:t,selected:B===t.id,locked:!n,tabStop:B==null?F[0]?.id===t.id:B===t.id,onSelect:()=>{n&&V(t.id)},loginLabel:e(w?`actions.cancel`:`actions.loginToUse`),loginDisabled:H,onLogin:!n&&(t.isPlatformHosted||t.isLocal)?w?ge:()=>void me():void 0,onRemove:t.isPlatformHosted&&Be||t.isPaired&&z?()=>q(t):void 0},t.id)}),v.map((e,t)=>{let n=I(e),r=Ae(e);return(0,j.jsx)(He,{origin:e,selected:B===n,current:r,tabStop:B==null?F.length===0&&t===0:B===n,onSelect:()=>V(n),onRemove:r&&C?void 0:()=>nt(e)},e.url)}),M&&(0,j.jsx)(He,{origin:M,icon:(0,j.jsx)(l,{className:`h-5 w-5`}),selected:B===L,current:!1,tabStop:B==null?F.length===0&&v.length===0:B===L,onSelect:()=>V(L)}),h&&(0,j.jsx)(R,{icon:(0,j.jsx)(m,{className:`h-4 w-4`}),label:e(`selectAssistantScreen.createNew`),disabled:H||w,onClick:()=>void n(`${T.onboarding.hosting}?from=select-assistant`)}),z&&(0,j.jsx)(R,{icon:(0,j.jsx)(p,{className:`h-4 w-4`}),label:e(`selectAssistantScreen.connectRemote`),disabled:H||w,onClick:()=>E.getState().openConnectDialog()}),!z&&(0,j.jsx)(R,{icon:(0,j.jsx)(d,{className:`h-4 w-4`}),label:e(`selectAssistantScreen.addRemote`),disabled:H||w,onClick:()=>tt(!0)})]}),Re&&(0,j.jsx)(`div`,{className:`mt-8 w-full`,style:{animation:`fadeInUp 0.5s ease-out 0.4s both`},children:(0,j.jsx)(r,{variant:`primary`,size:`regular`,fullWidth:!0,className:f?void 0:`h-11 text-base`,onClick:bt,disabled:!B||H,children:e(H?`actions.connecting`:`actions.continue`)})}),(0,j.jsx)(`div`,{className:Re?`mt-3`:`mt-8`,style:{animation:`fadeInUp 0.5s ease-out 0.5s both`},children:(0,j.jsx)(r,{variant:`ghost`,size:`regular`,className:`text-[var(--content-tertiary)]`,onClick:xt,disabled:H||w,children:e(`actions.back`)})})]})}),(0,j.jsx)(je,{open:et,onClose:()=>tt(!1),onAdded:yt}),(0,j.jsx)(Me,{open:st,initialBundle:ct??void 0,guidanceMessage:lt??void 0,onClose:()=>E.getState().closeConnectDialog(),onImported:vt}),(0,j.jsx)(Ne,{open:U!=null,assistantName:U?Pe(U):``,isPending:Ye,errorMessage:Xe??void 0,onCancel:dt,onRepair:()=>void ft(),onRetire:()=>void pt()}),(0,j.jsx)(ye,{open:K!=null,kind:K?.isPaired?`paired`:`platform`,assistantName:K?Pe(K):e(`selectAssistantScreen.unnamedAssistant`),errorMessage:$e??void 0,isPending:Ze,onConfirm:()=>void ht(),onCancel:mt}),(0,j.jsx)(ye,{open:Y!=null,kind:`origin`,assistantName:Y?Ie(Y):e(`selectAssistantScreen.unnamedAssistant`),errorMessage:at??void 0,isPending:rt,onConfirm:()=>void _t(),onCancel:gt})]})}function ze(){let{t:e}=t(`onboarding`);return(0,j.jsx)(Se,{avatarWave:`beside`,children:(0,j.jsx)(`div`,{className:`mx-auto flex min-h-screen w-full max-w-xl flex-col items-center justify-center px-6 text-[var(--content-default)]`,children:(0,j.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:e(`selectAssistantScreen.connectingToAssistant`)})})})}function R({icon:e,label:t,disabled:n,onClick:r}){let i=se();return(0,j.jsxs)(`button`,{type:`button`,onClick:r,disabled:n,className:[`group flex w-full items-center justify-center gap-2 border border-dashed border-[var(--border-element)]/50 text-[var(--content-tertiary)]`,i?`rounded-lg px-3 py-2.5`:`rounded-xl px-5 py-3`,`cursor-pointer transition-all duration-200 ease-out`,`hover:border-[var(--border-element)] hover:bg-[var(--surface-hover)] hover:text-[var(--content-default)]`,`disabled:cursor-not-allowed disabled:opacity-50`].join(` `),children:[e,(0,j.jsx)(`span`,{className:i?`text-body-small-default`:`text-body-medium-default`,children:t})]})}function z({label:e,onRemove:n}){let{t:i}=t(`onboarding`);return(0,j.jsxs)(c.Root,{children:[(0,j.jsx)(c.Trigger,{asChild:!0,children:(0,j.jsx)(r,{variant:`ghost`,size:`regular`,className:`text-[var(--content-tertiary)]`,iconOnly:(0,j.jsx)(u,{}),"aria-label":i(`selectAssistantScreen.rowActionsAriaLabel`,{name:e})})}),(0,j.jsx)(c.Content,{align:`end`,sideOffset:4,children:(0,j.jsx)(c.Item,{onSelect:n,className:`text-[var(--system-negative-strong)] data-[highlighted]:text-[var(--system-negative-strong)]`,children:i(`selectAssistantScreen.removeFromDevice`)})})]})}function Be({icon:e,title:t,subtitle:n,selected:r,locked:i=!1,tabStop:a,onSelect:o,action:c,removeMenu:l}){let u=se();return(0,j.jsxs)(`div`,{role:i?void 0:`radio`,"aria-checked":i?void 0:r,tabIndex:i?void 0:a?0:-1,onClick:i?void 0:o,onKeyDown:i?void 0:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),o())},className:[`group flex w-full items-center border text-left`,u?`gap-3 rounded-lg px-[10px] py-3`:`gap-4 rounded-2xl px-[18px] py-4`,`transition-all duration-200 ease-out`,i?`border-[var(--border-base)] bg-[var(--surface-overlay)]`:`cursor-pointer focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--primary-base)]`,i?``:r?`border-[var(--primary-base)] bg-[var(--surface-lift)]`:`border-[var(--border-base)] bg-[var(--surface-lift)]/60 hover:border-[var(--border-element)] hover:bg-[var(--surface-lift)]`].join(` `),children:[(0,j.jsx)(`div`,{className:[`flex shrink-0 items-center justify-center transition-colors duration-200`,`h-12 w-12 rounded-[10px]`,r&&!i?`bg-[var(--primary-base)] text-[var(--surface-base)]`:`bg-[var(--surface-active)]/40 text-[var(--content-secondary)]`].join(` `),children:e}),(0,j.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,j.jsx)(`span`,{className:`block text-body-medium-default text-[var(--content-default)]`,children:t}),(0,j.jsx)(`span`,{className:`mt-1 block text-[var(--content-tertiary)] ${u?`text-label-medium-default font-normal`:`text-body-small-lighter`}`,children:n})]}),(0,j.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[c,l&&(i?l:(0,j.jsx)(`div`,{onClick:e=>e.stopPropagation(),onKeyDown:e=>e.stopPropagation(),children:l})),!i&&(0,j.jsx)(`div`,{className:[`flex h-5 w-5 shrink-0 items-center justify-center rounded-full border-2 transition-all duration-200`,r?`border-[var(--primary-base)] bg-[var(--primary-base)]`:`border-[var(--border-element)] group-hover:border-[var(--content-tertiary)]`].join(` `),children:r&&(0,j.jsx)(s,{className:`h-3 w-3 text-[var(--surface-base)]`,strokeWidth:3})})]})]})}function Ve({assistant:e,selected:n,locked:i,tabStop:a,onSelect:o,loginLabel:s,loginDisabled:c,onLogin:u,onRemove:d}){let{t:m}=t(`onboarding`),h=Pe(e);return(0,j.jsx)(Be,{icon:e.isPaired?(0,j.jsx)(p,{className:`h-5 w-5`}):e.isLocal?(0,j.jsx)(f,{className:`h-5 w-5`}):(0,j.jsx)(l,{className:`h-5 w-5`}),title:h,subtitle:P(e,m),selected:n,locked:i,tabStop:a,onSelect:o,action:i&&u?(0,j.jsx)(r,{variant:`primary`,size:`regular`,onClick:u,disabled:c,children:s}):void 0,removeMenu:d&&(0,j.jsx)(z,{label:h,onRemove:d})})}function He({origin:e,icon:n,selected:r,current:i,tabStop:a,onSelect:o,onRemove:s}){let{t:c}=t(`onboarding`),l=Ie(e);return(0,j.jsx)(Be,{icon:n??(0,j.jsx)(d,{className:`h-5 w-5`}),title:l,subtitle:c(i?`selectAssistantScreen.currentWithHost`:`selectAssistantScreen.remoteWithHost`,{host:F(e)}),selected:r,tabStop:a,onSelect:o,removeMenu:s&&(0,j.jsx)(z,{label:l,onRemove:s})})}export{Re as SelectAssistantScreen};
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{v as t}from"./i18n-BDfnKs41.js";import{t as n}from"./react-DJZBPgpf.js";import{t as r}from"./button-B1kEAcLt.js";import{d as i,h as a}from"./chunk-5KNZJZUH-CPFsMQoz.js";import{t as o}from"./jsx-runtime-COOF1INC.js";import{t as s}from"./check-bDVYejGM.js";import{t as c}from"./menu-DPM2p9S5.js";import{t as l}from"./cloud-6GKvvsQ6.js";import{t as u}from"./ellipsis-vertical-BJaOQqv_.js";import{t as d}from"./globe-DJ3y3hQh.js";import{t as f}from"./laptop-XN6nYvdB.js";import{t as p}from"./link-2-Di62Fo_i.js";import{t as m}from"./plus-rgqTRjE1.js";import{t as h}from"./notice-BHeYlKvv.js";import{n as ee,t as g}from"./input-ChbJ2nzd.js";import{t as _}from"./modal-_49mDK_d.js";import{t as v}from"./confirm-dialog-EPYSBP_B.js";import{G as y,H as b,Q as x,S,Y as te,g as ne,h as C,it as re,k as ie,pt as w,t as ae,v as oe}from"./local-mode-BQ8gp0wB.js";import{t as se}from"./is-electron-D45bjFI8.js";import{n as ce,r as le}from"./resolved-assistants-store-DEtotxhR.js";import{t as ue}from"./Trans-v2rRKTPL.js";import{X as de,i as fe,tt as pe}from"./auth-store-CjmqULlA.js";import{c as me}from"./remote-gateway-session-C3H0Oq0r.js";import{f as T}from"./routes-C6ueuiMd.js";import{g as he,u as ge}from"./platform-detection-BVSM8PRh.js";import{a as E,i as _e,n as ve,t as ye}from"./remove-from-device-dialog-CYJV-5IC.js";import{t as be}from"./use-onboarding-login-Q4gvH8Wj.js";import{n as xe,t as D}from"./retire-confirm-dialog-B3ZUAlmZ.js";import{t as Se}from"./onboarding-layout-C9v6Q2QQ.js";import{i as Ce}from"./format-date-C4mrDYY6.js";import{t as we}from"./index-CfSEZ8JN.js";import{t as Te}from"./radio-card-nav-CgGzva7O.js";import{a as O,i as Ee,n as De,o as k,t as Oe}from"./self-hosted-servers-DTLMKzVl.js";var A=e(n(),1);async function ke(e){let t=()=>window.location.assign(`${e.url}${T.assistant}`);if(!ge()){t();return}await De(e.url)||t()}function Ae(e){return O(S()?me():window.location.origin)===e.url}var j=o(),M=`Failed to add the assistant. Please try again.`;function N(e){for(let t of[`/assistant/pair`,`/assistant`])if(e.endsWith(t))return e.slice(0,-t.length);return e}function je({open:e,onClose:n,onAdded:i}){let{t:a}=t(`onboarding`),[o,s]=(0,A.useState)(``),[c,l]=(0,A.useState)(!1),[u,f]=(0,A.useState)(null);(0,A.useEffect)(()=>{e&&(s(``),l(!1),f(null))},[e]);let p=()=>{c||n()},m=async()=>{if(!o.trim()||c)return;let e=O(o),t=e===null?null:O(N(e));if(t===null){f(`Enter the full https address, like https://example.com/assistant-1.`);return}l(!0),f(null);try{let e=await k.getState().addOrigin({url:t});if(e.ok){i(e.origin);return}f(M)}catch(e){console.error(`addRemoteOriginDialog.add failed`,e),f(M)}l(!1)};return(0,j.jsx)(_.Root,{open:e,onOpenChange:e=>{e||p()},children:(0,j.jsxs)(_.Content,{size:`md`,children:[(0,j.jsxs)(_.Header,{icon:d,children:[(0,j.jsx)(_.Title,{children:a(`addRemoteOriginDialog.title`)}),(0,j.jsx)(_.Description,{children:a(`addRemoteOriginDialog.body`)})]}),(0,j.jsx)(_.Body,{children:(0,j.jsxs)(`div`,{className:`space-y-4`,children:[(0,j.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,j.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`add-remote-origin-url`,children:a(`addRemoteOriginDialog.addressLabel`)}),(0,j.jsx)(g,{id:`add-remote-origin-url`,type:`url`,value:o,onChange:e=>s(e.target.value),placeholder:`https://example.com/assistant-1`,fullWidth:!0,autoFocus:!0})]}),u&&(0,j.jsx)(`p`,{className:`text-body-small-default text-[var(--system-negative-strong)]`,children:u})]})}),(0,j.jsxs)(_.Footer,{children:[(0,j.jsx)(r,{variant:`ghost`,onClick:p,disabled:c,children:a(`actions.cancel`)}),(0,j.jsx)(r,{variant:`primary`,onClick:()=>void m(),disabled:!o.trim()||c,children:a(c?`actions.adding`:`actions.add`)})]})]})})}function Me({open:e,initialBundle:n,guidanceMessage:i,onClose:a,onImported:o}){let{t:s}=t(`onboarding`),[c,l]=(0,A.useState)(``),[u,d]=(0,A.useState)(``),[f,m]=(0,A.useState)(!1),[v,y]=(0,A.useState)(null),[b,x]=(0,A.useState)(null);(0,A.useEffect)(()=>{e&&(l(n??``),d(``),m(!1),y(null),x(null))},[e,n]);let S=()=>{f||a()},te=async()=>{let e=c.trim();if(!(!e||f)){m(!0),y(null);try{let t=await C(e,u.trim()||void 0);if(!t.ok)y(t.error);else if(t.accessOnly)x(t.assistantId);else{o(t.assistantId);return}}catch(e){console.error(`connectAssistantDialog.import failed`,e),y(`Failed to import the pairing bundle. Please try again.`)}m(!1)}};return b==null?(0,j.jsx)(_.Root,{open:e,onOpenChange:e=>{e||S()},children:(0,j.jsxs)(_.Content,{size:`md`,children:[(0,j.jsxs)(_.Header,{icon:p,children:[(0,j.jsx)(_.Title,{children:s(`connectAssistantDialog.title`)}),(0,j.jsx)(_.Description,{children:(0,j.jsx)(ue,{i18nKey:`connectAssistantDialog.instruction`,ns:`onboarding`,components:{code:(0,j.jsx)(`code`,{})}})})]}),(0,j.jsx)(_.Body,{children:(0,j.jsxs)(`div`,{className:`space-y-4`,children:[i&&(0,j.jsx)(h,{tone:`info`,children:i}),(0,j.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,j.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`connect-assistant-bundle`,children:s(`connectAssistantDialog.bundleLabel`)}),(0,j.jsx)(ee,{id:`connect-assistant-bundle`,value:c,onChange:e=>l(e.target.value),placeholder:`eyJnYXRld2F5...`,rows:4,fullWidth:!0,autoFocus:!0})]}),(0,j.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,j.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`connect-assistant-name`,children:s(`connectAssistantDialog.nameLabel`)}),(0,j.jsx)(g,{id:`connect-assistant-name`,type:`text`,value:u,onChange:e=>d(e.target.value),placeholder:`office-mac`,fullWidth:!0})]}),v&&(0,j.jsx)(`p`,{className:`text-body-small-default text-[var(--system-negative-strong)]`,children:v})]})}),(0,j.jsxs)(_.Footer,{children:[(0,j.jsx)(r,{variant:`ghost`,onClick:S,disabled:f,children:s(`actions.cancel`)}),(0,j.jsx)(r,{variant:`primary`,onClick:()=>void te(),disabled:!c.trim()||f,children:s(f?`actions.connecting`:`actions.connect`)})]})]})}):(0,j.jsx)(_.Root,{open:e,onOpenChange:e=>{e||S()},children:(0,j.jsxs)(_.Content,{size:`sm`,children:[(0,j.jsx)(_.Header,{icon:p,children:(0,j.jsx)(_.Title,{children:s(`connectAssistantDialog.importedTitle`)})}),(0,j.jsx)(_.Body,{children:(0,j.jsx)(h,{tone:`warning`,children:s(`connectAssistantDialog.importedBody`)})}),(0,j.jsx)(_.Footer,{children:(0,j.jsx)(r,{variant:`primary`,onClick:()=>o(b),children:s(`actions.continue`)})})]})})}function Ne({open:e,assistantName:n,isPending:i,errorMessage:a,onCancel:o,onRepair:s,onRetire:c}){let{t:l}=t(`onboarding`),[u,d]=(0,A.useState)(`menu`);(0,A.useEffect)(()=>{e&&d(`menu`)},[e]);let f=a?(0,j.jsx)(`span`,{className:`mt-3 block text-body-small-default text-[var(--system-negative-strong)]`,children:a}):null;return u===`confirm-repair`?(0,j.jsx)(v,{open:e,title:l(`connectRecoveryDialog.repairTitle`),message:(0,j.jsxs)(j.Fragment,{children:[l(`connectRecoveryDialog.repairBody`),f]}),confirmLabel:l(`connectRecoveryDialog.repairConfirm`),isPending:i,onConfirm:s,onCancel:()=>d(`menu`)}):u===`confirm-retire`?(0,j.jsx)(D,{open:e,isPending:i,extraMessage:f,onConfirm:c,onCancel:()=>d(`menu`)}):(0,j.jsx)(_.Root,{open:e,onOpenChange:e=>{!e&&!i&&o()},children:(0,j.jsxs)(_.Content,{size:`sm`,hideCloseButton:!0,onEscapeKeyDown:e=>{e.preventDefault(),e.stopPropagation(),i||o()},children:[(0,j.jsx)(_.Header,{children:(0,j.jsx)(_.Title,{children:l(`connectRecoveryDialog.authFailedTitle`)})}),(0,j.jsxs)(_.Body,{children:[(0,j.jsx)(_.Description,{children:l(`connectRecoveryDialog.authFailedBody`,{name:n})}),f,(0,j.jsxs)(`div`,{className:`mt-5 flex w-full flex-col gap-2`,children:[(0,j.jsx)(r,{variant:`primary`,fullWidth:!0,disabled:i,onClick:()=>d(`confirm-repair`),children:l(`connectRecoveryDialog.wakeAndRepair`)}),(0,j.jsx)(r,{variant:`dangerOutline`,fullWidth:!0,disabled:i,onClick:()=>d(`confirm-retire`),children:l(`connectRecoveryDialog.retire`)}),(0,j.jsx)(r,{variant:`outlined`,fullWidth:!0,disabled:i,onClick:o,children:l(`actions.cancel`)})]})]})]})})}function Pe(e){return e.name?e.name:e.isPaired?`Paired Assistant`:e.isLocal&&e.cloud===`local`?e.id:e.isLocal?`Local Assistant`:`Cloud Assistant`}function Fe(e,t){if(e)try{return t(`selectAssistantScreen.selfHostedWithHost`,{host:new URL(e).hostname})}catch{}return t(`selectAssistantScreen.selfHosted`)}function P(e,t){let n=e.isPaired?w(e.runtimeUrl):e.isLocal?oe()?`On this computer`:Fe(e.ingressUrl,t):`Cloud-hosted`;return e.hatchedAt?`${n} · Created ${Ce(e.hatchedAt)}`:n}function F(e){return new URL(e.url).hostname}function Ie(e){return e.name??F(e)}function I(e){return`origin:${e.url}`}var L=`origin:vellum-cloud`;function Le(e){let t=new URLSearchParams(e);return t.delete(`register`),t.delete(`name`),t}function Re(){let{t:e}=t(`onboarding`),n=i(),[o,s]=a(),c=o.get(`fromLogin`)===`1`,u=o.get(`noAutoSkip`)===`1`,f=se(),h=oe(),ee=fe(),g=le.use.assistants(),_=pe.use.currentOrganizationId(),v=k.use.origins(),S=k.use.hydrated(),C=he(),{loading:w,error:ue,login:me,cancel:ge}=be(),[D,Ce]=(0,A.useState)(null),M=D===null?null:{url:D,name:`Vellum Cloud`},N=M!==null,Fe=e=>e.isPaired||e.isLocal&&h||ee,P=g.filter(ce),F=P.filter(Fe),Re=F.length>0||v.length>0||M!==null,z=b(),Be=!ee&&z,[B,V]=(0,A.useState)(null),[H,Ue]=(0,A.useState)(!1),[We,Ge]=(0,A.useState)(!1),[Ke,qe]=(0,A.useState)(null),[U,Je]=(0,A.useState)(null),[Ye,W]=(0,A.useState)(!1),[Xe,G]=(0,A.useState)(null),[K,q]=(0,A.useState)(null),[Ze,Qe]=(0,A.useState)(!1),[$e,J]=(0,A.useState)(null),[et,tt]=(0,A.useState)(!1),[Y,nt]=(0,A.useState)(null),[rt,it]=(0,A.useState)(!1),[at,ot]=(0,A.useState)(null),st=E.use.open(),ct=E.use.initialBundle(),lt=E.use.guidanceMessage(),ut=E.use.deepLinkDrainSettled(),X=(0,A.useRef)(!1);(0,A.useEffect)(()=>{we()},[]),(0,A.useEffect)(()=>{Oe(),k.getState().hydrate()},[]),(0,A.useEffect)(()=>{if(!C)return;let e=!1;return Ee().then(t=>{e||Ce(t)}),()=>{e=!0}},[C]);let Z=(0,A.useRef)(!1);(0,A.useEffect)(()=>{if(Z.current)return;Z.current=!0;let e=o.get(`register`);if(e===null)return;let t=()=>s(Le,{replace:!0}),n=O(e);if(n===null){t();return}k.getState().addOrigin({url:n,name:o.get(`name`)??void 0}).then(e=>{e.ok?t():Z.current=!1}).catch(()=>{Z.current=!1})},[o,s]),(0,A.useEffect)(()=>{if(B===L&&N||B!=null&&v.some(e=>I(e)===B))return;if(F.length===0){let e=v[0],t=e?I(e):N?L:null;B!==t&&V(t);return}if(B!=null&&F.some(e=>e.id===B))return;let e=de(_);V(F.find(t=>t.id===e)?.id??F[0].id)},[B,F,_,v,N]);let Q=async e=>{Ue(!0),qe(null);try{await _e(e),n(T.assistant,{replace:!0})}catch(t){console.error(`selectAssistant.handleConnect failed`,t),e.isLocal&&b()&&(y(t)||re(t)||t instanceof ae)&&ne(e.id)?Je(e):e.isPaired&&y(t)?qe(`This pairing has expired. Run vellum pair on the assistant's machine and import it again with vellum connect import.`):qe(`Failed to connect. Please try again.`),Ue(!1)}},dt=()=>{Je(null),W(!1),G(null),Ge(!1)},ft=async()=>{if(!(!U||Ye)){W(!0),G(null);try{let e=await te(U.id,{repairGuardian:!0});if(e.ok){x(),dt(),Q(U);return}G(e.error||`Repair failed. Please try again.`)}catch(e){console.error(`selectAssistant.recoveryRepair failed`,e),G(`Repair failed. Please try again.`)}W(!1)}},pt=async()=>{if(!(!U||Ye)){W(!0),G(null);try{let e=await xe(U.id);if(e.ok){dt(),n(e.nextRoute,{replace:!0});return}G(e.error)}catch(e){console.error(`selectAssistant.recoveryRetire failed`,e),G(`Failed to retire assistant. Please try again.`)}W(!1)}},mt=()=>{Ze||(q(null),J(null))},ht=async()=>{if(!(!K||Ze)){if(Qe(!0),J(null),K.isPaired){let e=await ve(K.id);e.ok?(X.current=!0,q(null)):J(e.error),Qe(!1);return}try{let e=await ie(K.id);if(e.ok){let e=le.getState();e.activeAssistantId===K.id&&e.setActiveAssistantId(null),X.current=!0,q(null)}else J(e.error??`Failed to remove. Please try again.`)}catch(e){console.error(`selectAssistant.removeFromDevice failed`,e),J(`Failed to remove. Please try again.`)}Qe(!1)}},gt=()=>{rt||(nt(null),ot(null))},_t=async()=>{!Y||rt||(it(!0),ot(null),await k.getState().removeOrigin(Y.url),k.getState().origins.some(e=>e.url===Y.url)?ot(`Failed to remove. Please try again.`):(X.current=!0,nt(null)),it(!1))},vt=e=>{E.getState().closeConnectDialog(),Q(le.getState().assistants.find(t=>t.id===e)??{id:e,isLocal:!1,isPlatformHosted:!1,isPaired:!0})},yt=e=>{tt(!1),ke(e)};(0,A.useEffect)(()=>{c||u||X.current||h&&S&&(v.length>0||f&&!ut||H||We||st||P.length!==0&&P.length===1&&F.length===1&&(Ge(!0),Q(F[0])))},[P.length,F.length,ut,h,v.length,S]);let bt=()=>{if(B===L){De(null).then(e=>{!e&&D!==null&&window.location.assign(D)});return}let e=v.find(e=>I(e)===B);if(e){Ae(e)?n(T.assistant,{replace:!0}):ke(e);return}let t=P.find(e=>e.id===B);t&&Q(t)},xt=()=>{n(h?T.welcome:T.assistant)},$=ue??Ke;return We&&!$&&!U?(0,j.jsx)(ze,{}):(0,j.jsxs)(Se,{avatarWave:`beside`,children:[(0,j.jsx)(`div`,{className:`mx-auto flex w-full max-w-xl flex-col items-center ${f?`min-h-full px-8 pt-21 pb-4 electron-prechat-type`:`min-h-screen px-6 pb-40 pt-6 md:min-h-full md:pb-6`} text-[var(--content-default)]`,children:(0,j.jsxs)(`div`,{className:`flex w-full flex-col items-center ${f?``:`flex-1 justify-center`}`,children:[(0,j.jsx)(`h1`,{className:`text-center text-5xl font-normal tracking-tight md:text-4xl lg:text-5xl`,style:{fontFamily:`var(--font-serif)`,animation:`fadeInUp 0.5s ease-out 0.1s both`},children:e(`selectAssistantScreen.title`)}),$&&(0,j.jsx)(`p`,{className:`mt-4 text-body-small-default text-[var(--system-negative-strong)]`,children:$}),(0,j.jsxs)(`div`,{role:`radiogroup`,"aria-label":e(`selectAssistantScreen.listAriaLabel`),onKeyDown:Te,className:`flex w-full flex-col ${f?`mt-8 gap-2`:`mt-10 gap-3`}`,style:{animation:`fadeInUp 0.5s ease-out 0.3s both`},children:[P.map(t=>{let n=Fe(t);return(0,j.jsx)(Ve,{assistant:t,selected:B===t.id,locked:!n,tabStop:B==null?F[0]?.id===t.id:B===t.id,onSelect:()=>{n&&V(t.id)},loginLabel:e(w?`actions.cancel`:`actions.loginToUse`),loginDisabled:H,onLogin:!n&&(t.isPlatformHosted||t.isLocal)?w?ge:()=>void me():void 0,onRemove:t.isPlatformHosted&&Be||t.isPaired&&z?()=>q(t):void 0},t.id)}),v.map((e,t)=>{let n=I(e),r=Ae(e);return(0,j.jsx)(He,{origin:e,selected:B===n,current:r,tabStop:B==null?F.length===0&&t===0:B===n,onSelect:()=>V(n),onRemove:r&&C?void 0:()=>nt(e)},e.url)}),M&&(0,j.jsx)(He,{origin:M,icon:(0,j.jsx)(l,{className:`h-5 w-5`}),selected:B===L,current:!1,tabStop:B==null?F.length===0&&v.length===0:B===L,onSelect:()=>V(L)}),h&&(0,j.jsx)(R,{icon:(0,j.jsx)(m,{className:`h-4 w-4`}),label:e(`selectAssistantScreen.createNew`),disabled:H||w,onClick:()=>void n(`${T.onboarding.hosting}?from=select-assistant`)}),z&&(0,j.jsx)(R,{icon:(0,j.jsx)(p,{className:`h-4 w-4`}),label:e(`selectAssistantScreen.connectRemote`),disabled:H||w,onClick:()=>E.getState().openConnectDialog()}),!z&&(0,j.jsx)(R,{icon:(0,j.jsx)(d,{className:`h-4 w-4`}),label:e(`selectAssistantScreen.addRemote`),disabled:H||w,onClick:()=>tt(!0)})]}),Re&&(0,j.jsx)(`div`,{className:`mt-8 w-full`,style:{animation:`fadeInUp 0.5s ease-out 0.4s both`},children:(0,j.jsx)(r,{variant:`primary`,size:`regular`,fullWidth:!0,className:f?void 0:`h-11 text-base`,onClick:bt,disabled:!B||H,children:e(H?`actions.connecting`:`actions.continue`)})}),(0,j.jsx)(`div`,{className:Re?`mt-3`:`mt-8`,style:{animation:`fadeInUp 0.5s ease-out 0.5s both`},children:(0,j.jsx)(r,{variant:`ghost`,size:`regular`,className:`text-[var(--content-tertiary)]`,onClick:xt,disabled:H||w,children:e(`actions.back`)})})]})}),(0,j.jsx)(je,{open:et,onClose:()=>tt(!1),onAdded:yt}),(0,j.jsx)(Me,{open:st,initialBundle:ct??void 0,guidanceMessage:lt??void 0,onClose:()=>E.getState().closeConnectDialog(),onImported:vt}),(0,j.jsx)(Ne,{open:U!=null,assistantName:U?Pe(U):``,isPending:Ye,errorMessage:Xe??void 0,onCancel:dt,onRepair:()=>void ft(),onRetire:()=>void pt()}),(0,j.jsx)(ye,{open:K!=null,kind:K?.isPaired?`paired`:`platform`,assistantName:K?Pe(K):e(`selectAssistantScreen.unnamedAssistant`),errorMessage:$e??void 0,isPending:Ze,onConfirm:()=>void ht(),onCancel:mt}),(0,j.jsx)(ye,{open:Y!=null,kind:`origin`,assistantName:Y?Ie(Y):e(`selectAssistantScreen.unnamedAssistant`),errorMessage:at??void 0,isPending:rt,onConfirm:()=>void _t(),onCancel:gt})]})}function ze(){let{t:e}=t(`onboarding`);return(0,j.jsx)(Se,{avatarWave:`beside`,children:(0,j.jsx)(`div`,{className:`mx-auto flex min-h-screen w-full max-w-xl flex-col items-center justify-center px-6 text-[var(--content-default)]`,children:(0,j.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:e(`selectAssistantScreen.connectingToAssistant`)})})})}function R({icon:e,label:t,disabled:n,onClick:r}){let i=se();return(0,j.jsxs)(`button`,{type:`button`,onClick:r,disabled:n,className:[`group flex w-full items-center justify-center gap-2 border border-dashed border-[var(--border-element)]/50 text-[var(--content-tertiary)]`,i?`rounded-lg px-3 py-2.5`:`rounded-xl px-5 py-3`,`cursor-pointer transition-all duration-200 ease-out`,`hover:border-[var(--border-element)] hover:bg-[var(--surface-hover)] hover:text-[var(--content-default)]`,`disabled:cursor-not-allowed disabled:opacity-50`].join(` `),children:[e,(0,j.jsx)(`span`,{className:i?`text-body-small-default`:`text-body-medium-default`,children:t})]})}function z({label:e,onRemove:n}){let{t:i}=t(`onboarding`);return(0,j.jsxs)(c.Root,{children:[(0,j.jsx)(c.Trigger,{asChild:!0,children:(0,j.jsx)(r,{variant:`ghost`,size:`regular`,className:`text-[var(--content-tertiary)]`,iconOnly:(0,j.jsx)(u,{}),"aria-label":i(`selectAssistantScreen.rowActionsAriaLabel`,{name:e})})}),(0,j.jsx)(c.Content,{align:`end`,sideOffset:4,children:(0,j.jsx)(c.Item,{onSelect:n,className:`text-[var(--system-negative-strong)] data-[highlighted]:text-[var(--system-negative-strong)]`,children:i(`selectAssistantScreen.removeFromDevice`)})})]})}function Be({icon:e,title:t,subtitle:n,selected:r,locked:i=!1,tabStop:a,onSelect:o,action:c,removeMenu:l}){let u=se();return(0,j.jsxs)(`div`,{role:i?void 0:`radio`,"aria-checked":i?void 0:r,tabIndex:i?void 0:a?0:-1,onClick:i?void 0:o,onKeyDown:i?void 0:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),o())},className:[`group flex w-full items-center border text-left`,u?`gap-3 rounded-lg px-[10px] py-3`:`gap-4 rounded-2xl px-[18px] py-4`,`transition-all duration-200 ease-out`,i?`border-[var(--border-base)] bg-[var(--surface-overlay)]`:`cursor-pointer focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--primary-base)]`,i?``:r?`border-[var(--primary-base)] bg-[var(--surface-lift)]`:`border-[var(--border-base)] bg-[var(--surface-lift)]/60 hover:border-[var(--border-element)] hover:bg-[var(--surface-lift)]`].join(` `),children:[(0,j.jsx)(`div`,{className:[`flex shrink-0 items-center justify-center transition-colors duration-200`,`h-12 w-12 rounded-[10px]`,r&&!i?`bg-[var(--primary-base)] text-[var(--surface-base)]`:`bg-[var(--surface-active)]/40 text-[var(--content-secondary)]`].join(` `),children:e}),(0,j.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,j.jsx)(`span`,{className:`block text-body-medium-default text-[var(--content-default)]`,children:t}),(0,j.jsx)(`span`,{className:`mt-1 block text-[var(--content-tertiary)] ${u?`text-label-medium-default font-normal`:`text-body-small-lighter`}`,children:n})]}),(0,j.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[c,l&&(i?l:(0,j.jsx)(`div`,{onClick:e=>e.stopPropagation(),onKeyDown:e=>e.stopPropagation(),children:l})),!i&&(0,j.jsx)(`div`,{className:[`flex h-5 w-5 shrink-0 items-center justify-center rounded-full border-2 transition-all duration-200`,r?`border-[var(--primary-base)] bg-[var(--primary-base)]`:`border-[var(--border-element)] group-hover:border-[var(--content-tertiary)]`].join(` `),children:r&&(0,j.jsx)(s,{className:`h-3 w-3 text-[var(--surface-base)]`,strokeWidth:3})})]})]})}function Ve({assistant:e,selected:n,locked:i,tabStop:a,onSelect:o,loginLabel:s,loginDisabled:c,onLogin:u,onRemove:d}){let{t:m}=t(`onboarding`),h=Pe(e);return(0,j.jsx)(Be,{icon:e.isPaired?(0,j.jsx)(p,{className:`h-5 w-5`}):e.isLocal?(0,j.jsx)(f,{className:`h-5 w-5`}):(0,j.jsx)(l,{className:`h-5 w-5`}),title:h,subtitle:P(e,m),selected:n,locked:i,tabStop:a,onSelect:o,action:i&&u?(0,j.jsx)(r,{variant:`primary`,size:`regular`,onClick:u,disabled:c,children:s}):void 0,removeMenu:d&&(0,j.jsx)(z,{label:h,onRemove:d})})}function He({origin:e,icon:n,selected:r,current:i,tabStop:a,onSelect:o,onRemove:s}){let{t:c}=t(`onboarding`),l=Ie(e);return(0,j.jsx)(Be,{icon:n??(0,j.jsx)(d,{className:`h-5 w-5`}),title:l,subtitle:c(i?`selectAssistantScreen.currentWithHost`:`selectAssistantScreen.remoteWithHost`,{host:F(e)}),selected:r,tabStop:a,onSelect:o,removeMenu:s&&(0,j.jsx)(z,{label:l,onRemove:s})})}export{Re as SelectAssistantScreen};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e,t}from"./create-selectors-sLdtxUZQ.js";import{u as n}from"./local-settings-D9SNRv4p.js";import{i as r}from"./dist-Cr8OiiXj.js";import{t as i}from"./widget-snapshot-OH8xHYY2.js";import{i as a}from"./typed-storage-Bw4gW_Pk.js";import{u as o}from"./platform-detection-
|
|
1
|
+
import{n as e,t}from"./create-selectors-sLdtxUZQ.js";import{u as n}from"./local-settings-D9SNRv4p.js";import{i as r}from"./dist-Cr8OiiXj.js";import{t as i}from"./widget-snapshot-OH8xHYY2.js";import{i as a}from"./typed-storage-Bw4gW_Pk.js";import{u as o}from"./platform-detection-BVSM8PRh.js";var s=`vellum:remembered-origins`;function c(e){let t=e.trim();if(t===``)return null;let n;try{n=new URL(t)}catch{return null}return n.protocol!==`https:`||n.hostname===``?null:`${n.origin}${n.pathname.replace(/\/+$/,``)}`}function l(e,t){let n=[],r=new Set,i=t??new Date().toISOString();for(let t of e){if(typeof t!=`object`||!t)continue;let{url:e,name:a,addedAt:o}=t;if(typeof e!=`string`)continue;let s=c(e);s===null||r.has(s)||(r.add(s),n.push({url:s,...typeof a==`string`&&a!==``?{name:a}:{},addedAt:typeof o==`string`?o:i}))}return n}function u(e){let t=JSON.parse(e);return Array.isArray(t)?l(t):null}var d=a({key:s,scope:`device`,parse:u,serialize:JSON.stringify,fallback:[]}),f={load:async()=>d.load(),save:async e=>{d.save(e)},watch:e=>n(s,e)},p=f,m=null,h=0,g=Promise.resolve(),_=`vellum:remembered-origins:mutate`;async function v(e){let t=typeof navigator>`u`?void 0:navigator.locks;return t?await t.request(_,e):e()}function y(e){let t=()=>v(e),n=g.then(t,t);return g=n.catch(()=>void 0),n}var b=null,x=!1;function S(e){return y(async()=>{try{let t=await p.load();if(e!==h)return;T.getState().hydrated?T.setState({origins:t}):m===null?T.getState().hydrate():x=!0}catch{}})}function C(){b?.();let e=h;b=p.watch?.(()=>void S(e))??null}function w(e){p=e,h+=1,m=null,x=!1,T.setState({hydrated:!1}),C(),T.getState().hydrate()}var T=e()((e,t)=>({origins:[],hydrated:!1,hydrate:()=>(m??=(async()=>{let t=h;await Promise.resolve();try{let n=await p.load();t===h&&(e({origins:n,hydrated:!0}),x&&(x=!1,S(t)))}catch{t===h&&(m=null)}})(),m),addOrigin:async({url:n,name:r})=>{let i=c(n);return i===null?{ok:!1}:y(async()=>{if(await t().hydrate(),!t().hydrated)return{ok:!1};let n=p,a=h,o;try{o=await n.load()}catch{return{ok:!1}}if(a!==h)return{ok:!1};let s=r?.trim(),c=o.find(e=>e.url===i),l=c??{url:i,addedAt:new Date().toISOString()},u=s?{...l,name:s}:l,d=c?o.map(e=>e.url===i?u:e):[...o,u];try{await n.save(d)}catch{return{ok:!1}}return a===h?(e({origins:d}),{ok:!0,origin:u}):{ok:!1}})},removeOrigin:async n=>{let r=c(n);r!==null&&await y(async()=>{if(await t().hydrate(),!t().hydrated)return;let n=p,i=h,a;try{a=await n.load()}catch{return}if(i!==h)return;let o=a.filter(e=>e.url!==r);if(o.length!==a.length)try{await n.save(o)}catch{return}i===h&&e({origins:o})})}}));C();var E=t(T),D=r(`SelfHostedServers`),O=`1970-01-01T00:00:00.000Z`;async function k(){try{return await D.list()}catch(e){return console.debug(`[self-hosted-servers] bridge unavailable:`,e),null}}var A=`vellum:remembered-origins:native-migrated`;function j(){try{return window.localStorage.getItem(A)===`true`}catch{return!0}}function M(){try{window.localStorage.setItem(A,`true`)}catch{}}async function N(e){if(j())return e;let t=[];try{t=await f.load()}catch{t=[]}let n=new Set(e.map(e=>e.url)),r=t.filter(e=>!n.has(e.url)),i=[];for(let t of r){try{await D.add({url:t.url,...t.name?{name:t.name}:{}})}catch(t){return console.debug(`[self-hosted-servers] migration add failed:`,t),[...e,...i]}i.push(t)}return M(),[...e,...i]}function P(){return{load:async()=>{let e=await k();return e===null?f.load():N(l(e.servers,O))},save:async e=>{let t=await k();if(t===null){await f.save(e);return}let n=new Map(l(t.servers,O).map(e=>[e.url,e.name])),r=new Set(e.map(e=>e.url));for(let e of n.keys())r.has(e)||await D.remove({url:e});for(let t of e)(!n.has(t.url)||t.name&&t.name!==n.get(t.url))&&await D.add({url:t.url,...t.name?{name:t.name}:{}})},watch:f.watch}}var F=!1;function I(){F||!o()||(F=!0,w(P()))}async function L(e,t){if(!o())return!1;await i();try{return await t(),!0}catch(t){return console.debug(`[self-hosted-servers] ${e} unavailable:`,t),!1}}async function R(e){return L(`switchTo`,()=>D.switchTo(e===null?{}:{url:e}))}async function z(e,t){return L(`switchToPath`,()=>D.switchToPath({...e===null?{}:{url:e},path:t}))}async function B(){if(!o())return null;let e=await k();return e===null||!e.activeUrl?null:e.bakedUrl?c(e.bakedUrl):null}export{c as a,B as i,R as n,E as o,z as r,I as t};
|