@vellumai/web 0.11.3-staging.1 → 0.11.3-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.
Files changed (184) hide show
  1. package/dist/assets/{access-BEF4g5Xz.js → access-DWtJQvRI.js} +1 -1
  2. package/dist/assets/{account-page-CjBQhkfo.js → account-page-D03pCcnz.js} +1 -1
  3. package/dist/assets/{account-shell-BwGiy59u.js → account-shell-DmVQwtZ0.js} +1 -1
  4. package/dist/assets/{acp-run-detail-panel-BPcNCjiL.js → acp-run-detail-panel-COs66Yrd.js} +1 -1
  5. package/dist/assets/{activity-steps-panel-DhuSLpCc.js → activity-steps-panel-CLjBxqNs.js} +1 -1
  6. package/dist/assets/ai-page-D4GbPprS.js +1 -0
  7. package/dist/assets/{api-key-screen-D1j3oper.js → api-key-screen-vFF5CrFw.js} +1 -1
  8. package/dist/assets/{app-card-BBt0ilaM.js → app-card-B7C46-7O.js} +1 -1
  9. package/dist/assets/{assistant-status-panel-DnkQ1jrJ.js → assistant-status-panel-CDUAp33H.js} +1 -1
  10. package/dist/assets/{auth-store-CPVpJ_c7.js → auth-store-DkOiOQNx.js} +1 -1
  11. package/dist/assets/{avatar-random-BHVo9v-a.js → avatar-random-BiLhcs1I.js} +1 -1
  12. package/dist/assets/{background-task-detail-panel-CyVrsboL.js → background-task-detail-panel-xFGqYCUz.js} +1 -1
  13. package/dist/assets/{billing-page-CvZZTRHS.js → billing-page-n2hU_EAj.js} +2 -2
  14. package/dist/assets/{bookmarks-page-M8X5Jj_q.js → bookmarks-page-DqXq2CVJ.js} +1 -1
  15. package/dist/assets/{build-state-DGpOoR0F.js → build-state-B0f3Jn2o.js} +1 -1
  16. package/dist/assets/channels-page-route-CbV05RLi.js +9 -0
  17. package/dist/assets/chat-markdown-message-WfT4JUja.js +1 -0
  18. package/dist/assets/{checkout-page-CQdvMHxx.js → checkout-page-BxYwG3J8.js} +1 -1
  19. package/dist/assets/{command-palette-DjHOOk8U.js → command-palette-DSxHNf_m.js} +1 -1
  20. package/dist/assets/{command-palette-window-page-msewbnL1.js → command-palette-window-page-9lbssBKp.js} +1 -1
  21. package/dist/assets/{common-BUQt6ee_.js → common-wFfOb0rN.js} +1 -1
  22. package/dist/assets/{composer-settings-veIRzcPS.js → composer-settings-MHDtr31Y.js} +1 -1
  23. package/dist/assets/{contacts-page-route-Caog1niM.js → contacts-page-route-BE3oNfhk.js} +1 -1
  24. package/dist/assets/{conversation-navigation-DqU55C7j.js → conversation-navigation-DbQqV_fs.js} +1 -1
  25. package/dist/assets/{conversation-queries-Bh_7RMKd.js → conversation-queries-CMEwcap1.js} +1 -1
  26. package/dist/assets/{credentials-page-D3H8KP0a.js → credentials-page-DKfIMfUB.js} +1 -1
  27. package/dist/assets/{csv-preview-Crel8fKb.js → csv-preview-DB8q0b_y.js} +1 -1
  28. package/dist/assets/{debug-page-By8-4Cjy.js → debug-page-DpWI-aFX.js} +2 -2
  29. package/dist/assets/{deploy-dialogs-Dak-wWO4.js → deploy-dialogs-BhY-urVH.js} +1 -1
  30. package/dist/assets/{deploy-store-0HlKHhLJ.js → deploy-store-OFWDAEgC.js} +1 -1
  31. package/dist/assets/{detail-card-CmSV969e.js → detail-card-Dsnf52vg.js} +1 -1
  32. package/dist/assets/{detail-drawer-HN4NsyKg.js → detail-drawer-AKY7keIJ.js} +1 -1
  33. package/dist/assets/{detail-panel-stop-button-DV6U5A7y.js → detail-panel-stop-button-Cvnn4hYA.js} +1 -1
  34. package/dist/assets/{detail-shell-rL601Rqo.js → detail-shell-g6Pw4jiP.js} +1 -1
  35. package/dist/assets/{developer-page-Bgg8qW6q.js → developer-page-CSFTdMiT.js} +1 -1
  36. package/dist/assets/{document-viewer-container-BkKmz-ar.js → document-viewer-container-Bousf9D9.js} +2 -2
  37. package/dist/assets/{document-viewer-page-B-jAUGAO.js → document-viewer-page-CJuMnNZk.js} +1 -1
  38. package/dist/assets/{emails-page-B0r-ksKy.js → emails-page-CMoX6WSY.js} +1 -1
  39. package/dist/assets/{file-editor-BQUkusyI.js → file-editor-BwWJX7zO.js} +1 -1
  40. package/dist/assets/file-markdown-CZPyyZhu.js +2 -0
  41. package/dist/assets/{first-run-scope-U5LrdMhR.js → first-run-scope-jh9sT0_v.js} +1 -1
  42. package/dist/assets/{general-page-Ce41M2hE.js → general-page-Biad-auh.js} +1 -1
  43. package/dist/assets/{hatching-screen-TI6k1_Q2.js → hatching-screen-DtMbgBm6.js} +1 -1
  44. package/dist/assets/{home-page-route-D6oL1pWj.js → home-page-route-k81d1Zsb.js} +1 -1
  45. package/dist/assets/{home-tool-permission-card-DG7KNyYY.js → home-tool-permission-card-Bytpm6bE.js} +1 -1
  46. package/dist/assets/{hosting-screen-CGkMm-2o.js → hosting-screen-C-6MdEhq.js} +1 -1
  47. package/dist/assets/identity-page-route-BEobbSBV.js +7 -0
  48. package/dist/assets/{index-3KliM4Ki.js → index-BI5VpYa-.js} +1 -1
  49. package/dist/assets/index-_S2T-6in.css +2 -0
  50. package/dist/assets/{inspect-page-DD024DeO.js → inspect-page-BSPJgPij.js} +3 -3
  51. package/dist/assets/integration-icon-R8opqT3n.js +1 -0
  52. package/dist/assets/integrations-page-DNYDhZHQ.js +1 -0
  53. package/dist/assets/{intelligence-layout-DOTYC75R.js → intelligence-layout-CDcBeu8K.js} +1 -1
  54. package/dist/assets/{library-detail-page-B2C4hPSd.js → library-detail-page-D5EeSRdZ.js} +1 -1
  55. package/dist/assets/{library-page-Y2NwunY9.js → library-page-wPVeE7u1.js} +1 -1
  56. package/dist/assets/{local-runtime-upgrade-12Yco-XF.js → local-runtime-upgrade-DyHUCz7A.js} +1 -1
  57. package/dist/assets/{login-flow-fmfcNxyU.js → login-flow-B8CUFAeg.js} +1 -1
  58. package/dist/assets/{login-page-HFoMsSuP.js → login-page-BgXMUzWB.js} +1 -1
  59. package/dist/assets/{logout-page-B_3PiI2q.js → logout-page-COe8dRLu.js} +1 -1
  60. package/dist/assets/{logs-layout-7JGOJ0Gg.js → logs-layout-BGd_aSZ_.js} +1 -1
  61. package/dist/assets/{memory-page-route-Cf8FoT6z.js → memory-page-route-BGEmbUCl.js} +1 -1
  62. package/dist/assets/{memory-router-playground-page-B4vWmkYZ.js → memory-router-playground-page-B4DX4CON.js} +1 -1
  63. package/dist/assets/{message-files-panel-B8NzbXp3.js → message-files-panel-DTDXhD0C.js} +1 -1
  64. package/dist/assets/{messages-JRZkqLeA.js → messages-D2OJUCHs.js} +1 -1
  65. package/dist/assets/{metric-card-Ba-Ju2sO.js → metric-card-DgbUgyv7.js} +1 -1
  66. package/dist/assets/{mobile-sidebar-drawer-B0rTd7jy.js → mobile-sidebar-drawer-CRXVtqcP.js} +1 -1
  67. package/dist/assets/{multi-activity-group-5OxVs26d.js → multi-activity-group-Chyfm08f.js} +1 -1
  68. package/dist/assets/{not-found-zOjj1km-.js → not-found-ClBCK2Sg.js} +1 -1
  69. package/dist/assets/{notifications-pzRj4j4m.js → notifications-G7qqgf4f.js} +1 -1
  70. package/dist/assets/{notifications-page-DTTyILgl.js → notifications-page-AW-ftrs5.js} +1 -1
  71. package/dist/assets/{open-workspace-file-FgLn-SuR.js → open-workspace-file-C4HWMBzn.js} +2 -2
  72. package/dist/assets/{page-shell-DH240m1W.js → page-shell-CkfnwmIw.js} +1 -1
  73. package/dist/assets/pairing-page-CGoWIhv7.js +1 -0
  74. package/dist/assets/{personality-page-B1BQNH7w.js → personality-page-CEbJMhDR.js} +1 -1
  75. package/dist/assets/{plans-page-B8oZfefa.js → plans-page-DXCrcLo8.js} +1 -1
  76. package/dist/assets/{platform-login-notice-3g7rHtc3.js → platform-login-notice-CIpebDVw.js} +1 -1
  77. package/dist/assets/{platform-loopback-page-DwnkFF3M.js → platform-loopback-page-BJf6yE-E.js} +1 -1
  78. package/dist/assets/{plugin-detail-page-BrrXgSIx.js → plugin-detail-page-CnlqMl6e.js} +1 -1
  79. package/dist/assets/plugins-surface-C5i913ST.js +1 -0
  80. package/dist/assets/{preview-error-Di5TH4XQ.js → preview-error-CihmwI1t.js} +1 -1
  81. package/dist/assets/{privacy-page-4LAU5IqF.js → privacy-page-CxAYEG0r.js} +1 -1
  82. package/dist/assets/{privacy-screen-CNnBXznE.js → privacy-screen-DAzWoGQI.js} +1 -1
  83. package/dist/assets/{profile-pickers-BSDVzs_G.js → profile-pickers-ChG4_Gpc.js} +1 -1
  84. package/dist/assets/{provider-callback-page-CpfaqAgJ.js → provider-callback-page--oWycq5i.js} +1 -1
  85. package/dist/assets/{provider-key-C9asexKh.js → provider-key-BZOH9D9k.js} +1 -1
  86. package/dist/assets/{provider-signup-page-MukjbwOQ.js → provider-signup-page-BaGT8Jl4.js} +1 -1
  87. package/dist/assets/{push-registration-CqXBOPNb.js → push-registration-C0GXHrCj.js} +1 -1
  88. package/dist/assets/{remove-from-device-dialog-DY5o8eIg.js → remove-from-device-dialog-C0eaWxwl.js} +1 -1
  89. package/dist/assets/{research-onboarding-route-BIY3OCwG.js → research-onboarding-route-CXimVFK6.js} +1 -1
  90. package/dist/assets/{retire-confirm-dialog-CgOoh5RG.js → retire-confirm-dialog-B1bvTlHS.js} +1 -1
  91. package/dist/assets/{review-terms-screen-BA2I_7F2.js → review-terms-screen-BxxGJL-B.js} +1 -1
  92. package/dist/assets/{routes-DuLrKyjJ.js → routes-ZeXUrnzY.js} +14 -14
  93. package/dist/assets/{runtime-upgrade-banner-9KhcwQWy.js → runtime-upgrade-banner--bSmfygH.js} +1 -1
  94. package/dist/assets/{sandbox-bridge-B6h4B0qp.js → sandbox-bridge-BlniBIsp.js} +1 -1
  95. package/dist/assets/schedules-page-DCUj-YbP.js +1 -0
  96. package/dist/assets/select-assistant-screen-C5Cl_pCp.js +1 -0
  97. package/dist/assets/self-hosted-servers-DFgP80iG.js +1 -0
  98. package/dist/assets/{settings-divider-D_vHiuYw.js → settings-divider-BuDc875f.js} +1 -1
  99. package/dist/assets/{settings-layout-CINtkHJR.js → settings-layout-Clnlm1aB.js} +1 -1
  100. package/dist/assets/{settings-navigation-CHeVLLWI.js → settings-navigation-Cn3KCxOe.js} +1 -1
  101. package/dist/assets/{share-feedback-modal-BWez_NtT.js → share-feedback-modal-COUhsUqF.js} +1 -1
  102. package/dist/assets/{sidebar-tree-aLYbZLvm.js → sidebar-tree-BXbcoj07.js} +1 -1
  103. package/dist/assets/{signup-page-CiW0Chx7.js → signup-page-C9ZrCSVo.js} +1 -1
  104. package/dist/assets/{site-favicon-B5ilr8wL.js → site-favicon-B3DMFtr3.js} +1 -1
  105. package/dist/assets/{skill-detail-page-T24C6W33.js → skill-detail-page-Ckw6_1PG.js} +2 -2
  106. package/dist/assets/{skill-detail-panel-BOPQ16Vg.js → skill-detail-panel-DdYbYHuj.js} +1 -1
  107. package/dist/assets/{skills-C2mjxWRN.js → skills-Lf85mR9L.js} +1 -1
  108. package/dist/assets/{src-BMRW2yQf.js → src-hNk11eS3.js} +1 -1
  109. package/dist/assets/{stt-language-picker-modal-BVO4V699.js → stt-language-picker-modal-B5MO-3gk.js} +1 -1
  110. package/dist/assets/{subagent-detail-panel-BCDOrwh3.js → subagent-detail-panel-BKhU7VAv.js} +1 -1
  111. package/dist/assets/{subagent-store-BOpi4xxB.js → subagent-store-9SqF-NFa.js} +1 -1
  112. package/dist/assets/{superpowers-page-bOpdIXSO.js → superpowers-page-gPiU1fsq.js} +1 -1
  113. package/dist/assets/{system-events-page-Bgo88uzO.js → system-events-page-DbcoH4sh.js} +1 -1
  114. package/dist/assets/{telegram-setup-wizard-B3MHpy56.js → telegram-setup-wizard-C4E0wi1B.js} +1 -1
  115. package/dist/assets/{text-preview-CPYq3og6.js → text-preview-KOyX3OrO.js} +1 -1
  116. package/dist/assets/{theme-stage-page-B6C95R4X.js → theme-stage-page-D4DYc_C8.js} +1 -1
  117. package/dist/assets/{tiptap-document-editor-By4wlOTs.js → tiptap-document-editor-CDIJTTa_.js} +1 -1
  118. package/dist/assets/{tool-detail-panel-E_gP0j1r.js → tool-detail-panel-CmbBw4_n.js} +1 -1
  119. package/dist/assets/typed-storage-lk6_tW16.js +1 -0
  120. package/dist/assets/{upgrade-cancel-page-DCiT0Rqi.js → upgrade-cancel-page-DfjtkvP9.js} +1 -1
  121. package/dist/assets/{upgrade-success-page-DLs3viaj.js → upgrade-success-page-BDWg5oK4.js} +1 -1
  122. package/dist/assets/{use-assistant-avatar-Dk975wdP.js → use-assistant-avatar-Dd-EU1FC.js} +1 -1
  123. package/dist/assets/{use-assistant-identity-details-DyvMGaA7.js → use-assistant-identity-details-BAgi4MHa.js} +1 -1
  124. package/dist/assets/{use-attachment-preview-DjrcSin2.js → use-attachment-preview-CB3GsEns.js} +1 -1
  125. package/dist/assets/{use-attachment-squares-DHH1eTI4.js → use-attachment-squares-DPuVHGRC.js} +1 -1
  126. package/dist/assets/{use-bookmarks-Wg8ueMhb.js → use-bookmarks-C6IlHWIK.js} +1 -1
  127. package/dist/assets/{use-checkout-dismiss-refresh-wuwzKwo_.js → use-checkout-dismiss-refresh-CDwSKr1-.js} +1 -1
  128. package/dist/assets/{use-command-palette-sections-CzHbFhwD.js → use-command-palette-sections-DXzS2Tio.js} +1 -1
  129. package/dist/assets/{use-edge-swipe-back-9-2nUEK7.js → use-edge-swipe-back-ZgANxgKE.js} +2 -2
  130. package/dist/assets/{use-edit-app-PiQBQ9vN.js → use-edit-app-BHUYCv4X.js} +1 -1
  131. package/dist/assets/{use-invite-link-dialog-C6rYwhqr.js → use-invite-link-dialog-CdY5FNQa.js} +1 -1
  132. package/dist/assets/{use-is-org-ready-BTUeuhPi.js → use-is-org-ready-BmOdacs1.js} +1 -1
  133. package/dist/assets/{use-onboarding-login-BXw1Fcg3.js → use-onboarding-login-BUaNGE_u.js} +1 -1
  134. package/dist/assets/{use-platform-assistant-id-DOBe1pF-.js → use-platform-assistant-id-CEMyKEvV.js} +1 -1
  135. package/dist/assets/{use-platform-gate-DBRG0Q26.js → use-platform-gate-CdwOyQ8A.js} +1 -1
  136. package/dist/assets/{use-return-to-short-circuit-Bl1RwuwD.js → use-return-to-short-circuit-CTYRB2Ne.js} +1 -1
  137. package/dist/assets/{use-skill-actions-kLsl5L01.js → use-skill-actions-GbdM3IIw.js} +1 -1
  138. package/dist/assets/{use-sticky-profiles-CVsR9J8_.js → use-sticky-profiles-LVe9u5gh.js} +1 -1
  139. package/dist/assets/{use-subagent-card-data-BeUTFQdm.js → use-subagent-card-data-CFKl88ab.js} +1 -1
  140. package/dist/assets/{use-supports-bookmarks-FmvOAxKu.js → use-supports-bookmarks-z9pfj1Rm.js} +1 -1
  141. package/dist/assets/use-supports-credentials-settings-CEPArXBW.js +1 -0
  142. package/dist/assets/use-transcript-message-by-id-cDbEJMB-.js +1 -0
  143. package/dist/assets/{use-transcript-messages-BAG92dqc.js → use-transcript-messages-vw2Hogaj.js} +1 -1
  144. package/dist/assets/{use-voice-sample-preview-CVVwbBcE.js → use-voice-sample-preview-BjIqIVEG.js} +1 -1
  145. package/dist/assets/{utils-CAZUrJMu.js → utils-CVoSWh7U.js} +1 -1
  146. package/dist/assets/{viewer-store-BhqBXvNu.js → viewer-store-DhrkeZmJ.js} +1 -1
  147. package/dist/assets/{voice-list-ChEr4jqe.js → voice-list-DnqRx15F.js} +1 -1
  148. package/dist/assets/{voice-page-CkdnjoLc.js → voice-page-CrrYAE9k.js} +1 -1
  149. package/dist/assets/{voice-providers-note-DC4nbaBx.js → voice-providers-note-ValSs0nz.js} +1 -1
  150. package/dist/assets/{welcome-screen-BTnikex6.js → welcome-screen-CiBqE53u.js} +1 -1
  151. package/dist/assets/{workflow-detail-panel-Bf6rP5UH.js → workflow-detail-panel-crM7HRfK.js} +1 -1
  152. package/dist/assets/{workspace-page-C8EUvGJ4.js → workspace-page-iAsgehav.js} +1 -1
  153. package/dist/images/integrations/ATTRIBUTION.md +72 -0
  154. package/dist/images/integrations/airtable.svg +1 -0
  155. package/dist/images/integrations/asana.svg +1 -0
  156. package/dist/images/integrations/discord.svg +1 -0
  157. package/dist/images/integrations/dropbox.svg +1 -0
  158. package/dist/images/integrations/hubspot.svg +1 -0
  159. package/dist/images/integrations/salesforce.svg +5 -0
  160. package/dist/images/integrations/sanity.svg +1 -0
  161. package/dist/images/integrations/spotify.svg +1 -0
  162. package/dist/images/integrations/telegram.svg +1 -0
  163. package/dist/images/integrations/todoist.svg +1 -0
  164. package/dist/images/integrations/x.svg +1 -0
  165. package/dist/index.html +57 -57
  166. package/package.json +1 -1
  167. package/dist/assets/ai-page-CsufGyQ4.js +0 -1
  168. package/dist/assets/channels-page-route-Dj500t-M.js +0 -9
  169. package/dist/assets/chat-markdown-message-Dr9rA1lM.js +0 -1
  170. package/dist/assets/file-markdown-DMq6D4CV.js +0 -2
  171. package/dist/assets/identity-page-route-CLUGVFIg.js +0 -7
  172. package/dist/assets/index-BIhXfUlg.css +0 -2
  173. package/dist/assets/integration-icon-BaoRF0qI.js +0 -1
  174. package/dist/assets/integrations-page-Dygny-c2.js +0 -1
  175. package/dist/assets/pairing-page-Tun2QZT0.js +0 -1
  176. package/dist/assets/plugins-surface-B4NuEVD_.js +0 -1
  177. package/dist/assets/schedules-page-CchXRGaR.js +0 -1
  178. package/dist/assets/select-assistant-screen-BHf9p-NL.js +0 -1
  179. package/dist/assets/typed-storage-UYklH-m5.js +0 -1
  180. package/dist/assets/use-supports-credentials-settings-BGgnzFf0.js +0 -1
  181. package/dist/assets/use-supports-schedule-profile-moves-CuKzMKxy.js +0 -1
  182. package/dist/assets/use-transcript-message-by-id-C7L609Lk.js +0 -1
  183. /package/dist/assets/{profile-metadata-DutSLpwl.js → profile-metadata-DgH7VoVU.js} +0 -0
  184. /package/dist/assets/{start-screen-zLwb2fyf.js → start-screen-CXUDtHbL.js} +0 -0
