@vellumai/web 0.10.12-staging.2 → 0.10.12

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 (409) hide show
  1. package/dist/assets/{AnimatePresence-DwfFixKx.js → AnimatePresence-3WpfAWHe.js} +1 -1
  2. package/dist/assets/{BundleConfirmPage-gQyAQ1Np.js → BundleConfirmPage-CDklssHh.js} +1 -1
  3. package/dist/assets/{a2a-invite-h0ZA9fjr.js → a2a-invite-DUYZLVQb.js} +1 -1
  4. package/dist/assets/{about-page-o4HW3X7x.js → about-page-CT70Pgvf.js} +1 -1
  5. package/dist/assets/access-D3fUSyFH.js +1 -0
  6. package/dist/assets/{account-page-CCGELSOs.js → account-page-D5cJIu1-.js} +1 -1
  7. package/dist/assets/{account-shell-AfPNPQvp.js → account-shell-C_IH8r44.js} +1 -1
  8. package/dist/assets/{acp-run-actions-Ct6s3jTx.js → acp-run-actions-CAjb0Wcm.js} +1 -1
  9. package/dist/assets/{acp-run-detail-panel-6KF1gTs7.js → acp-run-detail-panel-DqzZdPiN.js} +1 -1
  10. package/dist/assets/{acp-run-store-DvHGcG6-.js → acp-run-store-C6n-XeY_.js} +1 -1
  11. package/dist/assets/{activity-steps-panel-BixdRLE2.js → activity-steps-panel-BzHQOJsQ.js} +1 -1
  12. package/dist/assets/{add-credits-modal-IV5EP5Uo.js → add-credits-modal-CCEMf2_U.js} +1 -1
  13. package/dist/assets/ai-page-BznkOakE.js +1 -0
  14. package/dist/assets/{animated-avatar-B7_KzM7V.js → animated-avatar-DzfEDnTh.js} +1 -1
  15. package/dist/assets/{api-DL5vlAJ0.js → api-CJFoPWHm.js} +1 -1
  16. package/dist/assets/{api-BafF_-rc.js → api-XwdNiVE9.js} +1 -1
  17. package/dist/assets/{api-key-screen-Dh7AJqr3.js → api-key-screen-BXn2F-lQ.js} +1 -1
  18. package/dist/assets/{app-card-BV9XWgfV.js → app-card-Uowaj1kh.js} +1 -1
  19. package/dist/assets/{app-info-Bus9qaJo.js → app-info-qQex8Ndg.js} +1 -1
  20. package/dist/assets/{archive-redirect-page-Cyh8EfTp.js → archive-redirect-page-CpKvFqvX.js} +1 -1
  21. package/dist/assets/{assistant-feature-flag-store-DrFDLNVv.js → assistant-feature-flag-store-CLqMw4mK.js} +1 -1
  22. package/dist/assets/assistant-identity-store-DIyVo8LV.js +1 -0
  23. package/dist/assets/{assistant-status-panel-DODbammu.js → assistant-status-panel-DKnWIr7_.js} +1 -1
  24. package/dist/assets/{auth-store-CK95leo_.js → auth-store-D9BqFncz.js} +2 -2
  25. package/dist/assets/{avatar-renderer-DAklEC5T.js → avatar-renderer-DK54o2kQ.js} +1 -1
  26. package/dist/assets/avatar-svg-compositor-FtVPqzlC.js +1 -0
  27. package/dist/assets/{background-task-actions-BfAGLLHN.js → background-task-actions-CmYMPa2o.js} +1 -1
  28. package/dist/assets/{background-task-detail-panel-DOWj29Ko.js → background-task-detail-panel-KDqjs7i2.js} +1 -1
  29. package/dist/assets/{background-task-store-CN04oS2z.js → background-task-store-DFS8MP5D.js} +1 -1
  30. package/dist/assets/billing-page-Cc5fHBn2.js +3 -0
  31. package/dist/assets/{billing-redirect-page-BsV6cEpx.js → billing-redirect-page-BRcj5q0u.js} +1 -1
  32. package/dist/assets/{bookmarks-page-CPmWAOGH.js → bookmarks-page-fFnFzh4F.js} +1 -1
  33. package/dist/assets/{browser-DtFBB5v5.js → browser-CNL8hh8H.js} +2 -2
  34. package/dist/assets/{build-state-DoiXhrgx.js → build-state-WR9nlRgM.js} +1 -1
  35. package/dist/assets/{capture-error-CqtAGHQu.js → capture-error-Bj8_eutd.js} +1 -1
  36. package/dist/assets/{channels-page-route-BBwlgesO.js → channels-page-route-wxREzs6W.js} +1 -1
  37. package/dist/assets/{chat-avatar-C7xsXP27.js → chat-avatar-DIDq1Jt5.js} +1 -1
  38. package/dist/assets/{chat-layout-slots-store-C325hn1X.js → chat-layout-slots-store-C2IFeZFr.js} +1 -1
  39. package/dist/assets/{chat-markdown-message-C2uQyAXa.js → chat-markdown-message-ERK48E1Z.js} +2 -2
  40. package/dist/assets/{checkbox-BZTUJtxM.js → checkbox-BY0BDJjm.js} +1 -1
  41. package/dist/assets/{client-feature-flag-store-DR6pLmyc.js → client-feature-flag-store-oTfL8Oiz.js} +1 -1
  42. package/dist/assets/{client-identity-ChGFRQsv.js → client-identity-BS5mQsaQ.js} +1 -1
  43. package/dist/assets/{command-palette-CYwgr9BF.js → command-palette-CsRPcIM-.js} +1 -1
  44. package/dist/assets/{command-palette-window-page-ByOPmEAV.js → command-palette-window-page-BzQ_oDaq.js} +1 -1
  45. package/dist/assets/{community-page-D7FDDkdu.js → community-page-mlhk4LsN.js} +1 -1
  46. package/dist/assets/{confirm-dialog-DZX6LhLy.js → confirm-dialog-UYFm4osC.js} +1 -1
  47. package/dist/assets/{connect-page-BXelaj8V.js → connect-page-PuRyFup0.js} +1 -1
  48. package/dist/assets/consent-DbD2Hcbf.js +1 -0
  49. package/dist/assets/{consent-controls-DoUmeaFm.js → consent-controls-BOFoWAYO.js} +1 -1
  50. package/dist/assets/{contacts-gateway-BI9Ok4O5.js → contacts-gateway-C5OljhCC.js} +1 -1
  51. package/dist/assets/{contacts-page-route-C2cmfHU4.js → contacts-page-route-VBlklzVL.js} +1 -1
  52. package/dist/assets/{conversation-cache-irOw8vtk.js → conversation-cache-CqCkWHT6.js} +1 -1
  53. package/dist/assets/{conversation-list-fetchers-CeiuJYcE.js → conversation-list-fetchers-D84gJs6f.js} +1 -1
  54. package/dist/assets/{conversation-navigation-DUNqTEXk.js → conversation-navigation-Wm7_pLFs.js} +1 -1
  55. package/dist/assets/{conversation-queries-Bo-ZW6ul.js → conversation-queries-Ba_1sW5M.js} +1 -1
  56. package/dist/assets/{conversation-store-C0tvFESx.js → conversation-store-bshB7nDP.js} +1 -1
  57. package/dist/assets/{credential-entry-page-Dt_0bNAT.js → credential-entry-page-Bfrl1sD_.js} +1 -1
  58. package/dist/assets/{credentials-page-BDfP4yY4.js → credentials-page-B-AJyMvk.js} +1 -1
  59. package/dist/assets/{danger-zone-redirect-page-CpEYg1lA.js → danger-zone-redirect-page-DKfrmf_o.js} +1 -1
  60. package/dist/assets/{debug-page-Bh4VqdzS.js → debug-page-DWEIExMH.js} +2 -2
  61. package/dist/assets/{deploy-dialogs-D_AQFfc0.js → deploy-dialogs-BNMcZzII.js} +1 -1
  62. package/dist/assets/{deploy-store-Co5K25DO.js → deploy-store-CxnShfQj.js} +1 -1
  63. package/dist/assets/{detail-card-BKbhBGhy.js → detail-card-CwtjhGfi.js} +1 -1
  64. package/dist/assets/{detail-panel-stop-button-C-Y-hevf.js → detail-panel-stop-button-C1rystDS.js} +1 -1
  65. package/dist/assets/{detail-shell-BW-7Q0R6.js → detail-shell-DcNnOqM_.js} +1 -1
  66. package/dist/assets/{developer-page-tydL_eOW.js → developer-page-Bu7HBiPJ.js} +1 -1
  67. package/dist/assets/{devices-redirect-page-7yfm7RVK.js → devices-redirect-page-Cvt_H5ig.js} +1 -1
  68. package/dist/assets/{diagnostics-C1vLQi8c.js → diagnostics-Dva51gYK.js} +1 -1
  69. package/dist/assets/{dictation-overlay-page-BM_PPlmh.js → dictation-overlay-page-zpoNqudq.js} +1 -1
  70. package/dist/assets/{dictation-overlay-w1YHEfFR.js → dictation-overlay-pePw7mLd.js} +1 -1
  71. package/dist/assets/{dist-BswnB-bR.js → dist-DC9QooLF.js} +1 -1
  72. package/dist/assets/{dist-CQN0ZAOZ.js → dist-oCfq2a_n.js} +1 -1
  73. package/dist/assets/{document-viewer-container-Do8yUakJ.js → document-viewer-container-Cl4jDmfx.js} +2 -2
  74. package/dist/assets/{document-viewer-page-BzM3ABt9.js → document-viewer-page-kV6TCXu0.js} +1 -1
  75. package/dist/assets/{edge-swipe-arbiter-store-D9XJTxJJ.js → edge-swipe-arbiter-store-DyemvsR-.js} +1 -1
  76. package/dist/assets/effective-timezone-qiooajmO.js +1 -0
  77. package/dist/assets/{emails-page-Cn56Zrp2.js → emails-page-D9E3uXkG.js} +1 -1
  78. package/dist/assets/{environment-store-BXSWXdjm.js → environment-store-BFVmN-OW.js} +1 -1
  79. package/dist/assets/esm-BQjZqfJZ.js +2 -0
  80. package/dist/assets/esm-BTyZM-kf.js +2 -0
  81. package/dist/assets/esm-BWFeAIOX.js +2 -0
  82. package/dist/assets/{esm-DCA3xHJS.js → esm-C6-ZMSya.js} +2 -2
  83. package/dist/assets/esm-CDPcGg-B.js +2 -0
  84. package/dist/assets/esm-DEY-lP80.js +1 -0
  85. package/dist/assets/esm-DKdDWqsF.js +2 -0
  86. package/dist/assets/{eye-bbox-vHbpD-XX.js → eye-bbox-DXmmg9ML.js} +1 -1
  87. package/dist/assets/{file-editor-AqFGpEiG.js → file-editor-DpNdd7HZ.js} +1 -1
  88. package/dist/assets/{file-markdown-Dz0E8JCw.js → file-markdown-CLmQTpqL.js} +1 -1
  89. package/dist/assets/{first-run-scope-vr9PkCPF.js → first-run-scope-BoT9LMYw.js} +1 -1
  90. package/dist/assets/{funnel-events-wLEIhAS6.js → funnel-events-CK938pi2.js} +1 -1
  91. package/dist/assets/general-page-DpKVqj5t.js +1 -0
  92. package/dist/assets/{get-memory-stats-B9qL5lJg.js → get-memory-stats-ERcqnC0Q.js} +1 -1
  93. package/dist/assets/{haptics-BOyIPZDm.js → haptics-D9eNTUq-.js} +2 -2
  94. package/dist/assets/{hatching-screen-DKqcfIqT.js → hatching-screen-d3SWqFKY.js} +1 -1
  95. package/dist/assets/{home-page-route-4LoUJVyf.js → home-page-route-BOCisuYY.js} +1 -1
  96. package/dist/assets/{hosting-screen-ChxMs5SE.js → hosting-screen-6xIW6q02.js} +1 -1
  97. package/dist/assets/{identity-page-route-BZv_8gEN.js → identity-page-route-qWwRSRld.js} +1 -1
  98. package/dist/assets/index-B0l9Wjpj.css +2 -0
  99. package/dist/assets/{index-4G2A642F.js → index-BOC87TAq.js} +3 -3
  100. package/dist/assets/{ingest-JAa1OGej.js → ingest-DGkxw0Go.js} +1 -1
  101. package/dist/assets/{inspect-page-D6BmfgaE.js → inspect-page-CRBfQ5WU.js} +3 -3
  102. package/dist/assets/{installed-plugins-query-BARnE4gA.js → installed-plugins-query-C29LGAEV.js} +1 -1
  103. package/dist/assets/{integration-icon-B5V_-Cwm.js → integration-icon-Dvjn3ytY.js} +1 -1
  104. package/dist/assets/{integrations-page-CiKJbgld.js → integrations-page-D5KWY6v-.js} +1 -1
  105. package/dist/assets/{intelligence-layout-iZMnS_UR.js → intelligence-layout-DP9zklR6.js} +1 -1
  106. package/dist/assets/{invalidate-plugin-queries-QIHve9na.js → invalidate-plugin-queries-DamxiwYv.js} +1 -1
  107. package/dist/assets/{keyboard-shortcuts-redirect-page-Bj55BTMo.js → keyboard-shortcuts-redirect-page--bCvhp62.js} +1 -1
  108. package/dist/assets/{latest-assistant-text-BjCANctw.js → latest-assistant-text-D5WR-o6J.js} +1 -1
  109. package/dist/assets/{library-detail-page-rAKEZjAC.js → library-detail-page-pviljaQw.js} +1 -1
  110. package/dist/assets/{library-page-DLXws76z.js → library-page-CYYuLywk.js} +1 -1
  111. package/dist/assets/{list-row-MeHwwyA6.js → list-row-B1wPb2Au.js} +1 -1
  112. package/dist/assets/{local-mode-CTrmCbAp.js → local-mode-Ckii2tmN.js} +1 -1
  113. package/dist/assets/{local-runtime-upgrade-DhywiNJj.js → local-runtime-upgrade-BggVMXfW.js} +1 -1
  114. package/dist/assets/{login-flow-GvzsqmPU.js → login-flow-BCNBNLzu.js} +1 -1
  115. package/dist/assets/{login-page-BpyN5i3N.js → login-page-DdHXGGAt.js} +1 -1
  116. package/dist/assets/{logout-page-BYTvA7jR.js → logout-page-DjihP6Qk.js} +1 -1
  117. package/dist/assets/{logs-layout-CAsT7PSA.js → logs-layout-C84-h0Hn.js} +1 -1
  118. package/dist/assets/{memory-page-route-Ct0vQuTQ.js → memory-page-route-dGWTWCWF.js} +1 -1
  119. package/dist/assets/{memory-router-playground-page-Dw5KRcud.js → memory-router-playground-page-CjUiz_bH.js} +1 -1
  120. package/dist/assets/{menu-CKZtG-s_.js → menu-BvjhxZo7.js} +1 -1
  121. package/dist/assets/{messages-DR9NaU6I.js → messages-Dl5_cjD9.js} +1 -1
  122. package/dist/assets/{metric-card-BGMRvm8T.js → metric-card-CkAD9RpC.js} +1 -1
  123. package/dist/assets/{mobile-sidebar-drawer-Dwe3U09O.js → mobile-sidebar-drawer-CbJ5JfXT.js} +1 -1
  124. package/dist/assets/{modal-DwsThLGg.js → modal-BR4CUFBd.js} +1 -1
  125. package/dist/assets/mutation-error-CwYvaYnb.js +1 -0
  126. package/dist/assets/native-anchor-CVNubOIm.js +1 -0
  127. package/dist/assets/{native-biometric-BBZbTKi0.js → native-biometric-CntdlaL-.js} +1 -1
  128. package/dist/assets/{native-file-fkzAxQg0.js → native-file-B6_oAU2Q.js} +2 -2
  129. package/dist/assets/{not-found-BAcyD9Pu.js → not-found-DV3iLBwm.js} +1 -1
  130. package/dist/assets/{notice-DCp7WO3L.js → notice-BMK7xqUw.js} +1 -1
  131. package/dist/assets/{notifications-page-DzAAMGmB.js → notifications-page-B9vnqyB1.js} +1 -1
  132. package/dist/assets/{oauth-complete-page-pSE2ePnC.js → oauth-complete-page-BSxiDbQm.js} +1 -1
  133. package/dist/assets/{oauth-connection-utils-U3iVzpfJ.js → oauth-connection-utils-DbcihBL8.js} +1 -1
  134. package/dist/assets/{oauth-popup-complete-page-D4Uc4M6G.js → oauth-popup-complete-page-CyYbqLoK.js} +1 -1
  135. package/dist/assets/{onboarding-layout-1lVX8db0.js → onboarding-layout-Dd5fPfE7.js} +1 -1
  136. package/dist/assets/{onboarding-store-hpvNtD3A.js → onboarding-store-DutUn1E3.js} +1 -1
  137. package/dist/assets/open-workspace-file-CpveqBim.js +2 -0
  138. package/dist/assets/{page-empty-state-BOJLN0oo.js → page-empty-state-BA3_YQN2.js} +1 -1
  139. package/dist/assets/{page-shell-CdgW9nzA.js → page-shell-_QxBKTK3.js} +1 -1
  140. package/dist/assets/{pairing-page-KqVmsFUh.js → pairing-page-DPfIgf3F.js} +1 -1
  141. package/dist/assets/{panel-item-ldBYDDDs.js → panel-item-CrtoJCrd.js} +1 -1
  142. package/dist/assets/{password-reset-page-CMaCRCUO.js → password-reset-page-D55bGMVy.js} +1 -1
  143. package/dist/assets/{personality-page-Dt5aGp-e.js → personality-page-fJJd-i4s.js} +1 -1
  144. package/dist/assets/plans-page-C-JyEPT_.js +1 -0
  145. package/dist/assets/{platform-detection-DOh3jMAT.js → platform-detection-CMiRPRCq.js} +1 -1
  146. package/dist/assets/{platform-login-notice-LOYoqOMf.js → platform-login-notice-BG9TFAJa.js} +1 -1
  147. package/dist/assets/{platform-loopback-page-BscTnDN8.js → platform-loopback-page-DunGLusR.js} +1 -1
  148. package/dist/assets/{plugin-detail-page-rtP8WprQ.js → plugin-detail-page-BngHrN8T.js} +1 -1
  149. package/dist/assets/{plugins-page-BlLCo_51.js → plugins-page-DD0t1_pE.js} +1 -1
  150. package/dist/assets/plugins-surface-D4i2vqBz.js +1 -0
  151. package/dist/assets/{popover-BFL-uOLh.js → popover-BRpYVASI.js} +1 -1
  152. package/dist/assets/{prefs-B2UAscQt.js → prefs-BZnS5vR_.js} +1 -1
  153. package/dist/assets/{privacy-page-DIfDx43s.js → privacy-page-nZvfh3dh.js} +1 -1
  154. package/dist/assets/{privacy-screen-CT2vDIPL.js → privacy-screen-D2aDT6E6.js} +1 -1
  155. package/dist/assets/{provider-callback-page-CBhBrIAp.js → provider-callback-page-BwANEd-K.js} +1 -1
  156. package/dist/assets/{provider-key-BoyxWMGQ.js → provider-key-B3R8SlMJ.js} +1 -1
  157. package/dist/assets/{provider-signup-page-MRdEILUW.js → provider-signup-page-Cz2DP-jP.js} +1 -1
  158. package/dist/assets/{quick-input-page-ZAHDIH7x.js → quick-input-page-CF2MJnCE.js} +1 -1
  159. package/dist/assets/{react-query.gen-oEdI--ip.js → react-query.gen-Mwd5l-vZ.js} +1 -1
  160. package/dist/assets/{react-query.gen-CbsPBjd9.js → react-query.gen-r3I6j8-1.js} +1 -1
  161. package/dist/assets/{remote-gateway-session-DAfJAELv.js → remote-gateway-session-BHjZ9gQ6.js} +1 -1
  162. package/dist/assets/{research-facts-e-0TmtJP.js → research-facts-UIXXE8D6.js} +1 -1
  163. package/dist/assets/{research-mock-page-DTTf0zfR.js → research-mock-page-DnbQpZcp.js} +1 -1
  164. package/dist/assets/{research-onboarding-persistence-BN6g1lF7.js → research-onboarding-persistence-CceFfAqE.js} +1 -1
  165. package/dist/assets/{research-onboarding-route-xdBEvVjC.js → research-onboarding-route-yg2iKw6i.js} +1 -1
  166. package/dist/assets/{research-results-view-DhHY5ZPj.js → research-results-view-CxhTn2J7.js} +1 -1
  167. package/dist/assets/{resolved-assistants-store-PdwcxGwN.js → resolved-assistants-store-C-PdxK8f.js} +1 -1
  168. package/dist/assets/{retire-confirm-dialog-BF8nORxR.js → retire-confirm-dialog--eF_pXhA.js} +1 -1
  169. package/dist/assets/{review-terms-screen-DWW0H6gs.js → review-terms-screen-Dpk-gyJE.js} +1 -1
  170. package/dist/assets/{risk-DXfbjxrL.js → risk-C_bbPQPd.js} +1 -1
  171. package/dist/assets/{routes-C3xPjNWF.js → routes-BBFM42ft.js} +11 -11
  172. package/dist/assets/{routes-bwxCYLJj.js → routes-vE-2hncW.js} +1 -1
  173. package/dist/assets/{runtime-upgrade-banner-Dlp0eQiE.js → runtime-upgrade-banner-DQI-l3Yc.js} +2 -2
  174. package/dist/assets/{schedules-o0jcCr54.js → schedules-DF5cTXBf.js} +1 -1
  175. package/dist/assets/{schedules-page-BCofuXAr.js → schedules-page-Dgu-znOf.js} +1 -1
  176. package/dist/assets/{sdk.gen-C6q_cviY.js → sdk.gen-BIu1DgTs.js} +1 -1
  177. package/dist/assets/{security-redirect-page-B_ci75cb.js → security-redirect-page-BEohiPDW.js} +1 -1
  178. package/dist/assets/{select-assistant-screen-g68FASxq.js → select-assistant-screen-C2q8wO2f.js} +1 -1
  179. package/dist/assets/{setting-row-CxQBrD8s.js → setting-row-0LXvW7Kh.js} +1 -1
  180. package/dist/assets/{settings-divider-ORJowxpl.js → settings-divider-CXIrJieH.js} +1 -1
  181. package/dist/assets/{settings-layout-DvMiWCPp.js → settings-layout-b7iBWIT-.js} +1 -1
  182. package/dist/assets/settings-navigation-BGdjm0Ki.js +1 -0
  183. package/dist/assets/{share-feedback-modal-BlqdxyC5.js → share-feedback-modal-B05-nKgu.js} +1 -1
  184. package/dist/assets/{sidebar-tree-DtsphGOt.js → sidebar-tree-ByF78JHW.js} +1 -1
  185. package/dist/assets/{signup-page-B-9iClzh.js → signup-page-CGauGszD.js} +1 -1
  186. package/dist/assets/{signup-shell-CS8qe8J1.js → signup-shell-Bw6r9tWP.js} +1 -1
  187. package/dist/assets/{site-favicon-BwdB2A7_.js → site-favicon-CCyX9r-Z.js} +1 -1
  188. package/dist/assets/{skill-detail-page-RlOqtrxz.js → skill-detail-page-GlV5JRzQ.js} +1 -1
  189. package/dist/assets/{skill-detail-panel-72NTcSvY.js → skill-detail-panel-crqCBZbU.js} +1 -1
  190. package/dist/assets/{skills-CS48H_5g.js → skills-C1CAcW7T.js} +1 -1
  191. package/dist/assets/{skills-page-B5c4S__U.js → skills-page-BikP-AR7.js} +1 -1
  192. package/dist/assets/{slack-setup-wizard-DyLOaNeb.js → slack-setup-wizard-DKj1_XdA.js} +1 -1
  193. package/dist/assets/{cpu-eUAdrpWb.js → sliders-horizontal-slneqAyY.js} +1 -1
  194. package/dist/assets/{sound-manager-BkU9w22u.js → sound-manager-xEbUgFv-.js} +1 -1
  195. package/dist/assets/{sounds-page-B_VfIF_f.js → sounds-page-9_otQ97S.js} +1 -1
  196. package/dist/assets/{src-B9F84D64.js → src-D89CNeuT.js} +1 -1
  197. package/dist/assets/{start-screen-BzchtmN4.js → start-screen-DSF3melT.js} +1 -1
  198. package/dist/assets/{stream-watchdog-LwK1DR5Q.js → stream-watchdog-BafbDdX9.js} +1 -1
  199. package/dist/assets/{subagent-detail-panel-CnkzZsGz.js → subagent-detail-panel-q0g4JWAX.js} +1 -1
  200. package/dist/assets/{subagent-store-CM0X7ol2.js → subagent-store-D-GPthdC.js} +1 -1
  201. package/dist/assets/{superpowers-page-D0T5rLBb.js → superpowers-page-UgdWFWsF.js} +1 -1
  202. package/dist/assets/{system-events-page-9lCNzX-7.js → system-events-page-Bw94HLwx.js} +1 -1
  203. package/dist/assets/{system-events-redirect-page-AHa_MARa.js → system-events-redirect-page-BGZQC8-K.js} +1 -1
  204. package/dist/assets/{tag-D8NAGb0r.js → tag-NXcyiTkK.js} +1 -1
  205. package/dist/assets/{theme-stage-page-CntGqJIW.js → theme-stage-page-bEZxHTyN.js} +1 -1
  206. package/dist/assets/{threshold-presets-ti1ttrv3.js → threshold-presets-BO8En2q0.js} +1 -1
  207. package/dist/assets/{tiptap-document-editor-BOuerIA1.js → tiptap-document-editor-CyY1HRzV.js} +1 -1
  208. package/dist/assets/{toast-DR7D7Uma.js → toast-LgLp4obE.js} +1 -1
  209. package/dist/assets/{tool-detail-panel-B6-P-pe0.js → tool-detail-panel-DFMOphDJ.js} +1 -1
  210. package/dist/assets/{transcript-message-body-shared-CQwPiuDN.js → transcript-message-body-shared-nWAkSzar.js} +1 -1
  211. package/dist/assets/{trust-rules-api-lD2Ni46I.js → trust-rules-api-C0-hkXT2.js} +1 -1
  212. package/dist/assets/{upgrade-cancel-page-D0hw2jKj.js → upgrade-cancel-page-DwxI6NLL.js} +1 -1
  213. package/dist/assets/{upgrade-success-page-CmEZ39Sn.js → upgrade-success-page-SO92J-Rf.js} +1 -1
  214. package/dist/assets/{usage-redirect-page-Cq2M7ii4.js → usage-redirect-page-BJBkecYr.js} +1 -1
  215. package/dist/assets/{use-active-assistant-id-BcM35kFN.js → use-active-assistant-id-Cjbsk2Q3.js} +1 -1
  216. package/dist/assets/{use-app-theme-DVqzJFH6.js → use-app-theme-Q42fO5Nz.js} +1 -1
  217. package/dist/assets/{use-assistant-avatar-DpMH3A_7.js → use-assistant-avatar-DSu2_Mzi.js} +1 -1
  218. package/dist/assets/{use-assistant-capability-DkGxxxTG.js → use-assistant-capability-gxe56K48.js} +1 -1
  219. package/dist/assets/{use-assistant-identity-details-CN_tizo0.js → use-assistant-identity-details-CpHkzjrI.js} +1 -1
  220. package/dist/assets/{use-avatar-accent-var-C4DSU-BO.js → use-avatar-accent-var-PV9tsBJj.js} +1 -1
  221. package/dist/assets/{use-bookmarks-DzswOt-6.js → use-bookmarks-BbJtKyHe.js} +1 -1
  222. package/dist/assets/{use-bundled-avatar-components-IQw2k8-g.js → use-bundled-avatar-components-Gp_YaD6o.js} +2 -2
  223. package/dist/assets/{use-bus-subscription-DIENjckU.js → use-bus-subscription-Cu4Y9DQi.js} +1 -1
  224. package/dist/assets/use-checkout-dismiss-refresh-kdxxDNpF.js +1 -0
  225. package/dist/assets/{use-command-palette-sections-BFYwWTT8.js → use-command-palette-sections-BWjxkwKB.js} +1 -1
  226. package/dist/assets/{use-discord-nudge-CRU-lEHV.js → use-discord-nudge-C_QdHIeX.js} +1 -1
  227. package/dist/assets/{use-edge-swipe-6PtOzG4E.js → use-edge-swipe-DVeTYbmY.js} +1 -1
  228. package/dist/assets/{use-edge-swipe-back-Y66_jaFR.js → use-edge-swipe-back-DDq-N20h.js} +1 -1
  229. package/dist/assets/{use-edit-app-B3lr2KkA.js → use-edit-app-DfFIonqZ.js} +1 -1
  230. package/dist/assets/{use-effective-timezone-Da7pvXSm.js → use-effective-timezone-LqzBqHBy.js} +1 -1
  231. package/dist/assets/{use-invite-link-dialog-4cPtNBj0.js → use-invite-link-dialog-DX58-LWY.js} +1 -1
  232. package/dist/assets/use-ios-app-nudge-BO8jWfr0.js +1 -0
  233. package/dist/assets/use-is-org-ready-X_98Cnx9.js +1 -0
  234. package/dist/assets/{use-onboarding-login-DWweCRJ-.js → use-onboarding-login-B8rpbSEh.js} +1 -1
  235. package/dist/assets/{use-platform-gate-DcS6snds.js → use-platform-gate-Dry0Nv4f.js} +1 -1
  236. package/dist/assets/{use-reduced-motion-Bv27WKCk.js → use-reduced-motion-Se97jRQ-.js} +1 -1
  237. package/dist/assets/{use-save-twilio-credentials-BDbv1FdS.js → use-save-twilio-credentials-CUQ6gdIj.js} +1 -1
  238. package/dist/assets/{use-skill-actions-C34mG6kK.js → use-skill-actions-DgK7Nmt1.js} +1 -1
  239. package/dist/assets/{use-skill-detail-files-M-YjNd2c.js → use-skill-detail-files-_v4zUF6S.js} +1 -1
  240. package/dist/assets/use-sticky-profiles-B0zVD3uk.js +1 -0
  241. package/dist/assets/{use-subagent-card-data-CmbaKWII.js → use-subagent-card-data-YbAN73Fw.js} +1 -1
  242. package/dist/assets/{use-supports-bookmarks-CJC-T2ro.js → use-supports-bookmarks-C3J7FtDn.js} +1 -1
  243. package/dist/assets/{use-swipe-engine-RAFE-Hrf.js → use-swipe-engine-DRvffOuu.js} +1 -1
  244. package/dist/assets/{utils-DW4oHJu6.js → utils-BtC1KiH4.js} +1 -1
  245. package/dist/assets/{utils-CrvvcikL.js → utils-CnB60ZJN.js} +1 -1
  246. package/dist/assets/{viewer-store-CLSpfTlZ.js → viewer-store-BDpZVbcr.js} +1 -1
  247. package/dist/assets/{voice-list-woCTax9H.js → voice-list-DJeZeHuA.js} +1 -1
  248. package/dist/assets/{voice-page-BDjuMuY8.js → voice-page-DQcyxaPl.js} +1 -1
  249. package/dist/assets/{voice-picker-modal-BiCmmLJz.js → voice-picker-modal-BXMvQihh.js} +1 -1
  250. package/dist/assets/{weather-forecast-display-D5OkfHyL.js → weather-forecast-display-D2sn4QD4.js} +1 -1
  251. package/dist/assets/{web-BMLENaxE.js → web-7I6Bn0iP.js} +1 -1
  252. package/dist/assets/{web-BK2xLXXm.js → web-BE7l06mM.js} +1 -1
  253. package/dist/assets/{web-BLJkVZnq.js → web-BEpNr5_U.js} +1 -1
  254. package/dist/assets/{web-Cc4zhBG7.js → web-BPyURh2Z.js} +1 -1
  255. package/dist/assets/{web-D6tBOv21.js → web-Bj8XUknF.js} +1 -1
  256. package/dist/assets/{web-Cimwq57E.js → web-CBluPLFP.js} +1 -1
  257. package/dist/assets/{web-C4ApmvCw.js → web-Cmg3AbZk.js} +1 -1
  258. package/dist/assets/{web-BQLS3-Jp.js → web-DHVjLzid.js} +1 -1
  259. package/dist/assets/{welcome-screen-BTmdDQ8q.js → welcome-screen-n-cGiojh.js} +1 -1
  260. package/dist/assets/{workflow-detail-panel-BigYPr9m.js → workflow-detail-panel-Cq3AwWXE.js} +1 -1
  261. package/dist/assets/{workflow-store-B-5tSUVD.js → workflow-store-QV5aMjTt.js} +1 -1
  262. package/dist/assets/{workspace-page-D1Ds9_ey.js → workspace-page-CL9z2Jrs.js} +1 -1
  263. package/dist/index.html +228 -229
  264. package/package.json +1 -1
  265. package/dist/assets/access-DFmdmMm5.js +0 -1
  266. package/dist/assets/ai-page-_F_gn-vY.js +0 -1
  267. package/dist/assets/assistant-identity-store-RThYdwnA.js +0 -1
  268. package/dist/assets/avatar-svg-compositor-CgyK5D40.js +0 -1
  269. package/dist/assets/billing-page-D1vuR7wJ.js +0 -3
  270. package/dist/assets/consent-Bkslj0yQ.js +0 -1
  271. package/dist/assets/crown-DTdTkF6n.js +0 -1
  272. package/dist/assets/effective-timezone-CnKC3vj0.js +0 -1
  273. package/dist/assets/esm-CBsKAtYP.js +0 -2
  274. package/dist/assets/esm-CkAk1b7M.js +0 -1
  275. package/dist/assets/esm-DVuEArjY.js +0 -2
  276. package/dist/assets/esm-LrelsjXA.js +0 -2
  277. package/dist/assets/esm-NJgNz35U.js +0 -2
  278. package/dist/assets/esm-PbRZjFG7.js +0 -2
  279. package/dist/assets/general-page-CVLpYzRN.js +0 -1
  280. package/dist/assets/index-_3FdgMgw.css +0 -2
  281. package/dist/assets/mutation-error--1w2EbUT.js +0 -1
  282. package/dist/assets/native-anchor-DtMEHD4d.js +0 -1
  283. package/dist/assets/open-workspace-file-C0ZDhKxD.js +0 -2
  284. package/dist/assets/plans-page-B0jfFMS-.js +0 -1
  285. package/dist/assets/plugins-surface-C6q5ZBC0.js +0 -1
  286. package/dist/assets/settings-navigation-DCqMil0c.js +0 -1
  287. package/dist/assets/sliders-horizontal-D5dtNWk8.js +0 -1
  288. package/dist/assets/use-checkout-dismiss-refresh-DRknWbR3.js +0 -1
  289. package/dist/assets/use-ios-app-nudge-BV5eX4Fv.js +0 -1
  290. package/dist/assets/use-is-org-ready-DryM43xt.js +0 -1
  291. package/dist/assets/use-sticky-profiles-CostDY59.js +0 -1
  292. /package/dist/assets/{Combination-C7TWRLS7.js → Combination-CkAMwkbS.js} +0 -0
  293. /package/dist/assets/{api-errors-BRGPPSWw.js → api-errors-CFiCT7Ap.js} +0 -0
  294. /package/dist/assets/{app-types-DSkgEmV3.js → app-types-CBg2__YH.js} +0 -0
  295. /package/dist/assets/{apple-logo-BaqMf8q6.js → apple-logo-poQac1tY.js} +0 -0
  296. /package/dist/assets/{avatar-bundled-components-CTd294ra.js → avatar-bundled-components-CecbESCk.js} +0 -0
  297. /package/dist/assets/{avatar-subagent-BpXST4nO.js → avatar-subagent-C9WTTUjI.js} +0 -0
  298. /package/dist/assets/{avatar-tone-4L7foPzW.js → avatar-tone-CMoWR2JX.js} +0 -0
  299. /package/dist/assets/{browser-timezone-DGz-HvxU.js → browser-timezone-C_0jBUid.js} +0 -0
  300. /package/dist/assets/{build.umd-DlzJAHJ4.js → build.umd-59c0EvgO.js} +0 -0
  301. /package/dist/assets/{by-tool-use-id-index-DcsiqOhc.js → by-tool-use-id-index-aoRP6d51.js} +0 -0
  302. /package/dist/assets/{chat-BIJEFb5u.js → chat-BrL0k2UY.js} +0 -0
  303. /package/dist/assets/{client.gen-Dq2brHDV.js → client.gen-CV05d-kw.js} +0 -0
  304. /package/dist/assets/{conversation-selection-Cx6Axfzb.js → conversation-selection-3EKkKt0G.js} +0 -0
  305. /package/dist/assets/{create-selectors-B-P03-8K.js → create-selectors-Qo7kcikX.js} +0 -0
  306. /package/dist/assets/{definitions-MzBHgkRs.js → definitions-OhJf_HMS.js} +0 -0
  307. /package/dist/assets/{definitions-quuEj_td.js → definitions-PikNVFdS.js} +0 -0
  308. /package/dist/assets/{dices-FpUbVcWW.js → dices-DcuIF52A.js} +0 -0
  309. /package/dist/assets/{dist-BJSu8g5P.js → dist-BwAT3VYQ.js} +0 -0
  310. /package/dist/assets/{dist-CKLJHt4Z.js → dist-CaYJ736y.js} +0 -0
  311. /package/dist/assets/{dist-BKxs5XmY.js → dist-jXSU-ejH.js} +0 -0
  312. /package/dist/assets/{domains-BwT1h2fD.js → domains-DWRzNRJy.js} +0 -0
  313. /package/dist/assets/{download-BBg2iaa4.js → download-CywcQLB2.js} +0 -0
  314. /package/dist/assets/{dropdown-Dt0Iof85.js → dropdown-BCfnSdIZ.js} +0 -0
  315. /package/dist/assets/{edit-chat-session-BVmK2sam.js → edit-chat-session-yPtopwB6.js} +0 -0
  316. /package/dist/assets/{ellipsis-BRJI5_P1.js → ellipsis-DnoqTkj4.js} +0 -0
  317. /package/dist/assets/{emoji-catalog-data-BCc1YNMR.js → emoji-catalog-data-COLzb2Wj.js} +0 -0
  318. /package/dist/assets/{event-bus-D2jlU6rm.js → event-bus-DSxmBYhD.js} +0 -0
  319. /package/dist/assets/{external-link-CAce-RVu.js → external-link-CS0aVYGt.js} +0 -0
  320. /package/dist/assets/{external-urls-HAW1JmbX.js → external-urls-BYwuIdYk.js} +0 -0
  321. /package/dist/assets/{eye-DTyDWiqu.js → eye-BMVGQXHT.js} +0 -0
  322. /package/dist/assets/{eye-off-fuOP4Lij.js → eye-off-Jdx8qkOK.js} +0 -0
  323. /package/dist/assets/{feature-flag-catalog-C45bOtg3.js → feature-flag-catalog-BAyJlRMY.js} +0 -0
  324. /package/dist/assets/{file-CNougInA.js → file-Ddp9Dqgl.js} +0 -0
  325. /package/dist/assets/{file-code-DD3K2kve.js → file-code-BDHws4Dk.js} +0 -0
  326. /package/dist/assets/{file-plus-Dq2xo7Ic.js → file-plus-C3SBA8ll.js} +0 -0
  327. /package/dist/assets/{file-text-BCsUYVEF.js → file-text-Br730Q4B.js} +0 -0
  328. /package/dist/assets/{folder-Dgxb-gKb.js → folder-DF8nFp7N.js} +0 -0
  329. /package/dist/assets/{folder-open-CAb0DLYq.js → folder-open-Nlg0OphT.js} +0 -0
  330. /package/dist/assets/{format-date-C5pKGCAG.js → format-date-RZ9mCDCy.js} +0 -0
  331. /package/dist/assets/{format-file-size-Btq3aJL3.js → format-file-size-CQaPE33p.js} +0 -0
  332. /package/dist/assets/{globe-CEgs-yoc.js → globe-CMtjL_s_.js} +0 -0
  333. /package/dist/assets/{hard-drive-dYuXAWBE.js → hard-drive-DWFPKcXI.js} +0 -0
  334. /package/dist/assets/{hard-navigate-V2EFapkk.js → hard-navigate-DZlpL1No.js} +0 -0
  335. /package/dist/assets/{heart-BqO0KKAc.js → heart-789ajxtB.js} +0 -0
  336. /package/dist/assets/{impersonate-version-flag-QIrc9g5I.js → impersonate-version-flag-4Ki_3iKD.js} +0 -0
  337. /package/dist/assets/{inbox-DXYIwUrn.js → inbox-B6TknLsk.js} +0 -0
  338. /package/dist/assets/{info-CYiVdnQV.js → info-vgPTIsGI.js} +0 -0
  339. /package/dist/assets/{input-C-GkeWCw.js → input-hw3el2GJ.js} +0 -0
  340. /package/dist/assets/{is-electron-7N7iyz1y.js → is-electron-m5eeGBnd.js} +0 -0
  341. /package/dist/assets/{key-round-CSc3w5ka.js → key-round-0Zop_GsZ.js} +0 -0
  342. /package/dist/assets/{laptop-ByoaxLxg.js → laptop-DSZhU52i.js} +0 -0
  343. /package/dist/assets/{layout-grid-PPpVK0nJ.js → layout-grid-DA_CfD6d.js} +0 -0
  344. /package/dist/assets/{link-2-BMNZFfWH.js → link-2-BKL8QWRX.js} +0 -0
  345. /package/dist/assets/{link-CowyzCIZ.js → link-BfUb7cwC.js} +0 -0
  346. /package/dist/assets/{link-click-DLYgWZdo.js → link-click-BoSQACXo.js} +0 -0
  347. /package/dist/assets/{list-CDyb1CGV.js → list-DNbTcxAh.js} +0 -0
  348. /package/dist/assets/{loader-circle-BzJ2kz3F.js → loader-circle-XREx3i4W.js} +0 -0
  349. /package/dist/assets/{log-in-Bhye1kwc.js → log-in-CqVJRYe-.js} +0 -0
  350. /package/dist/assets/{log-out-BLE632qu.js → log-out-B4hsBWnk.js} +0 -0
  351. /package/dist/assets/{machine-sizes-Cu2Qa0bd.js → machine-sizes-DAflIPTM.js} +0 -0
  352. /package/dist/assets/{mail-DABv3_Ue.js → mail-CMdPNysl.js} +0 -0
  353. /package/dist/assets/{message-circle-gk_DFUIg.js → message-circle-BsH7vHtN.js} +0 -0
  354. /package/dist/assets/{message-square-zCNXaHYX.js → message-square-CQGiY4zk.js} +0 -0
  355. /package/dist/assets/{message-square-text-asdoy3SW.js → message-square-text-D0Q7W58R.js} +0 -0
  356. /package/dist/assets/{mic-DZrWtAAu.js → mic-xmDFUbCL.js} +0 -0
  357. /package/dist/assets/{minimize-2-BR0ed4mI.js → minimize-2-CaXsUqSp.js} +0 -0
  358. /package/dist/assets/{misc-CAQM4FGM.js → misc-DckBb5zz.js} +0 -0
  359. /package/dist/assets/{monitor-B5vtTCxm.js → monitor-B1y28fS1.js} +0 -0
  360. /package/dist/assets/{moon-DSdti3GO.js → moon-BJzODLTY.js} +0 -0
  361. /package/dist/assets/{native-deep-link-D4jZANvf.js → native-deep-link-PvbVHiPM.js} +0 -0
  362. /package/dist/assets/{oauth-popup-Bru0o3W0.js → oauth-popup-DZEqljdC.js} +0 -0
  363. /package/dist/assets/{onboarding-step-layout-D9rghAjS.js → onboarding-step-layout-CURfuoh4.js} +0 -0
  364. /package/dist/assets/{optimistic-lifecycle-50vNA6dY.js → optimistic-lifecycle-C2a6IJ7E.js} +0 -0
  365. /package/dist/assets/{paperclip-DVE0scjU.js → paperclip-c8Xlrnx4.js} +0 -0
  366. /package/dist/assets/{pdf-DFUISXhq.js → pdf-IQXtc7_x.js} +0 -0
  367. /package/dist/assets/{plugin-attribution-CItr0rSf.js → plugin-attribution-DCFEMRUF.js} +0 -0
  368. /package/dist/assets/{pointer-QlIwQKYH.js → pointer-RLpjGG7A.js} +0 -0
  369. /package/dist/assets/{prechat-EVefdGcO.js → prechat-DIuViPZk.js} +0 -0
  370. /package/dist/assets/{profile-metadata-D2IzF-q3.js → profile-metadata-h4CTeMKT.js} +0 -0
  371. /package/dist/assets/{progress-bar-CJxkStgF.js → progress-bar-C_T5_pf2.js} +0 -0
  372. /package/dist/assets/{proxy-Ca4nD_gM.js → proxy-RtD8704m.js} +0 -0
  373. /package/dist/assets/{public-asset-CoSMBS62.js → public-asset-CbDDcomC.js} +0 -0
  374. /package/dist/assets/{rotate-ccw-Da_2DvhY.js → rotate-ccw-BjzeX7qz.js} +0 -0
  375. /package/dist/assets/{sandbox-bridge-BhR-nW2z.js → sandbox-bridge-DgDrAWv3.js} +0 -0
  376. /package/dist/assets/{sdk.gen-CsFDyJ6U.js → sdk.gen-BVAVE6A_.js} +0 -0
  377. /package/dist/assets/{sdk.gen-DEFA-6EJ.js → sdk.gen-DPKrJeho.js} +0 -0
  378. /package/dist/assets/{search-DA3TmTuR.js → search-BVW-n8to.js} +0 -0
  379. /package/dist/assets/{semver-Bfq1LtyW.js → semver-BpijV4FQ.js} +0 -0
  380. /package/dist/assets/{send-DHWUIK7G.js → send-Q71Exj3z.js} +0 -0
  381. /package/dist/assets/{shield-check-C7I-REGg.js → shield-check-22NwY9JM.js} +0 -0
  382. /package/dist/assets/{shield-B69p45Kq.js → shield-fzs_emVe.js} +0 -0
  383. /package/dist/assets/{smartphone-BbK6bGuE.js → smartphone-mDNwm_ss.js} +0 -0
  384. /package/dist/assets/{sparkles-DC8kqYjt.js → sparkles-Ccrj7hxd.js} +0 -0
  385. /package/dist/assets/{square-Bn3X6ZlO.js → square-D_e8nR-F.js} +0 -0
  386. /package/dist/assets/{status-badge-pill-wJPMXQk1.js → status-badge-pill-z1OKPW3B.js} +0 -0
  387. /package/dist/assets/{sun-BKEPYS7Q.js → sun-Dw0t1n1O.js} +0 -0
  388. /package/dist/assets/{terminal-Cs_TREv-.js → terminal-CdCI6wMV.js} +0 -0
  389. /package/dist/assets/{theme-preferences-LQuLaIA6.js → theme-preferences-ln8xC5zH.js} +0 -0
  390. /package/dist/assets/{three-dot-indicator-CfjkCgEH.js → three-dot-indicator-SJcKW5cG.js} +0 -0
  391. /package/dist/assets/{toggle-D776PTw-.js → toggle-lfnhEAcN.js} +0 -0
  392. /package/dist/assets/{trash-2-De6X8YiM.js → trash-2-L5LNgw9o.js} +0 -0
  393. /package/dist/assets/{triangle-alert--e3n47gm.js → triangle-alert-CQfiAg_t.js} +0 -0
  394. /package/dist/assets/{typed-storage-zmOSvIeO.js → typed-storage-9Sn8tkE7.js} +0 -0
  395. /package/dist/assets/{use-copy-to-clipboard-O2AZwhGa.js → use-copy-to-clipboard-DBVpNZOl.js} +0 -0
  396. /package/dist/assets/{use-is-mobile-Cx2xnNUx.js → use-is-mobile-Bz2l7wPL.js} +0 -0
  397. /package/dist/assets/{user-Dq9DUxnU.js → user-_zNqL48O.js} +0 -0
  398. /package/dist/assets/{user-plus-CXMJ1x_5.js → user-plus-oiIr9ey8.js} +0 -0
  399. /package/dist/assets/{users-DWDkv8ju.js → users-iLvfYFOP.js} +0 -0
  400. /package/dist/assets/{video-CZnrM0pw.js → video-BcgduiJ6.js} +0 -0
  401. /package/dist/assets/{volume-2-Bj3y3ZBJ.js → volume-2-CvT-JEIl.js} +0 -0
  402. /package/dist/assets/{workflow-DbPANJpf.js → workflow-cWWiPi3K.js} +0 -0
  403. /package/dist/assets/{workflow-status-CgrMMiJT.js → workflow-status-DXdUkbSd.js} +0 -0
  404. /package/dist/assets/{workspace-theme-tokens-bLqHFK0a.js → workspace-theme-tokens-J8dqkK9n.js} +0 -0
  405. /package/dist/assets/{wrench-tjOqvzJ2.js → wrench-0WW0zkkG.js} +0 -0
  406. /package/dist/assets/{x-DuBvjmAE.js → x-JBAsSOmg.js} +0 -0
  407. /package/dist/assets/{xterm-DZ5GcyM-.js → xterm-CdT0HObJ.js} +0 -0
  408. /package/dist/assets/{xterm-addon-fit-SiMU5kXG.js → xterm-addon-fit-CPcVj1i5.js} +0 -0
  409. /package/dist/assets/{zoom-in-BBlu4Gwn.js → zoom-in-CaLYwni-.js} +0 -0
