@vellumai/web 0.11.0-staging.1 → 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 (148) hide show
  1. package/dist/assets/access-DS79PSR3.js +1 -0
  2. package/dist/assets/{account-page-BQkbkIBf.js → account-page-D3ERiewh.js} +1 -1
  3. package/dist/assets/{acp-run-actions-BWR9i8MT.js → acp-run-actions-BH8wuBAL.js} +1 -1
  4. package/dist/assets/{acp-run-detail-panel-np07jHCY.js → acp-run-detail-panel-dqVK6rPq.js} +1 -1
  5. package/dist/assets/{activity-steps-panel-DA5HdB61.js → activity-steps-panel-xxl2hu3E.js} +1 -1
  6. package/dist/assets/{add-credential-modal-rP3DdyDH.js → add-credential-modal-CY_--m8L.js} +1 -1
  7. package/dist/assets/{ai-page-eBXLZw6t.js → ai-page-B02NwVRu.js} +1 -1
  8. package/dist/assets/{api-CI6Y6DLb.js → api-C3QSs67k.js} +1 -1
  9. package/dist/assets/{api-BlN0EOWF.js → api-LG8zI3nK.js} +1 -1
  10. package/dist/assets/{api-key-screen-B6aLgYrf.js → api-key-screen-CvBdN6Ae.js} +1 -1
  11. package/dist/assets/{app-card-A7PMnlAT.js → app-card-CAaFL1oB.js} +1 -1
  12. package/dist/assets/{assistant-feature-flag-store-DV5Zr1c4.js → assistant-feature-flag-store-CAdgpPiS.js} +1 -1
  13. package/dist/assets/{assistant-status-panel-CxMEVjFY.js → assistant-status-panel-BTnD-jhG.js} +1 -1
  14. package/dist/assets/{auth-store-BW4V6iLb.js → auth-store-5qq59BAN.js} +1 -1
  15. package/dist/assets/{avatar-random-BiEMZGl7.js → avatar-random-BMSYTcJK.js} +1 -1
  16. package/dist/assets/{background-task-actions-Y-aaTGGd.js → background-task-actions-DmP5s0oO.js} +1 -1
  17. package/dist/assets/{background-task-detail-panel-CGAeD1Ym.js → background-task-detail-panel-BCYAElGc.js} +1 -1
  18. package/dist/assets/{billing-page-5GkNMPN6.js → billing-page-B5j5TW_S.js} +1 -1
  19. package/dist/assets/{bookmarks-page-B1-9GBEx.js → bookmarks-page-D_Jr-a4Q.js} +1 -1
  20. package/dist/assets/build-state-m0LQ5Iis.js +1 -0
  21. package/dist/assets/{channels-page-route-BLy5uT8z.js → channels-page-route-BYP9SOw5.js} +1 -1
  22. package/dist/assets/{chat-avatar-DQx81apI.js → chat-avatar-CvEA6z0H.js} +1 -1
  23. package/dist/assets/{chat-markdown-message-CdM44BjA.js → chat-markdown-message-rxPKNeTx.js} +1 -1
  24. package/dist/assets/{checkout-continuation-DIMnSvv3.js → checkout-continuation-U3Pd2nxi.js} +1 -1
  25. package/dist/assets/{checkout-page-BZQpdPLT.js → checkout-page-C5_9GbP-.js} +1 -1
  26. package/dist/assets/{client-feature-flag-store-BDrcV52r.js → client-feature-flag-store-CMncoan8.js} +1 -1
  27. package/dist/assets/{command-palette-window-page-DAC710zo.js → command-palette-window-page-gq0zowBe.js} +1 -1
  28. package/dist/assets/{contacts-page-route-BF8J2JDt.js → contacts-page-route-DNoCUXE7.js} +1 -1
  29. package/dist/assets/{conversation-cache-DU44A0zv.js → conversation-cache-DKvwwWNo.js} +1 -1
  30. package/dist/assets/{conversation-list-fetchers-DLZho4T7.js → conversation-list-fetchers-DM-Y61u5.js} +1 -1
  31. package/dist/assets/conversation-navigation-DsN0hcpL.js +1 -0
  32. package/dist/assets/{conversation-queries-Bvh4bAZ6.js → conversation-queries-CWvK6RLK.js} +1 -1
  33. package/dist/assets/{credentials-page-DzlUvhn4.js → credentials-page-BsJFuOc9.js} +1 -1
  34. package/dist/assets/{debug-page-TgklOyxq.js → debug-page-BziypDgA.js} +1 -1
  35. package/dist/assets/{deploy-dialogs-Day3_9Lh.js → deploy-dialogs-DZSd5o9b.js} +1 -1
  36. package/dist/assets/{deploy-store-Brp7LoZ_.js → deploy-store-D6snB1j5.js} +1 -1
  37. package/dist/assets/{developer-page-BobJIDnJ.js → developer-page-QMFEIyBS.js} +1 -1
  38. package/dist/assets/{document-viewer-container-BIS1iPUz.js → document-viewer-container-B7TEDeV0.js} +1 -1
  39. package/dist/assets/{document-viewer-page-CcGTGI8C.js → document-viewer-page-3Eq8L562.js} +1 -1
  40. package/dist/assets/{emails-page-CbAcUM70.js → emails-page-Wr4wPSYl.js} +1 -1
  41. package/dist/assets/{eye-bbox-DU39FEUp.js → eye-bbox-C_V87iLg.js} +1 -1
  42. package/dist/assets/feature-flag-catalog-I9-eJQP_.js +1 -0
  43. package/dist/assets/{first-run-scope-DKYDP-Kz.js → first-run-scope-CL5YbC3b.js} +1 -1
  44. package/dist/assets/{general-page-CtfWmXZi.js → general-page-lbkufqHg.js} +1 -1
  45. package/dist/assets/{get-memory-stats-DMSpgqW_.js → get-memory-stats-BCYSpBF6.js} +1 -1
  46. package/dist/assets/hatching-screen-D81diZoa.js +1 -0
  47. package/dist/assets/{home-page-route-BV2GBxZi.js → home-page-route-CHe8eoLz.js} +1 -1
  48. package/dist/assets/{hosting-screen-CTtZrpXi.js → hosting-screen-D9atAksQ.js} +1 -1
  49. package/dist/assets/{identity-page-route-DsU3eoey.js → identity-page-route-CK3YsXCN.js} +1 -1
  50. package/dist/assets/{index-DMFNBbtE.js → index-0f48hi7h.js} +1 -1
  51. package/dist/assets/{inspect-page-BcTmA6nR.js → inspect-page-COwvbHtX.js} +1 -1
  52. package/dist/assets/{installed-plugins-query-C29LGAEV.js → installed-plugins-query-Cgek0q7G.js} +1 -1
  53. package/dist/assets/{integrations-page-CTST1yxp.js → integrations-page-CJOBwxXp.js} +1 -1
  54. package/dist/assets/{invalidate-plugin-queries-DamxiwYv.js → invalidate-plugin-queries-C3NTXkCX.js} +1 -1
  55. package/dist/assets/{latest-assistant-text-C0pZSmc9.js → latest-assistant-text-DOepZ_Io.js} +2 -2
  56. package/dist/assets/{library-detail-page-CI4p4bVi.js → library-detail-page-DVwI94NZ.js} +1 -1
  57. package/dist/assets/{library-page-SAKHIHZb.js → library-page-CNA794WY.js} +1 -1
  58. package/dist/assets/{local-runtime-upgrade-CoFpjlw3.js → local-runtime-upgrade-Bqn3d7Q7.js} +1 -1
  59. package/dist/assets/{login-flow-B4pa-3II.js → login-flow-CD9tyuFG.js} +1 -1
  60. package/dist/assets/{login-page-CVnwfJ3R.js → login-page-BNStrcnU.js} +1 -1
  61. package/dist/assets/{logout-page-km3RHlGI.js → logout-page-CpFeuLA_.js} +1 -1
  62. package/dist/assets/{logs-layout-D4Ubybh3.js → logs-layout-BUiPeZ4I.js} +1 -1
  63. package/dist/assets/{memory-page-route-JRgoyHnC.js → memory-page-route-C0cBV7HD.js} +1 -1
  64. package/dist/assets/{memory-router-playground-page-DvbF6E2-.js → memory-router-playground-page-D4UIq8mw.js} +1 -1
  65. package/dist/assets/{messages-Coz9buJR.js → messages-CFcAW4iz.js} +2 -2
  66. package/dist/assets/navigation-resolver-DPJxzx0h.js +1 -0
  67. package/dist/assets/{notifications-page-CWtQZnHw.js → notifications-page-ClfcJeLf.js} +1 -1
  68. package/dist/assets/{open-workspace-file-DNaU5wg2.js → open-workspace-file-DtK3a84K.js} +2 -2
  69. package/dist/assets/{page-empty-state-L-3_3LSi.js → page-empty-state-DT-tC1u6.js} +1 -1
  70. package/dist/assets/{personality-page-B621HU2-.js → personality-page-BJpW3UXD.js} +1 -1
  71. package/dist/assets/{plans-page-DAVt4mwm.js → plans-page-BDKqdYNM.js} +1 -1
  72. package/dist/assets/{platform-login-notice-BaCrIk0m.js → platform-login-notice-CdYiKsE8.js} +1 -1
  73. package/dist/assets/{platform-loopback-page-jBGJSmyh.js → platform-loopback-page-D0gXCm2S.js} +1 -1
  74. package/dist/assets/{privacy-page-DZEcN0PF.js → privacy-page-B0QN4qZO.js} +1 -1
  75. package/dist/assets/privacy-screen-vp4uUpm6.js +1 -0
  76. package/dist/assets/{provider-callback-page-BeDYWdc_.js → provider-callback-page-BH6DES7c.js} +1 -1
  77. package/dist/assets/{provider-key-1rLTitmu.js → provider-key-D2Nsf9zh.js} +1 -1
  78. package/dist/assets/{provider-signup-page-CVKaVhiB.js → provider-signup-page-BAPcG_iJ.js} +1 -1
  79. package/dist/assets/{react-query.gen-r3I6j8-1.js → react-query.gen-C5c1Acuq.js} +1 -1
  80. package/dist/assets/{research-onboarding-route-DwRSK3R4.js → research-onboarding-route-CFL3q__m.js} +2 -2
  81. package/dist/assets/{retire-confirm-dialog-BuS97P1t.js → retire-confirm-dialog-CsSY2-T8.js} +1 -1
  82. package/dist/assets/{review-terms-screen-CTNEkesk.js → review-terms-screen-BhyRQBjl.js} +1 -1
  83. package/dist/assets/{risk-DmicWnoH.js → risk-CdT92Vqr.js} +1 -1
  84. package/dist/assets/{routes-Bzk5oLRb.js → routes-CaP5Tqj7.js} +14 -14
  85. package/dist/assets/{runtime-upgrade-banner-DPMpuefs.js → runtime-upgrade-banner-DPqzKtZU.js} +1 -1
  86. package/dist/assets/{schedules-DIpn4jGl.js → schedules-6hzhR_C_.js} +1 -1
  87. package/dist/assets/{schedules-page-A9pwMmex.js → schedules-page-DVnUeaoB.js} +1 -1
  88. package/dist/assets/{sdk.gen-BVAVE6A_.js → sdk.gen-BHZ0fJla.js} +1 -1
  89. package/dist/assets/{select-assistant-screen-BPXqMOtp.js → select-assistant-screen-CVV3iqMy.js} +1 -1
  90. package/dist/assets/{settings-layout-CrOIplp2.js → settings-layout-B_4PKJr9.js} +1 -1
  91. package/dist/assets/{settings-navigation-Ccol_TOM.js → settings-navigation-CSG7jiyJ.js} +1 -1
  92. package/dist/assets/{share-feedback-modal-IyuFKIAE.js → share-feedback-modal-BoWCg4KH.js} +1 -1
  93. package/dist/assets/{sidebar-tree-_HwQiPki.js → sidebar-tree-C_PPNHe5.js} +1 -1
  94. package/dist/assets/{signup-page-D44Im_Pf.js → signup-page-D0S_8XYw.js} +1 -1
  95. package/dist/assets/{site-favicon-DzmWythg.js → site-favicon-BB1pYWLF.js} +1 -1
  96. package/dist/assets/{skill-detail-page-HW_A5KMG.js → skill-detail-page-CTobyK6L.js} +1 -1
  97. package/dist/assets/{skill-detail-panel-CrwVImjM.js → skill-detail-panel-CNzionF7.js} +1 -1
  98. package/dist/assets/{skills-Djg056es.js → skills-Cum1XWT2.js} +1 -1
  99. package/dist/assets/{sound-manager-DlaDOZ8r.js → sound-manager-Bx-OcMAz.js} +1 -1
  100. package/dist/assets/{sounds-page-CtII5pFQ.js → sounds-page-C45-RF4i.js} +1 -1
  101. package/dist/assets/{subagent-detail-panel-tuHcbKyo.js → subagent-detail-panel-DyyMdaNO.js} +1 -1
  102. package/dist/assets/subagent-store-MDi6lBXs.js +3 -0
  103. package/dist/assets/{superpowers-page-f4EChE6q.js → superpowers-page-CaLzK5D-.js} +1 -1
  104. package/dist/assets/{system-events-page-oxkNLamU.js → system-events-page-DXAU01ZO.js} +1 -1
  105. package/dist/assets/{theme-stage-page-5wL3M-2c.js → theme-stage-page-BDTCmutO.js} +1 -1
  106. package/dist/assets/{tool-detail-panel-BqhEUAMJ.js → tool-detail-panel-DFrWEWKG.js} +1 -1
  107. package/dist/assets/{transcript-message-body-shared-D3uxHQt5.js → transcript-message-body-shared-D9_d2c2X.js} +1 -1
  108. package/dist/assets/{upgrade-cancel-page-BRA25NVC.js → upgrade-cancel-page-eiJEAvFz.js} +1 -1
  109. package/dist/assets/{upgrade-success-page-BlZDEVkm.js → upgrade-success-page-Cb1Gl4MM.js} +1 -1
  110. package/dist/assets/{use-app-theme-CGie3Dma.js → use-app-theme-Dg8A6vPA.js} +1 -1
  111. package/dist/assets/{use-assistant-avatar-IcRIy2-c.js → use-assistant-avatar-bwLHcMz4.js} +1 -1
  112. package/dist/assets/{use-assistant-capability-C8pZDYlr.js → use-assistant-capability-CDS7GbSO.js} +1 -1
  113. package/dist/assets/{use-assistant-identity-details-CE6-JkNE.js → use-assistant-identity-details-9JRWxXTQ.js} +1 -1
  114. package/dist/assets/{use-bookmarks-CIhaNp5_.js → use-bookmarks-CK-nOiT-.js} +1 -1
  115. package/dist/assets/{use-checkout-dismiss-refresh-BpmG1OQ0.js → use-checkout-dismiss-refresh-CqGR_OsB.js} +1 -1
  116. package/dist/assets/{use-command-palette-sections-CXU-OW-6.js → use-command-palette-sections-CkpUaAKs.js} +1 -1
  117. package/dist/assets/{use-edit-app-CYK9-rGD.js → use-edit-app-B_Nequzs.js} +1 -1
  118. package/dist/assets/{use-invite-link-dialog-DdiGDpLS.js → use-invite-link-dialog-CPPOduk8.js} +1 -1
  119. package/dist/assets/{use-ios-app-nudge-t0SIn8xv.js → use-ios-app-nudge-B-ojl-b1.js} +1 -1
  120. package/dist/assets/{use-is-org-ready-D0q2NIZU.js → use-is-org-ready-C5xlYywh.js} +1 -1
  121. package/dist/assets/{use-onboarding-login-BmYpiSIt.js → use-onboarding-login-DI5gvqEG.js} +1 -1
  122. package/dist/assets/{use-platform-assistant-id-Cm5BfOD8.js → use-platform-assistant-id-DOsSt6k1.js} +1 -1
  123. package/dist/assets/{use-platform-gate-bFyCaLbM.js → use-platform-gate-C65D14xY.js} +1 -1
  124. package/dist/assets/{use-save-twilio-credentials-Bm-WW_5V.js → use-save-twilio-credentials-c9xG9RPK.js} +1 -1
  125. package/dist/assets/{use-skill-actions-C4J1lG_r.js → use-skill-actions-BAAx1Eia.js} +1 -1
  126. package/dist/assets/{use-skill-detail-files-BKtCag3o.js → use-skill-detail-files-BvOKvY0-.js} +1 -1
  127. package/dist/assets/{use-sticky-profiles-mC9bd8xU.js → use-sticky-profiles-CdWX0mgI.js} +1 -1
  128. package/dist/assets/{use-subagent-card-data-Dp1wCoRB.js → use-subagent-card-data-DHuNtSy9.js} +1 -1
  129. package/dist/assets/{utils-BCDvGOqU.js → utils-B0rBxtYP.js} +1 -1
  130. package/dist/assets/{viewer-store-Ct0SDE-n.js → viewer-store-DLk-jp8U.js} +1 -1
  131. package/dist/assets/{voice-list-IdN1mqlX.js → voice-list-CW8mzaHU.js} +1 -1
  132. package/dist/assets/{voice-page-CxWJ-zo7.js → voice-page-0zsCIOdT.js} +1 -1
  133. package/dist/assets/{voice-picker-modal-BHRanF0C.js → voice-picker-modal-PdsZwrsV.js} +1 -1
  134. package/dist/assets/{welcome-screen-jOvMiW_R.js → welcome-screen-DwOAZpZS.js} +1 -1
  135. package/dist/assets/{workflow-store-CMNMu-fc.js → workflow-store-lM7yKbUo.js} +1 -1
  136. package/dist/assets/workspace-page-D4NvhCv1.js +1 -0
  137. package/dist/assets/{workspace-tree-query-COH0vdQ-.js → workspace-tree-query-B1A-efgV.js} +1 -1
  138. package/dist/index.html +61 -61
  139. package/package.json +1 -1
  140. package/dist/assets/access-CHoOc28F.js +0 -1
  141. package/dist/assets/build-state-DaLynPsy.js +0 -1
  142. package/dist/assets/conversation-navigation-Bo95jhXQ.js +0 -1
  143. package/dist/assets/feature-flag-catalog-TjLF99gJ.js +0 -1
  144. package/dist/assets/hatching-screen-Btkqf3MF.js +0 -1
  145. package/dist/assets/navigation-resolver-D4jPigYv.js +0 -1
  146. package/dist/assets/privacy-screen-DXkQbNvk.js +0 -1
  147. package/dist/assets/subagent-store-CQKOOAm6.js +0 -3
  148. package/dist/assets/workspace-page-BZBNul96.js +0 -1
