@vellumai/web 0.11.4 → 0.11.5-staging.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (591) hide show
  1. package/dist/assets/{AnimatePresence-CxaKvfs9.js → AnimatePresence-DkZYJl3q.js} +1 -1
  2. package/dist/assets/{Trans-FBE1EuwL.js → Trans-CM5UUgDt.js} +1 -1
  3. package/dist/assets/{a2a-invite-lHsf93YX.js → a2a-invite-CduLLtki.js} +1 -1
  4. package/dist/assets/{about-page-ByfiFQot.js → about-page-c1mqdjOr.js} +1 -1
  5. package/dist/assets/{account-page-Df1VB34_.js → account-page-CSJOSKzD.js} +1 -1
  6. package/dist/assets/{account-shell-Dk4m-iaE.js → account-shell-WRaiE1O8.js} +1 -1
  7. package/dist/assets/{acp-run-actions-FLArlHEs.js → acp-run-actions-DNNBiPfr.js} +1 -1
  8. package/dist/assets/{acp-run-detail-panel-DsqMAPE4.js → acp-run-detail-panel-gR77X6Xm.js} +1 -1
  9. package/dist/assets/{acp-run-store-De5GuSFn.js → acp-run-store-BUcMP80V.js} +1 -1
  10. package/dist/assets/activity-steps-panel-BglLu7wx.js +1 -0
  11. package/dist/assets/{add-credential-modal-vRe51ERD.js → add-credential-modal-DgoBqgwB.js} +1 -1
  12. package/dist/assets/add-credits-modal-BNab_7H9.js +1 -0
  13. package/dist/assets/ai-page-CLAFnWl5.js +1 -0
  14. package/dist/assets/{animate-BhosXxi-.js → animate-1rkqw0bf.js} +1 -1
  15. package/dist/assets/{animated-avatar-DsEiCrtA.js → animated-avatar-Bk5J30oP.js} +1 -1
  16. package/dist/assets/api-ByKY0Cbt.js +1 -0
  17. package/dist/assets/api-DBKgmyno.js +1 -0
  18. package/dist/assets/{api-errors-CASENJGT.js → api-errors-DYGVb-Sh.js} +1 -1
  19. package/dist/assets/api-key-screen-CS0KZgP6.js +1 -0
  20. package/dist/assets/{app-card-CjRGDYCX.js → app-card-C7c3c4l4.js} +1 -1
  21. package/dist/assets/{app-info-CvBesesf.js → app-info-CEe_jK5S.js} +1 -1
  22. package/dist/assets/{archive-redirect-page-LFqfq3Zx.js → archive-redirect-page-DZkHnLmA.js} +1 -1
  23. package/dist/assets/{assistant-feature-flag-store-CNWz-RMv.js → assistant-feature-flag-store-CdXRp9pV.js} +1 -1
  24. package/dist/assets/{assistant-status-panel-BkLYzQAL.js → assistant-status-panel-BogBdYLj.js} +1 -1
  25. package/dist/assets/auth-store-iNnDaLgR.js +2 -0
  26. package/dist/assets/auth-welcome-screen-BoiE47Sg.js +1 -0
  27. package/dist/assets/{avatar-random-B5F8Cp2E.js → avatar-random-C7t2cN3Y.js} +1 -1
  28. package/dist/assets/{avatar-renderer-DSa5eaH2.js → avatar-renderer-DvM-sFyU.js} +1 -1
  29. package/dist/assets/{background-task-actions-rGTNVeqo.js → background-task-actions-D-C9wSSf.js} +1 -1
  30. package/dist/assets/{background-task-detail-panel-DtJ1ZolD.js → background-task-detail-panel-BeXbhHLZ.js} +1 -1
  31. package/dist/assets/{background-task-store-svLgwmNn.js → background-task-store-D3W6TX_2.js} +1 -1
  32. package/dist/assets/billing-page-PuFxEptl.js +3 -0
  33. package/dist/assets/{billing-redirect-page-B6zuKMxb.js → billing-redirect-page-BFDitQeE.js} +1 -1
  34. package/dist/assets/bookmarks-page-DY_CJ4I3.js +1 -0
  35. package/dist/assets/{browser-Ca2R8csw.js → browser--x9YKXWo.js} +2 -2
  36. package/dist/assets/{build-state-laR44jYU.js → build-state-Dtia1Hnq.js} +1 -1
  37. package/dist/assets/{bundle-confirm-page-D7_j_7v3.js → bundle-confirm-page-9Jl2oXni.js} +1 -1
  38. package/dist/assets/{button-VkxVX0DM.js → button-C8CGr0T0.js} +1 -1
  39. package/dist/assets/{capture-error-DiNp24s6.js → capture-error-VBsIaC5d.js} +1 -1
  40. package/dist/assets/{channels-page-route-sLLh-p2k.js → channels-page-route-WZWPUfRo.js} +1 -1
  41. package/dist/assets/chat-QLQLsbFK.js +3 -0
  42. package/dist/assets/{chat-avatar-D7ZBWcZy.js → chat-avatar-DInCdP5z.js} +1 -1
  43. package/dist/assets/chat-markdown-message-JeYI9m3i.js +1 -0
  44. package/dist/assets/chat-z1gK656n.js +1 -0
  45. package/dist/assets/{checkbox-CyG1nZhR.js → checkbox-BWX_Dnge.js} +1 -1
  46. package/dist/assets/checkout-continuation-B-A9SoHt.js +1 -0
  47. package/dist/assets/checkout-page-BYHPD7UJ.js +1 -0
  48. package/dist/assets/checkout-return-target-DnT91-Y_.js +1 -0
  49. package/dist/assets/{client-feature-flag-store-CT2T_Fg7.js → client-feature-flag-store-DuVzcD-V.js} +1 -1
  50. package/dist/assets/{client-perf-BZu5XQCP.js → client-perf-Bg-CBIVj.js} +1 -1
  51. package/dist/assets/{command-palette-B6PZe9A0.js → command-palette-C8JWMyiC.js} +1 -1
  52. package/dist/assets/{command-palette-window-page-BYkkAV88.js → command-palette-window-page-C8vw0yIO.js} +1 -1
  53. package/dist/assets/common-gaw6OefS.js +1 -0
  54. package/dist/assets/community-page-DvR4X6k9.js +1 -0
  55. package/dist/assets/{companion-surface-CZHv2avR.js → companion-surface-Cnmjk-6O.js} +1 -1
  56. package/dist/assets/companion-surface-page-iknPQRTu.js +1 -0
  57. package/dist/assets/composer-settings-B84-FOM1.js +1 -0
  58. package/dist/assets/{confirm-dialog-Drw1adml.js → confirm-dialog-DYmL6FRe.js} +1 -1
  59. package/dist/assets/{connect-page-DiO1EqEC.js → connect-page-CKAizrWr.js} +1 -1
  60. package/dist/assets/{consent-controls-B_zCicqo.js → consent-controls-V9Wca6TV.js} +1 -1
  61. package/dist/assets/{contacts-gateway-CZNNXLeD.js → contacts-gateway-CoPOXTzi.js} +1 -1
  62. package/dist/assets/{contacts-page-route-fUfbhwZ5.js → contacts-page-route-BceswcoE.js} +1 -1
  63. package/dist/assets/conversation-cache-CuEQRyqi.js +1 -0
  64. package/dist/assets/conversation-navigation-CfOyMc6W.js +1 -0
  65. package/dist/assets/conversation-queries-CtAFZgFP.js +1 -0
  66. package/dist/assets/{conversation-selection-4ubh2ui-.js → conversation-selection-ZuF7NVBR.js} +1 -1
  67. package/dist/assets/{copy-to-clipboard-D76_3Coc.js → copy-to-clipboard-yufQqRBL.js} +1 -1
  68. package/dist/assets/{credential-entry-page--HYBfvoW.js → credential-entry-page-B0NYTomQ.js} +1 -1
  69. package/dist/assets/credentials-page-DfOet7SI.js +1 -0
  70. package/dist/assets/{use-avatar-accent-var-DN_cfh4V.js → credit-tiers-Bc9xxLBK.js} +1 -1
  71. package/dist/assets/{csv-preview-T_KT_vef.js → csv-preview-QUU-h2MX.js} +1 -1
  72. package/dist/assets/{danger-zone-redirect-page-BuIG9f9S.js → danger-zone-redirect-page-B_ZMX7ns.js} +1 -1
  73. package/dist/assets/debug-page-DXvFlnqh.js +4 -0
  74. package/dist/assets/{deploy-dialogs-CgicOESj.js → deploy-dialogs-ilUtMpvf.js} +1 -1
  75. package/dist/assets/{deploy-store-dyN183E8.js → deploy-store-C_y0BvwK.js} +1 -1
  76. package/dist/assets/{desktop-voice-activity-D1BSf0I-.js → desktop-voice-activity-B0dHlUep.js} +1 -1
  77. package/dist/assets/{detail-card-Bqnvs6YE.js → detail-card-DwBporBs.js} +1 -1
  78. package/dist/assets/{detail-drawer-j2jaITAL.js → detail-drawer-Di5V_iLf.js} +1 -1
  79. package/dist/assets/{detail-shell-D1UEZCzz.js → detail-shell-CcrQic9y.js} +1 -1
  80. package/dist/assets/developer-page-B_LQmpH7.js +1 -0
  81. package/dist/assets/{devices-redirect-page-BoKYF1E9.js → devices-redirect-page-BD0VY17t.js} +1 -1
  82. package/dist/assets/{diagnostics-CwFqcLv_.js → diagnostics-BcQgahbk.js} +1 -1
  83. package/dist/assets/{dictation-overlay-xS8BRhPs.js → dictation-overlay-BrXujvAw.js} +1 -1
  84. package/dist/assets/dictation-overlay-page-CfGmex7E.js +1 -0
  85. package/dist/assets/dist-BFOJNO7w.js +1 -0
  86. package/dist/assets/{dist-D94ZMew1.js → dist-BsGO-mS7.js} +1 -1
  87. package/dist/assets/{dist-CzN28mbE.js → dist-DN2Wju98.js} +1 -1
  88. package/dist/assets/{dist--4Bbb2u3.js → dist-eCSUXDGk.js} +1 -1
  89. package/dist/assets/{doctor-handoff-store-Cy96Na-O.js → doctor-handoff-store-B_RlFFKC.js} +1 -1
  90. package/dist/assets/{document-viewer-container-BMmSidmj.js → document-viewer-container-D3aPjnj8.js} +2 -2
  91. package/dist/assets/document-viewer-page-CvQXX7Mp.js +1 -0
  92. package/dist/assets/effective-timezone-CrnImpLf.js +1 -0
  93. package/dist/assets/{emails-page-CJM4OS94.js → emails-page-DbAVQ_jC.js} +1 -1
  94. package/dist/assets/{esm-BD6nxr-q.js → esm-4Bnaz5rU.js} +2 -2
  95. package/dist/assets/esm-C4VoH46A.js +1 -0
  96. package/dist/assets/{esm-nl105Ya0.js → esm-CrXbhSov.js} +2 -2
  97. package/dist/assets/{esm-BaEdQNCe.js → esm-DXPZZih3.js} +2 -2
  98. package/dist/assets/esm-DcJxSeV0.js +2 -0
  99. package/dist/assets/{esm-kYXyJ2zw.js → esm-Ddv_MyHw.js} +2 -2
  100. package/dist/assets/{esm-DTIJZw37.js → esm-Do2zrCWJ.js} +2 -2
  101. package/dist/assets/{esm-FpGTFn5W.js → esm-DrXV9mo-.js} +2 -2
  102. package/dist/assets/{external-anchor-CLy6d_za.js → external-anchor-owoORewf.js} +1 -1
  103. package/dist/assets/{eye-bbox-DoGcAx4c.js → eye-bbox-BpNolORP.js} +1 -1
  104. package/dist/assets/feature-flag-catalog-C1y2RUth.js +1 -0
  105. package/dist/assets/feed-item-status-actions-C3JfFvZc.js +1 -0
  106. package/dist/assets/{file-editor-BwdObVSu.js → file-editor-CeYfWNBz.js} +1 -1
  107. package/dist/assets/{file-markdown-C1rEGVrN.js → file-markdown-B9G_TXX-.js} +1 -1
  108. package/dist/assets/{first-run-scope-DdSaiULx.js → first-run-scope-MD-rEgje.js} +1 -1
  109. package/dist/assets/format-usd-BYzA1eMJ.js +1 -0
  110. package/dist/assets/{funnel-events-BP3XPaB5.js → funnel-events-ClGpFDNM.js} +1 -1
  111. package/dist/assets/general-page-CzDlVoNx.js +1 -0
  112. package/dist/assets/{get-memory-stats-SquVhZnd.js → get-memory-stats-U9zVanzc.js} +1 -1
  113. package/dist/assets/{haptics-D3hzTCtH.js → haptics-F-nvqKYf.js} +2 -2
  114. package/dist/assets/hatching-screen-FgNbjXOt.js +1 -0
  115. package/dist/assets/{home-page-route-BSoWksW0.js → home-page-route-C7Aeo-Mg.js} +1 -1
  116. package/dist/assets/hosting-screen-CLVRdDiX.js +1 -0
  117. package/dist/assets/{i18n-C9hRT4Lf.js → i18n-C3bX3mTs.js} +4 -4
  118. package/dist/assets/identity-DyjQj_xm.js +1 -0
  119. package/dist/assets/identity-page-route-CHncFua2.js +7 -0
  120. package/dist/assets/index-C7hCfQpd.css +2 -0
  121. package/dist/assets/index-DS0PEdhO.js +11 -0
  122. package/dist/assets/{ingest-DXklElaR.js → ingest-C1wiUm1l.js} +1 -1
  123. package/dist/assets/{input-DkgpMeG9.js → input-DlkBtbxm.js} +1 -1
  124. package/dist/assets/{inspect-page-naqIziez.js → inspect-page-CNLiZXRt.js} +3 -3
  125. package/dist/assets/{installed-plugins-query-CZLdpwnL.js → installed-plugins-query-DQKwv-Iz.js} +1 -1
  126. package/dist/assets/{integration-icon-DbmKvxqf.js → integration-icon-BxfDs-Ud.js} +1 -1
  127. package/dist/assets/integrations-page-B9SHiomg.js +1 -0
  128. package/dist/assets/intelligence-C7DYXerF.js +5 -0
  129. package/dist/assets/{intelligence-layout-CXzIl0Vl.js → intelligence-layout-BoW8JbDc.js} +1 -1
  130. package/dist/assets/internal-thread-actions-C0S_b7cx.js +1 -0
  131. package/dist/assets/{invalidate-memory-queries-C4-KSsdB.js → invalidate-memory-queries-uk2gV1m0.js} +1 -1
  132. package/dist/assets/{invalidate-plugin-queries-DxagFqKP.js → invalidate-plugin-queries-CI1Cseau.js} +1 -1
  133. package/dist/assets/keyboard-shortcuts-redirect-page-BY3Va4w9.js +1 -0
  134. package/dist/assets/{latest-assistant-text-JCjtByys.js → latest-assistant-text-fXT5Jkt8.js} +2 -2
  135. package/dist/assets/library-Da5KVeDF.js +1 -0
  136. package/dist/assets/{library-detail-page-CyWiXwb9.js → library-detail-page-CX92FKAK.js} +1 -1
  137. package/dist/assets/{library-page-CzcvMljL.js → library-page-D2v2j-WU.js} +1 -1
  138. package/dist/assets/{list-row-CDwzGT9g.js → list-row-6uedKE84.js} +1 -1
  139. package/dist/assets/llm-model-catalog-BxTXG4Cg.js +1 -0
  140. package/dist/assets/local-mode-DzIUFjhf.js +1 -0
  141. package/dist/assets/{local-runtime-upgrade-BkoG5uVr.js → local-runtime-upgrade-BpvLk3HN.js} +1 -1
  142. package/dist/assets/{login-flow-D6ivg6PM.js → login-flow-BYBqjDap.js} +1 -1
  143. package/dist/assets/{login-page-Dmpz0GgT.js → login-page-fl8rgXFq.js} +1 -1
  144. package/dist/assets/{logout-page-CI3LDcqG.js → logout-page-DLjLy7Hp.js} +1 -1
  145. package/dist/assets/{logs-layout-BHP-ADUq.js → logs-layout-Du4o-HeH.js} +1 -1
  146. package/dist/assets/{markdown-preview-Dx8E021p.js → markdown-preview-ukYPAksc.js} +1 -1
  147. package/dist/assets/media-preview-Ds0Jo4hk.js +1 -0
  148. package/dist/assets/{memory-page-route-qvBEERTa.js → memory-page-route-CvKjQ2FE.js} +1 -1
  149. package/dist/assets/memory-router-playground-page-Dh8zVze9.js +1 -0
  150. package/dist/assets/{menu-ubIBmfUh.js → menu-Ci8JeI2H.js} +1 -1
  151. package/dist/assets/message-content-C1CZhGIc.js +1 -0
  152. package/dist/assets/{message-files-panel-ZPa7eZHc.js → message-files-panel-DEAC2iCY.js} +1 -1
  153. package/dist/assets/messages-D5oI1yRV.js +13 -0
  154. package/dist/assets/{metric-card-bXd-f58c.js → metric-card-YqtdN5uX.js} +1 -1
  155. package/dist/assets/mime-sniff-BeXhZEXw.js +1 -0
  156. package/dist/assets/{modal-UYNawsIu.js → modal-DN_Uwwkg.js} +1 -1
  157. package/dist/assets/native-anchor-C13W_dF5.js +1 -0
  158. package/dist/assets/native-biometric-DzQYY-Z2.js +6 -0
  159. package/dist/assets/{native-file-BpFW1c_c.js → native-file-qM32rSz7.js} +2 -2
  160. package/dist/assets/navigation-resolver-B6QxHAa5.js +1 -0
  161. package/dist/assets/{not-found-ui-gcXqK.js → not-found-DXwfp4Yf.js} +1 -1
  162. package/dist/assets/{notice-BlYF-xU3.js → notice-C_AsX_o9.js} +1 -1
  163. package/dist/assets/{notifications-DK6b8YVI.js → notifications-DMNpr3pt.js} +1 -1
  164. package/dist/assets/notifications-page-DD-175gq.js +1 -0
  165. package/dist/assets/{oauth-complete-page-7NZZRVcj.js → oauth-complete-page-DBDWL3aD.js} +1 -1
  166. package/dist/assets/{oauth-popup-complete-page-Ci39YXpe.js → oauth-popup-complete-page-Dv0482xp.js} +1 -1
  167. package/dist/assets/onboarding-DwRWKhM_.js +1 -0
  168. package/dist/assets/onboarding-layout-CYgAi-S1.js +1 -0
  169. package/dist/assets/open-workspace-file-Ca9gUjoQ.js +2 -0
  170. package/dist/assets/{operational-status-CMN32PL8.js → operational-status-DVK3_kD_.js} +1 -1
  171. package/dist/assets/{page-shell-C3ZmdIop.js → page-shell-nVp2ogSk.js} +1 -1
  172. package/dist/assets/{pairing-page-YPN7ISIr.js → pairing-page-CLNSXQ7A.js} +1 -1
  173. package/dist/assets/{password-reset-page-D8ONrPU-.js → password-reset-page-BNw-K6vZ.js} +1 -1
  174. package/dist/assets/pdf-file-preview-DvhlIAI5.js +1 -0
  175. package/dist/assets/pdf-preview-BpUxb6wy.js +2 -0
  176. package/dist/assets/{personality-page-CLsRq5L2.js → personality-page-axIG9Tu_.js} +1 -1
  177. package/dist/assets/plans-page-DQu9C86N.js +1 -0
  178. package/dist/assets/{platform-detection-zth6eCY8.js → platform-detection-C-a_Mru0.js} +1 -1
  179. package/dist/assets/{platform-login-notice-CvFpWLJY.js → platform-login-notice-Dmq_2Akt.js} +1 -1
  180. package/dist/assets/{platform-loopback-page-B8cGk07e.js → platform-loopback-page-B0UOR3ct.js} +1 -1
  181. package/dist/assets/{plugin-detail-page--CvX0OXv.js → plugin-detail-page-2ySPND3h.js} +1 -1
  182. package/dist/assets/{plugins-page-CZ16U_6n.js → plugins-page-D7jLWtXv.js} +1 -1
  183. package/dist/assets/plugins-surface-CLatmeTO.js +1 -0
  184. package/dist/assets/pointer-Cxac45y6.js +1 -0
  185. package/dist/assets/popover-B_nY8VYI.js +1 -0
  186. package/dist/assets/{prefs-BLTugIFN.js → prefs-BFDWWNwd.js} +1 -1
  187. package/dist/assets/{preview-error-gCViZZRw.js → preview-error-B7qHC1Y4.js} +1 -1
  188. package/dist/assets/privacy-page-B-FaZv9p.js +1 -0
  189. package/dist/assets/privacy-screen-Ng4c4whW.js +1 -0
  190. package/dist/assets/profile-pickers-BE4eyfmO.js +1 -0
  191. package/dist/assets/{provider-callback-page-BPp1TM7J.js → provider-callback-page-CwYFxjk3.js} +1 -1
  192. package/dist/assets/{provider-key-DpdSx5gG.js → provider-key-D0kB_zjf.js} +1 -1
  193. package/dist/assets/{provider-signup-page-Cv9_b_58.js → provider-signup-page-BORU3SZe.js} +1 -1
  194. package/dist/assets/{provisioning-targets-DDUZDQ_a.js → provisioning-targets-D1mqFL8i.js} +1 -1
  195. package/dist/assets/{proxy-CT_qJI1K.js → proxy-C_GXGfwL.js} +1 -1
  196. package/dist/assets/{push-registration-CH_t0mI8.js → push-registration-CyLSsbG5.js} +2 -2
  197. package/dist/assets/{quick-input-page-LqfQdZFU.js → quick-input-page-D7nJMXNi.js} +1 -1
  198. package/dist/assets/react-query.gen-CYP-Tn4K.js +1 -0
  199. package/dist/assets/react-query.gen-D3r2fwXH.js +1 -0
  200. package/dist/assets/remote-gateway-session-B4C6b4Sx.js +1 -0
  201. package/dist/assets/remove-from-device-dialog-Bpy0yOG4.js +1 -0
  202. package/dist/assets/{research-facts-C2cY_gU2.js → research-facts-DzELMLzK.js} +1 -1
  203. package/dist/assets/{research-mock-page-CB1_bEoa.js → research-mock-page-BkcbRMpS.js} +1 -1
  204. package/dist/assets/{research-onboarding-persistence-Bx5cdkas.js → research-onboarding-persistence-BFdNebXL.js} +1 -1
  205. package/dist/assets/research-onboarding-route-BlBSSOiI.js +50 -0
  206. package/dist/assets/{research-results-view-BcQs2Zh9.js → research-results-view-D1hOhfTP.js} +1 -1
  207. package/dist/assets/{resolved-assistants-store-BNadgXqb.js → resolved-assistants-store-D57qRwKv.js} +1 -1
  208. package/dist/assets/retire-confirm-dialog-Zwo-Sjrc.js +1 -0
  209. package/dist/assets/{review-terms-screen-CI_29cnc.js → review-terms-screen-DmNdg_zJ.js} +1 -1
  210. package/dist/assets/routes-BaPyKuTq.js +24 -0
  211. package/dist/assets/routes-yNhBxUSb.js +1 -0
  212. package/dist/assets/runtime-upgrade-banner-bHSGkzwB.js +2 -0
  213. package/dist/assets/{sandbox-bridge-Dj1pIOXJ.js → sandbox-bridge-BcJiBmUR.js} +1 -1
  214. package/dist/assets/{schedules-C2Tr1zNV.js → schedules-CgwiGq3x.js} +1 -1
  215. package/dist/assets/schedules-DaGS9wMX.js +1 -0
  216. package/dist/assets/{schedules-page-0V6ECw0t.js → schedules-page-Ca_u2KkZ.js} +1 -1
  217. package/dist/assets/schemas-CwBN1MUL.js +39 -0
  218. package/dist/assets/{sdk.gen-DWvuzSBW.js → sdk.gen-DXPJc8Xk.js} +1 -1
  219. package/dist/assets/{sdk.gen-CiE6cMi0.js → sdk.gen-hZs6YBR0.js} +1 -1
  220. package/dist/assets/section-membership-CJlFrKoM.js +1 -0
  221. package/dist/assets/{security-redirect-page-D6x3MANY.js → security-redirect-page-eZ_C_Wf0.js} +1 -1
  222. package/dist/assets/{select-BKyejRky.js → select-DJDG9pwU.js} +1 -1
  223. package/dist/assets/select-assistant-screen-DSLQRer8.js +1 -0
  224. package/dist/assets/{self-hosted-servers-BviPyNnl.js → self-hosted-servers-DJIKPu90.js} +1 -1
  225. package/dist/assets/settings-BY8t4asx.js +1 -0
  226. package/dist/assets/{settings-divider-C0NZsB-L.js → settings-divider-BCyO1zmM.js} +1 -1
  227. package/dist/assets/settings-layout-Cv8u2dv7.js +1 -0
  228. package/dist/assets/settings-navigation-R6E3Weed.js +1 -0
  229. package/dist/assets/{share-feedback-modal-PlN6X3Pm.js → share-feedback-modal-COH8zwku.js} +2 -2
  230. package/dist/assets/{sidebar-tree-Bp0eeKf2.js → sidebar-tree-Bfvk_uAR.js} +1 -1
  231. package/dist/assets/{signup-page-gqz5_wG1.js → signup-page-BsMK6h9P.js} +1 -1
  232. package/dist/assets/{signup-shell-DW976E_0.js → signup-shell-OkpQCRuO.js} +1 -1
  233. package/dist/assets/{site-favicon-Cu07pwc9.js → site-favicon-Bu9L02gb.js} +1 -1
  234. package/dist/assets/{skill-detail-page-c0s3w3K3.js → skill-detail-page-D9WBRKuf.js} +1 -1
  235. package/dist/assets/{skill-detail-panel-NYXq557_.js → skill-detail-panel-kCMadngl.js} +1 -1
  236. package/dist/assets/{skills-5MnTu98B.js → skills-C3-ibGUo.js} +1 -1
  237. package/dist/assets/{skills-page-B_VTCiN2.js → skills-page-BMYP4Xi0.js} +1 -1
  238. package/dist/assets/sound-manager-CCbiDOQN.js +1 -0
  239. package/dist/assets/sounds-page-Du1t_S8A.js +1 -0
  240. package/dist/assets/{src-CImIAPTd.js → src-DMnnfLrU.js} +2 -2
  241. package/dist/assets/start-screen-I5HBKHT6.js +1 -0
  242. package/dist/assets/{status-badge-pill-D8m98tJa.js → status-badge-pill-w-ULYfRy.js} +1 -1
  243. package/dist/assets/{stt-language-picker-modal-BXLEBM7b.js → stt-language-picker-modal-Cq76JJex.js} +1 -1
  244. package/dist/assets/{subagent-detail-panel-CrbpQRzW.js → subagent-detail-panel-DP4dB-Dz.js} +1 -1
  245. package/dist/assets/{subagent-store-DqKEBlAM.js → subagent-store-Bn8k7JMr.js} +2 -2
  246. package/dist/assets/{superpowers-page-B5WGXphq.js → superpowers-page-COTkr31c.js} +1 -1
  247. package/dist/assets/{swipe-action-reveal-Ai9lRgUU.js → swipe-action-reveal-CQY9DSup.js} +1 -1
  248. package/dist/assets/{system-events-page-_aap_0av.js → system-events-page-CvoSQs7q.js} +1 -1
  249. package/dist/assets/{system-events-redirect-page-DbyqOqe_.js → system-events-redirect-page-BjnwAn9h.js} +1 -1
  250. package/dist/assets/{tag-Ddzwz3ij.js → tag-D2QYCm1p.js} +1 -1
  251. package/dist/assets/{telegram-setup-wizard-BENKNAuh.js → telegram-setup-wizard-6UP2MTrh.js} +1 -1
  252. package/dist/assets/{text-preview-DUlKYC4u.js → text-preview-BG__pDe7.js} +1 -1
  253. package/dist/assets/{theme-stage-page-CbGuxQ23.js → theme-stage-page-YfsM529J.js} +1 -1
  254. package/dist/assets/{threshold-presets-DN0_JIJQ.js → threshold-presets-BJubRlKn.js} +1 -1
  255. package/dist/assets/{tiptap-document-editor-0vqw7hch.js → tiptap-document-editor-BM6zL6R7.js} +2 -2
  256. package/dist/assets/{toast-DqqWkjsh.js → toast-CHtrY-GO.js} +1 -1
  257. package/dist/assets/{tool-detail-panel-C2wUYsf2.js → tool-detail-panel-_LC-zFuo.js} +3 -3
  258. package/dist/assets/transcript-message-body-shared-D8cmJP1C.js +1 -0
  259. package/dist/assets/{trust-rules-api-DRJ1qP-y.js → trust-rules-api-CE_KJOp2.js} +1 -1
  260. package/dist/assets/upgrade-cancel-page-DyLSvLsm.js +1 -0
  261. package/dist/assets/upgrade-success-page-BRPyFCq4.js +1 -0
  262. package/dist/assets/upload-Bilfs1g8.js +1 -0
  263. package/dist/assets/{usage-redirect-page-DyTnwv4x.js → usage-redirect-page-C4O5a5QM.js} +1 -1
  264. package/dist/assets/{use-active-assistant-id-BADYKVyx.js → use-active-assistant-id-BFE4r9Rp.js} +1 -1
  265. package/dist/assets/use-app-theme-BMyUWfBR.js +1 -0
  266. package/dist/assets/use-assistant-avatar-adekIS8v.js +1 -0
  267. package/dist/assets/{use-assistant-capability-C-yHcMH4.js → use-assistant-capability-Cjd57j4I.js} +1 -1
  268. package/dist/assets/{use-assistant-identity-details-u9sG9ip2.js → use-assistant-identity-details-C3sH1daz.js} +1 -1
  269. package/dist/assets/{use-attachment-preview-Cq_IWTdT.js → use-attachment-preview-BUJ9CHqr.js} +2 -2
  270. package/dist/assets/{use-attachment-squares-BKi30wmg.js → use-attachment-squares-CFAezuph.js} +1 -1
  271. package/dist/assets/use-bookmarks--Hn0Ty3s.js +1 -0
  272. package/dist/assets/{use-bundled-avatar-components-C_6xUsW1.js → use-bundled-avatar-components-Bhvvz-bQ.js} +2 -2
  273. package/dist/assets/{use-bus-subscription-BuhDYgS1.js → use-bus-subscription-BmtCG3i6.js} +1 -1
  274. package/dist/assets/use-checkout-dismiss-refresh-CTdb-p9h.js +1 -0
  275. package/dist/assets/{use-command-palette-sections-CvNjev8s.js → use-command-palette-sections-_F3pQkoi.js} +1 -1
  276. package/dist/assets/{use-copy-to-clipboard-B7Yrgm0s.js → use-copy-to-clipboard-BPX7B4SE.js} +1 -1
  277. package/dist/assets/use-edge-swipe-CJYjm94h.js +1 -0
  278. package/dist/assets/use-edge-swipe-back-L6kJ84LI.js +2 -0
  279. package/dist/assets/use-edit-app-C0wNLJT8.js +1 -0
  280. package/dist/assets/{use-effective-timezone-vox0__xI.js → use-effective-timezone-DaNOF607.js} +1 -1
  281. package/dist/assets/use-hotkey-recorder-BgB8ju9u.js +1 -0
  282. package/dist/assets/{use-invite-link-dialog-Chhnymz9.js → use-invite-link-dialog-B1oz9iwD.js} +1 -1
  283. package/dist/assets/use-is-mobile-BwSS15lq.js +1 -0
  284. package/dist/assets/{use-is-org-ready-GDBxqujc.js → use-is-org-ready-CEB5IRpO.js} +1 -1
  285. package/dist/assets/use-local-file-info-y_wvTOqp.js +1 -0
  286. package/dist/assets/{use-onboarding-login-BdVTfZ3o.js → use-onboarding-login-DSP8WCFe.js} +1 -1
  287. package/dist/assets/{use-platform-assistant-id-B7TrEBmf.js → use-platform-assistant-id-n0Yl5uUG.js} +1 -1
  288. package/dist/assets/{use-platform-gate-DG9Xg3Hs.js → use-platform-gate-DNfLk9Xd.js} +1 -1
  289. package/dist/assets/{use-reduced-motion-CU3dPXKf.js → use-reduced-motion-DzXyVFAi.js} +1 -1
  290. package/dist/assets/{use-return-to-short-circuit-EtY8cSC7.js → use-return-to-short-circuit-CY3AuCF9.js} +1 -1
  291. package/dist/assets/use-save-twilio-credentials-BWaLXE4J.js +1 -0
  292. package/dist/assets/use-side-list-room-CO7nxluQ.js +1 -0
  293. package/dist/assets/{use-skill-actions-CdbZjq6a.js → use-skill-actions-D7CK9Jhy.js} +1 -1
  294. package/dist/assets/{use-skill-detail-files-Bg4G44J3.js → use-skill-detail-files-Cop9LnVd.js} +1 -1
  295. package/dist/assets/use-sticky-profiles-D3ybBRfX.js +1 -0
  296. package/dist/assets/{use-stt-language-selection-CK6bUfVS.js → use-stt-language-selection-Dkm4Uq69.js} +1 -1
  297. package/dist/assets/{use-subagent-card-data-DlVOBxXw.js → use-subagent-card-data-DbKFX1Jc.js} +1 -1
  298. package/dist/assets/{use-supports-bookmarks-B4cgbKXV.js → use-supports-bookmarks-stTgDlyW.js} +1 -1
  299. package/dist/assets/use-supports-credentials-settings-DK8TsliJ.js +1 -0
  300. package/dist/assets/use-supports-inference-profiles-C0dU3VLS.js +1 -0
  301. package/dist/assets/use-swipe-horizontal-BwZ0yvoM.js +1 -0
  302. package/dist/assets/use-touch-mobile-CaIiM-us.js +1 -0
  303. package/dist/assets/use-transcript-message-by-id-BbJqGOYZ.js +1 -0
  304. package/dist/assets/use-transcript-messages-Bp4Jsfks.js +3 -0
  305. package/dist/assets/{use-voice-sample-preview-CZoWWEeH.js → use-voice-sample-preview-4vpwPGNW.js} +1 -1
  306. package/dist/assets/{useTranslation-D9pPv-bA.js → useTranslation-CCDbxnME.js} +1 -1
  307. package/dist/assets/{utils-BEkyAhbA.js → utils-wDLoxcBZ.js} +1 -1
  308. package/dist/assets/viewer-store-BbaMH35y.js +1 -0
  309. package/dist/assets/voice-page--99ik4mV.js +1 -0
  310. package/dist/assets/voice-providers-note-7m0LvxmN.js +1 -0
  311. package/dist/assets/{weather-forecast-display-D3IBgGHv.js → weather-forecast-display-BbD0N8C0.js} +1 -1
  312. package/dist/assets/{web-CxX3pST-.js → web-Do_X9zWq.js} +1 -1
  313. package/dist/assets/{web-D1mJSG8v.js → web-UN0kX9ic.js} +1 -1
  314. package/dist/assets/welcome-screen-Drdb1oS6.js +1 -0
  315. package/dist/assets/{workflow-detail-panel-C0kN-iH3.js → workflow-detail-panel-DS9_MRNg.js} +1 -1
  316. package/dist/assets/{workflow-store-BXqyb8CL.js → workflow-store-BYbfirJj.js} +1 -1
  317. package/dist/assets/workspace-page-CPDwYVlW.js +1 -0
  318. package/dist/assets/{workspace-tree-query-Dyls8wmV.js → workspace-tree-query-DzYz0-QE.js} +1 -1
  319. package/dist/index.html +284 -280
  320. package/package.json +1 -1
  321. package/dist/assets/access-D0krXly2.js +0 -1
  322. package/dist/assets/activity-steps-panel-C9z9FMmK.js +0 -1
  323. package/dist/assets/add-credits-modal-RIAYgbOT.js +0 -1
  324. package/dist/assets/ai-page-CI4LZXTY.js +0 -1
  325. package/dist/assets/api-BjYAXdCk.js +0 -1
  326. package/dist/assets/api-Cx3i50oG.js +0 -1
  327. package/dist/assets/api-key-screen-BKFAcyqU.js +0 -1
  328. package/dist/assets/auth-store-CVtcHK0b.js +0 -2
  329. package/dist/assets/auth-welcome-screen-Pw3qXxi5.js +0 -1
  330. package/dist/assets/billing-page-CmVjD4bw.js +0 -3
  331. package/dist/assets/bookmarks-page-DUbnEAgS.js +0 -1
  332. package/dist/assets/chat-1xy90pMn.js +0 -3
  333. package/dist/assets/chat-CHVUM3s0.js +0 -1
  334. package/dist/assets/chat-markdown-message-CtLdsT2K.js +0 -1
  335. package/dist/assets/checkout-continuation-BvY4Kjz7.js +0 -1
  336. package/dist/assets/checkout-page-CWRkiEj1.js +0 -1
  337. package/dist/assets/checkout-return-target-_Y86sfo0.js +0 -1
  338. package/dist/assets/common-EmSgsWNa.js +0 -1
  339. package/dist/assets/community-page-Dd84pjdI.js +0 -1
  340. package/dist/assets/companion-surface-page-BvDSOFVH.js +0 -1
  341. package/dist/assets/composer-settings-DBAb6W2i.js +0 -1
  342. package/dist/assets/conversation-cache-qk0nNm6Q.js +0 -1
  343. package/dist/assets/conversation-navigation-B_4jZ9Z2.js +0 -1
  344. package/dist/assets/conversation-queries-M4Inozp_.js +0 -1
  345. package/dist/assets/credentials-page-C-e4DqWt.js +0 -1
  346. package/dist/assets/debug-page-Be5Y5TVM.js +0 -4
  347. package/dist/assets/developer-page-DD8xa8mQ.js +0 -1
  348. package/dist/assets/dictation-overlay-page-DZiwww1V.js +0 -1
  349. package/dist/assets/dist-DMYOKN8y.js +0 -1
  350. package/dist/assets/document-viewer-page-tTTco75r.js +0 -1
  351. package/dist/assets/effective-timezone-CHJnU8kZ.js +0 -1
  352. package/dist/assets/esm-CtKndoc9.js +0 -2
  353. package/dist/assets/feature-flag-catalog-Cyqf6Ns7.js +0 -1
  354. package/dist/assets/feed-item-status-actions--CCeCtuw.js +0 -1
  355. package/dist/assets/format-usd-tespTIex.js +0 -1
  356. package/dist/assets/general-page-Bi87XguF.js +0 -1
  357. package/dist/assets/hatching-screen-DA0yyXD1.js +0 -1
  358. package/dist/assets/hosting-screen-cfhZ-ct7.js +0 -1
  359. package/dist/assets/identity-CqCxB9QW.js +0 -1
  360. package/dist/assets/identity-page-route-BjSsi8PM.js +0 -7
  361. package/dist/assets/index-BmDctEOW.css +0 -2
  362. package/dist/assets/index-I9kwAKzY.js +0 -11
  363. package/dist/assets/integrations-page-zrUmh2xn.js +0 -1
  364. package/dist/assets/intelligence-DXpXyKbw.js +0 -5
  365. package/dist/assets/keyboard-shortcuts-redirect-page-DSnux9sJ.js +0 -1
  366. package/dist/assets/library-CuKVNDEp.js +0 -1
  367. package/dist/assets/local-mode-BNr2MrWI.js +0 -39
  368. package/dist/assets/media-preview-HgLvcAQ9.js +0 -1
  369. package/dist/assets/memory-router-playground-page-Bnxf4hzQ.js +0 -1
  370. package/dist/assets/message-content-weXJNNKO.js +0 -1
  371. package/dist/assets/messages-CPTfRZA4.js +0 -13
  372. package/dist/assets/multi-activity-group-AECQlBbV.js +0 -1
  373. package/dist/assets/native-anchor-Bn22ZLay.js +0 -1
  374. package/dist/assets/native-biometric-D9IxNvJM.js +0 -6
  375. package/dist/assets/navigation-resolver-jIQ5B6JB.js +0 -1
  376. package/dist/assets/notifications-page-GRXZE_lL.js +0 -1
  377. package/dist/assets/onboarding-DK0I_g8T.js +0 -1
  378. package/dist/assets/onboarding-layout-GTzgLPSo.js +0 -1
  379. package/dist/assets/open-workspace-file-CYf_Tqw3.js +0 -2
  380. package/dist/assets/pdf-file-preview-udA0Apx_.js +0 -1
  381. package/dist/assets/pdf-preview-6Xfl1tO1.js +0 -2
  382. package/dist/assets/plans-page-DkVXE0Jv.js +0 -1
  383. package/dist/assets/plugins-surface-C4Cvus3n.js +0 -1
  384. package/dist/assets/pointer-BMK9brNn.js +0 -1
  385. package/dist/assets/popover-D3A6cIyW.js +0 -1
  386. package/dist/assets/privacy-page-BxJ2Cuev.js +0 -1
  387. package/dist/assets/privacy-screen-DlSj_9FT.js +0 -1
  388. package/dist/assets/profile-pickers-B0hfDNt-.js +0 -1
  389. package/dist/assets/react-query.gen-Bbh5MII3.js +0 -1
  390. package/dist/assets/react-query.gen-CwRPAiHT.js +0 -1
  391. package/dist/assets/remote-gateway-session-CzPLaXuT.js +0 -1
  392. package/dist/assets/remove-from-device-dialog-DeJ_gAmf.js +0 -1
  393. package/dist/assets/research-onboarding-route-BY3X_d2-.js +0 -50
  394. package/dist/assets/retire-confirm-dialog-f-A5OVYj.js +0 -1
  395. package/dist/assets/routes-B7wRw3UT.js +0 -1
  396. package/dist/assets/routes-OwGjl0BS.js +0 -24
  397. package/dist/assets/runtime-upgrade-banner-Cj9E7kWP.js +0 -2
  398. package/dist/assets/schedules-C3wE8OML.js +0 -1
  399. package/dist/assets/section-membership-vg-XaMPS.js +0 -1
  400. package/dist/assets/select-assistant-screen-BZxPQqe4.js +0 -1
  401. package/dist/assets/settings-CEQzAg2m.js +0 -1
  402. package/dist/assets/settings-layout-DgNBNUT7.js +0 -1
  403. package/dist/assets/settings-navigation-CVw10LL_.js +0 -1
  404. package/dist/assets/sound-manager-lHaiHTCh.js +0 -1
  405. package/dist/assets/sounds-page-BdSO1UIf.js +0 -1
  406. package/dist/assets/start-screen-CHO19RCi.js +0 -1
  407. package/dist/assets/upgrade-cancel-page-Dbd3VJdm.js +0 -1
  408. package/dist/assets/upgrade-success-page-CHbEmpjg.js +0 -1
  409. package/dist/assets/upload-DwkuEWSz.js +0 -1
  410. package/dist/assets/use-app-theme-Z0l8oiAF.js +0 -1
  411. package/dist/assets/use-assistant-avatar-rPqMHOma.js +0 -1
  412. package/dist/assets/use-bookmarks-Bl4tx8xK.js +0 -1
  413. package/dist/assets/use-checkout-dismiss-refresh-BHuxVDUc.js +0 -1
  414. package/dist/assets/use-edge-swipe-C4IrskOL.js +0 -1
  415. package/dist/assets/use-edge-swipe-back-CiO9raEw.js +0 -2
  416. package/dist/assets/use-edit-app-ByAfCYIL.js +0 -1
  417. package/dist/assets/use-is-mobile-q9Lr7beO.js +0 -1
  418. package/dist/assets/use-local-file-info-DxY8jZ8F.js +0 -1
  419. package/dist/assets/use-save-twilio-credentials-Bs9sThtb.js +0 -1
  420. package/dist/assets/use-side-list-room-CUXPQyjw.js +0 -1
  421. package/dist/assets/use-sticky-profiles-vQLFyEh0.js +0 -1
  422. package/dist/assets/use-supports-credentials-settings-Cj-Py42f.js +0 -1
  423. package/dist/assets/use-swipe-engine-b1fkDAV8.js +0 -1
  424. package/dist/assets/use-touch-mobile-CnqGLpCj.js +0 -1
  425. package/dist/assets/use-transcript-message-by-id-FmIIrRsf.js +0 -1
  426. package/dist/assets/use-transcript-messages-Q1PBxvSF.js +0 -3
  427. package/dist/assets/viewer-store-CwlLnf-k.js +0 -1
  428. package/dist/assets/voice-page-B1mJ2hkc.js +0 -1
  429. package/dist/assets/voice-providers-note-TDQxSwUj.js +0 -1
  430. package/dist/assets/welcome-screen-DPXQU47t.js +0 -1
  431. package/dist/assets/workspace-page-Mj_A1eeR.js +0 -1
  432. /package/dist/assets/{account-DEWe1CJv.js → account-BuiU7DuB.js} +0 -0
  433. /package/dist/assets/{android-consumption-only-4ku7vpy4.js → android-consumption-only-DDbN5hxd.js} +0 -0
  434. /package/dist/assets/{app-types-DET4dder.js → app-types-Dslgu6TG.js} +0 -0
  435. /package/dist/assets/{apple-logo-C_J-Nv61.js → apple-logo-DE1DXFS4.js} +0 -0
  436. /package/dist/assets/{assistant-identity-store-DhAqaifK.js → assistant-identity-store-DrQJhZh3.js} +0 -0
  437. /package/dist/assets/{avatar-bundled-components-C8vOxkFj.js → avatar-bundled-components-CAE0CJ9e.js} +0 -0
  438. /package/dist/assets/{avatar-subagent-BnaYyPQQ.js → avatar-subagent-pDrk_xWL.js} +0 -0
  439. /package/dist/assets/{avatar-svg-compositor-e_lhkR9P.js → avatar-svg-compositor-tf4h3-SV.js} +0 -0
  440. /package/dist/assets/{avatar-tone-BVUtTeGn.js → avatar-tone-Dp4coAkE.js} +0 -0
  441. /package/dist/assets/{browser-timezone-BOrwtFs2.js → browser-timezone-DYYSCLn2.js} +0 -0
  442. /package/dist/assets/{build.umd-CwkQd6wk.js → build.umd-CpV9Yjhm.js} +0 -0
  443. /package/dist/assets/{by-tool-use-id-index-C1T3QA5-.js → by-tool-use-id-index-BP1pAJzI.js} +0 -0
  444. /package/dist/assets/{calendar-5ZUL5438.js → calendar-DUfSq9XY.js} +0 -0
  445. /package/dist/assets/{channels-CXuBInAc.js → channels-DFBLDFWh.js} +0 -0
  446. /package/dist/assets/{chart-column-Bd2tG_o1.js → chart-column-nt6xAz18.js} +0 -0
  447. /package/dist/assets/{chat-layout-slots-store-CE2p0OE9.js → chat-layout-slots-store-c4ig5vXx.js} +0 -0
  448. /package/dist/assets/{check-pgeLaeXx.js → check-NGUguBHp.js} +0 -0
  449. /package/dist/assets/{chevron-down-CmQCCo_x.js → chevron-down-D1ho6wFA.js} +0 -0
  450. /package/dist/assets/{chevron-left-02Er54z-.js → chevron-left-D29BeQ4x.js} +0 -0
  451. /package/dist/assets/{chevron-right-Dwr_Sx98.js → chevron-right-DTpkwA4e.js} +0 -0
  452. /package/dist/assets/{chevron-up-DHhqG14M.js → chevron-up-bJ8SGTC_.js} +0 -0
  453. /package/dist/assets/{circle-alert-DvkPmyIg.js → circle-alert-B-Zu9T9V.js} +0 -0
  454. /package/dist/assets/{circle-check-BlOeCme9.js → circle-check-BQyrCkaB.js} +0 -0
  455. /package/dist/assets/{circle-check-big-BDMPSnMn.js → circle-check-big-C9sLhbGa.js} +0 -0
  456. /package/dist/assets/{circle-minus-B5yKBO54.js → circle-minus-DgUiTTwX.js} +0 -0
  457. /package/dist/assets/{circle-x-CEXUbdoO.js → circle-x-qsWcnNwx.js} +0 -0
  458. /package/dist/assets/{client.gen-CxTOBLiH.js → client.gen-C1nf2AIs.js} +0 -0
  459. /package/dist/assets/{clipboard-copy-CEczonMF.js → clipboard-copy-D6VpELQ4.js} +0 -0
  460. /package/dist/assets/{clock-1REtpnlM.js → clock-CNSYP9nm.js} +0 -0
  461. /package/dist/assets/{cloud-dqL-JBKK.js → cloud-ByHaCF-x.js} +0 -0
  462. /package/dist/assets/{cloud-off-CB9uhEDu.js → cloud-off-DioliYf9.js} +0 -0
  463. /package/dist/assets/{code-u4Wi5zSA.js → code-B7TA1KYq.js} +0 -0
  464. /package/dist/assets/{coins-CveNnhLe.js → coins-WH-N-3B8.js} +0 -0
  465. /package/dist/assets/{consent-mbj_kMXO.js → consent-DgQeejGe.js} +0 -0
  466. /package/dist/assets/{contacts-BRU7ohw2.js → contacts-BQcl-1XL.js} +0 -0
  467. /package/dist/assets/{conversation-store-DKBwV4bc.js → conversation-store-DdBAApt6.js} +0 -0
  468. /package/dist/assets/{cpu-BG0rQrMj.js → cpu-CNmn352B.js} +0 -0
  469. /package/dist/assets/{credential-requests-BbBZKJHx.js → credential-requests-CpHxMIMS.js} +0 -0
  470. /package/dist/assets/{definitions-Co0yLSy_.js → definitions-BRiVhEtI.js} +0 -0
  471. /package/dist/assets/{definitions-Yz8Uao4u.js → definitions-I6-Jh5-j.js} +0 -0
  472. /package/dist/assets/{diff-rows-BrFK496i.js → diff-rows-BVvdLrrS.js} +0 -0
  473. /package/dist/assets/{download-DnnvWjPo.js → download-C7_XK23s.js} +0 -0
  474. /package/dist/assets/{edge-swipe-arbiter-store-BGBvaPTd.js → edge-swipe-arbiter-store-Cgt2wsOY.js} +0 -0
  475. /package/dist/assets/{edit-chat-session-CiXnUJPh.js → edit-chat-session-BUx2LvCf.js} +0 -0
  476. /package/dist/assets/{ellipsis-4L6z7PhT.js → ellipsis-DLgXzWgN.js} +0 -0
  477. /package/dist/assets/{ellipsis-vertical-CJX4FZlb.js → ellipsis-vertical-D3SJdQ4P.js} +0 -0
  478. /package/dist/assets/{emoji-catalog-data-BIIBfSqk.js → emoji-catalog-data-DXFYOvKt.js} +0 -0
  479. /package/dist/assets/{environment-store-C4So_j-o.js → environment-store-rZ0hkMHt.js} +0 -0
  480. /package/dist/assets/{esm-CPFvOH-c.js → esm-Cz8_Dotd.js} +0 -0
  481. /package/dist/assets/{esm-BJhqsukI.js → esm-DBGqhIh5.js} +0 -0
  482. /package/dist/assets/{event-bus-B-wwSVzo.js → event-bus-QJe_MFOc.js} +0 -0
  483. /package/dist/assets/{external-link-B-pfCiUo.js → external-link-DCA91uI6.js} +0 -0
  484. /package/dist/assets/{external-urls-Bg18AU4S.js → external-urls-DWYQKJEq.js} +0 -0
  485. /package/dist/assets/{eye-CHlTF_ct.js → eye-C5DUd2Vd.js} +0 -0
  486. /package/dist/assets/{eye-off-0lRvXR9p.js → eye-off-8cYeidA6.js} +0 -0
  487. /package/dist/assets/{file-DVQXh8CW.js → file-BgKbUJNS.js} +0 -0
  488. /package/dist/assets/{file-code-A080HCxh.js → file-code-CS8NbZbG.js} +0 -0
  489. /package/dist/assets/{file-plus-C_Iw4p49.js → file-plus-DLtgfqcS.js} +0 -0
  490. /package/dist/assets/{file-text-DpdlyCly.js → file-text-BEpL7wIA.js} +0 -0
  491. /package/dist/assets/{folder-B0UQA6jd.js → folder-6DGJLMuE.js} +0 -0
  492. /package/dist/assets/{folder-open-BU6EPS8G.js → folder-open-Cz-3FN-E.js} +0 -0
  493. /package/dist/assets/{format-date-B_oQDqU9.js → format-date-DEIFj6w3.js} +0 -0
  494. /package/dist/assets/{format-file-size-ByNX0dQR.js → format-file-size-CaQu4Lyo.js} +0 -0
  495. /package/dist/assets/{globe-COrlg99x.js → globe-BJuNFSn-.js} +0 -0
  496. /package/dist/assets/{hard-drive-BV9-fN_J.js → hard-drive-zWkzTs9d.js} +0 -0
  497. /package/dist/assets/{hard-navigate-CNxvVrtC.js → hard-navigate-D1rxKLPg.js} +0 -0
  498. /package/dist/assets/{heart-Bd-pnn1X.js → heart-DBsRPrRH.js} +0 -0
  499. /package/dist/assets/{home-BwSxL4rM.js → home-ySv5rBLy.js} +0 -0
  500. /package/dist/assets/{image-DsrjUDQh.js → image-DntHMHHo.js} +0 -0
  501. /package/dist/assets/{inbox-BcZU66Rf.js → inbox-Qye1DBie.js} +0 -0
  502. /package/dist/assets/{info-Bn2hbIVl.js → info-D0qquAkS.js} +0 -0
  503. /package/dist/assets/{interactive-target-CXv5tgJB.js → interactive-target-DT1VQruY.js} +0 -0
  504. /package/dist/assets/{is-electron-wgAC5Mzb.js → is-electron-C9-jl_HE.js} +0 -0
  505. /package/dist/assets/{key-round-C51ZTEMu.js → key-round-DcfNNfNG.js} +0 -0
  506. /package/dist/assets/{laptop-DoAUvmjX.js → laptop-C9BtnRjX.js} +0 -0
  507. /package/dist/assets/{layout-grid-lHmG2izK.js → layout-grid-CBeP_IMO.js} +0 -0
  508. /package/dist/assets/{lightbulb-moe9FubK.js → lightbulb-DIV0FA-e.js} +0 -0
  509. /package/dist/assets/{link-2-BBS4SmE3.js → link-2-CTrfUFQw.js} +0 -0
  510. /package/dist/assets/{link-V2w-GAhr.js → link-Dpgek1RH.js} +0 -0
  511. /package/dist/assets/{link-click-BsxbQxDe.js → link-click-DxspyBl6.js} +0 -0
  512. /package/dist/assets/{list-6yken9qv.js → list-Dn1NSBlc.js} +0 -0
  513. /package/dist/assets/{loader-circle-DYe85z3g.js → loader-circle-C9QjVTuc.js} +0 -0
  514. /package/dist/assets/{log-in-BsEhSW6v.js → log-in-DQ2oMzUv.js} +0 -0
  515. /package/dist/assets/{log-out-Dvz6dWwJ.js → log-out-nq6T7R9r.js} +0 -0
  516. /package/dist/assets/{logs-Blq4k473.js → logs-BsCB67bq.js} +0 -0
  517. /package/dist/assets/{machine-sizes-DzJ0TVYS.js → machine-sizes-Wnvi4rGR.js} +0 -0
  518. /package/dist/assets/{mail-9qQtaWSe.js → mail-BFnJM9hP.js} +0 -0
  519. /package/dist/assets/{message-circle-CQpMnPIR.js → message-circle-Cbwq_S7o.js} +0 -0
  520. /package/dist/assets/{message-square-ameAY_Gq.js → message-square-CENNR7tf.js} +0 -0
  521. /package/dist/assets/{message-square-text-C0iNfHuJ.js → message-square-text-Cnv84xQi.js} +0 -0
  522. /package/dist/assets/{mic-yJxjqdDR.js → mic-W9IfxqWv.js} +0 -0
  523. /package/dist/assets/{minimize-2-dhLse52Y.js → minimize-2-CcBLJXor.js} +0 -0
  524. /package/dist/assets/{misc-B24X-saO.js → misc-giJA2hbh.js} +0 -0
  525. /package/dist/assets/{monitor-BHYV5XBf.js → monitor-C7Po319a.js} +0 -0
  526. /package/dist/assets/{moon-CZZGDGLY.js → moon-D2HTb8zV.js} +0 -0
  527. /package/dist/assets/{oauth-connection-utils-19Tfw-lp.js → oauth-connection-utils-dPIUOXze.js} +0 -0
  528. /package/dist/assets/{oauth-popup-CrXEFWPi.js → oauth-popup-DIeDxfkO.js} +0 -0
  529. /package/dist/assets/{onboarding-navigation-C-Kk3_ll.js → onboarding-navigation-CUL0t0Am.js} +0 -0
  530. /package/dist/assets/{onboarding-step-layout-2G2ptxpI.js → onboarding-step-layout-00YhfBar.js} +0 -0
  531. /package/dist/assets/{optimistic-lifecycle-D1yMW3VK.js → optimistic-lifecycle-gXn1rGfw.js} +0 -0
  532. /package/dist/assets/{page-empty-state-CzHxZkBR.js → page-empty-state-CpkB0rZ_.js} +0 -0
  533. /package/dist/assets/{page-surface-store-DJLLsNFC.js → page-surface-store-BvbPgWRr.js} +0 -0
  534. /package/dist/assets/{paperclip-T-MRlqdF.js → paperclip-CF2Q8ys8.js} +0 -0
  535. /package/dist/assets/{pdf-UON6A_nT.js → pdf-BdZA1URW.js} +0 -0
  536. /package/dist/assets/{pencil-Ba0D7tjH.js → pencil-RFB2IyLT.js} +0 -0
  537. /package/dist/assets/{play-dZ2h3AT7.js → play-DTmq7Qfg.js} +0 -0
  538. /package/dist/assets/{plug-sTs_y01k.js → plug-CVzxWCFR.js} +0 -0
  539. /package/dist/assets/{plugin-attribution-C0u-eDRH.js → plugin-attribution-rEWhA-PP.js} +0 -0
  540. /package/dist/assets/{plus-CWkbiq1y.js → plus-BDSluxb4.js} +0 -0
  541. /package/dist/assets/{prechat-CHD2UKHx.js → prechat-CGdKFXs3.js} +0 -0
  542. /package/dist/assets/{preview-skeleton-Be9eHMn9.js → preview-skeleton-BStSegQN.js} +0 -0
  543. /package/dist/assets/{profile-metadata-D9zzZn4_.js → profile-metadata-B1fA1_W5.js} +0 -0
  544. /package/dist/assets/{public-asset-CNgVJ7i4.js → public-asset-Du947SLt.js} +0 -0
  545. /package/dist/assets/{puzzle-DHy-ePUL.js → puzzle-C5CgkzuA.js} +0 -0
  546. /package/dist/assets/{radio-card-nav-CrM7VJUk.js → radio-card-nav-hVd-im6E.js} +0 -0
  547. /package/dist/assets/{reduced-motion-D8oweJF_.js → reduced-motion-Cste44pe.js} +0 -0
  548. /package/dist/assets/{refresh-cw-p138DTtp.js → refresh-cw-DwfKxRXV.js} +0 -0
  549. /package/dist/assets/{remote-web-DBCYTF2P.js → remote-web-BX-aNmAz.js} +0 -0
  550. /package/dist/assets/{repeat-BL0WDPMw.js → repeat-ORyt0N0E.js} +0 -0
  551. /package/dist/assets/{rotate-ccw-Cs7aCSL9.js → rotate-ccw-Cc2yZNdm.js} +0 -0
  552. /package/dist/assets/{schedules-Co4-ymK5.js → schedules-BXXSRQs5.js} +0 -0
  553. /package/dist/assets/{sdk.gen-CoXhzo__.js → sdk.gen-bruWelSm.js} +0 -0
  554. /package/dist/assets/{search-D_t5oHhF.js → search-FGnzWjRX.js} +0 -0
  555. /package/dist/assets/{semver-C2-EZfiR.js → semver-D1eVfLWz.js} +0 -0
  556. /package/dist/assets/{send-Dwk9mFMC.js → send-CnqSHaqf.js} +0 -0
  557. /package/dist/assets/{setting-row-BvQpFvtr.js → setting-row-CqyX0EBz.js} +0 -0
  558. /package/dist/assets/{settings-B-74NxzZ.js → settings-CyYRtP_K.js} +0 -0
  559. /package/dist/assets/{shield-Sw65VSPa.js → shield-CKMzW_Un.js} +0 -0
  560. /package/dist/assets/{shield-check-B-3lr0Uj.js → shield-check-B5eUPC8R.js} +0 -0
  561. /package/dist/assets/{shim-CcP58yVZ.js → shim-BE9ID8Pw.js} +0 -0
  562. /package/dist/assets/{skill-icon-yVnZg-J1.js → skill-icon-CSLUbHBD.js} +0 -0
  563. /package/dist/assets/{sliders-horizontal-CQIT2VGH.js → sliders-horizontal-GQpDB0wo.js} +0 -0
  564. /package/dist/assets/{smartphone-AcA2Q0mQ.js → smartphone-CWnipfJ7.js} +0 -0
  565. /package/dist/assets/{sparkles-Bhr0JiLM.js → sparkles-DvB22tVW.js} +0 -0
  566. /package/dist/assets/{square-rBIWdRdF.js → square-CLyLyc89.js} +0 -0
  567. /package/dist/assets/{sun-BzqYfTxT.js → sun-sLCgv7zn.js} +0 -0
  568. /package/dist/assets/{surface-parse-helpers-X2hFvbHP.js → surface-parse-helpers-DrfM4_wl.js} +0 -0
  569. /package/dist/assets/{terminal-CttH6-2_.js → terminal-CIR8bWcg.js} +0 -0
  570. /package/dist/assets/{terminal-_tzbWcM4.js → terminal-Dily8RM4.js} +0 -0
  571. /package/dist/assets/{three-dot-indicator-CYYJ1RDJ.js → three-dot-indicator-BUucQBI1.js} +0 -0
  572. /package/dist/assets/{trash-2-V2WT_DbX.js → trash-2-DnajdgJS.js} +0 -0
  573. /package/dist/assets/{triangle-alert-43gIbLca.js → triangle-alert-B-18Pims.js} +0 -0
  574. /package/dist/assets/{use-body-scroll-lock-DmT5-Tka.js → use-body-scroll-lock-CMCNMYPC.js} +0 -0
  575. /package/dist/assets/{use-discord-nudge-C5OzjNEk.js → use-discord-nudge-B-qg81ow.js} +0 -0
  576. /package/dist/assets/{use-element-size-B_jzGsxt.js → use-element-size-Cgo4THI9.js} +0 -0
  577. /package/dist/assets/{use-media-query-oO6k9fDB.js → use-media-query-DSngkas0.js} +0 -0
  578. /package/dist/assets/{use-truncated-blob-text-BYAPiP8I.js → use-truncated-blob-text-DYvFk3Fv.js} +0 -0
  579. /package/dist/assets/{web-Cpz2h_dP.js → web-0-rqi4je.js} +0 -0
  580. /package/dist/assets/{web-CXad-fWd.js → web-8fcyoNsL.js} +0 -0
  581. /package/dist/assets/{web-B60tNeyj.js → web-DCamMnI1.js} +0 -0
  582. /package/dist/assets/{web-Nd-L7NoL.js → web-DIlEhBsT.js} +0 -0
  583. /package/dist/assets/{web-W2HEHjFb.js → web-DsVO-tkH.js} +0 -0
  584. /package/dist/assets/{web-Cr238HhI.js → web-aW1scjmM.js} +0 -0
  585. /package/dist/assets/{web-BSizndvP.js → web-eVpCzMlE.js} +0 -0
  586. /package/dist/assets/{workflow-status-CGIYm2p7.js → workflow-status-notSUy4k.js} +0 -0
  587. /package/dist/assets/{workspace-BFa6JWKe.js → workspace-Ch5zHBn1.js} +0 -0
  588. /package/dist/assets/{workspace-path-links-CWERAV56.js → workspace-path-links-BVdQi6RQ.js} +0 -0
  589. /package/dist/assets/{workspace-theme-tokens-CJpxBUQ3.js → workspace-theme-tokens-Dae42Dzg.js} +0 -0
  590. /package/dist/assets/{xterm-DFQikp5h.js → xterm-Ds08b1dp.js} +0 -0
  591. /package/dist/assets/{xterm-addon-fit-B04vX_IV.js → xterm-addon-fit-DAq2qzya.js} +0 -0
