@vellumai/web 0.10.12 → 0.11.0-staging.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (354) hide show
  1. package/dist/assets/{AnimatePresence-3WpfAWHe.js → AnimatePresence-DPfyu3ET.js} +1 -1
  2. package/dist/assets/{BundleConfirmPage-CDklssHh.js → BundleConfirmPage-CChUOtcg.js} +1 -1
  3. package/dist/assets/{a2a-invite-DUYZLVQb.js → a2a-invite-pyBtaaeG.js} +1 -1
  4. package/dist/assets/{about-page-CT70Pgvf.js → about-page-DGUK5p8j.js} +1 -1
  5. package/dist/assets/access-DS79PSR3.js +1 -0
  6. package/dist/assets/{account-page-D5cJIu1-.js → account-page-D3ERiewh.js} +1 -1
  7. package/dist/assets/{account-shell-C_IH8r44.js → account-shell-Dk4aC-Ls.js} +1 -1
  8. package/dist/assets/{acp-run-actions-CAjb0Wcm.js → acp-run-actions-BH8wuBAL.js} +1 -1
  9. package/dist/assets/{acp-run-detail-panel-DqzZdPiN.js → acp-run-detail-panel-dqVK6rPq.js} +1 -1
  10. package/dist/assets/{acp-run-store-C6n-XeY_.js → acp-run-store-B_eDLRwl.js} +1 -1
  11. package/dist/assets/{activity-steps-panel-BzHQOJsQ.js → activity-steps-panel-xxl2hu3E.js} +1 -1
  12. package/dist/assets/add-credential-modal-CY_--m8L.js +1 -0
  13. package/dist/assets/{add-credits-modal-CCEMf2_U.js → add-credits-modal-fT_gTTP5.js} +1 -1
  14. package/dist/assets/ai-page-B02NwVRu.js +1 -0
  15. package/dist/assets/animated-avatar-BcgncPkc.js +1 -0
  16. package/dist/assets/api-C3QSs67k.js +1 -0
  17. package/dist/assets/{api-XwdNiVE9.js → api-LG8zI3nK.js} +1 -1
  18. package/dist/assets/{api-key-screen-BXn2F-lQ.js → api-key-screen-CvBdN6Ae.js} +1 -1
  19. package/dist/assets/{app-card-Uowaj1kh.js → app-card-CAaFL1oB.js} +1 -1
  20. package/dist/assets/{archive-redirect-page-CpKvFqvX.js → archive-redirect-page-BH7h0Lk7.js} +1 -1
  21. package/dist/assets/{assistant-feature-flag-store-CLqMw4mK.js → assistant-feature-flag-store-CAdgpPiS.js} +1 -1
  22. package/dist/assets/{assistant-status-panel-DKnWIr7_.js → assistant-status-panel-BTnD-jhG.js} +1 -1
  23. package/dist/assets/auth-store-5qq59BAN.js +2 -0
  24. package/dist/assets/avatar-random-BMSYTcJK.js +1 -0
  25. package/dist/assets/{avatar-renderer-DK54o2kQ.js → avatar-renderer-ClUVcQmf.js} +1 -1
  26. package/dist/assets/{background-task-actions-CmYMPa2o.js → background-task-actions-DmP5s0oO.js} +1 -1
  27. package/dist/assets/{background-task-detail-panel-KDqjs7i2.js → background-task-detail-panel-BCYAElGc.js} +1 -1
  28. package/dist/assets/{background-task-store-DFS8MP5D.js → background-task-store-DMP8ByUq.js} +1 -1
  29. package/dist/assets/billing-page-B5j5TW_S.js +3 -0
  30. package/dist/assets/{billing-redirect-page-BRcj5q0u.js → billing-redirect-page-B1o1rsQZ.js} +1 -1
  31. package/dist/assets/{bookmarks-page-fFnFzh4F.js → bookmarks-page-D_Jr-a4Q.js} +1 -1
  32. package/dist/assets/{browser-CNL8hh8H.js → browser-CTZVDjOL.js} +2 -2
  33. package/dist/assets/build-state-m0LQ5Iis.js +1 -0
  34. package/dist/assets/channels-page-route-BYP9SOw5.js +9 -0
  35. package/dist/assets/chat-avatar-CvEA6z0H.js +1 -0
  36. package/dist/assets/chat-markdown-message-rxPKNeTx.js +2 -0
  37. package/dist/assets/{checkbox-BY0BDJjm.js → checkbox-CRmgkYah.js} +1 -1
  38. package/dist/assets/checkout-continuation-U3Pd2nxi.js +1 -0
  39. package/dist/assets/checkout-page-C5_9GbP-.js +1 -0
  40. package/dist/assets/checkout-return-target-DI6Hb-9L.js +1 -0
  41. package/dist/assets/client-feature-flag-store-CMncoan8.js +1 -0
  42. package/dist/assets/{client-identity-BS5mQsaQ.js → client-identity-DhkdvP5w.js} +1 -1
  43. package/dist/assets/{command-palette-CsRPcIM-.js → command-palette-BTaT__fo.js} +1 -1
  44. package/dist/assets/{command-palette-window-page-BzQ_oDaq.js → command-palette-window-page-gq0zowBe.js} +1 -1
  45. package/dist/assets/{community-page-mlhk4LsN.js → community-page-CsEKt9wX.js} +1 -1
  46. package/dist/assets/{connect-page-PuRyFup0.js → connect-page-B4aTS7Yj.js} +1 -1
  47. package/dist/assets/{consent-controls-BOFoWAYO.js → consent-controls-OcgxuxS0.js} +1 -1
  48. package/dist/assets/consent-hzYg-zbh.js +1 -0
  49. package/dist/assets/{contacts-gateway-C5OljhCC.js → contacts-gateway-B6OrAmU3.js} +1 -1
  50. package/dist/assets/{contacts-page-route-VBlklzVL.js → contacts-page-route-DNoCUXE7.js} +1 -1
  51. package/dist/assets/{conversation-cache-CqCkWHT6.js → conversation-cache-DKvwwWNo.js} +1 -1
  52. package/dist/assets/{conversation-list-fetchers-D84gJs6f.js → conversation-list-fetchers-DM-Y61u5.js} +1 -1
  53. package/dist/assets/conversation-navigation-DsN0hcpL.js +1 -0
  54. package/dist/assets/{conversation-queries-Ba_1sW5M.js → conversation-queries-CWvK6RLK.js} +1 -1
  55. package/dist/assets/{credential-entry-page-Bfrl1sD_.js → credential-entry-page-CHinHO85.js} +1 -1
  56. package/dist/assets/credentials-page-BsJFuOc9.js +1 -0
  57. package/dist/assets/{danger-zone-redirect-page-DKfrmf_o.js → danger-zone-redirect-page-SU45WI74.js} +1 -1
  58. package/dist/assets/debug-page-BziypDgA.js +4 -0
  59. package/dist/assets/{deploy-dialogs-BNMcZzII.js → deploy-dialogs-DZSd5o9b.js} +1 -1
  60. package/dist/assets/{deploy-store-CxnShfQj.js → deploy-store-D6snB1j5.js} +1 -1
  61. package/dist/assets/{detail-card-CwtjhGfi.js → detail-card-Du8OuE3q.js} +1 -1
  62. package/dist/assets/{detail-panel-stop-button-C1rystDS.js → detail-panel-stop-button-BNuh6N0s.js} +1 -1
  63. package/dist/assets/{detail-shell-DcNnOqM_.js → detail-shell-Cyqr5FXJ.js} +1 -1
  64. package/dist/assets/{developer-page-Bu7HBiPJ.js → developer-page-QMFEIyBS.js} +1 -1
  65. package/dist/assets/{devices-redirect-page-Cvt_H5ig.js → devices-redirect-page-B14wK98N.js} +1 -1
  66. package/dist/assets/{diagnostics-Dva51gYK.js → diagnostics-T_96Uyh5.js} +1 -1
  67. package/dist/assets/doctor-handoff-store-CYjL1S0n.js +1 -0
  68. package/dist/assets/document-viewer-container-B7TEDeV0.js +2 -0
  69. package/dist/assets/{document-viewer-page-kV6TCXu0.js → document-viewer-page-3Eq8L562.js} +1 -1
  70. package/dist/assets/effective-timezone-CmcoXrio.js +1 -0
  71. package/dist/assets/{emails-page-D9E3uXkG.js → emails-page-Wr4wPSYl.js} +1 -1
  72. package/dist/assets/{esm-BWFeAIOX.js → esm-BKewCp71.js} +2 -2
  73. package/dist/assets/{esm-DKdDWqsF.js → esm-Deuay4YU.js} +2 -2
  74. package/dist/assets/{esm-C6-ZMSya.js → esm-Dk6A-sQ0.js} +2 -2
  75. package/dist/assets/{esm-BQjZqfJZ.js → esm-IoT87yZe.js} +2 -2
  76. package/dist/assets/{esm-BTyZM-kf.js → esm-PYpy75OW.js} +2 -2
  77. package/dist/assets/esm-xItcektK.js +2 -0
  78. package/dist/assets/{eye-bbox-DXmmg9ML.js → eye-bbox-C_V87iLg.js} +1 -1
  79. package/dist/assets/feature-flag-catalog-I9-eJQP_.js +1 -0
  80. package/dist/assets/file-markdown-DaflJFk7.js +2 -0
  81. package/dist/assets/{first-run-scope-BoT9LMYw.js → first-run-scope-CL5YbC3b.js} +1 -1
  82. package/dist/assets/{funnel-events-CK938pi2.js → funnel-events-n2IVlwTo.js} +1 -1
  83. package/dist/assets/general-page-lbkufqHg.js +1 -0
  84. package/dist/assets/{get-memory-stats-ERcqnC0Q.js → get-memory-stats-BCYSpBF6.js} +1 -1
  85. package/dist/assets/{haptics-D9eNTUq-.js → haptics-DvWjk9Fg.js} +2 -2
  86. package/dist/assets/hatching-screen-D81diZoa.js +1 -0
  87. package/dist/assets/{home-page-route-BOCisuYY.js → home-page-route-CHe8eoLz.js} +1 -1
  88. package/dist/assets/{hosting-screen-6xIW6q02.js → hosting-screen-D9atAksQ.js} +1 -1
  89. package/dist/assets/{identity-page-route-qWwRSRld.js → identity-page-route-CK3YsXCN.js} +1 -1
  90. package/dist/assets/index-0f48hi7h.js +11 -0
  91. package/dist/assets/index-UKZ4bO6i.css +2 -0
  92. package/dist/assets/{ingest-DGkxw0Go.js → ingest-BizI657K.js} +1 -1
  93. package/dist/assets/{inspect-page-CRBfQ5WU.js → inspect-page-COwvbHtX.js} +3 -3
  94. package/dist/assets/{installed-plugins-query-C29LGAEV.js → installed-plugins-query-Cgek0q7G.js} +1 -1
  95. package/dist/assets/{integration-icon-Dvjn3ytY.js → integration-icon-dv-9Zzx3.js} +1 -1
  96. package/dist/assets/integrations-page-CJOBwxXp.js +1 -0
  97. package/dist/assets/{intelligence-layout-DP9zklR6.js → intelligence-layout-MNoGhi-l.js} +1 -1
  98. package/dist/assets/{invalidate-plugin-queries-DamxiwYv.js → invalidate-plugin-queries-C3NTXkCX.js} +1 -1
  99. package/dist/assets/{keyboard-shortcuts-redirect-page--bCvhp62.js → keyboard-shortcuts-redirect-page-CBI_mZIL.js} +1 -1
  100. package/dist/assets/{latest-assistant-text-D5WR-o6J.js → latest-assistant-text-DOepZ_Io.js} +2 -2
  101. package/dist/assets/{library-detail-page-pviljaQw.js → library-detail-page-DVwI94NZ.js} +1 -1
  102. package/dist/assets/{library-page-CYYuLywk.js → library-page-CNA794WY.js} +1 -1
  103. package/dist/assets/local-mode-BTovbt13.js +39 -0
  104. package/dist/assets/{local-runtime-upgrade-BggVMXfW.js → local-runtime-upgrade-Bqn3d7Q7.js} +1 -1
  105. package/dist/assets/login-flow-CD9tyuFG.js +1 -0
  106. package/dist/assets/{login-page-DdHXGGAt.js → login-page-BNStrcnU.js} +1 -1
  107. package/dist/assets/{logout-page-DjihP6Qk.js → logout-page-CpFeuLA_.js} +1 -1
  108. package/dist/assets/{logs-layout-C84-h0Hn.js → logs-layout-BUiPeZ4I.js} +1 -1
  109. package/dist/assets/{machine-sizes-DAflIPTM.js → machine-sizes-DO8duvpy.js} +1 -1
  110. package/dist/assets/{memory-page-route-dGWTWCWF.js → memory-page-route-C0cBV7HD.js} +1 -1
  111. package/dist/assets/{memory-router-playground-page-CjUiz_bH.js → memory-router-playground-page-D4UIq8mw.js} +1 -1
  112. package/dist/assets/{messages-Dl5_cjD9.js → messages-CFcAW4iz.js} +2 -2
  113. package/dist/assets/{metric-card-CkAD9RpC.js → metric-card-05a5slPx.js} +1 -1
  114. package/dist/assets/{mobile-sidebar-drawer-CbJ5JfXT.js → mobile-sidebar-drawer-DtKU2vlu.js} +1 -1
  115. package/dist/assets/native-anchor-CeekjwVy.js +1 -0
  116. package/dist/assets/native-biometric-BAMIyaSS.js +6 -0
  117. package/dist/assets/{native-file-B6_oAU2Q.js → native-file-ySSv1sQ7.js} +2 -2
  118. package/dist/assets/navigation-resolver-DPJxzx0h.js +1 -0
  119. package/dist/assets/{not-found-DV3iLBwm.js → not-found-OqaWNmdx.js} +1 -1
  120. package/dist/assets/{notifications-page-B9vnqyB1.js → notifications-page-ClfcJeLf.js} +1 -1
  121. package/dist/assets/{oauth-complete-page-BSxiDbQm.js → oauth-complete-page-rVmA2Cl8.js} +1 -1
  122. package/dist/assets/{oauth-connection-utils-DbcihBL8.js → oauth-connection-utils-CWPUW4MK.js} +1 -1
  123. package/dist/assets/{oauth-popup-complete-page-CyYbqLoK.js → oauth-popup-complete-page-DBsOvLES.js} +1 -1
  124. package/dist/assets/{onboarding-layout-Dd5fPfE7.js → onboarding-layout-DLs1hfp_.js} +1 -1
  125. package/dist/assets/onboarding-store-bZ2qYISk.js +1 -0
  126. package/dist/assets/open-workspace-file-DtK3a84K.js +2 -0
  127. package/dist/assets/{page-empty-state-BA3_YQN2.js → page-empty-state-DT-tC1u6.js} +1 -1
  128. package/dist/assets/{page-shell-_QxBKTK3.js → page-shell-C7SUgga9.js} +1 -1
  129. package/dist/assets/{pairing-page-DPfIgf3F.js → pairing-page-ZkFipOSH.js} +1 -1
  130. package/dist/assets/{password-reset-page-D55bGMVy.js → password-reset-page-iASQZawH.js} +1 -1
  131. package/dist/assets/{personality-page-fJJd-i4s.js → personality-page-BJpW3UXD.js} +1 -1
  132. package/dist/assets/plans-page-BDKqdYNM.js +1 -0
  133. package/dist/assets/{platform-detection-CMiRPRCq.js → platform-detection-XEAAu4c-.js} +1 -1
  134. package/dist/assets/{platform-login-notice-BG9TFAJa.js → platform-login-notice-CdYiKsE8.js} +1 -1
  135. package/dist/assets/{platform-loopback-page-DunGLusR.js → platform-loopback-page-D0gXCm2S.js} +1 -1
  136. package/dist/assets/{plugin-detail-page-BngHrN8T.js → plugin-detail-page-Bx2wzKEf.js} +1 -1
  137. package/dist/assets/{plugins-page-DD0t1_pE.js → plugins-page-B2zQ2iGh.js} +1 -1
  138. package/dist/assets/{prefs-BZnS5vR_.js → prefs-bw85lYLp.js} +1 -1
  139. package/dist/assets/{privacy-page-nZvfh3dh.js → privacy-page-B0QN4qZO.js} +1 -1
  140. package/dist/assets/privacy-screen-vp4uUpm6.js +1 -0
  141. package/dist/assets/{provider-callback-page-BwANEd-K.js → provider-callback-page-BH6DES7c.js} +1 -1
  142. package/dist/assets/{provider-key-B3R8SlMJ.js → provider-key-D2Nsf9zh.js} +1 -1
  143. package/dist/assets/{provider-signup-page-Cz2DP-jP.js → provider-signup-page-BAPcG_iJ.js} +1 -1
  144. package/dist/assets/provisioning-targets-BTjyR9nk.js +1 -0
  145. package/dist/assets/{quick-input-page-CF2MJnCE.js → quick-input-page-Dq-0BGrJ.js} +1 -1
  146. package/dist/assets/{react-query.gen-r3I6j8-1.js → react-query.gen-C5c1Acuq.js} +1 -1
  147. package/dist/assets/{remote-gateway-session-BHjZ9gQ6.js → remote-gateway-session-yRYdsfDx.js} +1 -1
  148. package/dist/assets/{research-mock-page-DnbQpZcp.js → research-mock-page-BJEpxdMv.js} +1 -1
  149. package/dist/assets/research-onboarding-route-CFL3q__m.js +50 -0
  150. package/dist/assets/{research-results-view-CxhTn2J7.js → research-results-view-C4sIw2gK.js} +1 -1
  151. package/dist/assets/{resolved-assistants-store-C-PdxK8f.js → resolved-assistants-store-Dw5UuGyB.js} +1 -1
  152. package/dist/assets/retire-confirm-dialog-CsSY2-T8.js +1 -0
  153. package/dist/assets/review-terms-screen-BhyRQBjl.js +1 -0
  154. package/dist/assets/{risk-C_bbPQPd.js → risk-CdT92Vqr.js} +2 -2
  155. package/dist/assets/routes-CaP5Tqj7.js +23 -0
  156. package/dist/assets/routes-D9sNqB_o.js +1 -0
  157. package/dist/assets/{runtime-upgrade-banner-DQI-l3Yc.js → runtime-upgrade-banner-DPqzKtZU.js} +2 -2
  158. package/dist/assets/{schedules-DF5cTXBf.js → schedules-6hzhR_C_.js} +1 -1
  159. package/dist/assets/schedules-page-DVnUeaoB.js +1 -0
  160. package/dist/assets/{sdk.gen-BVAVE6A_.js → sdk.gen-BHZ0fJla.js} +1 -1
  161. package/dist/assets/{security-redirect-page-BEohiPDW.js → security-redirect-page-4DKqyPsf.js} +1 -1
  162. package/dist/assets/{select-assistant-screen-C2q8wO2f.js → select-assistant-screen-CVV3iqMy.js} +1 -1
  163. package/dist/assets/{settings-divider-CXIrJieH.js → settings-divider-Ro7lPCkV.js} +1 -1
  164. package/dist/assets/settings-layout-B_4PKJr9.js +1 -0
  165. package/dist/assets/settings-navigation-CSG7jiyJ.js +1 -0
  166. package/dist/assets/{share-feedback-modal-B05-nKgu.js → share-feedback-modal-BoWCg4KH.js} +1 -1
  167. package/dist/assets/{sidebar-tree-ByF78JHW.js → sidebar-tree-C_PPNHe5.js} +1 -1
  168. package/dist/assets/{signup-page-CGauGszD.js → signup-page-D0S_8XYw.js} +1 -1
  169. package/dist/assets/{signup-shell-Bw6r9tWP.js → signup-shell-CMsBZ8vG.js} +1 -1
  170. package/dist/assets/{site-favicon-CCyX9r-Z.js → site-favicon-BB1pYWLF.js} +1 -1
  171. package/dist/assets/skill-detail-page-CTobyK6L.js +1 -0
  172. package/dist/assets/{skill-detail-panel-crqCBZbU.js → skill-detail-panel-CNzionF7.js} +1 -1
  173. package/dist/assets/{skills-C1CAcW7T.js → skills-Cum1XWT2.js} +1 -1
  174. package/dist/assets/{skills-page-BikP-AR7.js → skills-page-DZVxAbua.js} +1 -1
  175. package/dist/assets/slack-setup-wizard-DK2F8LXc.js +1 -0
  176. package/dist/assets/{sound-manager-xEbUgFv-.js → sound-manager-Bx-OcMAz.js} +1 -1
  177. package/dist/assets/{sounds-page-9_otQ97S.js → sounds-page-C45-RF4i.js} +1 -1
  178. package/dist/assets/{src-D89CNeuT.js → src-te3YTBG-.js} +4 -4
  179. package/dist/assets/{start-screen-DSF3melT.js → start-screen-CkJiCl9b.js} +1 -1
  180. package/dist/assets/{subagent-detail-panel-q0g4JWAX.js → subagent-detail-panel-DyyMdaNO.js} +1 -1
  181. package/dist/assets/subagent-store-MDi6lBXs.js +3 -0
  182. package/dist/assets/{superpowers-page-UgdWFWsF.js → superpowers-page-CaLzK5D-.js} +1 -1
  183. package/dist/assets/{system-events-page-Bw94HLwx.js → system-events-page-DXAU01ZO.js} +1 -1
  184. package/dist/assets/{system-events-redirect-page-BGZQC8-K.js → system-events-redirect-page-Bm9bipNo.js} +1 -1
  185. package/dist/assets/{theme-stage-page-bEZxHTyN.js → theme-stage-page-BDTCmutO.js} +1 -1
  186. package/dist/assets/{threshold-presets-BO8En2q0.js → threshold-presets-BdTTHCnm.js} +1 -1
  187. package/dist/assets/{tiptap-document-editor-CyY1HRzV.js → tiptap-document-editor-CHn2wCDv.js} +1 -1
  188. package/dist/assets/{tool-detail-panel-DFMOphDJ.js → tool-detail-panel-DFrWEWKG.js} +1 -1
  189. package/dist/assets/{transcript-message-body-shared-nWAkSzar.js → transcript-message-body-shared-D9_d2c2X.js} +1 -1
  190. package/dist/assets/{trust-rules-api-C0-hkXT2.js → trust-rules-api-B5lfygCA.js} +1 -1
  191. package/dist/assets/{upgrade-cancel-page-DwxI6NLL.js → upgrade-cancel-page-eiJEAvFz.js} +1 -1
  192. package/dist/assets/{upgrade-success-page-SO92J-Rf.js → upgrade-success-page-Cb1Gl4MM.js} +1 -1
  193. package/dist/assets/{usage-redirect-page-BJBkecYr.js → usage-redirect-page-BOfJ7uot.js} +1 -1
  194. package/dist/assets/{use-active-assistant-id-Cjbsk2Q3.js → use-active-assistant-id-CldxA_-M.js} +1 -1
  195. package/dist/assets/{use-app-theme-Q42fO5Nz.js → use-app-theme-Dg8A6vPA.js} +1 -1
  196. package/dist/assets/{use-assistant-avatar-DSu2_Mzi.js → use-assistant-avatar-bwLHcMz4.js} +1 -1
  197. package/dist/assets/{use-assistant-capability-gxe56K48.js → use-assistant-capability-CDS7GbSO.js} +1 -1
  198. package/dist/assets/{use-assistant-identity-details-CpHkzjrI.js → use-assistant-identity-details-9JRWxXTQ.js} +1 -1
  199. package/dist/assets/{use-avatar-accent-var-PV9tsBJj.js → use-avatar-accent-var-vpakP1ce.js} +1 -1
  200. package/dist/assets/{use-bookmarks-BbJtKyHe.js → use-bookmarks-CK-nOiT-.js} +1 -1
  201. package/dist/assets/{use-bundled-avatar-components-Gp_YaD6o.js → use-bundled-avatar-components-Bbs4vCnX.js} +2 -2
  202. package/dist/assets/use-checkout-dismiss-refresh-CqGR_OsB.js +1 -0
  203. package/dist/assets/use-command-palette-sections-CkpUaAKs.js +1 -0
  204. package/dist/assets/{use-edge-swipe-DVeTYbmY.js → use-edge-swipe-Wm9pU2HX.js} +1 -1
  205. package/dist/assets/{use-edge-swipe-back-DDq-N20h.js → use-edge-swipe-back-BcSHNCwS.js} +1 -1
  206. package/dist/assets/{use-edit-app-DfFIonqZ.js → use-edit-app-B_Nequzs.js} +1 -1
  207. package/dist/assets/{use-effective-timezone-LqzBqHBy.js → use-effective-timezone-Dqs8OaXJ.js} +1 -1
  208. package/dist/assets/use-invite-link-dialog-CPPOduk8.js +1 -0
  209. package/dist/assets/{use-ios-app-nudge-BO8jWfr0.js → use-ios-app-nudge-B-ojl-b1.js} +1 -1
  210. package/dist/assets/use-is-org-ready-C5xlYywh.js +1 -0
  211. package/dist/assets/use-onboarding-login-DI5gvqEG.js +1 -0
  212. package/dist/assets/use-platform-assistant-id-DOsSt6k1.js +1 -0
  213. package/dist/assets/use-platform-gate-C65D14xY.js +1 -0
  214. package/dist/assets/{use-reduced-motion-Se97jRQ-.js → use-reduced-motion-W1fCe3vS.js} +1 -1
  215. package/dist/assets/{use-save-twilio-credentials-CUQ6gdIj.js → use-save-twilio-credentials-c9xG9RPK.js} +1 -1
  216. package/dist/assets/{use-skill-actions-DgK7Nmt1.js → use-skill-actions-BAAx1Eia.js} +1 -1
  217. package/dist/assets/{use-skill-detail-files-_v4zUF6S.js → use-skill-detail-files-BvOKvY0-.js} +1 -1
  218. package/dist/assets/use-sticky-profiles-CdWX0mgI.js +1 -0
  219. package/dist/assets/{use-subagent-card-data-YbAN73Fw.js → use-subagent-card-data-DHuNtSy9.js} +1 -1
  220. package/dist/assets/use-supports-credentials-settings-BbfghcWq.js +1 -0
  221. package/dist/assets/{use-swipe-engine-DRvffOuu.js → use-swipe-engine-6PcZZMVD.js} +1 -1
  222. package/dist/assets/{utils-BtC1KiH4.js → utils-B0rBxtYP.js} +1 -1
  223. package/dist/assets/{viewer-store-BDpZVbcr.js → viewer-store-DLk-jp8U.js} +1 -1
  224. package/dist/assets/{voice-list-DJeZeHuA.js → voice-list-CW8mzaHU.js} +1 -1
  225. package/dist/assets/{voice-page-DQcyxaPl.js → voice-page-0zsCIOdT.js} +1 -1
  226. package/dist/assets/{voice-picker-modal-BXMvQihh.js → voice-picker-modal-PdsZwrsV.js} +1 -1
  227. package/dist/assets/{weather-forecast-display-D2sn4QD4.js → weather-forecast-display-BAAnrNdd.js} +1 -1
  228. package/dist/assets/{web-Bj8XUknF.js → web-B3Q8ntoM.js} +1 -1
  229. package/dist/assets/{web-BE7l06mM.js → web-BlvxItuO.js} +1 -1
  230. package/dist/assets/{welcome-screen-n-cGiojh.js → welcome-screen-DwOAZpZS.js} +1 -1
  231. package/dist/assets/{workflow-detail-panel-Cq3AwWXE.js → workflow-detail-panel-DGL2BZSr.js} +1 -1
  232. package/dist/assets/{workflow-store-QV5aMjTt.js → workflow-store-lM7yKbUo.js} +1 -1
  233. package/dist/assets/workspace-page-D4NvhCv1.js +1 -0
  234. package/dist/assets/workspace-tree-query-B1A-efgV.js +1 -0
  235. package/dist/index.html +144 -141
  236. package/package.json +1 -1
  237. package/dist/assets/access-D3fUSyFH.js +0 -1
  238. package/dist/assets/ai-page-BznkOakE.js +0 -1
  239. package/dist/assets/animated-avatar-DzfEDnTh.js +0 -1
  240. package/dist/assets/api-CJFoPWHm.js +0 -1
  241. package/dist/assets/auth-store-D9BqFncz.js +0 -2
  242. package/dist/assets/billing-page-Cc5fHBn2.js +0 -3
  243. package/dist/assets/build-state-WR9nlRgM.js +0 -1
  244. package/dist/assets/channels-page-route-wxREzs6W.js +0 -9
  245. package/dist/assets/chat-avatar-DIDq1Jt5.js +0 -1
  246. package/dist/assets/chat-markdown-message-ERK48E1Z.js +0 -2
  247. package/dist/assets/client-feature-flag-store-oTfL8Oiz.js +0 -1
  248. package/dist/assets/consent-DbD2Hcbf.js +0 -1
  249. package/dist/assets/conversation-navigation-Wm7_pLFs.js +0 -1
  250. package/dist/assets/credentials-page-B-AJyMvk.js +0 -1
  251. package/dist/assets/debug-page-DWEIExMH.js +0 -4
  252. package/dist/assets/document-viewer-container-Cl4jDmfx.js +0 -2
  253. package/dist/assets/effective-timezone-qiooajmO.js +0 -1
  254. package/dist/assets/esm-CDPcGg-B.js +0 -2
  255. package/dist/assets/feature-flag-catalog-BAyJlRMY.js +0 -1
  256. package/dist/assets/file-Ddp9Dqgl.js +0 -1
  257. package/dist/assets/file-markdown-CLmQTpqL.js +0 -2
  258. package/dist/assets/general-page-DpKVqj5t.js +0 -1
  259. package/dist/assets/hatching-screen-d3SWqFKY.js +0 -1
  260. package/dist/assets/index-B0l9Wjpj.css +0 -2
  261. package/dist/assets/index-BOC87TAq.js +0 -11
  262. package/dist/assets/integrations-page-D5KWY6v-.js +0 -1
  263. package/dist/assets/local-mode-Ckii2tmN.js +0 -39
  264. package/dist/assets/login-flow-BCNBNLzu.js +0 -1
  265. package/dist/assets/native-anchor-CVNubOIm.js +0 -1
  266. package/dist/assets/native-biometric-CntdlaL-.js +0 -6
  267. package/dist/assets/onboarding-store-DutUn1E3.js +0 -1
  268. package/dist/assets/open-workspace-file-CpveqBim.js +0 -2
  269. package/dist/assets/plans-page-C-JyEPT_.js +0 -1
  270. package/dist/assets/privacy-screen-D2aDT6E6.js +0 -1
  271. package/dist/assets/research-onboarding-route-yg2iKw6i.js +0 -50
  272. package/dist/assets/retire-confirm-dialog--eF_pXhA.js +0 -1
  273. package/dist/assets/review-terms-screen-Dpk-gyJE.js +0 -1
  274. package/dist/assets/routes-BBFM42ft.js +0 -23
  275. package/dist/assets/routes-vE-2hncW.js +0 -1
  276. package/dist/assets/schedules-page-Dgu-znOf.js +0 -1
  277. package/dist/assets/settings-layout-b7iBWIT-.js +0 -1
  278. package/dist/assets/settings-navigation-BGdjm0Ki.js +0 -1
  279. package/dist/assets/skill-detail-page-GlV5JRzQ.js +0 -1
  280. package/dist/assets/slack-setup-wizard-DKj1_XdA.js +0 -1
  281. package/dist/assets/stream-watchdog-BafbDdX9.js +0 -1
  282. package/dist/assets/subagent-store-D-GPthdC.js +0 -3
  283. package/dist/assets/use-checkout-dismiss-refresh-kdxxDNpF.js +0 -1
  284. package/dist/assets/use-command-palette-sections-BWjxkwKB.js +0 -1
  285. package/dist/assets/use-invite-link-dialog-DX58-LWY.js +0 -1
  286. package/dist/assets/use-is-org-ready-X_98Cnx9.js +0 -1
  287. package/dist/assets/use-onboarding-login-B8rpbSEh.js +0 -1
  288. package/dist/assets/use-platform-gate-Dry0Nv4f.js +0 -1
  289. package/dist/assets/use-sticky-profiles-B0zVD3uk.js +0 -1
  290. package/dist/assets/workspace-page-CL9z2Jrs.js +0 -1
  291. /package/dist/assets/{app-info-qQex8Ndg.js → app-info-DefDjPEl.js} +0 -0
  292. /package/dist/assets/{app-types-CBg2__YH.js → app-types-DSkgEmV3.js} +0 -0
  293. /package/dist/assets/{apple-logo-poQac1tY.js → apple-logo--8ZT6Umn.js} +0 -0
  294. /package/dist/assets/{avatar-bundled-components-CecbESCk.js → avatar-bundled-components-DPqbVXi9.js} +0 -0
  295. /package/dist/assets/{avatar-subagent-C9WTTUjI.js → avatar-subagent-CRA2B82x.js} +0 -0
  296. /package/dist/assets/{avatar-svg-compositor-FtVPqzlC.js → avatar-svg-compositor-Dl-ckXRE.js} +0 -0
  297. /package/dist/assets/{avatar-tone-CMoWR2JX.js → avatar-tone-BKwvoDSj.js} +0 -0
  298. /package/dist/assets/{browser-timezone-C_0jBUid.js → browser-timezone-CGwaX5Uv.js} +0 -0
  299. /package/dist/assets/{build.umd-59c0EvgO.js → build.umd-Bixyt_xE.js} +0 -0
  300. /package/dist/assets/{by-tool-use-id-index-aoRP6d51.js → by-tool-use-id-index-M50wYE1f.js} +0 -0
  301. /package/dist/assets/{chat-BrL0k2UY.js → chat-CDFCY8f0.js} +0 -0
  302. /package/dist/assets/{chat-layout-slots-store-C2IFeZFr.js → chat-layout-slots-store-BJfYGnd7.js} +0 -0
  303. /package/dist/assets/{conversation-selection-3EKkKt0G.js → conversation-selection-oJy8Oht3.js} +0 -0
  304. /package/dist/assets/{conversation-store-bshB7nDP.js → conversation-store-C--wWMNW.js} +0 -0
  305. /package/dist/assets/{definitions-PikNVFdS.js → definitions-D_AmTPWg.js} +0 -0
  306. /package/dist/assets/{definitions-OhJf_HMS.js → definitions-JF3PcEff.js} +0 -0
  307. /package/dist/assets/{dictation-overlay-page-zpoNqudq.js → dictation-overlay-page-DtgaXzdF.js} +0 -0
  308. /package/dist/assets/{edge-swipe-arbiter-store-DyemvsR-.js → edge-swipe-arbiter-store-CQnDi2yf.js} +0 -0
  309. /package/dist/assets/{edit-chat-session-yPtopwB6.js → edit-chat-session-D37Qx6ol.js} +0 -0
  310. /package/dist/assets/{emoji-catalog-data-COLzb2Wj.js → emoji-catalog-data-BCc1YNMR.js} +0 -0
  311. /package/dist/assets/{environment-store-BFVmN-OW.js → environment-store-Bft0lpgv.js} +0 -0
  312. /package/dist/assets/{esm-DEY-lP80.js → esm-DNvorKcw.js} +0 -0
  313. /package/dist/assets/{external-urls-BYwuIdYk.js → external-urls-_vjsdj2L.js} +0 -0
  314. /package/dist/assets/{file-editor-DpNdd7HZ.js → file-editor-phorJEVv.js} +0 -0
  315. /package/dist/assets/{format-date-RZ9mCDCy.js → format-date-BGnM4mqL.js} +0 -0
  316. /package/dist/assets/{format-file-size-CQaPE33p.js → format-file-size-BgMTiWPt.js} +0 -0
  317. /package/dist/assets/{hard-navigate-DZlpL1No.js → hard-navigate-DyUrcxe0.js} +0 -0
  318. /package/dist/assets/{link-click-BoSQACXo.js → link-click-DLYgWZdo.js} +0 -0
  319. /package/dist/assets/{misc-DckBb5zz.js → misc-CuYswARt.js} +0 -0
  320. /package/dist/assets/{mutation-error-CwYvaYnb.js → mutation-error-DEknRDAQ.js} +0 -0
  321. /package/dist/assets/{native-deep-link-PvbVHiPM.js → native-deep-link-DCBJ-Rw0.js} +0 -0
  322. /package/dist/assets/{oauth-popup-DZEqljdC.js → oauth-popup-OhSYYlQF.js} +0 -0
  323. /package/dist/assets/{onboarding-step-layout-CURfuoh4.js → onboarding-step-layout-D9rghAjS.js} +0 -0
  324. /package/dist/assets/{optimistic-lifecycle-C2a6IJ7E.js → optimistic-lifecycle-BINTsVFx.js} +0 -0
  325. /package/dist/assets/{pdf-IQXtc7_x.js → pdf-BlwLcQAc.js} +0 -0
  326. /package/dist/assets/{plugin-attribution-DCFEMRUF.js → plugin-attribution-DrwveSW_.js} +0 -0
  327. /package/dist/assets/{plugins-surface-D4i2vqBz.js → plugins-surface-B43Op43l.js} +0 -0
  328. /package/dist/assets/{pointer-RLpjGG7A.js → pointer-BbPfN86L.js} +0 -0
  329. /package/dist/assets/{prechat-DIuViPZk.js → prechat-CeL4a_1i.js} +0 -0
  330. /package/dist/assets/{profile-metadata-h4CTeMKT.js → profile-metadata-BhqRdqUJ.js} +0 -0
  331. /package/dist/assets/{proxy-RtD8704m.js → proxy-D7UPVac3.js} +0 -0
  332. /package/dist/assets/{public-asset-CbDDcomC.js → public-asset-BBVUuTT_.js} +0 -0
  333. /package/dist/assets/{react-query.gen-Mwd5l-vZ.js → react-query.gen-BC3STDmV.js} +0 -0
  334. /package/dist/assets/{research-facts-UIXXE8D6.js → research-facts-B7Ev1zv0.js} +0 -0
  335. /package/dist/assets/{research-onboarding-persistence-CceFfAqE.js → research-onboarding-persistence-51lJoYJ2.js} +0 -0
  336. /package/dist/assets/{sandbox-bridge-DgDrAWv3.js → sandbox-bridge-BxW8HZq_.js} +0 -0
  337. /package/dist/assets/{sdk.gen-DPKrJeho.js → sdk.gen-B5ygTzyg.js} +0 -0
  338. /package/dist/assets/{setting-row-0LXvW7Kh.js → setting-row-BwXKepmJ.js} +0 -0
  339. /package/dist/assets/{status-badge-pill-z1OKPW3B.js → status-badge-pill-wJPMXQk1.js} +0 -0
  340. /package/dist/assets/{theme-preferences-ln8xC5zH.js → theme-preferences-Bb2pPRXa.js} +0 -0
  341. /package/dist/assets/{three-dot-indicator-SJcKW5cG.js → three-dot-indicator-BMvKQ_On.js} +0 -0
  342. /package/dist/assets/{use-bus-subscription-Cu4Y9DQi.js → use-bus-subscription-nUrbz9Mu.js} +0 -0
  343. /package/dist/assets/{use-copy-to-clipboard-DBVpNZOl.js → use-copy-to-clipboard-cF7ZSilD.js} +0 -0
  344. /package/dist/assets/{use-is-mobile-Bz2l7wPL.js → use-is-mobile-BlQuzI5Z.js} +0 -0
  345. /package/dist/assets/{web-7I6Bn0iP.js → web-9Cwi5jnT.js} +0 -0
  346. /package/dist/assets/{web-CBluPLFP.js → web-Bi-BvsRt.js} +0 -0
  347. /package/dist/assets/{web-Cmg3AbZk.js → web-D486_dlv.js} +0 -0
  348. /package/dist/assets/{web-DHVjLzid.js → web-DUb4LJ2M.js} +0 -0
  349. /package/dist/assets/{web-BEpNr5_U.js → web-l9DWMZeA.js} +0 -0
  350. /package/dist/assets/{web-BPyURh2Z.js → web-sr1ba6fP.js} +0 -0
  351. /package/dist/assets/{workflow-status-DXdUkbSd.js → workflow-status-HyIIhMBP.js} +0 -0
  352. /package/dist/assets/{workspace-theme-tokens-J8dqkK9n.js → workspace-theme-tokens-DNNwX-XS.js} +0 -0
  353. /package/dist/assets/{xterm-CdT0HObJ.js → xterm-DgGqTfet.js} +0 -0
  354. /package/dist/assets/{xterm-addon-fit-CPcVj1i5.js → xterm-addon-fit-BVObYBMM.js} +0 -0
