@vellumai/web 0.10.2-dev.202606250202.4960321 → 0.10.2-staging.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (307) hide show
  1. package/dist/assets/{BundleConfirmPage-BtzL80Qk.js → BundleConfirmPage-B1RL5CT5.js} +1 -1
  2. package/dist/assets/{Combination-4Qc3vrtW.js → Combination-CDqVzelh.js} +1 -1
  3. package/dist/assets/about-page-B-yNJBih.js +1 -0
  4. package/dist/assets/{account-page-BuaP5xnq.js → account-page-CHiDb1yX.js} +1 -1
  5. package/dist/assets/{account-shell-B8rcR_zJ.js → account-shell-BBL0HqTX.js} +1 -1
  6. package/dist/assets/{add-credits-modal-DgV_qgoE.js → add-credits-modal-GSsxaybq.js} +1 -1
  7. package/dist/assets/{advanced-page-B5on8N9K.js → advanced-page-9dJbjOiT.js} +1 -1
  8. package/dist/assets/ai-page-Du6k7XV_.js +1 -0
  9. package/dist/assets/{api-2kc3MHRz.js → api-CjVG_nMi.js} +1 -1
  10. package/dist/assets/{api-key-screen-DMPyA2x8.js → api-key-screen-BBajxzG8.js} +1 -1
  11. package/dist/assets/archive-page-DDar_tND.js +1 -0
  12. package/dist/assets/assistant-api-BX_B1xSC.js +1 -0
  13. package/dist/assets/{assistant-feature-flag-store-YsdeyFTT.js → assistant-feature-flag-store-BD9zTDcP.js} +1 -1
  14. package/dist/assets/{assistant-identity-store-CKjnoLSp.js → assistant-identity-store-DaDnhbxy.js} +1 -1
  15. package/dist/assets/{assistant-status-panel-BQArifNQ.js → assistant-status-panel-CFhkAfJY.js} +1 -1
  16. package/dist/assets/auth-store-CbVvQiBR.js +7 -0
  17. package/dist/assets/billing-page-BByuYpJa.js +3 -0
  18. package/dist/assets/{bookmarks-page-DBAuJw9-.js → bookmarks-page-DyjSZPPW.js} +1 -1
  19. package/dist/assets/build-state-CMpEWWjf.js +1 -0
  20. package/dist/assets/cable-C0pEWbc5.js +1 -0
  21. package/dist/assets/{capture-error-Hr1Yo2kx.js → capture-error-AoUURkgi.js} +1 -1
  22. package/dist/assets/{checkbox-BqCzUvXM.js → checkbox-ChtGq7OI.js} +1 -1
  23. package/dist/assets/{client-feature-flag-store-CHTTYIs7.js → client-feature-flag-store-DjN8fxHA.js} +1 -1
  24. package/dist/assets/client.gen-0CkwJ2Ya.js +6 -0
  25. package/dist/assets/{command-palette-BbnaSCWH.js → command-palette-DJgHXop1.js} +1 -1
  26. package/dist/assets/command-palette-window-page-CSaRzD87.js +1 -0
  27. package/dist/assets/community-page-BuuYKT7i.js +1 -0
  28. package/dist/assets/{confirm-dialog-CfOXCE1N.js → confirm-dialog-SpCsmAdG.js} +1 -1
  29. package/dist/assets/{connect-page-BQzNnPDo.js → connect-page-B0Pym3dJ.js} +1 -1
  30. package/dist/assets/{consent-controls-Do5c-TEL.js → consent-controls-o06cSwWt.js} +1 -1
  31. package/dist/assets/{contacts-gateway-BUGZkpwV.js → contacts-gateway-11r4y5pQ.js} +1 -1
  32. package/dist/assets/contacts-page-route-YQf7Dxxo.js +1 -0
  33. package/dist/assets/conversation-queries-DF1Lujnm.js +1 -0
  34. package/dist/assets/{danger-zone-redirect-page-CyYcO_Bc.js → danger-zone-redirect-page-iCmRnyei.js} +1 -1
  35. package/dist/assets/debug-page-CXi6rNhS.js +2 -0
  36. package/dist/assets/{deploy-dialogs-Br0ew0zs.js → deploy-dialogs-DygUf1og.js} +1 -1
  37. package/dist/assets/{detail-card-Ckvb2vI7.js → detail-card-QPVpO5cj.js} +1 -1
  38. package/dist/assets/{developer-page-DtjGiPrG.js → developer-page-C5desNav.js} +1 -1
  39. package/dist/assets/devices-page-mF5RECdQ.js +1 -0
  40. package/dist/assets/dictation-overlay-page-DL5K7HYW.js +1 -0
  41. package/dist/assets/{dist-B0Gf-knw.js → dist-cZPU9ZZL.js} +1 -1
  42. package/dist/assets/document-viewer-page-C2oFS1wI.js +1 -0
  43. package/dist/assets/dollar-sign-D_XmiHA-.js +1 -0
  44. package/dist/assets/dropdown-yOV5eJnU.js +1 -0
  45. package/dist/assets/earn-credits-modal-DsuqrJTY.js +1 -0
  46. package/dist/assets/{emails-page-Ccbq3EK4.js → emails-page-Duy9jhr6.js} +1 -1
  47. package/dist/assets/{esm-DLfKHBEV.js → esm-B9FuN3Io.js} +2 -2
  48. package/dist/assets/esm-BIUrrGWd.js +2 -0
  49. package/dist/assets/esm-BT7uz_mC.js +2 -0
  50. package/dist/assets/esm-BU45yXtJ.js +2 -0
  51. package/dist/assets/esm-D51SsTmc.js +2 -0
  52. package/dist/assets/esm-KT7CwnAY.js +1 -0
  53. package/dist/assets/feature-flag-catalog-RZLmDa1F.js +1 -0
  54. package/dist/assets/file-editor-n2sYGdD-.js +1 -0
  55. package/dist/assets/general-page-BSdbq26O.js +1 -0
  56. package/dist/assets/google-logo-DNkI-jCf.js +1 -0
  57. package/dist/assets/hatching-screen-BRgjqSLd.js +1 -0
  58. package/dist/assets/home-page-route-CV_mh2wJ.js +1 -0
  59. package/dist/assets/hosting-screen--kBc2JgZ.js +1 -0
  60. package/dist/assets/identity-page-route-CDcFNfWw.js +1 -0
  61. package/dist/assets/index-BvIwFdLE.css +2 -0
  62. package/dist/assets/index-Cx6vyW7T.js +155 -0
  63. package/dist/assets/inspect-page-D03CXXMs.js +7 -0
  64. package/dist/assets/install-JGbHHiCV.js +1 -0
  65. package/dist/assets/integrations-page-BFPmyQdR.js +1 -0
  66. package/dist/assets/{intelligence-layout-C4KjZYd1.js → intelligence-layout-DgkmPrJl.js} +1 -1
  67. package/dist/assets/{keyboard-shortcuts-page-BY_1f0_3.js → keyboard-shortcuts-page-waVolRQN.js} +1 -1
  68. package/dist/assets/{library-detail-page-BNfT1xob.js → library-detail-page-eMzOqx_B.js} +1 -1
  69. package/dist/assets/library-page-BwoQ9K34.js +1 -0
  70. package/dist/assets/{local-mode-CvrNMtPF.js → local-mode-BD2zqd9I.js} +3 -3
  71. package/dist/assets/{login-flow-BwciK6K2.js → login-flow-DVsR7fEC.js} +1 -1
  72. package/dist/assets/login-page-DYLjbG5w.js +1 -0
  73. package/dist/assets/{logout-page-CLd84jyf.js → logout-page-DRRS14hP.js} +1 -1
  74. package/dist/assets/{logs-layout-DFH4BegK.js → logs-layout-CSvew4_d.js} +1 -1
  75. package/dist/assets/mcp-page-CUehr_wQ.js +1 -0
  76. package/dist/assets/{memory-router-playground-page-BVDE-RoE.js → memory-router-playground-page-A2zlGskJ.js} +1 -1
  77. package/dist/assets/menu-CdoNX1qx.js +1 -0
  78. package/dist/assets/{metric-card-C7rFPHkL.js → metric-card-CgO1F06f.js} +1 -1
  79. package/dist/assets/{mobile-sidebar-drawer-FPou_kau.js → mobile-sidebar-drawer-R6nyuXZ1.js} +1 -1
  80. package/dist/assets/{modal-D0Q3UWD0.js → modal-CHuPOsJJ.js} +1 -1
  81. package/dist/assets/mutation-error-BjiE6W0q.js +1 -0
  82. package/dist/assets/{native-file-CiaHiLEO.js → native-file-LJQTmnKy.js} +2 -2
  83. package/dist/assets/{notice-CqRgVmeL.js → notice-CynJKEow.js} +1 -1
  84. package/dist/assets/notifications-page-DcIQm_jh.js +1 -0
  85. package/dist/assets/{oauth-complete-page-6DExbSDK.js → oauth-complete-page-BJudfLeY.js} +1 -1
  86. package/dist/assets/{oauth-popup-complete-page-B9HeX4kb.js → oauth-popup-complete-page-HRhzTWe_.js} +1 -1
  87. package/dist/assets/{page-shell-CePeGTj8.js → page-shell-W5IMIXQq.js} +1 -1
  88. package/dist/assets/{pairing-page-Bo4nwkGO.js → pairing-page-DS3k_UyF.js} +1 -1
  89. package/dist/assets/panel-item-BLQE_l-g.js +1 -0
  90. package/dist/assets/{password-reset-page-0JJf9uQW.js → password-reset-page-CDvLTa8S.js} +1 -1
  91. package/dist/assets/{platform-loopback-page-VubtH5VQ.js → platform-loopback-page-CKI-92-q.js} +1 -1
  92. package/dist/assets/plugin-detail-page-THfWbuJx.js +1 -0
  93. package/dist/assets/{plugins-page-CVVbXBlP.js → plugins-page-BxfKs2Np.js} +1 -1
  94. package/dist/assets/{popover-CL-JL6vG.js → popover-BsF65jZY.js} +1 -1
  95. package/dist/assets/prechat-route-uavNUOzg.js +1 -0
  96. package/dist/assets/{prefs-BZXZwawX.js → prefs-DP4g-Qgi.js} +1 -1
  97. package/dist/assets/privacy-page-Vq50i0Wv.js +1 -0
  98. package/dist/assets/privacy-screen-1ITDKJ6D.js +1 -0
  99. package/dist/assets/{provider-callback-page-C55LbXFs.js → provider-callback-page-tWLMyImI.js} +1 -1
  100. package/dist/assets/{provider-key-CQHnRygW.js → provider-key-g87caUSW.js} +1 -1
  101. package/dist/assets/{provider-signup-page-CS0Vu9Cc.js → provider-signup-page-CBPV-1Ih.js} +1 -1
  102. package/dist/assets/proxy-l3iqYpig.js +1 -0
  103. package/dist/assets/{quick-input-page-DM-2Bywe.js → quick-input-page-CEPPTVs7.js} +1 -1
  104. package/dist/assets/react-query.gen-4ZMhZ-fj.js +1 -0
  105. package/dist/assets/{react-query.gen-rp6Krcco.js → react-query.gen-CRARj4mG.js} +1 -1
  106. package/dist/assets/{research-mock-page-D4uToJWG.js → research-mock-page-Dln6TeKV.js} +1 -1
  107. package/dist/assets/research-onboarding-route-HWXEnr-H.js +30 -0
  108. package/dist/assets/{resize-errors-DnJEbHn4.js → resize-errors-CXz-pd2h.js} +1 -1
  109. package/dist/assets/{resolved-assistants-store-Cp4J43BK.js → resolved-assistants-store-DLNFVaZL.js} +1 -1
  110. package/dist/assets/return-to-DxTXKF-C.js +1 -0
  111. package/dist/assets/{review-terms-screen-BFT5AOwc.js → review-terms-screen-DuORfqOE.js} +1 -1
  112. package/dist/assets/{schedules-BrM_F49t.js → schedules-MF0cMAPX.js} +1 -1
  113. package/dist/assets/{sdk.gen-D-_js_oC.js → sdk.gen-0RzHFsEa.js} +1 -1
  114. package/dist/assets/sdk.gen-DtKkd6hs.js +1 -0
  115. package/dist/assets/select-assistant-screen-C2pCQCeh.js +1 -0
  116. package/dist/assets/{setting-row-zXvvnio2.js → setting-row-BHlMSre_.js} +1 -1
  117. package/dist/assets/settings-layout-Co57Zw8f.js +1 -0
  118. package/dist/assets/share-feedback-modal-C4yo471J.js +1 -0
  119. package/dist/assets/{sidebar-tree-BbRpgLmx.js → sidebar-tree-D0lNnpA6.js} +1 -1
  120. package/dist/assets/signup-page-P4juei29.js +1 -0
  121. package/dist/assets/{signup-shell-BXHsln7h.js → signup-shell-CEJE1QSw.js} +1 -1
  122. package/dist/assets/skill-row-DDoJmniT.js +1 -0
  123. package/dist/assets/skills-page-KI_k-igb.js +1 -0
  124. package/dist/assets/{sound-manager-CzslfzDO.js → sound-manager-RQj5g2kL.js} +1 -1
  125. package/dist/assets/{sounds-page-D0Zt6BWH.js → sounds-page-DFXhvf_o.js} +1 -1
  126. package/dist/assets/{src-nhkvkeh0.js → src-BJj2O5XB.js} +39 -39
  127. package/dist/assets/{step-indicator-dots-ByiUn5IB.js → step-indicator-dots-Bx_0xTIr.js} +1 -1
  128. package/dist/assets/subagent-detail-panel-eXMmoVu4.js +4 -0
  129. package/dist/assets/subagent-status-DOJQZKTk.js +1 -0
  130. package/dist/assets/{system-events-page-CDtyAvHW.js → system-events-page-BJJteZri.js} +1 -1
  131. package/dist/assets/{system-events-redirect-page-CE7VT7tY.js → system-events-redirect-page-CheSz42h.js} +1 -1
  132. package/dist/assets/{tag-B_-QAvJF.js → tag-CE_o2aao.js} +1 -1
  133. package/dist/assets/{tiptap-document-editor-Dr-zndMZ.js → tiptap-document-editor-C8FlNAsc.js} +1 -1
  134. package/dist/assets/{toast-2TW5tj1Y.js → toast-CxaZ5f1d.js} +1 -1
  135. package/dist/assets/tool-detail-panel-DgVn-kKw.js +2 -0
  136. package/dist/assets/trace-page-CZICq31J.js +1 -0
  137. package/dist/assets/{upgrade-cancel-page-CdGnI2Kf.js → upgrade-cancel-page-BQJOrigy.js} +1 -1
  138. package/dist/assets/{upgrade-success-page-D0m-08sp.js → upgrade-success-page-BPRZMLDu.js} +1 -1
  139. package/dist/assets/{usage-page-BcTmYnm2.js → usage-page-DU36h2RZ.js} +1 -1
  140. package/dist/assets/{use-active-assistant-id-Dyfjqq4l.js → use-active-assistant-id-BlwRimQH.js} +1 -1
  141. package/dist/assets/{use-bus-subscription-BbiZXm1u.js → use-bus-subscription-D-1qIPnj.js} +1 -1
  142. package/dist/assets/use-is-org-ready-CRkh60tU.js +1 -0
  143. package/dist/assets/{use-onboarding-login-CyxtWkbT.js → use-onboarding-login-BZ4ismb6.js} +1 -1
  144. package/dist/assets/{use-plugin-drift-BozvaLNX.js → use-plugin-drift-C3gz_rng.js} +1 -1
  145. package/dist/assets/{use-reduced-motion-ChB7nOGe.js → use-reduced-motion-DgX4o6QR.js} +1 -1
  146. package/dist/assets/{utils-IBnUZTqY.js → utils-DugRzWBW.js} +1 -1
  147. package/dist/assets/{viewer-store-Dead64xY.js → viewer-store-9Ag85lFC.js} +1 -1
  148. package/dist/assets/{voice-page-Brj9yMPU.js → voice-page-DB2h9uqJ.js} +1 -1
  149. package/dist/assets/{weather-forecast-display-DK0QRe9O.js → weather-forecast-display-DoCG5fqI.js} +1 -1
  150. package/dist/assets/{web-Dd6cS3PL.js → web-B4ULoQq5.js} +1 -1
  151. package/dist/assets/{web-DfbsgY66.js → web-ByMNu3A_.js} +1 -1
  152. package/dist/assets/{web-DbJBgRfO.js → web-CUTiBnsF.js} +1 -1
  153. package/dist/assets/{web-Dy2Asku5.js → web-CvCsdCeT.js} +1 -1
  154. package/dist/assets/{web-vUgUvidH.js → web-CyTCBnAZ.js} +1 -1
  155. package/dist/assets/{web-DU1iYtUx.js → web-DTFLfPeG.js} +1 -1
  156. package/dist/assets/{web-Drsd2-VM.js → web-DuA0h7oK.js} +1 -1
  157. package/dist/assets/{welcome-screen-CVE5a83H.js → welcome-screen-z3RULgvo.js} +1 -1
  158. package/dist/assets/workflow-detail-panel-uiydoHie.js +1 -0
  159. package/dist/assets/workspace-page-9B98Z90n.js +1 -0
  160. package/dist/index.html +102 -112
  161. package/package.json +1 -1
  162. package/dist/assets/AnimatePresence-CgXwEO42.js +0 -9
  163. package/dist/assets/about-page-TvZeB1h8.js +0 -1
  164. package/dist/assets/ai-page-IsJ-cgXs.js +0 -1
  165. package/dist/assets/app-info-DENEBxVU.js +0 -1
  166. package/dist/assets/archive-page-DgPlRFT6.js +0 -1
  167. package/dist/assets/assistant-api-DROTS3Y9.js +0 -1
  168. package/dist/assets/auth-store-oJs_d4fj.js +0 -7
  169. package/dist/assets/billing-page-lxX37Zx6.js +0 -3
  170. package/dist/assets/brain-Bs6LnfHO.js +0 -1
  171. package/dist/assets/browser-CcFF_rkO.js +0 -2
  172. package/dist/assets/build-state-FmoCmv9I.js +0 -1
  173. package/dist/assets/check-D6WkI0gF.js +0 -1
  174. package/dist/assets/command-palette-window-page-DPdV2CKN.js +0 -1
  175. package/dist/assets/community-page-Beft2_No.js +0 -1
  176. package/dist/assets/contacts-page-route-DQgbwwVM.js +0 -1
  177. package/dist/assets/conversation-list-fetchers-UPVZq_6O.js +0 -1
  178. package/dist/assets/debug-page-C-YgZ5aq.js +0 -2
  179. package/dist/assets/devices-page-kVmGDH2z.js +0 -1
  180. package/dist/assets/diagnostics-BEB4VPwC.js +0 -1
  181. package/dist/assets/dictation-overlay-page-CEqAIZ9M.js +0 -1
  182. package/dist/assets/document-viewer-page-Dn04hR-b.js +0 -1
  183. package/dist/assets/dropdown-B_ZdTSJl.js +0 -1
  184. package/dist/assets/earn-credits-modal-om6AmiLt.js +0 -1
  185. package/dist/assets/esm-5gU3bjzq.js +0 -2
  186. package/dist/assets/esm-BCyLKT7G.js +0 -2
  187. package/dist/assets/esm-DjoRMdid.js +0 -2
  188. package/dist/assets/esm-THPAbEDt.js +0 -1
  189. package/dist/assets/esm-hCttZxWP.js +0 -2
  190. package/dist/assets/feature-flag-catalog-Ca-x1WYO.js +0 -1
  191. package/dist/assets/file-editor-BGrHFXQ1.js +0 -1
  192. package/dist/assets/file-text-CmK9LY1p.js +0 -1
  193. package/dist/assets/general-page-BROLPFZa.js +0 -1
  194. package/dist/assets/hatching-screen-nS9d6q2_.js +0 -1
  195. package/dist/assets/home-page-route-Cp9vIigo.js +0 -1
  196. package/dist/assets/hosting-screen-szaQpNil.js +0 -1
  197. package/dist/assets/identity-page-route-CWjtv62i.js +0 -1
  198. package/dist/assets/index-BB-XH5wu.css +0 -2
  199. package/dist/assets/index-rIl5b97O.js +0 -132
  200. package/dist/assets/inspect-page-HZMp12ns.js +0 -7
  201. package/dist/assets/install-BmOK1iEQ.js +0 -1
  202. package/dist/assets/integrations-page-yLIdZKZP.js +0 -1
  203. package/dist/assets/library-page-JbDdQDtt.js +0 -1
  204. package/dist/assets/list-row-Cw9JYESP.js +0 -1
  205. package/dist/assets/login-page-RYn91uzO.js +0 -1
  206. package/dist/assets/menu-C_97pis4.js +0 -1
  207. package/dist/assets/messages-DHDZ32NT.js +0 -13
  208. package/dist/assets/monitor-D2okHi8o.js +0 -1
  209. package/dist/assets/mutation-error-CAcai9_z.js +0 -1
  210. package/dist/assets/notifications-page-BSNcFUJy.js +0 -1
  211. package/dist/assets/panel-item-nGTDevWP.js +0 -1
  212. package/dist/assets/plugin-detail-page-DSmVSBIp.js +0 -1
  213. package/dist/assets/prechat-B28Vzu55.js +0 -1
  214. package/dist/assets/prechat-route-BgV2NnZs.js +0 -1
  215. package/dist/assets/privacy-page-IhPp_RE1.js +0 -1
  216. package/dist/assets/privacy-screen-Lc49bJPE.js +0 -1
  217. package/dist/assets/proxy-DmIh4F51.js +0 -1
  218. package/dist/assets/react-query.gen-CQLyoqYk.js +0 -1
  219. package/dist/assets/research-onboarding-route-RE25K7sJ.js +0 -36
  220. package/dist/assets/return-to-ByvaXBKr.js +0 -1
  221. package/dist/assets/risk-badge-BxVp711u.js +0 -1
  222. package/dist/assets/sdk.gen-1aYqVbMj.js +0 -6
  223. package/dist/assets/select-assistant-screen-Jq5OQDIA.js +0 -1
  224. package/dist/assets/settings-layout-BQ-bjNVw.js +0 -1
  225. package/dist/assets/share-feedback-modal-DH4kUtEZ.js +0 -1
  226. package/dist/assets/signup-page-Bsuta-QU.js +0 -1
  227. package/dist/assets/skills-page-C4xTQfet.js +0 -1
  228. package/dist/assets/subagent-detail-panel-CdKUabDE.js +0 -4
  229. package/dist/assets/subagent-store-BLHGkTJR.js +0 -3
  230. package/dist/assets/tool-call-status-DTV5jmaU.js +0 -1
  231. package/dist/assets/tool-detail-panel-C8kXwfvL.js +0 -2
  232. package/dist/assets/trace-page-C6V3XVcA.js +0 -1
  233. package/dist/assets/use-is-org-ready-Cca4wJgu.js +0 -1
  234. package/dist/assets/user-plus-C0OyQU83.js +0 -1
  235. package/dist/assets/workflow-detail-panel-BVtvomqV.js +0 -1
  236. package/dist/assets/workflow-status-DmbjJPT4.js +0 -1
  237. package/dist/assets/workspace-page-CTy_xmmd.js +0 -1
  238. /package/dist/assets/{api-errors-CveHbhgb.js → api-errors-D3EsNrwn.js} +0 -0
  239. /package/dist/assets/{avatar-bundled-components-DQodAnJD.js → avatar-bundled-components-f4-fradg.js} +0 -0
  240. /package/dist/assets/{avatar-svg-compositor-CEmN7KGI.js → avatar-svg-compositor-DMT4wmUm.js} +0 -0
  241. /package/dist/assets/{bookmark-C3S-p0MQ.js → bookmark-C8arQ3wm.js} +0 -0
  242. /package/dist/assets/{bug-DDcuQ3au.js → bug-BuL3O3_2.js} +0 -0
  243. /package/dist/assets/{build.umd-BrOC7S1V.js → build.umd-CPG-O6Se.js} +0 -0
  244. /package/dist/assets/{calendar-CpgH8CqM.js → calendar-BCNBN7PC.js} +0 -0
  245. /package/dist/assets/{chevron-left-DghyKSEE.js → chevron-left-o_oJAd6A.js} +0 -0
  246. /package/dist/assets/{chevron-right-B6vEpVY0.js → chevron-right-BNHlGCTg.js} +0 -0
  247. /package/dist/assets/{chevron-up-BRZN6p_l.js → chevron-up-BnW-hcOL.js} +0 -0
  248. /package/dist/assets/{circle-alert-DvNg50UK.js → circle-alert-bz1ccYRI.js} +0 -0
  249. /package/dist/assets/{circle-check-DzlJxj_M.js → circle-check-DBzb54Kz.js} +0 -0
  250. /package/dist/assets/{client.gen-Cs6pCK0s.js → client.gen-DzaL5PKF.js} +0 -0
  251. /package/dist/assets/{cloud-off-rAv4OHmv.js → cloud-off-BWmMU3G-.js} +0 -0
  252. /package/dist/assets/{code-aMX9iMYa.js → code-Bju_p7d-.js} +0 -0
  253. /package/dist/assets/{composer-focus-Bp1AiP29.js → composer-focus-D-P0cGAF.js} +0 -0
  254. /package/dist/assets/{conversation-selection-CtKjA5Ni.js → conversation-selection-CrdMTnwx.js} +0 -0
  255. /package/dist/assets/{conversation-store-DK-7gFAt.js → conversation-store-I2d3A6Tv.js} +0 -0
  256. /package/dist/assets/{cpu-CiHv3fhs.js → cpu-DpzMm9_m.js} +0 -0
  257. /package/dist/assets/{credit-card-BKRB1ZIi.js → credit-card-CN7yFHhB.js} +0 -0
  258. /package/dist/assets/{definitions-BVEXXekp.js → definitions-B4RRVbRh.js} +0 -0
  259. /package/dist/assets/{dist-BTp54SIT.js → dist-3i_EPbLt.js} +0 -0
  260. /package/dist/assets/{dist-cApvLul2.js → dist-BQHdyjQ3.js} +0 -0
  261. /package/dist/assets/{domain-field-DYwuCpup.js → domain-field-ChoXVdlk.js} +0 -0
  262. /package/dist/assets/{edit-chat-session-DJpqkkos.js → edit-chat-session-DXSCprPw.js} +0 -0
  263. /package/dist/assets/{effective-timezone-DrYGH2Lb.js → effective-timezone-DBaPUyaX.js} +0 -0
  264. /package/dist/assets/{emoji-catalog-data-D9cXGKYH.js → emoji-catalog-data-C0EjtsOi.js} +0 -0
  265. /package/dist/assets/{environment-store-DXSuX0CL.js → environment-store-DoO5ZqXZ.js} +0 -0
  266. /package/dist/assets/{event-bus-Dl7-I4aL.js → event-bus-CFhOgvB8.js} +0 -0
  267. /package/dist/assets/{external-link-DPAtkBJ2.js → external-link-DAovIsxF.js} +0 -0
  268. /package/dist/assets/{format-0qTDTDhA.js → format-B2A6k4bb.js} +0 -0
  269. /package/dist/assets/{format-date-C-eCaBOj.js → format-date-Cx9GZ7-D.js} +0 -0
  270. /package/dist/assets/{format-file-size-Cnq-CdFe.js → format-file-size-Br1LCKQi.js} +0 -0
  271. /package/dist/assets/{globe-DYF_lSGm.js → globe-CfKniRIP.js} +0 -0
  272. /package/dist/assets/{haptics-CXHZxyAg.js → haptics-BCTVEX6s.js} +0 -0
  273. /package/dist/assets/{hard-drive-D7_5VMhi.js → hard-drive-DggmyfjR.js} +0 -0
  274. /package/dist/assets/{impersonate-version-flag-n-4oNLiO.js → impersonate-version-flag-BksY65Mo.js} +0 -0
  275. /package/dist/assets/{info-_OtUK1cX.js → info-DXbzDupm.js} +0 -0
  276. /package/dist/assets/{input-C8kfrq9r.js → input-Ch7OC6ME.js} +0 -0
  277. /package/dist/assets/{lib-CqoczjxJ.js → lib-BVvJNDCQ.js} +0 -0
  278. /package/dist/assets/{link-2-CaszbD7P.js → link-2-Dmka5LJV.js} +0 -0
  279. /package/dist/assets/{llm-dimension-Db-cwepb.js → llm-dimension-ovOt_D6t.js} +0 -0
  280. /package/dist/assets/{loader-circle-IIzBGiwm.js → loader-circle-Cw1KvvLK.js} +0 -0
  281. /package/dist/assets/{log-in-2iOsufxq.js → log-in-CUDpYpYW.js} +0 -0
  282. /package/dist/assets/{minimize-2-JE_UHZlJ.js → minimize-2-CPmn1RIm.js} +0 -0
  283. /package/dist/assets/{misc-BN2o2MEB.js → misc-Dm72afTZ.js} +0 -0
  284. /package/dist/assets/{moon-CK8MXzOo.js → moon-Be4Pgk5X.js} +0 -0
  285. /package/dist/assets/{native-deep-link-BYNI6pkW.js → native-deep-link-CYaeyOfj.js} +0 -0
  286. /package/dist/assets/{pdf-BJGZkYgE.js → pdf-DhvXjkis.js} +0 -0
  287. /package/dist/assets/{pencil-DbB9rxpY.js → pencil-Dm2eFMe3.js} +0 -0
  288. /package/dist/assets/{prechat-names-De-dVGbT.js → prechat-names-CkLrL-Jh.js} +0 -0
  289. /package/dist/assets/{progress-bar-DIFlWPPg.js → progress-bar-DFH5aT1D.js} +0 -0
  290. /package/dist/assets/{public-asset-Fx_laYnf.js → public-asset-CH9GPeL_.js} +0 -0
  291. /package/dist/assets/{reduced-motion-DYlLlcUm.js → reduced-motion-8QnGN6lg.js} +0 -0
  292. /package/dist/assets/{refresh-cw-Bf6LV0kG.js → refresh-cw-YXbpNg95.js} +0 -0
  293. /package/dist/assets/{routes-DVqkwUEe.js → routes-B9xcBuuC.js} +0 -0
  294. /package/dist/assets/{save-DEBQ_gbb.js → save-CQ2-kSlv.js} +0 -0
  295. /package/dist/assets/{semver-yC_Iq9co.js → semver-aan9RUyA.js} +0 -0
  296. /package/dist/assets/{sparkles-BICoewVE.js → sparkles-C8hCShdb.js} +0 -0
  297. /package/dist/assets/{stat-square-B0S3fO7O.js → stat-square-CraPxMcl.js} +0 -0
  298. /package/dist/assets/{toggle-X_kQW5my.js → toggle-95p73HGd.js} +0 -0
  299. /package/dist/assets/{triangle-alert-DKOyShqD.js → triangle-alert-AqQQTwUZ.js} +0 -0
  300. /package/dist/assets/{triangle-alert-Bz1PpciW.js → triangle-alert-DnZC45c-.js} +0 -0
  301. /package/dist/assets/{typed-storage-Dctd_K9F.js → typed-storage-qVehRaS3.js} +0 -0
  302. /package/dist/assets/{usage-window-FKG0JDAT.js → usage-window-DbWHZkbr.js} +0 -0
  303. /package/dist/assets/{use-is-mobile-Cy10kl9u.js → use-is-mobile-D_0cze0t.js} +0 -0
  304. /package/dist/assets/{x-KVxA2ZL0.js → x-BeVbiDS2.js} +0 -0
  305. /package/dist/assets/{x-C8bCmIhD.js → x-DE8JhiDZ.js} +0 -0
  306. /package/dist/assets/{xterm-7Iq3jX3h.js → xterm-B74sC241.js} +0 -0
  307. /package/dist/assets/{xterm-addon-fit-XFgHFTPw.js → xterm-addon-fit-By7PlC-c.js} +0 -0