@@ -1,3 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/native-file-BpFW1c_c.js","assets/chunk-jRWAZmH_.js","assets/preload-helper-Cv2QeVDK.js","assets/is-electron-wgAC5Mzb.js","assets/dist-D7UWVopK.js"])))=>i.map(i=>d[i]);
2
- import{o as e,t}from"./chunk-jRWAZmH_.js";import{t as n}from"./capture-error-DiNp24s6.js";import{t as r}from"./react-BFJW0bSv.js";import{t as i}from"./button-VkxVX0DM.js";import{t as a}from"./preload-helper-Cv2QeVDK.js";import{d as o,h as s,t as c,u as l}from"./chunk-5KNZJZUH-BUqIilZr.js";import{n as u}from"./QueryClientProvider-EuRl-wrW.js";import{t as d}from"./useQuery-CTSuec5b.js";import{t as f}from"./useInfiniteQuery-C5Kg1-qX.js";import{t as p}from"./useMutation-D2YPyfEH.js";import{t as m}from"./jsx-runtime-BJ8jcmzB.js";import{t as h}from"./typography-DekrYXvs.js";import{t as g}from"./card-DUsAeHUS.js";import{d as _,o as v,s as y}from"./list-row-CDwzGT9g.js";import{t as b}from"./createLucideIcon-B-ZPaMbU.js";import{t as x}from"./arrow-left-Ciai6BHG.js";import{t as S}from"./check-pgeLaeXx.js";import{t as C}from"./chevron-down-CmQCCo_x.js";import{t as w}from"./chevron-up-DHhqG14M.js";import{t as T}from"./circle-check-BlOeCme9.js";import{t as E}from"./coins-CveNnhLe.js";import{B as D,D as O,F as k,I as A,N as j,O as M,P as N,R as P,S as ee,T as F,_ as te,a as ne,b as re,c as ie,f as ae,g as oe,h as se,i as I,j as L,k as ce,l as le,m as ue,n as R,o as de,p as z,r as fe,s as pe,t as me,u as he,v as ge}from"./use-checkout-dismiss-refresh-BHuxVDUc.js";import{c as _e,i as ve,l as ye,n as B,o as be,r as xe,s as Se,t as Ce,u as we}from"./format-usd-tespTIex.js";import{t as Te}from"./download-DnnvWjPo.js";import{t as Ee}from"./external-link-B-pfCiUo.js";import{t as De}from"./info-Bn2hbIVl.js";import{t as V}from"./loader-circle-DYe85z3g.js";import{t as Oe}from"./sparkles-Bhr0JiLM.js";import{t as ke}from"./triangle-alert-43gIbLca.js";import{t as Ae}from"./users-BHqL5Ion.js";import{t as je}from"./x-zfSDUG5z.js";import{t as H}from"./notice-BlYF-xU3.js";import{a as Me}from"./src-CImIAPTd.js";import{t as Ne}from"./tag-Ddzwz3ij.js";import{t as U}from"./input-DkgpMeG9.js";import{t as Pe}from"./toggle-0qt1e_3r.js";import{t as W}from"./modal-UYNawsIu.js";import{n as G}from"./toast-DqqWkjsh.js";import{t as Fe}from"./confirm-dialog-Drw1adml.js";import{t as Ie}from"./select-BKyejRky.js";import"./i18n-C9hRT4Lf.js";import{t as Le}from"./useTranslation-D9pPv-bA.js";import{a as Re,n as ze,t as Be}from"./api-errors-CASENJGT.js";import{l as Ve,o as He}from"./auth-store-CVtcHK0b.js";import{_t as Ue,gt as We}from"./sdk.gen-DWvuzSBW.js";import{Lr as Ge}from"./sdk.gen-CiE6cMi0.js";import{C as Ke}from"./native-biometric-D9IxNvJM.js";import{d as qe}from"./routes-B7wRw3UT.js";import{i as Je,r as Ye,t as Xe}from"./use-platform-gate-DG9Xg3Hs.js";import{r as Ze}from"./use-is-org-ready-GDBxqujc.js";import{Jt as Qe,Tt as $e,Xt as et,Yt as tt,Zt as nt,p as rt,u as it}from"./react-query.gen-Bbh5MII3.js";import{n as at,r as ot}from"./browser-Ca2R8csw.js";import{$ as st,B as ct,Ct as lt,G as ut,H as dt,J as ft,K as pt,Q as mt,R as ht,U as gt,V as _t,W as vt,Y as yt,_t as bt,at as xt,bt as St,et as Ct,ft as wt,gt as Tt,ht as Et,it as Dt,jt as Ot,lt as kt,mt as At,nt as jt,ot as Mt,pt as Nt,q as Pt,rt as Ft,st as It,tt as Lt,vt as Rt,xt as zt,z as Bt}from"./react-query.gen-CwRPAiHT.js";import{n as Vt,r as Ht}from"./conversation-navigation-B_4jZ9Z2.js";import{n as Ut}from"./use-is-mobile-q9Lr7beO.js";import{t as Wt}from"./effective-timezone-CHJnU8kZ.js";import{t as Gt}from"./use-effective-timezone-vox0__xI.js";import{t as Kt}from"./misc-B24X-saO.js";import{t as qt}from"./copy-to-clipboard-D76_3Coc.js";import{t as Jt}from"./platform-login-notice-CvFpWLJY.js";import{t as Yt}from"./use-active-assistant-id-BADYKVyx.js";import{n as Xt}from"./format-date-B_oQDqU9.js";import{t as Zt}from"./schedules-C2Tr1zNV.js";import{t as Qt}from"./checkout-return-target-_Y86sfo0.js";import{t as $t}from"./add-credits-modal-RIAYgbOT.js";import{t as en}from"./link-click-BsxbQxDe.js";import{a as tn,i as nn,r as rn,t as an}from"./profile-metadata-D9zzZn4_.js";var on=b(`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`}]]),sn=b(`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 cn(e){return e.get(`tab`)===`billing`||e.has(`adjust_plan`)||e.has(`pro_onboarding`)||e.has(`billing_status`)||e.has(`session_id`)}function ln(e,t){return e===`full`?!0:e===`disabled`?cn(t):!1}var q=m();function un({open:e,onOpenChange:t,amountUsd:n}){let{t:r}=Le(`settings`),a=u(),o=p(ut()),s=o.isPending,c=B(n);return(0,q.jsx)(W.Root,{open:e,onOpenChange:e=>{!e&&s||t(e)},children:(0,q.jsxs)(W.Content,{size:`sm`,"data-testid":`checkout-bonus-modal`,children:[(0,q.jsx)(W.Header,{icon:ye,children:(0,q.jsx)(W.Title,{children:r(`checkoutBonusModal.title`,{amount:c})})}),(0,q.jsx)(W.Body,{children:(0,q.jsx)(h,{as:`p`,variant:`body-medium-default`,className:`text-(--content-secondary)`,children:r(`checkoutBonusModal.body`,{amount:c})})}),(0,q.jsxs)(W.Footer,{children:[(0,q.jsx)(W.Close,{asChild:!0,children:(0,q.jsx)(i,{variant:`outlined`,disabled:s,children:r(`checkoutBonusModal.decline`)})}),(0,q.jsx)(i,{variant:`primary`,leftIcon:s?(0,q.jsx)(V,{className:`animate-spin`}):void 0,onClick:()=>{s||o.mutate({},{onSuccess:e=>{e.status===`granted`?(G.success(r(`checkoutBonusModal.grantedToast`,{amount:B(e.amount_usd)})),a.invalidateQueries(bt())):G.info(r(`checkoutBonusModal.unavailableToast`)),a.invalidateQueries(pt()),t(!1)},onError:()=>{G.error(r(`checkoutBonusModal.errorToast`))}})},disabled:s,"data-testid":`claim-checkout-bonus-button`,children:r(`checkoutBonusModal.claim`,{amount:c})})]})]})})}function dn(e){let t=Ze(),n=u(),r=e!==null,{data:i,dataUpdatedAt:a}=d({...pt(),enabled:r&&t,staleTime:0,refetchOnWindowFocus:!1}),o=(0,K.useRef)(e);return(0,K.useEffect)(()=>{let t=o.current;o.current=e,!(e===null||e===t||t===null)&&n.invalidateQueries(pt())},[e,n]),{showOffer:r&&i?.eligible===!0&&a>=e,amountUsd:i?.amount_usd??`0.00`}}function fn(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 J(e){return Number.isFinite(e)?Math.round(e).toLocaleString():`0`}function pn(e){return!Number.isFinite(e)||e===0?`$0.00`:`$${e.toFixed(2)}`}var mn=`model`,hn={model:`Model`,task:`Action`,profile:`Profile`},gn=[{value:`model`,label:hn.model},{value:`task`,label:hn.task},{value:`profile`,label:hn.profile}];function _n(e){return e===`model`||e===`task`||e===`profile`}function vn(e){switch(e){case`model`:return`model`;case`task`:return`call_site`;case`profile`:return`inference_profile`}}function yn(e){switch(e){case`model`:return`model`;case`task`:return`llm_call_site`;case`profile`:return`inference_profile`}}function bn(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 xn(e,t,n){return!e||e.length===0?[]:e.map(e=>{let r=bn(t,e,n);return r===e.group?e:{...e,group:r}})}var Sn=6,Cn=`value:`,wn=`null:`;function Tn(e,t=`schedule`){return e===null?`${wn}${_n(t)?vn(t):t}`:`${Cn}${e}`}function En(e){return[...e].sort((e,t)=>{if(e.date!==t.date)return e.date<t.date?-1:1;let n=jn(e.bucketId),r=jn(t.bucketId);return n===r?e.bucketId===t.bucketId?0:e.bucketId<t.bucketId?-1:1:n-r})}function Dn(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 On(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=bn(t,An(o),n);e===o.group?i[a]=o:(r=!0,i[a]={...o,group:e})}return r?{...e,groups:i}:e})}function kn(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,Sn)}}function An(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 jn(e){let t=e.lastIndexOf(`|`);if(t<0)return 0;let n=Number(e.slice(t+1));return Number.isFinite(n)?n:0}var Mn=140,Nn=40,Pn=28,Fn=2,In=2,Ln=1e-6,Rn=12,zn=220,Bn=56,Vn=[40,80,60,100,50,70,30],Hn=[18,24,28,35,42,50,64,78,92,106,118,96,84,74,68,80,88,72,56,48,40,34,26,20],Un=[`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 Wn(e){return Un[e%Un.length]}function Gn(e){return e.displayLabel?e.displayLabel:e.date}function Kn(e,t){let n=e+Rn,r=t+Rn;return n+zn>window.innerWidth&&(n=e-zn-Rn),r+Bn>window.innerHeight&&(r=t-Bn-Rn),{x:n,y:r}}function qn({buckets:e,isHourly:t,legendItems:n}){let[r,i]=(0,K.useState)(null),a=(0,K.useMemo)(()=>En(e),[e]),o=(0,K.useMemo)(()=>kn(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=Kn(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,q.jsx)(Qn,{title:t?`No hourly data`:`No daily data`,subtitle:`No usage recorded in this time range`});return c.length===0?e:(0,q.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[e,(0,q.jsx)(Zn,{items:c})]})}let f=t?Pn:Nn;return(0,q.jsxs)(`div`,{className:`overflow-x-auto`,children:[(0,q.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,q.jsx)(`div`,{className:`flex items-end gap-2`,style:{height:`${Mn}px`},"aria-hidden":`true`,children:a.map(e=>{let t=l>0?e.totalEstimatedCostUsd/l:0,r=Math.max(Fn,Mn*t);return(0,q.jsx)(`div`,{className:`flex items-end`,style:{width:`${f}px`,minWidth:`${f}px`,height:`${r}px`,opacity:e.totalEstimatedCostUsd>0?1:.3},title:`${Gn(e)}: ${pn(e.totalEstimatedCostUsd)}`,"data-usage-series-bar":e.bucketId,children:(0,q.jsx)(Yn,{bucket:e,height:r,legendItems:s,hasLegendOverride:n!=null,onSegmentHover:u,onSegmentLeave:d})},e.bucketId)})}),(0,q.jsx)(`div`,{className:`flex items-start gap-2`,children:a.map(e=>(0,q.jsxs)(`div`,{className:`flex flex-col items-center gap-0.5`,style:{width:`${f}px`,minWidth:`${f}px`},children:[(0,q.jsx)(`span`,{className:`truncate text-[10px]`,style:{color:`var(--content-secondary)`},children:pn(e.totalEstimatedCostUsd)}),(0,q.jsx)(`span`,{className:`truncate text-[10px]`,style:{color:`var(--content-tertiary)`},children:Gn(e)})]},e.bucketId))}),c.length>0?(0,q.jsx)(Zn,{items:c}):null]}),r?(0,q.jsx)(Xn,{tooltip:r}):null]})}function Jn({isHourly:e}){let t=e?Hn:Vn,n=e?Pn:Nn;return(0,q.jsx)(`div`,{className:`flex items-end gap-2`,style:{height:`${Mn}px`},"aria-hidden":`true`,children:t.map((e,t)=>(0,q.jsx)(`div`,{className:`rounded-sm`,style:{width:`${n}px`,height:`${e}px`,background:`color-mix(in srgb, var(--border-base) 40%, transparent)`}},t))})}function Yn({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:Gn(e),cost:pn(e.totalEstimatedCostUsd)};return(0,q.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:Wn(0)},"data-usage-series-segment-label":n.label,"data-usage-fallback-segment":`true`})}return s.length===0?null:(0,q.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:Gn(e),cost:pn(r.totalEstimatedCostUsd)};return(0,q.jsx)(`div`,{title:`${o.label}: ${o.cost}`,onMouseEnter:e=>i(e,o),onMouseMove:e=>i(e,o),onMouseLeave:a,style:{height:`${Math.max(In,t*r.totalEstimatedCostUsd/Math.max(e.totalEstimatedCostUsd,Ln))}px`,background:Wn(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 Xn({tooltip:e}){return(0,q.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,q.jsx)(`div`,{className:`truncate text-body-small-default`,style:{color:`var(--content-default)`},children:e.label}),(0,q.jsxs)(`div`,{className:`truncate text-body-small-default`,style:{color:`var(--content-tertiary)`},children:[e.bucketLabel,` · `,e.cost]})]})}function Zn({items:e}){return(0,q.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,q.jsxs)(`div`,{className:`flex min-w-0 items-center gap-1`,"data-usage-legend-state":t,children:[(0,q.jsx)(`span`,{className:`h-[7px] w-[7px] shrink-0 rounded-full`,style:{background:n?`var(--content-tertiary)`:Wn(e.colorIndex),opacity:n?.45:1},"aria-hidden":`true`,"data-usage-series-color-index":e.colorIndex}),(0,q.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 Qn({title:e,subtitle:t}){return(0,q.jsxs)(`div`,{className:`flex flex-col items-center justify-center rounded-md py-12 text-center`,style:{color:`var(--content-tertiary)`},children:[(0,q.jsx)(`p`,{className:`text-body-medium-default`,style:{color:`var(--content-secondary)`},children:e}),(0,q.jsx)(`p`,{className:`mt-1 text-body-small-default`,children:t})]})}function $n(e){return _n(e)?vn(e):e}function er(e){return ir({from:e.from,to:e.to},e.scheduleId)}function tr(e){return ir({from:e.from,to:e.to,...e.granularity?{granularity:e.granularity}:{},...e.tz?{tz:e.tz}:{}},e.scheduleId)}function nr(e){return ir({from:e.from,to:e.to,groupBy:$n(e.groupBy)},e.scheduleId)}function rr(e){return ir({from:e.from,to:e.to,granularity:e.granularity,groupBy:$n(e.groupBy),...e.tz?{tz:e.tz}:{}},e.scheduleId)}function ir(e,t){return t?{...e,scheduleId:t}:e}function ar(e){return[`${J(e.totalInputTokens)} direct`,`${J(e.totalCacheCreationTokens)} cache created`,`${J(e.totalCacheReadTokens)} cache read`,`${J(e.totalOutputTokens)} out`].join(` / `)}function or(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 sr(e){return`${or(e.totalInputTokens+e.totalCacheCreationTokens+e.totalCacheReadTokens)} in / ${or(e.totalOutputTokens)} out`}var cr=`task`,lr=`model`,ur=new Set([400,404,422]),dr=3,fr=new Set([`today`,`yesterday`,`7d`,`30d`,`90d`,`all`]),pr=new Set([`actor`,`provider`,`model`,`conversation`,`task`,`profile`,`schedule`]),mr={task:hn.task,profile:hn.profile,model:hn.model,provider:`Provider`,actor:`Actor`,conversation:`Conversation`,schedule:`Schedule`},hr=[{value:`task`,label:mr.task},{value:`profile`,label:mr.profile},{value:`model`,label:mr.model},{value:`provider`,label:mr.provider},{value:`schedule`,label:mr.schedule},{value:`conversation`,label:mr.conversation}];function gr(e){let t=e.get(`range`),n=e.get(`groupBy`),r=br(n)?n:cr;return{range:yr(t)?t:`7d`,groupBy:r,scheduleId:r===`schedule`?_r(e):void 0}}function _r(e){let t=e.get(`scheduleId`);if(!(!t||t.trim().length===0))return t}function vr(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 yr(e){return e!=null&&fr.has(e)}function br(e){return e!=null&&pr.has(e)}function xr(e){return e!==`conversation`}function Sr(e,t){return e!==`task`&&e!==`profile`?!1:wr(t)}function Cr(e,t){return!wr(t)&&e<dr}function wr(e){return e instanceof Be&&ur.has(e.status)}function Tr(e,t){let n=e===`hourly`?`Hourly Trend`:`Daily Trend`;return!t||t===`conversation`?n:`${n} by ${mr[t]}`}function Er({requestedGranularity:e,isLoading:t,buckets:n}){return e===`hourly`&&(t||!n||n.length===0||n.some(Dr))?`hourly`:`daily`}function Dr(e){return e.bucketId.includes(`|`)||Or(e.date)}function Or(e){return/^\d{4}-\d{2}-\d{2} ([01]\d|2[0-3]):00$/.test(e)}function kr(e,t,n=Date.now()){return nn(e,t,n)}function Ar(e){return e===`today`||e===`yesterday`?`hourly`:`daily`}function jr({prompt:e,children:t,variant:n=`outlined`,size:r=`regular`,className:a}){let s=o(),c=(0,K.useCallback)(()=>{Ht(s,{prompt:e})},[s,e]);return(0,q.jsx)(i,{variant:n,size:r,leftIcon:(0,q.jsx)(Oe,{}),onClick:c,className:a,children:t})}var Mr=[{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`}],Nr=300*1e3,Pr=[`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(` `),Fr=[`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 Ir({assistantId:e}){let[t,n]=s(),{range:r,groupBy:i,scheduleId:a}=(0,K.useMemo)(()=>gr(t),[t]),o=Gt(),c=(0,K.useCallback)(e=>{n(t=>vr(t,e),{replace:!0})},[n]),l=(0,K.useMemo)(()=>kr(r,o),[r,o]),u=(0,K.useMemo)(()=>Ar(r),[r]),f=d({queryKey:$e({path:{assistant_id:e}}),queryFn:()=>Zt(e),staleTime:1e4}),p=(0,K.useCallback)(e=>{c({range:e})},[c]),m=d({...nt({path:{assistant_id:e},query:er({from:l.from,to:l.to,scheduleId:a})})}),h=d({queryKey:Qe({path:{assistant_id:e},query:nr({from:l.from,to:l.to,groupBy:i,scheduleId:a})}),queryFn:async({signal:t})=>{try{let{data:n}=await Ge({path:{assistant_id:e},query:nr({from:l.from,to:l.to,groupBy:i,scheduleId:a}),signal:t,throwOnError:!0});return{groupBy:i,response:n}}catch(n){if(!Sr(i,n))throw n;let{data:r}=await Ge({path:{assistant_id:e},query:nr({from:l.from,to:l.to,groupBy:lr,scheduleId:a}),signal:t,throwOnError:!0});return{groupBy:lr,response:r}}},retry:Cr}),g=h.data?.groupBy??i;(0,K.useEffect)(()=>{g!==i&&c({groupBy:g,scheduleId:g===`schedule`?void 0:null})},[g,i,c]);let _=xr(g)?g:void 0,v=d({...et({path:{assistant_id:e},query:rr({from:l.from,to:l.to,granularity:u,groupBy:_??`actor`,tz:o,scheduleId:a})}),enabled:!!_,retry:Cr}),y=d({...tt({path:{assistant_id:e},query:tr({from:l.from,to:l.to,granularity:u,tz:o,scheduleId:a})}),enabled:!_||v.isError}),b=d({...rt({path:{assistant_id:e}}),enabled:g===`task`,staleTime:1/0}),x=d({...it({path:{assistant_id:e}}),select:an,enabled:g===`profile`,staleTime:Nr}),S=(0,K.useMemo)(()=>({callSites:fn(b.data),profiles:x.data??{}}),[b.data,x.data]),C=(0,K.useMemo)(()=>{let e=h.data;if(e)return xn(e.response.breakdown,e.groupBy,S)},[h.data,S]),w=(0,K.useMemo)(()=>{if(!(!_||!v.data))return On(v.data.buckets,_,S)},[v.data,_,S]),T=(0,K.useMemo)(()=>{if(y.data)return Dn(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=Er({requestedGranularity:u,isLoading:E.isLoading,buckets:E.data}),O=D===`hourly`,k=_&&v.error?void 0:g,A=(0,K.useMemo)(()=>{if(!(g!==`schedule`||!a))return Lr(f.data,a)},[g,a,f.data]);return(0,q.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,q.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[(0,q.jsx)(`h3`,{className:`text-title-small`,style:{color:`var(--content-default)`},children:`Usage`}),(0,q.jsx)(`div`,{className:`flex flex-wrap items-center justify-end gap-2`,children:(0,q.jsx)(Br,{range:r,onChange:p})})]}),(0,q.jsx)(`section`,{"aria-label":`Totals`,children:(0,q.jsx)(Hr,{query:m,skeleton:(0,q.jsx)(Gr,{}),render:e=>(0,q.jsx)(Ur,{totals:e})})}),(0,q.jsx)(Vr,{title:`Inference Usage`,children:(0,q.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,q.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[(0,q.jsx)(`h4`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:Tr(D,k)}),(0,q.jsx)(`div`,{className:`flex flex-wrap items-center justify-end gap-2`,children:(0,q.jsx)(Kr,{value:g,onChange:e=>{c({groupBy:e,scheduleId:e===`schedule`?void 0:null})}})})]}),(0,q.jsx)(Hr,{query:E,skeleton:(0,q.jsx)(Jn,{isHourly:O}),render:e=>(0,q.jsx)(qn,{buckets:e,isHourly:O,legendItems:A})})]})}),(0,q.jsx)(qr,{query:h,groups:C}),(0,q.jsx)(zr,{})]})}function Lr(e,t){let n=e??[];return[...n.some(e=>e.id===t)?[]:[{id:t,label:Rr(t)}],...n.map(e=>({id:e.id,label:e.name||e.id}))].map((e,n)=>({seriesKey:Tn(e.id,`schedule`),label:e.label,colorIndex:n,state:e.id===t?`active`:`inactive`}))}function Rr(e){return`Unknown schedule (${e})`}function zr(){return(0,q.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,q.jsx)(`div`,{className:`h-px w-full`,style:{background:`linear-gradient(to right, transparent, var(--border-base), transparent)`}}),(0,q.jsx)(Vr,{title:`Cost assistant`,subtitle:`Review recent spend and tune model profile choices.`,children:(0,q.jsxs)(`div`,{className:`flex flex-col gap-2 rounded-md px-3 py-3 sm:flex-row sm:items-center`,children:[(0,q.jsx)(jr,{prompt:Pr,children:`Analyze costs with assistant`}),(0,q.jsx)(jr,{prompt:Fr,variant:`ghost`,children:`Optimize settings`})]})})]})}function Br({range:e,onChange:t}){return(0,q.jsx)(`div`,{className:`flex items-center`,children:(0,q.jsx)(Ie,{value:e,onChange:t,options:Mr.map(e=>({value:e.value,label:e.label}))})})}function Vr({title:e,subtitle:t,children:n}){return(0,q.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,q.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,q.jsx)(`h3`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:e}),t?(0,q.jsx)(`p`,{className:`text-body-small-default`,style:{color:`var(--content-tertiary)`},children:t}):null]}),n]})}function Hr({query:e,skeleton:t,render:n}){return e.isLoading?(0,q.jsx)(q.Fragment,{children:t}):e.error?(0,q.jsx)(Qr,{message:e.error instanceof Error?e.error.message:`Failed to load usage.`,onRetry:()=>e.refetch()}):e.data?(0,q.jsx)(q.Fragment,{children:n(e.data)}):(0,q.jsx)(q.Fragment,{children:t})}function Ur({totals:e}){return(0,q.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,q.jsxs)(`div`,{className:`flex flex-wrap items-baseline justify-between gap-4`,children:[(0,q.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,q.jsx)(`span`,{style:{fontSize:`30px`,fontWeight:600,lineHeight:1,color:`var(--content-default)`},children:pn(e.totalEstimatedCostUsd)}),(0,q.jsx)(`span`,{className:`text-body-small-default`,style:{color:`var(--content-secondary)`},children:`Cost`})]}),(0,q.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,q.jsx)(`span`,{className:`text-title-small`,style:{color:`var(--content-default)`},children:J(e.eventCount)}),(0,q.jsx)(`span`,{className:`text-body-small-default`,style:{color:`var(--content-secondary)`},children:`LLM Calls`})]})]}),(0,q.jsxs)(`div`,{className:`grid grid-cols-2 gap-3 sm:grid-cols-4`,children:[(0,q.jsx)(Wr,{label:`Direct Input Tokens`,value:J(e.totalInputTokens)}),(0,q.jsx)(Wr,{label:`Output Tokens`,value:J(e.totalOutputTokens)}),(0,q.jsx)(Wr,{label:`Cache Created`,value:J(e.totalCacheCreationTokens)}),(0,q.jsx)(Wr,{label:`Cache Read`,value:J(e.totalCacheReadTokens)})]})]})}function Wr({label:e,value:t}){return(0,q.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,q.jsx)(`span`,{className:`text-body-small-default`,style:{color:`var(--content-default)`},children:t}),(0,q.jsx)(`span`,{className:`text-label-medium-default`,style:{color:`var(--content-tertiary)`},children:e})]})}function Gr(){return(0,q.jsxs)(`div`,{className:`flex flex-col gap-4`,"aria-hidden":`true`,children:[(0,q.jsxs)(`div`,{className:`flex flex-wrap items-baseline justify-between gap-4`,children:[(0,q.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,q.jsx)(Y,{width:140,height:30}),(0,q.jsx)(Y,{width:90,height:12})]}),(0,q.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,q.jsx)(Y,{width:60,height:16}),(0,q.jsx)(Y,{width:60,height:12})]})]}),(0,q.jsx)(`div`,{className:`grid grid-cols-2 gap-3 sm:grid-cols-4`,children:Array.from({length:4}).map((e,t)=>(0,q.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,q.jsx)(Y,{width:`50%`,height:12}),(0,q.jsx)(Y,{width:`70%`,height:11})]},t))})]})}function Kr({value:e,onChange:t}){return(0,q.jsx)(`div`,{className:`flex items-center`,children:(0,q.jsx)(Ie,{value:e,onChange:t,menuAlign:`end`,menuMinWidth:196,options:hr.map(e=>({value:e.value,label:e.label}))})})}function qr({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,q.jsx)(Vr,{title:`Breakdown`,children:(0,q.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,q.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,q.jsx)(Jr,{label:`% of total`,active:n.has(`pct`),onClick:()=>i(`pct`)}),(0,q.jsx)(Jr,{label:`Tokens`,active:n.has(`tokens`),onClick:()=>i(`tokens`)}),(0,q.jsx)(Jr,{label:`Turns`,active:n.has(`turns`),onClick:()=>i(`turns`)})]}),(0,q.jsx)(Hr,{query:e,skeleton:(0,q.jsx)(Xr,{}),render:e=>(0,q.jsx)(Yr,{groups:t??e.response.breakdown,groupBy:e.groupBy,showPct:n.has(`pct`),showTokens:n.has(`tokens`),showTurns:n.has(`turns`)})})]})})}function Jr({label:e,active:t,onClick:n}){return(0,q.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 Yr({groups:e,groupBy:t,showPct:n,showTokens:r,showTurns:i}){let a=o();if(e.length===0)return(0,q.jsx)(Zr,{title:`No breakdown data`,subtitle:`No usage recorded for this grouping`});let s=e.reduce((e,t)=>e+t.totalEstimatedCostUsd,0);return(0,q.jsx)(`div`,{className:`overflow-hidden rounded-md`,children:(0,q.jsxs)(`table`,{className:`w-full table-fixed`,children:[(0,q.jsx)(`thead`,{children:(0,q.jsxs)(`tr`,{style:{borderBottom:`1px solid var(--border-base)`},children:[(0,q.jsx)(`th`,{className:`px-3 py-2.5 text-left text-label-medium-default`,style:{color:`var(--content-tertiary)`},children:`Group`}),r?(0,q.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,q.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,q.jsx)(`th`,{className:`px-3 py-2.5 text-right text-label-medium-default`,style:{color:`var(--content-tertiary)`,width:`64px`},children:`%`}):null,(0,q.jsx)(`th`,{className:`px-3 py-2.5 text-right text-label-medium-default`,style:{color:`var(--content-tertiary)`,width:`100px`},children:`Cost`})]})}),(0,q.jsx)(`tbody`,{children:e.map((e,o)=>{let l=ar(e),u=sr(e),d=t===`conversation`?e.groupId:null,f=s>0?Math.round(e.totalEstimatedCostUsd/s*100):0;return(0,q.jsxs)(`tr`,{className:d?`cursor-pointer hover:bg-[var(--surface-hover)]`:void 0,onClick:d?e=>{e.target.closest(`a`)||Vt(a,d)}:void 0,style:{borderTop:o===0?`none`:`1px solid var(--border-base)`},children:[(0,q.jsx)(`td`,{className:`min-w-0 px-3 py-2`,style:{color:`var(--content-default)`},children:d?(0,q.jsx)(c,{to:qe.conversation(d),className:`block truncate text-body-medium-lighter`,title:e.group,onClick:e=>{en(e)||(e.preventDefault(),Vt(a,d))},children:e.group}):(0,q.jsx)(`span`,{className:`block truncate text-body-medium-lighter`,title:e.group,children:e.group})}),r?(0,q.jsx)(`td`,{className:`min-w-0 px-3 py-2`,style:{color:`var(--content-secondary)`},children:(0,q.jsx)(`span`,{className:`block truncate text-body-small-default`,title:l,children:u})}):null,i?(0,q.jsx)(`td`,{className:`whitespace-nowrap px-3 py-2 text-right`,children:(0,q.jsx)(`span`,{className:`text-body-small-default`,style:{color:`var(--content-tertiary)`},children:e.turnCount==null?`—`:e.turnCount.toLocaleString()})}):null,n?(0,q.jsx)(`td`,{className:`whitespace-nowrap px-3 py-2 text-right`,children:(0,q.jsxs)(`span`,{className:`text-body-small-default`,style:{color:`var(--content-tertiary)`},children:[f,`%`]})}):null,(0,q.jsx)(`td`,{className:`whitespace-nowrap px-3 py-2 text-right`,children:(0,q.jsx)(`span`,{className:`text-body-medium-lighter`,style:{color:`var(--content-default)`},children:pn(e.totalEstimatedCostUsd)})})]},e.groupKey??e.groupId??`${e.group}-${o}`)})})]})})}function Xr(){return(0,q.jsx)(`div`,{className:`flex flex-col gap-2`,"aria-hidden":`true`,children:Array.from({length:4}).map((e,t)=>(0,q.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,q.jsx)(Y,{width:100,height:14}),(0,q.jsx)(Y,{width:`60%`,height:12}),(0,q.jsx)(Y,{width:50,height:14})]},t))})}function Y({width:e,height:t}){return(0,q.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 Zr({title:e,subtitle:t}){return(0,q.jsxs)(`div`,{className:`flex flex-col items-center gap-1 py-8 text-center`,children:[(0,q.jsx)(`span`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:e}),(0,q.jsx)(`span`,{className:`text-body-small-default`,style:{color:`var(--content-tertiary)`},children:t})]})}function Qr({message:e,onRetry:t}){return(0,q.jsxs)(`div`,{className:`flex flex-col gap-2 py-2`,children:[(0,q.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,q.jsx)(ke,{className:`h-4 w-4 shrink-0`,style:{color:`var(--system-negative-strong, #f87171)`}}),(0,q.jsx)(`span`,{className:`text-body-medium-lighter`,style:{color:`var(--content-default)`},children:e})]}),t?(0,q.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 $r({open:e,onCancel:t,onConfirm:n,confirming:r,lostFeatures:a}){return(0,q.jsx)(W.Root,{open:e,onOpenChange:e=>{!e&&!r&&t()},children:(0,q.jsxs)(W.Content,{size:`md`,hideCloseButton:!0,children:[(0,q.jsx)(W.Header,{icon:ke,children:(0,q.jsx)(W.Title,{children:`Downgrade to Base?`})}),(0,q.jsxs)(W.Body,{children:[(0,q.jsx)(h,{as:`p`,variant:`body-medium-default`,className:`text-(--content-secondary)`,children:`Downgrading removes the following Pro features:`}),(0,q.jsx)(`ul`,{className:`mt-4 list-disc space-y-2 pl-5`,children:a.map(e=>(0,q.jsx)(`li`,{children:(0,q.jsx)(h,{as:`span`,variant:`body-medium-default`,children:e})},e))})]}),(0,q.jsxs)(W.Footer,{children:[(0,q.jsx)(i,{variant:`outlined`,onClick:t,disabled:r,children:`Keep Pro`}),(0,q.jsx)(i,{variant:`danger`,onClick:n,disabled:r,"data-testid":`confirm-downgrade-button`,children:`Confirm Downgrade`})]})]})})}function ei(e){return`${e.label} — ${k(e.price_cents)}`}function ti({creditTiers:e,selectedCreditTier:t,onCreditTierChange:n,disabled:r=!1}){let i=(0,K.useMemo)(()=>[{value:null,label:`No credit bundle — ${k(0)}`},...e.map(e=>({value:e.tier,label:ei(e)}))],[e]);return(0,q.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,q.jsx)(h,{as:`p`,variant:`label-small-default`,className:`text-[var(--content-secondary)]`,children:`Credit bundle`}),(0,q.jsx)(`span`,{title:`A monthly allotment of credits added to your Pro Plan subscription`,children:(0,q.jsx)(De,{className:`h-3 w-3 text-[var(--content-tertiary)]`})})]}),(0,q.jsx)(Ie,{"aria-label":`Credit bundle`,placeholder:`Select a credit bundle`,disabled:r,value:t,onChange:e=>n(e),onSelectNone:()=>n(null),options:i})]})}function ni({features:e,variant:t,header:n,maxInline:r=3}){return t===`inline`?(0,q.jsx)(q.Fragment,{children:e.slice(0,r).join(`, `)}):(0,q.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[n&&(0,q.jsx)(h,{as:`p`,variant:`body-small-default`,className:`text-[var(--content-secondary)]`,children:n}),(0,q.jsx)(`ul`,{className:`flex flex-col gap-2`,children:e.map(e=>(0,q.jsxs)(`li`,{className:`flex items-start gap-2`,children:[(0,q.jsx)(T,{className:`mt-0.5 h-4 w-4 shrink-0 text-[var(--content-tertiary)]`,"aria-hidden":!0}),(0,q.jsx)(h,{as:`span`,variant:`body-medium-default`,children:e})]},e))})]})}function ri({plan:e,isCurrent:t,onPro:n,planDisplayName:r,currentPlanFeatures:a,cancelAtPeriodEnd:o,isCanceled:s,cancelDate:c,formatGraceDate:l,proTierChangeMode:u,creditTiersEnabled:d,creditTiers:f,displayCreditTier:p,onCreditTierChange:m,selectedMachineTier:_,selectedStorageTier:v,onMachineTierChange:y,onStorageTierChange:b,machineTiersForPicker:x,storageTiersForPicker:S,currentMachinePrice:C,currentStoragePrice:w,currentCreditPriceUnknown:T,proCurrentTotalCents:E,proLiveTotalCents:D,proTotalDelta:O,onboardingLoading:A,tierChangePending:M,machineChanged:P,storageChanged:ee,creditChanged:F,tierChangeError:te,upgradePending:ne,portalPending:re,onUpgrade:ie,onApplyTierChange:ae,onDowngradeClick:oe,onKeepPlan:se}){let I=e.id===`pro`,L=e.id===`base`,ce=I&&n&&o&&!s,le=I&&(!t||t&&u),ue=I&&t&&u,R=I&&t;return(0,q.jsx)(g.Root,{className:`flex flex-col bg-[var(--surface-base)]`,children:(0,q.jsxs)(g.Body,{padding:`lg`,className:`max-sm:p-4`,children:[(0,q.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,q.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:I?(0,q.jsx)(on,{className:`h-5 w-5 text-[var(--content-default)]`}):(0,q.jsx)(sn,{className:`h-5 w-5 text-[var(--content-default)]`})}),(0,q.jsxs)(`div`,{className:`flex min-h-6 items-center gap-2`,children:[(0,q.jsx)(h,{as:`h3`,variant:`title-small`,"data-testid":`modal-plan-name`,children:R?r:e.name}),t&&(0,q.jsx)(Ne,{tone:`positive`,children:`Current`})]}),(0,q.jsx)(h,{as:`p`,variant:`body-small-default`,className:`-mt-2 text-[var(--content-tertiary)]`,children:L?`All you need for a capable assistant`:`More features, more compute, more storage`}),ce&&c&&(0,q.jsxs)(h,{as:`p`,variant:`body-small-default`,className:`text-[var(--system-mid-strong)]`,"data-testid":`modal-cancels-on`,children:[`Your plan ends on `,l(c)]}),(0,q.jsx)(`hr`,{className:`border-t border-[var(--border-base)]`}),(0,q.jsx)(`div`,{className:`flex flex-col gap-1`,children:L?(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(h,{as:`p`,variant:`title-medium`,children:`Free`}),(0,q.jsx)(h,{as:`p`,variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,children:`Forever`})]}):t&&!(le&&D!=null)&&(E==null||T)?A?(0,q.jsxs)(`div`,{className:`flex items-center gap-2 text-[var(--content-tertiary)]`,children:[(0,q.jsx)(V,{className:`h-4 w-4 animate-spin`}),(0,q.jsx)(h,{as:`span`,variant:`body-medium-lighter`,children:`Loading your plan...`})]}):(0,q.jsx)(h,{as:`p`,variant:`body-medium-lighter`,className:`text-[var(--content-tertiary)]`,"data-testid":`modal-pro-price-unavailable`,children:`Current plan pricing unavailable`}):(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,q.jsx)(h,{as:`p`,variant:`title-medium`,"data-testid":`modal-pro-price`,children:le&&D!=null?(0,q.jsxs)(q.Fragment,{children:[k(D),O!=null&&O!==0&&(0,q.jsxs)(`span`,{className:`ml-1 text-[var(--content-tertiary)]`,children:[`(`,j(O),`)`]})]}):E==null?e.id===`pro`?`From ${k(e.base_price_cents+pe(e.machine_tiers)+pe(e.storage_tiers))}`:null:`Currently ${k(E)}`}),le&&O!=null&&O!==0&&(0,q.jsx)(`span`,{title:`Your Pro Plan subscription will change from ${k(E)} to ${k(D)}.`,children:(0,q.jsx)(De,{className:`h-3 w-3 text-[var(--content-tertiary)]`})})]}),e.id===`pro`&&(0,q.jsxs)(h,{as:`p`,variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,"data-testid":`modal-pro-base-fee`,children:[N(e.base_price_cents),` base fee`]})]})}),(0,q.jsx)(ni,{features:R&&a?a:e.included_features,variant:`checklist`}),I&&!d&&(0,q.jsx)(h,{as:`p`,variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,"data-testid":`modal-credits-not-included`,children:`*Credits not included`})]}),(0,q.jsxs)(`div`,{className:`mt-4 flex flex-1 flex-col justify-end gap-4`,children:[!t&&I&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`hr`,{className:`border-t border-[var(--border-base)]`}),d&&(0,q.jsx)(ti,{creditTiers:f,selectedCreditTier:p,onCreditTierChange:m,disabled:ne}),(0,q.jsx)(he,{machineTiers:x,storageTiers:S,selectedMachineTier:_,selectedStorageTier:v,onMachineTierChange:y,onStorageTierChange:b}),(0,q.jsx)(i,{variant:`primary`,className:`w-full`,onClick:ie,disabled:ne||!_||!v,"data-testid":`modal-upgrade-to-pro-button`,children:`Upgrade to Pro`})]}),ue&&(A?(0,q.jsxs)(`div`,{className:`flex items-center gap-2 text-[var(--content-tertiary)]`,children:[(0,q.jsx)(V,{className:`h-4 w-4 animate-spin`}),(0,q.jsx)(h,{as:`span`,variant:`body-medium-lighter`,children:`Loading your plan...`})]}):(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`hr`,{className:`border-t border-[var(--border-base)]`}),d&&(0,q.jsx)(ti,{creditTiers:f,selectedCreditTier:p,onCreditTierChange:m,disabled:M}),(0,q.jsx)(he,{machineTiers:x,storageTiers:S,selectedMachineTier:_,selectedStorageTier:v,onMachineTierChange:y,onStorageTierChange:b,currentMachinePriceCents:C,currentStoragePriceCents:w}),te&&(0,q.jsx)(H,{tone:`error`,children:te}),(0,q.jsx)(i,{variant:`primary`,className:`w-full`,onClick:ae,disabled:M||!P&&!ee&&!F,"data-testid":`modal-change-tier-button`,children:`Update Plan`})]})),!t&&L&&n&&!o&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`hr`,{className:`border-t border-[var(--border-base)]`}),(0,q.jsx)(i,{variant:`outlined`,className:`w-full`,onClick:oe,disabled:re,"data-testid":`modal-downgrade-to-base-button`,children:`Downgrade to Base`})]}),ce&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`hr`,{className:`border-t border-[var(--border-base)]`}),(0,q.jsx)(i,{variant:`outlined`,className:`w-full`,onClick:se,disabled:re,"data-testid":`modal-keep-plan-button`,children:`Keep your Plan`})]})]})]})})}function ii({open:e,onClose:t,onTierUpgraded:n}){let r=u(),a=d(Dt()),o=d(At()),s=p(Tt()),c=p(It()),l=p(kt()),f=p(Mt()),m=te(ae(o.data)),[g,_]=(0,K.useState)(`plans`),[v,y]=(0,K.useState)(!1),[b,S]=(0,K.useState)(null),[C,w]=(0,K.useState)(null),[T,E]=(0,K.useState)(void 0);(0,K.useEffect)(()=>ot(()=>{r.invalidateQueries({queryKey:Et()}),r.invalidateQueries({queryKey:xt()}),r.invalidateQueries({queryKey:Nt()}),t()}),[r,t]);let D=o.data?.plan_id,O=D===`pro`,k=d({...wt(),enabled:O}),A=k.data?.max_machine_tier??null,j=k.data?.selected_storage_tier??null,M=k.data?.selected_storage_gib??null,N=o.data?.cancel_at_period_end===!0||!!o.data?.cancel_at,P=o.data?.status===`canceled`,ee=se(o.data),F=o.data?.status,re=F!=null&&I.has(F),oe=O&&re&&!N&&!P,L=a.data?.plans.find(e=>e.id===`pro`),R=L?.credit_tiers??[],de=R.length>0,z=o.data?.selected_credit_tier??null,fe=e=>R.find(t=>t.tier===e)?.price_cents??0,pe=fe(z),me=z!=null&&!R.some(e=>e.tier===z),he=T===void 0?z:T,_e=fe(he),ve=ce(o.data?.package),ye=O&&k.isSuccess&&L?ge({machineTier:A,storageTier:j,storageGib:M,creditTier:z},L):null,B=L?.machine_tiers??[],be=oe&&M!=null?(L?.storage_tiers??[]).map(e=>e.storage_gib<M?{...e,disabled:!0}:e):L?.storage_tiers??[];(0,K.useEffect)(()=>{if(!e){S(null),w(null),E(void 0);return}if(L){if(oe){if(A==null||j==null)return;S(e=>le(B,e??A)),w(e=>le(be,e??j)),E(e=>ie(R,e,z));return}S(e=>le(L.machine_tiers,e)),w(e=>le(L.storage_tiers,e)),E(e=>ie(R,e,null))}},[e,L,oe,A,j,z]);let xe=a.data?.plans.find(e=>e.id===`base`),Se=new Set(xe?.included_features??[]),Ce=(L?.included_features??[]).filter(e=>!Se.has(e)),we=()=>{if(!s.isPending){if(!b||!C){G.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:b,storage_tier:C,credit_tier:he,return_target:Qt()}},{onSuccess:e=>{if(e.checkout_url){Ke({kind:`custom`,machineTier:b,storageTier:C,creditTier:he}),Ve(r),at(e.checkout_url);return}if(e.status===`no_op`){G.info(`You're already on Pro.`,{id:`pro-upgrade`}),t();return}G.error(e.message??`Failed to start upgrade. Please try again.`,{id:`pro-upgrade-error`})},onError:e=>{G.error(ne(e,`Failed to start upgrade. Please try again.`),{id:`pro-upgrade-error`})}})}},Te=()=>{m.isPending||(_(`plans`),m.mutate({}))},Ee=()=>{r.invalidateQueries({queryKey:Et()}),r.invalidateQueries({queryKey:Nt()}),r.invalidateQueries({queryKey:xt()})},De=c.isPending||l.isPending||f.isPending,Oe=b!=null&&b!==A,Ae=C!=null&&C!==j,je=de&&T!==void 0&&T!==z,Me=e=>B.find(t=>t.tier===e)?.price_cents??null,Ne=e=>be.find(t=>t.tier===e)?.price_cents??null,U=Me(b),Pe=Ne(C),Fe=Me(A),Ie=Ne(j),Le=Oe&&U!=null&&Fe!=null&&U<Fe,Re=()=>{if(De)return;let e=[];Oe&&b&&e.push(new Promise(e=>{c.mutate({body:{machine_tier:b}},{onSuccess:()=>e({dimension:`machine`,ok:!0}),onError:t=>e({dimension:`machine`,ok:!1,error:t})})})),Ae&&C&&e.push(new Promise(e=>{l.mutate({body:{storage_tier:C}},{onSuccess:()=>e({dimension:`storage`,ok:!0}),onError:t=>e({dimension:`storage`,ok:!1,error:t})})})),je&&e.push(new Promise(e=>{f.mutate({body:{credit_tier:he}},{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`)&&!Le,a=(r||i)&&!!n,o=e.filter(e=>!e.ok);if(o.length>0){let e=o.map(e=>ne(e.error,`Failed to update ${e.dimension} tier.`)).join(` `);G.error(e,{id:`pro-tier-change-error`}),a&&(t(),n());return}a?(t(),n()):G.success(je&&!Oe&&!Ae?`Credit bundle updated.`:`Plan updated.`,{id:`pro-tier-change`})})},ze=()=>{if(!De){if(Le){y(!0);return}Re()}},Be=()=>{y(!1),Re()},He=e=>U!=null&&Pe!=null?e.base_price_cents+U+Pe+_e:null,Ue=e=>Fe!=null&&Ie!=null?e.base_price_cents+Fe+Ie+pe:null,We=c.isError||l.isError||f.isError?ne(c.error??l.error??f.error,`Failed to update plan. Please try again.`):null,Ge=a.isLoading||o.isLoading,qe=a.isError||o.isError||!a.data||!o.data;return(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(W.Root,{open:e,onOpenChange:e=>{e||(_(`plans`),t())},children:(0,q.jsx)(W.Content,{size:g===`plans`?`lg`:`md`,children:g===`downgrade-confirm`?(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(W.Header,{icon:ke,children:(0,q.jsx)(W.Title,{children:`Downgrade to Base?`})}),(0,q.jsxs)(W.Body,{children:[(0,q.jsx)(h,{as:`p`,variant:`body-medium-default`,className:`text-(--content-secondary)`,children:`Downgrading removes the following Pro features:`}),(0,q.jsx)(`ul`,{className:`mt-4 list-disc space-y-2 pl-5`,children:Ce.map(e=>(0,q.jsx)(`li`,{children:(0,q.jsx)(h,{as:`span`,variant:`body-medium-default`,children:e})},e))})]}),(0,q.jsxs)(W.Footer,{children:[(0,q.jsx)(i,{variant:`ghost`,onClick:()=>_(`plans`),disabled:m.isPending,leftIcon:(0,q.jsx)(x,{className:`h-4 w-4`}),children:`Back`}),(0,q.jsx)(i,{variant:`danger`,onClick:Te,disabled:m.isPending,"data-testid":`confirm-downgrade-button`,children:`Confirm Downgrade`})]})]}):(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(W.Header,{children:(0,q.jsx)(W.Title,{className:`sr-only`,children:`Upgrade Plan`})}),(0,q.jsx)(W.Body,{children:Ge?(0,q.jsxs)(`div`,{className:`flex items-center gap-2 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,q.jsx)(V,{className:`h-4 w-4 animate-spin`}),(0,q.jsx)(h,{as:`span`,variant:`body-medium-lighter`,children:`Loading plans...`})]}):qe?(0,q.jsx)(H,{tone:`error`,children:`Failed to load plans. Please try again later.`}):(0,q.jsxs)(`div`,{className:`space-y-4 sm:space-y-6`,children:[(0,q.jsxs)(`div`,{className:`space-y-2 pb-2 pt-4 text-center`,children:[(0,q.jsx)(h,{as:`p`,variant:`title-medium`,children:`Your Assistant, Your Way`}),(0,q.jsx)(h,{as:`p`,variant:`body-medium-lighter`,className:`text-[var(--content-secondary)]`,children:`Choose the plan that works best for you and your assistant.`})]}),(0,q.jsx)(`div`,{className:`grid grid-cols-1 gap-4 md:grid-cols-2`,children:a.data.plans.map(e=>{let t=e.id===D,n=e.id===`pro`&&L?He(L):null,r=e.id===`pro`&&L?Ue(L):null;return(0,q.jsx)(ri,{plan:e,isCurrent:t,onPro:O,planDisplayName:ve,currentPlanFeatures:ye,cancelAtPeriodEnd:N,isCanceled:P,cancelDate:ee,formatGraceDate:ue,proTierChangeMode:oe,creditTiersEnabled:de,creditTiers:R,displayCreditTier:he,onCreditTierChange:E,selectedMachineTier:b,selectedStorageTier:C,onMachineTierChange:S,onStorageTierChange:w,machineTiersForPicker:B,storageTiersForPicker:be,currentMachinePrice:Fe,currentStoragePrice:Ie,currentCreditPriceUnknown:me,proCurrentTotalCents:r,proLiveTotalCents:n,proTotalDelta:n!=null&&r!=null?n-r:null,onboardingLoading:k.isLoading,tierChangePending:De,machineChanged:Oe,storageChanged:Ae,creditChanged:je,tierChangeError:We,upgradePending:s.isPending,portalPending:m.isPending,onUpgrade:we,onApplyTierChange:ze,onDowngradeClick:()=>_(`downgrade-confirm`),onKeepPlan:()=>m.mutate({})},e.id)})})]})}),(0,q.jsxs)(W.Footer,{className:`relative items-center`,children:[(0,q.jsx)(h,{as:`p`,variant:`body-small-default`,className:`pointer-events-none absolute inset-x-0 text-center text-[var(--content-tertiary)]`,children:(0,q.jsx)(`span`,{className:`pointer-events-auto`,children:`You can change or cancel your plan at any time from billing settings.`})}),(0,q.jsx)(`div`,{className:`ml-auto`,children:(0,q.jsx)(i,{variant:`outlined`,onClick:t,"data-testid":`modal-cancel-button`,children:`Cancel`})})]})]})})}),(0,q.jsx)($r,{open:v,onCancel:()=>y(!1),onConfirm:Be,confirming:De,lostFeatures:[`Reduced CPU and memory for your assistant — it will resize to the smaller compute profile.`]})]})}function ai({open:e,confirming:t,onCancel:n,onConfirm:r}){return(0,q.jsx)(Fe,{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 oi=25,si={threshold_usd:`100`,amount_usd:`10`,monthly_cap_usd:``};function ci(e){if(e===``||e===`-`)return e;let t=parseFloat(e);return Number.isFinite(t)?String(Math.trunc(t)):``}function li(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 ui(e,t,n,r){if(n[e])return n[e];if(r)return t[e]}function di({initialValues:e=si,submitting:t,serverErrors:n,showDefaultDailyLimitNote:r=!1,onSave:a,onCancel:o}){let[s,c]=(0,K.useState)(e),[l,u]=(0,K.useState)({threshold_usd:!1,amount_usd:!1,monthly_cap_usd:!1}),d=li(s),f=e=>t=>{c(n=>({...n,[e]:t.target.value}))},p=e=>()=>{u(t=>({...t,[e]:!0})),c(t=>({...t,[e]:ci(t[e])}))},m=e=>ui(e,d,n,l[e]);return(0,q.jsxs)(`div`,{className:`mt-4`,children:[(0,q.jsxs)(`div`,{className:`flex flex-wrap items-start gap-3`,children:[(0,q.jsx)(`div`,{className:`min-w-[10rem] flex-1`,children:(0,q.jsx)(U,{type:`number`,step:`1`,label:`Auto-reload when balance below`,value:s.threshold_usd,onChange:f(`threshold_usd`),onBlur:p(`threshold_usd`),errorText:m(`threshold_usd`),"data-testid":`auto-top-up-threshold-input`,fullWidth:!0})}),(0,q.jsx)(`div`,{className:`min-w-[10rem] flex-1`,children:(0,q.jsx)(U,{type:`number`,step:`1`,label:`Auto-reload amount`,value:s.amount_usd,onChange:f(`amount_usd`),onBlur:p(`amount_usd`),errorText:m(`amount_usd`),"data-testid":`auto-top-up-amount-input`,fullWidth:!0})}),(0,q.jsx)(`div`,{className:`min-w-[10rem] flex-1`,children:(0,q.jsx)(U,{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:s.monthly_cap_usd,onChange:f(`monthly_cap_usd`),onBlur:p(`monthly_cap_usd`),errorText:m(`monthly_cap_usd`),"data-testid":`auto-top-up-cap-input`,fullWidth:!0})}),(0,q.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 pt-[18px]`,children:[(0,q.jsx)(i,{variant:`outlined`,onClick:o,disabled:t,children:`Cancel`}),(0,q.jsx)(i,{variant:`primary`,onClick:()=>{u({threshold_usd:!0,amount_usd:!0,monthly_cap_usd:!0});let e={threshold_usd:ci(s.threshold_usd),amount_usd:ci(s.amount_usd),monthly_cap_usd:ci(s.monthly_cap_usd)};c(e);let t=li(e);if(Object.keys(t).length!==0)return;let n=e=>e===``?``:`${parseInt(e,10)}.00`;a({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`})]})]}),r&&(0,q.jsxs)(H,{tone:`info`,className:`mt-3`,"data-testid":`auto-top-up-default-daily-limit-note`,children:[`A default daily credit limit of $`,oi,` per day will be applied. You can adjust it under Daily credit limit.`]})]})}var fi=t(((e,t)=>{t.exports=`SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED`})),pi=t(((e,t)=>{var n=fi();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=pi()()}))(),1);function mi(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 hi(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?mi(Object(n),!0).forEach(function(t){_i(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):mi(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function gi(e){"@babel/helpers - typeof";return gi=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},gi(e)}function _i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function vi(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 yi(e,t){if(e==null)return{};var n=vi(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 bi(e,t){return xi(e)||Si(e,t)||Ci(e,t)||Ti()}function xi(e){if(Array.isArray(e))return e}function Si(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 Ci(e,t){if(e){if(typeof e==`string`)return wi(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 wi(e,t)}}function wi(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 Ti(){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])},Ei=function(e){var t=K.useRef(e);return K.useEffect(function(){t.current=e},[e]),t.current},Di=function(e){return e!==null&&gi(e)===`object`},Oi=function(e){return Di(e)&&typeof e.then==`function`},ki=function(e){return Di(e)&&typeof e.elements==`function`&&typeof e.createToken==`function`&&typeof e.createPaymentMethod==`function`&&typeof e.confirmCardPayment==`function`},Ai=`[object Object]`,ji=function e(t,n){if(!Di(t)||!Di(n))return t===n;var r=Array.isArray(t);if(r!==Array.isArray(n))return!1;var i=Object.prototype.toString.call(t)===Ai;if(i!==(Object.prototype.toString.call(n)===Ai))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])})},Mi=function(e,t,n){return Di(e)?Object.keys(e).reduce(function(r,i){var a=!Di(t)||!ji(e[i],t[i]);return n.includes(i)?(a&&console.warn(`Unsupported prop change: options.${i} is not a mutable property.`),r):a?hi(hi({},r||{}),{},_i({},i,e[i])):r},null):null},Ni="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.",Pi=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Ni;if(e===null||ki(e))return e;throw Error(t)},Fi=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Ni;if(Oi(e))return{tag:`async`,stripePromise:Promise.resolve(e).then(function(e){return Pi(e,t)})};var n=Pi(e,t);return n===null?{tag:`empty`}:{tag:`sync`,stripe:n}},Ii=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`}))},Li=K.createContext(null);Li.displayName=`ElementsContext`;var Ri=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},zi=function(e){var t=e.stripe,n=e.options,r=e.children,i=K.useMemo(function(){return Fi(t)},[t]),a=bi(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=Ei(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=Ei(n);return K.useEffect(function(){if(o.elements){var e=Mi(n,l,[`clientSecret`,`fonts`]);e&&o.elements.update(e)}},[n,l,o.elements]),K.useEffect(function(){Ii(o.stripe)},[o.stripe]),K.createElement(Li.Provider,{value:o},r)};zi.propTypes={stripe:X.default.any,options:X.default.object};var Bi=function(e){return Ri(K.useContext(Li),e)},Vi=function(e){var t=e.children;return t(Bi(`mounts <ElementsConsumer>`))};Vi.propTypes={children:X.default.func.isRequired};var Hi=K.createContext(null);Hi.displayName=`CheckoutContext`;var Ui=function(e){var t=K.useContext(Hi),n=K.useContext(Li);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 Ri(n,e)},Wi=[`mode`],Gi=function(e){return e.charAt(0).toUpperCase()+e.slice(1)},Q=function(e,t,n){var r=`${Gi(e)}Element`,i=t?function(e){Ui(`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=Ui(`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=bi(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=yi(o,Wi);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=Ei(o);return K.useEffect(function(){if(A.current){var e=Mi(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`,Ki=K.createContext(null);Ki.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 qi=`dahlia`,Ji=`https://js.stripe.com`,Yi=`${Ji}/${qi}/stripe.js`,Xi=/^https:\/\/js\.stripe\.com\/v3\/?(\?.*)?$/,Zi=/^https:\/\/js\.stripe\.com\/(v3|[a-z]+)\/stripe\.js(\?.*)?$/,Qi=`loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used`,$i=function(e){return Xi.test(e)||Zi.test(e)},ea=function(){for(var e=document.querySelectorAll(`script[src^="${Ji}"]`),t=0;t<e.length;t++){var n=e[t];if($i(n.src))return n}return null},ta=function(e){var t=e&&!e.advancedFraudSignals?`?advancedFraudSignals=false`:``,n=document.createElement(`script`);n.src=`${Yi}${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},na=null,ra=null,ia=null,aa=function(e){return function(t){e(Error(`Failed to load Stripe.js`,{cause:t}))}},oa=function(e,t){return function(){window.Stripe?e(window.Stripe):t(Error(`Stripe.js not available`))}},sa=function(e){return na===null?(na=new Promise(function(t,n){if(typeof window>`u`||typeof document>`u`){t(null);return}if(window.Stripe&&e&&console.warn(Qi),window.Stripe){t(window.Stripe);return}try{var r=ea();if(r&&e)console.warn(Qi);else if(!r)r=ta(e);else if(r&&ia!==null&&ra!==null){var i;r.removeEventListener(`load`,ia),r.removeEventListener(`error`,ra),(i=r.parentNode)==null||i.removeChild(r),r=ta(e)}ia=oa(t,n),ra=aa(n),r.addEventListener(`load`,ia),r.addEventListener(`error`,ra)}catch(e){n(e);return}}),na.catch(function(e){return na=null,Promise.reject(e)})):na},ca,la=!1,ua=function(){return ca||(ca=sa(null).catch(function(e){return ca=null,Promise.reject(e)}),ca)};Promise.resolve().then(function(){return ua()}).catch(function(e){la||console.warn(e)});function da(){return typeof document<`u`&&document.documentElement.classList.contains(`dark`)?{theme:`night`}:{theme:`stripe`}}function fa({open:e,onClose:t,onSavedOptimistic:n}){let r=p(gt()),{mutate:i,reset:a}=r;return(0,K.useEffect)(()=>{e||a()},[e,i,a]),(0,K.useMemo)(()=>da(),[r.data?.client_secret??null]),(0,q.jsx)(W.Root,{open:e,onOpenChange:e=>{e||t()},children:(0,q.jsxs)(W.Content,{size:`sm`,children:[(0,q.jsx)(W.Header,{children:(0,q.jsx)(W.Title,{children:`Save Payment Method`})}),(0,q.jsx)(W.Body,{className:`min-h-[260px]`,children:(0,q.jsx)(pa,{})})]})})}function pa(){return(0,K.useEffect)(()=>{console.warn(`[AutoTopUpPaymentMethodModal] VITE_STRIPE_PUBLISHABLE_KEY is not set; the payment-method modal cannot mount Stripe Elements.`)},[]),(0,q.jsx)(H,{tone:`error`,children:`Payment method setup is currently unavailable. Please try again later.`})}var ma={visa:`Visa`,mastercard:`Mastercard`,amex:`Amex`,discover:`Discover`,diners:`Diners Club`,jcb:`JCB`,unionpay:`UnionPay`};function ha(e){return ma[e.toLowerCase()]??e}function ga({brand:e,last4:t,onUpdateCard:n,onRemove:r,removing:a=!1}){return(0,q.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,q.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,q.jsx)(we,{"aria-hidden":!0,className:`h-4 w-4 shrink-0 text-[var(--content-default)]`}),(0,q.jsxs)(`div`,{className:`min-w-0`,children:[(0,q.jsx)(h,{as:`p`,variant:`body-medium-default`,className:`truncate text-[var(--content-default)]`,children:e?ha(e):`Saved card`}),t!=null&&(0,q.jsxs)(h,{as:`p`,variant:`body-small-default`,className:`truncate text-[var(--content-tertiary)]`,children:[`Ending in `,t]})]})]}),(0,q.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[(0,q.jsx)(i,{variant:`outlined`,onClick:n,"data-testid":`payment-method-update`,children:`Update Card`}),(0,q.jsx)(i,{variant:`dangerOutline`,onClick:r,disabled:a,"data-testid":`payment-method-remove`,children:a?`Removing…`:`Remove`})]})]})}function _a(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 va(e){if(!e)return``;let t=parseFloat(e);return Number.isFinite(t)?String(Math.trunc(t)):``}var ya={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 ba({testId:e,children:t}){return(0,q.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 xa(){let e=u(),t=d(ct()),n=d(Pt()),r=p(vt()),a=p(ht()),o=p(Bt()),[c,l]=s(),f=(0,K.useRef)(null),[m,g]=(0,K.useState)(`view`),[_,v]=(0,K.useState)(!1),[y,b]=(0,K.useState)(!1),[x,S]=(0,K.useState)(!1),[C,w]=(0,K.useState)(!1),[T,D]=(0,K.useState)(!1),[O,k]=(0,K.useState)(!1);(0,K.useEffect)(()=>{C&&t.data?.has_payment_method&&w(!1)},[C,t.data?.has_payment_method]);let A=()=>{r.reset(),a.reset(),g(`form`)},j=e=>{if(v(!0),!e.has_payment_method||e.disabled_due_to_repeated_failures===!0){w(!0),D(!1);return}w(!1),A()},M=c.get(`configure_top_up`)===`1`;if((0,K.useEffect)(()=>{if(!M||t.data==null)return;let e=new URLSearchParams(c);e.delete(`configure_top_up`),l(e,{replace:!0});let n=t.data;if(n.enabled===!0)return;j(n);let r=typeof window<`u`&&window.matchMedia?.(`(prefers-reduced-motion: reduce)`).matches===!0;f.current?.scrollIntoView({behavior:r?`auto`:`smooth`,block:`center`})},[M,t.data]),t.isLoading)return(0,q.jsx)(`div`,{"data-testid":`auto-top-up-card`,children:(0,q.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Loading…`})});if(t.isError||!t.data)return(0,q.jsx)(`div`,{"data-testid":`auto-top-up-card`,children:(0,q.jsx)(H,{tone:`error`,children:`Failed to load auto top-up configuration.`})});let N=t.data,P=N.enabled===!0,ee=N.disabled_due_to_repeated_failures===!0&&!P,F=()=>{g(`view`),v(!1)},te=()=>{a.reset(),b(!1)},ne=t=>{r.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=>{dt(e,void 0,e=>({...t,payment_method_brand:e?.payment_method_brand??null,payment_method_last4:e?.payment_method_last4??null})),e.invalidateQueries({queryKey:_t()}),P||(e.invalidateQueries({queryKey:ft()}),e.invalidateQueries({queryKey:Rt()})),F()}})},re=()=>{a.mutate({},{onSuccess:()=>{dt(e,void 0,e=>({...ya,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})),b(!1),g(`view`),v(!1)}})},ie=()=>{o.mutate({},{onSuccess:()=>{dt(e,void 0,{...N,enabled:!1,has_payment_method:!1,payment_method_brand:null,payment_method_last4:null}),e.invalidateQueries({queryKey:_t()}),S(!1),F()},onError:()=>{S(!1)}})},ae=e=>{if(e&&!P){j(N);return}if(!e&&!P&&_){w(!1),F();return}!e&&P&&b(!0)},oe=async()=>{let t=Date.now(),n=N.stripe_payment_method_updated_at??null;try{await e.invalidateQueries({queryKey:_t()})}catch{}for(;Date.now()-t<2e4;){try{let t=await e.fetchQuery(ct());if(t.has_payment_method&&t.stripe_payment_method_updated_at!==n)break}catch{}await new Promise(e=>setTimeout(e,1500))}w(!1),_&&A()},se=m===`form`,I=_a(r.error),L=r.isError&&Object.keys(I).length===0,ce=P||_,le=n.data!=null&&n.data.daily_credit_limit_usd==null;return(0,q.jsxs)(`div`,{ref:f,"data-testid":`auto-top-up-card`,children:[(0,q.jsx)(`div`,{className:`flex items-center justify-between gap-4`,children:(0,q.jsx)(Pe,{checked:ce,onChange:ae,label:`Enable Extra Usage`})}),N.has_payment_method&&(0,q.jsx)(`div`,{className:`mt-3`,children:(0,q.jsx)(ga,{brand:N.payment_method_brand,last4:N.payment_method_last4,onUpdateCard:()=>k(!0),onRemove:()=>S(!0),removing:o.isPending})}),P&&!se&&(0,q.jsxs)(`div`,{className:`mt-3 flex w-full items-center gap-2`,children:[(0,q.jsxs)(ba,{testId:`auto-top-up-summary`,children:[(0,q.jsx)(E,{className:`h-3.5 w-3.5 shrink-0 text-[var(--content-default)]`,"aria-hidden":`true`}),(0,q.jsxs)(h,{variant:`body-medium-default`,className:`truncate text-[var(--content-default)]`,children:[`Add `,B(N.amount_usd),` when balance falls under`,` `,B(N.threshold_usd)]})]}),N.monthly_cap_usd!=null&&(0,q.jsx)(ba,{testId:`auto-top-up-cap-progress`,children:(0,q.jsxs)(h,{variant:`body-medium-default`,className:`truncate text-[var(--content-default)]`,children:[(0,q.jsxs)(`span`,{children:[B(N.current_month_credits_purchased_usd),` `]}),(0,q.jsxs)(`span`,{className:`text-[var(--content-tertiary)]`,children:[`/ `,B(N.monthly_cap_usd),` this month`]})]})}),(0,q.jsx)(i,{variant:`outlined`,onClick:A,"data-testid":`auto-top-up-edit-button`,className:`shrink-0`,children:`Adjust`})]}),ee&&(0,q.jsx)(H,{tone:`warning`,className:`mt-3`,"data-testid":`auto-top-up-declined-cutoff`,actions:(0,q.jsx)(i,{variant:`outlined`,onClick:()=>k(!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,q.jsx)(`div`,{className:`grid transition-[grid-template-rows] duration-200 ease-in-out`,style:{gridTemplateRows:C&&!ee?`1fr`:`0fr`},children:(0,q.jsx)(`div`,{className:`overflow-hidden`,children:(0,q.jsxs)(`div`,{className:`mt-3 flex flex-col gap-3`,children:[!T&&(0,q.jsxs)(`div`,{className:`flex h-8 items-center justify-between gap-3 rounded-lg bg-[var(--system-mid-weak)] px-2`,children:[(0,q.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,q.jsx)(De,{className:`h-4 w-4 shrink-0 text-[var(--system-mid-strong)]`,"aria-hidden":`true`}),(0,q.jsx)(h,{variant:`body-medium-default`,className:`truncate text-[var(--system-mid-strong)]`,children:`Extra usage requires you to connect a credit card.`})]}),(0,q.jsx)(`button`,{type:`button`,"aria-label":`Dismiss`,onClick:()=>D(!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,q.jsx)(je,{className:`h-2.5 w-2.5`,strokeWidth:2,"aria-hidden":`true`})})]}),(0,q.jsx)(i,{variant:`primary`,onClick:()=>k(!0),"data-testid":`auto-top-up-add-pm-button`,className:`self-start`,children:`Add a Credit Card`})]})})}),L&&(0,q.jsx)(H,{tone:`error`,className:`mt-4`,"data-testid":`auto-top-up-update-error`,children:`Failed to save automatic top-ups. Please try again.`}),a.isError&&(0,q.jsx)(H,{tone:`error`,className:`mt-4`,"data-testid":`auto-top-up-disable-error`,children:`Failed to disable automatic top-ups. Please try again.`}),o.isError&&(0,q.jsx)(H,{tone:`error`,className:`mt-4`,"data-testid":`auto-top-up-remove-error`,children:`Failed to remove the payment method. Please try again.`}),se&&(0,q.jsx)(di,{initialValues:P?{threshold_usd:va(N.threshold_usd),amount_usd:va(N.amount_usd),monthly_cap_usd:va(N.monthly_cap_usd)}:void 0,submitting:r.isPending,serverErrors:I,showDefaultDailyLimitNote:!P&&le,onCancel:F,onSave:ne}),(P||se)&&(0,q.jsx)(H,{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,q.jsx)(ai,{open:y,confirming:a.isPending,onCancel:te,onConfirm:re}),(0,q.jsx)(Fe,{open:x,title:`Remove payment method?`,message:`Removing your card will turn off Extra Usage.`,confirmLabel:o.isPending?`Removing…`:`Remove`,isPending:o.isPending,cancelLabel:`Keep card`,destructive:!0,onConfirm:ie,onCancel:()=>S(!1)}),(0,q.jsx)(fa,{open:O,onClose:()=>k(!1),onSavedOptimistic:oe})]})}function Sa(e,t){let[n]=(0,K.useState)(()=>window.location.hash===`#${e}`),[r,i]=(0,K.useState)(!1);(0,K.useEffect)(()=>{if(!n||r||!t)return;let a=document.getElementById(e);if(!a)return;i(!0);let o=window.matchMedia(`(prefers-reduced-motion: reduce)`).matches;a.scrollIntoView({behavior:o?`auto`:`smooth`,block:`start`})},[n,r,t,e])}var Ca=`daily-credit-limit`;function wa(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 Ta(){let e=u(),t=d(Pt()),n=d(bt()),r=d(ct()),a=p(mt()),o=ve();Sa(Ca,!t.isLoading&&!n.isLoading);let[s,c]=(0,K.useState)(null),[l,f]=(0,K.useState)(!1),[m,h]=(0,K.useState)(!1);if(t.isLoading)return(0,q.jsx)(`div`,{"data-testid":`daily-credit-limit-card`,children:(0,q.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Loading…`})});if(t.isError||!t.data)return(0,q.jsx)(`div`,{"data-testid":`daily-credit-limit-card`,children:(0,q.jsx)(H,{tone:`error`,children:`Failed to load daily credit limit settings.`})});let g=t.data,_=g.daily_credit_limit_usd!=null,v=_||m,y=s??g.daily_credit_limit_usd??``,b=wa(y),x=n.data,S=x?.daily_spend_usd??g.current_day_spent_usd,C=x?.daily_limit_reached===!0,w=g.daily_limit_snoozed===!0||x?.daily_limit_snoozed===!0,T=xe(),E=r.data?.enabled===!0&&!r.isError,D=e=>{c(e.target.value)},O=t=>{a.mutate({body:{daily_credit_limit_usd:t}},{onSuccess:n=>{yt(e,void 0,n),e.invalidateQueries({queryKey:ft()}),e.invalidateQueries({queryKey:Rt()}),c(null),f(!1),t===null&&h(!1)}})},k=e=>{if(e){h(!0);return}_&&E||(h(!1),c(null),f(!1),_&&O(null))},A=()=>{f(!0),!b&&O(parseFloat(y.trim()).toFixed(2))},j=_a(a.error).daily_credit_limit_usd??(a.isError?`Failed to save daily credit limit. Please try again.`:void 0),M=l?b:void 0;return(0,q.jsxs)(`div`,{"data-testid":`daily-credit-limit-card`,children:[(0,q.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,q.jsx)(Pe,{checked:v,onChange:k,disabled:a.isPending||_&&E,label:`Set a daily credit limit`}),E&&(0,q.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,"data-testid":`daily-credit-limit-required-note`,children:`A daily credit limit is required while automatic top-ups are enabled.`}),v&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(`div`,{className:`flex flex-wrap items-start gap-3`,children:[(0,q.jsx)(`div`,{className:`w-60 max-w-full`,children:(0,q.jsx)(U,{type:`number`,step:`0.01`,min:`1`,label:`Stop spending Vellum credits after`,helperText:`Resets daily at ${T}.`,placeholder:`0.00`,value:y,onChange:D,onBlur:()=>f(!0),errorText:M,"data-testid":`daily-credit-limit-input`,fullWidth:!0})}),(0,q.jsx)(`div`,{className:`flex shrink-0 items-center gap-2 pt-[18px]`,children:(0,q.jsx)(i,{variant:`primary`,onClick:A,disabled:a.isPending,"data-testid":`daily-credit-limit-save-button`,children:`Save`})})]}),_&&g.daily_credit_limit_usd!=null&&(0,q.jsxs)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,"data-testid":`daily-credit-limit-progress`,children:[Ce(S),` of`,` `,Ce(g.daily_credit_limit_usd),` spent today`]}),w&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(H,{tone:`info`,"data-testid":`daily-credit-limit-skipped`,actions:(0,q.jsx)(i,{variant:`outlined`,size:`compact`,onClick:()=>o.mutate({}),disabled:o.isPending,"data-testid":`daily-credit-limit-resume-button`,children:`Resume now`}),children:[`Skipped for today. This limit resumes at `,T,`.`]}),o.isError&&(0,q.jsx)(H,{tone:`error`,"data-testid":`daily-credit-limit-resume-error`,children:`Failed to resume the daily credit limit. Please try again.`})]}),C&&(0,q.jsxs)(H,{tone:`warning`,"data-testid":`daily-credit-limit-reached`,children:[`Today's Vellum credit spend has reached this limit. Generation resumes at `,T,` or when you raise the limit.`]})]})]}),(0,q.jsxs)(`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 daily at `,T,`.`]}),j!=null&&(0,q.jsx)(H,{tone:`error`,className:`mt-4`,"data-testid":`daily-credit-limit-update-error`,children:j})]})}function Ea(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 Da(){let e=u(),t=d(Ct()),n=p(Ft()),[r,a]=(0,K.useState)(null),[o,s]=(0,K.useState)(!1);if(t.isLoading)return(0,q.jsx)(`div`,{"data-testid":`low-balance-alert-card`,children:(0,q.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Loading…`})});if(t.isError||!t.data)return(0,q.jsx)(`div`,{"data-testid":`low-balance-alert-card`,children:(0,q.jsx)(H,{tone:`error`,children:`Failed to load low-balance alert settings.`})});let c=t.data,l=r??c.threshold_usd??``,f=Ea(l),m=e=>{a(e.target.value)},h=t=>{n.mutate({body:{threshold_usd:t}},{onSuccess:t=>{jt(e,void 0,t),e.invalidateQueries({queryKey:Lt()}),a(null),s(!1)}})},g=()=>{if(s(!0),f)return;let e=l.trim();h(e===``?null:parseFloat(e).toFixed(2))},_=()=>{a(``),s(!1),h(null)},v=n.isError,y=o?f:void 0;return(0,q.jsxs)(`div`,{"data-testid":`low-balance-alert-card`,children:[(0,q.jsxs)(`div`,{className:`flex flex-wrap items-start gap-3`,children:[(0,q.jsx)(`div`,{className:`w-60 max-w-full`,children:(0,q.jsx)(U,{type:`number`,step:`0.01`,label:`Alert me when my balance drops below`,helperText:`Default is ${Ce(c.default_threshold_usd)} when unset`,placeholder:c.effective_threshold_usd,value:l,onChange:m,onBlur:()=>s(!0),errorText:y,"data-testid":`low-balance-alert-input`,fullWidth:!0})}),(0,q.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 pt-[18px]`,children:[c.threshold_usd!=null&&(0,q.jsx)(i,{variant:`outlined`,onClick:_,disabled:n.isPending,"data-testid":`low-balance-alert-reset-button`,children:`Reset to default`}),(0,q.jsx)(i,{variant:`primary`,onClick:g,disabled:n.isPending,"data-testid":`low-balance-alert-save-button`,children:`Save`})]})]}),v&&(0,q.jsx)(H,{tone:`error`,className:`mt-4`,"data-testid":`low-balance-alert-update-error`,children:`Failed to save low-balance alert. Please try again.`})]})}function Oa(e){return e.replace(/\.00$/,``)}function ka({icon:e,value:t,label:n}){return(0,q.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,q.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,q.jsx)(h,{variant:`body-medium-default`,as:`span`,className:`text-[var(--content-default)]`,children:t}),(0,q.jsx)(h,{variant:`body-small-default`,as:`span`,className:`min-w-0 truncate text-[var(--content-tertiary)]`,children:n})]})}function Aa(){let{data:e,isLoading:t,isError:n}=d(lt()),[r,a]=(0,K.useState)(!1),o=(0,K.useCallback)(e=>{qt(e,{successMessage:`Copied to clipboard!`,errorMessage:`Couldn't copy the referral link.`,onCopied:()=>{a(!0),setTimeout(()=>a(!1),2e3)}})},[]),s=e?.is_eligible_for_credits===!1;return(0,q.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,q.jsx)(h,{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 ${Oa(e.referrer_credit_amount)} credits when they sign up, up to ${Oa(e.earning_cap)} total.`:`Share Vellum with friends and earn credits for every signup.`}),s&&(0,q.jsx)(h,{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,q.jsxs)(`div`,{className:`flex items-center gap-2 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,q.jsx)(V,{className:`h-4 w-4 animate-spin`}),`Loading...`]}):n||!e?(0,q.jsx)(H,{tone:`error`,children:`Failed to load referral information.`}):(0,q.jsxs)(`div`,{className:`flex flex-wrap items-start gap-2`,children:[(0,q.jsx)(ka,{icon:(0,q.jsx)(E,{className:`h-3.5 w-3.5`}),value:Oa(e.total_earned),label:`Credits Earned`}),(0,q.jsx)(ka,{icon:(0,q.jsx)(Ae,{className:`h-3.5 w-3.5`}),value:e.referred_count,label:`Friends Referred`}),(0,q.jsx)(i,{variant:`outlined`,className:`shrink-0`,onClick:()=>o(e.referral_url),leftIcon:r?(0,q.jsx)(S,{className:`h-3.5 w-3.5`}):(0,q.jsx)(_,{className:`h-3.5 w-3.5`}),"data-testid":`referral-copy-button`,children:r?`Copied!`:`Share Link`})]})]})}function ja({open:e,onOpenChange:t}){return(0,q.jsx)(W.Root,{open:e,onOpenChange:t,children:(0,q.jsxs)(W.Content,{"data-testid":`referral-modal`,children:[(0,q.jsx)(W.Header,{children:(0,q.jsx)(W.Title,{children:`Earn Free Credits`})}),(0,q.jsx)(W.Body,{children:(0,q.jsx)(Aa,{})})]})})}var Ma=2e3;function Na(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 Pa(){let e=u(),{data:t,isLoading:n,isError:r}=d(bt()),a=t??null,[o,s]=(0,K.useState)(!1),[c,l]=(0,K.useState)(!1),[f,p]=(0,K.useState)(!1),m=(0,K.useRef)(0),_=(0,K.useRef)(null),v=Ot({onSuccess:()=>{e.invalidateQueries({queryKey:Rt()})},onError:()=>{m.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`&&m.current<3&&!v.isPending&&!v.isError&&!v.isSuccess&&(m.current+=1,y({}))},[a,v.isPending,v.isError,v.isSuccess,y]);let b=(0,q.jsxs)(`div`,{className:`flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between sm:gap-4`,children:[(0,q.jsxs)(`div`,{className:`min-w-0`,children:[(0,q.jsx)(h,{as:`h2`,variant:`title-medium`,className:`text-[var(--content-emphasised)]`,children:`Credit Balance`}),(0,q.jsx)(h,{as:`p`,variant:`body-medium-default`,className:`mt-2 text-[var(--content-tertiary)]`,children:`Quick overview of your balances and other things`})]}),(0,q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,q.jsx)(i,{variant:`outlined`,leftIcon:(0,q.jsx)(E,{className:`h-4 w-4`,"aria-hidden":!0}),onClick:()=>l(!0),"data-testid":`earn-credits-button`,children:`Earn Free Credits`}),(0,q.jsx)(i,{variant:`primary`,onClick:()=>s(!0),disabled:n||!a,"data-testid":`add-credits-button`,children:`Add Credits`})]})]});return(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(g,{padding:`md`,children:[b,n?(0,q.jsxs)(`div`,{className:`mt-4 flex items-center gap-2 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,q.jsx)(V,{className:`h-4 w-4 animate-spin`}),`Loading billing summary...`]}):r?(0,q.jsx)(`div`,{className:`mt-4`,children:(0,q.jsx)(H,{tone:`error`,children:`Failed to load billing summary. Please try again later.`})}):a?(0,q.jsxs)(q.Fragment,{children:[(()=>{if(!a)return null;let e=parseFloat(a.effective_balance)<0;return(0,q.jsx)(`div`,{className:`mt-4`,children:(0,q.jsx)(Me,{icon:(0,q.jsx)(E,{className:`h-4 w-4`,"aria-hidden":!0}),value:(0,q.jsx)(`span`,{"data-testid":`effective-balance`,children:Na(a.effective_balance)}),label:`Balance`,tone:e?`negative`:`default`})})})(),a.is_degraded&&(0,q.jsx)(`div`,{className:`mt-4`,children:(0,q.jsx)(H,{tone:`warning`,children:`Pending charges could not be calculated. The balance shown may be incomplete.`})})]}):(0,q.jsx)(`p`,{className:`mt-4 text-body-medium-lighter text-[var(--content-tertiary)]`,children:`No billing information available.`}),(0,q.jsx)(`div`,{className:`mt-6`,children:(0,q.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,q.jsx)(Pe,{checked:f,onChange:p,label:`Custom low balance alert`}),f&&(0,q.jsx)(Da,{})]})}),(0,q.jsx)(`div`,{className:`mt-6 border-t border-[var(--border-base)] pt-6`,children:(0,q.jsx)(xa,{})}),(0,q.jsx)(`div`,{id:Ca,className:`mt-6 scroll-mt-4 border-t border-[var(--border-base)] pt-6`,children:(0,q.jsx)(Ta,{})})]}),(0,q.jsx)($t,{open:o,onOpenChange:s}),(0,q.jsx)(ja,{open:c,onOpenChange:l})]})}var Fa=1e3,Ia=15e3,La=3e3,Ra=45e3,za=`billing-portal-return`;function Ba(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?ue(t.cancel_at):`the end of your billing period`}.`}:n&&!r?{kind:`success`,message:`Pro plan reactivated.`}:{kind:`info`,message:`Subscription updated.`}}function Va(){let[e]=s(),t=o(),n=u(),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=oe(),o=At(),s=Et(),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<Ia&&(await new Promise(e=>setTimeout(e,Fa)),!i.current);)e=await l();return e}return(async()=>{try{let e=await u();if(i.current)return;let{kind:t,message:n}=Ba(a,e);t===`success`?G.success(n,{id:za}):G.info(n,{id:za})}catch{if(i.current)return;G.info(`Subscription updated.`,{id:za})}finally{if(!i.current){z(),t(qe.settings.usageBilling,{replace:!0});let e=Date.now();r.current!==null&&clearInterval(r.current),r.current=setInterval(()=>{if(Date.now()-e>=Ra){r.current!==null&&(clearInterval(r.current),r.current=null);return}l().catch(e=>{console.error(`billing poll error:`,e)})},La)}}})(),()=>{i.current=!0}},[e,t,n]),null}var Ha=[7,30,90],Ua=Ha.map(e=>({value:`${e}`,label:`Last ${e} days`}));function Wa(e,t=Wt()){let{fromDate:n,toDate:r}=rn(e,t);return{from:n,to:r}}function Ga({value:e,onChange:t}){return(0,q.jsx)(Ie,{options:Ua,value:`${Ha.find(t=>t===e)??30}`,onChange:e=>t(Number(e)),"aria-label":`Date range`})}var Ka={strokeDasharray:`3 3`,stroke:`var(--border-subtle)`,strokeOpacity:.4},qa={fontSize:12,fill:`var(--content-tertiary)`},Ja={stroke:`var(--border-subtle)`,strokeOpacity:.4},Ya=[`#3b82f6`,`#10b981`,`#f59e0b`,`#ef4444`,`#8b5cf6`,`#06b6d4`,`#ec4899`,`#84cc16`];function Xa({item:e}){return(0,q.jsxs)(`div`,{className:`flex items-center gap-2 py-0.5 text-[13px] text-[var(--content-default)]`,children:[(0,q.jsx)(`span`,{className:`h-2 w-2 shrink-0 rounded-full`,style:{backgroundColor:e.color}}),(0,q.jsx)(`span`,{children:e.label}),(0,q.jsx)(`span`,{className:`ml-auto tabular-nums`,children:e.value})]})}function Za({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,q.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,q.jsx)(`div`,{className:`mb-1.5 text-xs font-medium text-[var(--content-secondary)]`,children:(c??tn)(String(r))}),u&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(Xa,{item:u}),d.length>0&&(0,q.jsx)(`div`,{className:`my-1.5 border-t border-[var(--border-subtle)]`})]}),d.map(e=>(0,q.jsx)(Xa,{item:e},e.key)),s&&(0,q.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,q.jsxs)(`span`,{children:[`Total: `,o(f)]})})]})}function Qa(e,t){let[n,r]=e,[i,a]=t,o=r-n||1;return e=>i+(e-n)/o*(a-i)}function $a(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 eo(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 to(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:$a(n/r)*r}function no(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 ro(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 io(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 ao=40,oo={fontSize:11,fill:`var(--content-tertiary)`},so={runtime_proxy_api:`#3b82f6`,oauth_proxy:`#f59e0b`};function co(e,t){return so[e]??Ya[t%Ya.length]??`#6b7280`}function lo(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 uo({stackKeys:e,labelMap:t}){return(0,q.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,q.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,q.jsx)(`span`,{className:`inline-block h-2.5 w-2.5 rounded-sm`,style:{backgroundColor:co(e,n)}}),(0,q.jsx)(`span`,{className:`text-[var(--content-quiet)]`,children:t[e]??e})]},e))})}var fo=350,po={top:8,right:4,bottom:32,left:0},mo=.2,ho=5,go=12,_o=200;function vo({buckets:e,metric:t,onBarClick:n}){let r=Ut(),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)(()=>lo(e,t),[e,t]),u=(0,K.useMemo)(()=>{let e={};for(let t=0;t<c.length;t++)e[c[t]]=co(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?ao:56,h=r?oo:qa,g=po.left+m,_=Math.max(0,a-g-po.right),v=po.top,y=fo-po.top-po.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)(()=>to(b,{integerOnly:x,tickCount:ho}),[b,x]),C=(0,K.useMemo)(()=>no(S,ho),[S]),w=(0,K.useCallback)(e=>{if(t===`spend`){if(e===0)return`$0`;let t=S/ho,n=Math.max(t<1?2:0,eo(t));return`$${e.toLocaleString(`en-US`,{minimumFractionDigits:n,maximumFractionDigits:n})}`}return e.toLocaleString(`en-US`)},[t,S]),T=(0,K.useMemo)(()=>Qa([0,S],[v+y,v]),[S,v,y]),E=s.length,D=E>0?_/E:0,O=D*(1-mo),k=(D-O)/2,A=(0,K.useMemo)(()=>io(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:co(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),ee=e=>{n&&n(e)},F=f?c.filter(e=>(Number(s[f.datumIndex]?.[e])||0)>0).map(e=>({dataKey:e,value:Number(s[f.datumIndex]?.[e])||0})):[],te={left:f?Math.max(0,Math.min(f.x+go,a-_o)):0,top:f?f.y-go:0,visibility:f?`visible`:`hidden`};return(0,q.jsxs)(`div`,{onMouseDown:e=>e.preventDefault(),children:[(0,q.jsx)(`div`,{ref:i,className:`relative w-full`,style:{height:fo},children:j?(0,q.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,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(`svg`,{width:a,height:fo,className:`block`,children:[C.map(e=>(0,q.jsx)(`line`,{x1:g,x2:g+_,y1:T(e),y2:T(e),stroke:Ka.stroke,strokeOpacity:Ka.strokeOpacity,strokeDasharray:Ka.strokeDasharray},e)),(0,q.jsx)(`line`,{x1:g,x2:g+_,y1:v+y,y2:v+y,stroke:Ja.stroke,strokeOpacity:Ja.strokeOpacity}),C.map(e=>(0,q.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,q.jsx)(`text`,{x:g+e*D+D/2,y:v+y+20,textAnchor:`middle`,fontSize:h.fontSize,fill:h.fill,children:tn(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:()=>ee(t.key)};return t.isLast?(0,q.jsx)(`path`,{...i,d:ro(t.x,t.y,O,t.h,3)}):(0,q.jsx)(`rect`,{...i,x:t.x,y:t.y,width:O,height:t.h})}))]}),(0,q.jsx)(`div`,{className:`pointer-events-none absolute z-[1] max-w-[calc(100vw-32px)] -translate-y-full`,style:te,children:(0,q.jsx)(Za,{active:!!f,payload:F,hoveredKey:f?.hoveredKey??void 0,label:f?String(s[f.datumIndex]?.date):``,labelMap:l,colorMap:u,formatValue:d})})]}):null}),!j&&(0,q.jsx)(uo,{stackKeys:c,labelMap:l})]})}function yo(e){if(e)return e.usageSource===`oauth_proxy`?`oauth_provider`:yn(e.llmDimension??`model`)}function bo(e,t=Wt()){return{from:e.dateRange.from,to:e.dateRange.to,tz:t,...e.drilldown?{usage_source:e.drilldown.usageSource,group_by:yo(e.drilldown)}:{}}}function xo(e,t=Wt()){return{from:e.dateRange.from,to:e.dateRange.to,tz:t,...e.drilldown?{usage_source:e.drilldown.usageSource}:{}}}function So(e,t,n){return e===`full`&&t!==`gated`&&n}function Co(e){let t=Gt(),n=So(Je({platformHostedOnly:!0}),Je(),Xe()),r=d({...St({query:bo(e,t)}),enabled:n}),i=d({...zt({query:xo(e,t)}),enabled:n});return{series:r.data,totals:i.data,isLoading:r.isLoading||i.isLoading,isError:r.isError||i.isError}}var wo=[{value:`spend`,label:`Spend ($)`},{value:`events`,label:`Events`}];function To(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 Eo(e){return e===void 0?`—`:e.toLocaleString(`en-US`)}function Do(){let e=Gt(),[t,n]=(0,K.useState)(30),r=(0,K.useMemo)(()=>Wa(t,e),[t,e]),[i,a]=(0,K.useState)(null),[o,s]=(0,K.useState)(`spend`),{series:c,totals:l,isLoading:u,isError:d}=Co({dateRange:r,drilldown:i,setDrilldown:a}),f=i?void 0:e=>{let t={runtime_proxy_api:`runtime_proxy`,oauth_proxy:`oauth_proxy`}[e];t&&a({usageSource:t,...t===`runtime_proxy`?{llmDimension:mn}:{}})};return(0,q.jsx)(g,{padding:`md`,children:(0,q.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,q.jsxs)(`div`,{className:`flex flex-wrap items-start justify-between gap-3`,children:[(0,q.jsxs)(`div`,{children:[(0,q.jsx)(h,{as:`h2`,variant:`title-medium`,className:`text-[var(--content-default)]`,children:`Credit Usage`}),(0,q.jsx)(h,{as:`p`,variant:`body-small-default`,className:`mt-2 text-[var(--content-tertiary)]`,children:`Overview of your spending habits.`})]}),(0,q.jsxs)(`div`,{className:`flex flex-wrap items-center justify-end gap-2`,children:[(0,q.jsx)(Ga,{value:t,onChange:n}),(0,q.jsx)(`div`,{className:`w-44`,children:(0,q.jsx)(v,{items:wo,value:o,onChange:s,ariaLabel:`Chart metric`})})]})]}),(0,q.jsxs)(`div`,{className:`grid grid-cols-1 gap-2 sm:grid-cols-2`,children:[(0,q.jsx)(Me,{icon:(0,q.jsx)(E,{className:`h-4 w-4`,"aria-hidden":!0}),value:u?(0,q.jsx)(V,{className:`h-4 w-4 animate-spin`,"aria-hidden":!0}):To(l?.total_usd),label:`Spend`}),(0,q.jsx)(Me,{icon:(0,q.jsx)(_e,{className:`h-4 w-4`,"aria-hidden":!0}),value:u?(0,q.jsx)(V,{className:`h-4 w-4 animate-spin`,"aria-hidden":!0}):Eo(l?.event_count),label:`Events`})]}),i&&(0,q.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[(0,q.jsx)(`div`,{children:(0,q.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:()=>a(null),children:[(0,q.jsx)(x,{className:`h-3.5 w-3.5`}),(0,q.jsx)(`span`,{children:`Back to all usage`}),(0,q.jsx)(`span`,{className:`text-[var(--content-tertiary)]`,children:`/`}),(0,q.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-default)]`,children:i.usageSource===`runtime_proxy`?`LLM Spend`:`OAuth Spend`})]})}),i.usageSource===`runtime_proxy`&&(0,q.jsx)(`div`,{className:`w-56`,children:(0,q.jsx)(v,{items:gn,value:i.llmDimension??`model`,onChange:e=>a({usageSource:`runtime_proxy`,llmDimension:e}),ariaLabel:`LLM spend dimension`})})]}),u?(0,q.jsx)(`div`,{className:`flex h-[345px] items-center justify-center rounded-xl bg-[var(--surface-base)]`,children:(0,q.jsx)(V,{className:`h-6 w-6 animate-spin text-[var(--content-tertiary)]`})}):d?(0,q.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.`}):c?(0,q.jsx)(`div`,{className:`rounded-xl bg-[var(--surface-base)] p-3`,children:(0,q.jsx)(vo,{buckets:c.buckets,metric:o,onBarClick:f})}):null]})})}function Oo(){let{data:e}=d(At()),t=te((0,K.useMemo)(()=>ae(e),[e]));if(!e||e.plan_id!==`pro`||e.status===`canceled`||!e.cancel_at_period_end&&!e.cancel_at)return null;let n=se(e);return n?(0,q.jsx)(H,{tone:`info`,title:`Your Pro plan will end on ${ue(n)}.`,actions:(0,q.jsx)(i,{variant:`outlined`,size:`compact`,onClick:()=>t.mutate({}),disabled:t.isPending,leftIcon:t.isPending?(0,q.jsx)(V,{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 ko=new Set([`BIF`,`CLP`,`DJF`,`GNF`,`JPY`,`KMF`,`KRW`,`MGA`,`PYG`,`RWF`,`VND`,`VUV`,`XAF`,`XOF`,`XPF`]),Ao=new Set([`BHD`,`JOD`,`KWD`,`OMR`,`TND`]);function jo(e){return ko.has(e)?0:Ao.has(e)?3:2}var Mo={invoices:[],has_more:!1},No=4,Po=`text-body-small-default [--vbtn-fg:var(--content-tertiary)] hover:[--vbtn-fg:var(--content-secondary)]`;function Fo(e){switch(e){case`paid`:return`positive`;case`open`:return`warning`;case`uncollectible`:return`negative`;default:return`neutral`}}function Io(e,t){let n=t.toUpperCase(),r=jo(n);try{return new Intl.NumberFormat(void 0,{style:`currency`,currency:n,minimumFractionDigits:r,maximumFractionDigits:r}).format(e/10**r)}catch{return`${(e/100).toFixed(2)} ${n}`}}function Lo(e){return Xt(new Date(e*1e3),{alwaysShowYear:!0})}function Ro(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 zo(){let[e,t]=(0,K.useState)(!1),[r,o]=(0,K.useState)(!1),[s,c]=(0,K.useState)(!1),[l,d]=(0,K.useState)(!1),p=(0,K.useRef)(0),m=u(),_=f({enabled:e,queryKey:st(),queryFn:async({signal:e,pageParam:t})=>{let{data:n,error:r,response:i}=await Ue({throwOnError:!1,signal:e,query:t?{starting_after:t}:void 0});if(i?.status===404)return Mo;if(ze(i,r,`Failed to load invoices.`),!i.ok||!n)throw Re(r,i);return n},initialPageParam:void 0,getNextPageParam:e=>e.has_more?e.invoices.at(-1)?.id:void 0}),v=_.data?.pages.flatMap(e=>e.invoices)??[],y=r?v:v.slice(0,No),b=v.length>No,x=_.isFetchNextPageError||l,S=(r||!b)&&_.hasNextPage&&!x,T=_.isRefetching||_.isFetchingNextPage;function E(){let e=p.current;_.fetchNextPage().then(t=>{e===p.current&&d(t.isError)})}function D(){let e=p.current;_.refetch().then(t=>{if(e===p.current){if(t.isError){d(!0);return}E()}})}async function O(){c(!0);try{let{data:e,response:t}=await We({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-BpFW1c_c.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`}),G.error(`Failed to download invoices.`)}finally{c(!1)}}return(0,q.jsx)(g,{padding:`md`,children:(0,q.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,q.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,q.jsxs)(`div`,{children:[(0,q.jsx)(h,{as:`h2`,variant:`title-medium`,className:`text-[var(--content-default)]`,children:`Invoices`}),(0,q.jsx)(h,{as:`p`,variant:`body-small-default`,className:`mt-2 text-[var(--content-tertiary)]`,children:`Your billing history.`})]}),(0,q.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[e&&v.length>0&&(0,q.jsx)(i,{variant:`outlined`,leftIcon:s?(0,q.jsx)(V,{className:`animate-spin`}):(0,q.jsx)(Te,{className:`h-4 w-4`}),onClick:O,disabled:s,"data-testid":`invoices-download-all`,children:`Download all`}),(0,q.jsx)(i,{variant:`outlined`,leftIcon:e?(0,q.jsx)(w,{className:`h-4 w-4`}):(0,q.jsx)(C,{className:`h-4 w-4`}),onClick:()=>{p.current+=1,d(!1),e&&m.cancelQueries({queryKey:st()}),t(e=>!e)},"data-testid":`invoices-toggle`,children:e?`Hide invoices`:`Show invoices`})]})]}),e?_.isLoading?(0,q.jsxs)(`div`,{className:`flex items-center gap-2 py-6 text-[var(--content-tertiary)]`,children:[(0,q.jsx)(V,{className:`h-4 w-4 animate-spin`}),(0,q.jsx)(h,{as:`span`,variant:`body-small-default`,children:`Loading invoices...`})]}):_.isLoadingError?(0,q.jsx)(H,{tone:`error`,children:`Failed to load invoices.`}):v.length===0?(0,q.jsx)(h,{as:`p`,variant:`body-small-default`,className:`py-6 text-center text-[var(--content-tertiary)]`,"data-testid":`invoices-empty`,children:`No Invoices Found`}):(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`div`,{className:`overflow-x-auto`,children:(0,q.jsxs)(`table`,{className:`w-full`,"data-testid":`invoices-table`,children:[(0,q.jsx)(`thead`,{children:(0,q.jsxs)(`tr`,{className:`border-b border-[var(--border-base)] text-left`,children:[(0,q.jsx)(`th`,{className:`pb-2 pr-4 text-body-small-default text-[var(--content-tertiary)]`,children:`Date`}),(0,q.jsx)(`th`,{className:`pb-2 pr-4 text-body-small-default text-[var(--content-tertiary)]`,children:`Amount`}),(0,q.jsx)(`th`,{className:`pb-2 pr-4 text-body-small-default text-[var(--content-tertiary)]`,children:`Status`}),(0,q.jsx)(`th`,{className:`pb-2 text-body-small-default text-[var(--content-tertiary)]`,children:`Action`})]})}),(0,q.jsx)(`tbody`,{children:y.map(e=>(0,q.jsxs)(`tr`,{className:`border-b border-[var(--border-base)] last:border-0`,"data-testid":`invoice-row`,children:[(0,q.jsx)(`td`,{className:`py-3 pr-4`,children:(0,q.jsx)(h,{as:`span`,variant:`body-small-default`,className:`text-[var(--content-secondary)]`,children:Lo(e.created)})}),(0,q.jsx)(`td`,{className:`py-3 pr-4`,children:(0,q.jsx)(h,{as:`span`,variant:`body-small-default`,className:`text-[var(--content-secondary)]`,children:Io(e.amount_due,e.currency)})}),(0,q.jsx)(`td`,{className:`py-3 pr-4`,children:e.status&&(0,q.jsx)(Ne,{tone:Fo(e.status),children:e.status})}),(0,q.jsx)(`td`,{className:`py-3`,children:(0,q.jsxs)(`div`,{className:`flex items-center gap-1`,children:[e.hosted_invoice_url&&(0,q.jsx)(i,{asChild:!0,variant:`ghost`,size:`compact`,leftIcon:(0,q.jsx)(Ee,{className:`h-3.5 w-3.5`}),children:(0,q.jsx)(`a`,{href:e.hosted_invoice_url,target:`_blank`,rel:`noopener noreferrer`,children:`View`})}),e.invoice_pdf&&(0,q.jsx)(i,{variant:`ghost`,size:`compact`,iconOnly:(0,q.jsx)(Te,{className:`h-3.5 w-3.5`}),"aria-label":`Download invoice PDF`,onClick:()=>Ro(e.invoice_pdf)})]})})]},e.id))})]})}),(b||S||x)&&(0,q.jsxs)(`div`,{className:`flex flex-wrap items-center gap-4 self-start`,children:[b&&(0,q.jsx)(i,{variant:`link`,onClick:()=>o(e=>!e),className:Po,"data-testid":`invoices-show-more`,children:r?`Show less`:`Show more (${v.length-No} more)`}),S&&(0,q.jsx)(i,{variant:`link`,onClick:E,disabled:_.isFetchingNextPage,leftIcon:_.isFetchingNextPage&&(0,q.jsx)(V,{className:`h-4 w-4 animate-spin`}),className:Po,"data-testid":`invoices-load-more`,children:`Load more`}),x&&(0,q.jsxs)(`div`,{className:`flex items-center gap-2`,"data-testid":`invoices-load-more-error`,children:[(0,q.jsx)(h,{as:`span`,variant:`body-small-default`,className:`text-[color:var(--content-negative)]`,children:`Failed to load more invoices.`}),(0,q.jsx)(i,{variant:`link`,onClick:D,disabled:T,leftIcon:T&&(0,q.jsx)(V,{className:`h-4 w-4 animate-spin`}),className:Po,"data-testid":`invoices-load-more-retry`,children:`Retry`})]})]})]}):null]})})}function Bo({icon:e,label:t,multiline:n=!1}){return(0,q.jsxs)(`div`,{className:Kt(`flex items-center gap-1.5 rounded-lg bg-[var(--surface-lift)] px-2 py-1.5`,n?`min-h-8 min-w-0`:`h-8`),children:[(0,q.jsx)(e,{className:`size-[18px] shrink-0 text-[var(--content-default)]`,"aria-hidden":!0}),(0,q.jsx)(h,{as:`span`,variant:`body-medium-default`,className:Kt(`text-[var(--content-default)]`,n?`whitespace-normal`:`whitespace-nowrap`),children:t})]})}function Vo({theme:e,tierKey:t,name:n,nameTestId:r,tag:i,specs:a,footer:o,testId:s,className:c}){return(0,q.jsxs)(`div`,{"data-theme":e,"data-testid":s,className:Kt(`flex min-w-0 flex-1 flex-col gap-8 rounded-xl bg-[var(--surface-base)] px-4 py-3`,c),children:[(0,q.jsxs)(`div`,{className:`flex flex-col items-start gap-6`,children:[i,(0,q.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,q.jsx)(F,{tier:t,size:48}),(0,q.jsx)(h,{as:`span`,variant:`title-large`,className:`text-[var(--content-emphasised)]`,"data-testid":r,children:n})]})]}),a?.length?(0,q.jsx)(`div`,{className:`flex flex-col items-start gap-2`,children:a.map(e=>(0,q.jsx)(Bo,{icon:e.icon,label:e.label,multiline:e.multiline},e.label))}):null,o?(0,q.jsx)(`div`,{className:`mt-auto w-full`,children:o}):null]})}function Ho(){return(0,q.jsx)(h,{as:`h2`,variant:`title-medium`,className:`text-[var(--content-emphasised)]`,children:`Plan`})}function Uo({packages:e,currentKey:t,currentPriceCents:n,isProUser:r,canChangePackage:a,relation:o,onManage:s,onTierUpgraded:c}){let l=u(),d=p(Tt()),{changePackage:f,isPending:m}=fe(),[h,g]=(0,K.useState)(!1),[_,v]=(0,K.useState)(!1),y=be()===`light`?`dark`:`light`;me();let b=M(e,t),x=h||d.isPending||m,S=async()=>{if(!b)return;let e=await f(b.key);e&&(v(!1),e.status===`ok`?c?.():G.success(`You're already on this plan.`))},C=async()=>{if(b){if(r&&!a){s();return}if(r){v(!0);return}g(!0);try{let e=await d.mutateAsync({body:{target_plan_id:`pro`,package:b.key,confirm:!0,return_target:Qt()}});e.status===`redirect`&&e.checkout_url?(Ke({kind:`package`,packageKey:b.key}),Ve(l),at(e.checkout_url)):(await l.invalidateQueries({queryKey:Et()}),await l.invalidateQueries({queryKey:xt()}))}catch(e){G.error(ne(e,`Failed to start the upgrade checkout. Please try again.`))}finally{g(!1)}}};if(b==null||o===`switch`)return null;let w=n==null?null:b.total_price_cents-n,T=w!=null&&w>0?`Power Up for +${N(w)}/month`:`Power Up`;return(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(Vo,{theme:y,testId:`plan-tile-next`,tierKey:b.key,name:b.name,tag:(0,q.jsx)(Ne,{className:`bg-[var(--feed-digest-weak)] text-[var(--credits-accent)]`,leftIcon:(0,q.jsx)(Oe,{className:`text-[var(--credits-accent)]`,"aria-hidden":!0}),children:`Next Plan`}),specs:ee(b),footer:(0,q.jsx)(i,{variant:`primary`,fullWidth:!0,tintColor:`var(--aux-white)`,className:`h-10 border-transparent bg-[var(--system-positive-strong)] hover:bg-[var(--system-positive-strong)] hover:opacity-90 active:bg-[var(--system-positive-strong)]`,onClick:()=>void C(),disabled:x,leftIcon:x?(0,q.jsx)(V,{className:`h-4 w-4 animate-spin`}):void 0,"data-testid":`recommended-upgrade-button`,children:T})}),(0,q.jsx)(R,{open:_,relation:o,packageName:b.name,targetPackage:b,pending:x,onConfirm:()=>void S(),onCancel:()=>v(!1)})]})}function Wo({onManage:e,onTierUpgraded:t}){let n=o(),r=d(At()),a=d(Dt());if(r.isLoading||a.isLoading)return(0,q.jsxs)(g,{padding:`md`,children:[(0,q.jsx)(Ho,{}),(0,q.jsxs)(`div`,{className:`mt-4 flex items-center gap-2 text-[var(--content-tertiary)]`,children:[(0,q.jsx)(V,{className:`h-4 w-4 animate-spin`}),(0,q.jsx)(h,{as:`span`,variant:`body-small-default`,children:`Loading plan...`})]})]});let s=r.data,c=a.data?.plans,l=c?.find(e=>e.id===s?.plan_id);if(r.isError||a.isError||!s||!c||!l)return(0,q.jsx)(H,{tone:`error`,children:`Failed to load plan.`});let u=l.id===`pro`?ce(s.package):l.name??l.id,f=s.cancel_at_period_end===!0||!!s.cancel_at,p=s.status===`canceled`,m=se(s),_=!f&&!p&&s.current_period_end,v=f&&!p&&m,y=c.find(e=>e.id===`pro`)?.packages??[],b=s.package?.key??null,x=b??`free`,S=y.length>0&&(l.id===`base`||O(s.package)||de(s)),C=de(s),w=l.id===`base`||O(s.package)?`upgrade`:`switch`,T=l.id===`base`,E=s.package,D=!T&&O(E)?y.find(e=>e.key===E.key&&e.version===E.version)??null:null,k=T?re():D?ee(D):null,j=T?0:D?.total_price_cents??null,M=T?`Free Forever`:D?A(D.total_price_cents):null;return(0,q.jsx)(g,{padding:`md`,children:(0,q.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,q.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,q.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1`,children:[(0,q.jsx)(Ho,{}),_&&(0,q.jsxs)(h,{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`,` `,ue(s.current_period_end),`.`]}),v&&(0,q.jsxs)(h,{variant:`body-small-default`,as:`div`,className:`leading-snug text-[var(--system-mid-strong)]`,"data-testid":`plan-card-cancels`,children:[`Your plan ends on `,ue(m),`.`]})]}),(0,q.jsx)(i,{variant:`outlined`,onClick:S?()=>n(qe.plans):e,"data-testid":`plan-card-plans-button`,className:`shrink-0`,children:`View All Plans`})]}),(0,q.jsxs)(`div`,{className:`flex flex-col gap-2 lg:flex-row lg:items-stretch`,children:[(0,q.jsx)(Vo,{testId:`plan-tile-current`,tierKey:x,name:u,nameTestId:`plan-card-name`,tag:(0,q.jsx)(Ne,{tone:`info`,children:`Current`}),specs:k,footer:M?(0,q.jsx)(`div`,{className:`flex h-10 items-center border-t border-[var(--border-base)]`,children:(0,q.jsx)(h,{as:`span`,variant:`body-large-default`,className:`text-[var(--content-tertiary)]`,"data-testid":`plan-card-price`,children:M})}):void 0}),(0,q.jsx)(Uo,{packages:y,currentKey:b,currentPriceCents:j,isProUser:l.id!==`base`,canChangePackage:C,relation:w,onManage:e,onTierUpgraded:t})]})]})})}function Go({onCheckoutCancelled:e}){let[t]=s(),n=o(),r=u(),{t:i}=Le(`settings`);return(0,K.useEffect)(()=>{let a=t.get(`billing_status`);a&&(a===`success`?Se(r):a===`cancel`&&(G.info(t.get(`billing_context`)===`upgrade`?i(`billingStatusHandler.upgradeCancelToast`):i(`billingStatusHandler.topUpCancelToast`),{id:`billing-status`}),e()),n(qe.settings.usageBilling,{replace:!0}))},[t,n,r,e,i]),null}function Ko({onFinishSetup:e}){let t=Ze(),{data:n}=d({...At(),enabled:t}),r=n?.plan_id===`pro`,{data:a}=d({...wt(),enabled:r&&t}),o=r&&a?.domain_setup_available===!0,{domains:s}=P(o,a?.primary_assistant_id),c=s!==void 0&&s.results.length===0;return!o||!c?null:(0,q.jsx)(H,{tone:`info`,title:`Finish setting up your ${ce(n?.package)} plan`,actions:(0,q.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 qo(){let e=Je({platformHostedOnly:!0}),t=Je(),n=Xe(),r=Ye(),[i,a]=s(),[o,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),[g,_]=(0,K.useState)(null),[v,y]=(0,K.useState)(!1),b=(0,K.useCallback)(()=>{_(Date.now()),y(!1)},[]),{showOffer:x,amountUsd:S}=dn(g),C=(0,K.useCallback)(e=>{e||y(!0)},[]);(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 w=i.has(`session_id`),T=(0,K.useCallback)(()=>{h(!1),a(e=>{let t=new URLSearchParams(e);return t.delete(`session_id`),t},{replace:!0})},[a]),E=(0,K.useCallback)(()=>{a(e=>{let t=new URLSearchParams(e);return t.set(`pro_onboarding`,``),t},{replace:!0})},[a]);if(t===`disabled`)return(0,q.jsx)(`div`,{className:`space-y-4`,children:(0,q.jsx)(Jt,{children:`Log in to the Vellum platform to manage billing and usage.`})});if(r)return(0,q.jsx)(`div`,{className:`space-y-4`,children:(0,q.jsxs)(`div`,{className:`flex items-center gap-2 py-6 text-body-medium-lighter text-[var(--content-secondary)]`,children:[(0,q.jsx)(V,{className:`h-4 w-4 animate-spin`}),`Loading billing…`]})});let D=n,O=D||w||m;return!n&&e!==`gated`?(0,q.jsx)(`div`,{className:`space-y-4`,children:(0,q.jsx)(H,{tone:`warning`,children:`Billing isn't available for the current assistant state.`})}):(0,q.jsxs)(`div`,{className:`space-y-4`,children:[(0,q.jsxs)(K.Suspense,{fallback:null,children:[(0,q.jsx)(Go,{onCheckoutCancelled:b}),(0,q.jsx)(Va,{})]}),D&&(0,q.jsx)(Oo,{}),D&&(0,q.jsx)(Ko,{onFinishSetup:E}),D&&(0,q.jsx)(Wo,{onManage:l,onTierUpgraded:p}),D&&(0,q.jsx)(ii,{open:o,onClose:u,onTierUpgraded:p}),(0,q.jsx)(un,{open:x&&!v,onOpenChange:C,amountUsd:S}),(0,q.jsx)(K.Suspense,{fallback:null,children:(0,q.jsx)(Pa,{})}),(0,q.jsx)(K.Suspense,{fallback:null,children:(0,q.jsx)(zo,{})}),O&&(0,q.jsx)(L,{open:w||m,onClose:T}),D&&(0,q.jsx)(L,{mode:`resize`,open:d,onClose:()=>f(!1)})]})}function Jo(){return(0,q.jsx)(D,{children:(0,q.jsx)(qo,{})})}function Yo(){let e=Yt(),t=Je({platformHostedOnly:!0}),n=Je();return(0,q.jsxs)(`div`,{className:`space-y-4`,children:[t===`full`&&n!==`gated`&&(0,q.jsx)(Do,{}),(0,q.jsx)(Ir,{assistantId:e})]})}function Xo(){let e=Je(),[t]=s(),n=o(),{hash:r}=l(),i=ln(e,t),a=i&&t.get(`tab`)!==`usage`?`billing`:`usage`,c=He();return(0,K.useEffect)(()=>{if(c&&t.get(`tab`)!==a){let e=new URLSearchParams(t);e.set(`tab`,a),n({search:`?${e}`,hash:r},{replace:!0})}},[c,t,a,n,r]),(0,q.jsx)(`div`,{className:`space-y-6`,children:(0,q.jsxs)(y.Root,{value:a,onValueChange:e=>{let i=new URLSearchParams(t);i.set(`tab`,e),n({search:`?${i}`,hash:r},{replace:!0})},children:[(0,q.jsxs)(y.List,{children:[i&&(0,q.jsx)(y.Trigger,{value:`billing`,children:`Billing`}),(0,q.jsx)(y.Trigger,{value:`usage`,children:`Usage`})]}),i&&(0,q.jsx)(y.Panel,{value:`billing`,className:`pt-4`,children:(0,q.jsx)(Jo,{})}),(0,q.jsx)(y.Panel,{value:`usage`,className:`pt-4`,children:(0,q.jsx)(Yo,{})})]})})}export{Xo as BillingPage};
@@ -1 +0,0 @@
1
- import{t as e}from"./button-VkxVX0DM.js";import{d as t}from"./chunk-5KNZJZUH-BUqIilZr.js";import{t as n}from"./jsx-runtime-BJ8jcmzB.js";import{t as r}from"./card-DUsAeHUS.js";import{n as i}from"./use-supports-bookmarks-B4cgbKXV.js";import{t as a}from"./loader-circle-DYe85z3g.js";import{t as o}from"./rotate-ccw-Cs7aCSL9.js";import{t as s}from"./triangle-alert-43gIbLca.js";import{t as c}from"./x-zfSDUG5z.js";import{n as l}from"./conversation-navigation-B_4jZ9Z2.js";import{n as u,t as d}from"./use-bookmarks-Bl4tx8xK.js";var f=n();function p(e){if(e==null)return``;let t=new Date(e);return Number.isNaN(t.getTime())?``:t.toLocaleString(void 0,{month:`short`,day:`numeric`,year:`numeric`,hour:`numeric`,minute:`2-digit`,hour12:!0})}function m(){return(0,f.jsx)(r,{children:(0,f.jsxs)(`div`,{className:`flex min-h-[400px] flex-col items-center justify-center px-6 py-16 text-center`,children:[(0,f.jsx)(`div`,{className:`flex h-12 w-12 items-center justify-center rounded-full bg-[var(--surface-base)]`,children:(0,f.jsx)(i,{className:`h-6 w-6 text-[var(--content-disabled)] dark:text-[var(--content-default)]`})}),(0,f.jsx)(`h2`,{className:`mt-4 text-title-small text-[var(--content-default)]`,children:`No bookmarks`}),(0,f.jsx)(`p`,{className:`mt-1 text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Hover any message and click the bookmark icon to save it here.`})]})})}function h({bookmark:t,isFirst:n,onOpen:r,onRemove:i}){let a=t.conversationTitle&&t.conversationTitle.trim().length>0?t.conversationTitle:`Untitled conversation`,o=t.messageRole!==`user`,s=p(t.createdAt);return(0,f.jsxs)(`div`,{className:`flex items-start gap-3 py-3 ${n?``:`border-t border-[var(--border-base)]`}`,children:[(0,f.jsx)(`span`,{"aria-hidden":!0,className:`mt-1 h-8 w-1 shrink-0 rounded-full`,style:{backgroundColor:o?`var(--content-default)`:`var(--content-tertiary)`}}),(0,f.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,f.jsxs)(`div`,{className:`flex items-baseline justify-between gap-3`,children:[(0,f.jsx)(`div`,{className:`truncate text-body-medium-default text-[var(--content-default)]`,children:a}),s?(0,f.jsx)(`span`,{className:`shrink-0 text-body-small-default text-[var(--content-tertiary)]`,children:s}):null]}),t.messagePreview?(0,f.jsx)(`p`,{className:`mt-0.5 line-clamp-2 text-body-small-default text-[var(--content-tertiary)]`,children:t.messagePreview}):null]}),(0,f.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[(0,f.jsx)(e,{variant:`outlined`,onClick:r,children:`Open`}),(0,f.jsx)(`button`,{type:`button`,onClick:i,title:`Remove bookmark`,"aria-label":`Remove bookmark`,className:`flex h-8 w-8 cursor-pointer items-center justify-center rounded-md text-[var(--content-tertiary)] transition-colors hover:bg-[var(--surface-active)] hover:text-[var(--content-default)]`,children:(0,f.jsx)(c,{className:`h-4 w-4`})})]})]})}function g(){let n=t(),{bookmarks:i,isLoading:c,isError:p,refetch:g}=u(),_=d();return c?(0,f.jsx)(`div`,{className:`w-full`,children:(0,f.jsx)(`div`,{className:`flex min-h-[400px] items-center justify-center`,children:(0,f.jsx)(a,{className:`h-6 w-6 animate-spin text-[var(--content-disabled)]`})})}):p?(0,f.jsx)(`div`,{className:`w-full`,children:(0,f.jsx)(r,{children:(0,f.jsxs)(`div`,{className:`flex min-h-[400px] flex-col items-center justify-center px-6 py-16 text-center`,children:[(0,f.jsx)(`div`,{className:`flex h-12 w-12 items-center justify-center rounded-full bg-[var(--system-error-lighter)]`,children:(0,f.jsx)(s,{className:`h-6 w-6 text-[var(--system-error-default)]`})}),(0,f.jsx)(`h2`,{className:`mt-4 text-title-small text-[var(--content-default)]`,children:`Failed to load bookmarks`}),(0,f.jsx)(`p`,{className:`mt-1 text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Something went wrong. Please try again.`}),(0,f.jsxs)(e,{variant:`outlined`,onClick:g,className:`mt-4`,children:[(0,f.jsx)(o,{className:`h-4 w-4`}),`Retry`]})]})})}):i.length===0?(0,f.jsx)(`div`,{className:`w-full`,children:(0,f.jsx)(m,{})}):(0,f.jsx)(`div`,{className:`w-full`,children:(0,f.jsx)(r,{noPadding:!0,className:`px-4`,children:i.map((e,t)=>(0,f.jsx)(h,{bookmark:e,isFirst:t===0,onOpen:()=>l(n,e.conversationId,{messageId:e.messageId}),onRemove:()=>{_(e.messageId,e.conversationId,!0)}},e.id))})})}export{g as BookmarksPage};
@@ -1,3 +0,0 @@
1
- var e={backAria:`Volver a todos los pasos`,backTooltip:`Todos los pasos`},t={title:`Añadir al chat`,closeAriaLabel:`Cerrar`,camera:`Cámara`,gallery:`Fototeca`,files:`Archivos`},n={allowAndCreateRule:`Permitir y crear regla`,trigger:`Más opciones para permitir`},r={appExported:`Aplicación exportada`,shareFailed:`No se pudo compartir la aplicación`},i={bulkActionMembersFailed:`No se pudieron cargar todas las conversaciones de esta sección. Inténtalo de nuevo.`},a={description:`Dónde {count, plural, one {cayó # punto de corte de caché} other {cayeron # puntos de corte de caché}} en el prefijo de esta solicitud, y qué segmentos se leyeron frente a los que se volvieron a crear.`,estimatedTokens:`≈ {count} tokens`,fullMissBody:`Todos los segmentos se volvieron a crear en este turno. Compara con el turno anterior en la diferencia de caché de arriba para encontrar el bloque que cambió.`,fullMissTitle:`Fallo total de caché`,loadError:`No se pudo cargar la carga de la solicitud para mapear los puntos de corte de caché.`,loading:`Cargando la carga de la solicitud para mapear los puntos de corte de caché…`,noBreakpoints:`Esta solicitud no tenía puntos de corte de caché: la caché del prompt estaba desactivada para la llamada.`,splitEstimatedNote:` La división leído/creado se atribuye por tamaño de segmento; el proveedor solo informa los totales.`,statusCreated:`Vuelto a crear`,statusRead:`Leído de la caché`,statusUnknown:`En caché`,title:`Puntos de corte de caché`,tokenEstimateNote:`Los recuentos de tokens se estiman a partir de la longitud del texto.`},o={changedLabel:`Cambiado`,changedMessageFallback:`un mensaje`,chipMessages:`Mensajes`,chipModel:`Modelo`,chipSettings:`Configuración`,chipSystem:`Sistema`,chipTools:`Herramientas`,currentModelFallback:`este modelo`,description:`Qué cambió desde la solicitud del turno anterior: el bloque que volvió a crear la caché del prompt.`,diffAnyway:`Comparar de todos modos ({lineCount} líneas)`,diffLabel:`{label} diff`,diffLargeDefault:`El texto cambiado es grande, así que no se compara por defecto.`,diffStillTooLarge:`Sigue siendo demasiado grande para comparar aquí (más de {maxLines} líneas). Abre la pestaña Raw para ver la carga completa.`,diffTooLarge:`El texto cambiado es demasiado grande para comparar aquí. Abre la pestaña Raw para ver la carga completa.`,loadPreviousCallError:`No se pudo cargar la llamada anterior para comparar.`,loadingPreviousCall:`Cargando la llamada anterior para comparar…`,messageStatsAppended:`{count} añadido(s)`,messageStatsLeading:`Mensajes iniciales: {parts}`,messageStatsRemoved:`{count} eliminado(s)`,messageStatsShared:`{count} compartido(s)`,previousModelFallback:`el modelo anterior`,previousPromptUnavailable:`El prompt de la llamada anterior no está disponible para comparar.`,showLess:`Mostrar menos`,showMoreDiffLines:`Mostrar {count} línea(s) de diferencia más`,statusMessagesEarlierBody:`{label} #{index} difiere del turno anterior, así que todo lo que estaba en caché después se vuelve a procesar en este turno.`,statusMessagesEarlierTitle:`Un mensaje anterior cambió`,statusMessagesHistoryBody:`Faltan {removedCount} mensaje(s) anterior(es) en este turno (probablemente por compactación del historial), así que el prefijo de mensajes en caché ya no coincide.`,statusMessagesHistoryTitle:`Historial de mensajes cambiado`,statusModelBody:`Este turno usó {current}, pero el turno anterior usó {previous}. Un modelo distinto no puede reutilizar la caché del prompt anterior, así que todo el prompt se vuelve a crear.`,statusModelTitle:`Modelo cambiado`,statusPrefixUnchangedBodyAppended:`El prefijo en caché coincide con el turno anterior y se añadieron {count} mensaje(s) nuevo(s). Un fallo de caché aquí apunta a la caducidad del TTL de la caché, no a contenido cambiado.`,statusPrefixUnchangedBodyIdentical:`El prefijo en caché es idéntico al del turno anterior. Un fallo de caché aquí apunta a la caducidad del TTL de la caché, no a contenido cambiado.`,statusPrefixUnchangedTitle:`Prefijo del prompt sin cambios`,statusSettingsBody:`Solo la configuración de la solicitud (p. ej., temperatura) difiere del turno anterior. En la mayoría de proveedores, esto por sí solo no invalida la caché del prompt.`,statusSettingsTitle:`Configuración de la solicitud cambiada`,statusSystemBody:`Parte del prompt del sistema cambió desde el turno anterior. El contenido volátil aquí (una marca de tiempo, memoria o un bloque por turno) vuelve a crear la caché en cada turno.`,statusSystemTitle:`Prompt del sistema cambiado`,statusToolsBody:`El conjunto de herramientas o sus definiciones difieren del turno anterior. Las herramientas están al inicio del prefijo en caché, así que cualquier cambio aquí vuelve a crear la caché antes de llegar al prompt del sistema y a los mensajes.`,statusToolsTitle:`Definiciones de herramientas cambiadas`,title:`Diferencia de caché`,unchangedLines:`⋯ {count} línea(s) sin cambios`},s={barAriaLabel:`Desglose de la caché del prompt de {total} tokens: {segments} ({percent} en caché).`,barSegment:`{count} {label}`,cached:`en caché`,description:`Cuánto del prompt de esta llamada se sirvió desde la caché del prompt.`,segmentCreated:`Vuelto a crear`,segmentFresh:`Entrada nueva`,segmentRead:`Leído de la caché`,statusFullMissBody:`Ninguna parte del prompt de esta llamada se leyó de la caché.`,statusFullMissReCreatedSuffix:` Se escribieron {count} tokens en la caché en este turno, pero no se reutilizó ninguno; esto suele significar que el prefijo en caché cambió desde el turno anterior.`,statusFullMissTitle:`Fallo total de caché`,statusHealthyBody:`El {percent} del prompt de esta llamada ({count} tokens) se sirvió desde la caché.`,statusHealthyTitle:`Reutilización saludable de la caché`,statusPartialBody:`El {percent} del prompt de esta llamada ({count} tokens) se sirvió desde la caché; el resto se volvió a procesar en este turno.`,statusPartialTitle:`Reutilización parcial de la caché`,title:`Estado de la caché`,unavailableNote:`Esta llamada no informó del uso de la caché del prompt.`,unavailableNoteForProvider:`Esta llamada no informó del uso de la caché del prompt para {provider}.`},c={callCount:`{count, plural, one {# llamada LLM} other {# llamadas LLM}}`,callLabel:`Llamada {number}`,compaction:`Compactación`,cost:`Costo`,empty:`No hay llamadas LLM registradas.`,failed:`Fallida`,latest:`Más reciente`,navAriaLabel:`Llamadas LLM`,syntheticAgentLoopError:`Error del bucle del agente`,syntheticAgentLoopErrorWithReason:`Error del bucle del agente · {reason}`,syntheticYield:`Rendimiento · la compactación no cupo en el siguiente paso`,unrecognizedCall:`Llamada no reconocida`},l={addToChat:`Añadir al chat`,askAssistantPlaceholder:`Pregunta a {assistantName}`,disclaimer:`Vellum usa modelos de IA externos y puede cometer errores`},u={compactedMessages:`{count} compactados`,compactedPreserved:`Compactados / preservados`,contextTokens:`Tokens de contexto`,duration:`Duración`,durationMs:`{count} ms`,emptyBody:`Una compactación se atribuye a la llamada que se ejecutó justo después. Si esperas una aquí, verifica que la conversación superó su presupuesto de contexto justo antes de esta llamada.`,emptyTitle:`Ninguna compactación está asociada a esta llamada`,eventIndex:` · {index} de {totalCount}`,hideSummaryText:`Ocultar texto del resumen`,loadFailedDefault:`No se pudo cargar la compactación.`,loadFailedTitle:`Error al cargar`,loading:`Cargando compactación…`,messageRange:`{before} → {after}`,messages:`Mensajes`,outcomeCompacted:`Compactado`,outcomeFailed:`Compactación fallida`,outcomeFailedDetail:`La llamada del resumidor falló, por lo que el contexto quedó intacto.`,outcomeNoChange:`Sin cambios`,outcomeUnavailable:`Resultado no disponible`,outcomeUnavailableDetail:`No se registraron métricas detalladas antes/después para esta compactación.`,preservedMessages:`{count} preservados`,reductionRatio:`{ratio}× más pequeño`,retry:`Reintentar`,showSummaryText:`Mostrar texto del resumen`,summarizerUsage:`{input} entrada / {output} salida`,summaryCost:`Costo del resumen`,summaryModel:`Modelo de resumen`,tokenRange:`{before} → {after}`,tokenRangeWithReduction:`{before} → {after} ({reduction})`,trigger:`Disparador`},d={profileSwitchFailed:`Perfil creado, pero no se pudo cambiar a él`,profileSwitchFallback:`No se pudo cambiar de perfil. Inténtalo de nuevo.`},f={archive:`Archivar`,copyConversation:`Copiar conversación completa`,copyConversationId:`Copiar ID de conversación`,forkConversation:`Bifurcar conversación`,inspect:`Analizar conversación`,markRead:`Marcar como leída`,markUnread:`Marcar como no leída`,moveToGroup:`Mover al grupo`,newGroup:`Nuevo grupo…`,openInNewWindow:`Abrir en una ventana nueva`,pin:`Fijar`,refresh:`Actualizar`,removeFromGroup:`Quitar del grupo`,rename:`Cambiar nombre`,shareFeedback:`Enviar comentarios`,triggerAriaLabel:`Acciones de conversación`,unarchive:`Desarchivar`,unpin:`Dejar de fijar`},p={closeAriaLabel:`Cerrar`,title:`Acciones de conversación`},m={ariaLabel:`Recursos de la conversación, {count, plural, one {# elemento} other {# elementos}}`,ariaLabelUnseen:`Recursos de la conversación, {count, plural, one {# elemento} other {# elementos}} (cambios sin ver)`,heading:`Recursos`,label:`{count, plural, one {# recurso} other {# recursos}}`},h={copied:`Copiado`,copyFailed:`No se pudo copiar al portapapeles.`},g={conversationCopied:`ID de conversación copiado al portapapeles.`,conversationFailed:`No se pudo copiar el ID de conversación.`,groupCopied:`ID de grupo copiado al portapapeles.`,groupFailed:`No se pudo copiar el ID de grupo.`},_={tooltip:`Detener`},v={pdfDownloadFailed:`No se pudo descargar el PDF`},y={cancel:`Cancelar`,close:`Cerrar`,defaultError:`No se pudieron exportar los datos del inspector.`,descriptionDone:`La descarga debería haber comenzado automáticamente.`,descriptionError:`Algo salió mal al recopilar la exportación.`,descriptionRunning:`Recopilando cargas del proveedor y contexto normalizado. Esto puede tardar un momento en conversaciones largas.`,done:`Listo`,progressAriaLabel:`Progreso de exportación`,retry:`Reintentar`,statusDone:`Listo`,statusPackaging:`Empaquetando ZIP…`,statusProgress:`{completed} de {total} llamadas`,titleDone:`Exportación completa`,titleError:`Error al exportar`,titleRunning:`Exportando datos del inspector`},b={failed:`No se pudo descargar el archivo`},x={accessDenied:`El inspector está disponible para el personal de Vellum o cuando la marca de desarrollador settings-developer-nav está habilitada.`,allMessages:`Todos los mensajes`,back:`Volver`,backToConversationAria:`Volver a la conversación`,chooseCall:`Elige una llamada de la barra lateral para inspeccionar su contexto.`,conversationScopeSubtitle:`Mostrando cada llamada LLM registrada en esta conversación.`,detailLoadFailed:`No se pudo cargar el contexto normalizado de esta llamada.`,emptyBodyConversation:`Ningún mensaje de la conversación fue producido por una llamada LLM o los registros de solicitud fueron recortados por retención.`,emptyBodyMessage:`Este mensaje no fue producido por una llamada LLM o sus registros de solicitud fueron recortados por retención.`,emptyTitleConversation:`No hay llamadas LLM registradas para esta conversación.`,emptyTitleMessage:`No hay llamadas LLM registradas para este mensaje.`,enableLogging:`Habilitar registro`,enableLoggingFailed:`No se pudo habilitar el registro`,enableLoggingFailedWithMessage:`No se pudo habilitar el registro ({message})`,enabling:`Habilitando…`,exportFailed:`No se pudieron exportar los datos del inspector`,exportZip:`Exportar ZIP`,exportZipAria:`Exportar datos del inspector como ZIP`,exporting:`Exportando…`,filterToMessage:`Filtrar por mensaje:`,llmCallCount:`{count, plural, one {1 llamada LLM} other {# llamadas LLM}}`,loadContextFailed:`No se pudo cargar el contexto LLM.`,loadFailedTitle:`Error al cargar`,loading:`Cargando…`,loggingDisabledBody:`Las cargas útiles de solicitud y respuesta no se están registrando, así que no hay nada que inspeccionar. Habilita el registro para capturar futuras llamadas LLM.`,loggingDisabledTitle:`El registro de solicitudes LLM está desactivado`,loggingEnabledToast:`Registro de solicitudes LLM habilitado`,messageOptionDeepLink:`Mensaje {messageId}`,messageOptionNoText:`{index}. (sin texto)`,messageOptionWithPreview:`{index}. {preview}`,retry:`Reintentar`,scopedToOneMessage:`Limitado a un mensaje · `,scopedToTurn:`Limitado al turno {index} de {count} · `,title:`Inspector de contexto LLM`},S={chipCode:`Código`,chipProvider:`Proveedor`,chipRequestId:`ID de solicitud`,chipStatus:`Estado`,chipType:`Tipo`,chipUpstreamCode:`Código ascendente`,chipUpstreamParam:`Parámetro ascendente`,chipUpstreamType:`Tipo ascendente`,noResponse:`El proveedor rechazó esta llamada y no devolvió respuesta.`,title:`Llamada fallida`},C={pictureInPictureUnavailable:`Imagen sobre imagen no está disponible`},w={unavailable:`Este archivo no está disponible aquí`},T={addOlderPairButton:`+ Añadir par más antiguo`,assistantReplyLabel:`[assistant]: respuesta`,assistantReplyPlaceholder:`Respuesta del asistente que precedió al mensaje del usuario de abajo.`,configTitle:`Configuración {paneId}`,conversationalContextTitle:`Contexto conversacional (compartido por ambos paneles)`,customPromptPlaceholder:`Prompt del sistema del enrutador personalizado. Marcadores de posición disponibles:
2
- '{ASSISTANT_NAME}, {USER_NAME}, {PAGE_INDEX}'
3
- Déjalo en blanco para usar la plantilla incluida. "Cargar predeterminado" rellena el área de texto con el cuerpo incluido para editar.`,description:`Ejecuta en seco el enrutador v4 con anulaciones personalizadas de nivel/lote. Solo lectura: no se escriben filas en <code>memory_v2_injection_events</code> ni en <code>memory_v2_activation_logs</code>, y no se modifica el estado de activación. Deja una anulación en blanco para heredar el valor de configuración activo; escribe <code>null</code> para desactivar explícitamente un nivel.`,diffLabel:`Diferencia`,diffValue:`{shared} compartidas · {unique} exclusivas de este panel`,effectiveConfig:`Configuración efectiva`,emaScore:`EMA {score}`,empty:`(vacío)`,emptySelectionHint:`El enrutador devolvió una selección vacía. Prueba una consulta más específica o relaja los valores de anulación.`,failedToRunSimulation:`No se pudo ejecutar la simulación`,firstTurnAssistantPlaceholder:`Déjalo en blanco para un escenario de primer turno.`,inheritActive:`heredar activo`,inheritActiveWithProfile:`heredar activo ({profile})`,inheritPlaceholder:`heredar`,invalidOverrideInput:`Entrada de anulación no válida`,justArrivedUserLabel:`[user]: mensaje recién llegado`,lastUserPlaceholder:`p. ej. qué deberíamos lanzar después`,legendAOnly:`solo A`,legendBOnly:`solo B`,legendInBoth:`en ambos`,llmProfilesOverride:`anulación de llm.profiles`,loadDefault:`Cargar predeterminado`,loading:`Cargando…`,noPagesSelected:`No se seleccionaron páginas`,notAvailable:`El patio de pruebas del enrutador de memoria no está disponible.`,nowBlockLabel:`bloque '<now>'`,nowDefaultPlaceholder:`Rellenado con el NOW.md activo. Edita para probar estados alternativos.`,nowLoadingPlaceholder:`Cargando NOW.md actual…`,nullValue:`null`,overrideMustBePositiveInteger:`{fieldName} debe ser un entero positivo o 'null' (se obtuvo "{value}")`,overrideSuffix:` (anulación)`,pageCount:`{count, plural, one {# página} other {# páginas}}`,pairLabel:`Par {index} de {total}`,pairMostRecentSuffix:` · más reciente`,paneTitle:`Panel {paneId}`,promptModeBundled:`incluido`,promptModeCustom:`personalizado`,rawApiExchange:`Intercambio de API sin procesar`,recentPairsLabel:`Pares recientes (asistente, usuario) · más antiguos primero`,reloadNowButton:`Recargar NOW.md activo`,removeButton:`Eliminar`,requestLabel:`Solicitud (panel {paneId})`,reset:`Restablecer`,responseLabel:`Respuesta (panel {paneId})`,routerFailure:`Fallo del enrutador: {reason}`,runBoth:`Ejecutar ambos`,runPane:`Ejecutar {paneId}`,running:`Ejecutando…`,selectedLabel:`Seleccionadas`,selectedValue:`{count} (max_page_ids activo: {maxPageIds})`,summary:`Resumen`,summaryUserMessageLabel:`Mensaje del usuario`,systemPrompt:`Prompt del sistema`,systemPromptConfigLabel:`prompt del sistema`,tier1Label:`nivel 1`,tier2Label:`nivel 2`,tier3Label:`nivel 3 · b{batch}`,title:`Patio de pruebas del enrutador de memoria`,totalCandidatePagesLabel:`Total de páginas candidatas`,userMessageLabel:`[user]: mensaje`,userMessagePlaceholder:`Mensaje del usuario.`},E={afterMergeLabel:`Tras la fusión`,breakdownCAssistantRerank:`c_assistant · rerank Δ_a`,breakdownCAssistantSim:`c_assistant · sim_a`,breakdownCNowSim:`c_now · sim_n`,breakdownCUserRerank:`c_user · rerank Δ_u`,breakdownCUserSim:`c_user · sim_u`,breakdownOwnActivation:`A_o (propio)`,breakdownPriorActivation:`prior · d`,breakdownRerankScaledRaw:`+{scaled} (bruto {raw})`,breakdownScaledRaw:`{scaled} (bruto {raw})`,breakdownSource:`fuente`,breakdownSpreadDelta:`spread Δ`,breakdownStatus:`estado`,candidateScores:`sem {semantic} · rec {recency}`,carriedPill:`Arrastradas: {count}`,conceptActivationsSubtitle:"Ordenadas por activación final. Las entradas de habilidades aparecen con el prefijo `skills/`; expande una fila para ver el desglose de activación.",conceptActivationsTitle:`Activaciones de conceptos ({count})`,configCAssistant:`c_assistant`,configCNow:`c_now`,configCUser:`c_user`,configDDecay:`d (decaimiento)`,configEpsilon:`epsilon`,configHops:`saltos`,configKSharpening:`k (agudización)`,configSubtitle:`Pesos de activación y umbrales de selección.`,configTitle:`Configuración`,configTopK:`top_k`,copyAriaLabel:`Copiar al portapapeles`,copyAriaLabelCopied:`Copiado`,copyButtonCopied:`Copiado`,copyButtonCopy:`Copiar`,copyErrorMessage:`No se pudo copiar al portapapeles.`,copyTitle:`Copiar`,copyTitleCopied:`¡Copiado!`,corePill:`Núcleo: {count}`,degradationTitle:`Degradación`,fallbackSourcesLabel:`Fuentes de respaldo`,hybridSearchLabel:`Búsqueda híbrida`,inContextPill:`En contexto: {count}`,injectedMemoryContextTitle:`Contexto de memoria inyectado`,injectedPill:`Inyectados: {count}`,injectedTokensLabel:`Tokens inyectados`,latencyMs:`{ms} ms`,loading:`Cargando…`,loggedMemorySelectionSubtitle:`Renderizado desde la selección v3, no inyectado en este turno.`,loggedMemorySelectionTitle:`Selección de memoria registrada`,memoryDisabledDefaultReason:`La recuperación de memoria se desactivó para este turno.`,memoryDisabledTitle:`Memoria desactivada`,missingValue:`-`,modelLabel:`Modelo`,no:`No`,noDataBody:`La información de recuperación de memoria no está disponible para este mensaje.`,noDataTitle:`Sin datos de memoria`,noEntriesRanked:`No hay entradas clasificadas.`,noPagesSelected:`No hay páginas seleccionadas.`,notInjectedPill:`No inyectados: {count}`,pageContentLabel:`contenido de la página`,pageNotFound:`Página no encontrada en disco. El slug puede hacer referencia a una entrada obsoleta de Qdrant.`,pillMemoryV2:`Memoria V2`,pillMemoryV3:`Memoria V3`,pillRecallV1:`Recuperación (v1)`,pinnedChip:`fijada`,pinnedPill:`Fijadas: {count}`,providerLabel:`Proveedor`,queryContextSubtitle:`El texto incrustado como vector de búsqueda para la recuperación semántica.`,queryContextTitle:`Contexto de consulta`,reasonLabel:`Motivo`,retrievalFunnelSubtitle:`Cómo se filtraron las memorias desde la búsqueda semántica hasta la inyección.`,retrievalFunnelTitle:`Embudo de recuperación`,searchDetailsTitle:`Detalles de búsqueda`,selectedLabel:`Seleccionadas`,selectedPagesSubtitle:`Páginas que v3 seleccionó, etiquetadas por el carril que las mostró y la sección coincidente (cuando un carril de búsqueda mostró una).`,selectedPagesTitle:`Páginas seleccionadas ({count})`,selectedPill:`Seleccionadas: {count}`,semanticHitsLabel:`Coincidencias semánticas`,semanticUnavailableLabel:`Semántica no disponible`,sparseDenseOnly:`Solo densos`,sparseUsed:`Usados`,sparseVectorsLabel:`Vectores dispersos`,statusActive:`Activo`,statusDegraded:`Degradado`,statusLabel:`Estado`,statusSubtitle:`Proveedor, modelo y latencia de esta recuperación.`,statusTitle:`Estado`,tier1Label:`Nivel 1`,tier2Label:`Nivel 2`,topCandidatesSubtitle:`{count, plural, one {# candidato clasificado por puntuación final.} other {# candidatos clasificados por puntuación final.}}`,topCandidatesTitle:`Mejores candidatos`,totalLatencyLabel:`Latencia total`,turnLevelRecallBody:`La recuperación de memoria se ejecuta una vez por turno. Estos datos se aplican a todas las llamadas LLM de este mensaje.`,turnLevelRecallTitle:`Recuperación por turno`,turnPill:`Turno {turn}`,unavailable:`No disponible`,unknown:`Desconocido`,v2StatusInContext:`En contexto`,v2StatusInjected:`Inyectado`,v2StatusNotInjected:`No inyectado`,v2StatusPageMissing:`Página no encontrada`,v2TurnBody:`Paso de memoria por activación en cascada que clasifica conceptos y habilidades para este turno.`,v2TurnTitle:`Memoria - turno {turn} ({mode})`,v3LiveInjectionBody:`v3 es la fuente de memoria en vivo en este turno: el bloque de abajo se inyectó en el contexto (v2 suprimido).`,v3LiveInjectionTitle:`Memoria V3 - inyección en vivo`,v3LoggedSelectionBody:`v3 no es la fuente de memoria en vivo para este asistente: estas selecciones se registraron pero no se inyectaron en este turno; la memoria del turno provino de v2.`,v3LoggedSelectionTitle:`Memoria V3 - selección registrada (no inyectada)`,v3SourceCarried:`arrastrada`,v3SourceCore:`núcleo`,v3SourceL1L2:`L1+L2`,v3SourceNeedle:`aguja`,yes:`Sí`},D={callOfTotal:`Llamada {number} de {total}`,llmCallCount:`{count, plural, one {1 llamada LLM} other {# llamadas LLM}}`,selectCallAria:`Seleccionar una llamada LLM para inspeccionar`,sheetTitle:`Seleccionar una llamada`},O={cacheTokensLabel:`Tokens de caché`,conversationSubtitle:`Totales acumulados de cada llamada LLM con precio hasta ahora.`,conversationTitle:`Conversación`,createdLabel:`Creado`,durationLabel:`Duración`,estimatedCostLabel:`Costo estimado`,failedStatus:`Fallido`,firstTokenKindLabel:`Tipo de primer token`,firstTokenLatencySubtitle:`Dónde se fue el tiempo hasta el primer token de este turno, medido por el asistente.`,firstTokenLatencyTitle:`Latencia del primer token`,inputTokensLabel:`Tokens de entrada`,latencyMs:`{ms} ms`,loopExitReasonLabel:`Motivo de salida del bucle`,modelLabel:`Modelo`,normalizedMetadataSubtitle:`Proveedor, modelo, marcas de tiempo y recuentos de uso.`,normalizedMetadataTitle:`Metadatos normalizados`,normalizedSummaryUnavailableSubtitle:`Esta llamada aún tiene cargas útiles de solicitud y respuesta sin procesar.`,normalizedSummaryUnavailableTitle:`Resumen normalizado no disponible`,otherLabel:`Otro`,outputTokensLabel:`Tokens de salida`,providerLabel:`Proveedor`,requestMessagesLabel:`Mensajes de solicitud`,statusLabel:`Estado`,stopReasonLabel:`Motivo de parada`,toolCallsLabel:`Llamadas a herramientas`,toolsAvailableLabel:`Herramientas disponibles`,totalCostSoFarLabel:`Costo total hasta ahora`,totalToFirstTokenLabel:`Total hasta el primer token`,usageSubtitle:`Recuentos de tokens y llamadas normalizados por la ruta del asistente.`,usageTitle:`Uso`},k={colors:{green:`Verde`,orange:`Naranja`,pink:`Rosa`,purple:`Morado`,teal:`Turquesa`,yellow:`Amarillo`},noColor:`Sin color`},A={availableTools:`Herramientas disponibles`,bannerNoSections:`Esta llamada aún no tiene secciones de prompt normalizadas.`,bannerSectionsCount:`{count, plural, one {# sección de solicitud normalizada mostrada en el orden devuelto por la ruta del asistente.} other {# secciones de solicitud normalizadas mostradas en el orden devuelto por la ruta del asistente.}}`,collapseAll:`Contraer todo`,copyAriaLabel:`Copiar {title}`,emptyBody:`Esta llamada no tiene secciones de prompt normalizadas. Usa la pestaña Raw para inspeccionar la carga útil completa de la solicitud.`,emptyTitle:`Sin secciones de prompt normalizadas`,expandAll:`Expandir todo`,formatJavaScript:`JavaScript`,formatJson:`JSON`,formatMarkdown:`Markdown`,formatTypeScript:`TypeScript`,noContentAvailable:`No hay contenido disponible.`,promptSectionsTitle:`Secciones del prompt`},j={copyRequestPayloadAriaLabel:`Copiar carga de la solicitud`,copyResponsePayloadAriaLabel:`Copiar carga de la respuesta`,downloadFailedToast:`No se pudo descargar la carga.`,downloadRequestPayloadAriaLabel:`Descargar carga de la solicitud`,downloadResponsePayloadAriaLabel:`Descargar carga de la respuesta`,loadErrorTitle:`No se pudieron cargar las cargas sin procesar`,loading:`Cargando cargas sin procesar…`,payloadRequestFailed:`La solicitud de la carga falló. Inténtalo de nuevo.`,request:`Solicitud`,requestPayload:`Carga de la solicitud`,response:`Respuesta`,responsePayload:`Carga de la respuesta`,retry:`Reintentar`},M={revealFailed:`No se pudo revelar {name}.`},N={argumentsPreview:`Vista previa de argumentos`,copySectionAria:`Copiar contenido de la sección`,kindAssistantText:`Texto del asistente`,kindFunctionResponse:`Respuesta de función`,kindReasoning:`Razonamiento`,kindToolCall:`Llamada de herramienta`,kindToolResult:`Resultado de herramienta`,modeResultOnly:`Respuesta solo de resultado`,modeTextOnly:`Respuesta solo de texto`,modeToolCalling:`Respuesta con llamada de herramienta`,noArgumentsPreview:`No hay vista previa de argumentos estructurados disponible para esta llamada de herramienta.`,noAssistantText:`No se capturó texto del asistente para esta sección.`,noSectionsFallback:`Esta respuesta no tiene secciones renderizadas. Las cargas útiles sin procesar siguen disponibles en la pestaña Raw, y cualquier metadato de respuesta normalizado se mostrará cuando esté presente.`,rawTabHint:`¿Necesitas la carga útil completa del proveedor? Abre la pestaña Raw para el JSON de solicitud y respuesta.`,responseMetadata:`Metadatos de respuesta`,sectionTitle:`Sección {number}`,sectionUnavailable:`Renderizado de sección no disponible`,stopReasonChip:`Motivo de parada: {reason}`,toolChip:`Herramienta: {name}`},P={message:`No se pudieron cargar tus conversaciones.`,retry:`Reintentar`},F={actionsAria:`Acciones de habilidad`,moreTooltip:`Más`},I={callLink:`Llamada {number}`,emptyBody:`Esta pestaña enumera cada llamada de herramienta <code>skill_load</code> en la conversación. No se detectó ninguna en las llamadas LLM capturadas.`,emptyTitle:`No se cargaron habilidades en esta conversación`,loadCount:`{count, plural, one {1 carga} other {# cargas}}`,summaryStats:`{uniqueCount, plural, one {# habilidad única} other {# habilidades únicas}} · {totalLoads, plural, one {# llamada de carga} other {# llamadas de carga}}`,summaryTitle:`Habilidades cargadas en esta conversación`},L={defaultValue:`predeterminado: {value}`,inputSchema:`Esquema de entrada`,intro:`{count, plural, one {# herramienta enviada con esta solicitud. Expande una herramienta para ver su definición y esquema de entrada.} other {# herramientas enviadas con esta solicitud. Expande una herramienta para ver su definición y esquema de entrada.}}`,noInputSchema:`Sin esquema de entrada: esta herramienta no acepta entrada estructurada.`,required:`obligatorio`,settings:`Configuración`},R={fileUnavailable:`El archivo no está disponible para descargar`,fileUnavailableHostTimeout:`El archivo no está disponible para descargar (puede que la aprobación del archivo en el host haya caducado)`},z={authFailed:`No se pudo autenticar al usuario.`},B={assistantBusy:`Tu asistente está ocupado. Inténtalo de nuevo cuando termine de responder.`,retryFailed:`No se pudo reintentar la respuesta`,summarizeFailed:`No se pudo resumir la conversación`},V={commandFailed:`No se pudo ejecutar ese comando. Inténtalo de nuevo.`,doctorUnavailable:`El Doctor no está disponible en este asistente.`},H={activityStepsPanel:e,addToChatSheet:t,allowOptionsMenu:n,appAssetActions:r,assistantSideMenu:i,cacheBreakpointMapCard:a,cacheDiffCard:o,cacheHealthCard:s,callRail:c,chatComposer:l,compactionTab:u,composerSettingsMenu:d,conversationActions:f,conversationActionsSheet:p,conversationAssets:m,copyButton:h,copyIdToClipboard:g,detailPanelStopButton:_,documentAssetActions:v,exportProgressModal:y,fileDownload:b,inspectPage:x,llmCallErrorCard:S,localFileEmbed:C,localFileLink:w,memoryRouterPlaygroundPage:T,memoryTab:E,mobileCallSelector:D,overviewTab:O,pinnedAppColorSwatches:k,promptTab:A,rawTab:j,redactedCredentialChip:M,responseTab:N,sidebarConversationError:P,skillDetailPanel:F,skillsTab:I,toolDefinitionsContent:L,transcriptMessageBody:R,useConversationLoader:z,useConversationSecondaryActions:B,useSendMessage:V};export{e as activityStepsPanel,t as addToChatSheet,n as allowOptionsMenu,r as appAssetActions,i as assistantSideMenu,a as cacheBreakpointMapCard,o as cacheDiffCard,s as cacheHealthCard,c as callRail,l as chatComposer,u as compactionTab,d as composerSettingsMenu,f as conversationActions,p as conversationActionsSheet,m as conversationAssets,h as copyButton,g as copyIdToClipboard,H as default,_ as detailPanelStopButton,v as documentAssetActions,y as exportProgressModal,b as fileDownload,x as inspectPage,S as llmCallErrorCard,C as localFileEmbed,w as localFileLink,T as memoryRouterPlaygroundPage,E as memoryTab,D as mobileCallSelector,O as overviewTab,k as pinnedAppColorSwatches,A as promptTab,j as rawTab,M as redactedCredentialChip,N as responseTab,P as sidebarConversationError,F as skillDetailPanel,I as skillsTab,L as toolDefinitionsContent,R as transcriptMessageBody,z as useConversationLoader,B as useConversationSecondaryActions,V as useSendMessage};
@@ -1 +0,0 @@
1
- import"./api-BjYAXdCk.js";function e(e){return e.previewStartedAt??e.startedAt??void 0}function t(e){return!e.isError&&e.result===void 0&&e.completedAt==null}function n(e){return!e.isError&&!t(e)}function r(e){return e?.webUrl??e?.appUrl}var i=[`choice`,`oauth_connect`,`form`,`confirmation`,`file_upload`,`task_preferences`];function a(e){return e.completed?!1:Array.isArray(e.actions)&&e.actions.length>0||i.includes(e.surfaceType)}var o=new Set([`ui_show`,`ui_update`,`app_open`,`app_create`,`app_update`,`app_refresh`]);function s(e,t){if(e.toolCallId){let r=t?.find(t=>t.id===e.toolCallId);return r?n(r):!0}let r;for(let e of t??[])o.has(e.name)&&(r=e);return r?n(r):!0}function c(e){if(e.surfaceType===`dynamic_page`){let t=e.data;return t?.appId||t?.preview?`inline`:e.display}return`inline`}function l(e,t){if(!e.toolCalls?.length)return e;let n=!1,r=new Map,i=e.toolCalls.map(e=>{let i=t(e);return i!==e&&(n=!0),r.set(i.id,i),i});if(!n)return e;let a=e.contentBlocks?.map(e=>{if(e.type!==`tool_use`)return e;let t=e.toolCall.id;if(t===void 0)return e;let n=r.get(t);return n===void 0||n===e.toolCall?e:{...e,toolCall:n}});return{...e,toolCalls:i,contentBlocks:a}}var u=`acp_claude_oauth_missing`,d=`Claude Code is now connected. Continue with the task I asked for: re-run the Claude Code spawn that failed for lack of a valid token.`,f={rate_limit_exceeded:`Too many requests. Please wait a moment and try again.`,invalid_api_key:`The API key for this provider is invalid or expired. Check your API key in Settings → Models & Services.`},p=new Set(`conversation_list_invalidated,conversation_title_updated,notification_intent,navigate_settings,open_conversation,identity_changed,avatar_updated,sync_changed,disk_pressure_status_changed,app_files_changed,home_feed_updated,relationship_state_updated,contact_request,subagent_spawned,subagent_status_changed,subagent_event,acp_session_spawned,acp_session_update,acp_session_usage,acp_session_completed,acp_session_error,acp_auth_required,background_tool_started,background_tool_completed,service_group_update_starting,service_group_update_progress,service_group_update_complete,memory_recalled,memory_status,bookmark.created,bookmark.deleted,contacts_changed,skills_state_changed,host_ui_snapshot_request,host_ui_snapshot_cancel,host_browser_cancel,assistant_status,model_info,schedule_conversation_created,heartbeat_alert,heartbeat_conversation_created,client_settings_update,config_changed,sounds_config_updated,oauth_connect_result,show_platform_login,platform_disconnected,notification_conversation_created,recording_start,recording_stop,recording_pause,recording_resume`.split(`,`));function m(e){return!p.has(e.type)}function h(e){let t=-1;for(let n=e.length-1;n>=0;n--){let r=e[n];if(r.role===`assistant`)return t>n;r.role===`user`&&r.queueStatus!==`queued`&&(t=n)}return t!==-1}function g(e){for(let t of e)if(t.surfaces){for(let e of t.surfaces)if(a(e))return!0}return!1}function _(e){return!!e?.some(e=>e.role===`assistant`)}function v({previousConversationId:e,nextConversationId:t,onboardingDraftConversationId:n,autoGreetPending:r,assistantMessagePresent:i}){return e==null||t==null||e===t?!1:!(r&&!i&&e===n)}var y={"not-allowed":`Microphone access was blocked.`,"service-not-allowed":`Microphone access was blocked.`,"not-allowed-permanent":`Microphone access is blocked. Allow microphone access in system or browser settings, then try again.`,"audio-capture":`No microphone detected. Connect a microphone and try again.`,network:`Speech recognition couldn’t reach its service. Check your network and try again.`,aborted:`Recording was interrupted. Try again.`,"stt-not-configured":`Speech-to-text isn’t set up for this assistant. Open Settings → Voice to choose a provider.`,"stt-audio-rejected":`We couldn’t transcribe that recording. Try recording again or speaking more clearly.`,"stt-rate-limited":`Too many transcription requests. Please wait a moment and try again.`,"stt-auth-failed":`The speech-to-text provider rejected the assistant’s credentials. Update the API key in Settings → Voice.`,"stt-provider-error":`The speech-to-text provider is having trouble right now. Try again in a moment.`,"stt-unavailable":`Speech-to-text is temporarily unavailable. Try again in a moment.`,"stt-timeout":`Transcription took too long. Try a shorter recording.`,"native-stt-no-transcript":`macOS dictation didn’t return a transcript. Make sure Dictation is turned on in System Settings → Keyboard → Dictation, then try again.`,"dictation-automation-denied":`Dictation needs Automation permission to paste into other apps.`,"dictation-paste-blocked":`This app doesn't accept dictation; copy and paste manually.`};function b(e){return y[e]??`Voice input failed (${e}). Try again or type your message.`}var x=new Set([`not-allowed`,`service-not-allowed`]);function S(e){return e!==null&&x.has(e)}function C(e){return e===`not-allowed-permanent`}function w(e){return e===`dictation-automation-denied`}var T=new Set([`heartbeat`,`task`,`auto-analysis`]);function E(e){return e.source!==void 0&&T.has(e.source)}function D(e,t,n,r){let i=e[t],a=i.toolCalls[n],o=[...e];return o[t]=l(i,e=>e.id===a.id?{...e,pendingConfirmation:r}:e),{updatedMessages:o,attachedToolCallId:a.id}}function O(e,t){let{toolUseId:n,...r}=t,i=r;if(n)for(let t=e.length-1;t>=0;t--){let r=e[t];if(!r?.toolCalls?.length)continue;let a=r.toolCalls.findIndex(e=>e.id===n);if(a!==-1)return D(e,t,a,i)}return{updatedMessages:e,attachedToolCallId:void 0}}function k(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(n?.toolCalls?.length)for(let e=n.toolCalls.length-1;e>=0;e--){let t=n.toolCalls[e];if(t?.pendingConfirmation)return{...t.pendingConfirmation,toolUseId:t.id}}}return null}function A(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(n?.toolCalls?.length)for(let e=n.toolCalls.length-1;e>=0;e--){let t=n.toolCalls[e];if(t?.pendingQuestion)return{requestId:t.pendingQuestion.requestId,entries:t.pendingQuestion.entries,toolUseId:t.id}}}return null}function j(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(n?.toolCalls?.length)for(let e=n.toolCalls.length-1;e>=0;e--){let t=n.toolCalls[e];if(t?.id){if(t.errorCode===`acp_claude_oauth_missing`)return{toolUseId:t.id};if(t.errorCode===`acp_claude_auth_required`)return{toolUseId:t.id,reason:`auth_required`}}}}return null}function M(e,t){if(!e)return t;for(let t of[`command`,`cmd`,`path`,`file`,`url`]){let n=e[t];if(typeof n==`string`&&n.trim())return n.trim()}for(let t of Object.values(e))if(typeof t==`string`&&t.trim())return t.trim();try{let t=JSON.stringify(e);return t.length>120?t.slice(0,117)+`...`:t}catch{return t}}function N(e){return{toolName:e.name,riskLevel:e.riskLevel,riskReason:e.riskReason,input:e.input??{},allowlistOptions:e.riskAllowlistOptions??[],scopeOptions:e.scopeOptions??[],directoryScopeOptions:e.riskDirectoryScopeOptions??[],matchedTrustRuleId:e.matchedTrustRuleId}}var P=60,F=24,I=6e4;function L(e){let t=Math.floor((Date.now()-e)/I);if(t<1)return`just now`;if(t<P)return`${t}m ago`;let n=Math.floor(t/P);return n<F?`${n}h ago`:`${Math.floor(n/F)}d ago`}export{c as C,t as D,r as E,e as O,i as S,s as T,E as _,k as a,d as b,b as c,h as d,m as f,v as g,w as h,j as i,g as l,C as m,O as n,A as o,S as p,M as r,L as s,f as t,_ as u,N as v,a as w,l as x,u as y};
@@ -1 +0,0 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./capture-error-DiNp24s6.js";import{t as n}from"./react-BFJW0bSv.js";import{t as r}from"./button-VkxVX0DM.js";import{t as i}from"./useQuery-CTSuec5b.js";import{t as a}from"./jsx-runtime-BJ8jcmzB.js";import{t as o}from"./cn-Cf8SmgbR.js";import{t as s}from"./typography-DekrYXvs.js";import{d as c}from"./list-row-CDwzGT9g.js";import{t as l}from"./createLucideIcon-B-ZPaMbU.js";import{t as u}from"./archive-LuP5zP9E.js";import{t as d}from"./check-pgeLaeXx.js";import{t as f}from"./menu-ubIBmfUh.js";import{a as p,c as m,l as h,o as g,s as _,t as v,u as y}from"./use-attachment-preview-Cq_IWTdT.js";import{t as b}from"./download-DnnvWjPo.js";import{t as x}from"./ellipsis-4L6z7PhT.js";import{t as S}from"./external-link-B-pfCiUo.js";import{t as ee}from"./eye-off-0lRvXR9p.js";import{t as te}from"./eye-CHlTF_ct.js";import{t as C}from"./file-text-DpdlyCly.js";import{t as ne}from"./file-DVQXh8CW.js";import{t as w}from"./key-round-C51ZTEMu.js";import{t as re}from"./loader-circle-DYe85z3g.js";import{S as ie,f as T,p as ae}from"./src-CImIAPTd.js";import{n as E}from"./toast-DqqWkjsh.js";import{t as oe}from"./skeleton-D8_lkywC.js";import{r as se}from"./resolved-assistants-store-BNadgXqb.js";import{s as D}from"./i18n-C9hRT4Lf.js";import{l as ce,pt as le}from"./sdk.gen-CiE6cMi0.js";import{t as ue}from"./dist-D7UWVopK.js";import{r as de}from"./use-is-org-ready-GDBxqujc.js";import{n as fe}from"./browser-Ca2R8csw.js";import{i as O}from"./viewer-store-CwlLnf-k.js";import{a as pe,i as me,n as he,o as k,r as ge,s as _e,t as A}from"./workspace-path-links-CWERAV56.js";import{t as j}from"./open-workspace-file-CYf_Tqw3.js";import{t as ve}from"./copy-to-clipboard-D76_3Coc.js";import{a as ye,n as be,o as xe}from"./pdf-preview-6Xfl1tO1.js";import{i as Se,o as Ce,r as we}from"./use-local-file-info-DxY8jZ8F.js";import{n as Te,r as Ee}from"./workspace-tree-query-Dyls8wmV.js";import{t as De}from"./native-anchor-Bn22ZLay.js";import{i as Oe,r as ke,t as Ae}from"./external-anchor-CLy6d_za.js";var je=l(`panel-right`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M15 3v18`,key:`14nvp0`}]]),Me=l(`picture-in-picture-2`,[[`path`,{d:`M21 9V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v10c0 1.1.9 2 2 2h4`,key:`daa4of`}],[`rect`,{width:`10`,height:`7`,x:`12`,y:`13`,rx:`2`,key:`1nb8gs`}]]),M=e(n(),1),Ne=`width=500,height=600`;function N(e){if(!e)return null;let t;try{let n=typeof window>`u`?`http://localhost`:window.location.origin;t=new URL(e,n)}catch{return null}return t.protocol!==`https:`&&t.protocol!==`http:`?null:t}function P(e){let t=N(e);if(!t)return!1;let n=t.pathname.toLowerCase();return t.searchParams.get(`response_type`)===`code`&&t.searchParams.has(`client_id`)&&t.searchParams.has(`redirect_uri`)||t.searchParams.has(`client_id`)&&t.searchParams.has(`redirect_uri`)&&/oauth|authorize|auth/.test(n)}function Pe(e){if(typeof window>`u`)return null;let t=N(e);return!t||t.origin!==window.location.origin?null:`${t.pathname}${t.search}${t.hash}`}function F(e){return N(e)?.href??null}function I(e){if(!P(e))return!1;if(ue.isNativePlatform()){let t=F(e);return t?(fe(t),!0):!1}let t=window.open(e,`_blank`,Ne);return t===null?!1:(t.focus(),!0)}function Fe(e){return I(e)}function L(e){if(I(e))return!0;let t=window.open(e,`_blank`);return t===null?!1:(t.focus(),!0)}function Ie(e,t){let n=Pe(e);if(n)return t.push(n),{kind:`routed`};let r=F(e);return r?t.isNative?(fe(r),{kind:`opened`}):L(r)?{kind:`opened`}:{kind:`blocked`,url:r}:{kind:`invalid`}}var R=a(),Le=new Map([[`csv`,`csv`],[`tsv`,`csv`],[`md`,`markdown`],[`markdown`,`markdown`],[`txt`,`text`],[`log`,`text`],[`json`,`text`],[`yaml`,`text`],[`yml`,`text`],[`xml`,`text`],[`pdf`,`pdf`],[`png`,`image`],[`jpg`,`image`],[`jpeg`,`image`],[`gif`,`image`],[`webp`,`image`],[`svg`,`image`],[`avif`,`image`],[`mp3`,`audio`],[`wav`,`audio`],[`m4a`,`audio`],[`ogg`,`audio`],[`flac`,`audio`],[`mp4`,`video`],[`mov`,`video`],[`webm`,`video`],[`m4v`,`video`]]);function Re(e){let t=e.lastIndexOf(`.`);return t<=0?null:e.slice(t+1).toLowerCase()}function ze(e){let t=Re(e);return t===null?null:Le.get(t)??null}function Be(e){return ze(e)??`unsupported`}function z(e,t){return t?{mode:`preview`,assistantId:t,previewKind:Be(e)}:{mode:`workspace`}}function Ve(e,t){return z(e,t).mode!==`workspace`}function He(e,t,n){return e===`document`&&t?.source===`workspace-file-preview`&&t.workspacePath===n}function Ue(e){let t=O.use.mainView(),n=O.use.openedDocumentState();return e===null?!1:He(t,n,e)}function We(e,t,n){return Ge(e,t)===n}function Ge(e,t){return e!==`document`||t?.source!==`document`?null:t.surfaceId}function Ke(e){return We(O.use.mainView(),O.use.openedDocumentState(),e)}function qe(e,t,n){let r=z(t,n);if(r.mode===`preview`){O.getState().openWorkspaceFilePreview(e,r.previewKind);return}j(e)}function B(e,t,n){let r=O.getState();if(Ve(t,n)&&He(r.mainView,r.openedDocumentState,e)){r.closeDocument();return}qe(e,t,n)}var Je={image:m,video:_,audio:h,pdf:p,code:y,archive:u,spreadsheet:g,document:C,text:C,file:ne};function Ye(e,t){return e===`file`?be(``,t):e}function V(e){return Ce({sniffedMime:null,serverMime:null,filename:e}).kind}function H({kind:e,filename:t,className:n}){let r=Je[Ye(e,t)];return(0,R.jsx)(r,{className:n,"aria-hidden":!0})}var Xe=100*1024*1024,Ze=25*1024*1024;function Qe(e){switch(e){case`image`:case`audio`:case`video`:return Xe;default:return Ze}}var $e=1500,U=`inline-flex max-w-full min-w-0 items-center gap-1.5 rounded-lg bg-[var(--surface-overlay)] px-2 py-1 align-middle text-[0.85em] leading-tight text-[var(--content-secondary)]`,W=`shrink-0 rounded-sm p-0.5 text-[var(--content-tertiary)] transition-colors hover:text-[var(--content-secondary)] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[var(--border-focus)]`;function et({type:e,service:t,field:n,assistantId:r,neutralized:i}){let a=se.use.activeAssistantId(),o=r===void 0?a:r,[s,l]=(0,M.useState)(null),[u,f]=(0,M.useState)(!1),[p,m]=(0,M.useState)(!1),h=(0,M.useRef)(null),g=(0,M.useRef)(0),_=e??`Secret`,v=t!==void 0&&n!==void 0&&o!=null,y=v?`${t}:${n}`:_,b=(0,M.useCallback)(()=>{g.current++,l(null),f(!1),m(!1),h.current&&=(clearTimeout(h.current),null)},[]),x=(0,M.useCallback)(async()=>{if(!v)return;let e=++g.current;f(!0);try{let{data:r}=await le({path:{assistant_id:o},body:{service:t,field:n},throwOnError:!0});g.current===e&&l(r.value)}catch{g.current===e&&E.error(D(`chat:redactedCredentialChip.revealFailed`,{name:y}))}finally{g.current===e&&f(!1)}},[v,o,t,n,y]),S=(0,M.useCallback)(()=>{s!=null&&ve(s,{errorMessage:`Couldn't copy. Reveal and copy manually.`,onCopied:()=>{m(!0),h.current&&clearTimeout(h.current),h.current=setTimeout(()=>m(!1),$e)}})},[s]);if(i)return(0,R.jsxs)(`span`,{className:U,title:`Redaction marker — not verified by the assistant`,children:[(0,R.jsx)(w,{className:`h-3.5 w-3.5 shrink-0`,"aria-hidden":!0}),(0,R.jsx)(`span`,{className:`truncate`,children:`Redacted`})]});if(!v)return(0,R.jsxs)(`span`,{className:U,title:`Redacted — this value is not linked to a stored credential`,children:[(0,R.jsx)(w,{className:`h-3.5 w-3.5 shrink-0`,"aria-hidden":!0}),(0,R.jsx)(`span`,{className:`truncate`,children:_})]});let C=s!==null;return(0,R.jsxs)(`span`,{className:U,children:[(0,R.jsx)(w,{className:`h-3.5 w-3.5 shrink-0`,"aria-hidden":!0}),C?(0,R.jsx)(`span`,{className:`min-w-0 truncate font-mono text-[var(--content-default)]`,children:s}):(0,R.jsx)(`button`,{type:`button`,onClick:()=>void x(),disabled:u,"aria-label":`Reveal value for ${y}`,title:`${_} · click to reveal`,className:`min-w-0 select-none truncate rounded-sm text-left blur-[3px] transition-[filter] hover:blur-[2px] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[var(--border-focus)]`,children:y}),u?(0,R.jsx)(re,{className:`h-3.5 w-3.5 shrink-0 animate-spin`,"aria-hidden":!0}):C?(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(`button`,{type:`button`,onClick:S,"aria-label":`Copy value for ${y}`,title:`Copy value`,className:W,children:p?(0,R.jsx)(d,{className:`h-3.5 w-3.5`,"aria-hidden":!0}):(0,R.jsx)(c,{className:`h-3.5 w-3.5`,"aria-hidden":!0})}),(0,R.jsx)(`button`,{type:`button`,onClick:b,"aria-label":`Hide value for ${y}`,title:`Hide value`,className:W,children:(0,R.jsx)(ee,{className:`h-3.5 w-3.5`,"aria-hidden":!0})})]}):(0,R.jsx)(`button`,{type:`button`,onClick:()=>void x(),disabled:u,"aria-label":`Reveal value for ${y}`,title:`Click to reveal`,className:W,children:(0,R.jsx)(te,{className:`h-3.5 w-3.5`,"aria-hidden":!0})})]})}var tt=`redacted`;function nt(e){try{return decodeURIComponent(e)}catch{return}}function rt(){return RegExp(`〔${tt}:([^:\u3014\u3015]+?)(?::([A-Za-z0-9_.%-]+):([A-Za-z0-9_.%-]+))?〕`,`g`)}function it(){return RegExp(`〔\\u2060${tt}:([^:\\u3014\\u3015]+?)(?::([A-Za-z0-9_.%-]+):([A-Za-z0-9_.%-]+))?〕`,`g`)}function at(e){let[,t,n,r]=e;if(n!==void 0&&r!==void 0){let e=nt(n),i=nt(r);if(e!==void 0&&i!==void 0)return{type:t,service:e,field:i}}return{type:t}}var G=`redacted-credential`,ot=new Set([`pre`,`code`,`style`,`script`,`a`]);function st(e){return e.type===`element`}function ct(e){let t=[],n=rt(),r;for(;(r=n.exec(e))!==null;){let e=at(r);t.push({index:r.index,length:r[0].length,element:{type:`element`,tagName:G,properties:{type:e.type,...e.service!==void 0&&e.field!==void 0?{service:e.service,field:e.field}:{}},children:[]}})}let i=it();for(;(r=i.exec(e))!==null;)t.push({index:r.index,length:r[0].length,element:{type:`element`,tagName:G,properties:{neutralized:!0},children:[]}});if(t.length===0)return;t.sort((e,t)=>e.index-t.index);let a=[],o=0;for(let n of t)n.index>o&&a.push({type:`text`,value:e.slice(o,n.index)}),a.push(n.element),o=n.index+n.length;return o<e.length&&a.push({type:`text`,value:e.slice(o)}),a}function lt(e){if(st(e)&&ot.has(e.tagName))return;let t=e.children;if(t)for(let e=t.length-1;e>=0;e--){let n=t[e];if(n.type!==`text`){lt(n);continue}let r=n.value;if(!r.includes(`〔`))continue;let i=ct(r);i&&t.splice(e,1,...i)}}function ut(){return e=>{lt(e)}}var dt=new Set([`pre`,`code`,`style`,`script`]),ft=5,pt=.4,mt=`stream-word-fade`;function ht(e){return e.type===`element`}function gt(e){if(ht(e)&&dt.has(e.tagName))return;let t=e.children;if(t)for(let e=t.length-1;e>=0;e--){let n=t[e];if(n.type!==`text`){gt(n);continue}let r=n.value.match(/\S+|\s+/g);if(!r||r.length===1&&/^\s+$/.test(r[0]))continue;let i=r.map(e=>/^\s+$/.test(e)?{type:`text`,value:e}:{type:`element`,tagName:`span`,properties:{className:[mt]},children:[{type:`text`,value:e}]});t.splice(e,1,...i)}}function _t(e,t){if(ht(e)){let n=e.properties?.className;if(Array.isArray(n)&&n.includes(mt)){t.push(e);return}}if(e.children)for(let n of e.children)_t(n,t)}function vt(e){let t=e?.caughtUp??!1;return e=>{if(gt(e),t)return;let n=[];_t(e,n);let r=Math.min(ft,n.length);for(let e=0;e<r;e++){let t=n[n.length-1-e],r=(pt+(1-pt)*((e+1)/(ft+1))).toFixed(3);t.properties={...t.properties,style:`opacity:${r}`}}}}var yt=new Set([`pre`,`a`,`style`,`script`]);function bt(e){return e.type===`element`}function xt(e){if(e.children.length!==1)return;let t=e.children[0];return t.type===`text`?t.value:void 0}function St(e){let t=e.children;if(t){for(let e of t)if(bt(e)&&!yt.has(e.tagName)){if(e.tagName===`code`){let t=xt(e),n=t===void 0?null:pe(t);n!==null&&t!==void 0&&(e.tagName=A,e.properties={...e.properties,path:n,raw:t},e.children=[]);continue}St(e)}}}function Ct(){return e=>{St(e)}}var wt=15e3,Tt=1e4,Et=9e4;function Dt({path:e,raw:t,assistantId:n,onOpen:r}){let a=t??e??``,o=de(),s=!!(e&&n&&r&&o),[c]=(0,M.useState)(()=>Date.now()+Et),{data:l}=i({...Te({assistantId:n??``,path:e?_e(e):``}),enabled:s,staleTime:wt,retry:!1,refetchInterval:t=>Date.now()>=c||(t.state.data?.entries.some(t=>t.type===`file`&&t.path===e)??!1)?!1:Tt});return!(0,M.useMemo)(()=>e!=null&&(l?.entries.some(t=>t.type===`file`&&t.path===e)??!1),[l,e])||!e||!r?(0,R.jsx)(`code`,{className:T,children:a}):(0,R.jsx)(`button`,{type:`button`,onClick:()=>r(me(e),k(e)),className:`${T} cursor-pointer text-[var(--system-positive-strong)] underline decoration-dotted underline-offset-2 hover:opacity-80`,title:`Open ${e}`,children:a})}var Ot=/^[a-zA-Z][a-zA-Z0-9+.-]*:/;function kt(e){try{return decodeURIComponent(e)}catch{return null}}function At(e){return(e.split(`#`,1)[0]??``).split(`?`,1)[0]??``}function jt(e){let t=kt(At(e));if(t===null)return null;let n=t.trim();if(n.length===0||n.length>512||n.includes(`\0`))return null;let r;if(n.startsWith(`/`)){let e=n.lastIndexOf(he);if(e===-1)return null;r=n.slice(e+he.length)}else r=n.startsWith(`./`)?n.slice(2):n;return ge(r)?r:null}function Mt(e){let t=At(e.trim()).split(`/`).pop()??``;return kt(t)??t}function K(e){if(e==null)return{kind:`other`};let t=e.trim();if(t.length===0||t.startsWith(`#`))return{kind:`other`};if(t.startsWith(`//`))return{kind:`web`};let n=Ot.exec(t)?.[0];if(n){let e=n.slice(0,-1).toLowerCase();return e===`vellum`?{kind:`vellum`}:e===`http`||e===`https`?{kind:`web`}:{kind:`other`}}if(!(t.startsWith(`/`)||t.startsWith(`./`)||t.includes(`/`)))return{kind:`other`};let r=jt(t);return{kind:`local-file`,workspacePath:r,filename:r?k(r):Mt(t)}}function q({workspacePath:e,filename:t,assistantId:n,disabled:i,onPictureInPicture:a,className:s}){let c=i===!0||e===null,l=(0,M.useCallback)(()=>{e!==null&&j(e)},[e]),u=(0,M.useCallback)(async()=>{if(!(e===null||!n))try{await Ee({assistantId:n,path:e,filename:t})}catch{E.error(D(`chat:fileDownload.failed`),{description:t})}},[n,t,e]);return(0,R.jsxs)(f.Root,{children:[(0,R.jsx)(f.Trigger,{asChild:!0,children:(0,R.jsx)(r,{variant:`ghost`,size:`compact`,expandOnMobile:!1,iconOnly:(0,R.jsx)(x,{}),"aria-label":`File actions`,className:o(`shrink-0`,s),onClick:e=>e.stopPropagation(),onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&e.stopPropagation()}})}),(0,R.jsxs)(f.Content,{align:`end`,sideOffset:4,children:[(0,R.jsx)(f.Item,{leftIcon:(0,R.jsx)(S,{size:14}),disabled:c,onSelect:l,className:`whitespace-nowrap`,children:`Go to file`}),a!==void 0&&(0,R.jsx)(f.Item,{leftIcon:(0,R.jsx)(Me,{size:14}),onSelect:a,className:`whitespace-nowrap`,children:`Picture in Picture`}),(0,R.jsx)(f.Item,{leftIcon:(0,R.jsx)(b,{size:14}),disabled:c||!n,onSelect:()=>void u(),className:`whitespace-nowrap`,children:`Download`})]})]})}function Nt(e){return e===`workspace`?{label:`Open in workspace`,Icon:S}:{label:`Open preview`,Icon:je}}var Pt={workspace:`workspace`,preview:`preview`};function Ft(e,t,n){return e===`missing`?`File not found`:e===`unavailable`?`File isn't available here`:n===t?null:n}function J({displayName:e,filename:t,sizeBytes:n,kind:r,state:i,workspacePath:a,assistantId:c}){let l=i===`ready`,u=l&&a!==null,{mode:d}=z(t,c),f=d!==`workspace`,p=Ue(u?a:null)&&f,m=Ft(i,e,t),{label:h,Icon:g}=Nt(d),_=p?`Close ${Pt[d]} for ${t}`:`Open ${t}`,v=()=>{u&&B(a,t,c)};return(0,R.jsxs)(`span`,{role:u?`button`:void 0,tabIndex:u?0:void 0,"aria-label":u?_:void 0,"aria-expanded":u&&f?p:void 0,title:t,onClick:u?v:void 0,onKeyDown:u?e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),v())}:void 0,"data-reveal-row":``,className:o(`my-2 flex w-full max-w-md items-center gap-2.5 rounded-lg border p-2 transition-colors`,p?`border-[var(--border-active)] bg-[var(--surface-active)]`:`border-[var(--border-element)] bg-[var(--surface-lift)]`,u&&`cursor-pointer`),children:[(0,R.jsx)(`span`,{className:o(`flex h-9 w-9 shrink-0 items-center justify-center rounded-md`,p?`bg-[var(--surface-lift)]`:`bg-[var(--surface-sunken)]`,l?`text-[var(--content-secondary)]`:`text-[var(--content-disabled)]`),children:(0,R.jsx)(H,{kind:r,filename:t,className:`h-4 w-4`})}),(0,R.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,R.jsx)(s,{as:`span`,variant:`body-small-default`,className:o(`truncate`,p?`text-[var(--content-emphasised)]`:`text-[var(--content-default)]`),children:xe(e,40)}),m!==null&&(0,R.jsx)(s,{as:`span`,variant:`label-small-default`,className:`truncate text-[var(--content-tertiary)]`,children:m})]}),u&&!p&&(0,R.jsxs)(`span`,{"aria-hidden":`true`,"data-reveal":``,className:`flex shrink-0 items-center gap-1 text-[var(--content-tertiary)]`,children:[(0,R.jsx)(g,{className:`h-3.5 w-3.5`}),(0,R.jsx)(s,{as:`span`,variant:`label-small-default`,className:`whitespace-nowrap`,children:h})]}),n!==null&&(0,R.jsx)(s,{as:`span`,variant:`label-small-default`,className:`shrink-0 text-[var(--content-disabled)]`,children:ye(n)}),(0,R.jsx)(q,{workspacePath:a,filename:t,assistantId:c,disabled:!l})]})}var It=`vellum://workspace/`;function Lt(e){let t=e.trim().split(`/`).pop()??``;try{return decodeURIComponent(t)}catch{return t}}function Rt(e){return e.split(`/`).map(e=>{try{return decodeURIComponent(e)}catch{return e}}).join(`/`)}function Y(e){let t=e.trim();if(t.startsWith(It)){let e=Rt(t.slice(19));return{workspacePath:ge(e)?e:null,filename:k(e)}}let n=K(t);return n.kind===`local-file`?{workspacePath:n.workspacePath,filename:n.filename}:{workspacePath:null,filename:Lt(t)}}var zt=`max-h-[400px] max-w-full rounded-lg border border-[var(--border-element)] object-contain`;function Bt(){return typeof document<`u`&&`pictureInPictureEnabled`in document&&document.pictureInPictureEnabled}function Vt({children:e,menu:t}){return(0,R.jsxs)(`span`,{"data-reveal-row":``,className:`relative my-2 inline-block max-w-full align-top`,children:[e,(0,R.jsx)(`span`,{"data-reveal":``,className:`absolute right-2 top-2 rounded-md bg-[var(--surface-lift)]`,children:t})]})}function Ht({href:e,alt:t,assistantId:n}){let r=(0,M.useMemo)(()=>Y(e),[e]),i=we(r.workspacePath,n),[a,o]=(0,M.useState)(null),s=(0,M.useRef)(null),c=(0,M.useCallback)(async()=>{let e=s.current;if(e!==null){if(document.pictureInPictureElement===e){try{await document.exitPictureInPicture()}catch{}return}e.disablePictureInPicture=!1;try{await e.requestPictureInPicture()}catch{e.disablePictureInPicture=!0,E.error(D(`chat:localFileEmbed.pictureInPictureUnavailable`));return}e.addEventListener(`leavepictureinpicture`,()=>{e.disablePictureInPicture=!0},{once:!0})}},[]),l=i.status===`ready`?i:null,u=l?.filename??r.filename,d=l?.kind??V(u),f=l?.sizeBytes??null,p=l!==null&&(d===`image`||d===`video`||d===`audio`)&&!(f!==null&&f>104857600)&&a!==e,{url:m,isError:h}=Se({workspacePath:r.workspacePath,mime:l?.mime??null,enabled:p,assistantId:n}),g=t.trim().length>0?t:u,_=g.length>0?g:u,v=(0,R.jsx)(q,{workspacePath:r.workspacePath,filename:u,assistantId:n}),y=(0,R.jsx)(oe,{as:`span`,role:`status`,"aria-label":`Loading ${_}`,className:`my-2 inline-block h-7 w-40 rounded-lg align-middle`});if(n===void 0)return(0,R.jsx)(J,{displayName:g,filename:u,sizeBytes:null,kind:d,state:`ready`,workspacePath:r.workspacePath,assistantId:n});if(i.status===`loading`)return y;if(i.status===`unavailable`)return(0,R.jsx)(J,{displayName:g,filename:u,sizeBytes:null,kind:d,state:i.reason===`missing`?`missing`:`unavailable`,workspacePath:r.workspacePath,assistantId:n});let b=(0,R.jsx)(J,{displayName:g,filename:u,sizeBytes:f,kind:d,state:`ready`,workspacePath:r.workspacePath,assistantId:n});return!p||h?b:m===null?y:d===`image`?(0,R.jsx)(Vt,{menu:v,children:(0,R.jsx)(`img`,{src:m,alt:t,onError:()=>o(e),className:zt})}):d===`video`?(0,R.jsx)(Vt,{menu:(0,R.jsx)(q,{workspacePath:r.workspacePath,filename:u,assistantId:n,onPictureInPicture:Bt()?()=>void c():void 0}),children:(0,R.jsx)(`video`,{ref:s,src:m,controls:!0,controlsList:`nodownload noplaybackrate`,disablePictureInPicture:!0,playsInline:!0,preload:`metadata`,"aria-label":_,className:zt})}):d===`audio`?(0,R.jsxs)(`span`,{className:`my-2 flex w-full max-w-md items-center gap-2`,children:[(0,R.jsx)(`audio`,{src:m,controls:!0,controlsList:`nodownload noplaybackrate`,preload:`metadata`,"aria-label":_,className:`min-w-0 flex-1`}),v]}):b}function X({href:e,workspacePath:t,assistantId:n,children:r,onActivate:i}){let a=t===null?Lt(e):k(t);return(0,R.jsxs)(`a`,{href:e,onClick:e=>{if(e.preventDefault(),i){i();return}if(t===null){E.error(D(`chat:localFileLink.unavailable`));return}B(t,a,n)},className:`inline-flex items-baseline gap-1 cursor-pointer text-[var(--system-positive-strong)] underline hover:opacity-80`,children:[(0,R.jsx)(H,{kind:V(a),filename:a,className:`h-3.5 w-3.5 shrink-0 self-center`}),r]})}function Z(e){return e!=null&&(e.startsWith(`vellum://workspace/`)||e.startsWith(`vellum://host/`))}function Ut(e){return Z(e)?e:ie(e)}function Wt({href:e,children:t}){return(0,R.jsxs)(`a`,{href:e,target:`_blank`,rel:P(e)?void 0:`noopener noreferrer`,onClick:t=>{if(Fe(e)){t.preventDefault();return}De(t,e)},className:Ae,children:[t,Oe(e)?(0,R.jsx)(ke,{}):null]})}function Q(e){return typeof e==`string`?e:typeof e==`number`?String(e):Array.isArray(e)?e.map(Q).join(``):(0,M.isValidElement)(e)?Q(e.props.children):``}var Gt=`my-2 max-w-full max-h-[400px] rounded-lg border border-[var(--border-element)] object-contain`;function $({alt:e}){return(0,R.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded bg-[var(--surface-sunken)] px-1.5 py-0.5 text-body-small-default text-[var(--content-tertiary)]`,children:[`Image failed to load`,e?` (${e})`:``]})}function Kt({src:e,alt:t}){let[n,r]=(0,M.useState)(!1);return n?(0,R.jsx)($,{alt:t}):(0,R.jsx)(`img`,{src:e,alt:t,onError:()=>r(!0),className:Gt})}function qt(e){try{return decodeURIComponent(e)}catch{return e}}function Jt(e,t){let n=qt(e.split(`/`).pop()??``),r=t?.find(e=>e.filename===n);if(!r)return;let i=r.mimeType;if(!(i===void 0||!i.startsWith(`image/`)))return r}function Yt({attachment:e,alt:n,assistantId:r,onOpenPreview:i}){let[a,o]=(0,M.useState)(null),[s,c]=(0,M.useState)(!1);if((0,M.useEffect)(()=>{if(!r||e.id.startsWith(`rehydrated:`))return;let n=!1;return(async()=>{try{let{data:t,error:i}=await ce({path:{assistant_id:r,id:e.id},parseAs:`blob`,throwOnError:!1});if(n)return;if(i||!(t instanceof Blob)){c(!0);return}o(URL.createObjectURL(t))}catch(e){n||(c(!0),t(e,{context:`WorkspaceInlineImage`,bestEffort:!0}))}})(),()=>{n=!0,o(e=>(e&&URL.revokeObjectURL(e),null))}},[e,r]),s)return(0,R.jsx)($,{alt:n||e.filename});if(!a)return(0,R.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded bg-[var(--surface-sunken)] px-1.5 py-0.5 text-body-small-default text-[var(--content-tertiary)]`,children:[`Loading image…`,n?` (${n})`:``]});let l=(0,R.jsx)(`img`,{src:a,alt:n,className:Gt});return i?(0,R.jsx)(`button`,{type:`button`,onClick:()=>i(e),className:`cursor-zoom-in appearance-none border-0 bg-transparent p-0`,"aria-label":n?`Expand image: ${n}`:`Expand image`,children:l}):l}var Xt=(0,M.memo)(function({content:e,className:t,hardLineBreaks:n,onVellumLinkClick:r,attachments:i,assistantId:a,streamWordFade:o,redactedCredentialChips:s,workspacePathLinks:c}){let{openPreview:l,previewModal:u}=v(a,i),d=(0,M.useCallback)((e,t)=>{let{workspacePath:n,filename:i}=Y(e);if(a&&n!==null){B(n,i,a);return}r?.(e,t)},[a,r]),f=(0,M.useCallback)(({href:e,children:t})=>{if(e!=null&&Z(e)){let{workspacePath:n}=Y(e);return(0,R.jsx)(X,{href:e,workspacePath:n,assistantId:a??void 0,onActivate:r&&!(a&&n!==null)?()=>r(e,Q(t)):void 0,children:t})}let n=K(e);if(e!=null&&n.kind===`local-file`){let{workspacePath:i}=n;return(0,R.jsx)(X,{href:e,workspacePath:i,assistantId:a??void 0,onActivate:r&&i!==null&&!a?()=>r(me(i),Q(t)):void 0,children:t})}return(0,R.jsx)(Wt,{href:e,children:t})},[r,a]),p=(0,M.useMemo)(()=>[...s?[ut]:[],...c&&r?[Ct]:[],...o?[[vt,{caughtUp:o===`caughtUp`}]]:[]],[s,o,c,r]),m=(0,M.useMemo)(()=>({src:e,alt:t})=>{let n=(0,R.jsx)(Ht,{href:e,alt:t,assistantId:a??void 0});if(Z(e)){let r=Jt(e,i);return r?(0,R.jsx)(Yt,{attachment:r,alt:t,assistantId:a,onOpenPreview:l}):n}return K(e).kind===`local-file`?n:e.length===0?(0,R.jsx)($,{alt:t}):(0,R.jsx)(Kt,{src:e,alt:t})},[i,a,l]),h=(0,M.useMemo)(()=>({[G]:e=>(0,R.jsx)(et,{...e,assistantId:a},`${a??``}\u0000${e.service??``}\u0000${e.field??``}`),[A]:e=>(0,R.jsx)(Dt,{...e,assistantId:a,onOpen:r?d:void 0})}),[a,r,d]);return(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(ae,{content:e,className:t,hardLineBreaks:n,linkComponent:f,imageComponent:m,urlTransform:Ut,extraRehypePlugins:p,extraComponents:s||c&&r?h:void 0}),u]})});export{We as a,Ie as c,V as i,L as l,Qe as n,Ge as o,H as r,Ke as s,Xt as t};
@@ -1 +0,0 @@
1
- import{t as e}from"./client-feature-flag-store-CT2T_Fg7.js";import{w as t}from"./native-biometric-D9IxNvJM.js";function n(){let t=e.use.marketingPricingTakeover(),n=e.use.hydrated();return t?`enabled`:n?`disabled`:`pending`}var r=`continue`;function i(e,n){return t(e.get(r),n)}export{i as n,n as r,r as t};
@@ -1 +0,0 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-VkxVX0DM.js";import{d as r,h as i,t as a}from"./chunk-5KNZJZUH-BUqIilZr.js";import{n as o}from"./QueryClientProvider-EuRl-wrW.js";import{t as s}from"./useMutation-D2YPyfEH.js";import{t as c}from"./jsx-runtime-BJ8jcmzB.js";import{t as l}from"./loader-circle-DYe85z3g.js";import{l as u,tt as d,u as f}from"./auth-store-CVtcHK0b.js";import{C as p,b as m,y as h}from"./native-biometric-D9IxNvJM.js";import{d as g}from"./routes-B7wRw3UT.js";import{p as _}from"./platform-detection-zth6eCY8.js";import{a as v}from"./use-platform-gate-DG9Xg3Hs.js";import{i as y}from"./use-is-org-ready-GDBxqujc.js";import{n as b}from"./browser-Ca2R8csw.js";import{gt as x}from"./react-query.gen-CwRPAiHT.js";import{t as S}from"./checkout-return-target-_Y86sfo0.js";import{n as C,r as w}from"./checkout-continuation-BvY4Kjz7.js";var T=e(t(),1),E=c();function D(){m(),f()}function O(){let e=r(),[t]=i(),c=t.get(`package`)??``,f=(0,T.useMemo)(()=>c?null:h(t),[c,t]),m=v(),_=y(),O=w(),k=C(t,g.plans),A=k===g.plans?`View plans`:`Continue setup`,j=o(),{mutateAsync:M}=s(x()),[N,P]=(0,T.useState)(!1),[F,I]=(0,T.useState)(!1),L=(0,T.useRef)(`idle`),R=(0,T.useCallback)(async()=>{L.current=`running`,P(!1),I(!1);let t=S();try{let n=await M({body:f?{target_plan_id:`pro`,confirm:!0,machine_tier:f.machineTier,storage_tier:f.storageTier,credit_tier:f.creditTier,return_target:t}:{target_plan_id:`pro`,package:c,confirm:!0,return_target:t}});if(L.current!==`running`)return;if(n.status===`redirect`&&n.checkout_url){L.current=`handed_off`,p(f?{kind:`custom`,machineTier:f.machineTier,storageTier:f.storageTier,creditTier:f.creditTier}:{kind:`package`,packageKey:c}),u(j),I(t===`native`),b(n.checkout_url);return}L.current=`settled`,D(),e(k===g.plans&&c?g.plansForPackage(c):k,{replace:!0})}catch{if(L.current!==`running`)return;L.current=`settled`,P(!0)}},[k,f,M,e,c,j]),z=(0,T.useCallback)(()=>{if(_===`ready`){R();return}L.current=`idle`,P(!1),I(!1),_===`unavailable`&&d.getState().fetchOrganizations()},[_,R]);return(0,T.useEffect)(()=>{if(!c&&!f||m===`disabled`||m===`gated`||O===`disabled`){if(L.current===`handed_off`)return;L.current=`settled`,D(),e(k,{replace:!0});return}if(!(O!==`enabled`||m!==`full`||L.current!==`idle`)&&_!==`resolving`){if(_===`unavailable`){L.current=`settled`,P(!0);return}R()}},[k,f,m,e,_,c,R,O]),N?(0,E.jsxs)(`div`,{className:`flex h-full w-full flex-col items-center justify-center gap-4 px-6 text-center`,children:[(0,E.jsx)(`p`,{className:`text-[var(--content-default)]`,children:`We couldn’t start your checkout. Please try again.`}),(0,E.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,E.jsx)(n,{onClick:z,children:`Try again`}),(0,E.jsx)(a,{to:k,onClick:D,className:`text-sm text-[var(--content-tertiary)] underline`,children:A})]})]}):F?(0,E.jsxs)(`div`,{className:`flex h-full w-full flex-col items-center justify-center gap-4 px-6 text-center`,children:[(0,E.jsx)(`p`,{className:`text-[var(--content-default)]`,children:`Checkout opened in your browser. Finish there to complete your upgrade.`}),(0,E.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,E.jsx)(n,{onClick:z,children:`Reopen checkout`}),(0,E.jsx)(a,{to:k,className:`text-sm text-[var(--content-tertiary)] underline`,children:A})]})]}):(0,E.jsxs)(`div`,{className:`flex h-full w-full flex-col items-center justify-center gap-3`,children:[(0,E.jsx)(l,{className:`h-6 w-6 animate-spin text-[var(--content-tertiary)]`,"aria-label":`Preparing checkout`}),(0,E.jsx)(`p`,{className:`text-sm text-[var(--content-tertiary)]`,children:`Preparing checkout…`})]})}function k(){let e=r(),[t]=i(),n=C(t,g.settings.usageBilling);return(0,T.useEffect)(()=>{D(),e(n,{replace:!0})},[e,n]),null}function A(){return _()?(0,E.jsx)(k,{}):(0,E.jsx)(O,{})}export{A as CheckoutPage};
@@ -1 +0,0 @@
1
- import{t as e}from"./dist-D7UWVopK.js";import{r as t}from"./platform-detection-zth6eCY8.js";function n(){return t()===`macos`||e.isNativePlatform()?`native`:`web`}export{n as t};
@@ -1 +0,0 @@
1
- var e={badge:`Error 404`,title:`Página no encontrada`,body:`La página que buscas no existe o puede haberse movido.`,backToAssistant:`Volver a tu asistente`,goBack:`Atrás`},t={notFound:e};export{t as default,e as notFound};
@@ -1 +0,0 @@
1
- import{t as e}from"./button-VkxVX0DM.js";import{t}from"./jsx-runtime-BJ8jcmzB.js";import{t as n}from"./card-DUsAeHUS.js";import{t as r}from"./createLucideIcon-B-ZPaMbU.js";import{r as i}from"./middleware-DbQtrfxY.js";import{t as a}from"./bug-DSXaice2.js";import{t as o}from"./external-link-B-pfCiUo.js";import{t as s}from"./globe-COrlg99x.js";import{t as c}from"./heart-Bd-pnn1X.js";import{t as l}from"./play-dZ2h3AT7.js";import{t as u}from"./sparkles-Bhr0JiLM.js";import{c as d,i as f,l as p,n as m,u as h}from"./use-discord-nudge-C5OzjNEk.js";import{t as g}from"./users-BHqL5Ion.js";import{t as _}from"./tag-Ddzwz3ij.js";import{t as v}from"./external-urls-Bg18AU4S.js";var y=r(`git-pull-request`,[[`circle`,{cx:`18`,cy:`18`,r:`3`,key:`1xkwt0`}],[`circle`,{cx:`6`,cy:`6`,r:`3`,key:`1lh9wr`}],[`path`,{d:`M13 6h3a2 2 0 0 1 2 2v7`,key:`1yeb86`}],[`line`,{x1:`6`,x2:`6`,y1:`9`,y2:`21`,key:`rroup`}]]),b=t();function x({size:e=24,className:t,style:n}){return(0,b.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,width:e,height:e,fill:`currentColor`,className:t,style:n,"aria-hidden":!0,children:(0,b.jsx)(`path`,{d:`M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12`})})}function S({size:e=24,className:t,style:n}){return(0,b.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,width:e,height:e,fill:`currentColor`,className:t,style:n,"aria-hidden":!0,children:(0,b.jsx)(`path`,{d:`M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z`})})}function C({size:e=24,className:t,style:n}){return(0,b.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,width:e,height:e,fill:`currentColor`,className:t,style:n,"aria-hidden":!0,children:(0,b.jsx)(`path`,{d:`M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814ZM9.545 15.568V8.432L15.818 12l-6.273 3.568Z`})})}function w(){return(0,b.jsx)(n,{padding:`lg`,className:`bg-[var(--surface-lift)]`,children:(0,b.jsxs)(`div`,{className:`relative`,children:[(0,b.jsx)(`div`,{className:`pointer-events-none absolute -right-16 -top-16 h-64 w-64 rounded-full opacity-30 blur-3xl`,style:{background:`radial-gradient(circle, var(--system-mid-weak) 0%, transparent 70%)`},"aria-hidden":!0}),(0,b.jsxs)(`div`,{className:`relative flex flex-col items-start gap-3`,children:[(0,b.jsxs)(_,{tone:`neutral`,children:[(0,b.jsx)(l,{className:`h-3.5 w-3.5`}),`Community`]}),(0,b.jsx)(`h1`,{className:`text-[28px] font-semibold leading-tight tracking-tight text-[var(--content-emphasised)]`,children:`Build with us, in the open.`}),(0,b.jsx)(`p`,{className:`max-w-xl text-body-medium-default text-[color:var(--content-tertiary)]`,children:`Vellum is built in the open with a growing community of developers, designers, and tinkerers. Here's how to get involved.`})]})]})})}function T({icon:e,text:t}){return(0,b.jsxs)(`li`,{className:`flex items-center gap-3`,children:[(0,b.jsx)(`span`,{className:`flex size-7 shrink-0 items-center justify-center rounded-md bg-[var(--surface-base)]`,children:(0,b.jsx)(e,{size:14,className:`text-[var(--content-secondary)]`,"aria-hidden":!0})}),(0,b.jsx)(`span`,{className:`text-body-medium-lighter text-[color:var(--content-secondary)]`,children:t})]})}function E({accentColor:t,iconColor:r=`var(--aux-white)`,label:a,icon:o,title:s,subtitle:c,benefits:l,primaryAction:u,secondaryAction:d}){return(0,b.jsx)(n,{padding:`lg`,className:`flex-1`,children:(0,b.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,b.jsxs)(`div`,{className:`flex items-start justify-between`,children:[(0,b.jsx)(`span`,{className:`flex size-10 items-center justify-center rounded-lg`,style:{backgroundColor:t,color:r},children:o}),(0,b.jsx)(`span`,{className:`text-label-medium-default uppercase tracking-wider text-[color:var(--content-tertiary)]`,children:a})]}),(0,b.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,b.jsx)(`h2`,{className:`text-title-medium text-[var(--content-emphasised)]`,children:s}),(0,b.jsx)(`p`,{className:`text-body-medium-lighter text-[color:var(--content-tertiary)]`,children:c})]}),(0,b.jsx)(`ul`,{className:`flex flex-col gap-3`,children:l.map(({icon:e,text:t})=>(0,b.jsx)(T,{icon:e,text:t},t))}),(0,b.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,b.jsxs)(e,{onClick:u.onClick,children:[u.icon,u.label]}),d&&(0,b.jsxs)(e,{variant:`ghost`,onClick:()=>window.open(d.href,`_blank`,`noopener,noreferrer`),children:[d.label,(0,b.jsx)(i,{className:`h-3.5 w-3.5`})]})]})]})})}function D({icon:e,iconBg:t,iconColor:r=`white`,title:i,description:a,href:s}){return(0,b.jsx)(`a`,{href:s,target:`_blank`,rel:`noopener noreferrer`,className:`flex flex-1 cursor-pointer`,children:(0,b.jsx)(n,{className:`flex-1 transition-shadow hover:shadow-md`,padding:`lg`,children:(0,b.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,b.jsxs)(`div`,{className:`flex items-start justify-between`,children:[(0,b.jsx)(`span`,{className:`flex size-10 items-center justify-center rounded-lg`,style:{backgroundColor:t,color:r},children:e}),(0,b.jsx)(o,{size:14,className:`text-[var(--content-tertiary)]`,"aria-hidden":!0})]}),(0,b.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,b.jsx)(`span`,{className:`text-title-medium text-[var(--content-emphasised)]`,children:i}),(0,b.jsx)(`p`,{className:`text-body-medium-lighter text-[color:var(--content-tertiary)]`,children:a})]})]})})})}function O(){let{handleStar:e}=d();return(0,b.jsxs)(`div`,{className:`space-y-6`,children:[(0,b.jsx)(w,{}),(0,b.jsxs)(`div`,{className:`grid grid-cols-1 gap-4 md:grid-cols-2`,children:[(0,b.jsx)(E,{accentColor:`var(--content-emphasised)`,iconColor:`var(--surface-base)`,label:`Open Source`,icon:(0,b.jsx)(x,{size:20}),title:`Vellum is open source`,subtitle:`Read the source, star the repo, and contribute fixes and features on GitHub.`,benefits:[{icon:h,text:`Star the repo to follow updates`},{icon:a,text:`Open issues and report bugs`},{icon:y,text:`Contribute fixes and new features`}],primaryAction:{label:`Star on GitHub`,icon:(0,b.jsx)(h,{size:16}),onClick:e},secondaryAction:{label:`View source`,href:f}}),(0,b.jsx)(E,{accentColor:`#5865F2`,label:`Discord`,icon:(0,b.jsx)(p,{size:20}),title:`Join our community`,subtitle:`Talk to the team, share feedback, request features, and get answers faster.`,benefits:[{icon:c,text:`Talk directly with the team`},{icon:u,text:`Share feedback and request features`},{icon:g,text:`Get answers faster from the community`}],primaryAction:{label:`Join Discord`,icon:(0,b.jsx)(p,{size:16,style:{color:`currentColor`}}),onClick:m}})]}),(0,b.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,b.jsx)(`h2`,{className:`text-label-medium-default uppercase tracking-wider text-[color:var(--content-tertiary)]`,children:`More from Vellum`}),(0,b.jsxs)(`div`,{className:`grid grid-cols-1 gap-4 md:grid-cols-3`,children:[(0,b.jsx)(D,{icon:(0,b.jsx)(s,{size:20}),iconBg:`#22c55e`,title:`Community Hub`,description:`Showcases, guides, and projects shared by the community.`,href:v}),(0,b.jsx)(D,{icon:(0,b.jsx)(S,{size:20}),iconBg:`var(--content-default)`,iconColor:`var(--surface-base)`,title:`Follow on X`,description:`Product updates, releases, and behind-the-scenes.`,href:`https://x.com/vellum_ai`}),(0,b.jsx)(D,{icon:(0,b.jsx)(C,{size:20}),iconBg:`#ef4444`,title:`YouTube channel`,description:`Walkthroughs, tutorials, and product deep-dives.`,href:`https://www.youtube.com/@Vellum_AI`})]})]})]})}export{O as CommunityPage};
@@ -1 +0,0 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./jsx-runtime-BJ8jcmzB.js";import{t as r}from"./arrow-up-BiLIdQeR.js";import{c as i,l as a,n as o,o as s,s as c}from"./desktop-voice-activity-D1BSf0I-.js";import{t as l}from"./check-pgeLaeXx.js";import{t as u}from"./mic-yJxjqdDR.js";import{t as d}from"./volume-2-C9nj0NKL.js";import{t as f}from"./x-zfSDUG5z.js";import{a as p,c as m,i as h,l as g,r as _,s as v,t as y,u as b}from"./companion-surface-CZHv2avR.js";import{t as x}from"./avatar-bundled-components-C8vOxkFj.js";import{t as S}from"./animated-avatar-DsEiCrtA.js";var C=e(t(),1),w=n(),T=`#5eead4`,E=new Set([`transcribing`,`thinking`,`speaking`]),D=44,O=28,k=8,A={resting:D,hover:188,call:296,typing:360},j=360,M=220;function N({phase:e,turns:t=[],assistantName:n=`your assistant`,glow:r=!0,accentHex:i=T,avatarSrc:a,character:o,hovered:s=!1,onHoverStart:c,onHoverEnd:l,growth:u=`right`,rootRef:d,onSurfaceMouseDown:f,spotlight:p,onTalk:m,onType:h,onSubmit:g,onCancelTyping:_,onAvatarClick:v,working:y=!1,call:b,onControl:x}){let S=e!==`resting`,O=e===`typing`,M=y||b!==void 0&&E.has(b.phase),N=(0,C.useRef)(null),[z,B]=(0,C.useState)(null);(0,C.useLayoutEffect)(()=>{let e=N.current;if(!e)return;let t=()=>{B(e.scrollWidth)};t();let n=new ResizeObserver(t);return n.observe(e),()=>{n.disconnect()}},[e]);let V={width:O?j:D+(S?(z??A[e]-D)+k:0),...u===`left`?{right:`50%`,marginRight:-(D/2)}:{left:`50%`,marginLeft:-(D/2)},transform:O?`translateY(calc(-100% + ${D/2}px))`:`translateY(-50%)`,transitionTimingFunction:`cubic-bezier(.2,.8,.2,1)`,"--accent":i};return(0,w.jsxs)(`div`,{className:`absolute top-1/2 cursor-grab transition-[width] duration-300 will-change-[width] active:cursor-grabbing ${O?`flex flex-col rounded-[22px]`:`flex h-11 items-center rounded-full`} ${u===`left`&&!O?`flex-row-reverse`:``}`,style:V,onMouseLeave:l,onMouseDown:f,ref:d,children:[(0,w.jsx)(`span`,{className:`absolute inset-0 border border-white/10 bg-[#17181b]/95 shadow-lg shadow-black/40 transition-opacity duration-200 ${O?`rounded-[22px]`:`rounded-full`}`,style:{opacity:+!!S},"aria-hidden":!0}),M&&(0,w.jsx)(`span`,{className:`companion-working-ring pointer-events-none absolute -inset-0.5 ${O?`rounded-[24px]`:`rounded-full`}`,style:{"--companion-ring-accent":i},"aria-hidden":!0}),O&&t.length>0&&(0,w.jsx)(P,{turns:t}),(0,w.jsxs)(`div`,{className:`relative flex h-11 shrink-0 items-center`,children:[(0,w.jsx)(I,{glow:r&&!S,accentHex:i,avatarSrc:a,character:o,attentive:s,busy:M,onMouseEnter:c,onClick:v}),O?(0,w.jsx)(F,{assistantName:n,onSubmit:g,onCancel:_}):(0,w.jsx)(`div`,{className:`relative flex min-w-0 items-center gap-1 overflow-hidden transition-opacity duration-200`,ref:N,inert:!S,style:{opacity:+!!S,transitionDelay:S?`120ms`:`0ms`},children:e===`call`?(0,w.jsx)(R,{call:b,onControl:x}):(0,w.jsx)(L,{spotlight:p,onTalk:m,onType:h})})]})]})}function P({turns:e}){let t=(0,C.useRef)(null);return(0,C.useEffect)(()=>{let e=t.current;e&&(e.scrollTop=e.scrollHeight)},[e]),(0,w.jsx)(`div`,{ref:t,className:`relative flex flex-col gap-1.5 overflow-y-auto px-3 pt-3 pb-1`,style:{maxHeight:M},children:e.map((e,t)=>{let n=e.role===`user`;return(0,w.jsx)(`div`,{className:`flex shrink-0 ${n?`justify-end`:`justify-start`}`,children:(0,w.jsx)(`p`,{className:`text-[12px] leading-[1.45] whitespace-pre-wrap ${n?`max-w-[80%] rounded-lg bg-white/[0.08] px-2.5 py-1.5 text-white/75`:`text-white/85`}`,children:e.text})},`${e.role}-${t}`)})})}function F({assistantName:e,onSubmit:t,onCancel:n}){let[i,a]=(0,C.useState)(``),o=(0,C.useRef)(null),s=i.trim();(0,C.useEffect)(()=>{o.current?.focus()},[]);let c=()=>{s!==``&&(a(``),t?.(s))};return(0,w.jsxs)(`div`,{className:`relative flex min-w-0 flex-1 items-center gap-1 pr-2`,children:[(0,w.jsx)(`input`,{ref:o,type:`text`,value:i,placeholder:`Message ${e}`,onChange:e=>{a(e.target.value)},onKeyDown:e=>{if(e.key===`Enter`){e.preventDefault(),c();return}e.key===`Escape`&&(e.preventDefault(),n?.())},onMouseDown:e=>{e.stopPropagation()},className:`min-w-0 flex-1 bg-transparent text-[12px] text-white/85 placeholder:text-white/40 focus:outline-none`}),(0,w.jsx)(`button`,{type:`button`,"aria-label":s===``?`Go back`:`Send`,title:s===``?`Go back`:`Send`,onClick:s===``?n:c,onMouseDown:e=>{e.stopPropagation()},className:`grid size-7 shrink-0 place-items-center rounded-full bg-white/10 text-white/85 transition-colors hover:bg-white/20`,children:s===``?(0,w.jsx)(f,{className:`size-3.5`,"aria-hidden":!0}):(0,w.jsx)(r,{className:`size-3.5`,"aria-hidden":!0})})]})}function I({glow:e,accentHex:t,avatarSrc:n,character:r,busy:i=!1,attentive:a=!1,onMouseEnter:o,onClick:s}){return(0,w.jsxs)(`div`,{className:`relative grid size-11 shrink-0 place-items-center`,onMouseEnter:o,onClick:s,children:[e&&(0,w.jsx)(`span`,{className:`absolute size-10 animate-pulse rounded-full blur-lg`,style:{background:t,opacity:.4},"aria-hidden":!0}),r===void 0?n===void 0?(0,w.jsx)(`span`,{className:`relative size-7 rounded-full drop-shadow-[0_1px_3px_rgba(0,0,0,0.55)]`,style:{background:t},"aria-hidden":!0}):(0,w.jsx)(`img`,{src:n,alt:``,draggable:!1,className:`relative size-7 rounded-full object-contain drop-shadow-[0_1px_3px_rgba(0,0,0,0.55)] [-webkit-user-drag:none]`}):(0,w.jsx)(`div`,{className:`relative drop-shadow-[0_1px_3px_rgba(0,0,0,0.55)]`,children:(0,w.jsx)(S,{components:x,traits:r,size:O,isAssistantBusy:i,attentive:a})})]})}function L({spotlight:e,onTalk:t,onType:n}){return(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(B,{icon:(0,w.jsx)(a,{className:`size-4`}),label:`Talk`,showLabel:!0,active:e===`talk`,onClick:t}),(0,w.jsx)(B,{icon:(0,w.jsx)(i,{className:`size-4`}),label:`Type`,showLabel:!0,active:e===`type`,onClick:n})]})}function R({call:e,onControl:t}){if(e!==void 0&&e.approvalRequestId!==``)return(0,w.jsx)(z,{detail:e.detail,requestId:e.approvalRequestId,onControl:t});let n=e===void 0?`Listening`:e.detail||e.label,r=e?.muted??!1,i=e?.outputMuted??!1;return(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(`span`,{className:`ml-1 max-w-[120px] shrink-0 truncate text-[12px] text-white/85`,children:n}),(0,w.jsx)(B,{icon:r?(0,w.jsx)(c,{className:`size-4`}):(0,w.jsx)(u,{className:`size-4`}),label:r?`Unmute microphone`:`Mute microphone`,onClick:()=>{t?.(r?`unmuteMicrophone`:`muteMicrophone`)}}),(0,w.jsx)(B,{icon:i?(0,w.jsx)(s,{className:`size-4`}):(0,w.jsx)(d,{className:`size-4`}),label:i?`Unmute assistant`:`Mute assistant`,onClick:()=>{t?.(i?`unmuteAssistantAudio`:`muteAssistantAudio`)}}),(0,w.jsx)(B,{icon:(0,w.jsx)(f,{className:`size-4`,strokeWidth:2.5}),label:`End session`,tone:`negative`,onClick:()=>{t?.(`endSession`)}})]})}function z({detail:e,requestId:t,onControl:n}){return(0,w.jsxs)(w.Fragment,{children:[e!==``&&(0,w.jsx)(`span`,{className:`ml-1 max-w-[120px] shrink-0 truncate text-[12px] text-white/85`,children:e}),(0,w.jsx)(B,{icon:(0,w.jsx)(l,{className:`size-4`}),label:`Allow`,showLabel:!0,tone:`positive`,onClick:()=>{n?.(`approveRequest`,t)}}),(0,w.jsx)(B,{icon:(0,w.jsx)(f,{className:`size-4`}),label:`Deny`,showLabel:!0,tone:`negative`,onClick:()=>{n?.(`denyRequest`,t)}})]})}function B({icon:e,label:t,tone:n,showLabel:r=!1,active:i=!1,onClick:a}){return(0,w.jsxs)(`button`,{type:`button`,"aria-label":t,title:t,onClick:a,onMouseDown:e=>{e.stopPropagation()},className:`flex h-7 shrink-0 items-center gap-1.5 rounded-full px-2 text-[12px] transition-colors hover:bg-white/15 ${i?`bg-white/15`:``} ${n===`negative`?`text-[#ff6b6b]`:n===`positive`?`text-[#5ee08a]`:`text-white/85`}`,children:[e,r&&(0,w.jsx)(`span`,{children:t})]})}var V=3;function H(){let[e,t]=(0,C.useState)(`right`),[n,r]=(0,C.useState)(),[i,a]=(0,C.useState)(),[s,c]=(0,C.useState)(null),[l,u]=(0,C.useState)([]),[d,f]=(0,C.useState)(``),[x,S]=(0,C.useState)(!1),[T,E]=(0,C.useState)(!1),[D,O]=(0,C.useState)(!1),[k,A]=(0,C.useState)(!1),j=(0,C.useRef)(!1),M=(0,C.useRef)(null),P=(0,C.useRef)(null),F=(0,C.useRef)(null),I=(0,C.useRef)(!1);(0,C.useEffect)(()=>{let e=e=>{t(e.growth),r(e.avatarBase64===void 0?void 0:`data:image/png;base64,${e.avatarBase64}`),a(e.character),c(e.call),u(e.turns),f(e.assistantName),S(e.working)},n=b(e);return _().then(t=>{t&&e(t)}),n},[]),(0,C.useEffect)(()=>()=>{v(!1),p(!1)},[]),(0,C.useEffect)(()=>{p(D)},[D]);let L=e=>{j.current!==e&&(j.current=e,v(e))};return(0,w.jsx)(`div`,{className:`relative h-screen w-screen bg-transparent`,onMouseMove:e=>{if(P.current!==null&&e.buttons===0&&(P.current=null),P.current!==null){let{x:t,y:n}=P.current;h(e.screenX-t,e.screenY-n),P.current={x:e.screenX,y:e.screenY};let r=F.current;r!==null&&Math.abs(e.screenX-r.x)+Math.abs(e.screenY-r.y)>V&&(I.current=!0);return}let t=M.current;if(!t)return;let n=t.getBoundingClientRect(),r=e.clientX>=n.left&&e.clientX<=n.right&&e.clientY>=n.top&&e.clientY<=n.bottom;E(r),L(r)},onMouseUp:()=>{P.current=null},onMouseLeave:()=>{P.current=null,E(!1),L(!1)},children:(0,w.jsx)(N,{phase:D?`typing`:s===null?T?`hover`:`resting`:`call`,growth:e,avatarSrc:n,character:i,hovered:T,accentHex:s!==null&&/^#[0-9a-f]{6}$/i.test(s.accentHex)?s.accentHex:void 0,turns:k?l:[],assistantName:d===``?void 0:d,call:s??void 0,working:x,rootRef:M,onSurfaceMouseDown:e=>{P.current={x:e.screenX,y:e.screenY},F.current={x:e.screenX,y:e.screenY},I.current=!1},onAvatarClick:()=>{I.current||y()},onTalk:m,onType:()=>{O(!0)},onSubmit:e=>{k||(u([]),A(!0)),g(e,!k)},onCancelTyping:()=>{O(!1),E(!1),L(!1),A(!1)},onControl:(e,t)=>{o(t===void 0?{action:e}:{action:e,requestId:t})}})})}export{H as CompanionSurfacePage};
@@ -1 +0,0 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{c as t,r as n,s as r,t as i}from"./local-settings-Bx7FsNo5.js";import{s as a}from"./device-settings-DZvv4pnY.js";import{t as o}from"./capture-error-DiNp24s6.js";import{t as s}from"./react-BFJW0bSv.js";import{t as c}from"./button-VkxVX0DM.js";import{t as l}from"./jsx-runtime-BJ8jcmzB.js";import{t as u}from"./createLucideIcon-B-ZPaMbU.js";import{t as d}from"./checkbox-CyG1nZhR.js";import{t as f}from"./triangle-alert-43gIbLca.js";import{t as p}from"./notice-BlYF-xU3.js";import"./src-CImIAPTd.js";import{t as m}from"./modal-UYNawsIu.js";import{i as h,t as g}from"./api-Cx3i50oG.js";import{t as _}from"./client-feature-flag-store-CT2T_Fg7.js";import{i as v,t as y}from"./dist-D7UWVopK.js";import{a as b,i as x}from"./typed-storage-BNw603jr.js";import{n as S,r as C,t as ee}from"./theme-preferences-CAlH0BJX.js";import{t as w}from"./use-bus-subscription-BuhDYgS1.js";import{o as te}from"./funnel-events-BP3XPaB5.js";var T=u(`package`,[[`path`,{d:`M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z`,key:`1a0edw`}],[`path`,{d:`M12 22V12`,key:`d0xqtd`}],[`polyline`,{points:`3.29 7 12 12 20.71 7`,key:`ousv84`}],[`path`,{d:`m7.5 4.27 9 5.15`,key:`1c824w`}]]),ne=u(`rocket`,[[`path`,{d:`M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5`,key:`qeys4`}],[`path`,{d:`M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09`,key:`u4xsad`}],[`path`,{d:`M9 12a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.4 22.4 0 0 1-4 2z`,key:`676m9`}],[`path`,{d:`M9 12H4s.55-3.03 2-4c1.62-1.08 5 .05 5 .05`,key:`92ym6u`}]]),E=e(s(),1),D=`NativeLaunchScreen`,O=v(D);function k(e){return e===`velvet`?`dark`:e}function A(){return y.isNativePlatform()&&y.getPlatform()===`android`&&y.isPluginAvailable(D)}async function j(e){if(A())try{await O.ready({theme:k(e)})}catch(e){o(e,{context:`native_launch_screen_ready`,bestEffort:!0})}}async function re(e){if(A())try{await O.setTheme({theme:k(e)})}catch(e){o(e,{context:`native_launch_screen_theme_sync`,bestEffort:!0})}}function ie(){return _.use.stringFlags().proactiveTips??`off`}function ae(e){return e===`on`}function M(e){return e===void 0||typeof e==`number`&&Number.isFinite(e)}function oe(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e;return typeof t.shownCount==`number`&&Number.isFinite(t.shownCount)&&M(t.dismissedAt)&&M(t.lastShownAt)}function se(e){let t=JSON.parse(e);if(!t||typeof t!=`object`||Array.isArray(t))return null;let n={};for(let[e,r]of Object.entries(t))oe(r)&&(n[e]=r);return n}function ce(e){let t=Number(e);return Number.isFinite(t)&&t>=0?t:null}var N=x({key:`device:tips:records`,scope:`device`,parse:se,serialize:JSON.stringify,fallback:{}}),le=x({key:`device:tips:enabled`,scope:`device`,parse:b,serialize:String,fallback:!0}),P=x({key:`device:tips:first_seen_at`,scope:`device`,parse:ce,serialize:String,fallback:0});function ue(){P.load()===0&&P.save(Date.now())}function de(e,t){let n=N.load(),r=n[e];N.save({...n,[e]:{...r,lastShownAt:t,shownCount:(r?.shownCount??0)+1}})}function F(e,t){let n=N.load(),r=n[e];N.save({...n,[e]:{...r,dismissedAt:t,shownCount:r?.shownCount??0}})}var I=`proactive-tips-v1`,L={impression:0,learn_more:1,dismiss:2,dont_show_again:3,click:4,completion:5};function R(e,t,n){te({stepName:t,stepIndex:L[t]},{funnelVersion:I,screen:e,variant:n})}function z(){let e=_.use.velvet(),[t,n]=(0,E.useState)(()=>S({velvetEnabled:e}));return(0,E.useEffect)(()=>{n(S({velvetEnabled:e}))},[e]),(0,E.useEffect)(()=>a(`theme`,()=>{n(S({velvetEnabled:e}))}),[e]),(0,E.useEffect)(()=>{ee(t)},[t]),{theme:t,setThemePreference:e=>{n(e),C(e),re(e)}}}var B=6e4;function V(e){return!!(e?.enabled&&e.effectivelyLocked)}function H(e){return V(e)?e.acknowledged&&!e.overrideActive:!1}function U(e){return!!(e&&V(e)&&!e.acknowledged&&!e.overrideActive)}function fe(e){return!!(e?.enabled&&e.state===`warning`)}function pe(e){return U(e)?`acknowledgement-required`:H(e)?`cleanup`:fe(e)?`warning`:`inactive`}function me({monitorEnabled:e,hasResolvedStatus:t,status:n}){return!e||!t?null:U(n)?`acknowledgement-required`:null}function he(e){return`Storage cleanup mode must be acknowledged before sending messages.`}function ge(e,t){return e===t?!0:!e||!t?!1:e.enabled===t.enabled&&e.state===t.state&&e.locked===t.locked&&e.acknowledged===t.acknowledged&&e.overrideActive===t.overrideActive&&e.effectivelyLocked===t.effectivelyLocked&&e.lockId===t.lockId&&e.usagePercent===t.usagePercent&&e.thresholdPercent===t.thresholdPercent&&e.path===t.path&&e.lastCheckedAt===t.lastCheckedAt&&e.error===t.error&&e.blockedCapabilities.length===t.blockedCapabilities.length&&e.blockedCapabilities.every((e,n)=>e===t.blockedCapabilities[n])}function _e(e){return e?.usagePercent==null||!Number.isFinite(e.usagePercent)?`Unknown`:`${Math.round(e.usagePercent)}%`}var W={assistantId:null,status:null,hasResolvedStatus:!1};function ve(e,t){return e instanceof Error?e:Error(t)}function ye({assistantId:e,enabled:t,refreshKey:n,cadenceMs:r=B}){let[i,a]=(0,E.useState)(W),[o,s]=(0,E.useState)(!1),[c,l]=(0,E.useState)(null),u=(0,E.useRef)(e),d=(0,E.useRef)(t),f=(0,E.useRef)(0),p=(0,E.useRef)(0);(0,E.useLayoutEffect)(()=>{u.current=e,d.current=t}),(0,E.useEffect)(()=>{f.current+=1,a(W),l(null),s(!1)},[e,t]);let m=(0,E.useCallback)((e,t)=>d.current&&u.current===e&&f.current===t,[]),_=(0,E.useCallback)((e,t,n,r)=>{m(e,r)&&a(r=>r.assistantId===e&&r.hasResolvedStatus===n&&ge(r.status,t)?r:{assistantId:e,status:t,hasResolvedStatus:n})},[m]),v=(0,E.useCallback)(()=>{f.current+=1,a(W)},[]),y=(0,E.useCallback)(async()=>{let n=e;if(!t||!n){v();return}let r=f.current,i=p.current+1;p.current=i;try{let e=await h(n);if(p.current!==i)return;if(!e.ok){_(n,null,!1,r);return}_(n,e.data.status,!0,r)}catch{if(p.current!==i)return;_(n,null,!1,r)}},[e,_,v,t]);(0,E.useEffect)(()=>{if(!t||!e)return;y();let n=window.setInterval(()=>{y()},r);return()=>{window.clearInterval(n)}},[e,r,t,y,n]),w(`app.resume`,()=>{y()});let b=(0,E.useCallback)(n=>{if(!t||!e){v();return}let r=f.current+1;f.current=r,s(!1),l(null),_(e,n,!0,r)},[e,_,v,t]);w(`sse.event`,e=>{let t=e.message;t.type===`disk_pressure_status_changed`&&b(t.status)});let x=(0,E.useCallback)(async()=>{let n=e;if(!t||!n){v();return}let r=f.current+1;f.current=r,s(!0),l(null);try{let e=await g(n);if(!e.ok)throw Error(`Failed to acknowledge assistant disk pressure.`);if(!m(n,r))return;let t=f.current+1;f.current=t,_(n,e.data.status,!0,t),s(!1)}catch(e){m(n,r)&&l(ve(e,`Failed to acknowledge assistant disk pressure.`))}finally{m(n,r)&&s(!1)}},[e,_,v,t,m]),S=t&&i.assistantId===e?i.status:null,C=!!(t&&e&&i.assistantId===e&&i.hasResolvedStatus);return{status:S,mode:(0,E.useMemo)(()=>pe(S),[S]),hasResolvedStatus:C,isAcknowledging:o,acknowledgeError:c,acknowledge:x,applyStatusEvent:b,refresh:y}}var G=l();function be(e){let{status:t,mode:n,isAcknowledging:r=!1,acknowledgeError:i,onAcknowledge:a,onDismissWarning:o,onReviewWorkspaceData:s,onUpgradeStorage:l}=e,[u,h]=(0,E.useState)(!1),[g,_]=(0,E.useState)(!1),v=_e(t);if(n===`warning`){let e=t.usagePercent??0;return(0,G.jsx)(p,{tone:`warning`,title:`Your storage is almost full`,icon:(0,G.jsx)(T,{className:`h-4 w-4`,"aria-hidden":`true`}),onDismiss:o?()=>o(g):void 0,className:`p-4`,"data-testid":`disk-pressure-banner`,children:(0,G.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`h-1.5 flex-1 overflow-hidden rounded-full bg-[var(--surface-active)]`,children:(0,G.jsx)(`div`,{className:`h-full rounded-full transition-[width] duration-300`,style:{width:`${e}%`,backgroundColor:`var(--system-mid-strong)`}})}),(0,G.jsx)(`span`,{className:`text-body-medium-default shrink-0 tabular-nums text-[color:var(--system-mid-strong)]`,children:v})]}),(0,G.jsx)(`p`,{className:`m-0`,children:l?`Free up space or add more storage to avoid interruptions.`:`Free up space to avoid interruptions.`}),(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[s&&(0,G.jsx)(c,{variant:`outlined`,size:`compact`,onClick:s,children:`Manage Storage`}),l&&(0,G.jsx)(c,{variant:`outlined`,size:`compact`,onClick:l,children:`Upgrade`}),o?(0,G.jsx)(d,{className:`ml-auto`,checked:g,onCheckedChange:e=>_(e===!0),label:`Don't show again`,"data-testid":`disk-pressure-banner-dont-show-again`}):null]})]})})}if(n===`cleanup`){let e=t.usagePercent??0;return(0,G.jsx)(p,{tone:`warning`,title:`Cleanup mode is active`,icon:(0,G.jsx)(T,{className:`h-4 w-4`,"aria-hidden":`true`}),className:`p-4`,"data-testid":`disk-pressure-banner`,children:(0,G.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`h-1.5 flex-1 overflow-hidden rounded-full bg-[var(--surface-active)]`,children:(0,G.jsx)(`div`,{className:`h-full rounded-full transition-[width] duration-300`,style:{width:`${e}%`,backgroundColor:`var(--system-mid-strong)`}})}),(0,G.jsx)(`span`,{className:`text-body-medium-default shrink-0 tabular-nums text-[color:var(--system-mid-strong)]`,children:v})]}),(0,G.jsx)(`p`,{className:`m-0`,children:`Prompt your assistant to free up space before it runs out and enters a locked state.`}),(0,G.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[s&&(0,G.jsx)(c,{variant:`outlined`,size:`compact`,onClick:s,children:`Manage Storage`}),l&&(0,G.jsx)(c,{variant:`outlined`,size:`compact`,onClick:l,children:`Upgrade`})]})]})})}let y=t.usagePercent??0;return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(p,{tone:`error`,title:`Storage is critically low`,icon:(0,G.jsx)(T,{className:`h-4 w-4`,"aria-hidden":`true`}),className:`p-4`,"data-testid":`disk-pressure-banner`,children:(0,G.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`h-1.5 flex-1 overflow-hidden rounded-full bg-[var(--surface-active)]`,children:(0,G.jsx)(`div`,{className:`h-full rounded-full transition-[width] duration-300`,style:{width:`${y}%`,backgroundColor:`var(--system-negative-strong)`}})}),(0,G.jsx)(`span`,{className:`text-body-medium-default shrink-0 tabular-nums text-[color:var(--system-negative-strong)]`,children:v})]}),(0,G.jsx)(`p`,{className:`m-0`,children:`Your assistant will enter a locked state if it runs out of storage.`}),i?(0,G.jsx)(`span`,{className:`text-[var(--system-negative-strong)]`,role:`alert`,children:i}):null,(0,G.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:(0,G.jsx)(c,{variant:`primary`,size:`compact`,onClick:()=>h(!0),children:`Review`})})]})}),(0,G.jsx)(m.Root,{open:u,onOpenChange:e=>{e||h(!1)},children:(0,G.jsxs)(m.Content,{size:`sm`,children:[(0,G.jsx)(m.Header,{icon:f,children:(0,G.jsx)(m.Title,{children:`Storage is critically low`})}),(0,G.jsx)(m.Body,{children:(0,G.jsx)(m.Description,{children:`Your assistant will enter a locked state if it runs out of storage. You should either prompt your assistant to free up space or increase your storage.`})}),(0,G.jsxs)(m.Footer,{children:[l&&(0,G.jsx)(c,{variant:`outlined`,onClick:()=>{h(!1),l()},children:`Upgrade`}),(0,G.jsx)(c,{variant:`primary`,disabled:r,onClick:()=>{a(),h(!1)},children:r?`Acknowledging...`:`Acknowledge`})]})]})})]})}var xe=`https://apps.apple.com/us/app/vellum-assistant/id6759934423`,K=`ai.vellum.assistant`,Se=`https://play.google.com/store/apps/details?id=${K}`,q={ios:{downloaded:`app.iosNudge.downloaded`,bannerDismissed:`app.iosNudge.bannerDismissed`,assistantTurnsSeen:`app.iosNudge.assistantTurnsSeen`},android:{downloaded:`app.androidNudge.downloaded`,bannerDismissed:`app.androidNudge.bannerDismissed`,assistantTurnsSeen:`app.androidNudge.assistantTurnsSeen`}};function Ce(){let e=(void 0)?.trim();if(!e)return null;try{let t=new URL(e);return t.protocol===`https:`&&t.hostname===`play.google.com`&&t.pathname===`/store/apps/details`&&t.searchParams.get(`id`)===K?Se:null}catch(e){if(e instanceof TypeError)return null;throw e}}function J(e){return e===`ios`?`iOS`:`Android`}function Y(e){if(e===`ios`)return{platform:e,appName:J(e),storeUrl:xe};let t=Ce();return t?{platform:e,appName:J(e),storeUrl:t}:null}function we(e){return i(q[e].downloaded,!1)}function X(e){r(q[e].downloaded,!0)}function Te(e){return i(q[e].bannerDismissed,!1)}function Z(e){r(q[e].bannerDismissed,!0)}function Q(e){return Math.max(0,n(q[e].assistantTurnsSeen,0))}function Ee(e,n=1){n<=0||t(q[e].assistantTurnsSeen,Q(e)+n)}function $(e){let t=Y(e);return t?(window.open(t.storeUrl,`_blank`,`noopener,noreferrer`),!0):!1}function De(e){let[t,n]=(0,E.useState)(!1),[r,i]=(0,E.useState)(!1),a=Y(e)!==null;(0,E.useEffect)(()=>{n(we(e)),i(Te(e))},[e]);let o=(0,E.useCallback)(()=>{$(e)&&(X(e),n(!0))},[e]),s=(0,E.useCallback)(()=>{Z(e),i(!0)},[e]);return(0,E.useMemo)(()=>({bannerShouldShow:a&&!t&&!r,handleDownload:o,handleBannerDismiss:s}),[a,t,r,o,s])}var Oe=x({key:`device:cmd_enter_to_send`,scope:`device`,parse:b,serialize:String,fallback:!1}),ke=x({key:`device:show_context_window_indicator`,scope:`device`,parse:b,serialize:String,fallback:!1});export{ie as C,T as E,ae as S,ne as T,F as _,Ee as a,le as b,De as c,ye as d,he as f,ue as g,R as h,Y as i,X as l,z as m,ke as n,$ as o,me as p,J as r,Q as s,Oe as t,be as u,de as v,j as w,P as x,N as y};
@@ -1 +0,0 @@
1
- import{_ as e,a as t,h as n,i as r,j as i,k as a,t as o}from"./section-membership-vg-XaMPS.js";var s={conversations:[],hasMore:!1};async function c(t,n){await Promise.all([t.cancelQueries({queryKey:a(n)}),t.cancelQueries({queryKey:e(n)})])}function l(e,t){return e.getQueriesData({queryKey:a(t)}).map(([e,t])=>[e,t])}function u(e,t){for(let[n,r]of t)e.setQueryData(n,r)}async function d(t,r){await Promise.all([t.invalidateQueries({queryKey:a(r)}),t.invalidateQueries({queryKey:e(r)}),t.invalidateQueries({queryKey:n(r)})])}function f(e,t){let n=t(e.conversations);return n===e.conversations?e:{conversations:n,hasMore:e.hasMore}}function p(e,t,n){e.setQueryData(t,e=>{let t=e??s,r=f(t,n);return r===t?e:r})}function m(e,t,n,r){p(e,i(t,n),r)}function h(e,t,n){if(!t)return;let r=e.getQueriesData({queryKey:a(t)});for(let[t,i]of r){if(!i)continue;let r=f(i,n);r!==i&&e.setQueryData(t,r)}}function g(e,t,n){if(!t)return;let r=e.getQueriesData({queryKey:a(t)});for(let[,e]of r){let t=e?.conversations.find(e=>e.conversationId===n);if(t)return t}}function _(...e){let[t=[],...n]=e;if(n.every(e=>e.length===0))return t;let r=new Set(t.map(e=>e.conversationId)),i=[...t];for(let e of n)for(let t of e)r.has(t.conversationId)||(r.add(t.conversationId),i.push(t));return i}function v(e,n,i,a){let s;return h(e,n,e=>{let t=!1,n=e.map(e=>e.conversationId===i?(t=!0,s??={...e,...a},s):e);return t?n:e}),!s||!r(a)?[]:(o(e,n,s),t(e,n,s))}export{v as a,h as c,_ as i,m as l,g as n,u as o,d as r,l as s,c as t};
@@ -1 +0,0 @@
1
- import{d as e}from"./routes-B7wRw3UT.js";import{t}from"./conversation-store-DKBwV4bc.js";import{t as n}from"./haptics-D3hzTCtH.js";import{r}from"./subagent-store-DqKEBlAM.js";import{t as i}from"./workflow-store-BXqyb8CL.js";import{i as a}from"./viewer-store-CwlLnf-k.js";import{t as o}from"./conversation-selection-4ubh2ui-.js";import{t as s}from"./sound-manager-lHaiHTCh.js";import{t as c}from"./use-is-mobile-q9Lr7beO.js";var l=`vellum:focus-composer`,u=!1;function d(){u=!0,typeof window<`u`&&window.dispatchEvent(new Event(l))}function f(){let e=u;return u=!1,e}var p=[`input`,`textarea`,`select`,`[contenteditable=""]`,`[contenteditable="true"]`,`[role="textbox"]`].join(`,`);function m(e){return!!e?.closest(p)}function h(e){return!!e?.closest(`a[href], button, summary`)}function g(e,t){return!(e.defaultPrevented||e.metaKey||e.ctrlKey||e.altKey||e.isComposing||e.keyCode===229||typeof e.key!=`string`||e.key.length!==1||m(t)||e.key===` `&&h(t))}function _({value:e,text:t,selectionStart:n,selectionEnd:r}){let i=Math.max(0,Math.min(n??e.length,e.length)),a=Math.max(i,Math.min(r??i,e.length));return{value:e.slice(0,i)+t+e.slice(a),cursor:i+t.length}}function v(){return typeof window>`u`||typeof window.matchMedia!=`function`?!1:window.matchMedia(c).matches}function y(e){if(v())return!1;let n=a.getState();return n.mainView!==`app`&&n.mainView!==`app-editing`||!n.activeAppId&&!n.openedAppState?!1:(t.getState().setEditingConversationId(e),n.enterAppEditing(),!0)}function b(e){y(e)||a.getState().setMainView(`chat`)}function x(o,s,c){c?.silent||n.light(),b(s),s!==t.getState().activeConversationId&&(r.getState().reset(),i.getState().reset(),a.getState().clearTranscriptPanelPayloads()),t.getState().setActiveConversationId(s),o(c?.messageId?e.conversationAtMessage(s,c.messageId):e.conversation(s))}function S(c,l){l?.silent||(n.light(),s().play(`new_conversation`)),r.getState().reset(),i.getState().reset(),a.getState().clearTranscriptPanelPayloads();let u=o();b(u),t.getState().setActiveConversationId(u);let f=e.conversation(u);if(l?.prompt){let e=new URLSearchParams({prompt:l.prompt});f=`${f}?${e.toString()}`}c(f),d()}export{l as a,d as c,b as i,g as l,x as n,f as o,S as r,_ as s,y as t};
@@ -1 +0,0 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./useQuery-CTSuec5b.js";import{t as r}from"./useQueries-Bimdc7uA.js";import{t as i}from"./queryOptions-DbnOXI51.js";import{r as a}from"./use-is-org-ready-GDBxqujc.js";import{F as o,O as s}from"./react-query.gen-Bbh5MII3.js";import{n as c}from"./operational-status-CMN32PL8.js";import{C as l,D as u,E as d,N as f,P as p,S as m,T as h,f as g,g as _,m as v,u as y,w as b,y as x,z as S}from"./section-membership-vg-XaMPS.js";import{i as C}from"./conversation-cache-qk0nNm6Q.js";var w=e(t(),1),T=3e4;function E(e,t=d){let n=s({path:{assistant_id:e},query:t}).queryKey;return p(t)?i({queryKey:n,queryFn:async({client:r})=>{let i=await g(e,t),a=r.getQueryData(n);return a?m(a,i,{pinnedInjected:f(t)}):i},staleTime:T}):i({queryKey:n,queryFn:async()=>({conversations:await y(e,t),hasMore:!1}),staleTime:T})}var D=[],O=[];function k(e){let t=a(),n=c(e);return t&&n}var A={conversations:D,isLoading:!1,isPending:!0,isError:!1,error:null,hasData:!1,hasMore:!1,refetch:()=>{}};function j(e,t,n){let i=k(e),a=r({queries:t===null?[]:[{...E(e??``,t),enabled:n&&!!e&&i}]})[0];return a===void 0?A:{conversations:a.data?.conversations??D,isLoading:a.isLoading,isPending:a.isPending,isError:a.isError,error:a.error,hasData:a.data!==void 0,hasMore:a.data?.hasMore??!1,refetch:()=>{a.refetch()}}}function M(e,t=!0){return j(e,d,t)}function N(e,t=!0){return j(e,h,t)}function P(e,t=!0){return j(e,u,t)}function F(e,t,n=!0){return j(e,t,n)}function I(e,t=!0){let n=j(e,b,t),r=j(e,l,t);return{conversations:(0,w.useMemo)(()=>{let e=C(n.conversations,r.conversations);return e===n.conversations?e:[...e].sort(x(`archivedAt`))},[n.conversations,r.conversations]),isLoading:n.isLoading||r.isLoading,isPending:n.isPending||r.isPending,isError:n.isError||r.isError,error:n.error??r.error,hasData:n.hasData&&r.hasData,hasMore:!1,refetch:()=>{n.refetch(),r.refetch()}}}function L(e,t=!0){let r=a();return n({...v(e),enabled:t&&!!e&&r}).data??null}function R(e,t=!0){let r=k(e);return n({..._(e),enabled:t&&!!e&&r}).data??null}function z(e,t,n=!0){let r=R(e,n),i=(0,w.useMemo)(()=>S(t),[t]);return Math.max(0,r??i)}function B(e,t=!0){let r=k(e),i=n({...o({path:{assistant_id:e??``}}),select:e=>e.groups,enabled:t&&!!e&&r,staleTime:3e4});return{conversationGroups:i.data??O,isLoading:i.isLoading}}export{M as a,L as c,B as i,z as l,N as n,P as o,k as r,F as s,I as t};