@@ -1 +0,0 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{a as t,c as n,i as r}from"./local-settings-C-dW2vkq.js";import{r as i,t as a}from"./capture-error-CqtAGHQu.js";import{t as o}from"./react-BFJW0bSv.js";import{t as s}from"./button-Dy5001j6.js";import{m as c,u as l}from"./chunk-5KNZJZUH-Bsoom5--.js";import{n as u}from"./QueryClientProvider-CMu7CkQU.js";import{t as d}from"./useQuery-Bz-fbQ-m.js";import{t as f}from"./useMutation-CXGTrp4W.js";import{t as p}from"./jsx-runtime-D3ZM-ToX.js";import{t as m}from"./cn-CJf7MmLX.js";import{t as h}from"./typography-DEI9Ra9z.js";import{t as g}from"./createLucideIcon-CAM1RhH8.js";import{t as _}from"./check-sC49_hjU.js";import{t as v}from"./chevron-down-B5A-0g8A.js";import{t as y}from"./circle-alert-DVCpoZrc.js";import{t as b}from"./circle-check-CjGnAahM.js";import{t as x}from"./clock-BYTc0Ds9.js";import{t as S}from"./crown-DTdTkF6n.js";import{t as C}from"./external-link-CAce-RVu.js";import{t as w}from"./info-CYiVdnQV.js";import{t as T}from"./list-CDyb1CGV.js";import{t as E}from"./loader-circle-BzJ2kz3F.js";import{t as D}from"./search-DA3TmTuR.js";import{t as O}from"./trash-2-De6X8YiM.js";import{t as k}from"./triangle-alert--e3n47gm.js";import{t as A}from"./notice-DCp7WO3L.js";import{j}from"./src-B9F84D64.js";import{t as M}from"./tag-D8NAGb0r.js";import{t as N}from"./popover-BFL-uOLh.js";import{t as P}from"./input-C-GkeWCw.js";import{t as F}from"./toggle-D776PTw-.js";import{t as I}from"./modal-DwsThLGg.js";import{n as L}from"./toast-DR7D7Uma.js";import{t as R}from"./confirm-dialog-DZX6LhLy.js";import{t as z}from"./dropdown-Dt0Iof85.js";import{$ as B,A as V,B as ee,C as H,F as U,G as W,H as te,I as G,J as K,K as q,L as J,M as Y,N as X,P as Z,Q as ne,R as re,S as ie,U as ae,V as oe,W as se,X as ce,Y as le,Z as ue,_ as de,a as fe,at as pe,b as me,c as he,d as ge,et as _e,f as ve,g as ye,h as be,i as xe,it as Se,j as Ce,k as we,l as Te,m as Ee,n as De,nt as Oe,o as ke,ot as Ae,p as je,q as Me,r as Ne,rt as Pe,s as Fe,st as Ie,t as Le,tt as Re,u as ze,v as Be,x as Ve,z as He}from"./use-sticky-profiles-CostDY59.js";import{Ut as Ue,Wt as We,ar as Ge,ft as Ke,j as qe,lt as Je,wn as Ye}from"./sdk.gen-CsFDyJ6U.js";import{Bt as Xe,Ft as Ze,H as Qe,V as $e,_t as et,c as tt,d as nt,f as rt,l as it,m as at,p as ot,u as st}from"./react-query.gen-CbsPBjd9.js";import{t as ct}from"./assistant-identity-store-RThYdwnA.js";import{i as lt,r as ut,t as dt}from"./utils-CrvvcikL.js";import{r as ft}from"./api-errors-BRGPPSWw.js";import{u as pt}from"./routes-bwxCYLJj.js";import{i as mt}from"./use-platform-gate-DcS6snds.js";import{t as ht}from"./use-is-org-ready-DryM43xt.js";import{c as gt,d as _t,f as vt,g as yt,h as bt,l as xt,lt as St,m as Ct,o as wt,p as Tt,s as Et,u as Dt,v as Ot,y as kt}from"./react-query.gen-oEdI--ip.js";import{a as At,i as jt,n as Mt,o as Nt}from"./voice-list-woCTax9H.js";import{t as Pt}from"./platform-login-notice-LOYoqOMf.js";import{t as Ft}from"./use-active-assistant-id-BcM35kFN.js";import{t as It}from"./detail-card-BKbhBGhy.js";import{t as Lt}from"./environment-store-BXSWXdjm.js";var Rt=g(`grip-vertical`,[[`circle`,{cx:`9`,cy:`12`,r:`1`,key:`1vctgf`}],[`circle`,{cx:`9`,cy:`5`,r:`1`,key:`hp0tcf`}],[`circle`,{cx:`9`,cy:`19`,r:`1`,key:`fkjjf6`}],[`circle`,{cx:`15`,cy:`12`,r:`1`,key:`1tmaij`}],[`circle`,{cx:`15`,cy:`5`,r:`1`,key:`19l28e`}],[`circle`,{cx:`15`,cy:`19`,r:`1`,key:`f4zoj3`}]]),Q=e(o(),1),$=p();function zt({mode:e,onChange:t}){return(0,$.jsx)(`div`,{className:`max-w-[280px]`,children:(0,$.jsx)(j,{ariaLabel:`Service mode`,value:e,onChange:t,items:[{value:`managed`,label:`Managed`},{value:`your-own`,label:`Your Own`}]})})}function Bt({id:e,title:t,subtitle:n,mode:r,onModeChange:i,children:a}){return(0,$.jsxs)(It,{id:e,title:t,subtitle:n,accessory:(0,$.jsx)(zt,{mode:r,onChange:i}),children:[(0,$.jsx)(`div`,{className:`h-px bg-[var(--surface-active)]`}),(0,$.jsx)(`div`,{className:`mt-4`,children:a})]})}function Vt({id:e,title:t,subtitle:n,children:r}){return(0,$.jsxs)(It,{id:e,title:t,subtitle:n,children:[(0,$.jsx)(`div`,{className:`h-px bg-[var(--surface-active)]`}),(0,$.jsx)(`div`,{className:`mt-4`,children:r})]})}function Ht(){return(0,$.jsxs)(`div`,{className:`flex items-start gap-2 rounded-lg border border-[var(--border-base)] bg-[var(--surface-base)] px-4 py-2.5`,children:[(0,$.jsx)(w,{className:`mt-0.5 h-4 w-4 shrink-0 text-[var(--content-tertiary)]`}),(0,$.jsxs)(`p`,{className:`text-body-medium-lighter text-[var(--content-secondary)]`,children:[`Managed services are metered and deducted from your Vellum account balance.`,` `,(0,$.jsxs)(`a`,{href:`https://www.vellum.ai/docs/pricing`,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex items-center gap-1 text-[var(--primary-base)] hover:underline`,children:[`View pricing`,(0,$.jsx)(C,{className:`h-3.5 w-3.5`})]})]})]})}function Ut({status:e,message:t,isLoading:n}){return n?(0,$.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-full bg-[var(--tag-bg-neutral)] px-2.5 py-0.5 text-body-small-default text-[var(--content-quiet)]`,children:[(0,$.jsx)(E,{className:`h-3 w-3 animate-spin`}),`Checking domain…`]}):e?e===`verified`?(0,$.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-full bg-[var(--system-positive-weak)] px-2.5 py-0.5 text-body-small-default text-[var(--system-positive-strong)]`,title:`DNS records have been verified. Your domain is ready to send and receive email.`,children:[(0,$.jsx)(_,{className:`h-3 w-3`}),`Domain verified`]}):e===`pending`||e===`not_started`?(0,$.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-full bg-[var(--system-mid-weak)] px-2.5 py-0.5 text-body-small-default text-[var(--system-mid-strong)]`,title:`DNS records have been provisioned. Waiting for the email provider to verify them — this usually takes a few minutes.`,children:[(0,$.jsx)(x,{className:`h-3 w-3`}),`Verifying domain…`]}):(0,$.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-full bg-[var(--system-negative-weak)] px-2.5 py-0.5 text-body-small-default text-[var(--system-negative-strong)]`,title:`Domain verification failed. DNS records may not have propagated correctly. You could try releasing and re-registering the domain.`,children:[(0,$.jsx)(y,{className:`h-3 w-3`}),`Verification failed`]}):(0,$.jsx)(`span`,{className:`inline-flex items-center gap-1 rounded-full bg-[var(--tag-bg-neutral)] px-2.5 py-0.5 text-body-small-default text-[var(--content-quiet)]`,title:`Unable to retrieve domain verification status.`,children:`Unknown status`})}function Wt({onClick:e,disabled:t}){return(0,$.jsx)(s,{onClick:e,disabled:t,children:`Save`})}function Gt({onClick:e,filled:t=!1}){return(0,$.jsx)(s,{variant:t?`danger`:`dangerGhost`,onClick:e,children:`Reset`})}function Kt({guide:e}){return(0,$.jsxs)(`div`,{className:`flex items-start gap-2 rounded-lg border border-[var(--border-subtle)] bg-[var(--surface-sunken)] p-3 text-body-small-default text-[var(--content-tertiary)]`,children:[(0,$.jsx)(w,{className:`mt-0.5 h-3.5 w-3.5 shrink-0 text-[var(--system-positive-strong)]`}),(0,$.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,$.jsx)(`span`,{children:e.description}),(0,$.jsxs)(`a`,{href:e.url,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex items-center gap-1 text-[var(--system-positive-strong)] underline hover:opacity-80`,children:[e.linkLabel,(0,$.jsx)(C,{className:`h-3 w-3`})]})]})]})}var qt=`__custom__`;function Jt(e){return e?!!(e.profile||e.provider||e.model):!1}function Yt(e,t){let n=Jt(e);return n===Jt(t)?n?(e?.profile??null)===(t?.profile??null)&&(e?.provider??null)===(t?.provider??null)&&(e?.model??null)===(t?.model??null):!0:!1}function Xt({id:e,displayName:t,description:n,defaultProfileLabel:r,draft:i,profileOptions:a,onDraftChange:o,onToggle:s}){let c=Jt(i),l=!i||!c?``:i.provider||i.model?qt:i.profile??``,u=l===qt,d=He(),f=d[0]??Pe[0],p=d.find(e=>e===i?.provider)??f,m=Ie(p).map(e=>({value:e.id,label:e.displayName})),h=!!i?.provider&&!i?.model;function g(t){t===`__custom__`?o(e,{profile:null,provider:f,model:Ae(f)??``}):t===``?o(e,null):o(e,{profile:t,provider:null,model:null})}function _(t){let n=Ae(t)??``;o(e,{...i??{},profile:null,provider:t,model:n})}function v(t){o(e,{...i??{},model:t})}return(0,$.jsxs)(`div`,{className:`rounded-lg border border-[var(--border-base)] bg-[var(--surface-base)] p-3`,children:[(0,$.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,$.jsx)(`p`,{className:`text-body-medium-default font-medium text-[var(--content-default)]`,children:t}),n&&(0,$.jsxs)(`p`,{className:`mt-0.5 text-body-small-default text-[var(--content-tertiary)]`,children:[n,r&&(0,$.jsxs)(`span`,{className:`ml-1.5 text-body-small-default text-[var(--content-tertiary)] opacity-60`,children:[`· Default: `,r]})]})]}),(0,$.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[c&&(0,$.jsx)(z,{value:l,onChange:g,options:a,className:`w-44`,menuMinWidth:280,menuAlign:`end`}),(0,$.jsx)(F,{checked:c,onChange:t=>s(e,t),"aria-label":`Override ${t}`})]})]}),c&&u&&(0,$.jsxs)(`div`,{className:`mt-3 space-y-2 border-t border-[var(--border-base)] pt-3`,children:[(0,$.jsxs)(`div`,{className:`flex gap-2`,children:[(0,$.jsxs)(`div`,{className:`flex-1`,children:[(0,$.jsx)(`label`,{className:`mb-1 block text-body-small-default text-[var(--content-tertiary)]`,children:`Provider`}),(0,$.jsx)(z,{value:p??``,onChange:_,options:d.map(e=>({value:e,label:pe[e]??e}))})]}),(0,$.jsxs)(`div`,{className:`flex-1`,children:[(0,$.jsx)(`label`,{className:`mb-1 block text-body-small-default text-[var(--content-tertiary)]`,children:`Model`}),(0,$.jsx)(z,{value:i?.model??``,onChange:v,options:m})]})]}),h&&(0,$.jsx)(`p`,{className:`text-body-small-default text-[var(--system-negative-strong)]`,children:`Pick a model`})]})]})}function Zt({isOpen:e,onClose:t,assistantId:n}){let r=(0,Q.useRef)(!1);return(0,$.jsx)(I.Root,{open:e,onOpenChange:e=>{!e&&!r.current&&t()},children:e?(0,$.jsx)(Qt,{assistantId:n,onClose:t,onSavingChange:e=>{r.current=e}}):null})}function Qt({assistantId:e,onClose:t,onSavingChange:n}){let r=u(),{data:i}=d({...tt({path:{assistant_id:e}}),staleTime:3e4}),o=(0,Q.useMemo)(()=>i?.llm?.profiles??{},[i?.llm?.profiles]),c=(0,Q.useMemo)(()=>i?.llm?.profileOrder??[],[i?.llm?.profileOrder]),l=(0,Q.useMemo)(()=>i?.llm?.callSites??{},[i?.llm?.callSites]),f=(0,Q.useMemo)(()=>W(o,c),[o,c]),p=He(),m=Xe({onSuccess:t=>{st(r,{path:{assistant_id:e}},t)}}),[h,g]=(0,Q.useState)(``),[_,v]=(0,Q.useState)(``),[y,b]=(0,Q.useState)({}),[x,S]=(0,Q.useState)(!1),[C,w]=(0,Q.useState)(!1),{data:T,isLoading:O,isError:k,refetch:A}=d({...nt({path:{assistant_id:e}}),enabled:!!e,staleTime:6e4,refetchOnWindowFocus:!1}),j=(0,Q.useMemo)(()=>(T?.callSites??[]).filter(e=>e.id!==`mainAgent`),[T]),M=!O&&!k&&!!T&&!!i,N=(0,Q.useMemo)(()=>j.map(e=>e.id),[j]),F=(0,Q.useMemo)(()=>{if(!M)return{};let e={};for(let t of N)if(t in y)e[t]=y[t];else{let n=l[t];e[t]=n?{...n}:{}}return e},[M,N,l,y]),B=(0,Q.useMemo)(()=>new Set(N),[N]),V=(0,Q.useMemo)(()=>Object.entries(l).some(([e,t])=>B.has(e)&&(t?.profile!=null||t?.provider!=null||t?.model!=null)),[l,B]),ee=(0,Q.useMemo)(()=>{if(!M)return!1;for(let e of Object.keys(F))if(!Yt(F[e],l[e]))return!0;return!1},[M,F,l]),H=(0,Q.useMemo)(()=>Object.values(F).some(e=>Jt(e)&&!!e?.provider&&!e?.model),[F]),U=(0,Q.useMemo)(()=>xe(f,[]).map(e=>({value:e.name,label:De(e)})),[f]),te=(0,Q.useCallback)(()=>{if(!_)return;let e={};for(let t of N)e[t]={profile:_};b(e)},[_,N]),G=(0,Q.useCallback)(e=>[...xe(f,[e]).map(e=>({value:e.name,label:De(e)})),{value:qt,label:`Custom`}],[f]),K=(0,Q.useMemo)(()=>{if(!h.trim())return j;let e=h.toLowerCase();return j.filter(t=>(t.displayName??``).toLowerCase().includes(e)||(t.description??``).toLowerCase().includes(e)||(t.domain??``).toLowerCase().includes(e))},[j,h]),q=(0,Q.useMemo)(()=>{if(!T)return[];let e=T.domains.map(e=>e.id),t=new Map(T.domains.map(e=>[e.id,e])),n=[];for(let r of e){let e=K.filter(e=>e.domain===r);e.length>0&&n.push({domain:t.get(r),sites:e})}let r=new Set(e),i=K.filter(e=>!r.has(e.domain));return i.length>0&&n.push({domain:{id:`other`,displayName:`Other`},sites:i}),n},[T,K]),J=(0,Q.useCallback)((e,t)=>{b(n=>({...n,[e]:t}))},[]),Y=(0,Q.useCallback)((e,t)=>{if(!t){b(t=>({...t,[e]:null}));return}let n=Ne(f,j.find(t=>t.id===e)?.defaultProfile);if(n)b(t=>({...t,[e]:{profile:n}}));else{let t=p[0]??Pe[0],n=Ae(t)??``;b(r=>({...r,[e]:{provider:t,model:n}}))}},[j,f,p]),X=(0,Q.useCallback)(async()=>{S(!0),n?.(!0);try{let n={};for(let e of Object.keys(F)){let t=F[e]??null;n[e]=Jt(t)?{profile:t?.profile??null,provider:t?.provider??null,model:t?.model??null}:null}await m.mutateAsync({path:{assistant_id:e},body:{llm:{callSites:n}}}),t(),L.success(`Overrides saved.`)}catch(e){L.error(`Failed to save overrides. Please try again.`),a(e,{context:`call_site_overrides_save`})}finally{S(!1),n?.(!1)}},[F,t,m,n,e]),Z=(0,Q.useCallback)(async()=>{S(!0),n?.(!0);try{let n={};for(let e of Object.keys(F))n[e]=null;await m.mutateAsync({path:{assistant_id:e},body:{llm:{callSites:n}}}),t(),L.success(`Overrides reset.`)}catch(e){L.error(`Failed to reset overrides. Please try again.`),a(e,{context:`call_site_overrides_reset`})}finally{S(!1),n?.(!1)}},[F,t,m,n,e]);return(0,$.jsxs)(I.Content,{size:`lg`,hideCloseButton:!0,children:[(0,$.jsxs)(I.Header,{children:[(0,$.jsx)(I.Title,{children:`Action Overrides`}),(0,$.jsx)(I.Description,{children:`Customize which model profile specific actions should use. Uses your default profile if no override is set.`})]}),(0,$.jsxs)(I.Body,{children:[(0,$.jsx)(`div`,{className:`mb-4`,children:(0,$.jsx)(P,{type:`search`,value:h,onChange:e=>g(e.target.value),placeholder:`Search actions…`,leftIcon:(0,$.jsx)(D,{className:`h-4 w-4`}),fullWidth:!0})}),U.length>0&&(0,$.jsxs)(`div`,{className:`mb-4 flex items-center gap-2 rounded-lg border border-[var(--border-base)] bg-[var(--surface-base)] p-3`,children:[(0,$.jsx)(`p`,{className:`min-w-0 flex-1 text-body-medium-default text-[var(--content-default)]`,children:`Use one profile for all actions`}),(0,$.jsx)(z,{value:_,onChange:v,options:U,placeholder:`Choose profile…`,className:`w-44`,menuMinWidth:280,menuAlign:`end`}),(0,$.jsx)(s,{variant:`outlined`,size:`compact`,onClick:te,disabled:!_||!M||x,children:`Apply to all`})]}),O&&(0,$.jsx)(`div`,{className:`flex items-center justify-center py-12`,children:(0,$.jsx)(E,{className:`h-6 w-6 animate-spin text-[var(--content-tertiary)]`})}),k&&(0,$.jsxs)(`div`,{className:`flex flex-col items-center gap-3 py-12 text-center`,children:[(0,$.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-default)]`,children:`Couldn't load actions`}),(0,$.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Make sure your assistant is running`}),(0,$.jsx)(s,{variant:`outlined`,size:`compact`,onClick:()=>void A(),children:`Retry`})]}),!O&&!k&&T&&(0,$.jsx)(`div`,{className:`space-y-4`,children:q.length===0?(0,$.jsx)(`p`,{className:`py-8 text-center text-body-medium-lighter text-[var(--content-tertiary)]`,children:`No actions match your search.`}):q.map(({domain:e,sites:t})=>(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`p`,{className:`mb-2 text-body-small-default font-semibold uppercase tracking-wider text-[var(--content-tertiary)]`,children:e.displayName}),(0,$.jsx)(`div`,{className:`space-y-1`,children:t.map(e=>{let t=(()=>{let t=F[e.id]??null;return!t||!Jt(t)?``:t.provider||t.model?`__custom__`:t.profile??``})(),n=e.defaultProfile?f.find(t=>t.name===e.defaultProfile)?.label??e.defaultProfile:null;return(0,$.jsx)(Xt,{id:e.id,displayName:e.displayName,description:e.description,defaultProfileLabel:n,draft:F[e.id]??null,profileOptions:G(t===``||t===`__custom__`?null:t),onDraftChange:J,onToggle:Y},e.id)})})]},e.id))})]}),(0,$.jsxs)(I.Footer,{children:[V&&(0,$.jsx)(s,{variant:`outlined`,size:`compact`,onClick:()=>w(!0),disabled:x||!M,tintColor:`var(--system-negative-strong)`,className:`mr-auto`,children:`Reset to Defaults`}),(0,$.jsx)(s,{variant:`outlined`,size:`compact`,onClick:t,disabled:x,children:`Cancel`}),(0,$.jsx)(s,{variant:`primary`,size:`compact`,onClick:()=>void X(),disabled:!ee||H||x,children:x?(0,$.jsx)(E,{className:`h-4 w-4 animate-spin`}):`Save`})]}),(0,$.jsx)(R,{open:C,title:`Reset to Defaults`,message:`Every task override will be reset and will follow your active profile. This cannot be undone.`,confirmLabel:`Reset to Defaults`,destructive:!0,onConfirm:()=>{w(!1),Z()},onCancel:()=>w(!1)})]})}function $t({blocked:e,availableReplacements:t,replacement:n,onReplacementChange:r,error:i,saving:a,onClose:o,onConfirm:c}){let l=``;if(e){let t=e.label||e.name;l=e.isActive&&e.callSiteIds.length>0?`"${t}" is the active profile and is used by ${e.callSiteIds.length} call site(s). Pick a replacement profile.`:e.isActive?`"${t}" is the active profile. Pick a different active profile before deleting, or select a replacement below.`:`"${t}" is used by ${e.callSiteIds.length} call site(s). Select a replacement profile to reassign them before deleting.`}return(0,$.jsx)(I.Root,{open:e!==null,onOpenChange:e=>{e||o()},children:(0,$.jsxs)(I.Content,{size:`sm`,children:[(0,$.jsx)(I.Header,{children:(0,$.jsx)(I.Title,{children:`Can't Delete Profile`})}),(0,$.jsxs)(I.Body,{className:`space-y-4`,children:[(0,$.jsx)(h,{variant:`body-medium-default`,as:`p`,children:l}),e&&e.callSiteIds.length>0&&(0,$.jsx)(`ul`,{className:`space-y-1 pl-1`,children:e.callSiteIds.map(e=>(0,$.jsxs)(`li`,{className:`text-body-small-default text-(--content-secondary)`,children:[`• `,(0,$.jsx)(`code`,{children:e})]},e))}),(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Replacement profile`}),(0,$.jsx)(z,{"aria-label":`Replacement profile`,value:n,onChange:r,options:[{value:``,label:`Select a replacement…`},...t.map(e=>({value:e.name,label:e.label??e.name}))]})]}),i&&(0,$.jsx)(h,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:i})]}),(0,$.jsxs)(I.Footer,{children:[(0,$.jsx)(s,{variant:`ghost`,size:`compact`,onClick:o,children:`Cancel`}),(0,$.jsx)(s,{variant:`primary`,size:`compact`,disabled:!n||a,onClick:c,children:a?`Saving…`:`Reassign and Delete`})]})]})})}function en(e,t){if(e){let n=Ie(e).find(e=>e.id===t);if(n)return n.displayName}let n=t.lastIndexOf(`/`);return n>=0?t.slice(n+1):t}function tn(e,t){let n=[];e.description&&n.push(e.description);let r=e.provider_connection===`vellum`&&t?`vellum`:e.provider,i=[];if(e.model&&i.push(en(r,e.model)),r){let e=pe[r]??r;i.push(`hosted by ${e}`)}return i.length>0&&n.push(i.join(` `)),n.join(` – `)}function nn({profile:e,vellumIsManaged:t,isDragging:n,dropTarget:r,isDeleting:i,deleteError:a,isToggling:o,onDragStart:c,onDragEnd:l,onDragOver:u,onDragLeave:d,onDrop:f,onEditClick:p,onDeleteClick:m,onStatusToggle:g}){let _=e.source===`managed`,v=e.invariant===!0,y=e.status!==`disabled`;return(0,$.jsxs)(`div`,{className:`relative`,children:[r?.name===e.name&&!r.after&&(0,$.jsx)(`div`,{className:`mx-0 h-0.5 rounded-full bg-[var(--border-active)]`}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2 rounded-lg pr-2 py-2${n?` opacity-50`:``}`,draggable:!_,onDragStart:c,onDragEnd:l,onDragOver:u,onDragLeave:d,onDrop:f,children:[(0,$.jsx)(Rt,{className:`h-4 w-4 shrink-0 ${_?`invisible`:`cursor-grab text-[var(--content-tertiary)]`}`}),(0,$.jsxs)(`div`,{className:`min-w-0 flex-1${y?``:` opacity-55`}`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(h,{variant:`body-medium-default`,as:`span`,className:`text-(--content-default)`,children:e.label??e.name}),_&&(0,$.jsx)(M,{tone:`positive`,title:`Managed by Platform — this profile cannot be disabled, deleted, or renamed.`,children:`Platform`})]}),e.description||e.model||e.provider?(0,$.jsx)(h,{variant:`body-medium-lighter`,as:`p`,className:`mt-0.5 text-(--content-tertiary)`,children:tn(e,t)}):null]}),(0,$.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[(!v||!y)&&(0,$.jsx)(`div`,{className:`flex shrink-0 items-center`,title:y?`Active — toggle to hide from pickers`:`Disabled — toggle to show in pickers`,children:(0,$.jsx)(F,{checked:y,onChange:e=>g(e),disabled:o,"aria-label":`${y?`Disable`:`Enable`} ${e.label??e.name}`})}),(0,$.jsxs)(`div`,{className:`flex w-[92px] items-center justify-end gap-2`,children:[(0,$.jsx)(s,{variant:`ghost`,size:`compact`,onClick:p,children:_||v?`View`:`Edit`}),(0,$.jsx)(s,{variant:`ghost`,size:`compact`,iconOnly:(0,$.jsx)(O,{}),"aria-label":`Delete ${e.label??e.name}`,disabled:_||v||i,title:_||v?`Managed profiles cannot be deleted`:void 0,onClick:m,tintColor:`var(--system-negative-strong)`})]})]})]}),r?.name===e.name&&r.after&&(0,$.jsx)(`div`,{className:`mx-0 h-0.5 rounded-full bg-[var(--border-active)]`}),a?(0,$.jsx)(h,{variant:`body-small-default`,as:`p`,className:`px-2 pb-1 text-(--system-negative-strong)`,children:a}):null]})}function rn({isOpen:e,assistantId:t,onClose:n}){let r=u(),{data:i}=d({...tt({path:{assistant_id:t}}),staleTime:3e4}),o=(0,Q.useMemo)(()=>i?.llm?.profiles??{},[i?.llm?.profiles]),s=(0,Q.useMemo)(()=>i?.llm?.profileOrder??[],[i?.llm?.profileOrder]),c=i?.llm?.activeProfile??null,l=i?.llm?.callSites??{},f=(0,Q.useMemo)(()=>W(o,s),[o,s]),p=Xe({onSuccess:e=>{st(r,{path:{assistant_id:t}},e)}}),[m,h]=(0,Q.useState)(!1),[g,_]=(0,Q.useState)(null),{data:v}=d({...$e({path:{assistant_id:t}}),enabled:e}),y=v?.connections,b=y?.some(e=>e.name===`vellum`&&e.provider===`vellum`)??!1,x=Object.keys(o);async function S(e,n,r){let i=r?.mode??`replace`,c=!(e in o);if(i===`merge`&&!c){await p.mutateAsync({path:{assistant_id:t},body:{llm:{profiles:{[e]:n}}}}),h(!1),_(null);return}let l={profiles:{[e]:n}};if(c&&(l.profileOrder=s.includes(e)?s:[...s,e]),c)await p.mutateAsync({path:{assistant_id:t},body:{llm:l}});else{let n=o[e];await p.mutateAsync({path:{assistant_id:t},body:{llm:{profiles:{[e]:null}}}});try{await p.mutateAsync({path:{assistant_id:t},body:{llm:l}})}catch(r){throw a(r,{context:`settings-ai-profile-edit-recreate`}),n!=null&&await p.mutateAsync({path:{assistant_id:t},body:{llm:{profiles:{[e]:n}}}}).catch(()=>{}),r}}c&&L.success(`Profile "${n.label??e}" created`),h(!1),_(null)}return(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(I.Root,{open:e,onOpenChange:e=>{e||n()},children:e?(0,$.jsx)(an,{assistantId:t,vellumIsManaged:b,profiles:o,profileOrder:s,orderedProfiles:f,activeProfile:c,callSiteOverrides:l,onClose:n,onEditClick:e=>{_(e),h(!0)},onNewClick:()=>{_(null),h(!0)}}):null}),(0,$.jsx)(we,{isOpen:m,mode:g?g.source===`managed`||g.invariant===!0?`view`:`edit`:`create`,profileName:g?.name,initialValues:g??void 0,existingNames:x,connections:y,assistantId:t,onSave:S,onCancel:()=>{h(!1),_(null)}})]})}function an({assistantId:e,vellumIsManaged:t,profiles:n,profileOrder:r,orderedProfiles:i,activeProfile:o,callSiteOverrides:c,onClose:l,onEditClick:d,onNewClick:f}){let p=u(),m=Xe({onSuccess:t=>{st(p,{path:{assistant_id:e}},t)}}),[g,_]=(0,Q.useState)({}),[v,y]=(0,Q.useState)({}),[b,x]=(0,Q.useState)(new Set),[S,C]=(0,Q.useState)(null),[w,T]=(0,Q.useState)(null),[E,D]=(0,Q.useState)(null),[O,k]=(0,Q.useState)(null),A=(0,Q.useRef)(null),j=(0,Q.useRef)(null),[M,N]=(0,Q.useState)(null),[P,F]=(0,Q.useState)(null),[L,R]=(0,Q.useState)(``),[z,B]=(0,Q.useState)(!1),V=(0,Q.useMemo)(()=>i,[i]);async function ee(t,r){if(b.has(t.name))return!1;x(e=>new Set(e).add(t.name)),C(null);let i=r?`active`:`disabled`;if(!n[t.name])return x(e=>{let n=new Set(e);return n.delete(t.name),n}),!1;try{return await m.mutateAsync({path:{assistant_id:e},body:{llm:{profiles:{[t.name]:{status:i}}}}}),!0}catch(e){return a(e,{context:`settings-ai-profile-toggle`}),C(`Couldn't update "${t.label??t.name}". Please try again.`),!1}finally{x(e=>{let n=new Set(e);return n.delete(t.name),n})}}async function H(t){y(e=>({...e,[t]:!0})),_(e=>{let n={...e};return delete n[t],n});try{let n=r.filter(e=>e!==t);await m.mutateAsync({path:{assistant_id:e},body:{llm:{profiles:{[t]:null},profileOrder:n}}})}catch(e){a(e,{context:`settings-ai-profile-delete`}),_(e=>({...e,[t]:`Failed to delete profile. Please try again.`}))}finally{y(e=>{let n={...e};return delete n[t],n})}}function U(e){let t=V.find(t=>t.name===e)?.label??e,n=e===o,r=Object.entries(c).filter(([t,n])=>t!==`mainAgent`&&n?.profile===e).map(([e])=>e);if(n||r.length>0){N({name:e,label:t,isActive:n,callSiteIds:r}),R(``),F(null);return}H(e)}async function W(){if(!M||!L)return;B(!0),F(null);let t={};if(M.isActive&&(t.activeProfile=L),M.callSiteIds.length>0){let e={};for(let t of M.callSiteIds)e[t]={profile:L};t.callSites=e}if(Object.keys(t).length>0)try{await m.mutateAsync({path:{assistant_id:e},body:{llm:t}})}catch(e){a(e,{context:`settings-ai-profile-reassign-delete`}),F(`Failed to reassign references. Please try again.`),B(!1);return}let n=M.name;N(null),B(!1),H(n)}async function te(t,n){if(t===n.name)return;k(null);let i=r.filter(e=>e!==t),o=i.indexOf(n.name);if(o===-1)return;n.after&&(o+=1);let s=[...i.slice(0,o),t,...i.slice(o)];try{await m.mutateAsync({path:{assistant_id:e},body:{llm:{profileOrder:s}}})}catch(e){a(e,{context:`settings-ai-profile-reorder`}),k(`Failed to reorder profiles. Please try again.`)}}let G=V.filter(e=>e.name!==M?.name&&e.source!==`managed`),K=G.length>0?G:V.filter(e=>e.name!==M?.name);return(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(I.Content,{size:`md`,children:[(0,$.jsxs)(I.Header,{children:[(0,$.jsx)(I.Title,{children:`Model Profiles`}),(0,$.jsx)(I.Description,{children:`Bundle a provider and model into a named profile. Assign profiles to specific actions or swap between them when chatting.`})]}),(0,$.jsxs)(I.Body,{children:[V.length===0?(0,$.jsx)(h,{variant:`body-medium-lighter`,as:`p`,className:`py-4 text-center text-(--content-tertiary)`,children:`No profiles yet. Create one to get started.`}):(0,$.jsx)(`div`,{className:`space-y-1`,children:V.map(e=>(0,$.jsx)(nn,{profile:e,vellumIsManaged:t,isDragging:w===e.name,dropTarget:E,isDeleting:v[e.name]??!1,deleteError:g[e.name],isToggling:b.has(e.name),onDragStart:t=>{A.current=e.name,T(e.name),t.dataTransfer&&(t.dataTransfer.effectAllowed=`move`)},onDragEnd:()=>{A.current=null,j.current=null,T(null),D(null)},onDragOver:t=>{t.preventDefault();let n=t.currentTarget.getBoundingClientRect(),r=t.clientY>n.top+n.height/2,i={name:e.name,after:r};j.current=i,D(i)},onDragLeave:t=>{t.currentTarget.contains(t.relatedTarget)||(j.current=null,D(t=>t?.name===e.name?null:t))},onDrop:e=>{e.preventDefault();let t=A.current,n=j.current;A.current=null,j.current=null,T(null),D(null),t&&n&&te(t,n)},onEditClick:()=>d(e),onDeleteClick:()=>U(e.name),onStatusToggle:t=>void ee(e,t)},e.name))}),O&&(0,$.jsx)(h,{variant:`body-small-default`,as:`p`,className:`mt-2 text-(--system-negative-strong)`,children:O}),S&&(0,$.jsx)(h,{variant:`body-small-default`,as:`p`,className:`mt-2 text-(--system-negative-strong)`,children:S})]}),(0,$.jsxs)(I.Footer,{className:`justify-between`,children:[(0,$.jsx)(s,{variant:`outlined`,size:`compact`,onClick:f,children:`+ New Profile`}),(0,$.jsx)(s,{variant:`outlined`,size:`compact`,onClick:l,children:`Done`})]})]}),(0,$.jsx)($t,{blocked:M,availableReplacements:K,replacement:L,onReplacementChange:R,error:P,saving:z,onClose:()=>{N(null),F(null)},onConfirm:()=>void W()})]})}var on=`0.10.8`;function sn(){return ut(on)}function cn({mode:e,connection:t,assistantId:n,existingNames:r,connections:i,onSave:a,onCancel:o}){let[c,l]=(0,Q.useState)(t?.label??``),d=t?.name??``,f=t?.provider??`anthropic`,p=t?.auth.type??`api_key`,[m,g]=(0,Q.useState)(()=>t?.auth.type===`api_key`?t.auth.credential:t?``:`credential/anthropic/api_key`),[_,v]=(0,Q.useState)(t?.baseUrl??``),[y,b]=(0,Q.useState)(()=>t?.models?t.models.map(e=>e.id).join(`, `):``),[x,S]=(0,Q.useState)(!1),[C,w]=(0,Q.useState)(null),T=f===`openai-compatible`,[E,D]=(0,Q.useState)(``),[O,k]=(0,Q.useState)(!1),A=u(),j=(0,Q.useMemo)(()=>oe(m),[m]),M=p===`api_key`&&j!==null,{hasStoredCredential:N,isLoading:F}=re({assistantId:n,credentialKind:`credential`,credentialName:j?`${j.service}:${j.field}`:``,enabled:M}),{credentials:L}=Ce({assistantId:n,enabled:p===`api_key`});(0,Q.useEffect)(()=>{let e=t?.provider??`anthropic`;l(t?.label??``),t?.auth.type===`api_key`?g(t.auth.credential):g(t?``:`credential/${e}/api_key`),w(null),v(t?.baseUrl??``),b(t?.models?t.models.map(e=>e.id).join(`, `):``),D(``),k(!1)},[t]);let R=c.trim()!==(t?.label??``).trim(),z=T&&R?U(c,i,t?.name):null,B=d.trim().length>0&&z===null;async function H(){if(B){S(!0),w(null);try{let e;if(p===`api_key`){let t=m.trim()||`credential/${f}/api_key`,r=E.trim();if(r){k(!0);try{let e=oe(t);await Ge({path:{assistant_id:n},body:e?{type:`credential`,name:`${e.service}:${e.field}`,value:r}:{type:`api_key`,name:f,value:r},throwOnError:!0});let i=J(n,`credential`,e?`${e.service}:${e.field}`:``);A.setQueryData(i,!0),A.invalidateQueries({queryKey:et({path:{assistant_id:n}})})}catch{w(`Failed to save API key. Please try again.`);return}finally{k(!1)}}e={type:`api_key`,credential:t}}else if(t)e=t.auth;else{w(`Nothing to edit. Close and try again.`);return}let r=c.trim()||null,i={auth:e,label:r,...T&&{base_url:_.trim()||null,models:y.trim()?y.split(`,`).map(e=>({id:e.trim()})).filter(e=>e.id):null}},{data:o,error:s,response:l}=await We({path:{assistant_id:n,name:t?.name??d.trim()},body:i});if(!l?.ok){w(ae(l?.status,s)??ee(l?.status));return}if(!o){w(`Server returned an empty response. Please try again.`);return}a(o)}catch{w(`Failed to save provider. Please try again.`)}finally{S(!1)}}}let W=L.filter(e=>e.service===f),K=e!==`create`&&t?.auth.type===`api_key`,q=W.length>0||K,ne=Y(`Enter your API key`,N);return e===`create`?(0,$.jsx)(V,{variant:`modal`,assistantId:n,existingNames:r,connections:i,defaultProviderType:f,onCreated:a,onCancel:o}):(0,$.jsxs)(I.Content,{size:`md`,children:[(0,$.jsxs)(I.Header,{children:[(0,$.jsx)(I.Title,{children:`Edit Provider`}),(0,$.jsx)(I.Description,{children:t?`Editing ${te(t)}.`:`Edit provider settings.`})]}),(0,$.jsxs)(I.Body,{className:`space-y-4`,children:[(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsxs)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:[`Display Name`,` `,(0,$.jsx)(`span`,{className:`text-[var(--content-disabled)]`,children:`(optional)`})]}),(0,$.jsx)(P,{value:c,onChange:e=>l(e.target.value),placeholder:`e.g. My Anthropic Key`,fullWidth:!0}),z?(0,$.jsx)(h,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:Z[z]}):null]}),T&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Base URL`}),(0,$.jsx)(P,{value:_,onChange:e=>v(e.target.value),placeholder:`https://api.example.com/v1`,fullWidth:!0})]}),(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Models`}),(0,$.jsx)(P,{value:y,onChange:e=>b(e.target.value),placeholder:`model-1, model-2`,fullWidth:!0}),(0,$.jsx)(h,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:`Comma-separated model identifiers exposed by your endpoint.`})]})]}),p===`api_key`&&(0,$.jsx)(X,{apiKeyValue:E,onApiKeyChange:D,credential:m,onCredentialChange:g,isLoadingCredential:F,apiKeyPlaceholder:ne,provider:f,providerCredentials:W,showAdvancedSection:q,onError:w}),p===`oauth_subscription`&&(0,$.jsx)(G,{assistantId:n,onConnected:a}),C&&(0,$.jsx)(h,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:C})]}),(0,$.jsxs)(I.Footer,{children:[(0,$.jsx)(s,{variant:`ghost`,size:`compact`,onClick:o,children:`Cancel`}),(0,$.jsx)(s,{variant:`primary`,size:`compact`,disabled:!B||x||O,onClick:()=>void H(),children:x?`Saving…`:`Save`})]})]})}var ln={anthropic:!0,openai:!0,gemini:!0,fireworks:!0,openrouter:!0,vellum:!0};function un(e){return e in ln}function dn(e){let t=e.baseUrl??``;try{e.baseUrl&&(t=new URL(e.baseUrl).host)}catch{}let n=[];t&&n.push(t);let r=e.models?.length??0;return r>0&&n.push(`${r} ${r===1?`model`:`models`}`),e.auth.type===`none`&&n.push(`keyless`),n.join(` · `)}function fn({isOpen:e,assistantId:t,onClose:n}){let[r,i]=(0,Q.useState)(!1),[a,o]=(0,Q.useState)(null),s=u(),{data:c,isLoading:l,isError:f}=d({...$e({path:{assistant_id:t}}),enabled:e}),p=sn(),{data:m}=d({...rt({path:{assistant_id:t}}),enabled:e&&p}),h=(0,Q.useMemo)(()=>{let e=c?.connections??[];return[...e.filter(e=>e.provider===Se),...e.filter(e=>e.provider!==Se)]},[c]);function g(){s.invalidateQueries({queryKey:ot({path:{assistant_id:t}})}),s.invalidateQueries({queryKey:it({path:{assistant_id:t}})})}function _(e){s.invalidateQueries({queryKey:Qe({path:{assistant_id:t}})}),i(!1),o(null)}let v=h.map(e=>e.name),y=()=>{i(!1),o(null)};return(0,$.jsx)(I.Root,{open:e,onOpenChange:e=>{e||(r?y():n())},children:e?r?(0,$.jsx)(cn,{mode:a?`edit`:`create`,connection:a??void 0,assistantId:t,existingNames:v,connections:h,onSave:_,onCancel:y}):(0,$.jsx)(pn,{connections:h,loading:l,isError:f,assistantId:t,supportsDefaultProvider:p,defaultConnectionName:p?m?.resolvedConnectionName??null:null,onDefaultChanged:g,onClose:n,onEditClick:e=>{o(e),i(!0)},onNewClick:()=>{o(null),i(!0)},onConnectionDeleted:()=>{s.invalidateQueries({queryKey:Qe({path:{assistant_id:t}})})}}):null})}function pn({connections:e,loading:t,isError:n,assistantId:r,supportsDefaultProvider:i,defaultConnectionName:o,onDefaultChanged:c,onClose:l,onEditClick:u,onNewClick:d,onConnectionDeleted:p}){let[m,g]=(0,Q.useState)({}),[_,v]=(0,Q.useState)({}),y=f({...at(),onMutate:e=>{let t=e.body?.connectionName;t&&g(e=>{let n={...e};return delete n[t],n})},onSuccess:c,onError:(e,t)=>{a(e,{context:`settings-ai-set-default-provider`});let n=t.body?.connectionName;n&&g(e=>({...e,[n]:`Failed to set default provider. Please try again.`}))}});function b(e){un(e.provider)&&y.mutate({path:{assistant_id:r},body:{provider:e.provider,connectionName:e.name}})}async function x(e){v(t=>({...t,[e]:!0})),g(t=>{let n={...t};return delete n[e],n});try{let{response:t}=await Ue({path:{assistant_id:r,name:e}});t?.ok||t?.status===404?p(e):t?.status===409?g(t=>({...t,[e]:`This provider is in use by a profile or as the default provider. Update those settings before deleting it.`})):g(t=>({...t,[e]:`Failed to delete provider. Please try again.`}))}catch{g(t=>({...t,[e]:`Failed to delete provider. Please try again.`}))}finally{v(t=>{let n={...t};return delete n[e],n})}}return(0,$.jsxs)(I.Content,{size:`md`,children:[(0,$.jsxs)(I.Header,{children:[(0,$.jsx)(I.Title,{children:`Providers`}),(0,$.jsx)(I.Description,{children:`Manage the model providers your assistant can use.`})]}),(0,$.jsx)(I.Body,{children:t?(0,$.jsx)(`div`,{className:`space-y-2 py-2`,children:[1,2,3].map(e=>(0,$.jsx)(`div`,{className:`h-10 animate-pulse rounded-lg bg-[var(--surface-active)]`},e))}):n?(0,$.jsx)(h,{variant:`body-medium-default`,as:`p`,className:`py-4 text-center text-(--system-negative-strong)`,children:`Failed to load providers. Please try again.`}):e.length===0?(0,$.jsx)(h,{variant:`body-medium-lighter`,as:`p`,className:`py-4 text-center text-(--content-tertiary)`,children:`No providers yet. Add one to get started.`}):(0,$.jsx)(`div`,{className:`space-y-1`,children:e.map(e=>{let t=_[e.name]??!1,n=m[e.name],r=e.isManaged??!1,a=e.name===o,c=un(e.provider),l=y.isPending&&y.variables?.body?.connectionName===e.name;return(0,$.jsxs)(`div`,{children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-3 rounded-lg px-2 py-2`,children:[(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(h,{variant:`body-medium-default`,as:`span`,className:`text-(--content-default)`,children:te(e)}),r&&(0,$.jsx)(M,{tone:`positive`,title:`Managed by Platform — you can rename this provider, but not edit it.`,children:`Platform`}),a&&(0,$.jsx)(M,{tone:`info`,title:`Built-in profiles (Balanced, Quality, Speed) use this provider.`,children:`Default`}),e.provider===`vellum`?null:e.provider===`openai-compatible`&&(0,$.jsx)(M,{tone:`neutral`,title:`A provider you created — served by an OpenAI-compatible endpoint.`,children:`Custom`})]}),e.provider===`openai-compatible`?(0,$.jsx)(h,{variant:`body-small-default`,as:`p`,className:`text-(--content-tertiary)`,children:dn(e)}):null]}),(0,$.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[i&&!a&&(0,$.jsx)(s,{variant:`ghost`,size:`compact`,disabled:!c||l,title:c?`Use this provider for the built-in profiles.`:`Built-in profiles can't run on this provider.`,onClick:()=>b(e),children:`Set as default`}),!r&&(0,$.jsx)(s,{variant:`ghost`,size:`compact`,onClick:()=>u(e),children:`Edit`}),(0,$.jsx)(s,{variant:`ghost`,size:`compact`,iconOnly:(0,$.jsx)(O,{}),"aria-label":`Delete ${te(e)}`,disabled:r||a||t,title:r?`The Vellum provider cannot be removed`:a?`This is your default provider. Set another provider as default first.`:void 0,onClick:()=>void x(e.name),tintColor:`var(--system-negative-strong)`})]})]}),n?(0,$.jsx)(h,{variant:`body-small-default`,as:`p`,className:`px-2 pb-1 text-(--system-negative-strong)`,children:n}):null]},e.name)})})}),(0,$.jsxs)(I.Footer,{className:`justify-between`,children:[(0,$.jsx)(s,{variant:`outlined`,size:`compact`,onClick:d,children:`+ Add Provider`}),(0,$.jsx)(s,{variant:`outlined`,size:`compact`,onClick:l,children:`Done`})]})]})}function mn(e){let[t,n]=(0,Q.useState)(void 0);return(0,Q.useEffect)(()=>{t!==void 0&&e===t.value&&n(void 0)},[e,t]),[t===void 0?e:t.value,(0,Q.useCallback)(e=>n(e===void 0?void 0:{value:e}),[])]}function hn(){let e=Ft(),t=u(),{data:n}=d({...tt({path:{assistant_id:e}}),staleTime:3e4}),r=sn(),{data:i,refetch:o}=d({...rt({path:{assistant_id:e}}),enabled:r}),c=i?.availability,l=n?.llm?.activeProfile??null,f=n?.llm?.advisorProfile??null,p=n?.llm?.callSites??{},{profiles:m,profileOrder:g}=Le(n?.llm,e),_=(0,Q.useMemo)(()=>W(m,g),[m,g]),v=Xe({onSuccess:n=>{st(t,{path:{assistant_id:e}},n)}}),[y,b]=mn(l),[x,S]=mn(f),[C,w]=(0,Q.useState)(!1),[T,D]=(0,Q.useState)(!1),[O,k]=(0,Q.useState)(!1),j=(0,Q.useMemo)(()=>xe(_,[y]),[_,y]),M=(0,Q.useMemo)(()=>xe(_,[x]),[_,x]),N=Object.entries(p).filter(([e,t])=>e!==`mainAgent`&&(t?.profile!=null||t?.provider!=null||t?.model!=null)).length,P=N===1?`1 Override`:N>0?`${N} Overrides`:`Overrides`,F=y!==l,I=x!==f,R=(0,Q.useCallback)(async()=>{try{let t={};F&&(t.activeProfile=y),I&&(t.advisorProfile=x),await v.mutateAsync({path:{assistant_id:e},body:{llm:t}}),L.success(`Saved.`)}catch(e){L.error(`Failed to save. Please try again.`),a(e,{context:`settings-ai-language-model-save`})}},[F,I,y,x,v,e]);return(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(Vt,{title:`Language Model`,subtitle:`Configure the LLMs that power your assistant`,children:(0,$.jsxs)(`div`,{className:`space-y-4`,children:[c&&c.status!==`ok`&&(0,$.jsx)(A,{tone:c.status===`unknown`?`warning`:`error`,children:c.message??`Your default provider is not available.`}),(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Default Profile`}),(0,$.jsx)(z,{value:y??``,onChange:e=>{b(e===``?null:e)},placeholder:`Select a default profile…`,options:j.map(e=>({value:e.name,label:De(e)}))}),j.length===0?(0,$.jsx)(h,{variant:`body-small-default`,as:`p`,className:`mt-1 text-(--content-tertiary)`,children:`No profiles yet. Click Profiles below to create one.`}):null]}),(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Advisor Profile`}),(0,$.jsx)(z,{value:x??``,onChange:e=>{S(e===``?null:e)},placeholder:`Select an advisor profile…`,options:M.map(e=>({value:e.name,label:De(e)}))}),(0,$.jsx)(h,{variant:`body-small-default`,as:`p`,className:`mt-1 text-(--content-tertiary)`,children:`Which model your assistant consults for a second opinion`})]}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(s,{variant:`outlined`,size:`compact`,onClick:()=>k(!0),children:`Providers`}),(0,$.jsx)(s,{variant:`outlined`,size:`compact`,onClick:()=>w(!0),children:`Profiles`}),(0,$.jsx)(s,{variant:`outlined`,size:`compact`,onClick:()=>D(!0),children:P})]}),(F||I)&&(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(Wt,{onClick:R,disabled:v.isPending}),v.isPending&&(0,$.jsx)(E,{className:`h-4 w-4 animate-spin text-[var(--content-disabled)]`})]})]})}),e&&(0,$.jsx)(rn,{isOpen:C,assistantId:e,onClose:()=>w(!1)}),e&&(0,$.jsx)(Zt,{isOpen:T,onClose:()=>D(!1),assistantId:e}),e&&(0,$.jsx)(fn,{isOpen:O,assistantId:e,onClose:()=>{k(!1),r&&o()}})]})}function gn(){let e=Ft();return(0,Q.useCallback)(async(t,n)=>{try{let{data:r}=await Ge({path:{assistant_id:e},body:{value:n,type:`api_key`,name:t},throwOnError:!0});se(r)}catch(e){throw e instanceof Error&&e.message===`No assistant found`?L.error(`Assistant not ready. Please try again.`):L.error(`Failed to save ${t} API key. Please try again.`),a(e,{context:`provision_provider_key`}),e}},[e])}var _n=`0.10.12`;function vn(){return dt(_n)}function yn(){let e=Ft(),i=u(),o=ht(),{data:s}=d({...tt({path:{assistant_id:e}}),enabled:o,staleTime:3e4}),c=Xe({onSuccess:t=>{st(i,{path:{assistant_id:e}},t)}}),l=gn(),f=(0,Q.useMemo)(()=>{if(!s)return r(be,`inference-provider-native`);let e=s.services?.[`web-search`];return(e?.mode===`managed`&&e?.provider!==`inference-provider-native`?`vellum`:e?.provider)||r(`vellum:ai:webSearchProvider`,`inference-provider-native`)},[s]),[p,m]=(0,Q.useState)(!1),[h,g]=mn(f),[_,v]=(0,Q.useState)(``),y=le.has(h),{hasStoredCredential:b}=re({assistantId:e,credentialKind:`api_key`,credentialName:h,enabled:y}),x=_.trim().length>0,S=p||y&&!b&&!x||h===f&&!x,C=Y(ne[h]??`Enter your API key`,b),w=(0,Q.useCallback)(async()=>{m(!0);let t=_.trim(),r=Me(h),o=y&&t.length>0;try{o&&await l(h,t),await lt();let n=h===`vellum`?vn()?{provider:`vellum`,mode:`managed`}:{mode:`managed`}:{provider:h,mode:`your-own`};await c.mutateAsync({path:{assistant_id:e},body:{services:{"web-search":n}}}).catch(e=>{throw L.error(`Failed to update assistant configuration. Please try again.`),a(e,{context:`patch_daemon_config`}),e})}catch{m(!1);return}m(!1);try{if(n(be,h),o){r&&n(r,t);let a=J(e,`api_key`,h);i.setQueryData(a,!0),i.invalidateQueries({queryKey:a}),v(``)}L.success(`Web search settings saved.`)}catch(e){a(e,{context:`settings-ai-web-search-persist-local`}),L.error(`Saved, but local preferences could not be written.`)}},[y,c,l,i,e,_,h]),T=(0,Q.useCallback)(()=>{let e=Me(h);e&&t(e),v(``),g(`inference-provider-native`),n(be,`inference-provider-native`)},[h,g]);return(0,$.jsx)(Vt,{title:`Web Search`,subtitle:`Configure how your assistant should search the web`,children:(0,$.jsxs)(`div`,{className:`space-y-4`,children:[(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Provider`}),(0,$.jsx)(z,{"aria-label":`Web search provider`,value:h,onChange:g,options:ue.map(e=>({value:e,label:ce[e]??e}))})]}),h===`vellum`&&(0,$.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Search runs through your Vellum account.`}),y&&(0,$.jsx)(P,{label:`API Key`,type:`password`,value:_,onChange:e=>v(e.target.value),placeholder:C,fullWidth:!0}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(Wt,{onClick:w,disabled:S}),p&&(0,$.jsx)(E,{className:`h-4 w-4 animate-spin text-[var(--content-disabled)]`}),y&&(0,$.jsx)(Gt,{onClick:T,filled:!0})]})]})})}var bn=`default`;function xn(){let e=Ft(),i=u(),{data:o}=d({...tt({path:{assistant_id:e}}),staleTime:3e4}),s=Xe({onSuccess:t=>{st(i,{path:{assistant_id:e}},t)}}),c=gn(),l=(0,Q.useMemo)(()=>o?o.services?.[`web-fetch`]?.provider||r(`vellum:ai:webFetchProvider`,bn):r(Ee,bn),[o]),[f,p]=(0,Q.useState)(!1),[m,h]=mn(l),[g,_]=(0,Q.useState)(``),v=B.has(m),{hasStoredCredential:y}=re({assistantId:e,credentialKind:`api_key`,credentialName:m,enabled:v}),b=g.trim().length>0,x=f||v&&!y&&!b||m===l&&!b,S=Y(Oe[m]??`Enter your API key`,y),C=(0,Q.useCallback)(async()=>{p(!0);let t=g.trim(),r=v&&t.length>0;try{r&&await c(m,t),await s.mutateAsync({path:{assistant_id:e},body:{services:{"web-fetch":{provider:m}}}}).catch(e=>{throw L.error(`Failed to update assistant configuration. Please try again.`),a(e,{context:`patch_daemon_config`}),e})}catch{p(!1);return}p(!1);try{if(n(Ee,m),r){let r=q(m);r&&n(r,t);let a=J(e,`api_key`,m);i.setQueryData(a,!0),i.invalidateQueries({queryKey:a}),_(``)}L.success(`Web fetch settings saved.`)}catch(e){a(e,{context:`settings-ai-web-fetch-persist-local`}),L.error(`Saved, but local preferences could not be written.`)}},[v,s,c,i,e,g,m]),w=(0,Q.useCallback)(()=>{let e=q(m);e&&t(e),_(``),h(bn),n(Ee,bn)},[m,h]);return(0,$.jsx)(Vt,{id:`web-fetch`,title:`Web Fetch`,subtitle:`Configure how your assistant reads individual web pages`,children:(0,$.jsxs)(`div`,{className:`space-y-4`,children:[(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Provider`}),(0,$.jsx)(z,{value:m,onChange:h,options:Re.map(e=>({value:e,label:_e[e]??e}))})]}),v&&(0,$.jsx)(P,{label:`API Key`,type:`password`,value:g,onChange:e=>_(e.target.value),placeholder:S,fullWidth:!0}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(Wt,{onClick:C,disabled:x}),f&&(0,$.jsx)(E,{className:`h-4 w-4 animate-spin text-[var(--content-disabled)]`}),v&&(0,$.jsx)(Gt,{onClick:w,filled:!0})]})]})})}function Sn({subdomain:e,onSubdomainChange:t,domainSuffix:n,subdomainPlaceholder:r=`my-assistant`,disabled:i,autoFocus:a,prefix:o,error:s,locked:c,lockedMessage:l}){return(0,$.jsxs)(`div`,{children:[(0,$.jsxs)(`div`,{className:`flex h-9 w-full items-center rounded-md border bg-[var(--field-bg)] text-body-medium-lighter transition-[border-color] duration-150 ${s?`border-[var(--system-negative-strong)]`:`border-[var(--field-border)] focus-within:border-[var(--border-active)]`}`,children:[o,(0,$.jsx)(`input`,{value:e,onChange:e=>t(e.target.value.toLowerCase().trim()),disabled:i||c,readOnly:c,autoFocus:a,placeholder:r,"aria-label":`Subdomain`,"aria-invalid":!!s,className:`h-full min-w-0 flex-1 bg-transparent ${o?`pl-1.5`:`pl-3`} pr-1 text-[var(--content-default)] placeholder:text-[var(--content-tertiary)] outline-none disabled:cursor-not-allowed disabled:opacity-60`}),(0,$.jsxs)(`span`,{className:`shrink-0 pr-3 font-mono text-[var(--content-secondary)]`,children:[`.`,n]})]}),s&&(0,$.jsx)(`p`,{className:`mt-1.5 text-body-small-default text-[var(--system-negative-strong)]`,children:s}),c&&l&&(0,$.jsx)(`p`,{className:`mt-1.5 text-body-small-default text-[var(--content-tertiary)]`,children:l})]})}function Cn({assistantId:e,assistantHandle:t,emailRootDomain:n}){let r=u(),i=l(),[o,p]=c(),[m,h]=(0,Q.useState)(``),[g,_]=(0,Q.useState)(!1),[v,y]=(0,Q.useState)(null),[b,x]=(0,Q.useState)(``),[C,w]=(0,Q.useState)(null),[T,D]=(0,Q.useState)(!1),[k,j]=(0,Q.useState)(!1),[M,N]=(0,Q.useState)(!1);(0,Q.useEffect)(()=>{g||!t||m||(h(t),_(!0))},[t,g,m]);let P=d({...St(),enabled:!0}),F=P.data,I=F?.entitlements,z=I?.managed_email===!0,B=!!I&&!z,V=!F&&P.isError&&!P.isFetching,ee=d({...gt({path:{assistant_id:e}}),enabled:!B}),H=d({...Tt({path:{assistant_id:e}}),enabled:!B}),U=ee.data?.results?.[0],W=H.data?.results?.[0],te=U?`${U.subdomain}.${n}`:null,G=d({...bt({path:{assistant_id:e,id:W?.id??``}}),enabled:!!W?.id,refetchOnWindowFocus:!1}),K=d({...Dt({path:{assistant_id:e,id:U?.id??``}}),enabled:!!U?.id,refetchInterval:e=>{let t=e.state.data?.status;return t===`verified`||t===`failed`?!1:1e4},refetchOnWindowFocus:!0});(0,Q.useEffect)(()=>{o.get(`release`)!==`1`||!U||W||(j(!0),p(e=>{let t=new URLSearchParams(e);return t.delete(`release`),t},{replace:!0}))},[W,U,o,p]);let q=f(wt()),J=f(Et()),Y=f(_t()),X=f(vt()),Z=(0,Q.useCallback)(()=>{let t={assistant_id:e};r.invalidateQueries({queryKey:xt({path:t})}),r.invalidateQueries({queryKey:Ct({path:t})}),W?.id&&r.invalidateQueries({queryKey:yt({path:{...t,id:W.id}})}),r.invalidateQueries({queryKey:kt()})},[W?.id,e,r]),ne=(0,Q.useCallback)(async()=>{let t=m.trim().toLowerCase();if(!t){y(`Enter a subdomain.`);return}D(!1);try{await q.mutateAsync({path:{assistant_id:e},body:{subdomain:t}}),h(``),y(null),Z(),L.success(`Domain ${t}.${n} registered.`)}catch(e){y(ft(e,void 0,`Failed to register domain.`))}},[e,n,Z,q,m]),re=(0,Q.useCallback)(async()=>{let t=b.trim().toLowerCase();if(!t){w(`Enter an email username.`);return}try{await Y.mutateAsync({path:{assistant_id:e},body:{username:t}}),x(``),w(null),Z(),L.success(`Email address created.`)}catch(e){w(ft(e,void 0,`Failed to create email address.`))}},[e,Z,Y,b]),ie=(0,Q.useCallback)(async()=>{if(W?.id){N(!1);try{await X.mutateAsync({path:{assistant_id:e,id:W.id}}),Z(),L.success(`Email address removed.`)}catch(e){a(e,{context:`email_address_delete`}),L.error(`Failed to remove email address.`)}}},[W?.id,e,X,Z]),ae=(0,Q.useCallback)(async()=>{if(!U?.id)return;if(W){L.error(`Remove the email address first.`);return}j(!1);let t=U.subdomain;try{await J.mutateAsync({path:{assistant_id:e,id:U.id}}),h(t),Z(),L.success(`Domain released.`)}catch(e){a(e,{context:`email_domain_release`}),L.error(`Failed to release domain.`)}},[W,e,J,U?.id,U?.subdomain,Z]);if(P.isLoading)return(0,$.jsxs)(`div`,{className:`flex items-center gap-2 text-body-small-default text-[var(--content-tertiary)]`,children:[(0,$.jsx)(E,{className:`h-4 w-4 animate-spin`}),`Checking subscription…`]});if(B)return(0,$.jsxs)(A,{tone:`info`,icon:(0,$.jsx)(S,{className:`h-4 w-4`,"aria-hidden":!0}),title:`Get a dedicated email address for your assistant`,actions:(0,$.jsx)(s,{size:`compact`,onClick:()=>i(`${pt.settings.usage}?tab=billing&adjust_plan`),children:`Upgrade to Pro`}),children:[`Pro plans include a managed`,` `,`<your-subdomain>.${n}`,` inbox — no provider setup required. Or switch to `,(0,$.jsx)(`strong`,{children:`Your Own`}),` to bring an existing provider.`]});let oe=V?(0,$.jsx)(A,{tone:`warning`,title:`Couldn't verify subscription status`,actions:(0,$.jsx)(s,{size:`compact`,variant:`outlined`,onClick:()=>P.refetch(),children:`Retry`}),children:`We couldn't reach the billing service. The form below assumes managed email is enabled for your org — if it isn't, registering a domain will fail.`}):null;return U?W?(0,$.jsxs)(`div`,{className:`space-y-4`,children:[oe,(0,$.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Address`}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(`span`,{className:`font-mono text-body-small-default text-[var(--content-default)]`,children:W.address}),(0,$.jsx)(Ut,{status:K.data?.status,message:K.data?.message,isLoading:K.isLoading}),(0,$.jsx)(s,{variant:`dangerGhost`,size:`compact`,iconOnly:(0,$.jsx)(O,{}),onClick:()=>N(!0),disabled:X.isPending,"aria-label":`Remove email address`})]}),(0,$.jsx)(R,{open:M,title:`Remove Email Address`,message:(0,$.jsxs)($.Fragment,{children:[`Are you sure you want to remove `,(0,$.jsx)(`code`,{className:`rounded bg-[var(--surface-active)] px-1 py-0.5 font-mono text-[0.9em]`,children:W.address}),`? Your assistant will no longer be able to send or receive email at this address.`]}),confirmLabel:`Remove`,destructive:!0,onConfirm:ie,onCancel:()=>N(!1)})]}),G.data?.usage&&(0,$.jsxs)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:[G.data.usage.sent_today,` /`,` `,G.data.usage.daily_limit,` sent today ·`,` `,G.data.usage.received_today,` received`]})]}):(0,$.jsxs)(`div`,{className:`space-y-4`,children:[oe,(0,$.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Domain`}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsxs)(`span`,{className:`font-mono text-body-small-default text-[var(--content-default)]`,children:[U.subdomain,`.`,n]}),(0,$.jsx)(Ut,{status:K.data?.status,message:K.data?.message,isLoading:K.isLoading}),(0,$.jsx)(s,{variant:`dangerGhost`,size:`compact`,iconOnly:(0,$.jsx)(O,{}),onClick:()=>j(!0),disabled:J.isPending,"aria-label":`Release domain`})]}),(0,$.jsx)(R,{open:k,title:`Release Domain`,message:(0,$.jsxs)($.Fragment,{children:[`Are you sure you want to release `,(0,$.jsxs)(`code`,{className:`rounded bg-[var(--surface-active)] px-1 py-0.5 font-mono text-[0.9em]`,children:[U.subdomain,`.`,n]}),`? The subdomain will become available for others to claim.`]}),confirmLabel:`Release`,destructive:!0,onConfirm:ae,onCancel:()=>j(!1)})]}),(0,$.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Email address`}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsxs)(`div`,{className:`flex h-9 min-w-0 flex-1 items-center rounded-md border bg-[var(--field-bg)] text-body-medium-lighter transition-[border-color] duration-150 ${C?`border-[var(--system-negative-strong)]`:`border-[var(--field-border)] focus-within:border-[var(--border-active)]`}`,children:[(0,$.jsx)(`input`,{value:b,onChange:e=>{x(e.target.value.toLowerCase()),C&&w(null)},placeholder:`hi`,"aria-label":`Email username`,"aria-invalid":!!C,className:`h-full min-w-0 flex-1 bg-transparent pl-3 pr-1 text-[var(--content-default)] placeholder:text-[var(--content-tertiary)] outline-none`}),(0,$.jsxs)(`span`,{className:`shrink-0 pr-3 font-mono text-[var(--content-secondary)]`,children:[`@`,te]})]}),(0,$.jsx)(s,{onClick:re,disabled:Y.isPending||!b.trim(),children:Y.isPending?`Creating…`:`Create`})]}),C&&(0,$.jsx)(`p`,{className:`text-body-small-default text-[var(--system-negative-strong)]`,children:C})]})]}):(0,$.jsxs)(`div`,{className:`space-y-3`,children:[oe,(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Subdomain`}),(0,$.jsx)(Sn,{subdomain:m,onSubdomainChange:e=>{h(e),v&&y(null)},domainSuffix:n,subdomainPlaceholder:`my-assistant`,error:v}),(0,$.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Each assistant gets its own subdomain. Lowercase letters, numbers, and hyphens only.`}),(0,$.jsx)(s,{onClick:()=>D(!0),disabled:q.isPending||!m.trim(),children:q.isPending?`Registering…`:`Register`}),(0,$.jsx)(R,{open:T,title:`Set Subdomain`,message:(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`code`,{className:`rounded bg-[var(--surface-active)] px-1 py-0.5 font-mono text-[0.9em]`,children:m.trim().toLowerCase()||`subdomain`}),` will also become your assistant's public handle. You won't be able to change it once set.`]}),confirmLabel:`Confirm`,onConfirm:ne,onCancel:()=>D(!1)})]})}function wn(){let e=Ft(),t=ht(),{data:o}=d({...Ot(),enabled:t}),s=o?.results?.[0]?.handle,c=Lt.use.emailRootDomain(),l=mt(),[u,f]=(0,Q.useState)(()=>l===`gated`?`your-own`:K(r(ke,`managed`),`managed`)),[p,m]=(0,Q.useState)(()=>{let e=r(fe,`resend`);return e===`mailgun`||e===`resend`?e:`resend`}),h=d({queryKey:[`byoEmailCredential`,e,p],queryFn:async()=>{let{data:t}=await Je({path:{assistant_id:e},body:{service:p,field:`api_key`},throwOnError:!0});return t},enabled:u===`your-own`||l===`gated`,staleTime:6e4,retry:i,meta:{errorContext:`byo_email_credential_check`}});(0,Q.useEffect)(()=>{h.error&&a(h.error,{context:`byo_email_credential_check`,bestEffort:!0})},[h.error]);let g=h.data?.hasSecret===!0,_=(0,Q.useCallback)(e=>{f(e),n(ke,e)},[]),v=(0,Q.useCallback)(()=>{n(fe,p),L.success(`Email settings saved.`)},[p]),y=(0,Q.useMemo)(()=>de.find(e=>e.id===p)??de[0],[p]),x=(0,$.jsxs)(`div`,{className:`flex items-start gap-2 rounded-lg border border-[var(--border-subtle)] bg-[var(--surface-sunken)] p-3 text-body-small-default text-[var(--content-tertiary)]`,children:[(0,$.jsx)(w,{className:`mt-0.5 h-3.5 w-3.5 shrink-0 text-[var(--system-positive-strong)]`}),(0,$.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,$.jsxs)(`span`,{children:[`Configure `,y.displayName,` via the assistant CLI: ask the assistant to run the`,` `,(0,$.jsx)(`code`,{className:`rounded bg-[var(--surface-active)] px-1 py-0.5 text-[12px]`,children:y.setupSkill}),` `,`skill. It walks you through storing the API key, detecting the domain, and (optionally) wiring up an inbound webhook.`]}),(0,$.jsxs)(`a`,{href:y.docsUrl,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex items-center gap-1 text-[var(--system-positive-strong)] underline hover:opacity-80`,children:[`Open `,y.displayName,(0,$.jsx)(C,{className:`h-3 w-3`})]})]})]}),S=(0,$.jsxs)(`div`,{className:`space-y-4`,children:[(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Provider`}),(0,$.jsx)(z,{value:p,onChange:e=>{(e===`mailgun`||e===`resend`)&&m(e)},options:de.map(e=>({value:e.id,label:e.displayName}))})]}),g?(0,$.jsxs)(`div`,{className:`space-y-3`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2 rounded-lg border border-[var(--system-positive-subtle)] bg-[var(--surface-sunken)] p-3 text-body-small-default text-[var(--content-default)]`,children:[(0,$.jsx)(b,{className:`h-4 w-4 shrink-0 text-[var(--system-positive-strong)]`}),(0,$.jsxs)(`span`,{children:[y.displayName,` API key configured. To reconfigure, run the`,` `,(0,$.jsx)(`code`,{className:`rounded bg-[var(--surface-active)] px-1 py-0.5 text-[12px]`,children:y.setupSkill}),` `,`skill.`]})]}),(0,$.jsxs)(`a`,{href:y.docsUrl,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex items-center gap-1 text-body-small-default text-[var(--system-positive-strong)] underline hover:opacity-80`,children:[`Open `,y.displayName,(0,$.jsx)(C,{className:`h-3 w-3`})]})]}):x,(0,$.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,$.jsx)(Wt,{onClick:v,disabled:!1})})]});return l===`gated`?(0,$.jsx)(Vt,{id:`email`,title:`Email`,subtitle:`Configure how your assistant sends and receives email`,children:S}):(0,$.jsx)(Bt,{id:`email`,title:`Email`,subtitle:`Configure how your assistant sends and receives email`,mode:u,onModeChange:_,children:u===`managed`?(0,$.jsx)(`div`,{className:`space-y-4`,children:l===`disabled`?(0,$.jsx)(Pt,{children:`Log in to the Vellum platform to manage email settings.`}):(0,$.jsx)(Cn,{assistantId:e,assistantHandle:s,emailRootDomain:c})}):S})}function Tn(){let e=Ft(),t=u(),{data:i}=d({...tt({path:{assistant_id:e}}),staleTime:3e4}),o=Xe({onSuccess:n=>{st(t,{path:{assistant_id:e}},n)}}),s=gn(),[c,l]=mn((0,Q.useMemo)(()=>K(i?i.services?.[`image-generation`]?.mode??r(`vellum:ai:imageGenMode`,`your-own`):r(Fe,`your-own`),`your-own`),[i])),[f,p]=(0,Q.useState)(()=>r(he,`gemini-3.1-flash-image-preview`)),[m,h]=(0,Q.useState)(``),[g,_]=(0,Q.useState)(!1),v=(0,Q.useCallback)(async()=>{_(!0);let r=m.trim(),i=c===`your-own`&&r.length>0;try{i&&await s(ie(f),r),await o.mutateAsync({path:{assistant_id:e},body:{services:{"image-generation":{mode:c}}}}).catch(e=>{throw L.error(`Failed to update assistant configuration. Please try again.`),a(e,{context:`patch_daemon_config`}),e});try{await Ye({path:{assistant_id:e},body:{modelId:f},throwOnError:!0})}catch(e){throw L.error(`Failed to update image generation model. Please try again.`),a(e,{context:`set_image_gen_model`}),e}finally{t.invalidateQueries({queryKey:it({path:{assistant_id:e}})})}}catch{_(!1);return}_(!1);try{n(Fe,c),n(he,f),i&&h(``),L.success(`Image generation settings saved.`)}catch(e){a(e,{context:`settings-ai-image-gen-persist-local`}),L.error(`Saved, but local preferences could not be written.`)}},[m,c,f,e,o,s,t]),y=(0,Q.useCallback)(()=>{h(``),p(`gemini-3.1-flash-image-preview`),n(he,`gemini-3.1-flash-image-preview`)},[]);return(0,$.jsx)(Bt,{title:`Image Generation`,subtitle:`Configure which model your assistant uses to generate images`,mode:c,onModeChange:e=>l(e),children:c===`managed`?(0,$.jsxs)(`div`,{className:`space-y-3`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Active Model`}),(0,$.jsxs)(`div`,{className:`flex items-end gap-3`,children:[(0,$.jsx)(z,{className:`flex-1`,value:f,onChange:p,options:ye.map(e=>({value:e,label:Be[e]??e}))}),(0,$.jsx)(Wt,{onClick:v,disabled:g}),g&&(0,$.jsx)(E,{className:`h-4 w-4 animate-spin text-[var(--content-disabled)]`})]})]}):(0,$.jsxs)(`div`,{className:`space-y-4`,children:[(0,$.jsx)(P,{label:`API Key`,type:`password`,value:m,onChange:e=>h(e.target.value),placeholder:ie(f)===`openai`?`Enter your OpenAI API key`:`Enter your Gemini API key`,fullWidth:!0}),(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Active Model`}),(0,$.jsx)(z,{value:f,onChange:p,options:ye.map(e=>({value:e,label:Be[e]??e}))})]}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(Wt,{onClick:v,disabled:g}),g&&(0,$.jsx)(E,{className:`h-4 w-4 animate-spin text-[var(--content-disabled)]`}),(0,$.jsx)(Gt,{onClick:y})]})]})})}async function En(e){let{provider:t,apiKey:n,voiceId:r,text:i}=e;if(n.trim().length===0)return{kind:`error`,message:`Save an API key for this provider first.`};try{return t===`elevenlabs`?await Dn(n,r,i):t===`deepgram`?await On(n,i):t===`fish-audio`?{kind:`unsupported`,message:`Fish Audio TTS is only supported in the desktop app today. Use ElevenLabs or Deepgram to test from the browser.`}:t===`xai`?{kind:`unsupported`,message:`xAI TTS is only supported in the desktop app today. Use ElevenLabs or Deepgram to test from the browser.`}:{kind:`unsupported`,message:`TTS testing for "${t}" is not supported from the browser yet.`}}catch(e){return{kind:`error`,message:e instanceof Error?e.message:`Failed to reach the TTS provider.`}}}async function Dn(e,t,n){let r=t.trim();if(r.length===0)return{kind:`error`,message:`Enter and save a Voice ID before testing ElevenLabs.`};let i=await fetch(`https://api.elevenlabs.io/v1/text-to-speech/${encodeURIComponent(r)}?output_format=mp3_44100_128`,{method:`POST`,headers:{"xi-api-key":e,"Content-Type":`application/json`,Accept:`audio/mpeg`},body:JSON.stringify({text:n,model_id:`eleven_turbo_v2_5`})});return i.ok?{kind:`audio`,blob:await i.blob()}:{kind:`error`,message:await kn(i,`ElevenLabs rejected the request.`)}}async function On(e,t){let n=await fetch(`https://api.deepgram.com/v1/speak?model=aura-2-thalia-en`,{method:`POST`,headers:{Authorization:`Token ${e}`,"Content-Type":`application/json`,Accept:`audio/mpeg`},body:JSON.stringify({text:t})});return n.ok?{kind:`audio`,blob:await n.blob()}:{kind:`error`,message:await kn(n,`Deepgram rejected the request.`)}}async function kn(e,t){try{let n=await e.text();if(n.length===0)return`${t} (HTTP ${e.status})`;try{let e=JSON.parse(n);if(e&&typeof e==`object`&&`detail`in e&&typeof e.detail==`string`)return e.detail;if(e&&typeof e==`object`&&`message`in e&&typeof e.message==`string`)return e.message}catch{}return n.slice(0,200)}catch{return`${t} (HTTP ${e.status})`}}function An({assistantId:e,value:t,onChange:n,className:r}){let[i,a]=(0,Q.useState)(!1),{voices:o}=At(e);if(o.length===0)return null;let s=o.find(e=>e.model===t)??o[0];return(0,$.jsxs)(N.Root,{open:i,onOpenChange:a,children:[(0,$.jsx)(N.Trigger,{asChild:!0,children:(0,$.jsxs)(`button`,{type:`button`,"aria-label":`Voice`,className:m(`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 text-[var(--content-default)] transition-colors focus:outline-none data-[state=open]:border-[var(--border-active)]`,r),children:[(0,$.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:s?jt(s.description):`Select a voice`}),(0,$.jsx)(v,{className:`h-3.5 w-3.5 shrink-0 text-[var(--content-tertiary)]`,"aria-hidden":!0})]})}),(0,$.jsx)(N.Content,{side:`bottom`,align:`start`,className:`w-[var(--radix-popover-trigger-width)] p-1`,children:(0,$.jsx)(Mt,{assistantId:e,value:t,onChange:n,onSelect:()=>a(!1),showSource:!0})})]})}var jn={elevenlabs:`voiceId`,"fish-audio":`referenceId`,xai:`voiceId`};function Mn({assistantId:e,hideSaveButton:t=!1,hideCredentialsGuide:i=!1,onSaveStateChange:a}={}){let o=Ft(),c=e??o,l=ct.use.name()??`your assistant`,f=ht(),p=u(),{data:m}=d({...Ze({path:{assistant_id:c}}),enabled:f,staleTime:1/0}),h=(0,Q.useMemo)(()=>{let e=m?.providers;if(!e)return Ve;if(e.some(e=>e.id===`vellum`))return e;let t=Ve.find(e=>e.id===`vellum`);return t?[t,...e]:e},[m]),{data:g}=d({...tt({path:{assistant_id:c}}),enabled:f,staleTime:3e4}),_=g?.services?.tts,v=_?.mode===`managed`?`vellum`:_?.provider,y=`elevenlabs`,b=(0,Q.useMemo)(()=>v??r(`vellum:voice:ttsProvider`,y),[v,y]),x=!!v,[S,C]=mn(b),[w,E]=(0,Q.useState)(``),[D,O]=(0,Q.useState)(``),[k,A]=(0,Q.useState)(``),[j,M]=(0,Q.useState)(!1),[N,F]=(0,Q.useState)(!1),[I,R]=(0,Q.useState)(!1),{voices:B,defaultModel:V,fetched:ee}=Nt(c,{enabled:S===`vellum`}),H=_?.providers?.vellum?.model??V??``,[U,W]=mn(H),te=B.find(e=>e.model===U)??B[0],[G,K]=(0,Q.useState)(null),q=B.some(e=>e.model===H),J=G??(ee&&H!==``&&!q),Y=(0,Q.useMemo)(()=>h.find(e=>e.id===S)??h[0],[S,h]),X=S===`vellum`&&Y.supportsVoiceSelection&&U.trim()!==``&&U.trim()!==H,Z=(0,Q.useCallback)(e=>{let t=r(ge+e,``),n=r(je+e,``);M(t.length>0),O(n),A(n),E(``)},[]);(0,Q.useEffect)(()=>{Z(S)},[S,Z]);let ne=(0,Q.useMemo)(()=>{let e=S!==b,t=w.trim().length>0,n=D.trim()!==k;return e||t||n||X},[S,b,w,D,k,X]),re=(0,Q.useCallback)(async()=>{let e=w.trim(),t=D.trim(),i=Y.id;n(ve,i),e.length>0&&n(ge+i,e),n(je+i,t);let a=e.length>0?e:r(ge+i,``),o=jn[i];R(!0);try{if(a.length>0){let{response:e}=await Ke({path:{assistant_id:c},body:{service:i,field:`api_key`,value:a,label:`${Y.displayName} API Key`},throwOnError:!1});if(!e?.ok)throw Error(`Failed to store API key (HTTP ${e?.status??`?`})`)}let e={...S!==b||!x?{provider:i,mode:i===`vellum`?`managed`:`your-own`}:{},...o?{providers:{[i]:{[o]:t}}}:{},...X?{providers:{vellum:{model:U.trim()}}}:{}};if(Object.keys(e).length>0){let{response:t}=await qe({path:{assistant_id:c},body:{services:{tts:e}},throwOnError:!1});if(!t?.ok)throw Error(`Failed to save configuration (HTTP ${t?.status??`?`})`)}return M(a.length>0),A(t),E(``),p.invalidateQueries({queryKey:it({path:{assistant_id:c}})}),L.success(`Text-to-speech settings saved`),!0}catch(e){return L.error(e instanceof Error?e.message:`Failed to save text-to-speech settings`),!1}finally{R(!1)}},[c,S,U,X,w,D,Y,b,x,p]);(0,Q.useEffect)(()=>{a?.({hasChanges:ne,saving:I,save:re})},[a,ne,I,re]);let ie=(0,Q.useCallback)(()=>{n(ge+S,``),M(!1),E(``)},[S]),ae=(0,Q.useCallback)(async()=>{F(!0);try{let e=r(ge+S,``),t=w.trim(),n=t.length>0?t:e;if(n.length===0){L.error(`Save an API key for this provider before testing.`);return}let i=r(je+S,``),a=D.trim(),o=await En({provider:S,apiKey:n,voiceId:a.length>0?a:i,text:`Hey! It's ${l}. How does this sound?`});if(o.kind!==`audio`){L.error(o.message);return}let s=URL.createObjectURL(o.blob);try{let e=new Audio(s);await e.play(),await new Promise(t=>{e.onended=()=>t(),e.onerror=()=>t()})}finally{URL.revokeObjectURL(s)}}finally{F(!1)}},[l,w,S,D]),oe=j?`•••••••• (Enter a new key to replace)`:Y.apiKeyPlaceholder,se=S===`vellum`,ce=se&&Y.supportsVoiceSelection,le=(0,$.jsxs)(s,{variant:`link`,size:`compact`,className:`inline-flex h-auto items-center gap-1 px-0 underline [--vbtn-fg:var(--content-tertiary)]`,onClick:()=>{K(!1),B.some(e=>e.model===U)||W(V||B[0]?.model||``)},children:[(0,$.jsx)(T,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),`Choose from catalog`]}),ue=ce&&J&&B.length>0?le:null;return(0,$.jsxs)(`div`,{className:`space-y-4`,children:[(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Provider`}),(0,$.jsx)(z,{value:S,onChange:C,options:h.map(e=>({value:e.id,label:e.displayName})),"aria-label":`TTS provider`})]}),!se&&(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`API Key`}),(0,$.jsx)(P,{type:`password`,value:w,onChange:e=>E(e.target.value),placeholder:oe,fullWidth:!0})]}),ce&&(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Voice`}),J?(0,$.jsx)(P,{type:`text`,value:U,onChange:e=>W(e.target.value),placeholder:`Enter a voice ID`,"aria-label":`Custom voice ID`,fullWidth:!0}):te?(0,$.jsx)(An,{assistantId:c,value:U,onChange:W}):ee&&(0,$.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`No managed voices are currently available.`})]}),Y.supportsVoiceSelection&&!se&&(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Voice ID`}),(0,$.jsx)(P,{type:`text`,value:D,onChange:e=>O(e.target.value),placeholder:`Enter a voice ID`,fullWidth:!0})]}),!i&&!se&&(0,$.jsx)(Kt,{guide:Y.credentialsGuide}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[!se&&(0,$.jsx)(s,{variant:`outlined`,onClick:ae,disabled:N,children:N?`Testing…`:`Test`}),(0,$.jsxs)(`div`,{className:`ml-auto flex items-center gap-3`,children:[ue,!t&&(0,$.jsx)(Wt,{onClick:re,disabled:!ne||I}),j&&!se&&(0,$.jsx)(Gt,{onClick:ie})]})]})]})}function Nn(){return(0,$.jsx)(Vt,{id:`text-to-speech`,title:`Text-to-Speech`,subtitle:`Configure how your assistant speaks`,children:(0,$.jsx)(Mn,{})})}var Pn={vellum:{provider:`vellum`},deepgram:{provider:`deepgram`,credentialService:`deepgram`},openai:{provider:`openai-whisper`,credentialService:`openai`}},Fn={vellum:`vellum`,deepgram:`deepgram`,"openai-whisper":`openai`},In=`deepgram`;function Ln({assistantId:e,hideSaveButton:t=!1,hideCredentialsGuide:i=!1,onSaveStateChange:a}={}){let o=Ft(),s=e??o,c=ht(),l=u(),[f]=(0,Q.useState)(()=>me.filter(e=>!e.requiresNativeDictation||H())),p=In,{data:m}=d({...tt({path:{assistant_id:s}}),enabled:c,staleTime:3e4}),h=m?.services?.stt,g=h?.mode===`managed`?`vellum`:h?.provider,_=(0,Q.useMemo)(()=>{let e=g?Fn[g]:void 0;if(e&&f.some(t=>t.id===e))return e;let t=r(ze,p);return f.some(e=>e.id===t)?t:p},[g,f,p]),v=!!g,[y,b]=mn(_),[x,S]=(0,Q.useState)(``),[C,w]=(0,Q.useState)(!1),[T,E]=(0,Q.useState)(!1);(0,Q.useEffect)(()=>{let e=r(ze,p);e===`macos-native`&&!f.some(t=>t.id===e)&&n(ze,p)},[f,p]);let D=(0,Q.useMemo)(()=>f.find(e=>e.id===y)??f[0],[f,y]),O=D.apiKeyPlaceholder!==void 0;(0,Q.useEffect)(()=>{w(r(Te+y,``).length>0),S(``)},[y]);let A=(0,Q.useMemo)(()=>{let e=y!==_,t=x.trim().length>0;return e||t},[y,_,x]),j=(0,Q.useCallback)(async()=>{let e=x.trim();n(ze,y),e.length>0&&n(Te+y,e);let t=Pn[y];E(!0);try{if(t?.credentialService){let n=e.length>0?e:r(Te+y,``);if(n.length>0){let{response:e}=await Ke({path:{assistant_id:s},body:{service:t.credentialService,field:`api_key`,value:n,label:`${D.displayName} API Key`},throwOnError:!1});if(!e?.ok)throw Error(`Failed to store API key (HTTP ${e?.status??`?`})`)}}if(t&&(y!==_||!v)||g===`vellum`&&y!==`vellum`){let e=t?.provider??In,{response:n}=await qe({path:{assistant_id:s},body:{services:{stt:{provider:e,mode:e===`vellum`?`managed`:`your-own`}}},throwOnError:!1});if(!n?.ok)throw Error(`Failed to save configuration (HTTP ${n?.status??`?`})`)}return e.length>0&&w(!0),S(``),l.invalidateQueries({queryKey:it({path:{assistant_id:s}})}),L.success(`Speech-to-text settings saved`),!0}catch(e){return L.error(e instanceof Error?e.message:`Failed to save speech-to-text settings`),!1}finally{E(!1)}},[s,y,x,D,_,v,g,l]);(0,Q.useEffect)(()=>{a?.({hasChanges:A,saving:T,save:j})},[a,A,T,j]);let M=(0,Q.useCallback)(()=>{n(Te+y,``),w(!1),S(``)},[y]),N=C?`•••••••• (Enter a new key to replace)`:D.apiKeyPlaceholder;return(0,$.jsxs)(`div`,{className:`space-y-4`,children:[(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Provider`}),(0,$.jsx)(z,{value:y,onChange:b,options:f.map(e=>({value:e.id,label:e.displayName})),"aria-label":`STT provider`})]}),O&&(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`API Key`}),(0,$.jsx)(P,{type:`password`,value:x,onChange:e=>S(e.target.value),placeholder:N,fullWidth:!0})]}),D.setupWarning&&(0,$.jsxs)(`div`,{className:`flex items-start gap-2 rounded-lg border border-[var(--border-subtle)] bg-[var(--surface-sunken)] p-3 text-body-small-default text-[var(--content-tertiary)]`,children:[(0,$.jsx)(k,{className:`mt-0.5 h-3.5 w-3.5 shrink-0 text-[var(--system-mid-strong)]`}),(0,$.jsx)(`span`,{children:D.setupWarning})]}),!i&&D.credentialsGuide&&(0,$.jsx)(Kt,{guide:D.credentialsGuide}),y===`vellum`&&(0,$.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Transcription runs through your Vellum account.`}),(!t||C)&&(0,$.jsxs)(`div`,{className:`flex items-center justify-end gap-2`,children:[!t&&(0,$.jsx)(Wt,{onClick:j,disabled:!A||T}),C&&(0,$.jsx)(Gt,{onClick:M})]})]})}function Rn(){return(0,$.jsx)(Vt,{title:`Speech-to-Text`,subtitle:`Configure how your assistant transcribes speech`,children:(0,$.jsx)(Ln,{})})}function zn(){return(0,Q.useEffect)(()=>{let e=window.location.hash.slice(1);e&&requestAnimationFrame(()=>{document.getElementById(e)?.scrollIntoView({block:`start`})})},[]),(0,$.jsxs)(`div`,{className:`space-y-5`,children:[(0,$.jsx)(Ht,{}),(0,$.jsx)(hn,{}),(0,$.jsx)(yn,{}),(0,$.jsx)(xn,{}),(0,$.jsx)(wn,{}),(0,$.jsx)(Tn,{}),(0,$.jsx)(Nn,{}),(0,$.jsx)(Rn,{})]})}export{zn as AiPage};
@@ -1 +0,0 @@
1
- import{n as e,t}from"./create-selectors-B-P03-8K.js";import{t as n}from"./impersonate-version-flag-QIrc9g5I.js";var r=t(e(e=>({name:null,version:null,assistantId:null,setIdentity:(t,r,i=null)=>{e({name:t,version:n()??r,assistantId:i})},clearIdentity:()=>e({name:null,version:null,assistantId:null})})));export{r as t};
@@ -1 +0,0 @@
1
- function e(e,t,n,r){let i=n.faceCenterOverrides.find(n=>n.bodyShape===e.id&&n.eyeStyle===t.id),a=i?i.faceCenter:e.faceCenter,o=e.viewBox,s=Math.min(r/o.width,r/o.height),c=(r-o.width*s)/2,l=(r-o.height*s)/2,u=t.sourceViewBox,d=Math.min(o.width/u.width,o.height/u.height),f=a.x-t.eyeCenter.x*d,p=a.y-t.eyeCenter.y*d,m=s*d,h=s*f+c,g=s*p+l;return{bodyTransform:`matrix(${s},0,0,${s},${c},${l})`,eyeTransform:`matrix(${m},0,0,${m},${h},${g})`}}function t(e,t,n,r){let i=e.bodyShapes.find(e=>e.id===t);if(!i)throw Error(`Unknown body shape: "${t}"`);let a=e.eyeStyles.find(e=>e.id===n);if(!a)throw Error(`Unknown eye style: "${n}"`);let o=e.colors.find(e=>e.id===r);if(!o)throw Error(`Unknown color: "${r}"`);return{bodyShape:i,eyeStyle:a,color:o}}function n(e){return e.replace(/&/g,`&amp;`).replace(/"/g,`&quot;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`)}function r(e,n,r,a,o=512){let{bodyShape:s,eyeStyle:c,color:l}=t(e,n,r,a);return i(s,c,l,e,o)}function i(t,r,i,a,o=512){let{bodyTransform:s,eyeTransform:c}=e(t,r,a,o);return`<svg xmlns="http://www.w3.org/2000/svg" width="${o}" height="${o}" viewBox="0 0 ${o} ${o}">${`<path d="${n(t.svgPath)}" fill="${n(i.hex)}" transform="${s}"/>`}${r.paths.map(e=>`<path d="${n(e.svgPath)}" fill="${n(e.color)}" transform="${c}"/>`).join(``)}</svg>`}export{e as n,t as r,r as t};
@@ -1,3 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/native-file-fkzAxQg0.js","assets/chunk-jRWAZmH_.js","assets/preload-helper-Cv2QeVDK.js","assets/is-electron-7N7iyz1y.js","assets/dist-BJSu8g5P.js"])))=>i.map(i=>d[i]);
2
- import{o as e,t}from"./chunk-jRWAZmH_.js";import{t as n}from"./capture-error-CqtAGHQu.js";import{t as r}from"./react-BFJW0bSv.js";import{t as i}from"./button-Dy5001j6.js";import{t as a}from"./preload-helper-Cv2QeVDK.js";import{m as o,t as s,u as c}from"./chunk-5KNZJZUH-Bsoom5--.js";import{n as l}from"./QueryClientProvider-CMu7CkQU.js";import{t as u}from"./useQuery-Bz-fbQ-m.js";import{t as d}from"./useMutation-CXGTrp4W.js";import{t as f}from"./jsx-runtime-D3ZM-ToX.js";import{t as p}from"./typography-DEI9Ra9z.js";import{t as m}from"./card-DRIctGVs.js";import{t as h}from"./createLucideIcon-CAM1RhH8.js";import{t as g}from"./arrow-left-C2ylPLHq.js";import{t as _}from"./arrow-up-BNd4Gpy7.js";import{t as v}from"./check-sC49_hjU.js";import{t as y}from"./chevron-down-B5A-0g8A.js";import{t as b}from"./chevron-up-2Qqarz0p.js";import{t as x}from"./circle-check-CjGnAahM.js";import{t as S}from"./coins-Hrmb9tmj.js";import{A as C,C as w,D as T,E,F as D,I as O,N as k,S as A,T as j,a as M,b as N,c as P,d as F,f as I,g as ee,h as te,i as ne,j as re,k as L,l as ie,m as ae,o as oe,p as se,r as R,t as ce,u as le,v as ue,w as de,x as fe,y as pe}from"./use-checkout-dismiss-refresh-DRknWbR3.js";import{n as z,o as me}from"./list-row-MeHwwyA6.js";import{t as he}from"./credit-card-C1RL73Rt.js";import{t as ge}from"./crown-DTdTkF6n.js";import{t as _e}from"./download-BBg2iaa4.js";import{t as ve}from"./external-link-CAce-RVu.js";import{t as ye}from"./info-CYiVdnQV.js";import{t as B}from"./loader-circle-BzJ2kz3F.js";import{t as be}from"./sparkles-DC8kqYjt.js";import{t as xe}from"./triangle-alert--e3n47gm.js";import{t as Se}from"./users-DWDkv8ju.js";import{t as Ce}from"./x-DuBvjmAE.js";import{t as V}from"./notice-DCp7WO3L.js";import{j as we,r as Te}from"./src-B9F84D64.js";import{t as Ee}from"./tag-D8NAGb0r.js";import{t as H}from"./input-C-GkeWCw.js";import{t as De}from"./toggle-D776PTw-.js";import{t as U}from"./modal-DwsThLGg.js";import{n as W}from"./toast-DR7D7Uma.js";import{t as Oe}from"./confirm-dialog-DZX6LhLy.js";import{t as ke}from"./dropdown-Dt0Iof85.js";import{Or as Ae}from"./sdk.gen-CsFDyJ6U.js";import{It as je,Lt as Me,Rt as Ne,c as Pe,d as Fe,ht as Ie,zt as Le}from"./react-query.gen-CbsPBjd9.js";import{t as Re}from"./api-errors-BRGPPSWw.js";import{o as ze}from"./auth-store-CK95leo_.js";import{lt as Be,ut as Ve}from"./sdk.gen-C6q_cviY.js";import{u as He}from"./routes-bwxCYLJj.js";import{i as G,r as Ue,t as We}from"./use-platform-gate-DcS6snds.js";import{t as Ge}from"./use-is-org-ready-DryM43xt.js";import{n as Ke,r as qe}from"./browser-DtFBB5v5.js";import{n as Je,t as Ye}from"./conversation-navigation-DUNqTEXk.js";import{n as Xe}from"./use-is-mobile-Cx2xnNUx.js";import{t as Ze}from"./effective-timezone-CnKC3vj0.js";import{$ as Qe,B as $e,G as et,H as tt,J as nt,K as rt,L as it,Mt as at,Q as ot,R as st,U as ct,V as lt,W as ut,X as dt,Y as ft,Z as pt,ct as mt,dt as ht,et as gt,ft as _t,gt as vt,ht as yt,it as bt,lt as xt,nt as St,pt as Ct,q as wt,st as Tt,tt as Et,ut as Dt,wt as Ot,z as kt}from"./react-query.gen-oEdI--ip.js";import{t as At}from"./use-effective-timezone-Da7pvXSm.js";import{t as jt}from"./misc-CAQM4FGM.js";import{t as Mt}from"./platform-login-notice-LOYoqOMf.js";import{t as Nt}from"./format-date-C5pKGCAG.js";import{t as Pt}from"./use-active-assistant-id-BcM35kFN.js";import{t as Ft}from"./add-credits-modal-IV5EP5Uo.js";import{t as It}from"./link-click-DLYgWZdo.js";import{t as Lt}from"./schedules-o0jcCr54.js";import{i as Rt,n as zt,r as Bt,t as Vt}from"./profile-metadata-D2IzF-q3.js";var Ht=h(`target`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`circle`,{cx:`12`,cy:`12`,r:`6`,key:`1vlfrh`}],[`circle`,{cx:`12`,cy:`12`,r:`2`,key:`1c9p78`}]]),Ut=h(`tree-palm`,[[`path`,{d:`M13 8c0-2.76-2.46-5-5.5-5S2 5.24 2 8h2l1-1 1 1h4`,key:`foxbe7`}],[`path`,{d:`M13 7.14A5.82 5.82 0 0 1 16.5 6c3.04 0 5.5 2.24 5.5 5h-3l-1-1-1 1h-3`,key:`18arnh`}],[`path`,{d:`M5.89 9.71c-2.15 2.15-2.3 5.47-.35 7.43l4.24-4.25.7-.7.71-.71 2.12-2.12c-1.95-1.96-5.27-1.8-7.42.35`,key:`ywahnh`}],[`path`,{d:`M11 15.5c.5 2.5-.17 4.5-1 6.5h4c2-5.5-.5-12-1-14`,key:`ft0feo`}]]),K=e(r(),1);function Wt(e){return e.get(`tab`)===`billing`||e.has(`adjust_plan`)||e.has(`pro_onboarding`)||e.has(`billing_status`)||e.has(`session_id`)}function Gt(e,t){return e===`full`?!0:e===`disabled`?Wt(t):!1}function Kt(e){if(!e)return{};let t={};for(let n of e.callSites)!n.id||!n.displayName||(t[n.id]={id:n.id,displayName:n.displayName,description:n.description,domain:n.domain});return t}function q(e){return Number.isFinite(e)?Math.round(e).toLocaleString():`0`}function qt(e){return!Number.isFinite(e)||e===0?`$0.00`:`$${e.toFixed(2)}`}var Jt=`model`,Yt={model:`Model`,task:`Action`,profile:`Profile`},Xt=[{value:`model`,label:Yt.model},{value:`task`,label:Yt.task},{value:`profile`,label:Yt.profile}];function Zt(e){return e===`model`||e===`task`||e===`profile`}function Qt(e){switch(e){case`model`:return`model`;case`task`:return`call_site`;case`profile`:return`inference_profile`}}function $t(e){switch(e){case`model`:return`model`;case`task`:return`llm_call_site`;case`profile`:return`inference_profile`}}function en(e,t,n){if(e===`task`){let e=t.groupKey;return e?n.callSites?.[e]?.displayName??t.group:t.group}if(e===`profile`){let e=t.groupKey;return e?n.profiles?.[e]?.displayName??t.group:t.group||`Default / Unset`}return t.group}function tn(e,t,n){return!e||e.length===0?[]:e.map(e=>{let r=en(t,e,n);return r===e.group?e:{...e,group:r}})}var nn=6,rn=`value:`,an=`null:`;function on(e,t=`schedule`){return e===null?`${an}${Zt(t)?Qt(t):t}`:`${rn}${e}`}function sn(e){return[...e].sort((e,t)=>{if(e.date!==t.date)return e.date<t.date?-1:1;let n=fn(e.bucketId),r=fn(t.bucketId);return n===r?e.bucketId===t.bucketId?0:e.bucketId<t.bucketId?-1:1:n-r})}function cn(e){return e.map(e=>({bucketId:e.bucketId,date:e.date,displayLabel:e.displayLabel,totalInputTokens:e.totalInputTokens,totalOutputTokens:e.totalOutputTokens,totalEstimatedCostUsd:e.totalEstimatedCostUsd,eventCount:e.eventCount,groups:{}}))}function ln(e,t,n){return t!==`task`&&t!==`profile`?[...e]:e.map(e=>{let r=!1,i={};for(let[a,o]of Object.entries(e.groups)){let e=en(t,dn(o),n);e===o.group?i[a]=o:(r=!0,i[a]={...o,group:e})}return r?{...e,groups:i}:e})}function un(e){let t=new Map;for(let n of e)for(let[e,r]of Object.entries(n.groups)){let n=t.get(e);t.set(e,{label:n?.label??r.group,totalEstimatedCostUsd:(n?.totalEstimatedCostUsd??0)+r.totalEstimatedCostUsd})}let n=Array.from(t.entries()).sort(([e,t],[n,r])=>t.totalEstimatedCostUsd===r.totalEstimatedCostUsd?t.label===r.label?e===n?0:e<n?-1:1:t.label<r.label?-1:1:r.totalEstimatedCostUsd-t.totalEstimatedCostUsd).map(([e,t],n)=>({seriesKey:e,label:t.label,totalEstimatedCostUsd:t.totalEstimatedCostUsd,colorIndex:n}));return{items:n,visibleItems:n.slice(0,nn)}}function dn(e){return{group:e.group,groupId:e.groupKey,groupKey:e.groupKey,totalInputTokens:e.totalInputTokens,totalOutputTokens:e.totalOutputTokens,totalCacheCreationTokens:0,totalCacheReadTokens:0,totalEstimatedCostUsd:e.totalEstimatedCostUsd,eventCount:e.eventCount,turnCount:null}}function fn(e){let t=e.lastIndexOf(`|`);if(t<0)return 0;let n=Number(e.slice(t+1));return Number.isFinite(n)?n:0}var J=f(),pn=140,mn=40,hn=28,gn=2,_n=2,vn=1e-6,yn=12,bn=220,xn=56,Sn=[40,80,60,100,50,70,30],Cn=[18,24,28,35,42,50,64,78,92,106,118,96,84,74,68,80,88,72,56,48,40,34,26,20],wn=[`var(--usage-trend-stack-positive, var(--system-positive-strong, #10b981))`,`var(--usage-trend-stack-info, var(--system-info-strong, #3b82f6))`,`var(--usage-trend-stack-mid, var(--system-mid-strong, #f59e0b))`,`var(--usage-trend-stack-secondary, var(--content-secondary, #6b7280))`,`var(--usage-trend-stack-negative, var(--system-negative-strong, #f87171))`,`var(--usage-trend-stack-tertiary, var(--content-tertiary, #9ca3af))`];function Tn(e){return wn[e%wn.length]}function En(e){return e.displayLabel?e.displayLabel:e.date}function Dn(e,t){let n=e+yn,r=t+yn;return n+bn>window.innerWidth&&(n=e-bn-yn),r+xn>window.innerHeight&&(r=t-xn-yn),{x:n,y:r}}function On({buckets:e,isHourly:t,legendItems:n}){let[r,i]=(0,K.useState)(null),a=(0,K.useMemo)(()=>sn(e),[e]),o=(0,K.useMemo)(()=>un(e),[e]),s=n??o.items,c=n??o.visibleItems,l=(0,K.useMemo)(()=>a.reduce((e,t)=>Math.max(e,t.totalEstimatedCostUsd),0),[a]),u=(0,K.useCallback)((e,t)=>{let n=Dn(e.clientX,e.clientY);i({...t,x:n.x,y:n.y})},[]),d=(0,K.useCallback)(()=>i(null),[]);if(a.length===0){let e=(0,J.jsx)(Nn,{title:t?`No hourly data`:`No daily data`,subtitle:`No usage recorded in this time range`});return c.length===0?e:(0,J.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[e,(0,J.jsx)(Mn,{items:c})]})}let f=t?hn:mn;return(0,J.jsxs)(`div`,{className:`overflow-x-auto`,children:[(0,J.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,J.jsx)(`div`,{className:`flex items-end gap-2`,style:{height:`${pn}px`},"aria-hidden":`true`,children:a.map(e=>{let t=l>0?e.totalEstimatedCostUsd/l:0,r=Math.max(gn,pn*t);return(0,J.jsx)(`div`,{className:`flex items-end`,style:{width:`${f}px`,minWidth:`${f}px`,height:`${r}px`,opacity:e.totalEstimatedCostUsd>0?1:.3},title:`${En(e)}: ${qt(e.totalEstimatedCostUsd)}`,"data-usage-series-bar":e.bucketId,children:(0,J.jsx)(An,{bucket:e,height:r,legendItems:s,hasLegendOverride:n!=null,onSegmentHover:u,onSegmentLeave:d})},e.bucketId)})}),(0,J.jsx)(`div`,{className:`flex items-start gap-2`,children:a.map(e=>(0,J.jsxs)(`div`,{className:`flex flex-col items-center gap-0.5`,style:{width:`${f}px`,minWidth:`${f}px`},children:[(0,J.jsx)(`span`,{className:`truncate text-[10px]`,style:{color:`var(--content-secondary)`},children:qt(e.totalEstimatedCostUsd)}),(0,J.jsx)(`span`,{className:`truncate text-[10px]`,style:{color:`var(--content-tertiary)`},children:En(e)})]},e.bucketId))}),c.length>0?(0,J.jsx)(Mn,{items:c}):null]}),r?(0,J.jsx)(jn,{tooltip:r}):null]})}function kn({isHourly:e}){let t=e?Cn:Sn,n=e?hn:mn;return(0,J.jsx)(`div`,{className:`flex items-end gap-2`,style:{height:`${pn}px`},"aria-hidden":`true`,children:t.map((e,t)=>(0,J.jsx)(`div`,{className:`rounded-sm`,style:{width:`${n}px`,height:`${e}px`,background:`color-mix(in srgb, var(--border-base) 40%, transparent)`}},t))})}function An({bucket:e,height:t,legendItems:n,hasLegendOverride:r,onSegmentHover:i,onSegmentLeave:a}){let o=Object.keys(e.groups).length>0,s=n.filter(e=>(e.state??`active`)===`active`).flatMap(t=>{let n=e.groups[t.seriesKey];return!n||n.totalEstimatedCostUsd<=0?[]:[{item:t,value:n}]});if(s.length===0&&!o&&!r){let n={label:`Total`,bucketLabel:En(e),cost:qt(e.totalEstimatedCostUsd)};return(0,J.jsx)(`div`,{className:`w-full rounded-sm`,title:`${n.label}: ${n.cost}`,onMouseEnter:e=>i(e,n),onMouseMove:e=>i(e,n),onMouseLeave:a,style:{height:`${t}px`,background:Tn(0)},"data-usage-series-segment-label":n.label,"data-usage-fallback-segment":`true`})}return s.length===0?null:(0,J.jsx)(`div`,{className:`flex w-full flex-col-reverse overflow-hidden rounded-sm`,style:{height:`${t}px`},"data-usage-series-stack":e.bucketId,children:s.map(({item:n,value:r})=>{let o={label:n.label,bucketLabel:En(e),cost:qt(r.totalEstimatedCostUsd)};return(0,J.jsx)(`div`,{title:`${o.label}: ${o.cost}`,onMouseEnter:e=>i(e,o),onMouseMove:e=>i(e,o),onMouseLeave:a,style:{height:`${Math.max(_n,t*r.totalEstimatedCostUsd/Math.max(e.totalEstimatedCostUsd,vn))}px`,background:Tn(n.colorIndex)},"data-usage-series-segment":n.seriesKey,"data-usage-series-segment-label":n.label,"data-usage-series-color-index":n.colorIndex},n.seriesKey)})})}function jn({tooltip:e}){return(0,J.jsxs)(`div`,{className:`pointer-events-none fixed z-50 max-w-[220px] rounded-md border px-2 py-1 shadow-xl`,style:{left:`${e.x}px`,top:`${e.y}px`,background:`var(--surface-overlay, var(--surface-lift))`,borderColor:`var(--border-base)`},"aria-hidden":`true`,children:[(0,J.jsx)(`div`,{className:`truncate text-body-small-default`,style:{color:`var(--content-default)`},children:e.label}),(0,J.jsxs)(`div`,{className:`truncate text-body-small-default`,style:{color:`var(--content-tertiary)`},children:[e.bucketLabel,` · `,e.cost]})]})}function Mn({items:e}){return(0,J.jsx)(`div`,{className:`flex flex-wrap items-center gap-x-3 gap-y-1 pt-1`,children:e.map(e=>{let t=e.state??`active`,n=t===`inactive`;return(0,J.jsxs)(`div`,{className:`flex min-w-0 items-center gap-1`,"data-usage-legend-state":t,children:[(0,J.jsx)(`span`,{className:`h-[7px] w-[7px] shrink-0 rounded-full`,style:{background:n?`var(--content-tertiary)`:Tn(e.colorIndex),opacity:n?.45:1},"aria-hidden":`true`,"data-usage-series-color-index":e.colorIndex}),(0,J.jsx)(`span`,{className:n?`truncate text-[10px] line-through`:`truncate text-[10px]`,style:{color:`var(--content-tertiary)`,opacity:n?.65:1},children:e.label})]},e.seriesKey)})})}function Nn({title:e,subtitle:t}){return(0,J.jsxs)(`div`,{className:`flex flex-col items-center justify-center rounded-md py-12 text-center`,style:{color:`var(--content-tertiary)`},children:[(0,J.jsx)(`p`,{className:`text-body-medium-default`,style:{color:`var(--content-secondary)`},children:e}),(0,J.jsx)(`p`,{className:`mt-1 text-body-small-default`,children:t})]})}function Pn(e){return Zt(e)?Qt(e):e}function Fn(e){return zn({from:e.from,to:e.to},e.scheduleId)}function In(e){return zn({from:e.from,to:e.to,...e.granularity?{granularity:e.granularity}:{},...e.tz?{tz:e.tz}:{}},e.scheduleId)}function Ln(e){return zn({from:e.from,to:e.to,groupBy:Pn(e.groupBy)},e.scheduleId)}function Rn(e){return zn({from:e.from,to:e.to,granularity:e.granularity,groupBy:Pn(e.groupBy),...e.tz?{tz:e.tz}:{}},e.scheduleId)}function zn(e,t){return t?{...e,scheduleId:t}:e}function Bn(e){return[`${q(e.totalInputTokens)} direct`,`${q(e.totalCacheCreationTokens)} cache created`,`${q(e.totalCacheReadTokens)} cache read`,`${q(e.totalOutputTokens)} out`].join(` / `)}function Vn(e){return!Number.isFinite(e)||e===0?`0`:e>=1e6||e>=999950&&e<1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}k`:e.toLocaleString()}function Hn(e){return`${Vn(e.totalInputTokens+e.totalCacheCreationTokens+e.totalCacheReadTokens)} in / ${Vn(e.totalOutputTokens)} out`}var Un=`task`,Wn=`model`,Gn=new Set([400,404,422]),Kn=3,qn=new Set([`today`,`yesterday`,`7d`,`30d`,`90d`,`all`]),Jn=new Set([`actor`,`provider`,`model`,`conversation`,`task`,`profile`,`schedule`]),Yn={task:Yt.task,profile:Yt.profile,model:Yt.model,provider:`Provider`,actor:`Actor`,conversation:`Conversation`,schedule:`Schedule`},Xn=[{value:`task`,label:Yn.task},{value:`profile`,label:Yn.profile},{value:`model`,label:Yn.model},{value:`provider`,label:Yn.provider},{value:`schedule`,label:Yn.schedule},{value:`conversation`,label:Yn.conversation}];function Zn(e){let t=e.get(`range`),n=e.get(`groupBy`),r=tr(n)?n:Un;return{range:er(t)?t:`7d`,groupBy:r,scheduleId:r===`schedule`?Qn(e):void 0}}function Qn(e){let t=e.get(`scheduleId`);if(!(!t||t.trim().length===0))return t}function $n(e,t){let n=new URLSearchParams(e);return t.range!==void 0&&n.set(`range`,t.range),t.groupBy!==void 0&&n.set(`groupBy`,t.groupBy),t.scheduleId!==void 0&&(t.scheduleId===null||t.scheduleId.trim().length===0?n.delete(`scheduleId`):n.set(`scheduleId`,t.scheduleId)),n.get(`groupBy`)!==`schedule`&&n.delete(`scheduleId`),n}function er(e){return e!=null&&qn.has(e)}function tr(e){return e!=null&&Jn.has(e)}function nr(e){return e!==`conversation`}function rr(e,t){return e!==`task`&&e!==`profile`?!1:ar(t)}function ir(e,t){return!ar(t)&&e<Kn}function ar(e){return e instanceof Re&&Gn.has(e.status)}function or(e,t){let n=e===`hourly`?`Hourly Trend`:`Daily Trend`;return!t||t===`conversation`?n:`${n} by ${Yn[t]}`}function sr({requestedGranularity:e,isLoading:t,buckets:n}){return e===`hourly`&&(t||!n||n.length===0||n.some(cr))?`hourly`:`daily`}function cr(e){return e.bucketId.includes(`|`)||lr(e.date)}function lr(e){return/^\d{4}-\d{2}-\d{2} ([01]\d|2[0-3]):00$/.test(e)}function ur(e,t,n=Date.now()){return Bt(e,t,n)}function dr(e){return e===`today`||e===`yesterday`?`hourly`:`daily`}function fr({prompt:e,children:t,variant:n=`outlined`,size:r=`regular`,className:a}){let o=c(),s=(0,K.useCallback)(()=>{Je(o,{prompt:e})},[o,e]);return(0,J.jsx)(i,{variant:n,size:r,leftIcon:(0,J.jsx)(be,{}),onClick:s,className:a,children:t})}var pr=[{value:`today`,label:`Today`},{value:`yesterday`,label:`Yesterday`},{value:`7d`,label:`Last 7 days`},{value:`30d`,label:`Last 30 days`},{value:`90d`,label:`Last 90 days`},{value:`all`,label:`All time`}],mr=300*1e3,hr=[`Please load the llm-cost-optimizer skill.`,`Analyze my recent LLM usage and explain the biggest cost contributors by call site, model, and profile.`,`Check my current llm.default, llm.callSites, and llm.profiles.`,`Give me a concise summary of what is driving cost and what you would optimize first.`,`Do not change config yet.`].join(` `),gr=[`Please load the llm-cost-optimizer skill.`,`Analyze my recent LLM usage and current LLM config, then recommend the safest cost-optimization changes.`,`If changes are clearly safe, show me the exact config commands you would run and ask for confirmation before applying them.`].join(` `);function _r({assistantId:e}){let[t,n]=o(),{range:r,groupBy:i,scheduleId:a}=(0,K.useMemo)(()=>Zn(t),[t]),s=At(),c=(0,K.useCallback)(e=>{n(t=>$n(t,e),{replace:!0})},[n]),l=(0,K.useMemo)(()=>ur(r,s),[r,s]),d=(0,K.useMemo)(()=>dr(r),[r]),f=u({queryKey:Ie({path:{assistant_id:e}}),queryFn:()=>Lt(e),staleTime:1e4}),p=(0,K.useCallback)(e=>{c({range:e})},[c]),m=u({...Le({path:{assistant_id:e},query:Fn({from:l.from,to:l.to,scheduleId:a})})}),h=u({queryKey:je({path:{assistant_id:e},query:Ln({from:l.from,to:l.to,groupBy:i,scheduleId:a})}),queryFn:async({signal:t})=>{try{let{data:n}=await Ae({path:{assistant_id:e},query:Ln({from:l.from,to:l.to,groupBy:i,scheduleId:a}),signal:t,throwOnError:!0});return{groupBy:i,response:n}}catch(n){if(!rr(i,n))throw n;let{data:r}=await Ae({path:{assistant_id:e},query:Ln({from:l.from,to:l.to,groupBy:Wn,scheduleId:a}),signal:t,throwOnError:!0});return{groupBy:Wn,response:r}}},retry:ir}),g=h.data?.groupBy??i,_=nr(g)?g:void 0,v=u({...Ne({path:{assistant_id:e},query:Rn({from:l.from,to:l.to,granularity:d,groupBy:_??`actor`,tz:s,scheduleId:a})}),enabled:!!_,retry:ir}),y=u({...Me({path:{assistant_id:e},query:In({from:l.from,to:l.to,granularity:d,tz:s,scheduleId:a})}),enabled:!_||v.isError}),b=u({...Fe({path:{assistant_id:e}}),enabled:g===`task`,staleTime:1/0}),x=u({...Pe({path:{assistant_id:e}}),select:Vt,enabled:g===`profile`,staleTime:mr}),S=(0,K.useMemo)(()=>({callSites:Kt(b.data),profiles:x.data??{}}),[b.data,x.data]),C=(0,K.useMemo)(()=>{let e=h.data;if(e)return tn(e.response.breakdown,e.groupBy,S)},[h.data,S]),w=(0,K.useMemo)(()=>{if(!(!_||!v.data))return ln(v.data.buckets,_,S)},[v.data,_,S]),T=(0,K.useMemo)(()=>{if(y.data)return cn(y.data.buckets)},[y.data]),E=(0,K.useMemo)(()=>_?v.error?T?{isLoading:!1,error:null,data:T,refetch:y.refetch}:{isLoading:y.isLoading||!T&&!y.error,error:y.error??v.error,data:void 0,refetch:y.error?y.refetch:v.refetch}:{isLoading:v.isLoading,error:v.error,data:w,refetch:v.refetch}:{isLoading:y.isLoading,error:y.error,data:T,refetch:y.refetch},[T,y.error,y.isLoading,y.refetch,w,_,v.error,v.isLoading,v.refetch]),D=sr({requestedGranularity:d,isLoading:E.isLoading,buckets:E.data}),O=D===`hourly`,k=_&&v.error?void 0:g,A=(0,K.useMemo)(()=>{if(!(g!==`schedule`||!a))return vr(f.data,a)},[g,a,f.data]);return(0,J.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,J.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[(0,J.jsx)(`h3`,{className:`text-title-small`,style:{color:`var(--content-default)`},children:`Usage`}),(0,J.jsx)(`div`,{className:`flex flex-wrap items-center justify-end gap-2`,children:(0,J.jsx)(xr,{range:r,onChange:p})})]}),(0,J.jsx)(`section`,{"aria-label":`Totals`,children:(0,J.jsx)(Cr,{query:m,skeleton:(0,J.jsx)(Er,{}),render:e=>(0,J.jsx)(wr,{totals:e})})}),(0,J.jsx)(Sr,{title:`Inference Usage`,children:(0,J.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,J.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[(0,J.jsx)(`h4`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:or(D,k)}),(0,J.jsx)(`div`,{className:`flex flex-wrap items-center justify-end gap-2`,children:(0,J.jsx)(Dr,{value:g,onChange:e=>{e===i&&g!==i&&(h.refetch(),v.refetch()),c({groupBy:e,scheduleId:e===`schedule`?void 0:null})}})})]}),(0,J.jsx)(Cr,{query:E,skeleton:(0,J.jsx)(kn,{isHourly:O}),render:e=>(0,J.jsx)(On,{buckets:e,isHourly:O,legendItems:A})})]})}),(0,J.jsx)(Or,{query:h,groups:C}),(0,J.jsx)(br,{})]})}function vr(e,t){let n=e??[];return[...n.some(e=>e.id===t)?[]:[{id:t,label:yr(t)}],...n.map(e=>({id:e.id,label:e.name||e.id}))].map((e,n)=>({seriesKey:on(e.id,`schedule`),label:e.label,colorIndex:n,state:e.id===t?`active`:`inactive`}))}function yr(e){return`Unknown schedule (${e})`}function br(){return(0,J.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,J.jsx)(`div`,{className:`h-px w-full`,style:{background:`linear-gradient(to right, transparent, var(--border-base), transparent)`}}),(0,J.jsx)(Sr,{title:`Cost assistant`,subtitle:`Review recent spend and tune model profile choices.`,children:(0,J.jsxs)(`div`,{className:`flex flex-col gap-2 rounded-md px-3 py-3 sm:flex-row sm:items-center`,children:[(0,J.jsx)(fr,{prompt:hr,children:`Analyze costs with assistant`}),(0,J.jsx)(fr,{prompt:gr,variant:`ghost`,children:`Optimize settings`})]})})]})}function xr({range:e,onChange:t}){return(0,J.jsx)(`div`,{className:`flex items-center`,children:(0,J.jsx)(ke,{value:e,onChange:t,options:pr.map(e=>({value:e.value,label:e.label}))})})}function Sr({title:e,subtitle:t,children:n}){return(0,J.jsxs)(`section`,{className:`flex flex-col gap-3 rounded-md border px-4 py-4`,style:{background:`var(--surface-lift)`,borderColor:`var(--border-base)`},children:[(0,J.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,J.jsx)(`h3`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:e}),t?(0,J.jsx)(`p`,{className:`text-body-small-default`,style:{color:`var(--content-tertiary)`},children:t}):null]}),n]})}function Cr({query:e,skeleton:t,render:n}){return e.isLoading?(0,J.jsx)(J.Fragment,{children:t}):e.error?(0,J.jsx)(Nr,{message:e.error instanceof Error?e.error.message:`Failed to load usage.`,onRetry:()=>e.refetch()}):e.data?(0,J.jsx)(J.Fragment,{children:n(e.data)}):(0,J.jsx)(J.Fragment,{children:t})}function wr({totals:e}){return(0,J.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,J.jsxs)(`div`,{className:`flex flex-wrap items-baseline justify-between gap-4`,children:[(0,J.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,J.jsx)(`span`,{style:{fontSize:`30px`,fontWeight:600,lineHeight:1,color:`var(--content-default)`},children:qt(e.totalEstimatedCostUsd)}),(0,J.jsx)(`span`,{className:`text-body-small-default`,style:{color:`var(--content-secondary)`},children:`Cost`})]}),(0,J.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,J.jsx)(`span`,{className:`text-title-small`,style:{color:`var(--content-default)`},children:q(e.eventCount)}),(0,J.jsx)(`span`,{className:`text-body-small-default`,style:{color:`var(--content-secondary)`},children:`LLM Calls`})]})]}),(0,J.jsxs)(`div`,{className:`grid grid-cols-2 gap-3 sm:grid-cols-4`,children:[(0,J.jsx)(Tr,{label:`Direct Input Tokens`,value:q(e.totalInputTokens)}),(0,J.jsx)(Tr,{label:`Output Tokens`,value:q(e.totalOutputTokens)}),(0,J.jsx)(Tr,{label:`Cache Created`,value:q(e.totalCacheCreationTokens)}),(0,J.jsx)(Tr,{label:`Cache Read`,value:q(e.totalCacheReadTokens)})]})]})}function Tr({label:e,value:t}){return(0,J.jsxs)(`div`,{className:`flex flex-col gap-1 rounded-md px-3 py-2`,style:{background:`color-mix(in srgb, var(--border-base) 15%, transparent)`},children:[(0,J.jsx)(`span`,{className:`text-body-small-default`,style:{color:`var(--content-default)`},children:t}),(0,J.jsx)(`span`,{className:`text-label-medium-default`,style:{color:`var(--content-tertiary)`},children:e})]})}function Er(){return(0,J.jsxs)(`div`,{className:`flex flex-col gap-4`,"aria-hidden":`true`,children:[(0,J.jsxs)(`div`,{className:`flex flex-wrap items-baseline justify-between gap-4`,children:[(0,J.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,J.jsx)(Y,{width:140,height:30}),(0,J.jsx)(Y,{width:90,height:12})]}),(0,J.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,J.jsx)(Y,{width:60,height:16}),(0,J.jsx)(Y,{width:60,height:12})]})]}),(0,J.jsx)(`div`,{className:`grid grid-cols-2 gap-3 sm:grid-cols-4`,children:Array.from({length:4}).map((e,t)=>(0,J.jsxs)(`div`,{className:`flex flex-col gap-1 rounded-md px-3 py-2`,style:{background:`color-mix(in srgb, var(--border-base) 15%, transparent)`},children:[(0,J.jsx)(Y,{width:`50%`,height:12}),(0,J.jsx)(Y,{width:`70%`,height:11})]},t))})]})}function Dr({value:e,onChange:t}){return(0,J.jsx)(`div`,{className:`flex items-center`,children:(0,J.jsx)(ke,{value:e,onChange:t,menuAlign:`end`,menuMinWidth:196,options:Xn.map(e=>({value:e.value,label:e.label}))})})}function Or({query:e,groups:t}){let[n,r]=(0,K.useState)(new Set),i=e=>{r(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})};return(0,J.jsx)(Sr,{title:`Breakdown`,children:(0,J.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,J.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,J.jsx)(kr,{label:`% of total`,active:n.has(`pct`),onClick:()=>i(`pct`)}),(0,J.jsx)(kr,{label:`Tokens`,active:n.has(`tokens`),onClick:()=>i(`tokens`)}),(0,J.jsx)(kr,{label:`Turns`,active:n.has(`turns`),onClick:()=>i(`turns`)})]}),(0,J.jsx)(Cr,{query:e,skeleton:(0,J.jsx)(jr,{}),render:e=>(0,J.jsx)(Ar,{groups:t??e.response.breakdown,groupBy:e.groupBy,showPct:n.has(`pct`),showTokens:n.has(`tokens`),showTurns:n.has(`turns`)})})]})})}function kr({label:e,active:t,onClick:n}){return(0,J.jsx)(`button`,{type:`button`,onClick:n,className:`rounded-full border px-2.5 py-1 text-label-medium-default`,style:{borderColor:t?`var(--content-secondary)`:`var(--border-base)`,background:t?`color-mix(in srgb, var(--content-secondary) 15%, transparent)`:`transparent`,color:t?`var(--content-default)`:`var(--content-tertiary)`},children:e})}function Ar({groups:e,groupBy:t,showPct:n,showTokens:r,showTurns:i}){let a=c();if(e.length===0)return(0,J.jsx)(Mr,{title:`No breakdown data`,subtitle:`No usage recorded for this grouping`});let o=e.reduce((e,t)=>e+t.totalEstimatedCostUsd,0);return(0,J.jsx)(`div`,{className:`overflow-hidden rounded-md`,children:(0,J.jsxs)(`table`,{className:`w-full table-fixed`,children:[(0,J.jsx)(`thead`,{children:(0,J.jsxs)(`tr`,{style:{borderBottom:`1px solid var(--border-base)`},children:[(0,J.jsx)(`th`,{className:`px-3 py-2.5 text-left text-label-medium-default`,style:{color:`var(--content-tertiary)`},children:`Group`}),r?(0,J.jsx)(`th`,{className:`px-3 py-2.5 text-left text-label-medium-default`,style:{color:`var(--content-tertiary)`,width:`35%`},children:`Tokens`}):null,i?(0,J.jsx)(`th`,{className:`px-3 py-2.5 text-right text-label-medium-default`,style:{color:`var(--content-tertiary)`,width:`72px`},children:`Turns`}):null,n?(0,J.jsx)(`th`,{className:`px-3 py-2.5 text-right text-label-medium-default`,style:{color:`var(--content-tertiary)`,width:`64px`},children:`%`}):null,(0,J.jsx)(`th`,{className:`px-3 py-2.5 text-right text-label-medium-default`,style:{color:`var(--content-tertiary)`,width:`100px`},children:`Cost`})]})}),(0,J.jsx)(`tbody`,{children:e.map((e,c)=>{let l=Bn(e),u=Hn(e),d=t===`conversation`?e.groupId:null,f=o>0?Math.round(e.totalEstimatedCostUsd/o*100):0;return(0,J.jsxs)(`tr`,{className:d?`cursor-pointer hover:bg-[var(--surface-hover)]`:void 0,onClick:d?e=>{e.target.closest(`a`)||Ye(a,d)}:void 0,style:{borderTop:c===0?`none`:`1px solid var(--border-base)`},children:[(0,J.jsx)(`td`,{className:`min-w-0 px-3 py-2`,style:{color:`var(--content-default)`},children:d?(0,J.jsx)(s,{to:He.conversation(d),className:`block truncate text-body-medium-lighter`,title:e.group,onClick:e=>{It(e)||(e.preventDefault(),Ye(a,d))},children:e.group}):(0,J.jsx)(`span`,{className:`block truncate text-body-medium-lighter`,title:e.group,children:e.group})}),r?(0,J.jsx)(`td`,{className:`min-w-0 px-3 py-2`,style:{color:`var(--content-secondary)`},children:(0,J.jsx)(`span`,{className:`block truncate text-body-small-default`,title:l,children:u})}):null,i?(0,J.jsx)(`td`,{className:`whitespace-nowrap px-3 py-2 text-right`,children:(0,J.jsx)(`span`,{className:`text-body-small-default`,style:{color:`var(--content-tertiary)`},children:e.turnCount==null?`—`:e.turnCount.toLocaleString()})}):null,n?(0,J.jsx)(`td`,{className:`whitespace-nowrap px-3 py-2 text-right`,children:(0,J.jsxs)(`span`,{className:`text-body-small-default`,style:{color:`var(--content-tertiary)`},children:[f,`%`]})}):null,(0,J.jsx)(`td`,{className:`whitespace-nowrap px-3 py-2 text-right`,children:(0,J.jsx)(`span`,{className:`text-body-medium-lighter`,style:{color:`var(--content-default)`},children:qt(e.totalEstimatedCostUsd)})})]},e.groupKey??e.groupId??`${e.group}-${c}`)})})]})})}function jr(){return(0,J.jsx)(`div`,{className:`flex flex-col gap-2`,"aria-hidden":`true`,children:Array.from({length:4}).map((e,t)=>(0,J.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,J.jsx)(Y,{width:100,height:14}),(0,J.jsx)(Y,{width:`60%`,height:12}),(0,J.jsx)(Y,{width:50,height:14})]},t))})}function Y({width:e,height:t}){return(0,J.jsx)(`div`,{className:`rounded-sm`,style:{width:typeof e==`number`?`${e}px`:e,height:`${t}px`,background:`color-mix(in srgb, var(--border-base) 40%, transparent)`}})}function Mr({title:e,subtitle:t}){return(0,J.jsxs)(`div`,{className:`flex flex-col items-center gap-1 py-8 text-center`,children:[(0,J.jsx)(`span`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:e}),(0,J.jsx)(`span`,{className:`text-body-small-default`,style:{color:`var(--content-tertiary)`},children:t})]})}function Nr({message:e,onRetry:t}){return(0,J.jsxs)(`div`,{className:`flex flex-col gap-2 py-2`,children:[(0,J.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,J.jsx)(xe,{className:`h-4 w-4 shrink-0`,style:{color:`var(--system-negative-strong, #f87171)`}}),(0,J.jsx)(`span`,{className:`text-body-medium-lighter`,style:{color:`var(--content-default)`},children:e})]}),t?(0,J.jsx)(`button`,{type:`button`,onClick:t,className:`self-start rounded-md border px-3 py-1 text-body-small-default`,style:{background:`var(--surface-lift)`,borderColor:`var(--border-base)`,color:`var(--content-default)`},children:`Retry`}):null]})}function Pr({open:e,onCancel:t,onConfirm:n,confirming:r,lostFeatures:a}){return(0,J.jsx)(U.Root,{open:e,onOpenChange:e=>{!e&&!r&&t()},children:(0,J.jsxs)(U.Content,{size:`md`,hideCloseButton:!0,children:[(0,J.jsx)(U.Header,{children:(0,J.jsx)(U.Title,{icon:xe,children:`Downgrade to Base?`})}),(0,J.jsxs)(U.Body,{children:[(0,J.jsx)(p,{as:`p`,variant:`body-medium-default`,className:`text-(--content-secondary)`,children:`Downgrading removes the following Pro features:`}),(0,J.jsx)(`ul`,{className:`mt-4 list-disc space-y-2 pl-5`,children:a.map(e=>(0,J.jsx)(`li`,{children:(0,J.jsx)(p,{as:`span`,variant:`body-medium-default`,children:e})},e))})]}),(0,J.jsxs)(U.Footer,{children:[(0,J.jsx)(i,{variant:`outlined`,onClick:t,disabled:r,children:`Keep Pro`}),(0,J.jsx)(i,{variant:`danger`,onClick:n,disabled:r,"data-testid":`confirm-downgrade-button`,children:`Confirm Downgrade`})]})]})})}var Fr=`__none__`;function Ir(e){return`${e.label} — ${N(e.price_cents)}`}function Lr({creditTiers:e,selectedCreditTier:t,onCreditTierChange:n,disabled:r=!1}){let i=(0,K.useMemo)(()=>[{value:Fr,label:`No credit bundle — ${N(0)}`},...e.map(e=>({value:e.tier,label:Ir(e)}))],[e]);return(0,J.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,J.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,J.jsx)(p,{as:`p`,variant:`label-small-default`,className:`text-[var(--content-secondary)]`,children:`Credit bundle`}),(0,J.jsx)(`span`,{title:`A monthly allotment of credits added to your Pro Plan subscription`,children:(0,J.jsx)(ye,{className:`h-3 w-3 text-[var(--content-tertiary)]`})})]}),(0,J.jsx)(ke,{"aria-label":`Credit bundle`,placeholder:`Select a credit bundle`,disabled:r,value:t??Fr,onChange:e=>n(e===Fr?null:e),options:i})]})}function Rr({features:e,variant:t,header:n,maxInline:r=3}){return t===`inline`?(0,J.jsx)(J.Fragment,{children:e.slice(0,r).join(`, `)}):(0,J.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[n&&(0,J.jsx)(p,{as:`p`,variant:`body-small-default`,className:`text-[var(--content-secondary)]`,children:n}),(0,J.jsx)(`ul`,{className:`flex flex-col gap-2`,children:e.map(e=>(0,J.jsxs)(`li`,{className:`flex items-start gap-2`,children:[(0,J.jsx)(x,{className:`mt-0.5 h-4 w-4 shrink-0 text-[var(--content-tertiary)]`,"aria-hidden":!0}),(0,J.jsx)(p,{as:`span`,variant:`body-medium-default`,children:e})]},e))})]})}function zr({plan:e,isCurrent:t,onPro:n,cancelAtPeriodEnd:r,isCanceled:a,cancelDate:o,formatGraceDate:s,proTierChangeMode:c,creditTiersEnabled:l,creditTiers:u,displayCreditTier:d,onCreditTierChange:f,selectedMachineTier:h,selectedStorageTier:g,onMachineTierChange:_,onStorageTierChange:v,machineTiersForPicker:y,storageTiersForPicker:b,currentMachinePrice:x,currentStoragePrice:S,currentCreditPriceUnknown:C,proCurrentTotalCents:w,proLiveTotalCents:T,proTotalDelta:E,onboardingLoading:D,tierChangePending:O,machineChanged:k,storageChanged:A,creditChanged:j,tierChangeError:M,upgradePending:P,portalPending:F,onUpgrade:I,onApplyTierChange:te,onDowngradeClick:ne,onKeepPlan:re}){let L=e.id===`pro`,ie=e.id===`base`,ae=L&&n&&r&&!a,oe=L&&(!t||t&&c),R=L&&t&&c;return(0,J.jsxs)(m,{padding:`lg`,className:`flex flex-col bg-[var(--surface-base)]`,children:[(0,J.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,J.jsx)(`span`,{"aria-hidden":!0,className:`flex h-9 w-9 items-center justify-center rounded-lg border border-[var(--border-base)] bg-[var(--surface-lift)]`,children:L?(0,J.jsx)(ge,{className:`h-5 w-5 text-[var(--content-default)]`}):(0,J.jsx)(Ut,{className:`h-5 w-5 text-[var(--content-default)]`})}),(0,J.jsxs)(`div`,{className:`flex min-h-6 items-center gap-2`,children:[(0,J.jsx)(p,{as:`h3`,variant:`title-small`,children:e.name}),t&&(0,J.jsx)(Ee,{tone:`positive`,children:`Current`})]}),(0,J.jsx)(p,{as:`p`,variant:`body-small-default`,className:`-mt-2 text-[var(--content-tertiary)]`,children:ie?`All you need for a capable assistant`:`More features, more compute, more storage`}),ae&&o&&(0,J.jsxs)(p,{as:`p`,variant:`body-small-default`,className:`text-[var(--system-mid-strong)]`,"data-testid":`modal-cancels-on`,children:[`Your plan ends on `,s(o)]}),(0,J.jsx)(`hr`,{className:`border-t border-[var(--border-base)]`}),(0,J.jsx)(`div`,{className:`flex flex-col gap-1`,children:ie?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(p,{as:`p`,variant:`title-medium`,children:`Free`}),(0,J.jsx)(p,{as:`p`,variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,children:`Forever`})]}):t&&!(oe&&T!=null)&&(w==null||C)?D?(0,J.jsxs)(`div`,{className:`flex items-center gap-2 text-[var(--content-tertiary)]`,children:[(0,J.jsx)(B,{className:`h-4 w-4 animate-spin`}),(0,J.jsx)(p,{as:`span`,variant:`body-medium-lighter`,children:`Loading your plan...`})]}):(0,J.jsx)(p,{as:`p`,variant:`body-medium-lighter`,className:`text-[var(--content-tertiary)]`,"data-testid":`modal-pro-price-unavailable`,children:`Current plan pricing unavailable`}):(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,J.jsx)(p,{as:`p`,variant:`title-medium`,"data-testid":`modal-pro-price`,children:oe&&T!=null?(0,J.jsxs)(J.Fragment,{children:[N(T),E!=null&&E!==0&&(0,J.jsxs)(`span`,{className:`ml-1 text-[var(--content-tertiary)]`,children:[`(`,ue(E),`)`]})]}):w==null?e.id===`pro`?`From ${N(e.base_price_cents+se(e.machine_tiers)+se(e.storage_tiers))}`:null:`Currently ${N(w)}`}),oe&&E!=null&&E!==0&&(0,J.jsx)(`span`,{title:`Your Pro Plan subscription will change from ${N(w)} to ${N(T)}.`,children:(0,J.jsx)(ye,{className:`h-3 w-3 text-[var(--content-tertiary)]`})})]}),e.id===`pro`&&(0,J.jsxs)(p,{as:`p`,variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,"data-testid":`modal-pro-base-fee`,children:[pe(e.base_price_cents),` base fee`]})]})}),(0,J.jsx)(Rr,{features:e.included_features,variant:`checklist`}),L&&!l&&(0,J.jsx)(p,{as:`p`,variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,"data-testid":`modal-credits-not-included`,children:`*Credits not included`})]}),(0,J.jsxs)(`div`,{className:`mt-4 flex flex-1 flex-col justify-end gap-4`,children:[!t&&L&&(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`hr`,{className:`border-t border-[var(--border-base)]`}),l&&(0,J.jsx)(Lr,{creditTiers:u,selectedCreditTier:d,onCreditTierChange:f,disabled:P}),(0,J.jsx)(ee,{machineTiers:y,storageTiers:b,selectedMachineTier:h,selectedStorageTier:g,onMachineTierChange:_,onStorageTierChange:v}),(0,J.jsx)(i,{variant:`primary`,className:`w-full`,onClick:I,disabled:P||!h||!g,"data-testid":`modal-upgrade-to-pro-button`,children:`Upgrade to Pro`})]}),R&&(D?(0,J.jsxs)(`div`,{className:`flex items-center gap-2 text-[var(--content-tertiary)]`,children:[(0,J.jsx)(B,{className:`h-4 w-4 animate-spin`}),(0,J.jsx)(p,{as:`span`,variant:`body-medium-lighter`,children:`Loading your plan...`})]}):(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`hr`,{className:`border-t border-[var(--border-base)]`}),l&&(0,J.jsx)(Lr,{creditTiers:u,selectedCreditTier:d,onCreditTierChange:f,disabled:O}),(0,J.jsx)(ee,{machineTiers:y,storageTiers:b,selectedMachineTier:h,selectedStorageTier:g,onMachineTierChange:_,onStorageTierChange:v,currentMachinePriceCents:x,currentStoragePriceCents:S}),M&&(0,J.jsx)(V,{tone:`error`,children:M}),(0,J.jsx)(i,{variant:`primary`,className:`w-full`,onClick:te,disabled:O||!k&&!A&&!j,"data-testid":`modal-change-tier-button`,children:`Update Plan`})]})),!t&&ie&&n&&!r&&(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`hr`,{className:`border-t border-[var(--border-base)]`}),(0,J.jsx)(i,{variant:`outlined`,className:`w-full`,onClick:ne,disabled:F,"data-testid":`modal-downgrade-to-base-button`,children:`Downgrade to Base`})]}),ae&&(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`hr`,{className:`border-t border-[var(--border-base)]`}),(0,J.jsx)(i,{variant:`outlined`,className:`w-full`,onClick:re,disabled:F,"data-testid":`modal-keep-plan-button`,children:`Keep your Plan`})]})]})]})}function Br({open:e,onClose:t,onTierUpgraded:n}){let r=l(),a=u(Qe()),o=u(xt()),s=d(ht()),c=d(St()),f=d(bt()),m=d(Et()),h=T(A(o.data)),[_,v]=(0,K.useState)(`plans`),[y,b]=(0,K.useState)(!1),[x,S]=(0,K.useState)(null),[C,w]=(0,K.useState)(null),[E,D]=(0,K.useState)(void 0);(0,K.useEffect)(()=>qe(()=>{r.invalidateQueries({queryKey:Dt()}),r.invalidateQueries({queryKey:gt()}),r.invalidateQueries({queryKey:mt()}),t()}),[r,t]);let k=o.data?.plan_id,M=k===`pro`,N=u({...Tt(),enabled:M}),P=N.data?.max_machine_tier??null,I=N.data?.selected_storage_tier??null,ee=N.data?.selected_storage_gib??null,ne=o.data?.cancel_at_period_end===!0||!!o.data?.cancel_at,re=o.data?.status===`canceled`,L=j(o.data),ie=o.data?.status,oe=ie!=null&&le.has(ie),se=M&&oe&&!ne&&!re,R=a.data?.plans.find(e=>e.id===`pro`),ce=R?.credit_tiers??[],ue=ce.length>0,pe=o.data?.selected_credit_tier??null,z=e=>ce.find(t=>t.tier===e)?.price_cents??0,me=z(pe),he=pe!=null&&!ce.some(e=>e.tier===pe),ge=E===void 0?pe:E,_e=z(ge),ve=R?.machine_tiers??[],ye=se&&ee!=null?(R?.storage_tiers??[]).map(e=>e.storage_gib<ee?{...e,disabled:!0}:e):R?.storage_tiers??[];(0,K.useEffect)(()=>{if(!e){S(null),w(null),D(void 0);return}if(R){if(se){if(P==null||I==null)return;S(e=>te(ve,e??P)),w(e=>te(ye,e??I)),D(e=>ae(ce,e,pe));return}S(e=>te(R.machine_tiers,e)),w(e=>te(R.storage_tiers,e)),D(e=>ae(ce,e,null))}},[e,R,se,P,I,pe]);let be=a.data?.plans.find(e=>e.id===`base`),Se=new Set(be?.included_features??[]),Ce=(R?.included_features??[]).filter(e=>!Se.has(e)),we=()=>{if(!s.isPending){if(!x||!C){W.error(`Pick a machine and storage tier to continue.`,{id:`pro-upgrade-error`});return}s.mutate({body:{target_plan_id:`pro`,confirm:!0,machine_tier:x,storage_tier:C,credit_tier:ge,return_target:fe()}},{onSuccess:e=>{if(e.checkout_url){O({kind:`custom`,machineTier:x,storageTier:C,creditTier:ge}),Ke(e.checkout_url);return}if(e.status===`no_op`){W.info(`You're already on Pro.`,{id:`pro-upgrade`}),t();return}W.error(e.message??`Failed to start upgrade. Please try again.`,{id:`pro-upgrade-error`})},onError:e=>{W.error(F(e,`Failed to start upgrade. Please try again.`),{id:`pro-upgrade-error`})}})}},Te=()=>{h.isPending||(v(`plans`),h.mutate({}))},Ee=()=>{r.invalidateQueries({queryKey:Dt()}),r.invalidateQueries({queryKey:mt()}),r.invalidateQueries({queryKey:gt()})},H=c.isPending||f.isPending||m.isPending,De=x!=null&&x!==P,Oe=C!=null&&C!==I,ke=ue&&E!==void 0&&E!==pe,Ae=e=>ve.find(t=>t.tier===e)?.price_cents??null,je=e=>ye.find(t=>t.tier===e)?.price_cents??null,Me=Ae(x),Ne=je(C),Pe=Ae(P),Fe=je(I),Ie=De&&Me!=null&&Pe!=null&&Me<Pe,Le=()=>{if(H)return;let e=[];De&&x&&e.push(new Promise(e=>{c.mutate({body:{machine_tier:x}},{onSuccess:()=>e({dimension:`machine`,ok:!0}),onError:t=>e({dimension:`machine`,ok:!1,error:t})})})),Oe&&C&&e.push(new Promise(e=>{f.mutate({body:{storage_tier:C}},{onSuccess:()=>e({dimension:`storage`,ok:!0}),onError:t=>e({dimension:`storage`,ok:!1,error:t})})})),ke&&e.push(new Promise(e=>{m.mutate({body:{credit_tier:ge}},{onSuccess:()=>e({dimension:`credit`,ok:!0}),onError:t=>e({dimension:`credit`,ok:!1,error:t})})})),Promise.all(e).then(e=>{Ee();let r=e.some(e=>e.ok&&e.dimension===`storage`),i=e.some(e=>e.ok&&e.dimension===`machine`)&&!Ie,a=(r||i)&&!!n,o=e.filter(e=>!e.ok);if(o.length>0){let e=o.map(e=>F(e.error,`Failed to update ${e.dimension} tier.`)).join(` `);W.error(e,{id:`pro-tier-change-error`}),a&&(t(),n());return}a?(t(),n()):W.success(ke&&!De&&!Oe?`Credit bundle updated.`:`Plan updated.`,{id:`pro-tier-change`})})},Re=()=>{if(!H){if(Ie){b(!0);return}Le()}},ze=()=>{b(!1),Le()},Be=e=>Me!=null&&Ne!=null?e.base_price_cents+Me+Ne+_e:null,Ve=e=>Pe!=null&&Fe!=null?e.base_price_cents+Pe+Fe+me:null,He=c.isError||f.isError||m.isError?F(c.error??f.error??m.error,`Failed to update plan. Please try again.`):null,G=a.isLoading||o.isLoading,Ue=a.isError||o.isError||!a.data||!o.data;return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(U.Root,{open:e,onOpenChange:e=>{e||(v(`plans`),t())},children:(0,J.jsx)(U.Content,{size:_===`plans`?`lg`:`md`,children:_===`downgrade-confirm`?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(U.Header,{children:(0,J.jsx)(U.Title,{icon:xe,children:`Downgrade to Base?`})}),(0,J.jsxs)(U.Body,{children:[(0,J.jsx)(p,{as:`p`,variant:`body-medium-default`,className:`text-(--content-secondary)`,children:`Downgrading removes the following Pro features:`}),(0,J.jsx)(`ul`,{className:`mt-4 list-disc space-y-2 pl-5`,children:Ce.map(e=>(0,J.jsx)(`li`,{children:(0,J.jsx)(p,{as:`span`,variant:`body-medium-default`,children:e})},e))})]}),(0,J.jsxs)(U.Footer,{children:[(0,J.jsx)(i,{variant:`ghost`,onClick:()=>v(`plans`),disabled:h.isPending,leftIcon:(0,J.jsx)(g,{className:`h-4 w-4`}),children:`Back`}),(0,J.jsx)(i,{variant:`danger`,onClick:Te,disabled:h.isPending,"data-testid":`confirm-downgrade-button`,children:`Confirm Downgrade`})]})]}):(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(U.Header,{children:(0,J.jsx)(U.Title,{className:`sr-only`,children:`Upgrade Plan`})}),(0,J.jsx)(U.Body,{children:G?(0,J.jsxs)(`div`,{className:`flex items-center gap-2 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,J.jsx)(B,{className:`h-4 w-4 animate-spin`}),(0,J.jsx)(p,{as:`span`,variant:`body-medium-lighter`,children:`Loading plans...`})]}):Ue?(0,J.jsx)(V,{tone:`error`,children:`Failed to load plans. Please try again later.`}):(0,J.jsxs)(`div`,{className:`space-y-6`,children:[(0,J.jsxs)(`div`,{className:`space-y-2 pb-2 pt-4 text-center`,children:[(0,J.jsx)(p,{as:`p`,variant:`title-medium`,children:`Your Assistant, Your Way`}),(0,J.jsx)(p,{as:`p`,variant:`body-medium-lighter`,className:`text-[var(--content-secondary)]`,children:`Choose the plan that works best for you and your assistant.`})]}),(0,J.jsx)(`div`,{className:`grid grid-cols-1 gap-4 md:grid-cols-2`,children:a.data.plans.map(e=>{let t=e.id===k,n=e.id===`pro`&&R?Be(R):null,r=e.id===`pro`&&R?Ve(R):null;return(0,J.jsx)(zr,{plan:e,isCurrent:t,onPro:M,cancelAtPeriodEnd:ne,isCanceled:re,cancelDate:L,formatGraceDate:de,proTierChangeMode:se,creditTiersEnabled:ue,creditTiers:ce,displayCreditTier:ge,onCreditTierChange:D,selectedMachineTier:x,selectedStorageTier:C,onMachineTierChange:S,onStorageTierChange:w,machineTiersForPicker:ve,storageTiersForPicker:ye,currentMachinePrice:Pe,currentStoragePrice:Fe,currentCreditPriceUnknown:he,proCurrentTotalCents:r,proLiveTotalCents:n,proTotalDelta:n!=null&&r!=null?n-r:null,onboardingLoading:N.isLoading,tierChangePending:H,machineChanged:De,storageChanged:Oe,creditChanged:ke,tierChangeError:He,upgradePending:s.isPending,portalPending:h.isPending,onUpgrade:we,onApplyTierChange:Re,onDowngradeClick:()=>v(`downgrade-confirm`),onKeepPlan:()=>h.mutate({})},e.id)})})]})}),(0,J.jsxs)(U.Footer,{className:`relative items-center`,children:[(0,J.jsx)(p,{as:`p`,variant:`body-small-default`,className:`pointer-events-none absolute inset-x-0 text-center text-[var(--content-tertiary)]`,children:(0,J.jsx)(`span`,{className:`pointer-events-auto`,children:`You can change or cancel your plan at any time from billing settings.`})}),(0,J.jsx)(`div`,{className:`ml-auto`,children:(0,J.jsx)(i,{variant:`outlined`,onClick:t,"data-testid":`modal-cancel-button`,children:`Cancel`})})]})]})})}),(0,J.jsx)(Pr,{open:y,onCancel:()=>b(!1),onConfirm:ze,confirming:H,lostFeatures:[`Reduced CPU and memory for your assistant — it will resize to the smaller compute profile.`]})]})}function Vr({open:e,confirming:t,onCancel:n,onConfirm:r}){return(0,J.jsx)(Oe,{open:e,title:`Disable automatic top-ups?`,message:`Auto top-ups will stop. Any saved payment method stays on file.`,confirmLabel:t?`Disabling…`:`Disable`,cancelLabel:`Keep enabled`,destructive:!0,onConfirm:r,onCancel:n})}var Hr={threshold_usd:`100`,amount_usd:`10`,monthly_cap_usd:``};function Ur(e){if(e===``||e===`-`)return e;let t=parseFloat(e);return Number.isFinite(t)?String(Math.trunc(t)):``}function Wr(e){let t={},n=parseFloat(e.threshold_usd),r=parseFloat(e.amount_usd);if((!Number.isFinite(r)||r<10||r>500)&&(t.amount_usd=`Must be between $10 and $500`),(!Number.isFinite(n)||n<1||n>100)&&(t.threshold_usd=`Must be between $1 and $100`),e.monthly_cap_usd!==``){let n=parseFloat(e.monthly_cap_usd);!Number.isFinite(n)||n<25||n>1e4?t.monthly_cap_usd=`Must be between $25 and $10,000`:Number.isFinite(r)&&n<r&&(t.monthly_cap_usd=`Must be at least the top-up amount`)}return t}function Gr(e,t,n,r){if(n[e])return n[e];if(r)return t[e]}function Kr({initialValues:e=Hr,submitting:t,serverErrors:n,onSave:r,onCancel:a}){let[o,s]=(0,K.useState)(e),[c,l]=(0,K.useState)({threshold_usd:!1,amount_usd:!1,monthly_cap_usd:!1}),u=Wr(o),d=e=>t=>{s(n=>({...n,[e]:t.target.value}))},f=e=>()=>{l(t=>({...t,[e]:!0})),s(t=>({...t,[e]:Ur(t[e])}))},p=e=>Gr(e,u,n,c[e]);return(0,J.jsx)(`div`,{className:`mt-4`,children:(0,J.jsxs)(`div`,{className:`flex flex-wrap items-start gap-3`,children:[(0,J.jsx)(`div`,{className:`min-w-[10rem] flex-1`,children:(0,J.jsx)(H,{type:`number`,step:`1`,label:`Auto-reload when balance below`,value:o.threshold_usd,onChange:d(`threshold_usd`),onBlur:f(`threshold_usd`),errorText:p(`threshold_usd`),"data-testid":`auto-top-up-threshold-input`,fullWidth:!0})}),(0,J.jsx)(`div`,{className:`min-w-[10rem] flex-1`,children:(0,J.jsx)(H,{type:`number`,step:`1`,label:`Auto-reload amount`,value:o.amount_usd,onChange:d(`amount_usd`),onBlur:f(`amount_usd`),errorText:p(`amount_usd`),"data-testid":`auto-top-up-amount-input`,fullWidth:!0})}),(0,J.jsx)(`div`,{className:`min-w-[10rem] flex-1`,children:(0,J.jsx)(H,{type:`number`,step:`1`,label:`Monthly spending cap`,helperText:`Pauses auto top-ups for the rest of the month once spending reaches this amount. Manual purchases also count toward the total. Leave empty for no limit.`,value:o.monthly_cap_usd,onChange:d(`monthly_cap_usd`),onBlur:f(`monthly_cap_usd`),errorText:p(`monthly_cap_usd`),"data-testid":`auto-top-up-cap-input`,fullWidth:!0})}),(0,J.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 pt-[18px]`,children:[(0,J.jsx)(i,{variant:`outlined`,onClick:a,disabled:t,children:`Cancel`}),(0,J.jsx)(i,{variant:`primary`,onClick:()=>{l({threshold_usd:!0,amount_usd:!0,monthly_cap_usd:!0});let e={threshold_usd:Ur(o.threshold_usd),amount_usd:Ur(o.amount_usd),monthly_cap_usd:Ur(o.monthly_cap_usd)};s(e);let t=Wr(e);if(Object.keys(t).length!==0)return;let n=e=>e===``?``:`${parseInt(e,10)}.00`;r({threshold_usd:n(e.threshold_usd),amount_usd:n(e.amount_usd),monthly_cap_usd:e.monthly_cap_usd===``?``:n(e.monthly_cap_usd)})},disabled:t,"data-testid":`auto-top-up-save-button`,children:`Save`})]})]})})}var qr=t(((e,t)=>{t.exports=`SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED`})),Jr=t(((e,t)=>{var n=qr();function r(){}function i(){}i.resetWarningCache=r,t.exports=function(){function e(e,t,r,i,a,o){if(o!==n){var s=Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name=`Invariant Violation`,s}}e.isRequired=e;function t(){return e}var a={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:i,resetWarningCache:r};return a.PropTypes=a,a}})),X=e(t(((e,t)=>{t.exports=Jr()()}))(),1);function Yr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Xr(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?Yr(Object(n),!0).forEach(function(t){Qr(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Yr(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Zr(e){"@babel/helpers - typeof";return Zr=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},Zr(e)}function Qr(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function $r(e,t){if(e==null)return{};var n={},r=Object.keys(e),i,a;for(a=0;a<r.length;a++)i=r[a],!(t.indexOf(i)>=0)&&(n[i]=e[i]);return n}function ei(e,t){if(e==null)return{};var n=$r(e,t),r,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)r=a[i],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function ti(e,t){return ni(e)||ri(e,t)||ii(e,t)||oi()}function ni(e){if(Array.isArray(e))return e}function ri(e,t){var n=e&&(typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`]);if(n!=null){var r=[],i=!0,a=!1,o,s;try{for(n=n.call(e);!(i=(o=n.next()).done)&&(r.push(o.value),!(t&&r.length===t));i=!0);}catch(e){a=!0,s=e}finally{try{!i&&n.return!=null&&n.return()}finally{if(a)throw s}}return r}}function ii(e,t){if(e){if(typeof e==`string`)return ai(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`)return Array.from(e);if(n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ai(e,t)}}function ai(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function oi(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
3
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var Z=function(e,t,n){var r=!!n,i=K.useRef(n);K.useEffect(function(){i.current=n},[n]),K.useEffect(function(){if(!r||!e)return function(){};var n=function(){i.current&&i.current.apply(i,arguments)};return e.on(t,n),function(){e.off(t,n)}},[r,t,e,i])},si=function(e){var t=K.useRef(e);return K.useEffect(function(){t.current=e},[e]),t.current},ci=function(e){return e!==null&&Zr(e)===`object`},li=function(e){return ci(e)&&typeof e.then==`function`},ui=function(e){return ci(e)&&typeof e.elements==`function`&&typeof e.createToken==`function`&&typeof e.createPaymentMethod==`function`&&typeof e.confirmCardPayment==`function`},di=`[object Object]`,fi=function e(t,n){if(!ci(t)||!ci(n))return t===n;var r=Array.isArray(t);if(r!==Array.isArray(n))return!1;var i=Object.prototype.toString.call(t)===di;if(i!==(Object.prototype.toString.call(n)===di))return!1;if(!i&&!r)return t===n;var a=Object.keys(t),o=Object.keys(n);if(a.length!==o.length)return!1;for(var s={},c=0;c<a.length;c+=1)s[a[c]]=!0;for(var l=0;l<o.length;l+=1)s[o[l]]=!0;var u=Object.keys(s);if(u.length!==a.length)return!1;var d=t,f=n;return u.every(function(t){return e(d[t],f[t])})},pi=function(e,t,n){return ci(e)?Object.keys(e).reduce(function(r,i){var a=!ci(t)||!fi(e[i],t[i]);return n.includes(i)?(a&&console.warn(`Unsupported prop change: options.${i} is not a mutable property.`),r):a?Xr(Xr({},r||{}),{},Qr({},i,e[i])):r},null):null},mi="Invalid prop `stripe` supplied to `Elements`. We recommend using the `loadStripe` utility from `@stripe/stripe-js`. See https://stripe.com/docs/stripe-js/react#elements-props-stripe for details.",hi=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:mi;if(e===null||ui(e))return e;throw Error(t)},gi=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:mi;if(li(e))return{tag:`async`,stripePromise:Promise.resolve(e).then(function(e){return hi(e,t)})};var n=hi(e,t);return n===null?{tag:`empty`}:{tag:`sync`,stripe:n}},_i=function(e){!e||!e._registerWrapper||!e.registerAppInfo||(e._registerWrapper({name:`react-stripe-js`,version:`6.4.0`}),e.registerAppInfo({name:`react-stripe-js`,version:`6.4.0`,url:`https://stripe.com/docs/stripe-js/react`}))},vi=K.createContext(null);vi.displayName=`ElementsContext`;var yi=function(e,t){if(!e)throw Error(`Could not find Elements context; You need to wrap the part of your app that ${t} in an <Elements> provider.`);return e},bi=function(e){var t=e.stripe,n=e.options,r=e.children,i=K.useMemo(function(){return gi(t)},[t]),a=ti(K.useState(function(){return{stripe:i.tag===`sync`?i.stripe:null,elements:i.tag===`sync`?i.stripe.elements(n):null}}),2),o=a[0],s=a[1];K.useEffect(function(){var e=!0,t=function(e){s(function(t){return t.stripe?t:{stripe:e,elements:e.elements(n)}})};return i.tag===`async`&&!o.stripe?i.stripePromise.then(function(n){n&&e&&t(n)}):i.tag===`sync`&&!o.stripe&&t(i.stripe),function(){e=!1}},[i,o,n]);var c=si(t);K.useEffect(function(){c!==null&&c!==t&&console.warn("Unsupported prop change on Elements: You cannot change the `stripe` prop after setting it.")},[c,t]);var l=si(n);return K.useEffect(function(){if(o.elements){var e=pi(n,l,[`clientSecret`,`fonts`]);e&&o.elements.update(e)}},[n,l,o.elements]),K.useEffect(function(){_i(o.stripe)},[o.stripe]),K.createElement(vi.Provider,{value:o},r)};bi.propTypes={stripe:X.default.any,options:X.default.object};var xi=function(e){return yi(K.useContext(vi),e)},Si=function(e){var t=e.children;return t(xi(`mounts <ElementsConsumer>`))};Si.propTypes={children:X.default.func.isRequired};var Ci=K.createContext(null);Ci.displayName=`CheckoutContext`;var wi=function(e){var t=K.useContext(Ci),n=K.useContext(vi);if(t){if(n)throw Error(`You cannot wrap the part of your app that ${e} in both a checkout provider and <Elements> provider.`);return t}else return yi(n,e)},Ti=[`mode`],Ei=function(e){return e.charAt(0).toUpperCase()+e.slice(1)},Q=function(e,t,n){var r=`${Ei(e)}Element`,i=t?function(e){wi(`mounts <${r}>`);var t=e.id,n=e.className;return K.createElement(`div`,{id:t,className:n})}:function(t){var n=t.id,i=t.className,a=t.options,o=a===void 0?{}:a,s=t.onBlur,c=t.onFocus,l=t.onReady,u=t.onChange,d=t.onEscape,f=t.onClick,p=t.onLoadError,m=t.onLoaderStart,h=t.onNetworksChange,g=t.onConfirm,_=t.onCancel,v=t.onShippingAddressChange,y=t.onShippingRateChange,b=t.onSavedPaymentMethodRemove,x=t.onSavedPaymentMethodUpdate,S=t.onAvailablePaymentMethodsChange,C=wi(`mounts <${r}>`),w=`elements`in C?C.elements:null,T=`checkoutState`in C?C.checkoutState:null,E=T?.type===`success`||T?.type===`loading`?T.sdk:null,D=ti(K.useState(null),2),O=D[0],k=D[1],A=K.useRef(null),j=K.useRef(null);Z(O,`blur`,s),Z(O,`focus`,c),Z(O,`escape`,d),Z(O,`click`,f),Z(O,`loaderror`,p),Z(O,`loaderstart`,m),Z(O,`networkschange`,h),Z(O,`confirm`,g),Z(O,`cancel`,_),Z(O,`shippingaddresschange`,v),Z(O,`shippingratechange`,y),Z(O,`savedpaymentmethodremove`,b),Z(O,`savedpaymentmethodupdate`,x),Z(O,`availablepaymentmethodschange`,S),Z(O,`change`,u);var M;l&&(M=e===`expressCheckout`?l:function(){l(O)}),Z(O,`ready`,M),K.useLayoutEffect(function(){if(A.current===null&&j.current!==null&&(w||E)){var t=null;if(E){var n=E,i=E;switch(e){case`paymentForm`:t=i.createForm(o);break;case`payment`:t=n.createPaymentElement(o);break;case`address`:if(`mode`in o){var a=o.mode,s=ei(o,Ti);if(a===`shipping`)t=n.createShippingAddressElement(s);else if(a===`billing`)t=n.createBillingAddressElement(s);else throw Error(`Invalid options.mode. mode must be 'billing' or 'shipping'.`)}else throw Error(`You must supply options.mode. mode must be 'billing' or 'shipping'.`);break;case`expressCheckout`:t=n.createExpressCheckoutElement(o);break;case`currencySelector`:t=E.createCurrencySelectorElement();break;case`taxId`:t=n.createTaxIdElement(o);break;case`contactDetails`:t=n.createContactDetailsElement();break;default:throw Error(`<${r}> is not supported inside a checkout provider. Use an <Elements> provider instead.`)}}else w&&(t=w.create(e,o));A.current=t,k(t),t&&t.mount(j.current)}},[w,E,o]);var N=si(o);return K.useEffect(function(){if(A.current){var e=pi(o,N,[`paymentRequest`]);e&&`update`in A.current&&A.current.update(e)}},[o,N]),K.useLayoutEffect(function(){return function(){if(A.current&&typeof A.current.destroy==`function`)try{A.current.destroy(),A.current=null}catch{}}},[]),K.createElement(`div`,{id:n,className:i,ref:j})};return i.propTypes={id:X.default.string,className:X.default.string,onChange:X.default.func,onBlur:X.default.func,onFocus:X.default.func,onReady:X.default.func,onEscape:X.default.func,onClick:X.default.func,onLoadError:X.default.func,onLoaderStart:X.default.func,onNetworksChange:X.default.func,onConfirm:X.default.func,onCancel:X.default.func,onShippingAddressChange:X.default.func,onShippingRateChange:X.default.func,onSavedPaymentMethodRemove:X.default.func,onSavedPaymentMethodUpdate:X.default.func,onAvailablePaymentMethodsChange:X.default.func,options:X.default.object},i.displayName=r,i.__elementType=e,i},$=typeof window>`u`,Di=K.createContext(null);Di.displayName=`EmbeddedCheckoutProviderContext`,Q(`auBankAccount`,$),Q(`card`,$),Q(`cardNumber`,$),Q(`cardExpiry`,$),Q(`cardCvc`,$),Q(`iban`,$),Q(`payment`,$),Q(`expressCheckout`,$),Q(`paymentRequestButton`,$),Q(`linkAuthentication`,$),Q(`contactDetails`,$),Q(`address`,$),Q(`shippingAddress`,$),Q(`paymentMethodMessaging`,$),Q(`taxId`,$),Q(`issuingCardNumberDisplay`,$),Q(`issuingCardCvcDisplay`,$),Q(`issuingCardExpiryDisplay`,$),Q(`issuingCardPinDisplay`,$),Q(`issuingCardCopyButton`,$);var Oi=`dahlia`,ki=`https://js.stripe.com`,Ai=`${ki}/${Oi}/stripe.js`,ji=/^https:\/\/js\.stripe\.com\/v3\/?(\?.*)?$/,Mi=/^https:\/\/js\.stripe\.com\/(v3|[a-z]+)\/stripe\.js(\?.*)?$/,Ni=`loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used`,Pi=function(e){return ji.test(e)||Mi.test(e)},Fi=function(){for(var e=document.querySelectorAll(`script[src^="${ki}"]`),t=0;t<e.length;t++){var n=e[t];if(Pi(n.src))return n}return null},Ii=function(e){var t=e&&!e.advancedFraudSignals?`?advancedFraudSignals=false`:``,n=document.createElement(`script`);n.src=`${Ai}${t}`;var r=document.head||document.body;if(!r)throw Error(`Expected document.body not to be null. Stripe.js requires a <body> element.`);return r.appendChild(n),n},Li=null,Ri=null,zi=null,Bi=function(e){return function(t){e(Error(`Failed to load Stripe.js`,{cause:t}))}},Vi=function(e,t){return function(){window.Stripe?e(window.Stripe):t(Error(`Stripe.js not available`))}},Hi=function(e){return Li===null?(Li=new Promise(function(t,n){if(typeof window>`u`||typeof document>`u`){t(null);return}if(window.Stripe&&e&&console.warn(Ni),window.Stripe){t(window.Stripe);return}try{var r=Fi();if(r&&e)console.warn(Ni);else if(!r)r=Ii(e);else if(r&&zi!==null&&Ri!==null){var i;r.removeEventListener(`load`,zi),r.removeEventListener(`error`,Ri),(i=r.parentNode)==null||i.removeChild(r),r=Ii(e)}zi=Vi(t,n),Ri=Bi(n),r.addEventListener(`load`,zi),r.addEventListener(`error`,Ri)}catch(e){n(e);return}}),Li.catch(function(e){return Li=null,Promise.reject(e)})):Li},Ui,Wi=!1,Gi=function(){return Ui||(Ui=Hi(null).catch(function(e){return Ui=null,Promise.reject(e)}),Ui)};Promise.resolve().then(function(){return Gi()}).catch(function(e){Wi||console.warn(e)});function Ki(){return typeof document<`u`&&document.documentElement.classList.contains(`dark`)?{theme:`night`}:{theme:`stripe`}}function qi({open:e,onClose:t,onSavedOptimistic:n}){let r=d(tt()),{mutate:i,reset:a}=r;return(0,K.useEffect)(()=>{e||a()},[e,i,a]),(0,K.useMemo)(()=>Ki(),[r.data?.client_secret??null]),(0,J.jsx)(U.Root,{open:e,onOpenChange:e=>{e||t()},children:(0,J.jsxs)(U.Content,{size:`sm`,children:[(0,J.jsx)(U.Header,{children:(0,J.jsx)(U.Title,{children:`Save Payment Method`})}),(0,J.jsx)(U.Body,{className:`min-h-[260px]`,children:(0,J.jsx)(Ji,{})})]})})}function Ji(){return(0,K.useEffect)(()=>{console.warn(`[AutoTopUpPaymentMethodModal] VITE_STRIPE_PUBLISHABLE_KEY is not set; the payment-method modal cannot mount Stripe Elements.`)},[]),(0,J.jsx)(V,{tone:`error`,children:`Payment method setup is currently unavailable. Please try again later.`})}var Yi={visa:`Visa`,mastercard:`Mastercard`,amex:`Amex`,discover:`Discover`,diners:`Diners Club`,jcb:`JCB`,unionpay:`UnionPay`};function Xi(e){return Yi[e.toLowerCase()]??e}function Zi({brand:e,last4:t,onUpdateCard:n,onRemove:r,removing:a=!1}){return(0,J.jsxs)(`div`,{"data-testid":`payment-method-row`,className:`flex items-center justify-between gap-2 rounded-lg bg-[var(--surface-base)] pl-3 pr-2 py-1.5`,children:[(0,J.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,J.jsx)(he,{"aria-hidden":!0,className:`h-4 w-4 text-[var(--content-default)]`}),(0,J.jsxs)(`div`,{children:[(0,J.jsx)(p,{as:`p`,variant:`body-medium-default`,className:`text-[var(--content-default)]`,children:e?Xi(e):`Saved card`}),t!=null&&(0,J.jsxs)(p,{as:`p`,variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,children:[`Ending in `,t]})]})]}),(0,J.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,J.jsx)(i,{variant:`outlined`,onClick:n,"data-testid":`payment-method-update`,children:`Update Card`}),(0,J.jsx)(i,{variant:`dangerOutline`,onClick:r,disabled:a,"data-testid":`payment-method-remove`,children:a?`Removing…`:`Remove`})]})]})}function Qi(e){if(!e)return``;let t=parseFloat(e);return Number.isFinite(t)?String(Math.trunc(t)):``}function $i(e){if(!e)return`$0`;let t=parseFloat(e);if(!Number.isFinite(t))return`$0`;let n=Math.abs(t).toLocaleString(`en-US`,{minimumFractionDigits:2,maximumFractionDigits:2}),r=n.endsWith(`.00`)?n.slice(0,-3):n;return t<0?`-$${r}`:`$${r}`}var ea={enabled:!1,threshold_usd:null,amount_usd:null,monthly_cap_usd:null,has_payment_method:!1,payment_method_brand:null,payment_method_last4:null,stripe_payment_method_updated_at:null,last_charge_at:null,last_failure_at:null,last_failure_reason:null,disabled_due_to_repeated_failures:!1,paused_until:null,current_month_credits_purchased_usd:`0.00`,current_month_charged_usd:`0.00`,next_trigger_amount_usd:null,stubbed:!1};function ta(e){if(!e||typeof e!=`object`||Array.isArray(e))return{};let t={};for(let[n,r]of Object.entries(e))Array.isArray(r)&&typeof r[0]==`string`&&(t[n]=r[0]);return t}function na({testId:e,children:t}){return(0,J.jsx)(`div`,{"data-testid":e,className:`flex h-8 min-w-0 flex-1 items-center gap-1.5 rounded-lg bg-[var(--surface-base)] px-2`,children:t})}function ra(){let e=l(),t=u(kt()),n=d(ct()),r=d(it()),a=d(st()),[o,s]=(0,K.useState)(`view`),[c,f]=(0,K.useState)(!1),[m,h]=(0,K.useState)(!1),[g,_]=(0,K.useState)(!1),[v,y]=(0,K.useState)(!1),[b,x]=(0,K.useState)(!1),[C,w]=(0,K.useState)(!1);if((0,K.useEffect)(()=>{v&&t.data?.has_payment_method&&y(!1)},[v,t.data?.has_payment_method]),t.isLoading)return(0,J.jsx)(`div`,{"data-testid":`auto-top-up-card`,children:(0,J.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Loading…`})});if(t.isError||!t.data)return(0,J.jsx)(`div`,{"data-testid":`auto-top-up-card`,children:(0,J.jsx)(V,{tone:`error`,children:`Failed to load auto top-up configuration.`})});let T=t.data,E=T.enabled===!0,D=T.disabled_due_to_repeated_failures===!0&&!E,O=()=>{n.reset(),r.reset(),s(`form`)},k=()=>{s(`view`),f(!1)},A=()=>{r.reset(),h(!1)},j=t=>{n.mutate({body:{enabled:!0,threshold_usd:t.threshold_usd,amount_usd:t.amount_usd,monthly_cap_usd:t.monthly_cap_usd===``?null:t.monthly_cap_usd}},{onSuccess:t=>{lt(e,void 0,e=>({...t,payment_method_brand:e?.payment_method_brand??null,payment_method_last4:e?.payment_method_last4??null})),e.invalidateQueries({queryKey:$e()}),k()}})},M=()=>{r.mutate({},{onSuccess:()=>{lt(e,void 0,e=>({...ea,has_payment_method:e?.has_payment_method??!1,payment_method_brand:e?.payment_method_brand??null,payment_method_last4:e?.payment_method_last4??null,stripe_payment_method_updated_at:e?.stripe_payment_method_updated_at??null})),h(!1),s(`view`),f(!1)}})},N=()=>{a.mutate({},{onSuccess:()=>{lt(e,void 0,{...T,enabled:!1,has_payment_method:!1,payment_method_brand:null,payment_method_last4:null}),e.invalidateQueries({queryKey:$e()}),_(!1),k()},onError:()=>{_(!1)}})},P=e=>{if(e&&!E){if(f(!0),!T.has_payment_method||D){y(!0),x(!1);return}y(!1),O();return}if(!e&&!E&&c){y(!1),k();return}!e&&E&&h(!0)},F=async()=>{let t=Date.now(),n=T.stripe_payment_method_updated_at??null;try{await e.invalidateQueries({queryKey:$e()})}catch{}for(;Date.now()-t<2e4;){try{let t=await e.fetchQuery(kt());if(t.has_payment_method&&t.stripe_payment_method_updated_at!==n)break}catch{}await new Promise(e=>setTimeout(e,1500))}y(!1),c&&O()},I=o===`form`,ee=ta(n.error),te=n.isError&&Object.keys(ee).length===0;return(0,J.jsxs)(`div`,{"data-testid":`auto-top-up-card`,children:[(0,J.jsx)(`div`,{className:`flex items-center justify-between gap-4`,children:(0,J.jsx)(De,{checked:E||c,onChange:P,label:`Enable Extra Usage`})}),T.has_payment_method&&(0,J.jsx)(`div`,{className:`mt-3`,children:(0,J.jsx)(Zi,{brand:T.payment_method_brand,last4:T.payment_method_last4,onUpdateCard:()=>w(!0),onRemove:()=>_(!0),removing:a.isPending})}),E&&!I&&(0,J.jsxs)(`div`,{className:`mt-3 flex w-full items-center gap-2`,children:[(0,J.jsxs)(na,{testId:`auto-top-up-summary`,children:[(0,J.jsx)(S,{className:`h-3.5 w-3.5 shrink-0 text-[var(--content-default)]`,"aria-hidden":`true`}),(0,J.jsxs)(p,{variant:`body-medium-default`,className:`truncate text-[var(--content-default)]`,children:[`Add `,$i(T.amount_usd),` when balance falls under`,` `,$i(T.threshold_usd)]})]}),T.monthly_cap_usd!=null&&(0,J.jsx)(na,{testId:`auto-top-up-cap-progress`,children:(0,J.jsxs)(p,{variant:`body-medium-default`,className:`truncate text-[var(--content-default)]`,children:[(0,J.jsxs)(`span`,{children:[$i(T.current_month_credits_purchased_usd),` `]}),(0,J.jsxs)(`span`,{className:`text-[var(--content-tertiary)]`,children:[`/ `,$i(T.monthly_cap_usd),` this month`]})]})}),(0,J.jsx)(i,{variant:`outlined`,onClick:O,"data-testid":`auto-top-up-edit-button`,className:`shrink-0`,children:`Adjust`})]}),D&&(0,J.jsx)(V,{tone:`warning`,className:`mt-3`,"data-testid":`auto-top-up-declined-cutoff`,actions:(0,J.jsx)(i,{variant:`outlined`,onClick:()=>w(!0),"data-testid":`auto-top-up-add-pm-button`,children:`Add payment method`}),children:`We paused automatic reloads after several declined payments. Add a new payment method to turn auto-reload back on.`}),(0,J.jsx)(`div`,{className:`grid transition-[grid-template-rows] duration-200 ease-in-out`,style:{gridTemplateRows:v&&!D?`1fr`:`0fr`},children:(0,J.jsx)(`div`,{className:`overflow-hidden`,children:(0,J.jsxs)(`div`,{className:`mt-3 flex flex-col gap-3`,children:[!b&&(0,J.jsxs)(`div`,{className:`flex h-8 items-center justify-between gap-3 rounded-lg bg-[var(--system-mid-weak)] px-2`,children:[(0,J.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,J.jsx)(ye,{className:`h-4 w-4 shrink-0 text-[var(--system-mid-strong)]`,"aria-hidden":`true`}),(0,J.jsx)(p,{variant:`body-medium-default`,className:`truncate text-[var(--system-mid-strong)]`,children:`Extra usage requires you to connect a credit card.`})]}),(0,J.jsx)(`button`,{type:`button`,"aria-label":`Dismiss`,onClick:()=>x(!0),className:`flex shrink-0 cursor-pointer items-center justify-center rounded p-0.5 text-[var(--system-mid-strong)] opacity-70 transition-opacity hover:opacity-100`,children:(0,J.jsx)(Ce,{className:`h-2.5 w-2.5`,strokeWidth:2,"aria-hidden":`true`})})]}),(0,J.jsx)(i,{variant:`primary`,onClick:()=>w(!0),"data-testid":`auto-top-up-add-pm-button`,className:`self-start`,children:`Add a Credit Card`})]})})}),te&&(0,J.jsx)(V,{tone:`error`,className:`mt-4`,"data-testid":`auto-top-up-update-error`,children:`Failed to save automatic top-ups. Please try again.`}),r.isError&&(0,J.jsx)(V,{tone:`error`,className:`mt-4`,"data-testid":`auto-top-up-disable-error`,children:`Failed to disable automatic top-ups. Please try again.`}),a.isError&&(0,J.jsx)(V,{tone:`error`,className:`mt-4`,"data-testid":`auto-top-up-remove-error`,children:`Failed to remove the payment method. Please try again.`}),I&&(0,J.jsx)(Kr,{initialValues:E?{threshold_usd:Qi(T.threshold_usd),amount_usd:Qi(T.amount_usd),monthly_cap_usd:Qi(T.monthly_cap_usd)}:void 0,submitting:n.isPending,serverErrors:ee,onCancel:k,onSave:j}),(E||I)&&(0,J.jsx)(V,{tone:`info`,className:`mt-4`,children:`If you're too close to your monthly limit, the auto-reload will only top up to that limit.`}),(0,J.jsx)(Vr,{open:m,confirming:r.isPending,onCancel:A,onConfirm:M}),(0,J.jsx)(Oe,{open:g,title:`Remove payment method?`,message:`Removing your card will turn off Extra Usage.`,confirmLabel:a.isPending?`Removing…`:`Remove`,isPending:a.isPending,cancelLabel:`Keep card`,destructive:!0,onConfirm:N,onCancel:()=>_(!1)}),(0,J.jsx)(qi,{open:C,onClose:()=>w(!1),onSavedOptimistic:F})]})}function ia(e){let t=parseFloat(e);return Number.isFinite(t)?`$${t.toFixed(2)}`:`$${e}`}function aa(e){let t=e.trim();if(t===``)return`Enter a daily limit`;let n=parseFloat(t);if(!Number.isFinite(n)||n<1)return`Must be at least $1`;if(!/^\d+(\.\d{1,2})?$/.test(t))return`Use at most two decimal places`}function oa(){let e=l(),t=u(ut()),n=u(_t()),r=d(wt()),[a,o]=(0,K.useState)(null),[s,c]=(0,K.useState)(!1),[f,p]=(0,K.useState)(!1);if(t.isLoading)return(0,J.jsx)(`div`,{"data-testid":`daily-credit-limit-card`,children:(0,J.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Loading…`})});if(t.isError||!t.data)return(0,J.jsx)(`div`,{"data-testid":`daily-credit-limit-card`,children:(0,J.jsx)(V,{tone:`error`,children:`Failed to load daily credit limit settings.`})});let m=t.data,h=m.daily_credit_limit_usd!=null,g=h||f,_=a??m.daily_credit_limit_usd??``,v=aa(_),y=n.data,b=y?.daily_spend_usd??m.current_day_spent_usd,x=y?.daily_limit_reached===!0,S=e=>{o(e.target.value)},C=t=>{r.mutate({body:{daily_credit_limit_usd:t}},{onSuccess:n=>{rt(e,void 0,n),e.invalidateQueries({queryKey:et()}),e.invalidateQueries({queryKey:Ct()}),o(null),c(!1),t===null&&p(!1)}})},w=e=>{if(e){p(!0);return}p(!1),o(null),c(!1),h&&C(null)},T=()=>{c(!0),!v&&C(parseFloat(_.trim()).toFixed(2))},E=r.isError,D=s?v:void 0;return(0,J.jsxs)(`div`,{"data-testid":`daily-credit-limit-card`,children:[(0,J.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,J.jsx)(De,{checked:g,onChange:w,disabled:r.isPending,label:`Set a daily credit limit`}),g&&(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(`div`,{className:`flex flex-wrap items-start gap-3`,children:[(0,J.jsx)(`div`,{className:`w-60 max-w-full`,children:(0,J.jsx)(H,{type:`number`,step:`0.01`,min:`1`,label:`Stop spending Vellum credits after`,helperText:`Per UTC day. Resets at midnight UTC.`,placeholder:`0.00`,value:_,onChange:S,onBlur:()=>c(!0),errorText:D,"data-testid":`daily-credit-limit-input`,fullWidth:!0})}),(0,J.jsx)(`div`,{className:`flex shrink-0 items-center gap-2 pt-[18px]`,children:(0,J.jsx)(i,{variant:`primary`,onClick:T,disabled:r.isPending,"data-testid":`daily-credit-limit-save-button`,children:`Save`})})]}),h&&m.daily_credit_limit_usd!=null&&(0,J.jsxs)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,"data-testid":`daily-credit-limit-progress`,children:[ia(b),` of `,ia(m.daily_credit_limit_usd),` `,`spent today`]}),x&&(0,J.jsx)(V,{tone:`warning`,"data-testid":`daily-credit-limit-reached`,children:`Today's Vellum credit spend has reached this limit. Generation resumes after midnight UTC or when you raise the limit.`})]})]}),(0,J.jsx)(`p`,{className:`mt-3 text-body-small-default text-[var(--content-tertiary)]`,children:`Applies to Vellum credit spend only. Usage billed to your own provider API keys isn't limited. Resets at midnight UTC.`}),E&&(0,J.jsx)(V,{tone:`error`,className:`mt-4`,"data-testid":`daily-credit-limit-update-error`,children:`Failed to save daily credit limit. Please try again.`})]})}function sa(e){let t=parseFloat(e);return Number.isFinite(t)?`$${t.toFixed(2)}`:`$${e}`}function ca(e){if(e.trim()===``)return;let t=parseFloat(e);if(!Number.isFinite(t)||t<1||t>1e3)return`Must be between $1 and $1,000`;if(!/^\d+(\.\d{1,2})?$/.test(e.trim()))return`Use at most two decimal places`}function la(){let e=l(),t=u(ft()),n=d(ot()),[r,a]=(0,K.useState)(null),[o,s]=(0,K.useState)(!1);if(t.isLoading)return(0,J.jsx)(`div`,{"data-testid":`low-balance-alert-card`,children:(0,J.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Loading…`})});if(t.isError||!t.data)return(0,J.jsx)(`div`,{"data-testid":`low-balance-alert-card`,children:(0,J.jsx)(V,{tone:`error`,children:`Failed to load low-balance alert settings.`})});let c=t.data,f=r??c.threshold_usd??``,p=ca(f),m=e=>{a(e.target.value)},h=t=>{n.mutate({body:{threshold_usd:t}},{onSuccess:t=>{pt(e,void 0,t),e.invalidateQueries({queryKey:dt()}),a(null),s(!1)}})},g=()=>{if(s(!0),p)return;let e=f.trim();h(e===``?null:parseFloat(e).toFixed(2))},_=()=>{a(``),s(!1),h(null)},v=n.isError,y=o?p:void 0;return(0,J.jsxs)(`div`,{"data-testid":`low-balance-alert-card`,children:[(0,J.jsxs)(`div`,{className:`flex flex-wrap items-start gap-3`,children:[(0,J.jsx)(`div`,{className:`w-60 max-w-full`,children:(0,J.jsx)(H,{type:`number`,step:`0.01`,label:`Alert me when my balance drops below`,helperText:`Default is ${sa(c.default_threshold_usd)} when unset`,placeholder:c.effective_threshold_usd,value:f,onChange:m,onBlur:()=>s(!0),errorText:y,"data-testid":`low-balance-alert-input`,fullWidth:!0})}),(0,J.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 pt-[18px]`,children:[c.threshold_usd!=null&&(0,J.jsx)(i,{variant:`outlined`,onClick:_,disabled:n.isPending,"data-testid":`low-balance-alert-reset-button`,children:`Reset to default`}),(0,J.jsx)(i,{variant:`primary`,onClick:g,disabled:n.isPending,"data-testid":`low-balance-alert-save-button`,children:`Save`})]})]}),v&&(0,J.jsx)(V,{tone:`error`,className:`mt-4`,"data-testid":`low-balance-alert-update-error`,children:`Failed to save low-balance alert. Please try again.`})]})}function ua(e){return e.replace(/\.00$/,``)}function da({icon:e,value:t,label:n}){return(0,J.jsxs)(`div`,{className:`flex h-8 min-w-0 flex-1 items-center gap-1.5 rounded-lg bg-[var(--surface-base)] px-2 py-1.5`,children:[(0,J.jsx)(`span`,{"aria-hidden":`true`,className:`flex h-3.5 w-3.5 shrink-0 items-center justify-center text-[var(--content-default)]`,children:e}),(0,J.jsx)(p,{variant:`body-medium-default`,as:`span`,className:`text-[var(--content-default)]`,children:t}),(0,J.jsx)(p,{variant:`body-small-default`,as:`span`,className:`text-[var(--content-tertiary)]`,children:n})]})}function fa(){let{data:e,isLoading:t,isError:n}=u(Ot()),[r,a]=(0,K.useState)(!1),o=(0,K.useCallback)(e=>{navigator.clipboard.writeText(e).then(()=>{a(!0),W.success(`Copied to clipboard!`),setTimeout(()=>a(!1),2e3)})},[]),s=e?.is_eligible_for_credits===!1;return(0,J.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,J.jsx)(p,{as:`p`,variant:`body-medium-default`,className:`text-[var(--content-tertiary)]`,children:s?`Invite friends to Vellum. You'll start earning referral credits once you've purchased credits or upgraded to Pro.`:e?`Share Vellum with friends - you'll each earn ${ua(e.referrer_credit_amount)} credits when they sign up, up to ${ua(e.earning_cap)} total.`:`Share Vellum with friends and earn credits for every signup.`}),s&&(0,J.jsx)(p,{as:`p`,variant:`body-medium-default`,className:`text-[var(--content-tertiary)]`,children:`You're not currently earning referral credits. Buy credits or upgrade to Pro to start earning — your invite link still works in the meantime.`}),t?(0,J.jsxs)(`div`,{className:`flex items-center gap-2 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,J.jsx)(B,{className:`h-4 w-4 animate-spin`}),`Loading...`]}):n||!e?(0,J.jsx)(V,{tone:`error`,children:`Failed to load referral information.`}):(0,J.jsxs)(`div`,{className:`flex flex-wrap items-start gap-2`,children:[(0,J.jsx)(da,{icon:(0,J.jsx)(S,{className:`h-3.5 w-3.5`}),value:ua(e.total_earned),label:`Credits Earned`}),(0,J.jsx)(da,{icon:(0,J.jsx)(Se,{className:`h-3.5 w-3.5`}),value:e.referred_count,label:`Friends Referred`}),(0,J.jsx)(i,{variant:`outlined`,className:`shrink-0`,onClick:()=>o(e.referral_url),leftIcon:r?(0,J.jsx)(v,{className:`h-3.5 w-3.5`}):(0,J.jsx)(me,{className:`h-3.5 w-3.5`}),"data-testid":`referral-copy-button`,children:r?`Copied!`:`Share Link`})]})]})}function pa({open:e,onOpenChange:t}){return(0,J.jsx)(U.Root,{open:e,onOpenChange:t,children:(0,J.jsxs)(U.Content,{"data-testid":`referral-modal`,children:[(0,J.jsx)(U.Header,{children:(0,J.jsx)(U.Title,{children:`Earn Free Credits`})}),(0,J.jsx)(U.Body,{children:(0,J.jsx)(fa,{})})]})})}var ma=2e3;function ha(e){let t=parseFloat(e);if(Number.isNaN(t))return`0`;let n=Math.abs(t).toLocaleString(`en-US`,{minimumFractionDigits:2,maximumFractionDigits:2}),r=n.endsWith(`.00`)?n.slice(0,-3):n;return t<0?`-${r}`:r}function ga(){let e=l(),{data:t,isLoading:n,isError:r}=u(_t()),a=t??null,[o,s]=(0,K.useState)(!1),[c,d]=(0,K.useState)(!1),[f,h]=(0,K.useState)(!1),g=(0,K.useRef)(0),_=(0,K.useRef)(null),v=at({onSuccess:()=>{e.invalidateQueries({queryKey:Ct()})},onError:()=>{g.current<3&&(_.current=setTimeout(()=>{v.reset()},ma))}});(0,K.useEffect)(()=>()=>{_.current&&clearTimeout(_.current)},[]);let y=v.mutate;(0,K.useEffect)(()=>{a&&a.settled_balance===`0.00`&&a.pending_compute===`0.00`&&a.effective_balance===`0.00`&&g.current<3&&!v.isPending&&!v.isError&&!v.isSuccess&&(g.current+=1,y({}))},[a,v.isPending,v.isError,v.isSuccess,y]);let b=(0,J.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,J.jsxs)(`div`,{children:[(0,J.jsx)(p,{as:`h2`,variant:`title-medium`,className:`text-[var(--content-emphasised)]`,children:`Credit Balance`}),(0,J.jsx)(p,{as:`p`,variant:`body-medium-default`,className:`mt-2 text-[var(--content-tertiary)]`,children:`Quick overview of your balances and other things`})]}),(0,J.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,J.jsx)(i,{variant:`outlined`,leftIcon:(0,J.jsx)(S,{className:`h-4 w-4`,"aria-hidden":!0}),onClick:()=>d(!0),"data-testid":`earn-credits-button`,children:`Earn Free Credits`}),(0,J.jsx)(i,{variant:`primary`,onClick:()=>s(!0),disabled:n||!a,"data-testid":`add-credits-button`,children:`Add Credits`})]})]});return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(m,{padding:`md`,children:[b,n?(0,J.jsxs)(`div`,{className:`mt-4 flex items-center gap-2 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,J.jsx)(B,{className:`h-4 w-4 animate-spin`}),`Loading billing summary...`]}):r?(0,J.jsx)(`div`,{className:`mt-4`,children:(0,J.jsx)(V,{tone:`error`,children:`Failed to load billing summary. Please try again later.`})}):a?(0,J.jsxs)(J.Fragment,{children:[(()=>{if(!a)return null;let e=parseFloat(a.effective_balance)<0;return(0,J.jsx)(`div`,{className:`mt-4`,children:(0,J.jsx)(Te,{icon:(0,J.jsx)(S,{className:`h-4 w-4`,"aria-hidden":!0}),value:(0,J.jsx)(`span`,{"data-testid":`effective-balance`,children:ha(a.effective_balance)}),label:`Balance`,tone:e?`negative`:`default`})})})(),a.is_degraded&&(0,J.jsx)(`div`,{className:`mt-4`,children:(0,J.jsx)(V,{tone:`warning`,children:`Pending charges could not be calculated. The balance shown may be incomplete.`})})]}):(0,J.jsx)(`p`,{className:`mt-4 text-body-medium-lighter text-[var(--content-tertiary)]`,children:`No billing information available.`}),(0,J.jsx)(`div`,{className:`mt-6`,children:(0,J.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,J.jsx)(De,{checked:f,onChange:h,label:`Custom low balance alert`}),f&&(0,J.jsx)(la,{})]})}),(0,J.jsx)(`div`,{className:`mt-6 border-t border-[var(--border-base)] pt-6`,children:(0,J.jsx)(ra,{})}),(0,J.jsx)(`div`,{className:`mt-6 border-t border-[var(--border-base)] pt-6`,children:(0,J.jsx)(oa,{})})]}),(0,J.jsx)(Ft,{open:o,onOpenChange:s}),(0,J.jsx)(pa,{open:c,onOpenChange:d})]})}var _a=1e3,va=15e3,ya=3e3,ba=45e3,xa=`billing-portal-return`;function Sa(e,t){if(!e)return{kind:`info`,message:`Subscription updated.`};let n=e.cancel_at_period_end||!!e.cancel_at,r=t.cancel_at_period_end||!!t.cancel_at;return!n&&r?{kind:`info`,message:`Pro plan canceled. You'll have access until ${t.cancel_at?de(t.cancel_at):`the end of your billing period`}.`}:n&&!r?{kind:`success`,message:`Pro plan reactivated.`}:{kind:`info`,message:`Subscription updated.`}}function Ca(){let[e]=o(),t=c(),n=l(),r=(0,K.useRef)(null);return(0,K.useEffect)(()=>()=>{r.current!==null&&(clearInterval(r.current),r.current=null)},[]),(0,K.useEffect)(()=>{if(e.get(`portal_return`)!==`true`)return;let i={current:!1},a=E(),o=xt(),s=Dt(),c=Date.now();async function l(){await n.invalidateQueries({queryKey:s});let e=await n.fetchQuery(o);return{cancel_at_period_end:e.cancel_at_period_end,cancel_at:e.cancel_at}}async function u(){let e=await l();for(;!i.current&&a&&e.cancel_at_period_end===a.cancel_at_period_end&&e.cancel_at===a.cancel_at&&Date.now()-c<va&&(await new Promise(e=>setTimeout(e,_a)),!i.current);)e=await l();return e}return(async()=>{try{let e=await u();if(i.current)return;let{kind:t,message:n}=Sa(a,e);t===`success`?W.success(n,{id:xa}):W.info(n,{id:xa})}catch{if(i.current)return;W.info(`Subscription updated.`,{id:xa})}finally{if(!i.current){w(),t(He.settings.usageBilling,{replace:!0});let e=Date.now();r.current!==null&&clearInterval(r.current),r.current=setInterval(()=>{if(Date.now()-e>=ba){r.current!==null&&(clearInterval(r.current),r.current=null);return}l().catch(e=>{console.error(`billing poll error:`,e)})},ya)}}})(),()=>{i.current=!0}},[e,t,n]),null}var wa=[7,30,90].map(e=>({value:`${e}`,label:`Last ${e} days`}));function Ta(e,t=Ze()){let{fromDate:n,toDate:r}=zt(e,t);return{from:n,to:r}}function Ea(e,t){let n=new Date(e),r=new Date(t);return Math.round((r.getTime()-n.getTime())/864e5)+1}function Da({from:e,to:t}){let n=Ea(e,t);return n===7?7:n===90?90:30}function Oa({value:e,onChange:t}){let n=At(),r=(0,K.useMemo)(()=>`${Da(e)}`,[e]);return(0,J.jsx)(ke,{options:wa,value:r,onChange:e=>{let r=Number(e);t(Ta(r,n),r)},"aria-label":`Date range`})}var ka={strokeDasharray:`3 3`,stroke:`var(--border-subtle)`,strokeOpacity:.4},Aa={fontSize:12,fill:`var(--content-tertiary)`},ja={stroke:`var(--border-subtle)`,strokeOpacity:.4},Ma=[`#3b82f6`,`#10b981`,`#f59e0b`,`#ef4444`,`#8b5cf6`,`#06b6d4`,`#ec4899`,`#84cc16`];function Na({item:e}){return(0,J.jsxs)(`div`,{className:`flex items-center gap-2 py-0.5 text-[13px] text-[var(--content-default)]`,children:[(0,J.jsx)(`span`,{className:`h-2 w-2 shrink-0 rounded-full`,style:{backgroundColor:e.color}}),(0,J.jsx)(`span`,{children:e.label}),(0,J.jsx)(`span`,{className:`ml-auto tabular-nums`,children:e.value})]})}function Pa({active:e,payload:t,hoveredKey:n,label:r,labelMap:i,colorMap:a,formatValue:o,showTotal:s,formatLabel:c}){if(!e||!t?.length)return null;let l=t.filter(e=>e.value!=null&&e.dataKey!=null).map(e=>({key:String(e.dataKey),label:i[String(e.dataKey)]??String(e.dataKey),value:o(Number(e.value)),color:a[String(e.dataKey)]??`#6b7280`,numericValue:Number(e.value)})).sort((e,t)=>e.numericValue===t.numericValue?e.label.localeCompare(t.label):t.numericValue-e.numericValue),u=n?l.find(e=>e.key===n):null,d=u?l.filter(e=>e.key!==n):l,f=l.reduce((e,t)=>e+t.numericValue,0);return(0,J.jsxs)(`div`,{className:`rounded-lg border border-[var(--border-subtle)] bg-[var(--surface-overlay)] px-3.5 py-2.5 shadow-[var(--shadow-popover)]`,children:[(0,J.jsx)(`div`,{className:`mb-1.5 text-xs font-medium text-[var(--content-secondary)]`,children:(c??Rt)(String(r))}),u&&(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(Na,{item:u}),d.length>0&&(0,J.jsx)(`div`,{className:`my-1.5 border-t border-[var(--border-subtle)]`})]}),d.map(e=>(0,J.jsx)(Na,{item:e},e.key)),s&&(0,J.jsx)(`div`,{className:`mt-1 flex items-center gap-2 border-t border-[var(--border-subtle)] pt-1.5 text-[13px] font-semibold text-[var(--content-default)]`,children:(0,J.jsxs)(`span`,{children:[`Total: `,o(f)]})})]})}function Fa(e,t){let[n,r]=e,[i,a]=t,o=r-n||1;return e=>i+(e-n)/o*(a-i)}function Ia(e){if(e<=0)return 1;let t=10**Math.floor(Math.log10(e)),n=e/t,r;return r=n<=1?1:n<=2?2:n<=2.5?2.5:n<=5?5:10,r*t}function La(e){if(e>=1)return+!Number.isInteger(e);let t=e/10**Math.floor(Math.log10(e)),n=Math.abs(t-2.5)<.01;return Math.ceil(-Math.log10(e))+ +!!n}function Ra(e,t){let n=Math.max(0,...e),r=t?.tickCount??5;return n===0?t?.integerOnly?r:1:t?.integerOnly?Math.max(1,Math.ceil(n/r))*r:Ia(n/r)*r}function za(e,t){if(e===0)return[0];let n=e/t,r=10**(n>=1?0:Math.ceil(-Math.log10(n))+2),i=[];for(let e=0;e<=t;e++)i.push(Math.round(n*e*r)/r);return i}function Ba(e,t,n,r,i){let a=Math.min(i,n/2,r/2);return[`M${e},${t+a}`,`A${a},${a} 0 0 1 ${e+a},${t}`,`H${e+n-a}`,`A${a},${a} 0 0 1 ${e+n},${t+a}`,`V${t+r}`,`H${e}`,`Z`].join(``)}function Va(e,t){if(e<=0)return[];if(t)return e<=3?Array.from({length:e},(e,t)=>t):[0,Math.floor(e/2),e-1];let n=Math.max(1,Math.ceil(e/Math.min(e,12))),r=[];for(let t=0;t<e;t+=n)r.push(t);return r[r.length-1]!==e-1&&r.push(e-1),r}var Ha=40,Ua={fontSize:11,fill:`var(--content-tertiary)`},Wa={runtime_proxy_api:`#3b82f6`,oauth_proxy:`#f59e0b`};function Ga(e,t){return Wa[e]??Ma[t%Ma.length]??`#6b7280`}function Ka(e,t){let n=new Set,r={};for(let t of e)for(let e of t.groups)n.add(e.group_key),r[e.group_key]=e.group_label;return{data:e.map(e=>{let n={date:e.date};for(let r of e.groups)n[r.group_key]=t===`spend`?parseFloat(r.total_usd):r.event_count;return n}),stackKeys:Array.from(n),labelMap:r}}function qa({stackKeys:e,labelMap:t}){return(0,J.jsx)(`div`,{className:`flex flex-wrap items-center justify-center gap-x-5 gap-y-1 pt-3 text-body-small-default`,children:e.map((e,n)=>(0,J.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,J.jsx)(`span`,{className:`inline-block h-2.5 w-2.5 rounded-sm`,style:{backgroundColor:Ga(e,n)}}),(0,J.jsx)(`span`,{className:`text-[var(--content-quiet)]`,children:t[e]??e})]},e))})}var Ja=350,Ya={top:8,right:4,bottom:32,left:0},Xa=.2,Za=5,Qa=12,$a=200;function eo({buckets:e,metric:t,onBarClick:n}){let r=Xe(),i=(0,K.useRef)(null),[a,o]=(0,K.useState)(0);(0,K.useEffect)(()=>{let e=i.current;if(!e)return;let t=new ResizeObserver(([e])=>{e&&o(e.contentRect.width)});return t.observe(e),()=>t.disconnect()},[]);let{data:s,stackKeys:c,labelMap:l}=(0,K.useMemo)(()=>Ka(e,t),[e,t]),u=(0,K.useMemo)(()=>{let e={};for(let t=0;t<c.length;t++)e[c[t]]=Ga(c[t],t);return e},[c]),d=(0,K.useCallback)(e=>t===`spend`?`$${e.toLocaleString(`en-US`,{minimumFractionDigits:2,maximumFractionDigits:2})}`:e.toLocaleString(`en-US`),[t]),[f,p]=(0,K.useState)(null),m=r?Ha:56,h=r?Ua:Aa,g=Ya.left+m,_=Math.max(0,a-g-Ya.right),v=Ya.top,y=Ja-Ya.top-Ya.bottom,b=(0,K.useMemo)(()=>s.map(e=>c.reduce((t,n)=>t+(Number(e[n])||0),0)),[s,c]),x=t===`events`,S=(0,K.useMemo)(()=>Ra(b,{integerOnly:x,tickCount:Za}),[b,x]),C=(0,K.useMemo)(()=>za(S,Za),[S]),w=(0,K.useCallback)(e=>{if(t===`spend`){if(e===0)return`$0`;let t=S/Za,n=Math.max(t<1?2:0,La(t));return`$${e.toLocaleString(`en-US`,{minimumFractionDigits:n,maximumFractionDigits:n})}`}return e.toLocaleString(`en-US`)},[t,S]),T=(0,K.useMemo)(()=>Fa([0,S],[v+y,v]),[S,v,y]),E=s.length,D=E>0?_/E:0,O=D*(1-Xa),k=(D-O)/2,A=(0,K.useMemo)(()=>Va(E,r),[E,r]),j=c.length===0,M=j?[]:s.map((e,t)=>{let n=g+t*D+k,r=0;return{di:t,x:n,segments:c.map((t,i)=>{let a=Number(e[t])||0,o=r;r+=a;let s=T(r),l=T(o)-s,u=i===c.length-1;return{key:t,val:a,x:n,y:s,h:l,color:Ga(t,i),isLast:u}})}}),N=(e,t,n)=>{let r=i.current?.getBoundingClientRect();r&&p({x:e.clientX-r.left,y:e.clientY-r.top,datumIndex:t,hoveredKey:n})},P=()=>p(null),F=e=>{n&&n(e)},I=f?c.filter(e=>(Number(s[f.datumIndex]?.[e])||0)>0).map(e=>({dataKey:e,value:Number(s[f.datumIndex]?.[e])||0})):[],ee={left:f?Math.max(0,Math.min(f.x+Qa,a-$a)):0,top:f?f.y-Qa:0,visibility:f?`visible`:`hidden`};return(0,J.jsxs)(`div`,{onMouseDown:e=>e.preventDefault(),children:[(0,J.jsx)(`div`,{ref:i,className:`relative w-full`,style:{height:Ja},children:j?(0,J.jsx)(`div`,{className:`flex h-full items-center justify-center text-body-medium-lighter text-[var(--content-faint)]`,children:`No usage data for this period`}):a>0?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(`svg`,{width:a,height:Ja,className:`block`,children:[C.map(e=>(0,J.jsx)(`line`,{x1:g,x2:g+_,y1:T(e),y2:T(e),stroke:ka.stroke,strokeOpacity:ka.strokeOpacity,strokeDasharray:ka.strokeDasharray},e)),(0,J.jsx)(`line`,{x1:g,x2:g+_,y1:v+y,y2:v+y,stroke:ja.stroke,strokeOpacity:ja.strokeOpacity}),C.map(e=>(0,J.jsx)(`text`,{x:g-8,y:T(e),textAnchor:`end`,dominantBaseline:`middle`,fontSize:h.fontSize,fill:h.fill,children:w(e)},e)),A.map(e=>{let t=s[e];return t?(0,J.jsx)(`text`,{x:g+e*D+D/2,y:v+y+20,textAnchor:`middle`,fontSize:h.fontSize,fill:h.fill,children:Rt(String(t.date))},e):null}),M.map(({di:e,segments:t})=>t.map(t=>{if(t.h<=0)return null;let r=f?.hoveredKey&&f.hoveredKey!==t.key?.4:1,i={key:`${e}-${t.key}`,fill:t.color,opacity:r,cursor:n?`pointer`:void 0,onMouseMove:n=>N(n,e,t.key),onMouseLeave:P,onClick:()=>F(t.key)};return t.isLast?(0,J.jsx)(`path`,{...i,d:Ba(t.x,t.y,O,t.h,3)}):(0,J.jsx)(`rect`,{...i,x:t.x,y:t.y,width:O,height:t.h})}))]}),(0,J.jsx)(`div`,{className:`pointer-events-none absolute z-[1] max-w-[calc(100vw-32px)] -translate-y-full`,style:ee,children:(0,J.jsx)(Pa,{active:!!f,payload:I,hoveredKey:f?.hoveredKey??void 0,label:f?String(s[f.datumIndex]?.date):``,labelMap:l,colorMap:u,formatValue:d})})]}):null}),!j&&(0,J.jsx)(qa,{stackKeys:c,labelMap:l})]})}function to(e=Ze()){return Ta(30,e)}function no(e){if(e)return e.usageSource===`oauth_proxy`?`oauth_provider`:$t(e.llmDimension??`model`)}function ro(e,t=Ze()){return{from:e.dateRange.from,to:e.dateRange.to,tz:t,...e.drilldown?{usage_source:e.drilldown.usageSource,group_by:no(e.drilldown)}:{}}}function io(e,t=Ze()){return{from:e.dateRange.from,to:e.dateRange.to,tz:t,...e.drilldown?{usage_source:e.drilldown.usageSource}:{}}}function ao(e,t,n){return e===`full`&&t!==`gated`&&n}function oo(e){let t=At(),n=ao(G({platformHostedOnly:!0}),G(),We()),r=u({...yt({query:ro(e,t)}),enabled:n}),i=u({...vt({query:io(e,t)}),enabled:n});return{series:r.data,totals:i.data,isLoading:r.isLoading||i.isLoading,isError:r.isError||i.isError}}var so=[{value:`spend`,label:`Spend ($)`},{value:`events`,label:`Events`}];function co(e){if(e===void 0)return`—`;let t=parseFloat(e);return Number.isNaN(t)?`$0.00`:`$${t.toLocaleString(`en-US`,{minimumFractionDigits:2,maximumFractionDigits:2})}`}function lo(e){return e===void 0?`—`:e.toLocaleString(`en-US`)}function uo(){let e=At(),[t,n]=(0,K.useState)(30),[r,i]=(0,K.useState)(()=>to(e)),a=(0,K.useMemo)(()=>t===null?r:Ta(t,e),[t,r,e]),o=(e,t)=>{n(t),i(e)},[s,c]=(0,K.useState)(null),[l,u]=(0,K.useState)(`spend`),{series:d,totals:f,isLoading:h,isError:_}=oo({dateRange:a,setDateRange:e=>{n(null),i(e)},drilldown:s,setDrilldown:c}),v=s?void 0:e=>{let t={runtime_proxy_api:`runtime_proxy`,oauth_proxy:`oauth_proxy`}[e];t&&c({usageSource:t,...t===`runtime_proxy`?{llmDimension:Jt}:{}})};return(0,J.jsx)(m,{padding:`md`,children:(0,J.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,J.jsxs)(`div`,{className:`flex flex-wrap items-start justify-between gap-3`,children:[(0,J.jsxs)(`div`,{children:[(0,J.jsx)(p,{as:`h2`,variant:`title-medium`,className:`text-[var(--content-default)]`,children:`Credit Usage`}),(0,J.jsx)(p,{as:`p`,variant:`body-small-default`,className:`mt-2 text-[var(--content-tertiary)]`,children:`Overview of your spending habits.`})]}),(0,J.jsxs)(`div`,{className:`flex flex-wrap items-center justify-end gap-2 [&_[role=combobox]]:h-8 [&_[role=radio]]:h-7`,children:[(0,J.jsx)(Oa,{value:a,onChange:o}),(0,J.jsx)(`div`,{className:`w-44`,children:(0,J.jsx)(we,{items:so,value:l,onChange:u,ariaLabel:`Chart metric`})})]})]}),(0,J.jsxs)(`div`,{className:`grid grid-cols-1 gap-2 sm:grid-cols-2`,children:[(0,J.jsx)(Te,{icon:(0,J.jsx)(S,{className:`h-4 w-4`,"aria-hidden":!0}),value:h?(0,J.jsx)(B,{className:`h-4 w-4 animate-spin`,"aria-hidden":!0}):co(f?.total_usd),label:`Spend`}),(0,J.jsx)(Te,{icon:(0,J.jsx)(Ht,{className:`h-4 w-4`,"aria-hidden":!0}),value:h?(0,J.jsx)(B,{className:`h-4 w-4 animate-spin`,"aria-hidden":!0}):lo(f?.event_count),label:`Events`})]}),s&&(0,J.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[(0,J.jsx)(`div`,{children:(0,J.jsxs)(`button`,{className:`flex items-center gap-1.5 text-body-medium-lighter text-[var(--content-tertiary)] transition-colors hover:text-[var(--content-secondary)]`,onClick:()=>c(null),children:[(0,J.jsx)(g,{className:`h-3.5 w-3.5`}),(0,J.jsx)(`span`,{children:`Back to all usage`}),(0,J.jsx)(`span`,{className:`text-[var(--content-tertiary)]`,children:`/`}),(0,J.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-default)]`,children:s.usageSource===`runtime_proxy`?`LLM Spend`:`OAuth Spend`})]})}),s.usageSource===`runtime_proxy`&&(0,J.jsx)(`div`,{className:`w-56`,children:(0,J.jsx)(we,{items:Xt,value:s.llmDimension??`model`,onChange:e=>c({usageSource:`runtime_proxy`,llmDimension:e}),ariaLabel:`LLM spend dimension`})})]}),h?(0,J.jsx)(`div`,{className:`flex h-[345px] items-center justify-center rounded-xl bg-[var(--surface-base)]`,children:(0,J.jsx)(B,{className:`h-6 w-6 animate-spin text-[var(--content-tertiary)]`})}):_?(0,J.jsx)(`div`,{className:`flex h-[345px] items-center justify-center rounded-xl bg-[var(--surface-base)] text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Failed to load usage data.`}):d?(0,J.jsx)(`div`,{className:`rounded-xl bg-[var(--surface-base)] p-3`,children:(0,J.jsx)(eo,{buckets:d.buckets,metric:l,onBarClick:v})}):null]})})}function fo(){let{data:e}=u(xt()),t=T((0,K.useMemo)(()=>A(e),[e]));if(!e||e.plan_id!==`pro`||e.status===`canceled`||!e.cancel_at_period_end&&!e.cancel_at)return null;let n=j(e);return n?(0,J.jsx)(V,{tone:`info`,title:`Your Pro plan will end on ${de(n)}.`,actions:(0,J.jsx)(i,{variant:`outlined`,size:`compact`,onClick:()=>t.mutate({}),disabled:t.isPending,leftIcon:t.isPending?(0,J.jsx)(B,{className:`animate-spin`}):void 0,"data-testid":`grace-period-reactivate-button`,children:`Reactivate`}),"data-testid":`grace-period-banner`,children:`You'll keep Pro features until then.`}):null}var po={invoices:[]},mo=4;function ho(e){switch(e){case`paid`:return`positive`;case`open`:return`warning`;case`uncollectible`:return`negative`;default:return`neutral`}}function go(e,t){let n=t.toUpperCase();try{let t=new Intl.NumberFormat(void 0,{style:`currency`,currency:n}),r=t.resolvedOptions().maximumFractionDigits??2;return t.format(e/10**r)}catch{return`${(e/100).toFixed(2)} ${n}`}}function _o(e){return Nt(new Date(e*1e3),{alwaysShowYear:!0})}function vo(e){let t=document.createElement(`a`);t.href=e,t.target=`_blank`,t.rel=`noopener noreferrer`,document.body.appendChild(t),t.click(),t.remove()}function yo(){let[e,t]=(0,K.useState)(!1),[r,o]=(0,K.useState)(!1),[s,c]=(0,K.useState)(!1),l=u({enabled:e,queryKey:nt(),queryFn:async({signal:e})=>{let{data:t,response:n}=await Ve({throwOnError:!1,signal:e});if(n?.status===404)return po;if(!n?.ok||!t)throw Error(`Failed to load invoices (${n?.status??`network error`})`);return t}}),d=l.data?.invoices??[],f=r?d:d.slice(0,mo),h=d.length>mo;async function g(){c(!0);try{let{data:e,response:t}=await Be({throwOnError:!1,parseAs:`blob`});if(!t?.ok||!(e instanceof Blob))throw Error(`Failed to download invoices (${t?.status??`network error`})`);let{saveFile:n}=await a(async()=>{let{saveFile:e}=await import(`./native-file-fkzAxQg0.js`).then(e=>e.t);return{saveFile:e}},__vite__mapDeps([0,1,2,3,4]));await n(e,`invoices.zip`)}catch(e){n(e,{context:`download_all_invoices`}),W.error(`Failed to download invoices.`)}finally{c(!1)}}return(0,J.jsx)(m,{padding:`md`,children:(0,J.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,J.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,J.jsxs)(`div`,{children:[(0,J.jsx)(p,{as:`h2`,variant:`title-medium`,className:`text-[var(--content-default)]`,children:`Invoices`}),(0,J.jsx)(p,{as:`p`,variant:`body-small-default`,className:`mt-2 text-[var(--content-tertiary)]`,children:`Your billing history.`})]}),(0,J.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[e&&d.length>0&&(0,J.jsx)(i,{variant:`outlined`,leftIcon:s?(0,J.jsx)(B,{className:`animate-spin`}):(0,J.jsx)(_e,{className:`h-4 w-4`}),onClick:g,disabled:s,"data-testid":`invoices-download-all`,children:`Download all`}),(0,J.jsx)(i,{variant:`outlined`,leftIcon:e?(0,J.jsx)(b,{className:`h-4 w-4`}):(0,J.jsx)(y,{className:`h-4 w-4`}),onClick:()=>t(e=>!e),"data-testid":`invoices-toggle`,children:e?`Hide invoices`:`Show invoices`})]})]}),e?l.isLoading?(0,J.jsxs)(`div`,{className:`flex items-center gap-2 py-6 text-[var(--content-tertiary)]`,children:[(0,J.jsx)(B,{className:`h-4 w-4 animate-spin`}),(0,J.jsx)(p,{as:`span`,variant:`body-small-default`,children:`Loading invoices...`})]}):l.isError?(0,J.jsx)(V,{tone:`error`,children:`Failed to load invoices.`}):d.length===0?(0,J.jsx)(p,{as:`p`,variant:`body-small-default`,className:`py-6 text-center text-[var(--content-tertiary)]`,"data-testid":`invoices-empty`,children:`No Invoices Found`}):(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`div`,{className:`overflow-x-auto`,children:(0,J.jsxs)(`table`,{className:`w-full`,"data-testid":`invoices-table`,children:[(0,J.jsx)(`thead`,{children:(0,J.jsxs)(`tr`,{className:`border-b border-[var(--border-base)] text-left`,children:[(0,J.jsx)(`th`,{className:`pb-2 pr-4 text-body-small-default text-[var(--content-tertiary)]`,children:`Date`}),(0,J.jsx)(`th`,{className:`pb-2 pr-4 text-body-small-default text-[var(--content-tertiary)]`,children:`Amount`}),(0,J.jsx)(`th`,{className:`pb-2 pr-4 text-body-small-default text-[var(--content-tertiary)]`,children:`Status`}),(0,J.jsx)(`th`,{className:`pb-2 text-body-small-default text-[var(--content-tertiary)]`,children:`Action`})]})}),(0,J.jsx)(`tbody`,{children:f.map(e=>(0,J.jsxs)(`tr`,{className:`border-b border-[var(--border-base)] last:border-0`,"data-testid":`invoice-row`,children:[(0,J.jsx)(`td`,{className:`py-3 pr-4`,children:(0,J.jsx)(p,{as:`span`,variant:`body-small-default`,className:`text-[var(--content-secondary)]`,children:_o(e.created)})}),(0,J.jsx)(`td`,{className:`py-3 pr-4`,children:(0,J.jsx)(p,{as:`span`,variant:`body-small-default`,className:`text-[var(--content-secondary)]`,children:go(e.amount_due,e.currency)})}),(0,J.jsx)(`td`,{className:`py-3 pr-4`,children:e.status&&(0,J.jsx)(Ee,{tone:ho(e.status),children:e.status})}),(0,J.jsx)(`td`,{className:`py-3`,children:(0,J.jsxs)(`div`,{className:`flex items-center gap-1`,children:[e.hosted_invoice_url&&(0,J.jsx)(i,{asChild:!0,variant:`ghost`,size:`compact`,leftIcon:(0,J.jsx)(ve,{className:`h-3.5 w-3.5`}),children:(0,J.jsx)(`a`,{href:e.hosted_invoice_url,target:`_blank`,rel:`noopener noreferrer`,children:`View`})}),e.invoice_pdf&&(0,J.jsx)(i,{variant:`ghost`,size:`compact`,iconOnly:(0,J.jsx)(_e,{className:`h-3.5 w-3.5`}),"aria-label":`Download invoice PDF`,onClick:()=>vo(e.invoice_pdf)})]})})]},e.id))})]})}),h&&(0,J.jsx)(`button`,{type:`button`,onClick:()=>o(e=>!e),className:`self-start text-body-small-default text-[var(--content-tertiary)] transition-colors hover:text-[var(--content-secondary)]`,"data-testid":`invoices-show-more`,children:r?`Show less`:`Show more (${d.length-mo} more)`})]}):null]})})}function bo({icon:e,label:t,multiline:n=!1}){return(0,J.jsxs)(`div`,{className:jt(`flex items-center gap-1.5 rounded-lg bg-[var(--surface-overlay)] px-2 py-1.5`,n?`min-h-8 min-w-0`:`h-8`),children:[(0,J.jsx)(e,{className:`h-3.5 w-3.5 shrink-0 text-[var(--content-default)]`,"aria-hidden":!0}),(0,J.jsx)(p,{as:`span`,variant:`body-medium-default`,className:jt(`text-[var(--content-default)]`,n?`whitespace-normal`:`whitespace-nowrap`),children:t})]})}function xo({tone:e,tierKey:t,name:n,nameTestId:r,tag:i,tagline:a,specs:o,action:s,centered:c=!1,className:l}){let u=o!=null&&o.length>0;return(0,J.jsxs)(`div`,{"data-theme":e,className:jt(`flex min-w-0 flex-1 flex-col gap-4 rounded-xl bg-[var(--surface-base)] py-3 pl-3 pr-4`,c&&`items-center justify-center`,l),children:[(0,J.jsxs)(`div`,{className:jt(`flex items-center gap-3`,c?`justify-center`:`justify-between`),children:[(0,J.jsxs)(`div`,{className:`flex min-w-0 items-center gap-3`,children:[(0,J.jsx)(M,{tier:t}),(0,J.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1.5`,children:[(0,J.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:[(0,J.jsx)(p,{as:`span`,variant:`body-large-default`,className:`text-[var(--content-default)]`,"data-testid":r,children:n}),i]}),a?(0,J.jsx)(p,{as:`span`,variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,children:a}):null]})]}),s]}),u?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`div`,{className:`mt-auto h-px w-full bg-[var(--border-base)]`}),(0,J.jsx)(`div`,{className:`flex flex-wrap items-center gap-2`,children:o.map(e=>(0,J.jsx)(bo,{icon:e.icon,label:e.label,multiline:e.multiline},e.label))})]}):null]})}var So={pro:{actionLabel:`Manage`,actionVariant:`outlined`,actionTestId:`plan-card-manage-button`,showsRenewal:!0},base:{actionLabel:`View All Plans`,actionVariant:`primary`,actionTestId:`plan-card-upgrade-button`,showsRenewal:!0}},Co=So.base;function wo(){return(0,J.jsx)(p,{as:`h2`,variant:`title-medium`,className:`text-[var(--content-emphasised)]`,children:`Plan`})}function To({packages:e,currentKey:t,isProUser:n,canChangePackage:r,relation:a,onManage:o,onTierUpgraded:s}){let c=l(),u=d(ht()),{changePackage:f,isPending:p}=ie(),[m,h]=(0,K.useState)(!1),[g,v]=(0,K.useState)(!1);ce();let y=C(e,t);if(!y)return null;let b=[{icon:_,label:R(t?e.find(e=>e.key===t)??null:null)===R(y)?`more credits and storage`:`more credits, storage, and a stronger machine`,multiline:!0}],x=a===`switch`,S=x?`Switch to ${y.name}`:`Upgrade`,w=m||u.isPending||p,T=async()=>{let e=await f(y.key);e&&(v(!1),e.status===`ok`?s?.():W.success(`You're already on this plan.`))},E=async()=>{if(n&&!r){o();return}if(n){v(!0);return}h(!0);try{let e=await u.mutateAsync({body:{target_plan_id:`pro`,package:y.key,confirm:!0,return_target:fe()}});e.status===`redirect`&&e.checkout_url?(O({kind:`package`,packageKey:y.key}),Ke(e.checkout_url)):(await c.invalidateQueries({queryKey:Dt()}),await c.invalidateQueries({queryKey:gt()}))}catch(e){W.error(F(e,`Failed to start the upgrade checkout. Please try again.`))}finally{h(!1)}},D=P(y.key),k=(0,J.jsx)(i,{variant:`primary`,className:`shrink-0`,onClick:E,disabled:w,leftIcon:w?(0,J.jsx)(B,{className:`h-4 w-4 animate-spin`}):void 0,"data-testid":`recommended-upgrade-button`,children:S});return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(xo,{tone:`dark`,tierKey:y.key,name:y.name,className:`lg:flex-[2]`,tag:(0,J.jsx)(Ee,{className:`bg-[var(--feed-digest-weak)] text-[var(--credits-accent)]`,leftIcon:(0,J.jsx)(be,{className:`h-3 w-3 text-[var(--credits-accent)]`}),children:x?`Switch plan`:`Recommended`}),tagline:D?.tagline,specs:x?null:b,action:k}),(0,J.jsx)(oe,{open:g,relation:a,packageName:y.name,pending:w,onConfirm:()=>void T(),onCancel:()=>v(!1)})]})}function Eo({onManage:e,onTierUpgraded:t}){let n=c(),r=u(xt()),a=u(Qe());if(r.isLoading||a.isLoading)return(0,J.jsxs)(m,{padding:`md`,children:[(0,J.jsx)(wo,{}),(0,J.jsxs)(`div`,{className:`mt-4 flex items-center gap-2 text-[var(--content-tertiary)]`,children:[(0,J.jsx)(B,{className:`h-4 w-4 animate-spin`}),(0,J.jsx)(p,{as:`span`,variant:`body-small-default`,children:`Loading plan...`})]})]});let o=r.data,s=a.data?.plans,l=s?.find(e=>e.id===o?.plan_id);if(r.isError||a.isError||!o||!s||!l)return(0,J.jsx)(V,{tone:`error`,children:`Failed to load plan.`});let d=So[l.id]??Co,f=l.id===`pro`?re(o.package):l.name??l.id,h=d.showsRenewal&&(o.cancel_at_period_end===!0||!!o.cancel_at),g=o.status===`canceled`,_=j(o),v=d.showsRenewal&&!h&&!g&&o.current_period_end,y=d.showsRenewal&&h&&!g&&_,b=s.find(e=>e.id===`pro`)?.packages??[],x=o.package?.key??null,S=x??`free`,C=b.length>0&&(l.id===`base`||L(o.package)||I(o)),w=I(o),T=l.id===`base`||L(o.package)?`upgrade`:`switch`,E=P(S),D=l.id===`base`,O=!D&&L(o.package)?b.find(e=>e.key===x)??null:null,k=O?ne(O):null,A=D||L(o.package);return(0,J.jsx)(m,{padding:`md`,children:(0,J.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,J.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,J.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1`,children:[(0,J.jsx)(wo,{}),v&&(0,J.jsxs)(p,{variant:`body-small-default`,as:`div`,className:`leading-snug text-[var(--content-tertiary)]`,"data-testid":`plan-card-renews`,children:[`Monthly Payment • Your subscription will auto renew on`,` `,de(o.current_period_end),`.`]}),y&&(0,J.jsxs)(p,{variant:`body-small-default`,as:`div`,className:`leading-snug text-[var(--system-mid-strong)]`,"data-testid":`plan-card-cancels`,children:[`Your plan ends on `,de(_),`.`]})]}),(0,J.jsx)(i,{variant:d.actionVariant,onClick:C?()=>n(He.plans):e,"data-testid":d.actionTestId,className:`shrink-0`,children:d.actionLabel})]}),(0,J.jsxs)(`div`,{className:`flex flex-col gap-3 lg:flex-row lg:items-stretch`,children:[(0,J.jsx)(xo,{tone:`light`,tierKey:S,name:f,nameTestId:`plan-card-name`,className:`lg:flex-[3]`,centered:D,tag:(0,J.jsx)(Ee,{className:`bg-[var(--feed-digest-weak)] text-[var(--content-default)]`,children:`Your Current Plan`}),tagline:A?E?.tagline:void 0,specs:k}),(0,J.jsx)(To,{packages:b,currentKey:x,isProUser:l.id!==`base`,canChangePackage:w,relation:T,onManage:e,onTierUpgraded:t})]})]})})}function Do(){let[e]=o(),t=c(),n=l();return(0,K.useEffect)(()=>{let r=e.get(`billing_status`);r&&(r===`success`?(W.success(`Payment received! Your credit balance will update shortly.`,{id:`billing-status`}),n.invalidateQueries({queryKey:_t().queryKey})):r===`cancel`&&W.info(`Checkout was cancelled. No credits were added.`,{id:`billing-status`}),t(He.settings.usageBilling,{replace:!0}))},[e,t,n]),null}function Oo({onFinishSetup:e}){let t=Ge(),{data:n}=u({...xt(),enabled:t}),r=n?.plan_id===`pro`,{data:a}=u({...Tt(),enabled:r&&t}),o=r&&a?.domain_setup_available===!0,{domains:s}=D(o,a?.primary_assistant_id),c=s!==void 0&&s.results.length===0;return!o||!c?null:(0,J.jsx)(V,{tone:`info`,title:`Finish setting up your ${re(n?.package)} plan`,actions:(0,J.jsx)(i,{variant:`outlined`,size:`compact`,onClick:e,"data-testid":`finish-pro-setup-button`,children:`Finish setup`}),"data-testid":`finish-pro-setup-notice`,children:`Your assistant's email address hasn't been set up yet.`})}function ko(){let e=G({platformHostedOnly:!0}),t=G(),n=We(),r=Ue(),[i,a]=o(),[s,c]=(0,K.useState)(!1),l=(0,K.useCallback)(()=>c(!0),[]),u=(0,K.useCallback)(()=>c(!1),[]),[d,f]=(0,K.useState)(!1),p=(0,K.useCallback)(()=>f(!0),[]),[m,h]=(0,K.useState)(!1);(0,K.useEffect)(()=>{if(t!==`full`)return;let e=i.has(`adjust_plan`),n=i.has(`pro_onboarding`);!e&&!n||(e&&c(!0),n&&h(!0),a(e=>{let t=new URLSearchParams(e);return t.delete(`adjust_plan`),t.delete(`pro_onboarding`),t},{replace:!0}))},[t,i,a]);let g=i.has(`session_id`),_=(0,K.useCallback)(()=>{h(!1),a(e=>{let t=new URLSearchParams(e);return t.delete(`session_id`),t},{replace:!0})},[a]),v=(0,K.useCallback)(()=>{a(e=>{let t=new URLSearchParams(e);return t.set(`pro_onboarding`,``),t},{replace:!0})},[a]);if(t===`disabled`)return(0,J.jsx)(`div`,{className:`space-y-4`,children:(0,J.jsx)(Mt,{children:`Log in to the Vellum platform to manage billing and usage.`})});if(r)return(0,J.jsx)(`div`,{className:`space-y-4`,children:(0,J.jsxs)(`div`,{className:`flex items-center gap-2 py-6 text-body-medium-lighter text-[var(--content-secondary)]`,children:[(0,J.jsx)(B,{className:`h-4 w-4 animate-spin`}),`Loading billing…`]})});let y=n;return!n&&e!==`gated`?(0,J.jsx)(`div`,{className:`space-y-4`,children:(0,J.jsx)(V,{tone:`warning`,children:`Billing isn't available for the current assistant state.`})}):(0,J.jsxs)(`div`,{className:`space-y-4`,children:[(0,J.jsxs)(K.Suspense,{fallback:null,children:[(0,J.jsx)(Do,{}),(0,J.jsx)(Ca,{})]}),y&&(0,J.jsx)(fo,{}),y&&(0,J.jsx)(Oo,{onFinishSetup:v}),y&&(0,J.jsx)(Eo,{onManage:l,onTierUpgraded:p}),y&&(0,J.jsx)(Br,{open:s,onClose:u,onTierUpgraded:p}),(0,J.jsx)(K.Suspense,{fallback:null,children:(0,J.jsx)(ga,{})}),(0,J.jsx)(K.Suspense,{fallback:null,children:(0,J.jsx)(yo,{})}),y&&(0,J.jsx)(k,{open:g||m,onClose:_}),y&&(0,J.jsx)(k,{mode:`resize`,open:d,onClose:()=>f(!1)})]})}function Ao(){let e=Pt(),t=G({platformHostedOnly:!0}),n=G();return(0,J.jsxs)(`div`,{className:`space-y-4`,children:[t===`full`&&n!==`gated`&&(0,J.jsx)(uo,{}),(0,J.jsx)(_r,{assistantId:e})]})}function jo(){let e=G(),[t,n]=o(),r=Gt(e,t),i=r&&t.get(`tab`)!==`usage`?`billing`:`usage`,a=ze();return(0,K.useEffect)(()=>{if(a&&t.get(`tab`)!==i){let e=new URLSearchParams(t);e.set(`tab`,i),n(e,{replace:!0})}},[a,t,i,n]),(0,J.jsx)(`div`,{className:`space-y-6`,children:(0,J.jsxs)(z.Root,{value:i,onValueChange:e=>{let r=new URLSearchParams(t);r.set(`tab`,e),n(r,{replace:!0})},children:[(0,J.jsxs)(z.List,{children:[r&&(0,J.jsx)(z.Trigger,{value:`billing`,children:`Billing`}),(0,J.jsx)(z.Trigger,{value:`usage`,children:`Usage`})]}),r&&(0,J.jsx)(z.Panel,{value:`billing`,className:`pt-4`,children:(0,J.jsx)(ko,{})}),(0,J.jsx)(z.Panel,{value:`usage`,className:`pt-4`,children:(0,J.jsx)(Ao,{})})]})})}export{jo as BillingPage};
@@ -1 +0,0 @@
1
- import{t as e}from"./onboarding-store-hpvNtD3A.js";function t(){let{shareAnalytics:t,serverAnalyticsEffective:n,pendingAnalyticsOptIn:r}=e.getState();return t===!1?!1:r?!0:n??!0}export{t};
@@ -1 +0,0 @@
1
- import{t as e}from"./createLucideIcon-CAM1RhH8.js";var t=e(`crown`,[[`path`,{d:`M11.562 3.266a.5.5 0 0 1 .876 0L15.39 8.87a1 1 0 0 0 1.516.294L21.183 5.5a.5.5 0 0 1 .798.519l-2.834 10.246a1 1 0 0 1-.956.734H5.81a1 1 0 0 1-.957-.734L2.02 6.02a.5.5 0 0 1 .798-.519l4.276 3.664a1 1 0 0 0 1.516-.294z`,key:`1vdc57`}],[`path`,{d:`M5 21h14`,key:`11awu3`}]]);export{t};
@@ -1 +0,0 @@
1
- import{r as e}from"./device-settings-DXp9L4iB.js";import{t}from"./browser-timezone-DGz-HvxU.js";function n(){return e(`timezone`,``).trim()||t()}export{n as t};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/web-C4ApmvCw.js","assets/dist-BJSu8g5P.js"])))=>i.map(i=>d[i]);
2
- import{t as e}from"./preload-helper-Cv2QeVDK.js";import{i as t}from"./dist-BJSu8g5P.js";var n=t(`Share`,{web:()=>e(()=>import(`./web-C4ApmvCw.js`).then(e=>new e.ShareWeb),__vite__mapDeps([0,1]))});export{n as Share};
@@ -1 +0,0 @@
1
- import{i as e}from"./dist-BJSu8g5P.js";var t=e(`PushNotifications`,{});export{t as PushNotifications};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/web-Cimwq57E.js","assets/dist-BJSu8g5P.js"])))=>i.map(i=>d[i]);
2
- import{t as e}from"./preload-helper-Cv2QeVDK.js";import{i as t}from"./dist-BJSu8g5P.js";var n=t(`Browser`,{web:()=>e(()=>import(`./web-Cimwq57E.js`).then(e=>new e.BrowserWeb),__vite__mapDeps([0,1]))});export{n as Browser};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/web-BQLS3-Jp.js","assets/dist-BJSu8g5P.js"])))=>i.map(i=>d[i]);
2
- import{t as e}from"./preload-helper-Cv2QeVDK.js";import{i as t}from"./dist-BJSu8g5P.js";var n=t(`App`,{web:()=>e(()=>import(`./web-BQLS3-Jp.js`).then(e=>new e.AppWeb),__vite__mapDeps([0,1]))});export{n as App};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/web-BMLENaxE.js","assets/dist-BJSu8g5P.js"])))=>i.map(i=>d[i]);
2
- import{t as e}from"./preload-helper-Cv2QeVDK.js";import{i as t}from"./dist-BJSu8g5P.js";var n;(function(e){e.Light=`light`,e.Dark=`dark`})(n||={});var r=t(`SafeArea`,{web:()=>e(()=>import(`./web-BMLENaxE.js`).then(e=>new e.SafeAreaWeb),__vite__mapDeps([0,1]))});export{r as SafeArea};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/web-D6tBOv21.js","assets/dist-BJSu8g5P.js","assets/definitions-MzBHgkRs.js"])))=>i.map(i=>d[i]);
2
- import{t as e}from"./preload-helper-Cv2QeVDK.js";import{i as t}from"./dist-BJSu8g5P.js";import{n,t as r}from"./definitions-MzBHgkRs.js";var i=t(`Haptics`,{web:()=>e(()=>import(`./web-D6tBOv21.js`).then(e=>new e.HapticsWeb),__vite__mapDeps([0,1,2]))});export{i as Haptics,r as ImpactStyle,n as NotificationType};