@@ -1,4 +1,4 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-DJZBPgpf.js";import{C as n,E as r,T as i,o as a,s as o,y as s}from"./button-D7s2Q_uG.js";import{t as c}from"./jsx-runtime-CVSDxk6A.js";import{a as l,o as u}from"./cn-DvW5mxZR.js";import{n as d,t as f}from"./dist-cApvLul2.js";import{a as p,i as m,n as h,r as ee,t as g}from"./Combination-4Qc3vrtW.js";var _=e(t(),1),v=c();function y(e){let t=b(e),n=_.forwardRef((e,n)=>{let{children:r,...i}=e,a=_.Children.toArray(r),o=a.find(te);if(o){let e=o.props.children,r=a.map(t=>t===o?_.Children.count(e)>1?_.Children.only(null):_.isValidElement(e)?e.props.children:null:t);return(0,v.jsx)(t,{...i,ref:n,children:_.isValidElement(e)?_.cloneElement(e,void 0,r):null})}return(0,v.jsx)(t,{...i,ref:n,children:r})});return n.displayName=`${e}.Slot`,n}function b(e){let t=_.forwardRef((e,t)=>{let{children:n,...r}=e;if(_.isValidElement(n)){let e=C(n),i=S(r,n.props);return n.type!==_.Fragment&&(i.ref=t?l(t,e):e),_.cloneElement(n,i)}return _.Children.count(n)>1?_.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var x=Symbol(`radix.slottable`);function te(e){return _.isValidElement(e)&&typeof e.type==`function`&&`__radixId`in e.type&&e.type.__radixId===x}function S(e,t){let n={...t};for(let r in t){let i=e[r],a=t[r];/^on[A-Z]/.test(r)?i&&a?n[r]=(...e)=>{let t=a(...e);return i(...e),t}:i&&(n[r]=i):r===`style`?n[r]={...i,...a}:r===`className`&&(n[r]=[i,a].filter(Boolean).join(` `))}return{...e,...n}}function C(e){let t=Object.getOwnPropertyDescriptor(e.props,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var w=`Dialog`,[T,ne]=r(w),[E,D]=T(w),O=e=>{let{__scopeDialog:t,children:n,open:r,defaultOpen:i,onOpenChange:o,modal:c=!0}=e,l=_.useRef(null),u=_.useRef(null),[d,f]=a({prop:r,defaultProp:i??!1,onChange:o,caller:w});return(0,v.jsx)(E,{scope:t,triggerRef:l,contentRef:u,contentId:s(),titleId:s(),descriptionId:s(),open:d,onOpenChange:f,onOpenToggle:_.useCallback(()=>f(e=>!e),[f]),modal:c,children:n})};O.displayName=w;var k=`DialogTrigger`,A=_.forwardRef((e,t)=>{let{__scopeDialog:r,...i}=e,a=D(k,r),o=u(t,a.triggerRef);return(0,v.jsx)(n.button,{type:`button`,"aria-haspopup":`dialog`,"aria-expanded":a.open,"aria-controls":a.contentId,"data-state":X(a.open),...i,ref:o,onClick:d(e.onClick,a.onOpenToggle)})});A.displayName=k;var j=`DialogPortal`,[M,N]=T(j,{forceMount:void 0}),P=e=>{let{__scopeDialog:t,forceMount:n,children:r,container:i}=e,a=D(j,t);return(0,v.jsx)(M,{scope:t,forceMount:n,children:_.Children.map(r,e=>(0,v.jsx)(f,{present:n||a.open,children:(0,v.jsx)(o,{asChild:!0,container:i,children:e})}))})};P.displayName=j;var F=`DialogOverlay`,I=_.forwardRef((e,t)=>{let n=N(F,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,a=D(F,e.__scopeDialog);return a.modal?(0,v.jsx)(f,{present:r||a.open,children:(0,v.jsx)(R,{...i,ref:t})}):null});I.displayName=F;var L=y(`DialogOverlay.RemoveScroll`),R=_.forwardRef((e,t)=>{let{__scopeDialog:r,...i}=e,a=D(F,r);return(0,v.jsx)(g,{as:L,allowPinchZoom:!0,shards:[a.contentRef],children:(0,v.jsx)(n.div,{"data-state":X(a.open),...i,ref:t,style:{pointerEvents:`auto`,...i.style}})})}),z=`DialogContent`,B=_.forwardRef((e,t)=>{let n=N(z,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,a=D(z,e.__scopeDialog);return(0,v.jsx)(f,{present:r||a.open,children:a.modal?(0,v.jsx)(V,{...i,ref:t}):(0,v.jsx)(H,{...i,ref:t})})});B.displayName=z;var V=_.forwardRef((e,t)=>{let n=D(z,e.__scopeDialog),r=_.useRef(null),i=u(t,n.contentRef,r);return _.useEffect(()=>{let e=r.current;if(e)return h(e)},[]),(0,v.jsx)(U,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:d(e.onCloseAutoFocus,e=>{e.preventDefault(),n.triggerRef.current?.focus()}),onPointerDownOutside:d(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0;(t.button===2||n)&&e.preventDefault()}),onFocusOutside:d(e.onFocusOutside,e=>e.preventDefault())})}),H=_.forwardRef((e,t)=>{let n=D(z,e.__scopeDialog),r=_.useRef(!1),i=_.useRef(!1);return(0,v.jsx)(U,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(r.current||n.triggerRef.current?.focus(),t.preventDefault()),r.current=!1,i.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(r.current=!0,t.detail.originalEvent.type===`pointerdown`&&(i.current=!0));let a=t.target;n.triggerRef.current?.contains(a)&&t.preventDefault(),t.detail.originalEvent.type===`focusin`&&i.current&&t.preventDefault()}})}),U=_.forwardRef((e,t)=>{let{__scopeDialog:n,trapFocus:r,onOpenAutoFocus:i,onCloseAutoFocus:a,...o}=e,s=D(z,n),c=_.useRef(null),l=u(t,c);return m(),(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(ee,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:i,onUnmountAutoFocus:a,children:(0,v.jsx)(p,{role:`dialog`,id:s.contentId,"aria-describedby":s.descriptionId,"aria-labelledby":s.titleId,"data-state":X(s.open),...o,ref:l,onDismiss:()=>s.onOpenChange(!1)})}),(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(ie,{titleId:s.titleId}),(0,v.jsx)(ae,{contentRef:c,descriptionId:s.descriptionId})]})]})}),W=`DialogTitle`,G=_.forwardRef((e,t)=>{let{__scopeDialog:r,...i}=e,a=D(W,r);return(0,v.jsx)(n.h2,{id:a.titleId,...i,ref:t})});G.displayName=W;var K=`DialogDescription`,q=_.forwardRef((e,t)=>{let{__scopeDialog:r,...i}=e,a=D(K,r);return(0,v.jsx)(n.p,{id:a.descriptionId,...i,ref:t})});q.displayName=K;var J=`DialogClose`,Y=_.forwardRef((e,t)=>{let{__scopeDialog:r,...i}=e,a=D(J,r);return(0,v.jsx)(n.button,{type:`button`,...i,ref:t,onClick:d(e.onClick,()=>a.onOpenChange(!1))})});Y.displayName=J;function X(e){return e?`open`:`closed`}var Z=`DialogTitleWarning`,[re,Q]=i(Z,{contentName:z,titleName:W,docsSlug:`dialog`}),ie=({titleId:e})=>{let t=Q(Z),n=`\`${t.contentName}\` requires a \`${t.titleName}\` for the component to be accessible for screen reader users.
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-DJZBPgpf.js";import{C as n,E as r,T as i,o as a,s as o,y as s}from"./button-D7s2Q_uG.js";import{t as c}from"./jsx-runtime-CVSDxk6A.js";import{a as l,o as u}from"./cn-DvW5mxZR.js";import{n as d,t as f}from"./dist-BQHdyjQ3.js";import{a as p,i as m,n as h,r as ee,t as g}from"./Combination-CDqVzelh.js";var _=e(t(),1),v=c();function y(e){let t=b(e),n=_.forwardRef((e,n)=>{let{children:r,...i}=e,a=_.Children.toArray(r),o=a.find(te);if(o){let e=o.props.children,r=a.map(t=>t===o?_.Children.count(e)>1?_.Children.only(null):_.isValidElement(e)?e.props.children:null:t);return(0,v.jsx)(t,{...i,ref:n,children:_.isValidElement(e)?_.cloneElement(e,void 0,r):null})}return(0,v.jsx)(t,{...i,ref:n,children:r})});return n.displayName=`${e}.Slot`,n}function b(e){let t=_.forwardRef((e,t)=>{let{children:n,...r}=e;if(_.isValidElement(n)){let e=C(n),i=S(r,n.props);return n.type!==_.Fragment&&(i.ref=t?l(t,e):e),_.cloneElement(n,i)}return _.Children.count(n)>1?_.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var x=Symbol(`radix.slottable`);function te(e){return _.isValidElement(e)&&typeof e.type==`function`&&`__radixId`in e.type&&e.type.__radixId===x}function S(e,t){let n={...t};for(let r in t){let i=e[r],a=t[r];/^on[A-Z]/.test(r)?i&&a?n[r]=(...e)=>{let t=a(...e);return i(...e),t}:i&&(n[r]=i):r===`style`?n[r]={...i,...a}:r===`className`&&(n[r]=[i,a].filter(Boolean).join(` `))}return{...e,...n}}function C(e){let t=Object.getOwnPropertyDescriptor(e.props,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var w=`Dialog`,[T,ne]=r(w),[E,D]=T(w),O=e=>{let{__scopeDialog:t,children:n,open:r,defaultOpen:i,onOpenChange:o,modal:c=!0}=e,l=_.useRef(null),u=_.useRef(null),[d,f]=a({prop:r,defaultProp:i??!1,onChange:o,caller:w});return(0,v.jsx)(E,{scope:t,triggerRef:l,contentRef:u,contentId:s(),titleId:s(),descriptionId:s(),open:d,onOpenChange:f,onOpenToggle:_.useCallback(()=>f(e=>!e),[f]),modal:c,children:n})};O.displayName=w;var k=`DialogTrigger`,A=_.forwardRef((e,t)=>{let{__scopeDialog:r,...i}=e,a=D(k,r),o=u(t,a.triggerRef);return(0,v.jsx)(n.button,{type:`button`,"aria-haspopup":`dialog`,"aria-expanded":a.open,"aria-controls":a.contentId,"data-state":X(a.open),...i,ref:o,onClick:d(e.onClick,a.onOpenToggle)})});A.displayName=k;var j=`DialogPortal`,[M,N]=T(j,{forceMount:void 0}),P=e=>{let{__scopeDialog:t,forceMount:n,children:r,container:i}=e,a=D(j,t);return(0,v.jsx)(M,{scope:t,forceMount:n,children:_.Children.map(r,e=>(0,v.jsx)(f,{present:n||a.open,children:(0,v.jsx)(o,{asChild:!0,container:i,children:e})}))})};P.displayName=j;var F=`DialogOverlay`,I=_.forwardRef((e,t)=>{let n=N(F,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,a=D(F,e.__scopeDialog);return a.modal?(0,v.jsx)(f,{present:r||a.open,children:(0,v.jsx)(R,{...i,ref:t})}):null});I.displayName=F;var L=y(`DialogOverlay.RemoveScroll`),R=_.forwardRef((e,t)=>{let{__scopeDialog:r,...i}=e,a=D(F,r);return(0,v.jsx)(g,{as:L,allowPinchZoom:!0,shards:[a.contentRef],children:(0,v.jsx)(n.div,{"data-state":X(a.open),...i,ref:t,style:{pointerEvents:`auto`,...i.style}})})}),z=`DialogContent`,B=_.forwardRef((e,t)=>{let n=N(z,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,a=D(z,e.__scopeDialog);return(0,v.jsx)(f,{present:r||a.open,children:a.modal?(0,v.jsx)(V,{...i,ref:t}):(0,v.jsx)(H,{...i,ref:t})})});B.displayName=z;var V=_.forwardRef((e,t)=>{let n=D(z,e.__scopeDialog),r=_.useRef(null),i=u(t,n.contentRef,r);return _.useEffect(()=>{let e=r.current;if(e)return h(e)},[]),(0,v.jsx)(U,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:d(e.onCloseAutoFocus,e=>{e.preventDefault(),n.triggerRef.current?.focus()}),onPointerDownOutside:d(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0;(t.button===2||n)&&e.preventDefault()}),onFocusOutside:d(e.onFocusOutside,e=>e.preventDefault())})}),H=_.forwardRef((e,t)=>{let n=D(z,e.__scopeDialog),r=_.useRef(!1),i=_.useRef(!1);return(0,v.jsx)(U,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(r.current||n.triggerRef.current?.focus(),t.preventDefault()),r.current=!1,i.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(r.current=!0,t.detail.originalEvent.type===`pointerdown`&&(i.current=!0));let a=t.target;n.triggerRef.current?.contains(a)&&t.preventDefault(),t.detail.originalEvent.type===`focusin`&&i.current&&t.preventDefault()}})}),U=_.forwardRef((e,t)=>{let{__scopeDialog:n,trapFocus:r,onOpenAutoFocus:i,onCloseAutoFocus:a,...o}=e,s=D(z,n),c=_.useRef(null),l=u(t,c);return m(),(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(ee,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:i,onUnmountAutoFocus:a,children:(0,v.jsx)(p,{role:`dialog`,id:s.contentId,"aria-describedby":s.descriptionId,"aria-labelledby":s.titleId,"data-state":X(s.open),...o,ref:l,onDismiss:()=>s.onOpenChange(!1)})}),(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(ie,{titleId:s.titleId}),(0,v.jsx)(ae,{contentRef:c,descriptionId:s.descriptionId})]})]})}),W=`DialogTitle`,G=_.forwardRef((e,t)=>{let{__scopeDialog:r,...i}=e,a=D(W,r);return(0,v.jsx)(n.h2,{id:a.titleId,...i,ref:t})});G.displayName=W;var K=`DialogDescription`,q=_.forwardRef((e,t)=>{let{__scopeDialog:r,...i}=e,a=D(K,r);return(0,v.jsx)(n.p,{id:a.descriptionId,...i,ref:t})});q.displayName=K;var J=`DialogClose`,Y=_.forwardRef((e,t)=>{let{__scopeDialog:r,...i}=e,a=D(J,r);return(0,v.jsx)(n.button,{type:`button`,...i,ref:t,onClick:d(e.onClick,()=>a.onOpenChange(!1))})});Y.displayName=J;function X(e){return e?`open`:`closed`}var Z=`DialogTitleWarning`,[re,Q]=i(Z,{contentName:z,titleName:W,docsSlug:`dialog`}),ie=({titleId:e})=>{let t=Q(Z),n=`\`${t.contentName}\` requires a \`${t.titleName}\` for the component to be accessible for screen reader users.
2
2
 
