@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,2 +1,2 @@
1
1
  const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/web-CXS_l-lJ.js","assets/dist-Br0LBu8Y.js"])))=>i.map(i=>d[i]);
2
- 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{t as i}from"./preload-helper-Cv2QeVDK.js";import{t 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"./useMutation-CXGTrp4W.js";import{t as l}from"./jsx-runtime-D3ZM-ToX.js";import{t as u}from"./createLucideIcon-C1mdGPB9.js";import{t as d}from"./circle-alert-De9q5FVd.js";import{t as f}from"./circle-check-q8BVdbgw.js";import{t as ee}from"./cloud-off-DyOAnFan.js";import{t as te}from"./info-CXkwGlN_.js";import{t as p}from"./loader-circle-DOtGXcds.js";import{t as m}from"./moon-D9N1oSgM.js";import{t as h}from"./refresh-cw-DV6tvYxO.js";import{t as g}from"./triangle-alert-CB4pJgCL.js";import{t as _}from"./wrench-BIRk4-Cp.js";import{n as v}from"./toast-BpuLSxyt.js";import{t as y}from"./confirm-dialog-zx8L9sUi.js";import{n as b,t as ne}from"./create-selectors-DBgi9gD3.js";import{W as re,h as x,z as ie}from"./local-mode-BfEgOekp.js";import{t as S}from"./is-electron-BHXrkjI3.js";import{n as C,t as w}from"./resolved-assistants-store-BFI9c7ip.js";import{t as T}from"./assistant-identity-store-nE-e8KQw.js";import{_t as E,lt as ae,rt as D,tt as oe}from"./auth-store-CPVpJ_c7.js";import{N as O,Q as k,k as A}from"./sdk.gen-DKYWIHI7.js";import{n as j}from"./event-bus-Cy8AzL-G.js";import{t as M}from"./client-feature-flag-store-C8ieIAKe.js";import{O as se}from"./platform-detection-C_TK32Dw.js";import{i as N,t as P}from"./dist-Br0LBu8Y.js";import{d as F}from"./routes-iipg2wkc.js";import{i as I,t as ce}from"./use-platform-gate-DBRG0Q26.js";import{r as L}from"./use-is-org-ready-BTUeuhPi.js";import{o as R}from"./diagnostics-6dSlxnyU.js";import{t as z}from"./use-bus-subscription-0lId9jya.js";import{C as B,O as le,k as ue,yt as V}from"./react-query.gen-DKb3mEwJ.js";import{t as H}from"./misc-Z0jXGGeY.js";import{a as de,i as U,n as W,o as fe,r as G,s as pe,t as me}from"./local-runtime-upgrade-12Yco-XF.js";var he=u(`wifi-off`,[[`path`,{d:`M12 20h.01`,key:`zekei9`}],[`path`,{d:`M8.5 16.429a5 5 0 0 1 7 0`,key:`1bycff`}],[`path`,{d:`M5 12.859a10 10 0 0 1 5.17-2.69`,key:`1dl1wf`}],[`path`,{d:`M19 12.859a10 10 0 0 0-2.007-1.523`,key:`4k23kn`}],[`path`,{d:`M2 8.82a15 15 0 0 1 4.177-2.643`,key:`1grhjp`}],[`path`,{d:`M22 8.82a15 15 0 0 0-11.288-3.764`,key:`z3jwby`}],[`path`,{d:`m2 2 20 20`,key:`1ooewy`}]]),K=e(n(),1),q=ne(b()((e,t)=>({isConnected:!1,setConnected:n=>{t().isConnected!==n&&e({isConnected:n})}}))),ge=()=>q.getState().isConnected;function _e(e){return S()?window.vellum?.connectivity?.onState(e)??(()=>void 0):()=>void 0}function J(e){S()&&window.vellum?.connectivity?.setDevice(e)}async function Y(e){if(!S())return null;try{return await e()??null}catch{return null}}function ve(){return Y(()=>window.vellum?.connectivity?.get())}function X(){return Y(()=>window.vellum?.connectivity?.retry())}var ye=5e3,be=3e4,xe=1e3,Se=3e4;function Ce(e){return typeof e!=`number`||!Number.isFinite(e)||e<=0?ye:Math.min(Se,Math.max(xe,e))}function we({assistantState:e,activeAssistantIsPlatformHosted:t,targetIsKnownPlatformHostedAssistant:n,targetIsLifecycleOperationAssistant:r}){return r||n||e.kind===`active`&&t}var Te=new Map;function Ee(e,t){let n=t?`${t.state}:${t.detail_state??``}`:`absent`;Te.get(e)!==n&&(Te.set(e,n),R(`operational_status`,{assistantId:e,state:t?.state??null,detailState:t?.detail_state??null,reason:t?.detail?.reason??null,message:t?.detail?.message??null,healthzOk:t?.runtime?.healthz_ok??null,podPhase:t?.pod?.pod_phase??null,sseConnected:ge()}))}async function De(e,t){let{data:n,error:r,response:i}=await O({path:{id:e},signal:t,throwOnError:!1});if(!i||!i.ok){if(i?.status===403||i?.status===404)return Ee(e,null),null;throw r??Error(`Failed to fetch assistant operational status`)}let a=n??null;return Ee(e,a),a}function Oe(e){let t=I(),n=E.use.assistantState(),r=E.use.operationalStatusAssistantId(),i=C(t=>e?t.assistants.find(t=>t.id===e):void 0),a=ce(),o=L(),c=!!e&&e===r,l=i?.isPlatformHosted===!0&&i.isLocal===!1,u=!!e&&t===`full`&&o&&we({assistantState:n,activeAssistantIsPlatformHosted:a,targetIsKnownPlatformHostedAssistant:l,targetIsLifecycleOperationAssistant:c});return s({queryKey:B({path:{id:u?e:`disabled`}}).queryKey,queryFn:({signal:t})=>De(e,t),enabled:u,retry:!1,staleTime:0,refetchIntervalInBackground:!0,refetchInterval:e=>{if(!u)return!1;let t=e.state.data;return t===null?be:t?.state===`sleeping`?ye:Ce(t?.poll_after_ms)}})}function ke(e){return e?.state===`active`}var Ae=2e3;function je(){let[e,t]=(0,K.useState)(`online`),n=(0,K.useRef)(null),r=(0,K.useCallback)(()=>{n.current&&=(clearTimeout(n.current),null)},[]),i=(0,K.useCallback)(e=>{e&&(r(),t(e))},[r]),a=(0,K.useCallback)(()=>{ve().then(i)},[i]);return z(`app.resume`,a),(0,K.useEffect)(()=>{let e=_e(e=>{if(e===`online`){if(n.current)return;n.current=setTimeout(()=>{n.current=null,t(`online`)},Ae)}else r(),t(e)});return window.addEventListener(`focus`,a),()=>{e(),window.removeEventListener(`focus`,a),r()}},[a,r]),{connectivityState:e,retryConnectivity:(0,K.useCallback)(()=>{X().then(i)},[i])}}var Me=N(`Network`,{web:()=>i(()=>import(`./web-CXS_l-lJ.js`).then(e=>new e.NetworkWeb),__vite__mapDeps([0,1]))});function Ne(){let[e,t]=(0,K.useState)(!0);return(0,K.useEffect)(()=>{if(!P.isNativePlatform())return;let e=!1;Me.getStatus().then(n=>{e||t(n.connected)}).catch(()=>{});let n=Me.addListener(`networkStatusChange`,n=>{e||t(n.connected)});return()=>{e=!0,n.then(e=>e.remove()).catch(()=>{})}},[]),e}var Pe=15e3;function Fe(){let[e,t]=(0,K.useState)(null);return z(`app.resume`,()=>{t(Date.now()+Pe)}),(0,K.useEffect)(()=>{if(e===null)return;let n=e-Date.now();if(n<=0){t(null);return}let r=setTimeout(()=>{t(null)},n);return()=>clearTimeout(r)},[e]),e!==null}var Z=l(),Ie=6e4,Le={info:{container:`bg-[var(--system-info-weak)]`,content:`text-[color:var(--system-info-strong)]`,icon:`text-[color:var(--system-info-strong)]`,action:`[--status-banner-action-color:var(--system-info-strong)]`,DefaultIcon:te},success:{container:`bg-[var(--system-positive-weak)]`,content:`text-[color:var(--system-positive-strong)]`,icon:`text-[color:var(--system-positive-strong)]`,action:`[--status-banner-action-color:var(--system-positive-strong)]`,DefaultIcon:f},warning:{container:`bg-[var(--system-mid-weak)]`,content:`text-[color:var(--system-mid-strong)]`,icon:`text-[color:var(--system-mid-strong)]`,action:`[--status-banner-action-color:var(--system-mid-strong)]`,DefaultIcon:d},error:{container:`bg-[var(--system-negative-weak)]`,content:`text-[color:var(--system-negative-strong)]`,icon:`text-[color:var(--system-negative-strong)]`,action:`[--status-banner-action-color:var(--system-negative-strong)]`,DefaultIcon:g},neutral:{container:`bg-[var(--surface-active)]`,content:`text-[color:var(--content-secondary)]`,icon:`text-[color:var(--content-secondary)]`,action:`[--status-banner-action-color:var(--content-secondary)]`,DefaultIcon:null}},Re={web:`min-h-10 rounded-none px-4 py-[10px]`,electron:`min-h-8 rounded-[6px] px-2 py-[7px]`};function ze({tone:e,title:t,children:n,icon:r,actions:i,placement:a=`web`,className:o,ref:s,...c}){let l=Le[e],u=e===`error`?`alert`:`status`,d=a===`web`?`text-body-medium-default leading-5`:`text-body-small-default leading-[18px]`,f=r===void 0?l.DefaultIcon?(0,Z.jsx)(l.DefaultIcon,{"aria-hidden":`true`}):null:r;return(0,Z.jsxs)(`div`,{...c,ref:s,role:u,"data-slot":`status-banner-notice`,"data-placement":a,"data-tone":e,className:H(`flex w-full shrink-0 items-center justify-between gap-3 overflow-hidden`,`text-[color:var(--content-default)]`,Re[a],l.container,o),children:[(0,Z.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-center gap-2`,children:[f?(0,Z.jsx)(`span`,{className:H(`flex size-3.5 shrink-0 items-center justify-center [&_svg]:size-3.5`,l.icon),children:f}):null,(0,Z.jsxs)(`div`,{className:`min-w-0`,children:[(0,Z.jsx)(`div`,{className:H(`truncate`,l.content,d),children:t}),n?(0,Z.jsx)(`div`,{className:`text-body-small-default leading-4 text-[color:var(--content-secondary)]`,children:n}):null]})]}),i?(0,Z.jsx)(`div`,{className:H(`flex shrink-0 items-center border-l border-[color-mix(in_srgb,var(--status-banner-action-color)_22%,transparent)] text-label-medium-default`,`text-[color:var(--status-banner-action-color)]`,l.action,a===`web`?`gap-2 pl-4 leading-5`:`gap-1.5 pl-2 leading-[18px]`,`[&_[data-slot=button]]:h-auto [&_[data-slot=button]]:border-0 [&_[data-slot=button]]:bg-transparent`,`[&_[data-slot=button]]:-mx-1 [&_[data-slot=button]]:rounded-sm [&_[data-slot=button]]:px-1 [&_[data-slot=button]]:py-0`,`[&_[data-slot=button]]:text-body-small-default`,`[&_[data-slot=button]]:leading-[inherit] [&_[data-slot=button]]:shadow-none`,`[&_[data-slot=button]]:[--vbtn-fg:var(--status-banner-action-color)]`,`[&_[data-slot=button]]:hover:!bg-transparent [&_[data-slot=button]]:hover:!opacity-100`,`[&_[data-slot=button]]:hover:[--vbtn-fg:var(--status-banner-action-color)]`,`[&_[data-slot=button]]:focus-visible:ring-2 [&_[data-slot=button]]:focus-visible:ring-[var(--ring)] [&_[data-slot=button]]:focus-visible:ring-offset-0`),children:i}):null]})}var Q={initializing:`Assistant is initializing`,migrating:`Assistant is migrating`,provisioning:`Assistant is provisioning`,active:`Assistant is healthy`,sleeping:`Assistant is sleeping`,waking:`Assistant is waking`,restarting:`Assistant is restarting`,restoring_backup:`Assistant is restoring a backup`,upgrading_assistant_version:`Assistant is upgrading`,resizing_machine:`Assistant machine is resizing`,resizing_storage:`Assistant storage is resizing`,maintenance_mode:`Assistant is in maintenance mode`,crash_loop:`Assistant fatal error`,unreachable:`Assistant is unreachable`,not_found:`Assistant was not found`,retiring:`Assistant is retiring`},Be={initializing:`Assistant failed to initialize`,migrating:`Assistant migration failed`,provisioning:`Assistant failed to provision`,waking:`Assistant failed to wake`,restarting:`Assistant restart failed`,restoring_backup:`Backup restore failed`,upgrading_assistant_version:`Assistant upgrade failed`,resizing_machine:`Machine resize failed`,resizing_storage:`Storage resize failed`,retiring:`Assistant failed to retire`};function Ve(){return{tone:`warning`,title:Q.maintenance_mode,icon:(0,Z.jsx)(_,{className:`h-4 w-4`,"aria-hidden":`true`})}}function He(){return(0,Z.jsx)(p,{className:`h-4 w-4 animate-spin`,"aria-hidden":`true`})}function Ue(){return(0,Z.jsx)(`span`,{className:`busy-indicator inline-block size-2 rounded-full bg-current`,"aria-hidden":`true`})}function We(e,t){if(!(!e&&!t))return(0,Z.jsxs)(Z.Fragment,{children:[e?qe():null,e&&t?(0,Z.jsx)(`span`,{"aria-hidden":`true`,className:`h-3 w-px bg-[color-mix(in_srgb,var(--status-banner-action-color)_35%,transparent)]`}):null,t?(0,Z.jsx)(r,{variant:`ghost`,size:`compact`,onClick:t,children:`Dismiss`}):null]})}function Ge(e,t,n){if(!e||ke(e))return null;if(e.detail_state===`failed`){let r=Be[e.state];if(r)return{tone:`error`,title:r,children:e.detail?.message??void 0,actions:We(t,n)}}switch(e.state){case`crash_loop`:case`unreachable`:case`not_found`:return{tone:`error`,title:Q[e.state],actions:t?qe():void 0};case`sleeping`:return{tone:`neutral`,title:Q[e.state],icon:(0,Z.jsx)(m,{className:`h-4 w-4`,"aria-hidden":`true`})};case`maintenance_mode`:return Ve();case`upgrading_assistant_version`:case`resizing_machine`:case`resizing_storage`:case`initializing`:case`migrating`:case`provisioning`:return{tone:`info`,title:Q[e.state],icon:He()};case`waking`:return{tone:`info`,title:Q[e.state],icon:Ue()};case`restarting`:case`restoring_backup`:case`retiring`:return{tone:`warning`,title:Q[e.state],icon:He()};default:return{tone:`warning`,title:Q[e.state],icon:He()}}}function Ke(e,t,n,r){if(t&&(e===`sleeping`||e===`unreachable`))return{tone:`neutral`,title:`Your assistant can't be reached`,icon:(0,Z.jsx)(ee,{className:`h-4 w-4`,"aria-hidden":`true`}),children:`The connection to the paired assistant's host is down. Check the host machine and its tunnel.`};switch(e){case`sleeping`:return{tone:r?`error`:`neutral`,title:`Your assistant is asleep`,children:r,icon:(0,Z.jsx)(m,{className:`h-4 w-4`,"aria-hidden":`true`}),actions:n};case`starting`:return{tone:`info`,title:`Your assistant is waking up`,icon:Ue()};case`upgrading`:return{tone:`warning`,title:`Assistant is upgrading`,icon:(0,Z.jsx)(p,{className:`h-4 w-4 animate-spin`,"aria-hidden":`true`})};case`migrating`:return{tone:`info`,title:`Assistant is migrating`,icon:(0,Z.jsx)(p,{className:`h-4 w-4 animate-spin`,"aria-hidden":`true`})};case`crashed`:return{tone:`error`,title:`Your assistant crashed`,children:r,actions:n};case`unreachable`:return{tone:r?`error`:`neutral`,title:`Your assistant is asleep`,icon:(0,Z.jsx)(m,{className:`h-4 w-4`,"aria-hidden":`true`}),children:r,actions:n};case`unhealthy`:return{tone:`warning`,title:`Assistant is unhealthy`};default:return null}}function qe(){return(0,Z.jsx)(r,{asChild:!0,variant:`outlined`,size:`compact`,children:(0,Z.jsx)(a,{to:`${F.settings.debug}?tab=doctor`,children:`Go to Doctor`})})}function $(e){return e===`sleeping`||e===`crashed`||e===`unreachable`}function Je({banner:e,className:t,placement:n}){return(0,Z.jsx)(`div`,{className:H(n===`electron`?`px-4 pt-2`:`px-0 pt-0`,t),children:(0,Z.jsx)(ze,{tone:e.tone,title:e.title,icon:e.icon,actions:e.actions,placement:n,children:e.children})})}function Ye(){let e=S(),n=se(),{connectivityState:i,retryConnectivity:a}=je(),o=Ne(),s=C.use.activeAssistantId(),c=C.use.selectedAssistantId(),l=C.use.assistants(),u=oe.use.currentOrganizationId(),d=E.use.assistantState(),f=E.use.operationalStatusAssistantId(),te=(0,K.useMemo)(()=>{let e=w(l,u).filter(e=>e.isPlatformHosted===!0&&e.isLocal===!1);return e.find(e=>e.id===c)?.id??e[0]?.id??null},[l,u,c]),h=f??s??te,g=(0,K.useMemo)(()=>l.some(e=>e.id===s&&e.isPaired===!0),[l,s]),_=d.kind===`active`&&!d.isLocal&&!!s&&h===s,v=Oe(h),y=ae(),{data:b,isError:ne,refetch:T}=v,[O,k]=(0,K.useState)(!1);(0,K.useEffect)(()=>{b?.state===`sleeping`?k(!0):(b?.state===`active`||b?.state===`crash_loop`||b?.state===`not_found`)&&k(!1)},[b?.state]),(0,K.useEffect)(()=>{if(!O||b?.state!==`unreachable`)return;let e=setTimeout(()=>{k(!1)},6e4);return()=>clearTimeout(e)},[O,b?.state]);let[j,M]=(0,K.useState)(!1);(0,K.useEffect)(()=>{b?.state===`active`?M(!0):(b?.state===`sleeping`||b?.state===`crash_loop`||b?.state===`not_found`)&&M(!1)},[b?.state]),(0,K.useEffect)(()=>{if(!j||b?.state!==`unreachable`)return;let e=setTimeout(()=>{M(!1)},15e3);return()=>clearTimeout(e)},[j,b?.state]);let N=Fe(),[P,F]=(0,K.useState)(null);(0,K.useEffect)(()=>{h&&(b?.state===`restarting`?F(b.detail_state===`failed`?null:h):(b?.state===`active`||b?.state===`sleeping`||b?.state===`not_found`)&&F(null))},[h,b?.state,b?.detail_state]);let I=P!==null&&P===h;(0,K.useEffect)(()=>{if(!I||b?.state!==`crash_loop`)return;let e=setTimeout(()=>{F(null)},6e4);return()=>clearTimeout(e)},[I,b?.state]);let[ce,L]=(0,K.useState)(null),R=(0,K.useRef)(b?.state);(0,K.useEffect)(()=>{let e=R.current;R.current=b?.state,b?.state!==e&&L(null)},[b?.state]);let z=(0,K.useCallback)(()=>{b?.state&&L(b.state)},[b?.state]),[B,le]=(0,K.useState)(!1),[ue,V]=(0,K.useState)(null),[H,de]=(0,K.useState)(!1),[U,W]=(0,K.useState)(!1),[fe,G]=(0,K.useState)(null);(0,K.useEffect)(()=>{if(!U)return;let e=setTimeout(()=>{W(!1)},Ie);return()=>clearTimeout(e)},[U]),(0,K.useEffect)(()=>{(y===`healthy`||y===`unhealthy`||y===`sleeping`)&&W(!1)},[y]),(0,K.useEffect)(()=>{W(!1)},[s]);let pe=(0,K.useCallback)(async()=>{if(!(!h||B)){le(!0),V(null);try{let{response:e}=await A({path:{assistant_id:h},throwOnError:!1});if(!e?.ok)throw Error(`Exit maintenance mode returned non-ok response`);await Promise.allSettled([T(),D.checkAssistant()])}catch(e){t(e,{context:`exit_maintenance_mode_status_banner`}),V(`Failed to exit maintenance mode. Please try again.`)}finally{le(!1)}}},[h,B,T]),me=(0,K.useCallback)(async()=>{if(!(!s||H)){de(!0),W(!0),G(null);try{let e=await re(s);if(!e.ok){W(!1),G(e.error||`Wake failed. Try running vellum wake in your terminal.`);return}await Promise.allSettled([T(),a(),D.checkAssistant()]),D.triggerReachabilityProbe()}catch(e){W(!1),t(e,{context:`wake_local_assistant_status_banner`}),G(`Wake failed. Try running vellum wake in your terminal.`)}finally{de(!1)}}},[s,H,T,a]);if((0,K.useEffect)(()=>{$(y)||G(null)},[y]),e&&i===`device-offline`||!e&&n&&!o)return{tone:`error`,title:`You're offline`,icon:(0,Z.jsx)(he,{className:`h-4 w-4`,"aria-hidden":`true`})};if(!g&&!ie()&&$(y))return{tone:`neutral`,title:`Your assistant runs locally`,icon:(0,Z.jsx)(m,{className:`h-4 w-4`,"aria-hidden":`true`}),children:`Open the Vellum desktop app or run vellum wake in your terminal to start it.`};let q=(H||U)&&!g&&$(y)?`starting`:y,ge=Ke(q,g,!g&&$(q)&&s&&x(s)?(0,Z.jsx)(r,{variant:`outlined`,size:`compact`,leftIcon:H?(0,Z.jsx)(p,{className:`animate-spin`,"aria-hidden":`true`}):void 0,disabled:!s||H,onClick:()=>{me()},children:`Wake up`}):void 0,fe);if(ge)return ge;let _e=d.kind===`active`&&d.isLocal;if(e&&_e&&i===`backend-unreachable`)return{tone:`error`,title:`Trying to reach Vellum…`,icon:(0,Z.jsx)(ee,{className:`h-4 w-4`,"aria-hidden":`true`}),actions:(0,Z.jsx)(r,{variant:`outlined`,size:`compact`,onClick:a,children:`Retry now`})};let J=d.kind===`active`&&d.maintenanceMode?.enabled===!0&&(!b||ke(b));if(ne&&!J&&!N)return{tone:`error`,title:`Assistant status is unavailable`,actions:_?qe():void 0};let Y=b?.state===`unreachable`&&(O||N)?{...b,state:`waking`}:b?.state===`unreachable`&&j?{...b,state:`sleeping`}:b?.state===`crash_loop`&&I?{...b,state:`restarting`}:b,ve=Y?.detail_state===`failed`&&Y.state===ce,X=J?Ve():ve?null:Ge(Y,_,z);return!(b?.state===`maintenance_mode`||J)||!X?X:{...X,tone:ue?`error`:X.tone,children:ue,actions:h?(0,Z.jsx)(r,{variant:`outlined`,size:`compact`,leftIcon:B?(0,Z.jsx)(p,{className:`animate-spin`,"aria-hidden":`true`}):void 0,disabled:B,onClick:()=>{pe()},children:`Resume Assistant`}):void 0}}function Xe({className:e,placement:t=S()?`electron`:`web`}){let n=Ye();return n?(0,Z.jsx)(Je,{banner:n,className:e,placement:t}):null}var Ze=3e3;function Qe({assistantId:e,currentVersion:t,placement:n=`web`,className:i}){let[a,o]=(0,K.useState)(!1),[c,l]=(0,K.useState)(null),u=E(e=>e.assistantState),d=ae(),f=C.use.activeAssistantId(),ee=T.use.version(),te=M.use.previewChannel(),p=e??f,m=t??ee,g=C(e=>p?e.assistants.find(e=>e.id===p):null),_=g?.cloud===`local`,b=g?.isPlatformHosted===!0&&g?.isLocal===!1,ne=g?.runtimeVersion??m??null,re=g?.currentReleaseVersion??m??null,x=_?`local`:b?`platform`:null,{data:S}=Oe(b?p??null:null),w=x===`local`?ne:x===`platform`?re:null,D=_&&g?.isActiveLockfileAssistant===!0,oe=u.kind===`self_hosted`?!u.health||u.health===`healthy`:u.kind===`active`&&u.isLocal?u.reachable!==!1&&(!u.health||u.health===`healthy`):!1,O=!d||d===`healthy`,k=u.kind===`active`&&!u.isLocal&&u.reachable!==!1&&!u.maintenanceMode?.enabled&&(!u.health||u.health===`healthy`)&&(!S||S.state===`active`),A=!!p&&!!w&&!!g?.isLocal&&D&&oe&&O&&ie()||!!p&&!!w&&b&&k,se=U(g?.releaseChannel,te),{data:N,refetch:P}=s({...V({query:x===`platform`?{channel:se}:{stable:!0,limit:100}}),enabled:A,refetchInterval:me,refetchOnReconnect:!0,refetchOnWindowFocus:!0});(0,K.useEffect)(()=>{if(!A)return;let e=()=>{P()},t=[j(`app.resume`,e),j(`power.resume`,e),j(`power.unlock`,e)];return()=>{for(let e of t)e()}},[P,A]);let F=(0,K.useMemo)(()=>x===`platform`?N?.find(e=>e.is_stable!==!1)??N?.[0]:G(N),[x,N])?.version??null,I=p&&F?`${p}:${F}`:null,ce=de(w,F),L=pe({assistantId:p,targetVersion:F??void 0}),R=$e({assistantId:p,targetVersion:F??void 0,shouldStopPolling:S?.detail_state===`failed`}),z=x===`platform`?R.isPending:L.isPending;return(0,K.useEffect)(()=>{if(!p||!F){l(null);return}l(fe(p,F)?`${p}:${F}`:null)},[p,F]),!A||!F||!ce||I!==null&&I===c||z?null:(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`div`,{className:H(n===`electron`?`px-4 pt-2`:`px-0 pt-0`,i),children:(0,Z.jsx)(ze,{tone:`info`,title:`New assistant version available: ${F}`,placement:n,icon:(0,Z.jsx)(h,{"aria-hidden":`true`}),actions:(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(r,{variant:`ghost`,size:`compact`,onClick:()=>o(!0),children:`Update`}),(0,Z.jsx)(`span`,{"aria-hidden":`true`,className:`h-3 w-px bg-[color-mix(in_srgb,var(--status-banner-action-color)_35%,transparent)]`}),(0,Z.jsx)(r,{variant:`ghost`,size:`compact`,onClick:()=>{!p||!F||(W(p,F),l(`${p}:${F}`))},children:`Later`})]})})}),(0,Z.jsx)(y,{open:a,title:`Update assistant runtime`,message:`Update to version ${F}? The assistant will be briefly unavailable during the update.`,confirmLabel:`Update`,onConfirm:async()=>{if(!(!p||!F||!x)){o(!1);try{if(x===`platform`){let e=await R.upgrade();if(e.detail?.includes(`Already on the latest`)){v.warning(e.detail);return}}else await L.upgrade(),v.success(`Update complete. Your assistant is healthy.`,{id:`runtime-upgrade-complete`,tone:`strong`});l(`${p}:${F}`)}catch(e){v.error(e instanceof Error?e.message:`Failed to trigger update. Please try again.`)}}},onCancel:()=>o(!1)})]})}function $e({assistantId:e,targetVersion:t,shouldStopPolling:n=!1}){let r=o(),[i,a]=(0,K.useState)(!1),l=(0,K.useRef)(null),u=c({mutationFn:async()=>{if(!e)throw Error(`No assistant is active.`);let{data:n}=await k({path:{id:e},body:t?{version:t}:{},throwOnError:!0});return n}});return(0,K.useEffect)(()=>{!i||!n||(l.current=null,a(!1))},[i,n]),s({...le({path:{id:e??``}}),enabled:i&&!!e,refetchInterval:e=>{let t=e.state.data?.current_release_version;return t&&l.current&&t===l.current?(queueMicrotask(()=>{e.state.data&&C.getState().upsertFromApi(e.state.data),l.current=null,a(!1),v.success(`Update complete. Your assistant is healthy.`,{id:`runtime-upgrade-complete`,tone:`strong`})}),!1):Ze}}),{isPending:u.isPending||i,upgrade:async()=>{if(!e)throw Error(`No assistant is active.`);let n=await u.mutateAsync();return n.detail?.includes(`Already on the latest`)||(l.current=n.version??t??null,l.current&&a(!0),r.invalidateQueries({queryKey:ue({path:{id:e}})})),n}}}export{_e as a,J as i,Xe as n,q as o,Fe as r,he as s,Qe as t};
2
+ 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{t as i}from"./preload-helper-Cv2QeVDK.js";import{t 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"./useMutation-CXGTrp4W.js";import{t as l}from"./jsx-runtime-D3ZM-ToX.js";import{t as u}from"./createLucideIcon-C1mdGPB9.js";import{t as d}from"./circle-alert-De9q5FVd.js";import{t as f}from"./circle-check-q8BVdbgw.js";import{t as ee}from"./cloud-off-DyOAnFan.js";import{t as te}from"./info-CXkwGlN_.js";import{t as p}from"./loader-circle-DOtGXcds.js";import{t as m}from"./moon-D9N1oSgM.js";import{t as h}from"./refresh-cw-DV6tvYxO.js";import{t as g}from"./triangle-alert-CB4pJgCL.js";import{t as _}from"./wrench-BIRk4-Cp.js";import{n as v}from"./toast-BpuLSxyt.js";import{t as y}from"./confirm-dialog-zx8L9sUi.js";import{n as b,t as ne}from"./create-selectors-DBgi9gD3.js";import{W as re,h as x,z as ie}from"./local-mode-BfEgOekp.js";import{t as S}from"./is-electron-BHXrkjI3.js";import{n as C,t as w}from"./resolved-assistants-store-BFI9c7ip.js";import{t as T}from"./assistant-identity-store-nE-e8KQw.js";import{_t as E,lt as ae,rt as D,tt as oe}from"./auth-store-DkOiOQNx.js";import{N as O,Q as k,k as A}from"./sdk.gen-DKYWIHI7.js";import{n as j}from"./event-bus-Cy8AzL-G.js";import{t as M}from"./client-feature-flag-store-C8ieIAKe.js";import{O as se}from"./platform-detection-C_TK32Dw.js";import{i as N,t as P}from"./dist-Br0LBu8Y.js";import{d as F}from"./routes-iipg2wkc.js";import{i as I,t as ce}from"./use-platform-gate-CdwOyQ8A.js";import{r as L}from"./use-is-org-ready-BmOdacs1.js";import{o as R}from"./diagnostics-6dSlxnyU.js";import{t as z}from"./use-bus-subscription-0lId9jya.js";import{C as B,O as le,k as ue,yt as V}from"./react-query.gen-DKb3mEwJ.js";import{t as H}from"./misc-Z0jXGGeY.js";import{a as de,i as U,n as W,o as fe,r as G,s as pe,t as me}from"./local-runtime-upgrade-DyHUCz7A.js";var he=u(`wifi-off`,[[`path`,{d:`M12 20h.01`,key:`zekei9`}],[`path`,{d:`M8.5 16.429a5 5 0 0 1 7 0`,key:`1bycff`}],[`path`,{d:`M5 12.859a10 10 0 0 1 5.17-2.69`,key:`1dl1wf`}],[`path`,{d:`M19 12.859a10 10 0 0 0-2.007-1.523`,key:`4k23kn`}],[`path`,{d:`M2 8.82a15 15 0 0 1 4.177-2.643`,key:`1grhjp`}],[`path`,{d:`M22 8.82a15 15 0 0 0-11.288-3.764`,key:`z3jwby`}],[`path`,{d:`m2 2 20 20`,key:`1ooewy`}]]),K=e(n(),1),q=ne(b()((e,t)=>({isConnected:!1,setConnected:n=>{t().isConnected!==n&&e({isConnected:n})}}))),ge=()=>q.getState().isConnected;function _e(e){return S()?window.vellum?.connectivity?.onState(e)??(()=>void 0):()=>void 0}function J(e){S()&&window.vellum?.connectivity?.setDevice(e)}async function Y(e){if(!S())return null;try{return await e()??null}catch{return null}}function ve(){return Y(()=>window.vellum?.connectivity?.get())}function X(){return Y(()=>window.vellum?.connectivity?.retry())}var ye=5e3,be=3e4,xe=1e3,Se=3e4;function Ce(e){return typeof e!=`number`||!Number.isFinite(e)||e<=0?ye:Math.min(Se,Math.max(xe,e))}function we({assistantState:e,activeAssistantIsPlatformHosted:t,targetIsKnownPlatformHostedAssistant:n,targetIsLifecycleOperationAssistant:r}){return r||n||e.kind===`active`&&t}var Te=new Map;function Ee(e,t){let n=t?`${t.state}:${t.detail_state??``}`:`absent`;Te.get(e)!==n&&(Te.set(e,n),R(`operational_status`,{assistantId:e,state:t?.state??null,detailState:t?.detail_state??null,reason:t?.detail?.reason??null,message:t?.detail?.message??null,healthzOk:t?.runtime?.healthz_ok??null,podPhase:t?.pod?.pod_phase??null,sseConnected:ge()}))}async function De(e,t){let{data:n,error:r,response:i}=await O({path:{id:e},signal:t,throwOnError:!1});if(!i||!i.ok){if(i?.status===403||i?.status===404)return Ee(e,null),null;throw r??Error(`Failed to fetch assistant operational status`)}let a=n??null;return Ee(e,a),a}function Oe(e){let t=I(),n=E.use.assistantState(),r=E.use.operationalStatusAssistantId(),i=C(t=>e?t.assistants.find(t=>t.id===e):void 0),a=ce(),o=L(),c=!!e&&e===r,l=i?.isPlatformHosted===!0&&i.isLocal===!1,u=!!e&&t===`full`&&o&&we({assistantState:n,activeAssistantIsPlatformHosted:a,targetIsKnownPlatformHostedAssistant:l,targetIsLifecycleOperationAssistant:c});return s({queryKey:B({path:{id:u?e:`disabled`}}).queryKey,queryFn:({signal:t})=>De(e,t),enabled:u,retry:!1,staleTime:0,refetchIntervalInBackground:!0,refetchInterval:e=>{if(!u)return!1;let t=e.state.data;return t===null?be:t?.state===`sleeping`?ye:Ce(t?.poll_after_ms)}})}function ke(e){return e?.state===`active`}var Ae=2e3;function je(){let[e,t]=(0,K.useState)(`online`),n=(0,K.useRef)(null),r=(0,K.useCallback)(()=>{n.current&&=(clearTimeout(n.current),null)},[]),i=(0,K.useCallback)(e=>{e&&(r(),t(e))},[r]),a=(0,K.useCallback)(()=>{ve().then(i)},[i]);return z(`app.resume`,a),(0,K.useEffect)(()=>{let e=_e(e=>{if(e===`online`){if(n.current)return;n.current=setTimeout(()=>{n.current=null,t(`online`)},Ae)}else r(),t(e)});return window.addEventListener(`focus`,a),()=>{e(),window.removeEventListener(`focus`,a),r()}},[a,r]),{connectivityState:e,retryConnectivity:(0,K.useCallback)(()=>{X().then(i)},[i])}}var Me=N(`Network`,{web:()=>i(()=>import(`./web-CXS_l-lJ.js`).then(e=>new e.NetworkWeb),__vite__mapDeps([0,1]))});function Ne(){let[e,t]=(0,K.useState)(!0);return(0,K.useEffect)(()=>{if(!P.isNativePlatform())return;let e=!1;Me.getStatus().then(n=>{e||t(n.connected)}).catch(()=>{});let n=Me.addListener(`networkStatusChange`,n=>{e||t(n.connected)});return()=>{e=!0,n.then(e=>e.remove()).catch(()=>{})}},[]),e}var Pe=15e3;function Fe(){let[e,t]=(0,K.useState)(null);return z(`app.resume`,()=>{t(Date.now()+Pe)}),(0,K.useEffect)(()=>{if(e===null)return;let n=e-Date.now();if(n<=0){t(null);return}let r=setTimeout(()=>{t(null)},n);return()=>clearTimeout(r)},[e]),e!==null}var Z=l(),Ie=6e4,Le={info:{container:`bg-[var(--system-info-weak)]`,content:`text-[color:var(--system-info-strong)]`,icon:`text-[color:var(--system-info-strong)]`,action:`[--status-banner-action-color:var(--system-info-strong)]`,DefaultIcon:te},success:{container:`bg-[var(--system-positive-weak)]`,content:`text-[color:var(--system-positive-strong)]`,icon:`text-[color:var(--system-positive-strong)]`,action:`[--status-banner-action-color:var(--system-positive-strong)]`,DefaultIcon:f},warning:{container:`bg-[var(--system-mid-weak)]`,content:`text-[color:var(--system-mid-strong)]`,icon:`text-[color:var(--system-mid-strong)]`,action:`[--status-banner-action-color:var(--system-mid-strong)]`,DefaultIcon:d},error:{container:`bg-[var(--system-negative-weak)]`,content:`text-[color:var(--system-negative-strong)]`,icon:`text-[color:var(--system-negative-strong)]`,action:`[--status-banner-action-color:var(--system-negative-strong)]`,DefaultIcon:g},neutral:{container:`bg-[var(--surface-active)]`,content:`text-[color:var(--content-secondary)]`,icon:`text-[color:var(--content-secondary)]`,action:`[--status-banner-action-color:var(--content-secondary)]`,DefaultIcon:null}},Re={web:`min-h-10 rounded-none px-4 py-[10px]`,electron:`min-h-8 rounded-[6px] px-2 py-[7px]`};function ze({tone:e,title:t,children:n,icon:r,actions:i,placement:a=`web`,className:o,ref:s,...c}){let l=Le[e],u=e===`error`?`alert`:`status`,d=a===`web`?`text-body-medium-default leading-5`:`text-body-small-default leading-[18px]`,f=r===void 0?l.DefaultIcon?(0,Z.jsx)(l.DefaultIcon,{"aria-hidden":`true`}):null:r;return(0,Z.jsxs)(`div`,{...c,ref:s,role:u,"data-slot":`status-banner-notice`,"data-placement":a,"data-tone":e,className:H(`flex w-full shrink-0 items-center justify-between gap-3 overflow-hidden`,`text-[color:var(--content-default)]`,Re[a],l.container,o),children:[(0,Z.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-center gap-2`,children:[f?(0,Z.jsx)(`span`,{className:H(`flex size-3.5 shrink-0 items-center justify-center [&_svg]:size-3.5`,l.icon),children:f}):null,(0,Z.jsxs)(`div`,{className:`min-w-0`,children:[(0,Z.jsx)(`div`,{className:H(`truncate`,l.content,d),children:t}),n?(0,Z.jsx)(`div`,{className:`text-body-small-default leading-4 text-[color:var(--content-secondary)]`,children:n}):null]})]}),i?(0,Z.jsx)(`div`,{className:H(`flex shrink-0 items-center border-l border-[color-mix(in_srgb,var(--status-banner-action-color)_22%,transparent)] text-label-medium-default`,`text-[color:var(--status-banner-action-color)]`,l.action,a===`web`?`gap-2 pl-4 leading-5`:`gap-1.5 pl-2 leading-[18px]`,`[&_[data-slot=button]]:h-auto [&_[data-slot=button]]:border-0 [&_[data-slot=button]]:bg-transparent`,`[&_[data-slot=button]]:-mx-1 [&_[data-slot=button]]:rounded-sm [&_[data-slot=button]]:px-1 [&_[data-slot=button]]:py-0`,`[&_[data-slot=button]]:text-body-small-default`,`[&_[data-slot=button]]:leading-[inherit] [&_[data-slot=button]]:shadow-none`,`[&_[data-slot=button]]:[--vbtn-fg:var(--status-banner-action-color)]`,`[&_[data-slot=button]]:hover:!bg-transparent [&_[data-slot=button]]:hover:!opacity-100`,`[&_[data-slot=button]]:hover:[--vbtn-fg:var(--status-banner-action-color)]`,`[&_[data-slot=button]]:focus-visible:ring-2 [&_[data-slot=button]]:focus-visible:ring-[var(--ring)] [&_[data-slot=button]]:focus-visible:ring-offset-0`),children:i}):null]})}var Q={initializing:`Assistant is initializing`,migrating:`Assistant is migrating`,provisioning:`Assistant is provisioning`,active:`Assistant is healthy`,sleeping:`Assistant is sleeping`,waking:`Assistant is waking`,restarting:`Assistant is restarting`,restoring_backup:`Assistant is restoring a backup`,upgrading_assistant_version:`Assistant is upgrading`,resizing_machine:`Assistant machine is resizing`,resizing_storage:`Assistant storage is resizing`,maintenance_mode:`Assistant is in maintenance mode`,crash_loop:`Assistant fatal error`,unreachable:`Assistant is unreachable`,not_found:`Assistant was not found`,retiring:`Assistant is retiring`},Be={initializing:`Assistant failed to initialize`,migrating:`Assistant migration failed`,provisioning:`Assistant failed to provision`,waking:`Assistant failed to wake`,restarting:`Assistant restart failed`,restoring_backup:`Backup restore failed`,upgrading_assistant_version:`Assistant upgrade failed`,resizing_machine:`Machine resize failed`,resizing_storage:`Storage resize failed`,retiring:`Assistant failed to retire`};function Ve(){return{tone:`warning`,title:Q.maintenance_mode,icon:(0,Z.jsx)(_,{className:`h-4 w-4`,"aria-hidden":`true`})}}function He(){return(0,Z.jsx)(p,{className:`h-4 w-4 animate-spin`,"aria-hidden":`true`})}function Ue(){return(0,Z.jsx)(`span`,{className:`busy-indicator inline-block size-2 rounded-full bg-current`,"aria-hidden":`true`})}function We(e,t){if(!(!e&&!t))return(0,Z.jsxs)(Z.Fragment,{children:[e?qe():null,e&&t?(0,Z.jsx)(`span`,{"aria-hidden":`true`,className:`h-3 w-px bg-[color-mix(in_srgb,var(--status-banner-action-color)_35%,transparent)]`}):null,t?(0,Z.jsx)(r,{variant:`ghost`,size:`compact`,onClick:t,children:`Dismiss`}):null]})}function Ge(e,t,n){if(!e||ke(e))return null;if(e.detail_state===`failed`){let r=Be[e.state];if(r)return{tone:`error`,title:r,children:e.detail?.message??void 0,actions:We(t,n)}}switch(e.state){case`crash_loop`:case`unreachable`:case`not_found`:return{tone:`error`,title:Q[e.state],actions:t?qe():void 0};case`sleeping`:return{tone:`neutral`,title:Q[e.state],icon:(0,Z.jsx)(m,{className:`h-4 w-4`,"aria-hidden":`true`})};case`maintenance_mode`:return Ve();case`upgrading_assistant_version`:case`resizing_machine`:case`resizing_storage`:case`initializing`:case`migrating`:case`provisioning`:return{tone:`info`,title:Q[e.state],icon:He()};case`waking`:return{tone:`info`,title:Q[e.state],icon:Ue()};case`restarting`:case`restoring_backup`:case`retiring`:return{tone:`warning`,title:Q[e.state],icon:He()};default:return{tone:`warning`,title:Q[e.state],icon:He()}}}function Ke(e,t,n,r){if(t&&(e===`sleeping`||e===`unreachable`))return{tone:`neutral`,title:`Your assistant can't be reached`,icon:(0,Z.jsx)(ee,{className:`h-4 w-4`,"aria-hidden":`true`}),children:`The connection to the paired assistant's host is down. Check the host machine and its tunnel.`};switch(e){case`sleeping`:return{tone:r?`error`:`neutral`,title:`Your assistant is asleep`,children:r,icon:(0,Z.jsx)(m,{className:`h-4 w-4`,"aria-hidden":`true`}),actions:n};case`starting`:return{tone:`info`,title:`Your assistant is waking up`,icon:Ue()};case`upgrading`:return{tone:`warning`,title:`Assistant is upgrading`,icon:(0,Z.jsx)(p,{className:`h-4 w-4 animate-spin`,"aria-hidden":`true`})};case`migrating`:return{tone:`info`,title:`Assistant is migrating`,icon:(0,Z.jsx)(p,{className:`h-4 w-4 animate-spin`,"aria-hidden":`true`})};case`crashed`:return{tone:`error`,title:`Your assistant crashed`,children:r,actions:n};case`unreachable`:return{tone:r?`error`:`neutral`,title:`Your assistant is asleep`,icon:(0,Z.jsx)(m,{className:`h-4 w-4`,"aria-hidden":`true`}),children:r,actions:n};case`unhealthy`:return{tone:`warning`,title:`Assistant is unhealthy`};default:return null}}function qe(){return(0,Z.jsx)(r,{asChild:!0,variant:`outlined`,size:`compact`,children:(0,Z.jsx)(a,{to:`${F.settings.debug}?tab=doctor`,children:`Go to Doctor`})})}function $(e){return e===`sleeping`||e===`crashed`||e===`unreachable`}function Je({banner:e,className:t,placement:n}){return(0,Z.jsx)(`div`,{className:H(n===`electron`?`px-4 pt-2`:`px-0 pt-0`,t),children:(0,Z.jsx)(ze,{tone:e.tone,title:e.title,icon:e.icon,actions:e.actions,placement:n,children:e.children})})}function Ye(){let e=S(),n=se(),{connectivityState:i,retryConnectivity:a}=je(),o=Ne(),s=C.use.activeAssistantId(),c=C.use.selectedAssistantId(),l=C.use.assistants(),u=oe.use.currentOrganizationId(),d=E.use.assistantState(),f=E.use.operationalStatusAssistantId(),te=(0,K.useMemo)(()=>{let e=w(l,u).filter(e=>e.isPlatformHosted===!0&&e.isLocal===!1);return e.find(e=>e.id===c)?.id??e[0]?.id??null},[l,u,c]),h=f??s??te,g=(0,K.useMemo)(()=>l.some(e=>e.id===s&&e.isPaired===!0),[l,s]),_=d.kind===`active`&&!d.isLocal&&!!s&&h===s,v=Oe(h),y=ae(),{data:b,isError:ne,refetch:T}=v,[O,k]=(0,K.useState)(!1);(0,K.useEffect)(()=>{b?.state===`sleeping`?k(!0):(b?.state===`active`||b?.state===`crash_loop`||b?.state===`not_found`)&&k(!1)},[b?.state]),(0,K.useEffect)(()=>{if(!O||b?.state!==`unreachable`)return;let e=setTimeout(()=>{k(!1)},6e4);return()=>clearTimeout(e)},[O,b?.state]);let[j,M]=(0,K.useState)(!1);(0,K.useEffect)(()=>{b?.state===`active`?M(!0):(b?.state===`sleeping`||b?.state===`crash_loop`||b?.state===`not_found`)&&M(!1)},[b?.state]),(0,K.useEffect)(()=>{if(!j||b?.state!==`unreachable`)return;let e=setTimeout(()=>{M(!1)},15e3);return()=>clearTimeout(e)},[j,b?.state]);let N=Fe(),[P,F]=(0,K.useState)(null);(0,K.useEffect)(()=>{h&&(b?.state===`restarting`?F(b.detail_state===`failed`?null:h):(b?.state===`active`||b?.state===`sleeping`||b?.state===`not_found`)&&F(null))},[h,b?.state,b?.detail_state]);let I=P!==null&&P===h;(0,K.useEffect)(()=>{if(!I||b?.state!==`crash_loop`)return;let e=setTimeout(()=>{F(null)},6e4);return()=>clearTimeout(e)},[I,b?.state]);let[ce,L]=(0,K.useState)(null),R=(0,K.useRef)(b?.state);(0,K.useEffect)(()=>{let e=R.current;R.current=b?.state,b?.state!==e&&L(null)},[b?.state]);let z=(0,K.useCallback)(()=>{b?.state&&L(b.state)},[b?.state]),[B,le]=(0,K.useState)(!1),[ue,V]=(0,K.useState)(null),[H,de]=(0,K.useState)(!1),[U,W]=(0,K.useState)(!1),[fe,G]=(0,K.useState)(null);(0,K.useEffect)(()=>{if(!U)return;let e=setTimeout(()=>{W(!1)},Ie);return()=>clearTimeout(e)},[U]),(0,K.useEffect)(()=>{(y===`healthy`||y===`unhealthy`||y===`sleeping`)&&W(!1)},[y]),(0,K.useEffect)(()=>{W(!1)},[s]);let pe=(0,K.useCallback)(async()=>{if(!(!h||B)){le(!0),V(null);try{let{response:e}=await A({path:{assistant_id:h},throwOnError:!1});if(!e?.ok)throw Error(`Exit maintenance mode returned non-ok response`);await Promise.allSettled([T(),D.checkAssistant()])}catch(e){t(e,{context:`exit_maintenance_mode_status_banner`}),V(`Failed to exit maintenance mode. Please try again.`)}finally{le(!1)}}},[h,B,T]),me=(0,K.useCallback)(async()=>{if(!(!s||H)){de(!0),W(!0),G(null);try{let e=await re(s);if(!e.ok){W(!1),G(e.error||`Wake failed. Try running vellum wake in your terminal.`);return}await Promise.allSettled([T(),a(),D.checkAssistant()]),D.triggerReachabilityProbe()}catch(e){W(!1),t(e,{context:`wake_local_assistant_status_banner`}),G(`Wake failed. Try running vellum wake in your terminal.`)}finally{de(!1)}}},[s,H,T,a]);if((0,K.useEffect)(()=>{$(y)||G(null)},[y]),e&&i===`device-offline`||!e&&n&&!o)return{tone:`error`,title:`You're offline`,icon:(0,Z.jsx)(he,{className:`h-4 w-4`,"aria-hidden":`true`})};if(!g&&!ie()&&$(y))return{tone:`neutral`,title:`Your assistant runs locally`,icon:(0,Z.jsx)(m,{className:`h-4 w-4`,"aria-hidden":`true`}),children:`Open the Vellum desktop app or run vellum wake in your terminal to start it.`};let q=(H||U)&&!g&&$(y)?`starting`:y,ge=Ke(q,g,!g&&$(q)&&s&&x(s)?(0,Z.jsx)(r,{variant:`outlined`,size:`compact`,leftIcon:H?(0,Z.jsx)(p,{className:`animate-spin`,"aria-hidden":`true`}):void 0,disabled:!s||H,onClick:()=>{me()},children:`Wake up`}):void 0,fe);if(ge)return ge;let _e=d.kind===`active`&&d.isLocal;if(e&&_e&&i===`backend-unreachable`)return{tone:`error`,title:`Trying to reach Vellum…`,icon:(0,Z.jsx)(ee,{className:`h-4 w-4`,"aria-hidden":`true`}),actions:(0,Z.jsx)(r,{variant:`outlined`,size:`compact`,onClick:a,children:`Retry now`})};let J=d.kind===`active`&&d.maintenanceMode?.enabled===!0&&(!b||ke(b));if(ne&&!J&&!N)return{tone:`error`,title:`Assistant status is unavailable`,actions:_?qe():void 0};let Y=b?.state===`unreachable`&&(O||N)?{...b,state:`waking`}:b?.state===`unreachable`&&j?{...b,state:`sleeping`}:b?.state===`crash_loop`&&I?{...b,state:`restarting`}:b,ve=Y?.detail_state===`failed`&&Y.state===ce,X=J?Ve():ve?null:Ge(Y,_,z);return!(b?.state===`maintenance_mode`||J)||!X?X:{...X,tone:ue?`error`:X.tone,children:ue,actions:h?(0,Z.jsx)(r,{variant:`outlined`,size:`compact`,leftIcon:B?(0,Z.jsx)(p,{className:`animate-spin`,"aria-hidden":`true`}):void 0,disabled:B,onClick:()=>{pe()},children:`Resume Assistant`}):void 0}}function Xe({className:e,placement:t=S()?`electron`:`web`}){let n=Ye();return n?(0,Z.jsx)(Je,{banner:n,className:e,placement:t}):null}var Ze=3e3;function Qe({assistantId:e,currentVersion:t,placement:n=`web`,className:i}){let[a,o]=(0,K.useState)(!1),[c,l]=(0,K.useState)(null),u=E(e=>e.assistantState),d=ae(),f=C.use.activeAssistantId(),ee=T.use.version(),te=M.use.previewChannel(),p=e??f,m=t??ee,g=C(e=>p?e.assistants.find(e=>e.id===p):null),_=g?.cloud===`local`,b=g?.isPlatformHosted===!0&&g?.isLocal===!1,ne=g?.runtimeVersion??m??null,re=g?.currentReleaseVersion??m??null,x=_?`local`:b?`platform`:null,{data:S}=Oe(b?p??null:null),w=x===`local`?ne:x===`platform`?re:null,D=_&&g?.isActiveLockfileAssistant===!0,oe=u.kind===`self_hosted`?!u.health||u.health===`healthy`:u.kind===`active`&&u.isLocal?u.reachable!==!1&&(!u.health||u.health===`healthy`):!1,O=!d||d===`healthy`,k=u.kind===`active`&&!u.isLocal&&u.reachable!==!1&&!u.maintenanceMode?.enabled&&(!u.health||u.health===`healthy`)&&(!S||S.state===`active`),A=!!p&&!!w&&!!g?.isLocal&&D&&oe&&O&&ie()||!!p&&!!w&&b&&k,se=U(g?.releaseChannel,te),{data:N,refetch:P}=s({...V({query:x===`platform`?{channel:se}:{stable:!0,limit:100}}),enabled:A,refetchInterval:me,refetchOnReconnect:!0,refetchOnWindowFocus:!0});(0,K.useEffect)(()=>{if(!A)return;let e=()=>{P()},t=[j(`app.resume`,e),j(`power.resume`,e),j(`power.unlock`,e)];return()=>{for(let e of t)e()}},[P,A]);let F=(0,K.useMemo)(()=>x===`platform`?N?.find(e=>e.is_stable!==!1)??N?.[0]:G(N),[x,N])?.version??null,I=p&&F?`${p}:${F}`:null,ce=de(w,F),L=pe({assistantId:p,targetVersion:F??void 0}),R=$e({assistantId:p,targetVersion:F??void 0,shouldStopPolling:S?.detail_state===`failed`}),z=x===`platform`?R.isPending:L.isPending;return(0,K.useEffect)(()=>{if(!p||!F){l(null);return}l(fe(p,F)?`${p}:${F}`:null)},[p,F]),!A||!F||!ce||I!==null&&I===c||z?null:(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`div`,{className:H(n===`electron`?`px-4 pt-2`:`px-0 pt-0`,i),children:(0,Z.jsx)(ze,{tone:`info`,title:`New assistant version available: ${F}`,placement:n,icon:(0,Z.jsx)(h,{"aria-hidden":`true`}),actions:(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(r,{variant:`ghost`,size:`compact`,onClick:()=>o(!0),children:`Update`}),(0,Z.jsx)(`span`,{"aria-hidden":`true`,className:`h-3 w-px bg-[color-mix(in_srgb,var(--status-banner-action-color)_35%,transparent)]`}),(0,Z.jsx)(r,{variant:`ghost`,size:`compact`,onClick:()=>{!p||!F||(W(p,F),l(`${p}:${F}`))},children:`Later`})]})})}),(0,Z.jsx)(y,{open:a,title:`Update assistant runtime`,message:`Update to version ${F}? The assistant will be briefly unavailable during the update.`,confirmLabel:`Update`,onConfirm:async()=>{if(!(!p||!F||!x)){o(!1);try{if(x===`platform`){let e=await R.upgrade();if(e.detail?.includes(`Already on the latest`)){v.warning(e.detail);return}}else await L.upgrade(),v.success(`Update complete. Your assistant is healthy.`,{id:`runtime-upgrade-complete`,tone:`strong`});l(`${p}:${F}`)}catch(e){v.error(e instanceof Error?e.message:`Failed to trigger update. Please try again.`)}}},onCancel:()=>o(!1)})]})}function $e({assistantId:e,targetVersion:t,shouldStopPolling:n=!1}){let r=o(),[i,a]=(0,K.useState)(!1),l=(0,K.useRef)(null),u=c({mutationFn:async()=>{if(!e)throw Error(`No assistant is active.`);let{data:n}=await k({path:{id:e},body:t?{version:t}:{},throwOnError:!0});return n}});return(0,K.useEffect)(()=>{!i||!n||(l.current=null,a(!1))},[i,n]),s({...le({path:{id:e??``}}),enabled:i&&!!e,refetchInterval:e=>{let t=e.state.data?.current_release_version;return t&&l.current&&t===l.current?(queueMicrotask(()=>{e.state.data&&C.getState().upsertFromApi(e.state.data),l.current=null,a(!1),v.success(`Update complete. Your assistant is healthy.`,{id:`runtime-upgrade-complete`,tone:`strong`})}),!1):Ze}}),{isPending:u.isPending||i,upgrade:async()=>{if(!e)throw Error(`No assistant is active.`);let n=await u.mutateAsync();return n.detail?.includes(`Already on the latest`)||(l.current=n.version??t??null,l.current&&a(!0),r.invalidateQueries({queryKey:ue({path:{id:e}})})),n}}}export{_e as a,J as i,Xe as n,q as o,Fe as r,he as s,Qe as t};
@@ -1,4 +1,4 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{n}from"./QueryClientProvider-CMu7CkQU.js";import{t as r}from"./useQuery-Bz-fbQ-m.js";import{n as i}from"./toast-BpuLSxyt.js";import{n as a,t as o}from"./react-query.gen-DxjuNs-5.js";import{t as s}from"./deploy-store-0HlKHhLJ.js";import{t as c}from"./copy-to-clipboard-DnJHokIa.js";var l=e(t(),1);function u(e,t,{enabled:i=!0}={}){let c=n(),u=i&&e!==``&&t!=null,d=r({...o({path:{assistant_id:e,id:t??``}}),enabled:u}),f=s.use.isDeploying(),p=(0,l.useRef)(f);return(0,l.useEffect)(()=>{let n=p.current&&!f;p.current=f,n&&u&&c.invalidateQueries({queryKey:a({path:{assistant_id:e,id:t??``}})})},[f,u,e,t,c]),{deployedUrl:d.data?.published?d.data.publicUrl??null:null,isLoading:u&&d.isPending}}function d(e){c(e,{errorMessage:`Couldn't copy the link. Open it at ${e}`,onCopied:()=>{i.success(`Link copied`,{description:e,action:{label:`Open`,onClick:()=>window.open(e,`_blank`)}})}})}var f=/^\/v1\/x\//;function p(e){return JSON.stringify(e).replace(/<\//g,`<\\/`).replace(/<!--/g,`<\\!--`)}function m(){return`<script>
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{n}from"./QueryClientProvider-CMu7CkQU.js";import{t as r}from"./useQuery-Bz-fbQ-m.js";import{n as i}from"./toast-BpuLSxyt.js";import{n as a,t as o}from"./react-query.gen-DxjuNs-5.js";import{t as s}from"./deploy-store-OFWDAEgC.js";import{t as c}from"./copy-to-clipboard-DnJHokIa.js";var l=e(t(),1);function u(e,t,{enabled:i=!0}={}){let c=n(),u=i&&e!==``&&t!=null,d=r({...o({path:{assistant_id:e,id:t??``}}),enabled:u}),f=s.use.isDeploying(),p=(0,l.useRef)(f);return(0,l.useEffect)(()=>{let n=p.current&&!f;p.current=f,n&&u&&c.invalidateQueries({queryKey:a({path:{assistant_id:e,id:t??``}})})},[f,u,e,t,c]),{deployedUrl:d.data?.published?d.data.publicUrl??null:null,isLoading:u&&d.isPending}}function d(e){c(e,{errorMessage:`Couldn't copy the link. Open it at ${e}`,onCopied:()=>{i.success(`Link copied`,{description:e,action:{label:`Open`,onClick:()=>window.open(e,`_blank`)}})}})}var f=/^\/v1\/x\//;function p(e){return JSON.stringify(e).replace(/<\//g,`<\\/`).replace(/<!--/g,`<\\!--`)}function m(){return`<script>
2
2
  (function() {
3
3
  var store = {};
4
4
  var storageShim = {
@@ -0,0 +1 @@
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{P as b,a as x,z as S}from"./src-hNk11eS3.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 B,s as V}from"./profile-pickers-ChG4_Gpc.js";import{d as H}from"./routes-iipg2wkc.js";import{F as re,I as ie,L as ae,R as oe,S as se,St as ce,Xt as le,_t as ue,an as de,b as fe,bt as pe,gt as me,in as he,p as ge,u as _e,vt as ve,x as ye,y as be,yt as xe,z as Se}from"./react-query.gen-DxjuNs-5.js";import{n as Ce,t as we}from"./conversation-navigation-DbQqV_fs.js";import{n as Te}from"./use-is-mobile-BP8UePsY.js";import{t as Ee}from"./effective-timezone-CjGPHJlt.js";import{t as De}from"./assistant-feature-flag-store-qYfAdlBG.js";import{t as Oe}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-Dsnf52vg.js";import{n as Ve,t as He}from"./detail-drawer-AKY7keIJ.js";import{r as Ue,t as We}from"./profile-metadata-DgH7VoVU.js";import{t as Ge}from"./page-empty-state-DtjiuvvO.js";var U=e(n(),1),Ke={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`}],qe=[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 Je(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 Ye(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} * * ${Je(e.weekdays).join(`,`)}`;case`monthly`:return e.dayOfMonth===`last`?`${t} ${n} L * *`:`${t} ${n} ${G(e.dayOfMonth,1,28)} * *`}}function Xe(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 Ze(e){let t=[`th`,`st`,`nd`,`rd`],n=e%100;return`${e}${t[(n-20)%10]??t[n]??t[0]}`}function Qe(e){let t=Je(e),n=new Set(t);if(t.length===7)return`every day`;if(t.length===5&&qe.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 $e(e){let t=Xe(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 ${Qe(e.weekdays)} at ${t}`;case`monthly`:return e.dayOfMonth===`last`?`Runs on the last day of every month at ${t}`:`Runs on the ${Ze(G(e.dayOfMonth,1,28))} of every month at ${t}`}}var K=u(),et=[{value:`hourly`,label:`Hourly`},{value:`daily`,label:`Daily`},{value:`weekly`,label:`Weekly`},{value:`monthly`,label:`Monthly`}],tt=Array.from({length:12},(e,t)=>{let n=t+1;return{value:String(n),label:String(n)}}),nt=Array.from({length:12},(e,t)=>{let n=t*5,r=String(n).padStart(2,`0`);return{value:r,label:r}}),rt=[...Array.from({length:28},(e,t)=>{let n=t+1;return{value:String(n),label:Ze(n)}}),{value:`last`,label:`Last day`}],it=[{value:`AM`,label:`AM`},{value:`PM`,label:`PM`}];function at(e,t){let n=e%12;return t===`PM`?n+12:n}function ot(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 st({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)(ct,{assistantId:t,onClose:n,onCreated:r}):null})}function ct({assistantId:e,onClose:t,onCreated:n}){let i=Oe(),[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)(Ke),[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`?Ye(p):w,[d,p,w]),E=(0,U.useMemo)(()=>d===`simple`?$e(p):w||`Enter a cron expression to continue.`,[d,p,w]),D=(0,U.useMemo)(()=>ot(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)(pt,{label:`Repeat`,children:d===`simple`?(0,K.jsx)(lt,{cadence:p,onChange:m}):(0,K.jsx)(ft,{value:h,onChange:g,onUseSimple:()=>f(`simple`)})}),(0,K.jsx)(mt,{summary:E,mono:d===`advanced`&&w.length>0,timezoneLabel:D}),d===`simple`?(0,K.jsx)(`button`,{type:`button`,onClick:()=>{g(e=>e||Ye(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 lt({cadence:e,onChange:t}){return(0,K.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,K.jsx)(S,{items:et,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:nt,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)(dt,{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:rt,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)(ut,{hour24:e.hour24,minute:e.minute,onChange:(n,r)=>t({...e,hour24:n,minute:r})})})]})}function ut({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:tt,value:String(i),onChange:e=>n(at(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:nt,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)(S,{items:it,value:r,onChange:e=>n(at(i,e),t),ariaLabel:`AM or PM`})})]})}function dt({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 ft({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 pt({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 mt({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 ht(e=Ee(),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 gt(e){return e==null?`—`:e<1e3?`${e}ms`:`${(e/1e3).toFixed(1)}s`}var _t=new Intl.NumberFormat(void 0,{style:`currency`,currency:`USD`,minimumFractionDigits:2,maximumFractionDigits:2});function Y(e){return e==null||!Number.isFinite(e)?`—`:_t.format(e)}function vt(e){return`${e.toLocaleString()} ${e===1?`run`:`runs`}`}function yt(e){let t=Math.round(e/6e4);return t>=60&&t%60==0?`Every ${t/60} hr`:`Every ${t} min`}function bt(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 xt(e){return!!e.conversationId&&e.conversationExists===!0&&e.conversationArchivedAt==null}function St(e){return xt(e)?e.conversationId??null:null}function X(e){return typeof e==`string`&&e.length>0}function Ct(e){return e.status===`pending`||e.status===`superseded`}function wt(e){return e.status!==`skipped`&&e.status!==`missed`&&!Ct(e)}var Tt={heartbeat:`system-heartbeat`,consolidation:`system-consolidation`,retrospective:`system-memory-retrospective`};function Et(e){if(e.cronExpression)return e.timezone?`Cron: ${e.cronExpression} (${e.timezone})`:`Cron: ${e.cronExpression}`;let t=yt(e.intervalMs);return e.activeHoursStart!=null&&e.activeHoursEnd!=null&&(t+=` (${e.activeHoursStart}:00–${e.activeHoursEnd}:00)`),t}function Dt(e){return yt(e.intervalMs)}var Ot=`After conversation activity`;function kt(e){return e.status!==`fired`&&e.status!==`cancelled`}function At(e,t){return kt(e)?e.status===`firing`?!1:e.nextRunAt==null||!e.enabled&&e.nextRunAt<=t:!0}function jt(e,t){let n=[],r=[],i=[];for(let a of e)a.isOneShot?At(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 Mt(e,t,n=!0){return{queryKey:[{_id:`schedulesUsagesummaryGet`,path:{assistant_id:e??``},_tz:t}],queryFn:()=>e?Ne(e,ht(t)):Promise.resolve([]),enabled:n,staleTime:1e4}}function Nt(e){return{scheduleId:e,runCount:0,totalEstimatedCostUsd:0,eventCount:0}}function Pt(e,t,n){let r=(t??[]).filter(e=>{let t=e.startedAt??e.createdAt;return wt(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 Ft(e,t,n){let r=!!e&&n?.enabled!==!1,{data:i}=s({...ge({path:{assistant_id:e}}),enabled:r,staleTime:6e4}),{data:a}=s({..._e({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 It(e,n,r){let i=Ft(e,`mainAgent`),[a,o]=(0,U.useState)(!1),s=(0,U.useMemo)(()=>i.key?n.filter(e=>kt(e)&&e.inferenceProfile!==i.key).length:0,[i.key,n]),c=i.label,u=l({mutationFn:t=>je(e,null,t),onSuccess:e=>{o(!1),r(),P.success(e===0?`Every schedule already runs on ${c}.`:`Moved ${e} ${e===1?`schedule`:`schedules`} to ${c}.`)},onError:e=>{t(e,{context:`schedules_rebase_inference_profile`}),P.error(`Failed to move the schedules.`)}});return{defaultProfileLabel:c,offDefaultCount:s,canRebase:s>0,requestRebase:()=>o(!0),dialogProps:{open:a&&i.key!=null,profileLabel:c,offDefaultCount:s,isPending:u.isPending,onConfirm:()=>{i.key&&u.mutate(i.key)},onCancel:()=>o(!1)}}}function Lt({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 Rt({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 zt({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?`--`:vt(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 Bt({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)(zt,{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 Vt({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)(Bt,{name:`Heartbeat`,subtitle:Et(e),enabled:e.enabled,nextRunAt:e.nextRunAt,lastRunAt:e.lastRunAt,usage:r,onClick:l}):null,p?(0,K.jsx)(Bt,{name:`Consolidation`,subtitle:Dt(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)(Bt,{name:`Memory retrospective`,subtitle:Ot,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)(x.Root,{type:`multiple`,children:(0,K.jsxs)(x.Item,{value:`system-jobs`,children:[(0,K.jsxs)(x.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)(x.Content,{children:(0,K.jsx)(`div`,{className:`mt-3`,children:y})})]})})})}var Ht={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 Ut(e){return e.status===`missed`?`Missed while the assistant was offline`:`skipReason`in e&&e.skipReason?`Skipped — ${Ht[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:Ut(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 Wt(e){return e.runs.filter(e=>!Ct(e)).map(e=>Z(e,`heartbeat`))}function Gt(e){return e.runs.map(e=>Z(e,`consolidation`))}function Kt(e){return e.runs.map(e=>Z(e,`retrospective`))}var Q=1e4;function qt(e,t,n,r,i){return e?{status:`loading`}:t?{status:`error`}:{status:`ready`,summary:Pt(n,r,i)}}function Jt(e,n){let r=o(),i={path:{assistant_id:e??``}},{data:a,isLoading:c,isError:l,refetch:u}=s({...re(i),enabled:!!e,staleTime:Q}),{data:d,isLoading:f,isError:p,refetch:m}=s({...be(i),enabled:!!e,staleTime:Q}),{data:h,isLoading:g,isError:_,refetch:v}=s({...me(i),enabled:!!e,staleTime:Q}),y={path:{assistant_id:e??``},query:{limit:100}},{data:b,isLoading:x,isError:S,refetch:C}=s({...Se(y),select:Wt,enabled:!!e&&a!=null,staleTime:Q}),{data:w,isLoading:T,isError:E,refetch:D}=s({...se(y),select:Gt,enabled:!!e&&d?.available===!0,staleTime:Q}),{data:O,isLoading:k,isError:A,refetch:j}=s({...xe(y),select:Kt,enabled:!!e&&h?.available===!0,staleTime:Q}),M=(0,U.useMemo)(()=>ht(n),[n]),ee=(0,U.useMemo)(()=>qt(x,S,Tt.heartbeat,b,M),[b,S,x,M]),N=(0,U.useMemo)(()=>qt(T,E,Tt.consolidation,w,M),[w,E,T,M]),F=(0,U.useMemo)(()=>qt(k,A,Tt.retrospective,O,M),[O,A,k,M]),I=t=>{if(!e)return;let n={heartbeat:{config:re(i).queryKey,runs:Se(y).queryKey,infinite:oe(i)},consolidation:{config:be(i).queryKey,runs:se(y).queryKey,infinite:ye(i)},retrospective:{config:me(i).queryKey,runs:xe(y).queryKey,infinite:ve(i)}}[t];r.invalidateQueries({queryKey:n.config}),r.invalidateQueries({queryKey:n.runs}),r.invalidateQueries({queryKey:n.infinite})},L=de({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=le({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=he({onSuccess:e=>{ie(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 Yt(e){return/^plugin:([^/]+)\//.exec(e??``)?.[1]??null}var Xt=`Default (assistant's main model)`,Zt=`Custom call-site model`;function Qt(e,t){return t?.[e]?.displayName??e}function $t(e,t){if(e==null)return;if(e.provider!=null||e.model!=null)return Zt;let n=e.profile?.trim();return n?`Override (${Qt(n,t)})`:void 0}function en({assistantId:e,pinnedProfile:t,defaultCallSite:n=`mainAgent`,fallbackLabel:r=Xt,respectCallSiteOverride:i=!1}){let a=t==null,{data:o}=s({..._e({path:{assistant_id:e}}),enabled:!!e,staleTime:6e4}),c=(0,U.useMemo)(()=>o?We(o):{},[o]),{label:l}=Ft(e,n,{enabled:a}),u=a&&i?$t(o?.llm?.callSites?.[n],c):void 0,d=t==null?u??(l==null?r:`Default (${l})`):Qt(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 tn(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:B(e),...t?{issue:t}:{},...t===`undispatchable`?{reason:R(e)}:{}}})]}function nn(e,t){let{data:n}=s({..._e({path:{assistant_id:e}}),enabled:!!e,staleTime:6e4}),r=V();return(0,U.useMemo)(()=>tn(n?.llm,t,{requireOwnProviderAndModel:r}),[n?.llm,t,r])}function rn({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:nn(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 an({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 on({schedule:e,assistantId:n,isPast:r}){let i=o(),a=ce({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)(en,{assistantId:n,pinnedProfile:e.inferenceProfile})}):(0,K.jsx)($,{label:`Model profile`,value:(0,K.jsx)(rn,{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 sn({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 cn({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)(sn,{icon:(0,K.jsx)(y,{className:`h-4 w-4`}),value:Y(e.summary.totalEstimatedCostUsd),label:`7 Day Cost`}),(0,K.jsx)(sn,{icon:(0,K.jsx)(T,{className:`h-4 w-4`}),value:vt(e.summary.runCount),label:`7 Day Runs`})]})}function ln(e){return e.exists&&e.archivedAt==null}function un({run:e,index:t,isExpanded:n,disableDirectOpen:r,onOpenConversation:i,onToggleDetails:a}){let o=St(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&&ln(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)(Rt,{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:[gt(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=>ln(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 dn({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)(un,{run:e,index:t,isExpanded:i===e.id,disableDirectOpen:n,onOpenConversation:r,onToggleDetails:e=>a(t=>t===e?null:e)},e.id))})}function fn({schedule:e,assistantId:n,usage:a,isPast:o=!1,isMobile:c,onClose:l,onDeleted:u}){let p=i(),{data:h,isLoading:g}=s({queryKey:pe({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=Yt(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)(an,{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)(on,{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)(Rt,{status:e.lastStatus}),J(e.lastRunAt)]})}):null]})]}),(0,K.jsx)(cn,{usage:a}),(0,K.jsxs)(`section`,{children:[(0,K.jsx)(an,{children:`Recent runs`}),(0,K.jsx)(dn,{runs:h?.runs,isLoading:g,disableDirectOpen:e.mode===`script`,onOpenConversation:e=>we(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(H.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 pn(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:vt(t.runCount)})]})}function mn({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:[pn(r),(0,K.jsx)(g,{className:`h-4 w-4 text-[var(--content-tertiary)]`})]})]})]})}function hn({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=Yt(e.sourceKey);return(0,K.jsx)(mn,{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 gn({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)(hn,{schedule:e,usage:i(e.id),selected:e.id===u,onClick:()=>l(e.id),onToggle:t=>c(e.id,t)},e.id),S=e=>(0,K.jsx)(hn,{schedule:e,usage:i(e.id),selected:e.id===u,onClick:()=>l(e.id)},e.id),C=n.length>0?(0,K.jsx)(x.Root,{type:`single`,collapsible:!0,className:`mt-3`,value:m?`past`:``,onValueChange:e=>h(e===`past`),children:(0,K.jsxs)(x.Item,{value:`past`,children:[(0,K.jsxs)(x.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)(x.Content,{children:(0,K.jsx)(`div`,{className:`pt-1`,children:n.map(S)})})]})}):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)(Ge,{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(S)]}):null,C]}),y?(0,K.jsx)(`div`,{className:`mt-[var(--app-spacing-lg)]`,children:y}):null]})}function _n({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=St(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)(Rt,{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:[gt(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?()=>we(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 vn={heartbeat:`heartbeatAgent`,consolidation:`memoryV2Consolidation`,retrospective:`memoryRetrospective`};function yn({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 bn({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?Et(u):``,_=u?.enabled??!1,v=u?.nextRunAt??null,y=u?.lastRunAt??null,b=n.isHeartbeatRunning,x=n.runHeartbeatNow):e===`consolidation`?(h=`Consolidation`,g=p?Dt(p):``,_=p?.enabled??!1,v=p?.nextRunAt??null,y=p?.lastRunAt??null,b=n.isConsolidationRunning,x=n.runConsolidationNow):(h=`Memory retrospective`,g=Ot,_=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`?ae(F):e===`consolidation`?fe(F):ue(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}),B=bt(L?.pages.map(t=>({runs:t.runs.filter(e=>!Ct(e)).map(t=>Z(t,e))}))),V=B?.find(e=>wt(e)&&e.status!==`running`),re=y??V?.finishedAt??V?.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)(yn,{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)(en,{assistantId:t,defaultCallSite:vn[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(re)})]})]}),D?(0,K.jsx)(k,{tone:`warning`,className:`mt-4`,actions:a?(0,K.jsx)(r,{variant:`outlined`,size:`compact`,onClick:()=>l(`${H.settings.developer}?tab=memory`),children:M?`Open Memory settings`:`Turn on Memory`}):void 0,children:N}):null]}),(0,K.jsx)(_n,{runs:B,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(`${H.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 xn(e){let n=Oe(),[r]=(0,U.useState)(()=>Date.now()),{data:i,isLoading:a,isError:o,refetch:c}=s(Re(e)),{data:l,isLoading:u,isError:d}=s(Mt(e,n,!0)),{recurring:f,oneTime:p,pastOneTime:m}=(0,U.useMemo)(()=>{let e=jt(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)??Nt(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 Sn(){let e=i(),{scheduleId:t}=a(),n=Ae(),r=Te(),o=Oe(),s=xn(n),c=Jt(n,o),l=ke(`memoryOptOut`),u=De.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?H.schedules.detail(t):H.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)(()=>{Ce(e)},[e]),T=It(n,(0,U.useMemo)(()=>[...s.recurring,...s.oneTime,...s.pastOneTime],[s.recurring,s.oneTime,s.pastOneTime]),s.refetch),E=(b?(0,K.jsx)(fn,{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)(bn,{kind:h,assistantId:n,systemTasks:c,canOpenMemorySettings:d,isMobile:r,onClose:()=>g(null)}):null),D=(0,K.jsx)(gn,{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)(Vt,{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)(Lt,{...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)(st,{isOpen:f,assistantId:n,onClose:()=>p(!1),onCreated:()=>{p(!1),s.refetch()}}),O]})}export{Sn as SchedulesPage};
@@ -0,0 +1 @@
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,h as i}from"./chunk-5KNZJZUH-BUqIilZr.js";import{t as a}from"./jsx-runtime-D3ZM-ToX.js";import{t as o}from"./check-DSgjgwlo.js";import{t as s}from"./menu-DKE_-iVc.js";import{t as c}from"./cloud-DqktQX50.js";import{t as l}from"./ellipsis-vertical-eVgdKn9z.js";import{t as u}from"./globe-COk-NH9x.js";import{t as d}from"./laptop-BXuIFbVm.js";import{t as f}from"./link-2-Bm55xvLL.js";import{t as p}from"./plus-DnH9Pjq4.js";import{t as m}from"./notice-C0ifrvvJ.js";import{n as h,t as g}from"./input-DmHXRXaB.js";import{t as _}from"./modal-DI63s9MQ.js";import{t as v}from"./confirm-dialog-zx8L9sUi.js";import{$ as ee,O as te,V as y,W as ne,_ as re,ct as ie,h as ae,m as b,q as oe,t as se,x,z as ce}from"./local-mode-BfEgOekp.js";import{t as le}from"./is-electron-BHXrkjI3.js";import{n as ue}from"./resolved-assistants-store-BFI9c7ip.js";import{X as de,i as fe,n as pe,tt as me}from"./auth-store-DkOiOQNx.js";import{c as S}from"./remote-gateway-session-CgDx1fv1.js";import{t as he}from"./client-feature-flag-store-C8ieIAKe.js";import{c as C,m as ge}from"./platform-detection-C_TK32Dw.js";import{d as w}from"./routes-iipg2wkc.js";import{i as T,n as _e,t as ve}from"./remove-from-device-dialog-C0eaWxwl.js";import{t as ye}from"./use-onboarding-login-BUaNGE_u.js";import{n as be,t as xe}from"./retire-confirm-dialog-B1bvTlHS.js";import{t as Se}from"./onboarding-layout-C534GRct.js";import{i as Ce}from"./format-date-Bi9Bsv-w.js";import{t as we}from"./radio-card-nav-B1BF1G_V.js";import{a as E,i as Te,n as Ee,o as D,t as De}from"./self-hosted-servers-DFgP80iG.js";var O=e(t(),1);async function Oe(e){let t=()=>window.location.assign(`${e.url}${w.assistant}`);if(!C()){t();return}await Ee(e.url)||t()}function ke(e){return E(x()?S():window.location.origin)===e.url}var k=a(),A=`Failed to add the assistant. Please try again.`;function j(e){for(let t of[`/assistant/pair`,`/assistant`])if(e.endsWith(t))return e.slice(0,-t.length);return e}function Ae({open:e,onClose:t,onAdded:r}){let[i,a]=(0,O.useState)(``),[o,s]=(0,O.useState)(!1),[c,l]=(0,O.useState)(null);(0,O.useEffect)(()=>{e&&(a(``),s(!1),l(null))},[e]);let d=()=>{o||t()},f=async()=>{if(!i.trim()||o)return;let e=E(i),t=e===null?null:E(j(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 D.getState().addOrigin({url:t});if(e.ok){r(e.origin);return}l(A)}catch(e){console.error(`addRemoteOriginDialog.add failed`,e),l(A)}s(!1)};return(0,k.jsx)(_.Root,{open:e,onOpenChange:e=>{e||d()},children:(0,k.jsxs)(_.Content,{size:`md`,children:[(0,k.jsxs)(_.Header,{children:[(0,k.jsx)(_.Title,{icon:u,children:`Add a Remote Assistant`}),(0,k.jsx)(_.Description,{children:`Paste the https link your assistant’s pairing page gave you.`})]}),(0,k.jsx)(_.Body,{children:(0,k.jsxs)(`div`,{className:`space-y-4`,children:[(0,k.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,k.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`add-remote-origin-url`,children:`Assistant address`}),(0,k.jsx)(g,{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,k.jsx)(`p`,{className:`text-body-small-default text-[var(--system-negative-strong)]`,children:c})]})}),(0,k.jsxs)(_.Footer,{children:[(0,k.jsx)(n,{variant:`ghost`,onClick:d,disabled:o,children:`Cancel`}),(0,k.jsx)(n,{variant:`primary`,onClick:()=>void f(),disabled:!i.trim()||o,children:o?`Adding…`:`Add`})]})]})})}function je({open:e,initialBundle:t,guidanceMessage:r,onClose:i,onImported:a}){let[o,s]=(0,O.useState)(``),[c,l]=(0,O.useState)(``),[u,d]=(0,O.useState)(!1),[p,v]=(0,O.useState)(null),[ee,te]=(0,O.useState)(null);(0,O.useEffect)(()=>{e&&(s(t??``),l(``),d(!1),v(null),te(null))},[e,t]);let y=()=>{u||i()},ne=async()=>{let e=o.trim();if(!(!e||u)){d(!0),v(null);try{let t=await b(e,c.trim()||void 0);if(!t.ok)v(t.error);else if(t.accessOnly)te(t.assistantId);else{a(t.assistantId);return}}catch(e){console.error(`connectAssistantDialog.import failed`,e),v(`Failed to import the pairing bundle. Please try again.`)}d(!1)}};return ee==null?(0,k.jsx)(_.Root,{open:e,onOpenChange:e=>{e||y()},children:(0,k.jsxs)(_.Content,{size:`md`,children:[(0,k.jsxs)(_.Header,{children:[(0,k.jsx)(_.Title,{icon:f,children:`Connect a Remote Assistant`}),(0,k.jsxs)(_.Description,{children:[`On the assistant’s machine, run`,` `,(0,k.jsx)(`code`,{children:`vellum pair --url https://...`}),` and paste the bundle here.`]})]}),(0,k.jsx)(_.Body,{children:(0,k.jsxs)(`div`,{className:`space-y-4`,children:[r&&(0,k.jsx)(m,{tone:`info`,children:r}),(0,k.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,k.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`connect-assistant-bundle`,children:`Pairing bundle`}),(0,k.jsx)(h,{id:`connect-assistant-bundle`,value:o,onChange:e=>s(e.target.value),placeholder:`eyJnYXRld2F5...`,rows:4,fullWidth:!0,autoFocus:!0})]}),(0,k.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,k.jsx)(`label`,{className:`text-body-small-default text-[var(--content-secondary)]`,htmlFor:`connect-assistant-name`,children:`Name (optional)`}),(0,k.jsx)(g,{id:`connect-assistant-name`,type:`text`,value:c,onChange:e=>l(e.target.value),placeholder:`office-mac`,fullWidth:!0})]}),p&&(0,k.jsx)(`p`,{className:`text-body-small-default text-[var(--system-negative-strong)]`,children:p})]})}),(0,k.jsxs)(_.Footer,{children:[(0,k.jsx)(n,{variant:`ghost`,onClick:y,disabled:u,children:`Cancel`}),(0,k.jsx)(n,{variant:`primary`,onClick:()=>void ne(),disabled:!o.trim()||u,children:u?`Connecting…`:`Connect`})]})]})}):(0,k.jsx)(_.Root,{open:e,onOpenChange:e=>{e||y()},children:(0,k.jsxs)(_.Content,{size:`sm`,children:[(0,k.jsx)(_.Header,{children:(0,k.jsx)(_.Title,{icon:f,children:`Pairing Imported`})}),(0,k.jsx)(_.Body,{children:(0,k.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,k.jsx)(_.Footer,{children:(0,k.jsx)(n,{variant:`primary`,onClick:()=>a(ee),children:`Continue`})})]})})}function Me({open:e,assistantName:t,isPending:r,errorMessage:i,onCancel:a,onRepair:o,onRetire:s}){let[c,l]=(0,O.useState)(`menu`);(0,O.useEffect)(()=>{e&&l(`menu`)},[e]);let u=i?(0,k.jsx)(`span`,{className:`mt-3 block text-body-small-default text-[var(--system-negative-strong)]`,children:i}):null;return c===`confirm-repair`?(0,k.jsx)(v,{open:e,title:`Repair Assistant?`,message:(0,k.jsxs)(k.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:r,onConfirm:o,onCancel:()=>l(`menu`)}):c===`confirm-retire`?(0,k.jsx)(xe,{open:e,isPending:r,extraMessage:u,onConfirm:s,onCancel:()=>l(`menu`)}):(0,k.jsx)(_.Root,{open:e,onOpenChange:e=>{!e&&!r&&a()},children:(0,k.jsxs)(_.Content,{size:`sm`,hideCloseButton:!0,onEscapeKeyDown:e=>{e.preventDefault(),e.stopPropagation(),r||a()},children:[(0,k.jsx)(_.Header,{children:(0,k.jsx)(_.Title,{children:`Can’t Authenticate Assistant`})}),(0,k.jsxs)(_.Body,{children:[(0,k.jsxs)(_.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,k.jsxs)(`div`,{className:`mt-5 flex w-full flex-col gap-2`,children:[(0,k.jsx)(n,{variant:`primary`,fullWidth:!0,disabled:r,onClick:()=>l(`confirm-repair`),children:`Wake & Repair`}),(0,k.jsx)(n,{variant:`dangerOutline`,fullWidth:!0,disabled:r,onClick:()=>l(`confirm-retire`),children:`Retire Assistant`}),(0,k.jsx)(n,{variant:`outlined`,fullWidth:!0,disabled:r,onClick:a,children:`Cancel`})]})]})]})})}function M(e){return e.name?e.name:e.isPaired?`Paired Assistant`:e.isLocal?`Local Assistant`:`Cloud Assistant`}function Ne(e){let t=e.isPaired?ie(e.runtimeUrl):e.isLocal?`On this computer`:`Cloud-hosted`;return e.hatchedAt?`${t} · Created ${Ce(e.hatchedAt)}`:t}function N(e){return new URL(e.url).hostname}function Pe(e){return e.name??N(e)}function P(e){return`origin:${e.url}`}var F=`origin:vellum-cloud`,Fe=[];function Ie(e){let t=new URLSearchParams(e);return t.delete(`register`),t.delete(`name`),t}function I(){let e=r(),[t,a]=i(),o=t.get(`fromLogin`)===`1`,s=t.get(`noAutoSkip`)===`1`,l=le(),d=re(),m=fe(),h=ue.use.assistants(),g=me.use.currentOrganizationId(),_=he.use.assistantSwitcher(),v=he.use.hydrated(),ie=D.use.origins(),b=D.use.hydrated(),x=ge(),S=_?ie:Fe,{loading:C,error:xe,login:Ce,cancel:A}=ye(),[j,Ne]=(0,O.useState)(null),N=_&&j!==null?{url:j,name:`Vellum Cloud`}:null,I=N!==null,L=e=>e.isLocal||e.isPaired||m,R=h.filter(L),Ve=R.length>0||S.length>0||N!==null,z=ce(),He=!m&&z,[B,V]=(0,O.useState)(null),[H,Ue]=(0,O.useState)(!1),[We,Ge]=(0,O.useState)(!1),[Ke,qe]=(0,O.useState)(null),[U,Je]=(0,O.useState)(null),[Ye,W]=(0,O.useState)(!1),[Xe,G]=(0,O.useState)(null),[K,q]=(0,O.useState)(null),[Ze,Qe]=(0,O.useState)(!1),[$e,J]=(0,O.useState)(null),[et,tt]=(0,O.useState)(!1),[Y,nt]=(0,O.useState)(null),[rt,it]=(0,O.useState)(!1),[at,ot]=(0,O.useState)(null),st=T.use.open(),ct=T.use.initialBundle(),lt=T.use.guidanceMessage(),ut=T.use.deepLinkDrainSettled(),X=(0,O.useRef)(!1),dt=!d&&(!v||!_);(0,O.useEffect)(()=>{!d&&v&&!_&&e(w.assistant,{replace:!0})},[d,v,_,e]),(0,O.useEffect)(()=>{_&&(De(),D.getState().hydrate())},[_]),(0,O.useEffect)(()=>{if(!_||!x)return;let e=!1;return Te().then(t=>{e||Ne(t)}),()=>{e=!0}},[_,x]);let Z=(0,O.useRef)(!1);(0,O.useEffect)(()=>{if(!_||Z.current)return;Z.current=!0;let e=t.get(`register`);if(e===null)return;let n=()=>a(Ie,{replace:!0}),r=E(e);if(r===null){n();return}D.getState().addOrigin({url:r,name:t.get(`name`)??void 0}).then(e=>{e.ok?n():Z.current=!1}).catch(()=>{Z.current=!1})},[_,t,a]),(0,O.useEffect)(()=>{if(B===F&&I||B!=null&&S.some(e=>P(e)===B))return;if(R.length===0){let e=S[0],t=e?P(e):I?F:null;B!==t&&V(t);return}if(B!=null&&R.some(e=>e.id===B))return;let e=de(g);V(R.find(t=>t.id===e)?.id??R[0].id)},[B,R,g,S,I]);let Q=async t=>{Ue(!0),qe(null);try{t.isPaired?await pe.getState().connectPairedAssistant(t.id):t.isLocal?await pe.getState().connectLocalAssistant(t.id):await pe.getState().connectPlatformAssistant(t.id),e(w.assistant,{replace:!0})}catch(e){console.error(`selectAssistant.handleConnect failed`,e),t.isLocal&&ce()&&(y(e)||ee(e)||e instanceof se)&&ae(t.id)?Je(t):t.isPaired&&y(e)?qe(`This pairing has expired. Run vellum pair on the assistant's machine and import it again with vellum connect import.`):qe(`Failed to connect. Please try again.`),Ue(!1)}},ft=()=>{Je(null),W(!1),G(null),Ge(!1)},pt=async()=>{if(!(!U||Ye)){W(!0),G(null);try{let e=await ne(U.id,{repairGuardian:!0});if(e.ok){oe(),ft(),Q(U);return}G(e.error||`Repair failed. Please try again.`)}catch(e){console.error(`selectAssistant.recoveryRepair failed`,e),G(`Repair failed. Please try again.`)}W(!1)}},mt=async()=>{if(!(!U||Ye)){W(!0),G(null);try{let t=await be(U.id);if(t.ok){ft(),e(t.nextRoute,{replace:!0});return}G(t.error)}catch(e){console.error(`selectAssistant.recoveryRetire failed`,e),G(`Failed to retire assistant. Please try again.`)}W(!1)}},ht=()=>{Ze||(q(null),J(null))},gt=async()=>{if(!(!K||Ze)){if(Qe(!0),J(null),K.isPaired){let e=await _e(K.id);e.ok?(X.current=!0,q(null)):J(e.error),Qe(!1);return}try{let e=await te(K.id);if(e.ok){let e=ue.getState();e.activeAssistantId===K.id&&e.setActiveAssistantId(null),X.current=!0,q(null)}else J(e.error??`Failed to remove. Please try again.`)}catch(e){console.error(`selectAssistant.removeFromDevice failed`,e),J(`Failed to remove. Please try again.`)}Qe(!1)}},_t=()=>{rt||(nt(null),ot(null))},vt=async()=>{!Y||rt||(it(!0),ot(null),await D.getState().removeOrigin(Y.url),D.getState().origins.some(e=>e.url===Y.url)?ot(`Failed to remove. Please try again.`):(X.current=!0,nt(null)),it(!1))},yt=e=>{T.getState().closeConnectDialog(),Q(ue.getState().assistants.find(t=>t.id===e)??{id:e,isLocal:!1,isPlatformHosted:!1,isPaired:!0})},bt=e=>{tt(!1),Oe(e)};(0,O.useEffect)(()=>{o||s||X.current||d&&v&&(_&&!b||S.length>0||l&&!ut||H||We||st||h.length!==0&&h.length===1&&R.length===1&&(Ge(!0),Q(R[0])))},[h.length,R.length,ut,d,S.length,_,v,b]);let xt=()=>{if(B===F){Ee(null).then(e=>{!e&&j!==null&&window.location.assign(j)});return}let t=S.find(e=>P(e)===B);if(t){ke(t)?e(w.assistant,{replace:!0}):Oe(t);return}let n=h.find(e=>e.id===B);n&&Q(n)},St=()=>{e(d?w.welcome:w.assistant)},$=xe??Ke;return dt||We&&!$&&!U?(0,k.jsx)(Le,{}):(0,k.jsxs)(Se,{children:[(0,k.jsx)(`div`,{className:`mx-auto flex w-full max-w-xl flex-col items-center ${l?`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,k.jsxs)(`div`,{className:`flex w-full flex-col items-center ${l?``:`flex-1 justify-center`}`,children:[(0,k.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`}),$&&(0,k.jsx)(`p`,{className:`mt-4 text-body-small-default text-[var(--system-negative-strong)]`,children:$}),(0,k.jsxs)(`div`,{role:`radiogroup`,"aria-label":`Assistants`,onKeyDown:we,className:`flex w-full flex-col ${l?`mt-8 gap-2`:`mt-10 gap-3`}`,style:{animation:`fadeInUp 0.5s ease-out 0.3s both`},children:[h.map(e=>{let t=L(e);return(0,k.jsx)(ze,{assistant:e,selected:B===e.id,locked:!t,tabStop:B==null?R[0]?.id===e.id:B===e.id,onSelect:()=>{t&&V(e.id)},loginLabel:C?`Cancel`:`Log in to use`,loginDisabled:H,onLogin:!t&&e.isPlatformHosted?C?A:()=>void Ce():void 0,onRemove:e.isPlatformHosted&&He||e.isPaired&&z?()=>q(e):void 0},e.id)}),S.map((e,t)=>{let n=P(e),r=ke(e);return(0,k.jsx)(Be,{origin:e,selected:B===n,current:r,tabStop:B==null?R.length===0&&t===0:B===n,onSelect:()=>V(n),onRemove:r&&x?void 0:()=>nt(e)},e.url)}),N&&(0,k.jsx)(Be,{origin:N,icon:(0,k.jsx)(c,{className:`h-5 w-5`}),selected:B===F,current:!1,tabStop:B==null?R.length===0&&S.length===0:B===F,onSelect:()=>V(F)}),d&&(0,k.jsx)(Re,{icon:(0,k.jsx)(p,{className:`h-4 w-4`}),label:`Create a new assistant`,disabled:H||C,onClick:()=>void e(`${w.onboarding.hosting}?from=select-assistant`)}),z&&(0,k.jsx)(Re,{icon:(0,k.jsx)(f,{className:`h-4 w-4`}),label:`Connect a remote assistant`,disabled:H||C,onClick:()=>T.getState().openConnectDialog()}),_&&!z&&(0,k.jsx)(Re,{icon:(0,k.jsx)(u,{className:`h-4 w-4`}),label:`Add a remote assistant`,disabled:H||C,onClick:()=>tt(!0)})]}),Ve&&(0,k.jsx)(`div`,{className:`mt-8 w-full`,style:{animation:`fadeInUp 0.5s ease-out 0.4s both`},children:(0,k.jsx)(n,{variant:`primary`,size:`regular`,fullWidth:!0,className:l?void 0:`h-11 text-base`,onClick:xt,disabled:!B||H,children:H?`Connecting…`:`Continue`})}),(0,k.jsx)(`div`,{className:Ve?`mt-3`:`mt-8`,style:{animation:`fadeInUp 0.5s ease-out 0.5s both`},children:(0,k.jsx)(n,{variant:`ghost`,size:`regular`,className:`text-[var(--content-tertiary)]`,onClick:St,disabled:H||C,children:`Back`})})]})}),(0,k.jsx)(Ae,{open:et,onClose:()=>tt(!1),onAdded:bt}),(0,k.jsx)(je,{open:st,initialBundle:ct??void 0,guidanceMessage:lt??void 0,onClose:()=>T.getState().closeConnectDialog(),onImported:yt}),(0,k.jsx)(Me,{open:U!=null,assistantName:U?M(U):``,isPending:Ye,errorMessage:Xe??void 0,onCancel:ft,onRepair:()=>void pt(),onRetire:()=>void mt()}),(0,k.jsx)(ve,{open:K!=null,kind:K?.isPaired?`paired`:`platform`,assistantName:K?M(K):`the assistant`,errorMessage:$e??void 0,isPending:Ze,onConfirm:()=>void gt(),onCancel:ht}),(0,k.jsx)(ve,{open:Y!=null,kind:`origin`,assistantName:Y?Pe(Y):`the assistant`,errorMessage:at??void 0,isPending:rt,onConfirm:()=>void vt(),onCancel:_t})]})}function Le(){return(0,k.jsx)(Se,{children:(0,k.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,k.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Connecting to your assistant…`})})})}function Re({icon:e,label:t,disabled:n,onClick:r}){let i=le();return(0,k.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,k.jsx)(`span`,{className:i?`text-body-small-default`:`text-body-medium-default`,children:t})]})}function L({label:e,onRemove:t}){return(0,k.jsxs)(s.Root,{children:[(0,k.jsx)(s.Trigger,{asChild:!0,children:(0,k.jsx)(n,{variant:`ghost`,size:`regular`,className:`text-[var(--content-tertiary)]`,iconOnly:(0,k.jsx)(l,{}),"aria-label":`Actions for ${e}`})}),(0,k.jsx)(s.Content,{align:`end`,sideOffset:4,children:(0,k.jsx)(s.Item,{onSelect:t,className:`text-[var(--system-negative-strong)] data-[highlighted]:text-[var(--system-negative-strong)]`,children:`Remove from this device…`})})]})}function R({icon:e,title:t,subtitle:n,selected:r,locked:i=!1,tabStop:a,onSelect:s,action:c,removeMenu:l}){let u=le();return(0,k.jsxs)(`div`,{role:i?void 0:`radio`,"aria-checked":i?void 0:r,tabIndex:i?void 0:a?0:-1,onClick:i?void 0:s,onKeyDown:i?void 0:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),s())},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,k.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,k.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,k.jsx)(`span`,{className:`block text-body-medium-default text-[var(--content-default)]`,children:t}),(0,k.jsx)(`span`,{className:`mt-1 block text-[var(--content-tertiary)] ${u?`text-label-medium-default font-normal`:`text-body-small-lighter`}`,children:n})]}),(0,k.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[c,l&&(i?l:(0,k.jsx)(`div`,{onClick:e=>e.stopPropagation(),onKeyDown:e=>e.stopPropagation(),children:l})),!i&&(0,k.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,k.jsx)(o,{className:`h-3 w-3 text-[var(--surface-base)]`,strokeWidth:3})})]})]})}function ze({assistant:e,selected:t,locked:r,tabStop:i,onSelect:a,loginLabel:o,loginDisabled:s,onLogin:l,onRemove:u}){let p=M(e);return(0,k.jsx)(R,{icon:e.isPaired?(0,k.jsx)(f,{className:`h-5 w-5`}):e.isLocal?(0,k.jsx)(d,{className:`h-5 w-5`}):(0,k.jsx)(c,{className:`h-5 w-5`}),title:p,subtitle:Ne(e),selected:t,locked:r,tabStop:i,onSelect:a,action:r&&l?(0,k.jsx)(n,{variant:`primary`,size:`regular`,onClick:l,disabled:s,children:o}):void 0,removeMenu:u&&(0,k.jsx)(L,{label:p,onRemove:u})})}function Be({origin:e,icon:t,selected:n,current:r,tabStop:i,onSelect:a,onRemove:o}){let s=Pe(e);return(0,k.jsx)(R,{icon:t??(0,k.jsx)(u,{className:`h-5 w-5`}),title:s,subtitle:`${r?`Current`:`Remote`} · ${N(e)}`,selected:n,tabStop:i,onSelect:a,removeMenu:o&&(0,k.jsx)(L,{label:s,onRemove:o})})}export{I as SelectAssistantScreen};
@@ -0,0 +1 @@
1
+ import{u as e}from"./local-settings-Bx7FsNo5.js";import{n as t,t as n}from"./create-selectors-DBgi9gD3.js";import{c as r}from"./platform-detection-C_TK32Dw.js";import{i}from"./dist-Br0LBu8Y.js";import{i as a}from"./typed-storage-lk6_tW16.js";var o=`vellum:remembered-origins`;function s(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 c(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 c=s(e);c===null||r.has(c)||(r.add(c),n.push({url:c,...typeof a==`string`&&a!==``?{name:a}:{},addedAt:typeof o==`string`?o:i}))}return n}function l(e){let t=JSON.parse(e);return Array.isArray(t)?c(t):null}var u=a({key:o,scope:`device`,parse:l,serialize:JSON.stringify,fallback:[]}),d={load:async()=>u.load(),save:async e=>{u.save(e)},watch:t=>e(o,t)},f=d,p=null,m=0,h=Promise.resolve(),g=`vellum:remembered-origins:mutate`;async function _(e){let t=typeof navigator>`u`?void 0:navigator.locks;return t?await t.request(g,e):e()}function v(e){let t=()=>_(e),n=h.then(t,t);return h=n.catch(()=>void 0),n}var y=null,b=!1;function x(e){return v(async()=>{try{let t=await f.load();if(e!==m)return;w.getState().hydrated?w.setState({origins:t}):p===null?w.getState().hydrate():b=!0}catch{}})}function S(){y?.();let e=m;y=f.watch?.(()=>void x(e))??null}function C(e){f=e,m+=1,p=null,b=!1,w.setState({hydrated:!1}),S(),w.getState().hydrate()}var w=t()((e,t)=>({origins:[],hydrated:!1,hydrate:()=>(p??=(async()=>{let t=m;await Promise.resolve();try{let n=await f.load();t===m&&(e({origins:n,hydrated:!0}),b&&(b=!1,x(t)))}catch{t===m&&(p=null)}})(),p),addOrigin:async({url:n,name:r})=>{let i=s(n);return i===null?{ok:!1}:v(async()=>{if(await t().hydrate(),!t().hydrated)return{ok:!1};let n=f,a=m,o;try{o=await n.load()}catch{return{ok:!1}}if(a!==m)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===m?(e({origins:d}),{ok:!0,origin:u}):{ok:!1}})},removeOrigin:async n=>{let r=s(n);r!==null&&await v(async()=>{if(await t().hydrate(),!t().hydrated)return;let n=f,i=m,a;try{a=await n.load()}catch{return}if(i!==m)return;let o=a.filter(e=>e.url!==r);if(o.length!==a.length)try{await n.save(o)}catch{return}i===m&&e({origins:o})})}}));S();var T=n(w),E=i(`SelfHostedServers`),D=`1970-01-01T00:00:00.000Z`;async function O(){try{return await E.list()}catch(e){return console.debug(`[self-hosted-servers] bridge unavailable:`,e),null}}var k=`vellum:remembered-origins:native-migrated`;function A(){try{return window.localStorage.getItem(k)===`true`}catch{return!0}}function j(){try{window.localStorage.setItem(k,`true`)}catch{}}async function M(e){if(A())return e;let t=[];try{t=await d.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 E.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 j(),[...e,...i]}function N(){return{load:async()=>{let e=await O();return e===null?d.load():M(c(e.servers,D))},save:async e=>{let t=await O();if(t===null){await d.save(e);return}let n=new Map(c(t.servers,D).map(e=>[e.url,e.name])),r=new Set(e.map(e=>e.url));for(let e of n.keys())r.has(e)||await E.remove({url:e});for(let t of e)(!n.has(t.url)||t.name&&t.name!==n.get(t.url))&&await E.add({url:t.url,...t.name?{name:t.name}:{}})},watch:d.watch}}var P=!1;function F(){P||!r()||(P=!0,C(N()))}async function I(e){if(!r())return!1;try{return await E.switchTo(e===null?{}:{url:e}),!0}catch(e){return console.debug(`[self-hosted-servers] switchTo unavailable:`,e),!1}}async function L(e,t){if(!r())return!1;try{return await E.switchToPath({...e===null?{}:{url:e},path:t}),!0}catch(e){return console.debug(`[self-hosted-servers] switchToPath unavailable:`,e),!1}}async function R(){if(!r())return null;let e=await O();return e===null||!e.activeUrl?null:e.bakedUrl?s(e.bakedUrl):null}export{s as a,R as i,I as n,T as o,L as r,F as t};
@@ -1 +1 @@
1
- import{t as e}from"./jsx-runtime-D3ZM-ToX.js";import{t}from"./cn-DFWryB3N.js";import"./src-BMRW2yQf.js";var n=e();function r({className:e}){return(0,n.jsx)(`div`,{role:`presentation`,className:t(`h-px w-full bg-[var(--border-base)]`,e)})}export{r as t};
1
+ import{t as e}from"./jsx-runtime-D3ZM-ToX.js";import{t}from"./cn-DFWryB3N.js";import"./src-hNk11eS3.js";var n=e();function r({className:e}){return(0,n.jsx)(`div`,{role:`presentation`,className:t(`h-px w-full bg-[var(--border-base)]`,e)})}export{r as t};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{d as n,r,u as i}from"./chunk-5KNZJZUH-BUqIilZr.js";import{t as a}from"./jsx-runtime-D3ZM-ToX.js";import{t as o}from"./use-supports-bookmarks-FmvOAxKu.js";import{t as s}from"./log-in-BkWp0GjS.js";import{t as c}from"./log-out-un0hWR_E.js";import{n as l}from"./resolved-assistants-store-BFI9c7ip.js";import{i as u}from"./auth-store-CPVpJ_c7.js";import{f as d}from"./platform-detection-C_TK32Dw.js";import{d as f}from"./routes-iipg2wkc.js";import{i as p}from"./use-platform-gate-DBRG0Q26.js";import{r as m,t as h}from"./settings-navigation-CHeVLLWI.js";import{t as g}from"./use-onboarding-login-BXw1Fcg3.js";import{t as _}from"./assistant-feature-flag-store-qYfAdlBG.js";import{n as v,t as y}from"./sidebar-tree-aLYbZLvm.js";import{t as b}from"./use-supports-credentials-settings-BGgnzFf0.js";var x=e(t(),1),S=a();function C(){let e=_.use.settingsDeveloperNav(),t=d(),a=l.use.activeAssistantId(),C=o(a),w=b(a),T=p()===`full`?`Billing & Usage`:`Usage`,{pathname:E}=i(),D=n(),O=u(),{login:k}=g(),A=(0,x.useMemo)(()=>h.filter(e=>!(e.id===`notifications`&&!t||e.id===`bookmarks`&&!C||e.id===`credentials`&&!w||e.id===`developer`)).map(e=>e.id===`billing`?{...e,label:T}:e),[t,C,w,T]),j=(0,x.useMemo)(()=>{let t=[];return e&&t.push(...h.filter(e=>e.id===`developer`)),t.push(O?{id:`logout`,label:`Log Out`,icon:c,onSelect:()=>void m(D)}:{id:`login`,label:`Log In`,icon:s,onSelect:()=>void k()}),t},[e,O,D,k]),M=(0,x.useMemo)(()=>{if(E===f.settings.root)return`Settings`;let e=h.find(e=>E===e.href||E.startsWith(e.href+`/`));return e?e.id===`billing`?T:e.label:`Settings`},[E,T]);return(0,S.jsx)(v,{backHref:f.assistant,sidebar:(0,S.jsx)(y,{items:A,bottomItems:j,indexPath:f.settings.root}),title:M,children:(0,S.jsx)(r,{})})}export{C as SettingsLayout};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{d as n,r,u as i}from"./chunk-5KNZJZUH-BUqIilZr.js";import{t as a}from"./jsx-runtime-D3ZM-ToX.js";import{t as o}from"./use-supports-bookmarks-z9pfj1Rm.js";import{t as s}from"./log-in-BkWp0GjS.js";import{t as c}from"./log-out-un0hWR_E.js";import{n as l}from"./resolved-assistants-store-BFI9c7ip.js";import{i as u}from"./auth-store-DkOiOQNx.js";import{f as d}from"./platform-detection-C_TK32Dw.js";import{d as f}from"./routes-iipg2wkc.js";import{i as p}from"./use-platform-gate-CdwOyQ8A.js";import{r as m,t as h}from"./settings-navigation-Cn3KCxOe.js";import{t as g}from"./use-onboarding-login-BUaNGE_u.js";import{t as _}from"./assistant-feature-flag-store-qYfAdlBG.js";import{n as v,t as y}from"./sidebar-tree-BXbcoj07.js";import{t as b}from"./use-supports-credentials-settings-CEPArXBW.js";var x=e(t(),1),S=a();function C(){let e=_.use.settingsDeveloperNav(),t=d(),a=l.use.activeAssistantId(),C=o(a),w=b(a),T=p()===`full`?`Billing & Usage`:`Usage`,{pathname:E}=i(),D=n(),O=u(),{login:k}=g(),A=(0,x.useMemo)(()=>h.filter(e=>!(e.id===`notifications`&&!t||e.id===`bookmarks`&&!C||e.id===`credentials`&&!w||e.id===`developer`)).map(e=>e.id===`billing`?{...e,label:T}:e),[t,C,w,T]),j=(0,x.useMemo)(()=>{let t=[];return e&&t.push(...h.filter(e=>e.id===`developer`)),t.push(O?{id:`logout`,label:`Log Out`,icon:c,onSelect:()=>void m(D)}:{id:`login`,label:`Log In`,icon:s,onSelect:()=>void k()}),t},[e,O,D,k]),M=(0,x.useMemo)(()=>{if(E===f.settings.root)return`Settings`;let e=h.find(e=>E===e.href||E.startsWith(e.href+`/`));return e?e.id===`billing`?T:e.label:`Settings`},[E,T]);return(0,S.jsx)(v,{backHref:f.assistant,sidebar:(0,S.jsx)(y,{items:A,bottomItems:j,indexPath:f.settings.root}),title:M,children:(0,S.jsx)(r,{})})}export{C as SettingsLayout};
@@ -1 +1 @@
1
- import{t as e}from"./bell-aW0w-ROt.js";import{n as t}from"./use-supports-bookmarks-FmvOAxKu.js";import{t as n}from"./bug-CDEs1Scu.js";import{t as r}from"./chart-column-CEHOik7U.js";import{t as i}from"./code-DwZ6Mhdw.js";import{t as a}from"./cpu-mDttg6J1.js";import{t as o}from"./key-round-B-C1Qgxd.js";import{t as s}from"./mic-bZFqVBA_.js";import{t as c}from"./puzzle-CIWAeBs0.js";import{t as l}from"./shield-check-zaoUwOKj.js";import{t as u}from"./sliders-horizontal-Dd2oGqSf.js";import{t as d}from"./users-XI0CRYkf.js";import{t as f}from"./volume-2-CyoXrHNM.js";import{_ as p,g as m,n as h}from"./local-mode-BfEgOekp.js";import{t as g}from"./is-electron-BHXrkjI3.js";import{n as _}from"./auth-store-CPVpJ_c7.js";import{A as v}from"./platform-detection-C_TK32Dw.js";import{d as y}from"./routes-iipg2wkc.js";import"./navigation-resolver-DrNVOkMu.js";import"./build-state-DGpOoR0F.js";import{t as b}from"./hard-navigate-BrsAH6PB.js";function x(){return p()?y.welcome:y.onboarding.privacy}function S(e){g()&&window.vellum?.identity?.setName(e)}async function C(e){if(p()){let t=h();if(t&&m(t)){await v(!1),_.setState({platformSession:`absent`});return}await v(!1),await _.getState().logout(),e(x())}else await _.getState().logout(),S(``),b(y.account.login)}var w=[{id:`assistant-status`,label:`General`,href:y.settings.general,icon:u},{id:`model`,label:`Models & Services`,href:y.settings.ai,icon:a},{id:`integrations`,label:`Integrations`,href:y.settings.integrations,icon:c},{id:`credentials`,label:`Credentials`,href:y.settings.credentials,icon:o},{id:`notifications`,label:`Notifications`,href:y.settings.notifications,icon:e},{id:`voice`,label:`Voice`,href:y.settings.voice,icon:s},{id:`sounds`,label:`Sounds`,href:y.settings.sounds,icon:f},{id:`privacy`,label:`Permissions & Privacy`,href:y.settings.privacy,icon:l},{id:`bookmarks`,label:`Bookmarks`,href:y.settings.bookmarks,icon:t},{id:`billing`,label:`Usage`,href:y.settings.usage,icon:r},{id:`community`,label:`Community`,href:y.settings.community,icon:d},{id:`debug`,label:`Debug`,href:y.settings.debug,icon:n},{id:`developer`,label:`Developer`,href:y.settings.developer,icon:i}],T={developer:`debug`,advanced:`debug`,model:`model`,privacy:`privacy`,security:`assistant-status`,"voice & sounds":`voice`,"voice and sounds":`voice`,devices:`assistant-status`,"self-hosted assistants":`assistant-status`},E={"keyboard-shortcuts":`${y.settings.general}?preferences=open`,"keyboard shortcuts":`${y.settings.general}?preferences=open`,services:y.settings.ai,"text-to-speech":y.settings.ai,"speech-to-text":y.settings.ai,archive:`${y.settings.debug}?tab=archive`,billing:y.settings.usageBilling,"billing & usage":y.settings.usageBilling,usage:`${y.settings.usage}?tab=usage`};function D(e){return e.trim().toLowerCase()}function O(e){let t=D(e),n=E[t];if(n)return n;let r=T[t];if(r){let e=w.find(e=>e.id===r);if(e)return e.href}return w.find(e=>D(e.label)===t||e.id===t)?.href??null}export{S as i,O as n,C as r,w as t};
1
+ import{t as e}from"./bell-aW0w-ROt.js";import{n as t}from"./use-supports-bookmarks-z9pfj1Rm.js";import{t as n}from"./bug-CDEs1Scu.js";import{t as r}from"./chart-column-CEHOik7U.js";import{t as i}from"./code-DwZ6Mhdw.js";import{t as a}from"./cpu-mDttg6J1.js";import{t as o}from"./key-round-B-C1Qgxd.js";import{t as s}from"./mic-bZFqVBA_.js";import{t as c}from"./puzzle-CIWAeBs0.js";import{t as l}from"./shield-check-zaoUwOKj.js";import{t as u}from"./sliders-horizontal-Dd2oGqSf.js";import{t as d}from"./users-XI0CRYkf.js";import{t as f}from"./volume-2-CyoXrHNM.js";import{_ as p,g as m,n as h}from"./local-mode-BfEgOekp.js";import{t as g}from"./is-electron-BHXrkjI3.js";import{n as _}from"./auth-store-DkOiOQNx.js";import{A as v}from"./platform-detection-C_TK32Dw.js";import{d as y}from"./routes-iipg2wkc.js";import"./navigation-resolver-DrNVOkMu.js";import"./build-state-B0f3Jn2o.js";import{t as b}from"./hard-navigate-BrsAH6PB.js";function x(){return p()?y.welcome:y.onboarding.privacy}function S(e){g()&&window.vellum?.identity?.setName(e)}async function C(e){if(p()){let t=h();if(t&&m(t)){await v(!1),_.setState({platformSession:`absent`});return}await v(!1),await _.getState().logout(),e(x())}else await _.getState().logout(),S(``),b(y.account.login)}var w=[{id:`assistant-status`,label:`General`,href:y.settings.general,icon:u},{id:`model`,label:`Models & Services`,href:y.settings.ai,icon:a},{id:`integrations`,label:`Integrations`,href:y.settings.integrations,icon:c},{id:`credentials`,label:`Credentials`,href:y.settings.credentials,icon:o},{id:`notifications`,label:`Notifications`,href:y.settings.notifications,icon:e},{id:`voice`,label:`Voice`,href:y.settings.voice,icon:s},{id:`sounds`,label:`Sounds`,href:y.settings.sounds,icon:f},{id:`privacy`,label:`Permissions & Privacy`,href:y.settings.privacy,icon:l},{id:`bookmarks`,label:`Bookmarks`,href:y.settings.bookmarks,icon:t},{id:`billing`,label:`Usage`,href:y.settings.usage,icon:r},{id:`community`,label:`Community`,href:y.settings.community,icon:d},{id:`debug`,label:`Debug`,href:y.settings.debug,icon:n},{id:`developer`,label:`Developer`,href:y.settings.developer,icon:i}],T={developer:`debug`,advanced:`debug`,model:`model`,privacy:`privacy`,security:`assistant-status`,"voice & sounds":`voice`,"voice and sounds":`voice`,devices:`assistant-status`,"self-hosted assistants":`assistant-status`},E={"keyboard-shortcuts":`${y.settings.general}?preferences=open`,"keyboard shortcuts":`${y.settings.general}?preferences=open`,services:y.settings.ai,"text-to-speech":y.settings.ai,"speech-to-text":y.settings.ai,archive:`${y.settings.debug}?tab=archive`,billing:y.settings.usageBilling,"billing & usage":y.settings.usageBilling,usage:`${y.settings.usage}?tab=usage`};function D(e){return e.trim().toLowerCase()}function O(e){let t=D(e),n=E[t];if(n)return n;let r=T[t];if(r){let e=w.find(e=>e.id===r);if(e)return e.href}return w.find(e=>D(e.label)===t||e.id===t)?.href??null}export{S as i,O as n,C as r,w as t};
@@ -1,2 +1,2 @@
1
1
  const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/esm-RwtNn1Lo.js","assets/preload-helper-Cv2QeVDK.js","assets/dist-Br0LBu8Y.js"])))=>i.map(i=>d[i]);
2
- import{o as e,r as t}from"./chunk-jRWAZmH_.js";import{t as n}from"./react-BFJW0bSv.js";import{W as r,n as i,t as a}from"./button-BENY-yx_.js";import{t as o}from"./preload-helper-Cv2QeVDK.js";import{t as s}from"./useMutation-CXGTrp4W.js";import{t as c}from"./jsx-runtime-D3ZM-ToX.js";import{t as l}from"./bug-CDEs1Scu.js";import{t as u}from"./download-Byg0fi0d.js";import{t as ee}from"./info-CXkwGlN_.js";import{t as d}from"./lightbulb-DqvoPoCk.js";import{t as te}from"./loader-circle-DOtGXcds.js";import{t as ne}from"./mail-CYjppw70.js";import{t as f}from"./message-circle-C6QWfv9m.js";import{t as p}from"./paperclip-CQEdxfSq.js";import{t as re}from"./send-BlX2px_R.js";import{t as m}from"./x-338EsJDP.js";import{t as h}from"./notice-C0ifrvvJ.js";import{n as ie,t as g}from"./input-DmHXRXaB.js";import{t as _}from"./toggle-C-v4x7_A.js";import{t as v}from"./select-B8-i-CZ4.js";import{t as y}from"./is-electron-BHXrkjI3.js";import{n as b}from"./assistant-identity-store-nE-e8KQw.js";import{n as ae}from"./auth-store-CPVpJ_c7.js";import{dn as x}from"./sdk.gen-CBPZ2IdN.js";import{t as S}from"./dist-Br0LBu8Y.js";import{n as C}from"./diagnostics-6dSlxnyU.js";import"./external-urls-EO9DXoFH.js";import{I as oe}from"./react-query.gen-DKb3mEwJ.js";var w=e(n(),1),se=e(r(),1),ce=`vellum:debug:`;function T(){let e={};if(typeof window>`u`)return e;try{for(let t=0;t<window.localStorage.length;t++){let n=window.localStorage.key(t);if(n===null||!n.startsWith(ce))continue;let r=window.localStorage.getItem(n);r!==null&&(e[n]=r)}}catch{}return e}function E(){return{collectedAt:new Date().toISOString(),resolved:{impersonateAssistantVersion:b()},overrides:T()}}var D=t({ShareFeedbackModal:()=>W,dedupeAgainstClientMessages:()=>B,stripBulkBase64:()=>z}),O=c(),k=[{value:`bug_report`,label:`Bug Report`,icon:l,includesLogsByDefault:!0},{value:`feature_request`,label:`Feature Request`,icon:d,includesLogsByDefault:!1},{value:`other`,label:`Other`,icon:f,includesLogsByDefault:!1}],A=[{value:`past_hour`,label:`Past hour`,cutoffMs:3600*1e3},{value:`past_24_hours`,label:`Past 24 hours`,cutoffMs:1440*60*1e3},{value:`all_time`,label:`All time`,cutoffMs:null}],le=A.map(e=>({value:e.value,label:e.label})),j=new Set([`image/png`,`image/jpeg`,`image/gif`,`image/webp`,`video/mp4`,`video/quicktime`,`video/webm`]),M=new Set([`png`,`jpg`,`jpeg`,`gif`,`webp`,`mp4`,`mov`,`webm`]),N=10,P=50*1024*1024,ue={bug_report:`bug_report`,feature_request:`feature_request`,other:`other`};function de(){if(y())return`electron`;let e=S.getPlatform();return e===`ios`||e===`android`?e:`web`}function fe(e){return typeof e==`object`&&!!e&&`client`in e}function pe(e){if(e.size>P)return!1;if(e.type&&j.has(e.type))return!0;if(!e.type){let t=e.name.split(`.`).pop()?.toLowerCase();return t?M.has(t):!1}return!1}var F=8192,I=/^data:([^;,]+);base64,/i,L=/^[A-Za-z0-9+/]+={0,2}$/;function R(e,t,n=new WeakSet){let r=t(e);if(r)return r.replacement;if(typeof e!=`object`||!e)return e;if(n.has(e))return`[cyclic]`;n.add(e);let i;if(Array.isArray(e))i=e.map(e=>R(e,t,n));else{let r={};for(let[i,a]of Object.entries(e))r[i]=R(a,t,n);i=r}return n.delete(e),i}function z(e){return R(e,e=>{if(typeof e!=`string`)return null;let t=I.exec(e);return t?{replacement:`[stripped data URI ${t[1]}, ${e.length} chars]`}:e.length>=F&&L.test(e)?{replacement:`[stripped base64, ${e.length} chars]`}:null})}function B(e,t){if(!Array.isArray(t))return e;let n=new Map;return t.forEach((e,t)=>{if(e&&typeof e==`object`){let r=e.id;n.set(e,typeof r==`string`?r:`index ${t}`)}}),R(e,e=>{if(typeof e!=`object`||!e)return null;let t=n.get(e);return t===void 0?null:{replacement:`[deduplicated: see clientMessages ${t}]`}})}function V(e,t){let n=Math.ceil(t.length/512),r=new Uint8Array(512+n*512),i=new TextEncoder,a=(e,t,n)=>{let a=i.encode(e);r.set(a.slice(0,n),t)},o=(e,t,n)=>{a(e.toString(8).padStart(n-1,`0`)+`\0`,t,n)};a(e,0,100),o(420,100,8),o(0,108,8),o(0,116,8),o(t.length,124,12),o(Math.floor(Date.now()/1e3),136,12);for(let e=148;e<156;e++)r[e]=32;r[156]=48,a(`ustar\0`,257,6),a(`00`,263,2);let s=0;for(let e=0;e<512;e++)s+=r[e];return o(s,148,7),r[155]=32,r.set(t,512),r}async function H(e,t){try{let n={};t.window.startTime!=null&&(n.startTime=t.window.startTime,n.endTime=t.window.endTime),t.activeConversationId&&(n.conversationId=t.activeConversationId);let{data:r,error:i}=await x({path:{assistant_id:e},body:n,parseAs:`blob`,throwOnError:!1});if(i||!(r instanceof Blob))return null;let a=await r.arrayBuffer();return new Uint8Array(a)}catch{return null}}async function U(){if(!S.isNativePlatform())return null;try{let{App:e}=await o(async()=>{let{App:e}=await import(`./esm-RwtNn1Lo.js`);return{App:e}},__vite__mapDeps([0,1,2])),{id:t,name:n,version:r,build:i}=await e.getInfo();return{id:t,name:n,version:r,build:i}}catch{return null}}async function me(e,t,n,r={}){if(typeof CompressionStream>`u`)return null;let{diagnosticsProvider:i,doctorSessionId:a,extraLogFiles:o=[]}=r,s=new Date,c=A.find(t=>t.value===e),l=s.getTime(),u=c?.cutoffMs==null?null:l-c.cutoffMs,ee=u==null?null:new Date(u).toISOString(),d=null;try{d=i?.()??null}catch{d=null}let te=C(d),ne={collected_at:s.toISOString(),time_range:e,cutoff:ee,log_window:{start_time_ms:u,end_time_ms:l},assistant_id:t,active_conversation_id:n,doctor_session_id:a??null,client_version:null,native_app:await U(),user_agent:typeof navigator<`u`?navigator.userAgent:``,language:typeof navigator<`u`?navigator.language:``,platform:typeof navigator<`u`?navigator.platform:``,url:typeof window<`u`?window.location.href:``,viewport:typeof window<`u`?{width:window.innerWidth,height:window.innerHeight}:null,screen:typeof screen<`u`?{width:screen.width,height:screen.height}:null,connection:typeof navigator<`u`&&`connection`in navigator?{effectiveType:navigator.connection.effectiveType,downlink:navigator.connection.downlink,rtt:navigator.connection.rtt}:null,deviceMemory:typeof navigator<`u`&&`deviceMemory`in navigator?navigator.deviceMemory:null,hardwareConcurrency:typeof navigator<`u`?navigator.hardwareConcurrency:null},f=new TextEncoder,p=f.encode(JSON.stringify(ne,null,2)),re=f.encode(JSON.stringify(te,null,2)),m=[V(`web-client-context.json`,p),V(`web-chat-diagnostics.json`,re)],h=new TextEncoder().encode(JSON.stringify(E(),null,2));m.push(V(`web-debug-flags.json`,h));for(let e of o){let t=e.contents.trim();t&&m.push(V(e.filename,f.encode(t)))}try{let e=typeof window<`u`?window._vellumDebug?.chat:null;if(e){let t=e.getClientMessages?.()??null,n={clientMessages:t,transcriptItems:B(e.getTranscriptItems?.()??null,t),pendingInteractions:e.listPendingInteractions?.()??null,thinkingIndicator:e.thinkingIndicator?.()??null,streamingRing:e.streamingRing?.()??null,reconciliationDiagnostics:e.getReconciliationDiagnostics?.()??null},r=new TextEncoder().encode(JSON.stringify(z(n),null,2));m.push(V(`web-chat-debug-api-triage.json`,r))}}catch{}try{let e=typeof window<`u`?window._vellumDebug?.events:null;if(e){let t={focus:typeof document<`u`?{hasFocus:typeof document.hasFocus==`function`?document.hasFocus():null,visibilityState:document.visibilityState}:null,clients:e.getClients().map(({abortSignal:e,...t})=>({...t,aborted:e.aborted})),events:e.getEvents()},n=new TextEncoder().encode(JSON.stringify(z(t),null,2));m.push(V(`web-sse-liveness-triage.json`,n))}}catch{}if(y()&&window.vellum?.feedback){try{let e=await window.vellum.feedback.diagnostics(),t=new TextEncoder().encode(JSON.stringify(e,null,2));m.push(V(`electron-diagnostics.json`,t))}catch{}try{let e=await window.vellum.feedback.logs();if(e){let t=new TextEncoder().encode(e);m.push(V(`electron-main-logs.txt`,t))}}catch{}}if(t){let e=await H(t,{window:{startTime:u,endTime:l},activeConversationId:n});e&&m.push(V(`platform-logs.tar.gz`,e))}m.push(new Uint8Array(1024));let ie=m.reduce((e,t)=>e+t.length,0),g=new Uint8Array(ie),_=0;for(let e of m)g.set(e,_),_+=e.length;let v=new Blob([g.buffer]),b=await new Response(v.stream().pipeThrough(new CompressionStream(`gzip`))).blob();return new File([b],`web-client-logs-${s.getTime()}.tar.gz`,{type:`application/gzip`})}function W({open:e,onClose:t,initialReason:n,initialMessage:r,onSubmitted:o,assistantId:c,assistantVersion:l,activeConversationId:d,doctorSessionId:f,doctorSessionLog:b,getDiagnosticsSnapshot:x}){let S=ae.use.user(),C=S?.email,ce=S?.isStaff??!1,T=(0,w.useId)(),E=(0,w.useRef)(null),D=(0,w.useRef)(null),A=(0,w.useRef)(null),j=(0,w.useRef)(null),[M,P]=(0,w.useState)(n??`bug_report`),[F,I]=(0,w.useState)(``),[L,R]=(0,w.useState)(``),[z,B]=(0,w.useState)(k.find(e=>e.value===(n??`bug_report`))?.includesLogsByDefault??!0),[V,H]=(0,w.useState)(!1),[U,W]=(0,w.useState)(`past_hour`),[G,K]=(0,w.useState)([]),[_e,q]=(0,w.useState)(null),[ve,J]=(0,w.useState)(!1),[Y,ye]=(0,w.useState)(!1),[X,be]=(0,w.useState)(!1),Z=s(oe()),[xe,Q]=(0,w.useState)(!1),$=Z.isPending||xe,Se=!C,Ce=(0,w.useMemo)(()=>F.trim().length>0&&L.trim().length>0,[F,L]);(0,w.useEffect)(()=>{if(!e)return;let t=n??`bug_report`;P(t),I(r??``),R(C??``),B(k.find(e=>e.value===t)?.includesLogsByDefault??!0),H(!1),W(`past_hour`),K([]),ye(!1),be(!1),q(null),Q(!1),Z.reset();let i=setTimeout(()=>{C?A.current?.focus():j.current?.focus()},50);return()=>clearTimeout(i)},[e]),(0,w.useEffect)(()=>{if(!e)return;let t=document.body.style.overflow;return document.body.style.overflow=`hidden`,()=>{document.body.style.overflow=t}},[e]);let we=e=>{P(e),V||B(k.find(t=>t.value===e)?.includesLogsByDefault??!1)},Te=()=>{B(e=>!e),H(!0)},Ee=b?.trim()?[{filename:`doctor-session.txt`,contents:b}]:[],De=(0,w.useCallback)(e=>{e.key===`Escape`&&!e.defaultPrevented&&!$&&(e.preventDefault(),t())},[t,$]),Oe=(0,w.useCallback)(e=>{e.target===E.current&&!$&&t()},[t,$]),ke=(0,w.useCallback)(e=>{K(t=>{let n=N-t.length;if(n<=0)return t;let r=new Set(t.map(e=>`${e.name}:${e.size}`)),i=[];for(let t of e){if(i.length>=n)break;if(!pe(t))continue;let e=`${t.name}:${t.size}`;r.has(e)||(r.add(e),i.push(t))}return i.length>0?[...t,...i]:t})},[]),Ae=e=>{e.target.files&&ke(Array.from(e.target.files)),e.target.value=``},je=e=>{e.preventDefault(),J(!1),e.dataTransfer.files?.length&&ke(Array.from(e.dataTransfer.files))},Me=e=>{e.preventDefault(),J(!0)},Ne=e=>{e.preventDefault(),e.currentTarget===e.target&&J(!1)},Pe=e=>{K(t=>t.filter((t,n)=>n!==e))};return e?(0,se.createPortal)((0,O.jsx)(`div`,{ref:E,role:`dialog`,"aria-modal":`true`,"aria-labelledby":T,className:`fixed inset-0 z-50 flex items-center justify-center bg-black/50`,onKeyDown:De,onClick:Oe,onDrop:je,onDragOver:Me,onDragLeave:Ne,children:(0,O.jsxs)(`div`,{className:`mx-4 flex w-full max-w-lg flex-col rounded-xl border p-6 shadow-xl`,style:{backgroundColor:`var(--surface-lift)`,borderColor:`var(--border-base)`,maxHeight:`calc(100vh - 2rem)`},children:[(0,O.jsxs)(`div`,{className:`flex items-center justify-between border-b pb-4`,style:{borderColor:`var(--border-subtle)`},children:[(0,O.jsx)(`h2`,{id:T,className:`!m-0 text-title-small text-[var(--content-default)]`,children:`Share Feedback`}),(0,O.jsx)(a,{variant:`ghost`,iconOnly:(0,O.jsx)(m,{}),onClick:t,disabled:$,"aria-label":`Close`,tintColor:`var(--content-secondary)`})]}),(0,O.jsxs)(`div`,{className:`flex flex-col gap-3.5 overflow-y-auto pt-4 ${$?`pointer-events-none opacity-60`:``}`,children:[ce&&(0,O.jsxs)(`div`,{className:`flex flex-col gap-1.5 rounded-lg border border-[var(--border-base)] bg-[var(--surface-base)] px-3 py-2.5`,children:[(0,O.jsxs)(`label`,{className:`flex cursor-pointer items-center gap-3`,children:[(0,O.jsx)(_,{checked:X,onChange:()=>be(e=>!e),"aria-label":`Download diagnostics directly`}),(0,O.jsx)(`span`,{className:`text-body-medium-lighter text-[var(--content-default)]`,children:`Download diagnostics directly`})]}),(0,O.jsx)(`span`,{className:`text-body-small-default text-[var(--content-secondary)]`,children:`Admin only — builds the diagnostics archive locally and downloads it instead of submitting feedback or notifying Slack.`})]}),X?(0,O.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,O.jsx)(`span`,{className:`text-body-medium-lighter text-[var(--content-default)]`,children:`Time range`}),(0,O.jsx)(v,{options:le,value:U,onChange:W,"aria-label":`Diagnostics time range`})]}):(0,O.jsxs)(O.Fragment,{children:[Se&&(0,O.jsx)(g,{id:`${T}-email`,ref:j,label:`Email`,type:`email`,placeholder:`you@example.com`,value:L,onChange:e=>R(e.target.value),leftIcon:(0,O.jsx)(ne,{className:`h-4 w-4`,"aria-hidden":!0}),fullWidth:!0}),(0,O.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,O.jsx)(`span`,{className:`text-body-small-default text-[var(--content-secondary)]`,children:`Category`}),(0,O.jsx)(`div`,{className:`flex gap-2`,children:k.map(e=>(0,O.jsx)(he,{option:e,isSelected:M===e.value,onSelect:()=>we(e.value)},e.value))})]}),(0,O.jsx)(`hr`,{className:`border-[var(--border-subtle)]`}),M===`bug_report`&&(0,O.jsxs)(h,{tone:`info`,children:[`Tip: Get faster support by posting in our`,` `,(0,O.jsx)(`a`,{href:`https://vellum.ai/community`,target:`_blank`,rel:`noopener noreferrer`,className:`underline text-[var(--content-default)]`,children:`Discord community`})]}),M===`feature_request`&&(0,O.jsxs)(h,{tone:`info`,children:[`Tip: Vote on features on our`,` `,(0,O.jsx)(`a`,{href:`https://vellum.ai/roadmap`,target:`_blank`,rel:`noopener noreferrer`,className:`underline text-[var(--content-default)]`,children:`public roadmap`})]}),(0,O.jsx)(ie,{id:`${T}-message`,ref:A,label:M===`bug_report`?`What went wrong?`:M===`feature_request`?`Describe your idea`:`What's on your mind?`,rows:3,placeholder:M===`bug_report`?`What did you expect to happen, and what happened instead?`:M===`feature_request`?`What problem would this solve for you?`:`Share your thoughts...`,value:F,onChange:e=>I(e.target.value),fullWidth:!0}),M!==`feature_request`&&(0,O.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,O.jsxs)(`div`,{className:`flex items-center gap-2.5`,children:[(0,O.jsxs)(`label`,{className:`flex cursor-pointer items-center gap-2.5`,children:[(0,O.jsx)(_,{checked:z,onChange:Te,"aria-label":`Include browser diagnostics`}),(0,O.jsx)(`span`,{className:`text-body-medium-lighter leading-6 text-[var(--content-default)]`,children:`Include diagnostics`})]}),(0,O.jsx)(i,{content:`Diagnostics include browser context, assistant logs, and timestamps — never passwords or credentials.`,children:(0,O.jsx)(`button`,{type:`button`,"aria-label":`About diagnostics`,className:`inline-flex items-center justify-center text-[var(--content-tertiary)]`,children:(0,O.jsx)(ee,{className:`h-3.5 w-3.5`})})})]}),z&&(0,O.jsx)(v,{options:le,value:U,onChange:W,"aria-label":`Diagnostics time range`})]}),y()&&d&&M!==`feature_request`&&(0,O.jsxs)(`label`,{className:`flex cursor-pointer items-center gap-2.5`,children:[(0,O.jsx)(_,{checked:Y,onChange:()=>ye(e=>!e),"aria-label":`Include the most recent conversation`}),(0,O.jsx)(`span`,{className:`text-body-medium-lighter leading-6 text-[var(--content-default)]`,children:`Include the most recent conversation`})]}),(0,O.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,O.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,O.jsxs)(`span`,{className:`text-body-small-default text-[var(--content-secondary)]`,children:[`Attachments`,G.length>0&&(0,O.jsxs)(`span`,{className:`text-[var(--content-tertiary)]`,children:[` · `,G.length,`/`,N]})]}),(0,O.jsx)(a,{variant:`outlined`,size:`compact`,leftIcon:(0,O.jsx)(p,{}),onClick:()=>D.current?.click(),disabled:G.length>=N,children:`Add files`}),(0,O.jsx)(`input`,{ref:D,type:`file`,multiple:!0,accept:`image/png,image/jpeg,image/gif,image/webp,video/mp4,video/quicktime,video/webm`,onChange:Ae,className:`hidden`})]}),G.length>0&&(0,O.jsx)(`div`,{className:`flex gap-2 overflow-x-auto`,children:G.map((e,t)=>(0,O.jsx)(ge,{file:e,onRemove:()=>Pe(t)},`${e.name}-${t}`))}),ve&&(0,O.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Drop files to attach…`})]})]}),_e&&(0,O.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--system-negative-strong)]`,children:_e})]}),(0,O.jsx)(`div`,{className:`mt-4 flex items-center justify-end gap-2 border-t pt-4`,style:{borderColor:`var(--border-subtle)`},children:$?(0,O.jsxs)(`span`,{className:`inline-flex items-center gap-2 text-body-medium-lighter text-[var(--content-secondary)]`,children:[(0,O.jsx)(te,{className:`h-4 w-4 animate-spin`}),X?`Preparing diagnostics…`:`Sending feedback…`]}):(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(a,{variant:`ghost`,onClick:t,children:`Cancel`}),X?(0,O.jsx)(a,{variant:`primary`,leftIcon:(0,O.jsx)(u,{}),onClick:async()=>{if(!$){q(null),Q(!0);try{let e=await me(U,c??null,y()?Y?d??null:null:d??null,{diagnosticsProvider:x,doctorSessionId:f,extraLogFiles:Ee});if(!e){q(`Diagnostics export isn't supported in this browser.`);return}let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=e.name,document.body.appendChild(r),r.click(),r.remove(),setTimeout(()=>URL.revokeObjectURL(n),0),t()}catch(e){q(e instanceof Error?e.message:`Failed to build diagnostics. Please try again.`)}finally{Q(!1)}}},children:`Download diagnostics`}):(0,O.jsx)(a,{variant:`primary`,leftIcon:(0,O.jsx)(re,{}),onClick:async()=>{if(!(!Ce||$)){q(null),Q(!0);try{let e=z&&M!==`feature_request`?await me(U,c??null,y()?Y?d??null:null:d??null,{diagnosticsProvider:x,doctorSessionId:f,extraLogFiles:Ee}):null,n=de(),r=t=>Z.mutateAsync({headers:{"Content-Type":null},body:{message:F.trim(),classification:ue[M],email:L.trim(),client:t,client_version:void 0,...c?{assistant_id:c}:{},...l?{assistant_version:l}:{},...f?{doctor_session_id:f}:{},...e?{logs_file:e}:{},...G.length?{attachments:G}:{}},bodySerializer:e=>{let t=new FormData;for(let[n,r]of Object.entries(e))if(r!=null){if(n===`attachments`&&Array.isArray(r)){for(let e of r)t.append(`attachments`,e);continue}r instanceof Blob?t.append(n,r):t.append(n,String(r))}return t}});try{await r(n)}catch(e){if(n!==`android`||!fe(e))throw e;await r(`web`)}o?.(),t()}catch(e){q(e instanceof Error?e.message:`Failed to submit feedback. Please try again.`)}finally{Q(!1)}}},disabled:!Ce,children:`Submit`})]})})]})}),document.body):null}function he({option:e,isSelected:t,onSelect:n}){let r=e.icon;return(0,O.jsxs)(`button`,{type:`button`,onClick:n,"aria-pressed":t,className:`flex items-center gap-1.5 rounded-full border px-3 py-1.5 text-left transition-colors`,style:{borderColor:t?`var(--primary-base)`:`var(--border-base)`,backgroundColor:t?`color-mix(in oklab, var(--primary-base) 10%, transparent)`:`transparent`},children:[(0,O.jsx)(r,{className:`h-3.5 w-3.5 shrink-0`,style:{color:t?`var(--primary-base)`:`var(--content-secondary)`}}),(0,O.jsx)(`span`,{className:`text-body-small-default`,style:{color:t?`var(--primary-base)`:`var(--content-default)`},children:e.label})]})}function ge({file:e,onRemove:t}){let n=e.type.startsWith(`image/`),r=(0,w.useMemo)(()=>n?URL.createObjectURL(e):null,[e,n]);return(0,w.useEffect)(()=>{if(r)return()=>URL.revokeObjectURL(r)},[r]),(0,O.jsxs)(`div`,{className:`relative flex h-16 w-16 shrink-0 items-center justify-center overflow-hidden rounded-lg border border-[var(--border-base)] bg-[var(--surface-base)]`,title:e.name,children:[n&&r?(0,O.jsx)(`img`,{src:r,alt:e.name,className:`h-full w-full object-cover`}):(0,O.jsx)(p,{className:`h-5 w-5 text-[var(--content-secondary)]`}),(0,O.jsx)(a,{variant:`ghost`,size:`compact`,iconOnly:(0,O.jsx)(m,{}),onClick:t,"aria-label":`Remove ${e.name}`,className:`absolute top-0.5 right-0.5 h-4 w-4 rounded-full bg-black/60 text-white hover:bg-black/70`,tintColor:`#fff`})]})}export{D as n,W as t};
2
+ import{o as e,r as t}from"./chunk-jRWAZmH_.js";import{t as n}from"./react-BFJW0bSv.js";import{W as r,n as i,t as a}from"./button-BENY-yx_.js";import{t as o}from"./preload-helper-Cv2QeVDK.js";import{t as s}from"./useMutation-CXGTrp4W.js";import{t as c}from"./jsx-runtime-D3ZM-ToX.js";import{t as l}from"./bug-CDEs1Scu.js";import{t as u}from"./download-Byg0fi0d.js";import{t as ee}from"./info-CXkwGlN_.js";import{t as d}from"./lightbulb-DqvoPoCk.js";import{t as te}from"./loader-circle-DOtGXcds.js";import{t as ne}from"./mail-CYjppw70.js";import{t as f}from"./message-circle-C6QWfv9m.js";import{t as p}from"./paperclip-CQEdxfSq.js";import{t as re}from"./send-BlX2px_R.js";import{t as m}from"./x-338EsJDP.js";import{t as h}from"./notice-C0ifrvvJ.js";import{n as ie,t as g}from"./input-DmHXRXaB.js";import{t as _}from"./toggle-C-v4x7_A.js";import{t as v}from"./select-B8-i-CZ4.js";import{t as y}from"./is-electron-BHXrkjI3.js";import{n as b}from"./assistant-identity-store-nE-e8KQw.js";import{n as ae}from"./auth-store-DkOiOQNx.js";import{dn as x}from"./sdk.gen-CBPZ2IdN.js";import{t as S}from"./dist-Br0LBu8Y.js";import{n as C}from"./diagnostics-6dSlxnyU.js";import"./external-urls-EO9DXoFH.js";import{I as oe}from"./react-query.gen-DKb3mEwJ.js";var w=e(n(),1),se=e(r(),1),ce=`vellum:debug:`;function T(){let e={};if(typeof window>`u`)return e;try{for(let t=0;t<window.localStorage.length;t++){let n=window.localStorage.key(t);if(n===null||!n.startsWith(ce))continue;let r=window.localStorage.getItem(n);r!==null&&(e[n]=r)}}catch{}return e}function E(){return{collectedAt:new Date().toISOString(),resolved:{impersonateAssistantVersion:b()},overrides:T()}}var D=t({ShareFeedbackModal:()=>W,dedupeAgainstClientMessages:()=>B,stripBulkBase64:()=>z}),O=c(),k=[{value:`bug_report`,label:`Bug Report`,icon:l,includesLogsByDefault:!0},{value:`feature_request`,label:`Feature Request`,icon:d,includesLogsByDefault:!1},{value:`other`,label:`Other`,icon:f,includesLogsByDefault:!1}],A=[{value:`past_hour`,label:`Past hour`,cutoffMs:3600*1e3},{value:`past_24_hours`,label:`Past 24 hours`,cutoffMs:1440*60*1e3},{value:`all_time`,label:`All time`,cutoffMs:null}],le=A.map(e=>({value:e.value,label:e.label})),j=new Set([`image/png`,`image/jpeg`,`image/gif`,`image/webp`,`video/mp4`,`video/quicktime`,`video/webm`]),M=new Set([`png`,`jpg`,`jpeg`,`gif`,`webp`,`mp4`,`mov`,`webm`]),N=10,P=50*1024*1024,ue={bug_report:`bug_report`,feature_request:`feature_request`,other:`other`};function de(){if(y())return`electron`;let e=S.getPlatform();return e===`ios`||e===`android`?e:`web`}function fe(e){return typeof e==`object`&&!!e&&`client`in e}function pe(e){if(e.size>P)return!1;if(e.type&&j.has(e.type))return!0;if(!e.type){let t=e.name.split(`.`).pop()?.toLowerCase();return t?M.has(t):!1}return!1}var F=8192,I=/^data:([^;,]+);base64,/i,L=/^[A-Za-z0-9+/]+={0,2}$/;function R(e,t,n=new WeakSet){let r=t(e);if(r)return r.replacement;if(typeof e!=`object`||!e)return e;if(n.has(e))return`[cyclic]`;n.add(e);let i;if(Array.isArray(e))i=e.map(e=>R(e,t,n));else{let r={};for(let[i,a]of Object.entries(e))r[i]=R(a,t,n);i=r}return n.delete(e),i}function z(e){return R(e,e=>{if(typeof e!=`string`)return null;let t=I.exec(e);return t?{replacement:`[stripped data URI ${t[1]}, ${e.length} chars]`}:e.length>=F&&L.test(e)?{replacement:`[stripped base64, ${e.length} chars]`}:null})}function B(e,t){if(!Array.isArray(t))return e;let n=new Map;return t.forEach((e,t)=>{if(e&&typeof e==`object`){let r=e.id;n.set(e,typeof r==`string`?r:`index ${t}`)}}),R(e,e=>{if(typeof e!=`object`||!e)return null;let t=n.get(e);return t===void 0?null:{replacement:`[deduplicated: see clientMessages ${t}]`}})}function V(e,t){let n=Math.ceil(t.length/512),r=new Uint8Array(512+n*512),i=new TextEncoder,a=(e,t,n)=>{let a=i.encode(e);r.set(a.slice(0,n),t)},o=(e,t,n)=>{a(e.toString(8).padStart(n-1,`0`)+`\0`,t,n)};a(e,0,100),o(420,100,8),o(0,108,8),o(0,116,8),o(t.length,124,12),o(Math.floor(Date.now()/1e3),136,12);for(let e=148;e<156;e++)r[e]=32;r[156]=48,a(`ustar\0`,257,6),a(`00`,263,2);let s=0;for(let e=0;e<512;e++)s+=r[e];return o(s,148,7),r[155]=32,r.set(t,512),r}async function H(e,t){try{let n={};t.window.startTime!=null&&(n.startTime=t.window.startTime,n.endTime=t.window.endTime),t.activeConversationId&&(n.conversationId=t.activeConversationId);let{data:r,error:i}=await x({path:{assistant_id:e},body:n,parseAs:`blob`,throwOnError:!1});if(i||!(r instanceof Blob))return null;let a=await r.arrayBuffer();return new Uint8Array(a)}catch{return null}}async function U(){if(!S.isNativePlatform())return null;try{let{App:e}=await o(async()=>{let{App:e}=await import(`./esm-RwtNn1Lo.js`);return{App:e}},__vite__mapDeps([0,1,2])),{id:t,name:n,version:r,build:i}=await e.getInfo();return{id:t,name:n,version:r,build:i}}catch{return null}}async function me(e,t,n,r={}){if(typeof CompressionStream>`u`)return null;let{diagnosticsProvider:i,doctorSessionId:a,extraLogFiles:o=[]}=r,s=new Date,c=A.find(t=>t.value===e),l=s.getTime(),u=c?.cutoffMs==null?null:l-c.cutoffMs,ee=u==null?null:new Date(u).toISOString(),d=null;try{d=i?.()??null}catch{d=null}let te=C(d),ne={collected_at:s.toISOString(),time_range:e,cutoff:ee,log_window:{start_time_ms:u,end_time_ms:l},assistant_id:t,active_conversation_id:n,doctor_session_id:a??null,client_version:null,native_app:await U(),user_agent:typeof navigator<`u`?navigator.userAgent:``,language:typeof navigator<`u`?navigator.language:``,platform:typeof navigator<`u`?navigator.platform:``,url:typeof window<`u`?window.location.href:``,viewport:typeof window<`u`?{width:window.innerWidth,height:window.innerHeight}:null,screen:typeof screen<`u`?{width:screen.width,height:screen.height}:null,connection:typeof navigator<`u`&&`connection`in navigator?{effectiveType:navigator.connection.effectiveType,downlink:navigator.connection.downlink,rtt:navigator.connection.rtt}:null,deviceMemory:typeof navigator<`u`&&`deviceMemory`in navigator?navigator.deviceMemory:null,hardwareConcurrency:typeof navigator<`u`?navigator.hardwareConcurrency:null},f=new TextEncoder,p=f.encode(JSON.stringify(ne,null,2)),re=f.encode(JSON.stringify(te,null,2)),m=[V(`web-client-context.json`,p),V(`web-chat-diagnostics.json`,re)],h=new TextEncoder().encode(JSON.stringify(E(),null,2));m.push(V(`web-debug-flags.json`,h));for(let e of o){let t=e.contents.trim();t&&m.push(V(e.filename,f.encode(t)))}try{let e=typeof window<`u`?window._vellumDebug?.chat:null;if(e){let t=e.getClientMessages?.()??null,n={clientMessages:t,transcriptItems:B(e.getTranscriptItems?.()??null,t),pendingInteractions:e.listPendingInteractions?.()??null,thinkingIndicator:e.thinkingIndicator?.()??null,streamingRing:e.streamingRing?.()??null,reconciliationDiagnostics:e.getReconciliationDiagnostics?.()??null},r=new TextEncoder().encode(JSON.stringify(z(n),null,2));m.push(V(`web-chat-debug-api-triage.json`,r))}}catch{}try{let e=typeof window<`u`?window._vellumDebug?.events:null;if(e){let t={focus:typeof document<`u`?{hasFocus:typeof document.hasFocus==`function`?document.hasFocus():null,visibilityState:document.visibilityState}:null,clients:e.getClients().map(({abortSignal:e,...t})=>({...t,aborted:e.aborted})),events:e.getEvents()},n=new TextEncoder().encode(JSON.stringify(z(t),null,2));m.push(V(`web-sse-liveness-triage.json`,n))}}catch{}if(y()&&window.vellum?.feedback){try{let e=await window.vellum.feedback.diagnostics(),t=new TextEncoder().encode(JSON.stringify(e,null,2));m.push(V(`electron-diagnostics.json`,t))}catch{}try{let e=await window.vellum.feedback.logs();if(e){let t=new TextEncoder().encode(e);m.push(V(`electron-main-logs.txt`,t))}}catch{}}if(t){let e=await H(t,{window:{startTime:u,endTime:l},activeConversationId:n});e&&m.push(V(`platform-logs.tar.gz`,e))}m.push(new Uint8Array(1024));let ie=m.reduce((e,t)=>e+t.length,0),g=new Uint8Array(ie),_=0;for(let e of m)g.set(e,_),_+=e.length;let v=new Blob([g.buffer]),b=await new Response(v.stream().pipeThrough(new CompressionStream(`gzip`))).blob();return new File([b],`web-client-logs-${s.getTime()}.tar.gz`,{type:`application/gzip`})}function W({open:e,onClose:t,initialReason:n,initialMessage:r,onSubmitted:o,assistantId:c,assistantVersion:l,activeConversationId:d,doctorSessionId:f,doctorSessionLog:b,getDiagnosticsSnapshot:x}){let S=ae.use.user(),C=S?.email,ce=S?.isStaff??!1,T=(0,w.useId)(),E=(0,w.useRef)(null),D=(0,w.useRef)(null),A=(0,w.useRef)(null),j=(0,w.useRef)(null),[M,P]=(0,w.useState)(n??`bug_report`),[F,I]=(0,w.useState)(``),[L,R]=(0,w.useState)(``),[z,B]=(0,w.useState)(k.find(e=>e.value===(n??`bug_report`))?.includesLogsByDefault??!0),[V,H]=(0,w.useState)(!1),[U,W]=(0,w.useState)(`past_hour`),[G,K]=(0,w.useState)([]),[_e,q]=(0,w.useState)(null),[ve,J]=(0,w.useState)(!1),[Y,ye]=(0,w.useState)(!1),[X,be]=(0,w.useState)(!1),Z=s(oe()),[xe,Q]=(0,w.useState)(!1),$=Z.isPending||xe,Se=!C,Ce=(0,w.useMemo)(()=>F.trim().length>0&&L.trim().length>0,[F,L]);(0,w.useEffect)(()=>{if(!e)return;let t=n??`bug_report`;P(t),I(r??``),R(C??``),B(k.find(e=>e.value===t)?.includesLogsByDefault??!0),H(!1),W(`past_hour`),K([]),ye(!1),be(!1),q(null),Q(!1),Z.reset();let i=setTimeout(()=>{C?A.current?.focus():j.current?.focus()},50);return()=>clearTimeout(i)},[e]),(0,w.useEffect)(()=>{if(!e)return;let t=document.body.style.overflow;return document.body.style.overflow=`hidden`,()=>{document.body.style.overflow=t}},[e]);let we=e=>{P(e),V||B(k.find(t=>t.value===e)?.includesLogsByDefault??!1)},Te=()=>{B(e=>!e),H(!0)},Ee=b?.trim()?[{filename:`doctor-session.txt`,contents:b}]:[],De=(0,w.useCallback)(e=>{e.key===`Escape`&&!e.defaultPrevented&&!$&&(e.preventDefault(),t())},[t,$]),Oe=(0,w.useCallback)(e=>{e.target===E.current&&!$&&t()},[t,$]),ke=(0,w.useCallback)(e=>{K(t=>{let n=N-t.length;if(n<=0)return t;let r=new Set(t.map(e=>`${e.name}:${e.size}`)),i=[];for(let t of e){if(i.length>=n)break;if(!pe(t))continue;let e=`${t.name}:${t.size}`;r.has(e)||(r.add(e),i.push(t))}return i.length>0?[...t,...i]:t})},[]),Ae=e=>{e.target.files&&ke(Array.from(e.target.files)),e.target.value=``},je=e=>{e.preventDefault(),J(!1),e.dataTransfer.files?.length&&ke(Array.from(e.dataTransfer.files))},Me=e=>{e.preventDefault(),J(!0)},Ne=e=>{e.preventDefault(),e.currentTarget===e.target&&J(!1)},Pe=e=>{K(t=>t.filter((t,n)=>n!==e))};return e?(0,se.createPortal)((0,O.jsx)(`div`,{ref:E,role:`dialog`,"aria-modal":`true`,"aria-labelledby":T,className:`fixed inset-0 z-50 flex items-center justify-center bg-black/50`,onKeyDown:De,onClick:Oe,onDrop:je,onDragOver:Me,onDragLeave:Ne,children:(0,O.jsxs)(`div`,{className:`mx-4 flex w-full max-w-lg flex-col rounded-xl border p-6 shadow-xl`,style:{backgroundColor:`var(--surface-lift)`,borderColor:`var(--border-base)`,maxHeight:`calc(100vh - 2rem)`},children:[(0,O.jsxs)(`div`,{className:`flex items-center justify-between border-b pb-4`,style:{borderColor:`var(--border-subtle)`},children:[(0,O.jsx)(`h2`,{id:T,className:`!m-0 text-title-small text-[var(--content-default)]`,children:`Share Feedback`}),(0,O.jsx)(a,{variant:`ghost`,iconOnly:(0,O.jsx)(m,{}),onClick:t,disabled:$,"aria-label":`Close`,tintColor:`var(--content-secondary)`})]}),(0,O.jsxs)(`div`,{className:`flex flex-col gap-3.5 overflow-y-auto pt-4 ${$?`pointer-events-none opacity-60`:``}`,children:[ce&&(0,O.jsxs)(`div`,{className:`flex flex-col gap-1.5 rounded-lg border border-[var(--border-base)] bg-[var(--surface-base)] px-3 py-2.5`,children:[(0,O.jsxs)(`label`,{className:`flex cursor-pointer items-center gap-3`,children:[(0,O.jsx)(_,{checked:X,onChange:()=>be(e=>!e),"aria-label":`Download diagnostics directly`}),(0,O.jsx)(`span`,{className:`text-body-medium-lighter text-[var(--content-default)]`,children:`Download diagnostics directly`})]}),(0,O.jsx)(`span`,{className:`text-body-small-default text-[var(--content-secondary)]`,children:`Admin only — builds the diagnostics archive locally and downloads it instead of submitting feedback or notifying Slack.`})]}),X?(0,O.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,O.jsx)(`span`,{className:`text-body-medium-lighter text-[var(--content-default)]`,children:`Time range`}),(0,O.jsx)(v,{options:le,value:U,onChange:W,"aria-label":`Diagnostics time range`})]}):(0,O.jsxs)(O.Fragment,{children:[Se&&(0,O.jsx)(g,{id:`${T}-email`,ref:j,label:`Email`,type:`email`,placeholder:`you@example.com`,value:L,onChange:e=>R(e.target.value),leftIcon:(0,O.jsx)(ne,{className:`h-4 w-4`,"aria-hidden":!0}),fullWidth:!0}),(0,O.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,O.jsx)(`span`,{className:`text-body-small-default text-[var(--content-secondary)]`,children:`Category`}),(0,O.jsx)(`div`,{className:`flex gap-2`,children:k.map(e=>(0,O.jsx)(he,{option:e,isSelected:M===e.value,onSelect:()=>we(e.value)},e.value))})]}),(0,O.jsx)(`hr`,{className:`border-[var(--border-subtle)]`}),M===`bug_report`&&(0,O.jsxs)(h,{tone:`info`,children:[`Tip: Get faster support by posting in our`,` `,(0,O.jsx)(`a`,{href:`https://vellum.ai/community`,target:`_blank`,rel:`noopener noreferrer`,className:`underline text-[var(--content-default)]`,children:`Discord community`})]}),M===`feature_request`&&(0,O.jsxs)(h,{tone:`info`,children:[`Tip: Vote on features on our`,` `,(0,O.jsx)(`a`,{href:`https://vellum.ai/roadmap`,target:`_blank`,rel:`noopener noreferrer`,className:`underline text-[var(--content-default)]`,children:`public roadmap`})]}),(0,O.jsx)(ie,{id:`${T}-message`,ref:A,label:M===`bug_report`?`What went wrong?`:M===`feature_request`?`Describe your idea`:`What's on your mind?`,rows:3,placeholder:M===`bug_report`?`What did you expect to happen, and what happened instead?`:M===`feature_request`?`What problem would this solve for you?`:`Share your thoughts...`,value:F,onChange:e=>I(e.target.value),fullWidth:!0}),M!==`feature_request`&&(0,O.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,O.jsxs)(`div`,{className:`flex items-center gap-2.5`,children:[(0,O.jsxs)(`label`,{className:`flex cursor-pointer items-center gap-2.5`,children:[(0,O.jsx)(_,{checked:z,onChange:Te,"aria-label":`Include browser diagnostics`}),(0,O.jsx)(`span`,{className:`text-body-medium-lighter leading-6 text-[var(--content-default)]`,children:`Include diagnostics`})]}),(0,O.jsx)(i,{content:`Diagnostics include browser context, assistant logs, and timestamps — never passwords or credentials.`,children:(0,O.jsx)(`button`,{type:`button`,"aria-label":`About diagnostics`,className:`inline-flex items-center justify-center text-[var(--content-tertiary)]`,children:(0,O.jsx)(ee,{className:`h-3.5 w-3.5`})})})]}),z&&(0,O.jsx)(v,{options:le,value:U,onChange:W,"aria-label":`Diagnostics time range`})]}),y()&&d&&M!==`feature_request`&&(0,O.jsxs)(`label`,{className:`flex cursor-pointer items-center gap-2.5`,children:[(0,O.jsx)(_,{checked:Y,onChange:()=>ye(e=>!e),"aria-label":`Include the most recent conversation`}),(0,O.jsx)(`span`,{className:`text-body-medium-lighter leading-6 text-[var(--content-default)]`,children:`Include the most recent conversation`})]}),(0,O.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,O.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,O.jsxs)(`span`,{className:`text-body-small-default text-[var(--content-secondary)]`,children:[`Attachments`,G.length>0&&(0,O.jsxs)(`span`,{className:`text-[var(--content-tertiary)]`,children:[` · `,G.length,`/`,N]})]}),(0,O.jsx)(a,{variant:`outlined`,size:`compact`,leftIcon:(0,O.jsx)(p,{}),onClick:()=>D.current?.click(),disabled:G.length>=N,children:`Add files`}),(0,O.jsx)(`input`,{ref:D,type:`file`,multiple:!0,accept:`image/png,image/jpeg,image/gif,image/webp,video/mp4,video/quicktime,video/webm`,onChange:Ae,className:`hidden`})]}),G.length>0&&(0,O.jsx)(`div`,{className:`flex gap-2 overflow-x-auto`,children:G.map((e,t)=>(0,O.jsx)(ge,{file:e,onRemove:()=>Pe(t)},`${e.name}-${t}`))}),ve&&(0,O.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Drop files to attach…`})]})]}),_e&&(0,O.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--system-negative-strong)]`,children:_e})]}),(0,O.jsx)(`div`,{className:`mt-4 flex items-center justify-end gap-2 border-t pt-4`,style:{borderColor:`var(--border-subtle)`},children:$?(0,O.jsxs)(`span`,{className:`inline-flex items-center gap-2 text-body-medium-lighter text-[var(--content-secondary)]`,children:[(0,O.jsx)(te,{className:`h-4 w-4 animate-spin`}),X?`Preparing diagnostics…`:`Sending feedback…`]}):(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(a,{variant:`ghost`,onClick:t,children:`Cancel`}),X?(0,O.jsx)(a,{variant:`primary`,leftIcon:(0,O.jsx)(u,{}),onClick:async()=>{if(!$){q(null),Q(!0);try{let e=await me(U,c??null,y()?Y?d??null:null:d??null,{diagnosticsProvider:x,doctorSessionId:f,extraLogFiles:Ee});if(!e){q(`Diagnostics export isn't supported in this browser.`);return}let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=e.name,document.body.appendChild(r),r.click(),r.remove(),setTimeout(()=>URL.revokeObjectURL(n),0),t()}catch(e){q(e instanceof Error?e.message:`Failed to build diagnostics. Please try again.`)}finally{Q(!1)}}},children:`Download diagnostics`}):(0,O.jsx)(a,{variant:`primary`,leftIcon:(0,O.jsx)(re,{}),onClick:async()=>{if(!(!Ce||$)){q(null),Q(!0);try{let e=z&&M!==`feature_request`?await me(U,c??null,y()?Y?d??null:null:d??null,{diagnosticsProvider:x,doctorSessionId:f,extraLogFiles:Ee}):null,n=de(),r=t=>Z.mutateAsync({headers:{"Content-Type":null},body:{message:F.trim(),classification:ue[M],email:L.trim(),client:t,client_version:void 0,...c?{assistant_id:c}:{},...l?{assistant_version:l}:{},...f?{doctor_session_id:f}:{},...e?{logs_file:e}:{},...G.length?{attachments:G}:{}},bodySerializer:e=>{let t=new FormData;for(let[n,r]of Object.entries(e))if(r!=null){if(n===`attachments`&&Array.isArray(r)){for(let e of r)t.append(`attachments`,e);continue}r instanceof Blob?t.append(n,r):t.append(n,String(r))}return t}});try{await r(n)}catch(e){if(n!==`android`||!fe(e))throw e;await r(`web`)}o?.(),t()}catch(e){q(e instanceof Error?e.message:`Failed to submit feedback. Please try again.`)}finally{Q(!1)}}},disabled:!Ce,children:`Submit`})]})})]})}),document.body):null}function he({option:e,isSelected:t,onSelect:n}){let r=e.icon;return(0,O.jsxs)(`button`,{type:`button`,onClick:n,"aria-pressed":t,className:`flex items-center gap-1.5 rounded-full border px-3 py-1.5 text-left transition-colors`,style:{borderColor:t?`var(--primary-base)`:`var(--border-base)`,backgroundColor:t?`color-mix(in oklab, var(--primary-base) 10%, transparent)`:`transparent`},children:[(0,O.jsx)(r,{className:`h-3.5 w-3.5 shrink-0`,style:{color:t?`var(--primary-base)`:`var(--content-secondary)`}}),(0,O.jsx)(`span`,{className:`text-body-small-default`,style:{color:t?`var(--primary-base)`:`var(--content-default)`},children:e.label})]})}function ge({file:e,onRemove:t}){let n=e.type.startsWith(`image/`),r=(0,w.useMemo)(()=>n?URL.createObjectURL(e):null,[e,n]);return(0,w.useEffect)(()=>{if(r)return()=>URL.revokeObjectURL(r)},[r]),(0,O.jsxs)(`div`,{className:`relative flex h-16 w-16 shrink-0 items-center justify-center overflow-hidden rounded-lg border border-[var(--border-base)] bg-[var(--surface-base)]`,title:e.name,children:[n&&r?(0,O.jsx)(`img`,{src:r,alt:e.name,className:`h-full w-full object-cover`}):(0,O.jsx)(p,{className:`h-5 w-5 text-[var(--content-secondary)]`}),(0,O.jsx)(a,{variant:`ghost`,size:`compact`,iconOnly:(0,O.jsx)(m,{}),onClick:t,"aria-label":`Remove ${e.name}`,className:`absolute top-0.5 right-0.5 h-4 w-4 rounded-full bg-black/60 text-white hover:bg-black/70`,tintColor:`#fff`})]})}export{D as n,W as t};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-BENY-yx_.js";import{d as r,t as i,u as a}from"./chunk-5KNZJZUH-BUqIilZr.js";import{t as o}from"./jsx-runtime-D3ZM-ToX.js";import{t as s}from"./typography-BeUa5Fd-.js";import{t as c}from"./arrow-left-BikDV6F2.js";import{t as l}from"./chevron-right-DBGgpEiZ.js";import{c as u}from"./src-BMRW2yQf.js";import{n as d,t as f}from"./runtime-upgrade-banner-9KhcwQWy.js";import{t as p}from"./is-electron-BHXrkjI3.js";import{c as m}from"./platform-detection-C_TK32Dw.js";import{d as h}from"./routes-iipg2wkc.js";import{n as g}from"./use-is-mobile-BP8UePsY.js";import{t as _}from"./use-edge-swipe-back-9-2nUEK7.js";import{t as v}from"./link-click-DVtp4tRV.js";var y=e(t(),1),b=`data-page-transition`,x=400,S;function C(){return typeof document<`u`&&typeof document.startViewTransition==`function`}function w(){return m()&&C()}function T(e,t,n,r){if(!w()){e(t,r);return}document.documentElement.setAttribute(b,n),S!==void 0&&clearTimeout(S),S=setTimeout(()=>{S=void 0,document.documentElement.removeAttribute(b)},x),e(t,{...r,viewTransition:!0})}var E=o();function D({sidebar:e,children:t,actions:o,backHref:l,title:u=`Settings`,menuRoute:m=h.settings.root}){let{pathname:v}=a(),b=r(),x=v===m,S=g(),C=(0,y.useRef)(null),w=(0,y.useRef)(null);(0,y.useLayoutEffect)(()=>{w.current?.scrollTo(0,0)},[v]);let D=x?l:m;_({containerRef:C,onBack:(0,y.useCallback)(()=>{b(D)},[b,D]),enabled:S,navKey:v,prefetchHref:D});let O=p(),k=x?`Back from ${u}`:`Back to ${u} menu`,A=(0,E.jsx)(n,{variant:`ghost`,iconOnly:(0,E.jsx)(c,{}),"aria-label":k,tintColor:`var(--content-secondary)`,onClick:()=>T(b,D,`pop`)}),j=(0,E.jsx)(n,{asChild:!0,variant:`outlined`,"aria-label":`Back from ${u}`,className:`h-8 w-8 px-0`,tintColor:`var(--content-secondary)`,children:(0,E.jsx)(i,{to:l,className:`flex items-center justify-center no-underline`,children:(0,E.jsx)(c,{size:16,"aria-hidden":`true`})})});return(0,E.jsxs)(`div`,{ref:C,className:`flex h-full min-h-0 w-full flex-1 flex-col gap-4 p-4 sm:p-6 md:gap-0`,style:{paddingTop:O?`3.75rem`:`1rem`},children:[(0,E.jsxs)(`div`,{className:`flex shrink-0 items-center gap-3 md:hidden`,children:[A,(0,E.jsx)(s,{as:`h1`,variant:`body-large-default`,className:`flex-1 truncate text-center`,style:{color:`var(--content-tertiary)`,lineHeight:1.4},children:u}),(0,E.jsx)(`div`,{className:`h-10 w-10 shrink-0`,"aria-hidden":`true`})]}),O?(0,E.jsxs)(`div`,{className:`flex shrink-0 flex-col gap-2 pb-4 empty:hidden`,children:[(0,E.jsx)(d,{placement:`electron`,className:`px-0 pt-0`}),(0,E.jsx)(f,{placement:`electron`,className:`px-0 pt-0`})]}):null,(0,E.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-hidden md:rounded-[12px] md:border md:border-[var(--border-base)] md:bg-[var(--surface-overlay)]`,children:[(0,E.jsxs)(`div`,{className:`hidden shrink-0 items-center justify-between gap-4 px-6 py-5 md:flex`,children:[(0,E.jsxs)(`div`,{className:`flex min-w-0 items-center gap-3`,children:[j,(0,E.jsx)(`h1`,{className:`text-title-large truncate`,style:{color:`var(--content-emphasised)`,lineHeight:1.2},children:u})]}),(0,E.jsx)(`div`,{className:`flex shrink-0 items-center gap-2`,children:o})]}),(0,E.jsxs)(`div`,{className:`flex min-h-0 flex-1 overflow-hidden`,children:[(0,E.jsx)(`aside`,{className:`hidden w-64 shrink-0 overflow-y-auto md:block`,"aria-label":`${u} navigation`,children:e}),x?(0,E.jsx)(`div`,{className:`flex min-w-0 min-h-0 flex-1 flex-col overflow-y-auto overflow-x-hidden pb-6 md:hidden`,children:e}):null,(0,E.jsx)(`main`,{ref:w,className:`min-w-0 min-h-0 flex-1 flex-col gap-4 overflow-y-auto overflow-x-hidden pb-6 md:flex md:px-6 md:pt-0 ${x?`hidden`:`flex`}`,children:t})]})]})]})}function O({items:e,bottomItems:t,indexPath:n}){let{pathname:i}=a(),o=r(),s=g(),c=(e,t,r)=>{let{href:a,onSelect:c}=e,d=a!=null&&(i===a||i.startsWith(a+`/`)||!s&&r&&n!=null&&i===n);return(0,E.jsxs)(y.Fragment,{children:[(0,E.jsx)(u.Item,{icon:e.icon,label:e.label,active:d,trailingIcon:a==null?void 0:l,trailingIconClassName:a==null?void 0:`md:hidden`,href:a,onSelect:c,onClick:a==null?void 0:e=>{v(e)||(e.preventDefault(),T(o,a,`push`))}}),!t&&(0,E.jsx)(`div`,{role:`presentation`,"aria-hidden":!0,className:`my-2 h-px w-full bg-[var(--border-base)] md:hidden`})]},e.id)};return(0,E.jsxs)(`nav`,{"aria-label":`Sidebar navigation`,className:`flex min-h-full flex-col md:gap-2 md:px-6 md:pb-4`,children:[e.map((n,r)=>c(n,r===e.length-1&&!t?.length,r===0)),t&&t.length>0&&(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(`div`,{className:`flex-1`}),(0,E.jsx)(`div`,{role:`presentation`,"aria-hidden":!0,className:`mx-0 my-2 h-px w-full bg-[var(--border-base)] md:mx-0`}),t.map((e,n)=>c(e,n===t.length-1,!1))]})]})}export{D as n,O as t};
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,t as i,u as a}from"./chunk-5KNZJZUH-BUqIilZr.js";import{t as o}from"./jsx-runtime-D3ZM-ToX.js";import{t as s}from"./typography-BeUa5Fd-.js";import{t as c}from"./arrow-left-BikDV6F2.js";import{t as l}from"./chevron-right-DBGgpEiZ.js";import{c as u}from"./src-hNk11eS3.js";import{n as d,t as f}from"./runtime-upgrade-banner--bSmfygH.js";import{t as p}from"./is-electron-BHXrkjI3.js";import{c as m}from"./platform-detection-C_TK32Dw.js";import{d as h}from"./routes-iipg2wkc.js";import{n as g}from"./use-is-mobile-BP8UePsY.js";import{t as _}from"./use-edge-swipe-back-ZgANxgKE.js";import{t as v}from"./link-click-DVtp4tRV.js";var y=e(t(),1),b=`data-page-transition`,x=400,S;function C(){return typeof document<`u`&&typeof document.startViewTransition==`function`}function w(){return m()&&C()}function T(e,t,n,r){if(!w()){e(t,r);return}document.documentElement.setAttribute(b,n),S!==void 0&&clearTimeout(S),S=setTimeout(()=>{S=void 0,document.documentElement.removeAttribute(b)},x),e(t,{...r,viewTransition:!0})}var E=o();function D({sidebar:e,children:t,actions:o,backHref:l,title:u=`Settings`,menuRoute:m=h.settings.root}){let{pathname:v}=a(),b=r(),x=v===m,S=g(),C=(0,y.useRef)(null),w=(0,y.useRef)(null);(0,y.useLayoutEffect)(()=>{w.current?.scrollTo(0,0)},[v]);let D=x?l:m;_({containerRef:C,onBack:(0,y.useCallback)(()=>{b(D)},[b,D]),enabled:S,navKey:v,prefetchHref:D});let O=p(),k=x?`Back from ${u}`:`Back to ${u} menu`,A=(0,E.jsx)(n,{variant:`ghost`,iconOnly:(0,E.jsx)(c,{}),"aria-label":k,tintColor:`var(--content-secondary)`,onClick:()=>T(b,D,`pop`)}),j=(0,E.jsx)(n,{asChild:!0,variant:`outlined`,"aria-label":`Back from ${u}`,className:`h-8 w-8 px-0`,tintColor:`var(--content-secondary)`,children:(0,E.jsx)(i,{to:l,className:`flex items-center justify-center no-underline`,children:(0,E.jsx)(c,{size:16,"aria-hidden":`true`})})});return(0,E.jsxs)(`div`,{ref:C,className:`flex h-full min-h-0 w-full flex-1 flex-col gap-4 p-4 sm:p-6 md:gap-0`,style:{paddingTop:O?`3.75rem`:`1rem`},children:[(0,E.jsxs)(`div`,{className:`flex shrink-0 items-center gap-3 md:hidden`,children:[A,(0,E.jsx)(s,{as:`h1`,variant:`body-large-default`,className:`flex-1 truncate text-center`,style:{color:`var(--content-tertiary)`,lineHeight:1.4},children:u}),(0,E.jsx)(`div`,{className:`h-10 w-10 shrink-0`,"aria-hidden":`true`})]}),O?(0,E.jsxs)(`div`,{className:`flex shrink-0 flex-col gap-2 pb-4 empty:hidden`,children:[(0,E.jsx)(d,{placement:`electron`,className:`px-0 pt-0`}),(0,E.jsx)(f,{placement:`electron`,className:`px-0 pt-0`})]}):null,(0,E.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-hidden md:rounded-[12px] md:border md:border-[var(--border-base)] md:bg-[var(--surface-overlay)]`,children:[(0,E.jsxs)(`div`,{className:`hidden shrink-0 items-center justify-between gap-4 px-6 py-5 md:flex`,children:[(0,E.jsxs)(`div`,{className:`flex min-w-0 items-center gap-3`,children:[j,(0,E.jsx)(`h1`,{className:`text-title-large truncate`,style:{color:`var(--content-emphasised)`,lineHeight:1.2},children:u})]}),(0,E.jsx)(`div`,{className:`flex shrink-0 items-center gap-2`,children:o})]}),(0,E.jsxs)(`div`,{className:`flex min-h-0 flex-1 overflow-hidden`,children:[(0,E.jsx)(`aside`,{className:`hidden w-64 shrink-0 overflow-y-auto md:block`,"aria-label":`${u} navigation`,children:e}),x?(0,E.jsx)(`div`,{className:`flex min-w-0 min-h-0 flex-1 flex-col overflow-y-auto overflow-x-hidden pb-6 md:hidden`,children:e}):null,(0,E.jsx)(`main`,{ref:w,className:`min-w-0 min-h-0 flex-1 flex-col gap-4 overflow-y-auto overflow-x-hidden pb-6 md:flex md:px-6 md:pt-0 ${x?`hidden`:`flex`}`,children:t})]})]})]})}function O({items:e,bottomItems:t,indexPath:n}){let{pathname:i}=a(),o=r(),s=g(),c=(e,t,r)=>{let{href:a,onSelect:c}=e,d=a!=null&&(i===a||i.startsWith(a+`/`)||!s&&r&&n!=null&&i===n);return(0,E.jsxs)(y.Fragment,{children:[(0,E.jsx)(u.Item,{icon:e.icon,label:e.label,active:d,trailingIcon:a==null?void 0:l,trailingIconClassName:a==null?void 0:`md:hidden`,href:a,onSelect:c,onClick:a==null?void 0:e=>{v(e)||(e.preventDefault(),T(o,a,`push`))}}),!t&&(0,E.jsx)(`div`,{role:`presentation`,"aria-hidden":!0,className:`my-2 h-px w-full bg-[var(--border-base)] md:hidden`})]},e.id)};return(0,E.jsxs)(`nav`,{"aria-label":`Sidebar navigation`,className:`flex min-h-full flex-col md:gap-2 md:px-6 md:pb-4`,children:[e.map((n,r)=>c(n,r===e.length-1&&!t?.length,r===0)),t&&t.length>0&&(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(`div`,{className:`flex-1`}),(0,E.jsx)(`div`,{role:`presentation`,"aria-hidden":!0,className:`mx-0 my-2 h-px w-full bg-[var(--border-base)] md:mx-0`}),t.map((e,n)=>c(e,n===t.length-1,!1))]})]})}export{D as n,O as t};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./jsx-runtime-D3ZM-ToX.js";import{E as r}from"./platform-detection-C_TK32Dw.js";import{n as i,r as a}from"./login-flow-fmfcNxyU.js";import{t as o}from"./proxy-B4sTDdE4.js";import{t as s}from"./AnimatePresence-D41IKJOi.js";import{t as c}from"./apple-logo-Dz_HmP0n.js";import{n as l,t as u}from"./use-return-to-short-circuit-Bl1RwuwD.js";import{t as d}from"./signup-shell-B_xxhiVU.js";var f=e(t(),1),p=n();function m({words:e}){let[t,n]=(0,f.useState)(0),r=(0,f.useMemo)(()=>e.reduce((e,t)=>e.length>=t.length?e:t),[e]);return(0,f.useEffect)(()=>{let t=setInterval(()=>{n(t=>(t+1)%e.length)},2400);return()=>clearInterval(t)},[e.length]),(0,p.jsxs)(`span`,{className:`signup__rotating`,children:[(0,p.jsxs)(`span`,{className:`signup__rotating-sizer`,"aria-hidden":!0,children:[r,`.`]}),(0,p.jsx)(s,{mode:`wait`,children:(0,p.jsxs)(o.em,{initial:{opacity:0,y:16},animate:{opacity:1,y:0},exit:{opacity:0,y:-16},transition:{duration:.3,ease:`easeInOut`},children:[e[t],`.`]},e[t])})]})}var h=[`Personal Intelligence`,`Software Engineer`,`Finance Ops`,`Household Manager`,`GTM Engineer`,`Product Lead`];function g({returnTo:e}){let[t,n]=(0,f.useState)(null),o=a(e,{authIntent:`signup`});return(0,p.jsxs)(d,{children:[(0,p.jsxs)(`h1`,{className:`signup__title`,children:[`Meet your new`,(0,p.jsx)(`br`,{}),(0,p.jsx)(m,{words:h})]}),(0,p.jsx)(`p`,{className:`signup__subtitle`,children:`The most powerful assistant that can handle your work and life admin tasks.`}),(0,p.jsx)(`div`,{className:`signup__buttons`,children:(0,p.jsx)(`button`,{type:`button`,className:`signup__btn`,onClick:()=>{n(null),r(i,o,{returnTo:e,intent:`signup`}).catch(e=>{console.error(`[signup] auth flow failed:`,e),n(`Something went wrong. Please try again.`)})},children:`Continue`})}),t&&(0,p.jsx)(`p`,{className:`signup__error`,children:t}),(0,p.jsxs)(`p`,{className:`signup__footer`,children:[`Already have an account?`,` `,(0,p.jsx)(`button`,{type:`button`,className:`signup__link`,onClick:()=>{n(null),r(i,a(e),{returnTo:e}).catch(e=>{console.error(`[signup] sign-in flow failed:`,e),n(`Something went wrong. Please try again.`)})},children:`Sign in`})]}),(0,p.jsxs)(`a`,{className:`signup__download`,href:`/downloads`,children:[(0,p.jsx)(c,{size:16}),`Download for macOS`]})]})}function _(){let e=u();return e.kind===`wait`?(0,p.jsx)(d,{children:(0,p.jsx)(l,{})}):e.kind===`redirect`?e.node:(0,p.jsx)(g,{returnTo:e.returnTo})}export{_ as SignupPage};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./jsx-runtime-D3ZM-ToX.js";import{E as r}from"./platform-detection-C_TK32Dw.js";import{n as i,r as a}from"./login-flow-B8CUFAeg.js";import{t as o}from"./proxy-B4sTDdE4.js";import{t as s}from"./AnimatePresence-D41IKJOi.js";import{t as c}from"./apple-logo-Dz_HmP0n.js";import{n as l,t as u}from"./use-return-to-short-circuit-CTYRB2Ne.js";import{t as d}from"./signup-shell-B_xxhiVU.js";var f=e(t(),1),p=n();function m({words:e}){let[t,n]=(0,f.useState)(0),r=(0,f.useMemo)(()=>e.reduce((e,t)=>e.length>=t.length?e:t),[e]);return(0,f.useEffect)(()=>{let t=setInterval(()=>{n(t=>(t+1)%e.length)},2400);return()=>clearInterval(t)},[e.length]),(0,p.jsxs)(`span`,{className:`signup__rotating`,children:[(0,p.jsxs)(`span`,{className:`signup__rotating-sizer`,"aria-hidden":!0,children:[r,`.`]}),(0,p.jsx)(s,{mode:`wait`,children:(0,p.jsxs)(o.em,{initial:{opacity:0,y:16},animate:{opacity:1,y:0},exit:{opacity:0,y:-16},transition:{duration:.3,ease:`easeInOut`},children:[e[t],`.`]},e[t])})]})}var h=[`Personal Intelligence`,`Software Engineer`,`Finance Ops`,`Household Manager`,`GTM Engineer`,`Product Lead`];function g({returnTo:e}){let[t,n]=(0,f.useState)(null),o=a(e,{authIntent:`signup`});return(0,p.jsxs)(d,{children:[(0,p.jsxs)(`h1`,{className:`signup__title`,children:[`Meet your new`,(0,p.jsx)(`br`,{}),(0,p.jsx)(m,{words:h})]}),(0,p.jsx)(`p`,{className:`signup__subtitle`,children:`The most powerful assistant that can handle your work and life admin tasks.`}),(0,p.jsx)(`div`,{className:`signup__buttons`,children:(0,p.jsx)(`button`,{type:`button`,className:`signup__btn`,onClick:()=>{n(null),r(i,o,{returnTo:e,intent:`signup`}).catch(e=>{console.error(`[signup] auth flow failed:`,e),n(`Something went wrong. Please try again.`)})},children:`Continue`})}),t&&(0,p.jsx)(`p`,{className:`signup__error`,children:t}),(0,p.jsxs)(`p`,{className:`signup__footer`,children:[`Already have an account?`,` `,(0,p.jsx)(`button`,{type:`button`,className:`signup__link`,onClick:()=>{n(null),r(i,a(e),{returnTo:e}).catch(e=>{console.error(`[signup] sign-in flow failed:`,e),n(`Something went wrong. Please try again.`)})},children:`Sign in`})]}),(0,p.jsxs)(`a`,{className:`signup__download`,href:`/downloads`,children:[(0,p.jsx)(c,{size:16}),`Download for macOS`]})]})}function _(){let e=u();return e.kind===`wait`?(0,p.jsx)(d,{children:(0,p.jsx)(l,{})}):e.kind===`redirect`?e.node:(0,p.jsx)(g,{returnTo:e.returnTo})}export{_ as SignupPage};