@@ -1 +0,0 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-BENY-yx_.js";import{d as r,u as i}from"./chunk-5KNZJZUH-BUqIilZr.js";import{t as a}from"./jsx-runtime-D3ZM-ToX.js";import{t as o}from"./circle-alert-De9q5FVd.js";import{t as s}from"./circle-check-q8BVdbgw.js";import{t as c}from"./loader-circle-DOtGXcds.js";import{t as l}from"./smartphone-BTdDwse2.js";import{u,x as d}from"./local-mode-BfEgOekp.js";import{a as f,c as p,i as m,n as h,r as g,t as _}from"./remote-gateway-session-CgDx1fv1.js";import{C as v,R as y,i as b,r as x}from"./platform-detection-C_TK32Dw.js";import{d as S}from"./routes-iipg2wkc.js";import{t as C}from"./not-found-zOjj1km-.js";var w=e(t(),1),T=a();function E(e){switch(e.kind){case`starting`:return{title:`Starting pairing`,body:`Creating a code for this browser.`};case`handoff_choice`:return{title:`Open in the Vellum app`,body:`Scanning from a phone with the Vellum app installed? Hand this pairing to the app.`};case`verifying`:return{title:`Pairing`,body:`Connecting this device to your assistant.`};case`approved`:return{title:`Connected`,body:`Opening your assistant.`};case`expired`:return{title:`Pairing expired`,body:`This pairing code is invalid or expired. Run vellum pair --qr (or vellum pair --web) on the machine running your assistant to get a new one.`};case`error`:return{title:`Pairing failed`,body:e.message};case`polling`:return{title:`Waiting for approval`,body:`Confirm this code on the machine running your assistant.`}}}function D({state:e}){return e.kind===`approved`?(0,T.jsx)(s,{className:`h-5 w-5 text-[var(--system-positive-strong)]`,"aria-hidden":!0}):e.kind===`handoff_choice`?(0,T.jsx)(l,{className:`h-5 w-5 text-[var(--system-info-strong)]`,"aria-hidden":!0}):e.kind===`starting`||e.kind===`verifying`||e.kind===`polling`?(0,T.jsx)(c,{className:`h-5 w-5 animate-spin text-[var(--system-info-strong)]`,"aria-hidden":!0}):(0,T.jsx)(o,{className:`h-5 w-5 text-[var(--system-negative-strong)]`,"aria-hidden":!0})}function O(){try{let e=new URL(window.location.href);for(let t of[`deviceCode`,`device_code`,`userCode`,`user_code`])e.searchParams.delete(t);e.hash=``,window.history.replaceState(null,``,`${e.pathname}${e.search}`)}catch{}}var k=`vellum-assistant`,A=`ai.vellum.assistant`;function j(e,t){let n=new URLSearchParams({url:p(),code:e}),r=u();r&&n.set(`name`,r);let i=n.toString().replace(/\+/g,`%20`);return t===`ios`?`${k}://connect?${i}`:`intent://connect?${i}#Intent;scheme=${k};package=${A};S.browser_fallback_url=${encodeURIComponent(window.location.href)};end`}function M({deviceCode:e,platform:t,onContinueInBrowser:r}){return(0,T.jsxs)(`div`,{className:`mt-6 flex flex-col gap-3`,children:[(0,T.jsx)(n,{variant:`primary`,fullWidth:!0,asChild:!0,children:(0,T.jsx)(`a`,{href:(0,w.useMemo)(()=>j(e,t),[e,t]),children:`Open in the Vellum app`})}),(0,T.jsx)(n,{variant:`outlined`,fullWidth:!0,onClick:r,children:`Continue in this browser`})]})}function N(){let e=i(),t=r(),n=d(),a=(0,w.useMemo)(()=>y(new URLSearchParams(e.search).get(`returnTo`),S.assistant),[e.search]),o=(0,w.useMemo)(()=>f(`${e.pathname}${e.search}${e.hash}`),[e.pathname,e.search,e.hash]),s=(0,w.useMemo)(()=>!o.deviceCode||v()?null:x()?`android`:b()?`ios`:null,[o.deviceCode]),[c,l]=(0,w.useState)(()=>o.deviceCode?{deviceCode:o.deviceCode,userCode:o.userCode}:null),[u,p]=(0,w.useState)(()=>!s),[k,A]=(0,w.useState)(()=>s?{kind:`handoff_choice`}:o.deviceCode?{kind:`verifying`}:{kind:`starting`});(0,w.useEffect)(()=>{if(!n||c)return;let e=new AbortController;return(async()=>{try{let t=await g(e.signal);l({deviceCode:t.deviceCode,userCode:t.userCode}),A({kind:`polling`,expiresAt:t.expiresAt})}catch{if(e.signal.aborted)return;A({kind:`error`,message:`The assistant could not start pairing. Refresh the page to try again.`})}})(),()=>{e.abort()}},[n,c]),(0,w.useEffect)(()=>{if(!n||!c?.deviceCode||!u)return;let e=new AbortController,r=null,i=async()=>{try{let n=await m(c.deviceCode,e.signal);if(n.status===`pending`){A({kind:`polling`,expiresAt:n.expiresAt||null}),r=setTimeout(()=>void i(),Math.max(1,n.intervalSeconds)*1e3);return}h(n),O(),A({kind:`approved`}),r=setTimeout(()=>t(a,{replace:!0}),250)}catch(t){if(e.signal.aborted)return;if(t instanceof _&&t.status===401){A({kind:`expired`});return}if(t instanceof _&&t.code===`GUARDIAN_REPAIR_REQUIRED`){A({kind:`error`,message:`The assistant's trust database needs repair. Run guardian repair on the machine hosting the assistant, then retry this same pairing link — the code stays valid.`});return}A({kind:`error`,message:`The assistant could not complete pairing. Try starting a new pairing.`})}};return i(),()=>{e.abort(),r&&clearTimeout(r)}},[n,c?.deviceCode,u,t,a]);let j=(0,w.useCallback)(()=>{p(!0),A({kind:`verifying`})},[]);if(!n)return(0,T.jsx)(C,{});let N=E(k);return(0,T.jsx)(`main`,{className:`flex min-h-svh items-center justify-center bg-[var(--surface-base)] px-6 py-10 text-[var(--content-default)]`,children:(0,T.jsxs)(`section`,{className:`w-full max-w-md rounded-lg border border-[var(--border-subtle)] bg-[var(--surface-lift)] p-8 shadow-[var(--shadow-sm)]`,children:[(0,T.jsxs)(`div`,{className:`mb-5 flex items-center gap-3`,children:[(0,T.jsx)(D,{state:k}),(0,T.jsx)(`h1`,{className:`text-title-medium text-[var(--content-emphasised)]`,children:N.title})]}),k.kind===`polling`&&c?.userCode?(0,T.jsxs)(`div`,{className:`mb-5 rounded-md border border-[var(--border-subtle)] bg-[var(--surface-sunken)] p-4 text-center`,children:[(0,T.jsx)(`div`,{className:`text-label-small-default uppercase tracking-wide text-[var(--content-tertiary)]`,children:`Pairing code`}),(0,T.jsx)(`div`,{className:`mt-2 font-mono text-3xl font-semibold tracking-[0.18em] text-[var(--content-emphasised)]`,children:c.userCode})]}):null,(0,T.jsx)(`p`,{className:`text-body-medium-lighter leading-6 text-[var(--content-secondary)]`,children:N.body}),k.kind===`handoff_choice`&&c&&s?(0,T.jsx)(M,{deviceCode:c.deviceCode,platform:s,onContinueInBrowser:j}):null,k.kind===`polling`&&k.expiresAt?(0,T.jsxs)(`p`,{className:`text-body-small-lighter mt-4 text-[var(--content-tertiary)]`,children:[`Expires `,new Date(k.expiresAt).toLocaleTimeString(),`.`]}):null]})})}export{N as RemoteWebPairingPage};
@@ -1 +0,0 @@
1
- import{i as e}from"./utils-CAZUrJMu.js";var t=`0.10.3`;function n(){return e(t)}export{n as t};
@@ -1 +0,0 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./capture-error-Cw5vs0Ef.js";import{t as n}from"./react-BFJW0bSv.js";import{t as r}from"./button-BENY-yx_.js";import{d as i,p as a}from"./chunk-5KNZJZUH-BUqIilZr.js";import{n as o}from"./QueryClientProvider-CMu7CkQU.js";import{t as s}from"./useQuery-Bz-fbQ-m.js";import{t as c}from"./useInfiniteQuery-Dk8q0n49.js";import{t as l}from"./useMutation-CXGTrp4W.js";import{t as u}from"./jsx-runtime-D3ZM-ToX.js";import{t as d}from"./cn-DFWryB3N.js";import{t as f}from"./typography-BeUa5Fd-.js";import{t as p}from"./calendar-CTyC1v1L.js";import{t as m}from"./chart-column-CEHOik7U.js";import{t as h}from"./chevron-down-CrFV6lfm.js";import{t as g}from"./chevron-right-DBGgpEiZ.js";import{t as _}from"./circle-alert-De9q5FVd.js";import{t as v}from"./clock-B8umTTHk.js";import{t as y}from"./coins-CJ7Ik1IC.js";import{N as b,R as x,a as S}from"./src-BMRW2yQf.js";import{t as C}from"./loader-circle-DOtGXcds.js";import{t as w}from"./play-UYtEUTRg.js";import{t as T}from"./repeat-BvvxRT2U.js";import{t as E}from"./settings-751LDGs_.js";import{t as D}from"./trash-2-BKXSi5Tj.js";import{t as O}from"./x-338EsJDP.js";import{t as k}from"./notice-C0ifrvvJ.js";import{t as A}from"./tag-DeMzQvCo.js";import{n as j,t as M}from"./input-DmHXRXaB.js";import{t as ee}from"./toggle-C-v4x7_A.js";import{t as N}from"./modal-DI63s9MQ.js";import{n as P}from"./toast-BpuLSxyt.js";import{t as F}from"./confirm-dialog-zx8L9sUi.js";import{t as I}from"./select-B8-i-CZ4.js";import{t as L}from"./skeleton-CJJwPIil.js";import{a as R,l as z,n as te,o as ne,r as re,s as ie}from"./profile-pickers-BSDVzs_G.js";import{d as B}from"./routes-iipg2wkc.js";import{F as ae,I as oe,L as se,R as ce,S as le,St as ue,Xt as de,_t as fe,an as pe,b as me,bt as he,gt as ge,in as _e,p as ve,u as V,vt as ye,x as be,y as xe,yt as Se,z as Ce}from"./react-query.gen-DxjuNs-5.js";import{n as we,t as Te}from"./conversation-navigation-DqU55C7j.js";import{n as Ee}from"./use-is-mobile-BP8UePsY.js";import{t as De}from"./effective-timezone-CjGPHJlt.js";import{t as Oe}from"./assistant-feature-flag-store-qYfAdlBG.js";import{t as H}from"./use-effective-timezone-BZgsy8ZD.js";import{t as ke}from"./use-assistant-capability-y4ML0NOY.js";import{t as Ae}from"./use-active-assistant-id-BvHP5Ojg.js";import{a as je,c as Me,i as Ne,l as Pe,n as Fe,o as Ie,r as Le,s as Re,t as ze}from"./schedules-kVuR00ra.js";import{t as Be}from"./detail-card-CmSV969e.js";import{n as Ve,t as He}from"./detail-drawer-HN4NsyKg.js";import{r as Ue,t as We}from"./profile-metadata-DutSLpwl.js";import{n as Ge}from"./use-supports-schedule-profile-moves-CuKzMKxy.js";import{t as Ke}from"./page-empty-state-DtjiuvvO.js";var U=e(n(),1),qe={frequency:`daily`,minute:0,hour24:9,weekdays:[1],dayOfMonth:1},W=[{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`}],Je=[1,2,3,4,5];function G(e,t,n){return Number.isFinite(e)?Math.min(n,Math.max(t,Math.round(e))):t}function Ye(e){let t=Array.from(new Set(e.map(e=>G(e,0,6)).filter(e=>Number.isInteger(e)))).sort((e,t)=>e-t);return t.length>0?t:[1]}function Xe(e){let t=G(e.minute,0,59),n=G(e.hour24,0,23);switch(e.frequency){case`hourly`:return`${t} * * * *`;case`daily`:return`${t} ${n} * * *`;case`weekly`:return`${t} ${n} * * ${Ye(e.weekdays).join(`,`)}`;case`monthly`:return e.dayOfMonth===`last`?`${t} ${n} L * *`:`${t} ${n} ${G(e.dayOfMonth,1,28)} * *`}}function Ze(e,t){let n=G(e,0,23),r=G(t,0,59),i=n<12?`AM`:`PM`;return`${n%12==0?12:n%12}:${String(r).padStart(2,`0`)} ${i}`}function Qe(e){let t=[`th`,`st`,`nd`,`rd`],n=e%100;return`${e}${t[(n-20)%10]??t[n]??t[0]}`}function $e(e){let t=Ye(e),n=new Set(t);if(t.length===7)return`every day`;if(t.length===5&&Je.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 ${W[t[0]]?.full??`day`}`;let r=t.map(e=>W[e]?.short??``),i=r.pop();return`every ${r.join(`, `)} & ${i}`}function et(e){let t=Ze(e.hour24,e.minute);switch(e.frequency){case`hourly`:{let t=G(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 ${$e(e.weekdays)} at ${t}`;case`monthly`:return e.dayOfMonth===`last`?`Runs on the last day of every month at ${t}`:`Runs on the ${Qe(G(e.dayOfMonth,1,28))} of every month at ${t}`}}var K=u(),tt=[{value:`hourly`,label:`Hourly`},{value:`daily`,label:`Daily`},{value:`weekly`,label:`Weekly`},{value:`monthly`,label:`Monthly`}],nt=Array.from({length:12},(e,t)=>{let n=t+1;return{value:String(n),label:String(n)}}),rt=Array.from({length:12},(e,t)=>{let n=t*5,r=String(n).padStart(2,`0`);return{value:r,label:r}}),it=[...Array.from({length:28},(e,t)=>{let n=t+1;return{value:String(n),label:Qe(n)}}),{value:`last`,label:`Last day`}],at=[{value:`AM`,label:`AM`},{value:`PM`,label:`PM`}];function ot(e,t){let n=e%12;return t===`PM`?n+12:n}function st(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 ct({isOpen:e,assistantId:t,onClose:n,onCreated:r}){return(0,K.jsx)(N.Root,{open:e,onOpenChange:e=>{e||n()},children:e?(0,K.jsx)(lt,{assistantId:t,onClose:n,onCreated:r}):null})}function lt({assistantId:e,onClose:t,onCreated:n}){let i=H(),[a,o]=(0,U.useState)(``),[s,c]=(0,U.useState)(``),[l,u]=(0,U.useState)(``),[d,f]=(0,U.useState)(`simple`),[p,m]=(0,U.useState)(qe),[h,g]=(0,U.useState)(``),[_,v]=(0,U.useState)(!1),[y,b]=(0,U.useState)(null),x=a.trim(),S=s.trim(),C=l.trim(),w=h.trim(),T=(0,U.useMemo)(()=>d===`simple`?Xe(p):w,[d,p,w]),E=(0,U.useMemo)(()=>d===`simple`?et(p):w||`Enter a cron expression to continue.`,[d,p,w]),D=(0,U.useMemo)(()=>st(i),[i]),O=x.length>0&&S.length>0&&C.length>0&&T.length>0&&!_;return(0,K.jsxs)(N.Content,{size:`md`,children:[(0,K.jsxs)(N.Header,{children:[(0,K.jsx)(N.Title,{children:`Create schedule`}),(0,K.jsx)(N.Description,{children:`Schedule a recurring instruction for your assistant. Runs in execute mode — the message is delivered to the assistant on each fire.`})]}),(0,K.jsxs)(`form`,{onSubmit:async t=>{if(t.preventDefault(),O){v(!0),b(null);try{await ze(e,{name:x,description:S,expression:T,message:C,timezone:i}),v(!1),n()}catch(e){b(e instanceof Error?e.message:`Failed to create schedule.`),v(!1)}}},children:[(0,K.jsx)(N.Body,{children:(0,K.jsxs)(`div`,{className:`flex flex-col gap-5`,children:[(0,K.jsx)(M,{label:`Name`,placeholder:`Morning briefing`,value:a,onChange:e=>o(e.target.value),required:!0,autoFocus:!0,fullWidth:!0}),(0,K.jsx)(j,{label:`Description`,placeholder:`What is this schedule for?`,value:s,onChange:e=>c(e.target.value),required:!0,fullWidth:!0,rows:2}),(0,K.jsx)(mt,{label:`Repeat`,children:d===`simple`?(0,K.jsx)(ut,{cadence:p,onChange:m}):(0,K.jsx)(pt,{value:h,onChange:g,onUseSimple:()=>f(`simple`)})}),(0,K.jsx)(ht,{summary:E,mono:d===`advanced`&&w.length>0,timezoneLabel:D}),d===`simple`?(0,K.jsx)(`button`,{type:`button`,onClick:()=>{g(e=>e||Xe(p)),f(`advanced`)},className:`self-start text-body-small-default text-[var(--content-tertiary)] underline-offset-2 transition-colors hover:text-[var(--content-default)] hover:underline`,children:`Advanced — write a cron expression`}):null,(0,K.jsx)(j,{label:`Message`,placeholder:`What should the assistant do on each fire?`,value:l,onChange:e=>u(e.target.value),required:!0,fullWidth:!0,rows:4}),y?(0,K.jsx)(`p`,{className:`text-body-small-default text-[var(--system-negative-strong)]`,children:y}):null]})}),(0,K.jsxs)(N.Footer,{children:[(0,K.jsx)(r,{variant:`outlined`,onClick:t,type:`button`,children:`Cancel`}),(0,K.jsx)(r,{variant:`primary`,type:`submit`,disabled:!O,children:_?`Creating…`:`Create schedule`})]})]})]})}function ut({cadence:e,onChange:t}){return(0,K.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,K.jsx)(x,{items:tt,value:e.frequency,onChange:n=>t({...e,frequency:n}),ariaLabel:`How often the schedule runs`}),e.frequency===`hourly`?(0,K.jsx)(q,{label:`At minute`,children:(0,K.jsx)(I,{options:rt,value:String(e.minute).padStart(2,`0`),onChange:n=>t({...e,minute:Number(n)}),"aria-label":`Minute`,className:`w-24`})}):null,e.frequency===`weekly`?(0,K.jsx)(q,{label:`On these days`,children:(0,K.jsx)(ft,{value:e.weekdays,onChange:n=>t({...e,weekdays:n})})}):null,e.frequency===`monthly`?(0,K.jsx)(q,{label:`On day`,children:(0,K.jsx)(I,{options:it,value:e.dayOfMonth===`last`?`last`:String(e.dayOfMonth),onChange:n=>t({...e,dayOfMonth:n===`last`?`last`:Number(n)}),"aria-label":`Day of month`,className:`w-32`})}):null,e.frequency===`hourly`?null:(0,K.jsx)(q,{label:`At time`,children:(0,K.jsx)(dt,{hour24:e.hour24,minute:e.minute,onChange:(n,r)=>t({...e,hour24:n,minute:r})})})]})}function dt({hour24:e,minute:t,onChange:n}){let r=e<12?`AM`:`PM`,i=e%12==0?12:e%12;return(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(I,{options:nt,value:String(i),onChange:e=>n(ot(Number(e),r),t),"aria-label":`Hour`,className:`w-[72px]`}),(0,K.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:`:`}),(0,K.jsx)(I,{options:rt,value:String(t).padStart(2,`0`),onChange:t=>n(e,Number(t)),"aria-label":`Minute`,className:`w-[72px]`}),(0,K.jsx)(`div`,{className:`w-[112px]`,children:(0,K.jsx)(x,{items:at,value:r,onChange:e=>n(ot(i,e),t),ariaLabel:`AM or PM`})})]})}function ft({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,K.jsx)(`div`,{className:`flex gap-1.5`,children:W.map(e=>{let t=n.has(e.value);return(0,K.jsx)(`button`,{type:`button`,onClick:()=>r(e.value),"aria-pressed":t,"aria-label":e.full,title:e.full,className:d(`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 pt({value:e,onChange:t,onUseSimple:n}){return(0,K.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,K.jsx)(M,{placeholder:`0 9 * * *`,value:e,onChange:e=>t(e.target.value),fullWidth:!0,className:`font-mono`,"aria-label":`Cron expression`,helperText:`Standard 5-field cron (minute hour day month weekday). RRULE expressions are also accepted.`}),(0,K.jsx)(`button`,{type:`button`,onClick:n,className:`self-start text-body-small-default text-[var(--content-tertiary)] underline-offset-2 transition-colors hover:text-[var(--content-default)] hover:underline`,children:`← Back to the simple builder`})]})}function mt({label:e,children:t}){return(0,K.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,K.jsx)(`span`,{className:`text-body-small-default text-[var(--content-secondary)]`,children:e}),t]})}function q({label:e,children:t}){return(0,K.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-3 gap-y-1.5`,children:[(0,K.jsx)(`span`,{className:`min-w-[88px] text-body-small-default text-[var(--content-tertiary)]`,children:e}),t]})}function ht({summary:e,mono:t,timezoneLabel:n}){return(0,K.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,K.jsx)(v,{className:`mt-0.5 h-4 w-4 shrink-0 text-[var(--content-tertiary)]`,"aria-hidden":!0}),(0,K.jsxs)(`div`,{className:`min-w-0`,children:[(0,K.jsx)(`p`,{className:d(`text-body-medium-default text-[var(--content-default)]`,t&&`break-all font-mono`),children:e}),(0,K.jsxs)(`p`,{className:`mt-0.5 text-body-small-default text-[var(--content-tertiary)]`,children:[`Times use your timezone — `,n,`.`]})]})]})}function gt(e=De(),t=Date.now()){return Ue(`7d`,e,t)}function J(e){return e?new Date(e).toLocaleString(void 0,{month:`short`,day:`numeric`,hour:`numeric`,minute:`2-digit`,hour12:!0}):`—`}function _t(e){return e==null?`—`:e<1e3?`${e}ms`:`${(e/1e3).toFixed(1)}s`}var vt=new Intl.NumberFormat(void 0,{style:`currency`,currency:`USD`,minimumFractionDigits:2,maximumFractionDigits:2});function Y(e){return e==null||!Number.isFinite(e)?`—`:vt.format(e)}function yt(e){return`${e.toLocaleString()} ${e===1?`run`:`runs`}`}function bt(e){let t=Math.round(e/6e4);return t>=60&&t%60==0?`Every ${t/60} hr`:`Every ${t} min`}function xt(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 St(e){return!!e.conversationId&&e.conversationExists===!0&&e.conversationArchivedAt==null}function Ct(e){return St(e)?e.conversationId??null:null}function X(e){return typeof e==`string`&&e.length>0}function wt(e){return e.status===`pending`||e.status===`superseded`}function Tt(e){return e.status!==`skipped`&&e.status!==`missed`&&!wt(e)}var Et={heartbeat:`system-heartbeat`,consolidation:`system-consolidation`,retrospective:`system-memory-retrospective`};function Dt(e){if(e.cronExpression)return e.timezone?`Cron: ${e.cronExpression} (${e.timezone})`:`Cron: ${e.cronExpression}`;let t=bt(e.intervalMs);return e.activeHoursStart!=null&&e.activeHoursEnd!=null&&(t+=` (${e.activeHoursStart}:00–${e.activeHoursEnd}:00)`),t}function Ot(e){return bt(e.intervalMs)}var kt=`After conversation activity`;function At(e){return e.status!==`fired`&&e.status!==`cancelled`}function jt(e,t){return At(e)?e.status===`firing`?!1:e.nextRunAt==null||!e.enabled&&e.nextRunAt<=t:!0}function Mt(e,t){let n=[],r=[],i=[];for(let a of e)a.isOneShot?jt(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 Nt(e,t,n=!0){return{queryKey:[{_id:`schedulesUsagesummaryGet`,path:{assistant_id:e??``},_tz:t}],queryFn:()=>e?Ne(e,gt(t)):Promise.resolve([]),enabled:n,staleTime:1e4}}function Pt(e){return{scheduleId:e,runCount:0,totalEstimatedCostUsd:0,eventCount:0}}function Ft(e,t,n){let r=(t??[]).filter(e=>{let t=e.startedAt??e.createdAt;return Tt(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 It(e,t,n){let r=!!e&&n?.enabled!==!1,{data:i}=s({...ve({path:{assistant_id:e}}),enabled:r,staleTime:6e4}),{data:a}=s({...V({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?We(a):{})[o]?.displayName??o}}function Lt(e,n,r){let i=It(e,`mainAgent`),a=Ge(e),[o,s]=(0,U.useState)(!1),c=(0,U.useMemo)(()=>i.key?n.filter(e=>At(e)&&e.inferenceProfile!==i.key).length:0,[i.key,n]),u=i.label,d=l({mutationFn:t=>je(e,null,t),onSuccess:e=>{s(!1),r(),P.success(e===0?`Every schedule already runs on ${u}.`:`Moved ${e} ${e===1?`schedule`:`schedules`} to ${u}.`)},onError:e=>{t(e,{context:`schedules_rebase_inference_profile`}),P.error(`Failed to move the schedules.`)}});return{defaultProfileLabel:u,offDefaultCount:c,canRebase:a&&c>0,requestRebase:()=>s(!0),dialogProps:{open:o&&a&&i.key!=null,profileLabel:u,offDefaultCount:c,isPending:d.isPending,onConfirm:()=>{i.key&&d.mutate(i.key)},onCancel:()=>s(!1)}}}function Rt({open:e,profileLabel:t,offDefaultCount:n,isPending:r,onConfirm:i,onCancel:a}){return(0,K.jsx)(F,{open:e,title:`Use ${t} for every schedule?`,message:`${n} of the schedules below ${n===1?`runs`:`run`} on a different model. This moves every schedule, including reminders your assistant set aside for later, onto ${t}, your current default. Schedules you deliberately put on another model move too.`,confirmLabel:`Move schedules`,isPending:r,onConfirm:i,onCancel:a})}function zt({status:e}){return(0,K.jsx)(`span`,{className:`inline-block h-2 w-2 rounded-full`,style:{backgroundColor:e===`ok`||e===`completed`?`var(--system-positive-strong)`:e===`error`||e===`failed`?`var(--system-negative-strong)`:`var(--content-tertiary)`},"aria-label":e??`unknown`})}function Bt({scheduleName:e,usage:t,onOpenUsage:n}){if(t.status===`loading`)return(0,K.jsxs)(`div`,{"aria-label":`Loading schedule usage`,className:`flex w-[156px] shrink-0 items-center justify-end gap-3`,children:[(0,K.jsx)(L,{as:`span`,className:`h-5 w-16`}),(0,K.jsx)(L,{as:`span`,className:`h-5 w-16`})]});let r=t.status===`error`,i=r?`--`:Y(t.summary.totalEstimatedCostUsd),a=r?`--`:yt(t.summary.runCount),o=t.status===`ready`&&!(t.summary.totalEstimatedCostUsd>0),s=t.status===`ready`&&t.summary.runCount===0,c=o?`text-[var(--content-tertiary)]`:`text-[var(--content-default)]`,l=s?`text-[var(--content-tertiary)]`:`text-[var(--content-default)]`;return(0,K.jsxs)(`div`,{className:`flex w-[156px] shrink-0 items-center justify-end gap-3 text-right text-body-small-default`,children:[n?(0,K.jsx)(`button`,{type:`button`,onClick:n,"aria-label":`View usage for ${e}`,className:`min-w-[64px] cursor-pointer rounded px-1 py-0.5 text-right transition-colors hover:bg-[var(--surface-hover)] ${c}`,children:i}):(0,K.jsx)(`span`,{"aria-label":`Cost for ${e} in the last 7 days: ${i}`,className:`block min-w-[64px] px-1 py-0.5 ${c}`,children:i}),(0,K.jsx)(`span`,{"aria-label":`Runs for ${e} in the last 7 days: ${a}`,className:`block min-w-[64px] px-1 py-0.5 ${l}`,children:a})]})}function Vt({name:e,subtitle:t,enabled:n,nextRunAt:r,lastRunAt:i,usage:a,helperText:o,statusLabel:s,statusTone:c=`neutral`,onClick:l}){return(0,K.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,K.jsxs)(`button`,{type:`button`,onClick:l,"aria-label":`Open ${e}`,className:`flex min-w-0 flex-1 cursor-pointer flex-wrap items-center gap-3 text-left focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)]`,children:[(0,K.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,K.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,K.jsx)(`span`,{className:`truncate text-body-medium-default text-[var(--content-default)]`,children:e})}),(0,K.jsx)(`div`,{className:`mt-0.5 text-body-small-default text-[var(--content-tertiary)]`,children:t}),o?(0,K.jsx)(`div`,{className:`mt-0.5 text-body-small-default text-[var(--content-secondary)]`,children:o}):null,(0,K.jsxs)(`div`,{className:`mt-0.5 flex flex-wrap items-center gap-x-3 gap-y-1 text-body-small-default text-[var(--content-tertiary)]`,children:[r?(0,K.jsxs)(`span`,{children:[`Next: `,J(r)]}):null,i?(0,K.jsxs)(`span`,{children:[`Last: `,J(i)]}):null]})]}),(0,K.jsxs)(`div`,{className:`flex shrink-0 flex-wrap items-center justify-end gap-3`,children:[(0,K.jsx)(Bt,{scheduleName:e,usage:a}),s?(0,K.jsx)(A,{tone:c,children:s}):(0,K.jsx)(`span`,{className:`h-2 w-2 rounded-full`,style:{backgroundColor:n?`var(--system-positive-strong)`:`var(--content-disabled)`},"aria-label":n?`enabled`:`disabled`}),(0,K.jsx)(g,{className:`h-4 w-4 text-[var(--content-tertiary)]`})]})]})})}function Ht({heartbeatConfig:e,consolidationConfig:t,retrospectiveConfig:n,heartbeatUsage:r,consolidationUsage:i,retrospectiveUsage:a,isLoading:o,hasError:s,onRetry:c,onSelectHeartbeat:l,onSelectConsolidation:u,onSelectRetrospective:d}){let f=e!=null,p=t?.available===!0,m=n?.available===!0,g=f||p||m;if(!o&&!s&&!g)return null;let _=[...f?[r]:[],...p?[i]:[],...m?[a]:[]].filter(e=>e.status===`ready`),v=_.reduce((e,t)=>e+(t.summary.totalEstimatedCostUsd??0),0),y=o?(0,K.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,K.jsx)(C,{className:`h-5 w-5 animate-spin text-stone-400`})}):s&&!g?(0,K.jsxs)(k,{tone:`error`,children:[`Failed to load system jobs.`,` `,(0,K.jsx)(`button`,{type:`button`,onClick:c,className:`cursor-pointer underline hover:no-underline`,children:`Retry`})]}):(0,K.jsxs)(`div`,{children:[f?(0,K.jsx)(Vt,{name:`Heartbeat`,subtitle:Dt(e),enabled:e.enabled,nextRunAt:e.nextRunAt,lastRunAt:e.lastRunAt,usage:r,onClick:l}):null,p?(0,K.jsx)(Vt,{name:`Consolidation`,subtitle:Ot(t),enabled:t.enabled,helperText:t.enabled?void 0:`Memory is off, so consolidation is paused.`,nextRunAt:t.nextRunAt,lastRunAt:t.lastRunAt,usage:i,statusLabel:t.enabled?void 0:`Paused`,statusTone:`warning`,onClick:u}):null,m?(0,K.jsx)(Vt,{name:`Memory retrospective`,subtitle:kt,enabled:n.enabled,helperText:n.enabled?void 0:`Retrospectives are turned off in Memory settings.`,nextRunAt:n.nextRunAt,lastRunAt:n.lastRunAt,usage:a,statusLabel:n.enabled?void 0:`Paused`,statusTone:`warning`,onClick:d}):null,s?(0,K.jsx)(`div`,{className:`pt-3 first:pt-0`,children:(0,K.jsxs)(k,{tone:`error`,children:[`Some system jobs failed to load.`,` `,(0,K.jsx)(`button`,{type:`button`,onClick:c,className:`cursor-pointer underline hover:no-underline`,children:`Retry`})]})}):null]});return(0,K.jsx)(Be,{children:(0,K.jsx)(S.Root,{type:`multiple`,children:(0,K.jsxs)(S.Item,{value:`system-jobs`,children:[(0,K.jsxs)(S.Trigger,{className:`group justify-between gap-3`,children:[(0,K.jsxs)(`span`,{className:`flex min-w-0 flex-wrap items-baseline gap-x-2 gap-y-1 text-left`,children:[(0,K.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-secondary)]`,children:`System`}),(0,K.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Built-in jobs managed by the assistant runtime`})]}),(0,K.jsxs)(`span`,{className:`flex shrink-0 items-center gap-3`,children:[_.length>0?(0,K.jsxs)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:[Y(v),` (7d)`]}):null,(0,K.jsx)(h,{className:`h-4 w-4 shrink-0 text-[var(--content-tertiary)] transition-transform group-data-[state=open]:rotate-180`})]})]}),(0,K.jsx)(S.Content,{children:(0,K.jsx)(`div`,{className:`mt-3`,children:y})})]})})})}var Ut={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 Wt(e){return e.status===`missed`?`Missed while the assistant was offline`:`skipReason`in e&&e.skipReason?`Skipped — ${Ut[e.skipReason]??e.skipReason}`:null}function Z(e,t){return{id:e.id,jobId:t,status:e.status,startedAt:e.startedAt??e.scheduledFor,finishedAt:e.finishedAt,durationMs:e.durationMs,output:Wt(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 Gt(e){return e.runs.filter(e=>!wt(e)).map(e=>Z(e,`heartbeat`))}function Kt(e){return e.runs.map(e=>Z(e,`consolidation`))}function qt(e){return e.runs.map(e=>Z(e,`retrospective`))}var Q=1e4;function Jt(e,t,n,r,i){return e?{status:`loading`}:t?{status:`error`}:{status:`ready`,summary:Ft(n,r,i)}}function Yt(e,n){let r=o(),i={path:{assistant_id:e??``}},{data:a,isLoading:c,isError:l,refetch:u}=s({...ae(i),enabled:!!e,staleTime:Q}),{data:d,isLoading:f,isError:p,refetch:m}=s({...xe(i),enabled:!!e,staleTime:Q}),{data:h,isLoading:g,isError:_,refetch:v}=s({...ge(i),enabled:!!e,staleTime:Q}),y={path:{assistant_id:e??``},query:{limit:100}},{data:b,isLoading:x,isError:S,refetch:C}=s({...Ce(y),select:Gt,enabled:!!e&&a!=null,staleTime:Q}),{data:w,isLoading:T,isError:E,refetch:D}=s({...le(y),select:Kt,enabled:!!e&&d?.available===!0,staleTime:Q}),{data:O,isLoading:k,isError:A,refetch:j}=s({...Se(y),select:qt,enabled:!!e&&h?.available===!0,staleTime:Q}),M=(0,U.useMemo)(()=>gt(n),[n]),ee=(0,U.useMemo)(()=>Jt(x,S,Et.heartbeat,b,M),[b,S,x,M]),N=(0,U.useMemo)(()=>Jt(T,E,Et.consolidation,w,M),[w,E,T,M]),F=(0,U.useMemo)(()=>Jt(k,A,Et.retrospective,O,M),[O,A,k,M]),I=t=>{if(!e)return;let n={heartbeat:{config:ae(i).queryKey,runs:Ce(y).queryKey,infinite:ce(i)},consolidation:{config:xe(i).queryKey,runs:le(y).queryKey,infinite:be(i)},retrospective:{config:ge(i).queryKey,runs:Se(y).queryKey,infinite:ye(i)}}[t];r.invalidateQueries({queryKey:n.config}),r.invalidateQueries({queryKey:n.runs}),r.invalidateQueries({queryKey:n.infinite})},L=pe({onSuccess:e=>{e.ran?P.success(`Heartbeat started.`):P.info(`Heartbeat skipped.`)},onError:e=>{t(e,{context:`heartbeat_run_now`}),P.error(`Failed to run heartbeat.`)},onSettled:()=>I(`heartbeat`)}),R=de({onSuccess:e=>{e.ran?P.success(`Consolidation queued.`):P.info(`Consolidation already queued or running.`)},onError:e=>{t(e,{context:`consolidation_run_now`}),P.error(`Failed to run consolidation.`)},onSettled:()=>I(`consolidation`)}),z=_e({onSuccess:e=>{oe(r,i,e),P.success(e.enabled?`Heartbeat enabled.`:`Heartbeat disabled.`)},onError:e=>{t(e,{context:`heartbeat_toggle`}),P.error(`Failed to toggle heartbeat.`)}});return{heartbeatConfig:a,consolidationConfig:d,retrospectiveConfig:h,heartbeatUsage:ee,consolidationUsage:N,retrospectiveUsage:F,isLoading:c||f||g,hasError:l||p||_,isHeartbeatRunning:L.isPending,isConsolidationRunning:R.isPending,isHeartbeatLoading:c,isHeartbeatError:l,isConsolidationLoading:f,isConsolidationError:p,isRetrospectiveLoading:g,isRetrospectiveError:_,refetchHeartbeat:u,refetchConsolidation:m,refetchRetrospective:v,runHeartbeatNow:()=>{e&&L.mutate({path:{assistant_id:e}})},runConsolidationNow:()=>{e&&R.mutate({path:{assistant_id:e}})},toggleHeartbeat:t=>{e&&z.mutate({body:{enabled:t},path:{assistant_id:e}})},refetchAll:()=>{u(),m(),v(),C(),D(),j()}}}function Xt(e){return/^plugin:([^/]+)\//.exec(e??``)?.[1]??null}var Zt=`Default (assistant's main model)`,Qt=`Custom call-site model`;function $t(e,t){return t?.[e]?.displayName??e}function en(e,t){if(e==null)return;if(e.provider!=null||e.model!=null)return Qt;let n=e.profile?.trim();return n?`Override (${$t(n,t)})`:void 0}function tn({assistantId:e,pinnedProfile:t,defaultCallSite:n=`mainAgent`,fallbackLabel:r=Zt,respectCallSiteOverride:i=!1}){let a=t==null,{data:o}=s({...V({path:{assistant_id:e}}),enabled:!!e,staleTime:6e4}),c=(0,U.useMemo)(()=>o?We(o):{},[o]),{label:l}=It(e,n,{enabled:a}),u=a&&i?en(o?.llm?.callSites?.[n],c):void 0,d=t==null?u??(l==null?r:`Default (${l})`):$t(t,c);return(0,K.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,K.jsx)(`span`,{className:`text-[var(--content-secondary)]`,children:`Model profile`}),(0,K.jsx)(`span`,{className:`min-w-0 text-right`,children:d})]})}function nn(e,t,n){let r=z(e?.profiles??{},e?.profileOrder??[]);return[{value:null,label:`Default`},...ne(r,[t],n).map(e=>{let t=te(e,r,n);return{value:e.name,label:re(e),...t?{issue:t}:{},...t===`undispatchable`?{reason:R(e)}:{}}})]}function rn(e,t){let{data:n}=s({...V({path:{assistant_id:e}}),enabled:!!e,staleTime:6e4}),r=ie();return(0,U.useMemo)(()=>nn(n?.llm,t,{requireOwnProviderAndModel:r}),[n?.llm,t,r])}function an({assistantId:e,value:t,onChange:n,disabled:r=!1,isSaving:i=!1,className:a,includeDefaultOption:o=!0,placeholder:s}){return(0,K.jsx)(I,{value:t,onChange:n,onSelectNone:()=>n(null),options:rn(e,t).filter(e=>o||e.value!=null).map(e=>({...e.issue===`undispatchable`?{icon:(0,K.jsx)(_,{className:`h-3.5 w-3.5 text-[var(--system-mid-strong)]`}),...e.reason?{tooltip:e.reason}:{}}:{},value:e.value,label:e.label})),disabled:r||i,placeholder:s,className:a,"aria-label":`Model profile`})}function on({children:e}){return(0,K.jsx)(f,{variant:`label-small-default`,as:`div`,className:`mb-2 uppercase tracking-wider text-[var(--content-tertiary)]`,children:e})}function $({label:e,value:t}){return(0,K.jsxs)(`div`,{className:`flex items-center justify-between gap-4 py-1`,children:[(0,K.jsx)(`span`,{className:`text-body-medium-lighter text-[var(--content-secondary)]`,children:e}),(0,K.jsx)(`span`,{className:`min-w-0 text-right text-body-medium-lighter text-[var(--content-default)]`,children:t})]})}function sn({schedule:e,assistantId:n,isPast:r}){let i=o(),a=ue({path:{assistant_id:n}}),s=l({mutationFn:t=>Pe(n,e.id,{inferenceProfile:t}),onMutate:async t=>{await i.cancelQueries({queryKey:a});let n=i.getQueryData(a)?.find(t=>t.id===e.id)?.inferenceProfile;return i.setQueryData(a,n=>n?.map(n=>n.id===e.id?{...n,inferenceProfile:t}:n)),{previousProfile:n}},onError:(n,r,o)=>{let s=o?.previousProfile;s!==void 0&&i.setQueryData(a,t=>t?.map(t=>t.id===e.id?{...t,inferenceProfile:s}:t)),t(n,{context:`schedule_update_inference_profile`}),P.error(`Failed to change the model.`)},onSettled:()=>i.invalidateQueries({queryKey:a})});return e.mode===`workflow`?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)($,{label:`Model profile`,value:`Not used for workflow runs`}),(0,K.jsx)(`p`,{className:`pb-1 text-body-small-default text-[var(--content-tertiary)]`,children:`Each step of a workflow picks its own model, so this schedule has no model setting to change.`})]}):r?(0,K.jsx)(`div`,{className:`py-1 text-body-medium-lighter text-[var(--content-default)]`,children:(0,K.jsx)(tn,{assistantId:n,pinnedProfile:e.inferenceProfile})}):(0,K.jsx)($,{label:`Model profile`,value:(0,K.jsx)(an,{assistantId:n,value:e.inferenceProfile,onChange:t=>{t&&t!==e.inferenceProfile&&s.mutate(t)},includeDefaultOption:!1,placeholder:`Choose a model`,isSaving:s.isPending,className:`min-w-[11rem]`})})}function cn({icon:e,value:t,label:n}){return(0,K.jsxs)(`div`,{className:`flex items-center gap-3 rounded-lg border border-[var(--border-base)] bg-[var(--surface-lift)] p-3`,children:[(0,K.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,K.jsxs)(`div`,{className:`min-w-0`,children:[(0,K.jsx)(`div`,{className:`truncate text-body-large-default text-[var(--content-default)]`,children:t}),(0,K.jsx)(`div`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:n})]})]})}function ln({usage:e}){return e.status===`loading`?(0,K.jsx)(`div`,{className:`grid grid-cols-2 gap-3 pt-2`,children:Array.from({length:2},(e,t)=>(0,K.jsx)(L,{className:`h-[60px] rounded-lg`},t))}):e.status===`error`?null:(0,K.jsxs)(`div`,{className:`grid grid-cols-2 gap-3 pt-2`,children:[(0,K.jsx)(cn,{icon:(0,K.jsx)(y,{className:`h-4 w-4`}),value:Y(e.summary.totalEstimatedCostUsd),label:`7 Day Cost`}),(0,K.jsx)(cn,{icon:(0,K.jsx)(T,{className:`h-4 w-4`}),value:yt(e.summary.runCount),label:`7 Day Runs`})]})}function un(e){return e.exists&&e.archivedAt==null}function dn({run:e,index:t,isExpanded:n,disableDirectOpen:r,onOpenConversation:i,onToggleDetails:a}){let o=Ct(e),s=e.conversations??(o?[{id:o,title:null,exists:!0,archivedAt:null}]:[]),c=X(e.output),l=X(e.error),u=!r&&s.length===1&&un(s[0])?s[0].id:null,f=!u&&(s.length>0||c||l),p=`schedule-run-details-${t}`,m=!!u||f,h=(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(zt,{status:e.status}),(0,K.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,K.jsx)(`div`,{className:`text-body-medium-lighter text-[var(--content-default)]`,children:J(e.startedAt)}),(0,K.jsxs)(`div`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:[_t(e.durationMs),` ·`,` `,Y(e.estimatedCostUsd)]}),e.status===`error`&&e.error?(0,K.jsxs)(`div`,{className:`mt-0.5 text-body-small-default text-[var(--system-negative-strong)]`,children:[e.error.slice(0,120),e.error.length>120?`…`:``]}):null]}),m?(0,K.jsx)(g,{className:d(`h-4 w-4 shrink-0 text-[var(--content-tertiary)] transition-transform`,f&&n?`rotate-90`:``)}):null]}),_=f&&n?(0,K.jsx)(`div`,{id:p,className:`px-2 pb-3`,children:(0,K.jsxs)(`div`,{className:`space-y-3 rounded-md border border-[var(--border-subtle)] bg-[var(--surface-sunken)] p-3`,children:[s.length>0?(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`div`,{className:`mb-1 text-body-small-default text-[var(--content-secondary)]`,children:`Conversations`}),(0,K.jsx)(`div`,{className:`space-y-1`,children:s.map(e=>un(e)?(0,K.jsx)(`button`,{type:`button`,onClick:()=>i(e.id),className:`block w-full truncate text-left text-body-small-default text-[var(--content-default)] hover:underline`,children:X(e.title)?e.title:`Conversation`},e.id):(0,K.jsxs)(`span`,{className:`block truncate text-body-small-default text-[var(--content-tertiary)] italic`,children:[X(e.title)?e.title:`Conversation`,` `,e.exists?`(archived)`:`(unavailable)`]},e.id))})]}):null,c?(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`div`,{className:`mb-1 text-body-small-default text-[var(--content-secondary)]`,children:`Output`}),(0,K.jsx)(`pre`,{className:`max-h-64 overflow-auto whitespace-pre-wrap break-words text-body-small-default font-mono text-[var(--content-default)]`,children:e.output})]}):null,l?(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`div`,{className:`mb-1 text-body-small-default text-[var(--content-secondary)]`,children:`Error`}),(0,K.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 u?(0,K.jsx)(`div`,{children:(0,K.jsx)(`button`,{type:`button`,onClick:()=>i(u),"aria-label":`Open conversation for run at ${J(e.startedAt)}`,className:`flex w-full cursor-pointer items-center gap-3 px-2 py-3 text-left shadow-none transition-colors hover:bg-[var(--surface-hover)] focus:outline-none`,children:h})}):f?(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`button`,{type:`button`,onClick:()=>a(e.id),"aria-label":`Toggle details for run at ${J(e.startedAt)}`,"aria-expanded":n,"aria-controls":p,className:`flex w-full cursor-pointer items-center gap-3 px-2 py-3 text-left shadow-none transition-colors hover:bg-[var(--surface-hover)] focus:outline-none`,children:h}),_]}):(0,K.jsx)(`div`,{className:`flex items-center gap-3 px-2 py-3`,children:h})}function fn({runs:e,isLoading:t,disableDirectOpen:n,onOpenConversation:r}){let[i,a]=(0,U.useState)(null);return t?(0,K.jsx)(`div`,{className:`flex items-center justify-center py-6`,children:(0,K.jsx)(C,{className:`h-5 w-5 animate-spin text-stone-400`})}):!e||e.length===0?(0,K.jsx)(`p`,{className:`py-2 text-body-medium-lighter text-[var(--content-tertiary)] italic`,children:`No runs yet.`}):(0,K.jsx)(`div`,{className:`divide-y divide-[var(--border-base)]`,children:e.map((e,t)=>(0,K.jsx)(dn,{run:e,index:t,isExpanded:i===e.id,disableDirectOpen:n,onOpenConversation:r,onToggleDetails:e=>a(t=>t===e?null:e)},e.id))})}function pn({schedule:e,assistantId:n,usage:a,isPast:o=!1,isMobile:c,onClose:l,onDeleted:u}){let p=i(),{data:h,isLoading:g}=s({queryKey:he({path:{assistant_id:n,id:e.id}}),queryFn:()=>Le(n,e.id),staleTime:1e4}),[_,v]=(0,U.useState)(!1),[y,b]=(0,U.useState)(!1),[x,S]=(0,U.useState)(!1),w=Xt(e.sourceKey),T=w!==null&&!e.enabled,E=async()=>{v(!0);try{await Ie(n,e.id)}catch(e){t(e,{context:`schedule_run_now`}),P.error(`Failed to run schedule.`)}finally{v(!1)}},k=async()=>{S(!0);try{await Fe(n,e.id),u()}catch(e){t(e,{context:`schedule_delete`}),P.error(`Failed to delete schedule.`),S(!1),b(!1)}};return(0,K.jsxs)(`div`,{className:d(`flex h-full flex-col bg-[var(--surface-overlay)]`,!c&&`rounded-[var(--radius-xl)] border border-[var(--border-base)]`),children:[(0,K.jsxs)(`div`,{className:`flex shrink-0 items-center gap-3 border-b border-[var(--border-base)] p-[var(--app-spacing-lg)]`,children:[(0,K.jsx)(`div`,{className:`min-w-0 flex-1`,children:(0,K.jsx)(f,{variant:`title-small`,className:`truncate text-[var(--content-default)]`,children:e.name})}),(0,K.jsx)(r,{variant:`ghost`,iconOnly:(0,K.jsx)(O,{}),onClick:l,"aria-label":`Close schedule details`,tooltip:`Close`,className:`shrink-0`})]}),(0,K.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,K.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-secondary)]`,children:e.description}):null,(0,K.jsxs)(`section`,{children:[(0,K.jsx)(on,{children:`Details`}),(0,K.jsxs)(`div`,{className:`rounded-lg border border-[var(--border-base)] bg-[var(--surface-lift)] px-4 py-2`,children:[e.cadenceDescription?(0,K.jsx)($,{label:`Cadence`,value:e.cadenceDescription}):null,(0,K.jsx)($,{label:`Mode`,value:e.mode}),(0,K.jsx)(sn,{schedule:e,assistantId:n,isPast:o}),(0,K.jsx)($,{label:`Status`,value:e.enabled?`Enabled`:`Disabled`}),(0,K.jsx)($,{label:`Next run`,value:J(e.nextRunAt)}),e.lastRunAt?(0,K.jsx)($,{label:`Last run`,value:(0,K.jsxs)(`span`,{className:`flex items-center justify-end gap-2`,children:[(0,K.jsx)(zt,{status:e.lastStatus}),J(e.lastRunAt)]})}):null]})]}),(0,K.jsx)(ln,{usage:a}),(0,K.jsxs)(`section`,{children:[(0,K.jsx)(on,{children:`Recent runs`}),(0,K.jsx)(fn,{runs:h?.runs,isLoading:g,disableDirectOpen:e.mode===`script`,onOpenConversation:e=>Te(p,e)})]})]}),(0,K.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between gap-2 border-t border-[var(--border-base)] p-[var(--app-spacing-lg)]`,children:[w?(0,K.jsxs)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:[`Managed by plugin `,w]}):y?(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(r,{variant:`ghost`,onClick:()=>b(!1),disabled:x,children:`Cancel`}),(0,K.jsx)(r,{variant:`danger`,onClick:()=>void k(),disabled:x,children:x?`Deleting…`:`Yes, delete`})]}):(0,K.jsx)(r,{variant:`dangerOutline`,leftIcon:(0,K.jsx)(D,{className:`h-3.5 w-3.5`}),onClick:()=>b(!0),children:`Delete`}),(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(r,{variant:`outlined`,leftIcon:(0,K.jsx)(m,{className:`h-3.5 w-3.5`}),onClick:()=>p(B.settings.usageForSchedule(e.id)),children:`View usage`}),e.mode===`script`?(0,K.jsxs)(K.Fragment,{children:[T?(0,K.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Turn this schedule on to run it`}):null,(0,K.jsx)(r,{variant:`primary`,leftIcon:_?(0,K.jsx)(C,{className:`h-3.5 w-3.5 animate-spin`}):void 0,onClick:()=>void E(),disabled:_||T,children:_?`Running…`:`Run now`})]}):null]})]})]})}function mn(e){if(e.status===`loading`)return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(L,{as:`span`,className:`h-4 w-12`}),(0,K.jsx)(L,{as:`span`,className:`h-4 w-10`})]});if(e.status===`error`)return(0,K.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`—`});let{summary:t}=e;return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`span`,{className:`text-body-small-default text-[var(--content-secondary)]`,children:Y(t.totalEstimatedCostUsd)}),(0,K.jsx)(`span`,{className:`text-body-small-default text-[var(--content-secondary)]`,children:yt(t.runCount)})]})}function hn({name:e,badge:t,metaParts:n,usage:r,enabled:i,selected:a,onClick:o,onToggle:s,toggleAriaLabel:c}){return(0,K.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,K.jsx)(ee,{checked:i,onChange:s,"aria-label":c}):null,(0,K.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,K.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-1`,children:[(0,K.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[(0,K.jsx)(`span`,{className:`truncate text-body-medium-default text-[var(--content-default)]`,children:e}),t]}),n.length>0?(0,K.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,K.jsxs)(U.Fragment,{children:[t>0?(0,K.jsx)(`span`,{className:`h-[3px] w-[3px] shrink-0 rounded-full bg-[var(--content-tertiary)]`}):null,(0,K.jsx)(`span`,{className:`truncate`,children:e})]},t))}):null]}),(0,K.jsxs)(`div`,{className:`flex shrink-0 items-center gap-4`,children:[mn(r),(0,K.jsx)(g,{className:`h-4 w-4 text-[var(--content-tertiary)]`})]})]})]})}function gn({schedule:e,usage:t,selected:n,onClick:r,onToggle:i}){let a=e.isOneShot?``:e.cadenceDescription.trim(),o=e.lastRunAt??e.nextRunAt,s=[a,o?J(o):``].filter(Boolean),c=Xt(e.sourceKey);return(0,K.jsx)(hn,{name:e.name,badge:c?(0,K.jsx)(A,{tone:`info`,children:c}):void 0,metaParts:s,usage:t,enabled:e.enabled,selected:n,onClick:r,onToggle:i,toggleAriaLabel:i?`Toggle ${e.name}`:void 0})}function _n({recurring:e,oneTime:t,pastOneTime:n,usageForSchedule:i,isLoading:a,isError:o,refetch:s,onToggle:c,onSelectSchedule:l,selectedScheduleId:u,onStartNewChat:d,onCreateSchedule:f,pastOpen:m,onPastOpenChange:h,onRebaseProfiles:_,defaultProfileLabel:v,systemTasksSlot:y}){let b=e=>(0,K.jsx)(gn,{schedule:e,usage:i(e.id),selected:e.id===u,onClick:()=>l(e.id),onToggle:t=>c(e.id,t)},e.id),x=e=>(0,K.jsx)(gn,{schedule:e,usage:i(e.id),selected:e.id===u,onClick:()=>l(e.id)},e.id),C=n.length>0?(0,K.jsx)(S.Root,{type:`single`,collapsible:!0,className:`mt-3`,value:m?`past`:``,onValueChange:e=>h(e===`past`),children:(0,K.jsxs)(S.Item,{value:`past`,children:[(0,K.jsxs)(S.Trigger,{className:`group gap-[var(--app-spacing-xs)] px-2 text-label-small-default text-[var(--content-tertiary)]`,children:[(0,K.jsx)(g,{size:14,"aria-hidden":!0,className:`shrink-0 transition-transform group-data-[state=open]:rotate-90`}),(0,K.jsxs)(`span`,{children:[`Past (`,n.length,`)`]})]}),(0,K.jsx)(S.Content,{children:(0,K.jsx)(`div`,{className:`pt-1`,children:n.map(x)})})]})}):null;return(0,K.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto`,children:[a?(0,K.jsx)(`div`,{className:`space-y-3`,children:Array.from({length:2},(e,t)=>(0,K.jsx)(L,{className:`h-12 rounded-md`},t))}):o&&e.length===0?(0,K.jsx)(k,{tone:`error`,actions:(0,K.jsx)(`button`,{type:`button`,onClick:s,className:`cursor-pointer underline hover:no-underline`,children:`Retry`}),children:`Failed to load schedules.`}):e.length===0&&t.length===0&&n.length===0?(0,K.jsx)(Ke,{icon:p,title:`No schedules yet`,description:`Ask your assistant to set one up, or create one yourself.`,actions:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(r,{variant:`primary`,size:`regular`,onClick:d,children:`New Conversation`}),(0,K.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`or`}),(0,K.jsx)(r,{variant:`outlined`,size:`regular`,onClick:f,children:`Create schedule`})]})}):(0,K.jsxs)(`div`,{children:[_&&v?(0,K.jsx)(`div`,{className:`mb-1 flex min-w-0 justify-end`,children:(0,K.jsx)(r,{variant:`outlined`,size:`compact`,onClick:_,className:`max-w-full truncate`,children:`Use ${v} for all schedules`})}):null,e.map(b),t.length>0?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`p`,{className:`mt-3 px-2 text-label-small-default text-[var(--content-tertiary)]`,children:`One-time`}),t.map(x)]}):null,C]}),y?(0,K.jsx)(`div`,{className:`mt-[var(--app-spacing-lg)]`,children:y}):null]})}function vn({runs:e,isLoading:t,emptyMessage:n=`No runs yet.`,hasMore:a=!1,isLoadingMore:o=!1,onLoadMore:s}){let c=i(),[l,u]=(0,U.useState)(null),d=a&&s?(0,K.jsx)(`div`,{className:`flex justify-center pt-3`,children:(0,K.jsx)(r,{variant:`outlined`,size:`compact`,onClick:s,disabled:o,leftIcon:o?(0,K.jsx)(C,{className:`h-3.5 w-3.5 animate-spin`}):void 0,children:o?`Loading…`:`Load more`})}):null;return(0,K.jsx)(Be,{title:`Recent runs`,children:t?(0,K.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,K.jsx)(C,{className:`h-5 w-5 animate-spin text-stone-400`})}):!e||e.length===0?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`p`,{className:`py-4 text-center text-body-medium-lighter text-[var(--content-tertiary)] italic`,children:n}),d]}):(0,K.jsxs)(`div`,{className:`divide-y divide-[var(--border-base)]`,children:[e.map((e,t)=>{let n=Ct(e),r=X(e.output),i=X(e.error),a=e.status===`skipped`||e.status===`missed`,o=!n&&!a&&(r||i),s=l===e.id,d=`schedule-run-details-${t}`;return(0,K.jsxs)(`div`,{children:[(0,K.jsx)(b,{label:(0,K.jsxs)(`span`,{className:`flex min-w-0 flex-1 items-center gap-3`,children:[(0,K.jsx)(zt,{status:e.status}),(0,K.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,K.jsx)(`span`,{className:`block truncate text-body-medium-lighter text-[var(--content-default)]`,children:X(e.title)?e.title:J(e.startedAt)}),(0,K.jsxs)(`span`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:[X(e.title)?`${J(e.startedAt)} · `:``,a?(0,K.jsx)(K.Fragment,{children:r?e.output:e.status===`missed`?`Missed`:`Skipped`}):(0,K.jsxs)(K.Fragment,{children:[_t(e.durationMs),` ·`,` `,Y(e.estimatedCostUsd)]}),e.status===`error`&&e.error&&(0,K.jsxs)(`span`,{className:`ml-2 text-[var(--system-negative-strong)]`,children:[e.error.slice(0,80),e.error.length>80?`…`:``]})]})]}),n||o?(0,K.jsx)(g,{className:`h-4 w-4 shrink-0 text-[var(--content-tertiary)] transition-transform ${s?`rotate-90`:``}`}):null]}),onSelect:n?()=>Te(c,n):o?()=>u(s?null:e.id):void 0,"aria-label":`Run at ${J(e.startedAt)}`,"aria-expanded":o?s:void 0,"aria-controls":o?d:void 0,className:`h-auto py-2.5 gap-3 -mx-2 px-2`}),o&&s?(0,K.jsx)(`div`,{id:d,className:`px-2 pb-3`,children:(0,K.jsxs)(`div`,{className:`space-y-3 rounded-md border border-[var(--border-subtle)] bg-[var(--surface-sunken)] p-3`,children:[r?(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`div`,{className:`mb-1 text-body-small-default text-[var(--content-secondary)]`,children:`Output`}),(0,K.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,K.jsxs)(`div`,{children:[(0,K.jsx)(`div`,{className:`mb-1 text-body-small-default text-[var(--content-secondary)]`,children:`Error`}),(0,K.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)}),d]})})}var yn={heartbeat:`heartbeatAgent`,consolidation:`memoryV2Consolidation`,retrospective:`memoryRetrospective`};function bn({children:e}){return(0,K.jsx)(f,{variant:`label-small-default`,as:`div`,className:`mb-2 uppercase tracking-wider text-[var(--content-tertiary)]`,children:e})}function xn({kind:e,assistantId:t,systemTasks:n,canOpenMemorySettings:a,isMobile:o,onClose:s}){let l=i(),{heartbeatConfig:u,consolidationConfig:p,retrospectiveConfig:m}=n,h,g,_,v,y,b,x;e===`heartbeat`?(h=`Heartbeat`,g=u?Dt(u):``,_=u?.enabled??!1,v=u?.nextRunAt??null,y=u?.lastRunAt??null,b=n.isHeartbeatRunning,x=n.runHeartbeatNow):e===`consolidation`?(h=`Consolidation`,g=p?Ot(p):``,_=p?.enabled??!1,v=p?.nextRunAt??null,y=p?.lastRunAt??null,b=n.isConsolidationRunning,x=n.runConsolidationNow):(h=`Memory retrospective`,g=kt,_=m?.enabled??!1,v=m?.nextRunAt??null,y=m?.lastRunAt??null,b=!1,x=void 0);let S=e!==`heartbeat`,T=e===`retrospective`,D=S&&!_,A=b||D,j=S?_?`On · Managed by Memory`:`Paused`:_?`Enabled`:`Disabled`,M=T&&m?.available===!0,N=M?`Retrospectives are turned off. Turn them back on under Memory in settings.`:T?`Memory is off, so retrospectives are paused. Turn Memory back on to resume them.`:`Memory is off, so consolidation is paused. Turn Memory back on to resume consolidation.`,P=S&&_&&a,F={path:{assistant_id:t},query:{limit:25}},I=e===`heartbeat`?se(F):e===`consolidation`?me(F):fe(F),{data:L,isLoading:R,fetchNextPage:z,hasNextPage:te,isFetchingNextPage:ne}=c({queryKey:I.queryKey,queryFn:I.queryFn,initialPageParam:{path:F.path,query:{}},getNextPageParam:e=>e.nextCursor??void 0,staleTime:1e4}),re=xt(L?.pages.map(t=>({runs:t.runs.filter(e=>!wt(e)).map(t=>Z(t,e))}))),ie=re?.find(e=>Tt(e)&&e.status!==`running`),ae=y??ie?.finishedAt??ie?.startedAt??null;return(0,K.jsxs)(`div`,{className:d(`flex h-full flex-col bg-[var(--surface-overlay)]`,!o&&`rounded-[var(--radius-xl)] border border-[var(--border-base)]`),children:[(0,K.jsxs)(`div`,{className:`flex shrink-0 items-center gap-3 border-b border-[var(--border-base)] p-[var(--app-spacing-lg)]`,children:[(0,K.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,K.jsx)(f,{variant:`title-small`,className:`truncate text-[var(--content-default)]`,children:h}),g?(0,K.jsx)(f,{variant:`body-small-default`,as:`p`,className:`truncate text-[var(--content-tertiary)]`,children:g}):null]}),(0,K.jsx)(r,{variant:`ghost`,iconOnly:(0,K.jsx)(O,{}),onClick:s,"aria-label":`Close schedule details`,tooltip:`Close`,className:`shrink-0`})]}),(0,K.jsxs)(`div`,{className:`flex-1 space-y-6 overflow-y-auto px-[var(--app-spacing-lg)] py-[var(--app-spacing-lg)]`,children:[(0,K.jsxs)(`section`,{children:[(0,K.jsx)(bn,{children:`Details`}),(0,K.jsxs)(`div`,{className:`space-y-2 rounded-lg border border-[var(--border-base)] bg-[var(--surface-lift)] px-4 py-3 text-body-medium-lighter`,children:[(0,K.jsx)(tn,{assistantId:t,defaultCallSite:yn[e],fallbackLabel:`Default (system task model)`,respectCallSiteOverride:!0}),(0,K.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,K.jsx)(`span`,{className:`text-[var(--content-secondary)]`,children:`Status`}),(0,K.jsxs)(`span`,{className:`flex items-center gap-2 text-[var(--content-default)]`,children:[(0,K.jsx)(`span`,{children:j}),S?null:(0,K.jsx)(ee,{checked:_,onChange:n.toggleHeartbeat,"aria-label":`Toggle ${h}`})]})]}),T?null:(0,K.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,K.jsx)(`span`,{className:`text-[var(--content-secondary)]`,children:`Next run`}),(0,K.jsx)(`span`,{className:`text-[var(--content-default)]`,children:J(v)})]}),(0,K.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,K.jsx)(`span`,{className:`text-[var(--content-secondary)]`,children:`Last run`}),(0,K.jsx)(`span`,{className:`text-[var(--content-default)]`,children:J(ae)})]})]}),D?(0,K.jsx)(k,{tone:`warning`,className:`mt-4`,actions:a?(0,K.jsx)(r,{variant:`outlined`,size:`compact`,onClick:()=>l(`${B.settings.developer}?tab=memory`),children:M?`Open Memory settings`:`Turn on Memory`}):void 0,children:N}):null]}),(0,K.jsx)(vn,{runs:re,isLoading:R,hasMore:te,isLoadingMore:ne,onLoadMore:()=>void z()})]}),P||x?(0,K.jsxs)(`div`,{className:`flex shrink-0 items-center justify-end gap-2 border-t border-[var(--border-base)] p-[var(--app-spacing-lg)]`,children:[P?(0,K.jsx)(r,{variant:`outlined`,leftIcon:(0,K.jsx)(E,{className:`h-3.5 w-3.5`}),onClick:()=>l(`${B.settings.developer}?tab=memory`),children:`Memory settings`}):null,x?(0,K.jsx)(r,{variant:`primary`,leftIcon:b?(0,K.jsx)(C,{className:`h-3.5 w-3.5 animate-spin`}):(0,K.jsx)(w,{className:`h-3.5 w-3.5`}),onClick:x,disabled:A,children:b?`Running…`:`Run now`}):null]}):null]})}function Sn(e){let n=H(),[r]=(0,U.useState)(()=>Date.now()),{data:i,isLoading:a,isError:o,refetch:c}=s(Re(e)),{data:l,isLoading:u,isError:d}=s(Nt(e,n,!0)),{recurring:f,oneTime:p,pastOneTime:m}=(0,U.useMemo)(()=>{let e=Mt(i??[],r);return{recurring:e.recurring,oneTime:e.upcomingOneTime,pastOneTime:e.pastOneTime}},[r,i]),h=(0,U.useMemo)(()=>new Map((l??[]).map(e=>[e.scheduleId,e])),[l]);return{recurring:f,oneTime:p,pastOneTime:m,usageForSchedule:(0,U.useCallback)(e=>u?{status:`loading`}:d?{status:`error`}:{status:`ready`,summary:h.get(e)??Pt(e)},[d,u,h]),handleToggle:(0,U.useCallback)(async(n,r)=>{if(e)try{await Me(e,n,r),c()}catch(e){t(e,{context:`schedule_toggle`}),P.error(`Failed to toggle schedule.`)}},[e,c]),isLoading:a,isError:o,refetch:(0,U.useCallback)(()=>{c()},[c])}}function Cn(){let e=i(),{scheduleId:t}=a(),n=Ae(),r=Ee(),o=H(),s=Sn(n),c=Yt(n,o),l=ke(`memoryOptOut`),u=Oe.use.settingsDeveloperNav(),d=l&&u===!0,[f,p]=(0,U.useState)(!1),m=t??null,[h,g]=(0,U.useState)(null),[_,v]=(0,U.useState)(!1),y=(0,U.useCallback)(t=>{e(t?B.schedules.detail(t):B.schedules.root)},[e]),b=m?s.recurring.find(e=>e.id===m)??s.oneTime.find(e=>e.id===m)??s.pastOneTime.find(e=>e.id===m)??null:null;(0,U.useEffect)(()=>{m&&!s.isLoading&&!s.isError&&!b&&y(null)},[m,b,s.isLoading,s.isError,y]);let x=h===`heartbeat`?c.heartbeatConfig!=null:h===`consolidation`?c.consolidationConfig?.available===!0:h===`retrospective`?c.retrospectiveConfig?.available===!0:!1;(0,U.useEffect)(()=>{h&&!c.isLoading&&!x&&g(null)},[h,x,c.isLoading]);let S=(0,U.useCallback)(e=>{g(null),y(e)},[y]),C=(0,U.useCallback)(e=>{m&&y(null),g(e)},[y,m]),w=(0,U.useCallback)(()=>{we(e)},[e]),T=Lt(n,(0,U.useMemo)(()=>[...s.recurring,...s.oneTime,...s.pastOneTime],[s.recurring,s.oneTime,s.pastOneTime]),s.refetch),E=(b?(0,K.jsx)(pn,{schedule:b,assistantId:n,usage:s.usageForSchedule(b.id),isPast:s.pastOneTime.some(e=>e.id===b.id),isMobile:r,onClose:()=>y(null),onDeleted:()=>{y(null),s.refetch()}}):null)??(h&&x?(0,K.jsx)(xn,{kind:h,assistantId:n,systemTasks:c,canOpenMemorySettings:d,isMobile:r,onClose:()=>g(null)}):null),D=(0,K.jsx)(_n,{recurring:s.recurring,oneTime:s.oneTime,pastOneTime:s.pastOneTime,usageForSchedule:s.usageForSchedule,isLoading:s.isLoading,isError:s.isError,refetch:s.refetch,onToggle:s.handleToggle,onSelectSchedule:S,selectedScheduleId:m,onStartNewChat:w,onCreateSchedule:()=>p(!0),pastOpen:_,onPastOpenChange:v,onRebaseProfiles:T.canRebase?T.requestRebase:void 0,defaultProfileLabel:T.defaultProfileLabel??void 0,systemTasksSlot:(0,K.jsx)(Ht,{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,K.jsx)(Rt,{...T.dialogProps});return E&&r?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(Ve,{children:E}),O]}):(0,K.jsxs)(K.Fragment,{children:[E&&!r?(0,K.jsx)(He,{storageKey:`schedulesDetailDrawerWidth`,detailKey:m??h??void 0,section:D,detail:E}):D,(0,K.jsx)(ct,{isOpen:f,assistantId:n,onClose:()=>p(!1),onCreated:()=>{p(!1),s.refetch()}}),O]})}export{Cn as SchedulesPage};
@@ -1 +0,0 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{u as t}from"./local-settings-Bx7FsNo5.js";import{t as n}from"./react-BFJW0bSv.js";import{t as r}from"./button-BENY-yx_.js";import{d as i,h as a}from"./chunk-5KNZJZUH-BUqIilZr.js";import{t as o}from"./jsx-runtime-D3ZM-ToX.js";import{t as s}from"./check-DSgjgwlo.js";import{t as c}from"./menu-DKE_-iVc.js";import{t as l}from"./cloud-DqktQX50.js";import{t as u}from"./ellipsis-vertical-eVgdKn9z.js";import{t as d}from"./globe-COk-NH9x.js";import{t as f}from"./laptop-BXuIFbVm.js";import{t as ee}from"./link-2-Bm55xvLL.js";import{t as p}from"./plus-DnH9Pjq4.js";import{t as m}from"./notice-C0ifrvvJ.js";import{n as te,t as h}from"./input-DmHXRXaB.js";import{t as g}from"./modal-DI63s9MQ.js";import{t as ne}from"./confirm-dialog-zx8L9sUi.js";import{n as _,t as v}from"./create-selectors-DBgi9gD3.js";import{$ as re,O as ie,V as ae,W as oe,_ as se,ct as y,h as ce,m as b,q as le,t as ue,x as de,z as fe}from"./local-mode-BfEgOekp.js";import{t as pe}from"./is-electron-BHXrkjI3.js";import{n as me}from"./resolved-assistants-store-BFI9c7ip.js";import{X as he,i as ge,n as _e,tt as ve}from"./auth-store-CPVpJ_c7.js";import{c as ye}from"./remote-gateway-session-CgDx1fv1.js";import{t as be}from"./client-feature-flag-store-C8ieIAKe.js";import{c as x,m as xe}from"./platform-detection-C_TK32Dw.js";import{i as S}from"./dist-Br0LBu8Y.js";import{d as C}from"./routes-iipg2wkc.js";import{i as Se}from"./typed-storage-UYklH-m5.js";import{i as w,n as Ce,t as we}from"./remove-from-device-dialog-DY5o8eIg.js";import{t as Te}from"./use-onboarding-login-BXw1Fcg3.js";import{n as Ee,t as T}from"./retire-confirm-dialog-CgOoh5RG.js";import{t as De}from"./onboarding-layout-C534GRct.js";import{i as Oe}from"./format-date-Bi9Bsv-w.js";import{t as ke}from"./radio-card-nav-B1BF1G_V.js";var E=e(n(),1),Ae=`vellum:remembered-origins`;function D(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 O(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=D(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 je(e){let t=JSON.parse(e);return Array.isArray(t)?O(t):null}var k=Se({key:Ae,scope:`device`,parse:je,serialize:JSON.stringify,fallback:[]}),A={load:async()=>k.load(),save:async e=>{k.save(e)},watch:e=>t(Ae,e)},j=A,M=null,N=0,P=Promise.resolve(),Me=`vellum:remembered-origins:mutate`;async function Ne(e){let t=typeof navigator>`u`?void 0:navigator.locks;return t?await t.request(Me,e):e()}function F(e){let t=()=>Ne(e),n=P.then(t,t);return P=n.catch(()=>void 0),n}var I=null,L=!1;function Pe(e){return F(async()=>{try{let t=await j.load();if(e!==N)return;B.getState().hydrated?B.setState({origins:t}):M===null?B.getState().hydrate():L=!0}catch{}})}function R(){I?.();let e=N;I=j.watch?.(()=>void Pe(e))??null}function z(e){j=e,N+=1,M=null,L=!1,B.setState({hydrated:!1}),R(),B.getState().hydrate()}var B=_()((e,t)=>({origins:[],hydrated:!1,hydrate:()=>(M??=(async()=>{let t=N;await Promise.resolve();try{let n=await j.load();t===N&&(e({origins:n,hydrated:!0}),L&&(L=!1,Pe(t)))}catch{t===N&&(M=null)}})(),M),addOrigin:async({url:n,name:r})=>{let i=D(n);return i===null?{ok:!1}:F(async()=>{if(await t().hydrate(),!t().hydrated)return{ok:!1};let n=j,a=N,o;try{o=await n.load()}catch{return{ok:!1}}if(a!==N)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===N?(e({origins:d}),{ok:!0,origin:u}):{ok:!1}})},removeOrigin:async n=>{let r=D(n);r!==null&&await F(async()=>{if(await t().hydrate(),!t().hydrated)return;let n=j,i=N,a;try{a=await n.load()}catch{return}if(i!==N)return;let o=a.filter(e=>e.url!==r);if(o.length!==a.length)try{await n.save(o)}catch{return}i===N&&e({origins:o})})}}));R();var V=v(B),H=S(`SelfHostedServers`),U=`1970-01-01T00:00:00.000Z`;async function W(){try{return await H.list()}catch(e){return console.debug(`[self-hosted-servers] bridge unavailable:`,e),null}}var G=`vellum:remembered-origins:native-migrated`;function K(){try{return window.localStorage.getItem(G)===`true`}catch{return!0}}function Fe(){try{window.localStorage.setItem(G,`true`)}catch{}}async function q(e){if(K())return e;let t=[];try{t=await A.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 H.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 Fe(),[...e,...i]}function Ie(){return{load:async()=>{let e=await W();return e===null?A.load():q(O(e.servers,U))},save:async e=>{let t=await W();if(t===null){await A.save(e);return}let n=new Map(O(t.servers,U).map(e=>[e.url,e.name])),r=new Set(e.map(e=>e.url));for(let e of n.keys())r.has(e)||await H.remove({url:e});for(let t of e)(!n.has(t.url)||t.name&&t.name!==n.get(t.url))&&await H.add({url:t.url,...t.name?{name:t.name}:{}})},watch:A.watch}}var J=!1;function Le(){J||!x()||(J=!0,z(Ie()))}async function Re(e){if(!x())return!1;try{return await H.switchTo(e===null?{}:{url:e}),!0}catch(e){return console.debug(`[self-hosted-servers] switchTo unavailable:`,e),!1}}async function ze(){if(!x())return null;let e=await W();return e===null||!e.activeUrl?null:e.bakedUrl?D(e.bakedUrl):null}async function Be(e){let t=()=>window.location.assign(`${e.url}${C.assistant}`);if(!x()){t();return}await Re(e.url)||t()}function Ve(e){return D(de()?ye():window.location.origin)===e.url}var Y=o(),X=`Failed to add the assistant. Please try again.`;function He(e){for(let t of[`/assistant/pair`,`/assistant`])if(e.endsWith(t))return e.slice(0,-t.length);return e}function Ue({open:e,onClose:t,onAdded:n}){let[i,a]=(0,E.useState)(``),[o,s]=(0,E.useState)(!1),[c,l]=(0,E.useState)(null);(0,E.useEffect)(()=>{e&&(a(``),s(!1),l(null))},[e]);let u=()=>{o||t()},f=async()=>{if(!i.trim()||o)return;let e=D(i),t=e===null?null:D(He(e));if(t===null){l(`Enter the full https address, like https://example.com/assistant-1.`);return}s(!0),l(null);try{let e=await V.getState().addOrigin({url:t});if(e.ok){n(e.origin);return}l(X)}catch(e){console.error(`addRemoteOriginDialog.add failed`,e),l(X)}s(!1)};return(0,Y.jsx)(g.Root,{open:e,onOpenChange:e=>{e||u()},children:(0,Y.jsxs)(g.Content,{size:`md`,children:[(0,Y.jsxs)(g.Header,{children:[(0,Y.jsx)(g.Title,{icon:d,children:`Add a Remote Assistant`}),(0,Y.jsx)(g.Description,{children:`Paste the https link your assistant’s pairing page gave you.`})]}),(0,Y.jsx)(g.Body,{children:(0,Y.jsxs)(`div`,{className:`space-y-4`,children:[(0,Y.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,Y.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`add-remote-origin-url`,children:`Assistant address`}),(0,Y.jsx)(h,{id:`add-remote-origin-url`,type:`url`,value:i,onChange:e=>a(e.target.value),placeholder:`https://example.com/assistant-1`,fullWidth:!0,autoFocus:!0})]}),c&&(0,Y.jsx)(`p`,{className:`text-body-small-default text-[var(--system-negative-strong)]`,children:c})]})}),(0,Y.jsxs)(g.Footer,{children:[(0,Y.jsx)(r,{variant:`ghost`,onClick:u,disabled:o,children:`Cancel`}),(0,Y.jsx)(r,{variant:`primary`,onClick:()=>void f(),disabled:!i.trim()||o,children:o?`Adding…`:`Add`})]})]})})}function We({open:e,initialBundle:t,guidanceMessage:n,onClose:i,onImported:a}){let[o,s]=(0,E.useState)(``),[c,l]=(0,E.useState)(``),[u,d]=(0,E.useState)(!1),[f,p]=(0,E.useState)(null),[ne,_]=(0,E.useState)(null);(0,E.useEffect)(()=>{e&&(s(t??``),l(``),d(!1),p(null),_(null))},[e,t]);let v=()=>{u||i()},re=async()=>{let e=o.trim();if(!(!e||u)){d(!0),p(null);try{let t=await b(e,c.trim()||void 0);if(!t.ok)p(t.error);else if(t.accessOnly)_(t.assistantId);else{a(t.assistantId);return}}catch(e){console.error(`connectAssistantDialog.import failed`,e),p(`Failed to import the pairing bundle. Please try again.`)}d(!1)}};return ne==null?(0,Y.jsx)(g.Root,{open:e,onOpenChange:e=>{e||v()},children:(0,Y.jsxs)(g.Content,{size:`md`,children:[(0,Y.jsxs)(g.Header,{children:[(0,Y.jsx)(g.Title,{icon:ee,children:`Connect a Remote Assistant`}),(0,Y.jsxs)(g.Description,{children:[`On the assistant’s machine, run`,` `,(0,Y.jsx)(`code`,{children:`vellum pair --url https://...`}),` and paste the bundle here.`]})]}),(0,Y.jsx)(g.Body,{children:(0,Y.jsxs)(`div`,{className:`space-y-4`,children:[n&&(0,Y.jsx)(m,{tone:`info`,children:n}),(0,Y.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,Y.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`connect-assistant-bundle`,children:`Pairing bundle`}),(0,Y.jsx)(te,{id:`connect-assistant-bundle`,value:o,onChange:e=>s(e.target.value),placeholder:`eyJnYXRld2F5...`,rows:4,fullWidth:!0,autoFocus:!0})]}),(0,Y.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,Y.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`connect-assistant-name`,children:`Name (optional)`}),(0,Y.jsx)(h,{id:`connect-assistant-name`,type:`text`,value:c,onChange:e=>l(e.target.value),placeholder:`office-mac`,fullWidth:!0})]}),f&&(0,Y.jsx)(`p`,{className:`text-body-small-default text-[var(--system-negative-strong)]`,children:f})]})}),(0,Y.jsxs)(g.Footer,{children:[(0,Y.jsx)(r,{variant:`ghost`,onClick:v,disabled:u,children:`Cancel`}),(0,Y.jsx)(r,{variant:`primary`,onClick:()=>void re(),disabled:!o.trim()||u,children:u?`Connecting…`:`Connect`})]})]})}):(0,Y.jsx)(g.Root,{open:e,onOpenChange:e=>{e||v()},children:(0,Y.jsxs)(g.Content,{size:`sm`,children:[(0,Y.jsx)(g.Header,{children:(0,Y.jsx)(g.Title,{icon:ee,children:`Pairing Imported`})}),(0,Y.jsx)(g.Body,{children:(0,Y.jsx)(m,{tone:`warning`,children:`This pairing is access-only: its access expires and cannot renew itself. Re-run vellum pair on the assistant’s machine and import the new bundle when it expires.`})}),(0,Y.jsx)(g.Footer,{children:(0,Y.jsx)(r,{variant:`primary`,onClick:()=>a(ne),children:`Continue`})})]})})}function Ge({open:e,assistantName:t,isPending:n,errorMessage:i,onCancel:a,onRepair:o,onRetire:s}){let[c,l]=(0,E.useState)(`menu`);(0,E.useEffect)(()=>{e&&l(`menu`)},[e]);let u=i?(0,Y.jsx)(`span`,{className:`mt-3 block text-body-small-default text-[var(--system-negative-strong)]`,children:i}):null;return c===`confirm-repair`?(0,Y.jsx)(ne,{open:e,title:`Repair Assistant?`,message:(0,Y.jsxs)(Y.Fragment,{children:[`Repairing re-provisions this assistant’s authentication token. Any other devices or browser sessions connected to it will be signed out and need to reconnect.`,u]}),confirmLabel:`Repair`,isPending:n,onConfirm:o,onCancel:()=>l(`menu`)}):c===`confirm-retire`?(0,Y.jsx)(T,{open:e,isPending:n,extraMessage:u,onConfirm:s,onCancel:()=>l(`menu`)}):(0,Y.jsx)(g.Root,{open:e,onOpenChange:e=>{!e&&!n&&a()},children:(0,Y.jsxs)(g.Content,{size:`sm`,hideCloseButton:!0,onEscapeKeyDown:e=>{e.preventDefault(),e.stopPropagation(),n||a()},children:[(0,Y.jsx)(g.Header,{children:(0,Y.jsx)(g.Title,{children:`Can’t Authenticate Assistant`})}),(0,Y.jsxs)(g.Body,{children:[(0,Y.jsxs)(g.Description,{children:[`The authentication token for `,t,` is missing or can no longer be refreshed, so this assistant can’t be connected. You can repair it, retire it, or pick a different assistant.`]}),u,(0,Y.jsxs)(`div`,{className:`mt-5 flex w-full flex-col gap-2`,children:[(0,Y.jsx)(r,{variant:`primary`,fullWidth:!0,disabled:n,onClick:()=>l(`confirm-repair`),children:`Wake & Repair`}),(0,Y.jsx)(r,{variant:`dangerOutline`,fullWidth:!0,disabled:n,onClick:()=>l(`confirm-retire`),children:`Retire Assistant`}),(0,Y.jsx)(r,{variant:`outlined`,fullWidth:!0,disabled:n,onClick:a,children:`Cancel`})]})]})]})})}function Ke(e){return e.name?e.name:e.isPaired?`Paired Assistant`:e.isLocal?`Local Assistant`:`Cloud Assistant`}function Z(e){let t=e.isPaired?y(e.runtimeUrl):e.isLocal?`On this computer`:`Cloud-hosted`;return e.hatchedAt?`${t} · Created ${Oe(e.hatchedAt)}`:t}function qe(e){return new URL(e.url).hostname}function Je(e){return e.name??qe(e)}function Ye(e){return`origin:${e.url}`}var Q=`origin:vellum-cloud`,Xe=[];function Ze(e){let t=new URLSearchParams(e);return t.delete(`register`),t.delete(`name`),t}function Qe(){let e=i(),[t,n]=a(),o=t.get(`fromLogin`)===`1`,s=t.get(`noAutoSkip`)===`1`,c=pe(),u=se(),f=ge(),m=me.use.assistants(),te=ve.use.currentOrganizationId(),h=be.use.assistantSwitcher(),g=be.use.hydrated(),ne=V.use.origins(),_=V.use.hydrated(),v=xe(),y=h?ne:Xe,{loading:b,error:de,login:ye,cancel:x}=Te(),[S,Se]=(0,E.useState)(null),T=h&&S!==null?{url:S,name:`Vellum Cloud`}:null,Oe=T!==null,Ae=e=>e.isLocal||e.isPaired||f,O=m.filter(Ae),je=O.length>0||y.length>0||T!==null,k=fe(),A=!f&&k,[j,M]=(0,E.useState)(null),[N,P]=(0,E.useState)(!1),[Me,Ne]=(0,E.useState)(!1),[F,I]=(0,E.useState)(null),[L,Pe]=(0,E.useState)(null),[R,z]=(0,E.useState)(!1),[B,H]=(0,E.useState)(null),[U,W]=(0,E.useState)(null),[G,K]=(0,E.useState)(!1),[Fe,q]=(0,E.useState)(null),[Ie,J]=(0,E.useState)(!1),[X,He]=(0,E.useState)(null),[Z,qe]=(0,E.useState)(!1),[Qe,$]=(0,E.useState)(null),tt=w.use.open(),it=w.use.initialBundle(),at=w.use.guidanceMessage(),ot=w.use.deepLinkDrainSettled(),st=(0,E.useRef)(!1),ct=!u&&(!g||!h);(0,E.useEffect)(()=>{!u&&g&&!h&&e(C.assistant,{replace:!0})},[u,g,h,e]),(0,E.useEffect)(()=>{h&&(Le(),V.getState().hydrate())},[h]),(0,E.useEffect)(()=>{if(!h||!v)return;let e=!1;return ze().then(t=>{e||Se(t)}),()=>{e=!0}},[h,v]);let lt=(0,E.useRef)(!1);(0,E.useEffect)(()=>{if(!h||lt.current)return;lt.current=!0;let e=t.get(`register`);if(e===null)return;let r=()=>n(Ze,{replace:!0}),i=D(e);if(i===null){r();return}V.getState().addOrigin({url:i,name:t.get(`name`)??void 0}).then(e=>{e.ok?r():lt.current=!1}).catch(()=>{lt.current=!1})},[h,t,n]),(0,E.useEffect)(()=>{if(j===Q&&Oe||j!=null&&y.some(e=>Ye(e)===j))return;if(O.length===0){let e=y[0],t=e?Ye(e):Oe?Q:null;j!==t&&M(t);return}if(j!=null&&O.some(e=>e.id===j))return;let e=he(te);M(O.find(t=>t.id===e)?.id??O[0].id)},[j,O,te,y,Oe]);let ut=async t=>{P(!0),I(null);try{t.isPaired?await _e.getState().connectPairedAssistant(t.id):t.isLocal?await _e.getState().connectLocalAssistant(t.id):await _e.getState().connectPlatformAssistant(t.id),e(C.assistant,{replace:!0})}catch(e){console.error(`selectAssistant.handleConnect failed`,e),t.isLocal&&fe()&&(ae(e)||re(e)||e instanceof ue)&&ce(t.id)?Pe(t):t.isPaired&&ae(e)?I(`This pairing has expired. Run vellum pair on the assistant's machine and import it again with vellum connect import.`):I(`Failed to connect. Please try again.`),P(!1)}},dt=()=>{Pe(null),z(!1),H(null),Ne(!1)},ft=async()=>{if(!(!L||R)){z(!0),H(null);try{let e=await oe(L.id,{repairGuardian:!0});if(e.ok){le(),dt(),ut(L);return}H(e.error||`Repair failed. Please try again.`)}catch(e){console.error(`selectAssistant.recoveryRepair failed`,e),H(`Repair failed. Please try again.`)}z(!1)}},pt=async()=>{if(!(!L||R)){z(!0),H(null);try{let t=await Ee(L.id);if(t.ok){dt(),e(t.nextRoute,{replace:!0});return}H(t.error)}catch(e){console.error(`selectAssistant.recoveryRetire failed`,e),H(`Failed to retire assistant. Please try again.`)}z(!1)}},mt=()=>{G||(W(null),q(null))},ht=async()=>{if(!(!U||G)){if(K(!0),q(null),U.isPaired){let e=await Ce(U.id);e.ok?(st.current=!0,W(null)):q(e.error),K(!1);return}try{let e=await ie(U.id);if(e.ok){let e=me.getState();e.activeAssistantId===U.id&&e.setActiveAssistantId(null),st.current=!0,W(null)}else q(e.error??`Failed to remove. Please try again.`)}catch(e){console.error(`selectAssistant.removeFromDevice failed`,e),q(`Failed to remove. Please try again.`)}K(!1)}},gt=()=>{Z||(He(null),$(null))},_t=async()=>{!X||Z||(qe(!0),$(null),await V.getState().removeOrigin(X.url),V.getState().origins.some(e=>e.url===X.url)?$(`Failed to remove. Please try again.`):(st.current=!0,He(null)),qe(!1))},vt=e=>{w.getState().closeConnectDialog(),ut(me.getState().assistants.find(t=>t.id===e)??{id:e,isLocal:!1,isPlatformHosted:!1,isPaired:!0})},yt=e=>{J(!1),Be(e)};(0,E.useEffect)(()=>{o||s||st.current||u&&g&&(h&&!_||y.length>0||c&&!ot||N||Me||tt||m.length!==0&&m.length===1&&O.length===1&&(Ne(!0),ut(O[0])))},[m.length,O.length,ot,u,y.length,h,g,_]);let bt=()=>{if(j===Q){Re(null).then(e=>{!e&&S!==null&&window.location.assign(S)});return}let t=y.find(e=>Ye(e)===j);if(t){Ve(t)?e(C.assistant,{replace:!0}):Be(t);return}let n=m.find(e=>e.id===j);n&&ut(n)},xt=()=>{e(u?C.welcome:C.assistant)},St=de??F;return ct||Me&&!St&&!L?(0,Y.jsx)($e,{}):(0,Y.jsxs)(De,{children:[(0,Y.jsx)(`div`,{className:`mx-auto flex w-full max-w-xl flex-col items-center ${c?`min-h-full px-8 pt-21 pb-4 electron-prechat-type`:`min-h-screen px-6 pb-40 pt-6`} text-[var(--content-default)]`,children:(0,Y.jsxs)(`div`,{className:`flex w-full flex-col items-center ${c?``:`flex-1 justify-center`}`,children:[(0,Y.jsx)(`h1`,{className:`text-center text-5xl font-normal tracking-tight`,style:{fontFamily:`var(--font-serif)`,animation:`fadeInUp 0.5s ease-out 0.1s both`},children:`Choose an Assistant`}),St&&(0,Y.jsx)(`p`,{className:`mt-4 text-body-small-default text-[var(--system-negative-strong)]`,children:St}),(0,Y.jsxs)(`div`,{role:`radiogroup`,"aria-label":`Assistants`,onKeyDown:ke,className:`flex w-full flex-col ${c?`mt-8 gap-2`:`mt-10 gap-3`}`,style:{animation:`fadeInUp 0.5s ease-out 0.3s both`},children:[m.map(e=>{let t=Ae(e);return(0,Y.jsx)(nt,{assistant:e,selected:j===e.id,locked:!t,tabStop:j==null?O[0]?.id===e.id:j===e.id,onSelect:()=>{t&&M(e.id)},loginLabel:b?`Cancel`:`Log in to use`,loginDisabled:N,onLogin:!t&&e.isPlatformHosted?b?x:()=>void ye():void 0,onRemove:e.isPlatformHosted&&A||e.isPaired&&k?()=>W(e):void 0},e.id)}),y.map((e,t)=>{let n=Ye(e),r=Ve(e);return(0,Y.jsx)(rt,{origin:e,selected:j===n,current:r,tabStop:j==null?O.length===0&&t===0:j===n,onSelect:()=>M(n),onRemove:r&&v?void 0:()=>He(e)},e.url)}),T&&(0,Y.jsx)(rt,{origin:T,icon:(0,Y.jsx)(l,{className:`h-5 w-5`}),selected:j===Q,current:!1,tabStop:j==null?O.length===0&&y.length===0:j===Q,onSelect:()=>M(Q)}),u&&(0,Y.jsx)(et,{icon:(0,Y.jsx)(p,{className:`h-4 w-4`}),label:`Create a new assistant`,disabled:N||b,onClick:()=>void e(`${C.onboarding.hosting}?from=select-assistant`)}),k&&(0,Y.jsx)(et,{icon:(0,Y.jsx)(ee,{className:`h-4 w-4`}),label:`Connect a remote assistant`,disabled:N||b,onClick:()=>w.getState().openConnectDialog()}),h&&!k&&(0,Y.jsx)(et,{icon:(0,Y.jsx)(d,{className:`h-4 w-4`}),label:`Add a remote assistant`,disabled:N||b,onClick:()=>J(!0)})]}),je&&(0,Y.jsx)(`div`,{className:`mt-8 w-full`,style:{animation:`fadeInUp 0.5s ease-out 0.4s both`},children:(0,Y.jsx)(r,{variant:`primary`,size:`regular`,fullWidth:!0,className:c?void 0:`h-11 text-base`,onClick:bt,disabled:!j||N,children:N?`Connecting…`:`Continue`})}),(0,Y.jsx)(`div`,{className:je?`mt-3`:`mt-8`,style:{animation:`fadeInUp 0.5s ease-out 0.5s both`},children:(0,Y.jsx)(r,{variant:`ghost`,size:`regular`,className:`text-[var(--content-tertiary)]`,onClick:xt,disabled:N||b,children:`Back`})})]})}),(0,Y.jsx)(Ue,{open:Ie,onClose:()=>J(!1),onAdded:yt}),(0,Y.jsx)(We,{open:tt,initialBundle:it??void 0,guidanceMessage:at??void 0,onClose:()=>w.getState().closeConnectDialog(),onImported:vt}),(0,Y.jsx)(Ge,{open:L!=null,assistantName:L?Ke(L):``,isPending:R,errorMessage:B??void 0,onCancel:dt,onRepair:()=>void ft(),onRetire:()=>void pt()}),(0,Y.jsx)(we,{open:U!=null,kind:U?.isPaired?`paired`:`platform`,assistantName:U?Ke(U):`the assistant`,errorMessage:Fe??void 0,isPending:G,onConfirm:()=>void ht(),onCancel:mt}),(0,Y.jsx)(we,{open:X!=null,kind:`origin`,assistantName:X?Je(X):`the assistant`,errorMessage:Qe??void 0,isPending:Z,onConfirm:()=>void _t(),onCancel:gt})]})}function $e(){return(0,Y.jsx)(De,{children:(0,Y.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,Y.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Connecting to your assistant…`})})})}function et({icon:e,label:t,disabled:n,onClick:r}){let i=pe();return(0,Y.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,Y.jsx)(`span`,{className:i?`text-body-small-default`:`text-body-medium-default`,children:t})]})}function $({label:e,onRemove:t}){return(0,Y.jsxs)(c.Root,{children:[(0,Y.jsx)(c.Trigger,{asChild:!0,children:(0,Y.jsx)(r,{variant:`ghost`,size:`regular`,className:`text-[var(--content-tertiary)]`,iconOnly:(0,Y.jsx)(u,{}),"aria-label":`Actions for ${e}`})}),(0,Y.jsx)(c.Content,{align:`end`,sideOffset:4,children:(0,Y.jsx)(c.Item,{onSelect:t,className:`text-[var(--system-negative-strong)] data-[highlighted]:text-[var(--system-negative-strong)]`,children:`Remove from this device…`})})]})}function tt({icon:e,title:t,subtitle:n,selected:r,locked:i=!1,tabStop:a,onSelect:o,action:c,removeMenu:l}){let u=pe();return(0,Y.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,Y.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,Y.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Y.jsx)(`span`,{className:`block text-body-medium-default text-[var(--content-default)]`,children:t}),(0,Y.jsx)(`span`,{className:`mt-1 block text-[var(--content-tertiary)] ${u?`text-label-medium-default font-normal`:`text-body-small-lighter`}`,children:n})]}),(0,Y.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[c,l&&(i?l:(0,Y.jsx)(`div`,{onClick:e=>e.stopPropagation(),onKeyDown:e=>e.stopPropagation(),children:l})),!i&&(0,Y.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,Y.jsx)(s,{className:`h-3 w-3 text-[var(--surface-base)]`,strokeWidth:3})})]})]})}function nt({assistant:e,selected:t,locked:n,tabStop:i,onSelect:a,loginLabel:o,loginDisabled:s,onLogin:c,onRemove:u}){let d=Ke(e);return(0,Y.jsx)(tt,{icon:e.isPaired?(0,Y.jsx)(ee,{className:`h-5 w-5`}):e.isLocal?(0,Y.jsx)(f,{className:`h-5 w-5`}):(0,Y.jsx)(l,{className:`h-5 w-5`}),title:d,subtitle:Z(e),selected:t,locked:n,tabStop:i,onSelect:a,action:n&&c?(0,Y.jsx)(r,{variant:`primary`,size:`regular`,onClick:c,disabled:s,children:o}):void 0,removeMenu:u&&(0,Y.jsx)($,{label:d,onRemove:u})})}function rt({origin:e,icon:t,selected:n,current:r,tabStop:i,onSelect:a,onRemove:o}){let s=Je(e);return(0,Y.jsx)(tt,{icon:t??(0,Y.jsx)(d,{className:`h-5 w-5`}),title:s,subtitle:`${r?`Current`:`Remote`} · ${qe(e)}`,selected:n,tabStop:i,onSelect:a,removeMenu:o&&(0,Y.jsx)($,{label:s,onRemove:o})})}export{Qe as SelectAssistantScreen};
@@ -1 +0,0 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{a as t,l as n,o as r,u as i}from"./local-settings-Bx7FsNo5.js";import{t as a}from"./react-BFJW0bSv.js";var o=e(a(),1);function s(e){if(typeof window>`u`)return null;try{return localStorage.getItem(e)}catch{return null}}function c(e){let r=new Map,i={has:e=>r.has(e),get:e=>r.get(e),drop:e=>r.delete(e),scope:e,clear:()=>r.clear(),write(e,i,a,o){r.delete(e),!n(i,o)&&(r.set(e,a),t(i,o))}};return l.push(i),i}var l=[];function u(){for(let e of l)e.scope===`user`&&e.clear()}var d=``;function f(e,t){let n=new Map;return function(r){let i=e(r),a=n.get(r);if(a!==void 0&&a.raw===i)return a.value;let o=t(i);return n.set(r,{raw:i,value:o}),o}}function p(e){return e===`true`?!0:e===`false`?!1:null}function m(e){let{key:t,scope:n,parse:a,serialize:l,fallback:u}=e,f,p=u,m=c(n);function h(){if(m.has(d))return m.get(d);let e=s(t);if(e===f)return p;if(f=e,e===null)return p=u,u;try{let t=a(e);p=t===null?u:t}catch{p=u}return p}function g(e){m.write(d,t,e,l(e))}function _(){m.drop(d),r(t)}function v(e){return i(t,e)}function y(){return h()}function b(){return u}function x(){return(0,o.useSyncExternalStore)(v,y,b)}return{load:h,save:g,remove:_,key:t,scope:n,useValue:x}}function h(e){let{keyFn:t,scope:n,parse:a,serialize:l,fallback:u}=e;function d(e){if(e===null)return u;try{let t=a(e);return t===null?u:t}catch{return u}}let p=c(n);function m(e){return p.has(e)?p.get(e):d(s(t(e)))}function h(e,n){p.write(e,t(e),n,l(n))}function g(e){p.drop(e),r(t(e))}let _=f(e=>s(t(e)),d);function v(e){return p.has(e)?p.get(e):_(e)}function y(e){return(0,o.useSyncExternalStore)((0,o.useCallback)(n=>i(t(e),n),[e]),(0,o.useCallback)(()=>v(e),[e]),()=>u)}return{load:m,save:h,remove:g,keyFn:t,scope:n,useValue:y}}function g(e){let{keyFn:t,scope:n,parseValue:a,fallback:l,maxEntries:u}=e;function d(e){try{let t=JSON.parse(e);if(!t||typeof t!=`object`||Array.isArray(t))return null;let n={};for(let[e,r]of Object.entries(t)){let t=a(r);t!==null&&(n[e]=t)}return n}catch{return null}}let p=c(n);function m(e,n){p.write(e,t(e),n,JSON.stringify(n))}function h(e){if(p.has(e))return{...p.get(e)};let n=s(t(e));return n===null?{...l}:d(n)??{...l}}function g(e,t){return h(e)[t]}function _(e,t,n){let r=h(e);if(r[t]=n,u!==void 0){let t=Object.entries(r);if(t.length>u){let n=t.slice(t.length-u),r={};for(let[e,t]of n)r[e]=t;m(e,r);return}}m(e,r)}function v(e,t){let n=h(e);delete n[t],m(e,n)}function y(e){p.drop(e),r(t(e))}let b=f(e=>s(t(e)),e=>e===null?l:d(e)??l);function x(e){return p.has(e)?p.get(e):b(e)}function S(e){return(0,o.useSyncExternalStore)((0,o.useCallback)(n=>i(t(e),n),[e]),(0,o.useCallback)(()=>x(e),[e]),()=>l)}return{load:h,get:g,set:_,deleteEntry:v,remove:y,keyFn:t,scope:n,useValue:S}}export{p as a,m as i,h as n,g as r,u as t};
@@ -1 +0,0 @@
1
- import{r as e}from"./utils-CAZUrJMu.js";var t=`0.10.8`;function n(n){return e(t,n)}export{n as t};
@@ -1 +0,0 @@
1
- import{r as e,s as t,t as n}from"./utils-CAZUrJMu.js";var r=`0.12.0`;function i(t){return e(r,t)}async function a(e){return await t(e),n(r,e)}export{i as n,a as t};
@@ -1 +0,0 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{L as n,t as r}from"./use-transcript-messages-BAG92dqc.js";var i=e(t(),1);function a(e){let t=r();return(0,i.useMemo)(()=>{if(e)return t.find(t=>n(t).includes(e))},[t,e])}export{a as t};