3
3
  If you want to hide the \`${t.titleName}\`, you can wrap it with our VisuallyHidden component.
4
4
 
@@ -0,0 +1 @@
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-DJZBPgpf.js";import{d as n,p as r}from"./chunk-5KNZJZUH-DdS6bb-3.js";import{t as i}from"./jsx-runtime-CVSDxk6A.js";import{t as a}from"./typography-BscuIPxA.js";import"./src-BJj2O5XB.js";import{n as o}from"./resolved-assistants-store-DLNFVaZL.js";import{t as s}from"./loader-circle-Cw1KvvLK.js";import{dt as c,ft as l,ut as u}from"./sdk.gen-DtKkd6hs.js";import{a as d}from"./routes-B9xcBuuC.js";import{t as f}from"./use-bus-subscription-D-1qIPnj.js";import{n as p}from"./viewer-store-9Ag85lFC.js";import{r as m,t as h}from"./edit-chat-session-DXSCprPw.js";import{$ as g}from"./index-Cx6vyW7T.js";var _=e(t(),1);function v({surfaceId:e,enabled:t,onCommentsChanged:n}){let r=(0,_.useRef)(n);return(0,_.useLayoutEffect)(()=>{r.current=n},[n]),(0,_.useCallback)(n=>{if(!t)return;let i=n.message;switch(i.type){case`document_comment_created`:case`document_comment_resolved`:case`document_comment_reopened`:case`document_comment_deleted`:i.surfaceId===e&&r.current();break;default:break}},[e,t])}var y=i();function b(){let{surfaceId:e}=r(),t=n(),i=o.use.activeAssistantId(),[b,x]=(0,_.useState)(null),[S,C]=(0,_.useState)(!0),[w,T]=(0,_.useState)(null),E=(0,_.useRef)(null);(0,_.useEffect)(()=>{if(!e){T(`No document ID provided.`),C(!1);return}if(!i)return;let t=!1;return(async()=>{try{let{data:n}=await c({path:{assistant_id:i,id:e},throwOnError:!0});if(t)return;x(n)}catch{t||T(`Failed to load document.`)}finally{t||C(!1)}})(),()=>{t=!0}},[e,i]);let D=(0,_.useCallback)(()=>{E.current?.refreshComments()},[]);f(`sse.event`,v({surfaceId:e??``,enabled:!!e,onCommentsChanged:D}));let O=(0,_.useCallback)(()=>{t(-1)},[t]),k=(0,_.useCallback)(async()=>{if(!b||!i||!e)return;let n=b.conversationId||h(i,e)||(typeof globalThis.crypto?.randomUUID==`function`?globalThis.crypto.randomUUID():`draft-${Date.now()}-${Math.random().toString(16).slice(2)}`);if(m(i,e,n),n!==b.conversationId)try{await u({path:{assistant_id:i,id:e},body:{conversationId:n},throwOnError:!0})}catch{}p.getState().openDocument(),p.getState().setLoadedDocument({surfaceId:b.surfaceId,conversationId:n,documentName:b.title,content:b.content});let r=`Please review and address my comments on "${b.title}".`;t(`${d.conversation(n)}?prompt=${encodeURIComponent(r)}`)},[b,i,e,t]),A=(0,_.useCallback)(async()=>{if(!b||!i)return;let{data:e,response:t}=await l({path:{assistant_id:i,id:b.surfaceId},throwOnError:!1,parseAs:`blob`});if(!t?.ok||!e)return;let n=URL.createObjectURL(e);Object.assign(document.createElement(`a`),{href:n,download:`${b.title||`document`}.pdf`}).click(),URL.revokeObjectURL(n)},[b,i]);return S?(0,y.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,y.jsx)(s,{size:24,className:`animate-spin`,style:{color:`var(--content-tertiary)`}})}):w||!b||!i?(0,y.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,y.jsx)(a,{variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,children:w??`Document not found.`})}):(0,y.jsx)(g,{surfaceId:b.surfaceId,assistantId:i,conversationId:b.conversationId,documentName:b.title,content:b.content,onClose:O,onExport:A,onSubmitFeedback:k,handleRef:E})}export{b as DocumentViewerPage};
@@ -0,0 +1 @@
1
+ import{t as e}from"./createLucideIcon-BlMXrA59.js";var t=e(`dollar-sign`,[[`line`,{x1:`12`,x2:`12`,y1:`2`,y2:`22`,key:`7eqyqh`}],[`path`,{d:`M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6`,key:`1b0p4s`}]]);export{t};
@@ -0,0 +1 @@
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-DJZBPgpf.js";import{O as n,a as r}from"./button-D7s2Q_uG.js";import{t as i}from"./jsx-runtime-CVSDxk6A.js";import{t as a}from"./cn-DvW5mxZR.js";import{t as o}from"./createLucideIcon-Bjb-Kuq7.js";import{t as s}from"./check-CW0KmV0o.js";var c=o(`chevron-down`,[[`path`,{d:`m6 9 6 6 6-6`,key:`qrunsl`}]]),l=e(t(),1),u=e(n(),1),d=i();function f({options:e,value:t,onChange:n,placeholder:i,disabled:o=!1,className:f,style:h,id:g,name:_,menuMaxHeight:v=280,menuMinWidth:y=0,menuAlign:b=`start`,"aria-label":x,"aria-labelledby":S,"data-testid":C}){let w=r(),T=(0,l.useId)(),E=g??`dropdown-${T}`,D=`${E}-listbox`,[O,k]=(0,l.useState)(!1),[A,j]=(0,l.useState)(-1),M=(0,l.useRef)(null),N=(0,l.useRef)(null),P=(0,l.useRef)(null),[F,I]=(0,l.useState)(null),L=(0,l.useMemo)(()=>e.findIndex(e=>e.value===t),[e,t]),R=L>=0?e[L]:void 0,z=(0,l.useCallback)(()=>{k(!1),j(-1)},[]),B=(0,l.useCallback)(()=>{o||(k(!0),j(L>=0?L:p(e,0,1)))},[o,L,e]);(0,l.useEffect)(()=>{if(!O)return;let e=e=>{let t=e.target,n=M.current?.contains(t),r=P.current?.contains(t);!n&&!r&&z()};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[O,z]),(0,l.useLayoutEffect)(()=>{if(!O)return;let e=()=>{let e=N.current;if(!e)return;let t=e.getBoundingClientRect();I(m({left:t.left,right:t.right,bottom:t.bottom,width:t.width},{align:b,minWidth:y,viewportWidth:window.innerWidth}))};return e(),window.addEventListener(`scroll`,e,!0),window.addEventListener(`resize`,e),()=>{window.removeEventListener(`scroll`,e,!0),window.removeEventListener(`resize`,e)}},[O,b,y]),(0,l.useEffect)(()=>{if(!O||A<0)return;let e=P.current;if(!e)return;let t=e.children[A];t instanceof HTMLElement&&t.scrollIntoView({block:`nearest`})},[O,A]);let V=(0,l.useCallback)(e=>{e.disabled||(n(e.value),z(),N.current?.focus())},[n,z]),H=(0,l.useCallback)(t=>{if(!o){if(!O){(t.key===`ArrowDown`||t.key===`ArrowUp`||t.key===`Enter`||t.key===` `)&&(t.preventDefault(),B());return}if(t.key===`Escape`){t.preventDefault(),t.stopPropagation(),z();return}if(t.key===`ArrowDown`){t.preventDefault(),j(t=>{let n=p(e,t+1,1);return n===-1?t:n});return}if(t.key===`ArrowUp`){t.preventDefault(),j(t=>{let n=p(e,t-1,-1);return n===-1?t:n});return}if(t.key===`Home`){t.preventDefault(),j(t=>{let n=p(e,0,1);return n===-1?t:n});return}if(t.key===`End`){t.preventDefault(),j(t=>{let n=p(e,e.length-1,-1);return n===-1?t:n});return}if(t.key===`Enter`||t.key===` `){t.preventDefault();let n=e[A];n&&V(n)}}},[o,O,B,z,e,A,V]),U=O&&A>=0?`${E}-option-${A}`:void 0,W=(0,l.useCallback)(e=>{if(!O)return;let t=e.relatedTarget;if(!t){z();return}let n=M.current?.contains(t),r=P.current?.contains(t);n||r||z()},[O,z]),G=O&&F?(0,d.jsx)(`ul`,{ref:P,id:D,role:`listbox`,"aria-labelledby":S??E,tabIndex:-1,"data-slot":`dropdown-menu`,className:`pointer-events-auto fixed z-50 mt-1 overflow-auto rounded-md border border-[var(--field-border)] bg-[var(--field-bg)] py-1 shadow-xl focus:outline-none`,style:{maxHeight:v,left:F.left,top:F.top,width:F.width},children:e.map((e,n)=>{let r=e.value===t,i=!!e.disabled,o=!i&&n===A;return(0,d.jsxs)(`li`,{id:`${E}-option-${n}`,role:`option`,"aria-selected":r,"aria-disabled":i,"data-slot":`dropdown-option`,onMouseEnter:()=>{i||j(n)},onMouseDown:e=>{e.preventDefault()},onClick:()=>V(e),className:a(`flex items-center gap-2 px-3 py-2 text-body-medium-default transition-colors`,i?`cursor-not-allowed opacity-50`:`cursor-pointer`),style:{background:o?`var(--surface-hover)`:`transparent`,color:`var(--content-default)`},children:[e.icon&&(0,d.jsx)(`span`,{className:`flex shrink-0 items-center`,style:{color:`var(--content-tertiary)`},"aria-hidden":!0,children:e.icon}),(0,d.jsxs)(`span`,{className:`flex min-w-0 flex-1 items-center gap-2`,children:[(0,d.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,title:e.label||void 0,children:e.label}),e.suffix&&(0,d.jsx)(`span`,{className:`shrink-0`,children:e.suffix})]}),r&&(0,d.jsx)(s,{className:`h-3.5 w-3.5 shrink-0`,style:{color:`var(--system-positive-strong)`},"aria-hidden":!0})]},e.value)})}):null;return(0,d.jsxs)(`div`,{ref:M,"data-slot":`dropdown`,className:a(`relative`,f),style:h,onBlur:W,children:[(0,d.jsxs)(`button`,{ref:N,type:`button`,id:E,name:_,role:`combobox`,"aria-haspopup":`listbox`,"aria-expanded":O,"aria-controls":D,"aria-activedescendant":U,"aria-label":x,"aria-labelledby":S,"aria-disabled":o,disabled:o,"data-testid":C,"data-slot":`dropdown-trigger`,"data-state":O?`open`:`closed`,onClick:()=>O?z():B(),onKeyDown:H,className:`flex h-9 w-full items-center gap-2 rounded-md border border-[var(--field-border)] bg-[var(--field-bg)] px-3 text-left text-body-medium-lighter transition-colors focus:outline-none data-[state=open]:border-[var(--border-active)] disabled:cursor-not-allowed disabled:opacity-60`,style:{color:R?`var(--content-default)`:`var(--content-tertiary)`},children:[R?.icon&&(0,d.jsx)(`span`,{className:`flex shrink-0 items-center`,style:{color:`var(--content-tertiary)`},"aria-hidden":!0,children:R.icon}),(0,d.jsxs)(`span`,{className:`flex min-w-0 flex-1 items-center gap-2`,children:[(0,d.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,title:R?.label||void 0,children:R?.label??i??``}),R?.suffix&&(0,d.jsx)(`span`,{className:`shrink-0`,children:R.suffix})]}),(0,d.jsx)(c,{className:`h-3.5 w-3.5 shrink-0`,style:{color:`var(--content-tertiary)`},"aria-hidden":!0})]}),G&&w?(0,u.createPortal)(G,w):G]})}function p(e,t,n){let r=e.length;if(r===0)return-1;let i=(t%r+r)%r;for(let t=0;t<r;t++){if(!e[i]?.disabled)return i;i=((i+n)%r+r)%r}return-1}function m(e,t={}){let n=Math.max(e.width,t.minWidth??0),r=t.align??`start`,i=t.viewportWidth,a=r===`end`?e.right-n:e.left;return i!==void 0&&a+n>i&&(a=i-n),{left:Math.max(0,a),top:e.bottom,width:n}}export{f as t};
@@ -0,0 +1 @@
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-DJZBPgpf.js";import{t as n}from"./button-D7s2Q_uG.js";import{t as r}from"./useQuery-B45lW1Kk.js";import{t as i}from"./jsx-runtime-CVSDxk6A.js";import"./src-BJj2O5XB.js";import{t as a}from"./input-Ch7OC6ME.js";import{t as o}from"./modal-CHuPOsJJ.js";import{t as s}from"./createLucideIcon-BlMXrA59.js";import{t as c}from"./arrow-left-CP-EhDNF.js";import{t as l}from"./credit-card-CN7yFHhB.js";import{t as u}from"./loader-circle-Cw1KvvLK.js";import{ht as d}from"./react-query.gen-CRARj4mG.js";import{Di as f,kr as p,na as m,zi as h}from"./index-Cx6vyW7T.js";var g=s(`share-2`,[[`circle`,{cx:`18`,cy:`5`,r:`3`,key:`gq8acd`}],[`circle`,{cx:`6`,cy:`12`,r:`3`,key:`w7nqdw`}],[`circle`,{cx:`18`,cy:`19`,r:`3`,key:`1xt0gg`}],[`line`,{x1:`8.59`,x2:`15.42`,y1:`13.51`,y2:`17.49`,key:`47mynk`}],[`line`,{x1:`15.41`,x2:`8.59`,y1:`6.51`,y2:`10.49`,key:`1n3mei`}]]),_=e(t(),1),v=i();function y(e){return e.replace(/\.00$/,``)}function b(e,t,n){let r=y(n),i=y(e),a=y(t);return i===a?`Share Vellum with friends — you'll each earn ${i} credits when they sign up, up to ${r} total.`:`Share Vellum with friends — you'll earn ${i} credits and they'll get ${a} when they sign up, up to ${r} total.`}function x({open:e,onClose:t}){return(0,v.jsx)(o.Root,{open:e,onOpenChange:e=>{e||t()},children:e?(0,v.jsx)(S,{}):null})}function S(){let[e,t]=(0,_.useState)(!1),[i,s]=(0,_.useState)(!1),{data:x,isLoading:S,isError:E,refetch:D,isFetching:O}=r(d()),k=(0,_.useCallback)(e=>{navigator.clipboard.writeText(e).then(()=>{t(!0),setTimeout(()=>t(!1),2e3)})},[]),A=x?b(x.referrer_credit_amount,x.credit_amount,x.earning_cap):`Refer friends to earn free credits.`,j=x?y(x.earning_cap):``,M=i?`Referral Program Terms`:`Earn free credits`;return(0,v.jsxs)(o.Content,{size:`sm`,children:[(0,v.jsx)(o.Header,{children:(0,v.jsxs)(`div`,{className:`flex min-w-0 items-start gap-2`,children:[i&&(0,v.jsx)(n,{variant:`ghost`,size:`compact`,iconOnly:(0,v.jsx)(c,{}),onClick:()=>s(!1),"aria-label":`Back`,className:`mt-0.5`,tintColor:`var(--content-secondary)`}),(0,v.jsxs)(`div`,{className:`min-w-0`,children:[(0,v.jsx)(o.Title,{children:M}),!i&&(0,v.jsx)(o.Description,{children:A})]})]})}),(0,v.jsx)(o.Body,{children:i&&x?(0,v.jsx)(T,{cap:j}):S?(0,v.jsxs)(`div`,{className:`flex items-center gap-2 py-2 text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:[(0,v.jsx)(u,{className:`h-4 w-4 animate-spin`}),`Loading referral information…`]}):E||!x?(0,v.jsxs)(`div`,{className:`space-y-3`,children:[(0,v.jsx)(`p`,{className:`!m-0 text-body-medium-lighter`,style:{color:`var(--content-secondary)`},children:`Failed to load referral information.`}),(0,v.jsx)(n,{variant:`outlined`,onClick:()=>void D(),disabled:O,children:O?`Retrying…`:`Try Again`})]}):(0,v.jsxs)(`div`,{className:`space-y-4`,children:[(0,v.jsxs)(`div`,{className:`space-y-2`,children:[(0,v.jsx)(C,{icon:(0,v.jsx)(g,{className:`h-4 w-4`}),label:`Share your invite link`}),(0,v.jsx)(C,{icon:(0,v.jsx)(p,{className:`h-4 w-4`}),label:`They sign up`}),(0,v.jsx)(C,{icon:(0,v.jsx)(f,{className:`h-4 w-4`}),label:`You earn credits`})]}),(0,v.jsx)(`div`,{style:{borderTop:`1px solid var(--border-base)`}}),(0,v.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,v.jsx)(a,{type:`text`,readOnly:!0,value:x.referral_url,fullWidth:!0,wrapperClassName:`flex-1`,className:`font-mono`,onFocus:e=>e.currentTarget.select()}),(0,v.jsx)(n,{variant:`outlined`,iconOnly:e?(0,v.jsx)(m,{}):(0,v.jsx)(h,{}),onClick:()=>k(x.referral_url),"aria-label":`Copy referral link`,className:`h-9 w-9`})]}),(0,v.jsx)(`div`,{style:{borderTop:`1px solid var(--border-base)`}}),(0,v.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,v.jsx)(w,{icon:(0,v.jsx)(p,{className:`h-3.5 w-3.5`}),value:String(x.referred_count),label:`Friends Referred`}),(0,v.jsx)(w,{icon:(0,v.jsx)(l,{className:`h-3.5 w-3.5`}),value:y(x.total_earned),label:`Credits Earned`})]}),(0,v.jsx)(`div`,{style:{borderTop:`1px solid var(--border-base)`}}),(0,v.jsx)(n,{variant:`ghost`,size:`compact`,onClick:()=>s(!0),fullWidth:!0,className:`text-body-small-default`,tintColor:`var(--content-tertiary)`,children:`View Terms and Conditions`})]})})]})}function C({icon:e,label:t}){return(0,v.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,v.jsx)(`div`,{className:`flex h-7 w-7 shrink-0 items-center justify-center rounded-md`,style:{background:`var(--surface-base)`,color:`var(--content-secondary)`},children:e}),(0,v.jsx)(`span`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:t})]})}function w({icon:e,value:t,label:n}){return(0,v.jsxs)(`div`,{className:`flex items-center gap-1.5 text-body-medium-lighter`,children:[(0,v.jsx)(`span`,{style:{color:`var(--content-tertiary)`},children:e}),(0,v.jsx)(`span`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:t}),(0,v.jsx)(`span`,{style:{color:`var(--content-tertiary)`},children:n})]})}function T({cap:e}){return(0,v.jsx)(`ul`,{className:`!m-0 !list-none space-y-2 !p-0`,children:[`This promotion is available to new users who sign up through your referral link only.`,`Rewards are earned once your invitee completes the creation of their Vellum account.`,`You may earn up to ${e} free credits through the Referral Program. We may change this limit at any time.`,`We do not grant credits for disposable or high-risk email accounts.`,`Each new user can generate only one (1) reward. No stacking or loophole hunting.`,`Please avoid spamming or misusing your referral link. Our systems actively monitor referral engagement.`,`If we detect suspicious or non-compliant activity, we reserve the right to withhold rewards or deactivate your referral link.`,`We may update, pause, or discontinue this program at any time.`].map(e=>(0,v.jsxs)(`li`,{className:`flex items-start gap-2 text-body-medium-lighter`,style:{color:`var(--content-secondary)`},children:[(0,v.jsx)(`span`,{"aria-hidden":`true`,className:`mt-0.5`,children:`•`}),(0,v.jsx)(`span`,{children:e})]},e))})}export{x as EarnCreditsModal};
@@ -1 +1 @@
1
- import{r as e,t}from"./chunk-5KNZJZUH-DdS6bb-3.js";import{t as n}from"./useQuery-B45lW1Kk.js";import{t as r}from"./jsx-runtime-CVSDxk6A.js";import"./src-nhkvkeh0.js";import{t as i}from"./tag-B_-QAvJF.js";import{t as a}from"./loader-circle-IIzBGiwm.js";import{t as o}from"./triangle-alert-DKOyShqD.js";import{a as s}from"./routes-DVqkwUEe.js";import{_ as c,h as l,p as u}from"./react-query.gen-rp6Krcco.js";import{Yr as d,qi as f,sn as p,wi as m,x as h}from"./index-rIl5b97O.js";import{t as g}from"./use-active-assistant-id-Dyfjqq4l.js";var _=r();function v(e){return new Date(e).toLocaleString(void 0,{month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`})}function y({title:e,children:t}){return(0,_.jsxs)(`div`,{className:`space-y-3`,children:[(0,_.jsx)(`h2`,{className:`text-title-small`,style:{color:`var(--content-default)`},children:e}),t]})}function b({tone:e=`info`,children:t}){let n=e===`error`;return(0,_.jsx)(`div`,{className:`rounded-md border px-4 py-3 text-body-medium-lighter`,style:{background:n?`var(--surface-negative-subtle, var(--surface-lift))`:`var(--surface-lift)`,borderColor:n?`var(--border-negative, var(--border-base))`:`var(--border-base)`,color:n?`var(--content-negative, var(--content-default))`:`var(--content-default)`},children:(0,_.jsxs)(`div`,{className:`flex items-start gap-2`,children:[n&&(0,_.jsx)(o,{className:`mt-0.5 h-4 w-4 shrink-0`,"aria-hidden":`true`}),(0,_.jsx)(`div`,{className:`flex-1`,children:t})]})})}function x({message:e,onRetry:t,retrying:n}){return(0,_.jsx)(b,{tone:`error`,children:(0,_.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,_.jsx)(`span`,{children:e}),(0,_.jsx)(`button`,{type:`button`,onClick:t,disabled:n,className:`text-body-small-default underline disabled:opacity-50`,style:{color:`var(--content-default)`},children:n?`Retrying…`:`Retry`})]})})}function S({label:e,value:t,sub:n}){return(0,_.jsxs)(`div`,{className:`rounded-xl border p-3`,style:{background:`var(--surface-lift)`,borderColor:`var(--border-base)`},children:[(0,_.jsx)(`p`,{className:`text-body-small-default`,style:{color:`var(--content-tertiary)`},children:e}),(0,_.jsx)(`p`,{className:`mt-1 text-title-large tabular-nums`,style:{color:`var(--content-default)`},children:t??`—`}),n&&(0,_.jsx)(`p`,{className:`text-body-small-default`,style:{color:`var(--content-disabled)`},children:n})]})}function C({email:e}){let t=e.direction===`inbound`;return(0,_.jsx)(`div`,{className:`rounded-xl border p-4`,style:{background:`var(--surface-lift)`,borderColor:`var(--border-base)`},children:(0,_.jsxs)(`div`,{className:`flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between`,children:[(0,_.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-1`,children:[(0,_.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,_.jsx)(i,{tone:t?`positive`:`neutral`,leftIcon:t?(0,_.jsx)(m,{}):(0,_.jsx)(d,{}),children:t?`Inbound`:`Outbound`}),(0,_.jsx)(`span`,{className:`truncate text-body-small-default`,style:{color:`var(--content-tertiary)`},children:e.from_address})]}),(0,_.jsx)(`p`,{className:`truncate text-body-medium-default`,style:{color:`var(--content-default)`},children:e.subject||`(no subject)`})]}),(0,_.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1.5 text-body-small-default`,style:{color:`var(--content-tertiary)`},children:[(0,_.jsx)(f,{className:`h-3 w-3`}),(0,_.jsx)(`span`,{children:v(e.created_at)})]})]})})}function w({assistantId:e,platformGate:r}){let i=r===`full`,o=n({...u({path:{assistant_id:e}}),enabled:i}),d=o.data?.results?.[0],f=n({...l({path:{assistant_id:e,id:d?.id??``}}),enabled:i&&!!d?.id}),p=n({...c({path:{assistant_id:e},query:{limit:10}}),enabled:i}),m=f.data?.usage,h=p.data?.results??[];return o.isLoading?(0,_.jsx)(`div`,{className:`flex items-center justify-center py-24`,children:(0,_.jsx)(a,{className:`h-8 w-8 animate-spin`,style:{color:`var(--content-tertiary)`}})}):o.isError?(0,_.jsx)(x,{message:`Couldn't load email addresses.`,onRetry:()=>{o.refetch()},retrying:o.isFetching}):d?(0,_.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,_.jsx)(y,{title:`Totals`,children:(0,_.jsxs)(`div`,{className:`grid grid-cols-2 gap-3 sm:grid-cols-4`,children:[(0,_.jsx)(S,{label:`Sent today`,value:m?.sent_today,sub:m?`of ${m.daily_limit} daily limit`:void 0}),(0,_.jsx)(S,{label:`Received today`,value:m?.received_today}),(0,_.jsx)(S,{label:`Sent this month`,value:m?.sent_this_month}),(0,_.jsx)(S,{label:`Received this month`,value:m?.received_this_month})]})}),(0,_.jsx)(y,{title:`Recent Emails`,children:p.isLoading?(0,_.jsxs)(`div`,{className:`flex items-center gap-2 text-body-small-default`,style:{color:`var(--content-tertiary)`},children:[(0,_.jsx)(a,{className:`h-4 w-4 animate-spin`}),`Loading…`]}):p.isError?(0,_.jsx)(x,{message:`Couldn't load recent emails.`,onRetry:()=>{p.refetch()},retrying:p.isFetching}):h.length===0?(0,_.jsx)(b,{children:`No emails yet.`}):(0,_.jsx)(`div`,{className:`space-y-2`,children:h.map(e=>(0,_.jsx)(C,{email:e},e.id))})})]}):(0,_.jsxs)(b,{children:[`No email address registered yet.`,` `,(0,_.jsx)(t,{to:s.settings.ai,className:`underline`,style:{color:`var(--content-tertiary)`},children:`Set one up in AI Settings → Email.`})]})}function T(){let t=p(),n=g();return t===`gated`?(0,_.jsx)(e,{replace:!0,to:s.logs.root}):t===`disabled`?(0,_.jsx)(h,{children:`Log in to the Vellum platform to view emails.`}):(0,_.jsx)(w,{assistantId:n,platformGate:t})}export{T as EmailsPage};
1
+ import{r as e,t}from"./chunk-5KNZJZUH-DdS6bb-3.js";import{t as n}from"./useQuery-B45lW1Kk.js";import{t as r}from"./jsx-runtime-CVSDxk6A.js";import"./src-BJj2O5XB.js";import{t as i}from"./tag-CE_o2aao.js";import{t as a}from"./loader-circle-Cw1KvvLK.js";import{t as o}from"./triangle-alert-AqQQTwUZ.js";import{a as s}from"./routes-B9xcBuuC.js";import{_ as c,h as l,p as u}from"./react-query.gen-CRARj4mG.js";import{Ci as d,Gr as f,Jt as p,qi as m,x as h}from"./index-Cx6vyW7T.js";import{t as g}from"./use-active-assistant-id-BlwRimQH.js";var _=r();function v(e){return new Date(e).toLocaleString(void 0,{month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`})}function y({title:e,children:t}){return(0,_.jsxs)(`div`,{className:`space-y-3`,children:[(0,_.jsx)(`h2`,{className:`text-title-small`,style:{color:`var(--content-default)`},children:e}),t]})}function b({tone:e=`info`,children:t}){let n=e===`error`;return(0,_.jsx)(`div`,{className:`rounded-md border px-4 py-3 text-body-medium-lighter`,style:{background:n?`var(--surface-negative-subtle, var(--surface-lift))`:`var(--surface-lift)`,borderColor:n?`var(--border-negative, var(--border-base))`:`var(--border-base)`,color:n?`var(--content-negative, var(--content-default))`:`var(--content-default)`},children:(0,_.jsxs)(`div`,{className:`flex items-start gap-2`,children:[n&&(0,_.jsx)(o,{className:`mt-0.5 h-4 w-4 shrink-0`,"aria-hidden":`true`}),(0,_.jsx)(`div`,{className:`flex-1`,children:t})]})})}function x({message:e,onRetry:t,retrying:n}){return(0,_.jsx)(b,{tone:`error`,children:(0,_.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,_.jsx)(`span`,{children:e}),(0,_.jsx)(`button`,{type:`button`,onClick:t,disabled:n,className:`text-body-small-default underline disabled:opacity-50`,style:{color:`var(--content-default)`},children:n?`Retrying…`:`Retry`})]})})}function S({label:e,value:t,sub:n}){return(0,_.jsxs)(`div`,{className:`rounded-xl border p-3`,style:{background:`var(--surface-lift)`,borderColor:`var(--border-base)`},children:[(0,_.jsx)(`p`,{className:`text-body-small-default`,style:{color:`var(--content-tertiary)`},children:e}),(0,_.jsx)(`p`,{className:`mt-1 text-title-large tabular-nums`,style:{color:`var(--content-default)`},children:t??`—`}),n&&(0,_.jsx)(`p`,{className:`text-body-small-default`,style:{color:`var(--content-disabled)`},children:n})]})}function C({email:e}){let t=e.direction===`inbound`;return(0,_.jsx)(`div`,{className:`rounded-xl border p-4`,style:{background:`var(--surface-lift)`,borderColor:`var(--border-base)`},children:(0,_.jsxs)(`div`,{className:`flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between`,children:[(0,_.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-1`,children:[(0,_.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,_.jsx)(i,{tone:t?`positive`:`neutral`,leftIcon:t?(0,_.jsx)(d,{}):(0,_.jsx)(f,{}),children:t?`Inbound`:`Outbound`}),(0,_.jsx)(`span`,{className:`truncate text-body-small-default`,style:{color:`var(--content-tertiary)`},children:e.from_address})]}),(0,_.jsx)(`p`,{className:`truncate text-body-medium-default`,style:{color:`var(--content-default)`},children:e.subject||`(no subject)`})]}),(0,_.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1.5 text-body-small-default`,style:{color:`var(--content-tertiary)`},children:[(0,_.jsx)(m,{className:`h-3 w-3`}),(0,_.jsx)(`span`,{children:v(e.created_at)})]})]})})}function w({assistantId:e,platformGate:r}){let i=r===`full`,o=n({...u({path:{assistant_id:e}}),enabled:i}),d=o.data?.results?.[0],f=n({...l({path:{assistant_id:e,id:d?.id??``}}),enabled:i&&!!d?.id}),p=n({...c({path:{assistant_id:e},query:{limit:10}}),enabled:i}),m=f.data?.usage,h=p.data?.results??[];return o.isLoading?(0,_.jsx)(`div`,{className:`flex items-center justify-center py-24`,children:(0,_.jsx)(a,{className:`h-8 w-8 animate-spin`,style:{color:`var(--content-tertiary)`}})}):o.isError?(0,_.jsx)(x,{message:`Couldn't load email addresses.`,onRetry:()=>{o.refetch()},retrying:o.isFetching}):d?(0,_.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,_.jsx)(y,{title:`Totals`,children:(0,_.jsxs)(`div`,{className:`grid grid-cols-2 gap-3 sm:grid-cols-4`,children:[(0,_.jsx)(S,{label:`Sent today`,value:m?.sent_today,sub:m?`of ${m.daily_limit} daily limit`:void 0}),(0,_.jsx)(S,{label:`Received today`,value:m?.received_today}),(0,_.jsx)(S,{label:`Sent this month`,value:m?.sent_this_month}),(0,_.jsx)(S,{label:`Received this month`,value:m?.received_this_month})]})}),(0,_.jsx)(y,{title:`Recent Emails`,children:p.isLoading?(0,_.jsxs)(`div`,{className:`flex items-center gap-2 text-body-small-default`,style:{color:`var(--content-tertiary)`},children:[(0,_.jsx)(a,{className:`h-4 w-4 animate-spin`}),`Loading…`]}):p.isError?(0,_.jsx)(x,{message:`Couldn't load recent emails.`,onRetry:()=>{p.refetch()},retrying:p.isFetching}):h.length===0?(0,_.jsx)(b,{children:`No emails yet.`}):(0,_.jsx)(`div`,{className:`space-y-2`,children:h.map(e=>(0,_.jsx)(C,{email:e},e.id))})})]}):(0,_.jsxs)(b,{children:[`No email address registered yet.`,` `,(0,_.jsx)(t,{to:s.settings.ai,className:`underline`,style:{color:`var(--content-tertiary)`},children:`Set one up in AI Settings → Email.`})]})}function T(){let t=p(),n=g();return t===`gated`?(0,_.jsx)(e,{replace:!0,to:s.logs.root}):t===`disabled`?(0,_.jsx)(h,{children:`Log in to the Vellum platform to view emails.`}):(0,_.jsx)(w,{assistantId:n,platformGate:t})}export{T as EmailsPage};
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/web-DfbsgY66.js","assets/dist-BTp54SIT.js","assets/definitions-BVEXXekp.js"])))=>i.map(i=>d[i]);
2
- import{t as e}from"./preload-helper-BewR0kVT.js";import{i as t}from"./dist-BTp54SIT.js";import{t as n}from"./definitions-BVEXXekp.js";function r(e){e.CapacitorUtils.Synapse=new Proxy({},{get(t,n){return new Proxy({},{get(t,r){return(t,i,a)=>{let o=e.Capacitor.Plugins[n];if(o===void 0){a(Error(`Capacitor plugin ${n} not found`));return}if(typeof o[r]!=`function`){a(Error(`Method ${r} not found in Capacitor plugin ${n}`));return}(async()=>{try{i(await o[r](t))}catch(e){a(e)}})()}}})}})}function i(e){e.CapacitorUtils.Synapse=new Proxy({},{get(t,n){return e.cordova.plugins[n]}})}function a(e=!1){typeof window>`u`||(window.CapacitorUtils=window.CapacitorUtils||{},window.Capacitor!==void 0&&!e?r(window):window.cordova!==void 0&&i(window))}var o=t(`Filesystem`,{web:()=>e(()=>import(`./web-DfbsgY66.js`).then(e=>new e.FilesystemWeb),__vite__mapDeps([0,1,2]))});a();export{n as Directory,o as Filesystem};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/web-ByMNu3A_.js","assets/dist-3i_EPbLt.js","assets/definitions-B4RRVbRh.js"])))=>i.map(i=>d[i]);
2
+ import{t as e}from"./preload-helper-BewR0kVT.js";import{i as t}from"./dist-3i_EPbLt.js";import{t as n}from"./definitions-B4RRVbRh.js";function r(e){e.CapacitorUtils.Synapse=new Proxy({},{get(t,n){return new Proxy({},{get(t,r){return(t,i,a)=>{let o=e.Capacitor.Plugins[n];if(o===void 0){a(Error(`Capacitor plugin ${n} not found`));return}if(typeof o[r]!=`function`){a(Error(`Method ${r} not found in Capacitor plugin ${n}`));return}(async()=>{try{i(await o[r](t))}catch(e){a(e)}})()}}})}})}function i(e){e.CapacitorUtils.Synapse=new Proxy({},{get(t,n){return e.cordova.plugins[n]}})}function a(e=!1){typeof window>`u`||(window.CapacitorUtils=window.CapacitorUtils||{},window.Capacitor!==void 0&&!e?r(window):window.cordova!==void 0&&i(window))}var o=t(`Filesystem`,{web:()=>e(()=>import(`./web-ByMNu3A_.js`).then(e=>new e.FilesystemWeb),__vite__mapDeps([0,1,2]))});a();export{n as Directory,o as Filesystem};
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/web-CyTCBnAZ.js","assets/dist-3i_EPbLt.js"])))=>i.map(i=>d[i]);
2
+ import{t as e}from"./preload-helper-BewR0kVT.js";import{i as t}from"./dist-3i_EPbLt.js";var n=t(`Share`,{web:()=>e(()=>import(`./web-CyTCBnAZ.js`).then(e=>new e.ShareWeb),__vite__mapDeps([0,1]))});export{n as Share};
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/web-DuA0h7oK.js","assets/dist-3i_EPbLt.js"])))=>i.map(i=>d[i]);
2
+ import{t as e}from"./preload-helper-BewR0kVT.js";import{i as t}from"./dist-3i_EPbLt.js";var n;(function(e){e.Light=`light`,e.Dark=`dark`})(n||={});var r=t(`SafeArea`,{web:()=>e(()=>import(`./web-DuA0h7oK.js`).then(e=>new e.SafeAreaWeb),__vite__mapDeps([0,1]))});export{r as SafeArea};
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/web-B4ULoQq5.js","assets/dist-3i_EPbLt.js"])))=>i.map(i=>d[i]);
2
+ import{t as e}from"./preload-helper-BewR0kVT.js";import{i as t}from"./dist-3i_EPbLt.js";var n=t(`Browser`,{web:()=>e(()=>import(`./web-B4ULoQq5.js`).then(e=>new e.BrowserWeb),__vite__mapDeps([0,1]))});export{n as Browser};
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/web-CvCsdCeT.js","assets/dist-3i_EPbLt.js"])))=>i.map(i=>d[i]);
2
+ import{t as e}from"./preload-helper-BewR0kVT.js";import{i as t}from"./dist-3i_EPbLt.js";var n=t(`App`,{web:()=>e(()=>import(`./web-CvCsdCeT.js`).then(e=>new e.AppWeb),__vite__mapDeps([0,1]))});export{n as App};
@@ -0,0 +1 @@
1
+ import{i as e}from"./dist-3i_EPbLt.js";var t=e(`PushNotifications`,{});export{t as PushNotifications};
@@ -0,0 +1 @@
1
+ var e={version:1,flags:[{id:`auto-analyze`,scope:`assistant`,key:`auto-analyze`,label:`Auto-analyze conversations`,description:`Automatically trigger conversation analysis on the same cadence as memory extraction (batch threshold, idle debounce, end-of-conversation). The analysis agent has full tool access and writes back to memory and skills without user approval.`,defaultEnabled:!1},{id:`user-hosted-enabled`,scope:`client`,key:`user-hosted-enabled`,label:`User Hosted Enabled`,description:`Enable user-hosted onboarding flow`,defaultEnabled:!1},{id:`pre-chat-onboarding-experiment-2026-06-06`,scope:`client`,key:`pre-chat-onboarding-experiment-2026-06-06`,label:`Pre-chat Onboarding Experiment 2026-06-06`,description:`Pre-chat onboarding experiment with control and variant-a arms. Control shows the full funnel; variant-a shows the condensed pared-down flow.`,defaultEnabled:`control`,values:[`control`,`variant-a`]},{id:`experiment-activation-flow-2026-06-03`,scope:`both`,key:`experiment-activation-flow-2026-06-03`,label:`Activation Flow Experiment 2026-06-03`,description:`Multivariate activation-flow experiment. control = standard flow; variant-a = activation rail; personal-page = new sign-up-page variant (front-end only). Targeted via LaunchDarkly.`,defaultEnabled:`control`,values:[`control`,`variant-a`,`personal-page`]},{id:`local-docker-enabled`,scope:`client`,key:`local-docker-enabled`,label:`Local Docker Mode`,description:`When enabled, the Local hosting option uses Docker under the hood for sandboxed execution, hiding the separate Docker card`,defaultEnabled:!1},{id:`a2a-channel`,scope:`assistant`,key:`a2a-channel`,label:`A2A Channel`,description:`Enable the A2A (Agent-to-Agent) channel for inter-assistant communication via the open A2A protocol`,defaultEnabled:!1},{id:`trace-collection`,scope:`assistant`,key:`trace-collection`,label:`Trace Collection`,description:`Gate per-turn conversation trace (user/assistant/tool-call/tool-response) collection. The daemon attaches a trace to its turn telemetry only when this flag AND the owner's share_diagnostics consent are both on. Defaults off (fail-closed) — the live value is delivered from LaunchDarkly.`,defaultEnabled:!1},{id:`workspace-tools-watcher`,scope:`assistant`,key:`workspace-tools-watcher`,label:`Workspace tools file watcher`,description:"Hot-reload workspace tool overrides under `<workspaceDir>/tools/` by watching the directory and re-registering tools as files change. When disabled, workspace tools still load from disk once at daemon startup, but live edits require a restart to take effect.",defaultEnabled:!1},{id:`settings-developer-nav`,scope:`assistant`,key:`settings-developer-nav`,label:`Settings Developer Nav`,description:`Control Developer nav visibility in macOS settings`,defaultEnabled:!1},{id:`developer-menu-items`,scope:`client`,key:`developer-menu-items`,label:`Developer Menu Items`,description:`Show Component Gallery and Replay Onboarding in the menu bar`,defaultEnabled:!1},{id:`ces-tools`,scope:`assistant`,key:`ces-tools`,label:`CES Tool Exposure`,description:`Register Credential Execution Service tools (credential-grant, credential-revoke, credential-list) in the agent loop`,defaultEnabled:!1},{id:`ces-shell-lockdown`,scope:`assistant`,key:`ces-shell-lockdown`,label:`CES Shell Lockdown`,description:`Enforce untrusted-agent shell lockdown when CES credentials are active, restricting direct shell access to credentialed services`,defaultEnabled:!1},{id:`ces-secure-install`,scope:`assistant`,key:`ces-secure-install`,label:`CES Secure Command Installation`,description:`Enable secure tool/command installation via CES instead of direct shell execution for untrusted agents`,defaultEnabled:!1},{id:`ces-grant-audit`,scope:`assistant`,key:`ces-grant-audit`,label:`CES Grant & Audit Inspection`,description:`Surface credential grant and audit inspection endpoints for reviewing active grants and access logs`,defaultEnabled:!1},{id:`settings-embedding-provider`,scope:`assistant`,key:`settings-embedding-provider`,label:`Embedding Provider Settings`,description:`Show the Embedding service card in Models & Services settings`,defaultEnabled:!1},{id:`multi-platform-assistant`,scope:`client`,key:`multi-platform-assistant`,label:`Multi-Platform Assistant Switcher`,description:`Enable the menu-bar assistant switcher for managing multiple platform-hosted assistants (new/switch/retire)`,defaultEnabled:!1},{id:`quick-input`,scope:`client`,key:`quick-input`,label:`Quick Input`,description:`Enable the Quick Input popover on right-click of the menu bar icon`,defaultEnabled:!1},{id:`expand-completed-steps`,scope:`client`,key:`expand-completed-steps`,label:`Expand Completed Steps`,description:`Auto-expand completed tool call step groups instead of showing them collapsed`,defaultEnabled:!1},{id:`message-tts`,scope:`assistant`,key:`message-tts`,label:`Message Text-to-Speech`,description:`Show a speaker button on assistant messages to generate and play the message as audio via Fish Audio TTS`,defaultEnabled:!1},{id:`backward-releases`,scope:`assistant`,key:`backward-releases`,label:`Backward Releases`,description:`Show older versions in the version picker, allowing rollback to previous releases`,defaultEnabled:!1},{id:`voice-mode`,scope:`assistant`,key:`voice-mode`,label:`Voice Mode`,description:`Show the live voice conversation button in the composer`,defaultEnabled:!1},{id:`fast-mode`,scope:`assistant`,key:`fast-mode`,label:`Fast Mode`,description:`Enable Anthropic fast mode for Opus models (4.6, 4.7, 4.8), delivering up to 2.5x higher output tokens per second at premium pricing`,defaultEnabled:!1},{id:`teleport`,scope:`client`,key:`teleport`,label:`Teleport`,description:`Enable teleport UI in General settings for moving assistants between hosting environments`,defaultEnabled:!1},{id:`apple-container`,scope:`client`,key:`apple-container`,label:`Apple Container`,description:`Enable assistant sandboxing via Apple Containers on macOS 26+, providing a lightweight native sandbox without third-party dependencies`,defaultEnabled:!1},{id:`bookmarks`,scope:`client`,key:`bookmarks`,label:`Message Bookmarks`,description:`Show the bookmark icon on messages and enable the Bookmarks tab in Settings`,defaultEnabled:!1},{id:`fork-from-message`,scope:`client`,key:`fork-from-message`,label:`Fork from Message`,description:`Show the 'Fork from here' option in message overflow menus`,defaultEnabled:!1},{id:`home-tab`,scope:`client`,key:`home-tab`,label:`Home Tab`,description:`Replace the knowledge graph top-level tab with a new Home page showing relationship progression, facts, and capability tiers`,defaultEnabled:!1},{id:`meet`,scope:`assistant`,key:`meet`,label:`Google Meet`,description:`Enables the Google Meet joining bot and the meet-join skill.`,defaultEnabled:!1},{id:`scroll-debug-overlay`,scope:`client`,key:`scroll-debug-overlay`,label:`Scroll Debug Overlay`,description:`Show a live HUD in the top-right of the conversation with scroll geometry, velocity, update rate, and anchor-preserver activity. Developer diagnostic for investigating scroll jank.`,defaultEnabled:!1},{id:`coding-agents-panel`,scope:`client`,key:`coding-agents-panel`,label:`Coding Agents Panel`,description:`Gate native macOS Coding Agents panel entry points and inline ACP session deep links.`,defaultEnabled:!1},{id:`compaction-playground`,scope:`assistant`,key:`compaction-playground`,label:`Compaction Playground`,description:`Expose the developer-only Compaction Playground tab in macOS Settings and enable the /playground/* HTTP endpoints for exercising compaction conditions. Dev-only; default off.`,defaultEnabled:!1},{id:`app-control`,scope:`assistant`,key:`app-control`,label:`App Control`,description:`Enable the app-control skill (per-app screenshot + raw input bypassing AX tree)`,defaultEnabled:!1},{id:`analyze-conversation`,scope:`assistant`,key:`analyze-conversation`,label:`Analyze Conversation`,description:`Show the 'Analyze' / 'Analyze conversation' option in conversation context menus and the conversation title actions dropdown.`,defaultEnabled:!1},{id:`external-plugins`,scope:`assistant`,key:`external-plugins`,label:`External Plugins`,description:"Enable the external-plugin install path: the `assistant plugins` CLI subcommand and the declarative external-plugin loader convention (`<workspaceDir>/plugins/<name>/` directories containing `package.json` plus interface dirs). Gates an unstable surface that may change shape before stabilizing.",defaultEnabled:!1},{id:`velvet-theme`,scope:`client`,key:`velvet-theme`,label:`Velvet Theme`,description:`Show the Velvet theme option in the macOS appearance settings. Velvet is a dark-mode variant with red/pink accent colors.`,defaultEnabled:!1},{id:`queue-steering`,scope:`assistant`,key:`queue-steering`,label:`Queue Steering`,description:`Enable the 'Push to agent' button on queued messages, allowing users to steer the assistant to a specific queued message by aborting the current generation and promoting the message to the head of the queue.`,defaultEnabled:!1},{id:`chat-pull-to-refresh-enabled`,scope:`client`,key:`chat-pull-to-refresh-enabled`,label:`Chat Pull to Refresh`,description:`Enable pull-to-refresh gesture in the chat view.`,defaultEnabled:!1},{id:`platform-notifications`,scope:`client`,key:`platform-notifications`,label:`Platform Notifications`,description:`Enable the Notifications tab in settings.`,defaultEnabled:!1},{id:`centralized-assistant-status`,scope:`client`,key:`centralized-assistant-status`,label:`Centralized Assistant Status`,description:`Enable client polling of the centralized assistant operational status endpoint.`,defaultEnabled:!1},{id:`preview-channel`,scope:`client`,key:`preview-channel`,label:`Preview Channel`,description:`Enable user-facing Preview release channel controls in assistant settings.`,defaultEnabled:!1},{id:`rollback-enabled`,scope:`assistant`,key:`rollback-enabled`,label:`Rollback Enabled`,description:`Show older versions in the version picker, allowing rollback to previous releases.`,defaultEnabled:!1},{id:`self-hosted-assistant`,scope:`client`,key:`self-hosted-assistant`,label:`Self-Hosted Assistant`,description:`Enable self-hosted assistant configuration.`,defaultEnabled:!1},{id:`web-remote-ingress`,scope:`assistant`,key:`web-remote-ingress`,label:`Web Remote Ingress`,description:`Serve the web client over a public tunnel and enable browser pairing for self-hosted assistants.`,defaultEnabled:!1},{id:`settings-sleep-policy`,scope:`assistant`,key:`settings-sleep-policy`,label:`Settings Sleep Policy`,description:`Enable sleep policy settings.`,defaultEnabled:!1},{id:`velvet`,scope:`client`,key:`velvet`,label:`Velvet`,description:`Enable the Velvet design theme.`,defaultEnabled:!1},{id:`memory-router-playground`,scope:`client`,key:`memory-router-playground`,label:`Memory Router Playground`,description:`Expose the developer-only Memory Router Playground tab in macOS Settings and the /assistant/memory-router-playground web page for dry-running v4 router config overrides against the live page index. Dev-only; default off.`,defaultEnabled:!1},{id:`memory-v3-shadow`,scope:`assistant`,key:`memory-v3-shadow`,label:`Memory v3 Shadow`,description:`When on, runs the new memory-v3 topic-tree retrieval alongside v2 in shadow mode: logs selections to memory_v3_selections, does not modify injected context. Off by default.`,defaultEnabled:!1},{id:`self-intro-greeting`,scope:`both`,key:`self-intro-greeting`,label:`Self-intro first message`,description:`On the first conversation, send a natural self-introduction (e.g. "Hi Vela, I'm alex. Nice to meet you.") on the user's behalf and route it through real LLM inference, instead of serving the canned first greeting. Names come from the onboarding context; falls back to the canned greeting when no name is known. Exposed to clients so pre-hatch onboarding can compute the source-of-truth initial message, and to the assistant so older clients can still be gated server-side. See assistant/src/daemon/first-greeting.ts (buildSelfIntroMessage).`,defaultEnabled:!1},{id:`research-onboarding`,scope:`client`,key:`research-onboarding`,label:`Research onboarding (spike)`,description:`Spike: replace pre-chat onboarding with a web-research "here's what I know about you" flow, including a Google Calendar "Let's chat tomorrow" step shown over the streaming research. Gates the /assistant/onboarding/research route and the research mock harness. Off by default; enable locally via the feature-flags panel.`,defaultEnabled:!1},{id:`channel-trust-floors`,scope:`assistant`,key:`channel-trust-floors`,label:`Channel Trust Floors`,description:`Expose the Channel Trust Floors settings card (per-channel inbound admission policy) on the Privacy settings page. When off, the card is hidden and channels fall back to their default admission floors. Off by default while the feature is in development.`,defaultEnabled:!1},{id:`mcp-settings`,scope:`assistant`,key:`mcp-settings`,label:`MCP Settings`,description:`Show the MCP page in Settings for managing Model Context Protocol server connections: view status, enable/disable, configure, and inspect registered tools per server.`,defaultEnabled:!1},{id:`os-beta`,scope:`assistant`,key:`os-beta`,label:`OS Beta`,description:`Enable the OS Beta model profile (GLM 5.2 / Fireworks) in the assistant's model profile selection.`,defaultEnabled:!1}]};function t(e,t){return e===t||e===`both`}var n=e.flags,r={};function i(e){return r[e]||e.split(`-`).map((e,t)=>e===`ui`?`UI`:t===0?e:e[0].toUpperCase()+e.slice(1)).join(``)}function a(e){let r={};for(let a of n)typeof a.defaultEnabled==`boolean`&&t(a.scope,e)&&(r[i(a.key)]=a.defaultEnabled);return r}function o(e){let r={};for(let a of n)typeof a.defaultEnabled==`string`&&t(a.scope,e)&&(r[i(a.key)]=a.defaultEnabled);return r}var s=a(`client`),c=a(`assistant`),l=o(`client`),u=o(`assistant`),d=new Map;for(let e of n)d.set(i(e.key),e);var f=new Map;for(let e of n)f.set(i(e.key),e.key);function p(e){return i(e)}function m(e){return f.get(e)}function h(e){return d.get(e)}var g=`VITE_VELLUM_FLAG_`;function _(e){return e.toLowerCase().replace(/_/g,`-`)}var v=new Set([`true`,`1`,`yes`,`on`]),y=new Set([`false`,`0`,`no`,`off`]);function b(e){let t=e.toLowerCase();return v.has(t)?!0:y.has(t)?!1:e}function x(){if(typeof window<`u`&&window.__VELLUM_FLAG_OVERRIDES__!=null)return{...window.__VELLUM_FLAG_OVERRIDES__};let e={},t={BASE_URL:`/assistant/`,DEV:!1,MODE:`production`,PROD:!0,SSR:!1,VITE_PLATFORM_MODE:`false`};for(let n of Object.keys(t))if(n.startsWith(g)){let r=_(n.slice(17)),i=t[n];i!=null&&(e[r]=b(i))}return e}var S=null;function C(){return S===null&&(S=x()),S}var w=new Map;for(let e of n)w.set(e.key,e);function T(e){let n=C(),r={},i={};for(let[a,o]of Object.entries(n)){let n=w.get(a);if(!n||!t(n.scope,e))continue;let s=p(a);typeof o==`boolean`?r[s]=o:i[s]=o}return{bool:r,str:i}}export{p as a,h as c,l as i,t as l,u as n,n as o,s as r,T as s,c as t,m as u};
@@ -0,0 +1 @@
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-DJZBPgpf.js";import{t as n}from"./button-D7s2Q_uG.js";import{t as r}from"./jsx-runtime-CVSDxk6A.js";import{t as i}from"./pencil-Dm2eFMe3.js";import{Li as a,na as o,zi as s}from"./index-Cx6vyW7T.js";var c=e(t(),1),l=r(),u=`ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace`;function d({content:e,downloadContent:t,fileName:r,mimeType:u=`text/plain`,showEdit:d,isEditing:f,onToggleEdit:p,extraActions:m}){let[h,g]=(0,c.useState)(!1),_=(0,c.useRef)(null),v=(0,c.useCallback)(()=>{navigator.clipboard.writeText(e).then(()=>{g(!0),_.current&&clearTimeout(_.current),_.current=setTimeout(()=>g(!1),1500)})},[e]),y=t??e,b=(0,c.useCallback)(()=>{let e=new Blob([y],{type:u}),t=URL.createObjectURL(e),n=document.createElement(`a`);n.href=t,n.download=r,n.click(),URL.revokeObjectURL(t)},[y,r,u]);return(0,c.useEffect)(()=>()=>{_.current&&clearTimeout(_.current)},[]),f?null:(0,l.jsxs)(`div`,{className:`absolute right-3 top-3 z-10 flex items-center gap-1 rounded-md bg-[var(--surface-primary)] shadow-sm`,children:[d&&p&&(0,l.jsx)(n,{variant:`ghost`,size:`regular`,iconOnly:(0,l.jsx)(i,{"aria-hidden":!0}),onClick:p,"aria-label":`Edit file`,className:`hover:bg-[var(--surface-base)]`}),m,(0,l.jsx)(n,{variant:`ghost`,size:`regular`,iconOnly:h?(0,l.jsx)(o,{"aria-hidden":!0}):(0,l.jsx)(s,{"aria-hidden":!0}),onClick:v,"aria-label":h?`Copied`:`Copy file contents`,className:`hover:bg-[var(--surface-base)]`}),(0,l.jsx)(n,{variant:`ghost`,size:`regular`,iconOnly:(0,l.jsx)(a,{"aria-hidden":!0}),onClick:b,"aria-label":`Download file`,className:`hover:bg-[var(--surface-base)]`})]})}function f({value:e,onChange:t,onSave:n}){return(0,l.jsx)(`textarea`,{className:`m-0 h-full w-full resize-none overflow-auto border-none bg-transparent p-4 text-body-medium-lighter leading-relaxed outline-none`,style:{color:`var(--content-default)`,fontFamily:u},value:e,onChange:e=>t(e.target.value),onKeyDown:e=>{(e.metaKey||e.ctrlKey)&&e.key===`s`&&(e.preventDefault(),n())},spellCheck:!1})}function p({isDirty:e,isSaving:t,error:r,onSave:i,onDiscard:a}){return(0,l.jsxs)(`div`,{className:`flex items-center justify-end gap-2 border-t px-3 py-2`,style:{borderColor:`var(--border-element)`},children:[r&&(0,l.jsx)(`span`,{className:`mr-auto text-body-small-default`,style:{color:`var(--system-error)`},children:r}),(0,l.jsx)(n,{variant:`ghost`,size:`compact`,disabled:t,onClick:a,children:`Discard`}),(0,l.jsx)(n,{variant:`primary`,size:`compact`,disabled:!e||t,onClick:i,children:t?`Saving…`:`Save`})]})}function m({content:e,readOnly:t,whiteSpace:n=`pre-wrap`,onStartEdit:r}){return(0,l.jsx)(`pre`,{className:`m-0 h-full overflow-auto p-4 text-body-medium-lighter leading-relaxed${t?``:` cursor-text`}`,style:{color:`var(--content-default)`,fontFamily:u,whiteSpace:n},onClick:t?void 0:r,children:e})}export{m as i,p as n,f as r,d as t};
@@ -0,0 +1 @@
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{a as t,n,o as r,r as i,s as a}from"./device-settings-BBwtGKJb.js";import{t as o}from"./capture-error-AoUURkgi.js";import{t as s}from"./react-DJZBPgpf.js";import{t as c}from"./button-D7s2Q_uG.js";import{d as l,t as u}from"./chunk-5KNZJZUH-DdS6bb-3.js";import{n as d}from"./QueryClientProvider-DKhXIxGb.js";import{t as f}from"./useQuery-B45lW1Kk.js";import{t as p}from"./useMutation-Lj4VunQV.js";import{t as m}from"./jsx-runtime-CVSDxk6A.js";import{t as h}from"./cn-DvW5mxZR.js";import{t as g}from"./dropdown-yOV5eJnU.js";import{c as _,l as v,n as y}from"./src-BJj2O5XB.js";import{t as b}from"./confirm-dialog-SpCsmAdG.js";import{t as x}from"./notice-CynJKEow.js";import{t as S}from"./tag-CE_o2aao.js";import{t as C}from"./input-Ch7OC6ME.js";import{t as w}from"./toggle-95p73HGd.js";import{n as T}from"./stat-square-CraPxMcl.js";import{t as E}from"./modal-CHuPOsJJ.js";import{n as D}from"./toast-CxaZ5f1d.js";import{c as O,d as k,f as A,h as j}from"./local-mode-BD2zqd9I.js";import{t as M}from"./is-electron-C_ZTVhv8.js";import{n as N}from"./resolved-assistants-store-DLNFVaZL.js";import{t as P}from"./createLucideIcon-BlMXrA59.js";import{t as F}from"./bell-DB1SrBre.js";import{t as I}from"./chevron-right-BNHlGCTg.js";import{t as L}from"./circle-alert-bz1ccYRI.js";import{t as ee}from"./hard-drive-DggmyfjR.js";import{t as R}from"./loader-circle-Cw1KvvLK.js";import{t as te}from"./moon-Be4Pgk5X.js";import{t as z}from"./refresh-cw-YXbpNg95.js";import{a as ne,c as re,o as ie,r as ae,s as oe,t as se}from"./resize-errors-CXz-pd2h.js";import{t as ce}from"./sparkles-C8hCShdb.js";import{t as B}from"./triangle-alert-AqQQTwUZ.js";import{n as V,r as H,t as U}from"./api-errors-D3EsNrwn.js";import{C as W,J as le,S as ue,a as de,f as fe,n as pe,v as me,x as he,y as ge}from"./auth-store-CbVvQiBR.js";import{t as _e}from"./client.gen-DzaL5PKF.js";import{S as ve,V as ye,Y as be,j as xe}from"./sdk.gen-0RzHFsEa.js";import{a as G}from"./routes-B9xcBuuC.js";import{t as K}from"./client-feature-flag-store-DjN8fxHA.js";import{r as q,t as Se}from"./semver-aan9RUyA.js";import{t as Ce}from"./assistant-feature-flag-store-BD9zTDcP.js";import{A as we,D as Te,E as Ee,M as De,Q as Oe,T as ke,bt as Ae,c as je,et as Me,gt as Ne,j as Pe,k as Fe,v as Ie,w as Le,wt as Re,xt as ze}from"./react-query.gen-CRARj4mG.js";import{t as Be}from"./proxy-l3iqYpig.js";import{t as Ve}from"./use-reduced-motion-DgX4o6QR.js";import{At as He,Dt as Ue,Fr as We,Hn as Ge,Jt as Ke,Kt as qe,Nn as Je,Nr as Ye,Ot as Xe,Q as Ze,Ti as Qe,Un as $e,Ut as et,Wn as tt,Wt as nt,Xr as rt,Y as it,Yr as at,ci as ot,d as st,f as ct,it as lt,kt as ut,l as dt,ln as ft,na as pt,qt as mt,s as ht,ta as gt,u as _t,x as J,zr as vt}from"./index-Cx6vyW7T.js";import{t as yt}from"./use-active-assistant-id-BlwRimQH.js";import{t as Y}from"./detail-card-QPVpO5cj.js";import{t as bt}from"./environment-store-DoO5ZqXZ.js";import{i as xt,n as X,r as St,t as Ct}from"./assistant-status-panel-CFhkAfJY.js";var wt=P(`fingerprint-pattern`,[[`path`,{d:`M12 10a2 2 0 0 0-2 2c0 1.02-.1 2.51-.26 4`,key:`1nerag`}],[`path`,{d:`M14 13.12c0 2.38 0 6.38-1 8.88`,key:`o46ks0`}],[`path`,{d:`M17.29 21.02c.12-.6.43-2.3.5-3.02`,key:`ptglia`}],[`path`,{d:`M2 12a10 10 0 0 1 18-6`,key:`ydlgp0`}],[`path`,{d:`M2 16h.01`,key:`1gqxmh`}],[`path`,{d:`M21.8 16c.2-2 .131-5.354 0-6`,key:`drycrb`}],[`path`,{d:`M5 19.5C5.5 18 6 15 6 12a6 6 0 0 1 .34-2`,key:`1tidbn`}],[`path`,{d:`M8.65 22c.21-.66.45-1.32.57-2`,key:`13wd9y`}],[`path`,{d:`M9 6.8a6 6 0 0 1 9 5.2v2`,key:`1fr1j5`}]]),Tt=P(`vibrate`,[[`path`,{d:`m2 8 2 2-2 2 2 2-2 2`,key:`sv1b1`}],[`path`,{d:`m22 8-2 2 2 2-2 2 2 2`,key:`101i4y`}],[`rect`,{width:`8`,height:`14`,x:`8`,y:`5`,rx:`1`,key:`1oyrl4`}]]),Z=e(s(),1),Et=me,Dt=`Please choose a different handle.`;async function Ot(e,t){let{data:n,error:r,response:i}=await xe({path:{id:e},body:{handle:t},throwOnError:!1});if(!i)return{kind:`error`,message:H(r,void 0,`Failed to save handle.`)??`Failed to save handle.`};if(i.ok&&n)return{kind:`ok`,data:n};if(i.status===409){let{message:e}=W(r,`handle`,Et.taken);return{kind:`taken`,message:e}}if(i.status===400){let{code:e,message:t}=W(r,`handle`,Dt);return{kind:`invalid`,code:e,message:t}}return{kind:`error`,message:H(r,i,`Failed to save handle.`)}}async function kt(e,t,n){let{data:r,error:i,response:a}=await ve({path:{assistant_id:e},query:{handle:t},signal:n,throwOnError:!1});if(V(a,i,`Failed to check handle availability.`),!a.ok||!r)throw new U(a.status,a.status===429?`Too many checks — try again in a moment.`:H(i,a,`Failed to check handle availability.`));return{available:r.available,code:r.code??null,message:r.message??null}}function At(e){return/\d{2,}$/.test(e)}var Q=m(),jt=300,Mt=1400;function Nt({initialHandle:e,inputLabel:t,helperText:n,idleHelperText:r,checkAvailable:i,save:a,onSaved:o,saveSuccessToast:s,fieldId:l}){let[u,d]=(0,Z.useState)(e),[f,p]=(0,Z.useState)(null),[m,h]=(0,Z.useState)(!1),[g,_]=(0,Z.useState)(`idle`),[v,y]=(0,Z.useState)(null),b=Ve(),x=(0,Z.useRef)(null),S=(0,Z.useMemo)(()=>u.trim().toLowerCase(),[u]),w=S===e.toLowerCase();(0,Z.useEffect)(()=>{if(w||S.length===0){h(!1),x.current?.abort();return}let e=new AbortController;x.current?.abort(),x.current=e,h(!0);let t=window.setTimeout(async()=>{try{let t=await i(S,e.signal);e.signal.aborted||p(t)}catch(t){e.signal.aborted||y(t instanceof Error?t.message:`Couldn't check availability.`)}finally{e.signal.aborted||h(!1)}},jt);return()=>{window.clearTimeout(t),e.abort()}},[S,w,i]);let T=(()=>{if(v)return v;if(f&&!f.available){let e=f.code;return f.message??(e?Et[e]:`Please choose a different handle.`)}return null})(),E=T?n:w?r??null:m?`Checking availability…`:f?.available?`Available.`:null,O=!w&&!m&&f?.available!==!1&&g!==`saving`,k=(0,Z.useCallback)(async()=>{if(!O)return;_(`saving`),y(null);let e=await a(S);if(e.kind===`ok`){_(`saved`),o(e.data),D.success(s),window.setTimeout(()=>_(`idle`),Mt);return}if(e.kind===`taken`){_(`idle`),p({available:!1,code:`taken`,message:e.message});return}if(e.kind===`invalid`){_(`idle`),p({available:!1,code:e.code,message:e.message});return}_(`error`),y(e.message),D.error(e.message)},[O,S,o,a,s]),A=(()=>{if(w&&u.length>0||u.length===0)return null;let e=m?`checking`:f?.available?`available`:f?.available===!1?`invalid`:null;return e?(0,Q.jsx)(Ze,{mode:`wait`,initial:!1,children:(0,Q.jsxs)(Be.span,{initial:b?!1:{opacity:0,scale:.85},animate:{opacity:1,scale:1},exit:b?void 0:{opacity:0,scale:.85},transition:{duration:.14,ease:`easeOut`},className:`flex items-center`,"aria-hidden":e!==`available`&&e!==`invalid`,children:[e===`checking`&&(0,Q.jsx)(R,{className:`h-4 w-4 animate-spin text-[var(--content-tertiary)]`}),e===`available`&&(0,Q.jsx)(pt,{className:`h-4 w-4 text-[var(--system-positive-strong)]`,"aria-label":`Available`}),e===`invalid`&&(0,Q.jsx)(L,{className:`h-4 w-4 text-[var(--system-negative-strong)]`,"aria-label":`Not available`})]},e)}):null})(),j=(()=>{switch(g){case`saving`:return(0,Q.jsxs)(`span`,{className:`inline-flex items-center gap-1.5`,children:[(0,Q.jsx)(R,{className:`h-3.5 w-3.5 animate-spin`,"aria-hidden":!0}),`Saving…`]});case`saved`:return(0,Q.jsxs)(`span`,{className:`inline-flex items-center gap-1.5`,children:[(0,Q.jsx)(pt,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),`Saved`]});default:return`Save`}})();return(0,Q.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,Q.jsx)(C,{label:t,value:u,onChange:e=>{d(e.target.value.replace(/\s+/g,``)),p(null),y(null)},autoCorrect:`off`,autoCapitalize:`none`,spellCheck:!1,maxLength:30,leftIcon:(0,Q.jsx)(`span`,{className:`select-none font-mono text-[var(--content-tertiary)]`,"aria-hidden":!0,children:`@`}),rightIcon:A,errorText:T??void 0,helperText:E??void 0,"aria-invalid":!!T,fullWidth:!0,"data-testid":`${l}-input`}),(!w||g!==`idle`)&&(0,Q.jsx)(`div`,{className:`flex justify-end`,children:(0,Q.jsx)(c,{variant:`primary`,size:`compact`,onClick:k,disabled:!O,"aria-live":`polite`,"data-testid":`${l}-save`,children:j})})]})}function Pt({initial:e,onSaved:t}){let n=pe.use.refreshSession(),r=At(e.username)?`Your handle was auto-generated at signup — pick one you like.`:void 0,i=(0,Z.useCallback)(async e=>await ue({username:e}),[]),a=(0,Z.useCallback)((e,t)=>ge(e,t),[]),o=(0,Z.useCallback)(e=>{t(e),n()},[t,n]);return(0,Q.jsx)(Nt,{initialHandle:e.username,inputLabel:`User handle`,helperText:`Lowercase letters, digits, hyphens, and underscores. 3–30 characters.`,idleHelperText:r,checkAvailable:a,save:i,onSaved:o,saveSuccessToast:`Profile updated.`,fieldId:`user-handle`})}function Ft({assistant:e,onSaved:t}){let n=e.handle??``,r=f({...je({path:{assistant_id:e.id}})}).data?.results?.[0],i=!!r&&r.subdomain.toLowerCase()===n.toLowerCase(),a=n.length===0?`Your assistant doesn't have a handle yet — claim one to make it mentionable.`:void 0,o=(0,Z.useCallback)(async t=>await Ot(e.id,t),[e.id]),s=(0,Z.useCallback)((t,n)=>kt(e.id,t,n),[e.id]);return i?(0,Q.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,Q.jsx)(C,{label:`Assistant handle`,value:n,readOnly:!0,disabled:!0,leftIcon:(0,Q.jsx)(`span`,{className:`select-none font-mono text-[var(--content-tertiary)]`,"aria-hidden":!0,children:`@`}),fullWidth:!0,"data-testid":`assistant-handle-input`}),(0,Q.jsxs)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:[`Your assistant's handle is locked because it's used as its email subdomain. To change it,`,` `,(0,Q.jsx)(u,{to:`${G.settings.ai}?release=1#email`,className:`text-[var(--content-link)] underline hover:text-[var(--content-link-hover)]`,children:`release the subdomain`}),` `,`first.`]})]}):(0,Q.jsx)(Nt,{initialHandle:n,inputLabel:`Assistant handle`,helperText:`Lowercase letters, digits, hyphens, and underscores. 3–30 characters.`,idleHelperText:a,checkAvailable:s,save:o,onSaved:t,saveSuccessToast:`Assistant handle updated.`,fieldId:`assistant-handle`})}function It(){return(0,Q.jsxs)(`div`,{className:`flex flex-col gap-4`,"aria-busy":!0,"aria-live":`polite`,children:[(0,Q.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,Q.jsx)(`div`,{className:`h-3 w-16 animate-pulse rounded bg-[var(--surface-muted)]`}),(0,Q.jsx)(`div`,{className:`h-9 w-full animate-pulse rounded-md bg-[var(--surface-muted)]`}),(0,Q.jsx)(`div`,{className:`h-3 w-72 animate-pulse rounded bg-[var(--surface-muted)]`})]}),(0,Q.jsx)(`div`,{className:`h-9 w-full animate-pulse rounded-md bg-[var(--surface-muted)]`}),(0,Q.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,Q.jsx)(`div`,{className:`h-3 w-60 animate-pulse rounded bg-[var(--surface-muted)]`}),(0,Q.jsx)(`div`,{className:`h-7 w-16 animate-pulse rounded-md bg-[var(--surface-muted)]`})]}),(0,Q.jsx)(`span`,{className:`sr-only`,children:`Loading your profile…`})]})}function Lt({assistant:e}={}){let[t,n]=(0,Z.useState)(null),[r,i]=(0,Z.useState)(null),a=Ve(),[o,s]=(0,Z.useState)(e??null);return(0,Z.useEffect)(()=>{s(e??null)},[e]),(0,Z.useEffect)(()=>{let e=!1;return he().then(t=>{e||n(t)}).catch(t=>{e||i(t instanceof Error?t.message:`Failed to load profile.`)}),()=>{e=!0}},[]),(0,Q.jsx)(Y,{title:`Profile`,subtitle:`Manage your user and assistant public handles.`,children:r?(0,Q.jsx)(`p`,{className:`text-body-small-default text-[var(--system-negative-strong)]`,children:r}):t?(0,Q.jsxs)(Be.div,{initial:a?!1:{opacity:0,y:4},animate:{opacity:1,y:0},transition:{duration:.22,ease:`easeOut`},className:`flex flex-col gap-6`,children:[(0,Q.jsx)(Pt,{initial:t,onSaved:n}),o&&(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`div`,{className:`border-t border-[var(--border-subtle)]`}),(0,Q.jsx)(Ft,{assistant:o,onSaved:s})]})]}):(0,Q.jsx)(It,{})})}var Rt=Ie({query:{hosting:`platform`}});function zt(){let e=yt(),t=f(Rt),n=t.data?.results??[];return t.isPending||n.length<2?null:(0,Q.jsx)(Y,{title:`Switch Assistant`,subtitle:`Choose which assistant is active for this account.`,children:(0,Q.jsx)(`div`,{className:`space-y-2`,children:n.map(t=>{let n=t.id===e;return(0,Q.jsxs)(`div`,{className:`flex items-center justify-between gap-4 rounded-lg border px-4 py-3 ${n?`border-[var(--border-focus)] bg-[var(--surface-lift)]`:`border-[var(--border-base)] bg-[var(--surface-default)]`}`,children:[(0,Q.jsxs)(`div`,{className:`flex min-w-0 items-center gap-3`,children:[(0,Q.jsx)(ot,{className:`h-4 w-4 shrink-0 text-[var(--content-tertiary)]`}),(0,Q.jsx)(`div`,{className:`min-w-0`,children:(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(`span`,{className:`truncate text-body-medium-default text-[var(--content-default)]`,children:t.name||`Unnamed`}),t.status!==`active`&&(0,Q.jsx)(S,{tone:`warning`,children:t.status})]})})]}),(0,Q.jsx)(`div`,{className:`shrink-0`,children:n?(0,Q.jsxs)(`span`,{className:`flex items-center gap-1.5 text-body-small-default text-[var(--system-positive-default)]`,children:[(0,Q.jsx)(pt,{className:`h-4 w-4`}),`Active`]}):(0,Q.jsx)(c,{variant:`outlined`,size:`compact`,disabled:t.status!==`active`,onClick:()=>{le(t.id),D.success(`Switched active assistant.`)},children:`Switch`})})]},t.id)})})})}var Bt=[{label:`Never`,seconds:0},{label:`5 min`,seconds:300,devOnly:!0},{label:`10 min`,seconds:600,devOnly:!0},{label:`1 hour`,seconds:3600},{label:`3 hours`,seconds:10800},{label:`1 day`,seconds:86400},{label:`3 days`,seconds:259200},{label:`7 days`,seconds:604800},{label:`14 days`,seconds:1209600},{label:`30 days`,seconds:2592e3}];function Vt(e){if(e===0)return`Never (sleep disabled)`;let t=Math.floor(e/86400),n=Math.floor(e%86400/3600);if(t>0&&n>0)return`${t}d ${n}h`;if(t>0)return`${t} day${t===1?``:`s`}`;if(n>0)return`${n} hour${n===1?``:`s`}`;let r=Math.floor(e/60);return r>0?`${r} minute${r===1?``:`s`}`:`${e}s`}function Ht({assistantId:e}){let t=d(),n=bt.use.isNonProduction(),r=(0,Z.useMemo)(()=>Bt.filter(e=>!e.devOnly||n),[n]),{data:i,isLoading:a,isError:o}=f(Pe({path:{id:e}})),s=(0,Z.useMemo)(()=>i?.idle_timeout_seconds??259200,[i]),[l,u]=(0,Z.useState)(null),p=l??s,m=l!==null,h=ze({onSuccess:()=>{D.success(`Sleep policy saved.`),u(null),t.invalidateQueries({queryKey:De({path:{id:e}})})},onError:()=>{D.error(`Failed to save sleep policy. Please try again.`)}});return a?(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,Q.jsx)(R,{className:`h-4 w-4 animate-spin`}),`Loading sleep settings...`]}):o?(0,Q.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--system-negative-strong)]`,children:`Failed to load sleep policy. Refresh the page to try again.`}):(0,Q.jsxs)(`div`,{className:`space-y-4`,children:[(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(`label`,{className:`block text-body-medium-default text-[var(--content-default)]`,children:`Idle timeout`}),(0,Q.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`How long the assistant can be idle before it is put to sleep. "Never" disables idle sleep entirely.`}),(0,Q.jsx)(`div`,{className:`mt-2 flex flex-wrap gap-2`,children:r.map(e=>(0,Q.jsx)(c,{variant:`outlined`,active:p===e.seconds,onClick:()=>u(e.seconds),children:e.label},e.seconds))}),(0,Q.jsxs)(`p`,{className:`mt-2 text-body-small-default text-[var(--content-tertiary)]`,children:[`Current: `,Vt(p)]})]}),m&&(0,Q.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,Q.jsx)(c,{variant:`primary`,leftIcon:h.isPending?(0,Q.jsx)(R,{className:`animate-spin`}):void 0,onClick:()=>h.mutate({path:{id:e},body:{idle_timeout_seconds:p}}),disabled:h.isPending,children:`Save`}),(0,Q.jsx)(c,{variant:`outlined`,onClick:()=>u(null),disabled:h.isPending,children:`Cancel`})]})]})}function Ut(e,t,n){let r=[e.version];return e.version===n&&r.push(`(latest)`),t&&e.version===t&&r.push(`(current)`),r.join(` `)}var Wt=3e3;function Gt({assistantId:e,currentVersion:t,releaseChannel:n,onUpgradeComplete:r}){let i=Ce.use.rollbackEnabled(),a=K.use.previewChannel(),o=d(),s=Xe(n,a),l=s===`preview`,[u,m]=(0,Z.useState)(!1),h=(0,Z.useRef)(null),[_,v]=(0,Z.useState)(null),[y,x]=(0,Z.useState)(!1),[S,C]=(0,Z.useState)(!1),[w,T]=(0,Z.useState)(null),E=e=>e&&h.current&&e===h.current?(queueMicrotask(()=>{T(S?`Successfully rolled back to version ${h.current}.`:`Successfully updated to version ${h.current}.`),m(!1),h.current=null,v(null),D.success(S?`Rollback complete — assistant is healthy.`:`Update complete — assistant is healthy.`),r?.()}),!1):Wt;f({...Fe({path:{id:e}}),refetchInterval:u?e=>E(e.state.data?.current_release_version):!1});let{data:O,isLoading:k}=f(Ne({query:{channel:s}})),A=O?.find(e=>e.is_stable!==!1)??O?.[0],j=_??A?.version??null,M=(0,Z.useMemo)(()=>{if(!i||!j||!t)return!1;let e=q(j),n=q(t);return!e||!n?!1:Se(e,n)<0},[i,j,t]),N=(0,Z.useMemo)(()=>{if(!j)return!1;if(!t)return!0;let e=q(j),n=q(t);if(!e||!n)return j!==t;let r=Se(e,n);return i?r!==0:r>0},[i,j,t]),P=p({mutationFn:async t=>{let{data:n}=await be({path:{id:e},body:t,throwOnError:!0});return n}}),F=p({mutationFn:async t=>{let{data:n}=await ye({path:{id:e},body:t,throwOnError:!0});return n}});return(0,Q.jsxs)(`div`,{className:`space-y-5`,children:[(0,Q.jsxs)(`div`,{className:`flex flex-col gap-4 md:grid md:grid-cols-[auto_minmax(0,1fr)] md:items-center md:gap-x-8 md:gap-y-4`,children:[(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1 md:contents`,children:[(0,Q.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:`Current`}),(0,Q.jsx)(`span`,{className:`block min-w-0 break-all text-body-medium-lighter text-[var(--content-default)]`,children:t??`—`})]}),(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1 md:contents`,children:[(0,Q.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:l?`Preview release`:N?M?`Rollback to`:`Update to`:`Selected`}),(0,Q.jsx)(`span`,{className:`block min-w-0`,children:k?(0,Q.jsxs)(`span`,{className:`flex items-center gap-1 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,Q.jsx)(R,{className:`h-3 w-3 animate-spin`}),`Loading...`]}):O&&O.length>0?i?(0,Q.jsx)(g,{value:j??``,onChange:e=>v(e===A?.version?null:e),disabled:u||P.isPending||F.isPending,options:O.map(e=>({value:e.version,label:Ut(e,t,A?.version)}))}):(0,Q.jsx)(`span`,{className:`block min-w-0 break-all text-body-medium-lighter text-[var(--content-default)]`,children:A?Ut(A,t,A.version):`—`}):`No releases available`})]})]}),(0,Q.jsx)(c,{variant:M?`outlined`:`primary`,className:`min-w-[160px]`,leftIcon:P.isPending||F.isPending||u?(0,Q.jsx)(R,{className:`animate-spin`}):(0,Q.jsx)(z,{}),onClick:()=>x(!0),disabled:!N||P.isPending||F.isPending||u||k||!O?.length,children:u?S?`Rolling back...`:`Updating...`:M?`Rollback`:l?`Update preview`:`Update`}),l&&(0,Q.jsxs)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:[`Using Preview releases.`,` `,(0,Q.jsx)(`a`,{href:`#preview-release-channel`,className:`text-[var(--primary-base)] underline-offset-2 hover:underline`,children:`Switch back to Stable`})]}),!N&&t&&j&&!k&&(0,Q.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--system-positive-strong)]`,children:w??`You are already on this version.`}),(0,Q.jsx)(b,{open:y,title:M?`Rollback assistant`:l?`Update preview release`:`Update assistant`,message:M?`Rollback to version ${j??`unknown`}? The assistant will be briefly unavailable.`:l?`Update to preview version ${j??`latest`}? The assistant will be briefly unavailable during the update.`:`Update to version ${j??`latest`}? The assistant will be briefly unavailable during the update.`,confirmLabel:M?`Rollback`:l?`Update preview`:`Update`,onConfirm:async()=>{x(!1),T(null);let t=_??void 0;try{if(M){let e=await F.mutateAsync({version:t});h.current=e.version??t??null,D.success(e.detail||`Rollback to ${t} initiated.`)}else{let e=await P.mutateAsync({version:t});if(e.detail?.includes(`Already on the latest`)){D.warning(e.detail);return}h.current=e.version??t??null,D.success(e.detail||`Update to ${e.version??t??`latest`} initiated.`)}C(M),m(!0),o.invalidateQueries({queryKey:we({path:{id:e}})})}catch{D.error(M?`Failed to trigger rollback. Please try again.`:`Failed to trigger update. Please try again.`)}},onCancel:()=>x(!1)})]})}function Kt({assistantId:e,currentVersion:t,onUpgradeComplete:n}){let[r,i]=(0,Z.useState)(!1),[a,o]=(0,Z.useState)(null),{data:s,isLoading:l}=f(Ne({query:{stable:!0,limit:100}})),u=(0,Z.useMemo)(()=>Ue(s),[s]),d=u?.version,p=t?ut(t,d):!!d,m=He({assistantId:e,targetVersion:d});return(0,Q.jsxs)(`div`,{className:`space-y-5`,children:[(0,Q.jsxs)(`div`,{className:`flex flex-col gap-4 md:grid md:grid-cols-[auto_minmax(0,1fr)] md:items-center md:gap-x-8 md:gap-y-4`,children:[(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1 md:contents`,children:[(0,Q.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:`Current`}),(0,Q.jsx)(`span`,{className:`block min-w-0 break-all text-body-medium-lighter text-[var(--content-default)]`,children:t??`—`})]}),(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1 md:contents`,children:[(0,Q.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:`Update to`}),(0,Q.jsx)(`span`,{className:`block min-w-0 break-all text-body-medium-lighter text-[var(--content-default)]`,children:l?`Loading...`:d&&u?Ut(u,t,d):`No releases available`})]})]}),(0,Q.jsx)(c,{variant:`primary`,className:`min-w-[160px]`,leftIcon:m.isPending?(0,Q.jsx)(R,{className:`animate-spin`}):(0,Q.jsx)(z,{}),onClick:()=>i(!0),disabled:m.isPending||l||!d||!p,children:m.isPending?`Updating...`:d?`Update to ${d}`:`Update`}),a&&(0,Q.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--system-positive-strong)]`,children:a}),!a&&!p&&d&&!l&&(0,Q.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--system-positive-strong)]`,children:`You are already on this version.`}),(0,Q.jsx)(b,{open:r,title:`Update assistant`,message:`Update to version ${d??`latest`}? The assistant will be briefly unavailable during the update.`,confirmLabel:`Update`,onConfirm:async()=>{i(!1),o(null);try{let e=await m.upgrade();o(e.version?`Successfully updated to version ${e.version}.`:`Successfully updated to version ${d??`latest`}.`),D.success(`Update complete — assistant is healthy.`),n?.()}catch(e){D.error(e instanceof Error?e.message:`Failed to trigger update. Please try again.`)}},onCancel:()=>i(!1)})]})}function qt(){let e=ct.useValue();if(ft())return null;let t=_t()?`Cmd`:`Ctrl`;return(0,Q.jsx)(Y,{title:`Composer`,children:(0,Q.jsx)(w,{checked:e,onChange:ct.save,label:`Send with ${t}+Enter`,helperText:`When enabled, Enter inserts a new line and ${t}+Enter sends.`})})}function Jt(){let e=Ke({platformHostedOnly:!0}),t=mt(),n=pe.use.user()?.id??null,r=pe.use.logout(),[i,a]=(0,Z.useState)(!1),o=Re({onSuccess:async()=>{D.success(`Account deletion requested. You will be logged out shortly.`),fe(n),await r(),Je(G.account.login)},onError:()=>{D.error(`Failed to request account deletion. Please try again.`)}}),s=e===`full`&&t;return(0,Z.useEffect)(()=>{s&&i&&a(!1)},[s,i]),e===`gated`?null:(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(Y,{title:`Delete Account`,subtitle:`Permanently delete your account and all associated data.`,variant:`danger`,children:e===`disabled`?(0,Q.jsx)(J,{children:`Log in to the Vellum platform to delete your account.`}):(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(c,{variant:`dangerOutline`,onClick:()=>a(!0),disabled:o.isPending||s,className:`self-start`,children:`Delete My Account`}),s&&(0,Q.jsx)(R,{className:`h-4 w-4 animate-spin text-[var(--content-tertiary)]`})]})}),(0,Q.jsx)(b,{open:i,title:`Delete Account`,message:`This will permanently delete your account and all associated data. This action cannot be undone.`,confirmLabel:`Delete Account`,destructive:!0,onConfirm:()=>{if(s){a(!1);return}a(!1),o.mutate({})},onCancel:()=>a(!1)})]})}function Yt({title:e,subtitle:t,benefits:n,ctaLabel:r,ctaLeftIcon:i,onAction:a}){return(0,Q.jsx)(Y,{title:e,subtitle:t,children:(0,Q.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,Q.jsx)(`ul`,{className:`space-y-3`,children:n.map(({icon:e,text:t})=>(0,Q.jsxs)(`li`,{className:`flex items-center gap-3`,children:[(0,Q.jsx)(`span`,{className:`flex size-7 shrink-0 items-center justify-center rounded-md`,style:{background:`var(--surface-base)`},children:(0,Q.jsx)(e,{size:14,style:{color:`var(--content-secondary)`},"aria-hidden":!0})}),(0,Q.jsx)(`span`,{className:`text-body-medium-lighter text-[color:var(--content-secondary)]`,children:t})]},t))}),(0,Q.jsx)(c,{variant:`primary`,size:`regular`,leftIcon:i,onClick:a,className:`self-start`,children:r})]})})}function Xt(){return st()?(0,Q.jsx)(Yt,{title:`Get the iOS App`,subtitle:`The Vellum iOS app gives you a native experience.`,benefits:[{icon:F,text:`Push notifications`},{icon:wt,text:`Biometric login`},{icon:Tt,text:`Native haptics`},{icon:vt,text:`Home screen access`}],ctaLabel:`Download`,ctaLeftIcon:(0,Q.jsx)(vt,{size:16}),onAction:()=>{dt(),ht()}}):null}async function Zt(){if(!M())return!1;let e=window.vellum;return e?.launchAtLogin?e.launchAtLogin.get():!1}async function Qt(e){if(!M())return;let t=window.vellum;t?.launchAtLogin&&await t.launchAtLogin.set(e)}function $t(){let[e,t]=(0,Z.useState)(!1);(0,Z.useEffect)(()=>{Zt().then(t)},[]);let n=async e=>{t(e);try{await Qt(e)}catch{t(!e)}};return(0,Q.jsx)(Y,{title:`Launch at Login`,subtitle:`Automatically start Vellum when you log in to your Mac.`,children:(0,Q.jsx)(w,{checked:e,onChange:e=>void n(e),"aria-label":`Launch at Login`})})}function en({className:e}){return(0,Q.jsx)(`div`,{role:`presentation`,className:h(`h-px w-full bg-[var(--border-base)]`,e)})}var $=[`youtube.com`,`youtu.be`,`vimeo.com`,`loom.com`];function tn(e){try{let t=JSON.parse(e);if(Array.isArray(t))return t.filter(e=>typeof e==`string`)}catch{}return[...$]}function nn(){return n(`mediaEmbedsEnabled`,!0)}function rn(){let e=i(`mediaEmbedDomains`,``);return e?tn(e):[...$]}function an(){let[e,n]=(0,Z.useState)(()=>nn()),[i,a]=(0,Z.useState)(()=>rn()),[o,s]=(0,Z.useState)(!1),[l,u]=(0,Z.useState)(``),d=(0,Z.useMemo)(()=>l.trim().toLowerCase(),[l]),f=e=>{n(e),t(`mediaEmbedsEnabled`,e)},p=e=>{a(e),r(`mediaEmbedDomains`,JSON.stringify(e))},m=()=>{if(d){if(i.includes(d)){u(``);return}p([...i,d]),u(``)}},h=e=>{p(i.filter(t=>t!==e))},g=()=>{p([...$])},_=i.length===$.length&&i.every((e,t)=>e===$[t]);return(0,Q.jsxs)(Y,{title:`Media Embeds`,subtitle:`Automatically embed images, videos, and other media shared in chat messages.`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,Q.jsx)(`div`,{className:`text-body-medium-lighter text-[var(--content-default)]`,children:`Auto Media Embeds`}),(0,Q.jsx)(w,{checked:e,onChange:f})]}),e&&(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`div`,{className:`mt-4`,children:(0,Q.jsx)(en,{})}),(0,Q.jsxs)(c,{type:`button`,variant:`ghost`,onClick:()=>s(e=>!e),className:`mt-4 w-full justify-between px-3`,"aria-expanded":o,children:[(0,Q.jsxs)(`span`,{className:`flex items-center gap-2`,children:[o?(0,Q.jsx)(gt,{className:`h-4 w-4`,"aria-hidden":!0}):(0,Q.jsx)(I,{className:`h-4 w-4`,"aria-hidden":!0}),`Video Domain Allowlist`]}),(0,Q.jsxs)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:[i.length,` domain`,i.length===1?``:`s`]})]}),o&&(0,Q.jsxs)(`div`,{className:`mt-3 space-y-3`,children:[(0,Q.jsxs)(`div`,{className:`flex items-end gap-2`,children:[(0,Q.jsx)(C,{label:`Add Domain`,type:`text`,value:l,onChange:e=>u(e.target.value),onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),m())},placeholder:`Add domain (e.g. example.com)`,fullWidth:!0,wrapperClassName:`flex-1`}),(0,Q.jsx)(c,{variant:`primary`,size:`compact`,onClick:m,disabled:!d,children:`Add`})]}),i.length>0&&(0,Q.jsx)(`div`,{className:`flex justify-end`,children:(0,Q.jsx)(c,{type:`button`,variant:`ghost`,size:`compact`,onClick:g,disabled:_,tintColor:`var(--content-tertiary)`,children:`Reset to Defaults`})}),i.length>0&&(0,Q.jsx)(`ul`,{className:`space-y-2`,children:i.map(e=>(0,Q.jsxs)(`li`,{className:`flex items-center justify-between rounded-md border border-[var(--border-base)] px-3 py-2 text-body-medium-lighter`,children:[(0,Q.jsx)(`span`,{className:`font-mono text-[var(--content-default)]`,children:e}),(0,Q.jsx)(c,{variant:`dangerGhost`,size:`compact`,iconOnly:(0,Q.jsx)(Ye,{}),onClick:()=>h(e),"aria-label":`Remove ${e}`})]},e))})]})]})]})}function on(e){return e===`preview`?`preview`:`stable`}function sn(e){if(!e)return`Unknown`;let t=new Date(e);return Number.isNaN(t.getTime())?`Unknown`:t.toLocaleString(void 0,{year:`numeric`,month:`short`,day:`numeric`,hour:`numeric`,minute:`2-digit`})}function cn(e){return e.source_release_version?`Stable ${e.source_release_version}`:e.snapshot_name}function ln(e){return e.filter(e=>e.ready_to_use)}function un(e){return e?.feature_enabled===!1}function dn({assistantId:e,onComplete:t}){let n=K.use.previewChannel(),r=d(),[i,a]=(0,Z.useState)(),[o,s]=(0,Z.useState)(!1),[c,l]=(0,Z.useState)(!1),[u,m]=(0,Z.useState)(`restore_backup`),[h,g]=(0,Z.useState)(``),_=Ee({path:{assistant_id:e}}),v=Te({path:{assistant_id:e}}),b=we({path:{id:e}}),{data:C,isLoading:w,isError:T}=f({..._,enabled:n,retry:!1}),E=C?.preview_backups??[],O=(0,Z.useMemo)(()=>ln(E),[E]),k=O[0],A=O.find(e=>e.snapshot_name===h)??k,j=()=>{r.invalidateQueries({queryKey:v}),r.invalidateQueries({queryKey:b}),t?.()},M=p(Le()),N=p(ke()),P=on(C?.current_channel),F=M.isPending||N.isPending,I=F||un(C)||!C?.latest_preview_release,L=u===`restore_backup`&&!A;if((0,Z.useEffect)(()=>{a(P===`preview`?`release-channel`:void 0)},[P]),!n)return null;let ee=C?.standard_upgrade_available??!1;return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(y.Root,{type:`single`,collapsible:!0,value:i,onValueChange:e=>a(e||void 0),className:`mt-5 border-t border-[var(--border-base)] pt-5`,children:(0,Q.jsxs)(y.Item,{value:`release-channel`,id:`preview-release-channel`,children:[(0,Q.jsxs)(y.Trigger,{className:`group justify-between gap-3`,children:[(0,Q.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[(0,Q.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-secondary)]`,children:`Release Channel`}),C&&(0,Q.jsx)(S,{tone:P===`preview`?`warning`:`neutral`,children:P===`preview`?`Preview`:`Stable`})]}),(0,Q.jsx)(gt,{className:`h-4 w-4 shrink-0 text-[var(--content-tertiary)] transition-transform group-data-[state=open]:rotate-180`})]}),(0,Q.jsx)(y.Content,{children:(0,Q.jsxs)(`div`,{className:`mt-4 space-y-4`,children:[w&&(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,Q.jsx)(R,{className:`h-4 w-4 animate-spin`}),`Loading release channel...`]}),T&&(0,Q.jsx)(x,{tone:`error`,title:`Could not load release channel status`,children:`Refresh this page before changing release channels.`}),C&&(0,Q.jsxs)(Q.Fragment,{children:[un(C)&&(0,Q.jsx)(x,{tone:`neutral`,title:`Preview channel is unavailable`,children:`The Preview channel is not enabled for this assistant.`}),P===`stable`?(0,Q.jsx)(fn,{status:C,isChangingChannel:F,optInDisabled:I,onOptIn:()=>s(!0)}):(0,Q.jsx)(pn,{status:C,isChangingChannel:F,onOptOut:()=>{let e=k;g(e?.snapshot_name??``),m(e?`restore_backup`:ee?`standard_upgrade`:`restore_backup`),l(!0)}})]})]})})]})}),(0,Q.jsx)(hn,{open:o,isPending:M.isPending,previewVersion:C?.latest_preview_release?.version,onConfirm:async()=>{try{let t=await M.mutateAsync({path:{assistant_id:e}});D.success(t.detail||`Preview channel enabled.`),s(!1),j()}catch(e){D.error(H(e,void 0,`Could not enable Preview channel.`))}},onCancel:()=>s(!1)}),(0,Q.jsx)(gn,{open:c,backups:O,mode:u,selectedSnapshotName:A?.snapshot_name??``,isPending:N.isPending,restoreModeDisabled:L,standardUpgradeAvailable:ee,onModeChange:m,onSnapshotChange:g,onConfirm:async()=>{if(!L)try{let t=await N.mutateAsync({path:{assistant_id:e},body:u===`restore_backup`?{mode:`restore_backup`,snapshot_name:A?.snapshot_name}:{mode:`standard_upgrade`}});D.success(t.detail||`Stable channel enabled.`),l(!1),j()}catch(e){D.error(H(e,void 0,`Could not switch to Stable.`))}},onCancel:()=>l(!1)})]})}function fn({status:e,isChangingChannel:t,optInDisabled:n,onOptIn:r}){return(0,Q.jsxs)(`div`,{className:`space-y-4`,children:[(0,Q.jsx)(mn,{status:e}),!e.latest_preview_release&&(0,Q.jsx)(x,{tone:`neutral`,title:`No Preview release is available`,children:`Stable remains the only available release channel.`}),(0,Q.jsx)(c,{variant:`outlined`,leftIcon:t?(0,Q.jsx)(R,{className:`animate-spin`}):(0,Q.jsx)(rt,{}),disabled:n,onClick:r,children:`Opt in to Preview`})]})}function pn({status:e,isChangingChannel:t,onOptOut:n}){return(0,Q.jsxs)(`div`,{className:`space-y-4`,children:[(0,Q.jsx)(mn,{status:e}),(0,Q.jsx)(c,{variant:`outlined`,leftIcon:t?(0,Q.jsx)(R,{className:`animate-spin`}):(0,Q.jsx)(at,{}),disabled:t,onClick:n,children:`Switch back to Stable`})]})}function mn({status:e}){return(0,Q.jsxs)(`dl`,{className:`grid gap-3 text-body-medium-lighter sm:grid-cols-2`,children:[(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(`dt`,{className:`text-[var(--content-tertiary)]`,children:`Latest Stable`}),(0,Q.jsx)(`dd`,{className:`break-all text-[var(--content-default)]`,children:e.latest_stable_release?.version??`None`})]}),(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(`dt`,{className:`text-[var(--content-tertiary)]`,children:`Latest Preview`}),(0,Q.jsx)(`dd`,{className:`break-all text-[var(--content-default)]`,children:e.latest_preview_release?.version??`None`})]})]})}function hn({open:e,isPending:t,previewVersion:n,onConfirm:r,onCancel:i}){return(0,Q.jsx)(E.Root,{open:e,onOpenChange:e=>!e&&i(),children:(0,Q.jsxs)(E.Content,{size:`md`,hideCloseButton:t,children:[(0,Q.jsxs)(E.Header,{children:[(0,Q.jsx)(E.Title,{icon:B,children:`Opt in to Preview`}),(0,Q.jsx)(E.Description,{children:`Preview releases may be unstable. A 90-day safety backup is taken before the image changes.`})]}),(0,Q.jsx)(E.Body,{children:(0,Q.jsxs)(`div`,{className:`space-y-3`,children:[(0,Q.jsx)(x,{tone:`warning`,title:`Data loss may occur when returning to Stable`,children:`Preview data may not be compatible with the Stable channel. The safety backup lets you restore the Stable-channel data that existed before opt-in.`}),(0,Q.jsxs)(`ol`,{className:`list-decimal space-y-2 pl-5 text-body-medium-lighter text-[var(--content-secondary)]`,children:[(0,Q.jsx)(`li`,{children:`Create and verify a Preview safety backup.`}),(0,Q.jsxs)(`li`,{children:[`Switch to Preview image `,n??`latest`,`.`]}),(0,Q.jsx)(`li`,{children:`Run the normal upgrade path and wait for health.`})]})]})}),(0,Q.jsxs)(E.Footer,{children:[(0,Q.jsx)(c,{variant:`outlined`,disabled:t,onClick:i,children:`Cancel`}),(0,Q.jsx)(c,{variant:`primary`,disabled:t,leftIcon:t?(0,Q.jsx)(R,{className:`animate-spin`}):(0,Q.jsx)(rt,{}),onClick:r,children:t?`Switching...`:`Take Backup and Switch`})]})]})})}function gn({open:e,backups:t,mode:n,selectedSnapshotName:r,isPending:i,restoreModeDisabled:a,standardUpgradeAvailable:o,onModeChange:s,onSnapshotChange:l,onConfirm:u,onCancel:d}){return(0,Q.jsx)(E.Root,{open:e,onOpenChange:e=>!e&&d(),children:(0,Q.jsxs)(E.Content,{size:`md`,hideCloseButton:i,children:[(0,Q.jsxs)(E.Header,{children:[(0,Q.jsx)(E.Title,{icon:B,children:`Switch back to Stable`}),(0,Q.jsx)(E.Description,{children:`Choose how this assistant should leave the Preview channel.`})]}),(0,Q.jsx)(E.Body,{children:(0,Q.jsxs)(`div`,{className:`space-y-4`,children:[(0,Q.jsxs)(v,{value:n,onValueChange:s,disabled:i,"aria-label":`Stable channel return method`,children:[(0,Q.jsx)(_,{value:`restore_backup`,disabled:t.length===0,label:`Restore safety backup`,helperText:`Return to the Stable-channel data captured before Preview opt-in.`}),(0,Q.jsx)(_,{value:`standard_upgrade`,disabled:!o,label:`Switch to Stable without restoring backup`,helperText:o?`Keep the current data and directly switch to the Stable image.`:`Unavailable because the latest Stable release is older than this assistant's Preview release.`})]}),n===`restore_backup`&&t.length>0&&(0,Q.jsxs)(`label`,{className:`flex flex-col gap-1 text-body-medium-default text-[var(--content-secondary)]`,children:[`Safety backup`,(0,Q.jsx)(g,{value:r,onChange:l,disabled:i,options:t.map(e=>({value:e.snapshot_name,label:`${cn(e)} - ${sn(e.created_at)}`}))})]}),n===`restore_backup`&&t.length===0&&!o&&(0,Q.jsx)(x,{tone:`error`,title:`Stable requires a safety backup`,children:`This Preview release is newer than the latest Stable release, so switching directly is blocked. Wait for a newer Stable release, or run Vellum Doctor if the safety backup is missing.`}),n===`standard_upgrade`&&(0,Q.jsx)(x,{tone:`error`,title:`Preview data may not survive this`,children:`Switching directly to the Stable image without restoring the safety backup may cause data loss or leave the assistant unusable if Preview data is incompatible with Stable.`})]})}),(0,Q.jsxs)(E.Footer,{children:[(0,Q.jsx)(c,{variant:`outlined`,disabled:i,onClick:d,children:`Cancel`}),(0,Q.jsx)(c,{variant:n===`standard_upgrade`?`danger`:`primary`,disabled:i||a||n===`standard_upgrade`&&!o,leftIcon:i?(0,Q.jsx)(R,{className:`animate-spin`}):(0,Q.jsx)(z,{}),onClick:u,children:i?`Switching...`:`Switch to Stable`})]})]})})}function _n({assistant:e,healthz:t,healthzLoading:n,healthzPolling:r,refetch:i,refetchUntilResized:a}){let o=l(),s=f(Me()),d=s.data,p=!e.is_local,m=d?.plan_id===`pro`,h=f({...Oe(),enabled:m}),_=e.machine_size||`small`,v=ne(h.data?.max_machine_tier??null),y=(0,Z.useMemo)(()=>ie(v,_,(0,Q.jsx)(S,{tone:`positive`,children:`Current`})),[v,_]),b=h.data?.selected_storage_gib??null,[C,w]=(0,Z.useState)(!1),T=v.length>0?v[v.length-1]:null,[O,k]=(0,Z.useState)(null),A=O??T??_,[j,M]=(0,Z.useState)(null),[N,P]=(0,Z.useState)(null),F=Ae({onSuccess:(e,n)=>{D.success(`Resize started. Changes will apply shortly.`,{id:`assistant-resize`}),P(null),k(null),w(!1),n.body?.machine_size==null?i():a(t)},onError:e=>{P(se(e,`Failed to resize assistant. Please try again.`))}});if(s.isError&&d==null)return(0,Q.jsx)(Y,{id:`storage-resources`,title:`Compute & Resources`,subtitle:`Monitor resource usage and manage your assistant's compute profile.`,children:(0,Q.jsx)(x,{tone:`error`,children:`Could not load your subscription. Please try again.`})});let I=m&&v.includes(A)&&A!==_?A:null,L=m&&b!=null&&!0,te=m&&v.length>0&&oe(_)<oe(v[v.length-1]),B=F.isPending||r,V=b==null?t?.disk?.totalMb??null:b*1024,H=t?.disk&&V!=null?{value:t.disk.usedMb,max:V,caption:`${X(t.disk.usedMb)} of ${X(V)}`}:null,U=t?.cpu?{value:t.cpu.currentPercent,max:100,caption:`${t.cpu.currentPercent.toFixed(1)}%`}:null,W=t?.memory?{value:t.memory.currentMb,max:t.memory.maxMb,caption:`${X(t.memory.currentMb)} of ${X(t.memory.maxMb)}`}:null,le=p?m?L?(0,Q.jsxs)(`button`,{type:`button`,disabled:B,onClick:()=>w(!0),className:`flex items-center gap-1.5 rounded-lg border border-amber-500/30 bg-amber-500/15 px-3 py-1.5 text-body-small-default font-medium text-amber-400 transition-colors hover:bg-amber-500/25 disabled:opacity-50`,children:[(0,Q.jsx)(ce,{className:`h-3.5 w-3.5`}),`Increase Storage`]}):(0,Q.jsx)(c,{variant:`ghost`,size:`compact`,disabled:B,onClick:()=>w(!0),children:`Resize`}):(0,Q.jsx)(c,{variant:`ghost`,size:`compact`,onClick:()=>M(`storage`),children:`Resize`}):null,ue=p?m?te?(0,Q.jsxs)(`button`,{type:`button`,disabled:B,onClick:()=>w(!0),className:`flex items-center gap-1.5 rounded-lg border border-amber-500/30 bg-amber-500/15 px-3 py-1.5 text-body-small-default font-medium text-amber-400 transition-colors hover:bg-amber-500/25 disabled:opacity-50`,children:[(0,Q.jsx)(ce,{className:`h-3.5 w-3.5`}),`Increase Size`]}):(0,Q.jsx)(c,{variant:`ghost`,size:`compact`,disabled:B,onClick:()=>w(!0),children:`Resize`}):(0,Q.jsx)(c,{variant:`ghost`,size:`compact`,onClick:()=>M(`machine`),children:`Resize`}):null;return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(Y,{id:`storage-resources`,title:`Compute & Resources`,subtitle:`Monitor resource usage and manage your assistant's compute profile.`,compactAccessory:!0,accessory:(0,Q.jsx)(c,{variant:`ghost`,size:`compact`,iconOnly:n||r?(0,Q.jsx)(R,{className:`animate-spin`}):(0,Q.jsx)(z,{}),tooltip:r?`Applying resize…`:`Refresh resource metrics`,"aria-label":`Refresh resource metrics`,disabled:n||r,onClick:()=>void i()}),children:(0,Q.jsxs)(`div`,{className:`grid grid-cols-1 gap-2 sm:grid-cols-[1fr_2fr]`,children:[(0,Q.jsxs)(`div`,{className:`flex flex-col rounded-lg bg-[var(--surface-base)] p-3`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,Q.jsx)(`span`,{className:`text-[var(--content-tertiary)]`,children:(0,Q.jsx)(ee,{className:`h-3.5 w-3.5`})}),(0,Q.jsx)(`span`,{className:`text-label-medium-default text-[var(--content-tertiary)]`,children:`Disk`})]}),le]}),(0,Q.jsxs)(`div`,{className:`mt-auto flex flex-col gap-1 pt-3`,children:[(0,Q.jsx)(`span`,{className:`text-label-medium-default text-[var(--content-tertiary)]`,children:`Storage`}),H?(0,Q.jsx)(xt,{value:H.value,max:H.max,caption:H.caption}):n?(0,Q.jsx)(`div`,{className:`flex items-center gap-2 text-[var(--content-tertiary)]`,children:(0,Q.jsx)(R,{className:`h-3 w-3 animate-spin`})}):(0,Q.jsx)(`span`,{className:`text-label-medium-default text-[var(--content-tertiary)]`,children:`Unavailable`})]})]}),(0,Q.jsxs)(`div`,{className:`flex flex-col rounded-lg bg-[var(--surface-base)] p-3`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,Q.jsx)(`span`,{className:`text-[var(--content-tertiary)]`,children:(0,Q.jsx)(re,{className:`h-3.5 w-3.5`})}),(0,Q.jsx)(`span`,{className:`text-label-medium-default text-[var(--content-tertiary)]`,children:`Machine`}),(0,Q.jsx)(S,{tone:`neutral`,children:ae[_]})]}),ue]}),(0,Q.jsxs)(`div`,{className:`mt-auto grid grid-cols-2 gap-3 pt-3`,children:[(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Q.jsx)(`span`,{className:`text-label-medium-default text-[var(--content-tertiary)]`,children:`CPU`}),U?(0,Q.jsx)(xt,{value:U.value,max:U.max,caption:U.caption}):n?(0,Q.jsx)(`div`,{className:`flex items-center gap-2 text-[var(--content-tertiary)]`,children:(0,Q.jsx)(R,{className:`h-3 w-3 animate-spin`})}):(0,Q.jsx)(`span`,{className:`text-label-medium-default text-[var(--content-tertiary)]`,children:`—`})]}),(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Q.jsx)(`span`,{className:`text-label-medium-default text-[var(--content-tertiary)]`,children:`Memory`}),W?(0,Q.jsx)(xt,{value:W.value,max:W.max,caption:W.caption}):n?(0,Q.jsx)(`div`,{className:`flex items-center gap-2 text-[var(--content-tertiary)]`,children:(0,Q.jsx)(R,{className:`h-3 w-3 animate-spin`})}):(0,Q.jsx)(`span`,{className:`text-label-medium-default text-[var(--content-tertiary)]`,children:`—`})]})]})]})]})}),(0,Q.jsx)(E.Root,{open:j!=null,onOpenChange:e=>{e||M(null)},children:(0,Q.jsxs)(E.Content,{size:`sm`,children:[(0,Q.jsxs)(E.Header,{children:[(0,Q.jsx)(E.Title,{children:`Upgrade to Pro`}),(0,Q.jsx)(E.Description,{children:j===`storage`?`Upgrade to the Pro plan to increase your storage allocation and get more space for your assistant.`:`Upgrade to the Pro plan to unlock larger machine sizes with more CPU and memory for your assistant.`})]}),(0,Q.jsxs)(E.Footer,{children:[(0,Q.jsx)(c,{variant:`ghost`,onClick:()=>M(null),children:`Cancel`}),(0,Q.jsx)(c,{onClick:()=>{M(null),o(`${G.settings.billing}?adjust_plan=1`)},children:`Upgrade`})]})]})}),(0,Q.jsx)(E.Root,{open:C,onOpenChange:e=>{e||(w(!1),k(null),P(null))},children:(0,Q.jsxs)(E.Content,{size:`sm`,children:[(0,Q.jsxs)(E.Header,{children:[(0,Q.jsx)(E.Title,{icon:re,children:`Resize Assistant`}),(0,Q.jsx)(E.Description,{children:`Resize your assistant's compute and storage. Your assistant will briefly restart.`})]}),(0,Q.jsx)(E.Body,{children:(0,Q.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[v.length===0?(0,Q.jsx)(x,{tone:`warning`,children:`No machine tier configured. Visit the community for help.`}):(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,Q.jsx)(`span`,{className:`text-label-medium-default text-[var(--content-secondary)]`,children:`Machine Size`}),(0,Q.jsx)(g,{options:y,value:A,onChange:k,"aria-label":`Compute machine size`,"data-testid":`resize-machine-size`})]}),L?(0,Q.jsx)(x,{tone:`info`,children:`Storage will be expanded to ${b} GiB.`}):(0,Q.jsx)(x,{tone:`neutral`,children:`Storage will not change.`}),N&&(0,Q.jsx)(x,{tone:`error`,children:N})]})}),(0,Q.jsxs)(E.Footer,{className:`items-center justify-between`,children:[(0,Q.jsxs)(`span`,{className:`text-label-small-default text-[var(--content-tertiary)]`,children:[`Need more?`,` `,(0,Q.jsx)(u,{to:`${G.settings.billing}?adjust_plan=1`,className:`text-[var(--content-secondary)] underline decoration-[var(--border-element)] underline-offset-2 transition-colors hover:text-[var(--content-default)]`,onClick:()=>w(!1),children:`Upgrade plan`})]}),(0,Q.jsxs)(`div`,{className:`flex gap-2`,children:[(0,Q.jsx)(c,{variant:`ghost`,onClick:()=>{w(!1),k(null),P(null)},children:`Cancel`}),(0,Q.jsx)(c,{disabled:I==null&&!L||B,leftIcon:B?(0,Q.jsx)(R,{className:`animate-spin`}):void 0,onClick:()=>{P(null);let t={};I!=null&&(t.machine_size=I),L&&b!=null&&(t.storage_gib=b),F.mutate({path:{id:e.id},body:t})},children:N?`Retry`:`Apply`})]})]})]})})]})}function vn({assistantId:e}){let t=l(),[n,r]=(0,Z.useState)(!1),[i,a]=(0,Z.useState)(!1);return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(c,{variant:`dangerOutline`,onClick:()=>r(!0),className:`shrink-0`,children:`Retire Assistant`}),(0,Q.jsx)(et,{open:n,isPending:i,onConfirm:async()=>{a(!0);let n=await nt(e);if(n.ok){r(!1),t(n.nextRoute,{replace:!0});return}D.error(n.error),a(!1),r(!1)},onCancel:()=>r(!1)})]})}var yn=`UTC.Africa/Cairo.Africa/Johannesburg.Africa/Lagos.Africa/Nairobi.America/Anchorage.America/Argentina/Buenos_Aires.America/Bogota.America/Chicago.America/Denver.America/Halifax.America/Lima.America/Los_Angeles.America/Mexico_City.America/New_York.America/Phoenix.America/Santiago.America/Sao_Paulo.America/Toronto.America/Vancouver.Asia/Bangkok.Asia/Dubai.Asia/Hong_Kong.Asia/Jakarta.Asia/Jerusalem.Asia/Karachi.Asia/Kolkata.Asia/Kuala_Lumpur.Asia/Manila.Asia/Seoul.Asia/Shanghai.Asia/Singapore.Asia/Taipei.Asia/Tokyo.Australia/Melbourne.Australia/Perth.Australia/Sydney.Europe/Amsterdam.Europe/Athens.Europe/Berlin.Europe/Brussels.Europe/Dublin.Europe/Istanbul.Europe/Lisbon.Europe/London.Europe/Madrid.Europe/Moscow.Europe/Paris.Europe/Rome.Europe/Stockholm.Europe/Vienna.Europe/Warsaw.Europe/Zurich.Pacific/Auckland.Pacific/Honolulu`.split(`.`);function bn(){let e=Intl;if(typeof e.supportedValuesOf==`function`)try{let t=e.supportedValuesOf(`timeZone`);if(t.length>0)return[...t].sort()}catch{}return[...yn].sort()}function xn(e){let t=e.split(`/`),n=(t[t.length-1]??e).replace(/_/g,` `),r=t.length>1?(t[0]??``).replace(/_/g,` `):``,i=0,a=``;try{let t=new Intl.DateTimeFormat(`en-US`,{timeZone:e,timeZoneName:`shortOffset`}).formatToParts(new Date).find(e=>e.type===`timeZoneName`)?.value??`GMT`;a=t.startsWith(`GMT`)||t.startsWith(`UTC`)?t:`GMT ${t}`;let n=t.match(/([+-])(\d{1,2})(?::(\d{2}))?/);if(n){let e=n[1]===`-`?-1:1,t=parseInt(n[2]??`0`,10),r=parseInt(n[3]??`0`,10);i=e*(t*60+r)}}catch{return null}return{identifier:e,city:n,region:r,offsetLabel:a,offsetMinutes:i}}function Sn(e){try{return new Intl.DateTimeFormat(`en-US`,{timeZone:e,hour:`numeric`,minute:`2-digit`,hour12:!0}).format(new Date)}catch{return``}}function Cn(e){if(!e)return`Not set`;try{let t=new Intl.DateTimeFormat(`en-US`,{timeZone:e,timeZoneName:`long`}).formatToParts(new Date).find(e=>e.type===`timeZoneName`)?.value;if(t)return t}catch{}return e.replace(/_/g,` `)}function wn({value:e,onChange:t}){let[n,r]=(0,Z.useState)(``),[i,a]=(0,Z.useState)(``),[o,s]=(0,Z.useState)(!1),c=(0,Z.useRef)(null),l=(0,Z.useRef)(null),u=(0,Z.useMemo)(()=>bn().map(e=>xn(e)).filter(e=>e!==null),[]);(0,Z.useEffect)(()=>{let e=window.setTimeout(()=>{a(n.trim().toLowerCase())},200);return()=>window.clearTimeout(e)},[n]),(0,Z.useEffect)(()=>{if(!o)return;let e=e=>{c.current&&!c.current.contains(e.target)&&s(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[o]);let d=(0,Z.useMemo)(()=>i?u.filter(e=>e.city.toLowerCase().includes(i)||e.region.toLowerCase().includes(i)||e.offsetLabel.toLowerCase().includes(i)||e.identifier.toLowerCase().includes(i)):u,[u,i]),f=(0,Z.useMemo)(()=>{if(!e)return``;let t=e.split(`/`);return(t[t.length-1]??e).replace(/_/g,` `)},[e]),p=e=>{t(e),r(``),s(!1),l.current?.blur()};return(0,Q.jsxs)(`div`,{ref:c,className:`space-y-3`,children:[(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1.5 md:flex-row md:items-center md:justify-between md:gap-4`,children:[(0,Q.jsx)(`span`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Closest city`}),(0,Q.jsxs)(`div`,{className:`relative w-full md:max-w-[280px]`,children:[(0,Q.jsx)(C,{ref:l,type:`text`,value:n,placeholder:f||`Search city or country...`,onChange:e=>{r(e.target.value),s(!0)},onFocus:()=>s(!0),onKeyDown:e=>{e.key===`Escape`&&(r(``),s(!1),l.current?.blur())},fullWidth:!0}),o&&d.length>0&&(0,Q.jsx)(`div`,{className:`absolute left-0 right-0 top-full z-20 mt-1 max-h-[240px] overflow-y-auto rounded-md border border-[var(--border-base)] bg-[var(--surface-lift)] shadow-lg`,children:d.slice(0,200).map(t=>(0,Q.jsxs)(`button`,{type:`button`,onClick:()=>p(t.identifier),className:`flex w-full cursor-pointer items-center justify-between gap-3 px-3 py-2 text-left text-body-medium-lighter transition-colors ${t.identifier===e?`bg-[var(--surface-active)] text-[var(--content-default)]`:`text-[var(--content-default)] hover:bg-[var(--surface-active)]`}`,children:[(0,Q.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Q.jsx)(`div`,{className:`truncate text-body-medium-default`,children:t.city}),t.region&&(0,Q.jsx)(`div`,{className:`truncate text-body-small-default text-[var(--content-tertiary)]`,children:t.region})]}),(0,Q.jsxs)(`div`,{className:`flex shrink-0 flex-col items-end gap-0.5 text-body-small-default text-[var(--content-tertiary)]`,children:[(0,Q.jsx)(`span`,{children:Sn(t.identifier)}),(0,Q.jsx)(`span`,{children:t.offsetLabel})]})]},t.identifier))})]})]}),(0,Q.jsx)(en,{}),(0,Q.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,Q.jsx)(`span`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Time zone`}),(0,Q.jsx)(`span`,{className:`text-body-medium-lighter text-[var(--content-default)]`,children:Cn(e)})]})]})}function Tn(){let e=K.use.velvet(),[t,n]=(0,Z.useState)(()=>$e({velvetEnabled:e}));return(0,Z.useEffect)(()=>{n($e({velvetEnabled:e}))},[e]),(0,Z.useEffect)(()=>a(`theme`,()=>{n($e({velvetEnabled:e}))}),[e]),(0,Z.useEffect)(()=>{Ge(t)},[t]),(0,Q.jsx)(Y,{title:`Theme`,children:(0,Q.jsx)(`div`,{className:`max-w-[360px]`,children:(0,Q.jsx)(T,{ariaLabel:`Theme`,value:t,onChange:e=>{n(e),tt(e),Ge(e)},items:[{value:`system`,label:`System`,icon:(0,Q.jsx)(ot,{className:`h-4 w-4`})},{value:`light`,label:`Light`,icon:(0,Q.jsx)(We,{className:`h-4 w-4`})},{value:`dark`,label:`Dark`,icon:(0,Q.jsx)(te,{className:`h-4 w-4`})},...e?[{value:`velvet`,label:`Velvet`,icon:(0,Q.jsx)(Qe,{className:`h-4 w-4`})}]:[]]})})})}function En(){let e=N.use.activeAssistantId(),[t,n]=(0,Z.useState)(()=>i(`timezone`,``)),a=(0,Z.useRef)(e);(0,Z.useEffect)(()=>{a.current=e},[e]);let s=(0,Z.useRef)(!1),c=(0,Z.useRef)(null),l=(0,Z.useRef)(()=>{}),u=e=>{if(s.current){c.current=e;return}let t=a.current;if(!t){c.current=null;return}s.current=!0,c.current=null,_e.patch({url:`/v1/assistants/{assistant_id}/config`,path:{assistant_id:t},body:{ui:{userTimezone:e}},throwOnError:!0}).catch(e=>{o(e,{context:`settings-timezone-override`})}).finally(()=>{s.current=!1;let e=c.current;c.current=null,e!==null&&l.current(e)})};return(0,Z.useEffect)(()=>{l.current=u}),(0,Q.jsx)(Y,{title:`Timezone`,subtitle:`Used when displaying times and scheduling reminders.`,children:(0,Q.jsx)(wn,{value:t,onChange:e=>{n(e),r(`timezone`,e),u(e)}})})}function Dn(){let{assistant:e,assistantLoading:t,healthz:n,healthzLoading:r,healthzPolling:i,refetch:a,refetchUntilResized:o}=St(),s=K.use.multiPlatformAssistant(),c=Ce.use.settingsSleepPolicy(),u=de(),d=l(),f=Ke(),p=Ke({platformHostedOnly:!0}),m=qe(),h=lt({assistantId:e?.id??null,enabled:p===`full`&&m}),g=e?.is_local&&!A()?null:e,_=O(),v=A()&&!!e&&!!_&&k(_),y=v,b=v&&!j();return(0,Z.useEffect)(()=>{!e||window.location.hash!==`#storage-resources`||requestAnimationFrame(()=>{document.getElementById(`storage-resources`)?.scrollIntoView({block:`start`})})},[e]),(0,Q.jsxs)(`div`,{className:`space-y-4`,children:[h.status&&h.mode!==`inactive`&&(0,Q.jsx)(it,{status:h.status,mode:h.mode,isAcknowledging:h.isAcknowledging,acknowledgeError:h.acknowledgeError?.message??null,onAcknowledge:()=>void h.acknowledge(),onReviewWorkspaceData:()=>void d(`${G.workspace}?sort=size`),onUpgradeStorage:p===`full`?()=>void d(`${G.settings.billing}?adjust_plan=1`):null}),(0,Q.jsx)(Y,{title:`General`,children:(0,Q.jsx)(Ct,{assistant:g,assistantLoading:t,healthz:n,healthzLoading:r})}),u&&f===`full`&&(0,Q.jsx)(Lt,{assistant:m?g:null}),p===`full`&&e&&(0,Q.jsx)(_n,{assistant:e,healthz:n,healthzLoading:r,healthzPolling:i,refetch:a,refetchUntilResized:o}),p===`disabled`&&(0,Q.jsx)(Y,{id:`storage-resources`,title:`Compute & Resources`,subtitle:`Monitor resource usage and manage your assistant's compute profile.`,children:(0,Q.jsx)(J,{children:`Log in to the Vellum platform to manage compute resources.`})}),(0,Q.jsx)(Tn,{}),(0,Q.jsx)(qt,{}),M()&&(0,Q.jsx)($t,{}),p===`full`&&g&&(0,Q.jsxs)(Y,{title:`Software Updates`,children:[(0,Q.jsx)(Gt,{assistantId:g.id,currentVersion:n?.version??g.current_release_version??null,releaseChannel:g.release_channel,onUpgradeComplete:()=>{a()}}),(0,Q.jsx)(dn,{assistantId:g.id,onComplete:()=>{a()}})]}),b&&e&&(0,Q.jsx)(Y,{title:`Software Updates`,children:(0,Q.jsx)(Kt,{assistantId:e.id,currentVersion:n?.version??e.current_release_version??null,onUpgradeComplete:()=>{a()}})}),p===`disabled`&&!b&&(0,Q.jsx)(Y,{title:`Software Updates`,children:(0,Q.jsx)(J,{children:`Log in to the Vellum platform to manage software updates.`})}),(0,Q.jsx)(Xt,{}),p===`full`&&g&&c&&(0,Q.jsx)(Y,{title:`Sleep Policy`,subtitle:`Control how long this assistant stays awake when idle.`,children:(0,Q.jsx)(Ht,{assistantId:g.id})}),p===`disabled`&&c&&(0,Q.jsx)(Y,{title:`Sleep Policy`,subtitle:`Control how long this assistant stays awake when idle.`,children:(0,Q.jsx)(J,{children:`Log in to the Vellum platform to manage sleep policy.`})}),(0,Q.jsx)(En,{}),(0,Q.jsx)(an,{}),s&&(0,Q.jsx)(zt,{}),(f===`full`||y)&&g&&(0,Q.jsx)(Y,{variant:`danger`,title:`Retire Assistant`,subtitle:`Permanently retire this assistant and delete all associated data.`,children:(0,Q.jsx)(vn,{assistantId:g.id})}),f===`disabled`&&!y&&(0,Q.jsx)(Y,{variant:`danger`,title:`Retire Assistant`,subtitle:`Permanently retire this assistant and delete all associated data.`,children:(0,Q.jsx)(J,{children:`Log in to the Vellum platform to retire this assistant.`})}),(0,Q.jsx)(Jt,{})]})}export{Dn as GeneralPage};
@@ -0,0 +1 @@
1
+ import{t as e}from"./jsx-runtime-CVSDxk6A.js";var t=e();function n({size:e=24,className:n,style:r}){return(0,t.jsxs)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 48 48`,width:e,height:e,className:n,style:r,"aria-hidden":!0,children:[(0,t.jsx)(`path`,{fill:`#EA4335`,d:`M24 9.5c3.54 0 6.71 1.22 9.21 3.6l6.85-6.85C35.9 2.38 30.47 0 24 0 14.62 0 6.51 5.38 2.56 13.22l7.98 6.19C12.43 13.72 17.74 9.5 24 9.5z`}),(0,t.jsx)(`path`,{fill:`#4285F4`,d:`M46.98 24.55c0-1.57-.15-3.09-.38-4.55H24v9.02h12.94c-.58 2.96-2.26 5.48-4.78 7.18l7.73 6c4.51-4.18 7.09-10.36 7.09-17.65z`}),(0,t.jsx)(`path`,{fill:`#FBBC05`,d:`M10.53 28.59a14.5 14.5 0 0 1 0-9.18l-7.97-6.19A23.99 23.99 0 0 0 0 24c0 3.77.9 7.35 2.56 10.78l7.97-6.19z`}),(0,t.jsx)(`path`,{fill:`#34A853`,d:`M24 48c6.48 0 11.93-2.13 15.89-5.81l-7.73-6c-2.15 1.45-4.92 2.3-8.16 2.3-6.26 0-11.57-4.22-13.47-9.91l-7.98 6.19C6.51 42.62 14.62 48 24 48z`})]})}export{n as t};
@@ -0,0 +1 @@
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{o as t,t as n}from"./capture-error-AoUURkgi.js";import{t as r}from"./react-DJZBPgpf.js";import{t as i}from"./button-D7s2Q_uG.js";import{d as a,h as o}from"./chunk-5KNZJZUH-DdS6bb-3.js";import{n as s}from"./QueryClientProvider-DKhXIxGb.js";import{t as c}from"./jsx-runtime-CVSDxk6A.js";import{t as l}from"./progress-bar-DFH5aT1D.js";import{T as ee,X as te,_ as ne,b as u,f as d,g as re,i as ie,s as f}from"./local-mode-BD2zqd9I.js";import{t as p}from"./is-electron-C_ZTVhv8.js";import{n as m}from"./resolved-assistants-store-DLNFVaZL.js";import{r as ae}from"./api-errors-D3EsNrwn.js";import{$ as h,J as g,M as oe,Y as _,at as se,it as v,l as y,n as b,nt as ce,rt as le}from"./auth-store-CbVvQiBR.js";import{a as ue,o as de,r as x}from"./api-CjVG_nMi.js";import{a as S}from"./routes-B9xcBuuC.js";import{r as C,t as w}from"./build-state-CMpEWWjf.js";import{i as fe,p as pe}from"./prefs-DP4g-Qgi.js";import{t as T}from"./avatar-svg-compositor-DMT4wmUm.js";import{An as E,En as D,_t as O,kn as k}from"./index-Cx6vyW7T.js";import{t as me}from"./provider-key-g87caUSW.js";import{BUNDLED_COMPONENTS as A}from"./avatar-bundled-components-f4-fradg.js";var j=e(r(),1);async function he(e,t,r){try{await k(e)||await E(e,t),r.invalidateQueries({queryKey:D(e)})}catch(e){n(e,{context:`onboarding_avatar_sync`})}}function ge(e){let t=e=>e[Math.floor(Math.random()*e.length)];return{bodyShape:t(e.bodyShapes).id,eyeStyle:t(e.eyeStyles).id,color:t(e.colors).id}}var M=c(),N=3e3,_e=800,P=3e5,F=null,I=null,L=null;function R(){F=null,I=null,L=null}var ve={initializing:0,provisioning:.33,connecting:.66,ready:1},z=1500,ye={initializing:`Getting things ready…`,provisioning:`Setting up your assistant…`,connecting:`Connecting to your assistant…`,ready:`Ready`};function be(e,t,n){if(e>=t)return t;let r=1-(1-Math.min(1,n/z))**3;return e+(t-e)*r}function xe(){let e=C(w(),{kind:`hatch-gate`});return e.action===`redirect`?{kind:`redirect`,to:e.to}:e.action===`wait`?{kind:`wait`}:{kind:`proceed`}}function B(){let e=a(),r=s(),[c]=o(),C=c.get(`hosting`),w=c.get(`fail`),E=p(),D=d()&&C!==null&&C!==`vellum-cloud`,k=b.use.sessionStatus(),z=D?h(k):k,[B]=(0,j.useState)(()=>L??=ge(A)),V=(0,j.useMemo)(()=>{let e=T(A,B.bodyShape,B.eyeStyle,B.color,320);return`data:image/svg+xml;charset=utf-8,${encodeURIComponent(e)}`},[B]),[H,U]=(0,j.useState)(`initializing`),[W,G]=(0,j.useState)(null),[Se,K]=(0,j.useState)(!1),[Ce,we]=(0,j.useState)(0),[Te,q]=(0,j.useState)(0),[Ee,J]=(0,j.useState)(0),Y=(0,j.useRef)(H),X=(0,j.useRef)(0),Z=(0,j.useRef)(0),Q=(0,j.useRef)(0),$=(0,j.useCallback)(e=>{X.current=Q.current,Z.current=Date.now(),Y.current=e,U(e),J(e=>e+1)},[]);return(0,j.useEffect)(()=>{if(w!==null){G(`Simulated hatch failure (developer menu → Replay Hatch Failure).`);return}let i=xe();if(i.kind===`redirect`){e(i.to,{replace:!0});return}if(i.kind===`wait`)return;K(!1);let a=!1,o=null,s=null,c=null,l=Date.now(),p,h=!1,T=!1,E=fe(),O=()=>{try{pe(``)}catch(e){n(e,{context:`onboarding_mark_completed`})}q(1),Q.current=1,X.current=1,U(`ready`),Y.current=`ready`,s=setTimeout(()=>{a||(R(),(async()=>{if(await _.checkAssistant(),!a){if(oe()){_.markExpectingFirstMessage(),e(`${S.assistant}?onboarding=1`,{replace:!0});return}e(S.onboarding.prechat,{replace:!0})}})())},_e)},k=e=>he(e,B,r),A=async()=>{if($(`provisioning`),!D){try{let e=await x(),t=v(e);if(!a&&e.ok&&t.kind===`active`){d()&&u({assistantId:e.data.id,name:e.data.name,cloud:`vellum`,runtimeUrl:f(),hatchedAt:new Date().toISOString(),organizationId:y.getState().currentOrganizationId??void 0}),O();return}t.kind===`auto_hatch`&&(T=!0)}catch{}if(a)return}if(D){try{F||=ee(void 0,C===`docker`?`docker`:void 0);let e=await F;if(a)return;if(!e.ok){R(),G(e.error??`Failed to hatch local assistant.`);return}await re(),e.assistantId&&g(e.assistantId),$(`connecting`);let t=!1;for(;!a&&!t;){let e=ie();if(e)try{let n=await fetch(`${e}/readyz`);if(n.ok){let e=await n.json();if(e&&typeof e==`object`&&`status`in e&&e.status===`ok`){te(),await ne(),t=!0;break}}}catch{}if(Date.now()-l>=P){R(),G(`Your assistant is taking longer than expected. Please try again.`);return}await new Promise(e=>{c=setTimeout(e,N)}),c=null}if(a)return;if(e.assistantId&&await b.getState().connectLocalAssistant(e.assistantId),e.assistantId){try{await me(e.assistantId)}catch(e){n(e,{context:`onboarding_apply_provider_key`})}m.getState().upsertFromApi({id:e.assistantId,name:e.assistantId,status:`active`,is_local:!0,created:new Date().toISOString()}),g(e.assistantId),k(e.assistantId)}O()}catch{if(R(),a)return;G(`Failed to hatch local assistant. Check CLI logs for details.`)}return}try{I||=de(E?{version:E}:void 0);let e=await I;if(I=null,a)return;if(e.ok&&(p=e.data.id),h=e.ok&&e.status===201,!e.ok){if(t(`Onboarding hatch request failed`,{level:`warning`,extra:{status:e.status,error:e.error}}),le(e.status,e.error)){G(ce),K(!0);return}if(!se(e.status)){G(ae(e.error,void 0,`Failed to start your assistant. Please try again.`));return}}}catch(e){if(I=null,n(e,{context:`onboarding_hatch_assistant`}),a)return}j(0)},j=e=>{a||(o=setTimeout(ge,e))},ge=async()=>{if(!a){if(Date.now()-l>=P){t(`Onboarding hatch wait exceeded timeout`,{level:`warning`,extra:{maxWaitMs:P}}),G(`Your assistant is taking longer than expected. Please try again.`);return}try{let e=await x(p);if(a||p&&!e.ok&&e.status===404&&(p=void 0,e=await x(),a))return;let t=v(e);if(t.kind===`active`){if(e.ok){let t=e.data.id;for(m.getState().upsertFromApi(e.data),g(t),(h||T)&&k(t),d()&&u({assistantId:t,name:e.data.name,cloud:`vellum`,runtimeUrl:f(),hatchedAt:new Date().toISOString(),organizationId:y.getState().currentOrganizationId??void 0}),$(`connecting`);!a;){try{if((await ue(t)).ok)break}catch{}if(Date.now()-l>=P){G(`Your assistant is taking longer than expected. Please try again.`);return}await new Promise(e=>{o=setTimeout(e,N)}),o=null}if(a)return}O();return}if(t.kind===`error`){G(t.message);return}t.kind!==`auto_hatch`&&Y.current===`provisioning`&&$(`connecting`),j(N)}catch(e){if(n(e,{context:`onboarding_poll_assistant`}),a)return;j(N)}}};return A(),()=>{a=!0,o&&clearTimeout(o),s&&clearTimeout(s),c&&clearTimeout(c)}},[Ce,w,B,z,e,r,$,D]),(0,j.useEffect)(()=>{Z.current===0&&(Z.current=Date.now());let e,t=()=>{let n=Date.now()-Z.current,r=ve[Y.current],i=be(X.current,r,n);Q.current=i,q(i),r-i>1e-6&&(e=requestAnimationFrame(t))};return e=requestAnimationFrame(t),()=>cancelAnimationFrame(e)},[Ee]),W?(0,M.jsx)(O,{children:(0,M.jsxs)(`div`,{role:`alert`,className:`mx-auto flex w-full max-w-xl flex-col items-center ${E?`min-h-full px-8 pt-21 pb-28 electron-prechat-type`:`min-h-screen justify-center px-6 pb-40`} text-center text-[var(--content-default)]`,children:[(0,M.jsx)(`h1`,{className:E?`text-title-large`:`text-3xl font-semibold tracking-tight`,children:`Something went wrong`}),(0,M.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)] ${E?`mt-3.5`:`mt-4`}`,children:W}),Se&&(0,M.jsxs)(`div`,{className:`mt-6 flex w-full max-w-sm flex-col items-center gap-3`,children:[(0,M.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-default)]`,children:`Get started today with a local assistant`}),(0,M.jsx)(i,{asChild:!0,variant:`primary`,size:`regular`,fullWidth:!0,className:E?void 0:`h-11 text-base`,children:(0,M.jsx)(`a`,{href:`${window.location.origin}/download`,children:`Download the macOS app`})})]}),(0,M.jsx)(`img`,{src:V,alt:``,width:160,height:160,className:`${E?`my-auto py-8`:`my-16`} onboarding-avatar-failed`}),(0,M.jsxs)(`div`,{className:`flex w-full flex-col ${E?`gap-2.5 max-w-[280px]`:`gap-2 max-w-sm`}`,children:[(0,M.jsx)(i,{variant:`primary`,size:`regular`,fullWidth:!0,className:E?void 0:`h-11 text-base`,onClick:()=>{X.current=0,Z.current=Date.now(),Y.current=`initializing`,Q.current=0,U(`initializing`),q(0),J(e=>e+1),G(null),K(!1),we(e=>e+1)},children:`Try again`}),(0,M.jsx)(i,{variant:`outlined`,size:`regular`,fullWidth:!0,className:E?void 0:`h-11 text-base`,onClick:()=>void e(D?S.onboarding.hosting:S.onboarding.privacy,{replace:!0}),children:`Back`})]})]})}):(0,M.jsx)(O,{children:(0,M.jsxs)(`div`,{className:`mx-auto flex w-full max-w-xl flex-col items-center ${E?`min-h-full px-8 pt-21 pb-28 electron-prechat-type`:`min-h-screen justify-center px-6 pb-40`} text-center text-[var(--content-default)]`,children:[(0,M.jsx)(`h1`,{className:E?`text-title-large`:`text-3xl font-semibold tracking-tight`,children:H===`ready`?`Your assistant is ready!`:`Waking up…`}),H!==`ready`&&(0,M.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)] ${E?`mt-3.5`:`mt-4`}`,children:`Hang tight — your assistant will have a few questions for you once it's up.`}),(0,M.jsx)(`img`,{src:V,alt:``,width:160,height:160,className:`${E?`my-auto py-8`:`my-16`} ${H===`ready`?`onboarding-avatar-awake`:`onboarding-avatar-pulse`}`}),(0,M.jsx)(l,{value:Te,height:6,className:`w-full ${E?`max-w-[200px]`:`max-w-sm`}`,"aria-label":`Assistant startup progress`}),(0,M.jsx)(`p`,{className:`text-[var(--content-tertiary)] ${E?`mt-4 text-label-small-default`:`mt-3 text-body-small-default`}`,children:ye[H]})]})})}export{B as HatchingScreen};
@@ -0,0 +1 @@
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./capture-error-AoUURkgi.js";import{t as n}from"./react-DJZBPgpf.js";import{n as r,t as i}from"./button-D7s2Q_uG.js";import{d as a}from"./chunk-5KNZJZUH-DdS6bb-3.js";import{n as o}from"./QueryClientProvider-DKhXIxGb.js";import{t as s}from"./useQuery-B45lW1Kk.js";import{t as c}from"./jsx-runtime-CVSDxk6A.js";import{t as l}from"./cn-DvW5mxZR.js";import{t as u}from"./typography-BscuIPxA.js";import{t as d}from"./dropdown-yOV5eJnU.js";import{t as f}from"./menu-CdoNX1qx.js";import{n as p,s as m,u as h}from"./src-BJj2O5XB.js";import{t as g}from"./notice-CynJKEow.js";import{t as _}from"./tag-CE_o2aao.js";import{n as v,t as y}from"./input-Ch7OC6ME.js";import{t as b}from"./toggle-95p73HGd.js";import{n as x}from"./stat-square-CraPxMcl.js";import{t as S}from"./modal-CHuPOsJJ.js";import{t as C}from"./panel-item-BLQE_l-g.js";import{n as w}from"./toast-CxaZ5f1d.js";import{t as T}from"./createLucideIcon-BlMXrA59.js";import{t as E}from"./arrow-left-CP-EhDNF.js";import{t as D}from"./bell-DB1SrBre.js";import{t as O}from"./calendar-BCNBN7PC.js";import{t as k}from"./chevron-right-BNHlGCTg.js";import{t as A}from"./loader-circle-Cw1KvvLK.js";import{t as j}from"./sparkles-C8hCShdb.js";import{t as M}from"./x-BeVbiDS2.js";import{An as N,Dn as P,En as F,On as I,Tn as L,jn as R}from"./sdk.gen-DtKkd6hs.js";import{A as z,At as ee,F as B,I as te,It as ne,Lt as re,M as ie,O as ae,at as oe,c as se,ct as ce,d as le,g as ue,h as de,j as fe,k as pe,lt as me,m as he,ot as ge,p as _e,st as ve,ut as ye}from"./react-query.gen-4ZMhZ-fj.js";import{n as V,r as H,t as U}from"./api-errors-D3EsNrwn.js";import{M as be}from"./auth-store-CbVvQiBR.js";import{a as xe}from"./api-CjVG_nMi.js";import{a as W}from"./routes-B9xcBuuC.js";import{n as Se}from"./use-is-mobile-D_0cze0t.js";import{n as Ce}from"./viewer-store-9Ag85lFC.js";import{t as we}from"./conversation-store-I2d3A6Tv.js";import{a as Te,i as Ee,n as De}from"./conversation-queries-DF1Lujnm.js";import{t as Oe}from"./conversation-selection-CrdMTnwx.js";import{t as ke}from"./effective-timezone-DBaPUyaX.js";import{i as Ae}from"./composer-focus-D-P0cGAF.js";import{t as je}from"./lib-BVvJNDCQ.js";import{Bi as Me,Ct as Ne,Hr as Pe,Ji as Fe,N as Ie,Nr as Le,Tn as Re,Vt as ze,Wr as Be,Yr as Ve,Yt as He,_i as Ue,fi as We,ia as Ge,la as Ke,mi as qe,qi as Je,ra as Ye,ta as Xe,ti as Ze,ui as Qe,zt as $e}from"./index-Cx6vyW7T.js";import{t as et}from"./use-active-assistant-id-BlwRimQH.js";import{t as tt}from"./detail-card-QPVpO5cj.js";import{t as nt}from"./page-shell-W5IMIXQq.js";import{n as rt,r as it}from"./format-date-Cx9GZ7-D.js";import{n as at}from"./usage-window-DbWHZkbr.js";import{n as ot,t as st}from"./schedules-MF0cMAPX.js";var ct=T(`activity`,[[`path`,{d:`M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2`,key:`169zse`}]]),lt=T(`list-filter`,[[`path`,{d:`M2 5h20`,key:`1fs1ex`}],[`path`,{d:`M6 12h12`,key:`8npq4p`}],[`path`,{d:`M9 19h6`,key:`456am0`}]]),ut=T(`mail-open`,[[`path`,{d:`M21.2 8.4c.5.38.8.97.8 1.6v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V10a2 2 0 0 1 .8-1.6l8-6a2 2 0 0 1 2.4 0l8 6Z`,key:`1jhwl8`}],[`path`,{d:`m22 10-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 10`,key:`1qfld7`}]]),dt=T(`repeat`,[[`path`,{d:`m17 2 4 4-4 4`,key:`nntrym`}],[`path`,{d:`M3 11v-1a4 4 0 0 1 4-4h14`,key:`84bu3i`}],[`path`,{d:`m7 22-4-4 4-4`,key:`1wqhfi`}],[`path`,{d:`M21 13v1a4 4 0 0 1-4 4H3`,key:`1rx37r`}]]),G=e(n(),1);async function ft(e,t){let{error:n,response:r}=await N({path:{assistant_id:e},body:t,throwOnError:!1});if(V(r,n,`Failed to create schedule.`),!r.ok)throw new U(r.status,H(n,r,`Failed to create schedule.`))}async function pt(e){return st(e)}async function mt(e,t,n=10,r){let{data:i,error:a,response:o}=await P({path:{assistant_id:e,id:t},query:{limit:n,before:r},throwOnError:!1});if(V(o,a,`Failed to load schedule runs.`),!o.ok)throw new U(o.status,H(a,o,`Failed to load schedule runs.`));return{runs:i?.runs??[],nextCursor:i?.nextCursor??null}}async function ht(e,t){let{data:n,error:r,response:i}=await R({path:{assistant_id:e},query:{from:t.from,to:t.to},throwOnError:!1});if(V(i,r,`Failed to load schedule usage.`),!i.ok)throw new U(i.status,H(r,i,`Failed to load schedule usage.`));return n?.summaries??[]}async function gt(e,t,n){let{error:r,response:i}=await I({path:{assistant_id:e,id:t},body:{enabled:n},throwOnError:!1});if(V(i,r,`Failed to toggle schedule.`),!i.ok)throw new U(i.status,H(r,i,`Failed to toggle schedule.`))}async function _t(e,t){let{error:n,response:r}=await L({path:{assistant_id:e,id:t},throwOnError:!1});if(V(r,n,`Failed to delete schedule.`),!r.ok&&r.status!==204)throw new U(r.status,H(n,r,`Failed to delete schedule.`))}async function vt(e,t){let{error:n,response:r}=await F({path:{assistant_id:e,id:t},throwOnError:!1});if(V(r,n,`Failed to run schedule.`),!r.ok)throw new U(r.status,H(n,r,`Failed to run schedule.`))}var yt={frequency:`daily`,minute:0,hour24:9,weekdays:[1],dayOfMonth:1},bt=[{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`}],xt=[1,2,3,4,5];function K(e,t,n){return Number.isFinite(e)?Math.min(n,Math.max(t,Math.round(e))):t}function St(e){let t=Array.from(new Set(e.map(e=>K(e,0,6)).filter(e=>Number.isInteger(e)))).sort((e,t)=>e-t);return t.length>0?t:[1]}function Ct(e){let t=K(e.minute,0,59),n=K(e.hour24,0,23);switch(e.frequency){case`hourly`:return`${t} * * * *`;case`daily`:return`${t} ${n} * * *`;case`weekly`:return`${t} ${n} * * ${St(e.weekdays).join(`,`)}`;case`monthly`:return e.dayOfMonth===`last`?`${t} ${n} L * *`:`${t} ${n} ${K(e.dayOfMonth,1,28)} * *`}}function wt(e,t){let n=K(e,0,23),r=K(t,0,59),i=n<12?`AM`:`PM`;return`${n%12==0?12:n%12}:${String(r).padStart(2,`0`)} ${i}`}function Tt(e){let t=[`th`,`st`,`nd`,`rd`],n=e%100;return`${e}${t[(n-20)%10]??t[n]??t[0]}`}function Et(e){let t=St(e),n=new Set(t);if(t.length===7)return`every day`;if(t.length===5&&xt.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 ${bt[t[0]]?.full??`day`}`;let r=t.map(e=>bt[e]?.short??``),i=r.pop();return`every ${r.join(`, `)} & ${i}`}function Dt(e){let t=wt(e.hour24,e.minute);switch(e.frequency){case`hourly`:{let t=K(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 ${Et(e.weekdays)} at ${t}`;case`monthly`:return e.dayOfMonth===`last`?`Runs on the last day of every month at ${t}`:`Runs on the ${Tt(K(e.dayOfMonth,1,28))} of every month at ${t}`}}var q=c(),Ot=[{value:`hourly`,label:`Hourly`},{value:`daily`,label:`Daily`},{value:`weekly`,label:`Weekly`},{value:`monthly`,label:`Monthly`}],kt=Array.from({length:12},(e,t)=>{let n=t+1;return{value:String(n),label:String(n)}}),At=Array.from({length:12},(e,t)=>{let n=t*5,r=String(n).padStart(2,`0`);return{value:r,label:r}}),jt=[...Array.from({length:28},(e,t)=>{let n=t+1;return{value:String(n),label:Tt(n)}}),{value:`last`,label:`Last day`}],Mt=[{value:`AM`,label:`AM`},{value:`PM`,label:`PM`}];function Nt(e,t){let n=e%12;return t===`PM`?n+12:n}function Pt(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 Ft({isOpen:e,assistantId:t,onClose:n,onCreated:r}){return(0,q.jsx)(S.Root,{open:e,onOpenChange:e=>{e||n()},children:e?(0,q.jsx)(It,{assistantId:t,onClose:n,onCreated:r}):null})}function It({assistantId:e,onClose:t,onCreated:n}){let r=He(),[a,o]=(0,G.useState)(``),[s,c]=(0,G.useState)(``),[l,u]=(0,G.useState)(``),[d,f]=(0,G.useState)(`simple`),[p,m]=(0,G.useState)(yt),[h,g]=(0,G.useState)(``),[_,b]=(0,G.useState)(!1),[x,C]=(0,G.useState)(null),w=a.trim(),T=s.trim(),E=l.trim(),D=h.trim(),O=(0,G.useMemo)(()=>d===`simple`?Ct(p):D,[d,p,D]),k=(0,G.useMemo)(()=>d===`simple`?Dt(p):D||`Enter a cron expression to continue.`,[d,p,D]),A=(0,G.useMemo)(()=>Pt(r),[r]),j=w.length>0&&T.length>0&&E.length>0&&O.length>0&&!_;return(0,q.jsxs)(S.Content,{size:`md`,children:[(0,q.jsxs)(S.Header,{children:[(0,q.jsx)(S.Title,{children:`Create schedule`}),(0,q.jsx)(S.Description,{children:`Schedule a recurring instruction for your assistant. Runs in execute mode — the message is delivered to the assistant on each fire.`})]}),(0,q.jsxs)(`form`,{onSubmit:async t=>{if(t.preventDefault(),j){b(!0),C(null);try{await ft(e,{name:w,description:T,expression:O,message:E,timezone:r}),b(!1),n()}catch(e){C(e instanceof Error?e.message:`Failed to create schedule.`),b(!1)}}},children:[(0,q.jsx)(S.Body,{children:(0,q.jsxs)(`div`,{className:`flex flex-col gap-5`,children:[(0,q.jsx)(y,{label:`Name`,placeholder:`Morning briefing`,value:a,onChange:e=>o(e.target.value),required:!0,autoFocus:!0,fullWidth:!0}),(0,q.jsx)(v,{label:`Description`,placeholder:`What is this schedule for?`,value:s,onChange:e=>c(e.target.value),required:!0,fullWidth:!0,rows:2}),(0,q.jsx)(Vt,{label:`Repeat`,children:d===`simple`?(0,q.jsx)(Lt,{cadence:p,onChange:m}):(0,q.jsx)(Bt,{value:h,onChange:g,onUseSimple:()=>f(`simple`)})}),(0,q.jsx)(Ut,{summary:k,mono:d===`advanced`&&D.length>0,timezoneLabel:A}),d===`simple`?(0,q.jsx)(`button`,{type:`button`,onClick:()=>{g(e=>e||Ct(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,q.jsx)(v,{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}),x?(0,q.jsx)(`p`,{className:`text-body-small-default text-[var(--system-negative-strong)]`,children:x}):null]})}),(0,q.jsxs)(S.Footer,{children:[(0,q.jsx)(i,{variant:`outlined`,onClick:t,type:`button`,children:`Cancel`}),(0,q.jsx)(i,{variant:`primary`,type:`submit`,disabled:!j,children:_?`Creating…`:`Create schedule`})]})]})]})}function Lt({cadence:e,onChange:t}){return(0,q.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,q.jsx)(x,{items:Ot,value:e.frequency,onChange:n=>t({...e,frequency:n}),ariaLabel:`How often the schedule runs`}),e.frequency===`hourly`?(0,q.jsx)(Ht,{label:`At minute`,children:(0,q.jsx)(d,{options:At,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,q.jsx)(Ht,{label:`On these days`,children:(0,q.jsx)(zt,{value:e.weekdays,onChange:n=>t({...e,weekdays:n})})}):null,e.frequency===`monthly`?(0,q.jsx)(Ht,{label:`On day`,children:(0,q.jsx)(d,{options:jt,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,q.jsx)(Ht,{label:`At time`,children:(0,q.jsx)(Rt,{hour24:e.hour24,minute:e.minute,onChange:(n,r)=>t({...e,hour24:n,minute:r})})})]})}function Rt({hour24:e,minute:t,onChange:n}){let r=e<12?`AM`:`PM`,i=e%12==0?12:e%12;return(0,q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,q.jsx)(d,{options:kt,value:String(i),onChange:e=>n(Nt(Number(e),r),t),"aria-label":`Hour`,className:`w-[72px]`}),(0,q.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:`:`}),(0,q.jsx)(d,{options:At,value:String(t).padStart(2,`0`),onChange:t=>n(e,Number(t)),"aria-label":`Minute`,className:`w-[72px]`}),(0,q.jsx)(`div`,{className:`w-[112px]`,children:(0,q.jsx)(x,{items:Mt,value:r,onChange:e=>n(Nt(i,e),t),ariaLabel:`AM or PM`})})]})}function zt({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,q.jsx)(`div`,{className:`flex gap-1.5`,children:bt.map(e=>{let t=n.has(e.value);return(0,q.jsx)(`button`,{type:`button`,onClick:()=>r(e.value),"aria-pressed":t,"aria-label":e.full,title:e.full,className:l(`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 Bt({value:e,onChange:t,onUseSimple:n}){return(0,q.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,q.jsx)(y,{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,q.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 Vt({label:e,children:t}){return(0,q.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,q.jsx)(`span`,{className:`text-body-small-default text-[var(--content-secondary)]`,children:e}),t]})}function Ht({label:e,children:t}){return(0,q.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-3 gap-y-1.5`,children:[(0,q.jsx)(`span`,{className:`min-w-[88px] text-body-small-default text-[var(--content-tertiary)]`,children:e}),t]})}function Ut({summary:e,mono:t,timezoneLabel:n}){return(0,q.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,q.jsx)(Je,{className:`mt-0.5 h-4 w-4 shrink-0 text-[var(--content-tertiary)]`,"aria-hidden":!0}),(0,q.jsxs)(`div`,{className:`min-w-0`,children:[(0,q.jsx)(`p`,{className:l(`text-body-medium-default text-[var(--content-default)]`,t&&`break-all font-mono`),children:e}),(0,q.jsxs)(`p`,{className:`mt-0.5 text-body-small-default text-[var(--content-tertiary)]`,children:[`Times use your timezone — `,n,`.`]})]})]})}function Wt(e=ke(),t=Date.now()){return at(`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 Kt=new Intl.NumberFormat(void 0,{style:`currency`,currency:`USD`,minimumFractionDigits:2,maximumFractionDigits:2});function Y(e){return e==null||!Number.isFinite(e)?`—`:Kt.format(e)}function qt(e){return`${e.toLocaleString()} ${e===1?`run`:`runs`}`}function Jt(e){let t=Math.round(e/6e4);return t>=60&&t%60==0?`Every ${t/60} hr`:`Every ${t} min`}function Yt(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 Zt(e){return Xt(e)?e.conversationId??null:null}function X(e){return typeof e==`string`&&e.length>0}var Qt={heartbeat:`system-heartbeat`,consolidation:`system-consolidation`,retrospective:`system-memory-retrospective`};function $t(e){if(e.cronExpression)return e.timezone?`Cron: ${e.cronExpression} (${e.timezone})`:`Cron: ${e.cronExpression}`;let t=Jt(e.intervalMs);return e.activeHoursStart!=null&&e.activeHoursEnd!=null&&(t+=` (${e.activeHoursStart}:00–${e.activeHoursEnd}:00)`),t}function en(e){return Jt(e.intervalMs)}var tn=`After conversation activity`;function nn(e,t){return e.status===`fired`||e.status===`cancelled`?!0:e.status===`firing`?!1:e.nextRunAt==null||!e.enabled&&e.nextRunAt<=t}function rn(e,t){let n=[],r=[],i=[];for(let a of e)a.isOneShot?nn(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 an(e,t,n=!0){return{queryKey:[{_id:`schedulesUsagesummaryGet`,path:{assistant_id:e??``},_tz:t}],queryFn:()=>e?ht(e,Wt(t)):Promise.resolve([]),enabled:n,staleTime:1e4}}function on(e){return{scheduleId:e,runCount:0,totalEstimatedCostUsd:0,eventCount:0}}function sn(e,t,n){let r=(t??[]).filter(e=>{let t=e.startedAt??e.createdAt;return t>=n.from&&t<=n.to});return{scheduleId:e,runCount:r.length,totalEstimatedCostUsd:r.reduce((e,t)=>{let n=t.estimatedCostUsd;return typeof n==`number`&&Number.isFinite(n)?e+n:e},0),eventCount:0}}function cn({status:e}){return(0,q.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 ln({scheduleName:e,usage:t,onOpenUsage:n}){if(t.status===`loading`)return(0,q.jsxs)(`div`,{"aria-label":`Loading schedule usage`,className:`flex w-[156px] shrink-0 items-center justify-end gap-3`,children:[(0,q.jsx)(`span`,{className:`h-5 w-16 animate-pulse rounded bg-[var(--surface-muted)]`}),(0,q.jsx)(`span`,{className:`h-5 w-16 animate-pulse rounded bg-[var(--surface-muted)]`})]});let r=t.status===`error`,i=r?`--`:Y(t.summary.totalEstimatedCostUsd),a=r?`--`:qt(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,q.jsxs)(`div`,{className:`flex w-[156px] shrink-0 items-center justify-end gap-3 text-right text-body-small-default`,children:[n?(0,q.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,q.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,q.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 un({name:e,subtitle:t,enabled:n,nextRunAt:r,lastRunAt:i,usage:a,helperText:o,statusLabel:s,statusTone:c=`neutral`,onClick:l}){return(0,q.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,q.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,q.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,q.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,q.jsx)(`span`,{className:`truncate text-body-medium-default text-[var(--content-default)]`,children:e})}),(0,q.jsx)(`div`,{className:`mt-0.5 text-body-small-default text-[var(--content-tertiary)]`,children:t}),o?(0,q.jsx)(`div`,{className:`mt-0.5 text-body-small-default text-[var(--content-secondary)]`,children:o}):null,(0,q.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,q.jsxs)(`span`,{children:[`Next: `,J(r)]}):null,i?(0,q.jsxs)(`span`,{children:[`Last: `,J(i)]}):null]})]}),(0,q.jsxs)(`div`,{className:`flex shrink-0 flex-wrap items-center justify-end gap-3`,children:[(0,q.jsx)(ln,{scheduleName:e,usage:a}),s?(0,q.jsx)(_,{tone:c,children:s}):(0,q.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,q.jsx)(k,{className:`h-4 w-4 text-[var(--content-tertiary)]`})]})]})})}function dn({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,m=t?.available===!0,h=n?.available===!0,_=f||m||h;if(!o&&!s&&!_)return null;let v=[...f?[r]:[],...m?[i]:[],...h?[a]:[]].filter(e=>e.status===`ready`),y=v.reduce((e,t)=>e+(t.summary.totalEstimatedCostUsd??0),0),b=o?(0,q.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,q.jsx)(A,{className:`h-5 w-5 animate-spin text-stone-400`})}):s&&!_?(0,q.jsxs)(g,{tone:`error`,children:[`Failed to load system jobs.`,` `,(0,q.jsx)(`button`,{type:`button`,onClick:c,className:`cursor-pointer underline hover:no-underline`,children:`Retry`})]}):(0,q.jsxs)(`div`,{children:[f?(0,q.jsx)(un,{name:`Heartbeat`,subtitle:$t(e),enabled:e.enabled,nextRunAt:e.nextRunAt,lastRunAt:e.lastRunAt,usage:r,onClick:l}):null,m?(0,q.jsx)(un,{name:`Consolidation`,subtitle:en(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,h?(0,q.jsx)(un,{name:`Memory retrospective`,subtitle:tn,enabled:n.enabled,helperText:n.enabled?void 0:`Memory is off, so retrospectives are paused.`,nextRunAt:n.nextRunAt,lastRunAt:n.lastRunAt,usage:a,statusLabel:n.enabled?void 0:`Paused`,statusTone:`warning`,onClick:d}):null,s?(0,q.jsx)(`div`,{className:`pt-3 first:pt-0`,children:(0,q.jsxs)(g,{tone:`error`,children:[`Some system jobs failed to load.`,` `,(0,q.jsx)(`button`,{type:`button`,onClick:c,className:`cursor-pointer underline hover:no-underline`,children:`Retry`})]})}):null]});return(0,q.jsx)(tt,{children:(0,q.jsx)(p.Root,{type:`multiple`,children:(0,q.jsxs)(p.Item,{value:`system-jobs`,children:[(0,q.jsxs)(p.Trigger,{className:`group justify-between gap-3`,children:[(0,q.jsxs)(`span`,{className:`flex min-w-0 flex-wrap items-baseline gap-x-2 gap-y-1 text-left`,children:[(0,q.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-secondary)]`,children:`System`}),(0,q.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Built-in jobs managed by the assistant runtime`})]}),(0,q.jsxs)(`span`,{className:`flex shrink-0 items-center gap-3`,children:[v.length>0?(0,q.jsxs)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:[Y(y),` (7d)`]}):null,(0,q.jsx)(Xe,{className:`h-4 w-4 shrink-0 text-[var(--content-tertiary)] transition-transform group-data-[state=open]:rotate-180`})]})]}),(0,q.jsx)(p.Content,{children:(0,q.jsx)(`div`,{className:`mt-3`,children:b})})]})})})}function fn(e,t){return{id:e.id,jobId:t,status:e.status,startedAt:e.startedAt??e.scheduledFor,finishedAt:e.finishedAt,durationMs:e.durationMs,output:`skipReason`in e&&e.skipReason?`Skipped: ${e.skipReason}`:null,error:e.error,conversationId:e.conversationId,conversationExists:e.conversationExists,conversationArchivedAt:e.conversationArchivedAt,estimatedCostUsd:e.estimatedCostUsd,createdAt:e.createdAt,...`title`in e?{title:e.title}:{}}}function pn(e){return e.runs.map(e=>fn(e,`heartbeat`))}function mn(e){return e.runs.map(e=>fn(e,`consolidation`))}function hn(e){return e.runs.map(e=>fn(e,`retrospective`))}var Z=1e4;function gn(e,t,n,r,i){return e?{status:`loading`}:t?{status:`error`}:{status:`ready`,summary:sn(n,r,i)}}function _n(e,n){let r=o(),i={path:{assistant_id:e??``}},{data:a,isLoading:c,isError:l,refetch:u}=s({...ae(i),enabled:!!e,staleTime:Z}),{data:d,isLoading:f,isError:p,refetch:m}=s({..._e(i),enabled:!!e,staleTime:Z}),{data:h,isLoading:g,isError:_,refetch:v}=s({...oe(i),enabled:!!e,staleTime:Z}),y={path:{assistant_id:e??``},query:{limit:100}},{data:b,isLoading:x,isError:S,refetch:C}=s({...ie(y),select:pn,enabled:!!e&&a!=null,staleTime:Z}),{data:T,isLoading:E,isError:D,refetch:O}=s({...ue(y),select:mn,enabled:!!e&&d?.available===!0,staleTime:Z}),{data:k,isLoading:A,isError:j,refetch:M}=s({...ce(y),select:hn,enabled:!!e&&h?.available===!0,staleTime:Z}),N=(0,G.useMemo)(()=>Wt(n),[n]),P=(0,G.useMemo)(()=>gn(x,S,Qt.heartbeat,b,N),[b,S,x,N]),F=(0,G.useMemo)(()=>gn(E,D,Qt.consolidation,T,N),[T,D,E,N]),I=(0,G.useMemo)(()=>gn(A,j,Qt.retrospective,k,N),[k,j,A,N]),L=t=>{if(!e)return;let n={heartbeat:{config:ae(i).queryKey,runs:ie(y).queryKey,infinite:fe(i)},consolidation:{config:_e(i).queryKey,runs:ue(y).queryKey,infinite:de(i)},retrospective:{config:oe(i).queryKey,runs:ce(y).queryKey,infinite:ve(i)}}[t];r.invalidateQueries({queryKey:n.config}),r.invalidateQueries({queryKey:n.runs}),r.invalidateQueries({queryKey:n.infinite})},R=re({onSuccess:e=>{e.ran?w.success(`Heartbeat started.`):w.info(`Heartbeat skipped.`)},onError:e=>{t(e,{context:`heartbeat_run_now`}),w.error(`Failed to run heartbeat.`)},onSettled:()=>L(`heartbeat`)}),z=ee({onSuccess:e=>{e.ran?w.success(`Consolidation queued.`):w.info(`Consolidation already queued or running.`)},onError:e=>{t(e,{context:`consolidation_run_now`}),w.error(`Failed to run consolidation.`)},onSettled:()=>L(`consolidation`)}),B=ne({onSuccess:e=>{pe(r,i,e),w.success(e.enabled?`Heartbeat enabled.`:`Heartbeat disabled.`)},onError:e=>{t(e,{context:`heartbeat_toggle`}),w.error(`Failed to toggle heartbeat.`)}});return{heartbeatConfig:a,consolidationConfig:d,retrospectiveConfig:h,heartbeatUsage:P,consolidationUsage:F,retrospectiveUsage:I,isLoading:c||f||g,hasError:l||p||_,isHeartbeatRunning:R.isPending,isConsolidationRunning:z.isPending,isHeartbeatLoading:c,isHeartbeatError:l,isConsolidationLoading:f,isConsolidationError:p,isRetrospectiveLoading:g,isRetrospectiveError:_,refetchHeartbeat:u,refetchConsolidation:m,refetchRetrospective:v,runHeartbeatNow:()=>{e&&R.mutate({path:{assistant_id:e}})},runConsolidationNow:()=>{e&&z.mutate({path:{assistant_id:e}})},toggleHeartbeat:t=>{e&&B.mutate({body:{enabled:t},path:{assistant_id:e}})},refetchAll:()=>{u(),m(),v(),C(),O(),M()}}}function vn({icon:e,title:t,description:n,actions:r}){return(0,q.jsxs)(`div`,{className:`flex h-full min-h-[400px] flex-col items-center justify-center gap-4 px-4 py-24 text-center`,children:[(0,q.jsx)(`div`,{className:`flex h-16 w-16 items-center justify-center rounded-xl bg-[var(--surface-base)]`,children:(0,q.jsx)(e,{size:32,className:`text-[var(--content-tertiary)]`})}),(0,q.jsx)(`h2`,{className:`text-title-medium text-[var(--content-default)]`,children:t}),(0,q.jsx)(`p`,{className:`max-w-md text-body-medium-lighter text-[var(--content-tertiary)]`,children:n}),r?(0,q.jsx)(`div`,{className:`flex flex-col items-center gap-3`,children:r}):null]})}function yn(e){if(e.status===`loading`)return(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`span`,{className:`h-4 w-12 animate-pulse rounded bg-[var(--surface-muted)]`}),(0,q.jsx)(`span`,{className:`h-4 w-10 animate-pulse rounded bg-[var(--surface-muted)]`})]});if(e.status===`error`)return(0,q.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`—`});let{summary:t}=e;return(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`span`,{className:`text-body-small-default text-[var(--content-secondary)]`,children:Y(t.totalEstimatedCostUsd)}),(0,q.jsx)(`span`,{className:`text-body-small-default text-[var(--content-secondary)]`,children:qt(t.runCount)})]})}function bn({name:e,metaParts:t,usage:n,enabled:r,selected:i,onClick:a,onToggle:o,toggleAriaLabel:s}){return(0,q.jsxs)(`div`,{className:`flex items-center gap-3 rounded-md px-2 py-3 transition-colors [&+&]:border-t [&+&]:border-[var(--border-base)] ${i?`bg-[var(--surface-active)]`:`hover:bg-[var(--surface-hover)]`}`,children:[o?(0,q.jsx)(b,{checked:r,onChange:o,"aria-label":s}):null,(0,q.jsxs)(`button`,{type:`button`,onClick:a,className:`flex min-w-0 flex-1 cursor-pointer items-center gap-4 text-left focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)]`,children:[(0,q.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-1`,children:[(0,q.jsx)(`span`,{className:`truncate text-body-medium-default text-[var(--content-default)]`,children:e}),t.length>0?(0,q.jsx)(`span`,{className:`flex min-w-0 items-center gap-2 text-label-small-default text-[var(--content-tertiary)]`,children:t.map((e,t)=>(0,q.jsxs)(G.Fragment,{children:[t>0?(0,q.jsx)(`span`,{className:`h-[3px] w-[3px] shrink-0 rounded-full bg-[var(--content-tertiary)]`}):null,(0,q.jsx)(`span`,{className:`truncate`,children:e})]},t))}):null]}),(0,q.jsxs)(`div`,{className:`flex shrink-0 items-center gap-4`,children:[yn(n),(0,q.jsx)(k,{className:`h-4 w-4 text-[var(--content-tertiary)]`})]})]})]})}function xn({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);return(0,q.jsx)(bn,{name:e.name,metaParts:s,usage:t,enabled:e.enabled,selected:n,onClick:r,onToggle:i,toggleAriaLabel:i?`Toggle ${e.name}`:void 0})}function Sn({recurring:e,oneTime:t,pastOneTime:n,usageForSchedule:r,isLoading:a,isError:o,refetch:s,onToggle:c,onSelectSchedule:l,selectedScheduleId:u,onStartNewChat:d,onCreateSchedule:f,pastOpen:m,onPastOpenChange:h,systemTasksSlot:_}){let v=e=>(0,q.jsx)(xn,{schedule:e,usage:r(e.id),selected:e.id===u,onClick:()=>l(e.id),onToggle:t=>c(e.id,t)},e.id),y=e=>(0,q.jsx)(xn,{schedule:e,usage:r(e.id),selected:e.id===u,onClick:()=>l(e.id)},e.id),b=n.length>0?(0,q.jsx)(p.Root,{type:`single`,collapsible:!0,className:`mt-3`,value:m?`past`:``,onValueChange:e=>h(e===`past`),children:(0,q.jsxs)(p.Item,{value:`past`,children:[(0,q.jsxs)(p.Trigger,{className:`group gap-[var(--app-spacing-xs)] px-2 text-label-small-default text-[var(--content-tertiary)]`,children:[(0,q.jsx)(k,{size:14,"aria-hidden":!0,className:`shrink-0 transition-transform group-data-[state=open]:rotate-90`}),(0,q.jsxs)(`span`,{children:[`Past (`,n.length,`)`]})]}),(0,q.jsx)(p.Content,{children:(0,q.jsx)(`div`,{className:`pt-1`,children:n.map(y)})})]})}):null;return(0,q.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto`,children:[a?(0,q.jsx)(`div`,{className:`space-y-3`,children:Array.from({length:2},(e,t)=>(0,q.jsx)(`div`,{className:`h-12 animate-pulse rounded-md bg-[var(--surface-muted)]`},t))}):o&&e.length===0?(0,q.jsx)(g,{tone:`error`,actions:(0,q.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,q.jsx)(vn,{icon:O,title:`No schedules yet`,description:`Ask your assistant to set one up, or create one yourself.`,actions:(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(i,{variant:`primary`,size:`regular`,onClick:d,children:`New Conversation`}),(0,q.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`or`}),(0,q.jsx)(i,{variant:`outlined`,size:`regular`,onClick:f,children:`Create schedule`})]})}):(0,q.jsxs)(`div`,{children:[e.map(v),t.length>0?(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`p`,{className:`mt-3 px-2 text-label-small-default text-[var(--content-tertiary)]`,children:`One-time`}),t.map(y)]}):null,b]}),_?(0,q.jsx)(`div`,{className:`mt-[var(--app-spacing-lg)]`,children:_}):null]})}function Cn({children:e}){return(0,q.jsx)(u,{variant:`label-small-default`,as:`div`,className:`mb-2 uppercase tracking-wider text-[var(--content-tertiary)]`,children:e})}function Q({label:e,value:t}){return(0,q.jsxs)(`div`,{className:`flex items-center justify-between gap-4 py-1`,children:[(0,q.jsx)(`span`,{className:`text-body-medium-lighter text-[var(--content-secondary)]`,children:e}),(0,q.jsx)(`span`,{className:`min-w-0 text-right text-body-medium-lighter text-[var(--content-default)]`,children:t})]})}function wn({icon:e,value:t,label:n}){return(0,q.jsxs)(`div`,{className:`flex items-center gap-3 rounded-lg border border-[var(--border-base)] bg-[var(--surface-lift)] p-3`,children:[(0,q.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,q.jsxs)(`div`,{className:`min-w-0`,children:[(0,q.jsx)(`div`,{className:`truncate text-body-large-default text-[var(--content-default)]`,children:t}),(0,q.jsx)(`div`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:n})]})]})}function Tn({usage:e}){return e.status===`loading`?(0,q.jsx)(`div`,{className:`grid grid-cols-2 gap-3 pt-2`,children:Array.from({length:2},(e,t)=>(0,q.jsx)(`div`,{className:`h-[60px] animate-pulse rounded-lg bg-[var(--surface-muted)]`},t))}):e.status===`error`?null:(0,q.jsxs)(`div`,{className:`grid grid-cols-2 gap-3 pt-2`,children:[(0,q.jsx)(wn,{icon:(0,q.jsx)(Me,{className:`h-4 w-4`}),value:Y(e.summary.totalEstimatedCostUsd),label:`7 Day Cost`}),(0,q.jsx)(wn,{icon:(0,q.jsx)(dt,{className:`h-4 w-4`}),value:qt(e.summary.runCount),label:`7 Day Runs`})]})}function En({run:e,index:t,isExpanded:n,onOpenConversation:r,onToggleDetails:i}){let a=Zt(e),o=X(e.output),s=X(e.error),c=!a&&(o||s),u=`schedule-run-details-${t}`,d=!!a||c,f=(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(cn,{status:e.status}),(0,q.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,q.jsx)(`div`,{className:`text-body-medium-lighter text-[var(--content-default)]`,children:J(e.startedAt)}),(0,q.jsxs)(`div`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:[Gt(e.durationMs),` ·`,` `,Y(e.estimatedCostUsd)]}),e.status===`error`&&e.error?(0,q.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]}),d?(0,q.jsx)(k,{className:l(`h-4 w-4 shrink-0 text-[var(--content-tertiary)] transition-transform`,c&&n?`rotate-90`:``)}):null]}),p=c&&n?(0,q.jsx)(`div`,{id:u,className:`px-2 pb-3`,children:(0,q.jsxs)(`div`,{className:`space-y-3 rounded-md border border-[var(--border-subtle)] bg-[var(--surface-sunken)] p-3`,children:[o?(0,q.jsxs)(`div`,{children:[(0,q.jsx)(`div`,{className:`mb-1 text-body-small-default text-[var(--content-secondary)]`,children:`Output`}),(0,q.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,s?(0,q.jsxs)(`div`,{children:[(0,q.jsx)(`div`,{className:`mb-1 text-body-small-default text-[var(--content-secondary)]`,children:`Error`}),(0,q.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 a?(0,q.jsx)(`div`,{children:(0,q.jsx)(`button`,{type:`button`,onClick:()=>r(a),"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:f})}):c?(0,q.jsxs)(`div`,{children:[(0,q.jsx)(`button`,{type:`button`,onClick:()=>i(e.id),"aria-label":`Toggle output for run at ${J(e.startedAt)}`,"aria-expanded":n,"aria-controls":u,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:f}),p]}):(0,q.jsx)(`div`,{className:`flex items-center gap-3 px-2 py-3`,children:f})}function Dn({runs:e,isLoading:t,onOpenConversation:n}){let[r,i]=(0,G.useState)(null);return t?(0,q.jsx)(`div`,{className:`flex items-center justify-center py-6`,children:(0,q.jsx)(A,{className:`h-5 w-5 animate-spin text-stone-400`})}):!e||e.length===0?(0,q.jsx)(`p`,{className:`py-2 text-body-medium-lighter text-[var(--content-tertiary)] italic`,children:`No runs yet.`}):(0,q.jsx)(`div`,{className:`divide-y divide-[var(--border-base)]`,children:e.map((e,t)=>(0,q.jsx)(En,{run:e,index:t,isExpanded:r===e.id,onOpenConversation:n,onToggleDetails:e=>i(t=>t===e?null:e)},e.id))})}function On({schedule:e,assistantId:n,usage:r,isMobile:o,onClose:c,onDeleted:d}){let f=a(),{data:p,isLoading:m}=s({queryKey:me({path:{assistant_id:n,id:e.id}}),queryFn:()=>mt(n,e.id),staleTime:1e4}),[h,g]=(0,G.useState)(!1),[_,v]=(0,G.useState)(!1),[y,b]=(0,G.useState)(!1),x=async()=>{g(!0);try{await vt(n,e.id)}catch(e){t(e,{context:`schedule_run_now`}),w.error(`Failed to run schedule.`)}finally{g(!1)}},S=async()=>{b(!0);try{await _t(n,e.id),d()}catch(e){t(e,{context:`schedule_delete`}),w.error(`Failed to delete schedule.`),b(!1),v(!1)}};return(0,q.jsxs)(`div`,{className:l(`flex h-full flex-col bg-[var(--surface-overlay)]`,!o&&`rounded-[var(--radius-xl)] border border-[var(--border-base)]`),children:[(0,q.jsxs)(`div`,{className:`flex shrink-0 items-center gap-3 border-b border-[var(--border-base)] p-[var(--app-spacing-lg)]`,children:[(0,q.jsx)(`div`,{className:`min-w-0 flex-1`,children:(0,q.jsx)(u,{variant:`title-small`,className:`truncate text-[var(--content-default)]`,children:e.name})}),(0,q.jsx)(i,{variant:`ghost`,iconOnly:(0,q.jsx)(M,{}),onClick:c,"aria-label":`Close schedule details`,tooltip:`Close`,className:`shrink-0`})]}),(0,q.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,q.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-secondary)]`,children:e.description}):null,(0,q.jsxs)(`section`,{children:[(0,q.jsx)(Cn,{children:`Details`}),(0,q.jsxs)(`div`,{className:`rounded-lg border border-[var(--border-base)] bg-[var(--surface-lift)] px-4 py-2`,children:[e.cadenceDescription?(0,q.jsx)(Q,{label:`Cadence`,value:e.cadenceDescription}):null,(0,q.jsx)(Q,{label:`Mode`,value:e.mode}),(0,q.jsx)(Q,{label:`Status`,value:e.enabled?`Enabled`:`Disabled`}),(0,q.jsx)(Q,{label:`Next run`,value:J(e.nextRunAt)}),e.lastRunAt?(0,q.jsx)(Q,{label:`Last run`,value:(0,q.jsxs)(`span`,{className:`flex items-center justify-end gap-2`,children:[(0,q.jsx)(cn,{status:e.lastStatus}),J(e.lastRunAt)]})}):null]})]}),(0,q.jsx)(Tn,{usage:r}),(0,q.jsxs)(`section`,{children:[(0,q.jsx)(Cn,{children:`Recent runs`}),(0,q.jsx)(Dn,{runs:p?.runs,isLoading:m,onOpenConversation:e=>f(W.conversation(e))})]})]}),(0,q.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between gap-2 border-t border-[var(--border-base)] p-[var(--app-spacing-lg)]`,children:[_?(0,q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,q.jsx)(i,{variant:`ghost`,onClick:()=>v(!1),disabled:y,children:`Cancel`}),(0,q.jsx)(i,{variant:`danger`,onClick:()=>void S(),disabled:y,children:y?`Deleting…`:`Yes, delete`})]}):(0,q.jsx)(i,{variant:`dangerOutline`,leftIcon:(0,q.jsx)(Le,{className:`h-3.5 w-3.5`}),onClick:()=>v(!0),children:`Delete`}),(0,q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,q.jsx)(i,{variant:`outlined`,leftIcon:(0,q.jsx)(Ye,{className:`h-3.5 w-3.5`}),onClick:()=>f(W.logs.usageForSchedule(e.id)),children:`View usage`}),e.mode===`script`?(0,q.jsx)(i,{variant:`primary`,leftIcon:h?(0,q.jsx)(A,{className:`h-3.5 w-3.5 animate-spin`}):void 0,onClick:()=>void x(),disabled:h,children:h?`Running…`:`Run now`}):null]})]})]})}var kn=`Default (assistant's main model)`,An=`Custom call-site model`;function jn(e,t){return t?.[e]?.displayName??e}function Mn(e,t){if(e==null)return;if(e.provider!=null||e.model!=null)return An;let n=e.profile?.trim();return n?`Override (${jn(n,t)})`:void 0}function Nn({assistantId:e,pinnedProfile:t,defaultCallSite:n=`mainAgent`,fallbackLabel:r=kn,respectCallSiteOverride:i=!1}){let a=t==null,{data:o}=s({...se({path:{assistant_id:e}}),enabled:!!e,staleTime:6e4}),c=(0,G.useMemo)(()=>o?ot(o):{},[o]),{data:l}=s({...le({path:{assistant_id:e}}),enabled:!!e&&a,staleTime:6e4}),u=a&&i?Mn(o?.llm?.callSites?.[n],c):void 0,d=a?l?.callSites.find(e=>e.id===n)?.defaultProfile:void 0,f=t==null?u??(d==null?r:`Default (${jn(d,c)})`):jn(t,c);return(0,q.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,q.jsx)(`span`,{className:`text-[var(--content-secondary)]`,children:`Model profile`}),(0,q.jsx)(`span`,{className:`min-w-0 text-right`,children:f})]})}function Pn({runs:e,isLoading:t,emptyMessage:n=`No runs yet.`,hasMore:r=!1,isLoadingMore:o=!1,onLoadMore:s}){let c=a(),[l,u]=(0,G.useState)(null);return(0,q.jsx)(tt,{title:`Recent runs`,children:t?(0,q.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,q.jsx)(A,{className:`h-5 w-5 animate-spin text-stone-400`})}):!e||e.length===0?(0,q.jsx)(`p`,{className:`py-4 text-center text-body-medium-lighter text-[var(--content-tertiary)] italic`,children:n}):(0,q.jsxs)(`div`,{className:`divide-y divide-[var(--border-base)]`,children:[e.map((e,t)=>{let n=Zt(e),r=X(e.output),i=X(e.error),a=!n&&(r||i),o=l===e.id,s=`schedule-run-details-${t}`;return(0,q.jsxs)(`div`,{children:[(0,q.jsx)(C,{label:(0,q.jsxs)(`span`,{className:`flex min-w-0 flex-1 items-center gap-3`,children:[(0,q.jsx)(cn,{status:e.status}),(0,q.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,q.jsx)(`span`,{className:`block truncate text-body-medium-lighter text-[var(--content-default)]`,children:X(e.title)?e.title:J(e.startedAt)}),(0,q.jsxs)(`span`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:[X(e.title)?`${J(e.startedAt)} · `:``,Gt(e.durationMs),` ·`,` `,Y(e.estimatedCostUsd),e.status===`error`&&e.error&&(0,q.jsxs)(`span`,{className:`ml-2 text-[var(--system-negative-strong)]`,children:[e.error.slice(0,80),e.error.length>80?`…`:``]})]})]}),n||a?(0,q.jsx)(k,{className:`h-4 w-4 shrink-0 text-[var(--content-tertiary)] transition-transform ${o?`rotate-90`:``}`}):null]}),onSelect:n?()=>c(W.conversation(n)):a?()=>u(o?null:e.id):void 0,"aria-label":`Run at ${J(e.startedAt)}`,"aria-expanded":a?o:void 0,"aria-controls":a?s:void 0,className:`h-auto py-2.5 gap-3 -mx-2 px-2`}),a&&o?(0,q.jsx)(`div`,{id:s,className:`px-2 pb-3`,children:(0,q.jsxs)(`div`,{className:`space-y-3 rounded-md border border-[var(--border-subtle)] bg-[var(--surface-sunken)] p-3`,children:[r?(0,q.jsxs)(`div`,{children:[(0,q.jsx)(`div`,{className:`mb-1 text-body-small-default text-[var(--content-secondary)]`,children:`Output`}),(0,q.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,q.jsxs)(`div`,{children:[(0,q.jsx)(`div`,{className:`mb-1 text-body-small-default text-[var(--content-secondary)]`,children:`Error`}),(0,q.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)}),r&&s?(0,q.jsx)(`div`,{className:`flex justify-center pt-3`,children:(0,q.jsx)(i,{variant:`outlined`,size:`compact`,onClick:s,disabled:o,leftIcon:o?(0,q.jsx)(A,{className:`h-3.5 w-3.5 animate-spin`}):void 0,children:o?`Loading…`:`Load more`})}):null]})})}var Fn={heartbeat:`heartbeatAgent`,consolidation:`memoryV2Consolidation`,retrospective:`memoryRetrospective`};function In({children:e}){return(0,q.jsx)(u,{variant:`label-small-default`,as:`div`,className:`mb-2 uppercase tracking-wider text-[var(--content-tertiary)]`,children:e})}function Ln({kind:e,assistantId:t,systemTasks:n,canOpenMemorySettings:r,isMobile:o,onClose:s}){let c=a(),{heartbeatConfig:d,consolidationConfig:f,retrospectiveConfig:p}=n,m,h,_,v,y,x,S;e===`heartbeat`?(m=`Heartbeat`,h=d?$t(d):``,_=d?.enabled??!1,v=d?.nextRunAt??null,y=d?.lastRunAt??null,x=n.isHeartbeatRunning,S=n.runHeartbeatNow):e===`consolidation`?(m=`Consolidation`,h=f?en(f):``,_=f?.enabled??!1,v=f?.nextRunAt??null,y=f?.lastRunAt??null,x=n.isConsolidationRunning,S=n.runConsolidationNow):(m=`Memory retrospective`,h=tn,_=p?.enabled??!1,v=p?.nextRunAt??null,y=p?.lastRunAt??null,x=!1,S=void 0);let C=e!==`heartbeat`,w=e===`retrospective`,T=C&&!_,E=x||T,D=C?_?`On · Managed by Memory`:`Paused`:_?`Enabled`:`Disabled`,O=w?`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.`,k=C&&_&&r,j={path:{assistant_id:t},query:{limit:25}},N=e===`heartbeat`?z(j):e===`consolidation`?he(j):ge(j),{data:P,isLoading:F,fetchNextPage:I,hasNextPage:L,isFetchingNextPage:R}=Ke({queryKey:N.queryKey,queryFn:N.queryFn,initialPageParam:{path:j.path,query:{}},getNextPageParam:e=>e.nextCursor??void 0,staleTime:1e4}),ee=Yt(P?.pages.map(t=>({runs:t.runs.map(t=>fn(t,e))})));return(0,q.jsxs)(`div`,{className:l(`flex h-full flex-col bg-[var(--surface-overlay)]`,!o&&`rounded-[var(--radius-xl)] border border-[var(--border-base)]`),children:[(0,q.jsxs)(`div`,{className:`flex shrink-0 items-center gap-3 border-b border-[var(--border-base)] p-[var(--app-spacing-lg)]`,children:[(0,q.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,q.jsx)(u,{variant:`title-small`,className:`truncate text-[var(--content-default)]`,children:m}),h?(0,q.jsx)(u,{variant:`body-small-default`,as:`p`,className:`truncate text-[var(--content-tertiary)]`,children:h}):null]}),(0,q.jsx)(i,{variant:`ghost`,iconOnly:(0,q.jsx)(M,{}),onClick:s,"aria-label":`Close schedule details`,tooltip:`Close`,className:`shrink-0`})]}),(0,q.jsxs)(`div`,{className:`flex-1 space-y-6 overflow-y-auto px-[var(--app-spacing-lg)] py-[var(--app-spacing-lg)]`,children:[(0,q.jsxs)(`section`,{children:[(0,q.jsx)(In,{children:`Details`}),(0,q.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,q.jsx)(Nn,{assistantId:t,defaultCallSite:Fn[e],fallbackLabel:`Default (system task model)`,respectCallSiteOverride:!0}),(0,q.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,q.jsx)(`span`,{className:`text-[var(--content-secondary)]`,children:`Status`}),(0,q.jsxs)(`span`,{className:`flex items-center gap-2 text-[var(--content-default)]`,children:[(0,q.jsx)(`span`,{children:D}),C?null:(0,q.jsx)(b,{checked:_,onChange:n.toggleHeartbeat,"aria-label":`Toggle ${m}`})]})]}),w?null:(0,q.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,q.jsx)(`span`,{className:`text-[var(--content-secondary)]`,children:`Next run`}),(0,q.jsx)(`span`,{className:`text-[var(--content-default)]`,children:J(v)})]}),(0,q.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,q.jsx)(`span`,{className:`text-[var(--content-secondary)]`,children:`Last run`}),(0,q.jsx)(`span`,{className:`text-[var(--content-default)]`,children:J(y)})]})]}),T?(0,q.jsx)(g,{tone:`warning`,className:`mt-4`,actions:r?(0,q.jsx)(i,{variant:`outlined`,size:`compact`,onClick:()=>c(W.settings.advanced),children:`Turn on Memory`}):void 0,children:O}):null]}),(0,q.jsx)(Pn,{runs:ee,isLoading:F,hasMore:L,isLoadingMore:R,onLoadMore:()=>void I()})]}),k||S?(0,q.jsxs)(`div`,{className:`flex shrink-0 items-center justify-end gap-2 border-t border-[var(--border-base)] p-[var(--app-spacing-lg)]`,children:[k?(0,q.jsx)(i,{variant:`outlined`,leftIcon:(0,q.jsx)(Be,{className:`h-3.5 w-3.5`}),onClick:()=>c(W.settings.advanced),children:`Memory settings`}):null,S?(0,q.jsx)(i,{variant:`primary`,leftIcon:x?(0,q.jsx)(A,{className:`h-3.5 w-3.5 animate-spin`}):(0,q.jsx)(Ze,{className:`h-3.5 w-3.5`}),onClick:S,disabled:E,children:x?`Running…`:`Run now`}):null]}):null]})}var $={security:{icon:Pe,strong:`var(--feed-nudge-strong)`,weak:`var(--feed-nudge-weak)`},email:{icon:qe,strong:`var(--feed-digest-strong)`,weak:`var(--feed-digest-weak)`},scheduling:{icon:Je,strong:`var(--feed-thread-strong)`,weak:`var(--feed-thread-weak)`},background:{icon:Be,strong:`var(--system-info-strong)`,weak:`var(--system-info-weak)`},system:{icon:D,strong:`var(--feed-digest-strong)`,weak:`var(--feed-digest-weak)`}},Rn=[`security`,`email`,`scheduling`,`background`,`system`],zn=`all`;function Bn({categories:e,activeFilter:t,onFilterChange:n}){let r=Rn.filter(t=>e.includes(t));if(r.length<=1)return null;let i=[{value:zn,label:`All`,icon:(0,q.jsx)(Ue,{className:`h-4 w-4`})},...r.map(e=>{let t=$[e].icon;return{value:e,label:e.charAt(0).toUpperCase()+e.slice(1),icon:(0,q.jsx)(t,{className:`h-4 w-4`})}})];return(0,q.jsx)(x,{ariaLabel:`Filter notifications`,value:t??zn,onChange:e=>n(e===zn?null:e),items:i,className:`self-start !w-auto [&>*]:!flex-none`})}function Vn(e,t){!t||!be()||(e.preventDefault(),Ne(t))}var Hn={p:({children:e})=>(0,q.jsx)(`p`,{className:`mb-2 text-body-medium-default last:mb-0`,style:{color:`var(--content-secondary)`},children:e}),strong:({children:e})=>(0,q.jsx)(`strong`,{style:{color:`var(--content-default)`},children:e}),em:({children:e})=>(0,q.jsx)(`em`,{style:{color:`var(--content-default)`},children:e}),a:({href:e,children:t})=>(0,q.jsx)(`a`,{href:e,className:`underline`,style:{color:`var(--content-link)`},target:`_blank`,rel:`noopener noreferrer`,onClick:t=>Vn(t,e),children:t}),ul:({children:e})=>(0,q.jsx)(`ul`,{className:`mb-2 list-disc pl-5 text-body-medium-default`,style:{color:`var(--content-secondary)`},children:e}),ol:({children:e})=>(0,q.jsx)(`ol`,{className:`mb-2 list-decimal pl-5 text-body-medium-default`,style:{color:`var(--content-secondary)`},children:e}),li:({children:e})=>(0,q.jsx)(`li`,{className:`mb-0.5`,children:e}),code:({children:e})=>(0,q.jsx)(`code`,{className:`rounded px-1 py-0.5 font-mono text-[0.85em]`,style:{backgroundColor:`color-mix(in oklab, var(--content-default) 8%, transparent)`,color:`var(--content-default)`},children:e}),pre:({children:e})=>(0,q.jsx)(`pre`,{className:`mb-2 overflow-x-auto rounded p-3 font-mono text-[0.85em]`,style:{backgroundColor:`color-mix(in oklab, var(--content-default) 6%, transparent)`,color:`var(--content-default)`},children:e}),h1:({children:e})=>(0,q.jsx)(`h1`,{className:`mb-2 text-title-medium first:mt-0`,style:{color:`var(--content-default)`},children:e}),h2:({children:e})=>(0,q.jsx)(`h2`,{className:`mb-2 text-title-small first:mt-0`,style:{color:`var(--content-default)`},children:e}),h3:({children:e})=>(0,q.jsx)(`h3`,{className:`mb-1 text-body-medium-default first:mt-0`,style:{color:`var(--content-default)`},children:e}),blockquote:({children:e})=>(0,q.jsx)(`blockquote`,{className:`mb-2 border-l-2 pl-3 text-body-medium-default`,style:{borderColor:`var(--border-base)`,color:`var(--content-tertiary)`},children:e}),table:({children:e})=>(0,q.jsx)(`div`,{className:`mb-2 overflow-x-auto`,children:(0,q.jsx)(`table`,{className:`w-full border-collapse text-body-small-default`,style:{color:`var(--content-secondary)`},children:e})}),thead:({children:e})=>(0,q.jsx)(`thead`,{style:{backgroundColor:`var(--surface-lift)`},children:e}),tbody:({children:e})=>(0,q.jsx)(`tbody`,{children:e}),tr:({children:e})=>(0,q.jsx)(`tr`,{style:{borderBottom:`1px solid var(--border-base)`},children:e}),th:({children:e})=>(0,q.jsx)(`th`,{className:`px-2 py-1.5 text-left font-semibold`,style:{color:`var(--content-default)`},children:e}),td:({children:e})=>(0,q.jsx)(`td`,{className:`px-2 py-1.5 align-top`,children:e})};function Un({content:e,className:t}){return(0,q.jsx)(`div`,{className:l(`text-body-medium-default`,t),children:(0,q.jsx)(je,{remarkPlugins:[Ie],components:Hn,children:e})})}function Wn({item:e}){return(0,q.jsx)(Un,{content:e.summary})}function Gn(e){switch(e){case`revoked`:case`expired`:return`var(--system-negative-strong)`;case`missing_scopes`:case`missing_token`:case`ping_failed`:return`var(--system-mid-strong)`;default:return`var(--content-disabled)`}}function Kn(e){return e.split(`_`).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `)}function qn({item:e}){let t=e.metadata,n=t?.provider;if(!n)return(0,q.jsx)(u,{variant:`body-medium-default`,className:`text-[var(--content-secondary)]`,children:e.title??e.summary});let r=t?.accountInfo??null,i=t?.status??`unreachable`,a=t?.details??``,o=Array.isArray(t?.missingScopes)?t.missingScopes:[];return(0,q.jsxs)(`div`,{className:`flex flex-col gap-[var(--app-spacing-md)]`,children:[(0,q.jsx)(u,{variant:`title-small`,as:`h3`,children:n}),r?(0,q.jsx)(u,{variant:`body-medium-lighter`,className:`text-[var(--content-secondary)]`,children:r}):null,(0,q.jsxs)(`div`,{className:`flex items-center gap-[var(--app-spacing-sm)]`,children:[(0,q.jsx)(`span`,{className:`inline-block shrink-0 rounded-full`,style:{width:8,height:8,backgroundColor:Gn(i)},"aria-hidden":`true`}),(0,q.jsx)(u,{variant:`body-medium-default`,className:`text-[var(--content-default)]`,children:Kn(i)})]}),a?(0,q.jsx)(u,{variant:`body-medium-lighter`,className:`text-[var(--content-secondary)]`,children:a}):null,o.length>0?(0,q.jsxs)(`div`,{className:`flex flex-col gap-[var(--app-spacing-xs)]`,children:[(0,q.jsx)(u,{variant:`body-small-emphasised`,className:`text-[var(--content-secondary)]`,children:`Missing scopes`}),(0,q.jsx)(`ul`,{className:`m-0 flex list-disc flex-col gap-[var(--app-spacing-xxs)] pl-[var(--app-spacing-lg)]`,children:o.map(e=>(0,q.jsx)(`li`,{children:(0,q.jsx)(u,{variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,children:e})},e))})]}):null]})}function Jn(e){return e&&$[e]?$[e]:$.system}function Yn(e){return e.title?e.title:e.category?e.category.charAt(0).toUpperCase()+e.category.slice(1):`Notification`}function Xn({item:e,isMobile:t,validConversationIds:n,onClose:r,onGoToThread:a,onUpdateStatus:o,onDismiss:s,onViewSchedule:c}){if(!e)return null;let l=e.detailPanel?.kind,d=Yn(e),f=Jn(e.category),p=f.icon,m=e.status===`new`,h=e.status===`dismissed`,g=!!e.conversationId&&n.has(e.conversationId);return t?(0,q.jsxs)(`div`,{className:`flex h-full flex-col bg-[var(--surface-overlay)]`,children:[(0,q.jsxs)(`div`,{className:`relative flex shrink-0 items-center px-3 py-2`,children:[(0,q.jsx)(i,{variant:`ghost`,iconOnly:(0,q.jsx)(E,{}),onClick:r,"aria-label":`Back`,tooltip:`Back`}),(0,q.jsx)(u,{variant:`body-medium-default`,className:`pointer-events-none absolute inset-x-0 text-center text-[var(--content-secondary)]`,children:`Details`}),(0,q.jsxs)(`div`,{className:`ml-auto flex items-center gap-2`,children:[(0,q.jsx)(i,{variant:`ghost`,iconOnly:m?(0,q.jsx)(ut,{}):(0,q.jsx)(qe,{}),onClick:()=>o(e.id,m?`seen`:`new`),"aria-label":m?`Mark as read`:`Mark as unread`,tooltip:m?`Mark as read`:`Mark as unread`}),h?(0,q.jsx)(i,{variant:`ghost`,iconOnly:(0,q.jsx)(Ve,{}),onClick:()=>o(e.id,`seen`),"aria-label":`Restore`,tooltip:`Restore`}):(0,q.jsx)(i,{variant:`ghost`,iconOnly:(0,q.jsx)(Le,{}),onClick:()=>s(e.id),"aria-label":`Dismiss`,tooltip:`Dismiss`})]})]}),(0,q.jsxs)(`div`,{className:`flex items-center gap-3 px-4 py-3`,children:[(0,q.jsx)(`span`,{className:`flex shrink-0 items-center justify-center rounded-full`,style:{width:40,height:40,backgroundColor:f.weak},"aria-hidden":`true`,children:(0,q.jsx)(p,{width:18,height:18,style:{color:f.strong}})}),(0,q.jsx)(u,{variant:`title-small`,className:`min-w-0 text-[var(--content-default)]`,children:d}),(0,q.jsx)(_,{tone:`neutral`,className:`shrink-0`,title:rt(e.timestamp),children:it(e.timestamp)})]}),(0,q.jsx)(`div`,{className:`mx-4 border-b border-[var(--border-disabled)]`}),(0,q.jsx)(`div`,{className:`flex-1 overflow-y-auto p-4`,children:l===`toolPermission`?(0,q.jsx)(qn,{item:e}):(0,q.jsx)(Wn,{item:e})}),g||c?(0,q.jsxs)(`div`,{className:`flex shrink-0 flex-col gap-2 px-4 pb-4 pt-2`,children:[c?(0,q.jsx)(i,{variant:`outlined`,fullWidth:!0,leftIcon:(0,q.jsx)(O,{className:`size-4`}),onClick:c,children:`View schedule`}):null,g?(0,q.jsx)(i,{variant:`primary`,fullWidth:!0,onClick:()=>a(e.conversationId),children:`Go to Conversation`}):null]}):null]}):(0,q.jsxs)(`div`,{className:`flex h-full flex-col rounded-[var(--radius-xl)] border border-[var(--border-base)] bg-[var(--surface-overlay)]`,children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-[var(--app-spacing-sm)] border-b border-[var(--border-base)] p-[var(--app-spacing-lg)]`,children:[(0,q.jsx)(`span`,{className:`flex shrink-0 items-center justify-center rounded-full`,style:{width:28,height:28,backgroundColor:f.weak},"aria-hidden":`true`,children:(0,q.jsx)(p,{width:14,height:14,style:{color:f.strong}})}),(0,q.jsx)(u,{variant:`title-small`,className:`min-w-0 flex-1 truncate text-[var(--content-default)]`,children:d}),g?(0,q.jsx)(i,{variant:`outlined`,onClick:()=>a(e.conversationId),children:`Go to Convo`}):null,(0,q.jsx)(i,{variant:`outlined`,iconOnly:(0,q.jsx)(M,{}),onClick:r,"aria-label":`Close detail panel`,tooltip:`Close`})]}),(0,q.jsxs)(`div`,{className:`flex-1 overflow-y-auto p-[var(--app-spacing-lg)]`,children:[l===`toolPermission`?(0,q.jsx)(qn,{item:e}):(0,q.jsx)(Wn,{item:e}),(0,q.jsx)(`div`,{className:`mt-[var(--app-spacing-md)]`,children:(0,q.jsx)(_,{tone:`neutral`,title:rt(e.timestamp),children:it(e.timestamp)})})]}),(0,q.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between gap-[var(--app-spacing-sm)] border-t border-[var(--border-base)] p-[var(--app-spacing-lg)]`,children:[(0,q.jsx)(`div`,{children:c?(0,q.jsx)(i,{variant:`outlined`,leftIcon:(0,q.jsx)(O,{className:`size-4`}),onClick:c,children:`View schedule`}):null}),(0,q.jsx)(`div`,{className:`flex items-center gap-[var(--app-spacing-sm)]`,children:h?(0,q.jsx)(i,{variant:`primary`,onClick:()=>o(e.id,`seen`),children:`Restore`}):(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(i,{variant:`outlined`,onClick:()=>o(e.id,m?`seen`:`new`),children:m?`Mark as read`:`Mark as unread`}),(0,q.jsx)(i,{variant:`primary`,onClick:()=>s(e.id),children:`Dismiss`})]})})]})]})}var Zn={heartbeat:ct,memory_consolidation:Ge,schedule:Je,auto_analysis:j,user:We,other:Fe},Qn=`all`;function $n({sources:e,activeSource:t,onSourceChange:n}){if(e.length<=1)return null;let r=e.find(e=>e.key===t)??null,a=r?Zn[r.type]:lt;return(0,q.jsxs)(f.Root,{children:[(0,q.jsx)(f.Trigger,{children:(0,q.jsx)(i,{variant:`outlined`,size:`compact`,active:r!==null,leftIcon:(0,q.jsx)(a,{className:`h-4 w-4`}),rightIcon:(0,q.jsx)(Xe,{className:`h-3.5 w-3.5`}),"aria-label":`Filter notifications by source`,children:r?r.label:`All sources`})}),(0,q.jsx)(f.Content,{align:`start`,className:`max-h-80 overflow-y-auto`,children:(0,q.jsxs)(f.RadioGroup,{value:t??Qn,onValueChange:e=>n(e===Qn?null:e),children:[(0,q.jsx)(f.RadioItem,{value:Qn,children:`All sources`}),(0,q.jsx)(f.Separator,{}),e.map(e=>(0,q.jsx)(f.RadioItem,{value:e.key,children:e.label},e.key))]})})]})}function er({label:e,onClick:t,className:n,children:i}){return(0,q.jsx)(r,{content:e,children:(0,q.jsx)(`button`,{type:`button`,"aria-label":e,onClick:e=>{e.stopPropagation(),t()},className:l(`flex h-8 w-8 shrink-0 cursor-pointer items-center justify-center rounded-md`,`text-[var(--content-secondary)] transition-colors`,`hover:bg-[var(--surface-hover)] hover:text-[var(--content-default)]`,n),children:i})})}function tr(e){return e&&$[e]?$[e]:$.system}function nr({item:e,isActive:t=!1,validConversationIds:n,onSelect:r,onDismiss:i,onToggleRead:a,onGoToThread:o,trailingAction:s=`dismiss`}){let[c,u]=(0,G.useState)(!1),d=tr(e.category),f=d.icon,p=e.status===`new`,m=s===`restore`;return(0,q.jsxs)(`button`,{type:`button`,onClick:()=>r(e),onMouseEnter:()=>u(!0),onMouseLeave:()=>u(!1),className:l(`flex min-h-[48px] w-full cursor-pointer items-center gap-[var(--app-spacing-sm)]`,`rounded-[var(--radius-md)] px-[var(--app-spacing-md)] py-[var(--app-spacing-sm)]`,`transition-[background-color,opacity] duration-150`,t?`bg-[var(--surface-active)]`:c?`bg-[var(--surface-hover)]`:`bg-[var(--surface-overlay)]`,!p&&!t&&`opacity-70`),children:[(0,q.jsxs)(`span`,{className:`relative shrink-0`,"aria-hidden":`true`,children:[(0,q.jsx)(`span`,{className:`flex items-center justify-center rounded-full`,style:{width:26,height:26,backgroundColor:d.weak},children:(0,q.jsx)(f,{width:12,height:12,style:{color:d.strong}})}),p&&(0,q.jsx)(`span`,{className:`absolute -left-0.5 -top-0.5 h-2 w-2 rounded-full bg-[var(--system-mid-strong)]`})]}),(0,q.jsx)(`span`,{className:l(`text-body-medium-default min-w-0 flex-1 truncate text-left`,`text-[var(--content-secondary)]`),children:e.title??e.summary}),c&&!m?(0,q.jsxs)(`span`,{className:`flex shrink-0 items-center gap-[var(--app-spacing-sm)]`,children:[a&&(0,q.jsx)(er,{label:p?`Mark as read`:`Mark as unread`,onClick:()=>a(e.id,p?`seen`:`new`),children:p?(0,q.jsx)(ut,{width:16,height:16}):(0,q.jsx)(qe,{width:16,height:16})}),o&&e.conversationId&&(!n||n.has(e.conversationId))&&(0,q.jsx)(er,{label:`Go to thread`,onClick:()=>{p&&a&&a(e.id,`seen`),o(e.conversationId)},children:(0,q.jsx)(Qe,{width:16,height:16})}),(0,q.jsx)(er,{label:`Dismiss`,onClick:()=>i(e.id),children:(0,q.jsx)(Le,{width:16,height:16})})]}):c&&m?(0,q.jsxs)(er,{label:`Restore`,onClick:()=>i(e.id),className:`w-auto gap-[var(--app-spacing-xs)] px-2`,children:[(0,q.jsx)(Ve,{width:16,height:16,"aria-hidden":`true`}),(0,q.jsx)(`span`,{className:`text-body-small-default`,children:`Restore`})]}):(0,q.jsx)(`span`,{className:`shrink-0 text-body-small-default text-[var(--content-tertiary)]`,children:it(e.timestamp)})]})}function rr(e){return[...e].sort((e,t)=>e.priority===t.priority?new Date(t.createdAt).getTime()-new Date(e.createdAt).getTime():t.priority-e.priority)}function ir(e){let t=new Date,n=new Date(t.getFullYear(),t.getMonth(),t.getDate()),r=new Date(t.getFullYear(),t.getMonth(),t.getDate()-1),i={today:[],yesterday:[],older:[]};for(let t of e){let e=new Date(t.createdAt);e>=n?i.today.push(t):e>=r?i.yesterday.push(t):i.older.push(t)}let a=new Map;return i.today.length>0&&a.set(`today`,i.today),i.yesterday.length>0&&a.set(`yesterday`,i.yesterday),i.older.length>0&&a.set(`older`,i.older),a}function ar(e,t){return t===null?e:e.filter(e=>(e.category??`system`)===t)}function or(e){return e.filter(e=>e.urgency!==`high`&&e.urgency!==`critical`)}function sr(e){let t=new Set;for(let n of e)t.add(n.category??`system`);return[...t]}var cr={heartbeat:0,memory_consolidation:1,schedule:2,auto_analysis:3,user:4,other:5};function lr(e){let t=new Map;for(let n of e){let e=n.sourceKey;!e||t.has(e)||t.set(e,{key:e,label:n.sourceLabel??e,type:n.sourceType??`other`})}return[...t.values()].sort((e,t)=>{let n=cr[e.type]-cr[t.type];return n===0?e.label.localeCompare(t.label):n})}function ur(e,t){return t===null?e:e.filter(e=>e.sourceKey===t)}var dr={today:`Today`,yesterday:`Yesterday`,older:`Older`},fr=10080*60*1e3;function pr(e,t){return e.status===`new`||e.status===`dismissed`?!1:t-new Date(e.createdAt).getTime()>fr}function mr({items:e,selectedItemId:t,validConversationIds:n,onSelectItem:r,onDismissItem:i,onRestoreItem:a,onToggleRead:o,onGoToThread:s,archivedOpen:c,onArchivedOpenChange:l,dismissedOpen:d,onDismissedOpenChange:f}){let[m,h]=(0,G.useState)(null),[g,_]=(0,G.useState)(null),[v]=(0,G.useState)(()=>Date.now()),y=or(e.filter(e=>e.status!==`dismissed`)),b=y.filter(e=>!pr(e,v)),x=rr(y.filter(e=>pr(e,v))),S=sr(b),C=lr(b),w=m&&S.includes(m)?m:null,T=g&&C.some(e=>e.key===g)?g:null;m!==w&&h(w),g!==T&&_(T);let E=ir(rr(ur(ar(b,w),T))),O=e.filter(e=>e.status===`dismissed`).sort((e,t)=>new Date(t.createdAt).getTime()-new Date(e.createdAt).getTime());return(0,q.jsxs)(`div`,{className:`flex flex-col gap-[var(--app-spacing-lg)]`,children:[(S.length>1||C.length>1)&&(0,q.jsxs)(`div`,{className:`flex flex-wrap items-center gap-[var(--app-spacing-sm)]`,children:[(0,q.jsx)(Bn,{categories:S,activeFilter:w,onFilterChange:h}),(0,q.jsx)($n,{sources:C,activeSource:T,onSourceChange:_})]}),E.size===0?w||T?(0,q.jsx)(u,{variant:`body-medium-lighter`,className:`py-[var(--app-spacing-xl)] text-center text-[var(--content-disabled)]`,children:`No items match the selected filter.`}):(0,q.jsx)(vn,{icon:D,title:`No notifications yet`,description:`Updates and activity from your assistant will appear here.`}):[...E.entries()].map(([e,a])=>(0,q.jsxs)(`section`,{className:`flex flex-col gap-[var(--app-spacing-md)]`,children:[(0,q.jsx)(u,{variant:`body-small-default`,as:`h3`,className:`text-[var(--content-tertiary)]`,children:dr[e]}),(0,q.jsx)(`div`,{className:`flex flex-col gap-[var(--app-spacing-xs)]`,children:a.map(e=>(0,q.jsx)(nr,{item:e,isActive:e.id===t,validConversationIds:n,onSelect:r,onDismiss:i,onToggleRead:o,onGoToThread:s},e.id))})]},e)),x.length>0&&(0,q.jsx)(p.Root,{type:`single`,collapsible:!0,value:c?`archived-read`:``,onValueChange:e=>l?.(e===`archived-read`),children:(0,q.jsxs)(p.Item,{value:`archived-read`,children:[(0,q.jsxs)(p.Trigger,{className:`group gap-[var(--app-spacing-xs)] text-body-small-default text-[var(--content-tertiary)]`,children:[(0,q.jsx)(k,{size:14,"aria-hidden":!0,className:`shrink-0 transition-transform group-data-[state=open]:rotate-90`}),(0,q.jsxs)(`span`,{children:[`Earlier (`,x.length,`)`]})]}),(0,q.jsx)(p.Content,{children:(0,q.jsx)(`div`,{className:`flex flex-col gap-[var(--app-spacing-xs)] pt-[var(--app-spacing-sm)]`,children:x.map(e=>(0,q.jsx)(nr,{item:e,isActive:e.id===t,validConversationIds:n,onSelect:r,onDismiss:i,onToggleRead:o,onGoToThread:s},e.id))})})]})}),O.length>0&&(0,q.jsx)(p.Root,{type:`single`,collapsible:!0,value:d?`dismissed`:``,onValueChange:e=>f?.(e===`dismissed`),children:(0,q.jsxs)(p.Item,{value:`dismissed`,children:[(0,q.jsxs)(p.Trigger,{className:`group gap-[var(--app-spacing-xs)] text-body-small-default text-[var(--content-tertiary)]`,children:[(0,q.jsx)(k,{size:14,"aria-hidden":!0,className:`shrink-0 transition-transform group-data-[state=open]:rotate-90`}),(0,q.jsxs)(`span`,{children:[`Dismissed (`,O.length,`)`]})]}),(0,q.jsx)(p.Content,{children:(0,q.jsx)(`div`,{className:`flex flex-col gap-[var(--app-spacing-xs)] pt-[var(--app-spacing-sm)]`,children:O.map(e=>(0,q.jsx)(nr,{item:e,onSelect:r,onDismiss:a,trailingAction:`restore`},e.id))})})]})})]})}function hr(){return(0,q.jsx)(`h1`,{className:`shrink-0 text-title-large text-[var(--content-default)]`,children:`Activity`})}function gr(e){let n=He(),[r]=(0,G.useState)(()=>Date.now()),{data:i,isLoading:a,isError:o,refetch:c}=s({queryKey:ye({path:{assistant_id:e??``}}),queryFn:()=>e?pt(e):Promise.resolve([]),staleTime:1e4}),{data:l,isLoading:u,isError:d}=s(an(e,n,!0)),{recurring:f,oneTime:p,pastOneTime:m}=(0,G.useMemo)(()=>{let e=rn(i??[],r);return{recurring:e.recurring,oneTime:e.upcomingOneTime,pastOneTime:e.pastOneTime}},[r,i]),h=(0,G.useMemo)(()=>new Map((l??[]).map(e=>[e.scheduleId,e])),[l]);return{recurring:f,oneTime:p,pastOneTime:m,usageForSchedule:(0,G.useCallback)(e=>u?{status:`loading`}:d?{status:`error`}:{status:`ready`,summary:h.get(e)??on(e)},[d,u,h]),handleToggle:(0,G.useCallback)(async(n,r)=>{if(e)try{await gt(e,n,r),c()}catch(e){t(e,{context:`schedule_toggle`}),w.error(`Failed to toggle schedule.`)}},[e,c]),isLoading:a,isError:o,refetch:(0,G.useCallback)(()=>{c()},[c])}}function _r(e){let t=o(),n=(0,G.useMemo)(()=>te({path:{assistant_id:e??``}}),[e]),r=s({...B({path:{assistant_id:e}}),enabled:!!e,staleTime:6e4}),i=(0,G.useCallback)(()=>{e&&t.invalidateQueries({queryKey:n})},[e,t,n]);return{...r,invalidate:i}}function vr(){return(0,q.jsxs)(`div`,{className:`flex flex-col gap-[var(--app-spacing-xl)]`,children:[(0,q.jsx)(`div`,{className:`h-7 w-64 animate-pulse rounded-md bg-[var(--surface-lift)]`}),(0,q.jsx)(`div`,{className:`flex flex-col gap-[var(--app-spacing-sm)]`,children:Array.from({length:4},(e,t)=>(0,q.jsx)(`div`,{className:`h-16 animate-pulse rounded-md bg-[var(--surface-lift)]`},t))})]})}function yr(e){let t=e?.metadata?.scheduleId;return typeof t==`string`&&t.length>0?t:null}function br({assistantId:e,validConversationIds:t,onStartNewChat:n,onOpenConversation:r}){let i=Se(),a=He(),o=$e(e);_r(e);let c=gr(e),l=_n(e,a),{data:u=!1}=s({queryKey:[`assistant-memory-opt-out-capability`,e],queryFn:async()=>{let t=await xe(e);return t.ok&&t.data.capabilities?.memoryOptOut===!0},retry:!1,staleTime:1e4}),[d,f]=(0,G.useState)(!1),[p,g]=(0,G.useState)(`notifications`),[_,v]=(0,G.useState)(null),[y,b]=(0,G.useState)(null),[x,S]=(0,G.useState)(null),[C,w]=(0,G.useState)(!1),[T,E]=(0,G.useState)(!1),[D,O]=(0,G.useState)(!1),k=y?c.recurring.find(e=>e.id===y)??c.oneTime.find(e=>e.id===y)??c.pastOneTime.find(e=>e.id===y)??null:null;(0,G.useEffect)(()=>{y&&!k&&b(null)},[y,k]);let A=x===`heartbeat`?l.heartbeatConfig!=null:x===`consolidation`?l.consolidationConfig?.available===!0:x===`retrospective`?l.retrospectiveConfig?.available===!0:!1;(0,G.useEffect)(()=>{x&&!l.isLoading&&!A&&S(null)},[x,A,l.isLoading]);let j=(0,G.useCallback)(e=>{v(null),S(null),b(e)},[]),M=(0,G.useCallback)(e=>{v(null),b(null),S(e)},[]),N=(0,G.useCallback)(e=>{b(null),S(null),e.status===`new`?(v({...e,status:`seen`}),o.updateStatus.mutate({itemId:e.id,status:`seen`})):v(e)},[o.updateStatus]),P=(0,G.useCallback)(()=>{v(null)},[]),F=(0,G.useCallback)(e=>{o.updateStatus.mutate({itemId:e,status:`dismissed`}),_?.id===e&&v(null)},[o.updateStatus,_?.id]),I=(0,G.useCallback)(e=>{o.updateStatus.mutate({itemId:e,status:`seen`}),v(t=>t?.id===e?{...t,status:`seen`}:t)},[o.updateStatus]),L=(0,G.useCallback)((e,t)=>{o.updateStatus.mutate({itemId:e,status:t}),v(n=>n?.id===e?{...n,status:t}:n)},[o.updateStatus]),R=(0,G.useCallback)(e=>{v(null),r(e)},[r]),z=yr(_),ee=z!=null&&(c.recurring.some(e=>e.id===z)||c.oneTime.some(e=>e.id===z)||c.pastOneTime.some(e=>e.id===z)),B=_?(0,q.jsx)(Xn,{item:_,isMobile:i,validConversationIds:t,onClose:P,onGoToThread:R,onUpdateStatus:L,onDismiss:F,onViewSchedule:ee?()=>{g(`schedules`),j(z)}:void 0}):null,te=(k?(0,q.jsx)(On,{schedule:k,assistantId:e,usage:c.usageForSchedule(k.id),isMobile:i,onClose:()=>b(null),onDeleted:()=>{b(null),c.refetch()}}):null)??(x&&A?(0,q.jsx)(Ln,{kind:x,assistantId:e,systemTasks:l,canOpenMemorySettings:u,isMobile:i,onClose:()=>S(null)}):null),ne=B??te,re=(e,t,n)=>t&&!i?(0,q.jsx)(h,{className:`min-h-0 flex-1`,storageKey:`homeDetailDrawerWidth`,defaultRightWidth:480,minLeftWidth:320,minRightWidth:400,hideDivider:!0,left:(0,q.jsx)(`div`,{className:`flex min-h-0 flex-1 flex-col pr-[var(--app-spacing-lg)]`,children:e}),right:(0,q.jsx)(`div`,{className:`home-detail-drawer`,children:t},n)}):e,ie=(0,q.jsx)(Sn,{recurring:c.recurring,oneTime:c.oneTime,pastOneTime:c.pastOneTime,usageForSchedule:c.usageForSchedule,isLoading:c.isLoading,isError:c.isError,refetch:c.refetch,onToggle:c.handleToggle,onSelectSchedule:j,selectedScheduleId:y,onStartNewChat:n,onCreateSchedule:()=>f(!0),pastOpen:C,onPastOpenChange:w,systemTasksSlot:(0,q.jsx)(dn,{heartbeatConfig:l.heartbeatConfig,consolidationConfig:l.consolidationConfig,retrospectiveConfig:l.retrospectiveConfig,heartbeatUsage:l.heartbeatUsage,consolidationUsage:l.consolidationUsage,retrospectiveUsage:l.retrospectiveUsage,isLoading:l.isLoading,hasError:l.hasError,onRetry:l.refetchAll,onSelectHeartbeat:()=>M(`heartbeat`),onSelectConsolidation:()=>M(`consolidation`),onSelectRetrospective:()=>M(`retrospective`)})}),ae=(0,q.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-[var(--app-spacing-lg)] overflow-y-auto`,children:[o.isError?(0,q.jsxs)(`div`,{role:`alert`,className:`rounded-md border border-[var(--system-negative-weak)] bg-[var(--system-negative-weak)] px-[var(--app-spacing-lg)] py-[var(--app-spacing-md)] text-[var(--system-negative-strong)]`,children:[`Couldn't load home feed`,o.error instanceof Error?`: ${o.error.message}`:`.`]}):null,(0,q.jsx)(mr,{items:o.data?.items??[],selectedItemId:_?.id,validConversationIds:t,onSelectItem:N,onDismissItem:F,onRestoreItem:I,onToggleRead:L,onGoToThread:R,archivedOpen:T,onArchivedOpenChange:E,dismissedOpen:D,onDismissedOpenChange:O})]}),oe=(0,q.jsxs)(m.Root,{value:p,onValueChange:e=>g(e),className:`flex min-h-0 flex-1 flex-col`,children:[(0,q.jsxs)(m.List,{className:`shrink-0`,children:[(0,q.jsx)(m.Trigger,{value:`notifications`,children:`Notifications`}),(0,q.jsx)(m.Trigger,{value:`schedules`,children:`Schedules`})]}),(0,q.jsx)(m.Panel,{value:`notifications`,className:`mt-[var(--app-spacing-lg)] flex min-h-0 flex-1 flex-col`,children:re(ae,B,_?.id)}),(0,q.jsx)(m.Panel,{value:`schedules`,className:`mt-[var(--app-spacing-lg)] flex min-h-0 flex-1 flex-col`,children:re(ie,te,y??x??void 0)})]}),se=o.isLoading?(0,q.jsx)(vr,{}):(0,q.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-[var(--app-spacing-xl)]`,children:[i?null:(0,q.jsx)(hr,{}),oe]});return ne&&i?(0,q.jsx)(`div`,{className:`fixed inset-0 z-30 bg-[var(--surface-overlay)]`,style:{paddingTop:`var(--safe-area-inset-top, env(safe-area-inset-top, 0px))`,paddingBottom:`var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px))`},children:ne}):(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(nt,{children:se}),(0,q.jsx)(Ft,{isOpen:d,assistantId:e,onClose:()=>f(!1),onCreated:()=>{f(!1),c.refetch()}})]})}function xr(){let e=a(),t=et(),n=ze.use.setTopBarCenter(),r=Se(),{conversations:i}=Ee(t),{conversations:o}=De(t,!0),{conversations:s}=Te(t,!0),c=(0,G.useMemo)(()=>new Set(Re(i,o,s).map(e=>e.conversationId)),[i,o,s]);return(0,G.useEffect)(()=>(n(r?(0,q.jsx)(u,{variant:`body-medium-default`,className:`text-[var(--content-secondary)]`,children:`Activity`}):null),()=>{n(null)}),[r,n]),(0,q.jsx)(br,{assistantId:t,validConversationIds:c,onStartNewChat:()=>{Ce.getState().setMainView(`chat`);let t=Oe();we.getState().setActiveConversationId(t),e(W.conversation(t)),Ae()},onOpenConversation:t=>e(W.conversation(t))})}export{xr as HomePageRoute};
@@ -0,0 +1 @@
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-DJZBPgpf.js";import{t as n}from"./button-D7s2Q_uG.js";import{d as r,h as i}from"./chunk-5KNZJZUH-DdS6bb-3.js";import{t as a}from"./jsx-runtime-CVSDxk6A.js";import{X as o,Y as s}from"./local-mode-BD2zqd9I.js";import{t as c}from"./is-electron-C_ZTVhv8.js";import{n as l}from"./resolved-assistants-store-DLNFVaZL.js";import{i as u}from"./auth-store-CbVvQiBR.js";import{a as d,r as f}from"./routes-B9xcBuuC.js";import{t as p}from"./client-feature-flag-store-DjN8fxHA.js";import{t as m}from"./use-onboarding-login-BZ4ismb6.js";import{Vi as h,_t as g,xi as _}from"./index-Cx6vyW7T.js";import{r as v}from"./provider-key-g87caUSW.js";var y=e(t(),1),b=a(),x=`h-5 w-5 shrink-0 text-[var(--content-secondary)]`;function S(){let e=u(),t=p.use.multiPlatformAssistant(),n=l.use.assistants().some(e=>e.isPlatformHosted);return[{mode:`vellum-cloud`,label:`Vellum Cloud`,subtitle:`Always on, 24/7, even when your computer is off. Runs on Vellum's secure infrastructure.`,icon:(0,b.jsx)(h,{className:x}),...!e||!t&&n?{disabled:!0,badge:e?`Limit Reached`:`Requires Account`}:{}},{mode:`local`,label:`Local`,subtitle:`Runs directly on your machine. Your data never leaves your computer.`,icon:(0,b.jsx)(_,{className:x})}]}function C(){let e=r(),[t]=i(),a=t.get(`from`)===`select-assistant`,l=u(),p=c(),h=S(),_=h.find(e=>e.mode===`vellum-cloud`)?.disabled,[x,C]=(0,y.useState)(l&&!_?`vellum-cloud`:`local`);(0,y.useEffect)(()=>{_&&x===`vellum-cloud`&&C(`local`)},[_,x]);let{loading:T,error:E,login:D,cancel:O}=m(`${d.onboarding.hosting}?from=select-assistant`),k=a&&!l&&!p;return(0,b.jsx)(g,{children:(0,b.jsxs)(`div`,{className:`mx-auto flex w-full max-w-xl flex-col items-center ${p?`min-h-full px-8 pt-21 pb-4 electron-prechat-type`:`min-h-screen px-6 pb-40 pt-16`} text-[var(--content-default)]`,children:[(0,b.jsx)(`h1`,{className:p?`text-title-large`:`text-3xl font-semibold tracking-tight`,style:{animation:`fadeInUp 0.5s ease-out 0.1s both`},children:`Hosting`}),(0,b.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)] ${p?`mt-3.5`:`mt-3`}`,style:{animation:`fadeInUp 0.5s ease-out 0.3s both`},children:`Where do you want your assistant to live?`}),E&&(0,b.jsx)(`p`,{className:`mt-4 text-body-small-default text-[var(--system-negative-strong)]`,children:E}),(0,b.jsx)(`div`,{className:`grid w-full ${p?`mt-8 gap-2`:`auto-rows-fr mt-10 gap-3`}`,style:{animation:`fadeInUp 0.5s ease-out 0.4s both`},children:h.map(e=>(0,b.jsx)(w,{option:e,selected:x===e.mode,onSelect:()=>{e.disabled||C(e.mode)}},e.mode))}),(0,b.jsxs)(`div`,{className:`mt-8 flex w-full flex-col ${p?`gap-2.5`:`gap-2`}`,style:{animation:`fadeInUp 0.5s ease-out 0.5s both`},children:[(0,b.jsx)(n,{variant:`primary`,size:`regular`,fullWidth:!0,className:p?void 0:`h-11 text-base`,onClick:()=>{x===`vellum-cloud`?(o(),s(null),v(null),e(d.onboarding.privacy)):e(`${d.onboarding.apiKey}?hosting=${x}`)},children:`Continue`}),k&&(0,b.jsx)(n,{variant:`outlined`,size:`regular`,fullWidth:!0,className:`h-11 text-base`,onClick:T?O:()=>void D(),children:T?`Cancel`:`Log In`}),(0,b.jsx)(n,{variant:`outlined`,size:`regular`,fullWidth:!0,className:p?void 0:`h-11 text-base`,onClick:()=>{e(a?d.selectAssistant:d.welcome)},disabled:T,children:`Back`})]}),(0,b.jsx)(`a`,{href:f(d.docs.hostingOptions),target:`_blank`,rel:`noreferrer`,className:`prechat-md-regular mt-6 text-body-medium-default text-[var(--content-default)] underline`,style:{animation:`fadeInUp 0.5s ease-out 0.6s both`},children:`Need help choosing?`})]})})}function w({option:e,selected:t,onSelect:n}){let r=c();return(0,b.jsxs)(`button`,{type:`button`,onClick:n,disabled:e.disabled,className:`flex w-full items-center border text-left transition-colors ${r?`h-[72px] gap-3 rounded-lg p-3`:`gap-4 rounded-xl px-4 py-4`} ${e.disabled?`cursor-not-allowed opacity-60`:`cursor-pointer`} ${t&&!e.disabled?`${r?`border-[var(--primary-base)]/50`:`border-[var(--primary-base)]`} bg-[var(--primary-base)]/5`:`${r?`border-[var(--border-disabled)]`:`border-[var(--border-element)]`} bg-transparent`}`,children:[e.icon,(0,b.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,b.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,b.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-default)]`,children:e.label}),e.badge&&(0,b.jsx)(`span`,{className:`rounded-full bg-[var(--surface-tertiary)] px-2 py-0.5 text-[var(--content-tertiary)] ${r?`text-label-medium-default`:`text-body-small-default`}`,children:e.badge})]}),(0,b.jsx)(`span`,{className:`mt-0.5 line-clamp-2 text-[var(--content-tertiary)] ${r?`text-label-medium-default leading-[14px]`:`text-body-small-default`}`,children:e.subtitle})]}),!e.disabled&&(0,b.jsx)(`div`,{className:`flex h-4 w-4 shrink-0 items-center justify-center rounded-full ${r?`border-[1.5px]`:`border-2`} ${t?r?`border-[var(--primary-base)] bg-[var(--primary-base)]`:`border-[var(--primary-base)]`:`border-[var(--border-element)]`}`,children:t&&(0,b.jsx)(`div`,{className:`h-1.5 w-1.5 rounded-full ${r?`bg-[var(--aux-white)]`:`bg-[var(--primary-base)]`}`})})]})}export{C as HostingScreen};