@@ -0,0 +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-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};
@@ -0,0 +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-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"./haptics-D9eNTUq-.js";import{t as r}from"./pointer-RLpjGG7A.js";var i=e(t(),1),a=.5,o=100,s=.3,c=.7,l=10,u=.3;function d(e){return Math.min(o,e*s)}function f(e){return e*a}function p(e){return e instanceof Element?e.closest(`input, textarea, select, [contenteditable]:not([contenteditable="false"]), [data-message-text]`)!==null:!1}function m(e,t,n){return!(e>f(t)||n&&e>20)}function h(e,t){return Math.abs(t)>Math.abs(e)*c}function g(e,t){return Math.abs(e)<l&&Math.abs(t)<l?`pending`:h(e,t)||e<=0?`cancel`:`confirm`}function _(e,t){return e<=t?e:t+(e-t)*u}function v(e,t){return Math.min(0,e-t)}function y(e,t){return e>=t}function b(e,t){for(let n=0;n<e.length;n+=1){let r=e[n];if(r&&r.identifier===t)return r}return null}function x({enabled:e,onConfirm:t,onMove:a,onCommit:o,onCancel:s}){let c=(0,i.useRef)(null),l=(0,i.useRef)(e),u=(0,i.useRef)({onConfirm:t,onMove:a,onCommit:o,onCancel:s});(0,i.useLayoutEffect)(()=>{l.current=e,u.current={onConfirm:t,onMove:a,onCommit:o,onCancel:s}}),(0,i.useEffect)(()=>{if(!r())return;let e=()=>d(window.innerWidth),t=e=>{c.current=null,u.current.onCancel(e)},i=e=>{if(!l.current||c.current||e.touches.length!==1)return;let t=e.touches[0];t&&m(t.clientX,window.innerWidth,p(e.target))&&(c.current={touchId:t.identifier,startX:t.clientX,startY:t.clientY,confirmed:!1,hasFiredHaptic:!1})},a=r=>{let i=c.current;if(!i)return;if(r.touches.length>1){t(!1);return}let a=b(r.touches,i.touchId);if(!a)return;let o=a.clientX-i.startX,s=a.clientY-i.startY;if(!i.confirmed){let e=g(o,s);if(e===`pending`)return;if(e===`cancel`){t(!1);return}i.confirmed=!0,u.current.onConfirm?.()}let l=e();if(h(o,s)&&o<l){t(!0);return}o>=l&&!i.hasFiredHaptic&&(i.hasFiredHaptic=!0,n.light()),u.current.onMove(o,l,a.clientX)},o=n=>{let r=c.current;if(!r)return;let i=b(n.changedTouches,r.touchId),a=i?i.clientX-r.startX:0,o=e();r.confirmed&&y(a,o)?(c.current=null,u.current.onCommit(a,o)):r.confirmed?t(!0):t(!1)},s=()=>{t(c.current?.confirmed??!1)};return document.addEventListener(`touchstart`,i,{passive:!0}),document.addEventListener(`touchmove`,a,{passive:!0}),document.addEventListener(`touchend`,o,{passive:!0}),document.addEventListener(`touchcancel`,s,{passive:!0}),()=>{c.current=null,document.removeEventListener(`touchstart`,i),document.removeEventListener(`touchmove`,a),document.removeEventListener(`touchend`,o),document.removeEventListener(`touchcancel`,s)}},[])}export{_ as n,x as r,v as t};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./haptics-DvWjk9Fg.js";import{t as r}from"./pointer-BbPfN86L.js";var i=e(t(),1),a=.5,o=100,s=.3,c=.7,l=10,u=.3;function d(e){return Math.min(o,e*s)}function f(e){return e*a}function p(e){return e instanceof Element?e.closest(`input, textarea, select, [contenteditable]:not([contenteditable="false"]), [data-message-text]`)!==null:!1}function m(e,t,n){return!(e>f(t)||n&&e>20)}function h(e,t){return Math.abs(t)>Math.abs(e)*c}function g(e,t){return Math.abs(e)<l&&Math.abs(t)<l?`pending`:h(e,t)||e<=0?`cancel`:`confirm`}function _(e,t){return e<=t?e:t+(e-t)*u}function v(e,t){return Math.min(0,e-t)}function y(e,t){return e>=t}function b(e,t){for(let n=0;n<e.length;n+=1){let r=e[n];if(r&&r.identifier===t)return r}return null}function x({enabled:e,onConfirm:t,onMove:a,onCommit:o,onCancel:s}){let c=(0,i.useRef)(null),l=(0,i.useRef)(e),u=(0,i.useRef)({onConfirm:t,onMove:a,onCommit:o,onCancel:s});(0,i.useLayoutEffect)(()=>{l.current=e,u.current={onConfirm:t,onMove:a,onCommit:o,onCancel:s}}),(0,i.useEffect)(()=>{if(!r())return;let e=()=>d(window.innerWidth),t=e=>{c.current=null,u.current.onCancel(e)},i=e=>{if(!l.current||c.current||e.touches.length!==1)return;let t=e.touches[0];t&&m(t.clientX,window.innerWidth,p(e.target))&&(c.current={touchId:t.identifier,startX:t.clientX,startY:t.clientY,confirmed:!1,hasFiredHaptic:!1})},a=r=>{let i=c.current;if(!i)return;if(r.touches.length>1){t(!1);return}let a=b(r.touches,i.touchId);if(!a)return;let o=a.clientX-i.startX,s=a.clientY-i.startY;if(!i.confirmed){let e=g(o,s);if(e===`pending`)return;if(e===`cancel`){t(!1);return}i.confirmed=!0,u.current.onConfirm?.()}let l=e();if(h(o,s)&&o<l){t(!0);return}o>=l&&!i.hasFiredHaptic&&(i.hasFiredHaptic=!0,n.light()),u.current.onMove(o,l,a.clientX)},o=n=>{let r=c.current;if(!r)return;let i=b(n.changedTouches,r.touchId),a=i?i.clientX-r.startX:0,o=e();r.confirmed&&y(a,o)?(c.current=null,u.current.onCommit(a,o)):r.confirmed?t(!0):t(!1)},s=()=>{t(c.current?.confirmed??!1)};return document.addEventListener(`touchstart`,i,{passive:!0}),document.addEventListener(`touchmove`,a,{passive:!0}),document.addEventListener(`touchend`,o,{passive:!0}),document.addEventListener(`touchcancel`,s,{passive:!0}),()=>{c.current=null,document.removeEventListener(`touchstart`,i),document.removeEventListener(`touchmove`,a),document.removeEventListener(`touchend`,o),document.removeEventListener(`touchcancel`,s)}},[])}export{_ as n,x as r,v as t};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{n,r}from"./use-edge-swipe-DVeTYbmY.js";import{t as i}from"./edge-swipe-arbiter-store-DyemvsR-.js";var a=e(t(),1),o=200,s=180,c=200,l=.25,u=50;function d(e){e.style.transition=``,e.style.transform=``,e.style.willChange=``,e.style.opacity=``}function f({containerRef:e,onBack:t,enabled:f,navKey:p}){let m=(0,a.useRef)(t);(0,a.useLayoutEffect)(()=>{m.current=t},[t]);let h=(0,a.useRef)(!1),g=(0,a.useRef)(new Set),_=(0,a.useRef)(!1),v=i.use.registerBackOwner(),y=i.use.unregisterBackOwner();(0,a.useEffect)(()=>{if(f)return v(),y},[f,v,y]),(0,a.useEffect)(()=>{_.current=!1;let t=g.current;return()=>{_.current=!0;for(let e of t)clearTimeout(e);t.clear();let n=e.current;n&&d(n)}},[e]);let b=(e,t)=>{let n=setTimeout(()=>{g.current.delete(n),_.current||e()},t);g.current.add(n)},x=(e,t)=>{e.style.transform=t===0?``:`translateX(${t}px)`},S=e=>{e.style.transition=`transform ${o}ms ease-out`,x(e,0);let t=()=>{e.removeEventListener(`transitionend`,t),d(e)};e.addEventListener(`transitionend`,t,{once:!0}),b(()=>d(e),o+u)},C=e=>{e.style.transition=`transform ${s}ms ease-in`,x(e,window.innerWidth);let t=!1,n=()=>{if(t||_.current)return;t=!0,e.removeEventListener(`transitionend`,n);let r=-(window.innerWidth*l);e.style.transition=`none`,e.style.transform=`translateX(${r}px)`,e.style.opacity=`0`,e.offsetWidth,h.current=!0,m.current(),b(()=>{h.current&&(h.current=!1,d(e))},c*2)};e.addEventListener(`transitionend`,n,{once:!0}),b(n,s+u)};r({enabled:f,onConfirm:()=>{let t=e.current;t&&(t.style.transition=`none`,t.style.willChange=`transform`)},onMove:(t,r)=>{let i=e.current;i&&x(i,n(t,r))},onCommit:()=>{let t=e.current;if(!t){m.current();return}C(t)},onCancel:t=>{let n=e.current;n&&(t?S(n):d(n))}}),(0,a.useLayoutEffect)(()=>{if(!h.current)return;h.current=!1;let t=e.current;if(!t)return;let n=!1,r=()=>{n||(n=!0,t.removeEventListener(`transitionend`,r),d(t))};t.style.transition=`transform ${c}ms ease-out, opacity ${c}ms ease-out`,t.style.transform=``,t.style.opacity=``,t.addEventListener(`transitionend`,r,{once:!0});let i=setTimeout(r,c+u);return()=>{clearTimeout(i),t.removeEventListener(`transitionend`,r),d(t)}},[p,e])}export{f as t};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{n,r}from"./use-edge-swipe-Wm9pU2HX.js";import{t as i}from"./edge-swipe-arbiter-store-CQnDi2yf.js";var a=e(t(),1),o=200,s=180,c=200,l=.25,u=50;function d(e){e.style.transition=``,e.style.transform=``,e.style.willChange=``,e.style.opacity=``}function f({containerRef:e,onBack:t,enabled:f,navKey:p}){let m=(0,a.useRef)(t);(0,a.useLayoutEffect)(()=>{m.current=t},[t]);let h=(0,a.useRef)(!1),g=(0,a.useRef)(new Set),_=(0,a.useRef)(!1),v=i.use.registerBackOwner(),y=i.use.unregisterBackOwner();(0,a.useEffect)(()=>{if(f)return v(),y},[f,v,y]),(0,a.useEffect)(()=>{_.current=!1;let t=g.current;return()=>{_.current=!0;for(let e of t)clearTimeout(e);t.clear();let n=e.current;n&&d(n)}},[e]);let b=(e,t)=>{let n=setTimeout(()=>{g.current.delete(n),_.current||e()},t);g.current.add(n)},x=(e,t)=>{e.style.transform=t===0?``:`translateX(${t}px)`},S=e=>{e.style.transition=`transform ${o}ms ease-out`,x(e,0);let t=()=>{e.removeEventListener(`transitionend`,t),d(e)};e.addEventListener(`transitionend`,t,{once:!0}),b(()=>d(e),o+u)},C=e=>{e.style.transition=`transform ${s}ms ease-in`,x(e,window.innerWidth);let t=!1,n=()=>{if(t||_.current)return;t=!0,e.removeEventListener(`transitionend`,n);let r=-(window.innerWidth*l);e.style.transition=`none`,e.style.transform=`translateX(${r}px)`,e.style.opacity=`0`,e.offsetWidth,h.current=!0,m.current(),b(()=>{h.current&&(h.current=!1,d(e))},c*2)};e.addEventListener(`transitionend`,n,{once:!0}),b(n,s+u)};r({enabled:f,onConfirm:()=>{let t=e.current;t&&(t.style.transition=`none`,t.style.willChange=`transform`)},onMove:(t,r)=>{let i=e.current;i&&x(i,n(t,r))},onCommit:()=>{let t=e.current;if(!t){m.current();return}C(t)},onCancel:t=>{let n=e.current;n&&(t?S(n):d(n))}}),(0,a.useLayoutEffect)(()=>{if(!h.current)return;h.current=!1;let t=e.current;if(!t)return;let n=!1,r=()=>{n||(n=!0,t.removeEventListener(`transitionend`,r),d(t))};t.style.transition=`transform ${c}ms ease-out, opacity ${c}ms ease-out`,t.style.transform=``,t.style.opacity=``,t.addEventListener(`transitionend`,r,{once:!0});let i=setTimeout(r,c+u);return()=>{clearTimeout(i),t.removeEventListener(`transitionend`,r),d(t)}},[p,e])}export{f 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{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-D89CNeuT.js";import{n as g,t as _}from"./panel-item-CrtoJCrd.js";import{n as v}from"./resolved-assistants-store-C-PdxK8f.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-vE-2hncW.js";import{t as S}from"./conversation-store-bshB7nDP.js";import{r as C}from"./viewer-store-BDpZVbcr.js";import{n as w}from"./use-is-mobile-Bz2l7wPL.js";import{t as T}from"./misc-DckBb5zz.js";import{r as E,t as D}from"./edit-chat-session-yPtopwB6.js";import{n as O,t as k}from"./sandbox-bridge-DgDrAWv3.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{s as t}from"./device-settings-DXp9L4iB.js";import{t as n}from"./react-BFJW0bSv.js";import{t as r}from"./use-bus-subscription-Cu4Y9DQi.js";import{t as i}from"./effective-timezone-qiooajmO.js";var a=e(n(),1);function o(){let[e,n]=(0,a.useState)(i),o=(0,a.useCallback)(()=>{n(e=>{let t=i();return t===e?e:t})},[]);return r(`app.resume`,o),(0,a.useEffect)(()=>{window.addEventListener(`focus`,o);let e=t(`timezone`,o);return()=>{window.removeEventListener(`focus`,o),e()}},[o]),e}export{o as t};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{s as t}from"./device-settings-DXp9L4iB.js";import{t as n}from"./react-BFJW0bSv.js";import{t as r}from"./use-bus-subscription-nUrbz9Mu.js";import{t as i}from"./effective-timezone-CmcoXrio.js";var a=e(n(),1);function o(){let[e,n]=(0,a.useState)(i),o=(0,a.useCallback)(()=>{n(e=>{let t=i();return t===e?e:t})},[]);return r(`app.resume`,o),(0,a.useEffect)(()=>{window.addEventListener(`focus`,o);let e=t(`timezone`,o);return()=>{window.removeEventListener(`focus`,o),e()}},[o]),e}export{o as t};
@@ -0,0 +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-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-BY0BDJjm.js";import{t as d}from"./triangle-alert-CQfiAg_t.js";import{t as f}from"./notice-BMK7xqUw.js";import"./src-D89CNeuT.js";import{t as p}from"./modal-BR4CUFBd.js";import{i as m,t as h}from"./api-XwdNiVE9.js";import{i as g,r as _}from"./typed-storage-9Sn8tkE7.js";import{t as v}from"./client-feature-flag-store-oTfL8Oiz.js";import{n as y,r as b,t as x}from"./theme-preferences-ln8xC5zH.js";import{t as S}from"./use-bus-subscription-Cu4Y9DQi.js";import{o as C}from"./funnel-events-CK938pi2.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};
@@ -0,0 +1 @@
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};
@@ -0,0 +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-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};
@@ -0,0 +1 @@
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};
@@ -0,0 +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-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{c as n,l as r,u as i}from"./proxy-RtD8704m.js";var a=e(t(),1);function o(){!r.current&&n();let[e]=(0,a.useState)(i.current);return e}export{o as t};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{c as n,l as r,u as i}from"./proxy-D7UPVac3.js";var a=e(t(),1);function o(){!r.current&&n();let[e]=(0,a.useState)(i.current);return e}export{o 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-DPKrJeho.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. Go back to step 2 to enter it.`);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-D89CNeuT.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-C1CAcW7T.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-vE-2hncW.js";import{t as l}from"./misc-DckBb5zz.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};
@@ -0,0 +1 @@
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{r as t}from"./capture-error-Bj8_eutd.js";import{t as n}from"./react-BFJW0bSv.js";import{t as r}from"./button-Dy5001j6.js";import{n as i}from"./QueryClientProvider-CMu7CkQU.js";import{t as a}from"./useQuery-Bz-fbQ-m.js";import{t as o}from"./jsx-runtime-D3ZM-ToX.js";import{t as s}from"./typography-DEI9Ra9z.js";import{t as c}from"./chevron-right-HU6H84S0.js";import{t as l}from"./loader-circle-XREx3i4W.js";import{A as u,M as d}from"./src-te3YTBG-.js";import{t as f}from"./tag-NXcyiTkK.js";import{n as p,t as m}from"./input-hw3el2GJ.js";import{t as h}from"./toggle-lfnhEAcN.js";import{t as g}from"./modal-BR4CUFBd.js";import{n as _}from"./toast-LgLp4obE.js";import{t as ee}from"./dropdown-BCfnSdIZ.js";import{t as v}from"./is-electron-m5eeGBnd.js";import{Gt as y,Ht as b,Kt as x,Vt as S,ar as te,or as C}from"./sdk.gen-BHZ0fJla.js";import{H as w,_t as T,c as E,gt as D}from"./react-query.gen-C5c1Acuq.js";import{t as O}from"./assistant-identity-store-DIyVo8LV.js";import{i as k,r as A,t as j}from"./utils-CnB60ZJN.js";import{n as M}from"./use-platform-gate-C65D14xY.js";import{r as N}from"./use-is-org-ready-C5xlYywh.js";var P=e(n(),1),F={anthropic:[{id:`claude-fable-5`,displayName:`Claude Fable 5`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,adaptiveThinkingOnly:!0,longContextPricingThresholdTokens:2e5},{id:`claude-opus-5`,displayName:`Claude Opus 5`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`claude-opus-4-8`,displayName:`Claude Opus 4.8`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`claude-opus-4-7`,displayName:`Claude Opus 4.7`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`claude-opus-4-6`,displayName:`Claude Opus 4.6`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`claude-sonnet-5`,displayName:`Claude Sonnet 5`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`claude-sonnet-4-6`,displayName:`Claude Sonnet 4.6`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:64e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`claude-sonnet-4-5-20250929`,displayName:`Claude Sonnet 4.5`,contextWindowTokens:2e5,defaultContextWindowTokens:2e5,maxOutputTokens:64e3,supportsThinking:!0},{id:`claude-opus-4-5-20251101`,displayName:`Claude Opus 4.5`,contextWindowTokens:2e5,defaultContextWindowTokens:2e5,maxOutputTokens:64e3,supportsThinking:!0},{id:`claude-haiku-4-5-20251001`,displayName:`Claude Haiku 4.5`,contextWindowTokens:2e5,defaultContextWindowTokens:2e5,maxOutputTokens:64e3,supportsThinking:!0}],openai:[{id:`gpt-5.6-sol`,displayName:`GPT-5.6 Sol`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:272e3},{id:`gpt-5.6-terra`,displayName:`GPT-5.6 Terra`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:272e3},{id:`gpt-5.6-luna`,displayName:`GPT-5.6 Luna`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:272e3},{id:`gpt-5.5`,displayName:`GPT-5.5`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:272e3},{id:`gpt-5.5-pro`,displayName:`GPT-5.5 Pro`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:272e3},{id:`gpt-5.4`,displayName:`GPT-5.4`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:272e3},{id:`gpt-5.2`,displayName:`GPT-5.2`,contextWindowTokens:4e5,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0},{id:`gpt-5.4-mini`,displayName:`GPT-5.4 Mini`,contextWindowTokens:4e5,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0},{id:`gpt-5.4-nano`,displayName:`GPT-5.4 Nano`,contextWindowTokens:4e5,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0}],gemini:[{id:`gemini-3.6-flash`,displayName:`Gemini 3.6 Flash`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:65536,supportsThinking:!0},{id:`gemini-3.5-flash`,displayName:`Gemini 3.5 Flash`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:65536,supportsThinking:!0},{id:`gemini-3.5-flash-lite`,displayName:`Gemini 3.5 Flash-Lite`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:65536,supportsThinking:!0},{id:`gemini-3.1-pro-preview`,displayName:`Gemini 3.1 Pro Preview`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:65536,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`gemini-3.1-pro-preview-customtools`,displayName:`Gemini 3.1 Pro Preview (Custom Tools)`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:65536,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`gemini-3-flash-preview`,displayName:`Gemini 3 Flash Preview`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:65536,supportsThinking:!0},{id:`gemini-3.1-flash-lite-preview`,displayName:`Gemini 3.1 Flash-Lite Preview`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:65536,supportsThinking:!0},{id:`gemini-3.1-flash-lite`,displayName:`Gemini 3.1 Flash-Lite`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:65536,supportsThinking:!0},{id:`gemini-2.5-flash`,displayName:`Gemini 2.5 Flash`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:65536,supportsThinking:!0},{id:`gemini-2.5-flash-lite`,displayName:`Gemini 2.5 Flash Lite`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:65536},{id:`gemini-2.5-pro`,displayName:`Gemini 2.5 Pro`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:65536,supportsThinking:!0,longContextPricingThresholdTokens:2e5}],ollama:[{id:`llama3.2`,displayName:`Llama 3.2`,contextWindowTokens:128e3,defaultContextWindowTokens:128e3,maxOutputTokens:4096},{id:`mistral`,displayName:`Mistral`,contextWindowTokens:32768,defaultContextWindowTokens:32768,maxOutputTokens:4096}],fireworks:[{id:`accounts/fireworks/models/kimi-k3`,displayName:`Kimi K3`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:131072,supportsThinking:!0,adaptiveThinkingOnly:!0},{id:`accounts/fireworks/models/kimi-k2p6`,displayName:`Kimi K2.6`,contextWindowTokens:262144,defaultContextWindowTokens:2e5,maxOutputTokens:32768,supportsThinking:!0},{id:`accounts/fireworks/models/glm-5p2`,displayName:`GLM 5.2`,contextWindowTokens:104e4,defaultContextWindowTokens:2e5,maxOutputTokens:131072,supportsThinking:!0},{id:`accounts/fireworks/models/kimi-k2p5`,displayName:`Kimi K2.5`,contextWindowTokens:256e3,defaultContextWindowTokens:2e5,maxOutputTokens:32768},{id:`accounts/fireworks/models/minimax-m3`,displayName:`MiniMax M3`,contextWindowTokens:524288,defaultContextWindowTokens:2e5,maxOutputTokens:512e3,supportsThinking:!0},{id:`accounts/fireworks/models/minimax-m2p7`,displayName:`MiniMax M2.7`,contextWindowTokens:196608,defaultContextWindowTokens:196608,maxOutputTokens:25e3},{id:`accounts/fireworks/models/minimax-m2p5`,displayName:`MiniMax M2.5`,contextWindowTokens:196608,defaultContextWindowTokens:196608,maxOutputTokens:25e3},{id:`accounts/fireworks/models/deepseek-v4-pro`,displayName:`DeepSeek V4 Pro`,contextWindowTokens:104e4,defaultContextWindowTokens:2e5,maxOutputTokens:131072,supportsThinking:!0},{id:`accounts/fireworks/models/deepseek-v4-flash`,displayName:`DeepSeek V4 Flash`,contextWindowTokens:104e4,defaultContextWindowTokens:2e5,maxOutputTokens:131072,supportsThinking:!0}],together:[{id:`MiniMaxAI/MiniMax-M3`,displayName:`MiniMax M3`,contextWindowTokens:524288,defaultContextWindowTokens:2e5,maxOutputTokens:512e3,supportsThinking:!0}],openrouter:[{id:`anthropic/claude-fable-5`,displayName:`Claude Fable 5`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,adaptiveThinkingOnly:!0,longContextPricingThresholdTokens:2e5},{id:`anthropic/claude-opus-5`,displayName:`Claude Opus 5`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`anthropic/claude-opus-4.8`,displayName:`Claude Opus 4.8`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`anthropic/claude-opus-4.7`,displayName:`Claude Opus 4.7`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`anthropic/claude-opus-4.6`,displayName:`Claude Opus 4.6`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`anthropic/claude-sonnet-5`,displayName:`Claude Sonnet 5`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`anthropic/claude-sonnet-4.6`,displayName:`Claude Sonnet 4.6`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:64e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`anthropic/claude-sonnet-4.5`,displayName:`Claude Sonnet 4.5`,contextWindowTokens:2e5,defaultContextWindowTokens:2e5,maxOutputTokens:64e3,supportsThinking:!0},{id:`anthropic/claude-opus-4.5`,displayName:`Claude Opus 4.5`,contextWindowTokens:2e5,defaultContextWindowTokens:2e5,maxOutputTokens:64e3,supportsThinking:!0},{id:`anthropic/claude-haiku-4.5`,displayName:`Claude Haiku 4.5`,contextWindowTokens:2e5,defaultContextWindowTokens:2e5,maxOutputTokens:64e3,supportsThinking:!0},{id:`openai/gpt-5.6-sol`,displayName:`GPT-5.6 Sol`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:272e3},{id:`openai/gpt-5.6-sol-pro`,displayName:`GPT-5.6 Sol Pro`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:272e3},{id:`openai/gpt-5.6-terra`,displayName:`GPT-5.6 Terra`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:272e3},{id:`openai/gpt-5.6-terra-pro`,displayName:`GPT-5.6 Terra Pro`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:272e3},{id:`openai/gpt-5.6-luna`,displayName:`GPT-5.6 Luna`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:272e3},{id:`openai/gpt-5.6-luna-pro`,displayName:`GPT-5.6 Luna Pro`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:272e3},{id:`x-ai/grok-4.5`,displayName:`Grok 4.5`,contextWindowTokens:5e5,defaultContextWindowTokens:2e5,maxOutputTokens:3e4,supportsThinking:!0},{id:`x-ai/grok-4.3`,displayName:`Grok 4.3`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:16e3,supportsThinking:!0},{id:`x-ai/grok-4.20`,displayName:`Grok 4.20`,contextWindowTokens:2e6,defaultContextWindowTokens:2e5,maxOutputTokens:16e3,supportsThinking:!0},{id:`deepseek/deepseek-r1-0528`,displayName:`DeepSeek R1`,contextWindowTokens:163840,defaultContextWindowTokens:163840,maxOutputTokens:32e3,supportsThinking:!0},{id:`deepseek/deepseek-chat-v3-0324`,displayName:`DeepSeek V3`,contextWindowTokens:163840,defaultContextWindowTokens:163840,maxOutputTokens:32e3},{id:`deepseek/deepseek-v4-pro`,displayName:`DeepSeek V4 Pro`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:384e3,supportsThinking:!0},{id:`deepseek/deepseek-v4-flash`,displayName:`DeepSeek V4 Flash`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:384e3,supportsThinking:!0},{id:`deepseek/deepseek-v3.2-speciale`,displayName:`DeepSeek V3.2 Speciale`,contextWindowTokens:163840,defaultContextWindowTokens:163840,maxOutputTokens:163840,supportsThinking:!0},{id:`qwen/qwen3.5-plus-02-15`,displayName:`Qwen 3.5 Plus`,contextWindowTokens:131072,defaultContextWindowTokens:131072,maxOutputTokens:8192,supportsThinking:!0},{id:`qwen/qwen3.5-397b-a17b`,displayName:`Qwen 3.5 397B`,contextWindowTokens:131072,defaultContextWindowTokens:131072,maxOutputTokens:8192,supportsThinking:!0},{id:`qwen/qwen3.5-flash-02-23`,displayName:`Qwen 3.5 Flash`,contextWindowTokens:131072,defaultContextWindowTokens:131072,maxOutputTokens:8192},{id:`qwen/qwen3-coder-next`,displayName:`Qwen 3 Coder`,contextWindowTokens:131072,defaultContextWindowTokens:131072,maxOutputTokens:8192},{id:`moonshotai/kimi-k3`,displayName:`Kimi K3`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:131072,supportsThinking:!0,adaptiveThinkingOnly:!0},{id:`moonshotai/kimi-k2.6`,displayName:`Kimi K2.6`,contextWindowTokens:262144,defaultContextWindowTokens:2e5,maxOutputTokens:32768,supportsThinking:!0},{id:`moonshotai/kimi-k2.5`,displayName:`Kimi K2.5`,contextWindowTokens:256e3,defaultContextWindowTokens:2e5,maxOutputTokens:32768},{id:`minimax/minimax-m3`,displayName:`MiniMax M3`,contextWindowTokens:524288,defaultContextWindowTokens:2e5,maxOutputTokens:512e3,supportsThinking:!0},{id:`minimax/minimax-m2.7`,displayName:`MiniMax M2.7`,contextWindowTokens:196608,defaultContextWindowTokens:196608,maxOutputTokens:131072,supportsThinking:!0},{id:`minimax/minimax-m2.5`,displayName:`MiniMax M2.5`,contextWindowTokens:196608,defaultContextWindowTokens:196608,maxOutputTokens:196608,supportsThinking:!0},{id:`minimax/minimax-m2.1`,displayName:`MiniMax M2.1`,contextWindowTokens:196608,defaultContextWindowTokens:196608,maxOutputTokens:196608,supportsThinking:!0},{id:`minimax/minimax-m2`,displayName:`MiniMax M2`,contextWindowTokens:196608,defaultContextWindowTokens:196608,maxOutputTokens:196608,supportsThinking:!0},{id:`minimax/minimax-m2-her`,displayName:`MiniMax M2-her`,contextWindowTokens:65536,defaultContextWindowTokens:65536,maxOutputTokens:2048},{id:`minimax/minimax-m1`,displayName:`MiniMax M1`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:4e4,supportsThinking:!0},{id:`minimax/minimax-01`,displayName:`MiniMax-01`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:1e6},{id:`z-ai/glm-5.2`,displayName:`GLM-5.2`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:131072,supportsThinking:!0},{id:`mistralai/mistral-medium-3`,displayName:`Mistral Medium 3`,contextWindowTokens:131072,defaultContextWindowTokens:131072,maxOutputTokens:16e3},{id:`mistralai/mistral-small-2603`,displayName:`Mistral Small 4`,contextWindowTokens:131072,defaultContextWindowTokens:131072,maxOutputTokens:16e3},{id:`mistralai/devstral-2512`,displayName:`Devstral 2`,contextWindowTokens:131072,defaultContextWindowTokens:131072,maxOutputTokens:16e3},{id:`meta-llama/llama-4-maverick`,displayName:`Llama 4 Maverick`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:16e3},{id:`meta-llama/llama-4-scout`,displayName:`Llama 4 Scout`,contextWindowTokens:327680,defaultContextWindowTokens:2e5,maxOutputTokens:16e3},{id:`amazon/nova-pro-v1`,displayName:`Amazon Nova Pro`,contextWindowTokens:3e5,defaultContextWindowTokens:2e5,maxOutputTokens:5e3},{id:`openrouter/owl-alpha`,displayName:`Owl Alpha`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:262144}],"vercel-ai-gateway":[{id:`anthropic/claude-fable-5`,displayName:`Claude Fable 5`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,adaptiveThinkingOnly:!0,longContextPricingThresholdTokens:2e5},{id:`anthropic/claude-opus-5`,displayName:`Claude Opus 5`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`anthropic/claude-opus-4.8`,displayName:`Claude Opus 4.8`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`anthropic/claude-opus-4.6`,displayName:`Claude Opus 4.6`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`anthropic/claude-sonnet-5`,displayName:`Claude Sonnet 5`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`anthropic/claude-sonnet-4.6`,displayName:`Claude Sonnet 4.6`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:64e3,supportsThinking:!0,longContextPricingThresholdTokens:2e5},{id:`anthropic/claude-haiku-4.5`,displayName:`Claude Haiku 4.5`,contextWindowTokens:2e5,defaultContextWindowTokens:2e5,maxOutputTokens:64e3,supportsThinking:!0},{id:`openai/gpt-5.5`,displayName:`GPT-5.5`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:272e3},{id:`openai/gpt-5.5-pro`,displayName:`GPT-5.5 Pro`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:128e3,supportsThinking:!0,longContextPricingThresholdTokens:272e3},{id:`xai/grok-4.3`,displayName:`Grok 4.3`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:16e3,supportsThinking:!0},{id:`moonshotai/kimi-k2.6`,displayName:`Kimi K2.6`,contextWindowTokens:262144,defaultContextWindowTokens:2e5,maxOutputTokens:32768,supportsThinking:!0},{id:`deepseek/deepseek-v4-flash`,displayName:`DeepSeek V4 Flash`,contextWindowTokens:1048576,defaultContextWindowTokens:2e5,maxOutputTokens:384e3,supportsThinking:!0}],minimax:[{id:`MiniMax-M3`,displayName:`MiniMax M3`,contextWindowTokens:1e6,defaultContextWindowTokens:2e5,maxOutputTokens:512e3,supportsThinking:!0},{id:`MiniMax-M2.7`,displayName:`MiniMax M2.7`,contextWindowTokens:2e5,defaultContextWindowTokens:2e5,maxOutputTokens:16384,supportsThinking:!0}],atlascloud:[{id:`deepseek-ai/deepseek-v4-pro`,displayName:`DeepSeek V4 Pro`,contextWindowTokens:128e3,defaultContextWindowTokens:128e3,maxOutputTokens:8192,supportsThinking:!0}],litellm:[],baseten:[{id:`thinkingmachines/inkling`,displayName:`Inkling`,contextWindowTokens:262144,defaultContextWindowTokens:2e5,maxOutputTokens:32768,supportsThinking:!0}],poolside:[{id:`poolside/laguna-s-2.1`,displayName:`Laguna S 2.1`,contextWindowTokens:105e4,defaultContextWindowTokens:2e5,maxOutputTokens:131072,supportsThinking:!0},{id:`poolside/laguna-xs-2.1`,displayName:`Laguna XS 2.1`,contextWindowTokens:262144,defaultContextWindowTokens:2e5,maxOutputTokens:32768,supportsThinking:!0}],"openai-compatible":[]},I={anthropic:`claude-opus-4-8`,openai:`gpt-5.5`,gemini:`gemini-2.5-flash`,ollama:`llama3.2`,fireworks:`accounts/fireworks/models/kimi-k2p5`,together:`MiniMaxAI/MiniMax-M3`,openrouter:`x-ai/grok-4.20`,"vercel-ai-gateway":`anthropic/claude-sonnet-4.6`,minimax:`MiniMax-M2.7`,atlascloud:`deepseek-ai/deepseek-v4-pro`,litellm:``,baseten:`thinkingmachines/inkling`,poolside:`poolside/laguna-s-2.1`,"openai-compatible":``},L={vellum:`Vellum`,chatgpt:`ChatGPT Subscription`,anthropic:`Anthropic`,openai:`OpenAI`,gemini:`Google Gemini`,ollama:`Ollama`,fireworks:`Fireworks`,together:`Together AI`,openrouter:`OpenRouter`,"vercel-ai-gateway":`Vercel AI Gateway`,"openai-compatible":`OpenAI-compatible`,minimax:`MiniMax`,atlascloud:`Atlas Cloud`,litellm:`LiteLLM`,baseten:`Baseten`,poolside:`Poolside`};F.anthropic;var R=[`anthropic`,`openai`,`gemini`,`fireworks`,`together`],z=(()=>{let e=new Set,t=new Set,n=[];for(let r of R)for(let i of F[r])e.has(i.id)||t.has(i.displayName)||(e.add(i.id),t.add(i.displayName),n.push(i));return n})();function ne(e){let t=e.indexOf(`/`);if(t<=0)return null;let n=e.slice(0,t),r=R.find(e=>e===n),i=e.slice(t+1);return r&&i?{provider:r,model:i}:null}function re(e){let t=ne(e);return t?t.provider:R.find(t=>F[t].some(t=>t.id===e))}function B(e){return e===`vellum`?z:F[e]??[]}function V(e){return I[e]}var ie=`openai-compatible`,ae=[`anthropic`,`openai`,`fireworks`,`together`,`openrouter`,`vercel-ai-gateway`,`gemini`,`ollama`,`minimax`,`atlascloud`,`litellm`,`baseten`,`poolside`],oe=`vellum`,se=new Set(R),ce=1e3,H=1e3,U=[`default`,`firecrawl`],W={default:`Vellum`,firecrawl:`Firecrawl`},le={firecrawl:`fc-...`},ue={firecrawl:`vellum:ai:firecrawlKey`},de=new Set([`firecrawl`]),fe=[`vellum`,`inference-provider-native`,`perplexity`,`brave`,`tavily`,`firecrawl`],G={vellum:`Vellum`,"inference-provider-native":`Provider Native`,perplexity:`Perplexity`,brave:`Brave`,tavily:`Tavily`,firecrawl:`Firecrawl`},pe={perplexity:`pplx-...`,brave:`BSA...`,tavily:`tvly-...`,firecrawl:`fc-...`},me={perplexity:`vellum:ai:perplexityKey`,brave:`vellum:ai:braveKey`,tavily:`vellum:ai:tavilyKey`,firecrawl:`vellum:ai:firecrawlKey`},K=new Set([`perplexity`,`brave`,`tavily`,`firecrawl`]),he=new Set([`managed`,`your-own`]);function ge(e,t){return he.has(e)?e:t}function _e(e,t){let n=t.filter(t=>t in e).map(t=>({name:t,...e[t]})),r=new Set(t),i=Object.entries(e).filter(([e])=>!r.has(e)).map(([e,t])=>({name:e,...t}));return[...n,...i]}function ve(e){if(e&&typeof e==`object`&&`success`in e&&e.success===!1)throw Error(`Failed to provision API key: server returned success=false`)}function ye(e,t,n=ce){return Math.min(Number.isFinite(e)?Math.max(Math.round(e),n):n,t)}function be(e,t){return e.toLocaleString(`en-US`,{maximumFractionDigits:t,minimumFractionDigits:0})}function xe(e){let t=Array.isArray(e)?e[0]??0:e,n=Math.round(t);return Math.abs(n)>=1e6?`${be(n/1e6,2)}M`:Math.abs(n)>=1e3?`${be(n/1e3,1)}K`:n.toLocaleString(`en-US`)}function Se(e){return me[e]??``}function Ce(e){return ue[e]??``}var we={maxTokens:!1,contextWindow:!1,effort:!1,speed:!1,verbosity:!1,temperature:!1,topP:!1,thinking:!1,thinkingLevel:!1};function Te(e){return e===`gpt-5`||e.startsWith(`gpt-5.`)||e.startsWith(`gpt-5-`)}function q(e){return e.startsWith(`anthropic/`)}function Ee(e,t){let n=t.toLowerCase();return B(e).find(e=>e.id.toLowerCase()===n)}function De(e,t){return Ee(e,t)?.adaptiveThinkingOnly===!0}function Oe(e){return q(e)||e.startsWith(`x-ai/grok-4`)||e.startsWith(`deepseek/deepseek-r1`)||e===`qwen/qwen3.5-plus-02-15`||e===`qwen/qwen3.5-397b-a17b`||e===`moonshotai/kimi-k2.6`}var ke=[`minimal`,`low`,`medium`,`high`],Ae=[`low`,`medium`,`high`];function je(e){return/^gemini-3.*pro/.test(e)}var Me=new Set(ke);function Ne(e){return typeof e==`string`&&Me.has(e)}function Pe(e){return je(e.toLowerCase())?Ae:ke}function Fe(e,t){let n=Ee(e,t);return n?.supportsThinking===void 0?e===`anthropic`?!0:e===`openrouter`?Oe(t):e===`vercel-ai-gateway`?q(t):!1:n.supportsThinking}function Ie(e,t,n){return e===`anthropic`?!t.includes(`haiku`)&&n:e===`openai`?Te(t):e===`openrouter`||e===`vercel-ai-gateway`?q(t)?!t.includes(`haiku`)&&n:n:e===`fireworks`||e===`together`||e===`baseten`?n:!1}var Le=new Set([`openai-compatible`,`fireworks`,`minimax`,`atlascloud`,`baseten`,`ollama`,`openrouter`,`together`,`vercel-ai-gateway`]);function Re(e,t){return t||Le.has(e)}function ze(e,t){if(!e||!t)return we;let n=e.toLowerCase(),r=t.toLowerCase(),i=n===`anthropic`||(n===`openrouter`||n===`vercel-ai-gateway`)&&q(r),a=Fe(n,r);return{maxTokens:!0,contextWindow:!0,effort:Ie(n,r,a),speed:n===`anthropic`&&r.includes(`opus`),verbosity:n===`openai`&&Te(r),temperature:i,topP:Re(n,i),thinking:(n===`anthropic`||n===`openrouter`||n===`vercel-ai-gateway`&&q(r))&&a&&!De(n,r),thinkingLevel:n===`gemini`&&a}}var J=`0.10.8`;function Y(){return A(J)}var X=o(),Z=[`inherit`,`none`,`low`,`medium`,`high`,`xhigh`,`max`],Be=[`standard`,`fast`],Ve=[`low`,`medium`,`high`],He=`default`,Ue=64e3;function We({label:e,value:t,onChange:n,defaultValue:i,max:a,disabled:o}){let s=t===null,c=t??i,[l,d]=(0,P.useState)(s?``:String(t)),[f,p]=(0,P.useState)(t);t!==f&&(p(t),d(t===null?``:String(t)));function h(e){d(e);let t=e.trim();if(t===``){n(null);return}let r=Number(t);Number.isFinite(r)&&r>=1e3&&r<=a&&n(r)}function g(e){let r=e.trim();if(r===``){n(null);return}let i=Number(r);if(!Number.isFinite(i)){d(t===null?``:String(t));return}let o=ye(i,a);d(String(o)),n(o)}return(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,X.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:e}),s?(0,X.jsxs)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:[`Default · `,xe(i)]}):null]}),(0,X.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,X.jsx)(`div`,{className:`flex-1`,children:(0,X.jsx)(u,{value:c,onValueChange:e=>n(typeof e==`number`?e:e[0]),min:ce,max:a,step:H,disabled:o,"aria-label":e})}),(0,X.jsx)(m,{type:`number`,inputMode:`numeric`,value:l,placeholder:String(i),onChange:e=>h(e.target.value),onBlur:e=>g(e.target.value),onKeyDown:e=>{e.key===`Enter`&&g(e.currentTarget.value)},min:ce,max:a,step:H,disabled:o,"aria-label":`${e} (tokens)`,wrapperClassName:`w-32 shrink-0`,className:`text-right tabular-nums`}),(0,X.jsx)(r,{variant:`ghost`,size:`compact`,onClick:()=>n(null),disabled:o||s,children:`Reset`})]})]})}function Ge({visibility:e,isReadOnly:t,model:n,selectedModel:r,defaultMaxOutputTokens:i,defaultContextWindowMaxInputTokens:a,maxTokens:o,onMaxTokensChange:s,contextWindowMaxInputTokens:c,onContextWindowChange:l,effort:f,onEffortChange:p,speed:m,onSpeedChange:g,verbosity:_,onVerbosityChange:ee,temperatureEnabled:v,onTemperatureEnabledChange:y,temperature:b,onTemperatureChange:x,topPEnabled:S,onTopPEnabledChange:te,topP:C,onTopPChange:w,thinkingEnabled:T,onThinkingEnabledChange:E,thinkingStreamThinking:D,onThinkingStreamThinkingChange:O,thinkingLevel:k,onThinkingLevelChange:A}){let j=Y(),M=r?.maxOutputTokens??Ue,N=r?.contextWindowTokens??2e5,P=Math.min(i??Ue,M),F=Math.min(a??2e5,N);return(0,X.jsxs)(`div`,{className:`space-y-4`,children:[!t&&j&&(0,X.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Fields left at their default are saved with the values shown and won’t change if the assistant defaults change later.`}),e.maxTokens&&(0,X.jsx)(We,{label:`Max Output Tokens`,value:o,onChange:s,defaultValue:P,max:M,disabled:t}),e.contextWindow&&(0,X.jsx)(We,{label:`Context Window`,value:c,onChange:l,defaultValue:F,max:N,disabled:t||!r}),e.effort&&(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Effort`}),(0,X.jsx)(d,{items:Z.map(e=>({value:e,label:e===`inherit`?`default`:e,disabled:t})),value:f,onChange:e=>p(e),ariaLabel:`Effort`})]}),e.speed&&(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Speed`}),(0,X.jsx)(d,{items:Be.map(e=>({value:e,label:e,disabled:t})),value:m,onChange:e=>g(e),ariaLabel:`Speed`})]}),e.verbosity&&(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Verbosity`}),(0,X.jsx)(d,{items:Ve.map(e=>({value:e,label:e,disabled:t})),value:_,onChange:e=>ee(e),ariaLabel:`Verbosity`})]}),e.temperature&&(0,X.jsxs)(`div`,{className:`space-y-2`,children:[(0,X.jsx)(h,{checked:v,onChange:e=>y(e),label:`Temperature`,disabled:t}),v&&(0,X.jsx)(`div`,{className:`flex items-center justify-between`,children:(0,X.jsx)(`div`,{className:`flex-1`,children:(0,X.jsx)(u,{value:b,onValueChange:e=>x(typeof e==`number`?e:e[0]),min:0,max:2,step:.01,disabled:t,showValue:!0,formatValue:e=>typeof e==`number`?e.toFixed(2):String(e)})})})]}),e.topP&&(0,X.jsxs)(`div`,{className:`space-y-2`,children:[(0,X.jsx)(h,{checked:S,onChange:e=>te(e),label:`Top P`,disabled:t}),S&&(0,X.jsx)(`div`,{className:`flex items-center justify-between`,children:(0,X.jsx)(`div`,{className:`flex-1`,children:(0,X.jsx)(u,{value:C,onValueChange:e=>w(typeof e==`number`?e:e[0]),min:0,max:1,step:.01,disabled:t,showValue:!0,formatValue:e=>typeof e==`number`?e.toFixed(2):String(e)})})})]}),e.thinking&&(0,X.jsxs)(`div`,{className:`space-y-3`,children:[(0,X.jsx)(h,{checked:T,onChange:e=>{E(e),e||O(!1)},label:`Enable extended thinking`,disabled:t}),T&&(0,X.jsx)(`div`,{className:`pl-4`,children:(0,X.jsx)(h,{checked:D,onChange:e=>O(e),label:`Stream thinking tokens`,disabled:t})})]}),e.thinkingLevel&&(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsxs)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:[`Thinking level`,` `,(0,X.jsx)(`span`,{className:`text-[var(--content-disabled)]`,children:`(default = inherit)`})]}),(0,X.jsx)(d,{items:[`default`,...Pe(n)].map(e=>({value:e,label:`${e}`,disabled:t})),value:k,onChange:A,ariaLabel:`Thinking level`})]})]})}var Ke=[`anthropic`,`openai`,`gemini`,`ollama`,`fireworks`,`together`,`openrouter`,`vercel-ai-gateway`,`minimax`,`atlascloud`,`litellm`,`baseten`,`poolside`,`openai-compatible`];function qe(e){let t=e.split(`/`);return t.length<3||t[0]!==`credential`?null:{service:t[1],field:t.slice(2).join(`/`)}}function Je(e){switch(e){case 409:return`A provider with these settings already exists.`;case 404:return`Provider not found. It may have been removed.`;case 400:return`Invalid configuration. Check the provider settings.`;default:return`Failed to save provider. Please try again.`}}function Q(e,t){if(e!==400)return;let n=t?.error?.message;return typeof n==`string`&&n.length>0?n:void 0}function Ye(e){return e.label?e.label:e.auth.type===`oauth_subscription`?L.chatgpt:L[e.provider]??e.provider}var Xe=new Set([`ollama`]);function Ze(e,t){return!Xe.has(e)||t}function Qe(e){return ae.filter(t=>Ze(t,e))}function $e(e){return Ke.filter(t=>Ze(t,e))}function et(e){return Object.keys(F).filter(t=>Ze(t,e))}function tt(){return Qe(M())}function nt(){return $e(M())}function rt(){return et(M())}function it(e,t){let n=[...new Set(e.map(e=>e.provider))].filter(e=>Ze(e,t)),r=[];return n.includes(`vellum`)&&r.push(oe),r.push(...Ke.filter(e=>n.includes(e)),...n.filter(e=>e!==`vellum`&&!Ke.includes(e))),r}var $=`${ie}::`;function at(e){return`${$}${e}`}function ot(e){return e.startsWith($)?e.slice($.length):null}function st(e,t,n){let r=[];for(let i of e){if(i===`vellum`){r.push({value:i,label:n(i),meta:`Managed`});continue}if(i!==`openai-compatible`){r.push({value:i,label:n(i)});continue}for(let e of t)e.provider===`openai-compatible`&&r.push({value:at(e.name),label:e.label&&e.label.trim()!==``?e.label:e.name,meta:`Custom`})}return r}var ct=new Set([`gpt-5.5`,`gpt-5.4`,`gpt-5.4-mini`,`gpt-5.3-codex`]);function lt(e){return(e??[]).map(e=>({id:e.id,displayName:e.displayName??e.id}))}function ut(e,t,n){return!e||B(e).length===0?!1:(t?n.find(e=>e.name===t):void 0)?.auth.type===`oauth_subscription`?!0:!t&&n.length>0&&n.every(e=>e.auth.type===`oauth_subscription`)}var dt={"no-provider":{placeholder:`Select a provider first`,hint:null},"configure-connection":{placeholder:`Configure models on connection`,hint:`No models available. Configure models on the provider connection first.`},"unknown-to-catalog":{placeholder:`No models available`,hint:`No models are available for this provider in this app version. Update the app, or enter a custom model ID.`}},ft=`__custom-model-id__`;function pt({text:e}){return(0,X.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:e})}function mt({provider:e,model:t,providerConnection:n,onProviderChange:i,onModelChange:a,onConnectionChange:o,connections:c,isReadOnly:l,availableConnectionsForProvider:u,connectionNotFound:d,hideProviderField:f=!1}){let p=e.length>0&&t.length===0,[h,g]=(0,P.useState)(!1),_=ut(e,n,u),v=e!==``&&!_;(0,P.useEffect)(()=>{v||g(!1)},[e,v]);function y(e){if(e===ft){g(!0),a(``);return}a(e)}let b=rt(),x=M(),S=(0,P.useMemo)(()=>{let t=it(c??[],x);return e&&!t.includes(e)?[...t,e]:t},[c,e,x]),te=c===void 0?b:S,C=(0,P.useMemo)(()=>{if(!e)return[];let t=B(e);if(t.length>0)return ut(e,n,u)?t.filter(e=>ct.has(e.id)):t;if(n){let e=u.find(e=>e.name===n);return e?lt(e.models):[]}let r=new Set,i=[];for(let e of u)for(let t of e.models??[])r.has(t.id)||(r.add(t.id),i.push({id:t.id,displayName:t.displayName??t.id}));return i},[e,n,u]),w=(0,P.useMemo)(()=>{if(!t||C.some(e=>e.id===t))return C;let n=B(e).find(e=>e.id===t),r=u.flatMap(e=>e.models??[]).find(e=>e.id===t),i=n?.displayName??r?.displayName??t;return[...C,{id:t,displayName:i}]},[t,C,e,u]),T=e?C.length===0?e===`openai-compatible`?`configure-connection`:`unknown-to-catalog`:null:`no-provider`,E=T?dt[T]:null;return(0,P.useEffect)(()=>{if(!e||h)return;let n=B(e);n.length>0&&!n.some(e=>e.id===t)||t&&C.length>0&&!C.some(e=>e.id===t)&&a(``)},[t,C,a,e,h]),(0,X.jsxs)(X.Fragment,{children:[!f&&(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsx)(`label`,{id:`profile-editor-provider-label`,className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Provider`}),(0,X.jsx)(ee,{value:e===`openai-compatible`&&n?at(n):e,onChange:e=>{let t=ot(e);if(t){i(`openai-compatible`),o(t);return}i(e)},disabled:l,placeholder:`Select a provider…`,"aria-labelledby":`profile-editor-provider-label`,options:[...st(te,c??[],e=>L[e]??e).map(({value:e,label:t,meta:n})=>({value:e,label:t,suffix:n?(0,X.jsx)(pt,{text:n}):void 0})),...d&&e===`openai-compatible`&&n?[{value:at(n),label:`${n} (not found)`}]:[],...e===`openai-compatible`&&!n?[{value:`openai-compatible`,label:L[`openai-compatible`]??`openai-compatible`}]:[]]}),te.length===0&&!l?(0,X.jsx)(s,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:`No provider connections. Open Providers to add one.`}):null]}),d&&!l&&(0,X.jsx)(s,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:`This profile referenced a credential that no longer exists. Saving resets it to use the provider’s available key.`}),(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Model`}),h?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(m,{value:t,onChange:e=>a(e.target.value),disabled:l,placeholder:`provider/model-id`,"aria-label":`Custom model ID`,fullWidth:!0,autoFocus:!0}),(0,X.jsx)(r,{variant:`link`,size:`compact`,disabled:l,onClick:()=>g(!1),children:`Choose from list`})]}):(0,X.jsx)(ee,{value:t,onChange:y,disabled:l||!e,options:[{value:``,label:E?.placeholder??`Select a model`},...w.map(e=>({value:e.id,label:e.displayName})),...v?[{value:ft,label:`Enter a custom model ID…`}]:[]]}),h?(0,X.jsx)(s,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:`Enter the exact model identifier your provider expects. It's sent to the connection as-is.`}):p&&!l?(0,X.jsx)(s,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:E?.hint??`Select a model.`}):null]})]})}function ht(e){return e.toLowerCase().split(/[^a-z0-9]+/).filter(Boolean).join(`-`)}function gt(e){return ht(e)}function _t(e,t){let n=new Set(t.map(e=>e.toLowerCase()));if(!n.has(e.toLowerCase()))return e;let r=2,i=`${e}-${r}`;for(;n.has(i.toLowerCase());)r+=1,i=`${e}-${r}`;return i}function vt(e,t){return{name:L[e]??e,key:_t(`${gt(e)}-personal`,t)}}function yt(e,t){return{name:e,key:_t(gt(e),t)}}var bt=`0.10.12`;async function xt(e,t){await k(t);let n=O.getState().assistantId;return e!=null&&n!==e?!1:j(bt)}function St(e,t,n){return[`credentialPresence`,e,t,n]}function Ct({assistantId:e,credentialKind:n,credentialName:r,enabled:i=!0}){let o=N(),s=a({queryKey:St(e??``,n,r),queryFn:async()=>{let{data:t}=await C({path:{assistant_id:e},body:{type:n,name:r},throwOnError:!0});return t.found},enabled:!!e&&i&&o,retry:t,staleTime:3e4});return{hasStoredCredential:s.data??!1,isLoading:s.isLoading}}function wt({assistantId:e,onConnected:t}){let[n,i]=(0,P.useState)(`idle`),[a,o]=(0,P.useState)(``),[c,u]=(0,P.useState)(null);async function d(){i(`starting`),u(null);let t=window.open(`about:blank`,`_blank`);try{let{data:{authorize_url:n}}=await b({path:{assistant_id:e},throwOnError:!0});t?(t.opener=null,t.location.href=n):window.open(n,`_blank`,`noopener`),i(`paste_url`)}catch{t?.close(),i(`failed`),u(`Failed to start ChatGPT sign-in. Please try again.`)}}async function f(){u(null);let n=a.trim();if(!n){u(`Please paste the URL from the error page.`);return}let r;try{r=new URL(n)}catch{u(`Invalid URL. Please paste the full URL from the address bar.`);return}let o=r.searchParams.get(`code`),s=r.searchParams.get(`state`);if(!o){u(`The URL is missing the authorization code. Make sure you copied the full URL.`);return}if(!s){u(`The URL is missing the state parameter. Make sure you copied the full URL.`);return}i(`exchanging`);try{await S({path:{assistant_id:e},body:{code:o,state:s},throwOnError:!0}),i(`completed`);let{data:n}=await y({path:{assistant_id:e},query:{provider:`openai`},throwOnError:!0});t(n.connections.find(e=>e.name===`chatgpt-subscription`||e.name===`openai-chatgpt`)||{name:`chatgpt-subscription`,provider:`openai`,auth:{type:`oauth_subscription`,credential:`credential/openai/chatgpt-subscription`},label:`ChatGPT Subscription`,createdAt:Date.now(),updatedAt:Date.now(),baseUrl:null,models:null,isManaged:!1})}catch{i(`failed`),u(`Failed to complete sign-in. Please try again.`)}}function p(){i(`idle`),o(``),u(null)}return(0,X.jsxs)(`div`,{className:`space-y-3 rounded-lg border border-[var(--border-base)] p-4`,children:[(0,X.jsx)(s,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:`Connect your ChatGPT subscription to use OpenAI models without an API key.`}),n===`idle`||n===`paste_url`?(0,X.jsxs)(`div`,{className:`space-y-3`,children:[(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsxs)(s,{variant:`body-small-default`,as:`p`,className:n===`paste_url`?`text-[var(--content-tertiary)] line-through`:`text-[var(--content-secondary)]`,children:[`1. Click “Sign in with ChatGPT”`,n===`idle`?` below`:null,` to open a popup`]}),(0,X.jsx)(s,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-secondary)]`,children:`2. Sign in, then you'll land on an error page — that's expected`}),(0,X.jsx)(s,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-secondary)]`,children:`3. Copy the full URL from that page's address bar and paste it below`})]}),n===`idle`?(0,X.jsx)(r,{variant:`outlined`,size:`compact`,onClick:()=>void d(),children:`Sign in with ChatGPT`}):(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(m,{value:a,onChange:e=>{o(e.target.value),u(null)},placeholder:`Paste callback URL here...`,fullWidth:!0}),(0,X.jsx)(`div`,{className:`flex justify-end`,children:(0,X.jsx)(r,{variant:`primary`,size:`compact`,disabled:!a.trim(),onClick:()=>void f(),children:`Complete Sign In`})})]})]}):null,n===`starting`?(0,X.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,X.jsx)(l,{className:`h-4 w-4 animate-spin text-[var(--content-tertiary)]`}),(0,X.jsx)(s,{variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,children:`Starting sign-in...`})]}):null,n===`exchanging`?(0,X.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,X.jsx)(l,{className:`h-4 w-4 animate-spin text-[var(--content-tertiary)]`}),(0,X.jsx)(s,{variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,children:`Completing sign-in...`})]}):null,n===`completed`?(0,X.jsx)(s,{variant:`body-small-default`,as:`p`,className:`text-[var(--system-positive-strong)]`,children:`ChatGPT subscription connected successfully.`}):null,c?(0,X.jsx)(s,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:c}):null,n===`failed`?(0,X.jsx)(r,{variant:`outlined`,size:`compact`,onClick:p,children:`Try Again`}):null]})}var Tt=new Set(Object.entries(L).flatMap(([e,t])=>[e.toLowerCase(),t.toLowerCase()])),Et={reserved:`That name belongs to a built-in provider. Pick another.`,duplicate:`A custom provider with this name already exists.`};function Dt(e,t,n){let r=e.trim().toLowerCase();return r?Tt.has(r)?`reserved`:(t??[]).some(e=>e.provider===`openai-compatible`&&e.name!==n&&(e.label?.trim()||e.name).toLowerCase()===r)?`duplicate`:null:null}function Ot({apiKeyValue:e,onApiKeyChange:t,credential:n,onCredentialChange:i,isLoadingCredential:a,apiKeyPlaceholder:o,provider:u,providerCredentials:d,showAdvancedSection:f,onError:p}){let[h,g]=(0,P.useState)(!1),[_,v]=(0,P.useState)(!1),[y,b]=(0,P.useState)(``);return(0,X.jsxs)(X.Fragment,{children:[(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`API Key`}),a?(0,X.jsxs)(`div`,{className:`flex items-center gap-2 h-8`,children:[(0,X.jsx)(l,{className:`h-4 w-4 animate-spin text-[var(--content-tertiary)]`}),(0,X.jsx)(s,{variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,children:`Loading…`})]}):(0,X.jsx)(m,{type:`password`,value:e,onChange:e=>{t(e.target.value),p(null)},placeholder:o,fullWidth:!0})]}),f&&(0,X.jsxs)(`div`,{children:[(0,X.jsxs)(`button`,{type:`button`,"aria-expanded":h,onClick:()=>g(e=>!e),className:`flex items-center gap-1 text-body-small-default text-[var(--content-secondary)] w-full text-left`,children:[(0,X.jsx)(c,{className:`h-4 w-4 transition-transform ${h?`rotate-90`:``}`}),(0,X.jsx)(`span`,{children:`Advanced`}),(0,X.jsx)(`span`,{className:`text-[var(--content-tertiary)] ml-1`,children:`· Credential reference`})]}),h&&(0,X.jsxs)(`div`,{className:`mt-2 space-y-3`,children:[(()=>{let e=d.map(e=>{let t=`credential/${e.service}/${e.field}`;return{label:t,value:t}}),t=e.some(e=>e.value===n),r=n&&!t?[{label:n,value:n},...e]:e;return r.length===0?null:(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Credential Reference`}),(0,X.jsx)(ee,{"aria-label":`Credential reference`,value:n,onChange:e=>{i(e)},options:r})]})})(),_&&(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`New Credential Name`}),(0,X.jsxs)(`div`,{className:`flex gap-2`,children:[(0,X.jsx)(m,{value:y,onChange:e=>b(e.target.value),placeholder:`e.g. team-key`,fullWidth:!0}),(0,X.jsx)(r,{variant:`primary`,size:`compact`,disabled:!y.trim(),onClick:()=>{let e=y.trim();e&&(i(`credential/${u}/${e}`),v(!1),b(``))},children:`Use`})]})]}),(0,X.jsx)(`div`,{className:`flex justify-end`,children:(0,X.jsx)(r,{variant:`ghost`,size:`compact`,onClick:()=>{_?(v(!1),b(``)):v(!0)},children:_?`Cancel`:`+ New Credential`})})]})]})]})}var kt=`•`.repeat(8);function At(e,t){return t?kt:e}function jt(e){let t=[];for(let n of e)if(n.type===`api_key`)t.push({service:n.name,field:`api_key`});else if(n.type===`credential`){let e=n.name.lastIndexOf(`:`);if(e>=0){let r=n.name.slice(0,e),i=n.name.slice(e+1);r&&i&&t.push({service:r,field:i})}}return t}function Mt({assistantId:e,enabled:n=!0}){let r=N(),i=a({...D({path:{assistant_id:e}}),enabled:!!e&&n&&r,select:e=>jt(e.secrets),retry:t,staleTime:3e4});return{credentials:i.data??[],isLoading:i.isLoading}}function Nt({assistantId:e,existingNames:t,connections:n,defaultProviderType:a,onCreated:o,onCancel:l,variant:u=`modal`}){let d=nt(),f=a&&d.includes(a)?a:d[0]??`anthropic`,p=vt(f,t),[h,v]=(0,P.useState)(f===`openai-compatible`?``:p.name),[y,b]=(0,P.useState)(p.key),[S,C]=(0,P.useState)(f),w=S===`chatgpt`,E=w?`openai`:S,D=w?`oauth_subscription`:E===`ollama`?`none`:`api_key`,[O,k]=(0,P.useState)(()=>f===`ollama`?``:f===`openai-compatible`?`credential/${p.key}/api_key`:`credential/${f}/api_key`),[A,j]=(0,P.useState)(``),[M,N]=(0,P.useState)(``),[F,I]=(0,P.useState)(!1),[R,z]=(0,P.useState)(null),[ne,re]=(0,P.useState)(!1),B=E===`openai-compatible`,V=(0,P.useMemo)(()=>{let e=!w&&!d.includes(E)?[...d,E]:[...d],t=e.indexOf(`openai`);return t>=0&&e.splice(t+1,0,`chatgpt`),e},[w,E,d]),ie=(0,P.useRef)(!1);function ae(e){ie.current=!0,v(e)}let[oe,se]=(0,P.useState)(``),[ce,H]=(0,P.useState)(!1),U=i(),W=(0,P.useMemo)(()=>qe(O),[O]),le=D===`api_key`&&W!==null,{hasStoredCredential:ue,isLoading:de}=Ct({assistantId:e,credentialKind:`credential`,credentialName:W?`${W.service}:${W.field}`:``,enabled:le}),{credentials:fe}=Mt({assistantId:e,enabled:!0}),G=B?Dt(h,n):null,pe=y.trim().length>0&&(!B||h.trim().length>0)&&G===null;async function me(){if(pe){I(!0),z(null);try{let t;if(D===`api_key`){let n=O.trim()||`credential/${B?y:E}/api_key`,r=oe.trim();if(r){H(!0);try{let t=qe(n);await te({path:{assistant_id:e},body:t?{type:`credential`,name:`${t.service}:${t.field}`,value:r}:{type:`api_key`,name:E,value:r},throwOnError:!0});let i=St(e,`credential`,t?`${t.service}:${t.field}`:``);U.setQueryData(i,!0),U.invalidateQueries({queryKey:T({path:{assistant_id:e}})})}catch{z(`Failed to save API key. Please try again.`);return}finally{H(!1)}t={type:`api_key`,credential:n}}else if(ue)t={type:`api_key`,credential:n};else if(B)t={type:`none`};else{z(`Enter an API key or select an existing credential.`);return}}else if(D===`oauth_subscription`){z(`Use the "Sign in with ChatGPT" button to connect your subscription.`);return}else t={type:`none`};let n=h.trim()||null,r={name:y.trim(),provider:E,auth:t,...n!==null&&{label:n},...B&&{base_url:A.trim()||null,models:M.trim()?M.split(`,`).map(e=>({id:e.trim()})).filter(e=>e.id):null}},{data:i,error:a,response:s}=await x({path:{assistant_id:e},body:r});if(!s?.ok){z(Q(s?.status,a)??Je(s?.status));return}if(!i){z(`Server returned an empty response. Please try again.`);return}_.success(`Provider connected`),o(i)}catch{z(`Failed to save provider. Please try again.`)}finally{I(!1)}}}let K=fe.filter(e=>e.service===E),he=K.length>0,ge=At(`Enter your API key`,ue),_e=ne,ve=(0,X.jsxs)(`div`,{children:[(0,X.jsxs)(`button`,{type:`button`,"aria-expanded":_e,onClick:()=>re(e=>!e),className:`flex items-center gap-1 text-body-small-default text-[var(--content-secondary)] w-full text-left`,children:[(0,X.jsx)(c,{className:`h-4 w-4 transition-transform ${_e?`rotate-90`:``}`}),(0,X.jsx)(`span`,{children:`Advanced`})]}),_e&&(0,X.jsx)(`div`,{className:`mt-2 space-y-4`,children:(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsxs)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:[`Display Name`,` `,(0,X.jsx)(`span`,{className:`text-[var(--content-disabled)]`,children:`(optional)`})]}),(0,X.jsx)(m,{value:h,onChange:e=>ae(e.target.value),placeholder:`e.g. My Anthropic Key`,fullWidth:!0})]})})]}),ye=(0,X.jsxs)(`div`,{className:`space-y-4`,children:[(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Provider`}),(0,X.jsx)(ee,{"aria-label":`Provider`,value:S,onChange:e=>{if(C(e),z(null),e===`chatgpt`)return;let{name:n,key:r}=vt(e,t);ie.current||v(e===`openai-compatible`?``:n),b(r),k(e===`ollama`?``:e===`openai-compatible`?`credential/${r}/api_key`:`credential/${e}/api_key`)},options:[...V.filter(e=>e!==`openai-compatible`).map(e=>({value:e,label:L[e]})),...V.includes(`openai-compatible`)?[{value:`openai-compatible`,label:`Custom provider`}]:[]]}),B?(0,X.jsx)(s,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:`Custom providers connect to any endpoint that serves the OpenAI-compatible API — xAI, Groq, LM Studio, vLLM, and similar.`}):null]}),B&&(0,X.jsxs)(X.Fragment,{children:[(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Name`}),(0,X.jsx)(m,{value:h,onChange:e=>ae(e.target.value),placeholder:`xAI`,fullWidth:!0}),G?(0,X.jsx)(s,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:Et[G]}):null]}),(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Base URL`}),(0,X.jsx)(m,{value:A,onChange:e=>j(e.target.value),placeholder:`https://api.x.ai/v1`,fullWidth:!0})]}),(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Models`}),(0,X.jsx)(m,{value:M,onChange:e=>N(e.target.value),placeholder:`model-1, model-2`,fullWidth:!0}),(0,X.jsx)(s,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:`Comma-separated model identifiers exposed by your endpoint.`})]})]}),D===`api_key`&&(0,X.jsx)(Ot,{apiKeyValue:oe,onApiKeyChange:se,credential:O,onCredentialChange:k,isLoadingCredential:de,apiKeyPlaceholder:ge,provider:E,providerCredentials:K,showAdvancedSection:he,onError:z}),B&&D===`api_key`?(0,X.jsx)(s,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:`Leave the key empty for local endpoints — they connect keyless.`}):null,D===`oauth_subscription`&&(0,X.jsx)(wt,{assistantId:e,onConnected:o}),!w&&!B&&ve,R&&(0,X.jsx)(s,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:R})]}),be=(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(r,{variant:`ghost`,size:`compact`,onClick:l,children:`Cancel`}),!w&&(0,X.jsx)(r,{variant:`primary`,size:`compact`,disabled:!pe||F||ce,onClick:()=>void me(),children:F?`Saving…`:B&&h.trim()?`Add ${h.trim()}`:`Add`})]});return u===`inline`?(0,X.jsxs)(`div`,{className:`space-y-4`,children:[ye,(0,X.jsx)(`div`,{className:`flex justify-end gap-2`,children:be})]}):(0,X.jsxs)(g.Content,{size:`md`,children:[(0,X.jsxs)(g.Header,{children:[(0,X.jsx)(g.Title,{children:`Add Provider`}),(0,X.jsx)(g.Description,{children:`Choose a provider and paste its API key.`})]}),(0,X.jsx)(g.Body,{children:ye}),(0,X.jsx)(g.Footer,{children:be})]})}function Pt(e,t,n){let r=(0,P.useRef)(!1),i=(0,P.useRef)(!1);return{handleLabelChange:(0,P.useCallback)(a=>{i.current=!0,t(a),e===`create`&&!r.current&&n(ht(a))},[e,t,n]),handleKeyChange:(0,P.useCallback)(e=>{r.current=!0,i.current=!0,n(e)},[n]),resetDirty:(0,P.useCallback)(()=>{r.current=!1,i.current=!1},[]),getDirty:(0,P.useCallback)(()=>i.current,[])}}var Ft=`__create_new_provider__`;function It(e,t){return e===t?!0:e===`vellum`&&se.has(t)}function Lt({isOpen:e,mode:t,profileName:n,initialValues:r,existingNames:i,connections:a,assistantId:o,onSave:s,onCancel:c}){return(0,X.jsx)(g.Root,{open:e,onOpenChange:e=>{e||c()},children:e?(0,X.jsx)(Rt,{mode:t,profileName:n,initialValues:r,existingNames:i,connections:a,assistantId:o,onSave:s,onCancel:c}):null})}function Rt({mode:e,profileName:t,initialValues:n,existingNames:o,connections:l,assistantId:u,onSave:d,onCancel:_}){let[v,y]=(0,P.useState)(e),b=n?.invariant===!0&&v!==`create`,x=v===`view`||b,S=M(),te=n?.status??`active`,[C,T]=(0,P.useState)(n?.label??``),[D,O]=(0,P.useState)(n?.description??``),[k,A]=(0,P.useState)(e===`create`?``:t??``),[j,N]=(0,P.useState)(n?.provider&&n.provider!==`chatgpt`?n.provider:``),[F,I]=(0,P.useState)(n?.model??``),[R,z]=(0,P.useState)(n?.provider_connection??``),[V,ae]=(0,P.useState)(n?.status??`active`),[se,ce]=(0,P.useState)([]),[H,U]=(0,P.useState)(!1),[W,le]=(0,P.useState)(null),[ue,de]=(0,P.useState)(n?.maxTokens??null),[fe,G]=(0,P.useState)(n?.contextWindow?.maxInputTokens??null),[pe,me]=(0,P.useState)(n?.effort??`inherit`),[K,he]=(0,P.useState)(n?.speed??`standard`),[ge,_e]=(0,P.useState)(n?.verbosity??`medium`),[ve,ye]=(0,P.useState)(typeof n?.temperature==`number`),[be,xe]=(0,P.useState)(typeof n?.temperature==`number`?n.temperature:.7),[Se,Ce]=(0,P.useState)(typeof n?.topP==`number`),[we,Te]=(0,P.useState)(typeof n?.topP==`number`?n.topP:.95),q=x&&V!==te,[Ee,De]=(0,P.useState)(n?.thinking?.enabled??!1),[Oe,ke]=(0,P.useState)(n?.thinking?.streamThinking??!1),[Ae,je]=(0,P.useState)(Ne(n?.thinking?.level)?n.thinking.level:He),Me=(0,P.useMemo)(()=>j===`vellum`?ne(F):null,[j,F]),Pe=Me?.model??F,Fe=(0,P.useMemo)(()=>j?B(j).find(e=>e.id===Pe)??null:null,[j,Pe]),{data:Ie}=a({...E({path:{assistant_id:u}}),staleTime:3e4}),Le=Ie?.llm?.default?.maxTokens,Re=Ie?.llm?.default?.contextWindow?.maxInputTokens,J=(0,P.useMemo)(()=>ze(j===`vellum`?Me?.provider??re(F)??n?.provider??``:j,Pe),[j,F,Pe,Me,n?.provider]),Y=(0,P.useMemo)(()=>{let e=l??[];if(se.length===0)return e;let t=new Set(e.map(e=>e.name));return[...e,...se.filter(e=>!t.has(e.name))]},[l,se]),Z=(0,P.useMemo)(()=>j?Y.filter(e=>It(e.provider,j)):[],[j,Y]),Be=R!==``&&!Z.some(e=>e.name===R),{handleLabelChange:Ve,handleKeyChange:Ue,resetDirty:We,getDirty:Ke}=Pt(v,T,A),qe=i(),[Je,Q]=(0,P.useState)(!1),[Ye,Xe]=(0,P.useState)(!1),[Ze,Qe]=(0,P.useState)(!1);(0,P.useEffect)(()=>{n?.provider_connection===`vellum`&&j===(n?.provider??``)&&l?.find(e=>e.name===n.provider_connection)?.provider===`vellum`&&N(oe)},[l,j,n]),(0,P.useEffect)(()=>{We(),Q(!1),Xe(!1),Qe(!1),ce([])},[t,e,We]);function $e(e){if(e===j)return;N(e),I(``);let t=Y.filter(t=>It(t.provider,e));z(t.length===1?t[0].name:``),de(null),G(null),me(`inherit`),he(`standard`),_e(`medium`),ye(!1),xe(.7),Ce(!1),Te(.95),De(!1),ke(!1),je(He)}function et(e){if(z(e),j&&B(j).length===0&&F)if(e===``)new Set(Z.flatMap(e=>(e.models??[]).map(e=>e.id))).has(F)||I(``);else{let t=Z.find(t=>t.name===e);new Set((t?.models??[]).map(e=>e.id)).has(F)||I(``)}}function tt(e){let t=B(j).find(t=>t.id===e);if(t)return t.displayName;for(let t of Z){let n=(t.models??[]).find(t=>t.id===e);if(n)return n.displayName??n.id}return e}function nt(e){if(e!==F&&(I(e),de(null),G(null),v===`create`&&e&&!Ke())){let{name:t,key:n}=yt(tt(e),o);T(t),A(n)}}function rt(e){let t=e.provider;t!==`vellum`&&(ce(t=>t.some(t=>t.name===e.name)?t:[...t,e]),N(t),z(e.name),I(``),Q(!1),Qe(!0),qe.invalidateQueries({queryKey:w({path:{assistant_id:u}})}))}let $=k.trim(),ct=$.length===0,lt=/\s/.test(k),ut=v===`create`?o.includes($):o.filter(e=>e!==t).includes($),dt=j.length===0,ft=j.length>0&&F.length===0,ht=ct||lt||ut||dt||ft,gt=ct?`Key is required`:lt?`Key cannot contain whitespace`:ut?`A profile with this key already exists`:null;async function _t(){if(!(ht&&!x)){if(x){if(!q)return;U(!0),le(null);try{await d($,{status:`active`},{mode:`merge`})}catch{le(`Failed to save profile. Please try again.`)}finally{U(!1)}return}U(!0),le(null);try{let e={},t=R===``&&Z.length===1?Z[0].name:R,r=Be?``:t,i=j===`vellum`&&await xt(u),a=j===`vellum`?i?oe:Me?.provider??re(F)??n?.provider??``:j,o=Pe,s=i?``:r;v===`edit`?(e.label=C.trim()||null,e.description=D.trim()||null,e.provider=a||null,e.model=o||null,e.provider_connection=s||null):(C.trim()&&(e.label=C.trim()),D.trim()&&(e.description=D.trim()),a&&(e.provider=a),o&&(e.model=o),s&&(e.provider_connection=s)),J.maxTokens&&ue!==null&&(e.maxTokens=ue),J.contextWindow&&fe!==null&&(e.contextWindow={maxInputTokens:fe}),J.effort&&pe!==`inherit`&&(e.effort=pe),J.speed&&K!==`standard`&&(e.speed=K),J.verbosity&&(e.verbosity=ge),J.temperature&&(ve?e.temperature=be:v===`edit`&&(e.temperature=null)),J.topP&&(Se?e.topP=we:v===`edit`&&(e.topP=null)),J.thinking&&(e.thinking={enabled:Ee,...Ee?{streamThinking:Oe}:{}}),J.thinkingLevel&&Ae!==`default`&&(e.thinking={enabled:!0,level:Ae}),(v===`edit`||V!==`active`)&&(e.status=V),await d($,e)}catch{le(`Failed to save profile. Please try again.`)}finally{U(!1)}}}let vt=v===`create`?`New Profile`:v===`edit`?`Edit Profile`:n?.label??t??`Profile`,bt=v===`create`,St=(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:bt?`Name`:`Display Name`}),(0,X.jsx)(m,{type:`text`,value:C,onChange:e=>Ve(e.target.value),placeholder:`e.g. Fast & Cheap`,disabled:x,fullWidth:!0})]}),Ct=(0,X.jsx)(p,{label:(0,X.jsxs)(X.Fragment,{children:[`Description`,` `,(0,X.jsx)(`span`,{className:`text-[var(--content-disabled)]`,children:`(optional)`})]}),value:D,onChange:e=>O(e.target.value),placeholder:`Describe when to use this profile`,disabled:x,rows:2,fullWidth:!0,className:`resize-none`}),wt=(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Key`}),(0,X.jsx)(m,{type:`text`,value:k,onChange:e=>Ue(e.target.value),placeholder:`e.g. fast-cheap`,disabled:x||v===`edit`,fullWidth:!0}),gt&&!x?(0,X.jsx)(s,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:gt}):null]}),Tt=!x||V!==`active`?(0,X.jsx)(h,{checked:V===`active`,onChange:e=>ae(e?`active`:`disabled`),label:`Active`,className:`touch-mobile:mt-2 touch-mobile:[&_button]:h-7 touch-mobile:[&_button]:w-10 touch-mobile:[&_button>span]:h-6 touch-mobile:[&_button>span]:w-6`}):null,Et=(0,X.jsx)(Ge,{visibility:J,isReadOnly:x,model:F,selectedModel:Fe,defaultMaxOutputTokens:Le,defaultContextWindowMaxInputTokens:Re,maxTokens:ue,onMaxTokensChange:de,contextWindowMaxInputTokens:fe,onContextWindowChange:G,effort:pe,onEffortChange:me,speed:K,onSpeedChange:he,verbosity:ge,onVerbosityChange:_e,temperatureEnabled:ve,onTemperatureEnabledChange:ye,temperature:be,onTemperatureChange:xe,topPEnabled:Se,onTopPEnabledChange:Ce,topP:we,onTopPChange:Te,thinkingEnabled:Ee,onThinkingEnabledChange:De,thinkingStreamThinking:Oe,onThinkingStreamThinkingChange:ke,thinkingLevel:Ae,onThinkingLevelChange:je}),Dt=W?(0,X.jsx)(s,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:W}):null,Ot=(0,P.useMemo)(()=>{let e=st(it(Y,S),Y,e=>L[e]??e).map(({value:e,label:t,meta:n})=>({value:e,label:t,suffix:n?(0,X.jsx)(pt,{text:n}):void 0}));return e.push({value:Ft,label:`+ Create new provider`}),e},[S,Y]),kt=(0,X.jsxs)(`div`,{className:`space-y-4`,children:[(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsx)(`label`,{id:`profile-editor-provider-label`,className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Provider`}),(0,X.jsx)(ee,{value:Je?Ft:j===`openai-compatible`&&R?at(R):j,onChange:e=>{if(e===Ft){Q(!0),Qe(!1);return}if(!e)return;Q(!1);let t=ot(e);if(t){j===`openai-compatible`?I(``):$e(ie),z(t);return}$e(e)},placeholder:`Select a provider…`,"aria-labelledby":`profile-editor-provider-label`,options:Ot}),Ze?(0,X.jsx)(s,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:`New provider connection will show up in the Providers section.`}):null]}),Je?(0,X.jsx)(Nt,{variant:`inline`,assistantId:u,existingNames:Y.map(e=>e.name),connections:Y,defaultProviderType:j||void 0,onCreated:rt,onCancel:()=>Q(!1)}):(0,X.jsx)(mt,{provider:j,model:F,providerConnection:R,onProviderChange:$e,onModelChange:nt,onConnectionChange:et,connections:Y,isReadOnly:x,availableConnectionsForProvider:Z,connectionNotFound:Be,hideProviderField:!0})]}),At=Ye||!!gt&&Ke(),jt=F===``?null:(0,X.jsxs)(`div`,{children:[(0,X.jsxs)(`button`,{type:`button`,"aria-expanded":At,onClick:()=>Xe(e=>!e),className:`flex items-center gap-1 text-body-small-default text-[var(--content-secondary)] w-full text-left`,children:[(0,X.jsx)(c,{className:`h-4 w-4 transition-transform ${At?`rotate-90`:``}`}),(0,X.jsx)(`span`,{children:`Advanced`})]}),At?(0,X.jsxs)(`div`,{className:`mt-4 space-y-4`,children:[St,wt,Et]}):null]});return(0,X.jsxs)(g.Content,{size:`md`,children:[(0,X.jsx)(g.Header,{children:v===`view`?(0,X.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,X.jsx)(g.Title,{children:vt}),(0,X.jsx)(f,{tone:`positive`,children:`Platform`})]}):(0,X.jsx)(g.Title,{children:vt})}),(0,X.jsx)(g.Body,{children:bt?(0,X.jsxs)(`div`,{className:`space-y-4`,children:[kt,Ct,Tt,jt,Dt]}):(0,X.jsxs)(`div`,{className:`space-y-4`,children:[St,Ct,wt,Tt,(0,X.jsx)(mt,{provider:j,model:F,providerConnection:R,onProviderChange:$e,onModelChange:nt,onConnectionChange:et,connections:l,isReadOnly:x,availableConnectionsForProvider:Z,connectionNotFound:Be}),Et,Dt]})}),(0,X.jsx)(g.Footer,{children:x?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(r,{variant:`outlined`,className:`touch-mobile:h-10`,onClick:_,disabled:H,"data-testid":`modal-cancel-btn`,children:`Close`}),(0,X.jsx)(r,{variant:`outlined`,className:`touch-mobile:h-10`,onClick:()=>{y(`create`),A(``),We()},disabled:H,children:`Save As New`}),(0,X.jsx)(r,{variant:`primary`,className:`touch-mobile:h-10`,onClick:()=>void _t(),disabled:!q||H,"data-testid":`modal-save-btn`,children:H?`Saving…`:`Save`})]}):(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(r,{variant:`outlined`,className:`touch-mobile:h-10`,onClick:_,disabled:H,"data-testid":`modal-cancel-btn`,children:`Cancel`}),(0,X.jsx)(r,{variant:`primary`,className:`touch-mobile:h-10`,onClick:()=>void _t(),disabled:ht||H,"data-testid":`modal-save-btn`,children:H?`Saving…`:`Save`})]})})]})}var zt=`/assistant/assets/pcm-downsample-worklet-CwNZrVLe.js`;function Bt(){if(!(typeof window>`u`))return window.AudioContext??window.webkitAudioContext}function Vt(e){let t=Bt();if(!t)throw Error(`Web Audio API is not available in this environment`);return new t(e)}var Ht=`pcm-downsample`,Ut=1600,Wt=16e3;function Gt(){return v()?window.vellum?.helper?.dictation:void 0}function Kt(){let e=Gt();return!!e?.transcribe&&!!e.onTranscribed}var qt=null,Jt=null;async function Yt(){return qt||(qt=Vt(),Jt=qt.audioWorklet.addModule(zt)),qt.state!==`running`&&await qt.resume(),await Jt,qt}async function Xt(e,t){try{let n=await Yt(),r=n.createMediaStreamSource(e),i=new AudioWorkletNode(n,Ht,{numberOfInputs:1,numberOfOutputs:0,channelCount:1}),a=[],o=0,s=0;return i.port.onmessage=e=>{let r=new Int16Array(e.data);if(r.length===0||(a.push(r),o+=r.length,o<Ut))return;let i=new Int16Array(o),c=0;for(let e of a)i.set(e,c),c+=e.length;a=[],o=0,s+=1,(s===1||s%50==0)&&console.info(`dictation: pushed audio chunk #${s} (${i.byteLength} bytes, context=${n.state})`),t(i.buffer)},r.connect(i),console.info(`dictation: audio pump started (context=${n.state})`),()=>{i.port.onmessage=null,i.disconnect(),r.disconnect()}}catch(e){return console.warn(`native-dictation-partials: audio pump failed`,e),null}}var Zt=8e3;async function Qt(e){let t=Gt();if(!t?.transcribe||!t.onTranscribed)return null;let n;try{n=await $t(e)}catch(e){let t=e instanceof DOMException?`${e.name}: ${e.message}`:e;return console.warn(`dictation: blob decode for native transcribe failed`,t),null}if(n.byteLength===0)return null;let r=null,i=t.onTranscribed(e=>{r?.(e.text||null)});try{let e=await t.transcribe(n);if(!e.ok)return console.info(`dictation: native transcribe unavailable:`,e.reason),null;let i=await new Promise(e=>{r=e,setTimeout(()=>e(null),Zt)});return console.info(`dictation: native transcribe ${i?`chars=${i.length}`:`produced no text`}`),i}catch(e){return console.warn(`dictation: native transcribe failed`,e),null}finally{i()}}async function $t(e){let t=await e.arrayBuffer(),n=await new OfflineAudioContext(1,1,Wt).decodeAudioData(t),r=n.numberOfChannels,i=n.length,a=n.getChannelData(0);if(r>1){let e=new Float32Array(i);for(let t=0;t<r;t++){let a=n.getChannelData(t);for(let t=0;t<i;t++)e[t]+=a[t]/r}a=e}let o=new Int16Array(i);for(let e=0;e<i;e++){let t=a[e],n=t<-1?-1:t>1?1:t;o[e]=n<0?n*32768:n*32767}return o.buffer}var en=4e3;async function tn(e,t){let n=Gt();if(!n)return null;let r=n.pushAudioChunk?.bind(n),i=t?.stream,a=!!i&&!!r,o=n.onPartial(t=>{e(t.text)}),s=null,c=null,l=n.onFinalized?.(e=>{s=e.text||null,c?.(s)})??null,u=()=>{l?.(),o()};try{let e=await n.setPartials(!0,void 0,a);if(!e.ok)return console.info(`native-dictation-partials: unavailable:`,e.reason),u(),null}catch(e){return console.warn(`native-dictation-partials: setPartials failed`,e),u(),null}let d=null;if(a&&(d=await Xt(i,e=>r(e)),!d))return u(),n.setPartials(!1).catch(()=>{}),null;let f=null;return()=>f||(d?.(),o(),n.setPartials(!1).catch(()=>{}),f=(async()=>{let e=s;return!e&&l&&(e=await new Promise(e=>{c=e,setTimeout(()=>e(null),en)})),l?.(),console.info(e===null?`dictation: native finalized not received`:`dictation: native finalized chars=${e.length}`),e})(),f)}var nn=[{id:`vellum`,displayName:`Vellum`,subtitle:`Text-to-speech through your Vellum account — billed to Vellum credits, no separate API key needed.`,supportsVoiceSelection:!1,apiKeyPlaceholder:`Connected via your Vellum account`,credentialsGuide:{description:`Connect this assistant to your Vellum account; managed speech uses that connection instead of a provider API key.`,url:`https://platform.vellum.ai/`,linkLabel:`Open Vellum Platform`}},{id:`elevenlabs`,displayName:`ElevenLabs`,subtitle:`High-quality voice synthesis for conversations and read-aloud. Requires an ElevenLabs API key.`,supportsVoiceSelection:!0,apiKeyPlaceholder:`sk_…`,credentialsGuide:{description:`Sign in to ElevenLabs, go to your Profile, and copy your API key.`,url:`https://elevenlabs.io/app/settings/api-keys`,linkLabel:`Open ElevenLabs API Keys`}},{id:`fish-audio`,displayName:`Fish Audio`,subtitle:`Natural-sounding voice synthesis with custom voice cloning. Requires a Fish Audio API key and voice reference ID.`,supportsVoiceSelection:!0,apiKeyPlaceholder:`Enter your Fish Audio API key`,credentialsGuide:{description:`Sign in to Fish Audio, navigate to API Keys in your dashboard, and create a new key.`,url:`https://fish.audio/app/api-keys/`,linkLabel:`Open Fish Audio API Keys`}},{id:`deepgram`,displayName:`Deepgram`,subtitle:`Fast, accurate text-to-speech synthesis. Uses the same API key as Deepgram speech-to-text.`,supportsVoiceSelection:!1,apiKeyPlaceholder:`Enter your Deepgram API key`,credentialsGuide:{description:`Sign in to Deepgram, navigate to your API Keys page, and create or copy an existing key. This is the same key used for speech-to-text.`,url:`https://console.deepgram.com/`,linkLabel:`Open Deepgram Console`}},{id:`xai`,displayName:`xAI`,subtitle:`Text-to-speech from xAI with expressive voices (eve, ara, rex, sal, leo). Requires an xAI API key.`,supportsVoiceSelection:!1,apiKeyPlaceholder:`Enter your xAI API key`,credentialsGuide:{description:`Sign in to the xAI console, navigate to API Keys, and create a new key.`,url:`https://console.x.ai/`,linkLabel:`Open xAI Console`}}],rn=`macos-native`,an=[{id:`vellum`,displayName:`Vellum`,subtitle:`Transcription through your Vellum account — billed to Vellum credits, no separate API key needed.`},{id:`deepgram`,displayName:`Deepgram`,subtitle:`Fast, accurate speech-to-text transcription. Uses the same API key as Deepgram text-to-speech.`,apiKeyPlaceholder:`Enter your Deepgram API key`,credentialsGuide:{description:`Sign in to Deepgram, navigate to your API Keys page, and create or copy an existing key. This is the same key used for text-to-speech.`,url:`https://console.deepgram.com/`,linkLabel:`Open Deepgram Console`}},{id:`openai`,displayName:`OpenAI`,subtitle:`OpenAI Whisper transcription. Requires an OpenAI API key.`,apiKeyPlaceholder:`sk-…`,credentialsGuide:{description:`Sign in to the OpenAI platform, navigate to API Keys, and create a new secret key.`,url:`https://platform.openai.com/api-keys`,linkLabel:`Open OpenAI API Keys`}},{id:rn,displayName:`macOS Native Dictation`,subtitle:`Apple's on-device speech recognition, running locally through the macOS helper. Works offline and needs no API key.`,requiresNativeDictation:!0,setupWarning:`Requires macOS Dictation to be turned on: open System Settings → Keyboard, then enable Dictation. macOS downloads the on-device speech model the first time Dictation is enabled — without it, voice input produces no transcript.`}],on=[{id:`mailgun`,displayName:`Mailgun`,setupSkill:`mailgun-setup`,docsUrl:`https://www.mailgun.com/`},{id:`resend`,displayName:`Resend`,setupSkill:`resend-setup`,docsUrl:`https://resend.com/`}],sn=[`gemini-3.1-flash-image-preview`,`gemini-3-pro-image-preview`,`gpt-image-2`],cn={"gemini-3.1-flash-image-preview":`Nano Banana 2`,"gemini-3-pro-image-preview":`Nano Banana Pro`,"gpt-image-2":`GPT Image 2`},ln=[`vellum`,`gemini`,`openai`],un={vellum:`Vellum`,gemini:`Gemini`,openai:`OpenAI`};function dn(e){return e===`vellum`?[...sn]:sn.filter(t=>fn(t)===e)}function fn(e){return e.startsWith(`gpt-`)||e.startsWith(`dall-e-`)?`openai`:(e.startsWith(`gemini-`),`gemini`)}var pn=`vellum:ai:imageGenProvider`,mn=`vellum:ai:imageGenModel`,hn=`vellum:ai:webSearchProvider`,gn=`vellum:ai:webFetchProvider`,_n=`vellum:ai:emailMode`,vn=`vellum:ai:emailByoProvider`,yn=`vellum:voice:ttsProvider`,bn=`vellum:voice:ttsApiKey:`,xn=`vellum:voice:ttsVoiceId:`,Sn=`vellum:voice:sttProvider`,Cn=`vellum:voice:sttApiKey:`;function wn(e,t){let n=e.filter(e=>e.status!==`disabled`);return t&&n.some(e=>e.name===t)?t:n[0]?.name}function Tn(e,t){let n=new Set;for(let e of t)e&&n.add(e);return e.filter(e=>e.status!==`disabled`||n.has(e.name))}function En(e){let t=e.label??e.name;return e.status===`disabled`?`${t} (Disabled)`:t}var Dn={profiles:{},profileOrder:[]};function On(e,t){let n=e?.profiles,r=e?.profileOrder,i=!!n&&Object.keys(n).length>0,[a,o]=(0,P.useState)(Dn),[s,c]=(0,P.useState)(t);return t!==s&&(c(t),o(Dn)),(0,P.useEffect)(()=>{i&&o({profiles:n,profileOrder:r??[]})},[i,n,r]),i?{profiles:n,profileOrder:r??[]}:t===s?a:Dn}export{fe as $,zt as A,Ct as B,dn as C,Qt as D,tn as E,Ot as F,Q as G,Je as H,Et as I,Ce as J,ve as K,Dt as L,Nt as M,Mt as N,Vt as O,At as P,G as Q,wt as R,nn as S,Kt as T,qe as U,tt as V,Ye as W,ge as X,Se as Y,K as Z,cn as _,vn as a,ae as at,rn as b,pn as c,V as ct,bn as d,pe as et,yn as f,on as g,hn as h,Tn as i,le as it,Lt as j,Bt as k,Cn as l,B as lt,gn as m,En as n,W as nt,_n as o,oe as ot,xn as p,_e as q,wn as r,U as rt,mn as s,L as st,On as t,de as tt,Sn as u,ln as v,fn as w,an as x,un as y,St as z};