@@ -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{u as r}from"./chunk-5KNZJZUH-Bsoom5--.js";import{n as i}from"./QueryClientProvider-CMu7CkQU.js";import{t as a}from"./useQuery-Bz-fbQ-m.js";import{t as o}from"./useMutation-CXGTrp4W.js";import{t as s}from"./jsx-runtime-D3ZM-ToX.js";import{t as c}from"./typography-DEI9Ra9z.js";import{t as l}from"./createLucideIcon-CAM1RhH8.js";import{t as u}from"./arrow-right-B-jRJNWP.js";import{t as d}from"./check-sC49_hjU.js";import{t as f}from"./circle-alert-DVCpoZrc.js";import{t as p}from"./circle-check-CjGnAahM.js";import{t as m}from"./coins-Hrmb9tmj.js";import{n as h,t as g}from"./sliders-horizontal-slneqAyY.js";import{t as _}from"./hard-drive-DWFPKcXI.js";import{t as v}from"./info-vgPTIsGI.js";import{t as y}from"./triangle-alert-CQfiAg_t.js";import{t as b}from"./notice-BMK7xqUw.js";import{t as x}from"./modal-BR4CUFBd.js";import{n as S}from"./toast-LgLp4obE.js";import{t as C}from"./confirm-dialog-UYFm4osC.js";import{t as w}from"./dropdown-BCfnSdIZ.js";import{n as T}from"./resolved-assistants-store-Dw5UuGyB.js";import{A as E,D}from"./auth-store-BW4V6iLb.js";import{b as O,v as k}from"./native-biometric-BAMIyaSS.js";import{u as ee}from"./routes-D9sNqB_o.js";import{r as A}from"./use-is-org-ready-D0q2NIZU.js";import{n as j,r as M}from"./browser-CTZVDjOL.js";import{n as te}from"./use-assistant-avatar-IcRIy2-c.js";import{$ as N,C as P,O as F,at as I,c as ne,ct as L,et as R,it as re,jt as z,l as B,lt as ie,nt as ae,ot as oe,r as se,rt as ce,st as le,tt as ue,ut as V,y as de}from"./react-query.gen-BC3STDmV.js";import{t as H}from"./avatar-bundled-components-DPqbVXi9.js";import{n as U}from"./use-avatar-accent-var-vpakP1ce.js";import{t as fe}from"./misc-CuYswARt.js";import{t as W}from"./proxy-D7UPVac3.js";import{t as pe}from"./AnimatePresence-DPfyu3ET.js";import{t as me}from"./use-reduced-motion-W1fCe3vS.js";import{n as he,t as ge}from"./avatar-tone-BKwvoDSj.js";import{t as G}from"./chat-avatar-DQx81apI.js";import{t as _e}from"./avatar-renderer-ClUVcQmf.js";import{n as ve}from"./use-bundled-avatar-components-Bbs4vCnX.js";import{i as ye,n as be,r as K,t as xe}from"./machine-sizes-DO8duvpy.js";import{n as Se,r as Ce,t as we}from"./provisioning-targets-BTjyR9nk.js";import{t as Te}from"./environment-store-Bft0lpgv.js";var q=l(`computer`,[[`rect`,{width:`14`,height:`8`,x:`5`,y:`2`,rx:`2`,key:`wc9tft`}],[`rect`,{width:`20`,height:`8`,x:`2`,y:`14`,rx:`2`,key:`w68u3i`}],[`path`,{d:`M6 18h2`,key:`rwmk9e`}],[`path`,{d:`M12 18h6`,key:`aqd8w3`}]]),J=e(t(),1),Y=s();function Ee({icon:e}){return(0,Y.jsx)(`span`,{className:`flex h-11 w-11 items-center justify-center rounded-full`,style:{backgroundColor:`color-mix(in oklab, var(--system-negative-strong) 12%, transparent)`},children:(0,Y.jsx)(e,{className:`h-5 w-5`,style:{color:`var(--system-negative-strong)`},"aria-hidden":`true`})})}var De={fontFamily:`var(--font-serif)`,fontSize:`32px`,fontWeight:400,lineHeight:1.2,letterSpacing:`0.64px`};function Oe({title:e,subtitle:t}){return(0,Y.jsxs)(`header`,{className:`flex flex-col items-center gap-2 pt-12 text-center`,children:[(0,Y.jsx)(`h2`,{className:`text-[var(--content-emphasised)]`,style:De,children:e}),t&&(0,Y.jsx)(`p`,{className:`text-[14px] font-normal text-[var(--content-secondary)]`,children:t})]})}var ke=[{bodyShape:`star`,eyeStyle:`curious`,color:`yellow`,size:103,position:`-left-[28px] -top-[33px]`,rotate:180},{bodyShape:`star`,eyeStyle:`curious`,color:`orange`,size:109,position:`left-[63%] -top-[62px] -translate-x-1/2`,rotate:-8},{bodyShape:`blob`,eyeStyle:`grumpy`,color:`green`,size:76,position:`-right-[25px] top-[60px]`,rotate:1},{bodyShape:`stack`,eyeStyle:`gentle`,color:`purple`,size:110,position:`-left-[39px] top-[74%]`,rotate:0},{bodyShape:`urchin`,eyeStyle:`goofy`,color:`pink`,size:137,position:`-right-[42px] -bottom-[40px]`,rotate:180},{bodyShape:`sprout`,eyeStyle:`curious`,color:`orange`,size:72,position:`left-[37%] -bottom-[22px] -translate-x-1/2`,rotate:0}],Ae=[{bodyShape:`star`,eyeStyle:`curious`,color:`yellow`,size:103,position:`-left-[28px] -top-[33px]`,rotate:180},{bodyShape:`star`,eyeStyle:`curious`,color:`orange`,size:109,position:`left-[63%] -top-[62px] -translate-x-1/2`,rotate:-8},{bodyShape:`blob`,eyeStyle:`grumpy`,color:`green`,size:76,position:`-right-[25px] top-[60px]`,rotate:1}];function je({variant:e=`full`}){let t=ve();return t?(0,Y.jsx)(`div`,{"aria-hidden":`true`,"data-testid":`creature-corners`,className:`pointer-events-none absolute inset-0 select-none`,children:(e===`top`?Ae:ke).map((e,n)=>(0,Y.jsx)(`span`,{className:`absolute ${e.position}`,style:{rotate:`${e.rotate}deg`},children:(0,Y.jsx)(_e,{components:t,bodyShapeId:e.bodyShape,eyeStyleId:e.eyeStyle,colorId:e.color,size:e.size})},n))}):null}function Me(e,t=!0){let{data:n}=a({...se(),enabled:t&&e==null}),{data:r}=a({...F({path:{id:e??``}}),enabled:t&&e!=null});return e==null?n:r}function Ne({assistantId:e}){let t=r(),i=Me(e,A())?.name||`your assistant`;return(0,Y.jsxs)(`div`,{className:`relative flex min-h-[320px] flex-col items-center justify-center overflow-hidden px-8 pb-16 [animation:onboarding-step-in_350ms_ease-out] motion-reduce:[animation:none]`,children:[(0,Y.jsx)(je,{variant:`full`}),(0,Y.jsxs)(`div`,{className:`relative flex w-full flex-col items-center`,children:[(0,Y.jsx)(Oe,{title:`You're all set!`,subtitle:`Enjoy the new found power.`}),(0,Y.jsx)(`div`,{className:`mt-10 flex w-full flex-col items-center gap-10`,children:(0,Y.jsxs)(n,{variant:`primary`,"data-testid":`onboarding-complete-return`,onClick:()=>{e!=null&&E(e),t(ee.assistant,{replace:!0})},children:[`Return to `,i]})})]})]})}function Pe(e=!0,t){let n=Me(t,e),r=t??n?.id,{data:i,isError:o,isFetching:s,dataUpdatedAt:c,errorUpdatedAt:l}=a({...ne({path:{assistant_id:r??``}}),enabled:e&&!!r});return{assistant:n,assistantId:r,domains:i,domainsError:o,domainsFetching:s,domainsUpdatedAt:c,domainsErrorUpdatedAt:l}}var Fe=1e3,Ie=1e4,Le=2500,Re=2e3,ze=[`machine_size`,`subdomain`,`non_field_errors`],Be={subdomain_taken:`That subdomain is already taken. Try another.`,assistant_already_has_domain:`Your assistant already has a custom domain.`,no_assistant_to_attach_domain:`We couldn't find an assistant to attach this domain to.`,exceeds_machine_tier:`That machine size isn't available on your plan.`,provisioning_submission_failed:`We couldn't queue your upgrade just now. Try again in a moment.`,no_active_pro:`We couldn't confirm your Pro plan yet. Try again in a moment.`,no_provisionable_assistants:`We couldn't find an assistant to upgrade yet. Try again in a moment.`};function Ve(e,t){if(e&&typeof e==`object`){let t=e;if(typeof t.error==`string`){let e=Be[t.error];if(e)return e}for(let e of ze){let n=t[e];if(Array.isArray(n)&&typeof n[0]==`string`)return n[0]}if(typeof t.detail==`string`)return t.detail}return t}var He=`h-8 rounded-lg border border-[var(--border-element)] bg-[var(--field-bg)] px-2.5 text-[14px] text-[var(--content-default)] placeholder:text-[var(--content-tertiary)] outline-none transition-[border-color] duration-150 focus:border-[var(--border-active)] disabled:cursor-not-allowed disabled:opacity-60`,Ue=`text-[11px] font-medium text-[var(--content-secondary)]`;function We({onExit:e,machineBusy:t=!1,assistantId:r}){let a=i(),s=Te.use.emailRootDomain(),{assistant:c,assistantId:l,domains:u}=Pe(!0,r),d=u?.results[0],[f,p]=(0,J.useState)(``),[m,h]=(0,J.useState)(`hi`),[g,_]=(0,J.useState)(!1);(0,J.useEffect)(()=>{if(!g){if(d){p(d.subdomain),_(!0);return}!c?.handle||f||(p(c.handle),_(!0))}},[c?.handle,d,g,f]);let[v,y]=(0,J.useState)(null),[S,C]=(0,J.useState)(!1),w=o(I()),T=!!d||S,E=w.isPending||S;return(0,J.useEffect)(()=>{if(!S)return;let t=setTimeout(e,800);return()=>clearTimeout(t)},[S,e]),(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(x.Body,{className:`animate-[onboarding-step-in_350ms_ease-out] space-y-6 pb-0 motion-reduce:animate-none`,children:[(0,Y.jsx)(je,{variant:`top`}),(0,Y.jsx)(Oe,{title:`Assistant Email`,subtitle:`Set up an email for your assistant.`}),(0,Y.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,Y.jsxs)(`div`,{className:`flex items-end gap-2`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Y.jsx)(`label`,{htmlFor:`onboarding-email-prefix`,className:Ue,children:`Prefix`}),(0,Y.jsx)(`input`,{id:`onboarding-email-prefix`,value:m,onChange:e=>h(e.target.value.toLowerCase().trim()),disabled:E||T,readOnly:T,placeholder:`hi`,className:`${He} w-24`})]}),(0,Y.jsx)(`span`,{className:`flex h-8 items-center text-[var(--content-secondary)]`,children:`@`}),(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-1`,children:[(0,Y.jsx)(`label`,{htmlFor:`onboarding-email-handle`,className:Ue,children:`Handle (public)`}),(0,Y.jsx)(`input`,{id:`onboarding-email-handle`,value:f,onChange:e=>{p(e.target.value.toLowerCase().trim()),v&&y(null)},disabled:E||T,readOnly:T,autoFocus:!0,placeholder:`my-assistant`,"aria-invalid":!!v,className:`${He} w-full min-w-0`})]}),(0,Y.jsxs)(`span`,{className:`flex h-8 shrink-0 items-center text-[14px] text-[var(--content-tertiary)]`,children:[`.`,s]})]}),v&&(0,Y.jsx)(`p`,{className:`text-body-small-default text-[var(--system-negative-strong)]`,children:v}),T&&(0,Y.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`This domain has been set and cannot be changed.`})]}),t&&!T&&(0,Y.jsx)(b,{tone:`neutral`,children:`Your assistant is restarting — you can set the domain in a moment.`}),!T&&(0,Y.jsx)(b,{tone:`info`,className:`border-transparent bg-[var(--surface-active)]`,children:(0,Y.jsx)(`span`,{className:`font-medium text-[var(--content-tertiary)]`,children:`You won't be able to change the handle once set.`})}),S?(0,Y.jsx)(b,{tone:`success`,children:`Domain set — redirecting…`}):null]}),(0,Y.jsx)(x.Footer,{className:`items-center pt-6`,children:T?(0,Y.jsx)(n,{variant:`primary`,"data-testid":`onboarding-domain-continue`,onClick:e,children:`Continue`}):(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(n,{variant:`outlined`,"data-testid":`onboarding-domain-skip`,disabled:E,onClick:()=>{E||w.mutate({body:{skipped:!0}},{onSuccess:e,onError:()=>e()})},children:`Skip`}),(0,Y.jsx)(n,{variant:`primary`,"data-testid":`onboarding-domain-set`,disabled:!f||E||t,onClick:()=>{E||t||!f||w.mutate({body:{subdomain:f,...m?{email_username:m}:{}}},{onSuccess:()=>{y(null),C(!0),a.invalidateQueries({queryKey:de()}),a.invalidateQueries({queryKey:B({path:{assistant_id:l??``}})}),a.invalidateQueries({queryKey:L()})},onError:e=>{y(Ve(e,`Couldn't register that subdomain. Try a different one.`))}})},children:`Next`})]})})]})}function Ge({onGoToBilling:e}){return(0,Y.jsxs)(`div`,{className:`flex flex-col items-center gap-4 px-6 py-10 text-center`,children:[(0,Y.jsx)(Ee,{icon:f}),(0,Y.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,Y.jsx)(c,{variant:`title-small`,as:`h1`,children:`Couldn't reach billing`}),(0,Y.jsx)(c,{variant:`body-medium-lighter`,as:`p`,className:`text-[var(--content-secondary)]`,children:`We hit a problem checking your subscription. Your upgrade may still be processing — return to billing to refresh.`})]}),(0,Y.jsx)(n,{variant:`primary`,"data-testid":`onboarding-go-to-billing`,onClick:e,children:`Go to billing`})]})}function Ke(e){let{targets:t,fromSnapshot:n,credits:r}=e,i=[];return t.machineSize!=null&&i.push({key:`machine`,label:`Machine`,from:n.machineSize!=null&&n.machineSize!==t.machineSize?K[n.machineSize]:void 0,to:K[t.machineSize]}),t.storageGib!=null&&i.push({key:`storage`,label:`Storage`,from:n.storageGib!=null&&n.storageGib!==t.storageGib?`${n.storageGib} GB`:void 0,to:`${t.storageGib} GB`}),r!=null&&i.push({key:`credits`,label:`Credits`,from:r.from,to:r.to}),i}var qe=60,Je=qe*2;function Ye({imageUrl:e,animateIn:t=!0}){return(0,Y.jsxs)(`div`,{"aria-hidden":!0,"data-testid":`takeover-backdrop`,className:`pointer-events-none absolute inset-0 overflow-hidden${t?` provision-avatar-reveal`:``}`,children:[(0,Y.jsx)(`img`,{src:e,alt:``,decoding:`async`,draggable:!1,className:`absolute left-1/2 top-1/2 max-w-none -translate-x-1/2 -translate-y-1/2 object-cover object-center`,style:{filter:`blur(${qe}px)`,width:`calc(100% + ${Je*2}px)`,height:`calc(100% + ${Je*2}px)`}}),(0,Y.jsx)(`div`,{className:`absolute inset-0 bg-black/55`})]})}function Xe(e,t){if(t!=null)return e?.credit_tiers?.find(e=>e.tier===t)}function Ze(e,t){let n=e?.find(e=>e.id===`pro`);return Xe(n,t)?.label??null}function Qe(e){let t=A(),{data:n}=a({...N(),enabled:t&&e!=null});if(e==null)return null;let r=n?.plans.find(e=>e.id===`pro`);if(r==null)return null;if(e.kind===`package`){let t=r.packages.find(t=>t.key===e.packageKey);return Xe(r,t?.credit_tier)?.label??(t?.credits_usd==null?null:`${t.credits_usd} credits`)}return Ze(n?.plans,e.creditTier)}function $e(e){let t=A(),{data:n}=a({...N(),enabled:t&&e!=null});return Ze(n?.plans,e)}function et(e){let t=T.use.activeAssistantId(),n=e===void 0?t:e,{components:r,traits:i,customImageUrl:a,isLoading:o}=te(n),s=n!=null&&!o,c=U(r,i)??(a?null:(r??H).colors?.[0]?.hex??null);return{tintHex:s&&c?he(c):ge,backdropImageUrl:s?a:null,ready:s,avatar:{components:r,traits:i,customImageUrl:a}}}function tt(e,t){let{intervalMs:n,enabled:r}=t,[i,a]=(0,J.useState)(0);return(0,J.useEffect)(()=>{if(!r||e<=1){a(0);return}let t=setInterval(()=>{a(t=>(t+1)%e)},n);return()=>{clearInterval(t),a(0)}},[e,n,r]),!r||e<=1?0:Math.min(i,e-1)}function nt(e,t){let[n,r]=(0,J.useState)(e),i=(0,J.useRef)(0);return(0,J.useEffect)(()=>{i.current=performance.now()},[]),(0,J.useEffect)(()=>{if(t<=0||e===n)return;let a=t-(performance.now()-i.current);if(a<=0){i.current=performance.now(),r(e);return}let o=setTimeout(()=>{i.current=performance.now(),r(e)},a);return()=>clearTimeout(o)},[e,n,t]),t<=0?e:n}var rt=`--takeover-surface`,it=`var(${rt},${ge})`,at=`color-mix(in srgb, var(--content-emphasised) 10%, transparent)`,ot=2,st=2500,ct=240,lt=1.414,ut=[{minHeight:680,size:ct},{minHeight:600,size:184}],dt=132;function ft(e){for(let t of ut)if(e>=t.minHeight)return t.size;return dt}function pt(){let[e,t]=(0,J.useState)(()=>ft(typeof window>`u`?1/0:window.innerHeight));return(0,J.useEffect)(()=>{let e=()=>t(ft(window.innerHeight));return window.addEventListener(`resize`,e),()=>window.removeEventListener(`resize`,e)},[]),e}var mt={machine:h,storage:_,credits:m},ht={idle:``,working:` is-working`,settling:` is-settling`,stalled:` is-stalled`,grown:` is-evolved`};function gt(e,t){return e===`DONE`||e===`NOT_APPLICABLE`?`grown`:e===`STALLED`?`stalled`:e===`WAITING`||e===`RESIZING`?t?`settling`:`working`:`idle`}function _t({assistantId:e,mode:t}){let{avatar:n,ready:r}=et(e),i=ve(),a=pt(),o=t===`working`||t===`settling`;return(0,Y.jsxs)(`div`,{"aria-hidden":!0,className:`provision-avatar-evolve relative z-10 flex flex-col items-center${ht[r?t:`idle`]}`,style:{"--provision-avatar-size":`${a}px`,"--provision-avatar-growth":lt},children:[(0,Y.jsx)(`div`,{className:`provision-avatar-stage`,children:(0,Y.jsx)(`div`,{className:`provision-avatar-layer`,children:(0,Y.jsx)(`div`,{className:`provision-avatar-current`,children:(0,Y.jsx)(`div`,{className:`provision-avatar-strain`,children:r&&(0,Y.jsx)(`div`,{className:`provision-avatar-reveal`,children:(0,Y.jsx)(G,{components:n.components??i,traits:n.traits,customImageUrl:n.customImageUrl,size:a,isAssistantBusy:o})})})})})}),(0,Y.jsx)(`div`,{className:`provision-avatar-shadow`})]})}function X({status:e,caption:t}){return(0,Y.jsxs)(`div`,{className:`flex flex-col items-center gap-1.5`,children:[(0,Y.jsx)(`h1`,{className:`text-[var(--content-emphasised)]`,style:De,children:e}),t&&(0,Y.jsx)(c,{variant:`body-medium-lighter`,as:`p`,className:`max-w-sm text-[var(--content-secondary)]`,children:t})]})}function Z({icon:e,label:t,from:n,to:r,done:i=!1}){return(0,Y.jsxs)(`div`,{className:`flex flex-1 items-center gap-2 rounded-lg px-2 py-1.5`,style:{backgroundColor:at},children:[(0,Y.jsx)(`span`,{className:`flex h-6 w-6 shrink-0 items-center justify-center`,children:(0,Y.jsx)(e,{className:`h-3.5 w-3.5 text-[var(--content-tertiary)]`,"aria-hidden":`true`})}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1 text-left`,children:[(0,Y.jsx)(`span`,{className:`text-[12px] font-medium leading-tight text-[var(--content-tertiary)]`,children:t}),(0,Y.jsxs)(`span`,{className:`flex items-center gap-1.5 text-[14px] font-medium leading-[18px] text-[var(--content-emphasised)]`,children:[n&&(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`span`,{children:n}),(0,Y.jsx)(u,{className:`h-3 w-3 shrink-0 text-[var(--content-tertiary)]`,"aria-hidden":`true`})]}),(0,Y.jsx)(`span`,{children:r}),i&&(0,Y.jsx)(d,{className:`h-3.5 w-3.5 shrink-0 text-[var(--system-positive-strong)]`,"aria-hidden":`true`})]})]})]})}function vt({label:e}){return(0,Y.jsx)(`span`,{className:`rounded-lg px-3 py-2 text-[14px] text-[var(--content-emphasised)]`,style:{backgroundColor:at},children:e})}function Q({children:e}){return(0,Y.jsx)(`div`,{className:`flex w-full max-w-sm flex-wrap items-stretch justify-center gap-2`,children:e})}function yt({intent:e,targets:t,fromSnapshot:n}){let r=Qe(e),i=me(),a=Ke({targets:t,fromSnapshot:n,credits:r?{from:`0`,to:r}:null}),o=a.length>ot&&!i,s=tt(a.length,{intervalMs:st,enabled:o});if(a.length===0)return null;if(o){let e=a[s];return(0,Y.jsx)(Q,{children:(0,Y.jsx)(pe,{mode:`popLayout`,initial:!1,children:(0,Y.jsx)(W.div,{className:`flex flex-1`,initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.25},children:(0,Y.jsx)(Z,{icon:mt[e.key],label:e.label,from:e.from,to:e.to,done:!1})},e.key)})})}return(0,Y.jsx)(Q,{children:a.map(e=>(0,Y.jsx)(Z,{icon:mt[e.key],label:e.label,from:e.from,to:e.to,done:!1},e.key))})}function bt({intent:e}){return e.kind===`package`?(0,Y.jsx)(Q,{children:(0,Y.jsx)(vt,{label:`${e.packageKey.charAt(0).toUpperCase()+e.packageKey.slice(1)} package`})}):(0,Y.jsxs)(Q,{children:[e.machineTier!=null&&(0,Y.jsx)(Z,{icon:h,label:`Machine`,to:xe[e.machineTier]??e.machineTier}),e.storageTier!=null&&(0,Y.jsx)(Z,{icon:_,label:`Storage`,to:e.storageTier.toUpperCase()}),e.creditTier!=null&&(0,Y.jsx)(vt,{label:`${e.creditTier.replace(`credits_`,``)} credits`})]})}function xt({targets:e,fromSnapshot:t,done:n=!1}){return(0,Y.jsx)(Q,{children:Ke({targets:e,fromSnapshot:t,credits:null}).map(e=>(0,Y.jsx)(Z,{icon:mt[e.key],label:e.label,from:n?void 0:e.from,to:e.to,done:n},e.key))})}function St({state:e,softWaiting:t,intent:r,resizeCredits:i,targets:a,fromSnapshot:o,celebrating:s,onCelebrationEnd:c,assistantId:l,escapeAvailable:u,onEscape:d,onPhaseChange:f,kickError:p,confirm:m,dwellMs:h=Le,phaseMinMs:g=900}){let _=i!==void 0,v=$e(i??null),y=(0,J.useRef)(c);(0,J.useEffect)(()=>{y.current=c},[c]);let b=nt(e,g),x=b===`DONE`||b===`NOT_APPLICABLE`,S=b===`RESIZING`?`WAITING`:b,C=(0,J.useRef)(f);(0,J.useEffect)(()=>{C.current=f},[f]),(0,J.useEffect)(()=>{C.current?.(b)},[b]);let{tintHex:w,backdropImageUrl:T}=et(l),E=s&&x;return(0,J.useEffect)(()=>{if(!E)return;let e=setTimeout(()=>y.current(),h);return()=>clearTimeout(e)},[E,h]),(0,Y.jsxs)(`div`,{"data-theme":`dark`,className:`provision-surface-settle relative flex h-full min-h-[420px] w-full flex-col items-center [justify-content:safe_center] gap-10 px-6 py-10 text-center`,style:{[rt]:w,backgroundColor:it},children:[T&&(0,Y.jsx)(Ye,{imageUrl:T}),(0,Y.jsx)(_t,{assistantId:l,mode:gt(b,t)}),(0,Y.jsx)(`div`,{className:`relative z-10 flex min-h-[144px] w-full flex-col items-center gap-8 [animation:onboarding-step-in_420ms_ease-out] motion-reduce:[animation:none]`,children:k()},S)]});function D(e=`Continue in the background`){return u?(0,Y.jsx)(n,{variant:`ghost`,"data-testid":`provisioning-escape`,onClick:d,children:e}):null}function O(){return _?(0,Y.jsx)(Q,{children:v==null?(0,Y.jsx)(vt,{label:`Credits updated`}):(0,Y.jsx)(Z,{icon:mt.credits,label:`Credits`,to:v,done:!0})}):null}function k(){if(b===`CONFIRMING`)return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(X,{status:`Confirming your upgrade…`,caption:`This might take a couple seconds.`}),r&&(0,Y.jsx)(bt,{intent:r}),D()]});if(b===`WAITING`||b===`RESIZING`)return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(X,{status:`Upgrading your assistant…`,caption:t?`Still working — this can take a minute or two.`:`This might take a couple seconds.`}),(0,Y.jsx)(yt,{intent:r,targets:a,fromSnapshot:o}),D()]});if(b===`DONE`)return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(X,{status:`All done!`}),(0,Y.jsx)(xt,{targets:a,fromSnapshot:o,done:!0}),O()]});if(b===`NOT_APPLICABLE`)return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(X,{status:`Your plan is ready`}),O()]});if(b===`STALLED`){let e=p!=null;return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(X,{status:e?`We hit a snag upgrading your assistant`:`This is taking longer than expected`,caption:e?Ve(p,`Retry in the background — we'll keep working on your upgrade.`):`This may take a couple of minutes.`}),(0,Y.jsx)(yt,{intent:r,targets:a,fromSnapshot:o}),e?D(`Retry in the background`):D()]})}return b===`CONFIRM_TIMEOUT`?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(X,{status:`Still confirming your upgrade`,caption:`Your payment went through safely — this can take a minute.`}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-2 pt-1`,children:[(0,Y.jsx)(n,{variant:`outlined`,"data-testid":`onboarding-go-to-billing`,onClick:m.onGoToBilling,children:`Go to billing`}),(0,Y.jsx)(n,{variant:`primary`,"data-testid":`onboarding-retry`,onClick:m.onRetry,children:`Try again`})]})]}):null}}function Ct(e){let{planId:t,targets:n,actuals:r,initialActuals:i,resizeOperationInFlight:a,sawOperation:o,msSinceWatchStart:s,confirmExpired:c,serverVerdict:l=null,statusObservedSinceTargetsMet:u=!0}=e;if(t!==`pro`)return{state:c?`CONFIRM_TIMEOUT`:`CONFIRMING`,softWaiting:!1};let d=o||a,f=l===`started`||l===`in_progress`,p=o||u;if(!a){let e=f?p:d||l===`already_done`||i!=null&&!Ce(n,i);if(Ce(n,r)){if(e)return{state:`DONE`,softWaiting:!1};if(!f)return{state:`NOT_APPLICABLE`,softWaiting:!1}}else{if(l===`already_done`)return{state:`DONE`,softWaiting:!1};if(l===`not_applicable`)return{state:`NOT_APPLICABLE`,softWaiting:!1}}}return s!=null&&s>=9e4?{state:`STALLED`,softWaiting:!1}:d||l===`started`||l===`in_progress`?{state:`RESIZING`,softWaiting:!1}:{state:`WAITING`,softWaiting:s!=null&&s>=3e4}}var wt=2e3,Tt=1e3,Et=[`DONE`,`NOT_APPLICABLE`,`CONFIRM_TIMEOUT`];function Dt({open:e}){let t=i(),n=A(),[r,s]=(0,J.useState)(!1),[c,l]=(0,J.useState)(0),[u,d]=(0,J.useState)(null),[f,p]=(0,J.useState)(null),[m,h]=(0,J.useState)(null),[g,_]=(0,J.useState)(null),[v,y]=(0,J.useState)(null),[b,x]=(0,J.useState)(null),[S,C]=(0,J.useState)(null),[w,T]=(0,J.useState)(!1),E=(0,J.useRef)(!1),O=(0,J.useRef)(!1),k=(0,J.useRef)(0),[ee,j]=(0,J.useState)(!1),[M,te]=(0,J.useState)(null),[N,I]=(0,J.useState)(null),[ne,R]=(0,J.useState)(()=>Date.now()),[re,z]=(0,J.useState)(!0);(0,J.useEffect)(()=>{e||(s(!1),l(0),d(null),p(null),h(null),j(!1),te(null),I(null),z(!0),_(null),y(null),x(null),C(null),T(!1),E.current=!1,O.current=!1,k.current+=1)},[e]),(0,J.useEffect)(()=>{e&&(d(Date.now()),t.invalidateQueries({queryKey:V()}),t.invalidateQueries({queryKey:L()}))},[e,t]);let B=f!=null,ae=a({...ie(),refetchInterval:e=>e.state.data?.plan_id===`pro`||r?!1:Fe,refetchIntervalInBackground:!1,enabled:e&&n&&!B}),ce=(u!=null&&ae.dataUpdatedAt>=u?ae.data?.plan_id:null)??null;(0,J.useEffect)(()=>{if(!e||B||ce!==`pro`)return;let t=Date.now();p(t),R(t)},[e,B,ce]),(0,J.useEffect)(()=>{if(!e||B)return;let t=setTimeout(()=>s(!0),Ie);return()=>clearTimeout(t)},[e,B,c]);let ue=(0,J.useCallback)(()=>{s(!1),l(e=>e+1),D.getState().fetchOrganizations(),t.invalidateQueries({queryKey:V()})},[t]),de=(0,J.useCallback)(()=>{let e=Date.now();h(e),R(e)},[]),{mutate:H}=o(oe()),U=(0,J.useCallback)(e=>{let t=k.current;H({},{onSuccess:n=>{t===k.current&&(C(null),we(n)?O.current?C({error:n.reason??`no_active_pro`}):(O.current=!0,T(!0),e===`escape`&&de()):(_(n.state),e===`escape`&&de()))},onError:e=>{t===k.current&&C(e)}})},[H,de]);(0,J.useEffect)(()=>{!e||!n||!B||E.current||(E.current=!0,U(`auto`))},[e,n,B,U]),(0,J.useEffect)(()=>{if(!w)return;let e=k.current,t=setTimeout(()=>{T(!1),e===k.current&&U(`auto`)},Re);return()=>clearTimeout(t)},[w,U]);let fe=(0,J.useCallback)(()=>U(`escape`),[U]),W=a({...le(),enabled:e&&n&&B}),pe=re?wt:!1,me=a({...se(),enabled:e&&n&&B,refetchInterval:e=>e.state.data?.id==null?pe:!1,retry:!1}),he=B&&u!=null&&W.dataUpdatedAt>=u,ge=he&&!W.isPending&&!W.isFetching,G=(he?W.data?.primary_assistant_id:null)??(W.isPending?null:me.data?.id??null),_e=a({...F({path:{id:G??`unresolved`}}),enabled:e&&n&&B&&G!=null,refetchInterval:pe,retry:!1}),ve=a({...P({path:{id:G??`unresolved`}}),enabled:e&&n&&B&&G!=null,refetchInterval:pe,retry:!1}),be=Se(ve.data);(0,J.useEffect)(()=>{be&&j(!0)},[be]);let K=W.data,xe=(0,J.useMemo)(()=>K?{machineSize:ye(K.max_machine_tier).at(-1)??null,storageGib:K.selected_storage_gib??null}:null,[K]),Te=K?K.domain_setup_available&&K.primary_assistant_id!=null:void 0,q=_e.data,Y=(0,J.useMemo)(()=>q?{machineSize:q.machine_size??null,storageGib:q.provisioned_storage_gib??null}:null,[q]),Ee=N===G,De=Ce(xe,Y),Oe=b===G;(0,J.useEffect)(()=>{e&&(De?(y(e=>e!=null&&Oe?e:Date.now()),x(G)):(y(null),x(null)))},[e,De,G,Oe]),(0,J.useEffect)(()=>{!e||!Y||M!=null&&Ee||(te(Y),I(G))},[e,Y,G,M,Ee]);let ke=m??f,Ae=ke==null?null:Math.max(0,ne-ke),{state:je,softWaiting:Me}=Ct({planId:B?`pro`:ce,targets:xe,actuals:Y,initialActuals:Ee?M:null,resizeOperationInFlight:be,sawOperation:ee,msSinceWatchStart:Ae,confirmExpired:r,serverVerdict:g,statusObservedSinceTargetsMet:v!=null&&Oe&&ve.dataUpdatedAt>v}),Ne=Et.includes(je),Pe=e&&B&&!Ne;return(0,J.useEffect)(()=>{z(Pe)},[Pe]),(0,J.useEffect)(()=>{if(!e||!B||Ne)return;let t=setInterval(()=>R(Date.now()),Tt);return()=>clearInterval(t)},[e,B,Ne]),{state:je,softWaiting:Me,targets:xe,actualsSnapshot:M,assistantId:G,domainStepAvailable:Te,onboardingSettled:ge,confirmError:!B&&ae.isError,targetsError:B&&W.isError&&(!K||!he),escapeEligible:Ae!=null&&Ae>=6e4,retryConfirm:ue,kickProvisioning:fe,kickError:S}}var Ot=200,kt=380;function At(){return typeof window<`u`&&window.matchMedia?.(`(prefers-reduced-motion: reduce)`).matches===!0}var jt=e=>e===`WAITING`||e===`RESIZING`||e===`STALLED`,Mt=e=>e===`DONE`||e===`NOT_APPLICABLE`,Nt={machineSize:null,storageGib:null};function Pt({open:e,onClose:t,dwellMs:n,phaseMinMs:r,mode:a=`checkout`,resizeCredits:o}){let s=a===`resize`,c=i(),[l,u]=(0,J.useState)(`provisioning`),[d,f]=(0,J.useState)(`idle`),p=(0,J.useRef)([]),[m,h]=(0,J.useState)(null),[g,_]=(0,J.useState)(null),[v,y]=(0,J.useState)(null),[b,w]=(0,J.useState)(!1),T=Dt({open:e});(0,J.useEffect)(()=>{if(e){h(s?null:O()),y(e=>e??Date.now());return}p.current.forEach(clearTimeout),p.current=[],u(`provisioning`),f(`idle`),_(null),y(null),w(!1)},[e,s]),(0,J.useEffect)(()=>()=>{p.current.forEach(clearTimeout)},[]),(0,J.useEffect)(()=>{l===`complete`&&k()},[l]);let E=jt(T.state),D=Mt(g??T.state),{targets:ee,assistantId:A,domainStepAvailable:j,onboardingSettled:M}=T,{tintHex:te,backdropImageUrl:N}=et(A),P=s&&j===!0,{domains:F,domainsError:I,domainsFetching:ne,domainsUpdatedAt:L,domainsErrorUpdatedAt:R}=Pe(e&&P,A),re=(F?.results.length??0)>0,z=(0,J.useRef)(null);(0,J.useEffect)(()=>{if(!e){z.current=null;return}!P||A==null||z.current!==A&&(z.current=A,c.invalidateQueries({queryKey:B({path:{assistant_id:A}})}))},[e,P,A,c]);let ie=!ne&&(v!=null&&L>=v||v!=null&&!!I&&R>=v),[ae,oe]=(0,J.useState)(!1),se=M&&(!P||ie);(0,J.useEffect)(()=>{if(!e){oe(!1);return}se&&oe(!0)},[e,se]);let ce=(0,J.useCallback)(()=>{let e=s?j===!0&&!re?`domain`:`complete`:j===!1?`complete`:`domain`;if(At()){u(e);return}f(`covering`),p.current.push(setTimeout(()=>{u(e),f(`revealing`),p.current.push(setTimeout(()=>f(`idle`),kt))},Ot))},[j,s,re]),le=(0,J.useCallback)(()=>{w(!0)},[]),ue=(0,J.useCallback)(()=>{T.kickProvisioning(),S.info(T.kickError==null?`Your upgrade continues in the background.`:`We'll retry your upgrade in the background.`),w(!1),t()},[T,t]),V=(0,J.useCallback)(()=>{w(!1)},[]),de=l===`provisioning`&&(T.confirmError||T.targetsError),H=l===`provisioning`&&!de,U=H&&!D,fe=`transition-[background-color] duration-300 ease-out${H?` bg-black p-0`:``}`,W=H?`[animation:fadeIn_0.45s_ease-out_both]`:d===`revealing`?`[animation:fadeInUp_0.42s_ease-out_0.12s_both]`:`[animation:fadeIn_0.25s_ease-out_both]`;return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(x.Root,{open:e,onOpenChange:e=>{e||t()},children:(0,Y.jsxs)(x.Content,{size:`md`,hideCloseButton:l!==`complete`,dismissOnOverlayClick:!U,onEscapeKeyDown:U?e=>e.preventDefault():void 0,onInteractOutside:U?e=>e.preventDefault():void 0,"data-theme":H?`dark`:void 0,overlayClassName:fe,className:H?`overflow-y-auto inset-0 max-w-none w-screen h-screen max-h-none rounded-none border-0`:`overflow-hidden`,style:{[rt]:te},children:[(0,Y.jsx)(`div`,{className:`flex min-h-0 flex-1 flex-col motion-reduce:[animation:none] ${W}`,children:pe()},l),d!==`idle`&&(0,Y.jsx)(`div`,{"aria-hidden":!0,"data-testid":`takeover-exit-sheet`,className:`pointer-events-none fixed inset-0 z-50 ${d===`covering`?`[animation:fadeIn_200ms_ease-in_both]`:`[animation:fadeIn_380ms_ease-out_both_reverse]`}`,style:{backgroundColor:it},children:N&&(0,Y.jsx)(Ye,{imageUrl:N,animateIn:!1})})]})}),(0,Y.jsx)(C,{open:b&&E,title:`Continue in the background?`,message:`Your assistant is still upgrading. Chatting won't be available until it finishes — you can keep waiting here, or continue and we'll let you know when it's ready.`,confirmLabel:`Continue`,cancelLabel:`Keep waiting`,onConfirm:ue,onCancel:V})]});function pe(){return l===`provisioning`?T.confirmError||T.targetsError?(0,Y.jsx)(Ge,{onGoToBilling:t}):(0,Y.jsx)(St,{state:T.state,softWaiting:T.softWaiting,intent:m,resizeCredits:s?o:void 0,targets:ee??Nt,fromSnapshot:T.actualsSnapshot??Nt,celebrating:ae,onCelebrationEnd:ce,assistantId:A,escapeAvailable:E&&T.escapeEligible,onEscape:le,onPhaseChange:_,kickError:T.kickError,confirm:{onRetry:T.retryConfirm,onGoToBilling:t},dwellMs:n,phaseMinMs:r}):l===`domain`?(0,Y.jsx)(We,{machineBusy:E,assistantId:A,onExit:()=>u(`complete`)}):(0,Y.jsx)(Ne,{assistantId:A})}}function Ft(e){return e!=null&&!e.customized}function It(e){return Ft(e)?e.name:`Custom`}var Lt=[`mighty`,`super`,`ultra`],Rt=[`free`,...Lt];function zt(e){return Rt.indexOf(e)}function Bt(e,t){if(e===null)return`upgrade`;let n=zt(e),r=zt(t);return n===-1||r===-1?`upgrade`:r===n?`current`:r<n?`downgrade`:`upgrade`}function Vt(e,t){if(e.length===0)return null;let n=[...e].sort((e,t)=>Lt.indexOf(e.key)-Lt.indexOf(t.key));if(!t)return n[0];let r=n.findIndex(e=>e.key===t);return r===-1?n[0]:r>=n.length-1?null:n[r+1]}var Ht=`billing-portal-return-snapshot`;function Ut(e){try{sessionStorage.removeItem(Ht),sessionStorage.setItem(Ht,JSON.stringify(e))}catch{}}function Wt(){if(typeof sessionStorage>`u`)return null;try{let e=sessionStorage.getItem(Ht);if(!e)return null;let t=JSON.parse(e);return typeof t.cancel_at_period_end!=`boolean`||typeof t.plan_id!=`string`?null:{cancel_at_period_end:t.cancel_at_period_end,cancel_at:t.cancel_at??null,plan_id:t.plan_id}}catch{return null}}function Gt(){try{sessionStorage.removeItem(Ht)}catch{}}function Kt(e){return e?{cancel_at_period_end:e.cancel_at_period_end,cancel_at:e.cancel_at??null,plan_id:e.plan_id}:null}function qt(e){let t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleDateString(void 0,{year:`numeric`,month:`long`,day:`numeric`})}function Jt(e){return e?e.cancel_at??e.current_period_end??null:null}function Yt(e){let t=i();return(0,J.useEffect)(()=>M(()=>{t.invalidateQueries(ie())}),[t]),z({onSuccess:t=>{e&&Ut(e),j(t.portal_url)},onError:()=>{S.error(`Couldn't open the billing portal. Please try again.`,{id:`billing-portal-session-error`})}})}function Xt(e){let t=e/100;return Number.isInteger(t)?`$${t}`:`$${t.toFixed(2)}`}function $(e){return`${Xt(e)}/mo`}function Zt(e){return`${e>0?`+`:`−`}${Xt(Math.abs(e))}/mo`}function Qt(e){return`${e} GB storage`}function $t(e){return`${Xt(e*100)} of bundled credits`}function en(e){return e.disabled===!0}function tn({machineTiers:e,storageTiers:t,selectedMachineTier:n,selectedStorageTier:r,onMachineTierChange:i,onStorageTierChange:a,currentMachinePriceCents:o,currentStoragePriceCents:s}){let l=(0,J.useMemo)(()=>e.map(e=>{let t=xe[e.tier]??e.label,n=o==null?`+${$(e.price_cents)}`:e.price_cents===o?`(${$(e.price_cents)}, current)`:Zt(e.price_cents-o);return{value:e.tier,label:`${t} ${n}`,disabled:en(e)}}),[e,o]),u=(0,J.useMemo)(()=>t.map(e=>{let t=s==null?`+${$(e.price_cents)}`:e.price_cents===s?`(${$(e.price_cents)}, current)`:Zt(e.price_cents-s);return{value:e.tier,label:`${e.storage_gib} GB ${t}`,disabled:en(e)}}),[t,s]);return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,Y.jsx)(c,{as:`p`,variant:`label-small-default`,className:`text-[var(--content-secondary)]`,children:`Machine`}),(0,Y.jsx)(`span`,{title:`Determines the CPU and memory allocated to your assistant`,children:(0,Y.jsx)(v,{className:`h-3 w-3 text-[var(--content-tertiary)]`})})]}),(0,Y.jsx)(w,{"aria-label":`Machine tier`,placeholder:`Select a machine tier`,value:n??``,onChange:i,options:l})]}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,Y.jsx)(c,{as:`p`,variant:`label-small-default`,className:`text-[var(--content-secondary)]`,children:`Storage`}),(0,Y.jsx)(`span`,{title:`Persistent disk space for your assistant's files and data`,children:(0,Y.jsx)(v,{className:`h-3 w-3 text-[var(--content-tertiary)]`})})]}),(0,Y.jsx)(w,{"aria-label":`Storage tier`,placeholder:`Select a storage tier`,value:r??``,onChange:a,options:u})]})]})}var nn=new Set([`active`,`trialing`,`past_due`]);function rn(e){return e.plan_id!==`base`&&e.cancel_at_period_end!==!0&&!e.cancel_at&&e.status!=null&&nn.has(e.status)}var an=[`target_plan_id`,`confirm`,`machine_tier`,`storage_tier`,`credit_tier`,`package`,`non_field_errors`];function on(e,t){if(e&&typeof e==`object`){for(let t of an)if(t in e){let n=e[t];if(Array.isArray(n)&&typeof n[0]==`string`)return n[0]}if(`detail`in e&&typeof e.detail==`string`)return e.detail}return t}function sn(e,t){let n=e.filter(e=>!en(e));return t!==null&&n.some(e=>e.tier===t)?t:n[0]?.tier??null}function cn(e,t,n){return t===void 0?n:t!==null&&(t===n||e.some(e=>e.tier===t))?t:null}function ln(e){return e.length?Math.min(...e.map(e=>e.price_cents)):0}function un(){let e=i(),t=o(ce());return{changePackage:async n=>{try{let r=await t.mutateAsync({body:{package:n}});return await Promise.all([e.invalidateQueries({queryKey:V()}),e.invalidateQueries({queryKey:R()}),e.invalidateQueries({queryKey:L()})]),r}catch(e){return S.error(on(e,`Failed to change your plan. Please try again.`)),null}},isPending:t.isPending}}function dn({enabled:e=!0}={}){let t=i(),n=A(),r=e&&n,s=a({...ie(),enabled:r}).data,c=s!=null&&s.plan_id!==`base`,l=a({...le(),enabled:r&&c}),u=a({...N(),enabled:r&&c}).data?.plans.find(e=>e.id===`pro`)?.machine_tiers??[],d=e=>u.find(t=>t.tier===e)?.price_cents??null,f=o(ae()),p=o(re()),m=o(ue()),h={machineTier:l.data?.max_machine_tier??null,storageTier:l.data?.selected_storage_tier??null,storageGib:l.data?.selected_storage_gib??null,creditTier:s?.selected_credit_tier??null},g=s!=null&&s.plan_id!==`base`&&s.status!=null&&nn.has(s.status)&&s.cancel_at_period_end!==!0&&!s.cancel_at,_=!c||!l.isPending,v=f.isPending||p.isPending||m.isPending,y=()=>Promise.all([t.invalidateQueries({queryKey:V()}),t.invalidateQueries({queryKey:L()}),t.invalidateQueries({queryKey:R()})]);return{changeTiers:async e=>{let t=e.machineTier!==h.machineTier,n=e.storageTier!==h.storageTier,r=e.creditTier!==h.creditTier,i=d(e.machineTier),a=d(h.machineTier),o=t&&i!=null&&a!=null&&i<a,s=[];if(t&&s.push(new Promise(t=>{f.mutate({body:{machine_tier:e.machineTier}},{onSuccess:()=>t({dimension:`machine`,ok:!0}),onError:e=>t({dimension:`machine`,ok:!1,error:e})})})),n&&s.push(new Promise(t=>{p.mutate({body:{storage_tier:e.storageTier}},{onSuccess:()=>t({dimension:`storage`,ok:!0}),onError:e=>t({dimension:`storage`,ok:!1,error:e})})})),r&&s.push(new Promise(t=>{m.mutate({body:{credit_tier:e.creditTier}},{onSuccess:()=>t({dimension:`credit`,ok:!0}),onError:e=>t({dimension:`credit`,ok:!1,error:e})})})),s.length===0)return{needsResize:!1,creditChanged:!1};let c=await Promise.all(s);await y();let l=c.some(e=>e.ok&&e.dimension===`machine`)&&!o,u=c.some(e=>e.ok&&e.dimension===`storage`),g=l||u,_=c.some(e=>e.ok&&e.dimension===`credit`),v=c.filter(e=>!e.ok);if(v.length>0){let e=v.map(e=>on(e.error,`Failed to update ${e.dimension} tier.`)).join(` `);return S.error(e),g||_?{needsResize:g,creditChanged:_}:null}return{needsResize:g,creditChanged:_}},isPending:v,current:h,eligible:g,currentReady:_}}var fn=`__none__`,pn=`No extra credits`;function mn(e){let{proPlan:t,seed:n,machineTier:r,storageTier:i,creditChoice:a}=e,o=t.machine_tiers,s=t.storage_tiers,c=t.credit_tiers??[],l=o.find(e=>e.tier===r)??null,u=s.find(e=>e.tier===i)??null,d=a&&a!==`__none__`?c.find(e=>e.tier===a)??null:null,f=n==null?null:o.find(e=>e.tier===n.machineTier)??null,p=n==null?null:s.find(e=>e.tier===n.storageTier)??null,m=n!=null&&n.creditTier!=null?c.find(e=>e.tier===n.creditTier)??null:null,h=n!=null&&n.machineTier!=null&&f==null,g=n!=null&&p==null,_=[{key:`base`,label:`Pro base plan — ${$(t.base_price_cents)}`,changed:!1}];if(l!=null){let e=n!=null&&!h&&f?.tier!==l.tier;_.push({key:`machine`,label:l.description,previousLabel:e&&f!=null?f.description:void 0,changed:e})}if(u!=null){let e=n!=null&&!g&&p?.tier!==u.tier;_.push({key:`storage`,label:Qt(u.storage_gib),previousLabel:e&&p!=null?Qt(p.storage_gib):void 0,changed:e})}let v=a===`__none__`?pn:d==null?null:$t(d.credits_usd);if(v!=null){let e=n!=null&&(n.creditTier??`__none__`)!==a,t=n?.creditTier==null?pn:m==null?void 0:$t(m.credits_usd);_.push({key:`credit`,label:v,previousLabel:e?t:void 0,changed:e})}let y=t.base_price_cents+(l?.price_cents??0)+(u?.price_cents??0)+(d?.price_cents??0),b=h||g||n!=null&&n.creditTier!=null&&m==null;if(n==null||b)return{totalCents:y,previousTotalCents:null,deltaCents:null,rows:_};let x=t.base_price_cents+(f?.price_cents??0)+(p?.price_cents??0)+(m?.price_cents??0);return{totalCents:y,previousTotalCents:x,deltaCents:y-x,rows:_}}function hn(e){return(0,Y.jsxs)(`span`,{className:`text-[12px] font-medium text-[var(--content-disabled)]`,children:[`+`,$(e)]})}function gn({open:e,proPlan:t,pending:r,currentStorageGib:i,initialSelection:a,onClose:o,onContinue:s}){let c=e?a??null:null,[l,u]=(0,J.useState)(()=>c?.machineTier??``),[d,f]=(0,J.useState)(()=>c?.storageTier??``),[h,v]=(0,J.useState)(()=>c?c.creditTier??`__none__`:``),[y,b]=(0,J.useState)({open:e,initialSelection:a});(y.open!==e||y.initialSelection!==a)&&(b({open:e,initialSelection:a}),u(c?.machineTier??``),f(c?.storageTier??``),v(c?c.creditTier??`__none__`:``));let S=t.machine_tiers,C=(0,J.useMemo)(()=>t.storage_tiers.filter(e=>!e.legacy||e.tier===a?.storageTier),[t.storage_tiers,a?.storageTier]),T=t.credit_tiers??[],E=(0,J.useMemo)(()=>(t.credit_tiers??[]).filter(e=>!e.legacy),[t.credit_tiers]),D=e=>en(e)||e.legacy&&e.tier!==a?.storageTier||i!=null&&e.storage_gib<i,O=S.map(e=>({value:e.tier,label:e.description,icon:(0,Y.jsx)(q,{className:`h-4 w-4`,"aria-hidden":!0}),suffix:hn(e.price_cents),disabled:en(e)})),k=C.map(e=>({value:e.tier,label:e.label,icon:(0,Y.jsx)(_,{className:`h-4 w-4`,"aria-hidden":!0}),suffix:hn(e.price_cents),disabled:D(e)})),ee=h&&h!==`__none__`?T.find(e=>e.tier===h)??null:null,A=ee?.legacy?ee:null,j=[{value:fn,label:pn,icon:(0,Y.jsx)(m,{className:`h-4 w-4`,"aria-hidden":!0})},...E.map(e=>({value:e.tier,label:e.label,icon:(0,Y.jsx)(m,{className:`h-4 w-4`,"aria-hidden":!0}),suffix:hn(e.price_cents)})),...A?[{value:A.tier,label:A.label,icon:(0,Y.jsx)(m,{className:`h-4 w-4`,"aria-hidden":!0}),suffix:hn(A.price_cents),disabled:!0}]:[]],M=S.find(e=>e.tier===l)??null,te=d!==``&&d===a?.storageTier,N=C.find(e=>e.tier===d&&(te||!D(e)))??null,P=h===`__none__`||h===a?.creditTier||E.some(e=>e.tier===h),F=h!==``&&P?h:null,I=M!=null&&N!=null&&F!=null,ne=a!=null&&l===(a.machineTier??``)&&d===a.storageTier&&h===(a.creditTier??`__none__`),L=(0,J.useMemo)(()=>mn({proPlan:t,seed:a??null,machineTier:l,storageTier:d,creditChoice:h}),[t,a,l,d,h]);return(0,Y.jsx)(x.Root,{open:e,onOpenChange:e=>{e||o()},children:(0,Y.jsx)(x.Content,{size:`lg`,"data-theme":`light`,hideCloseButton:!0,overlayClassName:`backdrop-blur-[2px]`,className:`max-w-[820px] md:min-h-[min(608px,calc(100vh-4rem))]`,children:(0,Y.jsx)(x.Body,{className:`p-4`,children:(0,Y.jsxs)(`div`,{className:`flex flex-col gap-8 md:flex-row md:gap-12`,children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-6 md:flex-1`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,Y.jsx)(`div`,{className:`flex shrink-0 items-center justify-center rounded-xl bg-[var(--surface-active)] p-[14px]`,children:(0,Y.jsx)(g,{className:`h-6 w-6 text-[var(--content-emphasised)]`,"aria-hidden":!0})}),(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1`,children:[(0,Y.jsx)(x.Title,{className:`text-[16px] font-medium text-[var(--content-emphasised)]`,children:`Create a custom plan`}),(0,Y.jsx)(x.Description,{className:`mt-0 text-[14px] font-medium leading-[18px] text-[var(--content-tertiary)]`,children:`Just better.`})]})]}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Y.jsx)(`span`,{className:`text-[11px] font-medium text-[var(--content-secondary)]`,children:`Select a machine size:`}),(0,Y.jsx)(w,{"aria-label":`Machine size`,placeholder:`Select a machine size`,value:l,onChange:u,options:O})]}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Y.jsx)(`span`,{className:`text-[11px] font-medium text-[var(--content-secondary)]`,children:`Select storage:`}),(0,Y.jsx)(w,{"aria-label":`Storage`,placeholder:`Select storage`,value:d,onChange:f,options:k})]}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Y.jsx)(`span`,{className:`text-[11px] font-medium text-[var(--content-secondary)]`,children:`Bundle some credits:`}),(0,Y.jsx)(w,{"aria-label":`Credit bundle`,placeholder:`Select a credit bundle`,value:h,onChange:v,options:j})]})]}),(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-16 md:pt-[5px]`,children:[(0,Y.jsx)(`span`,{className:`text-[16px] font-medium text-[var(--content-emphasised)]`,children:`Recap`}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Y.jsx)(`span`,{className:`text-[24px] font-medium text-[var(--content-default)]`,children:$(L.totalCents)}),L.deltaCents!=null&&L.deltaCents!==0&&L.previousTotalCents!=null&&(0,Y.jsxs)(`span`,{className:`text-[12px] font-medium ${L.deltaCents>0?`text-[var(--system-positive-strong)]`:`text-[var(--system-negative-strong)]`}`,children:[Zt(L.deltaCents),` compared to previous (`,Xt(L.previousTotalCents),`)`]}),(0,Y.jsx)(`span`,{className:`text-[11px] font-medium text-[var(--content-tertiary)]`,children:`Total`})]}),(0,Y.jsx)(`div`,{className:`h-px w-full bg-[var(--border-hover)]`}),(0,Y.jsx)(`span`,{className:`text-[12px] font-medium text-[var(--content-tertiary)]`,children:`Your selection:`}),(0,Y.jsx)(`ul`,{className:`flex flex-col gap-2`,children:L.rows.map(e=>(0,Y.jsxs)(`li`,{className:`flex flex-col gap-2`,children:[e.previousLabel!=null&&(0,Y.jsxs)(`div`,{className:`relative flex w-fit items-start gap-2`,children:[(0,Y.jsx)(p,{className:`mt-0.5 h-4 w-4 shrink-0 text-[var(--content-disabled)]`,"aria-hidden":!0}),(0,Y.jsx)(`s`,{className:`text-[14px] font-medium leading-[18px] text-[var(--content-disabled)] no-underline`,children:e.previousLabel}),(0,Y.jsx)(`span`,{"aria-hidden":!0,className:`pointer-events-none absolute -left-1 right-0 top-[9px] h-px bg-[var(--content-disabled)]`})]}),(0,Y.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,Y.jsx)(p,{className:`mt-0.5 h-4 w-4 shrink-0 ${e.changed?`text-[var(--system-positive-strong)]`:`text-[var(--content-secondary)]`}`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`text-[14px] font-medium leading-[18px] text-[var(--content-secondary)]`,children:e.label})]})]},e.key))}),(0,Y.jsx)(n,{variant:`primary`,fullWidth:!0,disabled:!I||ne||r,onClick:()=>{!I||ne||r||s({machineTier:M.tier,storageTier:N.tier,creditTier:F===`__none__`?null:F})},children:`Continue`}),(0,Y.jsx)(n,{variant:`ghost`,fullWidth:!0,disabled:r,onClick:o,children:`Cancel`})]})]})]})})})})}function _n({className:e,"data-testid":t,children:n}){return(0,Y.jsx)(`div`,{"aria-hidden":!0,"data-testid":t,className:fe(`flex size-[52px] shrink-0 items-center justify-center rounded-xl`,e),children:n})}var vn=32;function yn(){let{ready:e,avatar:t}=et();return(0,Y.jsx)(_n,{"data-testid":`assistant-avatar-tile`,className:`bg-[var(--surface-active)]`,children:e?(0,Y.jsx)(G,{components:t.components,traits:t.traits,customImageUrl:t.customImageUrl,size:vn}):null})}var bn={free:{bodyShape:`ninja`,eyeStyle:`angry`,color:`yellow`},mighty:{bodyShape:`blob`,eyeStyle:`grumpy`,color:`green`},super:{bodyShape:`urchin`,eyeStyle:`goofy`,color:`teal`},ultra:{bodyShape:`sprout`,eyeStyle:`curious`,color:`orange`}};function xn({tier:e,size:t=40}){let n=bn[e]??bn.free,r=ve();return(0,Y.jsx)(`div`,{"aria-hidden":!0,className:`inline-flex shrink-0`,children:r?(0,Y.jsx)(_e,{components:r,bodyShapeId:n.bodyShape,colorId:n.color,size:t}):(0,Y.jsx)(`div`,{style:{width:t,height:t}})})}var Sn=`Small`;function Cn(e){return e?.machine_size?K[e.machine_size]??e.machine_size:Sn}function wn(e){let t=e?.credits_usd??0,n=e?.storage_gib??4;return[{icon:q,label:`${Cn(e)} Machine`},{icon:m,label:`${Xt(t*100)} credits`},{icon:_,label:`${n} GB`}]}function Tn(e,t=[]){let n=e?.credits_usd??0,r=e?.storage_gib??4,i=be[e?.machine_size??`small`];return[`${Cn(e)} machine${i?` (${i})`:``}`,Qt(r),$t(n),...t]}var En={free:{tagline:`Get to know your assistant.`,cta:`Start Free`,priceCaption:`Forever`},mighty:{tagline:`More capacity for consistent use.`,cta:`Power Up`,priceCaption:`Billed monthly`,recommended:!0,upgradeBlurb:`$25 in Credits, more storage and power`},super:{tagline:`Stronger performance for heavier workloads.`,cta:`Go Super`,priceCaption:`Billed monthly`,extraFeatures:[`Assistant email and subdomain`],upgradeBlurb:`$45 credits, 3× storage, more power, and email.`},ultra:{tagline:`Built for sustained, high-demand work.`,cta:`Unleash Ultra`,priceCaption:`Billed monthly`,extraFeatures:[`Assistant email and subdomain`],upgradeBlurb:`$115 credits, 2x storage, more power, and email.`}};function Dn(e){return En[e]}function On(e){return`Downgrade to ${e}`}var kn=`Billed monthly · prorated difference charged today`,An=`Billed monthly · prorated difference charged today or credited next invoice`,jn=`Billed monthly · prorated credit on your next invoice`,Mn=`Your machine downsizes now and your storage stays. No refund.`,Nn=`Continue`,Pn=`The plan includes`,Fn=`Your plan will include`;function In(e,t,n){let r=n?Dn(n)?.tagline??``:``;switch(e){case`downgrade`:return{title:On(t),subtitle:``,priceCaption:jn,checklistHeading:Fn,note:Mn,confirmLabel:On(t),destructive:!0};case`switch`:return{title:`Switch to ${t}`,subtitle:r,priceCaption:An,checklistHeading:Pn,note:``,confirmLabel:Nn,destructive:!1};default:return{title:`Upgrade to ${t}`,subtitle:r,priceCaption:kn,checklistHeading:Pn,note:``,confirmLabel:Nn,destructive:!1}}}function Ln({open:e,relation:t,packageName:r,targetPackage:i,pending:a,onCancel:o,onConfirm:s}){let l=(0,J.useRef)(null),u=(0,J.useId)(),d=In(t,r,i?.key??null),f=i?{price:$(i.total_price_cents),highlights:Tn(i,Dn(i.key)?.extraFeatures??[])}:null,m=d.subtitle,h=d.note?{"aria-describedby":u}:m?{}:{"aria-describedby":void 0};return(0,Y.jsx)(x.Root,{open:e,onOpenChange:e=>{!e&&!a&&o()},children:(0,Y.jsxs)(x.Content,{size:`sm`,hideCloseButton:!0,className:`gap-4 p-4 max-w-[421px]`,onOpenAutoFocus:e=>{e.preventDefault(),l.current?.focus()},...h,children:[(0,Y.jsxs)(x.Header,{className:`flex-row items-center gap-3 p-0 pb-2`,children:[d.destructive?(0,Y.jsx)(_n,{"data-testid":`package-switch-warning-tile`,className:`bg-[var(--system-negative-weak)]`,children:(0,Y.jsx)(y,{className:`size-6 text-[var(--system-negative-strong)]`})}):(0,Y.jsx)(yn,{}),(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-1`,children:[(0,Y.jsx)(x.Title,{className:`text-title-small text-[var(--content-emphasised)] [&>span]:whitespace-normal`,children:d.title}),m?(0,Y.jsx)(x.Description,{className:`mt-0 text-body-medium-default text-[var(--content-tertiary)]`,children:m}):null]})]}),f?(0,Y.jsxs)(x.Body,{className:`flex flex-col gap-4 p-0`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[(0,Y.jsx)(c,{as:`p`,variant:`title-large`,className:`text-[var(--content-default)]`,children:f.price}),(0,Y.jsx)(c,{as:`p`,variant:`label-medium-default`,className:`leading-[15px] text-[var(--content-tertiary)]`,children:d.priceCaption})]}),(0,Y.jsx)(`div`,{className:`h-px w-full bg-[var(--border-hover)]`}),(0,Y.jsx)(c,{as:`p`,variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,children:d.checklistHeading}),(0,Y.jsx)(`ul`,{className:`flex flex-col gap-2`,children:f.highlights.map(e=>(0,Y.jsxs)(`li`,{className:`flex items-center gap-1`,children:[(0,Y.jsx)(p,{className:`size-4 shrink-0 text-[var(--content-secondary)]`,"aria-hidden":!0}),(0,Y.jsx)(c,{as:`span`,variant:`body-medium-default`,className:`text-[var(--content-default)]`,children:e})]},e))})]}):null,d.note?(0,Y.jsx)(c,{id:u,as:`p`,variant:`body-medium-default`,className:`text-[var(--content-secondary)]`,children:d.note}):null,(0,Y.jsxs)(x.Footer,{className:`flex-col gap-4 p-0`,children:[(0,Y.jsx)(n,{fullWidth:!0,variant:d.destructive?`danger`:`primary`,onClick:s,disabled:a,"data-testid":`confirm-package-switch-button`,children:d.confirmLabel}),(0,Y.jsx)(n,{ref:l,fullWidth:!0,variant:`ghost`,onClick:o,disabled:a,children:`Cancel`})]})]})})}function Rn(){let e=i();(0,J.useEffect)(()=>M(()=>{e.invalidateQueries({queryKey:V()}),e.invalidateQueries({queryKey:R()}),e.invalidateQueries({queryKey:L()})}),[e])}export{Vt as A,Gt as C,Yt as D,Wt as E,Pe as F,Bt as M,Pt as N,Lt as O,Xe as P,Kt as S,Jt as T,sn as _,Sn as a,Xt as b,xn as c,un as d,nn as f,cn as g,ln as h,Dn as i,It as j,Ft as k,gn as l,rn as m,Ln as n,Cn as o,on as p,On as r,wn as s,Rn as t,dn as u,tn as v,qt as w,$ as x,Zt as y};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-Dy5001j6.js";import{u as r}from"./chunk-5KNZJZUH-Bsoom5--.js";import{n as i}from"./QueryClientProvider-CMu7CkQU.js";import{t as a}from"./useQuery-Bz-fbQ-m.js";import{t as o}from"./useMutation-CXGTrp4W.js";import{t as s}from"./jsx-runtime-D3ZM-ToX.js";import{t as c}from"./typography-DEI9Ra9z.js";import{t as l}from"./createLucideIcon-CAM1RhH8.js";import{t as u}from"./arrow-right-B-jRJNWP.js";import{t as d}from"./check-sC49_hjU.js";import{t as f}from"./circle-alert-DVCpoZrc.js";import{t as p}from"./circle-check-CjGnAahM.js";import{t as m}from"./coins-Hrmb9tmj.js";import{n as h,t as g}from"./sliders-horizontal-slneqAyY.js";import{t as _}from"./hard-drive-DWFPKcXI.js";import{t as v}from"./info-vgPTIsGI.js";import{t as y}from"./triangle-alert-CQfiAg_t.js";import{t as b}from"./notice-BMK7xqUw.js";import{t as x}from"./modal-BR4CUFBd.js";import{n as S}from"./toast-LgLp4obE.js";import{t as C}from"./confirm-dialog-UYFm4osC.js";import{t as w}from"./dropdown-BCfnSdIZ.js";import{n as T}from"./resolved-assistants-store-Dw5UuGyB.js";import{A as E,D}from"./auth-store-5qq59BAN.js";import{b as O,v as k}from"./native-biometric-BAMIyaSS.js";import{u as ee}from"./routes-D9sNqB_o.js";import{r as A}from"./use-is-org-ready-C5xlYywh.js";import{n as j,r as M}from"./browser-CTZVDjOL.js";import{n as te}from"./use-assistant-avatar-bwLHcMz4.js";import{$ as N,C as P,O as F,at as I,c as ne,ct as L,et as R,it as re,jt as z,l as B,lt as ie,nt as ae,ot as oe,r as se,rt as ce,st as le,tt as ue,ut as V,y as de}from"./react-query.gen-BC3STDmV.js";import{t as H}from"./avatar-bundled-components-DPqbVXi9.js";import{n as U}from"./use-avatar-accent-var-vpakP1ce.js";import{t as fe}from"./misc-CuYswARt.js";import{t as W}from"./proxy-D7UPVac3.js";import{t as pe}from"./AnimatePresence-DPfyu3ET.js";import{t as me}from"./use-reduced-motion-W1fCe3vS.js";import{n as he,t as ge}from"./avatar-tone-BKwvoDSj.js";import{t as G}from"./chat-avatar-CvEA6z0H.js";import{t as _e}from"./avatar-renderer-ClUVcQmf.js";import{n as ve}from"./use-bundled-avatar-components-Bbs4vCnX.js";import{i as ye,n as be,r as K,t as xe}from"./machine-sizes-DO8duvpy.js";import{n as Se,r as Ce,t as we}from"./provisioning-targets-BTjyR9nk.js";import{t as Te}from"./environment-store-Bft0lpgv.js";var q=l(`computer`,[[`rect`,{width:`14`,height:`8`,x:`5`,y:`2`,rx:`2`,key:`wc9tft`}],[`rect`,{width:`20`,height:`8`,x:`2`,y:`14`,rx:`2`,key:`w68u3i`}],[`path`,{d:`M6 18h2`,key:`rwmk9e`}],[`path`,{d:`M12 18h6`,key:`aqd8w3`}]]),J=e(t(),1),Y=s();function Ee({icon:e}){return(0,Y.jsx)(`span`,{className:`flex h-11 w-11 items-center justify-center rounded-full`,style:{backgroundColor:`color-mix(in oklab, var(--system-negative-strong) 12%, transparent)`},children:(0,Y.jsx)(e,{className:`h-5 w-5`,style:{color:`var(--system-negative-strong)`},"aria-hidden":`true`})})}var De={fontFamily:`var(--font-serif)`,fontSize:`32px`,fontWeight:400,lineHeight:1.2,letterSpacing:`0.64px`};function Oe({title:e,subtitle:t}){return(0,Y.jsxs)(`header`,{className:`flex flex-col items-center gap-2 pt-12 text-center`,children:[(0,Y.jsx)(`h2`,{className:`text-[var(--content-emphasised)]`,style:De,children:e}),t&&(0,Y.jsx)(`p`,{className:`text-[14px] font-normal text-[var(--content-secondary)]`,children:t})]})}var ke=[{bodyShape:`star`,eyeStyle:`curious`,color:`yellow`,size:103,position:`-left-[28px] -top-[33px]`,rotate:180},{bodyShape:`star`,eyeStyle:`curious`,color:`orange`,size:109,position:`left-[63%] -top-[62px] -translate-x-1/2`,rotate:-8},{bodyShape:`blob`,eyeStyle:`grumpy`,color:`green`,size:76,position:`-right-[25px] top-[60px]`,rotate:1},{bodyShape:`stack`,eyeStyle:`gentle`,color:`purple`,size:110,position:`-left-[39px] top-[74%]`,rotate:0},{bodyShape:`urchin`,eyeStyle:`goofy`,color:`pink`,size:137,position:`-right-[42px] -bottom-[40px]`,rotate:180},{bodyShape:`sprout`,eyeStyle:`curious`,color:`orange`,size:72,position:`left-[37%] -bottom-[22px] -translate-x-1/2`,rotate:0}],Ae=[{bodyShape:`star`,eyeStyle:`curious`,color:`yellow`,size:103,position:`-left-[28px] -top-[33px]`,rotate:180},{bodyShape:`star`,eyeStyle:`curious`,color:`orange`,size:109,position:`left-[63%] -top-[62px] -translate-x-1/2`,rotate:-8},{bodyShape:`blob`,eyeStyle:`grumpy`,color:`green`,size:76,position:`-right-[25px] top-[60px]`,rotate:1}];function je({variant:e=`full`}){let t=ve();return t?(0,Y.jsx)(`div`,{"aria-hidden":`true`,"data-testid":`creature-corners`,className:`pointer-events-none absolute inset-0 select-none`,children:(e===`top`?Ae:ke).map((e,n)=>(0,Y.jsx)(`span`,{className:`absolute ${e.position}`,style:{rotate:`${e.rotate}deg`},children:(0,Y.jsx)(_e,{components:t,bodyShapeId:e.bodyShape,eyeStyleId:e.eyeStyle,colorId:e.color,size:e.size})},n))}):null}function Me(e,t=!0){let{data:n}=a({...se(),enabled:t&&e==null}),{data:r}=a({...F({path:{id:e??``}}),enabled:t&&e!=null});return e==null?n:r}function Ne({assistantId:e}){let t=r(),i=Me(e,A())?.name||`your assistant`;return(0,Y.jsxs)(`div`,{className:`relative flex min-h-[320px] flex-col items-center justify-center overflow-hidden px-8 pb-16 [animation:onboarding-step-in_350ms_ease-out] motion-reduce:[animation:none]`,children:[(0,Y.jsx)(je,{variant:`full`}),(0,Y.jsxs)(`div`,{className:`relative flex w-full flex-col items-center`,children:[(0,Y.jsx)(Oe,{title:`You're all set!`,subtitle:`Enjoy the new found power.`}),(0,Y.jsx)(`div`,{className:`mt-10 flex w-full flex-col items-center gap-10`,children:(0,Y.jsxs)(n,{variant:`primary`,"data-testid":`onboarding-complete-return`,onClick:()=>{e!=null&&E(e),t(ee.assistant,{replace:!0})},children:[`Return to `,i]})})]})]})}function Pe(e=!0,t){let n=Me(t,e),r=t??n?.id,{data:i,isError:o,isFetching:s,dataUpdatedAt:c,errorUpdatedAt:l}=a({...ne({path:{assistant_id:r??``}}),enabled:e&&!!r});return{assistant:n,assistantId:r,domains:i,domainsError:o,domainsFetching:s,domainsUpdatedAt:c,domainsErrorUpdatedAt:l}}var Fe=1e3,Ie=1e4,Le=2500,Re=2e3,ze=[`machine_size`,`subdomain`,`non_field_errors`],Be={subdomain_taken:`That subdomain is already taken. Try another.`,assistant_already_has_domain:`Your assistant already has a custom domain.`,no_assistant_to_attach_domain:`We couldn't find an assistant to attach this domain to.`,exceeds_machine_tier:`That machine size isn't available on your plan.`,provisioning_submission_failed:`We couldn't queue your upgrade just now. Try again in a moment.`,no_active_pro:`We couldn't confirm your Pro plan yet. Try again in a moment.`,no_provisionable_assistants:`We couldn't find an assistant to upgrade yet. Try again in a moment.`};function Ve(e,t){if(e&&typeof e==`object`){let t=e;if(typeof t.error==`string`){let e=Be[t.error];if(e)return e}for(let e of ze){let n=t[e];if(Array.isArray(n)&&typeof n[0]==`string`)return n[0]}if(typeof t.detail==`string`)return t.detail}return t}var He=`h-8 rounded-lg border border-[var(--border-element)] bg-[var(--field-bg)] px-2.5 text-[14px] text-[var(--content-default)] placeholder:text-[var(--content-tertiary)] outline-none transition-[border-color] duration-150 focus:border-[var(--border-active)] disabled:cursor-not-allowed disabled:opacity-60`,Ue=`text-[11px] font-medium text-[var(--content-secondary)]`;function We({onExit:e,machineBusy:t=!1,assistantId:r}){let a=i(),s=Te.use.emailRootDomain(),{assistant:c,assistantId:l,domains:u}=Pe(!0,r),d=u?.results[0],[f,p]=(0,J.useState)(``),[m,h]=(0,J.useState)(`hi`),[g,_]=(0,J.useState)(!1);(0,J.useEffect)(()=>{if(!g){if(d){p(d.subdomain),_(!0);return}!c?.handle||f||(p(c.handle),_(!0))}},[c?.handle,d,g,f]);let[v,y]=(0,J.useState)(null),[S,C]=(0,J.useState)(!1),w=o(I()),T=!!d||S,E=w.isPending||S;return(0,J.useEffect)(()=>{if(!S)return;let t=setTimeout(e,800);return()=>clearTimeout(t)},[S,e]),(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(x.Body,{className:`animate-[onboarding-step-in_350ms_ease-out] space-y-6 pb-0 motion-reduce:animate-none`,children:[(0,Y.jsx)(je,{variant:`top`}),(0,Y.jsx)(Oe,{title:`Assistant Email`,subtitle:`Set up an email for your assistant.`}),(0,Y.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,Y.jsxs)(`div`,{className:`flex items-end gap-2`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Y.jsx)(`label`,{htmlFor:`onboarding-email-prefix`,className:Ue,children:`Prefix`}),(0,Y.jsx)(`input`,{id:`onboarding-email-prefix`,value:m,onChange:e=>h(e.target.value.toLowerCase().trim()),disabled:E||T,readOnly:T,placeholder:`hi`,className:`${He} w-24`})]}),(0,Y.jsx)(`span`,{className:`flex h-8 items-center text-[var(--content-secondary)]`,children:`@`}),(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-1`,children:[(0,Y.jsx)(`label`,{htmlFor:`onboarding-email-handle`,className:Ue,children:`Handle (public)`}),(0,Y.jsx)(`input`,{id:`onboarding-email-handle`,value:f,onChange:e=>{p(e.target.value.toLowerCase().trim()),v&&y(null)},disabled:E||T,readOnly:T,autoFocus:!0,placeholder:`my-assistant`,"aria-invalid":!!v,className:`${He} w-full min-w-0`})]}),(0,Y.jsxs)(`span`,{className:`flex h-8 shrink-0 items-center text-[14px] text-[var(--content-tertiary)]`,children:[`.`,s]})]}),v&&(0,Y.jsx)(`p`,{className:`text-body-small-default text-[var(--system-negative-strong)]`,children:v}),T&&(0,Y.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`This domain has been set and cannot be changed.`})]}),t&&!T&&(0,Y.jsx)(b,{tone:`neutral`,children:`Your assistant is restarting — you can set the domain in a moment.`}),!T&&(0,Y.jsx)(b,{tone:`info`,className:`border-transparent bg-[var(--surface-active)]`,children:(0,Y.jsx)(`span`,{className:`font-medium text-[var(--content-tertiary)]`,children:`You won't be able to change the handle once set.`})}),S?(0,Y.jsx)(b,{tone:`success`,children:`Domain set — redirecting…`}):null]}),(0,Y.jsx)(x.Footer,{className:`items-center pt-6`,children:T?(0,Y.jsx)(n,{variant:`primary`,"data-testid":`onboarding-domain-continue`,onClick:e,children:`Continue`}):(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(n,{variant:`outlined`,"data-testid":`onboarding-domain-skip`,disabled:E,onClick:()=>{E||w.mutate({body:{skipped:!0}},{onSuccess:e,onError:()=>e()})},children:`Skip`}),(0,Y.jsx)(n,{variant:`primary`,"data-testid":`onboarding-domain-set`,disabled:!f||E||t,onClick:()=>{E||t||!f||w.mutate({body:{subdomain:f,...m?{email_username:m}:{}}},{onSuccess:()=>{y(null),C(!0),a.invalidateQueries({queryKey:de()}),a.invalidateQueries({queryKey:B({path:{assistant_id:l??``}})}),a.invalidateQueries({queryKey:L()})},onError:e=>{y(Ve(e,`Couldn't register that subdomain. Try a different one.`))}})},children:`Next`})]})})]})}function Ge({onGoToBilling:e}){return(0,Y.jsxs)(`div`,{className:`flex flex-col items-center gap-4 px-6 py-10 text-center`,children:[(0,Y.jsx)(Ee,{icon:f}),(0,Y.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,Y.jsx)(c,{variant:`title-small`,as:`h1`,children:`Couldn't reach billing`}),(0,Y.jsx)(c,{variant:`body-medium-lighter`,as:`p`,className:`text-[var(--content-secondary)]`,children:`We hit a problem checking your subscription. Your upgrade may still be processing — return to billing to refresh.`})]}),(0,Y.jsx)(n,{variant:`primary`,"data-testid":`onboarding-go-to-billing`,onClick:e,children:`Go to billing`})]})}function Ke(e){let{targets:t,fromSnapshot:n,credits:r}=e,i=[];return t.machineSize!=null&&i.push({key:`machine`,label:`Machine`,from:n.machineSize!=null&&n.machineSize!==t.machineSize?K[n.machineSize]:void 0,to:K[t.machineSize]}),t.storageGib!=null&&i.push({key:`storage`,label:`Storage`,from:n.storageGib!=null&&n.storageGib!==t.storageGib?`${n.storageGib} GB`:void 0,to:`${t.storageGib} GB`}),r!=null&&i.push({key:`credits`,label:`Credits`,from:r.from,to:r.to}),i}var qe=60,Je=qe*2;function Ye({imageUrl:e,animateIn:t=!0}){return(0,Y.jsxs)(`div`,{"aria-hidden":!0,"data-testid":`takeover-backdrop`,className:`pointer-events-none absolute inset-0 overflow-hidden${t?` provision-avatar-reveal`:``}`,children:[(0,Y.jsx)(`img`,{src:e,alt:``,decoding:`async`,draggable:!1,className:`absolute left-1/2 top-1/2 max-w-none -translate-x-1/2 -translate-y-1/2 object-cover object-center`,style:{filter:`blur(${qe}px)`,width:`calc(100% + ${Je*2}px)`,height:`calc(100% + ${Je*2}px)`}}),(0,Y.jsx)(`div`,{className:`absolute inset-0 bg-black/55`})]})}function Xe(e,t){if(t!=null)return e?.credit_tiers?.find(e=>e.tier===t)}function Ze(e,t){let n=e?.find(e=>e.id===`pro`);return Xe(n,t)?.label??null}function Qe(e){let t=A(),{data:n}=a({...N(),enabled:t&&e!=null});if(e==null)return null;let r=n?.plans.find(e=>e.id===`pro`);if(r==null)return null;if(e.kind===`package`){let t=r.packages.find(t=>t.key===e.packageKey);return Xe(r,t?.credit_tier)?.label??(t?.credits_usd==null?null:`${t.credits_usd} credits`)}return Ze(n?.plans,e.creditTier)}function $e(e){let t=A(),{data:n}=a({...N(),enabled:t&&e!=null});return Ze(n?.plans,e)}function et(e){let t=T.use.activeAssistantId(),n=e===void 0?t:e,{components:r,traits:i,customImageUrl:a,isLoading:o}=te(n),s=n!=null&&!o,c=U(r,i)??(a?null:(r??H).colors?.[0]?.hex??null);return{tintHex:s&&c?he(c):ge,backdropImageUrl:s?a:null,ready:s,avatar:{components:r,traits:i,customImageUrl:a}}}function tt(e,t){let{intervalMs:n,enabled:r}=t,[i,a]=(0,J.useState)(0);return(0,J.useEffect)(()=>{if(!r||e<=1){a(0);return}let t=setInterval(()=>{a(t=>(t+1)%e)},n);return()=>{clearInterval(t),a(0)}},[e,n,r]),!r||e<=1?0:Math.min(i,e-1)}function nt(e,t){let[n,r]=(0,J.useState)(e),i=(0,J.useRef)(0);return(0,J.useEffect)(()=>{i.current=performance.now()},[]),(0,J.useEffect)(()=>{if(t<=0||e===n)return;let a=t-(performance.now()-i.current);if(a<=0){i.current=performance.now(),r(e);return}let o=setTimeout(()=>{i.current=performance.now(),r(e)},a);return()=>clearTimeout(o)},[e,n,t]),t<=0?e:n}var rt=`--takeover-surface`,it=`var(${rt},${ge})`,at=`color-mix(in srgb, var(--content-emphasised) 10%, transparent)`,ot=2,st=2500,ct=240,lt=1.414,ut=[{minHeight:680,size:ct},{minHeight:600,size:184}],dt=132;function ft(e){for(let t of ut)if(e>=t.minHeight)return t.size;return dt}function pt(){let[e,t]=(0,J.useState)(()=>ft(typeof window>`u`?1/0:window.innerHeight));return(0,J.useEffect)(()=>{let e=()=>t(ft(window.innerHeight));return window.addEventListener(`resize`,e),()=>window.removeEventListener(`resize`,e)},[]),e}var mt={machine:h,storage:_,credits:m},ht={idle:``,working:` is-working`,settling:` is-settling`,stalled:` is-stalled`,grown:` is-evolved`};function gt(e,t){return e===`DONE`||e===`NOT_APPLICABLE`?`grown`:e===`STALLED`?`stalled`:e===`WAITING`||e===`RESIZING`?t?`settling`:`working`:`idle`}function _t({assistantId:e,mode:t}){let{avatar:n,ready:r}=et(e),i=ve(),a=pt(),o=t===`working`||t===`settling`;return(0,Y.jsxs)(`div`,{"aria-hidden":!0,className:`provision-avatar-evolve relative z-10 flex flex-col items-center${ht[r?t:`idle`]}`,style:{"--provision-avatar-size":`${a}px`,"--provision-avatar-growth":lt},children:[(0,Y.jsx)(`div`,{className:`provision-avatar-stage`,children:(0,Y.jsx)(`div`,{className:`provision-avatar-layer`,children:(0,Y.jsx)(`div`,{className:`provision-avatar-current`,children:(0,Y.jsx)(`div`,{className:`provision-avatar-strain`,children:r&&(0,Y.jsx)(`div`,{className:`provision-avatar-reveal`,children:(0,Y.jsx)(G,{components:n.components??i,traits:n.traits,customImageUrl:n.customImageUrl,size:a,isAssistantBusy:o})})})})})}),(0,Y.jsx)(`div`,{className:`provision-avatar-shadow`})]})}function X({status:e,caption:t}){return(0,Y.jsxs)(`div`,{className:`flex flex-col items-center gap-1.5`,children:[(0,Y.jsx)(`h1`,{className:`text-[var(--content-emphasised)]`,style:De,children:e}),t&&(0,Y.jsx)(c,{variant:`body-medium-lighter`,as:`p`,className:`max-w-sm text-[var(--content-secondary)]`,children:t})]})}function Z({icon:e,label:t,from:n,to:r,done:i=!1}){return(0,Y.jsxs)(`div`,{className:`flex flex-1 items-center gap-2 rounded-lg px-2 py-1.5`,style:{backgroundColor:at},children:[(0,Y.jsx)(`span`,{className:`flex h-6 w-6 shrink-0 items-center justify-center`,children:(0,Y.jsx)(e,{className:`h-3.5 w-3.5 text-[var(--content-tertiary)]`,"aria-hidden":`true`})}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1 text-left`,children:[(0,Y.jsx)(`span`,{className:`text-[12px] font-medium leading-tight text-[var(--content-tertiary)]`,children:t}),(0,Y.jsxs)(`span`,{className:`flex items-center gap-1.5 text-[14px] font-medium leading-[18px] text-[var(--content-emphasised)]`,children:[n&&(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`span`,{children:n}),(0,Y.jsx)(u,{className:`h-3 w-3 shrink-0 text-[var(--content-tertiary)]`,"aria-hidden":`true`})]}),(0,Y.jsx)(`span`,{children:r}),i&&(0,Y.jsx)(d,{className:`h-3.5 w-3.5 shrink-0 text-[var(--system-positive-strong)]`,"aria-hidden":`true`})]})]})]})}function vt({label:e}){return(0,Y.jsx)(`span`,{className:`rounded-lg px-3 py-2 text-[14px] text-[var(--content-emphasised)]`,style:{backgroundColor:at},children:e})}function Q({children:e}){return(0,Y.jsx)(`div`,{className:`flex w-full max-w-sm flex-wrap items-stretch justify-center gap-2`,children:e})}function yt({intent:e,targets:t,fromSnapshot:n}){let r=Qe(e),i=me(),a=Ke({targets:t,fromSnapshot:n,credits:r?{from:`0`,to:r}:null}),o=a.length>ot&&!i,s=tt(a.length,{intervalMs:st,enabled:o});if(a.length===0)return null;if(o){let e=a[s];return(0,Y.jsx)(Q,{children:(0,Y.jsx)(pe,{mode:`popLayout`,initial:!1,children:(0,Y.jsx)(W.div,{className:`flex flex-1`,initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.25},children:(0,Y.jsx)(Z,{icon:mt[e.key],label:e.label,from:e.from,to:e.to,done:!1})},e.key)})})}return(0,Y.jsx)(Q,{children:a.map(e=>(0,Y.jsx)(Z,{icon:mt[e.key],label:e.label,from:e.from,to:e.to,done:!1},e.key))})}function bt({intent:e}){return e.kind===`package`?(0,Y.jsx)(Q,{children:(0,Y.jsx)(vt,{label:`${e.packageKey.charAt(0).toUpperCase()+e.packageKey.slice(1)} package`})}):(0,Y.jsxs)(Q,{children:[e.machineTier!=null&&(0,Y.jsx)(Z,{icon:h,label:`Machine`,to:xe[e.machineTier]??e.machineTier}),e.storageTier!=null&&(0,Y.jsx)(Z,{icon:_,label:`Storage`,to:e.storageTier.toUpperCase()}),e.creditTier!=null&&(0,Y.jsx)(vt,{label:`${e.creditTier.replace(`credits_`,``)} credits`})]})}function xt({targets:e,fromSnapshot:t,done:n=!1}){return(0,Y.jsx)(Q,{children:Ke({targets:e,fromSnapshot:t,credits:null}).map(e=>(0,Y.jsx)(Z,{icon:mt[e.key],label:e.label,from:n?void 0:e.from,to:e.to,done:n},e.key))})}function St({state:e,softWaiting:t,intent:r,resizeCredits:i,targets:a,fromSnapshot:o,celebrating:s,onCelebrationEnd:c,assistantId:l,escapeAvailable:u,onEscape:d,onPhaseChange:f,kickError:p,confirm:m,dwellMs:h=Le,phaseMinMs:g=900}){let _=i!==void 0,v=$e(i??null),y=(0,J.useRef)(c);(0,J.useEffect)(()=>{y.current=c},[c]);let b=nt(e,g),x=b===`DONE`||b===`NOT_APPLICABLE`,S=b===`RESIZING`?`WAITING`:b,C=(0,J.useRef)(f);(0,J.useEffect)(()=>{C.current=f},[f]),(0,J.useEffect)(()=>{C.current?.(b)},[b]);let{tintHex:w,backdropImageUrl:T}=et(l),E=s&&x;return(0,J.useEffect)(()=>{if(!E)return;let e=setTimeout(()=>y.current(),h);return()=>clearTimeout(e)},[E,h]),(0,Y.jsxs)(`div`,{"data-theme":`dark`,className:`provision-surface-settle relative flex h-full min-h-[420px] w-full flex-col items-center [justify-content:safe_center] gap-10 px-6 py-10 text-center`,style:{[rt]:w,backgroundColor:it},children:[T&&(0,Y.jsx)(Ye,{imageUrl:T}),(0,Y.jsx)(_t,{assistantId:l,mode:gt(b,t)}),(0,Y.jsx)(`div`,{className:`relative z-10 flex min-h-[144px] w-full flex-col items-center gap-8 [animation:onboarding-step-in_420ms_ease-out] motion-reduce:[animation:none]`,children:k()},S)]});function D(e=`Continue in the background`){return u?(0,Y.jsx)(n,{variant:`ghost`,"data-testid":`provisioning-escape`,onClick:d,children:e}):null}function O(){return _?(0,Y.jsx)(Q,{children:v==null?(0,Y.jsx)(vt,{label:`Credits updated`}):(0,Y.jsx)(Z,{icon:mt.credits,label:`Credits`,to:v,done:!0})}):null}function k(){if(b===`CONFIRMING`)return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(X,{status:`Confirming your upgrade…`,caption:`This might take a couple seconds.`}),r&&(0,Y.jsx)(bt,{intent:r}),D()]});if(b===`WAITING`||b===`RESIZING`)return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(X,{status:`Upgrading your assistant…`,caption:t?`Still working — this can take a minute or two.`:`This might take a couple seconds.`}),(0,Y.jsx)(yt,{intent:r,targets:a,fromSnapshot:o}),D()]});if(b===`DONE`)return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(X,{status:`All done!`}),(0,Y.jsx)(xt,{targets:a,fromSnapshot:o,done:!0}),O()]});if(b===`NOT_APPLICABLE`)return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(X,{status:`Your plan is ready`}),O()]});if(b===`STALLED`){let e=p!=null;return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(X,{status:e?`We hit a snag upgrading your assistant`:`This is taking longer than expected`,caption:e?Ve(p,`Retry in the background — we'll keep working on your upgrade.`):`This may take a couple of minutes.`}),(0,Y.jsx)(yt,{intent:r,targets:a,fromSnapshot:o}),e?D(`Retry in the background`):D()]})}return b===`CONFIRM_TIMEOUT`?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(X,{status:`Still confirming your upgrade`,caption:`Your payment went through safely — this can take a minute.`}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-2 pt-1`,children:[(0,Y.jsx)(n,{variant:`outlined`,"data-testid":`onboarding-go-to-billing`,onClick:m.onGoToBilling,children:`Go to billing`}),(0,Y.jsx)(n,{variant:`primary`,"data-testid":`onboarding-retry`,onClick:m.onRetry,children:`Try again`})]})]}):null}}function Ct(e){let{planId:t,targets:n,actuals:r,initialActuals:i,resizeOperationInFlight:a,sawOperation:o,msSinceWatchStart:s,confirmExpired:c,serverVerdict:l=null,statusObservedSinceTargetsMet:u=!0}=e;if(t!==`pro`)return{state:c?`CONFIRM_TIMEOUT`:`CONFIRMING`,softWaiting:!1};let d=o||a,f=l===`started`||l===`in_progress`,p=o||u;if(!a){let e=f?p:d||l===`already_done`||i!=null&&!Ce(n,i);if(Ce(n,r)){if(e)return{state:`DONE`,softWaiting:!1};if(!f)return{state:`NOT_APPLICABLE`,softWaiting:!1}}else{if(l===`already_done`)return{state:`DONE`,softWaiting:!1};if(l===`not_applicable`)return{state:`NOT_APPLICABLE`,softWaiting:!1}}}return s!=null&&s>=9e4?{state:`STALLED`,softWaiting:!1}:d||l===`started`||l===`in_progress`?{state:`RESIZING`,softWaiting:!1}:{state:`WAITING`,softWaiting:s!=null&&s>=3e4}}var wt=2e3,Tt=1e3,Et=[`DONE`,`NOT_APPLICABLE`,`CONFIRM_TIMEOUT`];function Dt({open:e}){let t=i(),n=A(),[r,s]=(0,J.useState)(!1),[c,l]=(0,J.useState)(0),[u,d]=(0,J.useState)(null),[f,p]=(0,J.useState)(null),[m,h]=(0,J.useState)(null),[g,_]=(0,J.useState)(null),[v,y]=(0,J.useState)(null),[b,x]=(0,J.useState)(null),[S,C]=(0,J.useState)(null),[w,T]=(0,J.useState)(!1),E=(0,J.useRef)(!1),O=(0,J.useRef)(!1),k=(0,J.useRef)(0),[ee,j]=(0,J.useState)(!1),[M,te]=(0,J.useState)(null),[N,I]=(0,J.useState)(null),[ne,R]=(0,J.useState)(()=>Date.now()),[re,z]=(0,J.useState)(!0);(0,J.useEffect)(()=>{e||(s(!1),l(0),d(null),p(null),h(null),j(!1),te(null),I(null),z(!0),_(null),y(null),x(null),C(null),T(!1),E.current=!1,O.current=!1,k.current+=1)},[e]),(0,J.useEffect)(()=>{e&&(d(Date.now()),t.invalidateQueries({queryKey:V()}),t.invalidateQueries({queryKey:L()}))},[e,t]);let B=f!=null,ae=a({...ie(),refetchInterval:e=>e.state.data?.plan_id===`pro`||r?!1:Fe,refetchIntervalInBackground:!1,enabled:e&&n&&!B}),ce=(u!=null&&ae.dataUpdatedAt>=u?ae.data?.plan_id:null)??null;(0,J.useEffect)(()=>{if(!e||B||ce!==`pro`)return;let t=Date.now();p(t),R(t)},[e,B,ce]),(0,J.useEffect)(()=>{if(!e||B)return;let t=setTimeout(()=>s(!0),Ie);return()=>clearTimeout(t)},[e,B,c]);let ue=(0,J.useCallback)(()=>{s(!1),l(e=>e+1),D.getState().fetchOrganizations(),t.invalidateQueries({queryKey:V()})},[t]),de=(0,J.useCallback)(()=>{let e=Date.now();h(e),R(e)},[]),{mutate:H}=o(oe()),U=(0,J.useCallback)(e=>{let t=k.current;H({},{onSuccess:n=>{t===k.current&&(C(null),we(n)?O.current?C({error:n.reason??`no_active_pro`}):(O.current=!0,T(!0),e===`escape`&&de()):(_(n.state),e===`escape`&&de()))},onError:e=>{t===k.current&&C(e)}})},[H,de]);(0,J.useEffect)(()=>{!e||!n||!B||E.current||(E.current=!0,U(`auto`))},[e,n,B,U]),(0,J.useEffect)(()=>{if(!w)return;let e=k.current,t=setTimeout(()=>{T(!1),e===k.current&&U(`auto`)},Re);return()=>clearTimeout(t)},[w,U]);let fe=(0,J.useCallback)(()=>U(`escape`),[U]),W=a({...le(),enabled:e&&n&&B}),pe=re?wt:!1,me=a({...se(),enabled:e&&n&&B,refetchInterval:e=>e.state.data?.id==null?pe:!1,retry:!1}),he=B&&u!=null&&W.dataUpdatedAt>=u,ge=he&&!W.isPending&&!W.isFetching,G=(he?W.data?.primary_assistant_id:null)??(W.isPending?null:me.data?.id??null),_e=a({...F({path:{id:G??`unresolved`}}),enabled:e&&n&&B&&G!=null,refetchInterval:pe,retry:!1}),ve=a({...P({path:{id:G??`unresolved`}}),enabled:e&&n&&B&&G!=null,refetchInterval:pe,retry:!1}),be=Se(ve.data);(0,J.useEffect)(()=>{be&&j(!0)},[be]);let K=W.data,xe=(0,J.useMemo)(()=>K?{machineSize:ye(K.max_machine_tier).at(-1)??null,storageGib:K.selected_storage_gib??null}:null,[K]),Te=K?K.domain_setup_available&&K.primary_assistant_id!=null:void 0,q=_e.data,Y=(0,J.useMemo)(()=>q?{machineSize:q.machine_size??null,storageGib:q.provisioned_storage_gib??null}:null,[q]),Ee=N===G,De=Ce(xe,Y),Oe=b===G;(0,J.useEffect)(()=>{e&&(De?(y(e=>e!=null&&Oe?e:Date.now()),x(G)):(y(null),x(null)))},[e,De,G,Oe]),(0,J.useEffect)(()=>{!e||!Y||M!=null&&Ee||(te(Y),I(G))},[e,Y,G,M,Ee]);let ke=m??f,Ae=ke==null?null:Math.max(0,ne-ke),{state:je,softWaiting:Me}=Ct({planId:B?`pro`:ce,targets:xe,actuals:Y,initialActuals:Ee?M:null,resizeOperationInFlight:be,sawOperation:ee,msSinceWatchStart:Ae,confirmExpired:r,serverVerdict:g,statusObservedSinceTargetsMet:v!=null&&Oe&&ve.dataUpdatedAt>v}),Ne=Et.includes(je),Pe=e&&B&&!Ne;return(0,J.useEffect)(()=>{z(Pe)},[Pe]),(0,J.useEffect)(()=>{if(!e||!B||Ne)return;let t=setInterval(()=>R(Date.now()),Tt);return()=>clearInterval(t)},[e,B,Ne]),{state:je,softWaiting:Me,targets:xe,actualsSnapshot:M,assistantId:G,domainStepAvailable:Te,onboardingSettled:ge,confirmError:!B&&ae.isError,targetsError:B&&W.isError&&(!K||!he),escapeEligible:Ae!=null&&Ae>=6e4,retryConfirm:ue,kickProvisioning:fe,kickError:S}}var Ot=200,kt=380;function At(){return typeof window<`u`&&window.matchMedia?.(`(prefers-reduced-motion: reduce)`).matches===!0}var jt=e=>e===`WAITING`||e===`RESIZING`||e===`STALLED`,Mt=e=>e===`DONE`||e===`NOT_APPLICABLE`,Nt={machineSize:null,storageGib:null};function Pt({open:e,onClose:t,dwellMs:n,phaseMinMs:r,mode:a=`checkout`,resizeCredits:o}){let s=a===`resize`,c=i(),[l,u]=(0,J.useState)(`provisioning`),[d,f]=(0,J.useState)(`idle`),p=(0,J.useRef)([]),[m,h]=(0,J.useState)(null),[g,_]=(0,J.useState)(null),[v,y]=(0,J.useState)(null),[b,w]=(0,J.useState)(!1),T=Dt({open:e});(0,J.useEffect)(()=>{if(e){h(s?null:O()),y(e=>e??Date.now());return}p.current.forEach(clearTimeout),p.current=[],u(`provisioning`),f(`idle`),_(null),y(null),w(!1)},[e,s]),(0,J.useEffect)(()=>()=>{p.current.forEach(clearTimeout)},[]),(0,J.useEffect)(()=>{l===`complete`&&k()},[l]);let E=jt(T.state),D=Mt(g??T.state),{targets:ee,assistantId:A,domainStepAvailable:j,onboardingSettled:M}=T,{tintHex:te,backdropImageUrl:N}=et(A),P=s&&j===!0,{domains:F,domainsError:I,domainsFetching:ne,domainsUpdatedAt:L,domainsErrorUpdatedAt:R}=Pe(e&&P,A),re=(F?.results.length??0)>0,z=(0,J.useRef)(null);(0,J.useEffect)(()=>{if(!e){z.current=null;return}!P||A==null||z.current!==A&&(z.current=A,c.invalidateQueries({queryKey:B({path:{assistant_id:A}})}))},[e,P,A,c]);let ie=!ne&&(v!=null&&L>=v||v!=null&&!!I&&R>=v),[ae,oe]=(0,J.useState)(!1),se=M&&(!P||ie);(0,J.useEffect)(()=>{if(!e){oe(!1);return}se&&oe(!0)},[e,se]);let ce=(0,J.useCallback)(()=>{let e=s?j===!0&&!re?`domain`:`complete`:j===!1?`complete`:`domain`;if(At()){u(e);return}f(`covering`),p.current.push(setTimeout(()=>{u(e),f(`revealing`),p.current.push(setTimeout(()=>f(`idle`),kt))},Ot))},[j,s,re]),le=(0,J.useCallback)(()=>{w(!0)},[]),ue=(0,J.useCallback)(()=>{T.kickProvisioning(),S.info(T.kickError==null?`Your upgrade continues in the background.`:`We'll retry your upgrade in the background.`),w(!1),t()},[T,t]),V=(0,J.useCallback)(()=>{w(!1)},[]),de=l===`provisioning`&&(T.confirmError||T.targetsError),H=l===`provisioning`&&!de,U=H&&!D,fe=`transition-[background-color] duration-300 ease-out${H?` bg-black p-0`:``}`,W=H?`[animation:fadeIn_0.45s_ease-out_both]`:d===`revealing`?`[animation:fadeInUp_0.42s_ease-out_0.12s_both]`:`[animation:fadeIn_0.25s_ease-out_both]`;return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(x.Root,{open:e,onOpenChange:e=>{e||t()},children:(0,Y.jsxs)(x.Content,{size:`md`,hideCloseButton:l!==`complete`,dismissOnOverlayClick:!U,onEscapeKeyDown:U?e=>e.preventDefault():void 0,onInteractOutside:U?e=>e.preventDefault():void 0,"data-theme":H?`dark`:void 0,overlayClassName:fe,className:H?`overflow-y-auto inset-0 max-w-none w-screen h-screen max-h-none rounded-none border-0`:`overflow-hidden`,style:{[rt]:te},children:[(0,Y.jsx)(`div`,{className:`flex min-h-0 flex-1 flex-col motion-reduce:[animation:none] ${W}`,children:pe()},l),d!==`idle`&&(0,Y.jsx)(`div`,{"aria-hidden":!0,"data-testid":`takeover-exit-sheet`,className:`pointer-events-none fixed inset-0 z-50 ${d===`covering`?`[animation:fadeIn_200ms_ease-in_both]`:`[animation:fadeIn_380ms_ease-out_both_reverse]`}`,style:{backgroundColor:it},children:N&&(0,Y.jsx)(Ye,{imageUrl:N,animateIn:!1})})]})}),(0,Y.jsx)(C,{open:b&&E,title:`Continue in the background?`,message:`Your assistant is still upgrading. Chatting won't be available until it finishes — you can keep waiting here, or continue and we'll let you know when it's ready.`,confirmLabel:`Continue`,cancelLabel:`Keep waiting`,onConfirm:ue,onCancel:V})]});function pe(){return l===`provisioning`?T.confirmError||T.targetsError?(0,Y.jsx)(Ge,{onGoToBilling:t}):(0,Y.jsx)(St,{state:T.state,softWaiting:T.softWaiting,intent:m,resizeCredits:s?o:void 0,targets:ee??Nt,fromSnapshot:T.actualsSnapshot??Nt,celebrating:ae,onCelebrationEnd:ce,assistantId:A,escapeAvailable:E&&T.escapeEligible,onEscape:le,onPhaseChange:_,kickError:T.kickError,confirm:{onRetry:T.retryConfirm,onGoToBilling:t},dwellMs:n,phaseMinMs:r}):l===`domain`?(0,Y.jsx)(We,{machineBusy:E,assistantId:A,onExit:()=>u(`complete`)}):(0,Y.jsx)(Ne,{assistantId:A})}}function Ft(e){return e!=null&&!e.customized}function It(e){return Ft(e)?e.name:`Custom`}var Lt=[`mighty`,`super`,`ultra`],Rt=[`free`,...Lt];function zt(e){return Rt.indexOf(e)}function Bt(e,t){if(e===null)return`upgrade`;let n=zt(e),r=zt(t);return n===-1||r===-1?`upgrade`:r===n?`current`:r<n?`downgrade`:`upgrade`}function Vt(e,t){if(e.length===0)return null;let n=[...e].sort((e,t)=>Lt.indexOf(e.key)-Lt.indexOf(t.key));if(!t)return n[0];let r=n.findIndex(e=>e.key===t);return r===-1?n[0]:r>=n.length-1?null:n[r+1]}var Ht=`billing-portal-return-snapshot`;function Ut(e){try{sessionStorage.removeItem(Ht),sessionStorage.setItem(Ht,JSON.stringify(e))}catch{}}function Wt(){if(typeof sessionStorage>`u`)return null;try{let e=sessionStorage.getItem(Ht);if(!e)return null;let t=JSON.parse(e);return typeof t.cancel_at_period_end!=`boolean`||typeof t.plan_id!=`string`?null:{cancel_at_period_end:t.cancel_at_period_end,cancel_at:t.cancel_at??null,plan_id:t.plan_id}}catch{return null}}function Gt(){try{sessionStorage.removeItem(Ht)}catch{}}function Kt(e){return e?{cancel_at_period_end:e.cancel_at_period_end,cancel_at:e.cancel_at??null,plan_id:e.plan_id}:null}function qt(e){let t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleDateString(void 0,{year:`numeric`,month:`long`,day:`numeric`})}function Jt(e){return e?e.cancel_at??e.current_period_end??null:null}function Yt(e){let t=i();return(0,J.useEffect)(()=>M(()=>{t.invalidateQueries(ie())}),[t]),z({onSuccess:t=>{e&&Ut(e),j(t.portal_url)},onError:()=>{S.error(`Couldn't open the billing portal. Please try again.`,{id:`billing-portal-session-error`})}})}function Xt(e){let t=e/100;return Number.isInteger(t)?`$${t}`:`$${t.toFixed(2)}`}function $(e){return`${Xt(e)}/mo`}function Zt(e){return`${e>0?`+`:`−`}${Xt(Math.abs(e))}/mo`}function Qt(e){return`${e} GB storage`}function $t(e){return`${Xt(e*100)} of bundled credits`}function en(e){return e.disabled===!0}function tn({machineTiers:e,storageTiers:t,selectedMachineTier:n,selectedStorageTier:r,onMachineTierChange:i,onStorageTierChange:a,currentMachinePriceCents:o,currentStoragePriceCents:s}){let l=(0,J.useMemo)(()=>e.map(e=>{let t=xe[e.tier]??e.label,n=o==null?`+${$(e.price_cents)}`:e.price_cents===o?`(${$(e.price_cents)}, current)`:Zt(e.price_cents-o);return{value:e.tier,label:`${t} ${n}`,disabled:en(e)}}),[e,o]),u=(0,J.useMemo)(()=>t.map(e=>{let t=s==null?`+${$(e.price_cents)}`:e.price_cents===s?`(${$(e.price_cents)}, current)`:Zt(e.price_cents-s);return{value:e.tier,label:`${e.storage_gib} GB ${t}`,disabled:en(e)}}),[t,s]);return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,Y.jsx)(c,{as:`p`,variant:`label-small-default`,className:`text-[var(--content-secondary)]`,children:`Machine`}),(0,Y.jsx)(`span`,{title:`Determines the CPU and memory allocated to your assistant`,children:(0,Y.jsx)(v,{className:`h-3 w-3 text-[var(--content-tertiary)]`})})]}),(0,Y.jsx)(w,{"aria-label":`Machine tier`,placeholder:`Select a machine tier`,value:n??``,onChange:i,options:l})]}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,Y.jsx)(c,{as:`p`,variant:`label-small-default`,className:`text-[var(--content-secondary)]`,children:`Storage`}),(0,Y.jsx)(`span`,{title:`Persistent disk space for your assistant's files and data`,children:(0,Y.jsx)(v,{className:`h-3 w-3 text-[var(--content-tertiary)]`})})]}),(0,Y.jsx)(w,{"aria-label":`Storage tier`,placeholder:`Select a storage tier`,value:r??``,onChange:a,options:u})]})]})}var nn=new Set([`active`,`trialing`,`past_due`]);function rn(e){return e.plan_id!==`base`&&e.cancel_at_period_end!==!0&&!e.cancel_at&&e.status!=null&&nn.has(e.status)}var an=[`target_plan_id`,`confirm`,`machine_tier`,`storage_tier`,`credit_tier`,`package`,`non_field_errors`];function on(e,t){if(e&&typeof e==`object`){for(let t of an)if(t in e){let n=e[t];if(Array.isArray(n)&&typeof n[0]==`string`)return n[0]}if(`detail`in e&&typeof e.detail==`string`)return e.detail}return t}function sn(e,t){let n=e.filter(e=>!en(e));return t!==null&&n.some(e=>e.tier===t)?t:n[0]?.tier??null}function cn(e,t,n){return t===void 0?n:t!==null&&(t===n||e.some(e=>e.tier===t))?t:null}function ln(e){return e.length?Math.min(...e.map(e=>e.price_cents)):0}function un(){let e=i(),t=o(ce());return{changePackage:async n=>{try{let r=await t.mutateAsync({body:{package:n}});return await Promise.all([e.invalidateQueries({queryKey:V()}),e.invalidateQueries({queryKey:R()}),e.invalidateQueries({queryKey:L()})]),r}catch(e){return S.error(on(e,`Failed to change your plan. Please try again.`)),null}},isPending:t.isPending}}function dn({enabled:e=!0}={}){let t=i(),n=A(),r=e&&n,s=a({...ie(),enabled:r}).data,c=s!=null&&s.plan_id!==`base`,l=a({...le(),enabled:r&&c}),u=a({...N(),enabled:r&&c}).data?.plans.find(e=>e.id===`pro`)?.machine_tiers??[],d=e=>u.find(t=>t.tier===e)?.price_cents??null,f=o(ae()),p=o(re()),m=o(ue()),h={machineTier:l.data?.max_machine_tier??null,storageTier:l.data?.selected_storage_tier??null,storageGib:l.data?.selected_storage_gib??null,creditTier:s?.selected_credit_tier??null},g=s!=null&&s.plan_id!==`base`&&s.status!=null&&nn.has(s.status)&&s.cancel_at_period_end!==!0&&!s.cancel_at,_=!c||!l.isPending,v=f.isPending||p.isPending||m.isPending,y=()=>Promise.all([t.invalidateQueries({queryKey:V()}),t.invalidateQueries({queryKey:L()}),t.invalidateQueries({queryKey:R()})]);return{changeTiers:async e=>{let t=e.machineTier!==h.machineTier,n=e.storageTier!==h.storageTier,r=e.creditTier!==h.creditTier,i=d(e.machineTier),a=d(h.machineTier),o=t&&i!=null&&a!=null&&i<a,s=[];if(t&&s.push(new Promise(t=>{f.mutate({body:{machine_tier:e.machineTier}},{onSuccess:()=>t({dimension:`machine`,ok:!0}),onError:e=>t({dimension:`machine`,ok:!1,error:e})})})),n&&s.push(new Promise(t=>{p.mutate({body:{storage_tier:e.storageTier}},{onSuccess:()=>t({dimension:`storage`,ok:!0}),onError:e=>t({dimension:`storage`,ok:!1,error:e})})})),r&&s.push(new Promise(t=>{m.mutate({body:{credit_tier:e.creditTier}},{onSuccess:()=>t({dimension:`credit`,ok:!0}),onError:e=>t({dimension:`credit`,ok:!1,error:e})})})),s.length===0)return{needsResize:!1,creditChanged:!1};let c=await Promise.all(s);await y();let l=c.some(e=>e.ok&&e.dimension===`machine`)&&!o,u=c.some(e=>e.ok&&e.dimension===`storage`),g=l||u,_=c.some(e=>e.ok&&e.dimension===`credit`),v=c.filter(e=>!e.ok);if(v.length>0){let e=v.map(e=>on(e.error,`Failed to update ${e.dimension} tier.`)).join(` `);return S.error(e),g||_?{needsResize:g,creditChanged:_}:null}return{needsResize:g,creditChanged:_}},isPending:v,current:h,eligible:g,currentReady:_}}var fn=`__none__`,pn=`No extra credits`;function mn(e){let{proPlan:t,seed:n,machineTier:r,storageTier:i,creditChoice:a}=e,o=t.machine_tiers,s=t.storage_tiers,c=t.credit_tiers??[],l=o.find(e=>e.tier===r)??null,u=s.find(e=>e.tier===i)??null,d=a&&a!==`__none__`?c.find(e=>e.tier===a)??null:null,f=n==null?null:o.find(e=>e.tier===n.machineTier)??null,p=n==null?null:s.find(e=>e.tier===n.storageTier)??null,m=n!=null&&n.creditTier!=null?c.find(e=>e.tier===n.creditTier)??null:null,h=n!=null&&n.machineTier!=null&&f==null,g=n!=null&&p==null,_=[{key:`base`,label:`Pro base plan — ${$(t.base_price_cents)}`,changed:!1}];if(l!=null){let e=n!=null&&!h&&f?.tier!==l.tier;_.push({key:`machine`,label:l.description,previousLabel:e&&f!=null?f.description:void 0,changed:e})}if(u!=null){let e=n!=null&&!g&&p?.tier!==u.tier;_.push({key:`storage`,label:Qt(u.storage_gib),previousLabel:e&&p!=null?Qt(p.storage_gib):void 0,changed:e})}let v=a===`__none__`?pn:d==null?null:$t(d.credits_usd);if(v!=null){let e=n!=null&&(n.creditTier??`__none__`)!==a,t=n?.creditTier==null?pn:m==null?void 0:$t(m.credits_usd);_.push({key:`credit`,label:v,previousLabel:e?t:void 0,changed:e})}let y=t.base_price_cents+(l?.price_cents??0)+(u?.price_cents??0)+(d?.price_cents??0),b=h||g||n!=null&&n.creditTier!=null&&m==null;if(n==null||b)return{totalCents:y,previousTotalCents:null,deltaCents:null,rows:_};let x=t.base_price_cents+(f?.price_cents??0)+(p?.price_cents??0)+(m?.price_cents??0);return{totalCents:y,previousTotalCents:x,deltaCents:y-x,rows:_}}function hn(e){return(0,Y.jsxs)(`span`,{className:`text-[12px] font-medium text-[var(--content-disabled)]`,children:[`+`,$(e)]})}function gn({open:e,proPlan:t,pending:r,currentStorageGib:i,initialSelection:a,onClose:o,onContinue:s}){let c=e?a??null:null,[l,u]=(0,J.useState)(()=>c?.machineTier??``),[d,f]=(0,J.useState)(()=>c?.storageTier??``),[h,v]=(0,J.useState)(()=>c?c.creditTier??`__none__`:``),[y,b]=(0,J.useState)({open:e,initialSelection:a});(y.open!==e||y.initialSelection!==a)&&(b({open:e,initialSelection:a}),u(c?.machineTier??``),f(c?.storageTier??``),v(c?c.creditTier??`__none__`:``));let S=t.machine_tiers,C=(0,J.useMemo)(()=>t.storage_tiers.filter(e=>!e.legacy||e.tier===a?.storageTier),[t.storage_tiers,a?.storageTier]),T=t.credit_tiers??[],E=(0,J.useMemo)(()=>(t.credit_tiers??[]).filter(e=>!e.legacy),[t.credit_tiers]),D=e=>en(e)||e.legacy&&e.tier!==a?.storageTier||i!=null&&e.storage_gib<i,O=S.map(e=>({value:e.tier,label:e.description,icon:(0,Y.jsx)(q,{className:`h-4 w-4`,"aria-hidden":!0}),suffix:hn(e.price_cents),disabled:en(e)})),k=C.map(e=>({value:e.tier,label:e.label,icon:(0,Y.jsx)(_,{className:`h-4 w-4`,"aria-hidden":!0}),suffix:hn(e.price_cents),disabled:D(e)})),ee=h&&h!==`__none__`?T.find(e=>e.tier===h)??null:null,A=ee?.legacy?ee:null,j=[{value:fn,label:pn,icon:(0,Y.jsx)(m,{className:`h-4 w-4`,"aria-hidden":!0})},...E.map(e=>({value:e.tier,label:e.label,icon:(0,Y.jsx)(m,{className:`h-4 w-4`,"aria-hidden":!0}),suffix:hn(e.price_cents)})),...A?[{value:A.tier,label:A.label,icon:(0,Y.jsx)(m,{className:`h-4 w-4`,"aria-hidden":!0}),suffix:hn(A.price_cents),disabled:!0}]:[]],M=S.find(e=>e.tier===l)??null,te=d!==``&&d===a?.storageTier,N=C.find(e=>e.tier===d&&(te||!D(e)))??null,P=h===`__none__`||h===a?.creditTier||E.some(e=>e.tier===h),F=h!==``&&P?h:null,I=M!=null&&N!=null&&F!=null,ne=a!=null&&l===(a.machineTier??``)&&d===a.storageTier&&h===(a.creditTier??`__none__`),L=(0,J.useMemo)(()=>mn({proPlan:t,seed:a??null,machineTier:l,storageTier:d,creditChoice:h}),[t,a,l,d,h]);return(0,Y.jsx)(x.Root,{open:e,onOpenChange:e=>{e||o()},children:(0,Y.jsx)(x.Content,{size:`lg`,"data-theme":`light`,hideCloseButton:!0,overlayClassName:`backdrop-blur-[2px]`,className:`max-w-[820px] md:min-h-[min(608px,calc(100vh-4rem))]`,children:(0,Y.jsx)(x.Body,{className:`p-4`,children:(0,Y.jsxs)(`div`,{className:`flex flex-col gap-8 md:flex-row md:gap-12`,children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-6 md:flex-1`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,Y.jsx)(`div`,{className:`flex shrink-0 items-center justify-center rounded-xl bg-[var(--surface-active)] p-[14px]`,children:(0,Y.jsx)(g,{className:`h-6 w-6 text-[var(--content-emphasised)]`,"aria-hidden":!0})}),(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1`,children:[(0,Y.jsx)(x.Title,{className:`text-[16px] font-medium text-[var(--content-emphasised)]`,children:`Create a custom plan`}),(0,Y.jsx)(x.Description,{className:`mt-0 text-[14px] font-medium leading-[18px] text-[var(--content-tertiary)]`,children:`Just better.`})]})]}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Y.jsx)(`span`,{className:`text-[11px] font-medium text-[var(--content-secondary)]`,children:`Select a machine size:`}),(0,Y.jsx)(w,{"aria-label":`Machine size`,placeholder:`Select a machine size`,value:l,onChange:u,options:O})]}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Y.jsx)(`span`,{className:`text-[11px] font-medium text-[var(--content-secondary)]`,children:`Select storage:`}),(0,Y.jsx)(w,{"aria-label":`Storage`,placeholder:`Select storage`,value:d,onChange:f,options:k})]}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Y.jsx)(`span`,{className:`text-[11px] font-medium text-[var(--content-secondary)]`,children:`Bundle some credits:`}),(0,Y.jsx)(w,{"aria-label":`Credit bundle`,placeholder:`Select a credit bundle`,value:h,onChange:v,options:j})]})]}),(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-16 md:pt-[5px]`,children:[(0,Y.jsx)(`span`,{className:`text-[16px] font-medium text-[var(--content-emphasised)]`,children:`Recap`}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Y.jsx)(`span`,{className:`text-[24px] font-medium text-[var(--content-default)]`,children:$(L.totalCents)}),L.deltaCents!=null&&L.deltaCents!==0&&L.previousTotalCents!=null&&(0,Y.jsxs)(`span`,{className:`text-[12px] font-medium ${L.deltaCents>0?`text-[var(--system-positive-strong)]`:`text-[var(--system-negative-strong)]`}`,children:[Zt(L.deltaCents),` compared to previous (`,Xt(L.previousTotalCents),`)`]}),(0,Y.jsx)(`span`,{className:`text-[11px] font-medium text-[var(--content-tertiary)]`,children:`Total`})]}),(0,Y.jsx)(`div`,{className:`h-px w-full bg-[var(--border-hover)]`}),(0,Y.jsx)(`span`,{className:`text-[12px] font-medium text-[var(--content-tertiary)]`,children:`Your selection:`}),(0,Y.jsx)(`ul`,{className:`flex flex-col gap-2`,children:L.rows.map(e=>(0,Y.jsxs)(`li`,{className:`flex flex-col gap-2`,children:[e.previousLabel!=null&&(0,Y.jsxs)(`div`,{className:`relative flex w-fit items-start gap-2`,children:[(0,Y.jsx)(p,{className:`mt-0.5 h-4 w-4 shrink-0 text-[var(--content-disabled)]`,"aria-hidden":!0}),(0,Y.jsx)(`s`,{className:`text-[14px] font-medium leading-[18px] text-[var(--content-disabled)] no-underline`,children:e.previousLabel}),(0,Y.jsx)(`span`,{"aria-hidden":!0,className:`pointer-events-none absolute -left-1 right-0 top-[9px] h-px bg-[var(--content-disabled)]`})]}),(0,Y.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,Y.jsx)(p,{className:`mt-0.5 h-4 w-4 shrink-0 ${e.changed?`text-[var(--system-positive-strong)]`:`text-[var(--content-secondary)]`}`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`text-[14px] font-medium leading-[18px] text-[var(--content-secondary)]`,children:e.label})]})]},e.key))}),(0,Y.jsx)(n,{variant:`primary`,fullWidth:!0,disabled:!I||ne||r,onClick:()=>{!I||ne||r||s({machineTier:M.tier,storageTier:N.tier,creditTier:F===`__none__`?null:F})},children:`Continue`}),(0,Y.jsx)(n,{variant:`ghost`,fullWidth:!0,disabled:r,onClick:o,children:`Cancel`})]})]})]})})})})}function _n({className:e,"data-testid":t,children:n}){return(0,Y.jsx)(`div`,{"aria-hidden":!0,"data-testid":t,className:fe(`flex size-[52px] shrink-0 items-center justify-center rounded-xl`,e),children:n})}var vn=32;function yn(){let{ready:e,avatar:t}=et();return(0,Y.jsx)(_n,{"data-testid":`assistant-avatar-tile`,className:`bg-[var(--surface-active)]`,children:e?(0,Y.jsx)(G,{components:t.components,traits:t.traits,customImageUrl:t.customImageUrl,size:vn}):null})}var bn={free:{bodyShape:`ninja`,eyeStyle:`angry`,color:`yellow`},mighty:{bodyShape:`blob`,eyeStyle:`grumpy`,color:`green`},super:{bodyShape:`urchin`,eyeStyle:`goofy`,color:`teal`},ultra:{bodyShape:`sprout`,eyeStyle:`curious`,color:`orange`}};function xn({tier:e,size:t=40}){let n=bn[e]??bn.free,r=ve();return(0,Y.jsx)(`div`,{"aria-hidden":!0,className:`inline-flex shrink-0`,children:r?(0,Y.jsx)(_e,{components:r,bodyShapeId:n.bodyShape,colorId:n.color,size:t}):(0,Y.jsx)(`div`,{style:{width:t,height:t}})})}var Sn=`Small`;function Cn(e){return e?.machine_size?K[e.machine_size]??e.machine_size:Sn}function wn(e){let t=e?.credits_usd??0,n=e?.storage_gib??4;return[{icon:q,label:`${Cn(e)} Machine`},{icon:m,label:`${Xt(t*100)} credits`},{icon:_,label:`${n} GB`}]}function Tn(e,t=[]){let n=e?.credits_usd??0,r=e?.storage_gib??4,i=be[e?.machine_size??`small`];return[`${Cn(e)} machine${i?` (${i})`:``}`,Qt(r),$t(n),...t]}var En={free:{tagline:`Get to know your assistant.`,cta:`Start Free`,priceCaption:`Forever`},mighty:{tagline:`More capacity for consistent use.`,cta:`Power Up`,priceCaption:`Billed monthly`,recommended:!0,upgradeBlurb:`$25 in Credits, more storage and power`},super:{tagline:`Stronger performance for heavier workloads.`,cta:`Go Super`,priceCaption:`Billed monthly`,extraFeatures:[`Assistant email and subdomain`],upgradeBlurb:`$45 credits, 3× storage, more power, and email.`},ultra:{tagline:`Built for sustained, high-demand work.`,cta:`Unleash Ultra`,priceCaption:`Billed monthly`,extraFeatures:[`Assistant email and subdomain`],upgradeBlurb:`$115 credits, 2x storage, more power, and email.`}};function Dn(e){return En[e]}function On(e){return`Downgrade to ${e}`}var kn=`Billed monthly · prorated difference charged today`,An=`Billed monthly · prorated difference charged today or credited next invoice`,jn=`Billed monthly · prorated credit on your next invoice`,Mn=`Your machine downsizes now and your storage stays. No refund.`,Nn=`Continue`,Pn=`The plan includes`,Fn=`Your plan will include`;function In(e,t,n){let r=n?Dn(n)?.tagline??``:``;switch(e){case`downgrade`:return{title:On(t),subtitle:``,priceCaption:jn,checklistHeading:Fn,note:Mn,confirmLabel:On(t),destructive:!0};case`switch`:return{title:`Switch to ${t}`,subtitle:r,priceCaption:An,checklistHeading:Pn,note:``,confirmLabel:Nn,destructive:!1};default:return{title:`Upgrade to ${t}`,subtitle:r,priceCaption:kn,checklistHeading:Pn,note:``,confirmLabel:Nn,destructive:!1}}}function Ln({open:e,relation:t,packageName:r,targetPackage:i,pending:a,onCancel:o,onConfirm:s}){let l=(0,J.useRef)(null),u=(0,J.useId)(),d=In(t,r,i?.key??null),f=i?{price:$(i.total_price_cents),highlights:Tn(i,Dn(i.key)?.extraFeatures??[])}:null,m=d.subtitle,h=d.note?{"aria-describedby":u}:m?{}:{"aria-describedby":void 0};return(0,Y.jsx)(x.Root,{open:e,onOpenChange:e=>{!e&&!a&&o()},children:(0,Y.jsxs)(x.Content,{size:`sm`,hideCloseButton:!0,className:`gap-4 p-4 max-w-[421px]`,onOpenAutoFocus:e=>{e.preventDefault(),l.current?.focus()},...h,children:[(0,Y.jsxs)(x.Header,{className:`flex-row items-center gap-3 p-0 pb-2`,children:[d.destructive?(0,Y.jsx)(_n,{"data-testid":`package-switch-warning-tile`,className:`bg-[var(--system-negative-weak)]`,children:(0,Y.jsx)(y,{className:`size-6 text-[var(--system-negative-strong)]`})}):(0,Y.jsx)(yn,{}),(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-1`,children:[(0,Y.jsx)(x.Title,{className:`text-title-small text-[var(--content-emphasised)] [&>span]:whitespace-normal`,children:d.title}),m?(0,Y.jsx)(x.Description,{className:`mt-0 text-body-medium-default text-[var(--content-tertiary)]`,children:m}):null]})]}),f?(0,Y.jsxs)(x.Body,{className:`flex flex-col gap-4 p-0`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[(0,Y.jsx)(c,{as:`p`,variant:`title-large`,className:`text-[var(--content-default)]`,children:f.price}),(0,Y.jsx)(c,{as:`p`,variant:`label-medium-default`,className:`leading-[15px] text-[var(--content-tertiary)]`,children:d.priceCaption})]}),(0,Y.jsx)(`div`,{className:`h-px w-full bg-[var(--border-hover)]`}),(0,Y.jsx)(c,{as:`p`,variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,children:d.checklistHeading}),(0,Y.jsx)(`ul`,{className:`flex flex-col gap-2`,children:f.highlights.map(e=>(0,Y.jsxs)(`li`,{className:`flex items-center gap-1`,children:[(0,Y.jsx)(p,{className:`size-4 shrink-0 text-[var(--content-secondary)]`,"aria-hidden":!0}),(0,Y.jsx)(c,{as:`span`,variant:`body-medium-default`,className:`text-[var(--content-default)]`,children:e})]},e))})]}):null,d.note?(0,Y.jsx)(c,{id:u,as:`p`,variant:`body-medium-default`,className:`text-[var(--content-secondary)]`,children:d.note}):null,(0,Y.jsxs)(x.Footer,{className:`flex-col gap-4 p-0`,children:[(0,Y.jsx)(n,{fullWidth:!0,variant:d.destructive?`danger`:`primary`,onClick:s,disabled:a,"data-testid":`confirm-package-switch-button`,children:d.confirmLabel}),(0,Y.jsx)(n,{ref:l,fullWidth:!0,variant:`ghost`,onClick:o,disabled:a,children:`Cancel`})]})]})})}function Rn(){let e=i();(0,J.useEffect)(()=>M(()=>{e.invalidateQueries({queryKey:V()}),e.invalidateQueries({queryKey:R()}),e.invalidateQueries({queryKey:L()})}),[e])}export{Vt as A,Gt as C,Yt as D,Wt as E,Pe as F,Bt as M,Pt as N,Lt as O,Xe as P,Kt as S,Jt as T,sn as _,Sn as a,Xt as b,xn as c,un as d,nn as f,cn as g,ln as h,Dn as i,It as j,Ft as k,gn as l,rn as m,Ln as n,Cn as o,on as p,On as r,wn as s,Rn as t,dn as u,tn as v,qt as w,$ as x,Zt as y};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{n}from"./QueryClientProvider-CMu7CkQU.js";import{t as r}from"./useQuery-Bz-fbQ-m.js";import{t as i}from"./createLucideIcon-CAM1RhH8.js";import{n as a,t as o}from"./settings-CfuLzwIw.js";import{t as s}from"./chevron-left-CytMddTB.js";import{t as c}from"./chevron-right-HU6H84S0.js";import{t as l}from"./globe-CMtjL_s_.js";import{t as u}from"./layout-grid-DA_CfD6d.js";import{t as d}from"./message-square-CQGiY4zk.js";import{t as f}from"./monitor-B1y28fS1.js";import{t as p}from"./search-BVW-n8to.js";import{n as m,t as h}from"./zoom-in-CaLYwni-.js";import{n as g,t as _}from"./create-selectors-Qo7kcikX.js";import{f as v,h as y,lt as b,r as x}from"./local-mode-BTovbt13.js";import{t as S}from"./is-electron-m5eeGBnd.js";import{n as C}from"./resolved-assistants-store-Dw5UuGyB.js";import{nr as w}from"./sdk.gen-BVAVE6A_.js";import{r as T}from"./utils-CnB60ZJN.js";import{n as E}from"./api-errors-CFiCT7Ap.js";import{N as D,O,R as k,j as A,k as j}from"./auth-store-BW4V6iLb.js";import{et as ee}from"./sdk.gen-BIu1DgTs.js";import{u as M}from"./routes-D9sNqB_o.js";import{i as N,r as P}from"./use-is-org-ready-D0q2NIZU.js";import{a as F,i as I,r as te}from"./feature-flag-catalog-TjLF99gJ.js";import{t as L}from"./client-feature-flag-store-BDrcV52r.js";import{t as R}from"./haptics-DvWjk9Fg.js";import{F as z}from"./react-query.gen-BC3STDmV.js";import{s as B}from"./chat-CDFCY8f0.js";var V=i(`contact`,[[`path`,{d:`M16 2v2`,key:`scm5qe`}],[`path`,{d:`M7 22v-2a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v2`,key:`1waht3`}],[`path`,{d:`M8 2v2`,key:`pbkmx`}],[`circle`,{cx:`12`,cy:`11`,r:`3`,key:`itu57m`}],[`rect`,{x:`3`,y:`4`,width:`18`,height:`18`,rx:`2`,key:`12vinp`}]]),H=i(`square-pen`,[[`path`,{d:`M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7`,key:`1m0v6g`}],[`path`,{d:`M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z`,key:`ohrbg2`}]]),U=e(t(),1);function W({sessionStatus:e,hasPlatformSession:t}){let r=n(),i=P(),a=D(e)&&!b()&&(t||!v())&&i,o=L.use.multiPlatformAssistant();C.use.selectedAssistantId(),C.use.assistants();let s=O(),c=o&&!b()&&s?j(s):null,l=c&&!x().some(e=>e.assistantId===c)?c:null,{data:u}=k({enabled:a,selectedPlatformAssistantId:l});(0,U.useEffect)(()=>{A.setInputs({sessionStatus:e,hasPlatformSession:t,queryClient:r,selectedPlatformAssistantId:l,isOrgReady:i}),A.respondToInputs()},[e,t,r,l,i]),(0,U.useEffect)(()=>{u&&A.applyServerResult(u)},[u])}var G=`0.8.5`,K=5e3,q=6e4;function J(){return T(G)?{staleTime:q,refetchInterval:!1}:{staleTime:K,refetchInterval:K}}var Y=new Set(Object.keys(te)),X=new Set(Object.keys(I));async function Z(){let e=L.getState().scopeKey,{data:t,error:n,response:r}=await ee({throwOnError:!1});if(E(r,n,`Failed to fetch client feature flags`),!r.ok||!t)throw Error(`Failed to fetch client feature flags: ${r.status}`);return{scopeKey:e,flags:t.flags}}function ne(e){let t={},n={};for(let[r,i]of Object.entries(e)){let e=F(r);typeof i==`boolean`&&Y.has(e)?t[e]=i:typeof i==`string`&&X.has(e)&&(n[e]=i)}return{boolFlags:t,stringFlags:n}}function re(e){let t=J(),n=N(),i=L.use.scopeKey(),a=e&&!y(),o=a&&n===`ready`,{data:s,isError:c}=r({queryKey:z(),queryFn:Z,enabled:o,...t,retry:1});(0,U.useEffect)(()=>{if(s?.flags){let{boolFlags:e,stringFlags:t}=ne(s.flags),n=L.getState();n.setFlags(e,s.scopeKey),Object.keys(t).length>0&&n.setStringFlags(t,s.scopeKey);return}e&&(!a||n===`unavailable`||c)&&L.getState().settleWithoutServerValues(i)},[i,s,e,c,a,n])}var Q=_(g((e,t)=>({isOpen:!1,open:()=>e({isOpen:!0}),close:()=>e({isOpen:!1}),toggle:()=>e({isOpen:!t().isOpen})})));async function ie(){if(!S())return!1;let e=window.vellum?.commandPalette?.open;return e?(await e(),!0):!1}async function ae(){S()&&await window.vellum?.commandPalette?.dismiss()}async function oe(e){S()&&await window.vellum?.commandPalette?.select(e)}var $={conversations:[],memories:[],schedules:[],contacts:[]};async function se(e,t,n){let r=n?.limit??20;try{let{data:i,response:a}=await w({path:{assistant_id:e},query:{q:t,limit:r,categories:`conversations,schedules,contacts`},throwOnError:!1,signal:n?.signal});return!a?.ok||!i?$:i.results}catch(n){return n instanceof DOMException&&n.name===`AbortError`||console.error(`[global-search] search failed`,{assistantId:e,query:t,err:n}),$}}var ce=150,le=2;function ue({itemCount:e,onSelect:t,assistantId:n,isOpen:r,onClose:i}){let a=Q.use.isOpen(),o=r??a,s=Q.use.open(),c=Q.use.close(),[l,u]=(0,U.useState)(``),[d,f]=(0,U.useState)(0),[p,m]=(0,U.useState)(!1),[h,g]=(0,U.useState)(null),_=(0,U.useRef)(()=>0);(0,U.useLayoutEffect)(()=>{_.current=typeof e==`function`?e:()=>e});let v=(0,U.useRef)(null),y=(0,U.useRef)(null),b=(0,U.useCallback)(()=>{v.current&&=(clearTimeout(v.current),null),y.current?.abort(),y.current=null},[]),x=(0,U.useCallback)(()=>{s(),f(0)},[s]),S=(0,U.useCallback)(()=>{c(),u(``),f(0),m(!1),g(null),b(),i?.()},[c,b,i]),C=(0,U.useCallback)(()=>{o?S():x()},[o,S,x]);(0,U.useEffect)(()=>{o||(u(``),f(0),m(!1),g(null),b())},[o,b]);let w=(0,U.useCallback)(e=>{b();let t=e.trim();if(t.length<le||!n){m(!1),g(null);return}m(!0),v.current=setTimeout(()=>{if(!n){m(!1);return}let e=new AbortController;y.current=e,se(n,t,{signal:e.signal}).then(t=>{y.current===e&&(g(t),m(!1))}).catch(()=>{y.current===e&&m(!1)})},ce)},[b,n]),T=(0,U.useCallback)(e=>{u(e),f(0),w(e)},[w]);return(0,U.useEffect)(()=>()=>{y.current?.abort(),v.current&&clearTimeout(v.current)},[]),{isOpen:o,query:l,selectedIndex:d,isSearching:p,searchResults:h,open:x,close:S,toggle:C,setQuery:T,handleKeyDown:(0,U.useCallback)(e=>{if(e.key===`k`&&(e.metaKey||e.ctrlKey)){e.preventDefault(),S();return}let n=_.current();switch(e.key){case`ArrowDown`:e.preventDefault(),n>0&&f(e=>Math.min(e+1,n-1));break;case`ArrowUp`:e.preventDefault(),f(e=>Math.max(e-1,0));break;case`Enter`:e.preventDefault(),n>0&&t?.(d);break;case`Escape`:e.preventDefault(),S();break}},[t,d,S])}}function de(e,t){let n=[],r=e.conversations.filter(e=>!t.has(e.id)).map(e=>({id:`search-conv-${e.id}`,icon:d,title:e.title??`Untitled`,subtitle:e.excerpt}));r.length>0&&n.push({id:`search-conversations`,label:`Conversations`,items:r});let i=e.schedules.map(e=>({id:`search-schedule-${e.id}`,icon:a,title:e.name,subtitle:e.expression??e.message}));i.length>0&&n.push({id:`search-schedules`,label:`Schedules`,items:i});let o=e.contacts.map(e=>({id:`search-contact-${e.id}`,icon:V,title:e.displayName,subtitle:e.notes??void 0}));return o.length>0&&n.push({id:`search-contacts`,label:`Contacts`,items:o}),n}function fe(e){return{id:`actions`,label:`Actions`,items:[{id:`action-new-conversation`,icon:H,title:`New Conversation`,shortcutHint:S()?`⌘N`:`⌘⇧O`},{id:`action-current-conversation`,icon:f,title:`Current Conversation`,shortcutHint:`⌘⇧N`},{id:`action-settings`,icon:o,title:`Settings`,shortcutHint:`⌘,`},{id:`action-library`,icon:u,title:`Library`},{id:`action-intelligence`,icon:l,title:e},{id:`action-back`,icon:s,title:`Back`,shortcutHint:`⌘[`},{id:`action-forward`,icon:c,title:`Forward`,shortcutHint:`⌘]`},{id:`action-zoom-in`,icon:h,title:`Zoom In`,shortcutHint:`⌘+`},{id:`action-zoom-out`,icon:m,title:`Zoom Out`,shortcutHint:`⌘−`},{id:`action-actual-size`,icon:p,title:`Actual Size`,shortcutHint:`⌘0`}]}}function pe(e){return{id:`conversations`,label:`Recent`,items:e.slice(0,5).map(e=>({id:`conv-${e.conversationId}`,icon:d,title:e.title??`Untitled`,subtitle:e.lastMessageAt?B(e.lastMessageAt):void 0}))}}function me(e,t){switch(e.id){case`action-new-conversation`:t.startNewConversation();break;case`action-current-conversation`:R.light(),t.navigate(M.assistant);break;case`action-settings`:R.light(),t.navigateToSettings();break;case`action-intelligence`:R.light(),t.navigate(M.identity);break;case`action-library`:R.light(),t.navigate(M.library.root);break;case`action-back`:t.navigate(-1);break;case`action-forward`:t.navigate(1);break;case`action-zoom-in`:document.body.style.zoom=String(parseFloat(document.body.style.zoom||`1`)+.1);break;case`action-zoom-out`:document.body.style.zoom=String(Math.max(.5,parseFloat(document.body.style.zoom||`1`)-.1));break;case`action-actual-size`:document.body.style.zoom=`1`;break;default:if(e.id.startsWith(`conv-`)){let n=e.id.slice(5);t.switchConversation(n)}else if(e.id.startsWith(`search-conv-`)){let n=e.id.slice(12);t.switchConversation(n)}else e.id.startsWith(`search-schedule-`)?(R.light(),t.navigate(M.schedules.detail(e.id.slice(16)))):e.id.startsWith(`search-contact-`)&&(R.light(),t.navigate(M.identity));break}}function he({assistantId:e,assistantName:t,conversations:n,activeConversationId:r,startNewConversation:i,switchConversation:a,navigate:o,navigateToSettings:s,isOpen:c,onClose:l,onItemSelect:u}){let d=(0,U.useMemo)(()=>{let e=fe(t??`Assistant`),r=pe(n);return[e,...r.items.length>0?[r]:[]]},[n,t]),f=(0,U.useMemo)(()=>new Set(n.slice(0,5).map(e=>e.conversationId)),[n]),p=(0,U.useCallback)(e=>{if(u){u(e);return}me(e,{startNewConversation:i,switchConversation:a,navigate:o,activeConversationId:r,navigateToSettings:s})},[i,a,o,r,s,u]),m=(0,U.useRef)([]),h=(0,U.useRef)(()=>{}),g=ue({itemCount:()=>m.current.reduce((e,t)=>e+t.items.length,0),onSelect:(0,U.useCallback)(e=>{let t=e;for(let e of m.current){if(t<e.items.length){let n=e.items[t];p(n),h.current();return}t-=e.items.length}},[p]),assistantId:e,isOpen:c,onClose:l});(0,U.useLayoutEffect)(()=>{h.current=g.close});let _=(0,U.useMemo)(()=>{if(!g.query.trim())return d;let e=g.query.toLowerCase().trim();return d.map(t=>({...t,items:t.items.filter(t=>t.title.toLowerCase().includes(e))})).filter(e=>e.items.length>0)},[d,g.query]),v=(0,U.useMemo)(()=>{let e=g.searchResults?de(g.searchResults,f):[];return[..._,...e]},[_,g.searchResults,f]);return(0,U.useLayoutEffect)(()=>{m.current=v}),{commandPalette:g,mergedSections:v,handleItemSelect:(0,U.useCallback)(e=>{p(e),h.current()},[p])}}export{Q as a,W as c,oe as i,H as l,ae as n,re as o,ie as r,J as s,he as t,V as u};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{n}from"./QueryClientProvider-CMu7CkQU.js";import{t as r}from"./useQuery-Bz-fbQ-m.js";import{t as i}from"./createLucideIcon-CAM1RhH8.js";import{n as a,t as o}from"./settings-CfuLzwIw.js";import{t as s}from"./chevron-left-CytMddTB.js";import{t as c}from"./chevron-right-HU6H84S0.js";import{t as l}from"./globe-CMtjL_s_.js";import{t as u}from"./layout-grid-DA_CfD6d.js";import{t as d}from"./message-square-CQGiY4zk.js";import{t as f}from"./monitor-B1y28fS1.js";import{t as p}from"./search-BVW-n8to.js";import{n as m,t as h}from"./zoom-in-CaLYwni-.js";import{n as g,t as _}from"./create-selectors-Qo7kcikX.js";import{f as v,h as y,lt as b,r as x}from"./local-mode-BTovbt13.js";import{t as S}from"./is-electron-m5eeGBnd.js";import{n as C}from"./resolved-assistants-store-Dw5UuGyB.js";import{nr as w}from"./sdk.gen-BHZ0fJla.js";import{r as T}from"./utils-CnB60ZJN.js";import{n as E}from"./api-errors-CFiCT7Ap.js";import{N as D,O,R as k,j as A,k as j}from"./auth-store-5qq59BAN.js";import{et as ee}from"./sdk.gen-BIu1DgTs.js";import{u as M}from"./routes-D9sNqB_o.js";import{i as N,r as P}from"./use-is-org-ready-C5xlYywh.js";import{a as F,i as I,r as te}from"./feature-flag-catalog-I9-eJQP_.js";import{t as L}from"./client-feature-flag-store-CMncoan8.js";import{t as R}from"./haptics-DvWjk9Fg.js";import{F as z}from"./react-query.gen-BC3STDmV.js";import{s as B}from"./chat-CDFCY8f0.js";var V=i(`contact`,[[`path`,{d:`M16 2v2`,key:`scm5qe`}],[`path`,{d:`M7 22v-2a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v2`,key:`1waht3`}],[`path`,{d:`M8 2v2`,key:`pbkmx`}],[`circle`,{cx:`12`,cy:`11`,r:`3`,key:`itu57m`}],[`rect`,{x:`3`,y:`4`,width:`18`,height:`18`,rx:`2`,key:`12vinp`}]]),H=i(`square-pen`,[[`path`,{d:`M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7`,key:`1m0v6g`}],[`path`,{d:`M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z`,key:`ohrbg2`}]]),U=e(t(),1);function W({sessionStatus:e,hasPlatformSession:t}){let r=n(),i=P(),a=D(e)&&!b()&&(t||!v())&&i,o=L.use.multiPlatformAssistant();C.use.selectedAssistantId(),C.use.assistants();let s=O(),c=o&&!b()&&s?j(s):null,l=c&&!x().some(e=>e.assistantId===c)?c:null,{data:u}=k({enabled:a,selectedPlatformAssistantId:l});(0,U.useEffect)(()=>{A.setInputs({sessionStatus:e,hasPlatformSession:t,queryClient:r,selectedPlatformAssistantId:l,isOrgReady:i}),A.respondToInputs()},[e,t,r,l,i]),(0,U.useEffect)(()=>{u&&A.applyServerResult(u)},[u])}var G=`0.8.5`,K=5e3,q=6e4;function J(){return T(G)?{staleTime:q,refetchInterval:!1}:{staleTime:K,refetchInterval:K}}var Y=new Set(Object.keys(te)),X=new Set(Object.keys(I));async function Z(){let e=L.getState().scopeKey,{data:t,error:n,response:r}=await ee({throwOnError:!1});if(E(r,n,`Failed to fetch client feature flags`),!r.ok||!t)throw Error(`Failed to fetch client feature flags: ${r.status}`);return{scopeKey:e,flags:t.flags}}function ne(e){let t={},n={};for(let[r,i]of Object.entries(e)){let e=F(r);typeof i==`boolean`&&Y.has(e)?t[e]=i:typeof i==`string`&&X.has(e)&&(n[e]=i)}return{boolFlags:t,stringFlags:n}}function re(e){let t=J(),n=N(),i=L.use.scopeKey(),a=e&&!y(),o=a&&n===`ready`,{data:s,isError:c}=r({queryKey:z(),queryFn:Z,enabled:o,...t,retry:1});(0,U.useEffect)(()=>{if(s?.flags){let{boolFlags:e,stringFlags:t}=ne(s.flags),n=L.getState();n.setFlags(e,s.scopeKey),Object.keys(t).length>0&&n.setStringFlags(t,s.scopeKey);return}e&&(!a||n===`unavailable`||c)&&L.getState().settleWithoutServerValues(i)},[i,s,e,c,a,n])}var Q=_(g((e,t)=>({isOpen:!1,open:()=>e({isOpen:!0}),close:()=>e({isOpen:!1}),toggle:()=>e({isOpen:!t().isOpen})})));async function ie(){if(!S())return!1;let e=window.vellum?.commandPalette?.open;return e?(await e(),!0):!1}async function ae(){S()&&await window.vellum?.commandPalette?.dismiss()}async function oe(e){S()&&await window.vellum?.commandPalette?.select(e)}var $={conversations:[],memories:[],schedules:[],contacts:[]};async function se(e,t,n){let r=n?.limit??20;try{let{data:i,response:a}=await w({path:{assistant_id:e},query:{q:t,limit:r,categories:`conversations,schedules,contacts`},throwOnError:!1,signal:n?.signal});return!a?.ok||!i?$:i.results}catch(n){return n instanceof DOMException&&n.name===`AbortError`||console.error(`[global-search] search failed`,{assistantId:e,query:t,err:n}),$}}var ce=150,le=2;function ue({itemCount:e,onSelect:t,assistantId:n,isOpen:r,onClose:i}){let a=Q.use.isOpen(),o=r??a,s=Q.use.open(),c=Q.use.close(),[l,u]=(0,U.useState)(``),[d,f]=(0,U.useState)(0),[p,m]=(0,U.useState)(!1),[h,g]=(0,U.useState)(null),_=(0,U.useRef)(()=>0);(0,U.useLayoutEffect)(()=>{_.current=typeof e==`function`?e:()=>e});let v=(0,U.useRef)(null),y=(0,U.useRef)(null),b=(0,U.useCallback)(()=>{v.current&&=(clearTimeout(v.current),null),y.current?.abort(),y.current=null},[]),x=(0,U.useCallback)(()=>{s(),f(0)},[s]),S=(0,U.useCallback)(()=>{c(),u(``),f(0),m(!1),g(null),b(),i?.()},[c,b,i]),C=(0,U.useCallback)(()=>{o?S():x()},[o,S,x]);(0,U.useEffect)(()=>{o||(u(``),f(0),m(!1),g(null),b())},[o,b]);let w=(0,U.useCallback)(e=>{b();let t=e.trim();if(t.length<le||!n){m(!1),g(null);return}m(!0),v.current=setTimeout(()=>{if(!n){m(!1);return}let e=new AbortController;y.current=e,se(n,t,{signal:e.signal}).then(t=>{y.current===e&&(g(t),m(!1))}).catch(()=>{y.current===e&&m(!1)})},ce)},[b,n]),T=(0,U.useCallback)(e=>{u(e),f(0),w(e)},[w]);return(0,U.useEffect)(()=>()=>{y.current?.abort(),v.current&&clearTimeout(v.current)},[]),{isOpen:o,query:l,selectedIndex:d,isSearching:p,searchResults:h,open:x,close:S,toggle:C,setQuery:T,handleKeyDown:(0,U.useCallback)(e=>{if(e.key===`k`&&(e.metaKey||e.ctrlKey)){e.preventDefault(),S();return}let n=_.current();switch(e.key){case`ArrowDown`:e.preventDefault(),n>0&&f(e=>Math.min(e+1,n-1));break;case`ArrowUp`:e.preventDefault(),f(e=>Math.max(e-1,0));break;case`Enter`:e.preventDefault(),n>0&&t?.(d);break;case`Escape`:e.preventDefault(),S();break}},[t,d,S])}}function de(e,t){let n=[],r=e.conversations.filter(e=>!t.has(e.id)).map(e=>({id:`search-conv-${e.id}`,icon:d,title:e.title??`Untitled`,subtitle:e.excerpt}));r.length>0&&n.push({id:`search-conversations`,label:`Conversations`,items:r});let i=e.schedules.map(e=>({id:`search-schedule-${e.id}`,icon:a,title:e.name,subtitle:e.expression??e.message}));i.length>0&&n.push({id:`search-schedules`,label:`Schedules`,items:i});let o=e.contacts.map(e=>({id:`search-contact-${e.id}`,icon:V,title:e.displayName,subtitle:e.notes??void 0}));return o.length>0&&n.push({id:`search-contacts`,label:`Contacts`,items:o}),n}function fe(e){return{id:`actions`,label:`Actions`,items:[{id:`action-new-conversation`,icon:H,title:`New Conversation`,shortcutHint:S()?`⌘N`:`⌘⇧O`},{id:`action-current-conversation`,icon:f,title:`Current Conversation`,shortcutHint:`⌘⇧N`},{id:`action-settings`,icon:o,title:`Settings`,shortcutHint:`⌘,`},{id:`action-library`,icon:u,title:`Library`},{id:`action-intelligence`,icon:l,title:e},{id:`action-back`,icon:s,title:`Back`,shortcutHint:`⌘[`},{id:`action-forward`,icon:c,title:`Forward`,shortcutHint:`⌘]`},{id:`action-zoom-in`,icon:h,title:`Zoom In`,shortcutHint:`⌘+`},{id:`action-zoom-out`,icon:m,title:`Zoom Out`,shortcutHint:`⌘−`},{id:`action-actual-size`,icon:p,title:`Actual Size`,shortcutHint:`⌘0`}]}}function pe(e){return{id:`conversations`,label:`Recent`,items:e.slice(0,5).map(e=>({id:`conv-${e.conversationId}`,icon:d,title:e.title??`Untitled`,subtitle:e.lastMessageAt?B(e.lastMessageAt):void 0}))}}function me(e,t){switch(e.id){case`action-new-conversation`:t.startNewConversation();break;case`action-current-conversation`:R.light(),t.navigate(M.assistant);break;case`action-settings`:R.light(),t.navigateToSettings();break;case`action-intelligence`:R.light(),t.navigate(M.identity);break;case`action-library`:R.light(),t.navigate(M.library.root);break;case`action-back`:t.navigate(-1);break;case`action-forward`:t.navigate(1);break;case`action-zoom-in`:document.body.style.zoom=String(parseFloat(document.body.style.zoom||`1`)+.1);break;case`action-zoom-out`:document.body.style.zoom=String(Math.max(.5,parseFloat(document.body.style.zoom||`1`)-.1));break;case`action-actual-size`:document.body.style.zoom=`1`;break;default:if(e.id.startsWith(`conv-`)){let n=e.id.slice(5);t.switchConversation(n)}else if(e.id.startsWith(`search-conv-`)){let n=e.id.slice(12);t.switchConversation(n)}else e.id.startsWith(`search-schedule-`)?(R.light(),t.navigate(M.schedules.detail(e.id.slice(16)))):e.id.startsWith(`search-contact-`)&&(R.light(),t.navigate(M.identity));break}}function he({assistantId:e,assistantName:t,conversations:n,activeConversationId:r,startNewConversation:i,switchConversation:a,navigate:o,navigateToSettings:s,isOpen:c,onClose:l,onItemSelect:u}){let d=(0,U.useMemo)(()=>{let e=fe(t??`Assistant`),r=pe(n);return[e,...r.items.length>0?[r]:[]]},[n,t]),f=(0,U.useMemo)(()=>new Set(n.slice(0,5).map(e=>e.conversationId)),[n]),p=(0,U.useCallback)(e=>{if(u){u(e);return}me(e,{startNewConversation:i,switchConversation:a,navigate:o,activeConversationId:r,navigateToSettings:s})},[i,a,o,r,s,u]),m=(0,U.useRef)([]),h=(0,U.useRef)(()=>{}),g=ue({itemCount:()=>m.current.reduce((e,t)=>e+t.items.length,0),onSelect:(0,U.useCallback)(e=>{let t=e;for(let e of m.current){if(t<e.items.length){let n=e.items[t];p(n),h.current();return}t-=e.items.length}},[p]),assistantId:e,isOpen:c,onClose:l});(0,U.useLayoutEffect)(()=>{h.current=g.close});let _=(0,U.useMemo)(()=>{if(!g.query.trim())return d;let e=g.query.toLowerCase().trim();return d.map(t=>({...t,items:t.items.filter(t=>t.title.toLowerCase().includes(e))})).filter(e=>e.items.length>0)},[d,g.query]),v=(0,U.useMemo)(()=>{let e=g.searchResults?de(g.searchResults,f):[];return[..._,...e]},[_,g.searchResults,f]);return(0,U.useLayoutEffect)(()=>{m.current=v}),{commandPalette:g,mergedSections:v,handleItemSelect:(0,U.useCallback)(e=>{p(e),h.current()},[p])}}export{Q as a,W as c,oe as i,H as l,ae as n,re as o,ie as r,J as s,he as t,V as u};
@@ -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{l 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"./typography-DEI9Ra9z.js";import{t as s}from"./createLucideIcon-CAM1RhH8.js";import{t as c}from"./chevron-up-2Qqarz0p.js";import{t as l}from"./menu-BvjhxZo7.js";import{t as u}from"./globe-CMtjL_s_.js";import{t as d}from"./loader-circle-XREx3i4W.js";import{n as f,t as p}from"./minimize-2-CaXsUqSp.js";import{t as m}from"./pencil-D38YNe2r.js";import{t as h}from"./x-JBAsSOmg.js";import"./src-te3YTBG-.js";import{n as g,t as _}from"./panel-item-CrtoJCrd.js";import{n as v}from"./resolved-assistants-store-Dw5UuGyB.js";import{t as y}from"./client.gen-CV05d-kw.js";import{n as b}from"./event-bus-DSxmBYhD.js";import{u as x}from"./routes-D9sNqB_o.js";import{t as S}from"./conversation-store-C--wWMNW.js";import{r as C}from"./viewer-store-Ct0SDE-n.js";import{n as w}from"./use-is-mobile-BlQuzI5Z.js";import{t as T}from"./misc-CuYswARt.js";import{r as E,t as D}from"./edit-chat-session-D37Qx6ol.js";import{n as O,t as k}from"./sandbox-bridge-BxW8HZq_.js";var A=s(`share`,[[`path`,{d:`M12 2v13`,key:`1km8f5`}],[`path`,{d:`m16 6-4-4-4 4`,key:`13yo43`}],[`path`,{d:`M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8`,key:`1b2hhj`}]]),j=e(t(),1),M=a();function N({appName:e,onEdit:t,isEditing:r,onShare:i,isSharing:a,onDeploy:s,isDeploying:l,onToggleFullscreen:p,onClose:g}){let _=w(),v=_&&r===!0&&t!=null,y=i!=null&&s!=null;return(0,M.jsxs)(`div`,{className:`flex items-center justify-between rounded-t-xl bg-[var(--surface-lift)] px-4 py-3`,children:[(0,M.jsx)(`div`,{className:`hidden md:flex items-center min-w-[72px]`,children:t!=null&&(0,M.jsx)(n,{onClick:t,children:r?`Close chat`:`Edit`})}),(0,M.jsx)(o,{variant:`body-large-default`,className:T(`flex-1 truncate text-left md:text-center text-[var(--content-emphasised)]`,v&&`cursor-pointer`),style:{lineHeight:1.4},onClick:v?t:void 0,children:e}),(0,M.jsxs)(`div`,{className:`flex items-center gap-1.5 min-w-[72px] justify-end`,children:[y?(0,M.jsx)(P,{onShare:i,isSharing:a,onDeploy:s,isDeploying:l,isMobile:_}):(0,M.jsxs)(M.Fragment,{children:[s!=null&&(0,M.jsx)(n,{variant:`outlined`,iconOnly:l?(0,M.jsx)(d,{className:`animate-spin`}):(0,M.jsx)(u,{}),onClick:s,disabled:l,tooltip:l?`Deploying…`:`Deploy`}),i!=null&&(0,M.jsx)(n,{variant:`outlined`,iconOnly:a?(0,M.jsx)(d,{className:`animate-spin`}):(0,M.jsx)(A,{}),onClick:i,disabled:a,tooltip:a?`Sharing…`:`Share`})]}),p!=null&&(0,M.jsx)(n,{variant:`outlined`,iconOnly:(0,M.jsx)(f,{}),onClick:p,tooltip:`Fullscreen`}),t!=null&&(0,M.jsx)(n,{variant:`outlined`,iconOnly:r?(0,M.jsx)(c,{}):(0,M.jsx)(m,{}),onClick:t,tooltip:r?`Open app`:`Edit`,active:r,className:`md:hidden`}),(0,M.jsx)(n,{variant:`outlined`,iconOnly:(0,M.jsx)(h,{}),onClick:g,tooltip:`Close`})]})]})}function P({onShare:e,isSharing:t,onDeploy:r,isDeploying:i,isMobile:a}){let[o,s]=(0,j.useState)(!1),c=t||i,f=c?(0,M.jsx)(d,{className:`animate-spin`}):(0,M.jsx)(A,{}),p=t?`Sharing…`:i?`Deploying…`:`Share & deploy`;return a?(0,M.jsxs)(g.Root,{open:o,onOpenChange:s,children:[(0,M.jsx)(g.Trigger,{asChild:!0,children:(0,M.jsx)(n,{variant:`outlined`,iconOnly:f,disabled:c,tooltip:p})}),(0,M.jsxs)(g.Content,{"aria-describedby":void 0,children:[(0,M.jsx)(g.Header,{className:`sr-only`,children:(0,M.jsx)(g.Title,{children:`Share & deploy`})}),(0,M.jsxs)(g.Body,{className:`pt-0`,children:[(0,M.jsx)(_,{icon:A,label:(0,M.jsxs)(`span`,{className:`flex flex-col gap-0.5 overflow-visible whitespace-normal`,children:[(0,M.jsx)(`span`,{children:`Share`}),(0,M.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Export as .vellum file`})]}),onSelect:()=>{s(!1),e()}}),(0,M.jsx)(_,{icon:u,label:(0,M.jsxs)(`span`,{className:`flex flex-col gap-0.5 overflow-visible whitespace-normal`,children:[(0,M.jsx)(`span`,{children:`Deploy to Vercel`}),(0,M.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Publish as a static page`})]}),onSelect:()=>{s(!1),r()}})]})]})]}):(0,M.jsxs)(l.Root,{open:o,onOpenChange:s,children:[(0,M.jsx)(l.Trigger,{asChild:!0,children:(0,M.jsx)(n,{variant:`outlined`,iconOnly:f,disabled:c,tooltip:p})}),(0,M.jsxs)(l.Content,{align:`end`,sideOffset:4,children:[(0,M.jsx)(l.Item,{leftIcon:(0,M.jsx)(A,{size:14}),onSelect:()=>e(),className:`whitespace-nowrap`,children:`Share`}),(0,M.jsx)(l.Item,{leftIcon:(0,M.jsx)(u,{size:14}),onSelect:()=>r(),className:`whitespace-nowrap`,children:`Deploy to Vercel`})]})]})}var F=[`assistant:`,`conversation:`,`conversations:`,`apps:`,`plugins:`,`feature-flags:`];function I(e){return F.some(t=>e.startsWith(t))}function L(e,t){if(e.length===0)return[];let n=new Set(e);return t.filter(e=>n.has(e)&&!I(e))}function R(e,t){let{frameId:n,assistantId:r,appId:i,enabled:a=!0,onAction:o,onOpenVellumLink:s}=t,c=(0,j.useRef)(new Map);(0,j.useEffect)(()=>{let t=c.current,l=async c=>{let l=c.data;if(!l||l.frameId!==n||c.source!==e.current?.contentWindow)return;if(l.type===`vellum_subscribe`){if(!a)return;let{subId:e,tags:n}=l;typeof e==`string`&&Array.isArray(n)&&t.set(e,new Set(n.filter(e=>typeof e==`string`)));return}if(l.type===`vellum_unsubscribe`){let{subId:e}=l;typeof e==`string`&&t.delete(e);return}if(l.type===`vellum_surface_action`){o?.(l.actionId,l.data);return}if(l.type===`vellum_open_link`){if(!navigator.userActivation?.isActive)return;s?.(l.href,l.linkText);return}if(l.type===`vellum_asset_request`){let{callId:t,path:n}=l,o=e.current,s=(e,t)=>{o?.contentWindow?.postMessage(e,`*`,t??[])};if(!a){s({type:`vellum_asset_response`,callId:t,error:`Asset proxy disabled`});return}if(!i){s({type:`vellum_asset_response`,callId:t,error:`No app context for assets`});return}if(typeof n!=`string`||n===``||n.includes(`..`)){s({type:`vellum_asset_response`,callId:t,error:`Invalid asset path`});return}try{let e=`/v1/assistants/${r}/apps/${i}/asset/${n.split(`/`).map(encodeURIComponent).join(`/`)}`,{data:a,response:o}=await y.get({url:e,parseAs:`blob`,throwOnError:!1});if(!o?.ok||!(a instanceof Blob)){s({type:`vellum_asset_response`,callId:t,error:`Asset fetch failed (${o?.status??0})`});return}let c=await a.arrayBuffer();s({type:`vellum_asset_response`,callId:t,buffer:c,contentType:a.type||`application/octet-stream`},[c])}catch(e){s({type:`vellum_asset_response`,callId:t,error:e instanceof Error?e.message:`Asset proxy error`})}return}if(!a||l.type!==`vellum_fetch_request`)return;let{callId:u,path:d,method:f,headers:p,body:m}=l,h=e.current,g=e=>{h?.contentWindow?.postMessage(e,`*`)};if(!k.test(d)){g({type:`vellum_fetch_response`,callId:u,error:`Request blocked: only /v1/x/ custom routes are allowed`});return}try{let e=new URL(d,`https://placeholder`).pathname;if(!k.test(e)){g({type:`vellum_fetch_response`,callId:u,error:`Request blocked: path traversal detected`});return}}catch{g({type:`vellum_fetch_response`,callId:u,error:`Request blocked: invalid path`});return}let _=`/v1/assistants/${r}/${d.replace(/^\/v1\//,``)}`;try{let e={url:_,throwOnError:!1,headers:p&&Object.keys(p).length>0?p:void 0,body:m?JSON.parse(m):void 0},t=await(f===`POST`?y.post:f===`PUT`?y.put:f===`PATCH`?y.patch:f===`DELETE`?y.delete:y.get)(e),n=t.response,r=t.data??t.error,i=r==null?``:typeof r==`string`?r:JSON.stringify(r);g({type:`vellum_fetch_response`,callId:u,status:n?.status??0,statusText:n?.statusText??``,body:i})}catch(e){g({type:`vellum_fetch_response`,callId:u,error:e instanceof Error?e.message:`Fetch proxy error`})}};window.addEventListener(`message`,l);let u=b(`sse.event`,r=>{let i=r.message;if(!i||i.type!==`sync_changed`||!Array.isArray(i.tags))return;let a=e.current?.contentWindow;if(!a||t.size===0)return;let o=i.tags.filter(e=>typeof e==`string`);for(let[e,r]of t){let t=L([...r],o);t.length>0&&a.postMessage({type:`vellum_event`,frameId:n,subId:e,event:{type:`sync_changed`,tags:t}},`*`)}});return()=>{window.removeEventListener(`message`,l),u()}},[n,r,i,a,o,s,e])}function z({appId:e,appName:t,html:r,assistantId:i,onClose:a,onEdit:o,isEditing:s,onShare:c,isSharing:l,onDeploy:u,isDeploying:d,route:f,enableFullscreen:m=!1,onAction:h}){let g=(0,j.useRef)(null),[_,v]=(0,j.useState)(!1),y=(0,j.useCallback)(()=>v(e=>!e),[]);(0,j.useEffect)(()=>{v(!1)},[e]),(0,j.useEffect)(()=>{if(!_)return;let e=e=>{e.key===`Escape`&&v(!1)};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[_]);let b=(0,j.useMemo)(()=>O(r,e,{fetch:!0,route:f}),[r,e,f]),x=(0,j.useMemo)(()=>{let t=0;for(let e=0;e<r.length;e++)t=(t<<5)-t+r.charCodeAt(e)|0;return`app-${e}-${t}`},[r,e]);return R(g,{frameId:e,assistantId:i,appId:e,onAction:h}),(0,M.jsxs)(`div`,{"data-testid":`app-viewer-root`,className:T(`flex flex-col overflow-hidden bg-[var(--surface-base)]`,_?`fixed inset-0 z-[60]`:`h-full rounded-xl`),children:[!_&&(0,M.jsx)(N,{appName:t,onEdit:o,isEditing:s,onShare:c,isSharing:l,onDeploy:u,isDeploying:d,onToggleFullscreen:m?y:void 0,onClose:a}),(0,M.jsxs)(`div`,{className:`relative min-h-0 flex-1`,children:[_&&(0,M.jsx)(`div`,{className:`absolute z-10`,style:{top:`max(0.75rem, var(--safe-area-inset-top, env(safe-area-inset-top, 0px)))`,right:`max(0.75rem, var(--safe-area-inset-right, env(safe-area-inset-right, 0px)))`},children:(0,M.jsx)(n,{variant:`primary`,iconOnly:(0,M.jsx)(p,{}),onClick:y,tooltip:`Exit fullscreen`})}),(0,M.jsx)(`iframe`,{ref:g,srcDoc:b,sandbox:`allow-scripts allow-popups allow-popups-to-escape-sandbox`,referrerPolicy:`no-referrer`,title:t,className:`h-full w-full border-none`},x)]})]})}function B(){let e=v.use.activeAssistantId(),t=w(),n=i(),{pathname:a}=r();return(0,j.useCallback)(r=>{if(!e)return;let i=D(e,r.appId)??crypto.randomUUID();E(e,r.appId,i);let o=C.getState();(o.activeAppId!==r.appId||!o.openedAppState)&&(o.openApp(r.appId),o.setLoadedApp(r)),S.getState().setEditingConversationId(i),t?o.minimizeApp():o.enterAppEditing();let s=x.conversation(i);a!==s&&n(s)},[e,t,n,a])}export{A as i,z as n,R as r,B 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{l 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"./typography-DEI9Ra9z.js";import{t as s}from"./createLucideIcon-CAM1RhH8.js";import{t as c}from"./chevron-up-2Qqarz0p.js";import{t as l}from"./menu-BvjhxZo7.js";import{t as u}from"./globe-CMtjL_s_.js";import{t as d}from"./loader-circle-XREx3i4W.js";import{n as f,t as p}from"./minimize-2-CaXsUqSp.js";import{t as m}from"./pencil-D38YNe2r.js";import{t as h}from"./x-JBAsSOmg.js";import"./src-te3YTBG-.js";import{n as g,t as _}from"./panel-item-CrtoJCrd.js";import{n as v}from"./resolved-assistants-store-Dw5UuGyB.js";import{t as y}from"./client.gen-CV05d-kw.js";import{n as b}from"./event-bus-DSxmBYhD.js";import{u as x}from"./routes-D9sNqB_o.js";import{t as S}from"./conversation-store-C--wWMNW.js";import{r as C}from"./viewer-store-DLk-jp8U.js";import{n as w}from"./use-is-mobile-BlQuzI5Z.js";import{t as T}from"./misc-CuYswARt.js";import{r as E,t as D}from"./edit-chat-session-D37Qx6ol.js";import{n as O,t as k}from"./sandbox-bridge-BxW8HZq_.js";var A=s(`share`,[[`path`,{d:`M12 2v13`,key:`1km8f5`}],[`path`,{d:`m16 6-4-4-4 4`,key:`13yo43`}],[`path`,{d:`M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8`,key:`1b2hhj`}]]),j=e(t(),1),M=a();function N({appName:e,onEdit:t,isEditing:r,onShare:i,isSharing:a,onDeploy:s,isDeploying:l,onToggleFullscreen:p,onClose:g}){let _=w(),v=_&&r===!0&&t!=null,y=i!=null&&s!=null;return(0,M.jsxs)(`div`,{className:`flex items-center justify-between rounded-t-xl bg-[var(--surface-lift)] px-4 py-3`,children:[(0,M.jsx)(`div`,{className:`hidden md:flex items-center min-w-[72px]`,children:t!=null&&(0,M.jsx)(n,{onClick:t,children:r?`Close chat`:`Edit`})}),(0,M.jsx)(o,{variant:`body-large-default`,className:T(`flex-1 truncate text-left md:text-center text-[var(--content-emphasised)]`,v&&`cursor-pointer`),style:{lineHeight:1.4},onClick:v?t:void 0,children:e}),(0,M.jsxs)(`div`,{className:`flex items-center gap-1.5 min-w-[72px] justify-end`,children:[y?(0,M.jsx)(P,{onShare:i,isSharing:a,onDeploy:s,isDeploying:l,isMobile:_}):(0,M.jsxs)(M.Fragment,{children:[s!=null&&(0,M.jsx)(n,{variant:`outlined`,iconOnly:l?(0,M.jsx)(d,{className:`animate-spin`}):(0,M.jsx)(u,{}),onClick:s,disabled:l,tooltip:l?`Deploying…`:`Deploy`}),i!=null&&(0,M.jsx)(n,{variant:`outlined`,iconOnly:a?(0,M.jsx)(d,{className:`animate-spin`}):(0,M.jsx)(A,{}),onClick:i,disabled:a,tooltip:a?`Sharing…`:`Share`})]}),p!=null&&(0,M.jsx)(n,{variant:`outlined`,iconOnly:(0,M.jsx)(f,{}),onClick:p,tooltip:`Fullscreen`}),t!=null&&(0,M.jsx)(n,{variant:`outlined`,iconOnly:r?(0,M.jsx)(c,{}):(0,M.jsx)(m,{}),onClick:t,tooltip:r?`Open app`:`Edit`,active:r,className:`md:hidden`}),(0,M.jsx)(n,{variant:`outlined`,iconOnly:(0,M.jsx)(h,{}),onClick:g,tooltip:`Close`})]})]})}function P({onShare:e,isSharing:t,onDeploy:r,isDeploying:i,isMobile:a}){let[o,s]=(0,j.useState)(!1),c=t||i,f=c?(0,M.jsx)(d,{className:`animate-spin`}):(0,M.jsx)(A,{}),p=t?`Sharing…`:i?`Deploying…`:`Share & deploy`;return a?(0,M.jsxs)(g.Root,{open:o,onOpenChange:s,children:[(0,M.jsx)(g.Trigger,{asChild:!0,children:(0,M.jsx)(n,{variant:`outlined`,iconOnly:f,disabled:c,tooltip:p})}),(0,M.jsxs)(g.Content,{"aria-describedby":void 0,children:[(0,M.jsx)(g.Header,{className:`sr-only`,children:(0,M.jsx)(g.Title,{children:`Share & deploy`})}),(0,M.jsxs)(g.Body,{className:`pt-0`,children:[(0,M.jsx)(_,{icon:A,label:(0,M.jsxs)(`span`,{className:`flex flex-col gap-0.5 overflow-visible whitespace-normal`,children:[(0,M.jsx)(`span`,{children:`Share`}),(0,M.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Export as .vellum file`})]}),onSelect:()=>{s(!1),e()}}),(0,M.jsx)(_,{icon:u,label:(0,M.jsxs)(`span`,{className:`flex flex-col gap-0.5 overflow-visible whitespace-normal`,children:[(0,M.jsx)(`span`,{children:`Deploy to Vercel`}),(0,M.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Publish as a static page`})]}),onSelect:()=>{s(!1),r()}})]})]})]}):(0,M.jsxs)(l.Root,{open:o,onOpenChange:s,children:[(0,M.jsx)(l.Trigger,{asChild:!0,children:(0,M.jsx)(n,{variant:`outlined`,iconOnly:f,disabled:c,tooltip:p})}),(0,M.jsxs)(l.Content,{align:`end`,sideOffset:4,children:[(0,M.jsx)(l.Item,{leftIcon:(0,M.jsx)(A,{size:14}),onSelect:()=>e(),className:`whitespace-nowrap`,children:`Share`}),(0,M.jsx)(l.Item,{leftIcon:(0,M.jsx)(u,{size:14}),onSelect:()=>r(),className:`whitespace-nowrap`,children:`Deploy to Vercel`})]})]})}var F=[`assistant:`,`conversation:`,`conversations:`,`apps:`,`plugins:`,`feature-flags:`];function I(e){return F.some(t=>e.startsWith(t))}function L(e,t){if(e.length===0)return[];let n=new Set(e);return t.filter(e=>n.has(e)&&!I(e))}function R(e,t){let{frameId:n,assistantId:r,appId:i,enabled:a=!0,onAction:o,onOpenVellumLink:s}=t,c=(0,j.useRef)(new Map);(0,j.useEffect)(()=>{let t=c.current,l=async c=>{let l=c.data;if(!l||l.frameId!==n||c.source!==e.current?.contentWindow)return;if(l.type===`vellum_subscribe`){if(!a)return;let{subId:e,tags:n}=l;typeof e==`string`&&Array.isArray(n)&&t.set(e,new Set(n.filter(e=>typeof e==`string`)));return}if(l.type===`vellum_unsubscribe`){let{subId:e}=l;typeof e==`string`&&t.delete(e);return}if(l.type===`vellum_surface_action`){o?.(l.actionId,l.data);return}if(l.type===`vellum_open_link`){if(!navigator.userActivation?.isActive)return;s?.(l.href,l.linkText);return}if(l.type===`vellum_asset_request`){let{callId:t,path:n}=l,o=e.current,s=(e,t)=>{o?.contentWindow?.postMessage(e,`*`,t??[])};if(!a){s({type:`vellum_asset_response`,callId:t,error:`Asset proxy disabled`});return}if(!i){s({type:`vellum_asset_response`,callId:t,error:`No app context for assets`});return}if(typeof n!=`string`||n===``||n.includes(`..`)){s({type:`vellum_asset_response`,callId:t,error:`Invalid asset path`});return}try{let e=`/v1/assistants/${r}/apps/${i}/asset/${n.split(`/`).map(encodeURIComponent).join(`/`)}`,{data:a,response:o}=await y.get({url:e,parseAs:`blob`,throwOnError:!1});if(!o?.ok||!(a instanceof Blob)){s({type:`vellum_asset_response`,callId:t,error:`Asset fetch failed (${o?.status??0})`});return}let c=await a.arrayBuffer();s({type:`vellum_asset_response`,callId:t,buffer:c,contentType:a.type||`application/octet-stream`},[c])}catch(e){s({type:`vellum_asset_response`,callId:t,error:e instanceof Error?e.message:`Asset proxy error`})}return}if(!a||l.type!==`vellum_fetch_request`)return;let{callId:u,path:d,method:f,headers:p,body:m}=l,h=e.current,g=e=>{h?.contentWindow?.postMessage(e,`*`)};if(!k.test(d)){g({type:`vellum_fetch_response`,callId:u,error:`Request blocked: only /v1/x/ custom routes are allowed`});return}try{let e=new URL(d,`https://placeholder`).pathname;if(!k.test(e)){g({type:`vellum_fetch_response`,callId:u,error:`Request blocked: path traversal detected`});return}}catch{g({type:`vellum_fetch_response`,callId:u,error:`Request blocked: invalid path`});return}let _=`/v1/assistants/${r}/${d.replace(/^\/v1\//,``)}`;try{let e={url:_,throwOnError:!1,headers:p&&Object.keys(p).length>0?p:void 0,body:m?JSON.parse(m):void 0},t=await(f===`POST`?y.post:f===`PUT`?y.put:f===`PATCH`?y.patch:f===`DELETE`?y.delete:y.get)(e),n=t.response,r=t.data??t.error,i=r==null?``:typeof r==`string`?r:JSON.stringify(r);g({type:`vellum_fetch_response`,callId:u,status:n?.status??0,statusText:n?.statusText??``,body:i})}catch(e){g({type:`vellum_fetch_response`,callId:u,error:e instanceof Error?e.message:`Fetch proxy error`})}};window.addEventListener(`message`,l);let u=b(`sse.event`,r=>{let i=r.message;if(!i||i.type!==`sync_changed`||!Array.isArray(i.tags))return;let a=e.current?.contentWindow;if(!a||t.size===0)return;let o=i.tags.filter(e=>typeof e==`string`);for(let[e,r]of t){let t=L([...r],o);t.length>0&&a.postMessage({type:`vellum_event`,frameId:n,subId:e,event:{type:`sync_changed`,tags:t}},`*`)}});return()=>{window.removeEventListener(`message`,l),u()}},[n,r,i,a,o,s,e])}function z({appId:e,appName:t,html:r,assistantId:i,onClose:a,onEdit:o,isEditing:s,onShare:c,isSharing:l,onDeploy:u,isDeploying:d,route:f,enableFullscreen:m=!1,onAction:h}){let g=(0,j.useRef)(null),[_,v]=(0,j.useState)(!1),y=(0,j.useCallback)(()=>v(e=>!e),[]);(0,j.useEffect)(()=>{v(!1)},[e]),(0,j.useEffect)(()=>{if(!_)return;let e=e=>{e.key===`Escape`&&v(!1)};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[_]);let b=(0,j.useMemo)(()=>O(r,e,{fetch:!0,route:f}),[r,e,f]),x=(0,j.useMemo)(()=>{let t=0;for(let e=0;e<r.length;e++)t=(t<<5)-t+r.charCodeAt(e)|0;return`app-${e}-${t}`},[r,e]);return R(g,{frameId:e,assistantId:i,appId:e,onAction:h}),(0,M.jsxs)(`div`,{"data-testid":`app-viewer-root`,className:T(`flex flex-col overflow-hidden bg-[var(--surface-base)]`,_?`fixed inset-0 z-[60]`:`h-full rounded-xl`),children:[!_&&(0,M.jsx)(N,{appName:t,onEdit:o,isEditing:s,onShare:c,isSharing:l,onDeploy:u,isDeploying:d,onToggleFullscreen:m?y:void 0,onClose:a}),(0,M.jsxs)(`div`,{className:`relative min-h-0 flex-1`,children:[_&&(0,M.jsx)(`div`,{className:`absolute z-10`,style:{top:`max(0.75rem, var(--safe-area-inset-top, env(safe-area-inset-top, 0px)))`,right:`max(0.75rem, var(--safe-area-inset-right, env(safe-area-inset-right, 0px)))`},children:(0,M.jsx)(n,{variant:`primary`,iconOnly:(0,M.jsx)(p,{}),onClick:y,tooltip:`Exit fullscreen`})}),(0,M.jsx)(`iframe`,{ref:g,srcDoc:b,sandbox:`allow-scripts allow-popups allow-popups-to-escape-sandbox`,referrerPolicy:`no-referrer`,title:t,className:`h-full w-full border-none`},x)]})]})}function B(){let e=v.use.activeAssistantId(),t=w(),n=i(),{pathname:a}=r();return(0,j.useCallback)(r=>{if(!e)return;let i=D(e,r.appId)??crypto.randomUUID();E(e,r.appId,i);let o=C.getState();(o.activeAppId!==r.appId||!o.openedAppState)&&(o.openApp(r.appId),o.setLoadedApp(r)),S.getState().setEditingConversationId(i),t?o.minimizeApp():o.enterAppEditing();let s=x.conversation(i);a!==s&&n(s)},[e,t,n,a])}export{A as i,z as n,R 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"./button-Dy5001j6.js";import{n as r}from"./QueryClientProvider-CMu7CkQU.js";import{t as i}from"./useQuery-Bz-fbQ-m.js";import{t as a}from"./useMutation-CXGTrp4W.js";import{t as o}from"./jsx-runtime-D3ZM-ToX.js";import{t as s}from"./typography-DEI9Ra9z.js";import{c,i as l,m as u,n as d,p as f,r as p,s as m,t as h}from"./use-save-twilio-credentials-Bm-WW_5V.js";import{t as g}from"./check-sC49_hjU.js";import{o as _}from"./list-row-B1wPb2Au.js";import{t as v}from"./link-2-BKL8QWRX.js";import{t as y}from"./loader-circle-XREx3i4W.js";import{t as b}from"./input-hw3el2GJ.js";import{t as x}from"./modal-BR4CUFBd.js";import{Jt as S,Qt as C,en as w}from"./sdk.gen-BVAVE6A_.js";import{G as T,K as E,U as D,W as O,o as k,s as A,x as j}from"./react-query.gen-r3I6j8-1.js";import{r as M}from"./utils-CnB60ZJN.js";import{n as N,r as P,t as F}from"./api-errors-CFiCT7Ap.js";import{n as I}from"./sdk.gen-B5ygTzyg.js";import{t as L}from"./mutation-error-DEknRDAQ.js";import{t as R}from"./a2a-invite-pyBtaaeG.js";function z(e){return e?.trim()||`your assistant`}var B=e(t(),1),V=o(),H=[`no_one`,`guardian_only`,`trusted_contacts`,`any_contact`,`strangers`],U=`trusted_contacts`,W=new Set([`platform`,`a2a`]),G=new Set([`vellum`,`whatsapp`,`discord`]);function K(e){return G.has(e)}var q={no_one:`No one`,guardian_only:`Only you`,trusted_contacts:`Verified contacts`,any_contact:`Any contact`,strangers:`Strangers`};function J(e){return{no_one:`No one can message ${e} on this channel — every message is blocked, including yours.`,guardian_only:`Only you can message ${e}. Everyone else is turned away.`,trusted_contacts:`You and the people you’ve verified can message ${e}. Anyone else is asked to verify first, and you’re notified.`,any_contact:`You and any known contact can message ${e}, including contacts you haven’t verified yet. Strangers are asked to verify first.`,strangers:`Anyone can message ${e}, including complete strangers.`}}function Y(e){let t=e-Date.now();if(t<=0)return`Expired`;let n=Math.ceil(t/(1e3*60*60*24));return n===1?`Expires in 1 day`:`Expires in ${n} days`}function X({open:e,assistantId:t,onClose:r}){let[i,o]=(0,B.useState)(!1),c=(0,B.useRef)(null),l=(0,B.useRef)(!1),u=a({...D({path:{assistant_id:t}})}),d=(0,B.useRef)(u.mutate);(0,B.useLayoutEffect)(()=>{d.current=u.mutate});let f=(0,B.useRef)(u.reset);(0,B.useLayoutEffect)(()=>{f.current=u.reset}),(0,B.useEffect)(()=>{e&&!l.current&&d.current({path:{assistant_id:t}}),l.current=e},[e,t]),(0,B.useEffect)(()=>()=>{c.current&&clearTimeout(c.current)},[]);let p=(0,B.useCallback)(()=>{f.current(),o(!1),c.current&&=(clearTimeout(c.current),null),r()},[r]),m=(0,B.useCallback)(e=>{navigator.clipboard.writeText(e).then(()=>{o(!0),c.current&&clearTimeout(c.current),c.current=setTimeout(()=>o(!1),2e3)})},[]),h=u.isSuccess&&u.data.token?R({senderAssistantId:t,token:u.data.token}):``;return(0,V.jsx)(x.Root,{open:e,onOpenChange:e=>{e||p()},children:(0,V.jsxs)(x.Content,{size:`sm`,children:[(0,V.jsx)(x.Header,{children:(0,V.jsx)(x.Title,{children:`Share Connection Link`})}),(0,V.jsx)(x.Body,{children:u.isPending?(0,V.jsxs)(`div`,{className:`flex items-center gap-2 py-2 text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:[(0,V.jsx)(y,{className:`h-4 w-4 animate-spin`}),`Creating invite link…`]}):u.isError?(0,V.jsxs)(`div`,{className:`space-y-3`,children:[(0,V.jsx)(`p`,{role:`alert`,className:`!m-0 text-body-medium-lighter`,style:{color:`var(--system-negative-strong)`},children:`Failed to create invite link. Make sure A2A is enabled for your assistant.`}),(0,V.jsx)(n,{variant:`outlined`,onClick:()=>u.mutate({path:{assistant_id:t}}),children:`Try Again`})]}):u.isSuccess?(0,V.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,V.jsx)(s,{variant:`body-medium-lighter`,style:{color:`var(--content-secondary)`},children:`Share this link with another assistant owner to establish a connection.`}),(0,V.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,V.jsx)(b,{type:`text`,readOnly:!0,value:h,fullWidth:!0,wrapperClassName:`flex-1`,className:`font-mono`,onFocus:e=>e.currentTarget.select()}),(0,V.jsx)(`button`,{type:`button`,onClick:()=>m(h),"aria-label":`Copy invite link`,className:`flex h-9 w-9 shrink-0 items-center justify-center rounded-md border border-[var(--border-base)] hover:bg-[var(--surface-hover)]`,children:i?(0,V.jsx)(g,{className:`h-4 w-4`}):(0,V.jsx)(_,{className:`h-4 w-4`})})]}),u.data.expiresAt!=null&&(0,V.jsx)(s,{variant:`body-small-default`,style:{color:`var(--content-tertiary)`},children:Y(u.data.expiresAt)})]}):null}),(0,V.jsx)(x.Footer,{children:(0,V.jsx)(n,{variant:`outlined`,onClick:p,children:`Done`})})]})})}function Z({onClick:e}){return(0,V.jsx)(n,{variant:`outlined`,size:`compact`,leftIcon:(0,V.jsx)(v,{className:`h-3.5 w-3.5`}),onClick:e,children:`Share Connection Link`})}function Q(e){return typeof e==`string`&&H.includes(e)}function $(e){return W.has(e)}function ee(e){return(e?.policies??[]).filter(e=>!$(e.channelType)&&!K(e.channelType)).map(e=>({...e,policy:Q(e.policy)?e.policy:`trusted_contacts`}))}async function te(e,t,n,r){if($(t))throw new F(403,`Channel "${t}" is internal and is not user-configurable.`);let{data:i,error:a,response:o}=await I({path:{assistant_id:e,channel_type:t},body:{policy:n,note:r??null},throwOnError:!1});if(N(o,a,`Failed to save channel policy.`),!o.ok)throw new F(o.status,P(a,o,`Failed to save channel policy.`));if(!i?.policy)throw new F(500,`Gateway returned no policy in response.`);return i.policy}var ne=`0.10.0`;function re(){return M(ne)}function ie(e){let t=r(),n=re(),o=(0,B.useMemo)(()=>({path:{assistant_id:e}}),[e]),s=(0,B.useMemo)(()=>u(o),[o]),l=i({...f(o),enabled:n,select:ee}),d=(0,B.useMemo)(()=>{let e={};for(let t of l.data??[])c(t.channelType)&&(e[t.channelType]=t.policy);return e},[l.data]),p=a({mutationFn:({channelKey:t,policy:n})=>te(e,t,n),onSuccess:()=>t.invalidateQueries({queryKey:s}),onError:L(`Failed to save channel policy`)}),m=(0,B.useCallback)((e,t)=>{p.mutate({channelKey:e,policy:t})},[p]);return n?{policies:d,savingKey:p.isPending?p.variables?.channelKey??null:null,isLoading:l.isPending,isError:l.isError,onChange:m}:{policies:void 0,savingKey:null,isLoading:!1,isError:!1,onChange:void 0}}var ae={slack:`I want to reach you on Slack. Let's set it up.`,telegram:`I want to reach you on Telegram. Let's set it up.`,phone:`I want to be able to call you. Let's set you up with a phone number.`},oe=15e3;function se({assistantId:e,onStartSetupConversation:t}){let n=r(),o=(0,B.useMemo)(()=>({path:{assistant_id:e}}),[e]),s=(0,B.useMemo)(()=>A(o),[o]),c=i({...k(o),enabled:!!e,refetchInterval:oe,select:e=>e.snapshots}),u=(0,B.useMemo)(()=>ce(c.data??[]),[c.data]),f=u.some(e=>e.key===`slack`&&e.status===`ready`),m=i({...O(o),enabled:f,select:e=>e.threadMode}),g=ie(e),_=(0,B.useCallback)(()=>n.invalidateQueries({queryKey:s}),[n,s]),v=a({mutationFn:async t=>{let n={path:{assistant_id:e},throwOnError:!0};t===`slack`?await S(n):t===`telegram`?await C(n):t===`phone`&&await w(n)},onSettled:(t,r,i)=>{_(),i===`slack`&&l(n,e)}}),y=d({assistantId:e}),b=p({assistantId:e}),x=h({assistantId:e}),D=a({...E(),onSuccess:()=>{n.invalidateQueries({queryKey:T(o)})}}),j=y.mutateAsync,M=(0,B.useCallback)(async e=>{await j(e)},[j]),N=b.mutate,P=(0,B.useCallback)((e,t)=>{N({botToken:e,appToken:t})},[N]),F=D.mutate,I=(0,B.useCallback)(t=>{F({path:{assistant_id:e},body:{threadMode:t}})},[F,e]),L=x.mutateAsync,R=(0,B.useCallback)(async(e,t)=>{await L({accountSid:e,authToken:t})},[L]),z=(0,B.useCallback)(e=>{t&&t(ae[e])},[t]),V=v.mutate,H=(0,B.useCallback)(e=>{V(e)},[V]);return{channels:u,pendingChannelKey:v.isPending?v.variables??null:null,slackThreadMode:m.data,slackThreadModePending:D.isPending,channelPolicies:g.policies,policySavingKey:g.savingKey,policiesLoading:g.isLoading,policiesError:g.isError,onChannelPolicyChange:g.onChange,onSetup:t?z:void 0,onDisconnect:H,onSaveTelegramToken:M,onSaveSlackConfig:P,slackSaveStatus:b.status,slackSaveError:b.error?.message??null,onSlackThreadModeChange:I,onSaveTwilioCredentials:R}}function ce(e){let t=new Map;for(let n of e)t.set(n.channel,n);return m.map(e=>{let n=t.get(e);return{key:e,status:le(n),address:n?.channelHandle??void 0}})}function le(e){return e?e.ready||e.setupStatus===`ready`?`ready`:e.setupStatus===`incomplete`?`incomplete`:`not_configured`:`not_configured`}function ue(e){let t=r(),[n,i]=(0,B.useState)(!1);return{isOpen:n,open:(0,B.useCallback)(()=>{i(!0)},[]),close:(0,B.useCallback)(()=>{i(!1),t.invalidateQueries({queryKey:j({path:{assistant_id:e}})})},[t,e])}}export{U as a,J as c,X as i,z as l,se as n,H as o,Z as r,q as s,ue 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"./useQuery-Bz-fbQ-m.js";import{t as a}from"./useMutation-CXGTrp4W.js";import{t as o}from"./jsx-runtime-D3ZM-ToX.js";import{t as s}from"./typography-DEI9Ra9z.js";import{c,i as l,m as u,n as d,p as f,r as p,s as m,t as h}from"./use-save-twilio-credentials-c9xG9RPK.js";import{t as g}from"./check-sC49_hjU.js";import{o as _}from"./list-row-B1wPb2Au.js";import{t as v}from"./link-2-BKL8QWRX.js";import{t as y}from"./loader-circle-XREx3i4W.js";import{t as b}from"./input-hw3el2GJ.js";import{t as x}from"./modal-BR4CUFBd.js";import{Jt as S,Qt as C,en as w}from"./sdk.gen-BHZ0fJla.js";import{G as T,K as E,U as D,W as O,o as k,s as A,x as j}from"./react-query.gen-C5c1Acuq.js";import{r as M}from"./utils-CnB60ZJN.js";import{n as N,r as P,t as F}from"./api-errors-CFiCT7Ap.js";import{n as I}from"./sdk.gen-B5ygTzyg.js";import{t as L}from"./mutation-error-DEknRDAQ.js";import{t as R}from"./a2a-invite-pyBtaaeG.js";function z(e){return e?.trim()||`your assistant`}var B=e(t(),1),V=o(),H=[`no_one`,`guardian_only`,`trusted_contacts`,`any_contact`,`strangers`],U=`trusted_contacts`,W=new Set([`platform`,`a2a`]),G=new Set([`vellum`,`whatsapp`,`discord`]);function K(e){return G.has(e)}var q={no_one:`No one`,guardian_only:`Only you`,trusted_contacts:`Verified contacts`,any_contact:`Any contact`,strangers:`Strangers`};function J(e){return{no_one:`No one can message ${e} on this channel — every message is blocked, including yours.`,guardian_only:`Only you can message ${e}. Everyone else is turned away.`,trusted_contacts:`You and the people you’ve verified can message ${e}. Anyone else is asked to verify first, and you’re notified.`,any_contact:`You and any known contact can message ${e}, including contacts you haven’t verified yet. Strangers are asked to verify first.`,strangers:`Anyone can message ${e}, including complete strangers.`}}function Y(e){let t=e-Date.now();if(t<=0)return`Expired`;let n=Math.ceil(t/(1e3*60*60*24));return n===1?`Expires in 1 day`:`Expires in ${n} days`}function X({open:e,assistantId:t,onClose:r}){let[i,o]=(0,B.useState)(!1),c=(0,B.useRef)(null),l=(0,B.useRef)(!1),u=a({...D({path:{assistant_id:t}})}),d=(0,B.useRef)(u.mutate);(0,B.useLayoutEffect)(()=>{d.current=u.mutate});let f=(0,B.useRef)(u.reset);(0,B.useLayoutEffect)(()=>{f.current=u.reset}),(0,B.useEffect)(()=>{e&&!l.current&&d.current({path:{assistant_id:t}}),l.current=e},[e,t]),(0,B.useEffect)(()=>()=>{c.current&&clearTimeout(c.current)},[]);let p=(0,B.useCallback)(()=>{f.current(),o(!1),c.current&&=(clearTimeout(c.current),null),r()},[r]),m=(0,B.useCallback)(e=>{navigator.clipboard.writeText(e).then(()=>{o(!0),c.current&&clearTimeout(c.current),c.current=setTimeout(()=>o(!1),2e3)})},[]),h=u.isSuccess&&u.data.token?R({senderAssistantId:t,token:u.data.token}):``;return(0,V.jsx)(x.Root,{open:e,onOpenChange:e=>{e||p()},children:(0,V.jsxs)(x.Content,{size:`sm`,children:[(0,V.jsx)(x.Header,{children:(0,V.jsx)(x.Title,{children:`Share Connection Link`})}),(0,V.jsx)(x.Body,{children:u.isPending?(0,V.jsxs)(`div`,{className:`flex items-center gap-2 py-2 text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:[(0,V.jsx)(y,{className:`h-4 w-4 animate-spin`}),`Creating invite link…`]}):u.isError?(0,V.jsxs)(`div`,{className:`space-y-3`,children:[(0,V.jsx)(`p`,{role:`alert`,className:`!m-0 text-body-medium-lighter`,style:{color:`var(--system-negative-strong)`},children:`Failed to create invite link. Make sure A2A is enabled for your assistant.`}),(0,V.jsx)(n,{variant:`outlined`,onClick:()=>u.mutate({path:{assistant_id:t}}),children:`Try Again`})]}):u.isSuccess?(0,V.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,V.jsx)(s,{variant:`body-medium-lighter`,style:{color:`var(--content-secondary)`},children:`Share this link with another assistant owner to establish a connection.`}),(0,V.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,V.jsx)(b,{type:`text`,readOnly:!0,value:h,fullWidth:!0,wrapperClassName:`flex-1`,className:`font-mono`,onFocus:e=>e.currentTarget.select()}),(0,V.jsx)(`button`,{type:`button`,onClick:()=>m(h),"aria-label":`Copy invite link`,className:`flex h-9 w-9 shrink-0 items-center justify-center rounded-md border border-[var(--border-base)] hover:bg-[var(--surface-hover)]`,children:i?(0,V.jsx)(g,{className:`h-4 w-4`}):(0,V.jsx)(_,{className:`h-4 w-4`})})]}),u.data.expiresAt!=null&&(0,V.jsx)(s,{variant:`body-small-default`,style:{color:`var(--content-tertiary)`},children:Y(u.data.expiresAt)})]}):null}),(0,V.jsx)(x.Footer,{children:(0,V.jsx)(n,{variant:`outlined`,onClick:p,children:`Done`})})]})})}function Z({onClick:e}){return(0,V.jsx)(n,{variant:`outlined`,size:`compact`,leftIcon:(0,V.jsx)(v,{className:`h-3.5 w-3.5`}),onClick:e,children:`Share Connection Link`})}function Q(e){return typeof e==`string`&&H.includes(e)}function $(e){return W.has(e)}function ee(e){return(e?.policies??[]).filter(e=>!$(e.channelType)&&!K(e.channelType)).map(e=>({...e,policy:Q(e.policy)?e.policy:`trusted_contacts`}))}async function te(e,t,n,r){if($(t))throw new F(403,`Channel "${t}" is internal and is not user-configurable.`);let{data:i,error:a,response:o}=await I({path:{assistant_id:e,channel_type:t},body:{policy:n,note:r??null},throwOnError:!1});if(N(o,a,`Failed to save channel policy.`),!o.ok)throw new F(o.status,P(a,o,`Failed to save channel policy.`));if(!i?.policy)throw new F(500,`Gateway returned no policy in response.`);return i.policy}var ne=`0.10.0`;function re(){return M(ne)}function ie(e){let t=r(),n=re(),o=(0,B.useMemo)(()=>({path:{assistant_id:e}}),[e]),s=(0,B.useMemo)(()=>u(o),[o]),l=i({...f(o),enabled:n,select:ee}),d=(0,B.useMemo)(()=>{let e={};for(let t of l.data??[])c(t.channelType)&&(e[t.channelType]=t.policy);return e},[l.data]),p=a({mutationFn:({channelKey:t,policy:n})=>te(e,t,n),onSuccess:()=>t.invalidateQueries({queryKey:s}),onError:L(`Failed to save channel policy`)}),m=(0,B.useCallback)((e,t)=>{p.mutate({channelKey:e,policy:t})},[p]);return n?{policies:d,savingKey:p.isPending?p.variables?.channelKey??null:null,isLoading:l.isPending,isError:l.isError,onChange:m}:{policies:void 0,savingKey:null,isLoading:!1,isError:!1,onChange:void 0}}var ae={slack:`I want to reach you on Slack. Let's set it up.`,telegram:`I want to reach you on Telegram. Let's set it up.`,phone:`I want to be able to call you. Let's set you up with a phone number.`},oe=15e3;function se({assistantId:e,onStartSetupConversation:t}){let n=r(),o=(0,B.useMemo)(()=>({path:{assistant_id:e}}),[e]),s=(0,B.useMemo)(()=>A(o),[o]),c=i({...k(o),enabled:!!e,refetchInterval:oe,select:e=>e.snapshots}),u=(0,B.useMemo)(()=>ce(c.data??[]),[c.data]),f=u.some(e=>e.key===`slack`&&e.status===`ready`),m=i({...O(o),enabled:f,select:e=>e.threadMode}),g=ie(e),_=(0,B.useCallback)(()=>n.invalidateQueries({queryKey:s}),[n,s]),v=a({mutationFn:async t=>{let n={path:{assistant_id:e},throwOnError:!0};t===`slack`?await S(n):t===`telegram`?await C(n):t===`phone`&&await w(n)},onSettled:(t,r,i)=>{_(),i===`slack`&&l(n,e)}}),y=d({assistantId:e}),b=p({assistantId:e}),x=h({assistantId:e}),D=a({...E(),onSuccess:()=>{n.invalidateQueries({queryKey:T(o)})}}),j=y.mutateAsync,M=(0,B.useCallback)(async e=>{await j(e)},[j]),N=b.mutate,P=(0,B.useCallback)((e,t)=>{N({botToken:e,appToken:t})},[N]),F=D.mutate,I=(0,B.useCallback)(t=>{F({path:{assistant_id:e},body:{threadMode:t}})},[F,e]),L=x.mutateAsync,R=(0,B.useCallback)(async(e,t)=>{await L({accountSid:e,authToken:t})},[L]),z=(0,B.useCallback)(e=>{t&&t(ae[e])},[t]),V=v.mutate,H=(0,B.useCallback)(e=>{V(e)},[V]);return{channels:u,pendingChannelKey:v.isPending?v.variables??null:null,slackThreadMode:m.data,slackThreadModePending:D.isPending,channelPolicies:g.policies,policySavingKey:g.savingKey,policiesLoading:g.isLoading,policiesError:g.isError,onChannelPolicyChange:g.onChange,onSetup:t?z:void 0,onDisconnect:H,onSaveTelegramToken:M,onSaveSlackConfig:P,slackSaveStatus:b.status,slackSaveError:b.error?.message??null,onSlackThreadModeChange:I,onSaveTwilioCredentials:R}}function ce(e){let t=new Map;for(let n of e)t.set(n.channel,n);return m.map(e=>{let n=t.get(e);return{key:e,status:le(n),address:n?.channelHandle??void 0}})}function le(e){return e?e.ready||e.setupStatus===`ready`?`ready`:e.setupStatus===`incomplete`?`incomplete`:`not_configured`:`not_configured`}function ue(e){let t=r(),[n,i]=(0,B.useState)(!1);return{isOpen:n,open:(0,B.useCallback)(()=>{i(!0)},[]),close:(0,B.useCallback)(()=>{i(!1),t.invalidateQueries({queryKey:j({path:{assistant_id:e}})})},[t,e])}}export{U as a,J as c,X as i,z as l,se as n,H as o,Z as r,q as s,ue as t};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{o as t,r as n,s as r,t as i}from"./local-settings-C-dW2vkq.js";import{s as a}from"./device-settings-DXp9L4iB.js";import{t as o}from"./react-BFJW0bSv.js";import{t as s}from"./button-Dy5001j6.js";import{t as c}from"./jsx-runtime-D3ZM-ToX.js";import{t as l}from"./createLucideIcon-CAM1RhH8.js";import{t as u}from"./checkbox-CRmgkYah.js";import{t as d}from"./triangle-alert-CQfiAg_t.js";import{t as f}from"./notice-BMK7xqUw.js";import"./src-te3YTBG-.js";import{t as p}from"./modal-BR4CUFBd.js";import{i as m,t as h}from"./api-BlN0EOWF.js";import{i as g,r as _}from"./typed-storage-9Sn8tkE7.js";import{t as v}from"./client-feature-flag-store-BDrcV52r.js";import{n as y,r as b,t as x}from"./theme-preferences-Bb2pPRXa.js";import{t as S}from"./use-bus-subscription-nUrbz9Mu.js";import{o as C}from"./funnel-events-n2IVlwTo.js";var w=l(`package`,[[`path`,{d:`M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z`,key:`1a0edw`}],[`path`,{d:`M12 22V12`,key:`d0xqtd`}],[`polyline`,{points:`3.29 7 12 12 20.71 7`,key:`ousv84`}],[`path`,{d:`m7.5 4.27 9 5.15`,key:`1c824w`}]]),T=l(`rocket`,[[`path`,{d:`M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5`,key:`qeys4`}],[`path`,{d:`M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09`,key:`u4xsad`}],[`path`,{d:`M9 12a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.4 22.4 0 0 1-4 2z`,key:`676m9`}],[`path`,{d:`M9 12H4s.55-3.03 2-4c1.62-1.08 5 .05 5 .05`,key:`92ym6u`}]]);function ee(){return v.use.stringFlags().proactiveTips??`off`}function te(e){return e===`on`}function E(e){return e===void 0||typeof e==`number`&&Number.isFinite(e)}function D(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e;return typeof t.shownCount==`number`&&Number.isFinite(t.shownCount)&&E(t.dismissedAt)&&E(t.lastShownAt)}function O(e){let t=JSON.parse(e);if(!t||typeof t!=`object`||Array.isArray(t))return null;let n={};for(let[e,r]of Object.entries(t))D(r)&&(n[e]=r);return n}function k(e){let t=Number(e);return Number.isFinite(t)&&t>=0?t:null}var A=_({key:`device:tips:records`,scope:`device`,parse:O,serialize:JSON.stringify,fallback:{}}),j=_({key:`device:tips:enabled`,scope:`device`,parse:g,serialize:String,fallback:!0}),M=_({key:`device:tips:first_seen_at`,scope:`device`,parse:k,serialize:String,fallback:0});function ne(){M.load()===0&&M.save(Date.now())}function re(e,t){let n=A.load(),r=n[e];A.save({...n,[e]:{...r,lastShownAt:t,shownCount:(r?.shownCount??0)+1}})}function ie(e,t){let n=A.load(),r=n[e];A.save({...n,[e]:{...r,dismissedAt:t,shownCount:r?.shownCount??0}})}var ae=`proactive-tips-v1`,oe={impression:0,learn_more:1,dismiss:2,dont_show_again:3,click:4,completion:5};function se(e,t,n){C({stepName:t,stepIndex:oe[t]},{funnelVersion:ae,screen:e,variant:n})}var N=e(o(),1);function P(){let e=v.use.velvet(),[t,n]=(0,N.useState)(()=>y({velvetEnabled:e}));return(0,N.useEffect)(()=>{n(y({velvetEnabled:e}))},[e]),(0,N.useEffect)(()=>a(`theme`,()=>{n(y({velvetEnabled:e}))}),[e]),(0,N.useEffect)(()=>{x(t)},[t]),{theme:t,setThemePreference:e=>{n(e),b(e)}}}var F=6e4;function I(e){return!!(e?.enabled&&e.effectivelyLocked)}function L(e){return I(e)?e.acknowledged&&!e.overrideActive:!1}function R(e){return!!(e&&I(e)&&!e.acknowledged&&!e.overrideActive)}function z(e){return!!(e?.enabled&&e.state===`warning`)}function B(e){return R(e)?`acknowledgement-required`:L(e)?`cleanup`:z(e)?`warning`:`inactive`}function V({monitorEnabled:e,hasResolvedStatus:t,status:n}){return!e||!t?null:R(n)?`acknowledgement-required`:null}function H(e){return`Storage cleanup mode must be acknowledged before sending messages.`}function U(e,t){return e===t?!0:!e||!t?!1:e.enabled===t.enabled&&e.state===t.state&&e.locked===t.locked&&e.acknowledged===t.acknowledged&&e.overrideActive===t.overrideActive&&e.effectivelyLocked===t.effectivelyLocked&&e.lockId===t.lockId&&e.usagePercent===t.usagePercent&&e.thresholdPercent===t.thresholdPercent&&e.path===t.path&&e.lastCheckedAt===t.lastCheckedAt&&e.error===t.error&&e.blockedCapabilities.length===t.blockedCapabilities.length&&e.blockedCapabilities.every((e,n)=>e===t.blockedCapabilities[n])}function W(e){return e?.usagePercent==null||!Number.isFinite(e.usagePercent)?`Unknown`:`${Math.round(e.usagePercent)}%`}var G={assistantId:null,status:null,hasResolvedStatus:!1};function ce(e,t){return e instanceof Error?e:Error(t)}function le({assistantId:e,enabled:t,refreshKey:n,cadenceMs:r=F}){let[i,a]=(0,N.useState)(G),[o,s]=(0,N.useState)(!1),[c,l]=(0,N.useState)(null),u=(0,N.useRef)(e),d=(0,N.useRef)(t),f=(0,N.useRef)(0),p=(0,N.useRef)(0);(0,N.useLayoutEffect)(()=>{u.current=e,d.current=t}),(0,N.useEffect)(()=>{f.current+=1,a(G),l(null),s(!1)},[e,t]);let g=(0,N.useCallback)((e,t)=>d.current&&u.current===e&&f.current===t,[]),_=(0,N.useCallback)((e,t,n,r)=>{g(e,r)&&a(r=>r.assistantId===e&&r.hasResolvedStatus===n&&U(r.status,t)?r:{assistantId:e,status:t,hasResolvedStatus:n})},[g]),v=(0,N.useCallback)(()=>{f.current+=1,a(G)},[]),y=(0,N.useCallback)(async()=>{let n=e;if(!t||!n){v();return}let r=f.current,i=p.current+1;p.current=i;try{let e=await m(n);if(p.current!==i)return;if(!e.ok){_(n,null,!1,r);return}_(n,e.data.status,!0,r)}catch{if(p.current!==i)return;_(n,null,!1,r)}},[e,_,v,t]);(0,N.useEffect)(()=>{if(!t||!e)return;y();let n=window.setInterval(()=>{y()},r);return()=>{window.clearInterval(n)}},[e,r,t,y,n]),S(`app.resume`,()=>{y()});let b=(0,N.useCallback)(n=>{if(!t||!e){v();return}let r=f.current+1;f.current=r,s(!1),l(null),_(e,n,!0,r)},[e,_,v,t]);S(`sse.event`,e=>{let t=e.message;t.type===`disk_pressure_status_changed`&&b(t.status)});let x=(0,N.useCallback)(async()=>{let n=e;if(!t||!n){v();return}let r=f.current+1;f.current=r,s(!0),l(null);try{let e=await h(n);if(!e.ok)throw Error(`Failed to acknowledge assistant disk pressure.`);if(!g(n,r))return;let t=f.current+1;f.current=t,_(n,e.data.status,!0,t),s(!1)}catch(e){g(n,r)&&l(ce(e,`Failed to acknowledge assistant disk pressure.`))}finally{g(n,r)&&s(!1)}},[e,_,v,t,g]),C=t&&i.assistantId===e?i.status:null,w=!!(t&&e&&i.assistantId===e&&i.hasResolvedStatus);return{status:C,mode:(0,N.useMemo)(()=>B(C),[C]),hasResolvedStatus:w,isAcknowledging:o,acknowledgeError:c,acknowledge:x,applyStatusEvent:b,refresh:y}}var K=c();function ue(e){let{status:t,mode:n,isAcknowledging:r=!1,acknowledgeError:i,onAcknowledge:a,onDismissWarning:o,onReviewWorkspaceData:c,onUpgradeStorage:l}=e,[m,h]=(0,N.useState)(!1),[g,_]=(0,N.useState)(!1),v=W(t);if(n===`warning`){let e=t.usagePercent??0;return(0,K.jsx)(f,{tone:`warning`,title:`Your storage is almost full`,icon:(0,K.jsx)(w,{className:`h-4 w-4`,"aria-hidden":`true`}),onDismiss:o?()=>o(g):void 0,className:`p-4`,"data-testid":`disk-pressure-banner`,children:(0,K.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,K.jsx)(`div`,{className:`h-1.5 flex-1 overflow-hidden rounded-full bg-[var(--surface-active)]`,children:(0,K.jsx)(`div`,{className:`h-full rounded-full transition-[width] duration-300`,style:{width:`${e}%`,backgroundColor:`var(--system-mid-strong)`}})}),(0,K.jsx)(`span`,{className:`text-body-medium-default shrink-0 tabular-nums text-[color:var(--system-mid-strong)]`,children:v})]}),(0,K.jsx)(`p`,{className:`m-0`,children:`Free up space or add more storage to avoid interruptions.`}),(0,K.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[c&&(0,K.jsx)(s,{variant:`outlined`,size:`compact`,onClick:c,children:`Manage Storage`}),l&&(0,K.jsx)(s,{variant:`outlined`,size:`compact`,onClick:l,children:`Upgrade`}),o?(0,K.jsx)(u,{className:`ml-auto`,checked:g,onCheckedChange:e=>_(e===!0),label:`Don't show again`,"data-testid":`disk-pressure-banner-dont-show-again`}):null]})]})})}if(n===`cleanup`){let e=t.usagePercent??0;return(0,K.jsx)(f,{tone:`warning`,title:`Cleanup mode is active`,icon:(0,K.jsx)(w,{className:`h-4 w-4`,"aria-hidden":`true`}),className:`p-4`,"data-testid":`disk-pressure-banner`,children:(0,K.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,K.jsx)(`div`,{className:`h-1.5 flex-1 overflow-hidden rounded-full bg-[var(--surface-active)]`,children:(0,K.jsx)(`div`,{className:`h-full rounded-full transition-[width] duration-300`,style:{width:`${e}%`,backgroundColor:`var(--system-mid-strong)`}})}),(0,K.jsx)(`span`,{className:`text-body-medium-default shrink-0 tabular-nums text-[color:var(--system-mid-strong)]`,children:v})]}),(0,K.jsx)(`p`,{className:`m-0`,children:`Prompt your assistant to free up space before it runs out and enters a locked state.`}),(0,K.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[c&&(0,K.jsx)(s,{variant:`outlined`,size:`compact`,onClick:c,children:`Manage Storage`}),l&&(0,K.jsx)(s,{variant:`outlined`,size:`compact`,onClick:l,children:`Upgrade`})]})]})})}let y=t.usagePercent??0;return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(f,{tone:`error`,title:`Storage is critically low`,icon:(0,K.jsx)(w,{className:`h-4 w-4`,"aria-hidden":`true`}),className:`p-4`,"data-testid":`disk-pressure-banner`,children:(0,K.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,K.jsx)(`div`,{className:`h-1.5 flex-1 overflow-hidden rounded-full bg-[var(--surface-active)]`,children:(0,K.jsx)(`div`,{className:`h-full rounded-full transition-[width] duration-300`,style:{width:`${y}%`,backgroundColor:`var(--system-negative-strong)`}})}),(0,K.jsx)(`span`,{className:`text-body-medium-default shrink-0 tabular-nums text-[color:var(--system-negative-strong)]`,children:v})]}),(0,K.jsx)(`p`,{className:`m-0`,children:`Your assistant will enter a locked state if it runs out of storage.`}),i?(0,K.jsx)(`span`,{className:`text-[var(--system-negative-strong)]`,role:`alert`,children:i}):null,(0,K.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:(0,K.jsx)(s,{variant:`primary`,size:`compact`,onClick:()=>h(!0),children:`Review`})})]})}),(0,K.jsx)(p.Root,{open:m,onOpenChange:e=>{e||h(!1)},children:(0,K.jsxs)(p.Content,{size:`sm`,children:[(0,K.jsx)(p.Header,{children:(0,K.jsx)(p.Title,{icon:d,children:`Storage is critically low`})}),(0,K.jsx)(p.Body,{children:(0,K.jsx)(p.Description,{children:`Your assistant will enter a locked state if it runs out of storage. You should either prompt your assistant to free up space or increase your storage.`})}),(0,K.jsxs)(p.Footer,{children:[l&&(0,K.jsx)(s,{variant:`outlined`,onClick:()=>{h(!1),l()},children:`Upgrade`}),(0,K.jsx)(s,{variant:`primary`,disabled:r,onClick:()=>{a(),h(!1)},children:r?`Acknowledging...`:`Acknowledge`})]})]})})]})}var de=_({key:`device:cmd_enter_to_send`,scope:`device`,parse:g,serialize:String,fallback:!1}),q=`app.iosNudge.downloaded`,J=`app.iosNudge.bannerDismissed`,Y=`app.iosNudge.assistantTurnsSeen`,fe=`https://apps.apple.com/us/app/vellum-assistant/id6759934423`;function X(){return i(q,!1)}function Z(){t(q,!0)}function pe(){return i(J,!1)}function me(){t(J,!0)}function Q(){return Math.max(0,n(Y,0))}function he(e=1){e<=0||r(Y,Q()+e)}function ge(){let[e,t]=(0,N.useState)(!1),[n,r]=(0,N.useState)(!1);(0,N.useEffect)(()=>{t(X()),r(pe())},[]);let i=(0,N.useCallback)(()=>{$(),Z(),t(!0)},[]),a=(0,N.useCallback)(()=>{me(),r(!0)},[]);return{bannerShouldShow:!e&&!n,handleDownload:i,handleBannerDismiss:a}}function $(){window.open(fe,`_blank`,`noopener,noreferrer`)}export{w as S,j as _,Z as a,ee as b,le as c,P as d,se as f,A as g,re as h,ge as i,H as l,ie as m,$ as n,de as o,ne as p,Q as r,ue as s,he as t,V as u,M as v,T as x,te as y};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{o as t,r as n,s as r,t as i}from"./local-settings-C-dW2vkq.js";import{s as a}from"./device-settings-DXp9L4iB.js";import{t as o}from"./react-BFJW0bSv.js";import{t as s}from"./button-Dy5001j6.js";import{t as c}from"./jsx-runtime-D3ZM-ToX.js";import{t as l}from"./createLucideIcon-CAM1RhH8.js";import{t as u}from"./checkbox-CRmgkYah.js";import{t as d}from"./triangle-alert-CQfiAg_t.js";import{t as f}from"./notice-BMK7xqUw.js";import"./src-te3YTBG-.js";import{t as p}from"./modal-BR4CUFBd.js";import{i as m,t as h}from"./api-LG8zI3nK.js";import{i as g,r as _}from"./typed-storage-9Sn8tkE7.js";import{t as v}from"./client-feature-flag-store-CMncoan8.js";import{n as y,r as b,t as x}from"./theme-preferences-Bb2pPRXa.js";import{t as S}from"./use-bus-subscription-nUrbz9Mu.js";import{o as C}from"./funnel-events-n2IVlwTo.js";var w=l(`package`,[[`path`,{d:`M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z`,key:`1a0edw`}],[`path`,{d:`M12 22V12`,key:`d0xqtd`}],[`polyline`,{points:`3.29 7 12 12 20.71 7`,key:`ousv84`}],[`path`,{d:`m7.5 4.27 9 5.15`,key:`1c824w`}]]),T=l(`rocket`,[[`path`,{d:`M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5`,key:`qeys4`}],[`path`,{d:`M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09`,key:`u4xsad`}],[`path`,{d:`M9 12a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.4 22.4 0 0 1-4 2z`,key:`676m9`}],[`path`,{d:`M9 12H4s.55-3.03 2-4c1.62-1.08 5 .05 5 .05`,key:`92ym6u`}]]);function ee(){return v.use.stringFlags().proactiveTips??`off`}function te(e){return e===`on`}function E(e){return e===void 0||typeof e==`number`&&Number.isFinite(e)}function D(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e;return typeof t.shownCount==`number`&&Number.isFinite(t.shownCount)&&E(t.dismissedAt)&&E(t.lastShownAt)}function O(e){let t=JSON.parse(e);if(!t||typeof t!=`object`||Array.isArray(t))return null;let n={};for(let[e,r]of Object.entries(t))D(r)&&(n[e]=r);return n}function k(e){let t=Number(e);return Number.isFinite(t)&&t>=0?t:null}var A=_({key:`device:tips:records`,scope:`device`,parse:O,serialize:JSON.stringify,fallback:{}}),j=_({key:`device:tips:enabled`,scope:`device`,parse:g,serialize:String,fallback:!0}),M=_({key:`device:tips:first_seen_at`,scope:`device`,parse:k,serialize:String,fallback:0});function ne(){M.load()===0&&M.save(Date.now())}function re(e,t){let n=A.load(),r=n[e];A.save({...n,[e]:{...r,lastShownAt:t,shownCount:(r?.shownCount??0)+1}})}function ie(e,t){let n=A.load(),r=n[e];A.save({...n,[e]:{...r,dismissedAt:t,shownCount:r?.shownCount??0}})}var ae=`proactive-tips-v1`,oe={impression:0,learn_more:1,dismiss:2,dont_show_again:3,click:4,completion:5};function se(e,t,n){C({stepName:t,stepIndex:oe[t]},{funnelVersion:ae,screen:e,variant:n})}var N=e(o(),1);function P(){let e=v.use.velvet(),[t,n]=(0,N.useState)(()=>y({velvetEnabled:e}));return(0,N.useEffect)(()=>{n(y({velvetEnabled:e}))},[e]),(0,N.useEffect)(()=>a(`theme`,()=>{n(y({velvetEnabled:e}))}),[e]),(0,N.useEffect)(()=>{x(t)},[t]),{theme:t,setThemePreference:e=>{n(e),b(e)}}}var F=6e4;function I(e){return!!(e?.enabled&&e.effectivelyLocked)}function L(e){return I(e)?e.acknowledged&&!e.overrideActive:!1}function R(e){return!!(e&&I(e)&&!e.acknowledged&&!e.overrideActive)}function z(e){return!!(e?.enabled&&e.state===`warning`)}function B(e){return R(e)?`acknowledgement-required`:L(e)?`cleanup`:z(e)?`warning`:`inactive`}function V({monitorEnabled:e,hasResolvedStatus:t,status:n}){return!e||!t?null:R(n)?`acknowledgement-required`:null}function H(e){return`Storage cleanup mode must be acknowledged before sending messages.`}function U(e,t){return e===t?!0:!e||!t?!1:e.enabled===t.enabled&&e.state===t.state&&e.locked===t.locked&&e.acknowledged===t.acknowledged&&e.overrideActive===t.overrideActive&&e.effectivelyLocked===t.effectivelyLocked&&e.lockId===t.lockId&&e.usagePercent===t.usagePercent&&e.thresholdPercent===t.thresholdPercent&&e.path===t.path&&e.lastCheckedAt===t.lastCheckedAt&&e.error===t.error&&e.blockedCapabilities.length===t.blockedCapabilities.length&&e.blockedCapabilities.every((e,n)=>e===t.blockedCapabilities[n])}function W(e){return e?.usagePercent==null||!Number.isFinite(e.usagePercent)?`Unknown`:`${Math.round(e.usagePercent)}%`}var G={assistantId:null,status:null,hasResolvedStatus:!1};function ce(e,t){return e instanceof Error?e:Error(t)}function le({assistantId:e,enabled:t,refreshKey:n,cadenceMs:r=F}){let[i,a]=(0,N.useState)(G),[o,s]=(0,N.useState)(!1),[c,l]=(0,N.useState)(null),u=(0,N.useRef)(e),d=(0,N.useRef)(t),f=(0,N.useRef)(0),p=(0,N.useRef)(0);(0,N.useLayoutEffect)(()=>{u.current=e,d.current=t}),(0,N.useEffect)(()=>{f.current+=1,a(G),l(null),s(!1)},[e,t]);let g=(0,N.useCallback)((e,t)=>d.current&&u.current===e&&f.current===t,[]),_=(0,N.useCallback)((e,t,n,r)=>{g(e,r)&&a(r=>r.assistantId===e&&r.hasResolvedStatus===n&&U(r.status,t)?r:{assistantId:e,status:t,hasResolvedStatus:n})},[g]),v=(0,N.useCallback)(()=>{f.current+=1,a(G)},[]),y=(0,N.useCallback)(async()=>{let n=e;if(!t||!n){v();return}let r=f.current,i=p.current+1;p.current=i;try{let e=await m(n);if(p.current!==i)return;if(!e.ok){_(n,null,!1,r);return}_(n,e.data.status,!0,r)}catch{if(p.current!==i)return;_(n,null,!1,r)}},[e,_,v,t]);(0,N.useEffect)(()=>{if(!t||!e)return;y();let n=window.setInterval(()=>{y()},r);return()=>{window.clearInterval(n)}},[e,r,t,y,n]),S(`app.resume`,()=>{y()});let b=(0,N.useCallback)(n=>{if(!t||!e){v();return}let r=f.current+1;f.current=r,s(!1),l(null),_(e,n,!0,r)},[e,_,v,t]);S(`sse.event`,e=>{let t=e.message;t.type===`disk_pressure_status_changed`&&b(t.status)});let x=(0,N.useCallback)(async()=>{let n=e;if(!t||!n){v();return}let r=f.current+1;f.current=r,s(!0),l(null);try{let e=await h(n);if(!e.ok)throw Error(`Failed to acknowledge assistant disk pressure.`);if(!g(n,r))return;let t=f.current+1;f.current=t,_(n,e.data.status,!0,t),s(!1)}catch(e){g(n,r)&&l(ce(e,`Failed to acknowledge assistant disk pressure.`))}finally{g(n,r)&&s(!1)}},[e,_,v,t,g]),C=t&&i.assistantId===e?i.status:null,w=!!(t&&e&&i.assistantId===e&&i.hasResolvedStatus);return{status:C,mode:(0,N.useMemo)(()=>B(C),[C]),hasResolvedStatus:w,isAcknowledging:o,acknowledgeError:c,acknowledge:x,applyStatusEvent:b,refresh:y}}var K=c();function ue(e){let{status:t,mode:n,isAcknowledging:r=!1,acknowledgeError:i,onAcknowledge:a,onDismissWarning:o,onReviewWorkspaceData:c,onUpgradeStorage:l}=e,[m,h]=(0,N.useState)(!1),[g,_]=(0,N.useState)(!1),v=W(t);if(n===`warning`){let e=t.usagePercent??0;return(0,K.jsx)(f,{tone:`warning`,title:`Your storage is almost full`,icon:(0,K.jsx)(w,{className:`h-4 w-4`,"aria-hidden":`true`}),onDismiss:o?()=>o(g):void 0,className:`p-4`,"data-testid":`disk-pressure-banner`,children:(0,K.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,K.jsx)(`div`,{className:`h-1.5 flex-1 overflow-hidden rounded-full bg-[var(--surface-active)]`,children:(0,K.jsx)(`div`,{className:`h-full rounded-full transition-[width] duration-300`,style:{width:`${e}%`,backgroundColor:`var(--system-mid-strong)`}})}),(0,K.jsx)(`span`,{className:`text-body-medium-default shrink-0 tabular-nums text-[color:var(--system-mid-strong)]`,children:v})]}),(0,K.jsx)(`p`,{className:`m-0`,children:`Free up space or add more storage to avoid interruptions.`}),(0,K.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[c&&(0,K.jsx)(s,{variant:`outlined`,size:`compact`,onClick:c,children:`Manage Storage`}),l&&(0,K.jsx)(s,{variant:`outlined`,size:`compact`,onClick:l,children:`Upgrade`}),o?(0,K.jsx)(u,{className:`ml-auto`,checked:g,onCheckedChange:e=>_(e===!0),label:`Don't show again`,"data-testid":`disk-pressure-banner-dont-show-again`}):null]})]})})}if(n===`cleanup`){let e=t.usagePercent??0;return(0,K.jsx)(f,{tone:`warning`,title:`Cleanup mode is active`,icon:(0,K.jsx)(w,{className:`h-4 w-4`,"aria-hidden":`true`}),className:`p-4`,"data-testid":`disk-pressure-banner`,children:(0,K.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,K.jsx)(`div`,{className:`h-1.5 flex-1 overflow-hidden rounded-full bg-[var(--surface-active)]`,children:(0,K.jsx)(`div`,{className:`h-full rounded-full transition-[width] duration-300`,style:{width:`${e}%`,backgroundColor:`var(--system-mid-strong)`}})}),(0,K.jsx)(`span`,{className:`text-body-medium-default shrink-0 tabular-nums text-[color:var(--system-mid-strong)]`,children:v})]}),(0,K.jsx)(`p`,{className:`m-0`,children:`Prompt your assistant to free up space before it runs out and enters a locked state.`}),(0,K.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[c&&(0,K.jsx)(s,{variant:`outlined`,size:`compact`,onClick:c,children:`Manage Storage`}),l&&(0,K.jsx)(s,{variant:`outlined`,size:`compact`,onClick:l,children:`Upgrade`})]})]})})}let y=t.usagePercent??0;return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(f,{tone:`error`,title:`Storage is critically low`,icon:(0,K.jsx)(w,{className:`h-4 w-4`,"aria-hidden":`true`}),className:`p-4`,"data-testid":`disk-pressure-banner`,children:(0,K.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,K.jsx)(`div`,{className:`h-1.5 flex-1 overflow-hidden rounded-full bg-[var(--surface-active)]`,children:(0,K.jsx)(`div`,{className:`h-full rounded-full transition-[width] duration-300`,style:{width:`${y}%`,backgroundColor:`var(--system-negative-strong)`}})}),(0,K.jsx)(`span`,{className:`text-body-medium-default shrink-0 tabular-nums text-[color:var(--system-negative-strong)]`,children:v})]}),(0,K.jsx)(`p`,{className:`m-0`,children:`Your assistant will enter a locked state if it runs out of storage.`}),i?(0,K.jsx)(`span`,{className:`text-[var(--system-negative-strong)]`,role:`alert`,children:i}):null,(0,K.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:(0,K.jsx)(s,{variant:`primary`,size:`compact`,onClick:()=>h(!0),children:`Review`})})]})}),(0,K.jsx)(p.Root,{open:m,onOpenChange:e=>{e||h(!1)},children:(0,K.jsxs)(p.Content,{size:`sm`,children:[(0,K.jsx)(p.Header,{children:(0,K.jsx)(p.Title,{icon:d,children:`Storage is critically low`})}),(0,K.jsx)(p.Body,{children:(0,K.jsx)(p.Description,{children:`Your assistant will enter a locked state if it runs out of storage. You should either prompt your assistant to free up space or increase your storage.`})}),(0,K.jsxs)(p.Footer,{children:[l&&(0,K.jsx)(s,{variant:`outlined`,onClick:()=>{h(!1),l()},children:`Upgrade`}),(0,K.jsx)(s,{variant:`primary`,disabled:r,onClick:()=>{a(),h(!1)},children:r?`Acknowledging...`:`Acknowledge`})]})]})})]})}var de=_({key:`device:cmd_enter_to_send`,scope:`device`,parse:g,serialize:String,fallback:!1}),q=`app.iosNudge.downloaded`,J=`app.iosNudge.bannerDismissed`,Y=`app.iosNudge.assistantTurnsSeen`,fe=`https://apps.apple.com/us/app/vellum-assistant/id6759934423`;function X(){return i(q,!1)}function Z(){t(q,!0)}function pe(){return i(J,!1)}function me(){t(J,!0)}function Q(){return Math.max(0,n(Y,0))}function he(e=1){e<=0||r(Y,Q()+e)}function ge(){let[e,t]=(0,N.useState)(!1),[n,r]=(0,N.useState)(!1);(0,N.useEffect)(()=>{t(X()),r(pe())},[]);let i=(0,N.useCallback)(()=>{$(),Z(),t(!0)},[]),a=(0,N.useCallback)(()=>{me(),r(!0)},[]);return{bannerShouldShow:!e&&!n,handleDownload:i,handleBannerDismiss:a}}function $(){window.open(fe,`_blank`,`noopener,noreferrer`)}export{w as S,j as _,Z as a,ee as b,le as c,P as d,se as f,A as g,re as h,ge as i,H as l,ie as m,$ as n,de as o,ne as p,Q as r,ue as s,he as t,V as u,M as v,T as x,te as y};
@@ -1 +1 @@
1
- import{D as e,M as t,O as n,T as r,i,n as a}from"./auth-store-BW4V6iLb.js";var o=5e3;function s(e,t,n){return!n||e!=null?`ready`:t===`error`?`unavailable`:`resolving`}function c(){return s(n(),e.use.status(),i())}function l(){return s(r(),e.getState().status,t(a.getState().platformSession))}function u(){return c()===`ready`}export{c as i,l as n,u as r,o as t};
1
+ import{D as e,M as t,O as n,T as r,i,n as a}from"./auth-store-5qq59BAN.js";var o=5e3;function s(e,t,n){return!n||e!=null?`ready`:t===`error`?`unavailable`:`resolving`}function c(){return s(n(),e.use.status(),i())}function l(){return s(r(),e.getState().status,t(a.getState().platformSession))}function u(){return c()===`ready`}export{c as i,l as n,u as r,o as t};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{l as n}from"./chunk-5KNZJZUH-Bsoom5--.js";import{t as r}from"./is-electron-m5eeGBnd.js";import{f as i}from"./native-biometric-BAMIyaSS.js";import{u as a}from"./routes-D9sNqB_o.js";import{r as o}from"./navigation-resolver-D4jPigYv.js";import{t as s}from"./build-state-DaLynPsy.js";import{n as c}from"./login-flow-B4pa-3II.js";var l=e(t(),1);function u(e){let t=n(),[u,d]=(0,l.useState)(!1),[f,p]=(0,l.useState)(null),m=(0,l.useRef)(0);return{loading:u,error:f,login:async()=>{let n=e??o(s({sessionSettled:!0,isAuthenticated:!0}),t.pathname),r=++m.current;p(null),d(!0);try{await i(c,`${a.account.providerCallback}?returnTo=${encodeURIComponent(n)}`,{returnTo:n})}catch{if(r!==m.current)return;p(`Something went wrong. Please try again.`),d(!1)}},cancel:()=>{m.current++,d(!1),p(null),r()&&window.vellum?.auth?.cancelOAuth()}}}export{u as t};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{l as n}from"./chunk-5KNZJZUH-Bsoom5--.js";import{t as r}from"./is-electron-m5eeGBnd.js";import{f as i}from"./native-biometric-BAMIyaSS.js";import{u as a}from"./routes-D9sNqB_o.js";import{r as o}from"./navigation-resolver-DPJxzx0h.js";import{t as s}from"./build-state-m0LQ5Iis.js";import{n as c}from"./login-flow-CD9tyuFG.js";var l=e(t(),1);function u(e){let t=n(),[u,d]=(0,l.useState)(!1),[f,p]=(0,l.useState)(null),m=(0,l.useRef)(0);return{loading:u,error:f,login:async()=>{let n=e??o(s({sessionSettled:!0,isAuthenticated:!0}),t.pathname),r=++m.current;p(null),d(!0);try{await i(c,`${a.account.providerCallback}?returnTo=${encodeURIComponent(n)}`,{returnTo:n})}catch{if(r!==m.current)return;p(`Something went wrong. Please try again.`),d(!1)}},cancel:()=>{m.current++,d(!1),p(null),r()&&window.vellum?.auth?.cancelOAuth()}}}export{u as t};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{C as n}from"./auth-store-BW4V6iLb.js";var r=e(t(),1);function i(e,t){let[i,a]=(0,r.useState)({platformAssistantId:null,isLoading:!1,error:null});return(0,r.useEffect)(()=>{if(!t||!e){a({platformAssistantId:null,isLoading:!1,error:null});return}let r=!0;return a({platformAssistantId:null,isLoading:!0,error:null}),n(e).then(e=>{r&&a({platformAssistantId:e,isLoading:!1,error:null})}).catch(e=>{r&&a({platformAssistantId:null,isLoading:!1,error:e instanceof Error?e:Error(String(e))})}),()=>{r=!1}},[e,t]),i}export{i as t};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{C as n}from"./auth-store-5qq59BAN.js";var r=e(t(),1);function i(e,t){let[i,a]=(0,r.useState)({platformAssistantId:null,isLoading:!1,error:null});return(0,r.useEffect)(()=>{if(!t||!e){a({platformAssistantId:null,isLoading:!1,error:null});return}let r=!0;return a({platformAssistantId:null,isLoading:!0,error:null}),n(e).then(e=>{r&&a({platformAssistantId:e,isLoading:!1,error:null})}).catch(e=>{r&&a({platformAssistantId:null,isLoading:!1,error:e instanceof Error?e:Error(String(e))})}),()=>{r=!1}},[e,t]),i}export{i as t};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{f as n,m as r}from"./local-mode-BTovbt13.js";import{G as i,i as a,o}from"./auth-store-BW4V6iLb.js";var s=e(t(),1);function c(){let e=i.use.assistantState();return!!(e.kind===`self_hosted`||e.kind===`active`&&e.isLocal)}function l(){let e=i.use.assistantState();return e.kind===`active`&&!e.isLocal}function u(){let e=i.use.assistantState();return e.kind===`loading`||e.kind===`initializing`||e.kind===`cleaning_up`}function d(e={}){let t=p(e);return t===`pending`?`disabled`:t}function f(e={}){let t=p(e),n=m(t===`pending`,e.settleTimeoutMs??5e3);return t===`pending`&&n?`disabled`:t}function p(e){let t=a(),i=o(),s=r(),l=c(),u=i?`disabled`:`pending`;return e.platformHostedOnly?l?`gated`:t?`full`:u:n()&&s?`gated`:t?`full`:u}function m(e,t){let[n,r]=(0,s.useState)(!1);return(0,s.useEffect)(()=>{if(!e){r(!1);return}let n=setTimeout(()=>r(!0),t);return()=>{clearTimeout(n)}},[e,t]),n}export{f as a,d as i,c as n,u as r,l as t};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{f as n,m as r}from"./local-mode-BTovbt13.js";import{G as i,i as a,o}from"./auth-store-5qq59BAN.js";var s=e(t(),1);function c(){let e=i.use.assistantState();return!!(e.kind===`self_hosted`||e.kind===`active`&&e.isLocal)}function l(){let e=i.use.assistantState();return e.kind===`active`&&!e.isLocal}function u(){let e=i.use.assistantState();return e.kind===`loading`||e.kind===`initializing`||e.kind===`cleaning_up`}function d(e={}){let t=p(e);return t===`pending`?`disabled`:t}function f(e={}){let t=p(e),n=m(t===`pending`,e.settleTimeoutMs??5e3);return t===`pending`&&n?`disabled`:t}function p(e){let t=a(),i=o(),s=r(),l=c(),u=i?`disabled`:`pending`;return e.platformHostedOnly?l?`gated`:t?`full`:u:n()&&s?`gated`:t?`full`:u}function m(e,t){let[n,r]=(0,s.useState)(!1);return(0,s.useEffect)(()=>{if(!e){r(!1);return}let n=setTimeout(()=>r(!0),t);return()=>{clearTimeout(n)}},[e,t]),n}export{f as a,d as i,c as n,u as r,l as t};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{n}from"./QueryClientProvider-CMu7CkQU.js";import{t as r}from"./useMutation-CXGTrp4W.js";import{t as i}from"./queryOptions-CMSBCFOf.js";import{t as a}from"./createLucideIcon-CAM1RhH8.js";import{t as o}from"./mail-CMdPNysl.js";import{t as s}from"./message-circle-BsH7vHtN.js";import{t as c}from"./message-square-CQGiY4zk.js";import{t as l}from"./send-Q71Exj3z.js";import{$t as u,Zt as d,tn as f}from"./sdk.gen-BVAVE6A_.js";import{Dt as p,Et as m,Tt as h,s as g,wt as _}from"./react-query.gen-r3I6j8-1.js";import{C as v,a as y,m as b,t as x}from"./sdk.gen-B5ygTzyg.js";var S=a(`bot`,[[`path`,{d:`M12 8V4H8`,key:`hb8ula`}],[`rect`,{width:`16`,height:`12`,x:`4`,y:`8`,rx:`2`,key:`enze0r`}],[`path`,{d:`M2 14h2`,key:`vft8re`}],[`path`,{d:`M20 14h2`,key:`4cs60a`}],[`path`,{d:`M15 13v2`,key:`1xurst`}],[`path`,{d:`M9 13v2`,key:`rq6x2g`}]]),C=a(`hash`,[[`line`,{x1:`4`,x2:`20`,y1:`9`,y2:`9`,key:`4lhtct`}],[`line`,{x1:`4`,x2:`20`,y1:`15`,y2:`15`,key:`vyu0kd`}],[`line`,{x1:`10`,x2:`8`,y1:`3`,y2:`21`,key:`1ggp8o`}],[`line`,{x1:`16`,x2:`14`,y1:`3`,y2:`21`,key:`weycgp`}]]),w=a(`phone`,[[`path`,{d:`M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384`,key:`9njp5v`}]]),T=(e,t,n,r)=>{let i={_id:e,baseUrl:t?.baseUrl||(t?.client??v).getConfig().baseUrl};return n&&(i._infinite=n),r&&(i.tags=r),t?.body&&(i.body=t.body),t?.headers&&(i.headers=t.headers),t?.path&&(i.path=t.path),t?.query&&(i.query=t.query),[i]},E=e=>T(`assistantChannelAdmissionPolicyList`,e),D=e=>i({queryFn:async({queryKey:t,signal:n})=>{let{data:r}=await x({...e,...t[0],signal:n,throwOnError:!0});return r},queryKey:E(e)}),O=e=>T(`assistantChannelPermissionOverridesList`,e),k=e=>i({queryFn:async({queryKey:t,signal:n})=>{let{data:r}=await y({...e,...t[0],signal:n,throwOnError:!0});return r},queryKey:O(e)}),A=e=>T(`assistantFeatureFlagsGet`,e),j=e=>i({queryFn:async({queryKey:t,signal:n})=>{let{data:r}=await b({...e,...t[0],signal:n,throwOnError:!0});return r},queryKey:A(e)}),M=e(t(),1),N={slack:`Slack`,telegram:`Telegram`,whatsapp:`WhatsApp`,phone:`Phone`,email:`Email`,a2a:`Assistant`},P={slack:C,telegram:l,whatsapp:s,phone:w,email:o,a2a:S};function F(e){return e?N[e]??e.charAt(0).toUpperCase()+e.slice(1):`channel`}function I(e){return`Open in ${F(e)}`}function L(e){return e&&P[e]?P[e]:c}function R({channelId:e,className:t}){return(0,M.createElement)(L(e),{className:t,"aria-hidden":!0})}var z=[`slack`,`telegram`,`phone`];function B(e){return z.includes(e)}function V(e){return{path:{assistant_id:e},query:{memberOnly:`true`}}}function H(e){return _(V(e))}function U(e){return h(V(e))}var W=600*1e3;function G(e){return{path:{assistant_id:e}}}function K(e){return{...m(G(e)),staleTime:W}}function q(e){return p(G(e))}function J(e,t){e.removeQueries({queryKey:U(t)}),e.removeQueries({queryKey:q(t)})}function Y({assistantId:e,onSuccess:t}){let i=n(),a=(0,M.useMemo)(()=>g({path:{assistant_id:e}}),[e]);return r({mutationFn:({botToken:t,appToken:n})=>{if(!n.trim())throw Error(`App token is required. Copy the xapp- token from Slack's install screen.`);if(!t.trim())throw Error(`Bot token is required.`);return d({path:{assistant_id:e},body:{botToken:t.trim(),appToken:n.trim()},throwOnError:!0})},onSuccess:t,onSettled:()=>{i.invalidateQueries({queryKey:a}),J(i,e)}})}function X({assistantId:e,onSuccess:t}){let i=n(),a=(0,M.useMemo)(()=>g({path:{assistant_id:e}}),[e]);return r({mutationFn:t=>{if(!t.trim())throw Error(`Bot token is required.`);return u({path:{assistant_id:e},body:{botToken:t.trim()},throwOnError:!0})},onSuccess:t,onSettled:()=>{i.invalidateQueries({queryKey:a})}})}function Z({assistantId:e,onSuccess:t}){let i=n(),a=(0,M.useMemo)(()=>g({path:{assistant_id:e}}),[e]);return r({mutationFn:({accountSid:t,authToken:n})=>{if(!t.trim())throw Error(`Account SID is required.`);if(!n.trim())throw Error(`Auth Token is required.`);return f({path:{assistant_id:e},body:{accountSid:t.trim(),authToken:n.trim()},throwOnError:!0})},onSuccess:t,onSettled:()=>{i.invalidateQueries({queryKey:a})}})}export{j as _,K as a,C as b,B as c,F as d,I as f,O as g,k as h,J as i,R as l,E as m,X as n,H as o,D as p,Y as r,z as s,Z as t,L as u,A as v,S as x,w as y};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{n}from"./QueryClientProvider-CMu7CkQU.js";import{t as r}from"./useMutation-CXGTrp4W.js";import{t as i}from"./queryOptions-CMSBCFOf.js";import{t as a}from"./createLucideIcon-CAM1RhH8.js";import{t as o}from"./mail-CMdPNysl.js";import{t as s}from"./message-circle-BsH7vHtN.js";import{t as c}from"./message-square-CQGiY4zk.js";import{t as l}from"./send-Q71Exj3z.js";import{$t as u,Zt as d,tn as f}from"./sdk.gen-BHZ0fJla.js";import{Dt as p,Et as m,Tt as h,s as g,wt as _}from"./react-query.gen-C5c1Acuq.js";import{C as v,a as y,m as b,t as x}from"./sdk.gen-B5ygTzyg.js";var S=a(`bot`,[[`path`,{d:`M12 8V4H8`,key:`hb8ula`}],[`rect`,{width:`16`,height:`12`,x:`4`,y:`8`,rx:`2`,key:`enze0r`}],[`path`,{d:`M2 14h2`,key:`vft8re`}],[`path`,{d:`M20 14h2`,key:`4cs60a`}],[`path`,{d:`M15 13v2`,key:`1xurst`}],[`path`,{d:`M9 13v2`,key:`rq6x2g`}]]),C=a(`hash`,[[`line`,{x1:`4`,x2:`20`,y1:`9`,y2:`9`,key:`4lhtct`}],[`line`,{x1:`4`,x2:`20`,y1:`15`,y2:`15`,key:`vyu0kd`}],[`line`,{x1:`10`,x2:`8`,y1:`3`,y2:`21`,key:`1ggp8o`}],[`line`,{x1:`16`,x2:`14`,y1:`3`,y2:`21`,key:`weycgp`}]]),w=a(`phone`,[[`path`,{d:`M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384`,key:`9njp5v`}]]),T=(e,t,n,r)=>{let i={_id:e,baseUrl:t?.baseUrl||(t?.client??v).getConfig().baseUrl};return n&&(i._infinite=n),r&&(i.tags=r),t?.body&&(i.body=t.body),t?.headers&&(i.headers=t.headers),t?.path&&(i.path=t.path),t?.query&&(i.query=t.query),[i]},E=e=>T(`assistantChannelAdmissionPolicyList`,e),D=e=>i({queryFn:async({queryKey:t,signal:n})=>{let{data:r}=await x({...e,...t[0],signal:n,throwOnError:!0});return r},queryKey:E(e)}),O=e=>T(`assistantChannelPermissionOverridesList`,e),k=e=>i({queryFn:async({queryKey:t,signal:n})=>{let{data:r}=await y({...e,...t[0],signal:n,throwOnError:!0});return r},queryKey:O(e)}),A=e=>T(`assistantFeatureFlagsGet`,e),j=e=>i({queryFn:async({queryKey:t,signal:n})=>{let{data:r}=await b({...e,...t[0],signal:n,throwOnError:!0});return r},queryKey:A(e)}),M=e(t(),1),N={slack:`Slack`,telegram:`Telegram`,whatsapp:`WhatsApp`,phone:`Phone`,email:`Email`,a2a:`Assistant`},P={slack:C,telegram:l,whatsapp:s,phone:w,email:o,a2a:S};function F(e){return e?N[e]??e.charAt(0).toUpperCase()+e.slice(1):`channel`}function I(e){return`Open in ${F(e)}`}function L(e){return e&&P[e]?P[e]:c}function R({channelId:e,className:t}){return(0,M.createElement)(L(e),{className:t,"aria-hidden":!0})}var z=[`slack`,`telegram`,`phone`];function B(e){return z.includes(e)}function V(e){return{path:{assistant_id:e},query:{memberOnly:`true`}}}function H(e){return _(V(e))}function U(e){return h(V(e))}var W=600*1e3;function G(e){return{path:{assistant_id:e}}}function K(e){return{...m(G(e)),staleTime:W}}function q(e){return p(G(e))}function J(e,t){e.removeQueries({queryKey:U(t)}),e.removeQueries({queryKey:q(t)})}function Y({assistantId:e,onSuccess:t}){let i=n(),a=(0,M.useMemo)(()=>g({path:{assistant_id:e}}),[e]);return r({mutationFn:({botToken:t,appToken:n})=>{if(!n.trim())throw Error(`App token is required. Copy the xapp- token from Slack's install screen.`);if(!t.trim())throw Error(`Bot token is required.`);return d({path:{assistant_id:e},body:{botToken:t.trim(),appToken:n.trim()},throwOnError:!0})},onSuccess:t,onSettled:()=>{i.invalidateQueries({queryKey:a}),J(i,e)}})}function X({assistantId:e,onSuccess:t}){let i=n(),a=(0,M.useMemo)(()=>g({path:{assistant_id:e}}),[e]);return r({mutationFn:t=>{if(!t.trim())throw Error(`Bot token is required.`);return u({path:{assistant_id:e},body:{botToken:t.trim()},throwOnError:!0})},onSuccess:t,onSettled:()=>{i.invalidateQueries({queryKey:a})}})}function Z({assistantId:e,onSuccess:t}){let i=n(),a=(0,M.useMemo)(()=>g({path:{assistant_id:e}}),[e]);return r({mutationFn:({accountSid:t,authToken:n})=>{if(!t.trim())throw Error(`Account SID is required.`);if(!n.trim())throw Error(`Auth Token is required.`);return f({path:{assistant_id:e},body:{accountSid:t.trim(),authToken:n.trim()},throwOnError:!0})},onSuccess:t,onSettled:()=>{i.invalidateQueries({queryKey:a})}})}export{j as _,K as a,C as b,B as c,F as d,I as f,O as g,k as h,J as i,R as l,E as m,X as n,H as o,D as p,Y as r,z as s,Z as t,L as u,A as v,S as x,w as y};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{n}from"./QueryClientProvider-CMu7CkQU.js";import{t as r}from"./useMutation-CXGTrp4W.js";import{t as i}from"./jsx-runtime-D3ZM-ToX.js";import{t as a}from"./card-DRIctGVs.js";import{t as o}from"./createLucideIcon-CAM1RhH8.js";import{t as s}from"./brain-BIzJCPA6.js";import{t as c}from"./globe-CMtjL_s_.js";import{t as l}from"./puzzle-BVC3TGko.js";import{t as u}from"./terminal-CdCI6wMV.js";import{t as d}from"./user-_zNqL48O.js";import"./src-te3YTBG-.js";import{t as f}from"./tag-NXcyiTkK.js";import{pr as p}from"./sdk.gen-BVAVE6A_.js";import{on as m}from"./react-query.gen-r3I6j8-1.js";import{n as h,r as g,t as _}from"./api-errors-CFiCT7Ap.js";import{t as v}from"./skills-Djg056es.js";var y=o(`box`,[[`path`,{d:`M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z`,key:`hh9hay`}],[`path`,{d:`m3.3 7 8.7 5 8.7-5`,key:`g66t2b`}],[`path`,{d:`M12 22V12`,key:`d0xqtd`}]]),b=e(t(),1),x=i();function S({skill:e,className:t,fallback:n=`🧩`}){let[r,i]=(0,b.useState)(!1);return e.icon&&!r?(0,x.jsx)(`img`,{src:`/assistant/skills/${e.id}/${e.icon}`,alt:``,className:`${t} object-contain`,onError:()=>i(!0)}):(0,x.jsx)(`span`,{className:t,children:e.emoji??n})}var C={vellum:{label:`Vellum`,icon:y},clawhub:{label:`Clawhub`,icon:c},skillssh:{label:`skills.sh`,icon:u},custom:{label:`Custom`,icon:d},"assistant-memory":{label:`Assistant's Memory`,icon:s}};function w({origin:e}){let t=e in C?C[e]:{label:e.replace(/-/g,` `),icon:l};return(0,x.jsx)(f,{tone:`neutral`,leftIcon:(0,b.createElement)(t.icon),className:`capitalize`,children:t.label})}function T(e){return e.kind===`installed`||e.kind===`bundled`}function E(e){return e.kind===`catalog`}function D({icon:e,iconColor:t=`var(--content-tertiary)`,title:n,subtitle:r,children:i}){return(0,x.jsx)(a.Root,{children:(0,x.jsxs)(a.Body,{className:`flex flex-col items-center justify-center py-16 text-center`,children:[(0,x.jsx)(e,{className:`mb-3 h-8 w-8`,style:{color:t},"aria-hidden":!0}),(0,x.jsx)(`h3`,{className:`text-title-small`,style:{color:`var(--content-default)`},children:n}),(0,x.jsx)(`p`,{className:`mt-1 max-w-sm text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:r}),i]})})}async function O(e,t,n){let{data:r,error:i,response:a}=await p({path:{assistant_id:e},body:n?{slug:t,version:n}:{slug:t},throwOnError:!1});if(h(a,i,`Failed to install skill.`),!a.ok)throw new _(a.status,g(i,a,`Failed to install skill.`));return r??{ok:!0}}function k(e,{onRemoved:t}={}){let i=n(),[a,o]=(0,b.useState)(null),[s,c]=(0,b.useState)(null),[l,u]=(0,b.useState)(null),d=(0,b.useCallback)(()=>{v(i,e)},[e,i]),f=r({mutationFn:t=>O(e,t),onMutate:e=>o(e),onSettled:()=>{o(null),d()}}),p=m({onMutate:e=>c(e.path.id),onSuccess:()=>{t?.()},onSettled:()=>{c(null),d()}}),h=(0,b.useCallback)(e=>{f.mutate(e.slug??e.id)},[f]),g=(0,b.useCallback)(e=>{u(e)},[]),_=(0,b.useCallback)(()=>{l&&(p.mutate({path:{assistant_id:e,id:l.id}}),u(null))},[e,l,p]),y=(0,b.useCallback)(()=>{u(null)},[]);return{handleInstall:h,handleRemove:g,isInstallingSkill:(0,b.useCallback)(e=>a===(e.slug??e.id),[a]),isRemovingSkill:(0,b.useCallback)(e=>s===e.id,[s]),skillPendingRemoval:l,confirmRemove:_,cancelRemove:y}}export{w as a,T as i,D as n,S as o,E as r,y as s,k as t};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{n}from"./QueryClientProvider-CMu7CkQU.js";import{t as r}from"./useMutation-CXGTrp4W.js";import{t as i}from"./jsx-runtime-D3ZM-ToX.js";import{t as a}from"./card-DRIctGVs.js";import{t as o}from"./createLucideIcon-CAM1RhH8.js";import{t as s}from"./brain-BIzJCPA6.js";import{t as c}from"./globe-CMtjL_s_.js";import{t as l}from"./puzzle-BVC3TGko.js";import{t as u}from"./terminal-CdCI6wMV.js";import{t as d}from"./user-_zNqL48O.js";import"./src-te3YTBG-.js";import{t as f}from"./tag-NXcyiTkK.js";import{pr as p}from"./sdk.gen-BHZ0fJla.js";import{on as m}from"./react-query.gen-C5c1Acuq.js";import{n as h,r as g,t as _}from"./api-errors-CFiCT7Ap.js";import{t as v}from"./skills-Cum1XWT2.js";var y=o(`box`,[[`path`,{d:`M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z`,key:`hh9hay`}],[`path`,{d:`m3.3 7 8.7 5 8.7-5`,key:`g66t2b`}],[`path`,{d:`M12 22V12`,key:`d0xqtd`}]]),b=e(t(),1),x=i();function S({skill:e,className:t,fallback:n=`🧩`}){let[r,i]=(0,b.useState)(!1);return e.icon&&!r?(0,x.jsx)(`img`,{src:`/assistant/skills/${e.id}/${e.icon}`,alt:``,className:`${t} object-contain`,onError:()=>i(!0)}):(0,x.jsx)(`span`,{className:t,children:e.emoji??n})}var C={vellum:{label:`Vellum`,icon:y},clawhub:{label:`Clawhub`,icon:c},skillssh:{label:`skills.sh`,icon:u},custom:{label:`Custom`,icon:d},"assistant-memory":{label:`Assistant's Memory`,icon:s}};function w({origin:e}){let t=e in C?C[e]:{label:e.replace(/-/g,` `),icon:l};return(0,x.jsx)(f,{tone:`neutral`,leftIcon:(0,b.createElement)(t.icon),className:`capitalize`,children:t.label})}function T(e){return e.kind===`installed`||e.kind===`bundled`}function E(e){return e.kind===`catalog`}function D({icon:e,iconColor:t=`var(--content-tertiary)`,title:n,subtitle:r,children:i}){return(0,x.jsx)(a.Root,{children:(0,x.jsxs)(a.Body,{className:`flex flex-col items-center justify-center py-16 text-center`,children:[(0,x.jsx)(e,{className:`mb-3 h-8 w-8`,style:{color:t},"aria-hidden":!0}),(0,x.jsx)(`h3`,{className:`text-title-small`,style:{color:`var(--content-default)`},children:n}),(0,x.jsx)(`p`,{className:`mt-1 max-w-sm text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:r}),i]})})}async function O(e,t,n){let{data:r,error:i,response:a}=await p({path:{assistant_id:e},body:n?{slug:t,version:n}:{slug:t},throwOnError:!1});if(h(a,i,`Failed to install skill.`),!a.ok)throw new _(a.status,g(i,a,`Failed to install skill.`));return r??{ok:!0}}function k(e,{onRemoved:t}={}){let i=n(),[a,o]=(0,b.useState)(null),[s,c]=(0,b.useState)(null),[l,u]=(0,b.useState)(null),d=(0,b.useCallback)(()=>{v(i,e)},[e,i]),f=r({mutationFn:t=>O(e,t),onMutate:e=>o(e),onSettled:()=>{o(null),d()}}),p=m({onMutate:e=>c(e.path.id),onSuccess:()=>{t?.()},onSettled:()=>{c(null),d()}}),h=(0,b.useCallback)(e=>{f.mutate(e.slug??e.id)},[f]),g=(0,b.useCallback)(e=>{u(e)},[]),_=(0,b.useCallback)(()=>{l&&(p.mutate({path:{assistant_id:e,id:l.id}}),u(null))},[e,l,p]),y=(0,b.useCallback)(()=>{u(null)},[]);return{handleInstall:h,handleRemove:g,isInstallingSkill:(0,b.useCallback)(e=>a===(e.slug??e.id),[a]),isRemovingSkill:(0,b.useCallback)(e=>s===e.id,[s]),skillPendingRemoval:l,confirmRemove:_,cancelRemove:y}}export{w as a,T as i,D as n,S as o,E as r,y as s,k as t};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./chunk-5KNZJZUH-Bsoom5--.js";import{t as r}from"./useQuery-Bz-fbQ-m.js";import{t as i}from"./jsx-runtime-D3ZM-ToX.js";import{t as a}from"./arrow-right-B-jRJNWP.js";import{vt as o,yt as s}from"./react-query.gen-r3I6j8-1.js";import{u as c}from"./routes-D9sNqB_o.js";import{t as l}from"./misc-CuYswARt.js";var u=i();function d({skill:e,className:t,onNavigate:r}){return e.origin!==`assistant-memory`||!e.sourceConversationId?null:(0,u.jsxs)(n,{to:c.conversation(e.sourceConversationId),onClick:r,className:l(`inline-flex w-fit items-center gap-1 text-body-small-default text-[var(--content-tertiary)] transition-colors hover:text-[var(--content-secondary)] hover:underline`,t),children:[`Learned from this conversation`,(0,u.jsx)(a,{className:`h-3.5 w-3.5 shrink-0`,"aria-hidden":!0})]})}var f=e(t(),1);function p(e,t){return t??e.find(e=>e.name===`SKILL.md`)?.path??null}function m(e,t){let[n,i]=(0,f.useState)(null),a=r({...s({path:{assistant_id:e??``,id:t}}),select:e=>e??null,enabled:!!e}),c=(0,f.useMemo)(()=>a.data?.files??[],[a.data]),l=(0,f.useMemo)(()=>c.find(e=>e.name===`SKILL.md`),[c]),u=p(c,n),d=r({...o({path:{assistant_id:e??``,id:t},query:{path:u??``}}),select:e=>e??null,enabled:!!(e&&u)});return{fileEntries:c,skillMd:l,selectedPath:n,setSelectedPath:i,activePath:u,activeFile:c.find(e=>e.path===u),isFilesLoading:a.isLoading,isFilesPending:a.isPending,fileContent:d.data?.content??null,isBinary:!!d.data?.isBinary,isContentLoading:d.isLoading,isContentPending:d.isPending}}export{d as n,m as t};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./chunk-5KNZJZUH-Bsoom5--.js";import{t as r}from"./useQuery-Bz-fbQ-m.js";import{t as i}from"./jsx-runtime-D3ZM-ToX.js";import{t as a}from"./arrow-right-B-jRJNWP.js";import{vt as o,yt as s}from"./react-query.gen-C5c1Acuq.js";import{u as c}from"./routes-D9sNqB_o.js";import{t as l}from"./misc-CuYswARt.js";var u=i();function d({skill:e,className:t,onNavigate:r}){return e.origin!==`assistant-memory`||!e.sourceConversationId?null:(0,u.jsxs)(n,{to:c.conversation(e.sourceConversationId),onClick:r,className:l(`inline-flex w-fit items-center gap-1 text-body-small-default text-[var(--content-tertiary)] transition-colors hover:text-[var(--content-secondary)] hover:underline`,t),children:[`Learned from this conversation`,(0,u.jsx)(a,{className:`h-3.5 w-3.5 shrink-0`,"aria-hidden":!0})]})}var f=e(t(),1);function p(e,t){return t??e.find(e=>e.name===`SKILL.md`)?.path??null}function m(e,t){let[n,i]=(0,f.useState)(null),a=r({...s({path:{assistant_id:e??``,id:t}}),select:e=>e??null,enabled:!!e}),c=(0,f.useMemo)(()=>a.data?.files??[],[a.data]),l=(0,f.useMemo)(()=>c.find(e=>e.name===`SKILL.md`),[c]),u=p(c,n),d=r({...o({path:{assistant_id:e??``,id:t},query:{path:u??``}}),select:e=>e??null,enabled:!!(e&&u)});return{fileEntries:c,skillMd:l,selectedPath:n,setSelectedPath:i,activePath:u,activeFile:c.find(e=>e.path===u),isFilesLoading:a.isLoading,isFilesPending:a.isPending,fileContent:d.data?.content??null,isBinary:!!d.data?.isBinary,isContentLoading:d.isLoading,isContentPending:d.isPending}}export{d as n,m as t};