@vellumai/web 0.10.12 → 0.11.0-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 (354) hide show
  1. package/dist/assets/{AnimatePresence-3WpfAWHe.js → AnimatePresence-DPfyu3ET.js} +1 -1
  2. package/dist/assets/{BundleConfirmPage-CDklssHh.js → BundleConfirmPage-CChUOtcg.js} +1 -1
  3. package/dist/assets/{a2a-invite-DUYZLVQb.js → a2a-invite-pyBtaaeG.js} +1 -1
  4. package/dist/assets/{about-page-CT70Pgvf.js → about-page-DGUK5p8j.js} +1 -1
  5. package/dist/assets/access-DS79PSR3.js +1 -0
  6. package/dist/assets/{account-page-D5cJIu1-.js → account-page-D3ERiewh.js} +1 -1
  7. package/dist/assets/{account-shell-C_IH8r44.js → account-shell-Dk4aC-Ls.js} +1 -1
  8. package/dist/assets/{acp-run-actions-CAjb0Wcm.js → acp-run-actions-BH8wuBAL.js} +1 -1
  9. package/dist/assets/{acp-run-detail-panel-DqzZdPiN.js → acp-run-detail-panel-dqVK6rPq.js} +1 -1
  10. package/dist/assets/{acp-run-store-C6n-XeY_.js → acp-run-store-B_eDLRwl.js} +1 -1
  11. package/dist/assets/{activity-steps-panel-BzHQOJsQ.js → activity-steps-panel-xxl2hu3E.js} +1 -1
  12. package/dist/assets/add-credential-modal-CY_--m8L.js +1 -0
  13. package/dist/assets/{add-credits-modal-CCEMf2_U.js → add-credits-modal-fT_gTTP5.js} +1 -1
  14. package/dist/assets/ai-page-B02NwVRu.js +1 -0
  15. package/dist/assets/animated-avatar-BcgncPkc.js +1 -0
  16. package/dist/assets/api-C3QSs67k.js +1 -0
  17. package/dist/assets/{api-XwdNiVE9.js → api-LG8zI3nK.js} +1 -1
  18. package/dist/assets/{api-key-screen-BXn2F-lQ.js → api-key-screen-CvBdN6Ae.js} +1 -1
  19. package/dist/assets/{app-card-Uowaj1kh.js → app-card-CAaFL1oB.js} +1 -1
  20. package/dist/assets/{archive-redirect-page-CpKvFqvX.js → archive-redirect-page-BH7h0Lk7.js} +1 -1
  21. package/dist/assets/{assistant-feature-flag-store-CLqMw4mK.js → assistant-feature-flag-store-CAdgpPiS.js} +1 -1
  22. package/dist/assets/{assistant-status-panel-DKnWIr7_.js → assistant-status-panel-BTnD-jhG.js} +1 -1
  23. package/dist/assets/auth-store-5qq59BAN.js +2 -0
  24. package/dist/assets/avatar-random-BMSYTcJK.js +1 -0
  25. package/dist/assets/{avatar-renderer-DK54o2kQ.js → avatar-renderer-ClUVcQmf.js} +1 -1
  26. package/dist/assets/{background-task-actions-CmYMPa2o.js → background-task-actions-DmP5s0oO.js} +1 -1
  27. package/dist/assets/{background-task-detail-panel-KDqjs7i2.js → background-task-detail-panel-BCYAElGc.js} +1 -1
  28. package/dist/assets/{background-task-store-DFS8MP5D.js → background-task-store-DMP8ByUq.js} +1 -1
  29. package/dist/assets/billing-page-B5j5TW_S.js +3 -0
  30. package/dist/assets/{billing-redirect-page-BRcj5q0u.js → billing-redirect-page-B1o1rsQZ.js} +1 -1
  31. package/dist/assets/{bookmarks-page-fFnFzh4F.js → bookmarks-page-D_Jr-a4Q.js} +1 -1
  32. package/dist/assets/{browser-CNL8hh8H.js → browser-CTZVDjOL.js} +2 -2
  33. package/dist/assets/build-state-m0LQ5Iis.js +1 -0
  34. package/dist/assets/channels-page-route-BYP9SOw5.js +9 -0
  35. package/dist/assets/chat-avatar-CvEA6z0H.js +1 -0
  36. package/dist/assets/chat-markdown-message-rxPKNeTx.js +2 -0
  37. package/dist/assets/{checkbox-BY0BDJjm.js → checkbox-CRmgkYah.js} +1 -1
  38. package/dist/assets/checkout-continuation-U3Pd2nxi.js +1 -0
  39. package/dist/assets/checkout-page-C5_9GbP-.js +1 -0
  40. package/dist/assets/checkout-return-target-DI6Hb-9L.js +1 -0
  41. package/dist/assets/client-feature-flag-store-CMncoan8.js +1 -0
  42. package/dist/assets/{client-identity-BS5mQsaQ.js → client-identity-DhkdvP5w.js} +1 -1
  43. package/dist/assets/{command-palette-CsRPcIM-.js → command-palette-BTaT__fo.js} +1 -1
  44. package/dist/assets/{command-palette-window-page-BzQ_oDaq.js → command-palette-window-page-gq0zowBe.js} +1 -1
  45. package/dist/assets/{community-page-mlhk4LsN.js → community-page-CsEKt9wX.js} +1 -1
  46. package/dist/assets/{connect-page-PuRyFup0.js → connect-page-B4aTS7Yj.js} +1 -1
  47. package/dist/assets/{consent-controls-BOFoWAYO.js → consent-controls-OcgxuxS0.js} +1 -1
  48. package/dist/assets/consent-hzYg-zbh.js +1 -0
  49. package/dist/assets/{contacts-gateway-C5OljhCC.js → contacts-gateway-B6OrAmU3.js} +1 -1
  50. package/dist/assets/{contacts-page-route-VBlklzVL.js → contacts-page-route-DNoCUXE7.js} +1 -1
  51. package/dist/assets/{conversation-cache-CqCkWHT6.js → conversation-cache-DKvwwWNo.js} +1 -1
  52. package/dist/assets/{conversation-list-fetchers-D84gJs6f.js → conversation-list-fetchers-DM-Y61u5.js} +1 -1
  53. package/dist/assets/conversation-navigation-DsN0hcpL.js +1 -0
  54. package/dist/assets/{conversation-queries-Ba_1sW5M.js → conversation-queries-CWvK6RLK.js} +1 -1
  55. package/dist/assets/{credential-entry-page-Bfrl1sD_.js → credential-entry-page-CHinHO85.js} +1 -1
  56. package/dist/assets/credentials-page-BsJFuOc9.js +1 -0
  57. package/dist/assets/{danger-zone-redirect-page-DKfrmf_o.js → danger-zone-redirect-page-SU45WI74.js} +1 -1
  58. package/dist/assets/debug-page-BziypDgA.js +4 -0
  59. package/dist/assets/{deploy-dialogs-BNMcZzII.js → deploy-dialogs-DZSd5o9b.js} +1 -1
  60. package/dist/assets/{deploy-store-CxnShfQj.js → deploy-store-D6snB1j5.js} +1 -1
  61. package/dist/assets/{detail-card-CwtjhGfi.js → detail-card-Du8OuE3q.js} +1 -1
  62. package/dist/assets/{detail-panel-stop-button-C1rystDS.js → detail-panel-stop-button-BNuh6N0s.js} +1 -1
  63. package/dist/assets/{detail-shell-DcNnOqM_.js → detail-shell-Cyqr5FXJ.js} +1 -1
  64. package/dist/assets/{developer-page-Bu7HBiPJ.js → developer-page-QMFEIyBS.js} +1 -1
  65. package/dist/assets/{devices-redirect-page-Cvt_H5ig.js → devices-redirect-page-B14wK98N.js} +1 -1
  66. package/dist/assets/{diagnostics-Dva51gYK.js → diagnostics-T_96Uyh5.js} +1 -1
  67. package/dist/assets/doctor-handoff-store-CYjL1S0n.js +1 -0
  68. package/dist/assets/document-viewer-container-B7TEDeV0.js +2 -0
  69. package/dist/assets/{document-viewer-page-kV6TCXu0.js → document-viewer-page-3Eq8L562.js} +1 -1
  70. package/dist/assets/effective-timezone-CmcoXrio.js +1 -0
  71. package/dist/assets/{emails-page-D9E3uXkG.js → emails-page-Wr4wPSYl.js} +1 -1
  72. package/dist/assets/{esm-BWFeAIOX.js → esm-BKewCp71.js} +2 -2
  73. package/dist/assets/{esm-DKdDWqsF.js → esm-Deuay4YU.js} +2 -2
  74. package/dist/assets/{esm-C6-ZMSya.js → esm-Dk6A-sQ0.js} +2 -2
  75. package/dist/assets/{esm-BQjZqfJZ.js → esm-IoT87yZe.js} +2 -2
  76. package/dist/assets/{esm-BTyZM-kf.js → esm-PYpy75OW.js} +2 -2
  77. package/dist/assets/esm-xItcektK.js +2 -0
  78. package/dist/assets/{eye-bbox-DXmmg9ML.js → eye-bbox-C_V87iLg.js} +1 -1
  79. package/dist/assets/feature-flag-catalog-I9-eJQP_.js +1 -0
  80. package/dist/assets/file-markdown-DaflJFk7.js +2 -0
  81. package/dist/assets/{first-run-scope-BoT9LMYw.js → first-run-scope-CL5YbC3b.js} +1 -1
  82. package/dist/assets/{funnel-events-CK938pi2.js → funnel-events-n2IVlwTo.js} +1 -1
  83. package/dist/assets/general-page-lbkufqHg.js +1 -0
  84. package/dist/assets/{get-memory-stats-ERcqnC0Q.js → get-memory-stats-BCYSpBF6.js} +1 -1
  85. package/dist/assets/{haptics-D9eNTUq-.js → haptics-DvWjk9Fg.js} +2 -2
  86. package/dist/assets/hatching-screen-D81diZoa.js +1 -0
  87. package/dist/assets/{home-page-route-BOCisuYY.js → home-page-route-CHe8eoLz.js} +1 -1
  88. package/dist/assets/{hosting-screen-6xIW6q02.js → hosting-screen-D9atAksQ.js} +1 -1
  89. package/dist/assets/{identity-page-route-qWwRSRld.js → identity-page-route-CK3YsXCN.js} +1 -1
  90. package/dist/assets/index-0f48hi7h.js +11 -0
  91. package/dist/assets/index-UKZ4bO6i.css +2 -0
  92. package/dist/assets/{ingest-DGkxw0Go.js → ingest-BizI657K.js} +1 -1
  93. package/dist/assets/{inspect-page-CRBfQ5WU.js → inspect-page-COwvbHtX.js} +3 -3
  94. package/dist/assets/{installed-plugins-query-C29LGAEV.js → installed-plugins-query-Cgek0q7G.js} +1 -1
  95. package/dist/assets/{integration-icon-Dvjn3ytY.js → integration-icon-dv-9Zzx3.js} +1 -1
  96. package/dist/assets/integrations-page-CJOBwxXp.js +1 -0
  97. package/dist/assets/{intelligence-layout-DP9zklR6.js → intelligence-layout-MNoGhi-l.js} +1 -1
  98. package/dist/assets/{invalidate-plugin-queries-DamxiwYv.js → invalidate-plugin-queries-C3NTXkCX.js} +1 -1
  99. package/dist/assets/{keyboard-shortcuts-redirect-page--bCvhp62.js → keyboard-shortcuts-redirect-page-CBI_mZIL.js} +1 -1
  100. package/dist/assets/{latest-assistant-text-D5WR-o6J.js → latest-assistant-text-DOepZ_Io.js} +2 -2
  101. package/dist/assets/{library-detail-page-pviljaQw.js → library-detail-page-DVwI94NZ.js} +1 -1
  102. package/dist/assets/{library-page-CYYuLywk.js → library-page-CNA794WY.js} +1 -1
  103. package/dist/assets/local-mode-BTovbt13.js +39 -0
  104. package/dist/assets/{local-runtime-upgrade-BggVMXfW.js → local-runtime-upgrade-Bqn3d7Q7.js} +1 -1
  105. package/dist/assets/login-flow-CD9tyuFG.js +1 -0
  106. package/dist/assets/{login-page-DdHXGGAt.js → login-page-BNStrcnU.js} +1 -1
  107. package/dist/assets/{logout-page-DjihP6Qk.js → logout-page-CpFeuLA_.js} +1 -1
  108. package/dist/assets/{logs-layout-C84-h0Hn.js → logs-layout-BUiPeZ4I.js} +1 -1
  109. package/dist/assets/{machine-sizes-DAflIPTM.js → machine-sizes-DO8duvpy.js} +1 -1
  110. package/dist/assets/{memory-page-route-dGWTWCWF.js → memory-page-route-C0cBV7HD.js} +1 -1
  111. package/dist/assets/{memory-router-playground-page-CjUiz_bH.js → memory-router-playground-page-D4UIq8mw.js} +1 -1
  112. package/dist/assets/{messages-Dl5_cjD9.js → messages-CFcAW4iz.js} +2 -2
  113. package/dist/assets/{metric-card-CkAD9RpC.js → metric-card-05a5slPx.js} +1 -1
  114. package/dist/assets/{mobile-sidebar-drawer-CbJ5JfXT.js → mobile-sidebar-drawer-DtKU2vlu.js} +1 -1
  115. package/dist/assets/native-anchor-CeekjwVy.js +1 -0
  116. package/dist/assets/native-biometric-BAMIyaSS.js +6 -0
  117. package/dist/assets/{native-file-B6_oAU2Q.js → native-file-ySSv1sQ7.js} +2 -2
  118. package/dist/assets/navigation-resolver-DPJxzx0h.js +1 -0
  119. package/dist/assets/{not-found-DV3iLBwm.js → not-found-OqaWNmdx.js} +1 -1
  120. package/dist/assets/{notifications-page-B9vnqyB1.js → notifications-page-ClfcJeLf.js} +1 -1
  121. package/dist/assets/{oauth-complete-page-BSxiDbQm.js → oauth-complete-page-rVmA2Cl8.js} +1 -1
  122. package/dist/assets/{oauth-connection-utils-DbcihBL8.js → oauth-connection-utils-CWPUW4MK.js} +1 -1
  123. package/dist/assets/{oauth-popup-complete-page-CyYbqLoK.js → oauth-popup-complete-page-DBsOvLES.js} +1 -1
  124. package/dist/assets/{onboarding-layout-Dd5fPfE7.js → onboarding-layout-DLs1hfp_.js} +1 -1
  125. package/dist/assets/onboarding-store-bZ2qYISk.js +1 -0
  126. package/dist/assets/open-workspace-file-DtK3a84K.js +2 -0
  127. package/dist/assets/{page-empty-state-BA3_YQN2.js → page-empty-state-DT-tC1u6.js} +1 -1
  128. package/dist/assets/{page-shell-_QxBKTK3.js → page-shell-C7SUgga9.js} +1 -1
  129. package/dist/assets/{pairing-page-DPfIgf3F.js → pairing-page-ZkFipOSH.js} +1 -1
  130. package/dist/assets/{password-reset-page-D55bGMVy.js → password-reset-page-iASQZawH.js} +1 -1
  131. package/dist/assets/{personality-page-fJJd-i4s.js → personality-page-BJpW3UXD.js} +1 -1
  132. package/dist/assets/plans-page-BDKqdYNM.js +1 -0
  133. package/dist/assets/{platform-detection-CMiRPRCq.js → platform-detection-XEAAu4c-.js} +1 -1
  134. package/dist/assets/{platform-login-notice-BG9TFAJa.js → platform-login-notice-CdYiKsE8.js} +1 -1
  135. package/dist/assets/{platform-loopback-page-DunGLusR.js → platform-loopback-page-D0gXCm2S.js} +1 -1
  136. package/dist/assets/{plugin-detail-page-BngHrN8T.js → plugin-detail-page-Bx2wzKEf.js} +1 -1
  137. package/dist/assets/{plugins-page-DD0t1_pE.js → plugins-page-B2zQ2iGh.js} +1 -1
  138. package/dist/assets/{prefs-BZnS5vR_.js → prefs-bw85lYLp.js} +1 -1
  139. package/dist/assets/{privacy-page-nZvfh3dh.js → privacy-page-B0QN4qZO.js} +1 -1
  140. package/dist/assets/privacy-screen-vp4uUpm6.js +1 -0
  141. package/dist/assets/{provider-callback-page-BwANEd-K.js → provider-callback-page-BH6DES7c.js} +1 -1
  142. package/dist/assets/{provider-key-B3R8SlMJ.js → provider-key-D2Nsf9zh.js} +1 -1
  143. package/dist/assets/{provider-signup-page-Cz2DP-jP.js → provider-signup-page-BAPcG_iJ.js} +1 -1
  144. package/dist/assets/provisioning-targets-BTjyR9nk.js +1 -0
  145. package/dist/assets/{quick-input-page-CF2MJnCE.js → quick-input-page-Dq-0BGrJ.js} +1 -1
  146. package/dist/assets/{react-query.gen-r3I6j8-1.js → react-query.gen-C5c1Acuq.js} +1 -1
  147. package/dist/assets/{remote-gateway-session-BHjZ9gQ6.js → remote-gateway-session-yRYdsfDx.js} +1 -1
  148. package/dist/assets/{research-mock-page-DnbQpZcp.js → research-mock-page-BJEpxdMv.js} +1 -1
  149. package/dist/assets/research-onboarding-route-CFL3q__m.js +50 -0
  150. package/dist/assets/{research-results-view-CxhTn2J7.js → research-results-view-C4sIw2gK.js} +1 -1
  151. package/dist/assets/{resolved-assistants-store-C-PdxK8f.js → resolved-assistants-store-Dw5UuGyB.js} +1 -1
  152. package/dist/assets/retire-confirm-dialog-CsSY2-T8.js +1 -0
  153. package/dist/assets/review-terms-screen-BhyRQBjl.js +1 -0
  154. package/dist/assets/{risk-C_bbPQPd.js → risk-CdT92Vqr.js} +2 -2
  155. package/dist/assets/routes-CaP5Tqj7.js +23 -0
  156. package/dist/assets/routes-D9sNqB_o.js +1 -0
  157. package/dist/assets/{runtime-upgrade-banner-DQI-l3Yc.js → runtime-upgrade-banner-DPqzKtZU.js} +2 -2
  158. package/dist/assets/{schedules-DF5cTXBf.js → schedules-6hzhR_C_.js} +1 -1
  159. package/dist/assets/schedules-page-DVnUeaoB.js +1 -0
  160. package/dist/assets/{sdk.gen-BVAVE6A_.js → sdk.gen-BHZ0fJla.js} +1 -1
  161. package/dist/assets/{security-redirect-page-BEohiPDW.js → security-redirect-page-4DKqyPsf.js} +1 -1
  162. package/dist/assets/{select-assistant-screen-C2q8wO2f.js → select-assistant-screen-CVV3iqMy.js} +1 -1
  163. package/dist/assets/{settings-divider-CXIrJieH.js → settings-divider-Ro7lPCkV.js} +1 -1
  164. package/dist/assets/settings-layout-B_4PKJr9.js +1 -0
  165. package/dist/assets/settings-navigation-CSG7jiyJ.js +1 -0
  166. package/dist/assets/{share-feedback-modal-B05-nKgu.js → share-feedback-modal-BoWCg4KH.js} +1 -1
  167. package/dist/assets/{sidebar-tree-ByF78JHW.js → sidebar-tree-C_PPNHe5.js} +1 -1
  168. package/dist/assets/{signup-page-CGauGszD.js → signup-page-D0S_8XYw.js} +1 -1
  169. package/dist/assets/{signup-shell-Bw6r9tWP.js → signup-shell-CMsBZ8vG.js} +1 -1
  170. package/dist/assets/{site-favicon-CCyX9r-Z.js → site-favicon-BB1pYWLF.js} +1 -1
  171. package/dist/assets/skill-detail-page-CTobyK6L.js +1 -0
  172. package/dist/assets/{skill-detail-panel-crqCBZbU.js → skill-detail-panel-CNzionF7.js} +1 -1
  173. package/dist/assets/{skills-C1CAcW7T.js → skills-Cum1XWT2.js} +1 -1
  174. package/dist/assets/{skills-page-BikP-AR7.js → skills-page-DZVxAbua.js} +1 -1
  175. package/dist/assets/slack-setup-wizard-DK2F8LXc.js +1 -0
  176. package/dist/assets/{sound-manager-xEbUgFv-.js → sound-manager-Bx-OcMAz.js} +1 -1
  177. package/dist/assets/{sounds-page-9_otQ97S.js → sounds-page-C45-RF4i.js} +1 -1
  178. package/dist/assets/{src-D89CNeuT.js → src-te3YTBG-.js} +4 -4
  179. package/dist/assets/{start-screen-DSF3melT.js → start-screen-CkJiCl9b.js} +1 -1
  180. package/dist/assets/{subagent-detail-panel-q0g4JWAX.js → subagent-detail-panel-DyyMdaNO.js} +1 -1
  181. package/dist/assets/subagent-store-MDi6lBXs.js +3 -0
  182. package/dist/assets/{superpowers-page-UgdWFWsF.js → superpowers-page-CaLzK5D-.js} +1 -1
  183. package/dist/assets/{system-events-page-Bw94HLwx.js → system-events-page-DXAU01ZO.js} +1 -1
  184. package/dist/assets/{system-events-redirect-page-BGZQC8-K.js → system-events-redirect-page-Bm9bipNo.js} +1 -1
  185. package/dist/assets/{theme-stage-page-bEZxHTyN.js → theme-stage-page-BDTCmutO.js} +1 -1
  186. package/dist/assets/{threshold-presets-BO8En2q0.js → threshold-presets-BdTTHCnm.js} +1 -1
  187. package/dist/assets/{tiptap-document-editor-CyY1HRzV.js → tiptap-document-editor-CHn2wCDv.js} +1 -1
  188. package/dist/assets/{tool-detail-panel-DFMOphDJ.js → tool-detail-panel-DFrWEWKG.js} +1 -1
  189. package/dist/assets/{transcript-message-body-shared-nWAkSzar.js → transcript-message-body-shared-D9_d2c2X.js} +1 -1
  190. package/dist/assets/{trust-rules-api-C0-hkXT2.js → trust-rules-api-B5lfygCA.js} +1 -1
  191. package/dist/assets/{upgrade-cancel-page-DwxI6NLL.js → upgrade-cancel-page-eiJEAvFz.js} +1 -1
  192. package/dist/assets/{upgrade-success-page-SO92J-Rf.js → upgrade-success-page-Cb1Gl4MM.js} +1 -1
  193. package/dist/assets/{usage-redirect-page-BJBkecYr.js → usage-redirect-page-BOfJ7uot.js} +1 -1
  194. package/dist/assets/{use-active-assistant-id-Cjbsk2Q3.js → use-active-assistant-id-CldxA_-M.js} +1 -1
  195. package/dist/assets/{use-app-theme-Q42fO5Nz.js → use-app-theme-Dg8A6vPA.js} +1 -1
  196. package/dist/assets/{use-assistant-avatar-DSu2_Mzi.js → use-assistant-avatar-bwLHcMz4.js} +1 -1
  197. package/dist/assets/{use-assistant-capability-gxe56K48.js → use-assistant-capability-CDS7GbSO.js} +1 -1
  198. package/dist/assets/{use-assistant-identity-details-CpHkzjrI.js → use-assistant-identity-details-9JRWxXTQ.js} +1 -1
  199. package/dist/assets/{use-avatar-accent-var-PV9tsBJj.js → use-avatar-accent-var-vpakP1ce.js} +1 -1
  200. package/dist/assets/{use-bookmarks-BbJtKyHe.js → use-bookmarks-CK-nOiT-.js} +1 -1
  201. package/dist/assets/{use-bundled-avatar-components-Gp_YaD6o.js → use-bundled-avatar-components-Bbs4vCnX.js} +2 -2
  202. package/dist/assets/use-checkout-dismiss-refresh-CqGR_OsB.js +1 -0
  203. package/dist/assets/use-command-palette-sections-CkpUaAKs.js +1 -0
  204. package/dist/assets/{use-edge-swipe-DVeTYbmY.js → use-edge-swipe-Wm9pU2HX.js} +1 -1
  205. package/dist/assets/{use-edge-swipe-back-DDq-N20h.js → use-edge-swipe-back-BcSHNCwS.js} +1 -1
  206. package/dist/assets/{use-edit-app-DfFIonqZ.js → use-edit-app-B_Nequzs.js} +1 -1
  207. package/dist/assets/{use-effective-timezone-LqzBqHBy.js → use-effective-timezone-Dqs8OaXJ.js} +1 -1
  208. package/dist/assets/use-invite-link-dialog-CPPOduk8.js +1 -0
  209. package/dist/assets/{use-ios-app-nudge-BO8jWfr0.js → use-ios-app-nudge-B-ojl-b1.js} +1 -1
  210. package/dist/assets/use-is-org-ready-C5xlYywh.js +1 -0
  211. package/dist/assets/use-onboarding-login-DI5gvqEG.js +1 -0
  212. package/dist/assets/use-platform-assistant-id-DOsSt6k1.js +1 -0
  213. package/dist/assets/use-platform-gate-C65D14xY.js +1 -0
  214. package/dist/assets/{use-reduced-motion-Se97jRQ-.js → use-reduced-motion-W1fCe3vS.js} +1 -1
  215. package/dist/assets/{use-save-twilio-credentials-CUQ6gdIj.js → use-save-twilio-credentials-c9xG9RPK.js} +1 -1
  216. package/dist/assets/{use-skill-actions-DgK7Nmt1.js → use-skill-actions-BAAx1Eia.js} +1 -1
  217. package/dist/assets/{use-skill-detail-files-_v4zUF6S.js → use-skill-detail-files-BvOKvY0-.js} +1 -1
  218. package/dist/assets/use-sticky-profiles-CdWX0mgI.js +1 -0
  219. package/dist/assets/{use-subagent-card-data-YbAN73Fw.js → use-subagent-card-data-DHuNtSy9.js} +1 -1
  220. package/dist/assets/use-supports-credentials-settings-BbfghcWq.js +1 -0
  221. package/dist/assets/{use-swipe-engine-DRvffOuu.js → use-swipe-engine-6PcZZMVD.js} +1 -1
  222. package/dist/assets/{utils-BtC1KiH4.js → utils-B0rBxtYP.js} +1 -1
  223. package/dist/assets/{viewer-store-BDpZVbcr.js → viewer-store-DLk-jp8U.js} +1 -1
  224. package/dist/assets/{voice-list-DJeZeHuA.js → voice-list-CW8mzaHU.js} +1 -1
  225. package/dist/assets/{voice-page-DQcyxaPl.js → voice-page-0zsCIOdT.js} +1 -1
  226. package/dist/assets/{voice-picker-modal-BXMvQihh.js → voice-picker-modal-PdsZwrsV.js} +1 -1
  227. package/dist/assets/{weather-forecast-display-D2sn4QD4.js → weather-forecast-display-BAAnrNdd.js} +1 -1
  228. package/dist/assets/{web-Bj8XUknF.js → web-B3Q8ntoM.js} +1 -1
  229. package/dist/assets/{web-BE7l06mM.js → web-BlvxItuO.js} +1 -1
  230. package/dist/assets/{welcome-screen-n-cGiojh.js → welcome-screen-DwOAZpZS.js} +1 -1
  231. package/dist/assets/{workflow-detail-panel-Cq3AwWXE.js → workflow-detail-panel-DGL2BZSr.js} +1 -1
  232. package/dist/assets/{workflow-store-QV5aMjTt.js → workflow-store-lM7yKbUo.js} +1 -1
  233. package/dist/assets/workspace-page-D4NvhCv1.js +1 -0
  234. package/dist/assets/workspace-tree-query-B1A-efgV.js +1 -0
  235. package/dist/index.html +144 -141
  236. package/package.json +1 -1
  237. package/dist/assets/access-D3fUSyFH.js +0 -1
  238. package/dist/assets/ai-page-BznkOakE.js +0 -1
  239. package/dist/assets/animated-avatar-DzfEDnTh.js +0 -1
  240. package/dist/assets/api-CJFoPWHm.js +0 -1
  241. package/dist/assets/auth-store-D9BqFncz.js +0 -2
  242. package/dist/assets/billing-page-Cc5fHBn2.js +0 -3
  243. package/dist/assets/build-state-WR9nlRgM.js +0 -1
  244. package/dist/assets/channels-page-route-wxREzs6W.js +0 -9
  245. package/dist/assets/chat-avatar-DIDq1Jt5.js +0 -1
  246. package/dist/assets/chat-markdown-message-ERK48E1Z.js +0 -2
  247. package/dist/assets/client-feature-flag-store-oTfL8Oiz.js +0 -1
  248. package/dist/assets/consent-DbD2Hcbf.js +0 -1
  249. package/dist/assets/conversation-navigation-Wm7_pLFs.js +0 -1
  250. package/dist/assets/credentials-page-B-AJyMvk.js +0 -1
  251. package/dist/assets/debug-page-DWEIExMH.js +0 -4
  252. package/dist/assets/document-viewer-container-Cl4jDmfx.js +0 -2
  253. package/dist/assets/effective-timezone-qiooajmO.js +0 -1
  254. package/dist/assets/esm-CDPcGg-B.js +0 -2
  255. package/dist/assets/feature-flag-catalog-BAyJlRMY.js +0 -1
  256. package/dist/assets/file-Ddp9Dqgl.js +0 -1
  257. package/dist/assets/file-markdown-CLmQTpqL.js +0 -2
  258. package/dist/assets/general-page-DpKVqj5t.js +0 -1
  259. package/dist/assets/hatching-screen-d3SWqFKY.js +0 -1
  260. package/dist/assets/index-B0l9Wjpj.css +0 -2
  261. package/dist/assets/index-BOC87TAq.js +0 -11
  262. package/dist/assets/integrations-page-D5KWY6v-.js +0 -1
  263. package/dist/assets/local-mode-Ckii2tmN.js +0 -39
  264. package/dist/assets/login-flow-BCNBNLzu.js +0 -1
  265. package/dist/assets/native-anchor-CVNubOIm.js +0 -1
  266. package/dist/assets/native-biometric-CntdlaL-.js +0 -6
  267. package/dist/assets/onboarding-store-DutUn1E3.js +0 -1
  268. package/dist/assets/open-workspace-file-CpveqBim.js +0 -2
  269. package/dist/assets/plans-page-C-JyEPT_.js +0 -1
  270. package/dist/assets/privacy-screen-D2aDT6E6.js +0 -1
  271. package/dist/assets/research-onboarding-route-yg2iKw6i.js +0 -50
  272. package/dist/assets/retire-confirm-dialog--eF_pXhA.js +0 -1
  273. package/dist/assets/review-terms-screen-Dpk-gyJE.js +0 -1
  274. package/dist/assets/routes-BBFM42ft.js +0 -23
  275. package/dist/assets/routes-vE-2hncW.js +0 -1
  276. package/dist/assets/schedules-page-Dgu-znOf.js +0 -1
  277. package/dist/assets/settings-layout-b7iBWIT-.js +0 -1
  278. package/dist/assets/settings-navigation-BGdjm0Ki.js +0 -1
  279. package/dist/assets/skill-detail-page-GlV5JRzQ.js +0 -1
  280. package/dist/assets/slack-setup-wizard-DKj1_XdA.js +0 -1
  281. package/dist/assets/stream-watchdog-BafbDdX9.js +0 -1
  282. package/dist/assets/subagent-store-D-GPthdC.js +0 -3
  283. package/dist/assets/use-checkout-dismiss-refresh-kdxxDNpF.js +0 -1
  284. package/dist/assets/use-command-palette-sections-BWjxkwKB.js +0 -1
  285. package/dist/assets/use-invite-link-dialog-DX58-LWY.js +0 -1
  286. package/dist/assets/use-is-org-ready-X_98Cnx9.js +0 -1
  287. package/dist/assets/use-onboarding-login-B8rpbSEh.js +0 -1
  288. package/dist/assets/use-platform-gate-Dry0Nv4f.js +0 -1
  289. package/dist/assets/use-sticky-profiles-B0zVD3uk.js +0 -1
  290. package/dist/assets/workspace-page-CL9z2Jrs.js +0 -1
  291. /package/dist/assets/{app-info-qQex8Ndg.js → app-info-DefDjPEl.js} +0 -0
  292. /package/dist/assets/{app-types-CBg2__YH.js → app-types-DSkgEmV3.js} +0 -0
  293. /package/dist/assets/{apple-logo-poQac1tY.js → apple-logo--8ZT6Umn.js} +0 -0
  294. /package/dist/assets/{avatar-bundled-components-CecbESCk.js → avatar-bundled-components-DPqbVXi9.js} +0 -0
  295. /package/dist/assets/{avatar-subagent-C9WTTUjI.js → avatar-subagent-CRA2B82x.js} +0 -0
  296. /package/dist/assets/{avatar-svg-compositor-FtVPqzlC.js → avatar-svg-compositor-Dl-ckXRE.js} +0 -0
  297. /package/dist/assets/{avatar-tone-CMoWR2JX.js → avatar-tone-BKwvoDSj.js} +0 -0
  298. /package/dist/assets/{browser-timezone-C_0jBUid.js → browser-timezone-CGwaX5Uv.js} +0 -0
  299. /package/dist/assets/{build.umd-59c0EvgO.js → build.umd-Bixyt_xE.js} +0 -0
  300. /package/dist/assets/{by-tool-use-id-index-aoRP6d51.js → by-tool-use-id-index-M50wYE1f.js} +0 -0
  301. /package/dist/assets/{chat-BrL0k2UY.js → chat-CDFCY8f0.js} +0 -0
  302. /package/dist/assets/{chat-layout-slots-store-C2IFeZFr.js → chat-layout-slots-store-BJfYGnd7.js} +0 -0
  303. /package/dist/assets/{conversation-selection-3EKkKt0G.js → conversation-selection-oJy8Oht3.js} +0 -0
  304. /package/dist/assets/{conversation-store-bshB7nDP.js → conversation-store-C--wWMNW.js} +0 -0
  305. /package/dist/assets/{definitions-PikNVFdS.js → definitions-D_AmTPWg.js} +0 -0
  306. /package/dist/assets/{definitions-OhJf_HMS.js → definitions-JF3PcEff.js} +0 -0
  307. /package/dist/assets/{dictation-overlay-page-zpoNqudq.js → dictation-overlay-page-DtgaXzdF.js} +0 -0
  308. /package/dist/assets/{edge-swipe-arbiter-store-DyemvsR-.js → edge-swipe-arbiter-store-CQnDi2yf.js} +0 -0
  309. /package/dist/assets/{edit-chat-session-yPtopwB6.js → edit-chat-session-D37Qx6ol.js} +0 -0
  310. /package/dist/assets/{emoji-catalog-data-COLzb2Wj.js → emoji-catalog-data-BCc1YNMR.js} +0 -0
  311. /package/dist/assets/{environment-store-BFVmN-OW.js → environment-store-Bft0lpgv.js} +0 -0
  312. /package/dist/assets/{esm-DEY-lP80.js → esm-DNvorKcw.js} +0 -0
  313. /package/dist/assets/{external-urls-BYwuIdYk.js → external-urls-_vjsdj2L.js} +0 -0
  314. /package/dist/assets/{file-editor-DpNdd7HZ.js → file-editor-phorJEVv.js} +0 -0
  315. /package/dist/assets/{format-date-RZ9mCDCy.js → format-date-BGnM4mqL.js} +0 -0
  316. /package/dist/assets/{format-file-size-CQaPE33p.js → format-file-size-BgMTiWPt.js} +0 -0
  317. /package/dist/assets/{hard-navigate-DZlpL1No.js → hard-navigate-DyUrcxe0.js} +0 -0
  318. /package/dist/assets/{link-click-BoSQACXo.js → link-click-DLYgWZdo.js} +0 -0
  319. /package/dist/assets/{misc-DckBb5zz.js → misc-CuYswARt.js} +0 -0
  320. /package/dist/assets/{mutation-error-CwYvaYnb.js → mutation-error-DEknRDAQ.js} +0 -0
  321. /package/dist/assets/{native-deep-link-PvbVHiPM.js → native-deep-link-DCBJ-Rw0.js} +0 -0
  322. /package/dist/assets/{oauth-popup-DZEqljdC.js → oauth-popup-OhSYYlQF.js} +0 -0
  323. /package/dist/assets/{onboarding-step-layout-CURfuoh4.js → onboarding-step-layout-D9rghAjS.js} +0 -0
  324. /package/dist/assets/{optimistic-lifecycle-C2a6IJ7E.js → optimistic-lifecycle-BINTsVFx.js} +0 -0
  325. /package/dist/assets/{pdf-IQXtc7_x.js → pdf-BlwLcQAc.js} +0 -0
  326. /package/dist/assets/{plugin-attribution-DCFEMRUF.js → plugin-attribution-DrwveSW_.js} +0 -0
  327. /package/dist/assets/{plugins-surface-D4i2vqBz.js → plugins-surface-B43Op43l.js} +0 -0
  328. /package/dist/assets/{pointer-RLpjGG7A.js → pointer-BbPfN86L.js} +0 -0
  329. /package/dist/assets/{prechat-DIuViPZk.js → prechat-CeL4a_1i.js} +0 -0
  330. /package/dist/assets/{profile-metadata-h4CTeMKT.js → profile-metadata-BhqRdqUJ.js} +0 -0
  331. /package/dist/assets/{proxy-RtD8704m.js → proxy-D7UPVac3.js} +0 -0
  332. /package/dist/assets/{public-asset-CbDDcomC.js → public-asset-BBVUuTT_.js} +0 -0
  333. /package/dist/assets/{react-query.gen-Mwd5l-vZ.js → react-query.gen-BC3STDmV.js} +0 -0
  334. /package/dist/assets/{research-facts-UIXXE8D6.js → research-facts-B7Ev1zv0.js} +0 -0
  335. /package/dist/assets/{research-onboarding-persistence-CceFfAqE.js → research-onboarding-persistence-51lJoYJ2.js} +0 -0
  336. /package/dist/assets/{sandbox-bridge-DgDrAWv3.js → sandbox-bridge-BxW8HZq_.js} +0 -0
  337. /package/dist/assets/{sdk.gen-DPKrJeho.js → sdk.gen-B5ygTzyg.js} +0 -0
  338. /package/dist/assets/{setting-row-0LXvW7Kh.js → setting-row-BwXKepmJ.js} +0 -0
  339. /package/dist/assets/{status-badge-pill-z1OKPW3B.js → status-badge-pill-wJPMXQk1.js} +0 -0
  340. /package/dist/assets/{theme-preferences-ln8xC5zH.js → theme-preferences-Bb2pPRXa.js} +0 -0
  341. /package/dist/assets/{three-dot-indicator-SJcKW5cG.js → three-dot-indicator-BMvKQ_On.js} +0 -0
  342. /package/dist/assets/{use-bus-subscription-Cu4Y9DQi.js → use-bus-subscription-nUrbz9Mu.js} +0 -0
  343. /package/dist/assets/{use-copy-to-clipboard-DBVpNZOl.js → use-copy-to-clipboard-cF7ZSilD.js} +0 -0
  344. /package/dist/assets/{use-is-mobile-Bz2l7wPL.js → use-is-mobile-BlQuzI5Z.js} +0 -0
  345. /package/dist/assets/{web-7I6Bn0iP.js → web-9Cwi5jnT.js} +0 -0
  346. /package/dist/assets/{web-CBluPLFP.js → web-Bi-BvsRt.js} +0 -0
  347. /package/dist/assets/{web-Cmg3AbZk.js → web-D486_dlv.js} +0 -0
  348. /package/dist/assets/{web-DHVjLzid.js → web-DUb4LJ2M.js} +0 -0
  349. /package/dist/assets/{web-BEpNr5_U.js → web-l9DWMZeA.js} +0 -0
  350. /package/dist/assets/{web-BPyURh2Z.js → web-sr1ba6fP.js} +0 -0
  351. /package/dist/assets/{workflow-status-DXdUkbSd.js → workflow-status-HyIIhMBP.js} +0 -0
  352. /package/dist/assets/{workspace-theme-tokens-J8dqkK9n.js → workspace-theme-tokens-DNNwX-XS.js} +0 -0
  353. /package/dist/assets/{xterm-CdT0HObJ.js → xterm-DgGqTfet.js} +0 -0
  354. /package/dist/assets/{xterm-addon-fit-CPcVj1i5.js → xterm-addon-fit-BVObYBMM.js} +0 -0
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-Dy5001j6.js";import{m as r,u as i}from"./chunk-5KNZJZUH-Bsoom5--.js";import{t as a}from"./jsx-runtime-D3ZM-ToX.js";import{t as o}from"./input-hw3el2GJ.js";import{t as s}from"./dropdown-BCfnSdIZ.js";import{t as c}from"./is-electron-m5eeGBnd.js";import{u as l}from"./routes-vE-2hncW.js";import{t as u}from"./onboarding-layout-Dd5fPfE7.js";import{a as d,i as f,n as p,o as m,r as h,s as g}from"./provider-key-B3R8SlMJ.js";import"./onboarding-step-layout-CURfuoh4.js";var _=e(t(),1),v=a();function y(){let e=i(),[t]=r(),a=t.get(`hosting`),y=c(),b=p(),[x,S]=(0,_.useState)(()=>b?.provider??f.id),[C,w]=(0,_.useState)(()=>b?.key??``),[T,E]=(0,_.useState)(()=>b?.model??m(b?.provider??f.id)??``),[D,O]=(0,_.useState)(()=>b?.baseUrl??``),[k,A]=(0,_.useState)(()=>b?.customModels??``),j=g(x)??f,M=j.models??[],N=j.requiresKey,P=M.length>0,F=x===`openai-compatible`,I=(!(N&&!F)||C.trim().length>0)&&(!P||T.trim().length>0)&&(!F||D.trim().length>0&&k.trim().length>0);return(0,v.jsx)(u,{children:(0,v.jsxs)(`div`,{className:`mx-auto flex w-full max-w-xl flex-col items-center ${y?`min-h-full px-8 pt-21 pb-4 electron-prechat-type`:`px-6 py-16`} text-[var(--content-default)]`,children:[(0,v.jsx)(`h1`,{className:y?`text-title-large`:`text-3xl font-semibold tracking-tight`,style:{animation:`fadeInUp 0.5s ease-out 0.1s both`},children:`Connect a Model Provider`}),(0,v.jsx)(`p`,{className:`text-center text-body-medium-lighter text-[var(--content-tertiary)] ${y?`mt-3.5`:`mt-3`}`,style:{animation:`fadeInUp 0.5s ease-out 0.3s both`},children:`Choose the model provider your assistant should use.`}),(0,v.jsxs)(`div`,{className:`flex w-full flex-col gap-4 ${y?`mt-8`:`mt-10`}`,style:{animation:`fadeInUp 0.5s ease-out 0.4s both`},children:[(0,v.jsxs)(`div`,{className:`flex flex-col ${y?`gap-2`:`gap-1`}`,children:[(0,v.jsx)(`label`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Provider`}),(0,v.jsx)(s,{"aria-label":`Provider`,value:x,onChange:e=>{let t=g(e);t&&(S(t.id),w(``),E(m(t.id)??``))},options:d.map(e=>({value:e.id,label:e.displayName}))})]}),M.length>0&&(0,v.jsxs)(`div`,{className:`flex flex-col ${y?`gap-2`:`gap-1`}`,children:[(0,v.jsx)(`label`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Model`}),(0,v.jsx)(s,{"aria-label":`Model`,value:T,onChange:E,options:M.map(e=>({value:e.id,label:e.displayName}))})]}),F&&(0,v.jsxs)(v.Fragment,{children:[(0,v.jsxs)(`div`,{className:`flex flex-col ${y?`gap-2`:`gap-1`}`,children:[(0,v.jsx)(`label`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Base URL`}),(0,v.jsx)(o,{type:`text`,placeholder:`http://localhost:1234/v1`,value:D,onChange:e=>O(e.target.value),fullWidth:!0})]}),(0,v.jsxs)(`div`,{className:`flex flex-col ${y?`gap-2`:`gap-1`}`,children:[(0,v.jsx)(`label`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Models`}),(0,v.jsx)(o,{type:`text`,placeholder:`model-1, model-2`,value:k,onChange:e=>A(e.target.value),fullWidth:!0}),(0,v.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Comma-separated model identifiers exposed by your endpoint.`})]})]}),N&&(0,v.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,v.jsx)(o,{type:`password`,label:`${j.displayName} API Key`,placeholder:j.apiKeyPlaceholder??`Enter your API key`,value:C,onChange:e=>w(e.target.value),className:`touch-mobile:text-[16px]`,fullWidth:!0}),j.docsUrl&&(0,v.jsxs)(`p`,{className:`self-start text-body-medium-lighter text-[var(--content-tertiary)]`,children:[`Don't have it?`,` `,(0,v.jsx)(`a`,{href:j.docsUrl,target:`_blank`,rel:`noreferrer`,className:`text-[var(--content-default)] underline`,children:`Get an API key here`})]})]})]}),(0,v.jsxs)(`div`,{className:`mt-8 flex w-full flex-col ${y?`gap-2.5`:`gap-2`}`,style:{animation:`fadeInUp 0.5s ease-out 0.5s both`},children:[(0,v.jsx)(n,{variant:`primary`,size:`regular`,fullWidth:!0,disabled:!I,onClick:()=>{if(!I)return;let t=T.trim()||m(x);h({provider:x,key:C.trim(),...t?{model:t}:{},...F?{baseUrl:D.trim(),customModels:k.trim()}:{}}),e(a?`${l.onboarding.privacy}?hosting=${a}`:l.onboarding.privacy)},className:y?void 0:`h-11 text-base`,children:`Continue`}),(0,v.jsx)(n,{variant:`outlined`,size:`regular`,fullWidth:!0,onClick:()=>{e(l.onboarding.hosting)},className:y?void 0:`h-11 text-base`,children:`Back`})]})]})})}export{y as ApiKeyScreen};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-Dy5001j6.js";import{m as r,u as i}from"./chunk-5KNZJZUH-Bsoom5--.js";import{t as a}from"./jsx-runtime-D3ZM-ToX.js";import{t as o}from"./input-hw3el2GJ.js";import{t as s}from"./dropdown-BCfnSdIZ.js";import{t as c}from"./is-electron-m5eeGBnd.js";import{u as l}from"./routes-D9sNqB_o.js";import{t as u}from"./onboarding-layout-DLs1hfp_.js";import{a as d,i as f,n as p,o as m,r as h,s as g}from"./provider-key-D2Nsf9zh.js";import"./onboarding-step-layout-D9rghAjS.js";var _=e(t(),1),v=a();function y(){let e=i(),[t]=r(),a=t.get(`hosting`),y=c(),b=p(),[x,S]=(0,_.useState)(()=>b?.provider??f.id),[C,w]=(0,_.useState)(()=>b?.key??``),[T,E]=(0,_.useState)(()=>b?.model??m(b?.provider??f.id)??``),[D,O]=(0,_.useState)(()=>b?.baseUrl??``),[k,A]=(0,_.useState)(()=>b?.customModels??``),j=g(x)??f,M=j.models??[],N=j.requiresKey,P=M.length>0,F=x===`openai-compatible`,I=(!(N&&!F)||C.trim().length>0)&&(!P||T.trim().length>0)&&(!F||D.trim().length>0&&k.trim().length>0);return(0,v.jsx)(u,{children:(0,v.jsxs)(`div`,{className:`mx-auto flex w-full max-w-xl flex-col items-center ${y?`min-h-full px-8 pt-21 pb-4 electron-prechat-type`:`px-6 py-16`} text-[var(--content-default)]`,children:[(0,v.jsx)(`h1`,{className:y?`text-title-large`:`text-3xl font-semibold tracking-tight`,style:{animation:`fadeInUp 0.5s ease-out 0.1s both`},children:`Connect a Model Provider`}),(0,v.jsx)(`p`,{className:`text-center text-body-medium-lighter text-[var(--content-tertiary)] ${y?`mt-3.5`:`mt-3`}`,style:{animation:`fadeInUp 0.5s ease-out 0.3s both`},children:`Choose the model provider your assistant should use.`}),(0,v.jsxs)(`div`,{className:`flex w-full flex-col gap-4 ${y?`mt-8`:`mt-10`}`,style:{animation:`fadeInUp 0.5s ease-out 0.4s both`},children:[(0,v.jsxs)(`div`,{className:`flex flex-col ${y?`gap-2`:`gap-1`}`,children:[(0,v.jsx)(`label`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Provider`}),(0,v.jsx)(s,{"aria-label":`Provider`,value:x,onChange:e=>{let t=g(e);t&&(S(t.id),w(``),E(m(t.id)??``))},options:d.map(e=>({value:e.id,label:e.displayName}))})]}),M.length>0&&(0,v.jsxs)(`div`,{className:`flex flex-col ${y?`gap-2`:`gap-1`}`,children:[(0,v.jsx)(`label`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Model`}),(0,v.jsx)(s,{"aria-label":`Model`,value:T,onChange:E,options:M.map(e=>({value:e.id,label:e.displayName}))})]}),F&&(0,v.jsxs)(v.Fragment,{children:[(0,v.jsxs)(`div`,{className:`flex flex-col ${y?`gap-2`:`gap-1`}`,children:[(0,v.jsx)(`label`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Base URL`}),(0,v.jsx)(o,{type:`text`,placeholder:`http://localhost:1234/v1`,value:D,onChange:e=>O(e.target.value),fullWidth:!0})]}),(0,v.jsxs)(`div`,{className:`flex flex-col ${y?`gap-2`:`gap-1`}`,children:[(0,v.jsx)(`label`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Models`}),(0,v.jsx)(o,{type:`text`,placeholder:`model-1, model-2`,value:k,onChange:e=>A(e.target.value),fullWidth:!0}),(0,v.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Comma-separated model identifiers exposed by your endpoint.`})]})]}),N&&(0,v.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,v.jsx)(o,{type:`password`,label:`${j.displayName} API Key`,placeholder:j.apiKeyPlaceholder??`Enter your API key`,value:C,onChange:e=>w(e.target.value),className:`touch-mobile:text-[16px]`,fullWidth:!0}),j.docsUrl&&(0,v.jsxs)(`p`,{className:`self-start text-body-medium-lighter text-[var(--content-tertiary)]`,children:[`Don't have it?`,` `,(0,v.jsx)(`a`,{href:j.docsUrl,target:`_blank`,rel:`noreferrer`,className:`text-[var(--content-default)] underline`,children:`Get an API key here`})]})]})]}),(0,v.jsxs)(`div`,{className:`mt-8 flex w-full flex-col ${y?`gap-2.5`:`gap-2`}`,style:{animation:`fadeInUp 0.5s ease-out 0.5s both`},children:[(0,v.jsx)(n,{variant:`primary`,size:`regular`,fullWidth:!0,disabled:!I,onClick:()=>{if(!I)return;let t=T.trim()||m(x);h({provider:x,key:C.trim(),...t?{model:t}:{},...F?{baseUrl:D.trim(),customModels:k.trim()}:{}}),e(a?`${l.onboarding.privacy}?hosting=${a}`:l.onboarding.privacy)},className:y?void 0:`h-11 text-base`,children:`Continue`}),(0,v.jsx)(n,{variant:`outlined`,size:`regular`,fullWidth:!0,onClick:()=>{e(l.onboarding.hosting)},className:y?void 0:`h-11 text-base`,children:`Back`})]})]})})}export{y as ApiKeyScreen};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-Dy5001j6.js";import{n as r}from"./QueryClientProvider-CMu7CkQU.js";import{t as i}from"./jsx-runtime-D3ZM-ToX.js";import{t as a}from"./cn-CJf7MmLX.js";import{t as o}from"./createLucideIcon-CAM1RhH8.js";import{t as s}from"./external-link-CS0aVYGt.js";import{t as c}from"./puzzle-BVC3TGko.js";import"./src-D89CNeuT.js";import{n as l}from"./toast-LgLp4obE.js";import{t as u}from"./confirm-dialog-UYFm4osC.js";import{n as d,t as f}from"./create-selectors-Qo7kcikX.js";import{t as p}from"./sdk.gen-BVAVE6A_.js";import{n as m}from"./react-query.gen-r3I6j8-1.js";import{r as h}from"./typed-storage-9Sn8tkE7.js";import{i as g}from"./viewer-store-BDpZVbcr.js";import{t as _}from"./haptics-D9eNTUq-.js";import{t as v}from"./pointer-RLpjGG7A.js";import{t as y}from"./misc-DckBb5zz.js";import{t as b}from"./edge-swipe-arbiter-store-DyemvsR-.js";import{r as x}from"./sandbox-bridge-DgDrAWv3.js";var S=o(`pin-off`,[[`path`,{d:`M12 17v5`,key:`bb1du9`}],[`path`,{d:`M15 9.34V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H7.89`,key:`znwnzq`}],[`path`,{d:`m2 2 20 20`,key:`1ooewy`}],[`path`,{d:`M9 9v1.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h11`,key:`c9qhm2`}]]),C=o(`pin`,[[`path`,{d:`M12 17v5`,key:`bb1du9`}],[`path`,{d:`M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z`,key:`1nkz8b`}]]),w=e(t(),1),T=36,E=.8,D=8,O=.35;function k({enabled:e,leadingActions:t,trailingActions:n}){let r=(t?.length??0)*72,i=(n?.length??0)*72,[a,o]=(0,w.useState)(0),[s,c]=(0,w.useState)(!1),[l,u]=(0,w.useState)(`none`),d=b.use.registerOpenRow(),f=b.use.unregisterOpenRow();(0,w.useEffect)(()=>{if(l!==`none`)return d(),f},[l,d,f]);let p=(0,w.useRef)(null),m=(0,w.useCallback)(()=>{p.current=null,c(!1),o(0)},[]),h=(0,w.useCallback)(()=>{o(0),u(`none`)},[]);return{offset:a,isDragging:s,revealedSide:l,leadingWidth:r,trailingWidth:i,onTouchStart:(0,w.useCallback)(r=>{if(!e||!t&&!n)return;if(r.touches.length!==1){m();return}let i=r.touches[0];p.current={touchId:i.identifier,startX:i.clientX,startY:i.clientY,axis:`undecided`,lastDx:0,startOffset:a}},[e,t,n,a,m]),onTouchMove:(0,w.useCallback)(e=>{let t=p.current;if(!t)return;if(e.touches.length!==1){m();return}let n=e.touches[0];if(n.identifier!==t.touchId)return;let a=n.clientX-t.startX,s=n.clientY-t.startY;if(t.lastDx=a,t.axis===`undecided`){if(Math.abs(a)<D&&Math.abs(s)<D)return;if(Math.abs(s)>Math.abs(a)*E){p.current=null;return}t.axis=`horizontal`,c(!0)}if(t.axis!==`horizontal`)return;if(Math.abs(a)<T&&Math.abs(s)>Math.abs(a)*E){m(),o(t.startOffset);return}let l=t.startOffset+a,u=r,d=-i;l>u?l=u+(l-u)*O:l<d&&(l=d+(l-d)*O),(t.startOffset>0&&l<0&&i===0||t.startOffset<0&&l>0&&r===0)&&(l*=O),o(l)},[r,i,m]),onTouchEnd:(0,w.useCallback)(e=>{let t=p.current;if(!t){m();return}if(t.axis===`undecided`){p.current=null,c(!1);return}if(t.axis!==`horizontal`){m();return}if(e.touches.length>0){m();return}let n=Array.from(e.changedTouches).find(e=>e.identifier===t.touchId),a=n?n.clientX-t.startX:t.lastDx,s=t.startOffset+a;s<=-T&&i>0?(_.light(),o(-i),u(`trailing`)):s>=T&&r>0?(_.light(),o(r),u(`leading`)):(o(0),u(`none`)),p.current=null,c(!1)},[r,i,m]),onTouchCancel:(0,w.useCallback)(()=>{h(),m()},[h,m]),close:h}}var A=i();function j({action:e,onAfterSelect:t,hidden:n=!1}){let r=(0,w.useCallback)(()=>{e.onSelect(),t()},[e,t]),i=e.icon;return(0,A.jsxs)(`button`,{type:`button`,"aria-label":e.label,"aria-hidden":n,tabIndex:n?-1:0,onClick:r,className:a(`flex shrink-0 flex-col items-center justify-center gap-1`,`touch-mobile:transition-none`),style:{width:72,color:e.variant===`destructive`?`var(--aux-white)`:`var(--content-inset)`,background:e.variant===`destructive`?`var(--system-negative-strong)`:`var(--primary-base)`},children:[(0,A.jsx)(i,{size:18}),(0,A.jsx)(`span`,{className:`text-[10px] font-medium leading-none`,children:e.label})]})}var M=(0,w.forwardRef)(function({children:e,leadingActions:t,trailingActions:n,enabled:r=v(),className:i,style:o,...s},c){let l=r&&((t?.length??0)>0||(n?.length??0)>0),{offset:u,isDragging:d,onTouchStart:f,onTouchMove:p,onTouchEnd:m,onTouchCancel:h,close:g}=k({enabled:l,leadingActions:t,trailingActions:n});return l?(0,A.jsxs)(`div`,{ref:c,className:a(`relative overflow-hidden`,i),...s,style:{...o,touchAction:`pan-y`},onTouchStart:f,onTouchMove:p,onTouchEnd:m,onTouchCancel:h,children:[n&&n.length>0?(0,A.jsx)(`div`,{className:`absolute inset-y-0 right-0 flex`,"aria-hidden":u>=0,style:u>=0?{pointerEvents:`none`}:void 0,children:n.map(e=>(0,A.jsx)(j,{action:e,onAfterSelect:g,hidden:u>=0},e.id))}):null,t&&t.length>0?(0,A.jsx)(`div`,{className:`absolute inset-y-0 left-0 flex`,"aria-hidden":u<=0,style:u<=0?{pointerEvents:`none`}:void 0,children:t.map(e=>(0,A.jsx)(j,{action:e,onAfterSelect:g,hidden:u<=0},e.id))}):null,(0,A.jsx)(`div`,{className:a(`relative bg-[var(--surface-overlay)] transition-transform`,d&&`transition-none`),style:{transform:`translateX(${u}px)`,zIndex:1},children:e})]}):(0,A.jsx)(`div`,{ref:c,className:i,style:o,...s,children:e})});function N(e){if(!e||typeof e!=`object`)return!1;let t=e;return typeof t.appId==`string`&&typeof t.pinnedOrder==`number`&&Number.isFinite(t.pinnedOrder)&&typeof t.name==`string`&&(t.icon===void 0||typeof t.icon==`string`)}function P(e){let t=JSON.parse(e);return Array.isArray(t)?t.filter(N):null}var F=h({key:`vellum:pinnedApps`,scope:`user`,parse:P,serialize:JSON.stringify,fallback:[]}),I=F.load;F.save;function L(e){let t=F.load();if(t.some(t=>t.appId===e.id))return;let n=t.reduce((e,t)=>Math.max(e,t.pinnedOrder),0);F.save([...t,{appId:e.id,pinnedOrder:n+1,name:e.name,icon:e.icon}])}function R(e){let t=F.load().filter(t=>t.appId!==e);t=t.sort((e,t)=>e.pinnedOrder-t.pinnedOrder).map((e,t)=>({...e,pinnedOrder:t+1})),F.save(t)}var z=new Set;function B(){let e=I();return{pinnedApps:e,pinnedAppIds:new Set(e.map(e=>e.appId))}}var V=f(d()((e,t)=>({...B(),togglePin:n=>{t().pinnedAppIds.has(n.id)?t().unpin(n.id):(L(n),e(B()))},unpin:n=>{if(t().pinnedAppIds.has(n)){R(n),e(B());for(let e of z)e(n)}},isPinned:e=>t().pinnedAppIds.has(e),onUnpin:e=>(z.add(e),()=>{z.delete(e)})})));function H({app:e,isDeleting:t,onConfirm:n,onCancel:r}){return(0,A.jsx)(u,{open:e!==null,title:`Delete app`,message:e?`"${e.name}" will be permanently removed.`:``,confirmLabel:t?`Deleting…`:`Delete`,destructive:!0,onConfirm:n,onCancel:r})}function U(e){let t=r(),n=V.use.togglePin(),i=V.use.pinnedAppIds(),[a,o]=(0,w.useState)(null),[s,c]=(0,w.useState)(!1);return{pendingDelete:a,isDeleting:s,requestDelete:o,confirmDelete:(0,w.useCallback)(async()=>{if(!(!a||s)){c(!0);try{await p({path:{assistant_id:e,id:a.id},throwOnError:!0}),g(e,a.id),t.invalidateQueries({queryKey:m({path:{assistant_id:e}})}),i.has(a.id)&&n(a),o(null)}catch(e){l.error(e instanceof Error?e.message:`Failed to delete app`)}finally{c(!1)}}},[a,s,e,i,n,t]),cancelDelete:(0,w.useCallback)(()=>{s||o(null)},[s])}}function W({name:e,description:t,icon:r,loadHtml:i,isPinned:a=!1,isLoading:o=!1,isOpenDisabled:c=!1,isPreviewPending:l=!1,onOpen:u,onPin:d}){return(0,A.jsxs)(`div`,{className:y(`flex flex-col gap-2 rounded-xl border border-[var(--border-base)]`,`bg-[var(--surface-lift)] p-3`),children:[(0,A.jsx)(G,{name:e,icon:r,loadHtml:l?void 0:i,isLoading:o,isPreviewPending:l}),(0,A.jsxs)(`div`,{className:`flex flex-col gap-0.5 px-0.5`,children:[(0,A.jsxs)(`span`,{className:`flex items-center gap-2 truncate text-body-large-default text-[color:var(--content-emphasised)]`,children:[r?(0,A.jsx)(`span`,{"aria-hidden":!0,className:`leading-none`,children:r}):null,(0,A.jsx)(`span`,{className:`truncate`,children:e})]}),t?(0,A.jsx)(`span`,{className:`truncate text-body-medium-default text-[color:var(--content-secondary)]`,children:t}):null]}),(0,A.jsxs)(`div`,{className:`flex items-center gap-1.5 px-0.5`,children:[(0,A.jsx)(n,{variant:`primary`,leftIcon:(0,A.jsx)(s,{}),onClick:u,disabled:c||u==null,children:`Open App`}),(0,A.jsx)(n,{variant:`outlined`,leftIcon:a?(0,A.jsx)(S,{}):(0,A.jsx)(C,{}),onClick:d,disabled:d==null,children:a?`Unpin`:`Pin`})]})]})}function G({name:e,icon:t,loadHtml:n,isLoading:r=!1,isPreviewPending:i=!1,className:a}){let o=(0,w.useRef)(null),[s,l]=(0,w.useState)(null),[u,d]=(0,w.useState)(!1);return(0,w.useEffect)(()=>{if(n==null)return;let e=o.current;if(!e||typeof IntersectionObserver>`u`)return;let t=new IntersectionObserver(([e])=>{e?.isIntersecting&&(d(!0),t.disconnect())},{rootMargin:`200px`});return t.observe(e),()=>t.disconnect()},[n]),(0,w.useEffect)(()=>{if(!u||n==null)return;let e=!1;return n().then(t=>{e||l(t)}).catch(()=>{}),()=>{e=!0}},[u,n]),(0,A.jsxs)(`div`,{ref:o,className:y(`relative aspect-[16/10] w-full overflow-hidden rounded-lg`,`border border-[var(--border-base)] bg-[var(--surface-base)]`,a),children:[(0,A.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-center`,children:i?null:t?(0,A.jsx)(`span`,{className:`text-4xl`,children:t}):(0,A.jsx)(c,{size:32,className:`text-[var(--content-tertiary)]`})}),s!=null&&(0,A.jsx)(`iframe`,{srcDoc:x(s),sandbox:`allow-scripts`,referrerPolicy:`no-referrer`,title:`${e} preview`,"aria-hidden":`true`,tabIndex:-1,loading:`lazy`,scrolling:`no`,className:`absolute left-0 top-0 border-none bg-[var(--surface-base)]`,style:{width:`200%`,height:`200%`,transform:`scale(0.5)`,transformOrigin:`top left`,pointerEvents:`none`}}),r&&(0,A.jsx)(`div`,{className:`absolute inset-0 z-10 flex items-center justify-center bg-[var(--surface-base)]/60 backdrop-blur-sm`,children:(0,A.jsx)(`div`,{className:`h-5 w-5 animate-spin rounded-full border-2 border-[var(--border-base)] border-t-[var(--primary-base)]`})})]})}export{V as a,S as c,H as i,G as n,M as o,U as r,C as s,W as t};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-Dy5001j6.js";import{n as r}from"./QueryClientProvider-CMu7CkQU.js";import{t as i}from"./jsx-runtime-D3ZM-ToX.js";import{t as a}from"./cn-CJf7MmLX.js";import{t as o}from"./createLucideIcon-CAM1RhH8.js";import{t as s}from"./external-link-CS0aVYGt.js";import{t as c}from"./puzzle-BVC3TGko.js";import"./src-te3YTBG-.js";import{n as l}from"./toast-LgLp4obE.js";import{t as u}from"./confirm-dialog-UYFm4osC.js";import{n as d,t as f}from"./create-selectors-Qo7kcikX.js";import{t as p}from"./sdk.gen-BHZ0fJla.js";import{n as m}from"./react-query.gen-C5c1Acuq.js";import{r as h}from"./typed-storage-9Sn8tkE7.js";import{i as g}from"./viewer-store-DLk-jp8U.js";import{t as _}from"./haptics-DvWjk9Fg.js";import{t as v}from"./pointer-BbPfN86L.js";import{t as y}from"./misc-CuYswARt.js";import{t as b}from"./edge-swipe-arbiter-store-CQnDi2yf.js";import{r as x}from"./sandbox-bridge-BxW8HZq_.js";var S=o(`pin-off`,[[`path`,{d:`M12 17v5`,key:`bb1du9`}],[`path`,{d:`M15 9.34V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H7.89`,key:`znwnzq`}],[`path`,{d:`m2 2 20 20`,key:`1ooewy`}],[`path`,{d:`M9 9v1.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h11`,key:`c9qhm2`}]]),C=o(`pin`,[[`path`,{d:`M12 17v5`,key:`bb1du9`}],[`path`,{d:`M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z`,key:`1nkz8b`}]]),w=e(t(),1),T=36,E=.8,D=8,O=.35;function k({enabled:e,leadingActions:t,trailingActions:n}){let r=(t?.length??0)*72,i=(n?.length??0)*72,[a,o]=(0,w.useState)(0),[s,c]=(0,w.useState)(!1),[l,u]=(0,w.useState)(`none`),d=b.use.registerOpenRow(),f=b.use.unregisterOpenRow();(0,w.useEffect)(()=>{if(l!==`none`)return d(),f},[l,d,f]);let p=(0,w.useRef)(null),m=(0,w.useCallback)(()=>{p.current=null,c(!1),o(0)},[]),h=(0,w.useCallback)(()=>{o(0),u(`none`)},[]);return{offset:a,isDragging:s,revealedSide:l,leadingWidth:r,trailingWidth:i,onTouchStart:(0,w.useCallback)(r=>{if(!e||!t&&!n)return;if(r.touches.length!==1){m();return}let i=r.touches[0];p.current={touchId:i.identifier,startX:i.clientX,startY:i.clientY,axis:`undecided`,lastDx:0,startOffset:a}},[e,t,n,a,m]),onTouchMove:(0,w.useCallback)(e=>{let t=p.current;if(!t)return;if(e.touches.length!==1){m();return}let n=e.touches[0];if(n.identifier!==t.touchId)return;let a=n.clientX-t.startX,s=n.clientY-t.startY;if(t.lastDx=a,t.axis===`undecided`){if(Math.abs(a)<D&&Math.abs(s)<D)return;if(Math.abs(s)>Math.abs(a)*E){p.current=null;return}t.axis=`horizontal`,c(!0)}if(t.axis!==`horizontal`)return;if(Math.abs(a)<T&&Math.abs(s)>Math.abs(a)*E){m(),o(t.startOffset);return}let l=t.startOffset+a,u=r,d=-i;l>u?l=u+(l-u)*O:l<d&&(l=d+(l-d)*O),(t.startOffset>0&&l<0&&i===0||t.startOffset<0&&l>0&&r===0)&&(l*=O),o(l)},[r,i,m]),onTouchEnd:(0,w.useCallback)(e=>{let t=p.current;if(!t){m();return}if(t.axis===`undecided`){p.current=null,c(!1);return}if(t.axis!==`horizontal`){m();return}if(e.touches.length>0){m();return}let n=Array.from(e.changedTouches).find(e=>e.identifier===t.touchId),a=n?n.clientX-t.startX:t.lastDx,s=t.startOffset+a;s<=-T&&i>0?(_.light(),o(-i),u(`trailing`)):s>=T&&r>0?(_.light(),o(r),u(`leading`)):(o(0),u(`none`)),p.current=null,c(!1)},[r,i,m]),onTouchCancel:(0,w.useCallback)(()=>{h(),m()},[h,m]),close:h}}var A=i();function j({action:e,onAfterSelect:t,hidden:n=!1}){let r=(0,w.useCallback)(()=>{e.onSelect(),t()},[e,t]),i=e.icon;return(0,A.jsxs)(`button`,{type:`button`,"aria-label":e.label,"aria-hidden":n,tabIndex:n?-1:0,onClick:r,className:a(`flex shrink-0 flex-col items-center justify-center gap-1`,`touch-mobile:transition-none`),style:{width:72,color:e.variant===`destructive`?`var(--aux-white)`:`var(--content-inset)`,background:e.variant===`destructive`?`var(--system-negative-strong)`:`var(--primary-base)`},children:[(0,A.jsx)(i,{size:18}),(0,A.jsx)(`span`,{className:`text-[10px] font-medium leading-none`,children:e.label})]})}var M=(0,w.forwardRef)(function({children:e,leadingActions:t,trailingActions:n,enabled:r=v(),className:i,style:o,...s},c){let l=r&&((t?.length??0)>0||(n?.length??0)>0),{offset:u,isDragging:d,onTouchStart:f,onTouchMove:p,onTouchEnd:m,onTouchCancel:h,close:g}=k({enabled:l,leadingActions:t,trailingActions:n});return l?(0,A.jsxs)(`div`,{ref:c,className:a(`relative overflow-hidden`,i),...s,style:{...o,touchAction:`pan-y`},onTouchStart:f,onTouchMove:p,onTouchEnd:m,onTouchCancel:h,children:[n&&n.length>0?(0,A.jsx)(`div`,{className:`absolute inset-y-0 right-0 flex`,"aria-hidden":u>=0,style:u>=0?{pointerEvents:`none`}:void 0,children:n.map(e=>(0,A.jsx)(j,{action:e,onAfterSelect:g,hidden:u>=0},e.id))}):null,t&&t.length>0?(0,A.jsx)(`div`,{className:`absolute inset-y-0 left-0 flex`,"aria-hidden":u<=0,style:u<=0?{pointerEvents:`none`}:void 0,children:t.map(e=>(0,A.jsx)(j,{action:e,onAfterSelect:g,hidden:u<=0},e.id))}):null,(0,A.jsx)(`div`,{className:a(`relative bg-[var(--surface-overlay)] transition-transform`,d&&`transition-none`),style:{transform:`translateX(${u}px)`,zIndex:1},children:e})]}):(0,A.jsx)(`div`,{ref:c,className:i,style:o,...s,children:e})});function N(e){if(!e||typeof e!=`object`)return!1;let t=e;return typeof t.appId==`string`&&typeof t.pinnedOrder==`number`&&Number.isFinite(t.pinnedOrder)&&typeof t.name==`string`&&(t.icon===void 0||typeof t.icon==`string`)}function P(e){let t=JSON.parse(e);return Array.isArray(t)?t.filter(N):null}var F=h({key:`vellum:pinnedApps`,scope:`user`,parse:P,serialize:JSON.stringify,fallback:[]}),I=F.load;F.save;function L(e){let t=F.load();if(t.some(t=>t.appId===e.id))return;let n=t.reduce((e,t)=>Math.max(e,t.pinnedOrder),0);F.save([...t,{appId:e.id,pinnedOrder:n+1,name:e.name,icon:e.icon}])}function R(e){let t=F.load().filter(t=>t.appId!==e);t=t.sort((e,t)=>e.pinnedOrder-t.pinnedOrder).map((e,t)=>({...e,pinnedOrder:t+1})),F.save(t)}var z=new Set;function B(){let e=I();return{pinnedApps:e,pinnedAppIds:new Set(e.map(e=>e.appId))}}var V=f(d()((e,t)=>({...B(),togglePin:n=>{t().pinnedAppIds.has(n.id)?t().unpin(n.id):(L(n),e(B()))},unpin:n=>{if(t().pinnedAppIds.has(n)){R(n),e(B());for(let e of z)e(n)}},isPinned:e=>t().pinnedAppIds.has(e),onUnpin:e=>(z.add(e),()=>{z.delete(e)})})));function H({app:e,isDeleting:t,onConfirm:n,onCancel:r}){return(0,A.jsx)(u,{open:e!==null,title:`Delete app`,message:e?`"${e.name}" will be permanently removed.`:``,confirmLabel:t?`Deleting…`:`Delete`,destructive:!0,onConfirm:n,onCancel:r})}function U(e){let t=r(),n=V.use.togglePin(),i=V.use.pinnedAppIds(),[a,o]=(0,w.useState)(null),[s,c]=(0,w.useState)(!1);return{pendingDelete:a,isDeleting:s,requestDelete:o,confirmDelete:(0,w.useCallback)(async()=>{if(!(!a||s)){c(!0);try{await p({path:{assistant_id:e,id:a.id},throwOnError:!0}),g(e,a.id),t.invalidateQueries({queryKey:m({path:{assistant_id:e}})}),i.has(a.id)&&n(a),o(null)}catch(e){l.error(e instanceof Error?e.message:`Failed to delete app`)}finally{c(!1)}}},[a,s,e,i,n,t]),cancelDelete:(0,w.useCallback)(()=>{s||o(null)},[s])}}function W({name:e,description:t,icon:r,loadHtml:i,isPinned:a=!1,isLoading:o=!1,isOpenDisabled:c=!1,isPreviewPending:l=!1,onOpen:u,onPin:d}){return(0,A.jsxs)(`div`,{className:y(`flex flex-col gap-2 rounded-xl border border-[var(--border-base)]`,`bg-[var(--surface-lift)] p-3`),children:[(0,A.jsx)(G,{name:e,icon:r,loadHtml:l?void 0:i,isLoading:o,isPreviewPending:l}),(0,A.jsxs)(`div`,{className:`flex flex-col gap-0.5 px-0.5`,children:[(0,A.jsxs)(`span`,{className:`flex items-center gap-2 truncate text-body-large-default text-[color:var(--content-emphasised)]`,children:[r?(0,A.jsx)(`span`,{"aria-hidden":!0,className:`leading-none`,children:r}):null,(0,A.jsx)(`span`,{className:`truncate`,children:e})]}),t?(0,A.jsx)(`span`,{className:`truncate text-body-medium-default text-[color:var(--content-secondary)]`,children:t}):null]}),(0,A.jsxs)(`div`,{className:`flex items-center gap-1.5 px-0.5`,children:[(0,A.jsx)(n,{variant:`primary`,leftIcon:(0,A.jsx)(s,{}),onClick:u,disabled:c||u==null,children:`Open App`}),(0,A.jsx)(n,{variant:`outlined`,leftIcon:a?(0,A.jsx)(S,{}):(0,A.jsx)(C,{}),onClick:d,disabled:d==null,children:a?`Unpin`:`Pin`})]})]})}function G({name:e,icon:t,loadHtml:n,isLoading:r=!1,isPreviewPending:i=!1,className:a}){let o=(0,w.useRef)(null),[s,l]=(0,w.useState)(null),[u,d]=(0,w.useState)(!1);return(0,w.useEffect)(()=>{if(n==null)return;let e=o.current;if(!e||typeof IntersectionObserver>`u`)return;let t=new IntersectionObserver(([e])=>{e?.isIntersecting&&(d(!0),t.disconnect())},{rootMargin:`200px`});return t.observe(e),()=>t.disconnect()},[n]),(0,w.useEffect)(()=>{if(!u||n==null)return;let e=!1;return n().then(t=>{e||l(t)}).catch(()=>{}),()=>{e=!0}},[u,n]),(0,A.jsxs)(`div`,{ref:o,className:y(`relative aspect-[16/10] w-full overflow-hidden rounded-lg`,`border border-[var(--border-base)] bg-[var(--surface-base)]`,a),children:[(0,A.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-center`,children:i?null:t?(0,A.jsx)(`span`,{className:`text-4xl`,children:t}):(0,A.jsx)(c,{size:32,className:`text-[var(--content-tertiary)]`})}),s!=null&&(0,A.jsx)(`iframe`,{srcDoc:x(s),sandbox:`allow-scripts`,referrerPolicy:`no-referrer`,title:`${e} preview`,"aria-hidden":`true`,tabIndex:-1,loading:`lazy`,scrolling:`no`,className:`absolute left-0 top-0 border-none bg-[var(--surface-base)]`,style:{width:`200%`,height:`200%`,transform:`scale(0.5)`,transformOrigin:`top left`,pointerEvents:`none`}}),r&&(0,A.jsx)(`div`,{className:`absolute inset-0 z-10 flex items-center justify-center bg-[var(--surface-base)]/60 backdrop-blur-sm`,children:(0,A.jsx)(`div`,{className:`h-5 w-5 animate-spin rounded-full border-2 border-[var(--border-base)] border-t-[var(--primary-base)]`})})]})}export{V as a,S as c,H as i,G as n,M as o,U as r,C as s,W as t};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{u as n}from"./chunk-5KNZJZUH-Bsoom5--.js";import{u as r}from"./routes-vE-2hncW.js";var i=e(t(),1);function a(){let e=n();return(0,i.useEffect)(()=>{e(`${r.settings.debug}?tab=archive`,{replace:!0})},[e]),null}export{a as ArchiveRedirectPage};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{u as n}from"./chunk-5KNZJZUH-Bsoom5--.js";import{u as r}from"./routes-D9sNqB_o.js";var i=e(t(),1);function a(){let e=n();return(0,i.useEffect)(()=>{e(`${r.settings.debug}?tab=archive`,{replace:!0})},[e]),null}export{a as ArchiveRedirectPage};
@@ -1 +1 @@
1
- import{n as e}from"./toast-LgLp4obE.js";import{n as t,t as n}from"./create-selectors-Qo7kcikX.js";import{c as r,n as i,s as a,t as o,u as s}from"./feature-flag-catalog-BAyJlRMY.js";import{h as c}from"./sdk.gen-DPKrJeho.js";var l={...o},u={...i},d=0,f={};function p(e={}){l={...o,...e};for(let e of Object.keys(f))delete f[e]}function m(e={}){u={...i,...e}}function h(){p(),m()}var g=a(`assistant`);function _(e){return l[e]??o[e]??!1}function v(e){return u[e]??i[e]??``}var y=n(t()(t=>{let n=t;return{...o,...g.bool,hasHydrated:!1,stringFlags:{...i,...g.str},setFlags:e=>t(t=>{p(e);let n={...e,...g.bool};return Object.keys(n).some(e=>n[e]!==t[e])?n:t}),setFlag:(n,i,a)=>{let o=++d,u=()=>{if(f[n]!==o)return;delete f[n];let a=_(n);t(e=>e[n]===i?{[n]:a}:e),e.error(`Couldn't update "${r(n)?.label??n}" — change reverted.`)},p=s(n);!a||!p||(f[n]=o,c({path:{assistant_id:a,flag_key:p},body:{enabled:i},throwOnError:!1}).then(e=>{e.response?.ok?(l[n]=i,f[n]===o&&delete f[n]):u()}).catch(u),t({[n]:g.bool[n]??i}))},markHydrated:()=>t({hasHydrated:!0}),resetForAssistantSwitch:()=>{h(),t({...o,...g.bool,hasHydrated:!1}),n({stringFlags:{...i,...g.str}})},setStringFlags:e=>n(t=>{m(e);let n={...e,...g.str},r=t.stringFlags;return Object.keys(n).some(e=>n[e]!==r[e])?{stringFlags:n}:t}),setStringFlag:(t,i,a)=>{let o=++d,l=()=>{if(f[t]!==o)return;delete f[t];let a=v(t);n(e=>e.stringFlags[t]===i?{stringFlags:{...e.stringFlags,[t]:a}}:e),e.error(`Couldn't update "${r(t)?.label??t}" — change reverted.`)},p=s(t);!a||!p||(f[t]=o,c({path:{assistant_id:a,flag_key:p},body:{enabled:i},throwOnError:!1}).then(e=>{e.response?.ok?(u[t]=i,f[t]===o&&delete f[t]):l()}).catch(l),n(e=>({stringFlags:{...e.stringFlags,[t]:g.str[t]??i}})))}}}));export{y as t};
1
+ import{n as e}from"./toast-LgLp4obE.js";import{n as t,t as n}from"./create-selectors-Qo7kcikX.js";import{c as r,n as i,s as a,t as o,u as s}from"./feature-flag-catalog-I9-eJQP_.js";import{h as c}from"./sdk.gen-B5ygTzyg.js";var l={...o},u={...i},d=0,f={};function p(e={}){l={...o,...e};for(let e of Object.keys(f))delete f[e]}function m(e={}){u={...i,...e}}function h(){p(),m()}var g=a(`assistant`);function _(e){return l[e]??o[e]??!1}function v(e){return u[e]??i[e]??``}var y=n(t()(t=>{let n=t;return{...o,...g.bool,hasHydrated:!1,stringFlags:{...i,...g.str},setFlags:e=>t(t=>{p(e);let n={...e,...g.bool};return Object.keys(n).some(e=>n[e]!==t[e])?n:t}),setFlag:(n,i,a)=>{let o=++d,u=()=>{if(f[n]!==o)return;delete f[n];let a=_(n);t(e=>e[n]===i?{[n]:a}:e),e.error(`Couldn't update "${r(n)?.label??n}" — change reverted.`)},p=s(n);!a||!p||(f[n]=o,c({path:{assistant_id:a,flag_key:p},body:{enabled:i},throwOnError:!1}).then(e=>{e.response?.ok?(l[n]=i,f[n]===o&&delete f[n]):u()}).catch(u),t({[n]:g.bool[n]??i}))},markHydrated:()=>t({hasHydrated:!0}),resetForAssistantSwitch:()=>{h(),t({...o,...g.bool,hasHydrated:!1}),n({stringFlags:{...i,...g.str}})},setStringFlags:e=>n(t=>{m(e);let n={...e,...g.str},r=t.stringFlags;return Object.keys(n).some(e=>n[e]!==r[e])?{stringFlags:n}:t}),setStringFlag:(t,i,a)=>{let o=++d,l=()=>{if(f[t]!==o)return;delete f[t];let a=v(t);n(e=>e.stringFlags[t]===i?{stringFlags:{...e.stringFlags,[t]:a}}:e),e.error(`Couldn't update "${r(t)?.label??t}" — change reverted.`)},p=s(t);!a||!p||(f[t]=o,c({path:{assistant_id:a,flag_key:p},body:{enabled:i},throwOnError:!1}).then(e=>{e.response?.ok?(u[t]=i,f[t]===o&&delete f[t]):l()}).catch(l),n(e=>({stringFlags:{...e.stringFlags,[t]:g.str[t]??i}})))}}}));export{y as t};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{n as t,t as n}from"./capture-error-Bj8_eutd.js";import{t as r}from"./react-BFJW0bSv.js";import{t as i}from"./useQuery-Bz-fbQ-m.js";import{t as a}from"./jsx-runtime-D3ZM-ToX.js";import{t as o}from"./loader-circle-XREx3i4W.js";import"./src-D89CNeuT.js";import"./tag-NXcyiTkK.js";import{n as s}from"./toast-LgLp4obE.js";import"./auth-store-D9BqFncz.js";import{a as c,r as l}from"./api-XwdNiVE9.js";import{t as u}from"./assistant-feature-flag-store-CLqMw4mK.js";import{t as d}from"./use-active-assistant-id-Cjbsk2Q3.js";import"./environment-store-BFVmN-OW.js";var f=e(r(),1),p=a();function m({value:e,max:t,caption:n}){let r=t>0?Math.max(0,Math.min(e/t*100,100)):0,i=r>90;return(0,p.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,p.jsx)(`div`,{className:`h-2 w-full overflow-hidden rounded-full bg-[var(--surface-active)]`,children:(0,p.jsx)(`div`,{className:`h-full rounded-full transition-[width] duration-200`,style:{width:`${r}%`,backgroundColor:i?`var(--system-negative-strong)`:`var(--system-positive-strong)`}})}),n&&(0,p.jsx)(`span`,{className:`text-label-medium-default text-[var(--content-tertiary)]`,children:n})]})}var h=7,g=2e3;function _(e){let t=(0,f.useRef)(0),n=(0,f.useRef)(null),[r,i]=(0,f.useState)(null),a=(0,f.useCallback)(()=>{if(t.current+=1,t.current>=h){t.current=0;let r=u.getState(),a=!r.settingsDeveloperNav;r.setFlag(`settingsDeveloperNav`,a,e),i(a?`Developer mode enabled`:`Developer mode disabled`),n.current!==null&&clearTimeout(n.current),n.current=setTimeout(()=>{i(null),n.current=null},g)}},[e]);return(0,f.useEffect)(()=>()=>{n.current!==null&&clearTimeout(n.current)},[]),{onTap:a,message:r}}function v({version:e,loading:t,assistantId:n}){let{onTap:r,message:i}=_(n);return t?(0,p.jsxs)(`span`,{className:`flex items-center gap-2 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,p.jsx)(o,{className:`h-4 w-4 animate-spin`}),`Loading version...`]}):e?(0,p.jsxs)(`div`,{children:[(0,p.jsx)(`button`,{type:`button`,className:`break-all text-left text-body-medium-lighter text-[var(--content-default)]`,onClick:r,children:e}),i&&(0,p.jsx)(`p`,{className:`mt-1 text-body-small-default text-[var(--content-accent)]`,children:i})]}):(0,p.jsx)(`span`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`—`})}var y=`currentAssistant`,b=4e3,x=9e4;function S(e,t){return(e.memory?.maxMb??null)!==(t.memory?.maxMb??null)||(e.cpu?.maxCores??null)!==(t.cpu?.maxCores??null)}function C(){let e=d(),{data:r=null,isLoading:a,refetch:o}=i({queryKey:[y,e],queryFn:async()=>{let t=await l(e);return t.ok?t.data:null},retry:!1}),u=r?.id,[p,m]=(0,f.useState)(null),[h,g]=(0,f.useState)(!1),[_,v]=(0,f.useState)(!1),C=(0,f.useRef)(0),w=(0,f.useRef)(0),T=(0,f.useCallback)(async e=>{if(!u)return m(null),g(!1),null;C.current+=1;let r=C.current;g(!0);try{let t=await c(u);return r===C.current?t.ok?(m(t.data),t.data):(e?.keepStaleOnError||m(null),null):null}catch(i){return r===C.current?(e?.keepStaleOnError||m(null),!t(i)&&!e?.keepStaleOnError&&(n(i,{context:`fetch_assistant_healthz`}),s.error(`Failed to load assistant info`)),null):null}finally{r===C.current&&g(!1)}},[u]);return(0,f.useEffect)(()=>{T()},[T]),(0,f.useEffect)(()=>()=>{w.current+=1,v(!1),m(null)},[u]),{assistant:r,assistantLoading:a,healthz:p,healthzLoading:h,healthzPolling:_,refetch:(0,f.useCallback)(async()=>{await o(),await T()},[o,T]),refetchUntilResized:(0,f.useCallback)(async e=>{let t=++w.current,n=Date.now()+x;v(!0);let r=e;try{for(o();Date.now()<n&&t===w.current;){if(await new Promise(e=>setTimeout(e,b)),t!==w.current)return;let e=await T({keepStaleOnError:!0});if(t!==w.current)return;if(e){if(r==null){r=e;continue}if(S(e,r))return}}}finally{t===w.current&&v(!1)}},[T,o])}}function w(e){return e>=1024?`${(e/1024).toFixed(1)} GB`:`${e.toFixed(0)} MB`}export{m as a,_ as i,C as n,v as r,w as t};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{n as t,t as n}from"./capture-error-Bj8_eutd.js";import{t as r}from"./react-BFJW0bSv.js";import{t as i}from"./useQuery-Bz-fbQ-m.js";import{t as a}from"./jsx-runtime-D3ZM-ToX.js";import{t as o}from"./loader-circle-XREx3i4W.js";import"./src-te3YTBG-.js";import"./tag-NXcyiTkK.js";import{n as s}from"./toast-LgLp4obE.js";import"./auth-store-5qq59BAN.js";import{a as c,r as l}from"./api-LG8zI3nK.js";import{t as u}from"./assistant-feature-flag-store-CAdgpPiS.js";import{t as d}from"./use-active-assistant-id-CldxA_-M.js";import"./environment-store-Bft0lpgv.js";var f=e(r(),1),p=a();function m({value:e,max:t,caption:n}){let r=t>0?Math.max(0,Math.min(e/t*100,100)):0,i=r>90;return(0,p.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,p.jsx)(`div`,{className:`h-2 w-full overflow-hidden rounded-full bg-[var(--surface-active)]`,children:(0,p.jsx)(`div`,{className:`h-full rounded-full transition-[width] duration-200`,style:{width:`${r}%`,backgroundColor:i?`var(--system-negative-strong)`:`var(--system-positive-strong)`}})}),n&&(0,p.jsx)(`span`,{className:`text-label-medium-default text-[var(--content-tertiary)]`,children:n})]})}var h=7,g=2e3;function _(e){let t=(0,f.useRef)(0),n=(0,f.useRef)(null),[r,i]=(0,f.useState)(null),a=(0,f.useCallback)(()=>{if(t.current+=1,t.current>=h){t.current=0;let r=u.getState(),a=!r.settingsDeveloperNav;r.setFlag(`settingsDeveloperNav`,a,e),i(a?`Developer mode enabled`:`Developer mode disabled`),n.current!==null&&clearTimeout(n.current),n.current=setTimeout(()=>{i(null),n.current=null},g)}},[e]);return(0,f.useEffect)(()=>()=>{n.current!==null&&clearTimeout(n.current)},[]),{onTap:a,message:r}}function v({version:e,loading:t,assistantId:n}){let{onTap:r,message:i}=_(n);return t?(0,p.jsxs)(`span`,{className:`flex items-center gap-2 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,p.jsx)(o,{className:`h-4 w-4 animate-spin`}),`Loading version...`]}):e?(0,p.jsxs)(`div`,{children:[(0,p.jsx)(`button`,{type:`button`,className:`break-all text-left text-body-medium-lighter text-[var(--content-default)]`,onClick:r,children:e}),i&&(0,p.jsx)(`p`,{className:`mt-1 text-body-small-default text-[var(--content-accent)]`,children:i})]}):(0,p.jsx)(`span`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`—`})}var y=`currentAssistant`,b=4e3,x=9e4;function S(e,t){return(e.memory?.maxMb??null)!==(t.memory?.maxMb??null)||(e.cpu?.maxCores??null)!==(t.cpu?.maxCores??null)}function C(){let e=d(),{data:r=null,isLoading:a,refetch:o}=i({queryKey:[y,e],queryFn:async()=>{let t=await l(e);return t.ok?t.data:null},retry:!1}),u=r?.id,[p,m]=(0,f.useState)(null),[h,g]=(0,f.useState)(!1),[_,v]=(0,f.useState)(!1),C=(0,f.useRef)(0),w=(0,f.useRef)(0),T=(0,f.useCallback)(async e=>{if(!u)return m(null),g(!1),null;C.current+=1;let r=C.current;g(!0);try{let t=await c(u);return r===C.current?t.ok?(m(t.data),t.data):(e?.keepStaleOnError||m(null),null):null}catch(i){return r===C.current?(e?.keepStaleOnError||m(null),!t(i)&&!e?.keepStaleOnError&&(n(i,{context:`fetch_assistant_healthz`}),s.error(`Failed to load assistant info`)),null):null}finally{r===C.current&&g(!1)}},[u]);return(0,f.useEffect)(()=>{T()},[T]),(0,f.useEffect)(()=>()=>{w.current+=1,v(!1),m(null)},[u]),{assistant:r,assistantLoading:a,healthz:p,healthzLoading:h,healthzPolling:_,refetch:(0,f.useCallback)(async()=>{await o(),await T()},[o,T]),refetchUntilResized:(0,f.useCallback)(async e=>{let t=++w.current,n=Date.now()+x;v(!0);let r=e;try{for(o();Date.now()<n&&t===w.current;){if(await new Promise(e=>setTimeout(e,b)),t!==w.current)return;let e=await T({keepStaleOnError:!0});if(t!==w.current)return;if(e){if(r==null){r=e;continue}if(S(e,r))return}}}finally{t===w.current&&v(!1)}},[T,o])}}function w(e){return e>=1024?`${(e/1024).toFixed(1)} GB`:`${e.toFixed(0)} MB`}export{m as a,_ as i,C as n,v as r,w as t};
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/esm-PYpy75OW.js","assets/preload-helper-Cv2QeVDK.js","assets/dist-BwAT3VYQ.js","assets/esm-DNvorKcw.js"])))=>i.map(i=>d[i]);
2
+ import{a as e,c as t,i as n,t as r}from"./local-settings-C-dW2vkq.js";import{a as i,n as a,r as o}from"./device-settings-DXp9L4iB.js";import{o as s,t as c}from"./capture-error-Bj8_eutd.js";import{t as l}from"./preload-helper-Cv2QeVDK.js";import{t as u}from"./useQuery-Bz-fbQ-m.js";import{n as d,t as ee}from"./create-selectors-Qo7kcikX.js";import{C as te,E as ne,O as re,T as ie,_ as ae,at as oe,c as f,ct as p,d as m,et as se,f as h,h as g,i as ce,it as le,lt as _,m as ue,n as de,nt as v,ot as fe,r as pe,rt as me,s as he,st as ge,tt as _e,v as ve,w as ye}from"./local-mode-BTovbt13.js";import{t as y}from"./is-electron-m5eeGBnd.js";import{n as b,t as be}from"./resolved-assistants-store-Dw5UuGyB.js";import{n as xe,r as x,t as Se}from"./api-errors-CFiCT7Ap.js";import{t as Ce}from"./client.gen-CV05d-kw.js";import{N as we,P as Te,Rt as Ee,kt as De,zt as Oe}from"./sdk.gen-BIu1DgTs.js";import{a as ke,c as S,r as C}from"./api-LG8zI3nK.js";import{n as w,t as Ae}from"./event-bus-DSxmBYhD.js";import{A as je,E as T,O as E,T as Me,a as Ne,d as Pe,h as Fe,i as Ie,l as Le,t as Re,u as ze,w as Be}from"./native-biometric-BAMIyaSS.js";import{o as Ve}from"./remote-gateway-session-yRYdsfDx.js";import{t as He}from"./dist-BwAT3VYQ.js";import{r as Ue}from"./typed-storage-9Sn8tkE7.js";import{t as D}from"./onboarding-store-bZ2qYISk.js";var O=ee(d(()=>({assistantState:{kind:`loading`},operationalStatusAssistantId:null,expectingFirstMessage:!1}))),We=new Set;function Ge(e){return We.add(e),()=>{We.delete(e)}}function Ke(){for(let e of We)try{e()}catch{}}var qe=new Set([502,503,504]),Je=`Connection interrupted. Reconnecting…`;function Ye(e){return e.code===`proxy_network_error`?!0:(typeof e.detail==`string`?e.detail:``).includes(`net::ERR_`)}function Xe(e){if(e.ok)switch(e.data.status){case`active`:return e.data.is_local?{kind:`self_hosted`}:{kind:`active`};case`initializing`:return{kind:`initializing`};case`to_be_deleted`:return{kind:`cleaning_up`};default:return{kind:`error`,message:`Unexpected assistant status: ${e.data.status}`}}return e.status===404?{kind:`auto_hatch`}:Ye(e.error)?{kind:`error`,transient:!0,message:Je}:{kind:`error`,message:x(e.error,void 0,`Failed to check assistant status.`)}}function Ze(e){return e===void 0||e>=500}var Qe=`platform_hosted_disabled`,$e=`We are at capacity for Vellum Managed Assistants, more will be available soon!`;function et(e,t){return e===503?t?.code===Qe:!1}var tt=2e3,nt=3e4;function rt(e){return Math.min(tt*2**e,nt)}var it=3e5;function at(){return{kind:`error`,message:`Your assistant is taking longer than expected to start. Please try again, or check the community for help.`}}var ot=[`assistant`,`current`],st=3e3,ct=new Set([`initializing`,`cleaning_up`]);function lt(e){if(!e)return!1;let t=Xe(e);return ct.has(t.kind)?st:!1}function ut(e){return e?[...ot,e]:ot}function dt(e){let t=e.selectedPlatformAssistantId??null;return u({queryKey:ut(t),queryFn:()=>C(t??void 0),enabled:e.enabled,retry:!1,refetchInterval:e=>lt(e.state.data),refetchOnWindowFocus:!1})}var ft=new Set([`healthy`,`ok`]);function pt(e){if(!e.ok)return`unreachable`;let t=e.data?.status;return t===`MIGRATING`?`migrating`:t!==void 0&&!ft.has(t)?`unhealthy`:`healthy`}function mt(){let e=O.use.assistantState();return e.kind===`self_hosted`||e.kind===`active`&&e.isLocal?e.health??null:null}var k=e=>e===`authenticated`,ht=e=>e!==`initializing`,A=e=>e===`present`,gt=e=>e!==`unknown`,_t=(e,t)=>e===`present`&&!t,vt=new Set([401,403,410]),yt=e=>!e.ok&&e.status!==void 0&&vt.has(e.status),bt=4e3,xt=6e4,St=5e3;function Ct(){let e=/\/assistant(?:\/|$)/.exec(window.location.pathname),t=e&&e.index>0?window.location.pathname.slice(0,e.index).replace(/\/+$/,``):``;return`${window.location.origin}${t}`}var j=new class{state={kind:`loading`};generation=0;initializingTimeout=null;ready=!1;inputs={sessionStatus:`initializing`,hasPlatformSession:!1,queryClient:null,selectedPlatformAssistantId:null};probeTimer=null;healthHeartbeatTimer=null;healthHeartbeatId=null;healthHeartbeatToken=0;reachabilityProbeInFlightIds=new Set;probeLoopAssistantId=null;errorRetryTimer=null;errorRetryAttempt=0;constructor(){Ge(()=>this.onUnreachable()),w(`app.online`,()=>this.onNetworkOnline()),b.subscribe((e,t)=>{e.selectedAssistantId!==t.selectedAssistantId&&(!_()||this.state.kind===`loading`||this.applyGatewayAuthShortCircuit())})}setInputs(e){this.inputs=e,this.ready=!0}resetForLogout(){b.getState().activeAssistantId!==null&&b.getState().setActiveAssistantId(null),this.setOperationalStatusAssistantId(null),this.cancelProbeTimer(),this.probeLoopAssistantId=null,this.reachabilityProbeInFlightIds.clear(),this.state.kind!==`loading`&&this.transition({kind:`loading`}),this.clearExpectingFirstMessage()}async respondToInputs(){if(this.ready){if(_()){this.applyGatewayAuthShortCircuit();return}if(!k(this.inputs.sessionStatus)){this.resetForLogout();return}this.inputs.hasPlatformSession&&v(null),this.inputs.isOrgReady&&await this.checkAssistant()}}async applyServerResult(e){this.ready&&(this.state.kind!==`initializing`&&this.state.kind!==`cleaning_up`||await this.applyServerStateUpdate(e))}async checkAssistant(e){if(!this.ready)return;if(_()){this.applyGatewayAuthShortCircuit();return}let t=this.generation;try{let n=e??this.inputs.selectedPlatformAssistantId??null,r=await this.inputs.queryClient.fetchQuery({queryKey:ut(n),queryFn:()=>C(n??void 0),staleTime:0});if(t!==this.generation||n&&!r.ok&&r.status===404&&(b.getState().setSelectedAssistant(null),r=await this.inputs.queryClient.fetchQuery({queryKey:ot,queryFn:()=>C(),staleTime:0}),t!==this.generation))return;await this.applyServerStateUpdate(r)}catch(e){if(console.error(`Error checking assistant status:`,e),c(e,{context:`check_assistant`}),t!==this.generation||this.degradeOnTransportFailure())return;this.transition({kind:`error`,transient:!0,message:Je})}}degradeOnTransportFailure(){return this.state.kind===`active`?(this.triggerReachabilityProbe(),!0):this.state.kind===`initializing`||this.state.kind===`cleaning_up`}retryAssistant(){this.ready&&this.checkAssistant()}markExpectingFirstMessage(){O.getState().expectingFirstMessage||O.setState({expectingFirstMessage:!0})}clearExpectingFirstMessage(){O.getState().expectingFirstMessage&&O.setState({expectingFirstMessage:!1})}transition(e){let t=this.state.kind;this.state=e,O.setState({assistantState:e}),e.kind===`initializing`?t!==`initializing`&&this.armInitializingWatchdog():this.initializingTimeout&&=(clearTimeout(this.initializingTimeout),null),e.kind!==`initializing`&&e.kind!==`active`&&this.clearExpectingFirstMessage(),!(e.kind===`self_hosted`||e.kind===`active`&&e.isLocal)&&this.healthHeartbeatId!==null&&this.cancelHealthHeartbeat(),e.kind===`error`&&e.transient?this.armErrorRetry():this.clearErrorRetry(e.kind!==`error`)}clearErrorRetry(e){this.errorRetryTimer&&=(clearTimeout(this.errorRetryTimer),null),e&&(this.errorRetryAttempt=0)}armErrorRetry(){this.errorRetryTimer&&clearTimeout(this.errorRetryTimer);let e=rt(this.errorRetryAttempt);this.errorRetryAttempt+=1,this.errorRetryTimer=setTimeout(()=>{this.errorRetryTimer=null,this.checkAssistant()},e)}onNetworkOnline(){if(this.ready){if(this.state.kind===`error`&&this.state.transient){this.clearErrorRetry(!0),this.checkAssistant();return}this.state.kind===`active`&&this.state.reachable===!1&&this.checkAssistant()}}armInitializingWatchdog(){this.initializingTimeout&&clearTimeout(this.initializingTimeout),this.initializingTimeout=setTimeout(()=>{this.generation++,s(`Assistant stuck in initializing state`,{level:`warning`,extra:{timeoutMs:it}}),this.transition(at())},it)}projectActive(e){let t=e.data.maintenance_mode,n=e.data.is_local??!1;v(null),this.setOperationalStatusAssistantId(e.data.id);let r=b.getState();r.upsertFromApi(e.data),r.setActiveAssistantId(e.data.id),this.transition({kind:`active`,isLocal:n,maintenanceMode:{enabled:t?.enabled}}),n?this.startHealthHeartbeat(e.data.id):this.probeReachability(e.data.id)}projectSelfHosted(e){this.setOperationalStatusAssistantId(null),v({url:e.data.ingress_url,token:e.data.platform_actor_token});let t=b.getState();t.upsertFromApi(e.data),t.setActiveAssistantId(e.data.id),this.transition({kind:`self_hosted`}),this.startHealthHeartbeat(e.data.id)}applyGatewayAuthShortCircuit(){let e=window.location.origin,t=`self`,n=ce();if(g())e=Ct();else if(n){let r=f();e=`${window.location.origin}${n}`,t=r?.assistantId??t}v({url:e,token:fe()}),this.setOperationalStatusAssistantId(null),b.getState().setActiveAssistantId(t),this.transition({kind:`active`,isLocal:!0}),this.startHealthHeartbeat(t)}async applyServerStateUpdate(e){let t=this.generation,n=Xe(e);if(!(n.kind===`error`&&n.transient&&this.degradeOnTransportFailure())&&(e.ok?this.setOperationalStatusAssistantId(e.data.id):this.setOperationalStatusAssistantId(null),n.kind!==`auto_hatch`)){if(n.kind===`active`&&e.ok){this.projectActive(e);return}if(n.kind===`self_hosted`&&e.ok){this.projectSelfHosted(e);return}t===this.generation&&n.kind!==`active`&&this.transition(n)}}async probeReachability(e){if(!this.reachabilityProbeInFlightIds.has(e)){this.reachabilityProbeInFlightIds.add(e);try{let t=this.generation,n=this.state.kind===`self_hosted`||this.state.kind===`active`&&this.state.isLocal,r=n?f()?.assistantId??e:e,i=!g()&&n?await re(r).catch(()=>null):null,a=i?.ok&&i.state===`upgrading`?`upgrading`:`unreachable`;if(a!==`upgrading`)try{a=pt(await ke(e))}catch{a=`unreachable`}if(a===`unreachable`&&!i&&!g()&&(i=await re(r).catch(()=>null)),a===`unreachable`&&i?.ok)switch(i.state){case`healthy`:a=`healthy`;break;case`sleeping`:case`starting`:case`upgrading`:case`unhealthy`:case`crashed`:a=i.state;break;case`unknown`:break}if(t!==this.generation||b.getState().activeAssistantId!==e)return;if(this.state.kind===`self_hosted`){this.state.health!==a&&this.transition({...this.state,health:a});return}if(this.state.kind!==`active`)return;let o=a===`healthy`||a===`unhealthy`;if(this.state.reachable===o&&this.state.health===a)return;this.transition({...this.state,reachable:o,health:a})}finally{this.reachabilityProbeInFlightIds.delete(e)}}}cancelProbeTimer(){this.probeTimer&&=(clearTimeout(this.probeTimer),null)}startProbeLoop(e){if(this.probeLoopAssistantId===e)return;this.cancelProbeTimer(),this.probeLoopAssistantId=e;let t=Date.now(),n=()=>{this.probeLoopAssistantId=null},r=async()=>{if(this.state.kind!==`active`||this.state.reachable===!0){n();return}if(Date.now()-t>xt){n();return}await this.probeReachability(e);let i=this.state;if(i.kind!==`active`||i.reachable===!0){n();return}if(Date.now()-t>xt){n();return}this.probeTimer=setTimeout(()=>void r(),bt)};this.probeTimer=setTimeout(()=>void r(),bt)}startHealthHeartbeat(e){if(this.healthHeartbeatId===e)return;this.cancelHealthHeartbeat(),this.healthHeartbeatId=e;let t=this.healthHeartbeatToken,n=async()=>{t===this.healthHeartbeatToken&&(await this.probeReachability(e),t===this.healthHeartbeatToken&&(this.healthHeartbeatTimer=setTimeout(()=>void n(),St)))};n()}cancelHealthHeartbeat(){this.healthHeartbeatToken++,this.healthHeartbeatId=null,this.healthHeartbeatTimer&&=(clearTimeout(this.healthHeartbeatTimer),null)}onUnreachable(){this.triggerReachabilityProbe()}triggerReachabilityProbe(){if(this.state.kind!==`active`)return;let e=b.getState().activeAssistantId;if(e){if(this.transition({...this.state,reachable:!1}),this.healthHeartbeatId===e){this.probeReachability(e);return}this.startProbeLoop(e)}}setLocalAssistantUpgradeInProgress(e,t){if(b.getState().activeAssistantId===e){if(!t){this.probeReachability(e);return}if(this.state.kind===`self_hosted`){this.transition({...this.state,health:`upgrading`});return}this.state.kind===`active`&&this.state.isLocal&&this.transition({...this.state,reachable:!1,health:`upgrading`})}}__resetForTesting(){this.initializingTimeout&&=(clearTimeout(this.initializingTimeout),null),this.cancelProbeTimer(),this.cancelHealthHeartbeat(),this.probeLoopAssistantId=null,this.reachabilityProbeInFlightIds.clear(),this.clearErrorRetry(!0),this.state={kind:`loading`},this.generation=0,this.ready=!1,O.setState({expectingFirstMessage:!1,operationalStatusAssistantId:null}),this.inputs={sessionStatus:`initializing`,hasPlatformSession:!1,queryClient:null},O.setState({assistantState:this.state}),b.setState({activeAssistantId:null})}setOperationalStatusAssistantId(e){O.getState().operationalStatusAssistantId!==e&&O.setState({operationalStatusAssistantId:e})}};function wt(e){let{assistants:t,selectedAssistantId:n,assistantsHydrated:r}=b.getState(),i=be(t,e),a=e=>i.some(t=>t.id===e);if(n!==null){let e=t.some(e=>e.id===n);if(a(n)||!e&&!r)return n}let o=de()?.assistantId??null;return o!==null&&a(o)?o:i[0]?.id??null}async function M(e){b.getState().setSelectedAssistant(e),e!==null&&await te(e)}var Tt=`vellum:auth:userSnapshot`;function Et(e){if(e)try{localStorage.setItem(Tt,JSON.stringify(e))}catch{}}function Dt(){try{let e=localStorage.getItem(Tt);if(!e)return null;let t=JSON.parse(e);return!t||typeof t!=`object`?null:{kind:`platform`,id:typeof t.id==`string`?t.id:null,username:typeof t.username==`string`?t.username:null,email:typeof t.email==`string`?t.email:null,isStaff:t.isStaff===!0,firstName:typeof t.firstName==`string`?t.firstName:``,lastName:typeof t.lastName==`string`?t.lastName:``}}catch{return null}}function N(){try{localStorage.removeItem(Tt)}catch{}}var Ot=`vellum_active_organization_id`;function kt(){return globalThis.sessionStorage===void 0?null:globalThis.sessionStorage}function At(){let e=kt();if(!e)return null;try{return e.getItem(Ot)}catch{return null}}function jt(e){let t=kt();if(t)try{t.setItem(Ot,e)}catch{}}function Mt(){let e=kt();if(e)try{e.removeItem(Ot)}catch{}}function Nt(e,t){return e.length===0?null:t&&e.some(e=>e.id===t)?t:e[0].id}var P=ee(d()((e,t)=>({organizations:[],currentOrganizationId:null,persistedOrganizationId:At(),status:`idle`,error:null,fetchOrganizations:async()=>{e({status:`loading`,error:null});try{let n=(await De()).data?.results??[],r=Nt(n,t().currentOrganizationId??t().persistedOrganizationId);r&&jt(r),e({organizations:n,currentOrganizationId:r,persistedOrganizationId:r??t().persistedOrganizationId,status:r?`ready`:`error`,error:r?null:`No organization available for this user.`})}catch(t){e({status:`error`,error:t instanceof Error&&t.message?t.message:`Failed to load organizations.`})}},setCurrentOrganizationId:n=>{let{organizations:r}=t();r.some(e=>e.id===n)&&(jt(n),e({currentOrganizationId:n,persistedOrganizationId:n,status:`ready`}))},clearOrganization:()=>{Mt(),e({organizations:[],currentOrganizationId:null,persistedOrganizationId:null,status:`idle`,error:null})}})));function Pt(e){return e.currentOrganizationId??e.persistedOrganizationId}function F(){return Pt(P.getState())}function Ft(){return P(Pt)}function It(){P.getState().clearOrganization()}function Lt(){let e=0,t=P.subscribe(t=>{(t.status===`ready`||t.status===`error`)&&(e=Date.now())}),n=$.subscribe((e,t)=>{let n=A(e.platformSession),r=A(t.platformSession);n&&(!r||e.user?.id!==t.user?.id)&&P.getState().fetchOrganizations()}),r=()=>{if(!A($.getState().platformSession))return;let{status:t}=P.getState();(t===`ready`||t===`error`)&&Date.now()-e>1e4&&P.getState().fetchOrganizations()},i=w(`app.resume`,()=>{r()});return()=>{t(),n(),i()}}function Rt(e,t={}){let n={...e??{}},r=t.includeSelfHostedActorToken===!1?null:se();if(r)return n.Authorization=`Bearer ${r}`,n;let i=t.organizationId??F();i&&(n[`Vellum-Organization-Id`]=i);let a=T();return a&&(n[`X-Session-Token`]=a),n}async function zt(e,t={}){let n=Rt(e,t);if(n.Authorization||y())return n;await Be();let r=Me();return r&&(n[`X-CSRFToken`]=r),n}var Bt;function Vt(){return y()?(Bt===void 0&&(Bt=window.__VELLUM_CONFIG__?.deviceId??null),Bt):null}var Ht=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,Ut=`X-Vellum-Electron-Renderer-Origin`,Wt=new Map,Gt=[2e3,5e3,15e3,3e4,6e4],Kt=new Set;async function qt(e,t={}){if(!h()||g()||ue()||un(e))return e;let n=Yt(e);if(!n)return e;let r=Wt.get(n.assistantId);if(r)return r;let i=Xt(n,{allowGatewayRepair:t.allowGatewayRepair??!0});Wt.set(n.assistantId,i);try{return await i}catch(e){throw Wt.delete(n.assistantId),e}}function Jt(e,t={}){if(!h()||g()||ue())return;let n=e;if(!n){let e=f();if(!e||!m(e))return;n=e.assistantId}if(Kt.has(n))return;Kt.add(n);let r=n;(async()=>{try{for(let e=0;;e++)try{await qt(r,{allowGatewayRepair:t.allowGatewayRepair??!1});return}catch(n){let r=Gt[e];if(r===void 0){(t.onError??(e=>{console.warn(`local assistant platform bootstrap failed`,e)}))(n);return}console.warn(`local assistant platform bootstrap attempt ${e+1} failed, retrying in ${r}ms`,n),await new Promise(e=>setTimeout(e,r))}}finally{Kt.delete(r)}})()}function Yt(e){let t=de();if(t?.assistantId===e&&m(t))return t;let n=f();return n?.assistantId===e&&m(n)?n:null}async function Xt(e,t){let n=await Qt(e,t),r=await $t(n,e.assistantId),i=r?.assistantId&&un(r.assistantId)?r.assistantId:null;if(i&&r?.hasAssistantApiKey!==!1){let t=r?.organizationId??e.platformOrganizationId??null;return t&&await Zt(e,{platformAssistantId:i,platformBaseUrl:r?.baseUrl??me(),organizationId:t}),i}let a=await en(r?.organizationId??null,e);if(!a)throw Error(`Sign in to Vellum and select an organization to register this local assistant.`);let o=r?.clientInstallationId??Vt()??null;if(!o)throw Error(`Unable to identify this local assistant host for platform registration.`);let s=await tn(e,a,o),c=I(s.assistant?.id,s.assistant_id,s.id),l=i??c;if(!l||!un(l))throw Error(`The platform registration response did not include an assistant UUID.`);let u=L(s.assistant_api_key);!u&&r?.hasAssistantApiKey!==!0&&(u=await nn(e,a,o));let d=r?.baseUrl??me();return await an(n,{assistantApiKey:u,platformAssistantId:l,platformBaseUrl:d,organizationId:a,webhookSecret:L(s.webhook_secret)}),await Zt(e,{platformAssistantId:l,platformBaseUrl:d,organizationId:a}),l}async function Zt(e,t){await ie({...e,platformAssistantId:t.platformAssistantId,platformBaseUrl:t.platformBaseUrl,platformOrganizationId:t.organizationId}).catch(e=>{console.warn(`local assistant platform lockfile update failed`,e)})}async function Qt(e,t){let n=_e(),r=se();if(t.allowGatewayRepair&&(!n||!r)&&(await ve(e),n=_e(),r=se()),!n||!r){let t=ce(e);t&&(n=`${window.location.origin}${t}`)}if(!n||!r)throw Error(`Unable to reach the local assistant for platform identity setup.`);return{gatewayUrl:n,actorToken:r}}async function $t(e,t){let n=ln(e.gatewayUrl,`/v1/assistants/${encodeURIComponent(t)}/platform/status`),r=await fetch(n,{headers:{Accept:`application/json`,Authorization:`Bearer ${e.actorToken}`},credentials:`omit`}).catch(()=>null);if(!r?.ok)return null;let i=await r.json().catch(()=>null);return{assistantId:I(i?.assistantId,i?.assistant_id),baseUrl:I(i?.baseUrl,i?.base_url),organizationId:I(i?.organizationId,i?.organization_id),hasAssistantApiKey:dn(i?.hasAssistantApiKey,i?.has_assistant_api_key),clientInstallationId:I(i?.clientInstallationId,i?.client_installation_id)}}async function en(e,t){return(e??t.platformOrganizationId??F()??t.organizationId??null)||(await P.getState().fetchOrganizations().catch(()=>{}),F()??t.platformOrganizationId??t.organizationId??null)}async function tn(e,t,n){return await rn(`/v1/assistants/self-hosted-local/ensure-registration/`,e,t,n)}async function nn(e,t,n){return L((await rn(`/v1/assistants/self-hosted-local/reprovision-api-key/`,e,t,n)).provisioning?.assistant_api_key)}async function rn(e,t,n,r){let i=new Headers({...await zt({Accept:`application/json`,"Content-Type":`application/json`},{includeSelfHostedActorToken:!1,organizationId:n})}),a=T();if(y()){if(!a)throw Error(`Sign in to Vellum to register this local assistant.`);i.set(Ut,`${window.location.protocol}//${window.location.host}`)}let o=await fetch(new URL(e,window.location.origin).toString(),{method:`POST`,headers:i,credentials:y()?`omit`:`same-origin`,body:JSON.stringify({client_installation_id:r,runtime_assistant_id:t.assistantId,client_platform:y()?`macos`:`web`})}).catch(e=>{throw Error(`Unable to reach the platform registration endpoint: ${cn(e)}`)});if(!o.ok){let e=await sn(o);throw Error(`Unable to register the local assistant with the platform (HTTP ${o.status})${e?`: ${e}`:`.`}`)}try{return await o.json()}catch(e){throw Error(`Unable to read the platform registration response: ${cn(e)}`)}}async function an(e,t){let n=[[`vellum:platform_assistant_id`,t.platformAssistantId],[`vellum:platform_base_url`,t.platformBaseUrl],[`vellum:platform_organization_id`,t.organizationId],[`vellum:webhook_secret`,t.webhookSecret]];await Promise.all(n.filter(e=>!!e[1]).map(([t,n])=>on(e,t,n))),t.assistantApiKey&&await on(e,`vellum:assistant_api_key`,t.assistantApiKey)}async function on(e,t,n){let r=await fetch(ln(e.gatewayUrl,`/v1/secrets`),{method:`POST`,headers:{Accept:`application/json`,Authorization:`Bearer ${e.actorToken}`,"Content-Type":`application/json`},credentials:`omit`,body:JSON.stringify({type:`credential`,name:t,value:n})}).catch(e=>{throw Error(`Unable to reach the local assistant while storing ${t}: ${cn(e)}`)});if(!r.ok){let e=await sn(r);throw Error(`Unable to store ${t} on the local assistant (HTTP ${r.status})${e?`: ${e}`:`.`}`)}return!0}async function sn(e){if((e.headers.get(`content-type`)??``).includes(`application/json`)){let t=await e.json().catch(()=>null),n=t&&typeof t==`object`&&`detail`in t?L(t.detail):null,r=t&&typeof t==`object`&&`code`in t?L(t.code):null;return n&&r?`${n} (${r})`:n||r||JSON.stringify(t)}return(await e.text().catch(()=>``)).slice(0,300)}function cn(e){return e instanceof Error?e.message:String(e)}function ln(e,t){let n=new URL(e);return n.pathname=`${n.pathname.replace(/\/$/,``)}${t}`,n.toString()}function un(e){return Ht.test(e)}function I(...e){for(let t of e){let e=L(t);if(e)return e}return null}function L(e){return typeof e==`string`&&e.trim()?e.trim():null}function dn(...e){for(let t of e)if(typeof t==`boolean`)return t;return null}var fn=`.dev`;function pn(e){let t=JSON.parse(e);return typeof t.token==`string`&&typeof t.bundleId==`string`&&typeof t.assistantId==`string`?{token:t.token,bundleId:t.bundleId,assistantId:t.assistantId}:null}var mn=Ue({key:`vellum:push_registration`,scope:`user`,parse:pn,serialize:JSON.stringify,fallback:null}),hn=!1,gn=null,R=null,z=new Set;function _n(e){z.add(e),e.finally(()=>{z.delete(e)})}function vn(){return ze()&&He.getPlatform()===`ios`}function yn(e){return e.endsWith(fn)?`development`:`production`}async function bn(e,t){try{let{App:n}=await l(async()=>{let{App:e}=await import(`./esm-PYpy75OW.js`);return{App:e}},__vite__mapDeps([0,1,2])),{id:r}=await n.getInfo(),i=await Te({path:{assistant_id:t},body:{token:e,platform:`ios`,bundle_id:r,apns_environment:yn(r)},throwOnError:!1});if(i.error){c(i.error,{context:`push_registration_upsert`,level:`warning`,bestEffort:!0});return}R={token:e,bundleId:r,assistantId:t},mn.save(R)}catch(e){c(e,{context:`push_registration_upsert`,level:`warning`,bestEffort:!0})}}function xn(e){if(typeof e!=`object`||!e)return;let t=e,n=t.deep_link;if(typeof n==`object`&&n){let e=n.conversationId;if(typeof e==`string`)return e}return typeof t.conversationId==`string`?t.conversationId:void 0}async function Sn(){if(!hn){hn=!0;try{let{PushNotifications:e}=await l(async()=>{let{PushNotifications:e}=await import(`./esm-DNvorKcw.js`);return{PushNotifications:e}},__vite__mapDeps([3,2]));await e.addListener(`registration`,e=>{let t=gn;t&&_n(bn(e.value,t))}),await e.addListener(`registrationError`,e=>{c(e,{context:`push_registration_apns`,level:`warning`})}),await e.addListener(`pushNotificationActionPerformed`,e=>{let t=xn(e.notification.data);t&&Ae(`deeplink.openThread`,{threadId:t})})}catch(e){hn=!1,c(e,{context:`push_registration_listeners`,level:`warning`})}}}async function Cn(e){if(vn()){gn=e,R&&R.assistantId!==e&&_n(bn(R.token,e));try{let{PushNotifications:e}=await l(async()=>{let{PushNotifications:e}=await import(`./esm-DNvorKcw.js`);return{PushNotifications:e}},__vite__mapDeps([3,2]));if(await Sn(),(await e.requestPermissions()).receive!==`granted`)return;await e.register()}catch(e){c(e,{context:`push_registration_register`,level:`warning`})}}}async function wn(){for(gn=null;z.size>0;)await Promise.allSettled([...z]);let e=R??mn.load();if(R=null,mn.remove(),!(!e||!vn()))try{let t=await we({path:{assistant_id:e.assistantId,token:e.token},query:{bundle_id:e.bundleId},throwOnError:!1});t.error&&c(t.error,{context:`push_registration_delete`,level:`warning`,bestEffort:!0,extra:{assistantId:e.assistantId,bundleId:e.bundleId}})}catch(e){c(e,{context:`push_registration_delete`,level:`warning`,bestEffort:!0})}}function Tn(e){return e}function En(e,t,n){if(!e||typeof e!=`object`||Array.isArray(e))return{code:null,message:n};let r=Tn(e),i=r[t];if(Array.isArray(i)&&i.length>0){let e=i[0];if(typeof e==`string`)return{code:null,message:e};if(e&&typeof e==`object`&&!Array.isArray(e)){let t=Tn(e),r=t.code,i=t.string??t.message;return{code:typeof r==`string`?r:null,message:typeof i==`string`?i:n}}}return typeof r.detail==`string`?{code:null,message:r.detail}:{code:null,message:n}}var Dn={too_short:`Must be at least 3 characters.`,too_long:`Must be at most 30 characters.`,invalid_chars:`Use only lowercase letters, digits, hyphens, and underscores.`,leading_underscore:`Cannot start with an underscore.`,trailing_underscore:`Cannot end with an underscore.`,leading_hyphen:`Cannot start with a hyphen.`,trailing_hyphen:`Cannot end with a hyphen.`,all_digits:`Cannot be all digits.`,reserved:`This handle is reserved.`,taken:`This handle is already taken.`};async function On(){let{data:e,error:t,response:n}=await Ce.get({url:`/v1/user/me/`,throwOnError:!1});if(xe(n,t,`Failed to load profile.`),!n.ok||!e)throw new Se(n.status,x(t,n,`Failed to load profile.`));return e}var kn=`Please choose a different handle.`;async function An(e){let{data:t,error:n,response:r}=await Ce.patch({url:`/v1/user/me/`,body:e,throwOnError:!1});if(!r)return{kind:`error`,message:x(n,void 0,`Failed to save profile.`)??`Failed to save profile.`};if(r.ok&&t)return{kind:`ok`,data:t};if(r.status===409){let{message:e}=En(n,`username`,Dn.taken);return{kind:`taken`,message:e}}if(r.status===400){let{code:e,message:t}=En(n,`username`,kn);return{kind:`invalid`,code:e,message:t}}return{kind:`error`,message:x(n,r,`Failed to save profile.`)}}async function jn(){let{data:e,error:t,response:n}=await Ee({throwOnError:!1});if(xe(n,t,`Failed to load consent.`),!n.ok||!e)throw new Se(n.status,x(t,n,`Failed to load consent.`));return e}async function Mn(e){await Oe({body:e,throwOnError:!0})}async function Nn(e,t){let{data:n,error:r,response:i}=await Ce.get({url:`/v1/user/username-available/`,query:{username:e},signal:t,throwOnError:!1});if(xe(i,r,`Failed to check handle availability.`),!i.ok||!n)throw new Se(i.status,i.status===429?`Too many checks — try again in a moment.`:x(r,i,`Failed to check handle availability.`));return n}function Pn(e){i(`diagnosticsReporting`,e)}function Fn(e,t){let n=zn(e);return n!==null&&t(n),Pn(In(n,e)),n}function In(e,t){return e??a(`shareDiagnostics`,!0)?t.hasServerRecord?t.diagnosticsEffective:!0:!1}function Ln(e,t){Fn({shareDiagnostics:e,diagnosticsEffective:e,hasServerRecord:!0},t)}function Rn(){o(`diagnosticsReporting`,``)===``&&Pn(!1)}function zn(e){let{shareDiagnostics:t,hasServerRecord:n}=e;return t===!1?!1:n&&t===!0?!0:null}var Bn=`2026-06-08`,Vn=`2026-06-22`,Hn=`2026-06-18`,Un=`2026-06-18`,Wn=`2026-06-08`,B={tos:Bn,privacyPolicy:Vn,aiDataSharing:Vn,shareAnalytics:Hn,shareDiagnostics:Un};function Gn(e){return{tos:e?.tos||`2026-06-08`,privacyPolicy:e?.privacy_policy||`2026-06-22`,aiDataSharing:e?.ai_data_sharing||`2026-06-22`,shareAnalytics:e?.share_analytics||`2026-06-18`,shareDiagnostics:e?.share_diagnostics||`2026-06-18`}}function Kn(){return{...B}}function V(e,t){return`device:consent:${e}:${t}`}function H(e){switch(e){case`tos`:return B.tos;case`privacy_policy`:return B.privacyPolicy;case`ai_data_sharing`:return B.aiDataSharing;case`share_diagnostics`:return B.shareDiagnostics}}var qn=/^\d{4}-\d{2}-\d{2}$/;function Jn(e,t){let r=n(V(e,t),``);return qn.test(r)?r:``}function U(e,t){return G(Jn(e,t),H(e))}function Yn(e){return`device:consent:ai:v${Wn}:${e}`}function W(n,i,a){let o=`device:consent:${n}:v`,s=`:${i}`,c=[],l=``;for(let e=0;e<localStorage.length;e++){let t=localStorage.key(e);if(!t||!t.startsWith(o)||!t.endsWith(s))continue;let n=t.slice(o.length,t.length-s.length);qn.test(n)&&(c.push(t),r(t,!1)&&n>l&&(l=n))}if(l)for(let e of a)Jn(e,i)||t(V(e,i),l);for(let t of c)e(t)}function Xn(n){if(typeof window>`u`||!n)return{tos:!1,privacy:!1,diagnosticsCurrent:!1};try{W(`tos`,n,[`tos`]),W(`privacy`,n,[`privacy_policy`,`ai_data_sharing`]),W(`share_diagnostics`,n,[`share_diagnostics`]),W(`share_analytics`,n,[]),r(Yn(n),!1)&&e(Yn(n));let i=U(`tos`,n),a=U(`privacy_policy`,n)&&U(`ai_data_sharing`,n),o=U(`share_diagnostics`,n);if(i||a)return{tos:i,privacy:a,diagnosticsCurrent:o};let s=r(`vellum:onboarding:tosAccepted`,!1),c=r(`vellum:onboarding:aiDataConsent`,!1);return s||c?(s&&t(V(`tos`,n),Bn),{tos:s&&U(`tos`,n),privacy:!1,diagnosticsCurrent:o}):{tos:!1,privacy:!1,diagnosticsCurrent:o}}catch{return{tos:!1,privacy:!1,diagnosticsCurrent:!1}}}function Zn(n,r,i){if(!(typeof window>`u`||!n))try{r?t(V(`tos`,n),H(`tos`)):e(V(`tos`,n)),i?(t(V(`privacy_policy`,n),H(`privacy_policy`)),t(V(`ai_data_sharing`,n),H(`ai_data_sharing`))):(e(V(`privacy_policy`,n)),e(V(`ai_data_sharing`,n)))}catch{}}function Qn(e){if(!(typeof window>`u`||!e))try{t(V(`share_diagnostics`,e),H(`share_diagnostics`))}catch{}}function $n(t){if(e(`vellum:onboarding:tosAccepted`),e(`vellum:onboarding:aiDataConsent`),e(`vellum:onboarding:selectedVersion`),!(typeof window>`u`||!t))try{e(V(`tos`,t)),e(V(`privacy_policy`,t)),e(V(`ai_data_sharing`,t)),e(V(`share_diagnostics`,t)),e(Yn(t)),W(`tos`,t,[]),W(`privacy`,t,[]),W(`share_diagnostics`,t,[]),W(`share_analytics`,t,[])}catch{}}function G(e,t){return e>=t}function er(e){if(!e)return{tos:!1,privacy:!1,shareAnalytics:null,shareDiagnostics:null,analyticsEffective:!0,diagnosticsEffective:!0,analyticsCurrent:!1,diagnosticsCurrent:!1,analyticsVersionCurrent:!1,diagnosticsVersionCurrent:!1,hasServerRecord:!1};let t=Gn(e.required_versions);B=t;let n=G(e.share_analytics_accepted_version,t.shareAnalytics),r=G(e.share_diagnostics_accepted_version,t.shareDiagnostics),i=!!e.tos_accepted_version||!!e.privacy_policy_accepted_version||!!e.ai_data_sharing_accepted_version||!!e.share_analytics_accepted_version||!!e.share_diagnostics_accepted_version||e.share_analytics===!1||e.share_diagnostics===!1||e.share_analytics_effective===!1||e.share_diagnostics_effective===!1;return{tos:G(e.tos_accepted_version,t.tos),privacy:G(e.privacy_policy_accepted_version,t.privacyPolicy)&&G(e.ai_data_sharing_accepted_version,t.aiDataSharing),shareAnalytics:e.share_analytics,shareDiagnostics:e.share_diagnostics,analyticsEffective:e.share_analytics_effective??e.share_analytics!==!1,diagnosticsEffective:e.share_diagnostics_effective??e.share_diagnostics!==!1,analyticsCurrent:e.share_analytics===null||n,diagnosticsCurrent:e.share_diagnostics===null||r,analyticsVersionCurrent:n,diagnosticsVersionCurrent:r,hasServerRecord:i}}function tr(e,t){let{legal:n,shareAnalytics:r,shareDiagnostics:i}=e,a=D.getState();n&&(a.setTosAccepted(n.tos),a.setPrivacyConsent(n.privacy),Zn(t.userId,n.tos,n.privacy)),r!==void 0&&(a.setShareAnalytics(r),a.setPendingAnalyticsOptIn(r===!0)),i!==void 0&&Ln(i,a.setShareDiagnostics),n?(a.setAnalyticsConsentCurrent(!0),a.setDiagnosticsConsentCurrent(!0),a.setHasConsentRecord(!0),a.setConsentHydrated(!0)):t.hasPlatformSession&&(r!==void 0&&a.setAnalyticsConsentCurrent(!0),i!==void 0&&a.setDiagnosticsConsentCurrent(!0)),i!==void 0&&(n||t.hasPlatformSession)&&Qn(t.userId),t.hasPlatformSession&&Mn({...n?{tos_accepted_version:n.tos?B.tos:``,privacy_policy_accepted_version:n.privacy?B.privacyPolicy:``,ai_data_sharing_accepted_version:n.privacy?B.aiDataSharing:``}:{},...r===void 0?{}:{share_analytics:r,share_analytics_accepted_version:B.shareAnalytics},...i===void 0?{}:{share_diagnostics:i,share_diagnostics_accepted_version:B.shareDiagnostics}}).catch(()=>{})}function nr(e){tr({legal:{tos:e.tos,privacy:e.privacy},...e.shareAnalytics===null?{}:{shareAnalytics:e.shareAnalytics},...e.shareDiagnostics===null?{}:{shareDiagnostics:e.shareDiagnostics}},{userId:e.userId,hasPlatformSession:e.hasPlatformSession})}function rr(e,t,n){tr(e===`share_analytics`?{shareAnalytics:t}:{shareDiagnostics:t},n)}var ir=`vellum:`,ar=[`onboarding.`,`voice:`,`gw:`,`ff:client:`,`local:`,`integrations.`,`vellumDebug.`,`vellum_`],or=new Set([`vellum_theme`,`vellum_share_analytics`,`vellum_share_diagnostics`,`vellum_biometric_enabled`,`vellum_llm_log_retention`,`vellum_timezone`,`vellum_media_embeds_enabled`,`vellum_media_embed_domains`,`onboarding.lastUserId`]);function sr(e){return e.startsWith(ir)?!0:or.has(e)?!1:ar.some(t=>e.startsWith(t))}function cr(){try{sessionStorage.clear()}catch{}try{let e=[];for(let t=0;t<localStorage.length;t++){let n=localStorage.key(t);n&&sr(n)&&e.push(n)}e.forEach(e=>localStorage.removeItem(e))}catch{}}function lr(e){return e?.id??e?.email??e?.username??null}function K(e){return e?{kind:`platform`,id:lr(e),username:e.username??null,email:e.email??null,isStaff:e.is_staff??!1,firstName:e.first_name??``,lastName:e.last_name??``}:null}var ur=null,q=null,dr=!1,fr={kind:`local`,id:`gateway-local`,username:`local`,email:null,isStaff:!1,firstName:`Local`,lastName:`User`},J=e=>(Et(e),{sessionStatus:`authenticated`,user:e,platformSession:`present`,platformSessionRestoredOffline:!1}),Y=()=>({sessionStatus:`authenticated`,user:fr}),X=()=>({sessionStatus:`unauthenticated`,user:null,platformSession:`absent`}),Z=e=>e===null||!e.ok&&!yt(e);async function pr(e){if(!T())return!1;let t=Dt();return t?(await Q(t.id),e({...J(t),platformSessionRestoredOffline:!0}),!0):!1}function mr(e){(!e||ur&&ur!==e)&&It(),ur=e}function hr(){q?.postMessage(`auth-changed`)}function gr(e){let t=Kn();return{...e.tos?{tos_accepted_version:t.tos}:{},...e.privacy?{privacy_policy_accepted_version:t.privacyPolicy,ai_data_sharing_accepted_version:t.aiDataSharing}:{},...e.shareValues&&e.shareValues.analytics!==null?{share_analytics:e.shareValues.analytics,share_analytics_accepted_version:Hn}:{},...e.diagnostics?{share_diagnostics_accepted_version:t.shareDiagnostics,...e.shareValues&&e.shareValues.diagnostics!==null?{share_diagnostics:e.shareValues.diagnostics}:{}}:{}}}var _r;async function Q(e){if(_r!==void 0&&_r!==e){let e=D.getState();e.setPendingAnalyticsOptIn(!1),e.setServerAnalyticsEffective(null),e.setServerDiagnosticsEffective(null)}if(_r=e,e)try{let t=er(await jn()),n=D.getState(),r=n.shareAnalytics,i=n.shareDiagnostics;t.shareAnalytics===!0&&n.setPendingAnalyticsOptIn(!1),n.setServerAnalyticsEffective(t.analyticsEffective),n.setServerDiagnosticsEffective(t.diagnosticsEffective),t.hasServerRecord&&(t.shareAnalytics!==null||r!==!1)&&!(t.shareAnalytics===!1&&D.getState().pendingAnalyticsOptIn)&&n.setShareAnalytics(t.shareAnalytics),Fn({shareDiagnostics:t.shareDiagnostics,diagnosticsEffective:t.diagnosticsEffective,hasServerRecord:t.hasServerRecord},n.setShareDiagnostics);let a=t.tos,o=t.privacy,s=t.analyticsCurrent,c=t.diagnosticsCurrent,l=t.hasServerRecord,u=t.shareDiagnostics!==null&&t.diagnosticsVersionCurrent;if(!t.hasServerRecord){let t=Xn(e);s=!0,c=!0,u=t.diagnosticsCurrent,t.tos&&t.privacy&&(a=!0,o=!0,l=!0,Mn(gr({tos:!0,privacy:!0,diagnostics:u,shareValues:{analytics:r,diagnostics:i}})).catch(()=>{}))}else if(!a||!o||!c){let t=Xn(e),n=!a&&t.tos,r=!o&&t.privacy,i=!c&&t.diagnosticsCurrent;n&&(a=!0),r&&(o=!0),i&&(c=!0,u=!0),(n||r||i)&&Mn(gr({tos:n,privacy:r,diagnostics:i})).catch(()=>{})}n.setTosAccepted(a),n.setPrivacyConsent(o),n.setAnalyticsConsentCurrent(s),n.setDiagnosticsConsentCurrent(c),n.setHasConsentRecord(l),Zn(e,a,o),u&&Qn(e),mr(e),n.setConsentHydrated(!0);return}catch{}let t=Xn(e),n=D.getState();e?Rn():(n.setPendingAnalyticsOptIn(!1),n.setServerAnalyticsEffective(null),n.setServerDiagnosticsEffective(null)),n.setTosAccepted(t.tos),n.setPrivacyConsent(t.privacy),n.setAnalyticsConsentCurrent(!0),n.setDiagnosticsConsentCurrent(!0),n.setHasConsentRecord(t.tos&&t.privacy),mr(e),n.setConsentHydrated(!0)}var vr=0;Promise.resolve();function yr(e,t={}){let n=++vr,r=()=>n!==vr;E().then(async n=>{if(!r())if(n.ok&&n.data.user){let i=K(n.data.user),a=t.setUserOnSuccess?{user:i}:{};if(t.setUserOnSuccess&&Et(i),h()){let e=!1,t=()=>!e&&!r();try{await Promise.race([(async()=>{await P.getState().fetchOrganizations();let e=await S();t()&&e.ok&&await ye(e.data,P.getState().currentOrganizationId??void 0,t)})(),new Promise((t,n)=>setTimeout(()=>{e=!0,n(Error(`sync timeout`))},3e3))])}catch{}}if(r())return;e({platformSession:`present`,platformSessionRestoredOffline:!1,...a}),Jt()}else t.clearOnFailure&&e({platformSession:`absent`})}).catch(()=>{r()||t.clearOnFailure&&e({platformSession:`absent`})}).finally(()=>{r()||e(e=>e.platformSession===`unknown`?{platformSession:`absent`}:{})})}function br(e,t){!h()||p()||he().length>0?yr(e,t):e({platformSession:`absent`})}async function xr(){try{if(await Ve())return!0}catch{}return fe()!==null}var $=ee(d()((e,t)=>({sessionStatus:`initializing`,user:null,platformSession:`unknown`,platformSessionRestoredOffline:!1,initSession:async()=>{if(g()){await xr()?e({...Y(),platformSession:`absent`}):e(X());return}if(p()){try{await ae(),e(Y())}catch{e({sessionStatus:`unauthenticated`,user:null})}br(e);return}if(h()&&!p()){if(he().length>0){let t=null;try{if(t=await E(),t.ok&&t.data.user){let n=K(t.data.user);await Q(n?.id??null);try{await P.getState().fetchOrganizations();let e=await S();e.ok&&await ye(e.data,P.getState().currentOrganizationId??void 0)}catch{}e(J(n));return}}catch{}if(Z(t)){if(await pr(e))return}else N();e(X());return}e(Y()),dr?e({platformSession:`absent`}):yr(e,{setUserOnSuccess:!0}),dr=!1;return}let t=null;try{if(t=await E(),t.ok&&t.data.user){let n=K(t.data.user);await Q(n?.id??null),e(J(n));return}}catch(e){console.error(`auth.initSession failed`,e)}if(!(Z(t)&&await pr(e))){if(ze()&&Ie())try{let t=await Ne();if(t){Le(t),await Fe();let n=await E();if(n.ok&&n.data.user){let t=K(n.data.user);await Q(t?.id??null),e(J(t));return}}}catch(e){console.warn(`auth.initSession biometric recovery failed`,e)}await Q(null),Z(t)||N(),e(X())}},connectLocalAssistant:async n=>{await ve(pe().find(e=>e.assistantId===n)),await M(n),e(Y()),await j.checkAssistant(),_t(t().platformSession,t().platformSessionRestoredOffline)&&Jt(n),br(e)},connectPlatformAssistant:async t=>{await M(t);let n=await E();if(!n.ok||!n.data.user)throw Error(`Platform authentication required`);let r=K(n.data.user);await Q(r?.id??null),await P.getState().fetchOrganizations(),e(J(r))},refreshSession:async()=>{if(g())return await xr()?(e({...Y(),platformSession:`absent`}),!0):(e(X()),!1);if(_()){try{await oe(ge()),e({sessionStatus:`authenticated`})}catch{return e(X()),!1}return br(e,{clearOnFailure:!0}),!0}let n=null;try{if(n=await E(),n.ok&&n.data.user){let t=K(n.data.user);if(await Q(t?.id??null),h())try{await P.getState().fetchOrganizations();let e=await S();e.ok&&await ye(e.data,P.getState().currentOrganizationId??void 0)}catch{}return e(J(t)),!0}}catch(e){console.warn(`auth.refreshSession failed`,e)}if(Z(n))return k(t().sessionStatus);if(p()){let n=k(t().sessionStatus);return n&&(N(),e({...Y(),platformSession:`absent`})),n}return N(),await Q(null),e(X()),!1},logout:async()=>{if(_()){j.resetForLogout(),await M(null),le(),It(),cr(),e(X()),hr();return}dr=!0,await wn();try{await je()}finally{y()&&await window.vellum?.auth?.signOut?.(),h()&&!y()&&await ne(),Re(),It(),cr(),j.resetForLogout(),await M(null),e(X()),hr()}}}))),Sr=()=>k($.use.sessionStatus()),Cr=()=>!ht($.use.sessionStatus()),wr=()=>A($.use.platformSession()),Tr=()=>gt($.use.platformSession()),Er=()=>_t($.use.platformSession(),$.use.platformSessionRestoredOffline());function Dr(){let{refreshSession:e}=$.getState(),t=[],n=()=>e().catch(e=>console.warn(`auth.refreshSession failed`,e)),r=w(`app.resume`,()=>{Pe()||n()});return t.push(r),typeof BroadcastChannel<`u`&&(q=new BroadcastChannel(`auth`),q.onmessage=()=>{cr(),window.location.reload()},t.push(()=>{q?.close(),q=null})),()=>t.forEach(e=>e())}export{M as A,et as B,qt as C,P as D,Lt as E,ht as F,O as G,Ze as H,yt as I,mt as L,A as M,k as N,Ft as O,_t as P,dt as R,Jt as S,F as T,qe as U,Xe as V,Ke as W,jn as _,Sr as a,En as b,Vn as c,er as d,nr as f,Nn as g,Dn as h,wr as i,j,wt as k,Bn as l,Fn as m,$ as n,Tr as o,rr as p,Er as r,Cr as s,Dr as t,$n as u,On as v,Vt as w,Cn as x,An as y,$e as z};
@@ -0,0 +1 @@
1
+ import{t as e}from"./capture-error-Bj8_eutd.js";import{f as t}from"./local-mode-BTovbt13.js";import{St as n,bt as r,j as i,xt as a}from"./sdk.gen-BIu1DgTs.js";import{a as o,r as s}from"./api-LG8zI3nK.js";import{a as c,i as l,t as u}from"./use-assistant-avatar-bwLHcMz4.js";import{i as d}from"./machine-sizes-DO8duvpy.js";import{n as f,r as p,t as m}from"./provisioning-targets-BTjyR9nk.js";async function h(t,n,r){try{await l(t)||await c(t,n),r.invalidateQueries({queryKey:u(t)})}catch(t){e(t,{context:`onboarding_avatar_sync`})}}var g=3e3,_=3e5,v=9e4;async function y(e){let{assistantId:c,postCheckoutReturn:l,managedHatch:u,hatchStartMs:h,isCancelled:_,onResizeWait:y,registerTimer:b}=e,x=e=>new Promise(t=>{if(_()){t();return}let n=setTimeout(()=>{b?.(null),t()},e);b?.(n)});if(t()&&!u)return`ready`;let S=!1,C=()=>{S||r({throwOnError:!1}).then(e=>{e.data!=null&&!m(e.data)&&(S=!0)}).catch(()=>{})},w=async()=>{for(;!_();){try{if((await o(c)).ok)return`ready`}catch{}if(Date.now()-h>=3e5)return`health_timeout`;await x(g)}return`ready`},T=Date.now()+v,E=null;for(;!_();){C();let e=`unknown`;try{let t=await n({throwOnError:!1});if(_())return`ready`;t.data&&(e=t.data.plan_id===`pro`?`pro`:`non_pro`)}catch{}try{let e=await a({throwOnError:!1});if(_())return`ready`;let t=e.data;t&&(E={machineSize:d(t.max_machine_tier).at(-1)??null,storageGib:t.selected_storage_gib??null})}catch{}let t=E!=null&&(E.machineSize!=null||E.storageGib!=null);if(e===`non_pro`&&!l)return`ready`;if(e===`pro`&&t)break;if(Date.now()>=T)return w();await x(g)}if(_())return`ready`;for(y?.();!_();){C();let e=null;try{let t=await s(c);if(_())return`ready`;t.ok&&(e={machineSize:t.data.machine_size??null,storageGib:t.data.provisioned_storage_gib??null})}catch{}let t=!0;try{let e=await i({path:{id:c},throwOnError:!1});if(_())return`ready`;e.data&&(t=f(e.data))}catch{t=!0}if(p(E,e)&&!t||Date.now()>=T)break;await x(g)}return _()?`ready`:w()}function b(e){let t=e=>e[Math.floor(Math.random()*e.length)];return{bodyShape:t(e.bodyShapes).id,eyeStyle:t(e.eyeStyles).id,color:t(e.colors).id}}export{h as a,y as i,_ as n,g as r,b as t};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./jsx-runtime-D3ZM-ToX.js";import{t as r}from"./avatar-svg-compositor-FtVPqzlC.js";var i=e(t(),1),a=n();function o({components:e,bodyShapeId:t,eyeStyleId:n,colorId:o,size:s=56,className:c}){let l=(0,i.useMemo)(()=>{try{return r(e,t,n,o,s)}catch{return null}},[e,t,n,o,s]);return l?(0,a.jsx)(`div`,{className:c,style:{width:s,height:s,flexShrink:0},dangerouslySetInnerHTML:{__html:l}}):null}export{o as t};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./jsx-runtime-D3ZM-ToX.js";import{t as r}from"./avatar-svg-compositor-Dl-ckXRE.js";var i=e(t(),1),a=n();function o({components:e,bodyShapeId:t,eyeStyleId:n,colorId:o,size:s=56,className:c}){let l=(0,i.useMemo)(()=>{try{return r(e,t,n,o,s)}catch{return null}},[e,t,n,o,s]);return l?(0,a.jsx)(`div`,{className:c,style:{width:s,height:s,flexShrink:0},dangerouslySetInnerHTML:{__html:l}}):null}export{o as t};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./createLucideIcon-CAM1RhH8.js";import{ht as r}from"./risk-C_bbPQPd.js";import{n as i}from"./resolved-assistants-store-C-PdxK8f.js";import{h as a}from"./sdk.gen-BVAVE6A_.js";import{t as o}from"./background-task-store-DFS8MP5D.js";var s=n(`file-terminal`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`m8 16 2-2-2-2`,key:`10vzyd`}],[`path`,{d:`M12 18h4`,key:`1wd2n7`}]]),c=e(t(),1);function l(e){return e===`host_bash`?s:r}function u({toolName:e,className:t}){return(0,c.createElement)(l(e),{className:t,"aria-hidden":!0})}function d(){let e=i.getState().activeAssistantId;if(!e)throw Error(`No active assistant`);return e}async function f(e){let t=d(),n=o.getState(),r=n.byId[e]?.status;n.cancelTask(e);try{let{data:n,response:r}=await a({path:{assistant_id:t},body:{id:e},throwOnError:!1});if(!r?.ok||n?.cancelled===!1)throw Error(`Failed to stop background task: ${r?.status} (cancelled=${n?.cancelled})`)}catch(t){throw r!==void 0&&o.getState().restoreTaskStatus(e,r),t}}export{u as n,l as r,f as t};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./createLucideIcon-CAM1RhH8.js";import{ht as r}from"./risk-CdT92Vqr.js";import{n as i}from"./resolved-assistants-store-Dw5UuGyB.js";import{h as a}from"./sdk.gen-BHZ0fJla.js";import{t as o}from"./background-task-store-DMP8ByUq.js";var s=n(`file-terminal`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`m8 16 2-2-2-2`,key:`10vzyd`}],[`path`,{d:`M12 18h4`,key:`1wd2n7`}]]),c=e(t(),1);function l(e){return e===`host_bash`?s:r}function u({toolName:e,className:t}){return(0,c.createElement)(l(e),{className:t,"aria-hidden":!0})}function d(){let e=i.getState().activeAssistantId;if(!e)throw Error(`No active assistant`);return e}async function f(e){let t=d(),n=o.getState(),r=n.byId[e]?.status;n.cancelTask(e);try{let{data:n,response:r}=await a({path:{assistant_id:t},body:{id:e},throwOnError:!1});if(!r?.ok||n?.cancelled===!1)throw Error(`Failed to stop background task: ${r?.status} (cancelled=${n?.cancelled})`)}catch(t){throw r!==void 0&&o.getState().restoreTaskStatus(e,r),t}}export{u as n,l as r,f as t};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./capture-error-Bj8_eutd.js";import{t as n}from"./react-BFJW0bSv.js";import{t as r}from"./jsx-runtime-D3ZM-ToX.js";import{t as i}from"./typography-DEI9Ra9z.js";import{r as a,t as o}from"./background-task-actions-CmYMPa2o.js";import"./src-D89CNeuT.js";import{a as s,i as c,n as l,r as u}from"./background-task-store-DFS8MP5D.js";import{t as d}from"./detail-shell-DcNnOqM_.js";import{t as f}from"./status-badge-pill-z1OKPW3B.js";import{CodeBlock as p,SectionLabel as m}from"./tool-detail-panel-DFMOphDJ.js";import{t as h}from"./detail-panel-stop-button-C1rystDS.js";var g=e(n(),1),_=r();function v({status:e}){return(0,_.jsx)(f,{color:l(e),label:u(e)})}function y({entry:e,onClose:n}){let r=s(e.status),l=!r,u=l&&e.output!==void 0&&e.output!==``,f=l&&e.exitCode!=null,[y,b]=(0,g.useState)(!1),x=(0,g.useCallback)(()=>{b(!0),o(e.id).catch(e=>{b(!1),t(e,{context:`BackgroundTaskDetailPanel.stop`})})},[e.id]);return(0,_.jsxs)(d,{Glyph:a(e.toolName),title:c(e.status),headerTrailing:(0,_.jsx)(v,{status:e.status}),headerActions:r?(0,_.jsx)(h,{onStop:x,ariaLabel:`Stop command`,disabled:y}):void 0,closeVariant:`outlined`,closeLabel:`Close task detail`,onClose:n,children:[(0,_.jsxs)(`div`,{children:[(0,_.jsx)(m,{children:`Command`}),(0,_.jsx)(p,{text:e.command})]}),u&&(0,_.jsxs)(`div`,{className:`mt-5`,children:[(0,_.jsx)(m,{children:`Output`}),(0,_.jsx)(p,{text:e.output})]}),f&&(0,_.jsxs)(i,{variant:`body-small-default`,as:`p`,className:`mt-2 text-[var(--content-tertiary)]`,children:[`Exit code: `,e.exitCode]})]})}export{y as BackgroundTaskDetailPanel};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./capture-error-Bj8_eutd.js";import{t as n}from"./react-BFJW0bSv.js";import{t as r}from"./jsx-runtime-D3ZM-ToX.js";import{t as i}from"./typography-DEI9Ra9z.js";import{r as a,t as o}from"./background-task-actions-DmP5s0oO.js";import"./src-te3YTBG-.js";import{a as s,i as c,n as l,r as u}from"./background-task-store-DMP8ByUq.js";import{t as d}from"./detail-shell-Cyqr5FXJ.js";import{t as f}from"./status-badge-pill-wJPMXQk1.js";import{CodeBlock as p,SectionLabel as m}from"./tool-detail-panel-DFrWEWKG.js";import{t as h}from"./detail-panel-stop-button-BNuh6N0s.js";var g=e(n(),1),_=r();function v({status:e}){return(0,_.jsx)(f,{color:l(e),label:u(e)})}function y({entry:e,onClose:n}){let r=s(e.status),l=!r,u=l&&e.output!==void 0&&e.output!==``,f=l&&e.exitCode!=null,[y,b]=(0,g.useState)(!1),x=(0,g.useCallback)(()=>{b(!0),o(e.id).catch(e=>{b(!1),t(e,{context:`BackgroundTaskDetailPanel.stop`})})},[e.id]);return(0,_.jsxs)(d,{Glyph:a(e.toolName),title:c(e.status),headerTrailing:(0,_.jsx)(v,{status:e.status}),headerActions:r?(0,_.jsx)(h,{onStop:x,ariaLabel:`Stop command`,disabled:y}):void 0,closeVariant:`outlined`,closeLabel:`Close task detail`,onClose:n,children:[(0,_.jsxs)(`div`,{children:[(0,_.jsx)(m,{children:`Command`}),(0,_.jsx)(p,{text:e.command})]}),u&&(0,_.jsxs)(`div`,{className:`mt-5`,children:[(0,_.jsx)(m,{children:`Output`}),(0,_.jsx)(p,{text:e.output})]}),f&&(0,_.jsxs)(i,{variant:`body-small-default`,as:`p`,className:`mt-2 text-[var(--content-tertiary)]`,children:[`Exit code: `,e.exitCode]})]})}export{y as BackgroundTaskDetailPanel};
@@ -1 +1 @@
1
- import{n as e,t}from"./create-selectors-Qo7kcikX.js";import{a as n,i as r,n as i,r as a,t as o}from"./optimistic-lifecycle-C2a6IJ7E.js";function s(e){return e===`running`}function c(e){switch(e){case`completed`:return`var(--system-positive-strong)`;case`failed`:case`cancelled`:return`var(--system-negative-strong)`;default:return`var(--primary-base)`}}function l(e){switch(e){case`running`:return`Running command`;case`completed`:return`Command finished`;case`cancelled`:return`Command cancelled`;case`failed`:return`Command failed`;default:return`Command`}}function u(e){switch(e){case`running`:return`Running`;case`completed`:return`Completed`;case`failed`:return`Failed`;case`cancelled`:return`Cancelled`;default:return`Unknown`}}var d={byId:{},orderedIds:[]};function f(e,t){let n=r(e.status,t.status,s);return{...e,status:n,exitCode:t.exitCode??e.exitCode,output:t.output??e.output,completedAt:t.completedAt??e.completedAt}}var p={getStatus:e=>e.status,isActive:s,cancelledStatus:`cancelled`,applyCancel:e=>({...e,status:`cancelled`}),applyRestore:(e,t)=>({...e,status:t,completedAt:void 0}),applyRetire:e=>({...e,status:`cancelled`}),isSettled:e=>e.completedAt!=null},m=t(e()((e,t)=>({...d,startTask:n=>{let{byId:r,orderedIds:i}=t();if(r[n.id])return;let a={id:n.id,toolName:n.toolName,conversationId:n.conversationId,command:n.command,startedAt:n.startedAt,status:`running`};e({byId:{...r,[n.id]:a},orderedIds:[...i,n.id]})},completeTask:n=>{let{byId:r}=t(),i=r[n.id];if(!i)return;let a=i.status===`cancelled`&&n.status===`failed`?`cancelled`:n.status;e({byId:{...r,[n.id]:{...i,status:a,exitCode:n.exitCode,output:n.output,completedAt:n.completedAt}}})},cancelTask:n=>{let{byId:r}=t(),i=o(r[n],p);i&&e({byId:{...r,[n]:i}})},restoreTaskStatus:(n,r)=>{let{byId:a}=t(),o=i(a[n],r,p);o&&e({byId:{...a,[n]:o}})},retireMissing:(n,r)=>{let{byId:i}=t(),o=new Set(n),s=new Set(r),c=!1,l={...i};for(let e of Object.values(i)){if(!s.has(e.id)||o.has(e.id))continue;let t=a(e,p);t&&(l[e.id]=t,c=!0)}c&&e({byId:l})},seedFromHistory:r=>{let{byId:i,orderedIds:a}=t();e(n({entries:r,byId:i,orderedIds:a,idOf:e=>e.id,merge:f}))},reset:()=>e({byId:{},orderedIds:[]})})));export{s as a,l as i,c as n,u as r,m as t};
1
+ import{n as e,t}from"./create-selectors-Qo7kcikX.js";import{a as n,i as r,n as i,r as a,t as o}from"./optimistic-lifecycle-BINTsVFx.js";function s(e){return e===`running`}function c(e){switch(e){case`completed`:return`var(--system-positive-strong)`;case`failed`:case`cancelled`:return`var(--system-negative-strong)`;default:return`var(--primary-base)`}}function l(e){switch(e){case`running`:return`Running command`;case`completed`:return`Command finished`;case`cancelled`:return`Command cancelled`;case`failed`:return`Command failed`;default:return`Command`}}function u(e){switch(e){case`running`:return`Running`;case`completed`:return`Completed`;case`failed`:return`Failed`;case`cancelled`:return`Cancelled`;default:return`Unknown`}}var d={byId:{},orderedIds:[]};function f(e,t){let n=r(e.status,t.status,s);return{...e,status:n,exitCode:t.exitCode??e.exitCode,output:t.output??e.output,completedAt:t.completedAt??e.completedAt}}var p={getStatus:e=>e.status,isActive:s,cancelledStatus:`cancelled`,applyCancel:e=>({...e,status:`cancelled`}),applyRestore:(e,t)=>({...e,status:t,completedAt:void 0}),applyRetire:e=>({...e,status:`cancelled`}),isSettled:e=>e.completedAt!=null},m=t(e()((e,t)=>({...d,startTask:n=>{let{byId:r,orderedIds:i}=t();if(r[n.id])return;let a={id:n.id,toolName:n.toolName,conversationId:n.conversationId,command:n.command,startedAt:n.startedAt,status:`running`};e({byId:{...r,[n.id]:a},orderedIds:[...i,n.id]})},completeTask:n=>{let{byId:r}=t(),i=r[n.id];if(!i)return;let a=i.status===`cancelled`&&n.status===`failed`?`cancelled`:n.status;e({byId:{...r,[n.id]:{...i,status:a,exitCode:n.exitCode,output:n.output,completedAt:n.completedAt}}})},cancelTask:n=>{let{byId:r}=t(),i=o(r[n],p);i&&e({byId:{...r,[n]:i}})},restoreTaskStatus:(n,r)=>{let{byId:a}=t(),o=i(a[n],r,p);o&&e({byId:{...a,[n]:o}})},retireMissing:(n,r)=>{let{byId:i}=t(),o=new Set(n),s=new Set(r),c=!1,l={...i};for(let e of Object.values(i)){if(!s.has(e.id)||o.has(e.id))continue;let t=a(e,p);t&&(l[e.id]=t,c=!0)}c&&e({byId:l})},seedFromHistory:r=>{let{byId:i,orderedIds:a}=t();e(n({entries:r,byId:i,orderedIds:a,idOf:e=>e.id,merge:f}))},reset:()=>e({byId:{},orderedIds:[]})})));export{s as a,l as i,c as n,u as r,m as t};
@@ -0,0 +1,3 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/native-file-ySSv1sQ7.js","assets/chunk-jRWAZmH_.js","assets/preload-helper-Cv2QeVDK.js","assets/is-electron-m5eeGBnd.js","assets/dist-BwAT3VYQ.js"])))=>i.map(i=>d[i]);
2
+ import{o as e,t}from"./chunk-jRWAZmH_.js";import{t as n}from"./capture-error-Bj8_eutd.js";import{t as r}from"./react-BFJW0bSv.js";import{t as i}from"./button-Dy5001j6.js";import{t as a}from"./preload-helper-Cv2QeVDK.js";import{m as o,t as s,u as c}from"./chunk-5KNZJZUH-Bsoom5--.js";import{n as l}from"./QueryClientProvider-CMu7CkQU.js";import{t as u}from"./useQuery-Bz-fbQ-m.js";import{t as d}from"./useMutation-CXGTrp4W.js";import{t as f}from"./jsx-runtime-D3ZM-ToX.js";import{t as p}from"./typography-DEI9Ra9z.js";import{t as m}from"./card-DRIctGVs.js";import{t as h}from"./createLucideIcon-CAM1RhH8.js";import{t as g}from"./arrow-left-C2ylPLHq.js";import{t as _}from"./check-sC49_hjU.js";import{t as v}from"./chevron-down-B5A-0g8A.js";import{t as y}from"./chevron-up-2Qqarz0p.js";import{t as b}from"./circle-check-CjGnAahM.js";import{t as x}from"./coins-Hrmb9tmj.js";import{A as S,C,D as w,E as T,F as E,N as D,S as O,T as k,_ as A,b as j,c as M,d as N,f as ee,g as P,h as F,i as I,j as te,k as ne,l as re,m as L,n as R,p as ie,s as ae,t as oe,u as z,v as se,w as ce,x as B,y as le}from"./use-checkout-dismiss-refresh-CqGR_OsB.js";import{n as ue,o as de}from"./list-row-B1wPb2Au.js";import{t as fe}from"./credit-card-C1RL73Rt.js";import{t as pe}from"./download-CywcQLB2.js";import{t as me}from"./external-link-CS0aVYGt.js";import{t as he}from"./info-vgPTIsGI.js";import{t as V}from"./loader-circle-XREx3i4W.js";import{t as ge}from"./sparkles-Ccrj7hxd.js";import{t as _e}from"./triangle-alert-CQfiAg_t.js";import{t as ve}from"./users-iLvfYFOP.js";import{t as ye}from"./x-JBAsSOmg.js";import{t as H}from"./notice-BMK7xqUw.js";import{M as be,r as xe}from"./src-te3YTBG-.js";import{t as Se}from"./tag-NXcyiTkK.js";import{t as Ce}from"./input-hw3el2GJ.js";import{t as we}from"./toggle-lfnhEAcN.js";import{t as U}from"./modal-BR4CUFBd.js";import{n as W}from"./toast-LgLp4obE.js";import{t as Te}from"./confirm-dialog-UYFm4osC.js";import{t as Ee}from"./dropdown-BCfnSdIZ.js";import{kr as De}from"./sdk.gen-BHZ0fJla.js";import{It as Oe,Lt as ke,Rt as Ae,c as je,d as Me,ht as Ne,zt as Pe}from"./react-query.gen-C5c1Acuq.js";import{t as Fe}from"./api-errors-CFiCT7Ap.js";import{o as Ie}from"./auth-store-5qq59BAN.js";import{lt as Le,ut as Re}from"./sdk.gen-BIu1DgTs.js";import{x as ze}from"./native-biometric-BAMIyaSS.js";import{u as Be}from"./routes-D9sNqB_o.js";import{i as G,r as Ve,t as He}from"./use-platform-gate-C65D14xY.js";import{r as Ue}from"./use-is-org-ready-C5xlYywh.js";import{n as We,r as Ge}from"./browser-CTZVDjOL.js";import{n as Ke,t as qe}from"./conversation-navigation-DsN0hcpL.js";import{n as Je}from"./use-is-mobile-BlQuzI5Z.js";import{t as Ye}from"./effective-timezone-CmcoXrio.js";import{$ as Xe,B as Ze,G as Qe,H as $e,J as et,K as tt,L as nt,Mt as rt,Q as it,R as at,U as ot,V as st,W as ct,X as lt,Y as ut,Z as dt,ct as ft,dt as pt,et as mt,ft as ht,gt,ht as _t,it as vt,lt as yt,nt as bt,pt as xt,q as St,st as Ct,tt as wt,ut as Tt,wt as Et,z as Dt}from"./react-query.gen-BC3STDmV.js";import{t as Ot}from"./use-effective-timezone-Dqs8OaXJ.js";import{t as kt}from"./misc-CuYswARt.js";import{t as At}from"./platform-login-notice-CdYiKsE8.js";import{t as jt}from"./use-active-assistant-id-CldxA_-M.js";import{t as Mt}from"./format-date-BGnM4mqL.js";import{t as Nt}from"./add-credits-modal-fT_gTTP5.js";import{t as Pt}from"./link-click-DLYgWZdo.js";import{t as Ft}from"./schedules-6hzhR_C_.js";import{i as It,n as Lt,r as Rt,t as zt}from"./profile-metadata-BhqRdqUJ.js";import{t as Bt}from"./checkout-return-target-DI6Hb-9L.js";var Vt=h(`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`}]]),Ht=h(`target`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`circle`,{cx:`12`,cy:`12`,r:`6`,key:`1vlfrh`}],[`circle`,{cx:`12`,cy:`12`,r:`2`,key:`1c9p78`}]]),Ut=h(`tree-palm`,[[`path`,{d:`M13 8c0-2.76-2.46-5-5.5-5S2 5.24 2 8h2l1-1 1 1h4`,key:`foxbe7`}],[`path`,{d:`M13 7.14A5.82 5.82 0 0 1 16.5 6c3.04 0 5.5 2.24 5.5 5h-3l-1-1-1 1h-3`,key:`18arnh`}],[`path`,{d:`M5.89 9.71c-2.15 2.15-2.3 5.47-.35 7.43l4.24-4.25.7-.7.71-.71 2.12-2.12c-1.95-1.96-5.27-1.8-7.42.35`,key:`ywahnh`}],[`path`,{d:`M11 15.5c.5 2.5-.17 4.5-1 6.5h4c2-5.5-.5-12-1-14`,key:`ft0feo`}]]),K=e(r(),1);function Wt(e){return e.get(`tab`)===`billing`||e.has(`adjust_plan`)||e.has(`pro_onboarding`)||e.has(`billing_status`)||e.has(`session_id`)}function Gt(e,t){return e===`full`?!0:e===`disabled`?Wt(t):!1}function Kt(e){if(!e)return{};let t={};for(let n of e.callSites)!n.id||!n.displayName||(t[n.id]={id:n.id,displayName:n.displayName,description:n.description,domain:n.domain});return t}function q(e){return Number.isFinite(e)?Math.round(e).toLocaleString():`0`}function qt(e){return!Number.isFinite(e)||e===0?`$0.00`:`$${e.toFixed(2)}`}var Jt=`model`,Yt={model:`Model`,task:`Action`,profile:`Profile`},Xt=[{value:`model`,label:Yt.model},{value:`task`,label:Yt.task},{value:`profile`,label:Yt.profile}];function Zt(e){return e===`model`||e===`task`||e===`profile`}function Qt(e){switch(e){case`model`:return`model`;case`task`:return`call_site`;case`profile`:return`inference_profile`}}function $t(e){switch(e){case`model`:return`model`;case`task`:return`llm_call_site`;case`profile`:return`inference_profile`}}function en(e,t,n){if(e===`task`){let e=t.groupKey;return e?n.callSites?.[e]?.displayName??t.group:t.group}if(e===`profile`){let e=t.groupKey;return e?n.profiles?.[e]?.displayName??t.group:t.group||`Default / Unset`}return t.group}function tn(e,t,n){return!e||e.length===0?[]:e.map(e=>{let r=en(t,e,n);return r===e.group?e:{...e,group:r}})}var nn=6,rn=`value:`,an=`null:`;function on(e,t=`schedule`){return e===null?`${an}${Zt(t)?Qt(t):t}`:`${rn}${e}`}function sn(e){return[...e].sort((e,t)=>{if(e.date!==t.date)return e.date<t.date?-1:1;let n=fn(e.bucketId),r=fn(t.bucketId);return n===r?e.bucketId===t.bucketId?0:e.bucketId<t.bucketId?-1:1:n-r})}function cn(e){return e.map(e=>({bucketId:e.bucketId,date:e.date,displayLabel:e.displayLabel,totalInputTokens:e.totalInputTokens,totalOutputTokens:e.totalOutputTokens,totalEstimatedCostUsd:e.totalEstimatedCostUsd,eventCount:e.eventCount,groups:{}}))}function ln(e,t,n){return t!==`task`&&t!==`profile`?[...e]:e.map(e=>{let r=!1,i={};for(let[a,o]of Object.entries(e.groups)){let e=en(t,dn(o),n);e===o.group?i[a]=o:(r=!0,i[a]={...o,group:e})}return r?{...e,groups:i}:e})}function un(e){let t=new Map;for(let n of e)for(let[e,r]of Object.entries(n.groups)){let n=t.get(e);t.set(e,{label:n?.label??r.group,totalEstimatedCostUsd:(n?.totalEstimatedCostUsd??0)+r.totalEstimatedCostUsd})}let n=Array.from(t.entries()).sort(([e,t],[n,r])=>t.totalEstimatedCostUsd===r.totalEstimatedCostUsd?t.label===r.label?e===n?0:e<n?-1:1:t.label<r.label?-1:1:r.totalEstimatedCostUsd-t.totalEstimatedCostUsd).map(([e,t],n)=>({seriesKey:e,label:t.label,totalEstimatedCostUsd:t.totalEstimatedCostUsd,colorIndex:n}));return{items:n,visibleItems:n.slice(0,nn)}}function dn(e){return{group:e.group,groupId:e.groupKey,groupKey:e.groupKey,totalInputTokens:e.totalInputTokens,totalOutputTokens:e.totalOutputTokens,totalCacheCreationTokens:0,totalCacheReadTokens:0,totalEstimatedCostUsd:e.totalEstimatedCostUsd,eventCount:e.eventCount,turnCount:null}}function fn(e){let t=e.lastIndexOf(`|`);if(t<0)return 0;let n=Number(e.slice(t+1));return Number.isFinite(n)?n:0}var J=f(),pn=140,mn=40,hn=28,gn=2,_n=2,vn=1e-6,yn=12,bn=220,xn=56,Sn=[40,80,60,100,50,70,30],Cn=[18,24,28,35,42,50,64,78,92,106,118,96,84,74,68,80,88,72,56,48,40,34,26,20],wn=[`var(--usage-trend-stack-positive, var(--system-positive-strong, #10b981))`,`var(--usage-trend-stack-info, var(--system-info-strong, #3b82f6))`,`var(--usage-trend-stack-mid, var(--system-mid-strong, #f59e0b))`,`var(--usage-trend-stack-secondary, var(--content-secondary, #6b7280))`,`var(--usage-trend-stack-negative, var(--system-negative-strong, #f87171))`,`var(--usage-trend-stack-tertiary, var(--content-tertiary, #9ca3af))`];function Tn(e){return wn[e%wn.length]}function En(e){return e.displayLabel?e.displayLabel:e.date}function Dn(e,t){let n=e+yn,r=t+yn;return n+bn>window.innerWidth&&(n=e-bn-yn),r+xn>window.innerHeight&&(r=t-xn-yn),{x:n,y:r}}function On({buckets:e,isHourly:t,legendItems:n}){let[r,i]=(0,K.useState)(null),a=(0,K.useMemo)(()=>sn(e),[e]),o=(0,K.useMemo)(()=>un(e),[e]),s=n??o.items,c=n??o.visibleItems,l=(0,K.useMemo)(()=>a.reduce((e,t)=>Math.max(e,t.totalEstimatedCostUsd),0),[a]),u=(0,K.useCallback)((e,t)=>{let n=Dn(e.clientX,e.clientY);i({...t,x:n.x,y:n.y})},[]),d=(0,K.useCallback)(()=>i(null),[]);if(a.length===0){let e=(0,J.jsx)(Nn,{title:t?`No hourly data`:`No daily data`,subtitle:`No usage recorded in this time range`});return c.length===0?e:(0,J.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[e,(0,J.jsx)(Mn,{items:c})]})}let f=t?hn:mn;return(0,J.jsxs)(`div`,{className:`overflow-x-auto`,children:[(0,J.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,J.jsx)(`div`,{className:`flex items-end gap-2`,style:{height:`${pn}px`},"aria-hidden":`true`,children:a.map(e=>{let t=l>0?e.totalEstimatedCostUsd/l:0,r=Math.max(gn,pn*t);return(0,J.jsx)(`div`,{className:`flex items-end`,style:{width:`${f}px`,minWidth:`${f}px`,height:`${r}px`,opacity:e.totalEstimatedCostUsd>0?1:.3},title:`${En(e)}: ${qt(e.totalEstimatedCostUsd)}`,"data-usage-series-bar":e.bucketId,children:(0,J.jsx)(An,{bucket:e,height:r,legendItems:s,hasLegendOverride:n!=null,onSegmentHover:u,onSegmentLeave:d})},e.bucketId)})}),(0,J.jsx)(`div`,{className:`flex items-start gap-2`,children:a.map(e=>(0,J.jsxs)(`div`,{className:`flex flex-col items-center gap-0.5`,style:{width:`${f}px`,minWidth:`${f}px`},children:[(0,J.jsx)(`span`,{className:`truncate text-[10px]`,style:{color:`var(--content-secondary)`},children:qt(e.totalEstimatedCostUsd)}),(0,J.jsx)(`span`,{className:`truncate text-[10px]`,style:{color:`var(--content-tertiary)`},children:En(e)})]},e.bucketId))}),c.length>0?(0,J.jsx)(Mn,{items:c}):null]}),r?(0,J.jsx)(jn,{tooltip:r}):null]})}function kn({isHourly:e}){let t=e?Cn:Sn,n=e?hn:mn;return(0,J.jsx)(`div`,{className:`flex items-end gap-2`,style:{height:`${pn}px`},"aria-hidden":`true`,children:t.map((e,t)=>(0,J.jsx)(`div`,{className:`rounded-sm`,style:{width:`${n}px`,height:`${e}px`,background:`color-mix(in srgb, var(--border-base) 40%, transparent)`}},t))})}function An({bucket:e,height:t,legendItems:n,hasLegendOverride:r,onSegmentHover:i,onSegmentLeave:a}){let o=Object.keys(e.groups).length>0,s=n.filter(e=>(e.state??`active`)===`active`).flatMap(t=>{let n=e.groups[t.seriesKey];return!n||n.totalEstimatedCostUsd<=0?[]:[{item:t,value:n}]});if(s.length===0&&!o&&!r){let n={label:`Total`,bucketLabel:En(e),cost:qt(e.totalEstimatedCostUsd)};return(0,J.jsx)(`div`,{className:`w-full rounded-sm`,title:`${n.label}: ${n.cost}`,onMouseEnter:e=>i(e,n),onMouseMove:e=>i(e,n),onMouseLeave:a,style:{height:`${t}px`,background:Tn(0)},"data-usage-series-segment-label":n.label,"data-usage-fallback-segment":`true`})}return s.length===0?null:(0,J.jsx)(`div`,{className:`flex w-full flex-col-reverse overflow-hidden rounded-sm`,style:{height:`${t}px`},"data-usage-series-stack":e.bucketId,children:s.map(({item:n,value:r})=>{let o={label:n.label,bucketLabel:En(e),cost:qt(r.totalEstimatedCostUsd)};return(0,J.jsx)(`div`,{title:`${o.label}: ${o.cost}`,onMouseEnter:e=>i(e,o),onMouseMove:e=>i(e,o),onMouseLeave:a,style:{height:`${Math.max(_n,t*r.totalEstimatedCostUsd/Math.max(e.totalEstimatedCostUsd,vn))}px`,background:Tn(n.colorIndex)},"data-usage-series-segment":n.seriesKey,"data-usage-series-segment-label":n.label,"data-usage-series-color-index":n.colorIndex},n.seriesKey)})})}function jn({tooltip:e}){return(0,J.jsxs)(`div`,{className:`pointer-events-none fixed z-50 max-w-[220px] rounded-md border px-2 py-1 shadow-xl`,style:{left:`${e.x}px`,top:`${e.y}px`,background:`var(--surface-overlay, var(--surface-lift))`,borderColor:`var(--border-base)`},"aria-hidden":`true`,children:[(0,J.jsx)(`div`,{className:`truncate text-body-small-default`,style:{color:`var(--content-default)`},children:e.label}),(0,J.jsxs)(`div`,{className:`truncate text-body-small-default`,style:{color:`var(--content-tertiary)`},children:[e.bucketLabel,` · `,e.cost]})]})}function Mn({items:e}){return(0,J.jsx)(`div`,{className:`flex flex-wrap items-center gap-x-3 gap-y-1 pt-1`,children:e.map(e=>{let t=e.state??`active`,n=t===`inactive`;return(0,J.jsxs)(`div`,{className:`flex min-w-0 items-center gap-1`,"data-usage-legend-state":t,children:[(0,J.jsx)(`span`,{className:`h-[7px] w-[7px] shrink-0 rounded-full`,style:{background:n?`var(--content-tertiary)`:Tn(e.colorIndex),opacity:n?.45:1},"aria-hidden":`true`,"data-usage-series-color-index":e.colorIndex}),(0,J.jsx)(`span`,{className:n?`truncate text-[10px] line-through`:`truncate text-[10px]`,style:{color:`var(--content-tertiary)`,opacity:n?.65:1},children:e.label})]},e.seriesKey)})})}function Nn({title:e,subtitle:t}){return(0,J.jsxs)(`div`,{className:`flex flex-col items-center justify-center rounded-md py-12 text-center`,style:{color:`var(--content-tertiary)`},children:[(0,J.jsx)(`p`,{className:`text-body-medium-default`,style:{color:`var(--content-secondary)`},children:e}),(0,J.jsx)(`p`,{className:`mt-1 text-body-small-default`,children:t})]})}function Pn(e){return Zt(e)?Qt(e):e}function Fn(e){return zn({from:e.from,to:e.to},e.scheduleId)}function In(e){return zn({from:e.from,to:e.to,...e.granularity?{granularity:e.granularity}:{},...e.tz?{tz:e.tz}:{}},e.scheduleId)}function Ln(e){return zn({from:e.from,to:e.to,groupBy:Pn(e.groupBy)},e.scheduleId)}function Rn(e){return zn({from:e.from,to:e.to,granularity:e.granularity,groupBy:Pn(e.groupBy),...e.tz?{tz:e.tz}:{}},e.scheduleId)}function zn(e,t){return t?{...e,scheduleId:t}:e}function Bn(e){return[`${q(e.totalInputTokens)} direct`,`${q(e.totalCacheCreationTokens)} cache created`,`${q(e.totalCacheReadTokens)} cache read`,`${q(e.totalOutputTokens)} out`].join(` / `)}function Vn(e){return!Number.isFinite(e)||e===0?`0`:e>=1e6||e>=999950&&e<1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}k`:e.toLocaleString()}function Hn(e){return`${Vn(e.totalInputTokens+e.totalCacheCreationTokens+e.totalCacheReadTokens)} in / ${Vn(e.totalOutputTokens)} out`}var Un=`task`,Wn=`model`,Gn=new Set([400,404,422]),Kn=3,qn=new Set([`today`,`yesterday`,`7d`,`30d`,`90d`,`all`]),Jn=new Set([`actor`,`provider`,`model`,`conversation`,`task`,`profile`,`schedule`]),Yn={task:Yt.task,profile:Yt.profile,model:Yt.model,provider:`Provider`,actor:`Actor`,conversation:`Conversation`,schedule:`Schedule`},Xn=[{value:`task`,label:Yn.task},{value:`profile`,label:Yn.profile},{value:`model`,label:Yn.model},{value:`provider`,label:Yn.provider},{value:`schedule`,label:Yn.schedule},{value:`conversation`,label:Yn.conversation}];function Zn(e){let t=e.get(`range`),n=e.get(`groupBy`),r=tr(n)?n:Un;return{range:er(t)?t:`7d`,groupBy:r,scheduleId:r===`schedule`?Qn(e):void 0}}function Qn(e){let t=e.get(`scheduleId`);if(!(!t||t.trim().length===0))return t}function $n(e,t){let n=new URLSearchParams(e);return t.range!==void 0&&n.set(`range`,t.range),t.groupBy!==void 0&&n.set(`groupBy`,t.groupBy),t.scheduleId!==void 0&&(t.scheduleId===null||t.scheduleId.trim().length===0?n.delete(`scheduleId`):n.set(`scheduleId`,t.scheduleId)),n.get(`groupBy`)!==`schedule`&&n.delete(`scheduleId`),n}function er(e){return e!=null&&qn.has(e)}function tr(e){return e!=null&&Jn.has(e)}function nr(e){return e!==`conversation`}function rr(e,t){return e!==`task`&&e!==`profile`?!1:ar(t)}function ir(e,t){return!ar(t)&&e<Kn}function ar(e){return e instanceof Fe&&Gn.has(e.status)}function or(e,t){let n=e===`hourly`?`Hourly Trend`:`Daily Trend`;return!t||t===`conversation`?n:`${n} by ${Yn[t]}`}function sr({requestedGranularity:e,isLoading:t,buckets:n}){return e===`hourly`&&(t||!n||n.length===0||n.some(cr))?`hourly`:`daily`}function cr(e){return e.bucketId.includes(`|`)||lr(e.date)}function lr(e){return/^\d{4}-\d{2}-\d{2} ([01]\d|2[0-3]):00$/.test(e)}function ur(e,t,n=Date.now()){return Rt(e,t,n)}function dr(e){return e===`today`||e===`yesterday`?`hourly`:`daily`}function fr({prompt:e,children:t,variant:n=`outlined`,size:r=`regular`,className:a}){let o=c(),s=(0,K.useCallback)(()=>{Ke(o,{prompt:e})},[o,e]);return(0,J.jsx)(i,{variant:n,size:r,leftIcon:(0,J.jsx)(ge,{}),onClick:s,className:a,children:t})}var pr=[{value:`today`,label:`Today`},{value:`yesterday`,label:`Yesterday`},{value:`7d`,label:`Last 7 days`},{value:`30d`,label:`Last 30 days`},{value:`90d`,label:`Last 90 days`},{value:`all`,label:`All time`}],mr=300*1e3,hr=[`Please load the llm-cost-optimizer skill.`,`Analyze my recent LLM usage and explain the biggest cost contributors by call site, model, and profile.`,`Check my current llm.default, llm.callSites, and llm.profiles.`,`Give me a concise summary of what is driving cost and what you would optimize first.`,`Do not change config yet.`].join(` `),gr=[`Please load the llm-cost-optimizer skill.`,`Analyze my recent LLM usage and current LLM config, then recommend the safest cost-optimization changes.`,`If changes are clearly safe, show me the exact config commands you would run and ask for confirmation before applying them.`].join(` `);function _r({assistantId:e}){let[t,n]=o(),{range:r,groupBy:i,scheduleId:a}=(0,K.useMemo)(()=>Zn(t),[t]),s=Ot(),c=(0,K.useCallback)(e=>{n(t=>$n(t,e),{replace:!0})},[n]),l=(0,K.useMemo)(()=>ur(r,s),[r,s]),d=(0,K.useMemo)(()=>dr(r),[r]),f=u({queryKey:Ne({path:{assistant_id:e}}),queryFn:()=>Ft(e),staleTime:1e4}),p=(0,K.useCallback)(e=>{c({range:e})},[c]),m=u({...Pe({path:{assistant_id:e},query:Fn({from:l.from,to:l.to,scheduleId:a})})}),h=u({queryKey:Oe({path:{assistant_id:e},query:Ln({from:l.from,to:l.to,groupBy:i,scheduleId:a})}),queryFn:async({signal:t})=>{try{let{data:n}=await De({path:{assistant_id:e},query:Ln({from:l.from,to:l.to,groupBy:i,scheduleId:a}),signal:t,throwOnError:!0});return{groupBy:i,response:n}}catch(n){if(!rr(i,n))throw n;let{data:r}=await De({path:{assistant_id:e},query:Ln({from:l.from,to:l.to,groupBy:Wn,scheduleId:a}),signal:t,throwOnError:!0});return{groupBy:Wn,response:r}}},retry:ir}),g=h.data?.groupBy??i,_=nr(g)?g:void 0,v=u({...Ae({path:{assistant_id:e},query:Rn({from:l.from,to:l.to,granularity:d,groupBy:_??`actor`,tz:s,scheduleId:a})}),enabled:!!_,retry:ir}),y=u({...ke({path:{assistant_id:e},query:In({from:l.from,to:l.to,granularity:d,tz:s,scheduleId:a})}),enabled:!_||v.isError}),b=u({...Me({path:{assistant_id:e}}),enabled:g===`task`,staleTime:1/0}),x=u({...je({path:{assistant_id:e}}),select:zt,enabled:g===`profile`,staleTime:mr}),S=(0,K.useMemo)(()=>({callSites:Kt(b.data),profiles:x.data??{}}),[b.data,x.data]),C=(0,K.useMemo)(()=>{let e=h.data;if(e)return tn(e.response.breakdown,e.groupBy,S)},[h.data,S]),w=(0,K.useMemo)(()=>{if(!(!_||!v.data))return ln(v.data.buckets,_,S)},[v.data,_,S]),T=(0,K.useMemo)(()=>{if(y.data)return cn(y.data.buckets)},[y.data]),E=(0,K.useMemo)(()=>_?v.error?T?{isLoading:!1,error:null,data:T,refetch:y.refetch}:{isLoading:y.isLoading||!T&&!y.error,error:y.error??v.error,data:void 0,refetch:y.error?y.refetch:v.refetch}:{isLoading:v.isLoading,error:v.error,data:w,refetch:v.refetch}:{isLoading:y.isLoading,error:y.error,data:T,refetch:y.refetch},[T,y.error,y.isLoading,y.refetch,w,_,v.error,v.isLoading,v.refetch]),D=sr({requestedGranularity:d,isLoading:E.isLoading,buckets:E.data}),O=D===`hourly`,k=_&&v.error?void 0:g,A=(0,K.useMemo)(()=>{if(!(g!==`schedule`||!a))return vr(f.data,a)},[g,a,f.data]);return(0,J.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,J.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[(0,J.jsx)(`h3`,{className:`text-title-small`,style:{color:`var(--content-default)`},children:`Usage`}),(0,J.jsx)(`div`,{className:`flex flex-wrap items-center justify-end gap-2`,children:(0,J.jsx)(xr,{range:r,onChange:p})})]}),(0,J.jsx)(`section`,{"aria-label":`Totals`,children:(0,J.jsx)(Cr,{query:m,skeleton:(0,J.jsx)(Er,{}),render:e=>(0,J.jsx)(wr,{totals:e})})}),(0,J.jsx)(Sr,{title:`Inference Usage`,children:(0,J.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,J.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[(0,J.jsx)(`h4`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:or(D,k)}),(0,J.jsx)(`div`,{className:`flex flex-wrap items-center justify-end gap-2`,children:(0,J.jsx)(Dr,{value:g,onChange:e=>{e===i&&g!==i&&(h.refetch(),v.refetch()),c({groupBy:e,scheduleId:e===`schedule`?void 0:null})}})})]}),(0,J.jsx)(Cr,{query:E,skeleton:(0,J.jsx)(kn,{isHourly:O}),render:e=>(0,J.jsx)(On,{buckets:e,isHourly:O,legendItems:A})})]})}),(0,J.jsx)(Or,{query:h,groups:C}),(0,J.jsx)(br,{})]})}function vr(e,t){let n=e??[];return[...n.some(e=>e.id===t)?[]:[{id:t,label:yr(t)}],...n.map(e=>({id:e.id,label:e.name||e.id}))].map((e,n)=>({seriesKey:on(e.id,`schedule`),label:e.label,colorIndex:n,state:e.id===t?`active`:`inactive`}))}function yr(e){return`Unknown schedule (${e})`}function br(){return(0,J.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,J.jsx)(`div`,{className:`h-px w-full`,style:{background:`linear-gradient(to right, transparent, var(--border-base), transparent)`}}),(0,J.jsx)(Sr,{title:`Cost assistant`,subtitle:`Review recent spend and tune model profile choices.`,children:(0,J.jsxs)(`div`,{className:`flex flex-col gap-2 rounded-md px-3 py-3 sm:flex-row sm:items-center`,children:[(0,J.jsx)(fr,{prompt:hr,children:`Analyze costs with assistant`}),(0,J.jsx)(fr,{prompt:gr,variant:`ghost`,children:`Optimize settings`})]})})]})}function xr({range:e,onChange:t}){return(0,J.jsx)(`div`,{className:`flex items-center`,children:(0,J.jsx)(Ee,{value:e,onChange:t,options:pr.map(e=>({value:e.value,label:e.label}))})})}function Sr({title:e,subtitle:t,children:n}){return(0,J.jsxs)(`section`,{className:`flex flex-col gap-3 rounded-md border px-4 py-4`,style:{background:`var(--surface-lift)`,borderColor:`var(--border-base)`},children:[(0,J.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,J.jsx)(`h3`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:e}),t?(0,J.jsx)(`p`,{className:`text-body-small-default`,style:{color:`var(--content-tertiary)`},children:t}):null]}),n]})}function Cr({query:e,skeleton:t,render:n}){return e.isLoading?(0,J.jsx)(J.Fragment,{children:t}):e.error?(0,J.jsx)(Nr,{message:e.error instanceof Error?e.error.message:`Failed to load usage.`,onRetry:()=>e.refetch()}):e.data?(0,J.jsx)(J.Fragment,{children:n(e.data)}):(0,J.jsx)(J.Fragment,{children:t})}function wr({totals:e}){return(0,J.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,J.jsxs)(`div`,{className:`flex flex-wrap items-baseline justify-between gap-4`,children:[(0,J.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,J.jsx)(`span`,{style:{fontSize:`30px`,fontWeight:600,lineHeight:1,color:`var(--content-default)`},children:qt(e.totalEstimatedCostUsd)}),(0,J.jsx)(`span`,{className:`text-body-small-default`,style:{color:`var(--content-secondary)`},children:`Cost`})]}),(0,J.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,J.jsx)(`span`,{className:`text-title-small`,style:{color:`var(--content-default)`},children:q(e.eventCount)}),(0,J.jsx)(`span`,{className:`text-body-small-default`,style:{color:`var(--content-secondary)`},children:`LLM Calls`})]})]}),(0,J.jsxs)(`div`,{className:`grid grid-cols-2 gap-3 sm:grid-cols-4`,children:[(0,J.jsx)(Tr,{label:`Direct Input Tokens`,value:q(e.totalInputTokens)}),(0,J.jsx)(Tr,{label:`Output Tokens`,value:q(e.totalOutputTokens)}),(0,J.jsx)(Tr,{label:`Cache Created`,value:q(e.totalCacheCreationTokens)}),(0,J.jsx)(Tr,{label:`Cache Read`,value:q(e.totalCacheReadTokens)})]})]})}function Tr({label:e,value:t}){return(0,J.jsxs)(`div`,{className:`flex flex-col gap-1 rounded-md px-3 py-2`,style:{background:`color-mix(in srgb, var(--border-base) 15%, transparent)`},children:[(0,J.jsx)(`span`,{className:`text-body-small-default`,style:{color:`var(--content-default)`},children:t}),(0,J.jsx)(`span`,{className:`text-label-medium-default`,style:{color:`var(--content-tertiary)`},children:e})]})}function Er(){return(0,J.jsxs)(`div`,{className:`flex flex-col gap-4`,"aria-hidden":`true`,children:[(0,J.jsxs)(`div`,{className:`flex flex-wrap items-baseline justify-between gap-4`,children:[(0,J.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,J.jsx)(Y,{width:140,height:30}),(0,J.jsx)(Y,{width:90,height:12})]}),(0,J.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,J.jsx)(Y,{width:60,height:16}),(0,J.jsx)(Y,{width:60,height:12})]})]}),(0,J.jsx)(`div`,{className:`grid grid-cols-2 gap-3 sm:grid-cols-4`,children:Array.from({length:4}).map((e,t)=>(0,J.jsxs)(`div`,{className:`flex flex-col gap-1 rounded-md px-3 py-2`,style:{background:`color-mix(in srgb, var(--border-base) 15%, transparent)`},children:[(0,J.jsx)(Y,{width:`50%`,height:12}),(0,J.jsx)(Y,{width:`70%`,height:11})]},t))})]})}function Dr({value:e,onChange:t}){return(0,J.jsx)(`div`,{className:`flex items-center`,children:(0,J.jsx)(Ee,{value:e,onChange:t,menuAlign:`end`,menuMinWidth:196,options:Xn.map(e=>({value:e.value,label:e.label}))})})}function Or({query:e,groups:t}){let[n,r]=(0,K.useState)(new Set),i=e=>{r(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})};return(0,J.jsx)(Sr,{title:`Breakdown`,children:(0,J.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,J.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,J.jsx)(kr,{label:`% of total`,active:n.has(`pct`),onClick:()=>i(`pct`)}),(0,J.jsx)(kr,{label:`Tokens`,active:n.has(`tokens`),onClick:()=>i(`tokens`)}),(0,J.jsx)(kr,{label:`Turns`,active:n.has(`turns`),onClick:()=>i(`turns`)})]}),(0,J.jsx)(Cr,{query:e,skeleton:(0,J.jsx)(jr,{}),render:e=>(0,J.jsx)(Ar,{groups:t??e.response.breakdown,groupBy:e.groupBy,showPct:n.has(`pct`),showTokens:n.has(`tokens`),showTurns:n.has(`turns`)})})]})})}function kr({label:e,active:t,onClick:n}){return(0,J.jsx)(`button`,{type:`button`,onClick:n,className:`rounded-full border px-2.5 py-1 text-label-medium-default`,style:{borderColor:t?`var(--content-secondary)`:`var(--border-base)`,background:t?`color-mix(in srgb, var(--content-secondary) 15%, transparent)`:`transparent`,color:t?`var(--content-default)`:`var(--content-tertiary)`},children:e})}function Ar({groups:e,groupBy:t,showPct:n,showTokens:r,showTurns:i}){let a=c();if(e.length===0)return(0,J.jsx)(Mr,{title:`No breakdown data`,subtitle:`No usage recorded for this grouping`});let o=e.reduce((e,t)=>e+t.totalEstimatedCostUsd,0);return(0,J.jsx)(`div`,{className:`overflow-hidden rounded-md`,children:(0,J.jsxs)(`table`,{className:`w-full table-fixed`,children:[(0,J.jsx)(`thead`,{children:(0,J.jsxs)(`tr`,{style:{borderBottom:`1px solid var(--border-base)`},children:[(0,J.jsx)(`th`,{className:`px-3 py-2.5 text-left text-label-medium-default`,style:{color:`var(--content-tertiary)`},children:`Group`}),r?(0,J.jsx)(`th`,{className:`px-3 py-2.5 text-left text-label-medium-default`,style:{color:`var(--content-tertiary)`,width:`35%`},children:`Tokens`}):null,i?(0,J.jsx)(`th`,{className:`px-3 py-2.5 text-right text-label-medium-default`,style:{color:`var(--content-tertiary)`,width:`72px`},children:`Turns`}):null,n?(0,J.jsx)(`th`,{className:`px-3 py-2.5 text-right text-label-medium-default`,style:{color:`var(--content-tertiary)`,width:`64px`},children:`%`}):null,(0,J.jsx)(`th`,{className:`px-3 py-2.5 text-right text-label-medium-default`,style:{color:`var(--content-tertiary)`,width:`100px`},children:`Cost`})]})}),(0,J.jsx)(`tbody`,{children:e.map((e,c)=>{let l=Bn(e),u=Hn(e),d=t===`conversation`?e.groupId:null,f=o>0?Math.round(e.totalEstimatedCostUsd/o*100):0;return(0,J.jsxs)(`tr`,{className:d?`cursor-pointer hover:bg-[var(--surface-hover)]`:void 0,onClick:d?e=>{e.target.closest(`a`)||qe(a,d)}:void 0,style:{borderTop:c===0?`none`:`1px solid var(--border-base)`},children:[(0,J.jsx)(`td`,{className:`min-w-0 px-3 py-2`,style:{color:`var(--content-default)`},children:d?(0,J.jsx)(s,{to:Be.conversation(d),className:`block truncate text-body-medium-lighter`,title:e.group,onClick:e=>{Pt(e)||(e.preventDefault(),qe(a,d))},children:e.group}):(0,J.jsx)(`span`,{className:`block truncate text-body-medium-lighter`,title:e.group,children:e.group})}),r?(0,J.jsx)(`td`,{className:`min-w-0 px-3 py-2`,style:{color:`var(--content-secondary)`},children:(0,J.jsx)(`span`,{className:`block truncate text-body-small-default`,title:l,children:u})}):null,i?(0,J.jsx)(`td`,{className:`whitespace-nowrap px-3 py-2 text-right`,children:(0,J.jsx)(`span`,{className:`text-body-small-default`,style:{color:`var(--content-tertiary)`},children:e.turnCount==null?`—`:e.turnCount.toLocaleString()})}):null,n?(0,J.jsx)(`td`,{className:`whitespace-nowrap px-3 py-2 text-right`,children:(0,J.jsxs)(`span`,{className:`text-body-small-default`,style:{color:`var(--content-tertiary)`},children:[f,`%`]})}):null,(0,J.jsx)(`td`,{className:`whitespace-nowrap px-3 py-2 text-right`,children:(0,J.jsx)(`span`,{className:`text-body-medium-lighter`,style:{color:`var(--content-default)`},children:qt(e.totalEstimatedCostUsd)})})]},e.groupKey??e.groupId??`${e.group}-${c}`)})})]})})}function jr(){return(0,J.jsx)(`div`,{className:`flex flex-col gap-2`,"aria-hidden":`true`,children:Array.from({length:4}).map((e,t)=>(0,J.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,J.jsx)(Y,{width:100,height:14}),(0,J.jsx)(Y,{width:`60%`,height:12}),(0,J.jsx)(Y,{width:50,height:14})]},t))})}function Y({width:e,height:t}){return(0,J.jsx)(`div`,{className:`rounded-sm`,style:{width:typeof e==`number`?`${e}px`:e,height:`${t}px`,background:`color-mix(in srgb, var(--border-base) 40%, transparent)`}})}function Mr({title:e,subtitle:t}){return(0,J.jsxs)(`div`,{className:`flex flex-col items-center gap-1 py-8 text-center`,children:[(0,J.jsx)(`span`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:e}),(0,J.jsx)(`span`,{className:`text-body-small-default`,style:{color:`var(--content-tertiary)`},children:t})]})}function Nr({message:e,onRetry:t}){return(0,J.jsxs)(`div`,{className:`flex flex-col gap-2 py-2`,children:[(0,J.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,J.jsx)(_e,{className:`h-4 w-4 shrink-0`,style:{color:`var(--system-negative-strong, #f87171)`}}),(0,J.jsx)(`span`,{className:`text-body-medium-lighter`,style:{color:`var(--content-default)`},children:e})]}),t?(0,J.jsx)(`button`,{type:`button`,onClick:t,className:`self-start rounded-md border px-3 py-1 text-body-small-default`,style:{background:`var(--surface-lift)`,borderColor:`var(--border-base)`,color:`var(--content-default)`},children:`Retry`}):null]})}function Pr({open:e,onCancel:t,onConfirm:n,confirming:r,lostFeatures:a}){return(0,J.jsx)(U.Root,{open:e,onOpenChange:e=>{!e&&!r&&t()},children:(0,J.jsxs)(U.Content,{size:`md`,hideCloseButton:!0,children:[(0,J.jsx)(U.Header,{children:(0,J.jsx)(U.Title,{icon:_e,children:`Downgrade to Base?`})}),(0,J.jsxs)(U.Body,{children:[(0,J.jsx)(p,{as:`p`,variant:`body-medium-default`,className:`text-(--content-secondary)`,children:`Downgrading removes the following Pro features:`}),(0,J.jsx)(`ul`,{className:`mt-4 list-disc space-y-2 pl-5`,children:a.map(e=>(0,J.jsx)(`li`,{children:(0,J.jsx)(p,{as:`span`,variant:`body-medium-default`,children:e})},e))})]}),(0,J.jsxs)(U.Footer,{children:[(0,J.jsx)(i,{variant:`outlined`,onClick:t,disabled:r,children:`Keep Pro`}),(0,J.jsx)(i,{variant:`danger`,onClick:n,disabled:r,"data-testid":`confirm-downgrade-button`,children:`Confirm Downgrade`})]})]})})}var Fr=`__none__`;function Ir(e){return`${e.label} — ${B(e.price_cents)}`}function Lr({creditTiers:e,selectedCreditTier:t,onCreditTierChange:n,disabled:r=!1}){let i=(0,K.useMemo)(()=>[{value:Fr,label:`No credit bundle — ${B(0)}`},...e.map(e=>({value:e.tier,label:Ir(e)}))],[e]);return(0,J.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,J.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,J.jsx)(p,{as:`p`,variant:`label-small-default`,className:`text-[var(--content-secondary)]`,children:`Credit bundle`}),(0,J.jsx)(`span`,{title:`A monthly allotment of credits added to your Pro Plan subscription`,children:(0,J.jsx)(he,{className:`h-3 w-3 text-[var(--content-tertiary)]`})})]}),(0,J.jsx)(Ee,{"aria-label":`Credit bundle`,placeholder:`Select a credit bundle`,disabled:r,value:t??Fr,onChange:e=>n(e===Fr?null:e),options:i})]})}function Rr({features:e,variant:t,header:n,maxInline:r=3}){return t===`inline`?(0,J.jsx)(J.Fragment,{children:e.slice(0,r).join(`, `)}):(0,J.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[n&&(0,J.jsx)(p,{as:`p`,variant:`body-small-default`,className:`text-[var(--content-secondary)]`,children:n}),(0,J.jsx)(`ul`,{className:`flex flex-col gap-2`,children:e.map(e=>(0,J.jsxs)(`li`,{className:`flex items-start gap-2`,children:[(0,J.jsx)(b,{className:`mt-0.5 h-4 w-4 shrink-0 text-[var(--content-tertiary)]`,"aria-hidden":!0}),(0,J.jsx)(p,{as:`span`,variant:`body-medium-default`,children:e})]},e))})]})}function zr({plan:e,isCurrent:t,onPro:n,cancelAtPeriodEnd:r,isCanceled:a,cancelDate:o,formatGraceDate:s,proTierChangeMode:c,creditTiersEnabled:l,creditTiers:u,displayCreditTier:d,onCreditTierChange:f,selectedMachineTier:h,selectedStorageTier:g,onMachineTierChange:_,onStorageTierChange:v,machineTiersForPicker:y,storageTiersForPicker:b,currentMachinePrice:x,currentStoragePrice:S,currentCreditPriceUnknown:C,proCurrentTotalCents:w,proLiveTotalCents:T,proTotalDelta:E,onboardingLoading:D,tierChangePending:O,machineChanged:k,storageChanged:A,creditChanged:M,tierChangeError:N,upgradePending:ee,portalPending:P,onUpgrade:I,onApplyTierChange:te,onDowngradeClick:ne,onKeepPlan:re}){let L=e.id===`pro`,R=e.id===`base`,ie=L&&n&&r&&!a,ae=L&&(!t||t&&c),oe=L&&t&&c;return(0,J.jsx)(m.Root,{className:`flex flex-col bg-[var(--surface-base)]`,children:(0,J.jsxs)(m.Body,{padding:`lg`,className:`max-sm:p-4`,children:[(0,J.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,J.jsx)(`span`,{"aria-hidden":!0,className:`flex h-9 w-9 items-center justify-center rounded-lg border border-[var(--border-base)] bg-[var(--surface-lift)]`,children:L?(0,J.jsx)(Vt,{className:`h-5 w-5 text-[var(--content-default)]`}):(0,J.jsx)(Ut,{className:`h-5 w-5 text-[var(--content-default)]`})}),(0,J.jsxs)(`div`,{className:`flex min-h-6 items-center gap-2`,children:[(0,J.jsx)(p,{as:`h3`,variant:`title-small`,children:e.name}),t&&(0,J.jsx)(Se,{tone:`positive`,children:`Current`})]}),(0,J.jsx)(p,{as:`p`,variant:`body-small-default`,className:`-mt-2 text-[var(--content-tertiary)]`,children:R?`All you need for a capable assistant`:`More features, more compute, more storage`}),ie&&o&&(0,J.jsxs)(p,{as:`p`,variant:`body-small-default`,className:`text-[var(--system-mid-strong)]`,"data-testid":`modal-cancels-on`,children:[`Your plan ends on `,s(o)]}),(0,J.jsx)(`hr`,{className:`border-t border-[var(--border-base)]`}),(0,J.jsx)(`div`,{className:`flex flex-col gap-1`,children:R?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(p,{as:`p`,variant:`title-medium`,children:`Free`}),(0,J.jsx)(p,{as:`p`,variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,children:`Forever`})]}):t&&!(ae&&T!=null)&&(w==null||C)?D?(0,J.jsxs)(`div`,{className:`flex items-center gap-2 text-[var(--content-tertiary)]`,children:[(0,J.jsx)(V,{className:`h-4 w-4 animate-spin`}),(0,J.jsx)(p,{as:`span`,variant:`body-medium-lighter`,children:`Loading your plan...`})]}):(0,J.jsx)(p,{as:`p`,variant:`body-medium-lighter`,className:`text-[var(--content-tertiary)]`,"data-testid":`modal-pro-price-unavailable`,children:`Current plan pricing unavailable`}):(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,J.jsx)(p,{as:`p`,variant:`title-medium`,"data-testid":`modal-pro-price`,children:ae&&T!=null?(0,J.jsxs)(J.Fragment,{children:[B(T),E!=null&&E!==0&&(0,J.jsxs)(`span`,{className:`ml-1 text-[var(--content-tertiary)]`,children:[`(`,le(E),`)`]})]}):w==null?e.id===`pro`?`From ${B(e.base_price_cents+F(e.machine_tiers)+F(e.storage_tiers))}`:null:`Currently ${B(w)}`}),ae&&E!=null&&E!==0&&(0,J.jsx)(`span`,{title:`Your Pro Plan subscription will change from ${B(w)} to ${B(T)}.`,children:(0,J.jsx)(he,{className:`h-3 w-3 text-[var(--content-tertiary)]`})})]}),e.id===`pro`&&(0,J.jsxs)(p,{as:`p`,variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,"data-testid":`modal-pro-base-fee`,children:[j(e.base_price_cents),` base fee`]})]})}),(0,J.jsx)(Rr,{features:e.included_features,variant:`checklist`}),L&&!l&&(0,J.jsx)(p,{as:`p`,variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,"data-testid":`modal-credits-not-included`,children:`*Credits not included`})]}),(0,J.jsxs)(`div`,{className:`mt-4 flex flex-1 flex-col justify-end gap-4`,children:[!t&&L&&(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`hr`,{className:`border-t border-[var(--border-base)]`}),l&&(0,J.jsx)(Lr,{creditTiers:u,selectedCreditTier:d,onCreditTierChange:f,disabled:ee}),(0,J.jsx)(se,{machineTiers:y,storageTiers:b,selectedMachineTier:h,selectedStorageTier:g,onMachineTierChange:_,onStorageTierChange:v}),(0,J.jsx)(i,{variant:`primary`,className:`w-full`,onClick:I,disabled:ee||!h||!g,"data-testid":`modal-upgrade-to-pro-button`,children:`Upgrade to Pro`})]}),oe&&(D?(0,J.jsxs)(`div`,{className:`flex items-center gap-2 text-[var(--content-tertiary)]`,children:[(0,J.jsx)(V,{className:`h-4 w-4 animate-spin`}),(0,J.jsx)(p,{as:`span`,variant:`body-medium-lighter`,children:`Loading your plan...`})]}):(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`hr`,{className:`border-t border-[var(--border-base)]`}),l&&(0,J.jsx)(Lr,{creditTiers:u,selectedCreditTier:d,onCreditTierChange:f,disabled:O}),(0,J.jsx)(se,{machineTiers:y,storageTiers:b,selectedMachineTier:h,selectedStorageTier:g,onMachineTierChange:_,onStorageTierChange:v,currentMachinePriceCents:x,currentStoragePriceCents:S}),N&&(0,J.jsx)(H,{tone:`error`,children:N}),(0,J.jsx)(i,{variant:`primary`,className:`w-full`,onClick:te,disabled:O||!k&&!A&&!M,"data-testid":`modal-change-tier-button`,children:`Update Plan`})]})),!t&&R&&n&&!r&&(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`hr`,{className:`border-t border-[var(--border-base)]`}),(0,J.jsx)(i,{variant:`outlined`,className:`w-full`,onClick:ne,disabled:P,"data-testid":`modal-downgrade-to-base-button`,children:`Downgrade to Base`})]}),ie&&(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`hr`,{className:`border-t border-[var(--border-base)]`}),(0,J.jsx)(i,{variant:`outlined`,className:`w-full`,onClick:re,disabled:P,"data-testid":`modal-keep-plan-button`,children:`Keep your Plan`})]})]})]})})}function Br({open:e,onClose:t,onTierUpgraded:n}){let r=l(),a=u(Xe()),o=u(yt()),s=d(pt()),c=d(bt()),f=d(vt()),m=d(wt()),h=w(O(o.data)),[_,v]=(0,K.useState)(`plans`),[y,b]=(0,K.useState)(!1),[x,S]=(0,K.useState)(null),[C,T]=(0,K.useState)(null),[E,D]=(0,K.useState)(void 0);(0,K.useEffect)(()=>Ge(()=>{r.invalidateQueries({queryKey:Tt()}),r.invalidateQueries({queryKey:mt()}),r.invalidateQueries({queryKey:ft()}),t()}),[r,t]);let j=o.data?.plan_id,M=j===`pro`,N=u({...Ct(),enabled:M}),F=N.data?.max_machine_tier??null,I=N.data?.selected_storage_tier??null,te=N.data?.selected_storage_gib??null,ne=o.data?.cancel_at_period_end===!0||!!o.data?.cancel_at,re=o.data?.status===`canceled`,L=k(o.data),R=o.data?.status,ae=R!=null&&ee.has(R),oe=M&&ae&&!ne&&!re,z=a.data?.plans.find(e=>e.id===`pro`),se=z?.credit_tiers??[],B=se.length>0,le=o.data?.selected_credit_tier??null,ue=e=>se.find(t=>t.tier===e)?.price_cents??0,de=ue(le),fe=le!=null&&!se.some(e=>e.tier===le),pe=E===void 0?le:E,me=ue(pe),he=z?.machine_tiers??[],ge=oe&&te!=null?(z?.storage_tiers??[]).map(e=>e.storage_gib<te?{...e,disabled:!0}:e):z?.storage_tiers??[];(0,K.useEffect)(()=>{if(!e){S(null),T(null),D(void 0);return}if(z){if(oe){if(F==null||I==null)return;S(e=>A(he,e??F)),T(e=>A(ge,e??I)),D(e=>P(se,e,le));return}S(e=>A(z.machine_tiers,e)),T(e=>A(z.storage_tiers,e)),D(e=>P(se,e,null))}},[e,z,oe,F,I,le]);let ve=a.data?.plans.find(e=>e.id===`base`),ye=new Set(ve?.included_features??[]),be=(z?.included_features??[]).filter(e=>!ye.has(e)),xe=()=>{if(!s.isPending){if(!x||!C){W.error(`Pick a machine and storage tier to continue.`,{id:`pro-upgrade-error`});return}s.mutate({body:{target_plan_id:`pro`,confirm:!0,machine_tier:x,storage_tier:C,credit_tier:pe,return_target:Bt()}},{onSuccess:e=>{if(e.checkout_url){ze({kind:`custom`,machineTier:x,storageTier:C,creditTier:pe}),We(e.checkout_url);return}if(e.status===`no_op`){W.info(`You're already on Pro.`,{id:`pro-upgrade`}),t();return}W.error(e.message??`Failed to start upgrade. Please try again.`,{id:`pro-upgrade-error`})},onError:e=>{W.error(ie(e,`Failed to start upgrade. Please try again.`),{id:`pro-upgrade-error`})}})}},Se=()=>{h.isPending||(v(`plans`),h.mutate({}))},Ce=()=>{r.invalidateQueries({queryKey:Tt()}),r.invalidateQueries({queryKey:ft()}),r.invalidateQueries({queryKey:mt()})},we=c.isPending||f.isPending||m.isPending,Te=x!=null&&x!==F,Ee=C!=null&&C!==I,De=B&&E!==void 0&&E!==le,Oe=e=>he.find(t=>t.tier===e)?.price_cents??null,ke=e=>ge.find(t=>t.tier===e)?.price_cents??null,Ae=Oe(x),je=ke(C),Me=Oe(F),Ne=ke(I),Pe=Te&&Ae!=null&&Me!=null&&Ae<Me,Fe=()=>{if(we)return;let e=[];Te&&x&&e.push(new Promise(e=>{c.mutate({body:{machine_tier:x}},{onSuccess:()=>e({dimension:`machine`,ok:!0}),onError:t=>e({dimension:`machine`,ok:!1,error:t})})})),Ee&&C&&e.push(new Promise(e=>{f.mutate({body:{storage_tier:C}},{onSuccess:()=>e({dimension:`storage`,ok:!0}),onError:t=>e({dimension:`storage`,ok:!1,error:t})})})),De&&e.push(new Promise(e=>{m.mutate({body:{credit_tier:pe}},{onSuccess:()=>e({dimension:`credit`,ok:!0}),onError:t=>e({dimension:`credit`,ok:!1,error:t})})})),Promise.all(e).then(e=>{Ce();let r=e.some(e=>e.ok&&e.dimension===`storage`),i=e.some(e=>e.ok&&e.dimension===`machine`)&&!Pe,a=(r||i)&&!!n,o=e.filter(e=>!e.ok);if(o.length>0){let e=o.map(e=>ie(e.error,`Failed to update ${e.dimension} tier.`)).join(` `);W.error(e,{id:`pro-tier-change-error`}),a&&(t(),n());return}a?(t(),n()):W.success(De&&!Te&&!Ee?`Credit bundle updated.`:`Plan updated.`,{id:`pro-tier-change`})})},Ie=()=>{if(!we){if(Pe){b(!0);return}Fe()}},Le=()=>{b(!1),Fe()},Re=e=>Ae!=null&&je!=null?e.base_price_cents+Ae+je+me:null,Be=e=>Me!=null&&Ne!=null?e.base_price_cents+Me+Ne+de:null,G=c.isError||f.isError||m.isError?ie(c.error??f.error??m.error,`Failed to update plan. Please try again.`):null,Ve=a.isLoading||o.isLoading,He=a.isError||o.isError||!a.data||!o.data;return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(U.Root,{open:e,onOpenChange:e=>{e||(v(`plans`),t())},children:(0,J.jsx)(U.Content,{size:_===`plans`?`lg`:`md`,children:_===`downgrade-confirm`?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(U.Header,{children:(0,J.jsx)(U.Title,{icon:_e,children:`Downgrade to Base?`})}),(0,J.jsxs)(U.Body,{children:[(0,J.jsx)(p,{as:`p`,variant:`body-medium-default`,className:`text-(--content-secondary)`,children:`Downgrading removes the following Pro features:`}),(0,J.jsx)(`ul`,{className:`mt-4 list-disc space-y-2 pl-5`,children:be.map(e=>(0,J.jsx)(`li`,{children:(0,J.jsx)(p,{as:`span`,variant:`body-medium-default`,children:e})},e))})]}),(0,J.jsxs)(U.Footer,{children:[(0,J.jsx)(i,{variant:`ghost`,onClick:()=>v(`plans`),disabled:h.isPending,leftIcon:(0,J.jsx)(g,{className:`h-4 w-4`}),children:`Back`}),(0,J.jsx)(i,{variant:`danger`,onClick:Se,disabled:h.isPending,"data-testid":`confirm-downgrade-button`,children:`Confirm Downgrade`})]})]}):(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(U.Header,{children:(0,J.jsx)(U.Title,{className:`sr-only`,children:`Upgrade Plan`})}),(0,J.jsx)(U.Body,{children:Ve?(0,J.jsxs)(`div`,{className:`flex items-center gap-2 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,J.jsx)(V,{className:`h-4 w-4 animate-spin`}),(0,J.jsx)(p,{as:`span`,variant:`body-medium-lighter`,children:`Loading plans...`})]}):He?(0,J.jsx)(H,{tone:`error`,children:`Failed to load plans. Please try again later.`}):(0,J.jsxs)(`div`,{className:`space-y-4 sm:space-y-6`,children:[(0,J.jsxs)(`div`,{className:`space-y-2 pb-2 pt-4 text-center`,children:[(0,J.jsx)(p,{as:`p`,variant:`title-medium`,children:`Your Assistant, Your Way`}),(0,J.jsx)(p,{as:`p`,variant:`body-medium-lighter`,className:`text-[var(--content-secondary)]`,children:`Choose the plan that works best for you and your assistant.`})]}),(0,J.jsx)(`div`,{className:`grid grid-cols-1 gap-4 md:grid-cols-2`,children:a.data.plans.map(e=>{let t=e.id===j,n=e.id===`pro`&&z?Re(z):null,r=e.id===`pro`&&z?Be(z):null;return(0,J.jsx)(zr,{plan:e,isCurrent:t,onPro:M,cancelAtPeriodEnd:ne,isCanceled:re,cancelDate:L,formatGraceDate:ce,proTierChangeMode:oe,creditTiersEnabled:B,creditTiers:se,displayCreditTier:pe,onCreditTierChange:D,selectedMachineTier:x,selectedStorageTier:C,onMachineTierChange:S,onStorageTierChange:T,machineTiersForPicker:he,storageTiersForPicker:ge,currentMachinePrice:Me,currentStoragePrice:Ne,currentCreditPriceUnknown:fe,proCurrentTotalCents:r,proLiveTotalCents:n,proTotalDelta:n!=null&&r!=null?n-r:null,onboardingLoading:N.isLoading,tierChangePending:we,machineChanged:Te,storageChanged:Ee,creditChanged:De,tierChangeError:G,upgradePending:s.isPending,portalPending:h.isPending,onUpgrade:xe,onApplyTierChange:Ie,onDowngradeClick:()=>v(`downgrade-confirm`),onKeepPlan:()=>h.mutate({})},e.id)})})]})}),(0,J.jsxs)(U.Footer,{className:`relative items-center`,children:[(0,J.jsx)(p,{as:`p`,variant:`body-small-default`,className:`pointer-events-none absolute inset-x-0 text-center text-[var(--content-tertiary)]`,children:(0,J.jsx)(`span`,{className:`pointer-events-auto`,children:`You can change or cancel your plan at any time from billing settings.`})}),(0,J.jsx)(`div`,{className:`ml-auto`,children:(0,J.jsx)(i,{variant:`outlined`,onClick:t,"data-testid":`modal-cancel-button`,children:`Cancel`})})]})]})})}),(0,J.jsx)(Pr,{open:y,onCancel:()=>b(!1),onConfirm:Le,confirming:we,lostFeatures:[`Reduced CPU and memory for your assistant — it will resize to the smaller compute profile.`]})]})}function Vr({open:e,confirming:t,onCancel:n,onConfirm:r}){return(0,J.jsx)(Te,{open:e,title:`Disable automatic top-ups?`,message:`Auto top-ups will stop. Any saved payment method stays on file.`,confirmLabel:t?`Disabling…`:`Disable`,cancelLabel:`Keep enabled`,destructive:!0,onConfirm:r,onCancel:n})}var Hr={threshold_usd:`100`,amount_usd:`10`,monthly_cap_usd:``};function Ur(e){if(e===``||e===`-`)return e;let t=parseFloat(e);return Number.isFinite(t)?String(Math.trunc(t)):``}function Wr(e){let t={},n=parseFloat(e.threshold_usd),r=parseFloat(e.amount_usd);if((!Number.isFinite(r)||r<10||r>500)&&(t.amount_usd=`Must be between $10 and $500`),(!Number.isFinite(n)||n<1||n>100)&&(t.threshold_usd=`Must be between $1 and $100`),e.monthly_cap_usd!==``){let n=parseFloat(e.monthly_cap_usd);!Number.isFinite(n)||n<25||n>1e4?t.monthly_cap_usd=`Must be between $25 and $10,000`:Number.isFinite(r)&&n<r&&(t.monthly_cap_usd=`Must be at least the top-up amount`)}return t}function Gr(e,t,n,r){if(n[e])return n[e];if(r)return t[e]}function Kr({initialValues:e=Hr,submitting:t,serverErrors:n,onSave:r,onCancel:a}){let[o,s]=(0,K.useState)(e),[c,l]=(0,K.useState)({threshold_usd:!1,amount_usd:!1,monthly_cap_usd:!1}),u=Wr(o),d=e=>t=>{s(n=>({...n,[e]:t.target.value}))},f=e=>()=>{l(t=>({...t,[e]:!0})),s(t=>({...t,[e]:Ur(t[e])}))},p=e=>Gr(e,u,n,c[e]);return(0,J.jsx)(`div`,{className:`mt-4`,children:(0,J.jsxs)(`div`,{className:`flex flex-wrap items-start gap-3`,children:[(0,J.jsx)(`div`,{className:`min-w-[10rem] flex-1`,children:(0,J.jsx)(Ce,{type:`number`,step:`1`,label:`Auto-reload when balance below`,value:o.threshold_usd,onChange:d(`threshold_usd`),onBlur:f(`threshold_usd`),errorText:p(`threshold_usd`),"data-testid":`auto-top-up-threshold-input`,fullWidth:!0})}),(0,J.jsx)(`div`,{className:`min-w-[10rem] flex-1`,children:(0,J.jsx)(Ce,{type:`number`,step:`1`,label:`Auto-reload amount`,value:o.amount_usd,onChange:d(`amount_usd`),onBlur:f(`amount_usd`),errorText:p(`amount_usd`),"data-testid":`auto-top-up-amount-input`,fullWidth:!0})}),(0,J.jsx)(`div`,{className:`min-w-[10rem] flex-1`,children:(0,J.jsx)(Ce,{type:`number`,step:`1`,label:`Monthly spending cap`,helperText:`Pauses auto top-ups for the rest of the month once spending reaches this amount. Manual purchases also count toward the total. Leave empty for no limit.`,value:o.monthly_cap_usd,onChange:d(`monthly_cap_usd`),onBlur:f(`monthly_cap_usd`),errorText:p(`monthly_cap_usd`),"data-testid":`auto-top-up-cap-input`,fullWidth:!0})}),(0,J.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 pt-[18px]`,children:[(0,J.jsx)(i,{variant:`outlined`,onClick:a,disabled:t,children:`Cancel`}),(0,J.jsx)(i,{variant:`primary`,onClick:()=>{l({threshold_usd:!0,amount_usd:!0,monthly_cap_usd:!0});let e={threshold_usd:Ur(o.threshold_usd),amount_usd:Ur(o.amount_usd),monthly_cap_usd:Ur(o.monthly_cap_usd)};s(e);let t=Wr(e);if(Object.keys(t).length!==0)return;let n=e=>e===``?``:`${parseInt(e,10)}.00`;r({threshold_usd:n(e.threshold_usd),amount_usd:n(e.amount_usd),monthly_cap_usd:e.monthly_cap_usd===``?``:n(e.monthly_cap_usd)})},disabled:t,"data-testid":`auto-top-up-save-button`,children:`Save`})]})]})})}var qr=t(((e,t)=>{t.exports=`SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED`})),Jr=t(((e,t)=>{var n=qr();function r(){}function i(){}i.resetWarningCache=r,t.exports=function(){function e(e,t,r,i,a,o){if(o!==n){var s=Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name=`Invariant Violation`,s}}e.isRequired=e;function t(){return e}var a={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:i,resetWarningCache:r};return a.PropTypes=a,a}})),X=e(t(((e,t)=>{t.exports=Jr()()}))(),1);function Yr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Xr(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?Yr(Object(n),!0).forEach(function(t){Qr(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Yr(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Zr(e){"@babel/helpers - typeof";return Zr=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},Zr(e)}function Qr(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function $r(e,t){if(e==null)return{};var n={},r=Object.keys(e),i,a;for(a=0;a<r.length;a++)i=r[a],!(t.indexOf(i)>=0)&&(n[i]=e[i]);return n}function ei(e,t){if(e==null)return{};var n=$r(e,t),r,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)r=a[i],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function ti(e,t){return ni(e)||ri(e,t)||ii(e,t)||oi()}function ni(e){if(Array.isArray(e))return e}function ri(e,t){var n=e&&(typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`]);if(n!=null){var r=[],i=!0,a=!1,o,s;try{for(n=n.call(e);!(i=(o=n.next()).done)&&(r.push(o.value),!(t&&r.length===t));i=!0);}catch(e){a=!0,s=e}finally{try{!i&&n.return!=null&&n.return()}finally{if(a)throw s}}return r}}function ii(e,t){if(e){if(typeof e==`string`)return ai(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`)return Array.from(e);if(n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ai(e,t)}}function ai(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function oi(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
3
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var Z=function(e,t,n){var r=!!n,i=K.useRef(n);K.useEffect(function(){i.current=n},[n]),K.useEffect(function(){if(!r||!e)return function(){};var n=function(){i.current&&i.current.apply(i,arguments)};return e.on(t,n),function(){e.off(t,n)}},[r,t,e,i])},si=function(e){var t=K.useRef(e);return K.useEffect(function(){t.current=e},[e]),t.current},ci=function(e){return e!==null&&Zr(e)===`object`},li=function(e){return ci(e)&&typeof e.then==`function`},ui=function(e){return ci(e)&&typeof e.elements==`function`&&typeof e.createToken==`function`&&typeof e.createPaymentMethod==`function`&&typeof e.confirmCardPayment==`function`},di=`[object Object]`,fi=function e(t,n){if(!ci(t)||!ci(n))return t===n;var r=Array.isArray(t);if(r!==Array.isArray(n))return!1;var i=Object.prototype.toString.call(t)===di;if(i!==(Object.prototype.toString.call(n)===di))return!1;if(!i&&!r)return t===n;var a=Object.keys(t),o=Object.keys(n);if(a.length!==o.length)return!1;for(var s={},c=0;c<a.length;c+=1)s[a[c]]=!0;for(var l=0;l<o.length;l+=1)s[o[l]]=!0;var u=Object.keys(s);if(u.length!==a.length)return!1;var d=t,f=n;return u.every(function(t){return e(d[t],f[t])})},pi=function(e,t,n){return ci(e)?Object.keys(e).reduce(function(r,i){var a=!ci(t)||!fi(e[i],t[i]);return n.includes(i)?(a&&console.warn(`Unsupported prop change: options.${i} is not a mutable property.`),r):a?Xr(Xr({},r||{}),{},Qr({},i,e[i])):r},null):null},mi="Invalid prop `stripe` supplied to `Elements`. We recommend using the `loadStripe` utility from `@stripe/stripe-js`. See https://stripe.com/docs/stripe-js/react#elements-props-stripe for details.",hi=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:mi;if(e===null||ui(e))return e;throw Error(t)},gi=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:mi;if(li(e))return{tag:`async`,stripePromise:Promise.resolve(e).then(function(e){return hi(e,t)})};var n=hi(e,t);return n===null?{tag:`empty`}:{tag:`sync`,stripe:n}},_i=function(e){!e||!e._registerWrapper||!e.registerAppInfo||(e._registerWrapper({name:`react-stripe-js`,version:`6.4.0`}),e.registerAppInfo({name:`react-stripe-js`,version:`6.4.0`,url:`https://stripe.com/docs/stripe-js/react`}))},vi=K.createContext(null);vi.displayName=`ElementsContext`;var yi=function(e,t){if(!e)throw Error(`Could not find Elements context; You need to wrap the part of your app that ${t} in an <Elements> provider.`);return e},bi=function(e){var t=e.stripe,n=e.options,r=e.children,i=K.useMemo(function(){return gi(t)},[t]),a=ti(K.useState(function(){return{stripe:i.tag===`sync`?i.stripe:null,elements:i.tag===`sync`?i.stripe.elements(n):null}}),2),o=a[0],s=a[1];K.useEffect(function(){var e=!0,t=function(e){s(function(t){return t.stripe?t:{stripe:e,elements:e.elements(n)}})};return i.tag===`async`&&!o.stripe?i.stripePromise.then(function(n){n&&e&&t(n)}):i.tag===`sync`&&!o.stripe&&t(i.stripe),function(){e=!1}},[i,o,n]);var c=si(t);K.useEffect(function(){c!==null&&c!==t&&console.warn("Unsupported prop change on Elements: You cannot change the `stripe` prop after setting it.")},[c,t]);var l=si(n);return K.useEffect(function(){if(o.elements){var e=pi(n,l,[`clientSecret`,`fonts`]);e&&o.elements.update(e)}},[n,l,o.elements]),K.useEffect(function(){_i(o.stripe)},[o.stripe]),K.createElement(vi.Provider,{value:o},r)};bi.propTypes={stripe:X.default.any,options:X.default.object};var xi=function(e){return yi(K.useContext(vi),e)},Si=function(e){var t=e.children;return t(xi(`mounts <ElementsConsumer>`))};Si.propTypes={children:X.default.func.isRequired};var Ci=K.createContext(null);Ci.displayName=`CheckoutContext`;var wi=function(e){var t=K.useContext(Ci),n=K.useContext(vi);if(t){if(n)throw Error(`You cannot wrap the part of your app that ${e} in both a checkout provider and <Elements> provider.`);return t}else return yi(n,e)},Ti=[`mode`],Ei=function(e){return e.charAt(0).toUpperCase()+e.slice(1)},Q=function(e,t,n){var r=`${Ei(e)}Element`,i=t?function(e){wi(`mounts <${r}>`);var t=e.id,n=e.className;return K.createElement(`div`,{id:t,className:n})}:function(t){var n=t.id,i=t.className,a=t.options,o=a===void 0?{}:a,s=t.onBlur,c=t.onFocus,l=t.onReady,u=t.onChange,d=t.onEscape,f=t.onClick,p=t.onLoadError,m=t.onLoaderStart,h=t.onNetworksChange,g=t.onConfirm,_=t.onCancel,v=t.onShippingAddressChange,y=t.onShippingRateChange,b=t.onSavedPaymentMethodRemove,x=t.onSavedPaymentMethodUpdate,S=t.onAvailablePaymentMethodsChange,C=wi(`mounts <${r}>`),w=`elements`in C?C.elements:null,T=`checkoutState`in C?C.checkoutState:null,E=T?.type===`success`||T?.type===`loading`?T.sdk:null,D=ti(K.useState(null),2),O=D[0],k=D[1],A=K.useRef(null),j=K.useRef(null);Z(O,`blur`,s),Z(O,`focus`,c),Z(O,`escape`,d),Z(O,`click`,f),Z(O,`loaderror`,p),Z(O,`loaderstart`,m),Z(O,`networkschange`,h),Z(O,`confirm`,g),Z(O,`cancel`,_),Z(O,`shippingaddresschange`,v),Z(O,`shippingratechange`,y),Z(O,`savedpaymentmethodremove`,b),Z(O,`savedpaymentmethodupdate`,x),Z(O,`availablepaymentmethodschange`,S),Z(O,`change`,u);var M;l&&(M=e===`expressCheckout`?l:function(){l(O)}),Z(O,`ready`,M),K.useLayoutEffect(function(){if(A.current===null&&j.current!==null&&(w||E)){var t=null;if(E){var n=E,i=E;switch(e){case`paymentForm`:t=i.createForm(o);break;case`payment`:t=n.createPaymentElement(o);break;case`address`:if(`mode`in o){var a=o.mode,s=ei(o,Ti);if(a===`shipping`)t=n.createShippingAddressElement(s);else if(a===`billing`)t=n.createBillingAddressElement(s);else throw Error(`Invalid options.mode. mode must be 'billing' or 'shipping'.`)}else throw Error(`You must supply options.mode. mode must be 'billing' or 'shipping'.`);break;case`expressCheckout`:t=n.createExpressCheckoutElement(o);break;case`currencySelector`:t=E.createCurrencySelectorElement();break;case`taxId`:t=n.createTaxIdElement(o);break;case`contactDetails`:t=n.createContactDetailsElement();break;default:throw Error(`<${r}> is not supported inside a checkout provider. Use an <Elements> provider instead.`)}}else w&&(t=w.create(e,o));A.current=t,k(t),t&&t.mount(j.current)}},[w,E,o]);var N=si(o);return K.useEffect(function(){if(A.current){var e=pi(o,N,[`paymentRequest`]);e&&`update`in A.current&&A.current.update(e)}},[o,N]),K.useLayoutEffect(function(){return function(){if(A.current&&typeof A.current.destroy==`function`)try{A.current.destroy(),A.current=null}catch{}}},[]),K.createElement(`div`,{id:n,className:i,ref:j})};return i.propTypes={id:X.default.string,className:X.default.string,onChange:X.default.func,onBlur:X.default.func,onFocus:X.default.func,onReady:X.default.func,onEscape:X.default.func,onClick:X.default.func,onLoadError:X.default.func,onLoaderStart:X.default.func,onNetworksChange:X.default.func,onConfirm:X.default.func,onCancel:X.default.func,onShippingAddressChange:X.default.func,onShippingRateChange:X.default.func,onSavedPaymentMethodRemove:X.default.func,onSavedPaymentMethodUpdate:X.default.func,onAvailablePaymentMethodsChange:X.default.func,options:X.default.object},i.displayName=r,i.__elementType=e,i},$=typeof window>`u`,Di=K.createContext(null);Di.displayName=`EmbeddedCheckoutProviderContext`,Q(`auBankAccount`,$),Q(`card`,$),Q(`cardNumber`,$),Q(`cardExpiry`,$),Q(`cardCvc`,$),Q(`iban`,$),Q(`payment`,$),Q(`expressCheckout`,$),Q(`paymentRequestButton`,$),Q(`linkAuthentication`,$),Q(`contactDetails`,$),Q(`address`,$),Q(`shippingAddress`,$),Q(`paymentMethodMessaging`,$),Q(`taxId`,$),Q(`issuingCardNumberDisplay`,$),Q(`issuingCardCvcDisplay`,$),Q(`issuingCardExpiryDisplay`,$),Q(`issuingCardPinDisplay`,$),Q(`issuingCardCopyButton`,$);var Oi=`dahlia`,ki=`https://js.stripe.com`,Ai=`${ki}/${Oi}/stripe.js`,ji=/^https:\/\/js\.stripe\.com\/v3\/?(\?.*)?$/,Mi=/^https:\/\/js\.stripe\.com\/(v3|[a-z]+)\/stripe\.js(\?.*)?$/,Ni=`loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used`,Pi=function(e){return ji.test(e)||Mi.test(e)},Fi=function(){for(var e=document.querySelectorAll(`script[src^="${ki}"]`),t=0;t<e.length;t++){var n=e[t];if(Pi(n.src))return n}return null},Ii=function(e){var t=e&&!e.advancedFraudSignals?`?advancedFraudSignals=false`:``,n=document.createElement(`script`);n.src=`${Ai}${t}`;var r=document.head||document.body;if(!r)throw Error(`Expected document.body not to be null. Stripe.js requires a <body> element.`);return r.appendChild(n),n},Li=null,Ri=null,zi=null,Bi=function(e){return function(t){e(Error(`Failed to load Stripe.js`,{cause:t}))}},Vi=function(e,t){return function(){window.Stripe?e(window.Stripe):t(Error(`Stripe.js not available`))}},Hi=function(e){return Li===null?(Li=new Promise(function(t,n){if(typeof window>`u`||typeof document>`u`){t(null);return}if(window.Stripe&&e&&console.warn(Ni),window.Stripe){t(window.Stripe);return}try{var r=Fi();if(r&&e)console.warn(Ni);else if(!r)r=Ii(e);else if(r&&zi!==null&&Ri!==null){var i;r.removeEventListener(`load`,zi),r.removeEventListener(`error`,Ri),(i=r.parentNode)==null||i.removeChild(r),r=Ii(e)}zi=Vi(t,n),Ri=Bi(n),r.addEventListener(`load`,zi),r.addEventListener(`error`,Ri)}catch(e){n(e);return}}),Li.catch(function(e){return Li=null,Promise.reject(e)})):Li},Ui,Wi=!1,Gi=function(){return Ui||(Ui=Hi(null).catch(function(e){return Ui=null,Promise.reject(e)}),Ui)};Promise.resolve().then(function(){return Gi()}).catch(function(e){Wi||console.warn(e)});function Ki(){return typeof document<`u`&&document.documentElement.classList.contains(`dark`)?{theme:`night`}:{theme:`stripe`}}function qi({open:e,onClose:t,onSavedOptimistic:n}){let r=d($e()),{mutate:i,reset:a}=r;return(0,K.useEffect)(()=>{e||a()},[e,i,a]),(0,K.useMemo)(()=>Ki(),[r.data?.client_secret??null]),(0,J.jsx)(U.Root,{open:e,onOpenChange:e=>{e||t()},children:(0,J.jsxs)(U.Content,{size:`sm`,children:[(0,J.jsx)(U.Header,{children:(0,J.jsx)(U.Title,{children:`Save Payment Method`})}),(0,J.jsx)(U.Body,{className:`min-h-[260px]`,children:(0,J.jsx)(Ji,{})})]})})}function Ji(){return(0,K.useEffect)(()=>{console.warn(`[AutoTopUpPaymentMethodModal] VITE_STRIPE_PUBLISHABLE_KEY is not set; the payment-method modal cannot mount Stripe Elements.`)},[]),(0,J.jsx)(H,{tone:`error`,children:`Payment method setup is currently unavailable. Please try again later.`})}var Yi={visa:`Visa`,mastercard:`Mastercard`,amex:`Amex`,discover:`Discover`,diners:`Diners Club`,jcb:`JCB`,unionpay:`UnionPay`};function Xi(e){return Yi[e.toLowerCase()]??e}function Zi({brand:e,last4:t,onUpdateCard:n,onRemove:r,removing:a=!1}){return(0,J.jsxs)(`div`,{"data-testid":`payment-method-row`,className:`flex items-center justify-between gap-2 rounded-lg bg-[var(--surface-base)] pl-3 pr-2 py-1.5`,children:[(0,J.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,J.jsx)(fe,{"aria-hidden":!0,className:`h-4 w-4 shrink-0 text-[var(--content-default)]`}),(0,J.jsxs)(`div`,{className:`min-w-0`,children:[(0,J.jsx)(p,{as:`p`,variant:`body-medium-default`,className:`truncate text-[var(--content-default)]`,children:e?Xi(e):`Saved card`}),t!=null&&(0,J.jsxs)(p,{as:`p`,variant:`body-small-default`,className:`truncate text-[var(--content-tertiary)]`,children:[`Ending in `,t]})]})]}),(0,J.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[(0,J.jsx)(i,{variant:`outlined`,onClick:n,"data-testid":`payment-method-update`,children:`Update Card`}),(0,J.jsx)(i,{variant:`dangerOutline`,onClick:r,disabled:a,"data-testid":`payment-method-remove`,children:a?`Removing…`:`Remove`})]})]})}function Qi(e){if(!e)return``;let t=parseFloat(e);return Number.isFinite(t)?String(Math.trunc(t)):``}function $i(e){if(!e)return`$0`;let t=parseFloat(e);if(!Number.isFinite(t))return`$0`;let n=Math.abs(t).toLocaleString(`en-US`,{minimumFractionDigits:2,maximumFractionDigits:2}),r=n.endsWith(`.00`)?n.slice(0,-3):n;return t<0?`-$${r}`:`$${r}`}var ea={enabled:!1,threshold_usd:null,amount_usd:null,monthly_cap_usd:null,has_payment_method:!1,payment_method_brand:null,payment_method_last4:null,stripe_payment_method_updated_at:null,last_charge_at:null,last_failure_at:null,last_failure_reason:null,disabled_due_to_repeated_failures:!1,paused_until:null,current_month_credits_purchased_usd:`0.00`,current_month_charged_usd:`0.00`,next_trigger_amount_usd:null,stubbed:!1};function ta(e){if(!e||typeof e!=`object`||Array.isArray(e))return{};let t={};for(let[n,r]of Object.entries(e))Array.isArray(r)&&typeof r[0]==`string`&&(t[n]=r[0]);return t}function na({testId:e,children:t}){return(0,J.jsx)(`div`,{"data-testid":e,className:`flex h-8 min-w-0 flex-1 items-center gap-1.5 rounded-lg bg-[var(--surface-base)] px-2`,children:t})}function ra(){let e=l(),t=u(Dt()),n=d(ot()),r=d(nt()),a=d(at()),[s,c]=o(),f=(0,K.useRef)(null),[m,h]=(0,K.useState)(`view`),[g,_]=(0,K.useState)(!1),[v,y]=(0,K.useState)(!1),[b,S]=(0,K.useState)(!1),[C,w]=(0,K.useState)(!1),[T,E]=(0,K.useState)(!1),[D,O]=(0,K.useState)(!1);(0,K.useEffect)(()=>{C&&t.data?.has_payment_method&&w(!1)},[C,t.data?.has_payment_method]);let k=()=>{n.reset(),r.reset(),h(`form`)},A=e=>{if(_(!0),!e.has_payment_method||e.disabled_due_to_repeated_failures===!0){w(!0),E(!1);return}w(!1),k()},j=s.get(`configure_top_up`)===`1`;if((0,K.useEffect)(()=>{if(!j||t.data==null)return;let e=new URLSearchParams(s);e.delete(`configure_top_up`),c(e,{replace:!0});let n=t.data;if(n.enabled===!0)return;A(n);let r=typeof window<`u`&&window.matchMedia?.(`(prefers-reduced-motion: reduce)`).matches===!0;f.current?.scrollIntoView({behavior:r?`auto`:`smooth`,block:`center`})},[j,t.data]),t.isLoading)return(0,J.jsx)(`div`,{"data-testid":`auto-top-up-card`,children:(0,J.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Loading…`})});if(t.isError||!t.data)return(0,J.jsx)(`div`,{"data-testid":`auto-top-up-card`,children:(0,J.jsx)(H,{tone:`error`,children:`Failed to load auto top-up configuration.`})});let M=t.data,N=M.enabled===!0,ee=M.disabled_due_to_repeated_failures===!0&&!N,P=()=>{h(`view`),_(!1)},F=()=>{r.reset(),y(!1)},I=t=>{n.mutate({body:{enabled:!0,threshold_usd:t.threshold_usd,amount_usd:t.amount_usd,monthly_cap_usd:t.monthly_cap_usd===``?null:t.monthly_cap_usd}},{onSuccess:t=>{st(e,void 0,e=>({...t,payment_method_brand:e?.payment_method_brand??null,payment_method_last4:e?.payment_method_last4??null})),e.invalidateQueries({queryKey:Ze()}),P()}})},te=()=>{r.mutate({},{onSuccess:()=>{st(e,void 0,e=>({...ea,has_payment_method:e?.has_payment_method??!1,payment_method_brand:e?.payment_method_brand??null,payment_method_last4:e?.payment_method_last4??null,stripe_payment_method_updated_at:e?.stripe_payment_method_updated_at??null})),y(!1),h(`view`),_(!1)}})},ne=()=>{a.mutate({},{onSuccess:()=>{st(e,void 0,{...M,enabled:!1,has_payment_method:!1,payment_method_brand:null,payment_method_last4:null}),e.invalidateQueries({queryKey:Ze()}),S(!1),P()},onError:()=>{S(!1)}})},re=e=>{if(e&&!N){A(M);return}if(!e&&!N&&g){w(!1),P();return}!e&&N&&y(!0)},L=async()=>{let t=Date.now(),n=M.stripe_payment_method_updated_at??null;try{await e.invalidateQueries({queryKey:Ze()})}catch{}for(;Date.now()-t<2e4;){try{let t=await e.fetchQuery(Dt());if(t.has_payment_method&&t.stripe_payment_method_updated_at!==n)break}catch{}await new Promise(e=>setTimeout(e,1500))}w(!1),g&&k()},R=m===`form`,ie=ta(n.error),ae=n.isError&&Object.keys(ie).length===0;return(0,J.jsxs)(`div`,{ref:f,"data-testid":`auto-top-up-card`,children:[(0,J.jsx)(`div`,{className:`flex items-center justify-between gap-4`,children:(0,J.jsx)(we,{checked:N||g,onChange:re,label:`Enable Extra Usage`})}),M.has_payment_method&&(0,J.jsx)(`div`,{className:`mt-3`,children:(0,J.jsx)(Zi,{brand:M.payment_method_brand,last4:M.payment_method_last4,onUpdateCard:()=>O(!0),onRemove:()=>S(!0),removing:a.isPending})}),N&&!R&&(0,J.jsxs)(`div`,{className:`mt-3 flex w-full items-center gap-2`,children:[(0,J.jsxs)(na,{testId:`auto-top-up-summary`,children:[(0,J.jsx)(x,{className:`h-3.5 w-3.5 shrink-0 text-[var(--content-default)]`,"aria-hidden":`true`}),(0,J.jsxs)(p,{variant:`body-medium-default`,className:`truncate text-[var(--content-default)]`,children:[`Add `,$i(M.amount_usd),` when balance falls under`,` `,$i(M.threshold_usd)]})]}),M.monthly_cap_usd!=null&&(0,J.jsx)(na,{testId:`auto-top-up-cap-progress`,children:(0,J.jsxs)(p,{variant:`body-medium-default`,className:`truncate text-[var(--content-default)]`,children:[(0,J.jsxs)(`span`,{children:[$i(M.current_month_credits_purchased_usd),` `]}),(0,J.jsxs)(`span`,{className:`text-[var(--content-tertiary)]`,children:[`/ `,$i(M.monthly_cap_usd),` this month`]})]})}),(0,J.jsx)(i,{variant:`outlined`,onClick:k,"data-testid":`auto-top-up-edit-button`,className:`shrink-0`,children:`Adjust`})]}),ee&&(0,J.jsx)(H,{tone:`warning`,className:`mt-3`,"data-testid":`auto-top-up-declined-cutoff`,actions:(0,J.jsx)(i,{variant:`outlined`,onClick:()=>O(!0),"data-testid":`auto-top-up-add-pm-button`,children:`Add payment method`}),children:`We paused automatic reloads after several declined payments. Add a new payment method to turn auto-reload back on.`}),(0,J.jsx)(`div`,{className:`grid transition-[grid-template-rows] duration-200 ease-in-out`,style:{gridTemplateRows:C&&!ee?`1fr`:`0fr`},children:(0,J.jsx)(`div`,{className:`overflow-hidden`,children:(0,J.jsxs)(`div`,{className:`mt-3 flex flex-col gap-3`,children:[!T&&(0,J.jsxs)(`div`,{className:`flex h-8 items-center justify-between gap-3 rounded-lg bg-[var(--system-mid-weak)] px-2`,children:[(0,J.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,J.jsx)(he,{className:`h-4 w-4 shrink-0 text-[var(--system-mid-strong)]`,"aria-hidden":`true`}),(0,J.jsx)(p,{variant:`body-medium-default`,className:`truncate text-[var(--system-mid-strong)]`,children:`Extra usage requires you to connect a credit card.`})]}),(0,J.jsx)(`button`,{type:`button`,"aria-label":`Dismiss`,onClick:()=>E(!0),className:`flex shrink-0 cursor-pointer items-center justify-center rounded p-0.5 text-[var(--system-mid-strong)] opacity-70 transition-opacity hover:opacity-100`,children:(0,J.jsx)(ye,{className:`h-2.5 w-2.5`,strokeWidth:2,"aria-hidden":`true`})})]}),(0,J.jsx)(i,{variant:`primary`,onClick:()=>O(!0),"data-testid":`auto-top-up-add-pm-button`,className:`self-start`,children:`Add a Credit Card`})]})})}),ae&&(0,J.jsx)(H,{tone:`error`,className:`mt-4`,"data-testid":`auto-top-up-update-error`,children:`Failed to save automatic top-ups. Please try again.`}),r.isError&&(0,J.jsx)(H,{tone:`error`,className:`mt-4`,"data-testid":`auto-top-up-disable-error`,children:`Failed to disable automatic top-ups. Please try again.`}),a.isError&&(0,J.jsx)(H,{tone:`error`,className:`mt-4`,"data-testid":`auto-top-up-remove-error`,children:`Failed to remove the payment method. Please try again.`}),R&&(0,J.jsx)(Kr,{initialValues:N?{threshold_usd:Qi(M.threshold_usd),amount_usd:Qi(M.amount_usd),monthly_cap_usd:Qi(M.monthly_cap_usd)}:void 0,submitting:n.isPending,serverErrors:ie,onCancel:P,onSave:I}),(N||R)&&(0,J.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,J.jsx)(Vr,{open:v,confirming:r.isPending,onCancel:F,onConfirm:te}),(0,J.jsx)(Te,{open:b,title:`Remove payment method?`,message:`Removing your card will turn off Extra Usage.`,confirmLabel:a.isPending?`Removing…`:`Remove`,isPending:a.isPending,cancelLabel:`Keep card`,destructive:!0,onConfirm:ne,onCancel:()=>S(!1)}),(0,J.jsx)(qi,{open:D,onClose:()=>O(!1),onSavedOptimistic:L})]})}function ia(e){let t=parseFloat(e);return Number.isFinite(t)?`$${t.toFixed(2)}`:`$${e}`}function aa(e){let t=e.trim();if(t===``)return`Enter a daily limit`;let n=parseFloat(t);if(!Number.isFinite(n)||n<1)return`Must be at least $1`;if(!/^\d+(\.\d{1,2})?$/.test(t))return`Use at most two decimal places`}function oa(){let e=l(),t=u(ct()),n=u(ht()),r=d(St()),[a,o]=(0,K.useState)(null),[s,c]=(0,K.useState)(!1),[f,p]=(0,K.useState)(!1);if(t.isLoading)return(0,J.jsx)(`div`,{"data-testid":`daily-credit-limit-card`,children:(0,J.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Loading…`})});if(t.isError||!t.data)return(0,J.jsx)(`div`,{"data-testid":`daily-credit-limit-card`,children:(0,J.jsx)(H,{tone:`error`,children:`Failed to load daily credit limit settings.`})});let m=t.data,h=m.daily_credit_limit_usd!=null,g=h||f,_=a??m.daily_credit_limit_usd??``,v=aa(_),y=n.data,b=y?.daily_spend_usd??m.current_day_spent_usd,x=y?.daily_limit_reached===!0,S=e=>{o(e.target.value)},C=t=>{r.mutate({body:{daily_credit_limit_usd:t}},{onSuccess:n=>{tt(e,void 0,n),e.invalidateQueries({queryKey:Qe()}),e.invalidateQueries({queryKey:xt()}),o(null),c(!1),t===null&&p(!1)}})},w=e=>{if(e){p(!0);return}p(!1),o(null),c(!1),h&&C(null)},T=()=>{c(!0),!v&&C(parseFloat(_.trim()).toFixed(2))},E=r.isError,D=s?v:void 0;return(0,J.jsxs)(`div`,{"data-testid":`daily-credit-limit-card`,children:[(0,J.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,J.jsx)(we,{checked:g,onChange:w,disabled:r.isPending,label:`Set a daily credit limit`}),g&&(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(`div`,{className:`flex flex-wrap items-start gap-3`,children:[(0,J.jsx)(`div`,{className:`w-60 max-w-full`,children:(0,J.jsx)(Ce,{type:`number`,step:`0.01`,min:`1`,label:`Stop spending Vellum credits after`,helperText:`Per UTC day. Resets at midnight UTC.`,placeholder:`0.00`,value:_,onChange:S,onBlur:()=>c(!0),errorText:D,"data-testid":`daily-credit-limit-input`,fullWidth:!0})}),(0,J.jsx)(`div`,{className:`flex shrink-0 items-center gap-2 pt-[18px]`,children:(0,J.jsx)(i,{variant:`primary`,onClick:T,disabled:r.isPending,"data-testid":`daily-credit-limit-save-button`,children:`Save`})})]}),h&&m.daily_credit_limit_usd!=null&&(0,J.jsxs)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,"data-testid":`daily-credit-limit-progress`,children:[ia(b),` of `,ia(m.daily_credit_limit_usd),` `,`spent today`]}),x&&(0,J.jsx)(H,{tone:`warning`,"data-testid":`daily-credit-limit-reached`,children:`Today's Vellum credit spend has reached this limit. Generation resumes after midnight UTC or when you raise the limit.`})]})]}),(0,J.jsx)(`p`,{className:`mt-3 text-body-small-default text-[var(--content-tertiary)]`,children:`Applies to Vellum credit spend only. Usage billed to your own provider API keys isn't limited. Resets at midnight UTC.`}),E&&(0,J.jsx)(H,{tone:`error`,className:`mt-4`,"data-testid":`daily-credit-limit-update-error`,children:`Failed to save daily credit limit. Please try again.`})]})}function sa(e){let t=parseFloat(e);return Number.isFinite(t)?`$${t.toFixed(2)}`:`$${e}`}function ca(e){if(e.trim()===``)return;let t=parseFloat(e);if(!Number.isFinite(t)||t<1||t>1e3)return`Must be between $1 and $1,000`;if(!/^\d+(\.\d{1,2})?$/.test(e.trim()))return`Use at most two decimal places`}function la(){let e=l(),t=u(ut()),n=d(it()),[r,a]=(0,K.useState)(null),[o,s]=(0,K.useState)(!1);if(t.isLoading)return(0,J.jsx)(`div`,{"data-testid":`low-balance-alert-card`,children:(0,J.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Loading…`})});if(t.isError||!t.data)return(0,J.jsx)(`div`,{"data-testid":`low-balance-alert-card`,children:(0,J.jsx)(H,{tone:`error`,children:`Failed to load low-balance alert settings.`})});let c=t.data,f=r??c.threshold_usd??``,p=ca(f),m=e=>{a(e.target.value)},h=t=>{n.mutate({body:{threshold_usd:t}},{onSuccess:t=>{dt(e,void 0,t),e.invalidateQueries({queryKey:lt()}),a(null),s(!1)}})},g=()=>{if(s(!0),p)return;let e=f.trim();h(e===``?null:parseFloat(e).toFixed(2))},_=()=>{a(``),s(!1),h(null)},v=n.isError,y=o?p:void 0;return(0,J.jsxs)(`div`,{"data-testid":`low-balance-alert-card`,children:[(0,J.jsxs)(`div`,{className:`flex flex-wrap items-start gap-3`,children:[(0,J.jsx)(`div`,{className:`w-60 max-w-full`,children:(0,J.jsx)(Ce,{type:`number`,step:`0.01`,label:`Alert me when my balance drops below`,helperText:`Default is ${sa(c.default_threshold_usd)} when unset`,placeholder:c.effective_threshold_usd,value:f,onChange:m,onBlur:()=>s(!0),errorText:y,"data-testid":`low-balance-alert-input`,fullWidth:!0})}),(0,J.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 pt-[18px]`,children:[c.threshold_usd!=null&&(0,J.jsx)(i,{variant:`outlined`,onClick:_,disabled:n.isPending,"data-testid":`low-balance-alert-reset-button`,children:`Reset to default`}),(0,J.jsx)(i,{variant:`primary`,onClick:g,disabled:n.isPending,"data-testid":`low-balance-alert-save-button`,children:`Save`})]})]}),v&&(0,J.jsx)(H,{tone:`error`,className:`mt-4`,"data-testid":`low-balance-alert-update-error`,children:`Failed to save low-balance alert. Please try again.`})]})}function ua(e){return e.replace(/\.00$/,``)}function da({icon:e,value:t,label:n}){return(0,J.jsxs)(`div`,{className:`flex h-8 min-w-0 flex-1 items-center gap-1.5 rounded-lg bg-[var(--surface-base)] px-2 py-1.5`,children:[(0,J.jsx)(`span`,{"aria-hidden":`true`,className:`flex h-3.5 w-3.5 shrink-0 items-center justify-center text-[var(--content-default)]`,children:e}),(0,J.jsx)(p,{variant:`body-medium-default`,as:`span`,className:`text-[var(--content-default)]`,children:t}),(0,J.jsx)(p,{variant:`body-small-default`,as:`span`,className:`min-w-0 truncate text-[var(--content-tertiary)]`,children:n})]})}function fa(){let{data:e,isLoading:t,isError:n}=u(Et()),[r,a]=(0,K.useState)(!1),o=(0,K.useCallback)(e=>{navigator.clipboard.writeText(e).then(()=>{a(!0),W.success(`Copied to clipboard!`),setTimeout(()=>a(!1),2e3)})},[]),s=e?.is_eligible_for_credits===!1;return(0,J.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,J.jsx)(p,{as:`p`,variant:`body-medium-default`,className:`text-[var(--content-tertiary)]`,children:s?`Invite friends to Vellum. You'll start earning referral credits once you've purchased credits or upgraded to Pro.`:e?`Share Vellum with friends - you'll each earn ${ua(e.referrer_credit_amount)} credits when they sign up, up to ${ua(e.earning_cap)} total.`:`Share Vellum with friends and earn credits for every signup.`}),s&&(0,J.jsx)(p,{as:`p`,variant:`body-medium-default`,className:`text-[var(--content-tertiary)]`,children:`You're not currently earning referral credits. Buy credits or upgrade to Pro to start earning — your invite link still works in the meantime.`}),t?(0,J.jsxs)(`div`,{className:`flex items-center gap-2 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,J.jsx)(V,{className:`h-4 w-4 animate-spin`}),`Loading...`]}):n||!e?(0,J.jsx)(H,{tone:`error`,children:`Failed to load referral information.`}):(0,J.jsxs)(`div`,{className:`flex flex-wrap items-start gap-2`,children:[(0,J.jsx)(da,{icon:(0,J.jsx)(x,{className:`h-3.5 w-3.5`}),value:ua(e.total_earned),label:`Credits Earned`}),(0,J.jsx)(da,{icon:(0,J.jsx)(ve,{className:`h-3.5 w-3.5`}),value:e.referred_count,label:`Friends Referred`}),(0,J.jsx)(i,{variant:`outlined`,className:`shrink-0`,onClick:()=>o(e.referral_url),leftIcon:r?(0,J.jsx)(_,{className:`h-3.5 w-3.5`}):(0,J.jsx)(de,{className:`h-3.5 w-3.5`}),"data-testid":`referral-copy-button`,children:r?`Copied!`:`Share Link`})]})]})}function pa({open:e,onOpenChange:t}){return(0,J.jsx)(U.Root,{open:e,onOpenChange:t,children:(0,J.jsxs)(U.Content,{"data-testid":`referral-modal`,children:[(0,J.jsx)(U.Header,{children:(0,J.jsx)(U.Title,{children:`Earn Free Credits`})}),(0,J.jsx)(U.Body,{children:(0,J.jsx)(fa,{})})]})})}var ma=2e3;function ha(e){let t=parseFloat(e);if(Number.isNaN(t))return`0`;let n=Math.abs(t).toLocaleString(`en-US`,{minimumFractionDigits:2,maximumFractionDigits:2}),r=n.endsWith(`.00`)?n.slice(0,-3):n;return t<0?`-${r}`:r}function ga(){let e=l(),{data:t,isLoading:n,isError:r}=u(ht()),a=t??null,[o,s]=(0,K.useState)(!1),[c,d]=(0,K.useState)(!1),[f,h]=(0,K.useState)(!1),g=(0,K.useRef)(0),_=(0,K.useRef)(null),v=rt({onSuccess:()=>{e.invalidateQueries({queryKey:xt()})},onError:()=>{g.current<3&&(_.current=setTimeout(()=>{v.reset()},ma))}});(0,K.useEffect)(()=>()=>{_.current&&clearTimeout(_.current)},[]);let y=v.mutate;(0,K.useEffect)(()=>{a&&a.settled_balance===`0.00`&&a.pending_compute===`0.00`&&a.effective_balance===`0.00`&&g.current<3&&!v.isPending&&!v.isError&&!v.isSuccess&&(g.current+=1,y({}))},[a,v.isPending,v.isError,v.isSuccess,y]);let b=(0,J.jsxs)(`div`,{className:`flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between sm:gap-4`,children:[(0,J.jsxs)(`div`,{className:`min-w-0`,children:[(0,J.jsx)(p,{as:`h2`,variant:`title-medium`,className:`text-[var(--content-emphasised)]`,children:`Credit Balance`}),(0,J.jsx)(p,{as:`p`,variant:`body-medium-default`,className:`mt-2 text-[var(--content-tertiary)]`,children:`Quick overview of your balances and other things`})]}),(0,J.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,J.jsx)(i,{variant:`outlined`,leftIcon:(0,J.jsx)(x,{className:`h-4 w-4`,"aria-hidden":!0}),onClick:()=>d(!0),"data-testid":`earn-credits-button`,children:`Earn Free Credits`}),(0,J.jsx)(i,{variant:`primary`,onClick:()=>s(!0),disabled:n||!a,"data-testid":`add-credits-button`,children:`Add Credits`})]})]});return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(m,{padding:`md`,children:[b,n?(0,J.jsxs)(`div`,{className:`mt-4 flex items-center gap-2 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,J.jsx)(V,{className:`h-4 w-4 animate-spin`}),`Loading billing summary...`]}):r?(0,J.jsx)(`div`,{className:`mt-4`,children:(0,J.jsx)(H,{tone:`error`,children:`Failed to load billing summary. Please try again later.`})}):a?(0,J.jsxs)(J.Fragment,{children:[(()=>{if(!a)return null;let e=parseFloat(a.effective_balance)<0;return(0,J.jsx)(`div`,{className:`mt-4`,children:(0,J.jsx)(xe,{icon:(0,J.jsx)(x,{className:`h-4 w-4`,"aria-hidden":!0}),value:(0,J.jsx)(`span`,{"data-testid":`effective-balance`,children:ha(a.effective_balance)}),label:`Balance`,tone:e?`negative`:`default`})})})(),a.is_degraded&&(0,J.jsx)(`div`,{className:`mt-4`,children:(0,J.jsx)(H,{tone:`warning`,children:`Pending charges could not be calculated. The balance shown may be incomplete.`})})]}):(0,J.jsx)(`p`,{className:`mt-4 text-body-medium-lighter text-[var(--content-tertiary)]`,children:`No billing information available.`}),(0,J.jsx)(`div`,{className:`mt-6`,children:(0,J.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,J.jsx)(we,{checked:f,onChange:h,label:`Custom low balance alert`}),f&&(0,J.jsx)(la,{})]})}),(0,J.jsx)(`div`,{className:`mt-6 border-t border-[var(--border-base)] pt-6`,children:(0,J.jsx)(ra,{})}),(0,J.jsx)(`div`,{className:`mt-6 border-t border-[var(--border-base)] pt-6`,children:(0,J.jsx)(oa,{})})]}),(0,J.jsx)(Nt,{open:o,onOpenChange:s}),(0,J.jsx)(pa,{open:c,onOpenChange:d})]})}var _a=1e3,va=15e3,ya=3e3,ba=45e3,xa=`billing-portal-return`;function Sa(e,t){if(!e)return{kind:`info`,message:`Subscription updated.`};let n=e.cancel_at_period_end||!!e.cancel_at,r=t.cancel_at_period_end||!!t.cancel_at;return!n&&r?{kind:`info`,message:`Pro plan canceled. You'll have access until ${t.cancel_at?ce(t.cancel_at):`the end of your billing period`}.`}:n&&!r?{kind:`success`,message:`Pro plan reactivated.`}:{kind:`info`,message:`Subscription updated.`}}function Ca(){let[e]=o(),t=c(),n=l(),r=(0,K.useRef)(null);return(0,K.useEffect)(()=>()=>{r.current!==null&&(clearInterval(r.current),r.current=null)},[]),(0,K.useEffect)(()=>{if(e.get(`portal_return`)!==`true`)return;let i={current:!1},a=T(),o=yt(),s=Tt(),c=Date.now();async function l(){await n.invalidateQueries({queryKey:s});let e=await n.fetchQuery(o);return{cancel_at_period_end:e.cancel_at_period_end,cancel_at:e.cancel_at}}async function u(){let e=await l();for(;!i.current&&a&&e.cancel_at_period_end===a.cancel_at_period_end&&e.cancel_at===a.cancel_at&&Date.now()-c<va&&(await new Promise(e=>setTimeout(e,_a)),!i.current);)e=await l();return e}return(async()=>{try{let e=await u();if(i.current)return;let{kind:t,message:n}=Sa(a,e);t===`success`?W.success(n,{id:xa}):W.info(n,{id:xa})}catch{if(i.current)return;W.info(`Subscription updated.`,{id:xa})}finally{if(!i.current){C(),t(Be.settings.usageBilling,{replace:!0});let e=Date.now();r.current!==null&&clearInterval(r.current),r.current=setInterval(()=>{if(Date.now()-e>=ba){r.current!==null&&(clearInterval(r.current),r.current=null);return}l().catch(e=>{console.error(`billing poll error:`,e)})},ya)}}})(),()=>{i.current=!0}},[e,t,n]),null}var wa=[7,30,90].map(e=>({value:`${e}`,label:`Last ${e} days`}));function Ta(e,t=Ye()){let{fromDate:n,toDate:r}=Lt(e,t);return{from:n,to:r}}function Ea(e,t){let n=new Date(e),r=new Date(t);return Math.round((r.getTime()-n.getTime())/864e5)+1}function Da({from:e,to:t}){let n=Ea(e,t);return n===7?7:n===90?90:30}function Oa({value:e,onChange:t}){let n=Ot(),r=(0,K.useMemo)(()=>`${Da(e)}`,[e]);return(0,J.jsx)(Ee,{options:wa,value:r,onChange:e=>{let r=Number(e);t(Ta(r,n),r)},"aria-label":`Date range`})}var ka={strokeDasharray:`3 3`,stroke:`var(--border-subtle)`,strokeOpacity:.4},Aa={fontSize:12,fill:`var(--content-tertiary)`},ja={stroke:`var(--border-subtle)`,strokeOpacity:.4},Ma=[`#3b82f6`,`#10b981`,`#f59e0b`,`#ef4444`,`#8b5cf6`,`#06b6d4`,`#ec4899`,`#84cc16`];function Na({item:e}){return(0,J.jsxs)(`div`,{className:`flex items-center gap-2 py-0.5 text-[13px] text-[var(--content-default)]`,children:[(0,J.jsx)(`span`,{className:`h-2 w-2 shrink-0 rounded-full`,style:{backgroundColor:e.color}}),(0,J.jsx)(`span`,{children:e.label}),(0,J.jsx)(`span`,{className:`ml-auto tabular-nums`,children:e.value})]})}function Pa({active:e,payload:t,hoveredKey:n,label:r,labelMap:i,colorMap:a,formatValue:o,showTotal:s,formatLabel:c}){if(!e||!t?.length)return null;let l=t.filter(e=>e.value!=null&&e.dataKey!=null).map(e=>({key:String(e.dataKey),label:i[String(e.dataKey)]??String(e.dataKey),value:o(Number(e.value)),color:a[String(e.dataKey)]??`#6b7280`,numericValue:Number(e.value)})).sort((e,t)=>e.numericValue===t.numericValue?e.label.localeCompare(t.label):t.numericValue-e.numericValue),u=n?l.find(e=>e.key===n):null,d=u?l.filter(e=>e.key!==n):l,f=l.reduce((e,t)=>e+t.numericValue,0);return(0,J.jsxs)(`div`,{className:`rounded-lg border border-[var(--border-subtle)] bg-[var(--surface-overlay)] px-3.5 py-2.5 shadow-[var(--shadow-popover)]`,children:[(0,J.jsx)(`div`,{className:`mb-1.5 text-xs font-medium text-[var(--content-secondary)]`,children:(c??It)(String(r))}),u&&(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(Na,{item:u}),d.length>0&&(0,J.jsx)(`div`,{className:`my-1.5 border-t border-[var(--border-subtle)]`})]}),d.map(e=>(0,J.jsx)(Na,{item:e},e.key)),s&&(0,J.jsx)(`div`,{className:`mt-1 flex items-center gap-2 border-t border-[var(--border-subtle)] pt-1.5 text-[13px] font-semibold text-[var(--content-default)]`,children:(0,J.jsxs)(`span`,{children:[`Total: `,o(f)]})})]})}function Fa(e,t){let[n,r]=e,[i,a]=t,o=r-n||1;return e=>i+(e-n)/o*(a-i)}function Ia(e){if(e<=0)return 1;let t=10**Math.floor(Math.log10(e)),n=e/t,r;return r=n<=1?1:n<=2?2:n<=2.5?2.5:n<=5?5:10,r*t}function La(e){if(e>=1)return+!Number.isInteger(e);let t=e/10**Math.floor(Math.log10(e)),n=Math.abs(t-2.5)<.01;return Math.ceil(-Math.log10(e))+ +!!n}function Ra(e,t){let n=Math.max(0,...e),r=t?.tickCount??5;return n===0?t?.integerOnly?r:1:t?.integerOnly?Math.max(1,Math.ceil(n/r))*r:Ia(n/r)*r}function za(e,t){if(e===0)return[0];let n=e/t,r=10**(n>=1?0:Math.ceil(-Math.log10(n))+2),i=[];for(let e=0;e<=t;e++)i.push(Math.round(n*e*r)/r);return i}function Ba(e,t,n,r,i){let a=Math.min(i,n/2,r/2);return[`M${e},${t+a}`,`A${a},${a} 0 0 1 ${e+a},${t}`,`H${e+n-a}`,`A${a},${a} 0 0 1 ${e+n},${t+a}`,`V${t+r}`,`H${e}`,`Z`].join(``)}function Va(e,t){if(e<=0)return[];if(t)return e<=3?Array.from({length:e},(e,t)=>t):[0,Math.floor(e/2),e-1];let n=Math.max(1,Math.ceil(e/Math.min(e,12))),r=[];for(let t=0;t<e;t+=n)r.push(t);return r[r.length-1]!==e-1&&r.push(e-1),r}var Ha=40,Ua={fontSize:11,fill:`var(--content-tertiary)`},Wa={runtime_proxy_api:`#3b82f6`,oauth_proxy:`#f59e0b`};function Ga(e,t){return Wa[e]??Ma[t%Ma.length]??`#6b7280`}function Ka(e,t){let n=new Set,r={};for(let t of e)for(let e of t.groups)n.add(e.group_key),r[e.group_key]=e.group_label;return{data:e.map(e=>{let n={date:e.date};for(let r of e.groups)n[r.group_key]=t===`spend`?parseFloat(r.total_usd):r.event_count;return n}),stackKeys:Array.from(n),labelMap:r}}function qa({stackKeys:e,labelMap:t}){return(0,J.jsx)(`div`,{className:`flex flex-wrap items-center justify-center gap-x-5 gap-y-1 pt-3 text-body-small-default`,children:e.map((e,n)=>(0,J.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,J.jsx)(`span`,{className:`inline-block h-2.5 w-2.5 rounded-sm`,style:{backgroundColor:Ga(e,n)}}),(0,J.jsx)(`span`,{className:`text-[var(--content-quiet)]`,children:t[e]??e})]},e))})}var Ja=350,Ya={top:8,right:4,bottom:32,left:0},Xa=.2,Za=5,Qa=12,$a=200;function eo({buckets:e,metric:t,onBarClick:n}){let r=Je(),i=(0,K.useRef)(null),[a,o]=(0,K.useState)(0);(0,K.useEffect)(()=>{let e=i.current;if(!e)return;let t=new ResizeObserver(([e])=>{e&&o(e.contentRect.width)});return t.observe(e),()=>t.disconnect()},[]);let{data:s,stackKeys:c,labelMap:l}=(0,K.useMemo)(()=>Ka(e,t),[e,t]),u=(0,K.useMemo)(()=>{let e={};for(let t=0;t<c.length;t++)e[c[t]]=Ga(c[t],t);return e},[c]),d=(0,K.useCallback)(e=>t===`spend`?`$${e.toLocaleString(`en-US`,{minimumFractionDigits:2,maximumFractionDigits:2})}`:e.toLocaleString(`en-US`),[t]),[f,p]=(0,K.useState)(null),m=r?Ha:56,h=r?Ua:Aa,g=Ya.left+m,_=Math.max(0,a-g-Ya.right),v=Ya.top,y=Ja-Ya.top-Ya.bottom,b=(0,K.useMemo)(()=>s.map(e=>c.reduce((t,n)=>t+(Number(e[n])||0),0)),[s,c]),x=t===`events`,S=(0,K.useMemo)(()=>Ra(b,{integerOnly:x,tickCount:Za}),[b,x]),C=(0,K.useMemo)(()=>za(S,Za),[S]),w=(0,K.useCallback)(e=>{if(t===`spend`){if(e===0)return`$0`;let t=S/Za,n=Math.max(t<1?2:0,La(t));return`$${e.toLocaleString(`en-US`,{minimumFractionDigits:n,maximumFractionDigits:n})}`}return e.toLocaleString(`en-US`)},[t,S]),T=(0,K.useMemo)(()=>Fa([0,S],[v+y,v]),[S,v,y]),E=s.length,D=E>0?_/E:0,O=D*(1-Xa),k=(D-O)/2,A=(0,K.useMemo)(()=>Va(E,r),[E,r]),j=c.length===0,M=j?[]:s.map((e,t)=>{let n=g+t*D+k,r=0;return{di:t,x:n,segments:c.map((t,i)=>{let a=Number(e[t])||0,o=r;r+=a;let s=T(r),l=T(o)-s,u=i===c.length-1;return{key:t,val:a,x:n,y:s,h:l,color:Ga(t,i),isLast:u}})}}),N=(e,t,n)=>{let r=i.current?.getBoundingClientRect();r&&p({x:e.clientX-r.left,y:e.clientY-r.top,datumIndex:t,hoveredKey:n})},ee=()=>p(null),P=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})):[],I={left:f?Math.max(0,Math.min(f.x+Qa,a-$a)):0,top:f?f.y-Qa:0,visibility:f?`visible`:`hidden`};return(0,J.jsxs)(`div`,{onMouseDown:e=>e.preventDefault(),children:[(0,J.jsx)(`div`,{ref:i,className:`relative w-full`,style:{height:Ja},children:j?(0,J.jsx)(`div`,{className:`flex h-full items-center justify-center text-body-medium-lighter text-[var(--content-faint)]`,children:`No usage data for this period`}):a>0?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(`svg`,{width:a,height:Ja,className:`block`,children:[C.map(e=>(0,J.jsx)(`line`,{x1:g,x2:g+_,y1:T(e),y2:T(e),stroke:ka.stroke,strokeOpacity:ka.strokeOpacity,strokeDasharray:ka.strokeDasharray},e)),(0,J.jsx)(`line`,{x1:g,x2:g+_,y1:v+y,y2:v+y,stroke:ja.stroke,strokeOpacity:ja.strokeOpacity}),C.map(e=>(0,J.jsx)(`text`,{x:g-8,y:T(e),textAnchor:`end`,dominantBaseline:`middle`,fontSize:h.fontSize,fill:h.fill,children:w(e)},e)),A.map(e=>{let t=s[e];return t?(0,J.jsx)(`text`,{x:g+e*D+D/2,y:v+y+20,textAnchor:`middle`,fontSize:h.fontSize,fill:h.fill,children:It(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:ee,onClick:()=>P(t.key)};return t.isLast?(0,J.jsx)(`path`,{...i,d:Ba(t.x,t.y,O,t.h,3)}):(0,J.jsx)(`rect`,{...i,x:t.x,y:t.y,width:O,height:t.h})}))]}),(0,J.jsx)(`div`,{className:`pointer-events-none absolute z-[1] max-w-[calc(100vw-32px)] -translate-y-full`,style:I,children:(0,J.jsx)(Pa,{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,J.jsx)(qa,{stackKeys:c,labelMap:l})]})}function to(e=Ye()){return Ta(30,e)}function no(e){if(e)return e.usageSource===`oauth_proxy`?`oauth_provider`:$t(e.llmDimension??`model`)}function ro(e,t=Ye()){return{from:e.dateRange.from,to:e.dateRange.to,tz:t,...e.drilldown?{usage_source:e.drilldown.usageSource,group_by:no(e.drilldown)}:{}}}function io(e,t=Ye()){return{from:e.dateRange.from,to:e.dateRange.to,tz:t,...e.drilldown?{usage_source:e.drilldown.usageSource}:{}}}function ao(e,t,n){return e===`full`&&t!==`gated`&&n}function oo(e){let t=Ot(),n=ao(G({platformHostedOnly:!0}),G(),He()),r=u({..._t({query:ro(e,t)}),enabled:n}),i=u({...gt({query:io(e,t)}),enabled:n});return{series:r.data,totals:i.data,isLoading:r.isLoading||i.isLoading,isError:r.isError||i.isError}}var so=[{value:`spend`,label:`Spend ($)`},{value:`events`,label:`Events`}];function co(e){if(e===void 0)return`—`;let t=parseFloat(e);return Number.isNaN(t)?`$0.00`:`$${t.toLocaleString(`en-US`,{minimumFractionDigits:2,maximumFractionDigits:2})}`}function lo(e){return e===void 0?`—`:e.toLocaleString(`en-US`)}function uo(){let e=Ot(),[t,n]=(0,K.useState)(30),[r,i]=(0,K.useState)(()=>to(e)),a=(0,K.useMemo)(()=>t===null?r:Ta(t,e),[t,r,e]),o=(e,t)=>{n(t),i(e)},[s,c]=(0,K.useState)(null),[l,u]=(0,K.useState)(`spend`),{series:d,totals:f,isLoading:h,isError:_}=oo({dateRange:a,setDateRange:e=>{n(null),i(e)},drilldown:s,setDrilldown:c}),v=s?void 0:e=>{let t={runtime_proxy_api:`runtime_proxy`,oauth_proxy:`oauth_proxy`}[e];t&&c({usageSource:t,...t===`runtime_proxy`?{llmDimension:Jt}:{}})};return(0,J.jsx)(m,{padding:`md`,children:(0,J.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,J.jsxs)(`div`,{className:`flex flex-wrap items-start justify-between gap-3`,children:[(0,J.jsxs)(`div`,{children:[(0,J.jsx)(p,{as:`h2`,variant:`title-medium`,className:`text-[var(--content-default)]`,children:`Credit Usage`}),(0,J.jsx)(p,{as:`p`,variant:`body-small-default`,className:`mt-2 text-[var(--content-tertiary)]`,children:`Overview of your spending habits.`})]}),(0,J.jsxs)(`div`,{className:`flex flex-wrap items-center justify-end gap-2 [&_[role=combobox]]:h-8 [&_[role=radio]]:h-7`,children:[(0,J.jsx)(Oa,{value:a,onChange:o}),(0,J.jsx)(`div`,{className:`w-44`,children:(0,J.jsx)(be,{items:so,value:l,onChange:u,ariaLabel:`Chart metric`})})]})]}),(0,J.jsxs)(`div`,{className:`grid grid-cols-1 gap-2 sm:grid-cols-2`,children:[(0,J.jsx)(xe,{icon:(0,J.jsx)(x,{className:`h-4 w-4`,"aria-hidden":!0}),value:h?(0,J.jsx)(V,{className:`h-4 w-4 animate-spin`,"aria-hidden":!0}):co(f?.total_usd),label:`Spend`}),(0,J.jsx)(xe,{icon:(0,J.jsx)(Ht,{className:`h-4 w-4`,"aria-hidden":!0}),value:h?(0,J.jsx)(V,{className:`h-4 w-4 animate-spin`,"aria-hidden":!0}):lo(f?.event_count),label:`Events`})]}),s&&(0,J.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[(0,J.jsx)(`div`,{children:(0,J.jsxs)(`button`,{className:`flex items-center gap-1.5 text-body-medium-lighter text-[var(--content-tertiary)] transition-colors hover:text-[var(--content-secondary)]`,onClick:()=>c(null),children:[(0,J.jsx)(g,{className:`h-3.5 w-3.5`}),(0,J.jsx)(`span`,{children:`Back to all usage`}),(0,J.jsx)(`span`,{className:`text-[var(--content-tertiary)]`,children:`/`}),(0,J.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-default)]`,children:s.usageSource===`runtime_proxy`?`LLM Spend`:`OAuth Spend`})]})}),s.usageSource===`runtime_proxy`&&(0,J.jsx)(`div`,{className:`w-56`,children:(0,J.jsx)(be,{items:Xt,value:s.llmDimension??`model`,onChange:e=>c({usageSource:`runtime_proxy`,llmDimension:e}),ariaLabel:`LLM spend dimension`})})]}),h?(0,J.jsx)(`div`,{className:`flex h-[345px] items-center justify-center rounded-xl bg-[var(--surface-base)]`,children:(0,J.jsx)(V,{className:`h-6 w-6 animate-spin text-[var(--content-tertiary)]`})}):_?(0,J.jsx)(`div`,{className:`flex h-[345px] items-center justify-center rounded-xl bg-[var(--surface-base)] text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Failed to load usage data.`}):d?(0,J.jsx)(`div`,{className:`rounded-xl bg-[var(--surface-base)] p-3`,children:(0,J.jsx)(eo,{buckets:d.buckets,metric:l,onBarClick:v})}):null]})})}function fo(){let{data:e}=u(yt()),t=w((0,K.useMemo)(()=>O(e),[e]));if(!e||e.plan_id!==`pro`||e.status===`canceled`||!e.cancel_at_period_end&&!e.cancel_at)return null;let n=k(e);return n?(0,J.jsx)(H,{tone:`info`,title:`Your Pro plan will end on ${ce(n)}.`,actions:(0,J.jsx)(i,{variant:`outlined`,size:`compact`,onClick:()=>t.mutate({}),disabled:t.isPending,leftIcon:t.isPending?(0,J.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 po={invoices:[]},mo=4;function ho(e){switch(e){case`paid`:return`positive`;case`open`:return`warning`;case`uncollectible`:return`negative`;default:return`neutral`}}function go(e,t){let n=t.toUpperCase();try{let t=new Intl.NumberFormat(void 0,{style:`currency`,currency:n}),r=t.resolvedOptions().maximumFractionDigits??2;return t.format(e/10**r)}catch{return`${(e/100).toFixed(2)} ${n}`}}function _o(e){return Mt(new Date(e*1e3),{alwaysShowYear:!0})}function vo(e){let t=document.createElement(`a`);t.href=e,t.target=`_blank`,t.rel=`noopener noreferrer`,document.body.appendChild(t),t.click(),t.remove()}function yo(){let[e,t]=(0,K.useState)(!1),[r,o]=(0,K.useState)(!1),[s,c]=(0,K.useState)(!1),l=u({enabled:e,queryKey:et(),queryFn:async({signal:e})=>{let{data:t,response:n}=await Re({throwOnError:!1,signal:e});if(n?.status===404)return po;if(!n?.ok||!t)throw Error(`Failed to load invoices (${n?.status??`network error`})`);return t}}),d=l.data?.invoices??[],f=r?d:d.slice(0,mo),h=d.length>mo;async function g(){c(!0);try{let{data:e,response:t}=await Le({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-ySSv1sQ7.js`).then(e=>e.t);return{saveFile:e}},__vite__mapDeps([0,1,2,3,4]));await n(e,`invoices.zip`)}catch(e){n(e,{context:`download_all_invoices`}),W.error(`Failed to download invoices.`)}finally{c(!1)}}return(0,J.jsx)(m,{padding:`md`,children:(0,J.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,J.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,J.jsxs)(`div`,{children:[(0,J.jsx)(p,{as:`h2`,variant:`title-medium`,className:`text-[var(--content-default)]`,children:`Invoices`}),(0,J.jsx)(p,{as:`p`,variant:`body-small-default`,className:`mt-2 text-[var(--content-tertiary)]`,children:`Your billing history.`})]}),(0,J.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[e&&d.length>0&&(0,J.jsx)(i,{variant:`outlined`,leftIcon:s?(0,J.jsx)(V,{className:`animate-spin`}):(0,J.jsx)(pe,{className:`h-4 w-4`}),onClick:g,disabled:s,"data-testid":`invoices-download-all`,children:`Download all`}),(0,J.jsx)(i,{variant:`outlined`,leftIcon:e?(0,J.jsx)(y,{className:`h-4 w-4`}):(0,J.jsx)(v,{className:`h-4 w-4`}),onClick:()=>t(e=>!e),"data-testid":`invoices-toggle`,children:e?`Hide invoices`:`Show invoices`})]})]}),e?l.isLoading?(0,J.jsxs)(`div`,{className:`flex items-center gap-2 py-6 text-[var(--content-tertiary)]`,children:[(0,J.jsx)(V,{className:`h-4 w-4 animate-spin`}),(0,J.jsx)(p,{as:`span`,variant:`body-small-default`,children:`Loading invoices...`})]}):l.isError?(0,J.jsx)(H,{tone:`error`,children:`Failed to load invoices.`}):d.length===0?(0,J.jsx)(p,{as:`p`,variant:`body-small-default`,className:`py-6 text-center text-[var(--content-tertiary)]`,"data-testid":`invoices-empty`,children:`No Invoices Found`}):(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`div`,{className:`overflow-x-auto`,children:(0,J.jsxs)(`table`,{className:`w-full`,"data-testid":`invoices-table`,children:[(0,J.jsx)(`thead`,{children:(0,J.jsxs)(`tr`,{className:`border-b border-[var(--border-base)] text-left`,children:[(0,J.jsx)(`th`,{className:`pb-2 pr-4 text-body-small-default text-[var(--content-tertiary)]`,children:`Date`}),(0,J.jsx)(`th`,{className:`pb-2 pr-4 text-body-small-default text-[var(--content-tertiary)]`,children:`Amount`}),(0,J.jsx)(`th`,{className:`pb-2 pr-4 text-body-small-default text-[var(--content-tertiary)]`,children:`Status`}),(0,J.jsx)(`th`,{className:`pb-2 text-body-small-default text-[var(--content-tertiary)]`,children:`Action`})]})}),(0,J.jsx)(`tbody`,{children:f.map(e=>(0,J.jsxs)(`tr`,{className:`border-b border-[var(--border-base)] last:border-0`,"data-testid":`invoice-row`,children:[(0,J.jsx)(`td`,{className:`py-3 pr-4`,children:(0,J.jsx)(p,{as:`span`,variant:`body-small-default`,className:`text-[var(--content-secondary)]`,children:_o(e.created)})}),(0,J.jsx)(`td`,{className:`py-3 pr-4`,children:(0,J.jsx)(p,{as:`span`,variant:`body-small-default`,className:`text-[var(--content-secondary)]`,children:go(e.amount_due,e.currency)})}),(0,J.jsx)(`td`,{className:`py-3 pr-4`,children:e.status&&(0,J.jsx)(Se,{tone:ho(e.status),children:e.status})}),(0,J.jsx)(`td`,{className:`py-3`,children:(0,J.jsxs)(`div`,{className:`flex items-center gap-1`,children:[e.hosted_invoice_url&&(0,J.jsx)(i,{asChild:!0,variant:`ghost`,size:`compact`,leftIcon:(0,J.jsx)(me,{className:`h-3.5 w-3.5`}),children:(0,J.jsx)(`a`,{href:e.hosted_invoice_url,target:`_blank`,rel:`noopener noreferrer`,children:`View`})}),e.invoice_pdf&&(0,J.jsx)(i,{variant:`ghost`,size:`compact`,iconOnly:(0,J.jsx)(pe,{className:`h-3.5 w-3.5`}),"aria-label":`Download invoice PDF`,onClick:()=>vo(e.invoice_pdf)})]})})]},e.id))})]})}),h&&(0,J.jsx)(`button`,{type:`button`,onClick:()=>o(e=>!e),className:`self-start text-body-small-default text-[var(--content-tertiary)] transition-colors hover:text-[var(--content-secondary)]`,"data-testid":`invoices-show-more`,children:r?`Show less`:`Show more (${d.length-mo} more)`})]}):null]})})}function bo({title:e,blurb:t,ctaLabel:n,ctaTestId:r,pending:a=!1,disabled:o=!1,onCtaClick:s,className:c}){return(0,J.jsxs)(`div`,{"data-theme":`dark`,className:kt(`flex min-w-0 flex-1 flex-col items-center justify-center gap-5 rounded-xl bg-[var(--surface-base)] py-5 pl-3 pr-4`,c),children:[(0,J.jsxs)(`div`,{className:`flex flex-col items-center gap-2 text-center`,children:[(0,J.jsx)(p,{as:`span`,variant:`body-large-default`,className:`text-[var(--content-default)]`,children:e}),t?(0,J.jsx)(p,{as:`span`,variant:`body-small-default`,className:`text-[var(--content-secondary)]`,children:t}):null]}),(0,J.jsx)(i,{variant:`primary`,className:`h-8 shrink-0`,onClick:s,disabled:o||a,leftIcon:a?(0,J.jsx)(V,{className:`h-4 w-4 animate-spin`}):void 0,"data-testid":r,children:n})]})}function xo({icon:e,label:t,multiline:n=!1}){return(0,J.jsxs)(`div`,{className:kt(`flex items-center gap-1.5 rounded-lg bg-[var(--surface-overlay)] px-2 py-1.5`,n?`min-h-8 min-w-0`:`h-8`),children:[(0,J.jsx)(e,{className:`h-3.5 w-3.5 shrink-0 text-[var(--content-default)]`,"aria-hidden":!0}),(0,J.jsx)(p,{as:`span`,variant:`body-medium-default`,className:kt(`text-[var(--content-default)]`,n?`whitespace-normal`:`whitespace-nowrap`),children:t})]})}function So({tierKey:e,name:t,nameTestId:n,tag:r,specs:i,className:a}){let o=i!=null&&i.length>0;return(0,J.jsxs)(`div`,{"data-theme":`light`,className:kt(`flex min-w-0 flex-1 flex-col items-center justify-center gap-4 rounded-xl bg-[var(--surface-base)] py-3 pl-3 pr-4`,a),children:[o?(0,J.jsx)(`div`,{className:`h-px w-full bg-[var(--border-base)]`}):null,(0,J.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,J.jsx)(M,{tier:e,size:48}),(0,J.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:[(0,J.jsx)(p,{as:`span`,variant:`body-large-default`,className:`text-[var(--content-default)]`,"data-testid":n,children:t}),r]})]}),o?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`div`,{className:`h-px w-full bg-[var(--border-base)]`}),(0,J.jsx)(`div`,{className:`flex flex-wrap items-center justify-center gap-2`,children:i.map(e=>(0,J.jsx)(xo,{icon:e.icon,label:e.label,multiline:e.multiline},e.label))})]}):null]})}var Co={pro:{actionLabel:`Manage`,actionVariant:`outlined`,actionTestId:`plan-card-manage-button`,showsRenewal:!0},base:{actionLabel:`View All Plans`,actionVariant:`primary`,actionTestId:`plan-card-upgrade-button`,showsRenewal:!0}},wo=Co.pro;function To(){return(0,J.jsx)(p,{as:`h2`,variant:`title-medium`,className:`text-[var(--content-emphasised)]`,children:`Plan`})}function Eo({packages:e,proPlan:t,currentKey:n,isProUser:r,canChangePackage:i,relation:a,onManage:o,onTierUpgraded:s}){let c=l(),u=d(pt()),{changePackage:f,isPending:p}=N(),{changeTiers:m,isPending:h,current:g,currentReady:_}=z({enabled:r}),[v,y]=(0,K.useState)(!1),[b,x]=(0,K.useState)(!1),[C,w]=(0,K.useState)(!1);oe();let T=(0,K.useMemo)(()=>!r||g.storageTier==null?null:{machineTier:g.machineTier,storageTier:g.storageTier,creditTier:g.creditTier},[r,g.machineTier,g.storageTier,g.creditTier]),E=S(e,n),D=e.length>0,O=E!=null&&a!==`switch`,k=r&&D&&(a===`switch`||E==null&&n!=null&&e.some(e=>e.key===n)),A=v||u.isPending||p,j=async()=>{if(!E)return;let e=await f(E.key);e&&(x(!1),e.status===`ok`?s?.():W.success(`You're already on this plan.`))},M=async()=>{if(E){if(r&&!i){o();return}if(r){x(!0);return}y(!0);try{let e=await u.mutateAsync({body:{target_plan_id:`pro`,package:E.key,confirm:!0,return_target:Bt()}});e.status===`redirect`&&e.checkout_url?(ze({kind:`package`,packageKey:E.key}),We(e.checkout_url)):(await c.invalidateQueries({queryKey:Tt()}),await c.invalidateQueries({queryKey:mt()}))}catch(e){W.error(ie(e,`Failed to start the upgrade checkout. Please try again.`))}finally{y(!1)}}},ee=async e=>{let t=await m(e);t&&(w(!1),t.needsResize?s?.():W.success(t.creditChanged?`Credit bundle updated.`:`Plan updated.`))},P=()=>{if(!i){o();return}if(!(h||!_)){if(T==null){o();return}w(!0)}},F=i&&(h||!_);return O?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(bo,{className:`lg:flex-[2]`,title:`Upgrade to ${E.name}`,blurb:I(E.key)?.upgradeBlurb,ctaLabel:`Upgrade`,ctaTestId:`recommended-upgrade-button`,pending:A,onCtaClick:()=>void M()}),(0,J.jsx)(R,{open:b,relation:a,packageName:E.name,targetPackage:E,pending:A,onConfirm:()=>void j(),onCancel:()=>x(!1)})]}):k&&t?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(bo,{className:`lg:flex-[2]`,title:`Create a custom plan`,ctaLabel:`Customize`,ctaTestId:`recommended-customize-button`,pending:h,disabled:F,onCtaClick:P}),(0,J.jsx)(re,{open:C,proPlan:t,pending:h,currentStorageGib:g.storageGib,initialSelection:T,onClose:()=>w(!1),onContinue:e=>void ee(e)})]}):null}function Do({onManage:e,onTierUpgraded:t}){let n=c(),r=u(yt()),a=u(Xe());if(r.isLoading||a.isLoading)return(0,J.jsxs)(m,{padding:`md`,children:[(0,J.jsx)(To,{}),(0,J.jsxs)(`div`,{className:`mt-4 flex items-center gap-2 text-[var(--content-tertiary)]`,children:[(0,J.jsx)(V,{className:`h-4 w-4 animate-spin`}),(0,J.jsx)(p,{as:`span`,variant:`body-small-default`,children:`Loading plan...`})]})]});let o=r.data,s=a.data?.plans,l=s?.find(e=>e.id===o?.plan_id);if(r.isError||a.isError||!o||!s||!l)return(0,J.jsx)(H,{tone:`error`,children:`Failed to load plan.`});let d=Co[l.id]??wo,f=l.id===`pro`?te(o.package):l.name??l.id,h=d.showsRenewal&&(o.cancel_at_period_end===!0||!!o.cancel_at),g=o.status===`canceled`,_=k(o),v=d.showsRenewal&&!h&&!g&&o.current_period_end,y=d.showsRenewal&&h&&!g&&_,b=s.find(e=>e.id===`pro`),x=b?.packages??[],S=o.package?.key??null,C=S??`free`,w=x.length>0&&(l.id===`base`||ne(o.package)||L(o)),T=L(o),E=l.id===`base`||ne(o.package)?`upgrade`:`switch`,D=l.id!==`base`&&ne(o.package)?x.find(e=>e.key===S)??null:null,O=D?ae(D):null;return(0,J.jsx)(m,{padding:`md`,children:(0,J.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,J.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,J.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1`,children:[(0,J.jsx)(To,{}),v&&(0,J.jsxs)(p,{variant:`body-small-default`,as:`div`,className:`leading-snug text-[var(--content-tertiary)]`,"data-testid":`plan-card-renews`,children:[`Monthly Payment • Your subscription will auto renew on`,` `,ce(o.current_period_end),`.`]}),y&&(0,J.jsxs)(p,{variant:`body-small-default`,as:`div`,className:`leading-snug text-[var(--system-mid-strong)]`,"data-testid":`plan-card-cancels`,children:[`Your plan ends on `,ce(_),`.`]})]}),(0,J.jsx)(i,{variant:d.actionVariant,onClick:w?()=>n(Be.plans):e,"data-testid":d.actionTestId,className:`shrink-0`,children:d.actionLabel})]}),(0,J.jsxs)(`div`,{className:`flex flex-col gap-2 lg:flex-row lg:items-stretch`,children:[(0,J.jsx)(So,{tierKey:C,name:f,nameTestId:`plan-card-name`,className:`lg:flex-[3]`,tag:(0,J.jsx)(Se,{className:`bg-[var(--feed-digest-weak)] text-[var(--content-default)]`,children:`Current Plan`}),specs:O}),(0,J.jsx)(Eo,{packages:x,proPlan:b,currentKey:S,isProUser:l.id!==`base`,canChangePackage:T,relation:E,onManage:e,onTierUpgraded:t})]})]})})}function Oo(){let[e]=o(),t=c(),n=l();return(0,K.useEffect)(()=>{let r=e.get(`billing_status`);r&&(r===`success`?(W.success(`Payment received! Your credit balance will update shortly.`,{id:`billing-status`}),n.invalidateQueries({queryKey:ht().queryKey})):r===`cancel`&&W.info(`Checkout was cancelled. No credits were added.`,{id:`billing-status`}),t(Be.settings.usageBilling,{replace:!0}))},[e,t,n]),null}function ko({onFinishSetup:e}){let t=Ue(),{data:n}=u({...yt(),enabled:t}),r=n?.plan_id===`pro`,{data:a}=u({...Ct(),enabled:r&&t}),o=r&&a?.domain_setup_available===!0,{domains:s}=E(o,a?.primary_assistant_id),c=s!==void 0&&s.results.length===0;return!o||!c?null:(0,J.jsx)(H,{tone:`info`,title:`Finish setting up your ${te(n?.package)} plan`,actions:(0,J.jsx)(i,{variant:`outlined`,size:`compact`,onClick:e,"data-testid":`finish-pro-setup-button`,children:`Finish setup`}),"data-testid":`finish-pro-setup-notice`,children:`Your assistant's email address hasn't been set up yet.`})}function Ao(){let e=G({platformHostedOnly:!0}),t=G(),n=He(),r=Ve(),[i,a]=o(),[s,c]=(0,K.useState)(!1),l=(0,K.useCallback)(()=>c(!0),[]),u=(0,K.useCallback)(()=>c(!1),[]),[d,f]=(0,K.useState)(!1),p=(0,K.useCallback)(()=>f(!0),[]),[m,h]=(0,K.useState)(!1);(0,K.useEffect)(()=>{if(t!==`full`)return;let e=i.has(`adjust_plan`),n=i.has(`pro_onboarding`);!e&&!n||(e&&c(!0),n&&h(!0),a(e=>{let t=new URLSearchParams(e);return t.delete(`adjust_plan`),t.delete(`pro_onboarding`),t},{replace:!0}))},[t,i,a]);let g=i.has(`session_id`),_=(0,K.useCallback)(()=>{h(!1),a(e=>{let t=new URLSearchParams(e);return t.delete(`session_id`),t},{replace:!0})},[a]),v=(0,K.useCallback)(()=>{a(e=>{let t=new URLSearchParams(e);return t.set(`pro_onboarding`,``),t},{replace:!0})},[a]);if(t===`disabled`)return(0,J.jsx)(`div`,{className:`space-y-4`,children:(0,J.jsx)(At,{children:`Log in to the Vellum platform to manage billing and usage.`})});if(r)return(0,J.jsx)(`div`,{className:`space-y-4`,children:(0,J.jsxs)(`div`,{className:`flex items-center gap-2 py-6 text-body-medium-lighter text-[var(--content-secondary)]`,children:[(0,J.jsx)(V,{className:`h-4 w-4 animate-spin`}),`Loading billing…`]})});let y=n,b=y||g||m;return!n&&e!==`gated`?(0,J.jsx)(`div`,{className:`space-y-4`,children:(0,J.jsx)(H,{tone:`warning`,children:`Billing isn't available for the current assistant state.`})}):(0,J.jsxs)(`div`,{className:`space-y-4`,children:[(0,J.jsxs)(K.Suspense,{fallback:null,children:[(0,J.jsx)(Oo,{}),(0,J.jsx)(Ca,{})]}),y&&(0,J.jsx)(fo,{}),y&&(0,J.jsx)(ko,{onFinishSetup:v}),y&&(0,J.jsx)(Do,{onManage:l,onTierUpgraded:p}),y&&(0,J.jsx)(Br,{open:s,onClose:u,onTierUpgraded:p}),(0,J.jsx)(K.Suspense,{fallback:null,children:(0,J.jsx)(ga,{})}),(0,J.jsx)(K.Suspense,{fallback:null,children:(0,J.jsx)(yo,{})}),b&&(0,J.jsx)(D,{open:g||m,onClose:_}),y&&(0,J.jsx)(D,{mode:`resize`,open:d,onClose:()=>f(!1)})]})}function jo(){let e=jt(),t=G({platformHostedOnly:!0}),n=G();return(0,J.jsxs)(`div`,{className:`space-y-4`,children:[t===`full`&&n!==`gated`&&(0,J.jsx)(uo,{}),(0,J.jsx)(_r,{assistantId:e})]})}function Mo(){let e=G(),[t,n]=o(),r=Gt(e,t),i=r&&t.get(`tab`)!==`usage`?`billing`:`usage`,a=Ie();return(0,K.useEffect)(()=>{if(a&&t.get(`tab`)!==i){let e=new URLSearchParams(t);e.set(`tab`,i),n(e,{replace:!0})}},[a,t,i,n]),(0,J.jsx)(`div`,{className:`space-y-6`,children:(0,J.jsxs)(ue.Root,{value:i,onValueChange:e=>{let r=new URLSearchParams(t);r.set(`tab`,e),n(r,{replace:!0})},children:[(0,J.jsxs)(ue.List,{children:[r&&(0,J.jsx)(ue.Trigger,{value:`billing`,children:`Billing`}),(0,J.jsx)(ue.Trigger,{value:`usage`,children:`Usage`})]}),r&&(0,J.jsx)(ue.Panel,{value:`billing`,className:`pt-4`,children:(0,J.jsx)(Ao,{})}),(0,J.jsx)(ue.Panel,{value:`usage`,className:`pt-4`,children:(0,J.jsx)(jo,{})})]})})}export{Mo as BillingPage};
@@ -1 +1 @@
1
- import{m as e,n as t}from"./chunk-5KNZJZUH-Bsoom5--.js";import{t as n}from"./jsx-runtime-D3ZM-ToX.js";import{u as r}from"./routes-vE-2hncW.js";var i=n();function a(){let[n]=e(),a=n.toString();return(0,i.jsx)(t,{replace:!0,to:`${r.settings.usage}${a?`?${a}`:``}`})}export{a as BillingRedirectPage};
1
+ import{m as e,n as t}from"./chunk-5KNZJZUH-Bsoom5--.js";import{t as n}from"./jsx-runtime-D3ZM-ToX.js";import{u as r}from"./routes-D9sNqB_o.js";var i=n();function a(){let[n]=e(),a=n.toString();return(0,i.jsx)(t,{replace:!0,to:`${r.settings.usage}${a?`?${a}`:``}`})}export{a as BillingRedirectPage};
@@ -1 +1 @@
1
- import{t as e}from"./button-Dy5001j6.js";import{u as t}from"./chunk-5KNZJZUH-Bsoom5--.js";import{t as n}from"./jsx-runtime-D3ZM-ToX.js";import{t as r}from"./card-DRIctGVs.js";import{n as i}from"./use-supports-bookmarks-C3J7FtDn.js";import{t as a}from"./loader-circle-XREx3i4W.js";import{t as o}from"./rotate-ccw-BjzeX7qz.js";import{t as s}from"./triangle-alert-CQfiAg_t.js";import{t as c}from"./x-JBAsSOmg.js";import{t as l}from"./conversation-navigation-Wm7_pLFs.js";import{n as u,t as d}from"./use-bookmarks-BbJtKyHe.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
+ import{t as e}from"./button-Dy5001j6.js";import{u as t}from"./chunk-5KNZJZUH-Bsoom5--.js";import{t as n}from"./jsx-runtime-D3ZM-ToX.js";import{t as r}from"./card-DRIctGVs.js";import{n as i}from"./use-supports-bookmarks-C3J7FtDn.js";import{t as a}from"./loader-circle-XREx3i4W.js";import{t as o}from"./rotate-ccw-BjzeX7qz.js";import{t as s}from"./triangle-alert-CQfiAg_t.js";import{t as c}from"./x-JBAsSOmg.js";import{t as l}from"./conversation-navigation-DsN0hcpL.js";import{n as u,t as d}from"./use-bookmarks-CK-nOiT-.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};