@vellumai/web 0.10.6 → 0.10.7-dev.202607072325.09ad030

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 (408) hide show
  1. package/dist/assets/{AnimatePresence-VF_hIZFD.js → AnimatePresence-CS9ctsw2.js} +2 -2
  2. package/dist/assets/{BundleConfirmPage-DOUpVq0Q.js → BundleConfirmPage-TmAbYoHc.js} +1 -1
  3. package/dist/assets/Combination-BG46kjfK.js +41 -0
  4. package/dist/assets/{a2a-invite-Bv0xGbPM.js → a2a-invite-wNM6Ff0r.js} +1 -1
  5. package/dist/assets/{about-page-ci8HgT8u.js → about-page-B-vlKylA.js} +1 -1
  6. package/dist/assets/{account-page-BiUlH7g9.js → account-page-Br93lL5p.js} +1 -1
  7. package/dist/assets/{account-shell-D0ubbqxG.js → account-shell-UA4SkMah.js} +1 -1
  8. package/dist/assets/acp-run-detail-panel-BF4PE4Zx.js +5 -0
  9. package/dist/assets/{add-credits-modal-BpZFOp84.js → add-credits-modal-o3H9AYgv.js} +1 -1
  10. package/dist/assets/advanced-page-DrCYguEX.js +1 -0
  11. package/dist/assets/ai-page-CQflrT_o.js +1 -0
  12. package/dist/assets/{animated-avatar-FIuLddxJ.js → animated-avatar-Btzkc8DC.js} +1 -1
  13. package/dist/assets/api-bHQ_ZhgO.js +1 -0
  14. package/dist/assets/{api-key-screen-BMj30LHe.js → api-key-screen-D7lS8mvX.js} +1 -1
  15. package/dist/assets/api-sofbwGIB.js +1 -0
  16. package/dist/assets/{app-info-Dtc98M-e.js → app-info-3nsDebwR.js} +1 -1
  17. package/dist/assets/{archive-BFILUl9x.js → archive-0aqysuyd.js} +1 -1
  18. package/dist/assets/{archive-page-aRD_FLfQ.js → archive-page-Du_siKo9.js} +1 -1
  19. package/dist/assets/arrow-left-DI9551VI.js +1 -0
  20. package/dist/assets/arrow-up-BxoccrRI.js +1 -0
  21. package/dist/assets/assistant-feature-flag-store-DIEpxIVZ.js +1 -0
  22. package/dist/assets/assistant-identity-store-DiUhyQ7n.js +1 -0
  23. package/dist/assets/{assistant-status-panel-8WiPtFrO.js → assistant-status-panel-mDIcc6r5.js} +1 -1
  24. package/dist/assets/auth-store-BgCpm8aB.js +2 -0
  25. package/dist/assets/background-task-detail-panel-C2J7hEqw.js +1 -0
  26. package/dist/assets/ban-CVKGuUAQ.js +1 -0
  27. package/dist/assets/{bell-DB1SrBre.js → bell-BQLonLMp.js} +1 -1
  28. package/dist/assets/billing-page-DN5EqQwA.js +3 -0
  29. package/dist/assets/{bookmark-C3S-p0MQ.js → bookmark-CNrithFf.js} +1 -1
  30. package/dist/assets/bookmarks-page-LwzS4lTO.js +1 -0
  31. package/dist/assets/{brain-Bs6LnfHO.js → brain-BLDXGaUy.js} +1 -1
  32. package/dist/assets/browser-B78iIKae.js +2 -0
  33. package/dist/assets/{bug-DDcuQ3au.js → bug-BsuQ5ciQ.js} +1 -1
  34. package/dist/assets/build-state-ksGNj2xS.js +1 -0
  35. package/dist/assets/{misc-GIyc06fS.js → bundle-mjs-BZt35okJ.js} +1 -1
  36. package/dist/assets/button-D1p5nVKJ.js +1 -0
  37. package/dist/assets/{calendar-CpgH8CqM.js → calendar-h-mv1itX.js} +1 -1
  38. package/dist/assets/{capture-error-8raDoxFL.js → capture-error-CmeVLfq0.js} +1 -1
  39. package/dist/assets/{card-BibIM9x3.js → card-Bv5O5juh.js} +1 -1
  40. package/dist/assets/channels-page-route-BviNR0ND.js +9 -0
  41. package/dist/assets/check-DFNrQERi.js +1 -0
  42. package/dist/assets/checkbox-Dy4hoNDa.js +1 -0
  43. package/dist/assets/chevron-down-qD-re7AW.js +1 -0
  44. package/dist/assets/chevron-left-BMF1xNfR.js +1 -0
  45. package/dist/assets/chevron-right-DqqmezXC.js +1 -0
  46. package/dist/assets/{chevron-up-BRZN6p_l.js → chevron-up-3jCod9LW.js} +1 -1
  47. package/dist/assets/{circle-alert-DvNg50UK.js → circle-alert-zOqdmf25.js} +1 -1
  48. package/dist/assets/circle-check-VSiny8yl.js +1 -0
  49. package/dist/assets/{client-feature-flag-store-D3f7L4rr.js → client-feature-flag-store-C0Tjm-Hl.js} +1 -1
  50. package/dist/assets/client-identity-DAs2xjUd.js +1 -0
  51. package/dist/assets/{clipboard-copy-cZENPJ25.js → clipboard-copy-DF6K1xc6.js} +1 -1
  52. package/dist/assets/{cloud-off-fMC5iwVY.js → cloud-off-Db1nySkc.js} +1 -1
  53. package/dist/assets/cn-C36Yvcac.js +1 -0
  54. package/dist/assets/code-Czx7d7SK.js +1 -0
  55. package/dist/assets/{command-palette-BHVjkDPP.js → command-palette-DEJb0zLE.js} +1 -1
  56. package/dist/assets/{command-palette-window-page-C8htNOF6.js → command-palette-window-page-fbP12QjU.js} +1 -1
  57. package/dist/assets/{community-page-BvBiiBNT.js → community-page-C1IbvYv7.js} +1 -1
  58. package/dist/assets/confirm-dialog-C0tP3s3P.js +1 -0
  59. package/dist/assets/{connect-page-65umesqK.js → connect-page-BMcYePcl.js} +1 -1
  60. package/dist/assets/{consent-controls-CoeCtvwh.js → consent-controls-COgMzEvv.js} +1 -1
  61. package/dist/assets/contacts-gateway-CZELTTWO.js +1 -0
  62. package/dist/assets/contacts-page-route-BNOTqSpK.js +1 -0
  63. package/dist/assets/{conversation-list-fetchers-D5PpdmFr.js → conversation-list-fetchers-DThMiPVW.js} +1 -1
  64. package/dist/assets/{conversation-store-BheNrWpL.js → conversation-store-DIfV0qat.js} +1 -1
  65. package/dist/assets/copy-Cn1FKrEp.js +1 -0
  66. package/dist/assets/{cpu-D1r7PLan.js → cpu-BJuB2Khn.js} +1 -1
  67. package/dist/assets/{credit-card-BwN95biV.js → credit-card-BuyWdO9t.js} +1 -1
  68. package/dist/assets/{danger-zone-redirect-page-BLyU56iI.js → danger-zone-redirect-page-CCxH8sPh.js} +1 -1
  69. package/dist/assets/debug-page-CJkMdOHL.js +4 -0
  70. package/dist/assets/definitions-B5E7eevX.js +1 -0
  71. package/dist/assets/{deploy-dialogs-DyZ__q_z.js → deploy-dialogs-r9b51B5r.js} +1 -1
  72. package/dist/assets/{detail-card-DXLMG-Zw.js → detail-card-TE7YEaVh.js} +1 -1
  73. package/dist/assets/{detail-panel-stop-button-DXQQXCtp.js → detail-panel-stop-button-BF53QuQ1.js} +1 -1
  74. package/dist/assets/detail-shell-Cln4I2nP.js +4 -0
  75. package/dist/assets/developer-page-D-gYFJxp.js +1 -0
  76. package/dist/assets/devices-page-snCBoJN0.js +1 -0
  77. package/dist/assets/{diagnostics-BQUtALh-.js → diagnostics-CPXHD6ua.js} +1 -1
  78. package/dist/assets/{dictation-overlay-page-D5pUTXA9.js → dictation-overlay-page-BPqv3HiZ.js} +1 -1
  79. package/dist/assets/dist-CAIL9R6N.js +1 -0
  80. package/dist/assets/dist-CXAvuqD6.js +1 -0
  81. package/dist/assets/dist-DSnPnoEz.js +1 -0
  82. package/dist/assets/dist-DcPLFkll.js +1 -0
  83. package/dist/assets/document-viewer-page-4pRVWlRI.js +1 -0
  84. package/dist/assets/{domain-field-CNW1t3OC.js → domain-field-C5a2iMot.js} +1 -1
  85. package/dist/assets/dropdown-BsftIzw-.js +1 -0
  86. package/dist/assets/earn-credits-modal-zxGdReHl.js +1 -0
  87. package/dist/assets/effective-timezone-DzaTH0MB.js +1 -0
  88. package/dist/assets/{emails-page--1HEyMqD.js → emails-page-DKvm3nEr.js} +1 -1
  89. package/dist/assets/{environment-store-CN3UaYQg.js → environment-store-BhzMRyLQ.js} +1 -1
  90. package/dist/assets/esm-0-ZimRqn.js +2 -0
  91. package/dist/assets/esm-Bz3kpqSC.js +2 -0
  92. package/dist/assets/esm-C6lFTYDL.js +1 -0
  93. package/dist/assets/esm-D8HhVT3_.js +2 -0
  94. package/dist/assets/esm-DTVZeytq.js +2 -0
  95. package/dist/assets/esm-FQkJ9Rs-.js +2 -0
  96. package/dist/assets/esm-dnA2U8Jo.js +2 -0
  97. package/dist/assets/{external-link-BgOnp59e.js → external-link-CfkE0LZW.js} +1 -1
  98. package/dist/assets/feature-flag-catalog-Ca2Lo1Sx.js +1 -0
  99. package/dist/assets/file-editor-UZBbQtPc.js +1 -0
  100. package/dist/assets/{file-text-D4wmdFsJ.js → file-text-DDcypanB.js} +1 -1
  101. package/dist/assets/general-page-5PLBxswP.js +1 -0
  102. package/dist/assets/{globe-CRuerXYx.js → globe-BgFbM_BQ.js} +1 -1
  103. package/dist/assets/haptics-7ccjHjqM.js +2 -0
  104. package/dist/assets/{hard-drive-DsJ64Fuu.js → hard-drive-8yxasJWm.js} +1 -1
  105. package/dist/assets/hatching-screen-BIxpLmO2.js +1 -0
  106. package/dist/assets/home-page-route-OvBWSwFC.js +1 -0
  107. package/dist/assets/{hosting-screen--GdpAsIo.js → hosting-screen-BlWbXsL-.js} +1 -1
  108. package/dist/assets/identity-page-route-CeyRWGSF.js +1 -0
  109. package/dist/assets/index-BCm5Qo5B.css +2 -0
  110. package/dist/assets/index-DD6uDbkv.js +114 -0
  111. package/dist/assets/{info-C9uyv2bI.js → info-DZoiK09u.js} +1 -1
  112. package/dist/assets/{input-D4W4p0pZ.js → input-DR1eB4a1.js} +1 -1
  113. package/dist/assets/{inspect-page-C-fq5PsM.js → inspect-page-Bwi5XsEh.js} +4 -4
  114. package/dist/assets/{install-DKnSvyt9.js → install-4dDaK6k1.js} +1 -1
  115. package/dist/assets/integrations-page-kEQJPFn5.js +1 -0
  116. package/dist/assets/intelligence-layout-DrZ0cmc1.js +1 -0
  117. package/dist/assets/{keyboard-shortcuts-page-DiFBwxwl.js → keyboard-shortcuts-page-CY1Iu2jL.js} +1 -1
  118. package/dist/assets/library-detail-page-CfiXPkp7.js +1 -0
  119. package/dist/assets/library-page-CweBANUw.js +1 -0
  120. package/dist/assets/{link-2-BIp7l4R9.js → link-2-DfxjDwqD.js} +1 -1
  121. package/dist/assets/list-row-YOzkXNjq.js +1 -0
  122. package/dist/assets/loader-circle-088bE-Hd.js +1 -0
  123. package/dist/assets/local-mode-YoUYEn7C.js +39 -0
  124. package/dist/assets/{log-in-BCOweEUO.js → log-in-BQonRVoo.js} +1 -1
  125. package/dist/assets/log-out-zhu7VraA.js +1 -0
  126. package/dist/assets/{login-flow-COr5zRoB.js → login-flow-CUN2stiy.js} +1 -1
  127. package/dist/assets/login-page-C5xLPDcY.js +1 -0
  128. package/dist/assets/logout-page-DmbJTrnq.js +1 -0
  129. package/dist/assets/logs-layout-eEqpOnNZ.js +1 -0
  130. package/dist/assets/{memory-router-playground-page-rPz9hfL9.js → memory-router-playground-page-CdPSZDpx.js} +1 -1
  131. package/dist/assets/menu-Bjq0lFxx.js +1 -0
  132. package/dist/assets/{messages-Doco46Z6.js → messages-CFT0cFRG.js} +2 -2
  133. package/dist/assets/{metric-card-DejhOUyM.js → metric-card-8SJnb8f6.js} +1 -1
  134. package/dist/assets/{minimize-2-BQKYHW0m.js → minimize-2-BusmaFRB.js} +1 -1
  135. package/dist/assets/misc-BTzhQRok.js +1 -0
  136. package/dist/assets/{mobile-sidebar-drawer-DwE65WjT.js → mobile-sidebar-drawer-DOjPe_9x.js} +1 -1
  137. package/dist/assets/{modal-BNAVT2FK.js → modal-cdtdc8dA.js} +1 -1
  138. package/dist/assets/{monitor-xGqXetuk.js → monitor-CWNmhnli.js} +1 -1
  139. package/dist/assets/{moon-rIyEhhAK.js → moon-Br0t6dvo.js} +1 -1
  140. package/dist/assets/mutation-error-DjaYE1g4.js +1 -0
  141. package/dist/assets/native-biometric-rXfe6lHU.js +6 -0
  142. package/dist/assets/native-deep-link-BWXQ0lVp.js +1 -0
  143. package/dist/assets/native-file-v09EzS1a.js +2 -0
  144. package/dist/assets/notice-BQRdh9ak.js +1 -0
  145. package/dist/assets/{notifications-page-D3Gip5vS.js → notifications-page-B4E24ebC.js} +1 -1
  146. package/dist/assets/{oauth-complete-page-DAuZqgBq.js → oauth-complete-page-DTN-GTIH.js} +1 -1
  147. package/dist/assets/{oauth-popup-complete-page-CvOB8DyR.js → oauth-popup-complete-page-CaXW7ptF.js} +1 -1
  148. package/dist/assets/{page-shell-C3-rU99a.js → page-shell-D2BB59Ix.js} +1 -1
  149. package/dist/assets/pairing-page-DZcTw1tq.js +1 -0
  150. package/dist/assets/panel-item-vXPWJAXs.js +1 -0
  151. package/dist/assets/{password-reset-page-BCyMJkWQ.js → password-reset-page-4qZSsNBc.js} +1 -1
  152. package/dist/assets/{pencil-CtYlsDsm.js → pencil-rKUVpppO.js} +1 -1
  153. package/dist/assets/platform-detection-T2pHtGrM.js +1 -0
  154. package/dist/assets/platform-loopback-page-DwyL8kjo.js +1 -0
  155. package/dist/assets/{plugin-detail-page-D_0rFOJ7.js → plugin-detail-page-C43OCujw.js} +1 -1
  156. package/dist/assets/plugins-page-URxDlRlx.js +1 -0
  157. package/dist/assets/plugins-surface-BePLpYIv.js +1 -0
  158. package/dist/assets/plus-D96er_7C.js +1 -0
  159. package/dist/assets/pointer-5Fi1H1Av.js +1 -0
  160. package/dist/assets/popover-DKvyZMoc.js +1 -0
  161. package/dist/assets/prechat-route-Td35x7FF.js +1 -0
  162. package/dist/assets/prefs-DQSqJGU7.js +1 -0
  163. package/dist/assets/privacy-page-vr4pbmh9.js +1 -0
  164. package/dist/assets/privacy-screen-Cos37QIv.js +1 -0
  165. package/dist/assets/{progress-bar-DIFlWPPg.js → progress-bar-q6qGo2Sp.js} +1 -1
  166. package/dist/assets/provider-callback-page-BXaSHzDk.js +1 -0
  167. package/dist/assets/provider-key-DMwDGx17.js +1 -0
  168. package/dist/assets/provider-signup-page-R0UzbDFK.js +1 -0
  169. package/dist/assets/proxy-Dc2HWwub.js +1 -0
  170. package/dist/assets/{quick-input-page-DITr3SKX.js → quick-input-page-CrIOFT4p.js} +1 -1
  171. package/dist/assets/react-query.gen-AbBrwMPh.js +1 -0
  172. package/dist/assets/react-query.gen-DrkKCNeH.js +1 -0
  173. package/dist/assets/{refresh-cw-Dlu2vgR6.js → refresh-cw-NXysUsL-.js} +1 -1
  174. package/dist/assets/remote-gateway-session-DnRxrW5U.js +1 -0
  175. package/dist/assets/{repeat-MDHTMmlC.js → repeat-Hff7oFdK.js} +1 -1
  176. package/dist/assets/research-mock-page-DplpbgtW.js +1 -0
  177. package/dist/assets/research-onboarding-persistence-OdxcXxrg.js +1 -0
  178. package/dist/assets/research-onboarding-route-Cv9ElOtb.js +61 -0
  179. package/dist/assets/{resize-errors-CN02qg8O.js → resize-errors-WFP78pIe.js} +1 -1
  180. package/dist/assets/resolved-assistants-store-DccydJ5N.js +1 -0
  181. package/dist/assets/{review-terms-screen-C2mUaOA6.js → review-terms-screen-DxUdQm5K.js} +1 -1
  182. package/dist/assets/routes-CBm-E8tn.js +1 -0
  183. package/dist/assets/{save-C03NWAqR.js → save-PmScRf6-.js} +1 -1
  184. package/dist/assets/{schedules-CQOSfZg8.js → schedules-D_aX-M6x.js} +1 -1
  185. package/dist/assets/{sdk.gen-Ec1nF7iZ.js → sdk.gen-B3bmXhSv.js} +1 -1
  186. package/dist/assets/sdk.gen-JlA-scjv.js +1 -0
  187. package/dist/assets/sdk.gen-P3yAvcBO.js +6 -0
  188. package/dist/assets/security-page-pOYL1CFa.js +1 -0
  189. package/dist/assets/select-assistant-screen-B2m5-Dex.js +1 -0
  190. package/dist/assets/{setting-row-Ci9YIJwu.js → setting-row-DAnTCHDc.js} +1 -1
  191. package/dist/assets/settings-layout-D83FJ0WZ.js +1 -0
  192. package/dist/assets/share-feedback-modal-Po7Xlam-.js +1 -0
  193. package/dist/assets/{shortcut-keys-vM6sNj7W.js → shortcut-keys-DKqAVRjB.js} +1 -1
  194. package/dist/assets/sidebar-tree-DKykyrmE.js +1 -0
  195. package/dist/assets/signup-page-3MF8DoRN.js +1 -0
  196. package/dist/assets/{signup-shell-Bw9OFI-z.js → signup-shell-CfqC32v2.js} +1 -1
  197. package/dist/assets/skills-page-DE1-rldF.js +1 -0
  198. package/dist/assets/sounds-page-Bkl7tFeF.js +1 -0
  199. package/dist/assets/{sparkles-Bkcjn8HQ.js → sparkles-3RJkeWa7.js} +1 -1
  200. package/dist/assets/src-C-RxAhZg.js +293 -0
  201. package/dist/assets/{stat-square-8mff1dLC.js → stat-square-CSQ2Md1V.js} +1 -1
  202. package/dist/assets/subagent-detail-panel-LxxIRTeB.js +4 -0
  203. package/dist/assets/{subagent-store-BmGtlv6O.js → subagent-store-BRcRbFQY.js} +1 -1
  204. package/dist/assets/system-events-page-CvzT4-vY.js +1 -0
  205. package/dist/assets/{system-events-redirect-page-Dnoz3v9J.js → system-events-redirect-page-DePjjQN1.js} +1 -1
  206. package/dist/assets/tag-BriFUtvF.js +1 -0
  207. package/dist/assets/tiptap-document-editor-gEhk4ieZ.js +282 -0
  208. package/dist/assets/toast-HPdEfHz3.js +1 -0
  209. package/dist/assets/{toggle-X_kQW5my.js → toggle-D7S110RM.js} +1 -1
  210. package/dist/assets/{tool-detail-panel-B3u6-K3R.js → tool-detail-panel-Dft0Hx4c.js} +2 -2
  211. package/dist/assets/{triangle-alert-BcZY_IvR.js → triangle-alert-CuLBwl1x.js} +1 -1
  212. package/dist/assets/{typography-BscuIPxA.js → typography-D5f7kt80.js} +1 -1
  213. package/dist/assets/{upgrade-cancel-page-CgX8IYAL.js → upgrade-cancel-page-SdR5eJcW.js} +1 -1
  214. package/dist/assets/{upgrade-success-page-DKKw3H1x.js → upgrade-success-page-CVLYuCHs.js} +1 -1
  215. package/dist/assets/usage-page-BqRgURSH.js +1 -0
  216. package/dist/assets/{use-active-assistant-id-iCLBbJXU.js → use-active-assistant-id-CyH4rTOc.js} +1 -1
  217. package/dist/assets/{use-bus-subscription-Cv9Js5_J.js → use-bus-subscription-BtJLhem5.js} +1 -1
  218. package/dist/assets/use-edge-swipe-back-uITLp4L4.js +1 -0
  219. package/dist/assets/use-invite-link-dialog-NmdTWylD.js +1 -0
  220. package/dist/assets/use-is-org-ready-CkTSZRNq.js +1 -0
  221. package/dist/assets/use-onboarding-login-ChdVOaal.js +1 -0
  222. package/dist/assets/{use-reduced-motion-BlCAREB8.js → use-reduced-motion-DRo6JmG-.js} +1 -1
  223. package/dist/assets/{use-skill-categories-CRMzRD6m.js → use-skill-categories-DLf0Fo9y.js} +1 -1
  224. package/dist/assets/{user-plus-D30zPuGV.js → user-plus-CBZUdRuz.js} +1 -1
  225. package/dist/assets/{utils-ChLzMd8R.js → utils-BbAwYb4I.js} +1 -1
  226. package/dist/assets/{viewer-store-D7cH9LQF.js → viewer-store-Kfp8axoz.js} +1 -1
  227. package/dist/assets/{voice-page-BT_3N22n.js → voice-page-IOVqjMhF.js} +1 -1
  228. package/dist/assets/{weather-forecast-display-C0Zvm9vl.js → weather-forecast-display-Ba7wKOLM.js} +1 -1
  229. package/dist/assets/web-BFaMQr0t.js +1 -0
  230. package/dist/assets/web-BG6ifSw3.js +1 -0
  231. package/dist/assets/web-BhRkAg3a.js +1 -0
  232. package/dist/assets/web-BkOWX8LM.js +1 -0
  233. package/dist/assets/web-Boeo363U.js +1 -0
  234. package/dist/assets/web-DIGPtYgc.js +1 -0
  235. package/dist/assets/web-DPZnGXO_.js +1 -0
  236. package/dist/assets/web-LKOaH9Uf.js +1 -0
  237. package/dist/assets/{welcome-screen-Dx4jNLFF.js → welcome-screen-wOifg1iN.js} +1 -1
  238. package/dist/assets/{workflow-detail-panel-CvbzHGzG.js → workflow-detail-panel-W3CdD_4G.js} +1 -1
  239. package/dist/assets/workspace-page-C10OB0F4.js +1 -0
  240. package/dist/assets/x-CwzRJv9J.js +1 -0
  241. package/dist/index.html +140 -140
  242. package/package.json +1 -1
  243. package/dist/assets/Combination-UBPhVLWy.js +0 -41
  244. package/dist/assets/acp-run-detail-panel-B2ycT_78.js +0 -5
  245. package/dist/assets/advanced-page-BClLCzBA.js +0 -1
  246. package/dist/assets/ai-page-DnocNQmY.js +0 -1
  247. package/dist/assets/api-DvthVfI2.js +0 -1
  248. package/dist/assets/arrow-left-CP-EhDNF.js +0 -1
  249. package/dist/assets/arrow-up-nBfZxfhi.js +0 -1
  250. package/dist/assets/assistant-api-Dlwk8jYW.js +0 -1
  251. package/dist/assets/assistant-feature-flag-store-B440uAh9.js +0 -6
  252. package/dist/assets/assistant-identity-store-DP4B8mmA.js +0 -1
  253. package/dist/assets/auth-store-B8KDWYi4.js +0 -2
  254. package/dist/assets/background-task-detail-panel-IILCVufr.js +0 -1
  255. package/dist/assets/ban-BpBuRCKI.js +0 -1
  256. package/dist/assets/billing-page-q1D1xspC.js +0 -3
  257. package/dist/assets/bookmarks-page-D5XLE9A7.js +0 -1
  258. package/dist/assets/browser-DdI2GrPw.js +0 -2
  259. package/dist/assets/build-state-DAcnY2g_.js +0 -1
  260. package/dist/assets/button-D-AX8Voo.js +0 -1
  261. package/dist/assets/channels-page-route-m_HALkI5.js +0 -1
  262. package/dist/assets/check-CW0KmV0o.js +0 -1
  263. package/dist/assets/check-D6WkI0gF.js +0 -1
  264. package/dist/assets/checkbox-ueHEk2G-.js +0 -1
  265. package/dist/assets/chevron-left-DghyKSEE.js +0 -1
  266. package/dist/assets/chevron-right-B6vEpVY0.js +0 -1
  267. package/dist/assets/circle-check-DzlJxj_M.js +0 -1
  268. package/dist/assets/client-identity-DiDHLoNp.js +0 -1
  269. package/dist/assets/cn-DvW5mxZR.js +0 -1
  270. package/dist/assets/code-BhoMjTYO.js +0 -1
  271. package/dist/assets/confirm-dialog-bfBx6UYv.js +0 -1
  272. package/dist/assets/contacts-gateway-_mvlDweU.js +0 -1
  273. package/dist/assets/contacts-page-route-CQXKgYfo.js +0 -1
  274. package/dist/assets/conversation-selection-jLLIV1vI.js +0 -1
  275. package/dist/assets/createLucideIcon-BlMXrA59.js +0 -1
  276. package/dist/assets/debug-page-BfYzZTih.js +0 -4
  277. package/dist/assets/detail-shell-C--69S4R.js +0 -4
  278. package/dist/assets/developer-page-LlFmliRP.js +0 -1
  279. package/dist/assets/device-settings-BBwtGKJb.js +0 -1
  280. package/dist/assets/devices-page-C65LYzPc.js +0 -1
  281. package/dist/assets/dist-CGS5MDkK.js +0 -5
  282. package/dist/assets/dist-Ddn3FnfV.js +0 -1
  283. package/dist/assets/document-viewer-page-mRBDn4Gc.js +0 -1
  284. package/dist/assets/dropdown-ChWAdhLG.js +0 -1
  285. package/dist/assets/earn-credits-modal-DVUdlw2V.js +0 -1
  286. package/dist/assets/effective-timezone-DrYGH2Lb.js +0 -1
  287. package/dist/assets/esm-BKCTntwk.js +0 -2
  288. package/dist/assets/esm-CNMouzMT.js +0 -2
  289. package/dist/assets/esm-CSgBiYzF.js +0 -2
  290. package/dist/assets/esm-CccIkVyz.js +0 -2
  291. package/dist/assets/esm-CpbLh3YJ.js +0 -2
  292. package/dist/assets/esm-DlsDcixX.js +0 -1
  293. package/dist/assets/feature-flag-catalog-CRFA909Q.js +0 -1
  294. package/dist/assets/file-editor-PNZ9cTI-.js +0 -1
  295. package/dist/assets/format-DuvgAcxs.js +0 -1
  296. package/dist/assets/general-page-DL3fu61f.js +0 -1
  297. package/dist/assets/haptics-DUNUKgg4.js +0 -1
  298. package/dist/assets/hatching-screen-Bc0QiEVj.js +0 -1
  299. package/dist/assets/home-page-route-CR3ajpvl.js +0 -1
  300. package/dist/assets/identity-page-route-z0mc5jGO.js +0 -1
  301. package/dist/assets/index-CWzNQ8A_.js +0 -129
  302. package/dist/assets/index-DMbjaeZr.css +0 -2
  303. package/dist/assets/info-BGLlcyt6.js +0 -1
  304. package/dist/assets/integrations-page-BeTfBE7R.js +0 -1
  305. package/dist/assets/intelligence-layout-ShKSJFRX.js +0 -1
  306. package/dist/assets/lib-DWRDi23Z.js +0 -14
  307. package/dist/assets/library-detail-page-BE-B5vd3.js +0 -1
  308. package/dist/assets/library-page-COsPjT0P.js +0 -1
  309. package/dist/assets/list-row-Di0MK3wu.js +0 -1
  310. package/dist/assets/loader-circle-BITX1qOw.js +0 -1
  311. package/dist/assets/local-mode-CgrENuVf.js +0 -39
  312. package/dist/assets/login-page-B_AWg_-m.js +0 -1
  313. package/dist/assets/logout-page-B-vCELzg.js +0 -1
  314. package/dist/assets/logs-layout-Bb2Ki85T.js +0 -1
  315. package/dist/assets/menu-BLJEjTFD.js +0 -1
  316. package/dist/assets/mutation-error-BN5zz5X4.js +0 -1
  317. package/dist/assets/native-biometric-C5AdTx4r.js +0 -6
  318. package/dist/assets/native-deep-link-CkFNpKqQ.js +0 -1
  319. package/dist/assets/native-file-swemzdL9.js +0 -2
  320. package/dist/assets/notice-CqRgVmeL.js +0 -1
  321. package/dist/assets/pairing-page-CSXR4O5_.js +0 -1
  322. package/dist/assets/panel-item-Q1g7DFJw.js +0 -1
  323. package/dist/assets/platform-detection-B1WOWEur.js +0 -1
  324. package/dist/assets/platform-loopback-page-DViSSCNq.js +0 -1
  325. package/dist/assets/plugins-page-DnsCa0ka.js +0 -1
  326. package/dist/assets/plugins-surface-CAUFbZFj.js +0 -1
  327. package/dist/assets/plus-CzwTg9D8.js +0 -1
  328. package/dist/assets/popover-BUj2v1xo.js +0 -1
  329. package/dist/assets/prechat-route-BRLg12I0.js +0 -1
  330. package/dist/assets/prefs-BK4ReLBx.js +0 -1
  331. package/dist/assets/privacy-page-DK_E5UDG.js +0 -1
  332. package/dist/assets/privacy-screen-VCEt0iH8.js +0 -1
  333. package/dist/assets/provider-callback-page-DSqK6K5B.js +0 -1
  334. package/dist/assets/provider-key-DSBs9REL.js +0 -1
  335. package/dist/assets/provider-signup-page-CuLVID0r.js +0 -1
  336. package/dist/assets/proxy-BzcB2wP4.js +0 -1
  337. package/dist/assets/react-query.gen-Bxy9zjSn.js +0 -1
  338. package/dist/assets/react-query.gen-DQUX56Gs.js +0 -1
  339. package/dist/assets/remote-gateway-session-C2xcV9Z_.js +0 -1
  340. package/dist/assets/research-mock-page-D0KTjYOI.js +0 -1
  341. package/dist/assets/research-onboarding-route-CoGKBjAq.js +0 -61
  342. package/dist/assets/resolved-assistants-store-Dqf0LJrA.js +0 -1
  343. package/dist/assets/routes-CCywyokq.js +0 -1
  344. package/dist/assets/sdk.gen-B3Z8klU-.js +0 -1
  345. package/dist/assets/select-assistant-screen-DkgCyv2V.js +0 -1
  346. package/dist/assets/settings-layout-BLjA2_fl.js +0 -1
  347. package/dist/assets/share-feedback-modal-34O8UomD.js +0 -1
  348. package/dist/assets/sidebar-tree-DJnIQnXc.js +0 -1
  349. package/dist/assets/signup-page-CJeIDhFC.js +0 -1
  350. package/dist/assets/skills-page-CcrxOAfG.js +0 -1
  351. package/dist/assets/sound-manager-DtzFjWmP.js +0 -1
  352. package/dist/assets/sounds-page-BHhIVuV0.js +0 -1
  353. package/dist/assets/src-CUycEQpW.js +0 -293
  354. package/dist/assets/subagent-detail-panel-Cj7wlfR3.js +0 -4
  355. package/dist/assets/system-events-page-B9LdpkBg.js +0 -1
  356. package/dist/assets/tag-CW6WC4fE.js +0 -1
  357. package/dist/assets/tiptap-document-editor-jcHGSIJg.js +0 -281
  358. package/dist/assets/toast-B0OiPFFj.js +0 -1
  359. package/dist/assets/trace-page-D-2QJklH.js +0 -1
  360. package/dist/assets/triangle-alert-Bz1PpciW.js +0 -1
  361. package/dist/assets/usage-page-obI_HCGk.js +0 -1
  362. package/dist/assets/use-is-org-ready-CXt7jaER.js +0 -1
  363. package/dist/assets/use-onboarding-login-DgxS4dsO.js +0 -1
  364. package/dist/assets/use-setup-channel-param-CNNd-gJV.js +0 -9
  365. package/dist/assets/web-60vPNzAv.js +0 -1
  366. package/dist/assets/web-BZF5Krzc.js +0 -1
  367. package/dist/assets/web-BfGgEMt3.js +0 -1
  368. package/dist/assets/web-Bqls6sCO.js +0 -1
  369. package/dist/assets/web-DF-93Ff2.js +0 -1
  370. package/dist/assets/web-Dw05M3EW.js +0 -1
  371. package/dist/assets/web-IVArvzQ-.js +0 -1
  372. package/dist/assets/workspace-page-DDNf-ykG.js +0 -1
  373. package/dist/assets/x-B0gfyRAR.js +0 -1
  374. package/dist/assets/x-C8bCmIhD.js +0 -1
  375. /package/dist/assets/{api-errors-CPc5p2r9.js → api-errors-DZ6ckXtC.js} +0 -0
  376. /package/dist/assets/{avatar-bundled-components-DMC1S-8P.js → avatar-bundled-components-vcdejfQE.js} +0 -0
  377. /package/dist/assets/{avatar-svg-compositor-D6G3Y6hA.js → avatar-svg-compositor-T4Nlid_8.js} +0 -0
  378. /package/dist/assets/{build.umd-gY3Uzz96.js → build.umd-BRloxS0w.js} +0 -0
  379. /package/dist/assets/{by-tool-use-id-index-KHuXlFNc.js → by-tool-use-id-index-BzhJW3di.js} +0 -0
  380. /package/dist/assets/{chat-C19ZjAL3.js → chat-CZBa_f1B.js} +0 -0
  381. /package/dist/assets/{client.gen-nWvCdeJb.js → client.gen-AQhSugfA.js} +0 -0
  382. /package/dist/assets/{client.gen-CbVuiseX.js → client.gen-V_HNquaL.js} +0 -0
  383. /package/dist/assets/{composer-focus-Clt7vN-2.js → composer-focus-mqPYdp3p.js} +0 -0
  384. /package/dist/assets/{create-selectors-BE0_e_Ed.js → create-selectors-DxrPZQND.js} +0 -0
  385. /package/dist/assets/{createLucideIcon-Bjb-Kuq7.js → createLucideIcon-IRfcSUxS.js} +0 -0
  386. /package/dist/assets/{definitions-DeG2sRFv.js → definitions-C6k0EQJc.js} +0 -0
  387. /package/dist/assets/{dist-CNEsSZUe.js → dist-DYJxpPwT2.js} +0 -0
  388. /package/dist/assets/{edit-chat-session-RMvGKcHJ.js → edit-chat-session-ViDBnAwR.js} +0 -0
  389. /package/dist/assets/{emoji-catalog-data-ClLxfwNZ.js → emoji-catalog-data-CX_Q9AiW.js} +0 -0
  390. /package/dist/assets/{event-bus-ULoEgfFr.js → event-bus-BXKLAX-e.js} +0 -0
  391. /package/dist/assets/{format-date-CmX7EYBN.js → format-date-C-eCaBOj.js} +0 -0
  392. /package/dist/assets/{format-file-size-D7iZejgy.js → format-file-size-Cnq-CdFe.js} +0 -0
  393. /package/dist/assets/{impersonate-version-flag-BpzPjXeb.js → impersonate-version-flag-CPPn65xN.js} +0 -0
  394. /package/dist/assets/{is-electron-C_ZTVhv8.js → is-electron-LEymSS4C.js} +0 -0
  395. /package/dist/assets/{llm-dimension-DyYwG3mU.js → llm-dimension-DMXIDBqX.js} +0 -0
  396. /package/dist/assets/{onboarding-step-layout-2XcmxqFN.js → onboarding-step-layout-CqsxCaSG.js} +0 -0
  397. /package/dist/assets/{pdf-Cuv7mg8b.js → pdf-BvpzlNL1.js} +0 -0
  398. /package/dist/assets/{prechat-BzdosDIx.js → prechat-BoMF1Jj-.js} +0 -0
  399. /package/dist/assets/{prechat-names-DPum8sFP.js → prechat-names-r2l4SHE1.js} +0 -0
  400. /package/dist/assets/{public-asset-DYtCQInw.js → public-asset-CsdLlNtA.js} +0 -0
  401. /package/dist/assets/{semver-DMpUdXpu.js → semver-BcXhJ-Ta.js} +0 -0
  402. /package/dist/assets/{status-badge-pill-CXey_r2B.js → status-badge-pill-DWywzjvD.js} +0 -0
  403. /package/dist/assets/{step-indicator-dots-CvPP_zNN.js → step-indicator-dots-DKLSzjtH.js} +0 -0
  404. /package/dist/assets/{usage-window-C6gWu5Qu.js → usage-window-Bqypb8ID.js} +0 -0
  405. /package/dist/assets/{use-is-mobile-Cqknxs2C.js → use-is-mobile-Cy10kl9u.js} +0 -0
  406. /package/dist/assets/{workflow-status-BF9EOzZI.js → workflow-status-CQB-_S1y.js} +0 -0
  407. /package/dist/assets/{xterm-BPl0dA68.js → xterm-C7EFbJH6.js} +0 -0
  408. /package/dist/assets/{xterm-addon-fit-BCzoNVYn.js → xterm-addon-fit-IajRC7KP.js} +0 -0
@@ -1,5 +0,0 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./capture-error-8raDoxFL.js";import{t as n}from"./react-DJZBPgpf.js";import{t as r}from"./button-D-AX8Voo.js";import{t as i}from"./jsx-runtime-CVSDxk6A.js";import{t as a}from"./typography-BscuIPxA.js";import"./src-CUycEQpW.js";import{t as o}from"./tag-CW6WC4fE.js";import{t as s}from"./createLucideIcon-BlMXrA59.js";import{t as c}from"./arrow-left-CP-EhDNF.js";import{t as l}from"./brain-Bs6LnfHO.js";import{t as u}from"./chevron-right-B6vEpVY0.js";import{t as d}from"./circle-check-DzlJxj_M.js";import{t as f}from"./code-BhoMjTYO.js";import{t as p}from"./file-text-D4wmdFsJ.js";import{t as m}from"./globe-CRuerXYx.js";import{t as h}from"./repeat-MDHTMmlC.js";import{t as g}from"./triangle-alert-BcZY_IvR.js";import{t as _}from"./x-B0gfyRAR.js";import{$ as v,Ci as y,Ft as b,Ki as x,Mt as S,Na as ee,Nt as C,Oa as w,Pt as te,Ta as ne,dt as re,fi as ie,ft as ae,gi as oe,pi as T,pt as E,ut as D,wi as se,xa as ce}from"./index-CWzNQ8A_.js";import{t as le}from"./status-badge-pill-CXey_r2B.js";var ue=s(`file-pen`,[[`path`,{d:`M12.659 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v9.34`,key:`o6klzx`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M10.378 12.622a1 1 0 0 1 3 3.003L8.36 20.637a2 2 0 0 1-.854.506l-2.867.837a.5.5 0 0 1-.62-.62l.836-2.869a2 2 0 0 1 .506-.853z`,key:`zhnas1`}]]),de=s(`folder-input`,[[`path`,{d:`M2 9V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-1`,key:`fm4g5t`}],[`path`,{d:`M2 13h10`,key:`pgb2dq`}],[`path`,{d:`m9 16 3-3-3-3`,key:`6m91ic`}]]),O=e(n(),1),k=``;function A(e,t){switch(e){case`complete`:case`completed`:return`completed`;case`failed`:case`error`:return`error`;case void 0:return t;default:return`running`}}function fe(e){return(e.messageId?.startsWith(`local-marker-`)??!1)||(e.content?.startsWith(`↻ Steering: `)??!1)}function j(e){let t=e??``;return t.startsWith(`↻ Steering: `)?t.slice(S.length):t}function M(e){let t=e[e.length-1];t&&(t.kind===`agent`||t.kind===`thinking`)&&!t.isComplete&&(e[e.length-1]={...t,isComplete:!0})}function N(e,t){if(t.updateType===`agent_message_chunk`&&fe(t)){M(e),e.push({kind:`user`,id:t.messageId??`steer-${e.length}`,content:j(t.content)});return}switch(t.updateType){case`user_message_chunk`:{let n=t.messageId??k,r=j(t.content),i=e[e.length-1];i&&i.kind===`user`&&i.id===n?e[e.length-1]={...i,content:i.content+r}:(M(e),e.push({kind:`user`,id:n,content:r}));let a=e[e.length-1].content;for(let t=0;t<e.length-1;t++){let n=e[t];if(n.kind===`user`&&n.id.startsWith(`local-marker-`)&&n.content===a){e.splice(t,1);break}}return}case`agent_message_chunk`:{let n=t.messageId??k,r=e[e.length-1];if(r&&r.kind===`agent`&&r.messageId===n){e[e.length-1]={...r,content:r.content+(t.content??``)};return}if(n!==k&&r&&r.kind===`agent`&&r.messageId===k&&!r.isComplete&&r.content===(t.content??``)){e[e.length-1]={...r,messageId:n};return}M(e),e.push({kind:`agent`,messageId:n,content:t.content??``,isComplete:!1});return}case`agent_thought_chunk`:{let n=t.messageId??k,r=e[e.length-1];if(r&&r.kind===`thinking`&&r.messageId===n){e[e.length-1]={...r,content:r.content+(t.content??``)};return}M(e),e.push({kind:`thinking`,messageId:n,content:t.content??``,isComplete:!1});return}case`tool_call`:{let n=t.toolCallId;if(n===void 0)return;M(e),e.push({kind:`tool`,toolCallId:n,title:t.toolTitle??``,toolKind:t.toolKind,status:A(t.toolStatus,`running`),content:t.content,locations:P(t),rawInput:t.rawInput,rawOutput:t.rawOutput});return}case`tool_call_update`:{let n=t.toolCallId;if(n===void 0)return;let r=e.findIndex(e=>e.kind===`tool`&&e.toolCallId===n);if(r===-1)return;let i=e[r],a=P(t);e[r]={...i,title:t.toolTitle??i.title,toolKind:t.toolKind??i.toolKind,status:A(t.toolStatus,i.status),content:t.content??i.content,locations:a??i.locations,rawInput:t.rawInput===void 0?i.rawInput:t.rawInput,rawOutput:t.rawOutput===void 0?i.rawOutput:t.rawOutput};return}case`plan`:{let n=pe(t.content);if(n===null)return;let r=e.findIndex(e=>e.kind===`plan`),i={kind:`plan`,entries:n};r===-1?(M(e),e.push(i)):e[r]=i;return}}}function P(e){let t=e.locations;if(!Array.isArray(t))return;let n=[];for(let e of t){let t=e??{};typeof t.path==`string`&&n.push(typeof t.line==`number`?{path:t.path,line:t.line}:{path:t.path})}return n}function pe(e){if(!e)return null;let t;try{t=JSON.parse(e)}catch{return null}let n=Array.isArray(t)?t:Array.isArray(t?.entries)?t.entries:null;return n===null?null:n.map(e=>{let t=e??{},n=t.content??t.label??``;return{label:typeof n==`string`?n:String(n),checked:t.checked===!0||t.status===`completed`}})}function me(e){let t=[];for(let n of e)N(t,n);return t}function F(e,t){if(e===t)return{kind:`identity`};if(e===null)return{kind:`first`};if(t.length<e.length)return{kind:`fallback`};for(let n=0;n<e.length;n++)if(e[n]!==t[n])return n===e.length-1&&t.length===e.length?{kind:`mutate-last`}:{kind:`fallback`};return t.length===e.length?{kind:`identity`}:{kind:`append`,from:e.length}}function I(){let e=null,t=[];function n(n){return t=me(n),e=n,t}function r(r){let i=F(e,r);switch(i.kind){case`identity`:return t;case`first`:return n(r);case`append`:{let n=t.slice();for(let e=i.from;e<r.length;e++)N(n,r[e]);return e=r,t=n,t}case`mutate-last`:case`fallback`:return n(r)}}return{project:r}}function L(e){let t=(0,O.useRef)(null);return t.current??=I(),t.current.project(e)}function R(e){if(!e)return[];let t;try{t=JSON.parse(e)}catch{let t=e.trimStart();return t.startsWith(`{`)||t.startsWith(`[`)?[]:[{type:`content`,text:e}]}let n=Array.isArray(t)?t:[t],r=[];for(let e of n){let t=z(e);t&&r.push(t)}return r}function z(e){if(typeof e!=`object`||!e)return null;let t=e;switch(t.type){case`content`:return{type:`content`,text:he(t.content)};case`diff`:return typeof t.path!=`string`||typeof t.newText!=`string`?null:{type:`diff`,path:t.path,newText:t.newText,...typeof t.oldText==`string`?{oldText:t.oldText}:{}};case`terminal`:{let e=ge(t);return e===void 0?{type:`terminal`}:{type:`terminal`,text:e}}default:return null}}function he(e){if(typeof e==`string`)return e;if(typeof e==`object`&&e){let t=e.text;if(typeof t==`string`)return t}return``}function ge(e){if(typeof e.text==`string`)return e.text;if(typeof e.output==`string`)return e.output;if(typeof e.content==`string`)return e.content;if(typeof e.content==`object`&&e.content!==null){let t=e.content.text;if(typeof t==`string`)return t}}function B(e){if(typeof e!=`object`||!e)return;let t=e.command;return typeof t==`string`?t:void 0}function V(e){return R(e).filter(e=>e.type===`content`||e.type===`terminal`).map(e=>`text`in e?e.text??``:``).filter(e=>e.length>0).join(`
2
- `)}function H(e){if(e!=null){if(typeof e==`string`)return e;if(typeof e==`object`)try{return JSON.stringify(e,null,2)}catch{return String(e)}return String(e)}}function U(e,t){let n=new Map;for(let t of e)t.type===`diff`&&n.set(t.path,{path:t.path,newText:t.newText,...t.oldText===void 0?{}:{oldText:t.oldText}});for(let e of t??[])n.has(e.path)||n.set(e.path,{path:e.path});return Array.from(n.values())}var W=i();function _e({content:e,isComplete:t}){return(0,W.jsxs)(`div`,{"data-testid":`acp-chat-agent-message`,className:`flex w-full flex-col items-start text-chat text-[var(--content-default)]`,children:[(0,W.jsx)(v,{content:e}),!t&&(0,W.jsx)(E,{className:`mt-1`,"data-testid":`acp-chat-agent-streaming`})]})}function ve({entries:e}){return e.length===0?null:(0,W.jsxs)(`div`,{"data-testid":`acp-chat-plan-block`,className:`w-full rounded-lg border border-[var(--border-base)] bg-[var(--surface-overlay)] p-3`,children:[(0,W.jsxs)(`div`,{className:`mb-2 flex items-center gap-1.5 text-[var(--content-tertiary)]`,children:[(0,W.jsx)(x,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0`}),(0,W.jsx)(a,{variant:`body-small-emphasised`,className:`text-inherit`,children:`Plan`})]}),(0,W.jsx)(`ul`,{className:`flex flex-col gap-1.5`,children:e.map((e,t)=>(0,W.jsxs)(`li`,{"data-testid":`acp-chat-plan-entry`,"data-checked":e.checked,className:`flex items-start gap-2`,children:[e.checked?(0,W.jsx)(d,{"aria-hidden":!0,className:`mt-0.5 h-4 w-4 shrink-0 text-[var(--system-positive-strong)]`}):(0,W.jsx)(ce,{"aria-hidden":!0,className:`mt-0.5 h-4 w-4 shrink-0 text-[var(--content-disabled)]`}),(0,W.jsx)(`span`,{className:e.checked?`text-body-small-default text-[var(--content-tertiary)] line-through`:`text-body-small-default text-[var(--content-default)]`,children:e.label})]},t))})]})}function ye(e){switch(e){case`max_tokens`:case`max_turn_requests`:return`Stopped: limit reached`;case`refusal`:return`Refused`;case`cancelled`:return`Cancelled`;default:return`Completed`}}function be(e){return new Date(e).toLocaleTimeString([],{hour:`numeric`,minute:`2-digit`})}function G({completedAt:e}){return e===void 0?null:(0,W.jsxs)(`span`,{"data-testid":`acp-chat-terminal-time`,children:[`at `,be(e)]})}function xe({status:e,stopReason:t,error:n,completedAt:r}){if(b(e))return null;if(e===`failed`)return(0,W.jsxs)(`div`,{"data-testid":`acp-chat-terminal-block`,"data-terminal-kind":`failed`,className:`flex items-start gap-2 rounded-lg bg-[var(--system-negative-weak)] px-3 py-2 text-body-small-default text-[var(--system-negative-strong)]`,children:[(0,W.jsx)(`span`,{"aria-hidden":!0,"data-testid":`acp-chat-terminal-failed-icon`,className:`flex h-[12px] w-4 shrink-0 items-center justify-center`,children:(0,W.jsx)(g,{className:`h-4 w-4`})}),(0,W.jsx)(`span`,{children:n??`Run failed`})]});if(e===`cancelled`)return(0,W.jsxs)(`div`,{"data-testid":`acp-chat-terminal-block`,"data-terminal-kind":`cancelled`,className:`flex items-center gap-2 text-body-small-default text-[var(--content-tertiary)]`,children:[(0,W.jsx)(ne,{"aria-hidden":!0,className:`h-4 w-4 shrink-0`}),(0,W.jsx)(`span`,{children:`Cancelled`}),(0,W.jsx)(G,{completedAt:r})]});let i=ye(t);return(0,W.jsxs)(`div`,{"data-testid":`acp-chat-terminal-block`,"data-terminal-kind":`completed`,className:`flex items-center gap-2 text-body-small-default text-[var(--content-tertiary)]`,children:[(0,W.jsx)(d,{"aria-hidden":!0,className:`h-4 w-4 shrink-0 text-[var(--system-positive-strong)]`}),(0,W.jsx)(`span`,{children:i}),(0,W.jsx)(G,{completedAt:r})]})}function Se({showDot:e,isLast:t,children:n}){return(0,W.jsxs)(`div`,{className:`relative flex items-start gap-2${t?``:` pb-4`}`,children:[!t&&(0,W.jsx)(`div`,{"aria-hidden":!0,className:`absolute bottom-0 left-[6.5px] w-px bg-[var(--border-element)] ${e?`top-[16px]`:`top-0`}`}),e?(0,W.jsx)(`span`,{"aria-hidden":!0,"data-testid":`acp-chat-timeline-dot`,className:`flex h-[14px] w-[14px] shrink-0 items-center justify-center`,children:(0,W.jsx)(`span`,{className:`h-[5px] w-[5px] rounded-full bg-[var(--content-disabled)]`})}):(0,W.jsx)(`span`,{"aria-hidden":!0,className:`h-[14px] w-[14px] shrink-0`}),(0,W.jsx)(`div`,{className:`min-w-0 flex-1`,children:n})]})}function Ce({content:e,isComplete:t}){let[n,r]=(0,O.useState)(null),i=n??!t,a=e.trim().length>0,o=t?`Thought process`:`Thinking`,s=t?(0,W.jsx)(l,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0`}):(0,W.jsx)(E,{dotSize:5,className:`shrink-0`,"data-testid":`acp-chat-thinking-streaming`});return a?(0,W.jsxs)(`div`,{"data-testid":`acp-chat-thinking-block`,className:`w-full`,children:[(0,W.jsxs)(`button`,{type:`button`,"aria-expanded":i,onClick:()=>r(!i),"data-testid":`acp-chat-thinking-toggle`,className:`flex w-full items-center gap-1.5 text-body-small-default text-[var(--content-tertiary)] transition-colors hover:text-[var(--content-secondary)]`,children:[i?(0,W.jsx)(w,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0`}):(0,W.jsx)(u,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0`}),s,(0,W.jsx)(`span`,{children:o})]}),i&&(0,W.jsx)(`div`,{"data-testid":`acp-chat-thinking-body`,className:`mt-1.5 border-l-2 border-[var(--border-base)] pl-3 text-body-small-default text-[var(--content-tertiary)]`,children:(0,W.jsx)(v,{content:e})})]}):(0,W.jsx)(`div`,{"data-testid":`acp-chat-thinking-block`,className:`w-full`,children:(0,W.jsxs)(`div`,{className:`flex w-full items-center gap-1.5 text-body-small-default text-[var(--content-tertiary)]`,children:[s,(0,W.jsx)(`span`,{children:o})]})})}var we={running:`neutral`,completed:`positive`,error:`negative`,ended:`neutral`},Te={running:`Running`,completed:`Completed`,error:`Failed`,ended:`Ended`},Ee={read:`Read file`,edit:`Edit file`,delete:`Delete file`,move:`Move file`,search:`Search`,execute:`Run command`,think:`Thinking`,fetch:`Fetch`,switch_mode:`Switch mode`},De=`Tool call`,Oe={read:p,edit:ue,delete:ie,move:de,search:se,execute:T,think:l,fetch:m,switch_mode:h},ke=new Set([`read`,`edit`,`delete`,`move`]);function Ae({toolKind:e}){return(0,W.jsx)(e&&Oe[e]||f,{"aria-hidden":!0,className:`h-4 w-4 shrink-0 text-[var(--content-tertiary)]`})}function K({label:e,value:t,testId:n}){return(0,W.jsxs)(`div`,{"data-testid":n,children:[(0,W.jsx)(`div`,{className:`mb-1 text-body-small-default text-[var(--content-tertiary)]`,children:e}),(0,W.jsx)(`pre`,{className:`max-h-60 overflow-auto rounded-md border border-[var(--border-element)] bg-[var(--surface-base)] p-2.5 font-mono text-body-small-default text-[var(--content-secondary)]`,children:t})]})}function je({block:e,isTerminal:t=!1,onOpenDiff:n,onOpenOutput:r}){let[i,s]=(0,O.useState)(!1),c=(0,O.useMemo)(()=>R(e.content),[e.content]),l=(0,O.useMemo)(()=>V(e.content),[e.content]),d=(0,O.useMemo)(()=>l.split(`
3
- `).map(e=>e.trim()).find(e=>e.length>0&&!e.startsWith("```"))||`View output`,[l]),f=(0,O.useMemo)(()=>U(c,e.locations),[c,e.locations]),m=t&&e.status===`running`?`ended`:e.status,h=m===`running`,g=e.toolKind&&Ee[e.toolKind]||De,_=B(e.rawInput)??e.title,v=_&&_!==g&&(!ke.has(e.toolKind??``)||f.length===0)?_:null,y=H(e.rawInput),b=H(e.rawOutput),x=y!==void 0||b!==void 0;return(0,W.jsxs)(`div`,{"data-testid":`acp-chat-tool-card`,"data-status":e.status,className:`w-full rounded-lg border border-[var(--border-base)] bg-[var(--surface-overlay)] p-3`,children:[(0,W.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,W.jsx)(Ae,{toolKind:e.toolKind}),(0,W.jsx)(a,{variant:`body-small-emphasised`,className:`min-w-0 flex-1 truncate text-[var(--content-default)]`,title:e.title,children:g}),(0,W.jsx)(o,{tone:we[m],"data-testid":`acp-chat-tool-status`,children:Te[m]}),h&&(0,W.jsx)(E,{className:`shrink-0`,"data-testid":`acp-chat-tool-running`})]}),v&&(0,W.jsx)(`div`,{"data-testid":`acp-chat-tool-detail`,className:`mt-1.5 font-mono text-body-small-default whitespace-pre-wrap break-words text-[var(--content-secondary)]`,children:v}),f.length>0&&(0,W.jsx)(`div`,{className:`mt-2 flex flex-wrap gap-1.5`,children:f.map(t=>{let r=t.oldText!==void 0||t.newText!==void 0,i=`flex max-w-full items-center gap-1.5 rounded-md border border-[var(--border-base)] bg-[var(--surface-base)] px-2 py-1 text-body-small-default text-[var(--content-secondary)]`;return r?(0,W.jsxs)(`button`,{type:`button`,"data-testid":`acp-chat-tool-file-chip`,onClick:()=>n(e.toolCallId,t),title:t.path,className:`${i} cursor-pointer transition-colors hover:bg-[var(--surface-hover)] focus-visible:outline focus-visible:outline-2 focus-visible:outline-[var(--border-focus)]`,children:[(0,W.jsx)(p,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0`}),(0,W.jsx)(`span`,{className:`truncate font-mono`,children:t.path})]},t.path):(0,W.jsxs)(`span`,{"data-testid":`acp-chat-tool-file-ref`,title:t.path,className:i,children:[(0,W.jsx)(p,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0`}),(0,W.jsx)(`span`,{className:`truncate font-mono`,children:t.path})]},t.path)})}),l.length>0&&(0,W.jsxs)(`button`,{type:`button`,"data-testid":`acp-chat-tool-output-open`,onClick:()=>r?.(e.toolCallId),className:`mt-2 flex w-full items-center gap-2 rounded-md border border-[var(--border-element)] bg-[var(--surface-base)] px-2.5 py-2 text-left transition-colors hover:bg-[var(--surface-hover)] focus-visible:outline focus-visible:outline-2 focus-visible:outline-[var(--border-focus)]`,children:[(0,W.jsx)(T,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0 text-[var(--content-tertiary)]`}),(0,W.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-mono text-body-small-default text-[var(--content-secondary)]`,children:d}),(0,W.jsx)(u,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0 text-[var(--content-tertiary)]`})]}),x&&(0,W.jsxs)(`div`,{className:`mt-2`,"data-testid":`acp-chat-tool-raw`,children:[(0,W.jsxs)(`button`,{type:`button`,"data-testid":`acp-chat-tool-raw-toggle`,"aria-expanded":i,onClick:()=>s(e=>!e),className:`flex items-center gap-1 text-body-small-default text-[var(--content-tertiary)] transition-colors hover:text-[var(--content-default)]`,children:[i?(0,W.jsx)(w,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0`}):(0,W.jsx)(u,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0`}),(0,W.jsx)(`span`,{children:i?`Hide raw input/output`:`Show raw input/output`})]}),i&&(0,W.jsxs)(`div`,{className:`mt-1.5 flex flex-col gap-2`,children:[y!==void 0&&(0,W.jsx)(K,{label:`Raw input`,value:y,testId:`acp-chat-tool-raw-input`}),b!==void 0&&(0,W.jsx)(K,{label:`Raw output`,value:b,testId:`acp-chat-tool-raw-output`})]})]})]})}function Me({content:e}){return(0,W.jsx)(`div`,{"data-testid":`acp-chat-user-turn`,className:`flex w-full justify-end`,children:(0,W.jsx)(`div`,{className:`max-w-[80%] rounded-lg bg-[var(--surface-lift)] px-4 py-3 whitespace-pre-wrap text-chat text-[var(--content-default)]`,children:e})})}function Ne(e,t){let n=e=>new Intl.NumberFormat(void 0,{style:`currency`,currency:t}).format(e);return e>0&&e<.01?`<${n(.01)}`:n(e)}var q=new Intl.NumberFormat(`en-US`);function J({label:e,value:t}){return(0,W.jsxs)(`div`,{className:`flex items-baseline gap-1`,"data-usage-stat":e.toLowerCase(),children:[(0,W.jsx)(a,{variant:`label-small-default`,className:`text-[var(--content-tertiary)]`,children:e}),(0,W.jsx)(a,{variant:`body-small-default`,className:`text-[var(--content-secondary)] tabular-nums`,children:t})]})}function Pe({entry:e}){let{inputTokens:t,outputTokens:n,costAmount:r,costCurrency:i}=e;if(t===void 0&&n===void 0)return null;let a=t??0,o=n??0,s=r!=null&&i!=null;return(0,W.jsxs)(`div`,{className:`flex items-center gap-3`,"data-testid":`acp-usage-meter`,children:[(0,W.jsx)(J,{label:`Input`,value:q.format(a)}),(0,W.jsx)(J,{label:`Output`,value:q.format(o)}),s&&(0,W.jsx)(J,{label:`Cost`,value:Ne(r,i)})]})}function Fe({content:e}){return(0,W.jsx)(`div`,{"data-testid":`acp-chat-command-output`,className:`rounded-lg border border-[var(--border-base)] bg-[var(--surface-overlay)] p-3 [&_pre]:!max-h-none`,children:(0,W.jsx)(v,{content:V(e),hardLineBreaks:!0})})}var Y=2e3;function X(e){if(e===``)return[];let t=e.split(`
4
- `);return e.endsWith(`
5
- `)&&t.pop(),t}function Ie(e,t){let n=e.length,r=t.length,i=Array.from({length:n+1},()=>Array(r+1).fill(0));for(let a=n-1;a>=0;a--)for(let n=r-1;n>=0;n--)i[a][n]=e[a]===t[n]?i[a+1][n+1]+1:Math.max(i[a+1][n],i[a][n+1]);let a=[],o=0,s=0;for(;o<n&&s<r;)e[o]===t[s]?(a.push({type:`ctx`,text:e[o],oldNo:o+1,newNo:s+1}),o++,s++):i[o+1][s]>=i[o][s+1]?(a.push({type:`del`,text:e[o],oldNo:o+1}),o++):(a.push({type:`add`,text:t[s],newNo:s+1}),s++);for(;o<n;)a.push({type:`del`,text:e[o],oldNo:o+1}),o++;for(;s<r;)a.push({type:`add`,text:t[s],newNo:s+1}),s++;return a}function Le(e,t){let n=X(e),r=X(t);return n.length>Y||r.length>Y?[{type:`too-large`,text:`Diff too large to render (over ${Y.toLocaleString()} lines)`}]:n.length===0?r.map((e,t)=>({type:`add`,text:e,newNo:t+1})):r.length===0?n.map((e,t)=>({type:`del`,text:e,oldNo:t+1})):Ie(n,r)}var Z=`—`;function Q(e){switch(e){case`add`:return`bg-[var(--system-positive-weak)] text-[var(--system-positive-strong)]`;case`del`:return`bg-[var(--system-negative-weak)] text-[var(--system-negative-strong)]`;case`too-large`:return`text-[var(--content-tertiary)] italic`;default:return`text-[var(--content-tertiary)]`}}function Re(e){switch(e){case`add`:return`+`;case`del`:return`-`;default:return` `}}function ze({path:e,oldText:t,newText:n}){let r=Le(t??``,n??``);return(0,W.jsx)(`div`,{"aria-label":`Diff for ${e}`,"data-testid":`acp-chat-file-diff`,className:`flex flex-col overflow-hidden rounded-lg border border-[var(--border-base)] bg-[var(--surface-overlay)]`,children:(0,W.jsx)(`div`,{className:`overflow-x-auto font-mono text-xs`,children:r.map((e,t)=>(0,W.jsx)(Be,{row:e},t))})})}function Be({row:e}){return e.type===`too-large`?(0,W.jsx)(`div`,{"data-diff-type":`too-large`,className:`px-3 py-2 whitespace-pre-wrap ${Q(e.type)}`,children:e.text}):(0,W.jsxs)(`div`,{"data-diff-type":e.type,className:`flex items-start whitespace-pre ${Q(e.type)}`,children:[(0,W.jsx)(`span`,{className:`w-10 shrink-0 select-none px-2 text-right text-[var(--content-tertiary)] tabular-nums`,children:e.oldNo??Z}),(0,W.jsx)(`span`,{className:`w-10 shrink-0 select-none px-2 text-right text-[var(--content-tertiary)] tabular-nums`,children:e.newNo??Z}),(0,W.jsx)(`span`,{className:`w-4 shrink-0 select-none text-center`,children:Re(e.type)}),(0,W.jsx)(`span`,{className:`flex-1 pr-3`,children:e.text})]})}var Ve=80;function $(e){return e.scrollHeight-e.clientHeight-e.scrollTop<=Ve}function He(e){let t=(0,O.useRef)(null),n=(0,O.useRef)(!0),[r,i]=(0,O.useState)(!1),a=(0,O.useCallback)(()=>{let e=t.current;e&&(e.scrollTop=e.scrollHeight)},[]),o=(0,O.useCallback)(()=>{let e=t.current;if(!e)return;let r=$(e);n.current=r,i(e=>e===!r?e:!r)},[]),s=(0,O.useCallback)(()=>{n.current=!0,a(),i(!1)},[a]),c=(0,O.useCallback)(e=>{let r=t.current;r&&r.removeEventListener(`scroll`,o),t.current=e,e&&(e.addEventListener(`scroll`,o,{passive:!0}),n.current?e.scrollTop=e.scrollHeight:o())},[o]);return(0,O.useLayoutEffect)(()=>{n.current?a():o()},[e,a,o]),{scrollRef:c,showScrollToLatest:r,scrollToLatest:s}}function Ue(e,t){switch(e.kind){case`user`:return`user-${e.id||t}`;case`agent`:return`agent-${e.messageId||t}`;case`thinking`:return`thinking-${e.messageId||t}`;case`tool`:return`tool-${e.toolCallId}`;case`plan`:return`plan`}}var We=[];function Ge({entry:e,onClose:t}){let n=b(e.status),i=L(C(t=>t.byId[e.acpSessionId]?.events??We)),[o,s]=(0,O.useState)(null),[c,l]=(0,O.useState)(e.acpSessionId);c!==e.acpSessionId&&(l(e.acpSessionId),s(null));let d=(0,O.useCallback)((e,t)=>s({kind:`diff`,toolCallId:e,path:t.path}),[]),f=(0,O.useCallback)(e=>s({kind:`output`,toolCallId:e}),[]),p=(0,O.useCallback)(()=>s(null),[]),m=(0,O.useMemo)(()=>o?i.find(e=>e.kind===`tool`&&e.toolCallId===o.toolCallId)??null:null,[o,i]),h=(0,O.useMemo)(()=>o?.kind!==`diff`||!m?null:U(R(m.content),m.locations).find(e=>e.path===o.path)??null,[o,m]),g=o?.kind===`diff`?o.path:m?B(m.rawInput)??m.title??`Output`:`Output`,{scrollRef:_,showScrollToLatest:v,scrollToLatest:y}=He((0,O.useMemo)(()=>({blocks:i,status:e.status,completedAt:e.completedAt}),[i,e.status,e.completedAt])),x=!n;return(0,W.jsxs)(`div`,{className:`flex h-full flex-col overflow-hidden rounded-xl bg-[var(--surface-lift)]`,children:[o&&(0,W.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 border-b border-[var(--border-hover)] px-5 py-3`,children:[(0,W.jsx)(`button`,{type:`button`,onClick:p,title:e.agent,className:`min-w-0 shrink cursor-pointer truncate text-left text-[var(--content-default)] hover:underline`,children:(0,W.jsx)(a,{variant:`body-small-default`,as:`span`,children:e.agent})}),(0,W.jsx)(u,{className:`h-2.5 w-2.5 shrink-0 text-[var(--content-tertiary)]`,"aria-hidden":!0}),(0,W.jsx)(a,{variant:`body-small-default`,as:`span`,title:g,className:`min-w-0 shrink truncate font-mono text-[var(--content-secondary)]`,children:g})]}),(0,W.jsx)(Ke,{entry:e,isRunning:n,onClose:t,showBack:!!o,onBack:p},`header-${e.acpSessionId}`),o?(0,W.jsx)(`div`,{className:`flex-1 overflow-y-auto px-5 py-5`,children:o.kind===`diff`?(0,W.jsx)(ze,{path:o.path,oldText:h?.oldText,newText:h?.newText}):(0,W.jsx)(Fe,{content:m?.content})}):(0,W.jsxs)(`div`,{className:`relative min-h-0 flex-1`,children:[(0,W.jsxs)(`div`,{ref:_,"data-testid":`acp-chat-conversation`,className:`flex h-full flex-col gap-4 overflow-y-auto px-5 py-5`,children:[(0,W.jsx)(qe,{task:e.task}),(0,W.jsx)(`div`,{className:`flex flex-col`,"data-testid":`acp-chat-timeline`,children:i.map((e,t)=>(0,W.jsx)(Se,{showDot:t===0||t===i.length-1||e.kind===`tool`||e.kind===`plan`,isLast:t===i.length-1,children:(0,W.jsx)(Je,{block:e,isTerminal:x,onOpenDiff:d,onOpenOutput:f})},Ue(e,t)))}),!n&&(0,W.jsx)(xe,{status:e.status,stopReason:e.stopReason,error:e.error,completedAt:e.completedAt})]}),v&&(0,W.jsx)(r,{variant:`outlined`,size:`compact`,iconOnly:(0,W.jsx)(ee,{}),onClick:y,"aria-label":`Go to newest`,tooltip:`Go to newest`,"data-testid":`acp-chat-scroll-to-latest`,className:`absolute bottom-3 left-1/2 -translate-x-1/2 rounded-full shadow-md`})]}),n&&!o&&(0,W.jsx)(Ye,{acpSessionId:e.acpSessionId},`steer-${e.acpSessionId}`)]})}function Ke({entry:e,isRunning:n,onClose:i,showBack:o=!1,onBack:s}){let[l,u]=(0,O.useState)(!1),d=te(e.status,e.stopReason),f=(0,O.useCallback)(()=>{u(!0),re(e.acpSessionId).catch(e=>{u(!1),t(e,{context:`AcpRunChatView.stop`})})},[e.acpSessionId]);return(0,W.jsxs)(`div`,{className:`flex shrink-0 items-center gap-3 border-b border-[var(--border-hover)] px-5 py-4`,children:[o&&(0,W.jsx)(r,{variant:`outlined`,iconOnly:(0,W.jsx)(c,{}),onClick:s,"aria-label":`Back to conversation`,tooltip:`Back`,"data-testid":`acp-chat-diff-back`,className:`shrink-0 rounded-lg`}),(0,W.jsx)(ae,{agent:e.agent,className:`h-5 w-5 shrink-0`}),(0,W.jsx)(a,{variant:`title-medium`,title:e.agent,className:`min-w-0 shrink truncate leading-snug text-[var(--content-default)]`,children:e.agent}),(0,W.jsx)(le,{color:d.color,label:d.label}),(0,W.jsx)(`span`,{className:`flex-1`}),(0,W.jsx)(Pe,{entry:e}),n&&(0,W.jsxs)(`button`,{type:`button`,"aria-label":`Stop run`,onClick:f,disabled:l,className:`flex h-8 shrink-0 cursor-pointer items-center gap-1.5 rounded-lg border border-[var(--system-negative-strong)] bg-transparent px-2.5 py-1.5 text-[var(--system-negative-strong)] transition-colors hover:bg-[var(--system-negative-weak)] disabled:cursor-default disabled:opacity-50`,children:[(0,W.jsx)(oe,{className:`h-3 w-3`,fill:`currentColor`}),(0,W.jsx)(a,{variant:`label-small-default`,children:`Stop`})]}),(0,W.jsx)(r,{variant:`outlined`,iconOnly:(0,W.jsx)(_,{}),onClick:i,"aria-label":`Close run detail`,tooltip:`Close`,className:`shrink-0 rounded-lg`})]})}function qe({task:e}){return e?(0,W.jsxs)(`div`,{"data-testid":`acp-chat-objective`,children:[(0,W.jsx)(a,{variant:`body-medium-default`,as:`h3`,className:`mb-1 text-[var(--content-emphasised)]`,children:`Objective`}),(0,W.jsx)(a,{variant:`body-medium-lighter`,as:`p`,className:`whitespace-pre-wrap break-words leading-relaxed text-[var(--content-default)]`,children:e}),(0,W.jsx)(`div`,{className:`mt-4 h-px w-full bg-[var(--border-hover)]`})]}):null}function Je({block:e,isTerminal:t,onOpenDiff:n,onOpenOutput:r}){switch(e.kind){case`user`:return(0,W.jsx)(Me,{content:e.content});case`agent`:return(0,W.jsx)(_e,{content:e.content,isComplete:e.isComplete||t});case`thinking`:return(0,W.jsx)(Ce,{content:e.content,isComplete:e.isComplete||t});case`tool`:return(0,W.jsx)(je,{block:e,isTerminal:t,onOpenDiff:n,onOpenOutput:r});case`plan`:return(0,W.jsx)(ve,{entries:e.entries})}}function Ye({acpSessionId:e}){let[n,i]=(0,O.useState)(``),[a,o]=(0,O.useState)(!1);return(0,W.jsx)(`form`,{onSubmit:(0,O.useCallback)(r=>{r.preventDefault();let s=n.trim();if(!s||a)return;o(!0);let c=C.getState().appendLocalMarker({acpSessionId:e,content:`${S}${s}`});D(e,s).then(()=>i(``)).catch(n=>{c&&C.getState().removeLocalMarker({acpSessionId:e,markerId:c}),t(n,{context:`AcpRunChatView.steer`})}).finally(()=>o(!1))},[n,a,e]),"data-testid":`acp-chat-steer-form`,className:`sticky bottom-0 z-10 shrink-0 border-t border-[var(--border-hover)] bg-[var(--surface-lift)] px-5 py-3`,children:(0,W.jsxs)(`div`,{className:`flex items-center gap-2 rounded-md bg-[var(--surface-base)] px-3 py-2`,children:[(0,W.jsx)(`input`,{type:`text`,value:n,onChange:e=>i(e.target.value),placeholder:`Steer the run…`,disabled:a,"aria-label":`Steering instruction`,className:`text-body-medium-default min-w-0 flex-1 bg-transparent text-[color:var(--content-default)] placeholder:text-[color:var(--content-tertiary)] focus:outline-none disabled:opacity-50`}),(0,W.jsx)(r,{type:`submit`,variant:`primary`,size:`compact`,iconOnly:(0,W.jsx)(y,{}),disabled:a||n.trim()===``,"aria-label":`Send steering instruction`,className:`shrink-0`})]})})}function Xe({entry:e,onClose:t}){return(0,W.jsx)(Ge,{entry:e,onClose:t})}export{Xe as AcpRunDetailPanel};
@@ -1 +0,0 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./capture-error-8raDoxFL.js";import{t as n}from"./react-DJZBPgpf.js";import{t as r}from"./button-D-AX8Voo.js";import{n as i}from"./QueryClientProvider-DKhXIxGb.js";import{t as a}from"./useQuery-B45lW1Kk.js";import{t as o}from"./useMutation-Lj4VunQV.js";import{t as s}from"./jsx-runtime-CVSDxk6A.js";import{t as c}from"./input-D4W4p0pZ.js";import{t as l}from"./toggle-X_kQW5my.js";import{n as u}from"./stat-square-8mff1dLC.js";import{n as d}from"./toast-B0OiPFFj.js";import{t as f}from"./loader-circle-BITX1qOw.js";import{Bt as p,K as m,Vt as h,c as g,jt as _,q as v,u as y}from"./react-query.gen-Bxy9zjSn.js";import{X as b}from"./sdk.gen-Ec1nF7iZ.js";import{F as x,P as S}from"./react-query.gen-DQUX56Gs.js";import{C,Lr as w}from"./index-CWzNQ8A_.js";import{t as T}from"./use-active-assistant-id-iCLBbJXU.js";import{t as E}from"./detail-card-DXLMG-Zw.js";import{r as D}from"./assistant-status-panel-8WiPtFrO.js";var O=s();function k({memoryEnabled:e}){let n=T(),r=i(),{data:o}=a({...m({path:{assistant_id:n}}),staleTime:3e4}),s=e=>{v(r,{path:{assistant_id:n}},t=>t&&{...t,workerEnabled:e})},c=p({onSuccess:()=>s(!0)}),u=h({onSuccess:()=>s(!1)}),f=async e=>{try{e?(await c.mutateAsync({path:{assistant_id:n}}),d.success(`Background worker enabled.`)):(await u.mutateAsync({path:{assistant_id:n}}),d.success(`Background worker disabled.`))}catch(e){t(e,{context:`settings-memory-worker-toggle`}),d.error(`Failed to update background worker setting.`)}};if(!o)return null;let g=c.isPending||u.isPending;return(0,O.jsxs)(`div`,{className:`flex flex-row items-start justify-between gap-4 border-t border-[var(--border-subtle)] pt-4`,children:[(0,O.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-2`,children:[(0,O.jsx)(`h3`,{className:`text-body-medium-default text-[var(--content-emphasised)]`,children:`Background worker`}),(0,O.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:`Run memory consolidation in a dedicated background process instead of inline. Recommended for heavier memory workloads.`})]}),(0,O.jsx)(l,{checked:o.workerEnabled===!0,onChange:e=>void f(e),"aria-label":`Enable background memory worker`,disabled:!e||g})]})}var A=e(n(),1),j=[[`Mon`,0],[`Tue`,1],[`Wed`,2],[`Thu`,3],[`Fri`,4],[`Sat`,5],[`Sun`,6]];function M(e){let[t,n]=e.split(`:`).map(Number),r=new Date,i=new Date(Date.UTC(r.getUTCFullYear(),r.getUTCMonth(),r.getUTCDate(),t,n));return`${i.getHours().toString().padStart(2,`0`)}:${i.getMinutes().toString().padStart(2,`0`)}`}function N(e){let[t,n]=e.split(`:`).map(Number),r=new Date,i=new Date(r.getFullYear(),r.getMonth(),r.getDate(),t,n);return`${i.getUTCHours().toString().padStart(2,`0`)}:${i.getUTCMinutes().toString().padStart(2,`0`)}`}function P(){return Intl.DateTimeFormat(void 0,{timeZoneName:`short`}).formatToParts(new Date).find(e=>e.type===`timeZoneName`)?.value??``}function F(e){let t=e?.schedule?.window.start??`06:00`,n=e?.schedule?.window.end??`08:00`;return{enabled:e?.enabled??!0,timezone:`UTC`,frequency:e?.schedule?.frequency??`weekly`,daysOfWeek:e?.schedule?.days_of_week??[0],daysOfMonth:e?.schedule?.days_of_month??[],windowStart:M(t),windowEnd:M(n)}}function I({assistantId:e}){let t=i(),{data:n,isLoading:s,isError:p}=a(S({path:{id:e}})),m=(0,A.useMemo)(()=>F(n),[n]),[h,g]=(0,A.useState)(null),_=h??m,v=h!==null,y=(0,A.useMemo)(()=>P(),[]),[C,w]=(0,A.useState)(null),T=C??_.daysOfMonth.join(`, `),E=o({mutationFn:async t=>{let{data:n}=await b({path:{id:e},body:t,throwOnError:!0});return n}}),D=e=>{g(t=>({...t??m,...e}))},k=e=>{D({daysOfWeek:_.daysOfWeek.includes(e)?_.daysOfWeek.filter(t=>t!==e):[..._.daysOfWeek,e].sort((e,t)=>e-t)})},M=e=>e.split(`,`).map(e=>parseInt(e.trim(),10)).filter(e=>!isNaN(e)&&e>=1&&e<=31);return s?(0,O.jsxs)(`div`,{className:`flex items-center gap-2 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,O.jsx)(f,{className:`h-4 w-4 animate-spin`}),`Loading update window settings...`]}):p?(0,O.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--system-negative-strong)]`,children:`Failed to load update window policy. Refresh the page to try again.`}):(0,O.jsxs)(`div`,{className:`space-y-6`,children:[(0,O.jsx)(l,{checked:_.enabled,onChange:e=>D({enabled:e}),label:`Automatic updates`,helperText:`Update automatically during a configured time window`}),_.enabled&&(0,O.jsxs)(`div`,{className:`space-y-5`,children:[(0,O.jsxs)(`div`,{className:`space-y-2`,children:[(0,O.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-secondary)]`,children:`Frequency`}),(0,O.jsx)(`div`,{className:`max-w-[400px]`,children:(0,O.jsx)(u,{ariaLabel:`Frequency`,value:_.frequency,onChange:e=>{e!==`monthly`&&w(null),D({frequency:e})},items:[{value:`daily`,label:`Daily`},{value:`weekly`,label:`Weekly`},{value:`monthly`,label:`Monthly`}]})})]}),_.frequency===`weekly`&&(0,O.jsxs)(`div`,{className:`space-y-2`,children:[(0,O.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-secondary)]`,children:`Day(s) of week`}),(0,O.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:j.map(([e,t])=>(0,O.jsx)(r,{variant:`outlined`,size:`compact`,active:_.daysOfWeek.includes(t),onClick:()=>k(t),children:e},t))})]}),_.frequency===`monthly`&&(0,O.jsx)(c,{label:`Day(s) of month`,type:`text`,value:T,onChange:e=>w(e.target.value),onBlur:e=>{let t=M(e.target.value);D({daysOfMonth:t}),w(t.join(`, `))},placeholder:`e.g. 1, 15`,helperText:`Comma-separated day numbers (1–31)`,className:`w-48`}),(0,O.jsxs)(`div`,{className:`space-y-2`,children:[(0,O.jsxs)(`label`,{className:`block text-body-small-default text-[var(--content-secondary)]`,children:[`Update window`,y?` (${y})`:``]}),(0,O.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,O.jsx)(c,{type:`time`,value:_.windowStart,onChange:e=>D({windowStart:e.target.value})}),(0,O.jsx)(`span`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`to`}),(0,O.jsx)(c,{type:`time`,value:_.windowEnd,onChange:e=>D({windowEnd:e.target.value})})]})]})]}),(0,O.jsx)(r,{variant:`primary`,leftIcon:E.isPending?(0,O.jsx)(f,{className:`animate-spin`}):void 0,onClick:async()=>{let n=_.frequency===`monthly`&&C!==null?M(C):_.daysOfMonth;try{await E.mutateAsync({enabled:_.enabled,timezone:`UTC`,schedule:{frequency:_.frequency,days_of_week:_.frequency===`weekly`?_.daysOfWeek:[],days_of_month:_.frequency===`monthly`?n:[],window:{start:N(_.windowStart),end:N(_.windowEnd)}}}),d.success(`Auto-update policy saved.`),g(null),w(null),t.invalidateQueries({queryKey:x({path:{id:e}})})}catch{d.error(`Failed to save policy. Please try again.`)}},disabled:E.isPending||!v,children:`Save policy`})]})}function L(){let{assistant:e,healthz:n}=D(),r=w({platformHostedOnly:!0}),o=e?.is_local?null:e,s=T(),c=i(),u=n?.capabilities?.memoryOptOut===!0,{data:f}=a({...g({path:{assistant_id:s}}),staleTime:3e4,enabled:u}),p=_({onSuccess:e=>{y(c,{path:{assistant_id:s}},e)}}),m=f?.memory?.enabled!==!1,h=async e=>{try{await p.mutateAsync({path:{assistant_id:s},body:{memory:{enabled:e}}}),d.success(e?`Memory enabled.`:`Memory disabled.`)}catch(e){t(e,{context:`settings-memory-toggle`}),d.error(`Failed to update memory setting.`)}};return(0,O.jsxs)(`div`,{className:`space-y-4`,children:[r===`full`&&o&&(0,O.jsx)(E,{title:`Update Window`,subtitle:`Configure when automatic updates are applied.`,children:(0,O.jsx)(I,{assistantId:o.id})}),r===`disabled`&&(0,O.jsx)(E,{title:`Update Window`,subtitle:`Configure when automatic updates are applied.`,children:(0,O.jsx)(C,{children:`Log in to the Vellum platform to manage update window policy.`})}),u?(0,O.jsx)(E,{title:`Memory`,subtitle:`Let your assistant remember information from past conversations. Turning this off also pauses memory consolidation.`,accessory:(0,O.jsx)(l,{checked:m,onChange:e=>void h(e),"aria-label":`Enable memory`,disabled:p.isPending}),compactAccessory:!0,children:(0,O.jsx)(k,{memoryEnabled:m})}):null]})}export{L as AdvancedPage};
@@ -1 +0,0 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{i as t,r as n,s as r}from"./local-settings-lVNyIOJ_.js";import{r as i,t as a}from"./capture-error-8raDoxFL.js";import{t as o}from"./react-DJZBPgpf.js";import{t as s}from"./button-D-AX8Voo.js";import{d as c,h as l}from"./chunk-5KNZJZUH-DdS6bb-3.js";import{n as u}from"./QueryClientProvider-DKhXIxGb.js";import{t as d}from"./useQuery-B45lW1Kk.js";import{t as f}from"./useMutation-Lj4VunQV.js";import{t as p}from"./jsx-runtime-CVSDxk6A.js";import{t as m}from"./typography-BscuIPxA.js";import{t as h}from"./dropdown-ChWAdhLG.js";import{t as g}from"./confirm-dialog-bfBx6UYv.js";import{t as _}from"./notice-CqRgVmeL.js";import{t as v}from"./tag-CW6WC4fE.js";import{t as y}from"./input-D4W4p0pZ.js";import{t as b}from"./toggle-X_kQW5my.js";import{n as x}from"./stat-square-8mff1dLC.js";import{t as S}from"./modal-BNAVT2FK.js";import{n as C}from"./toast-B0OiPFFj.js";import{t as w}from"./createLucideIcon-BlMXrA59.js";import{t as T}from"./check-D6WkI0gF.js";import{t as E}from"./circle-alert-DvNg50UK.js";import{t as D}from"./circle-check-DzlJxj_M.js";import{n as O,t as k}from"./domain-field-CNW1t3OC.js";import{t as A}from"./external-link-BgOnp59e.js";import{t as j}from"./info-C9uyv2bI.js";import{t as M}from"./loader-circle-BITX1qOw.js";import{t as N}from"./triangle-alert-BcZY_IvR.js";import{Ft as P,Gn as F,It as I,at as L,dn as R}from"./sdk.gen-B3Z8klU-.js";import{Et as z,R as B,c as V,d as ee,jt as H,l as U,mt as W,u as G,z as K}from"./react-query.gen-Bxy9zjSn.js";import{r as q}from"./api-errors-CPc5p2r9.js";import{o as te}from"./routes-CCywyokq.js";import{t as J}from"./use-is-org-ready-CXt7jaER.js";import{t as Y}from"./assistant-identity-store-DP4B8mmA.js";import{t as ne}from"./assistant-feature-flag-store-B440uAh9.js";import{c as re,d as ie,et as ae,f as oe,g as se,h as ce,l as le,m as ue,o as de,p as fe,s as pe,u as me,v as he,y as ge}from"./react-query.gen-DQUX56Gs.js";import{$r as _e,Ar as X,Br as ve,C as ye,Cr as be,Dr as xe,Er as Se,Gr as Ce,Hr as we,Jr as Te,Kr as Ee,Lr as De,Mr as Oe,Nr as ke,Or as Ae,Pr as je,Qr as Me,Rr as Ne,S as Pe,Sr as Fe,Tr as Ie,Ur as Le,Vr as Re,Wr as ze,Xr as Be,Yr as Ve,Zn as He,Zr as Ue,b as We,ba as Ge,ei as Ke,fi as qe,jr as Je,kr as Ye,qr as Xe,ti as Ze,wi as Qe,wr as $e,x as et,xr as tt,y as nt,zr as rt}from"./index-CWzNQ8A_.js";import{t as it}from"./use-active-assistant-id-iCLBbJXU.js";import{t as at}from"./detail-card-DXLMG-Zw.js";import{t as ot}from"./environment-store-CN3UaYQg.js";var st=w(`grip-vertical`,[[`circle`,{cx:`9`,cy:`12`,r:`1`,key:`1vctgf`}],[`circle`,{cx:`9`,cy:`5`,r:`1`,key:`hp0tcf`}],[`circle`,{cx:`9`,cy:`19`,r:`1`,key:`fkjjf6`}],[`circle`,{cx:`15`,cy:`12`,r:`1`,key:`1tmaij`}],[`circle`,{cx:`15`,cy:`5`,r:`1`,key:`19l28e`}],[`circle`,{cx:`15`,cy:`19`,r:`1`,key:`f4zoj3`}]]),Z=e(o(),1),Q=p();function ct({mode:e,onChange:t}){return(0,Q.jsx)(`div`,{className:`max-w-[280px]`,children:(0,Q.jsx)(x,{ariaLabel:`Service mode`,value:e,onChange:t,items:[{value:`managed`,label:`Managed`},{value:`your-own`,label:`Your Own`}]})})}function lt({id:e,title:t,subtitle:n,mode:r,onModeChange:i,children:a}){return(0,Q.jsxs)(at,{id:e,title:t,subtitle:n,accessory:(0,Q.jsx)(ct,{mode:r,onChange:i}),children:[(0,Q.jsx)(`div`,{className:`h-px bg-[var(--surface-active)]`}),(0,Q.jsx)(`div`,{className:`mt-4`,children:a})]})}function $({onClick:e,disabled:t}){return(0,Q.jsx)(s,{onClick:e,disabled:t,children:`Save`})}function ut({onClick:e,filled:t=!1}){return(0,Q.jsx)(s,{variant:t?`danger`:`dangerGhost`,onClick:e,children:`Reset`})}function dt({id:e,title:t,subtitle:n,children:r}){return(0,Q.jsxs)(at,{id:e,title:t,subtitle:n,children:[(0,Q.jsx)(`div`,{className:`h-px bg-[var(--surface-active)]`}),(0,Q.jsx)(`div`,{className:`mt-4`,children:r})]})}function ft({guide:e}){return(0,Q.jsxs)(`div`,{className:`flex items-start gap-2 rounded-lg border border-[var(--border-subtle)] bg-[var(--surface-sunken)] p-3 text-body-small-default text-[var(--content-tertiary)]`,children:[(0,Q.jsx)(j,{className:`mt-0.5 h-3.5 w-3.5 shrink-0 text-[var(--system-positive-strong)]`}),(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Q.jsx)(`span`,{children:e.description}),(0,Q.jsxs)(`a`,{href:e.url,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex items-center gap-1 text-[var(--system-positive-strong)] underline hover:opacity-80`,children:[e.linkLabel,(0,Q.jsx)(A,{className:`h-3 w-3`})]})]})]})}function pt({status:e,message:t,isLoading:n}){return n?(0,Q.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-full bg-[var(--tag-bg-neutral)] px-2.5 py-0.5 text-body-small-default text-[var(--content-quiet)]`,children:[(0,Q.jsx)(M,{className:`h-3 w-3 animate-spin`}),`Checking domain…`]}):e?e===`verified`?(0,Q.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-full bg-[var(--system-positive-weak)] px-2.5 py-0.5 text-body-small-default text-[var(--system-positive-strong)]`,title:`DNS records have been verified. Your domain is ready to send and receive email.`,children:[(0,Q.jsx)(T,{className:`h-3 w-3`}),`Domain verified`]}):e===`pending`||e===`not_started`?(0,Q.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-full bg-[var(--system-mid-weak)] px-2.5 py-0.5 text-body-small-default text-[var(--system-mid-strong)]`,title:`DNS records have been provisioned. Waiting for the email provider to verify them — this usually takes a few minutes.`,children:[(0,Q.jsx)(Ge,{className:`h-3 w-3`}),`Verifying domain…`]}):(0,Q.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-full bg-[var(--system-negative-weak)] px-2.5 py-0.5 text-body-small-default text-[var(--system-negative-strong)]`,title:`Domain verification failed. DNS records may not have propagated correctly. You could try releasing and re-registering the domain.`,children:[(0,Q.jsx)(E,{className:`h-3 w-3`}),`Verification failed`]}):(0,Q.jsx)(`span`,{className:`inline-flex items-center gap-1 rounded-full bg-[var(--tag-bg-neutral)] px-2.5 py-0.5 text-body-small-default text-[var(--content-quiet)]`,title:`Unable to retrieve domain verification status.`,children:`Unknown status`})}var mt=`__custom__`;function ht(e){return e?!!(e.profile||e.provider||e.model):!1}function gt(e,t){let n=ht(e);return n===ht(t)?n?(e?.profile??null)===(t?.profile??null)&&(e?.provider??null)===(t?.provider??null)&&(e?.model??null)===(t?.model??null):!0:!1}function _t({id:e,displayName:t,description:n,defaultProfileLabel:r,draft:i,profileOptions:a,onDraftChange:o,onToggle:s}){let c=ht(i),l=!i||!c?``:i.provider||i.model?mt:i.profile??``,u=l===mt,d=Je(),f=d[0]??Ue[0],p=d.find(e=>e===i?.provider)??f,m=Ke(p).map(e=>({value:e.id,label:e.displayName})),g=!!i?.provider&&!i?.model;function _(t){t===`__custom__`?o(e,{profile:null,provider:f,model:_e(f)??``}):t===``?o(e,null):o(e,{profile:t,provider:null,model:null})}function v(t){let n=_e(t)??``;o(e,{...i??{},profile:null,provider:t,model:n})}function y(t){o(e,{...i??{},model:t})}return(0,Q.jsxs)(`div`,{className:`rounded-lg border border-[var(--border-base)] bg-[var(--surface-base)] p-3`,children:[(0,Q.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,Q.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Q.jsx)(`p`,{className:`text-body-medium-default font-medium text-[var(--content-default)]`,children:t}),n&&(0,Q.jsxs)(`p`,{className:`mt-0.5 text-body-small-default text-[var(--content-tertiary)]`,children:[n,r&&(0,Q.jsxs)(`span`,{className:`ml-1.5 text-body-small-default text-[var(--content-tertiary)] opacity-60`,children:[`· Default: `,r]})]})]}),(0,Q.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[c&&(0,Q.jsx)(h,{value:l,onChange:_,options:a,className:`w-44`,menuMinWidth:280,menuAlign:`end`}),(0,Q.jsx)(b,{checked:c,onChange:t=>s(e,t),"aria-label":`Override ${t}`})]})]}),c&&u&&(0,Q.jsxs)(`div`,{className:`mt-3 space-y-2 border-t border-[var(--border-base)] pt-3`,children:[(0,Q.jsxs)(`div`,{className:`flex gap-2`,children:[(0,Q.jsxs)(`div`,{className:`flex-1`,children:[(0,Q.jsx)(`label`,{className:`mb-1 block text-body-small-default text-[var(--content-tertiary)]`,children:`Provider`}),(0,Q.jsx)(h,{value:p??``,onChange:v,options:d.map(e=>({value:e,label:Me[e]??e}))})]}),(0,Q.jsxs)(`div`,{className:`flex-1`,children:[(0,Q.jsx)(`label`,{className:`mb-1 block text-body-small-default text-[var(--content-tertiary)]`,children:`Model`}),(0,Q.jsx)(h,{value:i?.model??``,onChange:y,options:m})]})]}),g&&(0,Q.jsx)(`p`,{className:`text-body-small-default text-[var(--system-negative-strong)]`,children:`Pick a model`})]})]})}function vt({isOpen:e,onClose:t,assistantId:n}){let r=(0,Z.useRef)(!1);return(0,Q.jsx)(S.Root,{open:e,onOpenChange:e=>{!e&&!r.current&&t()},children:e?(0,Q.jsx)(yt,{assistantId:n,onClose:t,onSavingChange:e=>{r.current=e}}):null})}function yt({assistantId:e,onClose:t,onSavingChange:n}){let r=u(),{data:i}=d({...V({path:{assistant_id:e}}),staleTime:3e4}),o=(0,Z.useMemo)(()=>i?.llm?.profiles??{},[i?.llm?.profiles]),c=(0,Z.useMemo)(()=>i?.llm?.profileOrder??[],[i?.llm?.profileOrder]),l=(0,Z.useMemo)(()=>i?.llm?.callSites??{},[i?.llm?.callSites]),f=(0,Z.useMemo)(()=>rt(o,c),[o,c]),p=Je(),m=H({onSuccess:t=>{G(r,{path:{assistant_id:e}},t)}}),[h,_]=(0,Z.useState)(``),[v,b]=(0,Z.useState)({}),[x,w]=(0,Z.useState)(!1),[T,E]=(0,Z.useState)(!1),D=ne.use.analyzeConversation(),{data:O,isLoading:k,isError:A,refetch:j}=d({...ee({path:{assistant_id:e}}),enabled:!!e,staleTime:6e4,refetchOnWindowFocus:!1}),N=(0,Z.useMemo)(()=>{let e=(O?.callSites??[]).filter(e=>e.id!==`mainAgent`);return D||(e=e.filter(e=>e.id!==`analyzeConversation`)),e},[O,D]),P=!k&&!A&&!!O&&!!i,F=(0,Z.useMemo)(()=>N.map(e=>e.id),[N]),I=(0,Z.useMemo)(()=>{if(!P)return{};let e={};for(let t of F)if(t in v)e[t]=v[t];else{let n=l[t];e[t]=n?{...n}:{}}return e},[P,F,l,v]),L=(0,Z.useMemo)(()=>new Set(F),[F]),R=(0,Z.useMemo)(()=>Object.entries(l).some(([e,t])=>L.has(e)&&(t?.profile!=null||t?.provider!=null||t?.model!=null)),[l,L]),z=(0,Z.useMemo)(()=>{if(!P)return!1;for(let e of Object.keys(I))if(!gt(I[e],l[e]))return!0;return!1},[P,I,l]),B=(0,Z.useMemo)(()=>Object.values(I).some(e=>ht(e)&&!!e?.provider&&!e?.model),[I]),U=(0,Z.useCallback)(e=>[...Pe(f,[e]).map(e=>({value:e.name,label:We(e)})),{value:mt,label:`Custom`}],[f]),W=(0,Z.useMemo)(()=>{if(!h.trim())return N;let e=h.toLowerCase();return N.filter(t=>(t.displayName??``).toLowerCase().includes(e)||(t.description??``).toLowerCase().includes(e)||(t.domain??``).toLowerCase().includes(e))},[N,h]),K=(0,Z.useMemo)(()=>{if(!O)return[];let e=O.domains.map(e=>e.id),t=new Map(O.domains.map(e=>[e.id,e])),n=[];for(let r of e){let e=W.filter(e=>e.domain===r);e.length>0&&n.push({domain:t.get(r),sites:e})}let r=new Set(e),i=W.filter(e=>!r.has(e.domain));return i.length>0&&n.push({domain:{id:`other`,displayName:`Other`},sites:i}),n},[O,W]),q=(0,Z.useCallback)((e,t)=>{b(n=>({...n,[e]:t}))},[]),te=(0,Z.useCallback)((e,t)=>{if(!t){b(t=>({...t,[e]:null}));return}let n=et(f,N.find(t=>t.id===e)?.defaultProfile);if(n)b(t=>({...t,[e]:{profile:n}}));else{let t=p[0]??Ue[0],n=_e(t)??``;b(r=>({...r,[e]:{provider:t,model:n}}))}},[N,f,p]),J=(0,Z.useCallback)(async()=>{w(!0),n?.(!0);try{let n={};for(let e of Object.keys(I)){let t=I[e]??null;n[e]=ht(t)?{profile:t?.profile??null,provider:t?.provider??null,model:t?.model??null}:null}await m.mutateAsync({path:{assistant_id:e},body:{llm:{callSites:n}}}),t(),C.success(`Overrides saved.`)}catch(e){C.error(`Failed to save overrides. Please try again.`),a(e,{context:`call_site_overrides_save`})}finally{w(!1),n?.(!1)}},[I,t,m,n,e]),Y=(0,Z.useCallback)(async()=>{w(!0),n?.(!0);try{let n={};for(let e of Object.keys(I))n[e]=null;await m.mutateAsync({path:{assistant_id:e},body:{llm:{callSites:n}}}),t(),C.success(`Overrides reset.`)}catch(e){C.error(`Failed to reset overrides. Please try again.`),a(e,{context:`call_site_overrides_reset`})}finally{w(!1),n?.(!1)}},[I,t,m,n,e]);return(0,Q.jsxs)(S.Content,{size:`lg`,hideCloseButton:!0,children:[(0,Q.jsxs)(S.Header,{children:[(0,Q.jsx)(S.Title,{children:`Action Overrides`}),(0,Q.jsx)(S.Description,{children:`Customize which model profile specific actions should use. Uses your default profile if no override is set.`})]}),(0,Q.jsxs)(S.Body,{children:[(0,Q.jsx)(`div`,{className:`mb-4`,children:(0,Q.jsx)(y,{type:`search`,value:h,onChange:e=>_(e.target.value),placeholder:`Search actions…`,leftIcon:(0,Q.jsx)(Qe,{className:`h-4 w-4`}),fullWidth:!0})}),k&&(0,Q.jsx)(`div`,{className:`flex items-center justify-center py-12`,children:(0,Q.jsx)(M,{className:`h-6 w-6 animate-spin text-[var(--content-tertiary)]`})}),A&&(0,Q.jsxs)(`div`,{className:`flex flex-col items-center gap-3 py-12 text-center`,children:[(0,Q.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-default)]`,children:`Couldn't load actions`}),(0,Q.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Make sure your assistant is running`}),(0,Q.jsx)(s,{variant:`outlined`,size:`compact`,onClick:()=>void j(),children:`Retry`})]}),!k&&!A&&O&&(0,Q.jsx)(`div`,{className:`space-y-4`,children:K.length===0?(0,Q.jsx)(`p`,{className:`py-8 text-center text-body-medium-lighter text-[var(--content-tertiary)]`,children:`No actions match your search.`}):K.map(({domain:e,sites:t})=>(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(`p`,{className:`mb-2 text-body-small-default font-semibold uppercase tracking-wider text-[var(--content-tertiary)]`,children:e.displayName}),(0,Q.jsx)(`div`,{className:`space-y-1`,children:t.map(e=>{let t=(()=>{let t=I[e.id]??null;return!t||!ht(t)?``:t.provider||t.model?`__custom__`:t.profile??``})(),n=e.defaultProfile?f.find(t=>t.name===e.defaultProfile)?.label??e.defaultProfile:null;return(0,Q.jsx)(_t,{id:e.id,displayName:e.displayName,description:e.description,defaultProfileLabel:n,draft:I[e.id]??null,profileOptions:U(t===``||t===`__custom__`?null:t),onDraftChange:q,onToggle:te},e.id)})})]},e.id))})]}),(0,Q.jsxs)(S.Footer,{children:[R&&(0,Q.jsx)(s,{variant:`outlined`,size:`compact`,onClick:()=>E(!0),disabled:x||!P,tintColor:`var(--system-negative-strong)`,className:`mr-auto`,children:`Reset to Defaults`}),(0,Q.jsx)(s,{variant:`outlined`,size:`compact`,onClick:t,disabled:x,children:`Cancel`}),(0,Q.jsx)(s,{variant:`primary`,size:`compact`,onClick:()=>void J(),disabled:!z||B||x,children:x?(0,Q.jsx)(M,{className:`h-4 w-4 animate-spin`}):`Save`})]}),(0,Q.jsx)(g,{open:T,title:`Reset to Defaults`,message:`Every task override will be reset and will follow your active profile. This cannot be undone.`,confirmLabel:`Reset to Defaults`,destructive:!0,onConfirm:()=>{E(!1),Y()},onCancel:()=>E(!1)})]})}function bt({blocked:e,availableReplacements:t,replacement:n,onReplacementChange:r,error:i,saving:a,onClose:o,onConfirm:c}){let l=``;if(e){let t=e.label||e.name;l=e.isActive&&e.callSiteIds.length>0?`"${t}" is the active profile and is used by ${e.callSiteIds.length} call site(s). Pick a replacement profile.`:e.isActive?`"${t}" is the active profile. Pick a different active profile before deleting, or select a replacement below.`:`"${t}" is used by ${e.callSiteIds.length} call site(s). Select a replacement profile to reassign them before deleting.`}return(0,Q.jsx)(S.Root,{open:e!==null,onOpenChange:e=>{e||o()},children:(0,Q.jsxs)(S.Content,{size:`sm`,children:[(0,Q.jsx)(S.Header,{children:(0,Q.jsx)(S.Title,{children:`Can't Delete Profile`})}),(0,Q.jsxs)(S.Body,{className:`space-y-4`,children:[(0,Q.jsx)(m,{variant:`body-medium-default`,as:`p`,children:l}),e&&e.callSiteIds.length>0&&(0,Q.jsx)(`ul`,{className:`space-y-1 pl-1`,children:e.callSiteIds.map(e=>(0,Q.jsxs)(`li`,{className:`text-body-small-default text-(--content-secondary)`,children:[`• `,(0,Q.jsx)(`code`,{children:e})]},e))}),(0,Q.jsxs)(`div`,{className:`space-y-1`,children:[(0,Q.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Replacement profile`}),(0,Q.jsx)(h,{"aria-label":`Replacement profile`,value:n,onChange:r,options:[{value:``,label:`Select a replacement…`},...t.map(e=>({value:e.name,label:e.label??e.name}))]})]}),i&&(0,Q.jsx)(m,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:i})]}),(0,Q.jsxs)(S.Footer,{children:[(0,Q.jsx)(s,{variant:`ghost`,size:`compact`,onClick:o,children:`Cancel`}),(0,Q.jsx)(s,{variant:`primary`,size:`compact`,disabled:!n||a,onClick:c,children:a?`Saving…`:`Reassign and Delete`})]})]})})}function xt(e,t){if(e){let n=Ke(e).find(e=>e.id===t);if(n)return n.displayName}let n=t.lastIndexOf(`/`);return n>=0?t.slice(n+1):t}function St(e){let t=[];e.description&&t.push(e.description);let n=[];if(e.model&&n.push(xt(e.provider,e.model)),e.provider){let t=Me[e.provider]??e.provider;n.push(`hosted by ${t}`)}return n.length>0&&t.push(n.join(` `)),t.join(` – `)}function Ct({profile:e,isDragging:t,dropTarget:n,isDeleting:r,deleteError:i,isToggling:a,onDragStart:o,onDragEnd:c,onDragOver:l,onDragLeave:u,onDrop:d,onEditClick:f,onDeleteClick:p,onStatusToggle:h}){let g=e.source===`managed`,_=e.invariant===!0,y=e.status!==`disabled`;return(0,Q.jsxs)(`div`,{className:`relative`,children:[n?.name===e.name&&!n.after&&(0,Q.jsx)(`div`,{className:`mx-0 h-0.5 rounded-full bg-[var(--border-active)]`}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 rounded-lg pr-2 py-2${t?` opacity-50`:``}`,draggable:!g,onDragStart:o,onDragEnd:c,onDragOver:l,onDragLeave:u,onDrop:d,children:[(0,Q.jsx)(st,{className:`h-4 w-4 shrink-0 ${g?`invisible`:`cursor-grab text-[var(--content-tertiary)]`}`}),(0,Q.jsxs)(`div`,{className:`min-w-0 flex-1${y?``:` opacity-55`}`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(m,{variant:`body-medium-default`,as:`span`,className:`text-(--content-default)`,children:e.label??e.name}),g&&(0,Q.jsx)(v,{tone:`positive`,title:`Managed by Platform — this profile cannot be disabled, deleted, or renamed.`,children:`Platform`})]}),e.description||e.model||e.provider?(0,Q.jsx)(m,{variant:`body-medium-lighter`,as:`p`,className:`mt-0.5 text-(--content-tertiary)`,children:St(e)}):null]}),(0,Q.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[(!_||!y)&&(0,Q.jsx)(`div`,{className:`flex shrink-0 items-center`,title:y?`Active — toggle to hide from pickers`:`Disabled — toggle to show in pickers`,children:(0,Q.jsx)(b,{checked:y,onChange:e=>h(e),disabled:a,"aria-label":`${y?`Disable`:`Enable`} ${e.label??e.name}`})}),(0,Q.jsxs)(`div`,{className:`flex w-[92px] items-center justify-end gap-2`,children:[(0,Q.jsx)(s,{variant:`ghost`,size:`compact`,onClick:f,children:g||_?`View`:`Edit`}),(0,Q.jsx)(s,{variant:`ghost`,size:`compact`,iconOnly:(0,Q.jsx)(qe,{}),"aria-label":`Delete ${e.label??e.name}`,disabled:g||_||r,title:g||_?`Managed profiles cannot be deleted`:void 0,onClick:p,tintColor:`var(--system-negative-strong)`})]})]})]}),n?.name===e.name&&n.after&&(0,Q.jsx)(`div`,{className:`mx-0 h-0.5 rounded-full bg-[var(--border-active)]`}),i?(0,Q.jsx)(m,{variant:`body-small-default`,as:`p`,className:`px-2 pb-1 text-(--system-negative-strong)`,children:i}):null]})}function wt({isOpen:e,assistantId:t,onClose:n}){let r=u(),{data:i}=d({...V({path:{assistant_id:t}}),staleTime:3e4}),o=(0,Z.useMemo)(()=>i?.llm?.profiles??{},[i?.llm?.profiles]),s=(0,Z.useMemo)(()=>i?.llm?.profileOrder??[],[i?.llm?.profileOrder]),c=i?.llm?.activeProfile??null,l=i?.llm?.callSites??{},f=(0,Z.useMemo)(()=>rt(o,s),[o,s]),p=H({onSuccess:e=>{G(r,{path:{assistant_id:t}},e)}}),[m,h]=(0,Z.useState)(!1),[g,_]=(0,Z.useState)(null),{data:v}=d({...B({path:{assistant_id:t}}),enabled:e}),y=v?.connections,b=Object.keys(o);async function x(e,n,r){let i=r?.mode??`replace`,c=!(e in o);if(i===`merge`&&!c){await p.mutateAsync({path:{assistant_id:t},body:{llm:{profiles:{[e]:n}}}}),h(!1),_(null);return}let l={profiles:{[e]:n}};if(c&&(l.profileOrder=s.includes(e)?s:[...s,e]),c)await p.mutateAsync({path:{assistant_id:t},body:{llm:l}});else{let n=o[e];await p.mutateAsync({path:{assistant_id:t},body:{llm:{profiles:{[e]:null}}}});try{await p.mutateAsync({path:{assistant_id:t},body:{llm:l}})}catch(r){throw a(r,{context:`settings-ai-profile-edit-recreate`}),n!=null&&await p.mutateAsync({path:{assistant_id:t},body:{llm:{profiles:{[e]:n}}}}).catch(()=>{}),r}}c&&C.success(`Profile "${n.label??e}" created`),h(!1),_(null)}return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(S.Root,{open:e,onOpenChange:e=>{e||n()},children:e?(0,Q.jsx)(Tt,{assistantId:t,profiles:o,profileOrder:s,orderedProfiles:f,activeProfile:c,callSiteOverrides:l,onClose:n,onEditClick:e=>{_(e),h(!0)},onNewClick:()=>{_(null),h(!0)}}):null}),(0,Q.jsx)(tt,{isOpen:m,mode:g?g.source===`managed`||g.invariant===!0?`view`:`edit`:`create`,profileName:g?.name,initialValues:g??void 0,existingNames:b,connections:y,assistantId:t,onSave:x,onCancel:()=>{h(!1),_(null)}})]})}function Tt({assistantId:e,profiles:t,profileOrder:n,orderedProfiles:r,activeProfile:i,callSiteOverrides:o,onClose:c,onEditClick:l,onNewClick:d}){let f=u(),p=H({onSuccess:t=>{G(f,{path:{assistant_id:e}},t)}}),[h,g]=(0,Z.useState)({}),[_,v]=(0,Z.useState)({}),[y,b]=(0,Z.useState)(new Set),[x,C]=(0,Z.useState)(null),[w,T]=(0,Z.useState)(null),[E,D]=(0,Z.useState)(null),[O,k]=(0,Z.useState)(null),A=(0,Z.useRef)(null),j=(0,Z.useRef)(null),[M,N]=(0,Z.useState)(null),[P,F]=(0,Z.useState)(null),[I,L]=(0,Z.useState)(``),[R,z]=(0,Z.useState)(!1),B=(0,Z.useMemo)(()=>r,[r]);async function V(n,r){if(y.has(n.name))return!1;b(e=>new Set(e).add(n.name)),C(null);let i=r?`active`:`disabled`;if(!t[n.name])return b(e=>{let t=new Set(e);return t.delete(n.name),t}),!1;try{return await p.mutateAsync({path:{assistant_id:e},body:{llm:{profiles:{[n.name]:{status:i}}}}}),!0}catch(e){return a(e,{context:`settings-ai-profile-toggle`}),C(`Couldn't update "${n.label??n.name}". Please try again.`),!1}finally{b(e=>{let t=new Set(e);return t.delete(n.name),t})}}async function ee(t){v(e=>({...e,[t]:!0})),g(e=>{let n={...e};return delete n[t],n});try{let r=n.filter(e=>e!==t);await p.mutateAsync({path:{assistant_id:e},body:{llm:{profiles:{[t]:null},profileOrder:r}}})}catch(e){a(e,{context:`settings-ai-profile-delete`}),g(e=>({...e,[t]:`Failed to delete profile. Please try again.`}))}finally{v(e=>{let n={...e};return delete n[t],n})}}function U(e){let t=B.find(t=>t.name===e)?.label??e,n=e===i,r=Object.entries(o).filter(([t,n])=>t!==`mainAgent`&&n?.profile===e).map(([e])=>e);if(n||r.length>0){N({name:e,label:t,isActive:n,callSiteIds:r}),L(``),F(null);return}ee(e)}async function W(){if(!M||!I)return;z(!0),F(null);let t={};if(M.isActive&&(t.activeProfile=I),M.callSiteIds.length>0){let e={};for(let t of M.callSiteIds)e[t]={profile:I};t.callSites=e}if(Object.keys(t).length>0)try{await p.mutateAsync({path:{assistant_id:e},body:{llm:t}})}catch(e){a(e,{context:`settings-ai-profile-reassign-delete`}),F(`Failed to reassign references. Please try again.`),z(!1);return}let n=M.name;N(null),z(!1),ee(n)}async function K(t,r){if(t===r.name)return;k(null);let i=n.filter(e=>e!==t),o=i.indexOf(r.name);if(o===-1)return;r.after&&(o+=1);let s=[...i.slice(0,o),t,...i.slice(o)];try{await p.mutateAsync({path:{assistant_id:e},body:{llm:{profileOrder:s}}})}catch(e){a(e,{context:`settings-ai-profile-reorder`}),k(`Failed to reorder profiles. Please try again.`)}}let q=B.filter(e=>e.name!==M?.name&&e.source!==`managed`),te=q.length>0?q:B.filter(e=>e.name!==M?.name);return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsxs)(S.Content,{size:`md`,children:[(0,Q.jsxs)(S.Header,{children:[(0,Q.jsx)(S.Title,{children:`Model Profiles`}),(0,Q.jsx)(S.Description,{children:`Bundle a provider and model into a named profile. Assign profiles to specific actions or swap between them when chatting.`})]}),(0,Q.jsxs)(S.Body,{children:[B.length===0?(0,Q.jsx)(m,{variant:`body-medium-lighter`,as:`p`,className:`py-4 text-center text-(--content-tertiary)`,children:`No profiles yet. Create one to get started.`}):(0,Q.jsx)(`div`,{className:`space-y-1`,children:B.map(e=>(0,Q.jsx)(Ct,{profile:e,isDragging:w===e.name,dropTarget:E,isDeleting:_[e.name]??!1,deleteError:h[e.name],isToggling:y.has(e.name),onDragStart:t=>{A.current=e.name,T(e.name),t.dataTransfer&&(t.dataTransfer.effectAllowed=`move`)},onDragEnd:()=>{A.current=null,j.current=null,T(null),D(null)},onDragOver:t=>{t.preventDefault();let n=t.currentTarget.getBoundingClientRect(),r=t.clientY>n.top+n.height/2,i={name:e.name,after:r};j.current=i,D(i)},onDragLeave:t=>{t.currentTarget.contains(t.relatedTarget)||(j.current=null,D(t=>t?.name===e.name?null:t))},onDrop:e=>{e.preventDefault();let t=A.current,n=j.current;A.current=null,j.current=null,T(null),D(null),t&&n&&K(t,n)},onEditClick:()=>l(e),onDeleteClick:()=>U(e.name),onStatusToggle:t=>void V(e,t)},e.name))}),O&&(0,Q.jsx)(m,{variant:`body-small-default`,as:`p`,className:`mt-2 text-(--system-negative-strong)`,children:O}),x&&(0,Q.jsx)(m,{variant:`body-small-default`,as:`p`,className:`mt-2 text-(--system-negative-strong)`,children:x})]}),(0,Q.jsxs)(S.Footer,{className:`justify-between`,children:[(0,Q.jsx)(s,{variant:`outlined`,size:`compact`,onClick:d,children:`+ New Profile`}),(0,Q.jsx)(s,{variant:`outlined`,size:`compact`,onClick:c,children:`Done`})]})]}),(0,Q.jsx)(bt,{blocked:M,availableReplacements:te,replacement:I,onReplacementChange:L,error:P,saving:R,onClose:()=>{N(null),F(null)},onConfirm:()=>void W()})]})}function Et({mode:e,connection:t,assistantId:n,existingNames:r,onSave:i,onCancel:a}){let[o,c]=(0,Z.useState)(e),[l,d]=(0,Z.useState)(void 0),f=o===`managed-edit`,[p,g]=(0,Z.useState)(t?.label??``),[_,v]=(0,Z.useState)(t?.name??``),[b,x]=(0,Z.useState)(t?.provider??`anthropic`),[C,w]=(0,Z.useState)(()=>t?t.auth.type:`platform`),[T,E]=(0,Z.useState)(()=>t?.auth.type===`api_key`?t.auth.credential:t?``:`credential/anthropic/api_key`),[D,O]=(0,Z.useState)(t?.baseUrl??``),[k,A]=(0,Z.useState)(()=>t?.models?t.models.map(e=>e.id).join(`, `):``),[j,M]=(0,Z.useState)(!1),[N,P]=(0,Z.useState)(null),L=b===`openai-compatible`,R=X(),z=(0,Z.useMemo)(()=>b&&!R.includes(b)?[...R,b]:R,[b,R]),{handleLabelChange:B,resetDirty:V}=$e(o,g,v),[ee,H]=(0,Z.useState)(``),[U,G]=(0,Z.useState)(!1),K=u(),q=(0,Z.useMemo)(()=>je(T),[T]),te=C===`api_key`&&q!==null,{hasStoredCredential:J,isLoading:Y}=Ye({assistantId:n,credentialKind:`credential`,credentialName:q?`${q.service}:${q.field}`:``,enabled:te}),{credentials:ne}=be({assistantId:n,enabled:C===`api_key`});(0,Z.useEffect)(()=>{let e=t?.provider??`anthropic`;g(t?.label??``),v(t?.name??``),x(e),w(t?t.auth.type:`platform`),t?.auth.type===`api_key`?E(t.auth.credential):E(t?``:`credential/${e}/api_key`),V(),P(null),O(t?.baseUrl??``),A(t?.models?t.models.map(e=>e.id).join(`, `):``),H(``),G(!1)},[t,V]);function re(){c(`create`),d(b===`ollama`?`none`:`api_key`)}let ie=_.trim().length>0;async function ae(){if(ie){M(!0),P(null);try{let e;if(C===`api_key`){let t=T.trim()||`credential/${b}/api_key`,r=ee.trim();if(r){G(!0);try{let e=je(t);await F({path:{assistant_id:n},body:e?{type:`credential`,name:`${e.service}:${e.field}`,value:r}:{type:`api_key`,name:b,value:r},throwOnError:!0});let i=Ae(n,`credential`,e?`${e.service}:${e.field}`:``);K.setQueryData(i,!0),K.invalidateQueries({queryKey:W({path:{assistant_id:n}})})}catch{P(`Failed to save API key. Please try again.`);return}finally{G(!1)}}e={type:`api_key`,credential:t}}else if(C===`oauth_subscription`)if(t?.auth.type===`oauth_subscription`)e=t.auth;else{P(`Use the "Sign in with ChatGPT" button to connect your subscription.`);return}else if(C===`service_account`)if(t?.auth.type===`service_account`)e=t.auth;else{P(`Service account connections cannot be created through this form.`);return}else e=C===`none`?{type:`none`}:{type:`platform`};let r=p.trim()||null,a={auth:e,label:r,...L&&{base_url:D.trim()||null,models:k.trim()?k.split(`,`).map(e=>({id:e.trim()})).filter(e=>e.id):null}},{data:o,response:s}=await I({path:{assistant_id:n,name:t?.name??_.trim()},body:a});if(!s?.ok){let e;try{let t=await s?.json();typeof t?.error?.message==`string`&&(e=t.error.message)}catch{}P(e||ke(s?.status,_.trim()));return}if(!o){P(`Server returned an empty response. Please try again.`);return}i(o)}catch{P(`Failed to save connection. Please try again.`)}finally{M(!1)}}}let oe=ne.filter(e=>e.service===b),se=o!==`create`&&t?.auth.type===`api_key`,ce=oe.length>0||se,le=Ie(`Enter your API key`,J);return o===`create`?(0,Q.jsx)(Fe,{variant:`modal`,assistantId:n,existingNames:r,defaultProviderType:b,defaultAuthType:l,onCreated:i,onCancel:a},b):(0,Q.jsxs)(S.Content,{size:`md`,children:[(0,Q.jsxs)(S.Header,{children:[(0,Q.jsx)(S.Title,{children:`Edit Connection`}),(0,Q.jsx)(S.Description,{children:f?`Managed by Vellum — auth is locked, but you can rename "${t?.name}".`:`Editing "${t?.name}".`})]}),(0,Q.jsxs)(S.Body,{className:`space-y-4`,children:[(0,Q.jsxs)(`div`,{className:`space-y-1`,children:[(0,Q.jsxs)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:[`Display Name`,` `,(0,Q.jsx)(`span`,{className:`text-[var(--content-disabled)]`,children:`(optional)`})]}),(0,Q.jsx)(y,{value:p,onChange:e=>B(e.target.value),placeholder:`e.g. My Anthropic Key`,fullWidth:!0})]}),(0,Q.jsxs)(`div`,{className:`space-y-1`,children:[(0,Q.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Key`}),(0,Q.jsx)(y,{value:_,placeholder:`e.g. anthropic-personal`,disabled:!0,fullWidth:!0})]}),(0,Q.jsxs)(`div`,{className:`space-y-1`,children:[(0,Q.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Provider`}),(0,Q.jsx)(h,{"aria-label":`Provider`,value:b,onChange:x,disabled:!0,options:z.map(e=>({value:e,label:Me[e]}))})]}),L&&(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsxs)(`div`,{className:`space-y-1`,children:[(0,Q.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Base URL`}),(0,Q.jsx)(y,{value:D,onChange:e=>O(e.target.value),placeholder:`https://api.example.com/v1`,disabled:f,fullWidth:!0})]}),(0,Q.jsxs)(`div`,{className:`space-y-1`,children:[(0,Q.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Models`}),(0,Q.jsx)(y,{value:k,onChange:e=>A(e.target.value),placeholder:`model-1, model-2`,disabled:f,fullWidth:!0}),(0,Q.jsx)(m,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:`Comma-separated model identifiers exposed by your endpoint.`})]})]}),(0,Q.jsxs)(`div`,{className:`space-y-1`,children:[(0,Q.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Auth Type`}),(0,Q.jsx)(h,{"aria-label":`Auth type`,value:C,onChange:e=>{w(e),P(null)},disabled:f||b===`ollama`,options:(()=>{let e;return e=b===`ollama`?[`none`]:Ze(b)?[`api_key`,`platform`]:[`api_key`],C&&!e.includes(C)&&e.push(C),e.map(e=>({value:e,label:Oe[e]}))})()})]}),C===`api_key`&&(0,Q.jsx)(Se,{apiKeyValue:ee,onApiKeyChange:H,credential:T,onCredentialChange:E,isAuthLocked:f,isLoadingCredential:Y,apiKeyPlaceholder:le,provider:b,providerCredentials:oe,showAdvancedSection:ce,onError:P}),C===`oauth_subscription`&&(0,Q.jsx)(xe,{assistantId:n,onConnected:i}),N&&(0,Q.jsx)(m,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:N})]}),(0,Q.jsxs)(S.Footer,{children:[(0,Q.jsx)(s,{variant:`ghost`,size:`compact`,onClick:a,children:`Cancel`}),o===`managed-edit`&&(0,Q.jsx)(s,{variant:`outlined`,size:`compact`,onClick:re,disabled:j||U,children:`Save as New`}),(0,Q.jsx)(s,{variant:`primary`,size:`compact`,disabled:!ie||j||U,onClick:()=>void ae(),children:j?`Saving…`:`Save`})]})]})}function Dt(e){switch(e.type){case`api_key`:return`API key · ${e.credential}`;case`oauth_subscription`:return`ChatGPT Subscription`;case`platform`:return`Managed proxy`;case`none`:return`None (local)`;default:return e.type}}function Ot({isOpen:e,assistantId:t,onClose:n}){let[r,i]=(0,Z.useState)(!1),[a,o]=(0,Z.useState)(null),s=u(),{data:c,isLoading:l,isError:f}=d({...B({path:{assistant_id:t}}),enabled:e}),p=(0,Z.useMemo)(()=>c?.connections??[],[c]);function m(e){s.invalidateQueries({queryKey:K({path:{assistant_id:t}})}),i(!1),o(null)}let h=p.map(e=>e.name),g=()=>{i(!1),o(null)};return(0,Q.jsx)(S.Root,{open:e,onOpenChange:e=>{e||(r?g():n())},children:e?r?(0,Q.jsx)(Et,{mode:a?a.isManaged?`managed-edit`:`edit`:`create`,connection:a??void 0,assistantId:t,existingNames:h,onSave:m,onCancel:g}):(0,Q.jsx)(kt,{connections:p,loading:l,isError:f,assistantId:t,onClose:n,onEditClick:e=>{o(e),i(!0)},onNewClick:()=>{o(null),i(!0)},onConnectionDeleted:()=>{s.invalidateQueries({queryKey:K({path:{assistant_id:t}})})}}):null})}function kt({connections:e,loading:t,isError:n,assistantId:r,onClose:i,onEditClick:a,onNewClick:o,onConnectionDeleted:c}){let[l,u]=(0,Z.useState)({}),[d,f]=(0,Z.useState)({});async function p(e){f(t=>({...t,[e]:!0})),u(t=>{let n={...t};return delete n[e],n});try{let{response:t}=await P({path:{assistant_id:r,name:e}});t?.ok||t?.status===404?c(e):t?.status===409?u(t=>({...t,[e]:`Connection is in use by one or more profiles. Remove those references first.`})):u(t=>({...t,[e]:`Failed to delete connection. Please try again.`}))}catch{u(t=>({...t,[e]:`Failed to delete connection. Please try again.`}))}finally{f(t=>{let n={...t};return delete n[e],n})}}return(0,Q.jsxs)(S.Content,{size:`md`,children:[(0,Q.jsxs)(S.Header,{children:[(0,Q.jsx)(S.Title,{children:`Provider Connections`}),(0,Q.jsx)(S.Description,{children:`Manage inference provider connections. Each connection binds a name to a provider and auth configuration.`})]}),(0,Q.jsx)(S.Body,{children:t?(0,Q.jsx)(`div`,{className:`space-y-2 py-2`,children:[1,2,3].map(e=>(0,Q.jsx)(`div`,{className:`h-10 animate-pulse rounded-lg bg-[var(--surface-active)]`},e))}):n?(0,Q.jsx)(m,{variant:`body-medium-default`,as:`p`,className:`py-4 text-center text-(--system-negative-strong)`,children:`Failed to load connections. Please try again.`}):e.length===0?(0,Q.jsx)(m,{variant:`body-medium-lighter`,as:`p`,className:`py-4 text-center text-(--content-tertiary)`,children:`No connections yet. Create one to get started.`}):(0,Q.jsx)(`div`,{className:`space-y-1`,children:e.map(e=>{let t=d[e.name]??!1,n=l[e.name],r=e.isManaged??!1;return(0,Q.jsxs)(`div`,{children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-3 rounded-lg px-2 py-2`,children:[(0,Q.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(m,{variant:`body-medium-default`,as:`span`,className:`text-(--content-default)`,children:e.label??e.name}),r&&(0,Q.jsx)(v,{tone:`positive`,title:`Managed by Platform — auth is locked, but you can rename this connection.`,children:`Platform`})]}),(0,Q.jsxs)(m,{variant:`body-medium-lighter`,as:`p`,className:`mt-0.5 text-(--content-tertiary)`,children:[e.label?`${e.name} · `:``,Me[e.provider]??e.provider,` · `,Dt(e.auth)]})]}),(0,Q.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[(0,Q.jsx)(s,{variant:`ghost`,size:`compact`,onClick:()=>a(e),children:`Edit`}),(0,Q.jsx)(s,{variant:`ghost`,size:`compact`,iconOnly:(0,Q.jsx)(qe,{}),"aria-label":`Delete ${e.name}`,disabled:r||t,title:r?`Managed connections cannot be deleted`:void 0,onClick:()=>void p(e.name),tintColor:`var(--system-negative-strong)`})]})]}),n?(0,Q.jsx)(m,{variant:`body-small-default`,as:`p`,className:`px-2 pb-1 text-(--system-negative-strong)`,children:n}):null]},e.name)})})}),(0,Q.jsxs)(S.Footer,{className:`justify-between`,children:[(0,Q.jsx)(s,{variant:`outlined`,size:`compact`,onClick:o,children:`+ New Connection`}),(0,Q.jsx)(s,{variant:`outlined`,size:`compact`,onClick:i,children:`Done`})]})]})}function At(e){let[t,n]=(0,Z.useState)(void 0);return(0,Z.useEffect)(()=>{t!==void 0&&e===t.value&&n(void 0)},[e,t]),[t===void 0?e:t.value,(0,Z.useCallback)(e=>n(e===void 0?void 0:{value:e}),[])]}function jt(){let e=it(),t=u(),{data:n}=d({...V({path:{assistant_id:e}}),staleTime:3e4}),r=n?.llm?.activeProfile??null,i=n?.llm?.advisorProfile??null,o=n?.llm?.callSites??{},{profiles:c,profileOrder:l}=nt(n?.llm,e),f=(0,Z.useMemo)(()=>rt(c,l),[c,l]),p=H({onSuccess:n=>{G(t,{path:{assistant_id:e}},n)}}),[g,_]=At(r),[v,y]=At(i),[b,x]=(0,Z.useState)(!1),[S,w]=(0,Z.useState)(!1),[T,E]=(0,Z.useState)(!1),D=(0,Z.useMemo)(()=>Pe(f,[g]),[f,g]),O=(0,Z.useMemo)(()=>Pe(f,[v]),[f,v]),k=Object.entries(o).filter(([e,t])=>e!==`mainAgent`&&(t?.profile!=null||t?.provider!=null||t?.model!=null)).length,A=k===1?`1 Override`:k>0?`${k} Overrides`:`Overrides`,j=g!==r,N=v!==i,P=(0,Z.useCallback)(async()=>{try{let t={};j&&(t.activeProfile=g),N&&(t.advisorProfile=v),await p.mutateAsync({path:{assistant_id:e},body:{llm:t}}),C.success(`Saved.`)}catch(e){C.error(`Failed to save. Please try again.`),a(e,{context:`settings-ai-language-model-save`})}},[j,N,g,v,p,e]);return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(dt,{title:`Language Model`,subtitle:`Configure the LLMs that power your assistant`,children:(0,Q.jsxs)(`div`,{className:`space-y-4`,children:[(0,Q.jsxs)(`div`,{className:`space-y-1`,children:[(0,Q.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Default Profile`}),(0,Q.jsx)(h,{value:g??``,onChange:e=>{_(e===``?null:e)},placeholder:`Select a default profile…`,options:D.map(e=>({value:e.name,label:We(e)}))}),D.length===0?(0,Q.jsx)(m,{variant:`body-small-default`,as:`p`,className:`mt-1 text-(--content-tertiary)`,children:`No profiles yet. Click Profiles below to create one.`}):null]}),(0,Q.jsxs)(`div`,{className:`space-y-1`,children:[(0,Q.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Advisor Profile`}),(0,Q.jsx)(h,{value:v??``,onChange:e=>{y(e===``?null:e)},placeholder:`Select an advisor profile…`,options:O.map(e=>({value:e.name,label:We(e)}))}),(0,Q.jsx)(m,{variant:`body-small-default`,as:`p`,className:`mt-1 text-(--content-tertiary)`,children:`Which model your assistant consults for a second opinion`})]}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(s,{variant:`outlined`,size:`compact`,onClick:()=>E(!0),children:`Providers`}),(0,Q.jsx)(s,{variant:`outlined`,size:`compact`,onClick:()=>x(!0),children:`Profiles`}),(0,Q.jsx)(s,{variant:`outlined`,size:`compact`,onClick:()=>w(!0),children:A})]}),(j||N)&&(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)($,{onClick:P,disabled:p.isPending}),p.isPending&&(0,Q.jsx)(M,{className:`h-4 w-4 animate-spin text-[var(--content-disabled)]`})]})]})}),e&&(0,Q.jsx)(wt,{isOpen:b,assistantId:e,onClose:()=>x(!1)}),e&&(0,Q.jsx)(vt,{isOpen:S,onClose:()=>w(!1),assistantId:e}),e&&(0,Q.jsx)(Ot,{isOpen:T,assistantId:e,onClose:()=>E(!1)})]})}var Mt=`vellum:ai:imageGenMode`,Nt=`vellum:ai:imageGenModel`,Pt=`vellum:ai:webSearchMode`,Ft=`vellum:ai:webSearchProvider`,It=`vellum:ai:webFetchProvider`,Lt=`vellum:ai:emailMode`,Rt=`vellum:ai:emailByoProvider`,zt=`vellum:voice:ttsProvider`,Bt=`vellum:voice:ttsApiKey:`,Vt=`vellum:voice:ttsVoiceId:`,Ht=`vellum:voice:sttProvider`,Ut=`vellum:voice:sttApiKey:`;function Wt(){let e=it();return(0,Z.useCallback)(async(t,n)=>{try{let{data:r}=await F({path:{assistant_id:e},body:{value:n,type:`api_key`,name:t},throwOnError:!0});Ne(r)}catch(e){throw e instanceof Error&&e.message===`No assistant found`?C.error(`Assistant not ready. Please try again.`):C.error(`Failed to save ${t} API key. Please try again.`),a(e,{context:`provision_provider_key`}),e}},[e])}function Gt(){let e=it(),i=u(),{data:o}=d({...V({path:{assistant_id:e}}),staleTime:3e4}),s=H({onSuccess:t=>{G(i,{path:{assistant_id:e}},t)}}),c=Wt(),{serverWebSearchMode:l,serverWebSearchProvider:f}=(0,Z.useMemo)(()=>{if(!o)return{serverWebSearchMode:we(n(Pt,`your-own`),`your-own`),serverWebSearchProvider:n(Ft,`inference-provider-native`)};let e=o.services?.[`web-search`];return{serverWebSearchMode:we(e?.mode??n(`vellum:ai:webSearchMode`,`your-own`),`your-own`),serverWebSearchProvider:e?.provider||n(`vellum:ai:webSearchProvider`,`inference-provider-native`)}},[o]),[p,m]=(0,Z.useState)(!1),[g,_]=At(l),[v,b]=At(f),[x,S]=(0,Z.useState)(``),w=Le.has(v),{hasStoredCredential:T}=Ye({assistantId:e,credentialKind:`api_key`,credentialName:v,enabled:w}),E=x.trim().length>0,D=p||g===`your-own`&&w&&!T&&!E||!(g!==l||(g===`managed`?`inference-provider-native`:v)!==f)&&!E,O=Ie(Ee[v]??`Enter your API key`,T),k=(0,Z.useCallback)(async()=>{m(!0);let t=x.trim(),n=g===`managed`?`inference-provider-native`:v,o=Re(n),l=g===`your-own`&&w&&t.length>0;try{l&&await c(n,t),await s.mutateAsync({path:{assistant_id:e},body:{services:{"web-search":{mode:g,provider:n}}}}).catch(e=>{throw C.error(`Failed to update assistant configuration. Please try again.`),a(e,{context:`patch_daemon_config`}),e})}catch{m(!1);return}m(!1);try{if(r(Pt,g),r(Ft,n),l){o&&r(o,t);let n=Ae(e,`api_key`,v);i.setQueryData(n,!0),i.invalidateQueries({queryKey:n}),S(``)}C.success(`Web search settings saved.`)}catch(e){a(e,{context:`settings-ai-web-search-persist-local`}),C.error(`Saved, but local preferences could not be written.`)}},[w,s,c,i,e,x,g,v]),A=(0,Z.useCallback)(()=>{let e=Re(v);e&&t(e),S(``),b(`inference-provider-native`),r(Ft,`inference-provider-native`)},[v,b]);return(0,Q.jsx)(lt,{title:`Web Search`,subtitle:`Configure how your assistant should search the web`,mode:g,onModeChange:e=>_(e),children:g===`managed`?(0,Q.jsxs)(`div`,{className:`space-y-3`,children:[(0,Q.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Web search is included with managed inference.`}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)($,{onClick:k,disabled:D}),p&&(0,Q.jsx)(M,{className:`h-4 w-4 animate-spin text-[var(--content-disabled)]`})]})]}):(0,Q.jsxs)(`div`,{className:`space-y-4`,children:[(0,Q.jsxs)(`div`,{className:`space-y-1`,children:[(0,Q.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Provider`}),(0,Q.jsx)(h,{value:v,onChange:b,options:Ce.map(e=>({value:e,label:ze[e]??e}))})]}),w&&(0,Q.jsx)(y,{label:`API Key`,type:`password`,value:x,onChange:e=>S(e.target.value),placeholder:O,fullWidth:!0}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)($,{onClick:k,disabled:D}),p&&(0,Q.jsx)(M,{className:`h-4 w-4 animate-spin text-[var(--content-disabled)]`}),w&&(0,Q.jsx)(ut,{onClick:A,filled:!0})]})]})})}var Kt=`default`;function qt(){let e=it(),i=u(),{data:o}=d({...V({path:{assistant_id:e}}),staleTime:3e4}),s=H({onSuccess:t=>{G(i,{path:{assistant_id:e}},t)}}),c=Wt(),l=(0,Z.useMemo)(()=>o?o.services?.[`web-fetch`]?.provider||n(`vellum:ai:webFetchProvider`,Kt):n(It,Kt),[o]),[f,p]=(0,Z.useState)(!1),[m,g]=At(l),[_,v]=(0,Z.useState)(``),b=Xe.has(m),{hasStoredCredential:x}=Ye({assistantId:e,credentialKind:`api_key`,credentialName:m,enabled:b}),S=_.trim().length>0,w=f||b&&!x&&!S||m===l&&!S,T=Ie(Be[m]??`Enter your API key`,x),E=(0,Z.useCallback)(async()=>{p(!0);let t=_.trim(),n=b&&t.length>0;try{n&&await c(m,t),await s.mutateAsync({path:{assistant_id:e},body:{services:{"web-fetch":{provider:m}}}}).catch(e=>{throw C.error(`Failed to update assistant configuration. Please try again.`),a(e,{context:`patch_daemon_config`}),e})}catch{p(!1);return}p(!1);try{if(r(It,m),n){let n=ve(m);n&&r(n,t);let a=Ae(e,`api_key`,m);i.setQueryData(a,!0),i.invalidateQueries({queryKey:a}),v(``)}C.success(`Web fetch settings saved.`)}catch(e){a(e,{context:`settings-ai-web-fetch-persist-local`}),C.error(`Saved, but local preferences could not be written.`)}},[b,s,c,i,e,_,m]),D=(0,Z.useCallback)(()=>{let e=ve(m);e&&t(e),v(``),g(Kt),r(It,Kt)},[m,g]);return(0,Q.jsx)(dt,{id:`web-fetch`,title:`Web Fetch`,subtitle:`Configure how your assistant reads individual web pages`,children:(0,Q.jsxs)(`div`,{className:`space-y-4`,children:[(0,Q.jsxs)(`div`,{className:`space-y-1`,children:[(0,Q.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Provider`}),(0,Q.jsx)(h,{value:m,onChange:g,options:Ve.map(e=>({value:e,label:Te[e]??e}))})]}),b&&(0,Q.jsx)(y,{label:`API Key`,type:`password`,value:_,onChange:e=>v(e.target.value),placeholder:T,fullWidth:!0}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)($,{onClick:E,disabled:w}),f&&(0,Q.jsx)(M,{className:`h-4 w-4 animate-spin text-[var(--content-disabled)]`}),b&&(0,Q.jsx)(ut,{onClick:D,filled:!0})]})]})})}var Jt=[{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`}}],Yt=[{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:`macos-native`,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.`}],Xt=[{id:`mailgun`,displayName:`Mailgun`,setupSkill:`mailgun-setup`,docsUrl:`https://www.mailgun.com/`},{id:`resend`,displayName:`Resend`,setupSkill:`resend-setup`,docsUrl:`https://resend.com/`}],Zt=[`gemini-3.1-flash-image-preview`,`gemini-3-pro-image-preview`,`gpt-image-2`],Qt={"gemini-3.1-flash-image-preview":`Nano Banana 2`,"gemini-3-pro-image-preview":`Nano Banana Pro`,"gpt-image-2":`GPT Image 2`};function $t(e){return e.startsWith(`gpt-`)||e.startsWith(`dall-e-`)?`openai`:(e.startsWith(`gemini-`),`gemini`)}function en({assistantId:e,assistantHandle:t,emailRootDomain:n}){let r=u(),i=c(),[o,p]=l(),[m,h]=(0,Z.useState)(``),[v,y]=(0,Z.useState)(!1),[b,x]=(0,Z.useState)(null),[S,w]=(0,Z.useState)(``),[T,E]=(0,Z.useState)(null),[D,A]=(0,Z.useState)(!1),[j,N]=(0,Z.useState)(!1),[P,F]=(0,Z.useState)(!1);(0,Z.useEffect)(()=>{v||!t||m||(h(t),y(!0))},[t,v,m]);let I=d({...ae(),enabled:!0}),L=I.data,R=L?.entitlements,z=R?.managed_email===!0,B=!!R&&!z,V=!L&&I.isError&&!I.isFetching,ee=d({...re({path:{assistant_id:e}}),enabled:!B}),H=d({...fe({path:{assistant_id:e}}),enabled:!B}),U=ee.data?.results?.[0],W=H.data?.results?.[0],G=U?`${U.subdomain}.${n}`:null,K=d({...ce({path:{assistant_id:e,id:W?.id??``}}),enabled:!!W?.id,refetchOnWindowFocus:!1}),J=d({...me({path:{assistant_id:e,id:U?.id??``}}),enabled:!!U?.id,refetchInterval:e=>{let t=e.state.data?.status;return t===`verified`||t===`failed`?!1:1e4},refetchOnWindowFocus:!0});(0,Z.useEffect)(()=>{o.get(`release`)!==`1`||!U||W||(N(!0),p(e=>{let t=new URLSearchParams(e);return t.delete(`release`),t},{replace:!0}))},[W,U,o,p]);let Y=f(de()),ne=f(pe()),he=f(ie()),_e=f(oe()),X=(0,Z.useCallback)(()=>{let t={assistant_id:e};r.invalidateQueries({queryKey:le({path:t})}),r.invalidateQueries({queryKey:ue({path:t})}),W?.id&&r.invalidateQueries({queryKey:se({path:{...t,id:W.id}})}),r.invalidateQueries({queryKey:ge()})},[W?.id,e,r]),ve=(0,Z.useCallback)(async()=>{let t=m.trim().toLowerCase();if(!t){x(`Enter a subdomain.`);return}A(!1);try{await Y.mutateAsync({path:{assistant_id:e},body:{subdomain:t}}),h(``),x(null),X(),C.success(`Domain ${t}.${n} registered.`)}catch(e){x(q(e,void 0,`Failed to register domain.`))}},[e,n,X,Y,m]),ye=(0,Z.useCallback)(async()=>{let t=S.trim().toLowerCase();if(!t){E(`Enter an email username.`);return}try{await he.mutateAsync({path:{assistant_id:e},body:{username:t}}),w(``),E(null),X(),C.success(`Email address created.`)}catch(e){E(q(e,void 0,`Failed to create email address.`))}},[e,X,he,S]),be=(0,Z.useCallback)(async()=>{if(W?.id){F(!1);try{await _e.mutateAsync({path:{assistant_id:e,id:W.id}}),X(),C.success(`Email address removed.`)}catch(e){a(e,{context:`email_address_delete`}),C.error(`Failed to remove email address.`)}}},[W?.id,e,_e,X]),xe=(0,Z.useCallback)(async()=>{if(!U?.id)return;if(W){C.error(`Remove the email address first.`);return}N(!1);let t=U.subdomain;try{await ne.mutateAsync({path:{assistant_id:e,id:U.id}}),h(t),X(),C.success(`Domain released.`)}catch(e){a(e,{context:`email_domain_release`}),C.error(`Failed to release domain.`)}},[W,e,ne,U?.id,U?.subdomain,X]);if(I.isLoading)return(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 text-body-small-default text-[var(--content-tertiary)]`,children:[(0,Q.jsx)(M,{className:`h-4 w-4 animate-spin`}),`Checking subscription…`]});if(B)return(0,Q.jsxs)(_,{tone:`info`,icon:(0,Q.jsx)(O,{className:`h-4 w-4`,"aria-hidden":!0}),title:`Get a dedicated email address for your assistant`,actions:(0,Q.jsx)(s,{size:`compact`,onClick:()=>i(`${te.settings.billing}?adjust_plan`),children:`Upgrade to Pro`}),children:[`Pro plans include a managed`,` `,`<your-subdomain>.${n}`,` inbox — no provider setup required. Or switch to `,(0,Q.jsx)(`strong`,{children:`Your Own`}),` to bring an existing provider.`]});let Se=V?(0,Q.jsx)(_,{tone:`warning`,title:`Couldn't verify subscription status`,actions:(0,Q.jsx)(s,{size:`compact`,variant:`outlined`,onClick:()=>I.refetch(),children:`Retry`}),children:`We couldn't reach the billing service. The form below assumes managed email is enabled for your org — if it isn't, registering a domain will fail.`}):null;return U?W?(0,Q.jsxs)(`div`,{className:`space-y-4`,children:[Se,(0,Q.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,Q.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Address`}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(`span`,{className:`font-mono text-body-small-default text-[var(--content-default)]`,children:W.address}),(0,Q.jsx)(pt,{status:J.data?.status,message:J.data?.message,isLoading:J.isLoading}),(0,Q.jsx)(s,{variant:`dangerGhost`,size:`compact`,iconOnly:(0,Q.jsx)(qe,{}),onClick:()=>F(!0),disabled:_e.isPending,"aria-label":`Remove email address`})]}),(0,Q.jsx)(g,{open:P,title:`Remove Email Address`,message:(0,Q.jsxs)(Q.Fragment,{children:[`Are you sure you want to remove `,(0,Q.jsx)(`code`,{className:`rounded bg-[var(--surface-active)] px-1 py-0.5 font-mono text-[0.9em]`,children:W.address}),`? Your assistant will no longer be able to send or receive email at this address.`]}),confirmLabel:`Remove`,destructive:!0,onConfirm:be,onCancel:()=>F(!1)})]}),K.data?.usage&&(0,Q.jsxs)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:[K.data.usage.sent_today,` /`,` `,K.data.usage.daily_limit,` sent today ·`,` `,K.data.usage.received_today,` received`]})]}):(0,Q.jsxs)(`div`,{className:`space-y-4`,children:[Se,(0,Q.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,Q.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Domain`}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsxs)(`span`,{className:`font-mono text-body-small-default text-[var(--content-default)]`,children:[U.subdomain,`.`,n]}),(0,Q.jsx)(pt,{status:J.data?.status,message:J.data?.message,isLoading:J.isLoading}),(0,Q.jsx)(s,{variant:`dangerGhost`,size:`compact`,iconOnly:(0,Q.jsx)(qe,{}),onClick:()=>N(!0),disabled:ne.isPending,"aria-label":`Release domain`})]}),(0,Q.jsx)(g,{open:j,title:`Release Domain`,message:(0,Q.jsxs)(Q.Fragment,{children:[`Are you sure you want to release `,(0,Q.jsxs)(`code`,{className:`rounded bg-[var(--surface-active)] px-1 py-0.5 font-mono text-[0.9em]`,children:[U.subdomain,`.`,n]}),`? The subdomain will become available for others to claim.`]}),confirmLabel:`Release`,destructive:!0,onConfirm:xe,onCancel:()=>N(!1)})]}),(0,Q.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,Q.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Email address`}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsxs)(`div`,{className:`flex h-9 min-w-0 flex-1 items-center rounded-md border bg-[var(--field-bg)] text-body-medium-lighter transition-[border-color] duration-150 ${T?`border-[var(--system-negative-strong)]`:`border-[var(--field-border)] focus-within:border-[var(--border-active)]`}`,children:[(0,Q.jsx)(`input`,{value:S,onChange:e=>{w(e.target.value.toLowerCase()),T&&E(null)},placeholder:`hi`,"aria-label":`Email username`,"aria-invalid":!!T,className:`h-full min-w-0 flex-1 bg-transparent pl-3 pr-1 text-[var(--content-default)] placeholder:text-[var(--content-tertiary)] outline-none`}),(0,Q.jsxs)(`span`,{className:`shrink-0 pr-3 font-mono text-[var(--content-secondary)]`,children:[`@`,G]})]}),(0,Q.jsx)(s,{onClick:ye,disabled:he.isPending||!S.trim(),children:he.isPending?`Creating…`:`Create`})]}),T&&(0,Q.jsx)(`p`,{className:`text-body-small-default text-[var(--system-negative-strong)]`,children:T})]})]}):(0,Q.jsxs)(`div`,{className:`space-y-3`,children:[Se,(0,Q.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Subdomain`}),(0,Q.jsx)(k,{subdomain:m,onSubdomainChange:e=>{h(e),b&&x(null)},domainSuffix:n,subdomainPlaceholder:`my-assistant`,error:b}),(0,Q.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Each assistant gets its own subdomain. Lowercase letters, numbers, and hyphens only.`}),(0,Q.jsx)(s,{onClick:()=>A(!0),disabled:Y.isPending||!m.trim(),children:Y.isPending?`Registering…`:`Register`}),(0,Q.jsx)(g,{open:D,title:`Set Subdomain`,message:(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`code`,{className:`rounded bg-[var(--surface-active)] px-1 py-0.5 font-mono text-[0.9em]`,children:m.trim().toLowerCase()||`subdomain`}),` will also become your assistant's public handle. You won't be able to change it once set.`]}),confirmLabel:`Confirm`,onConfirm:ve,onCancel:()=>A(!1)})]})}function tn(){let e=it(),t=J(),{data:o}=d({...he(),enabled:t}),s=o?.results?.[0]?.handle,c=ot.use.emailRootDomain(),l=De(),[u,f]=(0,Z.useState)(()=>l===`gated`?`your-own`:we(n(Lt,`managed`),`managed`)),[p,m]=(0,Z.useState)(()=>{let e=n(Rt,`resend`);return e===`mailgun`||e===`resend`?e:`resend`}),g=d({queryKey:[`byoEmailCredential`,e,p],queryFn:async()=>{let{data:t}=await L({path:{assistant_id:e},body:{service:p,field:`api_key`},throwOnError:!0});return t},enabled:u===`your-own`||l===`gated`,staleTime:6e4,retry:i,meta:{errorContext:`byo_email_credential_check`}});(0,Z.useEffect)(()=>{g.error&&a(g.error,{context:`byo_email_credential_check`,bestEffort:!0})},[g.error]);let _=g.data?.hasSecret===!0,v=(0,Z.useCallback)(e=>{f(e),r(Lt,e)},[]),y=(0,Z.useCallback)(()=>{r(Rt,p),C.success(`Email settings saved.`)},[p]),b=(0,Z.useMemo)(()=>Xt.find(e=>e.id===p)??Xt[0],[p]),x=(0,Q.jsxs)(`div`,{className:`flex items-start gap-2 rounded-lg border border-[var(--border-subtle)] bg-[var(--surface-sunken)] p-3 text-body-small-default text-[var(--content-tertiary)]`,children:[(0,Q.jsx)(j,{className:`mt-0.5 h-3.5 w-3.5 shrink-0 text-[var(--system-positive-strong)]`}),(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Q.jsxs)(`span`,{children:[`Configure `,b.displayName,` via the assistant CLI: ask the assistant to run the`,` `,(0,Q.jsx)(`code`,{className:`rounded bg-[var(--surface-active)] px-1 py-0.5 text-[12px]`,children:b.setupSkill}),` `,`skill. It walks you through storing the API key, detecting the domain, and (optionally) wiring up an inbound webhook.`]}),(0,Q.jsxs)(`a`,{href:b.docsUrl,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex items-center gap-1 text-[var(--system-positive-strong)] underline hover:opacity-80`,children:[`Open `,b.displayName,(0,Q.jsx)(A,{className:`h-3 w-3`})]})]})]}),S=(0,Q.jsxs)(`div`,{className:`space-y-4`,children:[(0,Q.jsxs)(`div`,{className:`space-y-1`,children:[(0,Q.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Provider`}),(0,Q.jsx)(h,{value:p,onChange:e=>{(e===`mailgun`||e===`resend`)&&m(e)},options:Xt.map(e=>({value:e.id,label:e.displayName}))})]}),_?(0,Q.jsxs)(`div`,{className:`space-y-3`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 rounded-lg border border-[var(--system-positive-subtle)] bg-[var(--surface-sunken)] p-3 text-body-small-default text-[var(--content-default)]`,children:[(0,Q.jsx)(D,{className:`h-4 w-4 shrink-0 text-[var(--system-positive-strong)]`}),(0,Q.jsxs)(`span`,{children:[b.displayName,` API key configured. To reconfigure, run the`,` `,(0,Q.jsx)(`code`,{className:`rounded bg-[var(--surface-active)] px-1 py-0.5 text-[12px]`,children:b.setupSkill}),` `,`skill.`]})]}),(0,Q.jsxs)(`a`,{href:b.docsUrl,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex items-center gap-1 text-body-small-default text-[var(--system-positive-strong)] underline hover:opacity-80`,children:[`Open `,b.displayName,(0,Q.jsx)(A,{className:`h-3 w-3`})]})]}):x,(0,Q.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,Q.jsx)($,{onClick:y,disabled:!1})})]});return l===`gated`?(0,Q.jsx)(dt,{id:`email`,title:`Email`,subtitle:`Configure how your assistant sends and receives email`,children:S}):(0,Q.jsx)(lt,{id:`email`,title:`Email`,subtitle:`Configure how your assistant sends and receives email`,mode:u,onModeChange:v,children:u===`managed`?(0,Q.jsx)(`div`,{className:`space-y-4`,children:l===`disabled`?(0,Q.jsx)(ye,{children:`Log in to the Vellum platform to manage email settings.`}):(0,Q.jsx)(en,{assistantId:e,assistantHandle:s,emailRootDomain:c})}):S})}function nn(){let e=it(),t=u(),{data:i}=d({...V({path:{assistant_id:e}}),staleTime:3e4}),o=H({onSuccess:n=>{G(t,{path:{assistant_id:e}},n)}}),s=Wt(),[c,l]=At((0,Z.useMemo)(()=>we(i?i.services?.[`image-generation`]?.mode??n(`vellum:ai:imageGenMode`,`your-own`):n(Mt,`your-own`),`your-own`),[i])),[f,p]=(0,Z.useState)(()=>n(Nt,`gemini-3.1-flash-image-preview`)),[m,g]=(0,Z.useState)(``),[_,v]=(0,Z.useState)(!1),b=(0,Z.useCallback)(async()=>{v(!0);let n=m.trim(),i=c===`your-own`&&n.length>0;try{i&&await s($t(f),n),await o.mutateAsync({path:{assistant_id:e},body:{services:{"image-generation":{mode:c}}}}).catch(e=>{throw C.error(`Failed to update assistant configuration. Please try again.`),a(e,{context:`patch_daemon_config`}),e});try{await R({path:{assistant_id:e},body:{modelId:f},throwOnError:!0})}catch(e){throw C.error(`Failed to update image generation model. Please try again.`),a(e,{context:`set_image_gen_model`}),e}finally{t.invalidateQueries({queryKey:U({path:{assistant_id:e}})})}}catch{v(!1);return}v(!1);try{r(Mt,c),r(Nt,f),i&&g(``),C.success(`Image generation settings saved.`)}catch(e){a(e,{context:`settings-ai-image-gen-persist-local`}),C.error(`Saved, but local preferences could not be written.`)}},[m,c,f,e,o,s,t]),x=(0,Z.useCallback)(()=>{g(``),p(`gemini-3.1-flash-image-preview`),r(Nt,`gemini-3.1-flash-image-preview`)},[]);return(0,Q.jsx)(lt,{title:`Image Generation`,subtitle:`Configure which model your assistant uses to generate images`,mode:c,onModeChange:e=>l(e),children:c===`managed`?(0,Q.jsxs)(`div`,{className:`space-y-3`,children:[(0,Q.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Active Model`}),(0,Q.jsxs)(`div`,{className:`flex items-end gap-3`,children:[(0,Q.jsx)(h,{className:`flex-1`,value:f,onChange:p,options:Zt.map(e=>({value:e,label:Qt[e]??e}))}),(0,Q.jsx)($,{onClick:b,disabled:_}),_&&(0,Q.jsx)(M,{className:`h-4 w-4 animate-spin text-[var(--content-disabled)]`})]})]}):(0,Q.jsxs)(`div`,{className:`space-y-4`,children:[(0,Q.jsx)(y,{label:`API Key`,type:`password`,value:m,onChange:e=>g(e.target.value),placeholder:$t(f)===`openai`?`Enter your OpenAI API key`:`Enter your Gemini API key`,fullWidth:!0}),(0,Q.jsxs)(`div`,{className:`space-y-1`,children:[(0,Q.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Active Model`}),(0,Q.jsx)(h,{value:f,onChange:p,options:Zt.map(e=>({value:e,label:Qt[e]??e}))})]}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)($,{onClick:b,disabled:_}),_&&(0,Q.jsx)(M,{className:`h-4 w-4 animate-spin text-[var(--content-disabled)]`}),(0,Q.jsx)(ut,{onClick:x})]})]})})}async function rn(e){let{provider:t,apiKey:n,voiceId:r,text:i}=e;if(n.trim().length===0)return{kind:`error`,message:`Save an API key for this provider first.`};try{return t===`elevenlabs`?await an(n,r,i):t===`deepgram`?await on(n,i):t===`fish-audio`?{kind:`unsupported`,message:`Fish Audio TTS is only supported in the desktop app today. Use ElevenLabs or Deepgram to test from the browser.`}:t===`xai`?{kind:`unsupported`,message:`xAI TTS is only supported in the desktop app today. Use ElevenLabs or Deepgram to test from the browser.`}:{kind:`unsupported`,message:`TTS testing for "${t}" is not supported from the browser yet.`}}catch(e){return{kind:`error`,message:e instanceof Error?e.message:`Failed to reach the TTS provider.`}}}async function an(e,t,n){let r=t.trim();if(r.length===0)return{kind:`error`,message:`Enter and save a Voice ID before testing ElevenLabs.`};let i=await fetch(`https://api.elevenlabs.io/v1/text-to-speech/${encodeURIComponent(r)}?output_format=mp3_44100_128`,{method:`POST`,headers:{"xi-api-key":e,"Content-Type":`application/json`,Accept:`audio/mpeg`},body:JSON.stringify({text:n,model_id:`eleven_turbo_v2_5`})});return i.ok?{kind:`audio`,blob:await i.blob()}:{kind:`error`,message:await sn(i,`ElevenLabs rejected the request.`)}}async function on(e,t){let n=await fetch(`https://api.deepgram.com/v1/speak?model=aura-2-thalia-en`,{method:`POST`,headers:{Authorization:`Token ${e}`,"Content-Type":`application/json`,Accept:`audio/mpeg`},body:JSON.stringify({text:t})});return n.ok?{kind:`audio`,blob:await n.blob()}:{kind:`error`,message:await sn(n,`Deepgram rejected the request.`)}}async function sn(e,t){try{let n=await e.text();if(n.length===0)return`${t} (HTTP ${e.status})`;try{let e=JSON.parse(n);if(e&&typeof e==`object`&&`detail`in e&&typeof e.detail==`string`)return e.detail;if(e&&typeof e==`object`&&`message`in e&&typeof e.message==`string`)return e.message}catch{}return n.slice(0,200)}catch{return`${t} (HTTP ${e.status})`}}function cn(){let e=it(),t=Y.use.name()??`your assistant`,i=J(),{data:a}=d({...z({path:{assistant_id:e}}),enabled:i,staleTime:1/0}),o=a?.providers??Jt,c=o[0]?.id??`elevenlabs`,[l,u]=(0,Z.useState)(()=>n(zt,c)),[f,p]=(0,Z.useState)(l),[m,g]=(0,Z.useState)(``),[_,v]=(0,Z.useState)(``),[b,x]=(0,Z.useState)(``),[S,w]=(0,Z.useState)(!1),[T,E]=(0,Z.useState)(!1),D=(0,Z.useMemo)(()=>o.find(e=>e.id===l)??o[0],[l,o]),O=(0,Z.useCallback)(e=>{let t=n(Bt+e,``),r=n(Vt+e,``);w(t.length>0),v(r),x(r),g(``)},[]);(0,Z.useEffect)(()=>{O(l)},[l,O]);let k=(0,Z.useMemo)(()=>{let e=l!==f,t=m.trim().length>0,n=_.trim()!==b;return e||t||n},[l,f,m,_,b]),A=(0,Z.useCallback)(()=>{r(zt,l);let e=m.trim();e.length>0&&(r(Bt+l,e),w(!0));let t=_.trim();r(Vt+l,t),p(l),x(t),g(``)},[l,m,_]),j=(0,Z.useCallback)(()=>{r(Bt+l,``),w(!1),g(``)},[l]),M=(0,Z.useCallback)(async()=>{E(!0);try{let e=n(Bt+l,``),r=m.trim(),i=r.length>0?r:e;if(i.length===0){C.error(`Save an API key for this provider before testing.`);return}let a=n(Vt+l,``),o=_.trim(),s=await rn({provider:l,apiKey:i,voiceId:o.length>0?o:a,text:`Hey! It's ${t}. How does this sound?`});if(s.kind!==`audio`){C.error(s.message);return}let c=URL.createObjectURL(s.blob);try{let e=new Audio(c);await e.play(),await new Promise(t=>{e.onended=()=>t(),e.onerror=()=>t()})}finally{URL.revokeObjectURL(c)}}finally{E(!1)}},[t,m,l,_]),N=S?`•••••••• (Enter a new key to replace)`:D.apiKeyPlaceholder;return(0,Q.jsx)(dt,{title:`Text-to-Speech`,subtitle:D.subtitle,children:(0,Q.jsxs)(`div`,{className:`space-y-4`,children:[(0,Q.jsxs)(`div`,{className:`space-y-1`,children:[(0,Q.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Provider`}),(0,Q.jsx)(h,{value:l,onChange:u,options:o.map(e=>({value:e.id,label:e.displayName})),"aria-label":`TTS provider`})]}),(0,Q.jsxs)(`div`,{className:`space-y-1`,children:[(0,Q.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`API Key`}),(0,Q.jsx)(y,{type:`password`,value:m,onChange:e=>g(e.target.value),placeholder:N,fullWidth:!0})]}),D.supportsVoiceSelection&&(0,Q.jsxs)(`div`,{className:`space-y-1`,children:[(0,Q.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Voice ID`}),(0,Q.jsx)(y,{type:`text`,value:_,onChange:e=>v(e.target.value),placeholder:`Enter a voice ID`,fullWidth:!0})]}),(0,Q.jsx)(ft,{guide:D.credentialsGuide}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(s,{variant:`outlined`,onClick:M,disabled:T,children:T?`Testing…`:`Test`}),(0,Q.jsxs)(`div`,{className:`ml-auto flex items-center gap-2`,children:[(0,Q.jsx)($,{onClick:A,disabled:!k}),S&&(0,Q.jsx)(ut,{onClick:j})]})]})]})})}function ln(){let[e]=(0,Z.useState)(()=>Yt.filter(e=>!e.requiresNativeDictation||He())),t=e[0]?.id??`deepgram`,[i,a]=(0,Z.useState)(()=>{let r=n(Ht,t);return e.some(e=>e.id===r)?r:t}),[o,s]=(0,Z.useState)(i),[c,l]=(0,Z.useState)(``),[u,d]=(0,Z.useState)(!1);(0,Z.useEffect)(()=>{let i=n(Ht,t);i===`macos-native`&&!e.some(e=>e.id===i)&&r(Ht,t)},[e,t]);let f=(0,Z.useMemo)(()=>e.find(e=>e.id===i)??e[0],[e,i]),p=f.apiKeyPlaceholder!==void 0;(0,Z.useEffect)(()=>{d(n(Ut+i,``).length>0),l(``)},[i]);let m=(0,Z.useMemo)(()=>{let e=i!==o,t=c.trim().length>0;return e||t},[i,o,c]),g=(0,Z.useCallback)(()=>{r(Ht,i);let e=c.trim();e.length>0&&(r(Ut+i,e),d(!0)),s(i),l(``)},[i,c]),_=(0,Z.useCallback)(()=>{r(Ut+i,``),d(!1),l(``)},[i]),v=u?`•••••••• (Enter a new key to replace)`:f.apiKeyPlaceholder;return(0,Q.jsx)(dt,{title:`Speech-to-Text`,subtitle:f.subtitle,children:(0,Q.jsxs)(`div`,{className:`space-y-4`,children:[(0,Q.jsxs)(`div`,{className:`space-y-1`,children:[(0,Q.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Provider`}),(0,Q.jsx)(h,{value:i,onChange:a,options:e.map(e=>({value:e.id,label:e.displayName})),"aria-label":`STT provider`})]}),p&&(0,Q.jsxs)(`div`,{className:`space-y-1`,children:[(0,Q.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`API Key`}),(0,Q.jsx)(y,{type:`password`,value:c,onChange:e=>l(e.target.value),placeholder:v,fullWidth:!0})]}),f.setupWarning&&(0,Q.jsxs)(`div`,{className:`flex items-start gap-2 rounded-lg border border-[var(--border-subtle)] bg-[var(--surface-sunken)] p-3 text-body-small-default text-[var(--content-tertiary)]`,children:[(0,Q.jsx)(N,{className:`mt-0.5 h-3.5 w-3.5 shrink-0 text-[var(--system-mid-strong)]`}),(0,Q.jsx)(`span`,{children:f.setupWarning})]}),f.credentialsGuide&&(0,Q.jsx)(ft,{guide:f.credentialsGuide}),(0,Q.jsxs)(`div`,{className:`flex items-center justify-end gap-2`,children:[(0,Q.jsx)($,{onClick:g,disabled:!m}),u&&(0,Q.jsx)(ut,{onClick:_})]})]})})}function un(){return(0,Z.useEffect)(()=>{let e=window.location.hash.slice(1);e&&requestAnimationFrame(()=>{document.getElementById(e)?.scrollIntoView({block:`start`})})},[]),(0,Q.jsxs)(`div`,{className:`space-y-5`,children:[(0,Q.jsxs)(`div`,{className:`flex items-start gap-2 rounded-lg border border-[var(--border-base)] bg-[var(--surface-base)] px-4 py-2.5`,children:[(0,Q.jsx)(j,{className:`mt-0.5 h-4 w-4 shrink-0 text-[var(--content-tertiary)]`}),(0,Q.jsxs)(`p`,{className:`text-body-medium-lighter text-[var(--content-secondary)]`,children:[`Managed services are metered and deducted from your Vellum account balance.`,` `,(0,Q.jsxs)(`a`,{href:`https://www.vellum.ai/docs/pricing`,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex items-center gap-1 text-[var(--primary-base)] hover:underline`,children:[`View pricing`,(0,Q.jsx)(A,{className:`h-3.5 w-3.5`})]})]})]}),(0,Q.jsx)(jt,{}),(0,Q.jsx)(Gt,{}),(0,Q.jsx)(qt,{}),(0,Q.jsx)(tn,{}),(0,Q.jsx)(nn,{}),(0,Q.jsx)(cn,{}),(0,Q.jsx)(ln,{})]})}export{un as AiPage};
@@ -1 +0,0 @@
1
- import{$ as e,c as t,ot as n}from"./local-mode-CgrENuVf.js";import{c as r}from"./assistant-api-Dlwk8jYW.js";import{St as i,_ as a,ct as o,st as s,v as c,y as l}from"./sdk.gen-B3Z8klU-.js";import{i as u,n as d}from"./api-errors-CPc5p2r9.js";import{B as f,C as p,R as m,a as h,i as g,o as _,w as v,z as y}from"./sdk.gen-Ec1nF7iZ.js";async function b(e,t){let{data:n,error:r,response:i}=await p({body:e??{},query:t?{mode:t}:void 0,throwOnError:!1});return d(i,r,`Failed to hatch assistant.`),i.ok?{ok:!0,status:i.status,data:n}:{ok:!1,status:i.status,error:u(r,i)}}async function x(e){if(n()){let e=t();if(e)return{ok:!0,status:200,data:{id:e.assistantId,name:e.name??e.assistantId,status:`active`,is_local:!0,created:e.hatchedAt??``}}}if(e){let{data:t,error:n,response:r}=await f({path:{id:e},throwOnError:!1});return d(r,n,`Failed to get assistant.`),r.ok?{ok:!0,status:r.status,data:t}:{ok:!1,status:r.status,error:u(n,r)}}let r=await v({query:{hosting:`platform`},throwOnError:!1});if(d(r.response,r.error,`Failed to get assistant.`),!r.response.ok)return{ok:!1,status:r.response.status,error:u(r.error,r.response)};let i=r.data?.results??[];if(i.length>0)return{ok:!0,status:r.response.status,data:i[0]};let a=await v({query:{hosting:`local`},throwOnError:!1});if(d(a.response,a.error,`Failed to get assistant.`),a.response.ok){let e=a.data?.results??[];if(e.length>0)return{ok:!0,status:a.response.status,data:e[0]}}return a.response.ok?{ok:!1,status:404,error:{detail:`No assistants found`}}:{ok:!1,status:a.response.status,error:u(a.error,a.response)}}async function S(e){let{data:t,error:n,response:r}=await i({path:{assistant_id:e},throwOnError:!1});return d(r,n,`Failed to get assistant healthz.`),r.ok&&t?{ok:!0,status:r.status,data:t}:{ok:!1,status:r.status,error:u(n,r)}}async function C(e){let{data:t,error:n,response:i}=await o({path:{assistant_id:e},throwOnError:!1});if(d(i,n,`Failed to get assistant disk pressure status.`),i.ok){let e=r.safeParse(t);return e.success?{ok:!0,status:i.status,data:e.data}:{ok:!1,status:i.status,error:u(e.error.message,i)}}return{ok:!1,status:i.status,error:u(n,i)}}async function w(e){let{data:t,error:n,response:i}=await s({path:{assistant_id:e},throwOnError:!1});if(d(i,n,`Failed to acknowledge assistant disk pressure.`),i.ok){let e=r.safeParse(t);return e.success?{ok:!0,status:i.status,data:e.data}:{ok:!1,status:i.status,error:u(e.error.message,i)}}return{ok:!1,status:i.status,error:u(n,i)}}function T(e){let t=e&&typeof e==`object`&&!Array.isArray(e)?e:{};if(Array.isArray(t.backups))return t.backups;let n=t,r=[],i=n.local?.snapshots;if(Array.isArray(i))for(let e of i)r.push({snapshot_name:e.filename,pvc:``,created_at:e.created_at,ready_to_use:!0,backup_type:`scheduled`,path:e.path});if(Array.isArray(n.offsite)){for(let e of n.offsite)if(Array.isArray(e.snapshots))for(let t of e.snapshots)r.push({snapshot_name:t.filename,pvc:``,created_at:t.created_at,ready_to_use:!t.encrypted,backup_type:`scheduled`,path:t.path})}return r}function E(e){let t=e&&typeof e==`object`&&!Array.isArray(e)?e:{};return Array.isArray(t.backups)?t.backups:[]}async function D(t){let n=!e(),[r,i]=await Promise.all([c({path:{assistant_id:t},throwOnError:!1}),n?_({path:{assistant_id:t},throwOnError:!1}):null]);if(d(r.response,r.error,`Failed to list assistant backups.`),!r.response.ok)return{ok:!1,status:r.response.status,error:u(r.error,r.response)};let a=T(r.data);if(i){if(i.response?.ok){let e=E(i.data);return{ok:!0,status:r.response.status,data:[...e,...a]}}if(a.length===0&&i.response)return{ok:!1,status:i.response.status,error:u(i.error,i.response)}}return{ok:!0,status:r.response.status,data:a}}async function O(t){let{data:n,error:r,response:i}=e()?await a({path:{assistant_id:t},throwOnError:!1}):await g({path:{assistant_id:t},throwOnError:!1});if(d(i,r,`Failed to create assistant backup.`),i.ok){let e=n&&typeof n==`object`&&!Array.isArray(n)?n:{};return{ok:!0,status:i.status,data:e}}return{ok:!1,status:i.status,error:u(r,i)}}async function k(t,n){let{data:r,error:i,response:a}=e()?await l({path:{assistant_id:t},body:{path:n.path??n.snapshot_name},throwOnError:!1}):await h({path:{assistant_id:t,snapshot_name:n.snapshot_name},throwOnError:!1});if(d(a,i,`Failed to restore assistant backup.`),a.ok){let e=r&&typeof r==`object`&&!Array.isArray(r)?r:{};return{ok:!0,status:a.status,data:e}}return{ok:!1,status:a.status,error:u(i,a)}}async function A(e){let{data:t,error:n,response:r}=await m({path:{id:e},throwOnError:!1});return d(r,n,`Failed to restart assistant.`),r.ok?{ok:!0,data:t&&typeof t==`object`&&!Array.isArray(t)?t:{}}:{ok:!1,status:r.status,error:u(n,r)}}async function j(e){let{error:t,response:n}=await y({path:{id:e},throwOnError:!1});return d(n,t,`Failed to retire assistant.`),n.ok?{ok:!0}:{ok:!1,status:n.status,error:u(t,n)}}async function M(){let{data:e,error:t,response:n}=await v({query:{hosting:`all`},throwOnError:!1});return d(n,t,`Failed to list assistants.`),n.ok?{ok:!0,status:n.status,data:e?.results??[]}:{ok:!1,status:n.status,error:u(t,n)}}export{S as a,M as c,j as d,C as i,A as l,O as n,b as o,x as r,D as s,w as t,k as u};
@@ -1 +0,0 @@
1
- import{t as e}from"./createLucideIcon-BlMXrA59.js";var t=e(`arrow-left`,[[`path`,{d:`m12 19-7-7 7-7`,key:`1l729n`}],[`path`,{d:`M19 12H5`,key:`x3x0zl`}]]);export{t};
@@ -1 +0,0 @@
1
- import{t as e}from"./createLucideIcon-BlMXrA59.js";var t=e(`arrow-up`,[[`path`,{d:`m5 12 7-7 7 7`,key:`hav0vg`}],[`path`,{d:`M12 19V5`,key:`x0mq9r`}]]);export{t};
@@ -1 +0,0 @@
1
- import{r as e}from"./chunk-jRWAZmH_.js";import{B as t,F as ee,G as n,H as r,I as i,J as a,K as o,L as s,P as te,R as c,U as l,V as u,W as ne,X as re,Y as ie,q as d,z as f}from"./local-mode-CgrENuVf.js";function p(e){return re(ee,e)}function ae(e){return ie(te,e)}var oe=i([`end_turn`,`max_tokens`,`max_turn_requests`,`refusal`,`cancelled`]),se=l({type:u(`acp_session_completed`),acpSessionId:o(),stopReason:oe}).strict(),ce=l({type:u(`acp_session_error`),acpSessionId:o(),error:o()}).strict(),le=l({type:u(`acp_session_spawned`),acpSessionId:o(),agent:o(),parentConversationId:o(),parentToolUseId:o().optional(),task:o().optional()}).strict(),ue=i([`agent_message_chunk`,`agent_thought_chunk`,`user_message_chunk`,`tool_call`,`tool_call_update`,`plan`]),de=l({type:u(`acp_session_update`),acpSessionId:o(),updateType:ue,content:o().optional(),toolCallId:o().optional(),toolTitle:o().optional(),toolKind:o().optional(),toolStatus:o().optional(),rawInput:a().optional(),rawOutput:a().optional(),locations:c(l({path:o(),line:r().optional()})).optional(),messageId:o().optional(),seq:r().optional()}).strict(),fe=l({type:u(`acp_session_usage`),acpSessionId:o(),usedTokens:r(),contextSize:r(),inputTokens:r().optional(),outputTokens:r().optional(),costAmount:r().optional(),costCurrency:o().optional()}).strict(),pe=i([`idle`,`thinking`,`streaming`,`tool_running`,`awaiting_confirmation`]),me=i([`assistant_turn`,`user_turn`,`global`]),he=i([`message_dequeued`,`thinking_delta`,`first_text_delta`,`tool_use_start`,`preview_start`,`tool_result_received`,`confirmation_requested`,`confirmation_resolved`,`context_compacting`,`message_complete`,`generation_cancelled`,`error_terminal`]),ge=l({type:u(`assistant_activity_state`),conversationId:o(),activityVersion:r(),phase:pe,anchor:me,reason:he,requestId:o().optional(),statusText:o().optional()}),_e=l({type:u(`assistant_text_delta`),text:o(),messageId:o().optional(),conversationId:o().optional()}),ve=l({type:u(`assistant_thinking_delta`),thinking:o(),messageId:o().optional(),conversationId:o().optional(),timestampMs:r().optional()}),ye=l({type:u(`assistant_turn_start`),messageId:o(),conversationId:o().optional()}),m=l({type:u(`avatar_updated`),avatarPath:o()}),h=l({type:u(`background_tool_completed`),id:o(),conversationId:o(),status:i([`completed`,`failed`,`cancelled`]),exitCode:r().nullable().optional(),output:o().optional(),completedAt:r()}),g=l({type:u(`background_tool_started`),id:o(),toolName:o(),conversationId:o(),command:o(),startedAt:r()}),_=l({type:u(`compaction_circuit_closed`),conversationId:o()}),v=l({type:u(`compaction_circuit_open`),conversationId:o(),reason:u(`3_consecutive_failures`),openUntil:r()}),y=l({label:o(),description:o(),pattern:o()}),b=l({label:o(),scope:o()}),x=l({label:o(),scope:o()}),S=l({filePath:o(),oldContent:o(),newContent:o(),isNewFile:f()}),C=i([`allow_once`,`allow_always`,`reject_once`,`reject_always`]),w=l({optionId:o(),name:o(),kind:C}),T=i([`sandbox`,`host`]),E=l({type:u(`confirmation_request`),requestId:o(),toolName:o(),input:n(o(),a()),riskLevel:o(),riskReason:o().optional(),isContainerized:f().optional(),executionTarget:T.optional(),allowlistOptions:c(y),scopeOptions:c(b),directoryScopeOptions:c(x).optional(),diff:S.optional(),conversationId:o().optional(),persistentDecisionsAllowed:f().optional(),toolUseId:o().optional(),acpToolKind:o().optional(),acpOptions:c(w).optional()}),D=l({type:u(`contact_request`),requestId:o(),channel:o().optional(),placeholder:o().optional(),label:o().optional(),description:o().optional(),role:o().optional()}),O=i([`PROVIDER_NETWORK`,`PROVIDER_RATE_LIMIT`,`MANAGED_USAGE_LIMIT`,`PROVIDER_OVERLOADED`,`PROVIDER_API`,`IMAGE_TOO_LARGE`,`PROVIDER_BILLING`,`PROVIDER_ORDERING`,`PROVIDER_WEB_SEARCH`,`PROVIDER_NOT_CONFIGURED`,`PROVIDER_INVALID_KEY`,`MANAGED_KEY_INVALID`,`CONTEXT_TOO_LARGE`,`BUDGET_YIELD_UNRECOVERED`,`MAX_TOKENS_REACHED`,`CONVERSATION_ABORTED`,`CONVERSATION_PROCESSING_FAILED`,`DISK_SPACE_CRITICAL`,`UNKNOWN`]),k=l({type:u(`conversation_error`),conversationId:o(),code:O,userMessage:o(),retryable:f(),debugDetails:o().optional(),errorCategory:o().optional(),connectionName:o().optional(),profileName:o().optional()}),A=i([`created`,`renamed`,`deleted`,`reordered`,`seen_changed`]),j=l({type:u(`conversation_list_invalidated`),reason:A}),M=i([`memory_v3`]),N=l({type:u(`conversation_notice`),conversationId:o(),source:M,code:O,userMessage:o(),errorCategory:o().optional()}),P=l({type:u(`conversation_title_updated`),conversationId:o(),title:o()}),F=i([`disabled`,`ok`,`warning`,`critical`,`unknown`]),I=i([`agent-turns`,`background-work`,`remote-ingress`]),L=l({enabled:f(),state:F,locked:f(),acknowledged:f(),overrideActive:f(),effectivelyLocked:f(),lockId:o().nullable(),usagePercent:r().nullable(),thresholdPercent:r(),path:o().nullable(),lastCheckedAt:o().nullable(),blockedCapabilities:c(I),error:o().nullable()}),R=l({type:u(`disk_pressure_status_changed`),status:L}),be=l({id:o(),surfaceId:o(),author:o(),content:o(),anchorStart:r().optional(),anchorEnd:r().optional(),anchorText:o().optional(),parentCommentId:o().optional(),status:o(),createdAt:r(),updatedAt:r()}),z=l({type:u(`document_comment_created`),conversationId:o(),surfaceId:o(),comment:be}),xe=l({type:u(`document_comment_deleted`),conversationId:o(),surfaceId:o(),commentId:o()}),Se=l({type:u(`document_comment_reopened`),conversationId:o(),surfaceId:o(),commentId:o()}),Ce=l({type:u(`document_comment_resolved`),conversationId:o(),surfaceId:o(),commentId:o(),resolvedBy:o()}),we=l({type:u(`document_editor_update`),conversationId:o(),surfaceId:o(),markdown:o(),mode:o()}),Te=l({type:u(`error`),message:o(),code:o().optional(),category:o().optional(),errorCategory:o().optional(),requestId:o().optional(),conversationId:o().optional()}),Ee=l({type:u(`generation_cancelled`),conversationId:o().optional()}),B=l({id:o().optional(),filename:o(),mimeType:o(),data:o(),sourceType:i([`sandbox_file`,`host_file`,`tool_block`]).optional(),sizeBytes:r().optional(),thumbnailData:o().optional(),fileBacked:f().optional(),filePath:o().optional()}),De=l({type:u(`generation_handoff`),conversationId:o().optional(),requestId:o().optional(),queuedCount:r(),messageId:o().optional(),attachments:c(B).optional(),attachmentWarnings:c(o()).optional()}),Oe=l({type:u(`home_feed_updated`),updatedAt:o(),newItemCount:r()}),ke=l({kind:i([`plugin`,`workspace`]),id:o()}),Ae=l({type:u(`hook_event`),conversationId:o().optional(),hookName:o(),owner:ke,detail:n(o(),a())}),je=l({type:u(`identity_changed`),name:o(),role:o(),personality:o(),emoji:o(),home:o()}),Me=i([`approved`,`rejected`,`answered`,`cancelled`,`superseded`]),Ne=l({type:u(`interaction_resolved`),requestId:o(),conversationId:o(),state:Me,kind:o()}),Pe=l({type:u(`message_complete`),messageId:o().optional(),conversationId:o().optional(),source:i([`main`,`aux`]).optional(),attachments:c(B).optional(),attachmentWarnings:c(o()).optional()}),Fe=l({type:u(`message_dequeued`),conversationId:o(),requestId:o()}),Ie=l({type:u(`message_queued`),conversationId:o(),requestId:o(),position:r()}),Le=l({type:u(`message_queued_deleted`),conversationId:o(),requestId:o()}),Re=l({type:u(`message_request_complete`),conversationId:o(),requestId:o(),runStillActive:f().optional()}),ze=l({type:u(`navigate_settings`),tab:o()}),Be=l({type:u(`notification_intent`),sourceEventName:o(),title:o(),body:o(),deliveryId:o().optional(),deepLinkMetadata:n(o(),a()).optional(),targetGuardianPrincipalId:o().optional(),silent:f().optional()}),Ve=l({type:u(`open_panel`),panelType:o(),data:n(o(),a()).optional(),conversationId:o().optional(),surfaceId:o().optional()}),He=l({type:u(`open_url`),url:o().min(1),title:o().optional(),conversationId:o().optional()}),V=l({id:o(),label:o(),description:o().optional()}),H=l({id:o(),question:o(),description:o().optional(),options:c(V),freeTextPlaceholder:o().optional()}),Ue=l({type:u(`question_request`),requestId:o(),questions:c(H),question:o(),description:o().optional(),options:c(V),freeTextPlaceholder:o().optional(),conversationId:o().optional(),toolUseId:o().optional()}),We=l({type:u(`relationship_state_updated`),updatedAt:o()}),Ge=l({type:u(`secret_request`),requestId:o(),service:o(),field:o(),label:o(),description:o().optional(),placeholder:o().optional(),conversationId:o().optional(),purpose:o().optional(),allowedTools:c(o()).optional(),allowedDomains:c(o()).optional(),allowOneTimeSend:f().optional()}),Ke=l({type:o(),content:o().optional(),text:o().optional(),result:o().optional(),input:n(o(),a()).optional(),toolName:o().optional(),isError:f().optional(),toolUseId:o().optional()}).passthrough(),qe=l({type:u(`subagent_event`),conversationId:o(),subagentId:o(),event:Ke}).strict(),Je=l({type:u(`subagent_spawned`),subagentId:o(),parentConversationId:o(),label:o(),objective:o(),isFork:f().optional(),parentToolUseId:o().optional()}).strict(),U=i([`pending`,`running`,`awaiting_input`,`completed`,`failed`,`aborted`,`interrupted`]),W=l({inputTokens:r(),outputTokens:r(),estimatedCost:r()}).strict(),Ye=l({type:u(`subagent_status_changed`),subagentId:o(),status:U,error:o().optional(),usage:W.optional()}).strict(),Xe=l({type:u(`sync_changed`),tags:c(o().min(1)).min(1),originClientId:o().min(1).optional()}),Ze=i([`tool_start`,`tool_complete`,`status`]),Qe=l({type:u(`tool_output_chunk`),chunk:o(),conversationId:o().optional(),toolUseId:o().optional(),subType:Ze.optional(),subToolName:o().optional(),subToolInput:o().optional(),subToolIsError:f().optional(),subToolId:o().optional(),messageId:o().optional()}),$e=l({pattern:o(),label:o()}),et=i([`anthropic-native`,`brave`,`perplexity`,`tavily`,`firecrawl`]),tt=i([`default`,`firecrawl`]),nt=l({rank:r(),title:o(),url:o(),domain:o(),faviconUrl:o().optional(),snippet:o().optional(),age:o().optional(),score:r().optional()}),rt=l({query:o(),provider:et,resultCount:r(),durationMs:r(),results:c(nt),errorMessage:o().optional()}),it=l({url:o(),finalUrl:o(),provider:tt.optional(),status:r(),contentType:o().optional(),byteCount:r(),charCount:r(),truncated:f(),title:o().optional(),domain:o(),faviconUrl:o().optional(),redirectCount:r(),durationMs:r(),errorMessage:o().optional(),mayRequireJavaScript:f().optional()}),G=l({webSearch:rt.optional(),webFetch:it.optional()}),at=l({type:u(`tool_result`),toolName:o(),result:o(),isError:f().optional(),diff:S.optional(),status:o().optional(),conversationId:o().optional(),imageData:o().optional(),imageDataList:c(o()).optional(),toolUseId:o().optional(),messageId:o().optional(),riskLevel:o().optional(),riskReason:o().optional(),matchedTrustRuleId:o().optional(),isContainerized:f().optional(),riskScopeOptions:c($e).optional(),riskAllowlistOptions:c(y).optional(),riskDirectoryScopeOptions:c(x).optional(),approvalMode:o().optional(),approvalReason:o().optional(),riskThreshold:o().optional(),activityMetadata:G.optional(),completedAt:r().optional()}),ot=l({type:u(`tool_use_preview_start`),toolUseId:o(),toolName:o(),conversationId:o().optional(),messageId:o().optional(),previewStartedAt:r().optional()}),st=l({type:u(`tool_use_start`),toolName:o(),input:n(o(),a()),toolUseId:o().optional(),messageId:o().optional(),conversationId:o().optional(),startedAt:r().optional(),previewStartedAt:r().optional()}),ct=i([`request_received`,`request_queued`,`request_dequeued`,`llm_call_started`,`llm_call_finished`,`assistant_message`,`tool_started`,`tool_permission_requested`,`tool_permission_decided`,`tool_finished`,`tool_failed`,`generation_handoff`,`message_complete`,`generation_cancelled`,`request_error`,`tool_profiling_summary`]),lt=i([`info`,`success`,`warning`,`error`]),ut=l({type:u(`trace_event`),eventId:o(),conversationId:o(),requestId:o().optional(),timestampMs:r(),sequence:r(),kind:ct,status:lt.optional(),summary:o(),attributes:n(o(),d([o(),r(),f(),s()])).optional()}),dt=l({type:u(`ui_surface_complete`),conversationId:o(),surfaceId:o(),summary:o(),submittedData:n(o(),a()).optional()}),ft=l({type:u(`ui_surface_dismiss`),conversationId:o(),surfaceId:o()}),pt=l({id:o(),label:o(),style:i([`primary`,`secondary`,`destructive`]).optional(),data:n(o(),a()).optional()}),mt=l({type:u(`ui_surface_show`),conversationId:o(),surfaceId:o(),surfaceType:o(),title:o().optional(),data:n(o(),a()),actions:c(pt).optional(),display:i([`inline`,`panel`]).optional(),messageId:o().optional(),persistent:f().optional(),toolCallId:o().optional()}),ht=l({type:u(`ui_surface_update`),conversationId:o(),surfaceId:o(),data:n(o(),a())}),K=l({type:u(`usage_progress`),conversationId:o(),inputTokens:r(),outputTokens:r(),estimatedCost:r(),model:o()}),gt=l({type:u(`usage_update`),conversationId:o(),inputTokens:r(),outputTokens:r(),cacheCreationInputTokens:r().optional(),cacheReadInputTokens:r().optional(),totalInputTokens:r(),totalOutputTokens:r(),estimatedCost:r(),model:o(),contextWindowTokens:r().optional(),contextWindowMaxTokens:r().optional()}),_t=l({type:u(`user_message_echo`),text:o(),conversationId:o().optional(),messageId:o().optional(),requestId:o().optional(),clientMessageId:o().optional()}).strict(),q=i([`running`,`completed`,`failed`,`aborted`,`cap_exceeded`,`interrupted`]),vt=l({type:u(`workflow_completed`),runId:o(),conversationId:o().optional(),status:q,agentsSpawned:r(),inputTokens:r(),outputTokens:r(),summary:o().optional()}).strict(),yt=l({type:u(`workflow_leaf_finished`),runId:o(),conversationId:o(),seq:r().int(),status:i([`completed`,`failed`]),label:o().optional(),inputTokens:r().optional(),outputTokens:r().optional(),resultSummary:o().optional()}).strict(),bt=l({type:u(`workflow_leaf_started`),runId:o(),conversationId:o(),seq:r().int(),label:o().optional(),phase:o().optional(),promptSummary:o().optional()}).strict(),xt=l({type:u(`workflow_progress`),runId:o(),conversationId:o().optional(),agentsSpawned:r(),phase:o().optional(),label:o().optional(),message:o().optional()}).strict(),St=l({type:u(`workflow_started`),runId:o(),conversationId:o(),toolUseId:o().optional(),label:o().optional()}).strict(),Ct=`syntheticAgentErrorMessage`,wt=`compactionAgent`,Tt=3e4,Et=l({cursorInTextField:f().optional().describe(`Whether the cursor is in an editable text field when dictation started`)}).passthrough().describe(`Dictation context (app name, window title, bundle ID, cursor state, selected text)`),Dt=l({transcription:o().describe(`Raw speech transcription`),context:Et,profileId:o().describe(`Optional dictation profile ID`).optional()}),J=l({id:o(),filename:o(),mimeType:o(),sizeBytes:r(),kind:o(),data:o().optional(),thumbnailData:o().optional(),fileBacked:f().optional()}),Ot=l({pattern:o(),label:o()}),kt=l({label:o(),description:o(),pattern:o()}),At=l({scope:o(),label:o()}),jt=l({requestId:o(),title:o().optional(),description:o().optional(),toolName:o().optional(),riskLevel:o().optional(),riskReason:o().optional(),input:n(o(),a()).optional(),allowlistOptions:c(y).optional(),scopeOptions:c(b).optional(),directoryScopeOptions:c(x).optional(),persistentDecisionsAllowed:f().optional()}),Mt=l({requestId:o(),entries:c(H)}),Nt=i([`approved`,`denied`,`timed_out`]),Y=l({id:o().optional(),name:o(),input:n(o(),a()),result:o().optional(),isError:f().optional(),imageData:o().optional(),imageDataList:c(o()).optional(),startedAt:r().optional(),previewStartedAt:r().optional(),completedAt:r().optional(),confirmationDecision:Nt.optional(),confirmationLabel:o().optional(),riskLevel:o().optional(),riskReason:o().optional(),matchedTrustRuleId:o().optional(),autoApproved:f().optional(),approvalMode:o().optional(),approvalReason:o().optional(),riskThreshold:o().optional(),riskScopeOptions:c(Ot).optional(),riskAllowlistOptions:c(kt).optional(),riskDirectoryScopeOptions:c(At).optional(),activityMetadata:G.optional(),scopeOptions:c(b).optional(),pendingConfirmation:jt.optional(),pendingQuestion:Mt.optional()}),Pt=l({id:o(),label:o(),style:o().optional(),data:n(o(),a()).optional()}),X=l({surfaceId:o(),surfaceType:o(),title:o().optional(),data:n(o(),a()),actions:c(Pt).optional(),display:o().optional(),persistent:f().optional(),completed:f().optional(),completionSummary:o().optional(),toolCallId:o().optional()}),Ft=l({subagentId:o(),label:o(),status:o(),error:o().optional(),conversationId:o().optional(),objective:o().optional()}),It=l({acpSessionId:o(),agent:o().optional()}),Lt=l({id:o(),toolName:o(),conversationId:o(),command:o(),startedAt:r(),status:i([`completed`,`failed`,`cancelled`]),exitCode:r().nullable(),output:o(),completedAt:r()}),Rt=l({appUrl:o().optional(),webUrl:o().optional()}),zt=l({emoji:o(),op:i([`added`,`removed`]),actorDisplayName:o().optional(),targetChannelTs:o()}),Bt=l({channelId:o(),channelName:o().optional(),channelTs:o(),threadTs:o().optional(),sender:l({displayName:o().optional(),externalUserId:o().optional()}).optional(),messageLink:Rt.optional(),threadLink:Rt.optional(),eventKind:i([`message`,`reaction`]).optional(),reaction:zt.optional()}),Vt=l({type:u(`text`),text:o()}),Ht=l({type:u(`thinking`),thinking:o(),startedAt:r().optional(),completedAt:r().optional()}),Ut=l({type:u(`tool_use`),toolCall:Y}),Wt=l({type:u(`surface`),surface:X}),Gt=l({type:u(`attachment`),attachment:J}),Kt=t(`type`,[Vt,Ht,Ut,Wt,Gt]),qt=l({id:o(),mergedMessageIds:c(o()).optional(),clientMessageId:o().optional(),role:i([`user`,`assistant`]),content:o().meta({deprecated:!0,description:`Deprecated: superseded by contentBlocks. Flat plain-text body (joined text segments).`}).optional(),timestamp:o(),attachments:c(J),toolCalls:c(Y).meta({deprecated:!0,description:`Deprecated: superseded by contentBlocks (the tool_use variant). Flat list of tool calls.`}).optional(),surfaces:c(X).meta({deprecated:!0,description:`Deprecated: superseded by contentBlocks (the surface variant). Flat list of surfaces.`}).optional(),textSegments:c(o()).meta({deprecated:!0,description:`Deprecated: superseded by contentBlocks. Text segments split by tool-call boundaries.`}).optional(),thinkingSegments:c(o()).meta({deprecated:!0,description:`Deprecated: superseded by contentBlocks. Reasoning text extracted from thinking blocks.`}).optional(),contentOrder:c(o()).meta({deprecated:!0,description:`Deprecated: superseded by contentBlocks. Positional "<type>:<index>" content ordering (e.g. "text:0", "thinking:1").`}).optional(),contentBlocks:c(Kt).optional(),subagentNotification:Ft.optional(),acpNotification:It.optional(),backgroundEventNotification:f().optional(),backgroundToolCompletion:Lt.optional(),slackMessage:Bt.optional(),queueStatus:i([`queued`,`processing`]).optional(),queuePosition:r().optional()}),Jt=l({status:L}),Yt=u(`notification`),Xt=i([`new`,`seen`,`acted_on`,`dismissed`]),Zt=i([`low`,`medium`,`high`,`critical`]),Qt=i([`security`,`scheduling`,`background`,`email`,`system`]),$t=i([`heartbeat`,`memory_consolidation`,`schedule`,`auto_analysis`,`user`,`other`]),en=l({id:o(),label:o(),prompt:o()}),tn=i([`emailDraft`,`documentPreview`,`permissionChat`,`paymentAuth`,`toolPermission`,`updatesList`]),nn=l({kind:tn}),rn=l({id:o(),type:Yt,priority:r().int().min(0).max(100),title:o().optional(),summary:o(),timestamp:o(),status:Xt.default(`new`),expiresAt:o().optional(),actions:c(en).optional(),urgency:Zt.optional(),conversationId:o().optional(),detailPanel:nn.optional(),category:Qt.optional(),noteworthy:f().optional(),fromAssistant:f().optional(),metadata:n(o(),a()).optional(),sourceType:$t.optional(),sourceKey:o().optional(),sourceLabel:o().optional(),createdAt:o()}),an=i([`deterministic`,`assistant`]),on=l({id:o(),label:o(),icon:o().optional(),prompt:o(),source:an}),sn=l({greeting:o(),timeAwayLabel:o(),newCount:r().int().min(0)}),cn=l({items:c(rn),updatedAt:o(),contextBanner:sn,suggestedPrompts:c(on)}),ln=l({id:o(),category:i([`voice`,`world`,`priorities`]),text:o(),confidence:i([`strong`,`uncertain`]),source:i([`onboarding`,`inferred`])}),un=l({id:o(),name:o(),description:o(),tier:i([`unlocked`,`next-up`,`earned`]),gate:o(),unlockHint:o().optional(),ctaLabel:o().optional()}),dn=l({version:u(1),assistantId:o(),tier:d([u(1),u(2),u(3),u(4)]),progressPercent:r(),facts:c(ln),capabilities:c(un),conversationCount:r(),hatchedDate:o(),assistantName:o(),userName:o().optional(),updatedAt:o()}),fn=l({key:o(),label:o(),ms:r()}),pn=l({phases:c(fn),ttftMs:r().nullish(),totalToFirstTokenMs:r().nullish(),providerDurationMs:r().nullish(),firstTokenKind:i([`thinking`,`text`]).nullish()}),mn=l({provider:o().nullish(),model:o().nullish(),status:o().nullish(),inputTokens:r().nullish(),outputTokens:r().nullish(),cacheCreationInputTokens:r().nullish(),cacheReadInputTokens:r().nullish(),stopReason:o().nullish(),requestMessageCount:r().nullish(),requestToolCount:r().nullish(),responseMessageCount:r().nullish(),responseToolCallCount:r().nullish(),responsePreview:o().nullish(),toolCallNames:c(o()).nullish(),estimatedCostUsd:r().nullish(),durationMs:r().nullish()}),Z=l({kind:o(),label:o().nullish(),role:o().nullish(),text:o().nullish(),toolName:o().nullish(),data:a().optional(),language:o().nullish()}),hn=l({name:o().nullish(),message:o().nullish(),code:o().nullish(),provider:o().nullish(),statusCode:r().nullish(),retryAfterMs:r().nullish(),apiErrorCode:o().nullish(),apiErrorType:o().nullish(),apiErrorParam:o().nullish(),requestId:o().nullish()}),gn=l({id:o(),createdAt:r(),requestPayload:s(),responsePayload:s(),provider:o().nullish(),summary:mn.nullish(),requestSections:c(Z).nullish(),responseSections:c(Z).nullish(),agentLoopExitReason:o().nullish(),callSite:o().nullish(),error:hn.nullish(),latency:pn.nullish()}),_n=l({nodeId:o(),score:r(),semanticSimilarity:r(),recencyBoost:r(),type:o().optional()}),vn=l({reason:o(),semanticUnavailable:f(),fallbackSources:c(o())}),yn=l({enabled:f(),degraded:f(),provider:o().nullable(),model:o().nullable(),degradation:vn.nullable(),semanticHits:r().nullish(),mergedCount:r().nullish(),selectedCount:r().nullish(),tier1Count:r().nullish(),tier2Count:r().nullish(),hybridSearchLatencyMs:r().nullish(),sparseVectorUsed:f().nullish(),injectedTokens:r().nullish(),latencyMs:r().nullish(),topCandidates:c(_n),injectedText:o().nullable(),reason:o().nullable(),queryContext:o().nullable()}),bn=l({slug:o(),finalActivation:r(),ownActivation:r(),priorActivation:r(),simUser:r(),simAssistant:r(),simNow:r(),simUserRerankBoost:r().optional(),simAssistantRerankBoost:r().optional(),inRerankPool:f().optional(),spreadContribution:r(),source:o(),status:o()}),Q=l({d:r(),c_user:r(),c_assistant:r(),c_now:r(),k:r(),hops:r(),top_k:r(),epsilon:r()}),xn=l({turn:r(),mode:o(),concepts:c(bn),config:Q}),Sn=l({slug:o(),source:o(),pinned:f(),sectionOrdinal:r().nullable().optional(),sectionHeading:o().nullable().optional()}),Cn=l({turn:r(),live:f(),selections:c(Sn),injectedText:o()}),wn=l({messageId:o().nullish(),conversationKey:o().nullish(),conversationId:o().nullish(),conversationKind:o(),conversationTotalEstimatedCostUsd:r().nullish(),logs:c(gn),memoryRecall:yn.nullable(),memoryV2Activation:xn.nullable(),memoryV3Selection:Cn.nullish()}),Tn=l({type:o(),content:o(),toolName:o().optional(),isError:f().optional(),messageId:o().optional(),toolUseId:o().optional(),input:n(o(),a()).optional()}),En=l({subagentId:o(),objective:o().optional(),status:U.optional(),usage:W.optional(),events:c(Tn)}),Dn=l({seq:r().int(),kind:i([`agent`,`workflow`]),label:o().optional(),phase:o().optional(),promptSummary:o().optional(),status:o(),resultSummary:o().optional(),inputTokens:r().optional(),outputTokens:r().optional(),createdAt:r().nullable()}),On=l({runId:o(),status:q.optional(),agentsSpawned:r().optional(),inputTokens:r().optional(),outputTokens:r().optional(),phase:o().optional(),leaves:c(Dn)}),kn=l({title:o().optional(),subtitle:o().optional(),body:o().optional(),metadata:c(l({label:p(),value:p()})).optional(),template:o().optional(),templateData:n(o(),a()).optional()}),An=ne(e=>{let t=(typeof e==`string`?e.split(`,`):Array.isArray(e)?e:[]).map(e=>typeof e==`string`||typeof e==`number`?String(e).trim():``).filter(e=>e.length>0);return t.length>0?t:void 0},c(o()).optional()),jn=l({prompt:p().optional(),acceptedTypes:An,maxFiles:ae().int().positive().optional().catch(void 0),maxSizeBytes:ae().positive().optional().catch(void 0)}),Mn=e({ACPOptionKindSchema:()=>C,ACPOptionSchema:()=>w,AcpSessionCompletedEventSchema:()=>se,AcpSessionErrorEventSchema:()=>ce,AcpSessionSpawnedEventSchema:()=>le,AcpSessionUpdateEventSchema:()=>de,AcpSessionUpdateTypeSchema:()=>ue,AcpSessionUsageEventSchema:()=>fe,AcpStopReasonSchema:()=>oe,AllowlistOptionSchema:()=>y,AssistantActivityAnchorSchema:()=>me,AssistantActivityPhaseSchema:()=>pe,AssistantActivityReasonSchema:()=>he,AssistantActivityStateEventSchema:()=>ge,AssistantEventEnvelopeSchema:()=>Nn,AssistantEventSchema:()=>$,AssistantOutboundAttachmentSchema:()=>B,AssistantTextDeltaEventSchema:()=>_e,AssistantThinkingDeltaEventSchema:()=>ve,AssistantTurnStartEventSchema:()=>ye,AvatarUpdatedEventSchema:()=>m,BackgroundToolCompletedEventSchema:()=>h,BackgroundToolStartedEventSchema:()=>g,CALL_SITE_COMPACTION_AGENT:()=>wt,CALL_SITE_SYNTHETIC_AGENT_ERROR_MESSAGE:()=>Ct,CapabilitySchema:()=>un,CardSurfaceDataSchema:()=>kn,CompactionCircuitClosedEventSchema:()=>_,CompactionCircuitOpenEventSchema:()=>v,ConfirmationDiffSchema:()=>S,ConfirmationExecutionTargetSchema:()=>T,ConfirmationRequestEventSchema:()=>E,ContactRequestEventSchema:()=>D,ContextBannerSchema:()=>sn,ConversationAttachmentBlockSchema:()=>Gt,ConversationContentBlockSchema:()=>Kt,ConversationErrorCodeSchema:()=>O,ConversationErrorEventSchema:()=>k,ConversationListInvalidatedEventSchema:()=>j,ConversationListInvalidatedReasonSchema:()=>A,ConversationMessageAttachmentSchema:()=>J,ConversationMessageSchema:()=>qt,ConversationMessageSurfaceSchema:()=>X,ConversationMessageToolCallSchema:()=>Y,ConversationNoticeEventSchema:()=>N,ConversationNoticeSourceSchema:()=>M,ConversationSlackMessageSchema:()=>Bt,ConversationSubagentNotificationSchema:()=>Ft,ConversationSurfaceBlockSchema:()=>Wt,ConversationTextBlockSchema:()=>Vt,ConversationThinkingBlockSchema:()=>Ht,ConversationTitleUpdatedEventSchema:()=>P,ConversationToolUseBlockSchema:()=>Ut,DEFAULT_TOOL_EXECUTION_TIMEOUT_SEC:()=>120,DictationContextSchema:()=>Et,DictationRequestSchema:()=>Dt,DirectoryScopeOptionSchema:()=>x,DiskPressureBlockedCapabilitySchema:()=>I,DiskPressureStateSchema:()=>F,DiskPressureStatusChangedEventSchema:()=>R,DiskPressureStatusResponseSchema:()=>Jt,DiskPressureStatusSchema:()=>L,DocumentCommentCreatedEventSchema:()=>z,DocumentCommentDeletedEventSchema:()=>xe,DocumentCommentReopenedEventSchema:()=>Se,DocumentCommentResolvedEventSchema:()=>Ce,DocumentEditorUpdateEventSchema:()=>we,ErrorEventSchema:()=>Te,FactSchema:()=>ln,FeedActionSchema:()=>en,FeedItemCategorySchema:()=>Qt,FeedItemDetailPanelKindSchema:()=>tn,FeedItemDetailPanelSchema:()=>nn,FeedItemSchema:()=>rn,FeedItemSourceTypeSchema:()=>$t,FeedItemStatusSchema:()=>Xt,FeedItemTypeSchema:()=>Yt,FeedItemUrgencySchema:()=>Zt,FileUploadSurfaceDataSchema:()=>jn,GenerationCancelledEventSchema:()=>Ee,GenerationHandoffEventSchema:()=>De,HomeFeedResponseSchema:()=>cn,HomeFeedUpdatedEventSchema:()=>Oe,HookEventOwnerSchema:()=>ke,HookEventSchema:()=>Ae,IdentityChangedEventSchema:()=>je,InteractionResolutionStateSchema:()=>Me,InteractionResolvedEventSchema:()=>Ne,LLMCallErrorSchema:()=>hn,LLMCallSummarySchema:()=>mn,LLMContextSectionSchema:()=>Z,LLMRequestLogEntrySchema:()=>gn,LatencyBreakdownSchema:()=>pn,LatencyPhaseSchema:()=>fn,LlmContextResponseSchema:()=>wn,MemoryCandidateSchema:()=>_n,MemoryDegradationSchema:()=>vn,MemoryRecallLogSchema:()=>yn,MemoryV2ActivationLogSchema:()=>xn,MemoryV2ConceptRowSchema:()=>bn,MemoryV2ConfigSnapshotSchema:()=>Q,MemoryV3SelectionLogSchema:()=>Cn,MemoryV3SelectionRowSchema:()=>Sn,MessageCompleteEventSchema:()=>Pe,MessageDequeuedEventSchema:()=>Fe,MessageQueuedDeletedEventSchema:()=>Le,MessageQueuedEventSchema:()=>Ie,MessageRequestCompleteEventSchema:()=>Re,NavigateSettingsEventSchema:()=>ze,NotificationIntentEventSchema:()=>Be,OpenPanelEventSchema:()=>Ve,OpenUrlEventSchema:()=>He,PendingToolConfirmationSchema:()=>jt,QuestionEntrySchema:()=>H,QuestionOptionSchema:()=>V,QuestionRequestEventSchema:()=>Ue,RelationshipStateSchema:()=>dn,RelationshipStateUpdatedEventSchema:()=>We,RiskScopeOptionSchema:()=>$e,SSE_REPLAY_RING_AGE_LIMIT_MS:()=>Tt,SSE_REPLAY_RING_COUNT_LIMIT:()=>200,ScopeOptionSchema:()=>b,SecretRequestEventSchema:()=>Ge,SubagentDetailEventSchema:()=>Tn,SubagentDetailResponseSchema:()=>En,SubagentEventEventSchema:()=>qe,SubagentInnerEventSchema:()=>Ke,SubagentSpawnedEventSchema:()=>Je,SubagentStatusChangedEventSchema:()=>Ye,SubagentStatusSchema:()=>U,SubagentUsageStatsSchema:()=>W,SuggestedPromptSchema:()=>on,SuggestedPromptSourceSchema:()=>an,SurfaceActionSchema:()=>pt,SyncChangedEventSchema:()=>Xe,ToolActivityMetadataSchema:()=>G,ToolOutputChunkEventSchema:()=>Qe,ToolOutputChunkSubTypeSchema:()=>Ze,ToolResultEventSchema:()=>at,ToolUsePreviewStartEventSchema:()=>ot,ToolUseStartEventSchema:()=>st,TraceEventKindSchema:()=>ct,TraceEventSchema:()=>ut,TraceEventStatusSchema:()=>lt,UISurfaceCompleteEventSchema:()=>dt,UISurfaceDismissEventSchema:()=>ft,UISurfaceShowEventSchema:()=>mt,UISurfaceUpdateEventSchema:()=>ht,UsageProgressEventSchema:()=>K,UsageUpdateEventSchema:()=>gt,UserMessageEchoEventSchema:()=>_t,WebFetchMetadataSchema:()=>it,WebSearchMetadataSchema:()=>rt,WebSearchProviderIdSchema:()=>et,WebSearchResultItemSchema:()=>nt,WorkflowCompletedEventSchema:()=>vt,WorkflowJournalResponseSchema:()=>On,WorkflowLeafFinishedEventSchema:()=>yt,WorkflowLeafSchema:()=>Dn,WorkflowLeafStartedEventSchema:()=>bt,WorkflowProgressEventSchema:()=>xt,WorkflowRunStatusSchema:()=>q,WorkflowStartedEventSchema:()=>St}),$=t(`type`,[se,ce,le,de,fe,ge,_e,ve,ye,m,h,g,_,v,E,D,k,j,N,P,R,z,xe,Se,Ce,we,Te,Ee,De,Oe,Ae,je,Ne,Pe,Fe,Ie,Le,Re,ze,Be,Ve,He,Ue,We,Ge,qe,Je,Ye,Xe,Qe,at,ot,st,ut,dt,ft,mt,ht,K,gt,_t,vt,yt,bt,xt,St]),Nn=l({id:o(),conversationId:o().optional(),seq:r().int().optional(),emittedAt:o(),message:$});export{jn as a,Jt as c,Ct as d,K as f,kn as i,Tt as l,$ as n,On as o,Mn as r,En as s,Nn as t,wt as u};
@@ -1,6 +0,0 @@
1
- import{n as e}from"./toast-B0OiPFFj.js";import{n as t,t as n}from"./create-selectors-BE0_e_Ed.js";import{c as r,n as i,s as a,t as o,u as s}from"./feature-flag-catalog-CRFA909Q.js";var c={bodySerializer:e=>JSON.stringify(e,(e,t)=>typeof t==`bigint`?t.toString():t)};Object.entries({$body_:`body`,$headers_:`headers`,$path_:`path`,$query_:`query`});function l({onRequest:e,onSseError:t,onSseEvent:n,responseTransformer:r,responseValidator:i,sseDefaultRetryDelay:a,sseMaxRetryAttempts:o,sseMaxRetryDelay:s,sseSleepFn:c,url:l,...u}){let d,f=c??(e=>new Promise(t=>setTimeout(t,e)));return{stream:async function*(){let c=a??3e3,p=0,m=u.signal??new AbortController().signal;for(;!m.aborted;){p++;let a=u.headers instanceof Headers?u.headers:new Headers(u.headers);d!==void 0&&a.set(`Last-Event-ID`,d);try{let t={redirect:`follow`,...u,body:u.serializedBody,headers:a,signal:m},o=new Request(l,t);e&&(o=await e(l,t));let s=await(u.fetch??globalThis.fetch)(o);if(!s.ok)throw Error(`SSE failed: ${s.status} ${s.statusText}`);if(!s.body)throw Error(`No body in SSE response`);let f=s.body.pipeThrough(new TextDecoderStream).getReader(),p=``,h=()=>{try{f.cancel()}catch{}};m.addEventListener(`abort`,h);try{for(;;){let{done:e,value:t}=await f.read();if(e)break;p+=t,p=p.replace(/\r\n?/g,`
2
- `);let a=p.split(`
3
-
4
- `);p=a.pop()??``;for(let e of a){let t=e.split(`
5
- `),a=[],o;for(let e of t)if(e.startsWith(`data:`))a.push(e.replace(/^data:\s*/,``));else if(e.startsWith(`event:`))o=e.replace(/^event:\s*/,``);else if(e.startsWith(`id:`))d=e.replace(/^id:\s*/,``);else if(e.startsWith(`retry:`)){let t=Number.parseInt(e.replace(/^retry:\s*/,``),10);Number.isNaN(t)||(c=t)}let s,l=!1;if(a.length){let e=a.join(`
6
- `);try{s=JSON.parse(e),l=!0}catch{s=e}}l&&(i&&await i(s),r&&(s=await r(s))),n?.({data:s,event:o,id:d,retry:c}),a.length&&(yield s)}}}finally{m.removeEventListener(`abort`,h),f.releaseLock()}break}catch(e){if(t?.(e),o!==void 0&&p>=o)break;await f(Math.min(c*2**(p-1),s??3e4))}}}()}}var u=e=>{switch(e){case`label`:return`.`;case`matrix`:return`;`;case`simple`:return`,`;default:return`&`}},d=e=>{switch(e){case`form`:return`,`;case`pipeDelimited`:return`|`;case`spaceDelimited`:return`%20`;default:return`,`}},f=e=>{switch(e){case`label`:return`.`;case`matrix`:return`;`;case`simple`:return`,`;default:return`&`}},p=({allowReserved:e,explode:t,name:n,style:r,value:i})=>{if(!t){let t=(e?i:i.map(e=>encodeURIComponent(e))).join(d(r));switch(r){case`label`:return`.${t}`;case`matrix`:return`;${n}=${t}`;case`simple`:return t;default:return`${n}=${t}`}}let a=u(r),o=i.map(t=>r===`label`||r===`simple`?e?t:encodeURIComponent(t):m({allowReserved:e,name:n,value:t})).join(a);return r===`label`||r===`matrix`?a+o:o},m=({allowReserved:e,name:t,value:n})=>{if(n==null)return``;if(typeof n==`object`)throw Error("Deeply-nested arrays/objects aren’t supported. Provide your own `querySerializer()` to handle these.");return`${t}=${e?n:encodeURIComponent(n)}`},h=({allowReserved:e,explode:t,name:n,style:r,value:i,valueOnly:a})=>{if(i instanceof Date)return a?i.toISOString():`${n}=${i.toISOString()}`;if(r!==`deepObject`&&!t){let t=[];Object.entries(i).forEach(([n,r])=>{t=[...t,n,e?r:encodeURIComponent(r)]});let a=t.join(`,`);switch(r){case`form`:return`${n}=${a}`;case`label`:return`.${a}`;case`matrix`:return`;${n}=${a}`;default:return a}}let o=f(r),s=Object.entries(i).map(([t,i])=>m({allowReserved:e,name:r===`deepObject`?`${n}[${t}]`:t,value:i})).join(o);return r===`label`||r===`matrix`?o+s:s},g=/\{[^{}]+\}/g,_=({path:e,url:t})=>{let n=t,r=t.match(g);if(r)for(let t of r){let r=!1,i=t.substring(1,t.length-1),a=`simple`;i.endsWith(`*`)&&(r=!0,i=i.substring(0,i.length-1)),i.startsWith(`.`)?(i=i.substring(1),a=`label`):i.startsWith(`;`)&&(i=i.substring(1),a=`matrix`);let o=e[i];if(o==null)continue;if(Array.isArray(o)){n=n.replace(t,p({explode:r,name:i,style:a,value:o}));continue}if(typeof o==`object`){n=n.replace(t,h({explode:r,name:i,style:a,value:o,valueOnly:!0}));continue}if(a===`matrix`){n=n.replace(t,`;${m({name:i,value:o})}`);continue}let s=encodeURIComponent(a===`label`?`.${o}`:o);n=n.replace(t,s)}return n},v=({baseUrl:e,path:t,query:n,querySerializer:r,url:i})=>{let a=i.startsWith(`/`)?i:`/${i}`,o=(e??``)+a;t&&(o=_({path:t,url:o}));let s=n?r(n):``;return s.startsWith(`?`)&&(s=s.substring(1)),s&&(o+=`?${s}`),o};function y(e){let t=e.body!==void 0;if(t&&e.bodySerializer)return`serializedBody`in e?e.serializedBody!==void 0&&e.serializedBody!==``?e.serializedBody:null:e.body===``?null:e.body;if(t)return e.body}var b=async(e,t)=>{let n=typeof t==`function`?await t(e):t;if(n)return e.scheme===`bearer`?`Bearer ${n}`:e.scheme===`basic`?`Basic ${btoa(n)}`:n},x=({parameters:e={},...t}={})=>n=>{let r=[];if(n&&typeof n==`object`)for(let i in n){let a=n[i];if(a==null)continue;let o=e[i]||t;if(Array.isArray(a)){let e=p({allowReserved:o.allowReserved,explode:!0,name:i,style:`form`,value:a,...o.array});e&&r.push(e)}else if(typeof a==`object`){let e=h({allowReserved:o.allowReserved,explode:!0,name:i,style:`deepObject`,value:a,...o.object});e&&r.push(e)}else{let e=m({allowReserved:o.allowReserved,name:i,value:a});e&&r.push(e)}}return r.join(`&`)},S=e=>{if(!e)return`stream`;let t=e.split(`;`)[0]?.trim();if(t){if(t.startsWith(`application/json`)||t.endsWith(`+json`))return`json`;if(t===`multipart/form-data`)return`formData`;if([`application/`,`audio/`,`image/`,`video/`].some(e=>t.startsWith(e)))return`blob`;if(t.startsWith(`text/`))return`text`}},C=(e,t)=>t?!!(e.headers.has(t)||e.query?.[t]||e.headers.get(`Cookie`)?.includes(`${t}=`)):!1,w=async({security:e,...t})=>{for(let n of e){if(C(t,n.name))continue;let e=await b(n,t.auth);if(!e)continue;let r=n.name??`Authorization`;switch(n.in){case`query`:t.query||={},t.query[r]=e;break;case`cookie`:t.headers.append(`Cookie`,`${r}=${e}`);break;default:t.headers.set(r,e);break}}},T=e=>v({baseUrl:e.baseUrl,path:e.path,query:e.query,querySerializer:typeof e.querySerializer==`function`?e.querySerializer:x(e.querySerializer),url:e.url}),E=(e,t)=>{let n={...e,...t};return n.baseUrl?.endsWith(`/`)&&(n.baseUrl=n.baseUrl.substring(0,n.baseUrl.length-1)),n.headers=O(e.headers,t.headers),n},D=e=>{let t=[];return e.forEach((e,n)=>{t.push([n,e])}),t},O=(...e)=>{let t=new Headers;for(let n of e){if(!n)continue;let e=n instanceof Headers?D(n):Object.entries(n);for(let[n,r]of e)if(r===null)t.delete(n);else if(Array.isArray(r))for(let e of r)t.append(n,e);else r!==void 0&&t.set(n,typeof r==`object`?JSON.stringify(r):r)}return t},k=class{fns=[];clear(){this.fns=[]}eject(e){let t=this.getInterceptorIndex(e);this.fns[t]&&(this.fns[t]=null)}exists(e){let t=this.getInterceptorIndex(e);return!!this.fns[t]}getInterceptorIndex(e){return typeof e==`number`?this.fns[e]?e:-1:this.fns.indexOf(e)}update(e,t){let n=this.getInterceptorIndex(e);return this.fns[n]?(this.fns[n]=t,e):!1}use(e){return this.fns.push(e),this.fns.length-1}},A=()=>({error:new k,request:new k,response:new k}),j=x({allowReserved:!1,array:{explode:!0,style:`form`},object:{explode:!0,style:`deepObject`}}),M={"Content-Type":`application/json`},N=(e={})=>({...c,headers:M,parseAs:`auto`,querySerializer:j,...e}),P=((e={})=>{let t=E(N(),e),n=()=>({...t}),r=e=>(t=E(t,e),n()),i=A(),a=async e=>{let n={...t,...e,fetch:e.fetch??t.fetch??globalThis.fetch,headers:O(t.headers,e.headers),serializedBody:void 0};n.security&&await w({...n,security:n.security}),n.requestValidator&&await n.requestValidator(n),n.body!==void 0&&n.bodySerializer&&(n.serializedBody=n.bodySerializer(n.body)),(n.body===void 0||n.serializedBody===``)&&n.headers.delete(`Content-Type`);let r=n;return{opts:r,url:T(r)}},o=async e=>{let n=e.throwOnError??t.throwOnError,r=e.responseStyle??t.responseStyle,o,s;try{let{opts:t,url:n}=await a(e),r={redirect:`follow`,...t,body:y(t)};o=new Request(n,r);for(let e of i.request.fns)e&&(o=await e(o,t));let c=t.fetch;s=await c(o);for(let e of i.response.fns)e&&(s=await e(s,o,t));let l={request:o,response:s};if(s.ok){let e=(t.parseAs===`auto`?S(s.headers.get(`Content-Type`)):t.parseAs)??`json`;if(s.status===204||s.headers.get(`Content-Length`)===`0`){let n;switch(e){case`arrayBuffer`:case`blob`:case`text`:n=await s[e]();break;case`formData`:n=new FormData;break;case`stream`:n=s.body;break;default:n={};break}return t.responseStyle===`data`?n:{data:n,...l}}let n;switch(e){case`arrayBuffer`:case`blob`:case`formData`:case`text`:n=await s[e]();break;case`json`:{let e=await s.text();n=e?JSON.parse(e):{};break}case`stream`:return t.responseStyle===`data`?s.body:{data:s.body,...l}}return e===`json`&&(t.responseValidator&&await t.responseValidator(n),t.responseTransformer&&(n=await t.responseTransformer(n))),t.responseStyle===`data`?n:{data:n,...l}}let u=await s.text(),d;try{d=JSON.parse(u)}catch{}throw d??u}catch(t){let a=t;for(let t of i.error.fns)t&&(a=await t(a,s,o,e));if(a||={},n)throw a;return r===`data`?void 0:{error:a,request:o,response:s}}},s=e=>t=>o({...t,method:e}),c=e=>async t=>{let{opts:n,url:r}=await a(t);return l({...n,body:n.body,method:e,onRequest:async(e,t)=>{let r=new Request(e,t);for(let e of i.request.fns)e&&(r=await e(r,n));return r},serializedBody:y(n),url:r})};return{buildUrl:e=>T({...t,...e}),connect:s(`CONNECT`),delete:s(`DELETE`),get:s(`GET`),getConfig:n,head:s(`HEAD`),interceptors:i,options:s(`OPTIONS`),patch:s(`PATCH`),post:s(`POST`),put:s(`PUT`),request:o,setConfig:r,sse:{connect:c(`CONNECT`),delete:c(`DELETE`),get:c(`GET`),head:c(`HEAD`),options:c(`OPTIONS`),patch:c(`PATCH`),post:c(`POST`),put:c(`PUT`),trace:c(`TRACE`)},trace:s(`TRACE`)}})(N()),F=e=>(e.client??P).get({url:`/v1/assistants/{assistant_id}/feature-flags`,...e}),I=e=>(e.client??P).patch({url:`/v1/assistants/{assistant_id}/feature-flags/{flag_key}`,...e,headers:{"Content-Type":`application/json`,...e.headers}}),L={...o},R={...i},z=0,B={};function V(e={}){L={...o,...e};for(let e of Object.keys(B))delete B[e]}function H(e={}){R={...i,...e}}function U(){V(),H()}var W=a(`assistant`);function G(e){return L[e]??o[e]??!1}function K(e){return R[e]??i[e]??``}var q=n(t()(t=>{let n=t;return{...o,...W.bool,hasHydrated:!1,stringFlags:{...i,...W.str},setFlags:e=>t(t=>{V(e);let n={...e,...W.bool};return Object.keys(n).some(e=>n[e]!==t[e])?n:t}),setFlag:(n,i,a)=>{let o=++z,c=()=>{if(B[n]!==o)return;delete B[n];let a=G(n);t(e=>e[n]===i?{[n]:a}:e),e.error(`Couldn't update "${r(n)?.label??n}" — change reverted.`)},l=s(n);!a||!l||(B[n]=o,I({path:{assistant_id:a,flag_key:l},body:{enabled:i},throwOnError:!1}).then(e=>{e.response?.ok?(L[n]=i,B[n]===o&&delete B[n]):c()}).catch(c),t({[n]:W.bool[n]??i}))},markHydrated:()=>t({hasHydrated:!0}),resetForAssistantSwitch:()=>{U(),t({...o,...W.bool,hasHydrated:!1}),n({stringFlags:{...i,...W.str}})},setStringFlags:e=>n(t=>{H(e);let n={...e,...W.str},r=t.stringFlags;return Object.keys(n).some(e=>n[e]!==r[e])?{stringFlags:n}:t}),setStringFlag:(t,i,a)=>{let o=++z,c=()=>{if(B[t]!==o)return;delete B[t];let a=K(t);n(e=>e.stringFlags[t]===i?{stringFlags:{...e.stringFlags,[t]:a}}:e),e.error(`Couldn't update "${r(t)?.label??t}" — change reverted.`)},l=s(t);!a||!l||(B[t]=o,I({path:{assistant_id:a,flag_key:l},body:{enabled:i},throwOnError:!1}).then(e=>{e.response?.ok?(R[t]=i,B[t]===o&&delete B[t]):c()}).catch(c),n(e=>({stringFlags:{...e.stringFlags,[t]:W.str[t]??i}})))}}}));export{F as n,P as r,q as t};
@@ -1 +0,0 @@
1
- import{n as e,t}from"./create-selectors-BE0_e_Ed.js";import{t as n}from"./impersonate-version-flag-BpzPjXeb.js";var r=t(e(e=>({name:null,version:null,setIdentity:(t,r)=>{e({name:t,version:n()??r})},clearIdentity:()=>e({name:null,version:null})})));export{r as t};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/esm-CNMouzMT.js","assets/preload-helper-BewR0kVT.js","assets/dist-CNEsSZUe.js","assets/esm-DlsDcixX.js"])))=>i.map(i=>d[i]);
2
- import{a as e,c as t,i as n,t as r}from"./local-settings-lVNyIOJ_.js";import{a as i,t as a}from"./device-settings-BBwtGKJb.js";import{o,t as s}from"./capture-error-8raDoxFL.js";import{t as c}from"./preload-helper-BewR0kVT.js";import{t as l}from"./useQuery-B45lW1Kk.js";import{n as u,t as d}from"./create-selectors-BE0_e_Ed.js";import{$ as ee,C as te,E as ne,Q as re,S as ie,_ as ae,at as f,c as p,d as oe,et as m,f as h,h as g,i as se,it as ce,m as le,n as ue,nt as de,o as fe,ot as _,r as pe,rt as me,s as he,tt as ge,v as _e,w as ve,x as ye}from"./local-mode-CgrENuVf.js";import{t as v}from"./is-electron-C_ZTVhv8.js";import{n as y,t as be}from"./resolved-assistants-store-Dqf0LJrA.js";import{n as xe,r as b,t as Se}from"./api-errors-CPc5p2r9.js";import{t as x}from"./client.gen-nWvCdeJb.js";import{M as Ce,N as we,St as Te}from"./sdk.gen-Ec1nF7iZ.js";import{a as Ee,c as S,r as De}from"./api-DvthVfI2.js";import{n as Oe}from"./event-bus-ULoEgfFr.js";import{S as C,a as ke,b as Ae,d as je,h as Me,i as Ne,l as Pe,t as Fe,u as Ie,v as Le,w as Re,y as ze}from"./native-biometric-C5AdTx4r.js";import{o as Be}from"./remote-gateway-session-C2xcV9Z_.js";import{t as Ve}from"./dist-CNEsSZUe.js";import{r as He}from"./typed-storage-BGMPjrzL.js";var w=d(u(()=>({assistantState:{kind:`loading`},operationalStatusAssistantId:null,expectingFirstMessage:!1}))),Ue=new Set;function We(e){return Ue.add(e),()=>{Ue.delete(e)}}function Ge(){for(let e of Ue)try{e()}catch{}}var Ke=new Set([502,503,504]),qe=`Connection interrupted. Reconnecting…`;function Je(e){return e.code===`proxy_network_error`?!0:(typeof e.detail==`string`?e.detail:``).includes(`net::ERR_`)}function Ye(e){if(e.ok)switch(e.data.status){case`active`:return e.data.is_local?{kind:`self_hosted`}:{kind:`active`};case`initializing`:return{kind:`initializing`};case`to_be_deleted`:return{kind:`cleaning_up`};default:return{kind:`error`,message:`Unexpected assistant status: ${e.data.status}`}}return e.status===404?{kind:`auto_hatch`}:Je(e.error)?{kind:`error`,transient:!0,message:qe}:{kind:`error`,message:b(e.error,void 0,`Failed to check assistant status.`)}}function Xe(e){return e===void 0||e>=500}var Ze=`platform_hosted_disabled`,Qe=`We are at capacity for Vellum Managed Assistants, more will be available soon!`;function $e(e,t){return e===503?t?.code===Ze:!1}var et=2e3,tt=3e4;function nt(e){return Math.min(et*2**e,tt)}var rt=3e5;function it(){return{kind:`error`,message:`Your assistant is taking longer than expected to start. Please try again, or check the community for help.`}}var at=[`assistant`,`current`],ot=3e3,st=new Set([`initializing`,`cleaning_up`]);function ct(e){if(!e)return!1;let t=Ye(e);return st.has(t.kind)?ot:!1}function lt(e){return e?[...at,e]:at}function ut(e){let t=e.selectedPlatformAssistantId??null;return l({queryKey:lt(t),queryFn:()=>De(t??void 0),enabled:e.enabled,retry:!1,refetchInterval:e=>ct(e.state.data),refetchOnWindowFocus:!1})}var dt=new Set([`healthy`,`ok`]);function ft(e){if(!e.ok)return`unreachable`;let t=e.data?.status;return t!==void 0&&!dt.has(t)?`unhealthy`:`healthy`}function pt(){let e=w.use.assistantState();return e.kind===`self_hosted`||e.kind===`active`&&e.isLocal?e.health??null:null}var T=e=>e===`authenticated`,mt=e=>e!==`initializing`,E=e=>e===`present`,ht=(e,t)=>e===`present`&&!t,gt=new Set([401,403,410]),_t=e=>!e.ok&&e.status!==void 0&&gt.has(e.status),vt=4e3,yt=6e4,bt=5e3;function xt(){let e=/\/assistant(?:\/|$)/.exec(window.location.pathname),t=e&&e.index>0?window.location.pathname.slice(0,e.index).replace(/\/+$/,``):``;return`${window.location.origin}${t}`}var D=new class{state={kind:`loading`};generation=0;initializingTimeout=null;ready=!1;inputs={sessionStatus:`initializing`,hasPlatformSession:!1,queryClient:null,selectedPlatformAssistantId:null};probeTimer=null;healthHeartbeatTimer=null;healthHeartbeatId=null;healthHeartbeatToken=0;reachabilityProbeInFlightIds=new Set;probeLoopAssistantId=null;errorRetryTimer=null;errorRetryAttempt=0;constructor(){We(()=>this.onUnreachable()),Oe(`app.online`,()=>this.onNetworkOnline()),y.subscribe((e,t)=>{e.selectedAssistantId!==t.selectedAssistantId&&(!_()||this.state.kind===`loading`||this.applyGatewayAuthShortCircuit())})}setInputs(e){this.inputs=e,this.ready=!0}resetForLogout(){y.getState().activeAssistantId!==null&&y.getState().setActiveAssistantId(null),this.setOperationalStatusAssistantId(null),this.cancelProbeTimer(),this.probeLoopAssistantId=null,this.reachabilityProbeInFlightIds.clear(),this.state.kind!==`loading`&&this.transition({kind:`loading`}),this.clearExpectingFirstMessage()}async respondToInputs(){if(this.ready){if(_()){this.applyGatewayAuthShortCircuit();return}if(!T(this.inputs.sessionStatus)){this.resetForLogout();return}this.inputs.hasPlatformSession&&m(null),this.inputs.isOrgReady&&await this.checkAssistant()}}async applyServerResult(e){this.ready&&(this.state.kind!==`initializing`&&this.state.kind!==`cleaning_up`||await this.applyServerStateUpdate(e))}async checkAssistant(e){if(!this.ready)return;if(_()){this.applyGatewayAuthShortCircuit();return}let t=this.generation;try{let n=e??this.inputs.selectedPlatformAssistantId??null,r=await this.inputs.queryClient.fetchQuery({queryKey:lt(n),queryFn:()=>De(n??void 0),staleTime:0});if(t!==this.generation||n&&!r.ok&&r.status===404&&(y.getState().setSelectedAssistant(null),r=await this.inputs.queryClient.fetchQuery({queryKey:at,queryFn:()=>De(),staleTime:0}),t!==this.generation))return;await this.applyServerStateUpdate(r)}catch(e){if(console.error(`Error checking assistant status:`,e),s(e,{context:`check_assistant`}),t!==this.generation||this.degradeOnTransportFailure())return;this.transition({kind:`error`,transient:!0,message:qe})}}degradeOnTransportFailure(){return this.state.kind===`active`?(this.triggerReachabilityProbe(),!0):this.state.kind===`initializing`||this.state.kind===`cleaning_up`}retryAssistant(){this.ready&&this.checkAssistant()}markExpectingFirstMessage(){w.getState().expectingFirstMessage||w.setState({expectingFirstMessage:!0})}clearExpectingFirstMessage(){w.getState().expectingFirstMessage&&w.setState({expectingFirstMessage:!1})}transition(e){let t=this.state.kind;this.state=e,w.setState({assistantState:e}),e.kind===`initializing`?t!==`initializing`&&this.armInitializingWatchdog():this.initializingTimeout&&=(clearTimeout(this.initializingTimeout),null),e.kind!==`initializing`&&e.kind!==`active`&&this.clearExpectingFirstMessage(),!(e.kind===`self_hosted`||e.kind===`active`&&e.isLocal)&&this.healthHeartbeatId!==null&&this.cancelHealthHeartbeat(),e.kind===`error`&&e.transient?this.armErrorRetry():this.clearErrorRetry(e.kind!==`error`)}clearErrorRetry(e){this.errorRetryTimer&&=(clearTimeout(this.errorRetryTimer),null),e&&(this.errorRetryAttempt=0)}armErrorRetry(){this.errorRetryTimer&&clearTimeout(this.errorRetryTimer);let e=nt(this.errorRetryAttempt);this.errorRetryAttempt+=1,this.errorRetryTimer=setTimeout(()=>{this.errorRetryTimer=null,this.checkAssistant()},e)}onNetworkOnline(){if(this.ready){if(this.state.kind===`error`&&this.state.transient){this.clearErrorRetry(!0),this.checkAssistant();return}this.state.kind===`active`&&this.state.reachable===!1&&this.checkAssistant()}}armInitializingWatchdog(){this.initializingTimeout&&clearTimeout(this.initializingTimeout),this.initializingTimeout=setTimeout(()=>{this.generation++,o(`Assistant stuck in initializing state`,{level:`warning`,extra:{timeoutMs:rt}}),this.transition(it())},rt)}projectActive(e){let t=e.data.maintenance_mode,n=e.data.is_local??!1;m(null),this.setOperationalStatusAssistantId(e.data.id);let r=y.getState();r.upsertFromApi(e.data),r.setActiveAssistantId(e.data.id),this.transition({kind:`active`,isLocal:n,maintenanceMode:{enabled:t?.enabled}}),n?this.startHealthHeartbeat(e.data.id):this.probeReachability(e.data.id)}projectSelfHosted(e){this.setOperationalStatusAssistantId(null),m({url:e.data.ingress_url,token:e.data.platform_actor_token});let t=y.getState();t.upsertFromApi(e.data),t.setActiveAssistantId(e.data.id),this.transition({kind:`self_hosted`}),this.startHealthHeartbeat(e.data.id)}applyGatewayAuthShortCircuit(){let e=window.location.origin,t=`self`,n=se();if(g())e=xt();else if(n){let r=p();e=`${window.location.origin}${n}`,t=r?.assistantId??t}m({url:e,token:me()}),this.setOperationalStatusAssistantId(null),y.getState().setActiveAssistantId(t),this.transition({kind:`active`,isLocal:!0}),this.startHealthHeartbeat(t)}async applyServerStateUpdate(e){let t=this.generation,n=Ye(e);if(!(n.kind===`error`&&n.transient&&this.degradeOnTransportFailure())&&(e.ok?this.setOperationalStatusAssistantId(e.data.id):this.setOperationalStatusAssistantId(null),n.kind!==`auto_hatch`)){if(n.kind===`active`&&e.ok){this.projectActive(e);return}if(n.kind===`self_hosted`&&e.ok){this.projectSelfHosted(e);return}t===this.generation&&n.kind!==`active`&&this.transition(n)}}async probeReachability(e){if(!this.reachabilityProbeInFlightIds.has(e)){this.reachabilityProbeInFlightIds.add(e);try{let t=this.generation,n=this.state.kind===`self_hosted`||this.state.kind===`active`&&this.state.isLocal,r=n?p()?.assistantId??e:e,i=!g()&&n?await ne(r).catch(()=>null):null,a=i?.ok&&i.state===`upgrading`?`upgrading`:`unreachable`;if(a!==`upgrading`)try{a=ft(await Ee(e))}catch{a=`unreachable`}if(a===`unreachable`&&!i&&!g()&&(i=await ne(r).catch(()=>null)),a===`unreachable`&&i?.ok)switch(i.state){case`healthy`:a=`healthy`;break;case`sleeping`:case`starting`:case`upgrading`:case`crashed`:a=i.state;break;case`unknown`:break}if(t!==this.generation||y.getState().activeAssistantId!==e)return;if(this.state.kind===`self_hosted`){this.state.health!==a&&this.transition({...this.state,health:a});return}if(this.state.kind!==`active`)return;let o=a===`healthy`||a===`unhealthy`;if(this.state.reachable===o&&this.state.health===a)return;this.transition({...this.state,reachable:o,health:a})}finally{this.reachabilityProbeInFlightIds.delete(e)}}}cancelProbeTimer(){this.probeTimer&&=(clearTimeout(this.probeTimer),null)}startProbeLoop(e){if(this.probeLoopAssistantId===e)return;this.cancelProbeTimer(),this.probeLoopAssistantId=e;let t=Date.now(),n=()=>{this.probeLoopAssistantId=null},r=async()=>{if(this.state.kind!==`active`||this.state.reachable===!0){n();return}if(Date.now()-t>yt){n();return}await this.probeReachability(e);let i=this.state;if(i.kind!==`active`||i.reachable===!0){n();return}if(Date.now()-t>yt){n();return}this.probeTimer=setTimeout(()=>void r(),vt)};this.probeTimer=setTimeout(()=>void r(),vt)}startHealthHeartbeat(e){if(this.healthHeartbeatId===e)return;this.cancelHealthHeartbeat(),this.healthHeartbeatId=e;let t=this.healthHeartbeatToken,n=async()=>{t===this.healthHeartbeatToken&&(await this.probeReachability(e),t===this.healthHeartbeatToken&&(this.healthHeartbeatTimer=setTimeout(()=>void n(),bt)))};n()}cancelHealthHeartbeat(){this.healthHeartbeatToken++,this.healthHeartbeatId=null,this.healthHeartbeatTimer&&=(clearTimeout(this.healthHeartbeatTimer),null)}onUnreachable(){this.triggerReachabilityProbe()}triggerReachabilityProbe(){if(this.state.kind!==`active`)return;let e=y.getState().activeAssistantId;if(e){if(this.transition({...this.state,reachable:!1}),this.healthHeartbeatId===e){this.probeReachability(e);return}this.startProbeLoop(e)}}setLocalAssistantUpgradeInProgress(e,t){if(y.getState().activeAssistantId===e){if(!t){this.probeReachability(e);return}if(this.state.kind===`self_hosted`){this.transition({...this.state,health:`upgrading`});return}this.state.kind===`active`&&this.state.isLocal&&this.transition({...this.state,reachable:!1,health:`upgrading`})}}__resetForTesting(){this.initializingTimeout&&=(clearTimeout(this.initializingTimeout),null),this.cancelProbeTimer(),this.cancelHealthHeartbeat(),this.probeLoopAssistantId=null,this.reachabilityProbeInFlightIds.clear(),this.clearErrorRetry(!0),this.state={kind:`loading`},this.generation=0,this.ready=!1,w.setState({expectingFirstMessage:!1,operationalStatusAssistantId:null}),this.inputs={sessionStatus:`initializing`,hasPlatformSession:!1,queryClient:null},w.setState({assistantState:this.state}),y.setState({activeAssistantId:null})}setOperationalStatusAssistantId(e){w.getState().operationalStatusAssistantId!==e&&w.setState({operationalStatusAssistantId:e})}};function St(e){let{assistants:t,selectedAssistantId:n,assistantsHydrated:r}=y.getState(),i=be(t,e),a=e=>i.some(t=>t.id===e);if(n!==null){let e=t.some(e=>e.id===n);if(a(n)||!e&&!r)return n}let o=ue()?.assistantId??null;return o!==null&&a(o)?o:i[0]?.id??null}async function O(e){y.getState().setSelectedAssistant(e),e!==null&&await ye(e)}var Ct=`vellum:auth:userSnapshot`;function wt(e){if(e)try{localStorage.setItem(Ct,JSON.stringify(e))}catch{}}function Tt(){try{let e=localStorage.getItem(Ct);if(!e)return null;let t=JSON.parse(e);return!t||typeof t!=`object`?null:{kind:`platform`,id:typeof t.id==`string`?t.id:null,username:typeof t.username==`string`?t.username:null,email:typeof t.email==`string`?t.email:null,isStaff:t.isStaff===!0,firstName:typeof t.firstName==`string`?t.firstName:``,lastName:typeof t.lastName==`string`?t.lastName:``}}catch{return null}}function k(){try{localStorage.removeItem(Ct)}catch{}}var Et=`vellum_active_organization_id`;function Dt(){return globalThis.sessionStorage===void 0?null:globalThis.sessionStorage}function Ot(){let e=Dt();if(!e)return null;try{return e.getItem(Et)}catch{return null}}function kt(e){let t=Dt();if(t)try{t.setItem(Et,e)}catch{}}function At(){let e=Dt();if(e)try{e.removeItem(Et)}catch{}}function jt(e,t){return e.length===0?null:t&&e.some(e=>e.id===t)?t:e[0].id}var A=d(u()((e,t)=>({organizations:[],currentOrganizationId:null,status:`idle`,error:null,fetchOrganizations:async()=>{e({status:`loading`,error:null});try{let n=(await Te()).data?.results??[],r=jt(n,t().currentOrganizationId??Ot());r&&kt(r),e({organizations:n,currentOrganizationId:r,status:r?`ready`:`error`,error:r?null:`No organization available for this user.`})}catch(t){e({status:`error`,error:t instanceof Error&&t.message?t.message:`Failed to load organizations.`})}},setCurrentOrganizationId:n=>{let{organizations:r}=t();r.some(e=>e.id===n)&&(kt(n),e({currentOrganizationId:n,status:`ready`}))},clearOrganization:()=>{At(),e({organizations:[],currentOrganizationId:null,status:`idle`,error:null})}})));function j(){return A.getState().currentOrganizationId??Ot()}function Mt(){A.getState().clearOrganization()}function Nt(){let e=0,t=A.subscribe(t=>{(t.status===`ready`||t.status===`error`)&&(e=Date.now())}),n=$.subscribe((e,t)=>{let n=E(e.platformSession),r=E(t.platformSession);n&&(!r||e.user?.id!==t.user?.id)&&A.getState().fetchOrganizations()}),r=()=>{if(!E($.getState().platformSession))return;let{status:t}=A.getState();(t===`ready`||t===`error`)&&Date.now()-e>1e4&&A.getState().fetchOrganizations()},i=Oe(`app.resume`,()=>{r()});return()=>{t(),n(),i()}}function Pt(e,t={}){let n={...e??{}},r=t.includeSelfHostedActorToken===!1?null:re();if(r)return n.Authorization=`Bearer ${r}`,n;let i=t.organizationId??j();i&&(n[`Vellum-Organization-Id`]=i);let a=Ae();return a&&(n[`X-Session-Token`]=a),n}async function Ft(e,t={}){let n=Pt(e,t);if(n.Authorization||v())return n;await Le();let r=ze();return r&&(n[`X-CSRFToken`]=r),n}var It;function Lt(){return v()?(It===void 0&&(It=window.__VELLUM_CONFIG__?.deviceId??null),It):null}var Rt=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,zt=`X-Vellum-Electron-Renderer-Origin`,Bt=new Map;async function Vt(e,t={}){if(!h()||g()||le()||rn(e))return e;let n=Ut(e);if(!n)return e;let r=Bt.get(n.assistantId);if(r)return r;let i=Wt(n,{allowGatewayRepair:t.allowGatewayRepair??!0});Bt.set(n.assistantId,i);try{return await i}catch(e){throw Bt.delete(n.assistantId),e}}function Ht(e,t={}){if(!h()||g()||le())return;let n=e;if(!n){let e=p();if(!e||!oe(e))return;n=e.assistantId}Vt(n,{allowGatewayRepair:t.allowGatewayRepair??!1}).catch(t.onError??(e=>{console.warn(`local assistant platform bootstrap failed`,e)}))}function Ut(e){let t=ue();if(t?.assistantId===e&&oe(t))return t;let n=p();return n?.assistantId===e&&oe(n)?n:null}async function Wt(e,t){let n=await Kt(e,t),r=await qt(n,e.assistantId),i=r?.assistantId&&rn(r.assistantId)?r.assistantId:null;if(i&&r?.hasAssistantApiKey!==!1){let t=r?.organizationId??e.platformOrganizationId??null;return t&&await Gt(e,{platformAssistantId:i,platformBaseUrl:r?.baseUrl??he(),organizationId:t}),i}let a=await Jt(r?.organizationId??null,e);if(!a)throw Error(`Sign in to Vellum and select an organization to register this local assistant.`);let o=r?.clientInstallationId??Lt()??null;if(!o)throw Error(`Unable to identify this local assistant host for platform registration.`);let s=await Yt(e,a,o),c=M(s.assistant?.id,s.assistant_id,s.id),l=i??c;if(!l||!rn(l))throw Error(`The platform registration response did not include an assistant UUID.`);let u=N(s.assistant_api_key);!u&&r?.hasAssistantApiKey!==!0&&(u=await Xt(e,a,o));let d=r?.baseUrl??he();return await Qt(n,{assistantApiKey:u,platformAssistantId:l,platformBaseUrl:d,organizationId:a,webhookSecret:N(s.webhook_secret)}),await Gt(e,{platformAssistantId:l,platformBaseUrl:d,organizationId:a}),l}async function Gt(e,t){await te({...e,platformAssistantId:t.platformAssistantId,platformBaseUrl:t.platformBaseUrl,platformOrganizationId:t.organizationId}).catch(e=>{console.warn(`local assistant platform lockfile update failed`,e)})}async function Kt(e,t){let n=ee(),r=re();if(t.allowGatewayRepair&&(!n||!r)&&(await _e(e),n=ee(),r=re()),!n||!r){let t=se(e);t&&(n=`${window.location.origin}${t}`)}if(!n||!r)throw Error(`Unable to reach the local assistant for platform identity setup.`);return{gatewayUrl:n,actorToken:r}}async function qt(e,t){let n=nn(e.gatewayUrl,`/v1/assistants/${encodeURIComponent(t)}/platform/status`),r=await fetch(n,{headers:{Accept:`application/json`,Authorization:`Bearer ${e.actorToken}`},credentials:`omit`}).catch(()=>null);if(!r?.ok)return null;let i=await r.json().catch(()=>null);return{assistantId:M(i?.assistantId,i?.assistant_id),baseUrl:M(i?.baseUrl,i?.base_url),organizationId:M(i?.organizationId,i?.organization_id),hasAssistantApiKey:an(i?.hasAssistantApiKey,i?.has_assistant_api_key),clientInstallationId:M(i?.clientInstallationId,i?.client_installation_id)}}async function Jt(e,t){return(e??t.platformOrganizationId??j()??t.organizationId??null)||(await A.getState().fetchOrganizations().catch(()=>{}),j()??t.platformOrganizationId??t.organizationId??null)}async function Yt(e,t,n){return await Zt(`/v1/assistants/self-hosted-local/ensure-registration/`,e,t,n)}async function Xt(e,t,n){return N((await Zt(`/v1/assistants/self-hosted-local/reprovision-api-key/`,e,t,n)).provisioning?.assistant_api_key)}async function Zt(e,t,n,r){let i=new Headers({...await Ft({Accept:`application/json`,"Content-Type":`application/json`},{includeSelfHostedActorToken:!1,organizationId:n})}),a=Ae();if(v()){if(!a)throw Error(`Sign in to Vellum to register this local assistant.`);i.set(zt,`${window.location.protocol}//${window.location.host}`)}let o=await fetch(new URL(e,window.location.origin).toString(),{method:`POST`,headers:i,credentials:v()?`omit`:`same-origin`,body:JSON.stringify({client_installation_id:r,runtime_assistant_id:t.assistantId,client_platform:v()?`macos`:`web`})}).catch(e=>{throw Error(`Unable to reach the platform registration endpoint: ${tn(e)}`)});if(!o.ok){let e=await en(o);throw Error(`Unable to register the local assistant with the platform (HTTP ${o.status})${e?`: ${e}`:`.`}`)}try{return await o.json()}catch(e){throw Error(`Unable to read the platform registration response: ${tn(e)}`)}}async function Qt(e,t){let n=[[`vellum:assistant_api_key`,t.assistantApiKey],[`vellum:platform_assistant_id`,t.platformAssistantId],[`vellum:platform_base_url`,t.platformBaseUrl],[`vellum:platform_organization_id`,t.organizationId],[`vellum:webhook_secret`,t.webhookSecret]];await Promise.all(n.filter(e=>!!e[1]).map(([t,n])=>$t(e,t,n)))}async function $t(e,t,n){let r=await fetch(nn(e.gatewayUrl,`/v1/secrets`),{method:`POST`,headers:{Accept:`application/json`,Authorization:`Bearer ${e.actorToken}`,"Content-Type":`application/json`},credentials:`omit`,body:JSON.stringify({type:`credential`,name:t,value:n})}).catch(e=>{throw Error(`Unable to reach the local assistant while storing ${t}: ${tn(e)}`)});if(!r.ok){let e=await en(r);throw Error(`Unable to store ${t} on the local assistant (HTTP ${r.status})${e?`: ${e}`:`.`}`)}return!0}async function en(e){if((e.headers.get(`content-type`)??``).includes(`application/json`)){let t=await e.json().catch(()=>null),n=t&&typeof t==`object`&&`detail`in t?N(t.detail):null,r=t&&typeof t==`object`&&`code`in t?N(t.code):null;return n&&r?`${n} (${r})`:n||r||JSON.stringify(t)}return(await e.text().catch(()=>``)).slice(0,300)}function tn(e){return e instanceof Error?e.message:String(e)}function nn(e,t){let n=new URL(e);return n.pathname=`${n.pathname.replace(/\/$/,``)}${t}`,n.toString()}function rn(e){return Rt.test(e)}function M(...e){for(let t of e){let e=N(t);if(e)return e}return null}function N(e){return typeof e==`string`&&e.trim()?e.trim():null}function an(...e){for(let t of e)if(typeof t==`boolean`)return t;return null}var on=`.dev`;function sn(e){let t=JSON.parse(e);return typeof t.token==`string`&&typeof t.bundleId==`string`&&typeof t.assistantId==`string`?{token:t.token,bundleId:t.bundleId,assistantId:t.assistantId}:null}var cn=He({key:`vellum:push_registration`,scope:`user`,parse:sn,serialize:JSON.stringify,fallback:null}),ln=!1,un=null,P=null,F=new Set;function dn(e){F.add(e),e.finally(()=>{F.delete(e)})}function fn(){return Ie()&&Ve.getPlatform()===`ios`}function pn(e){return e.endsWith(on)?`development`:`production`}async function mn(e,t){try{let{App:n}=await c(async()=>{let{App:e}=await import(`./esm-CNMouzMT.js`);return{App:e}},__vite__mapDeps([0,1,2])),{id:r}=await n.getInfo(),i=await we({path:{assistant_id:t},body:{token:e,platform:`ios`,bundle_id:r,apns_environment:pn(r)},throwOnError:!1});if(i.error){s(i.error,{context:`push_registration_upsert`,level:`warning`,bestEffort:!0});return}P={token:e,bundleId:r,assistantId:t},cn.save(P)}catch(e){s(e,{context:`push_registration_upsert`,level:`warning`,bestEffort:!0})}}async function hn(){if(!ln){ln=!0;try{let{PushNotifications:e}=await c(async()=>{let{PushNotifications:e}=await import(`./esm-DlsDcixX.js`);return{PushNotifications:e}},__vite__mapDeps([3,2]));await e.addListener(`registration`,e=>{let t=un;t&&dn(mn(e.value,t))}),await e.addListener(`registrationError`,e=>{s(e,{context:`push_registration_apns`,level:`warning`})})}catch(e){ln=!1,s(e,{context:`push_registration_listeners`,level:`warning`})}}}async function gn(e){if(fn()){un=e,P&&P.assistantId!==e&&dn(mn(P.token,e));try{let{PushNotifications:e}=await c(async()=>{let{PushNotifications:e}=await import(`./esm-DlsDcixX.js`);return{PushNotifications:e}},__vite__mapDeps([3,2]));if(await hn(),(await e.requestPermissions()).receive!==`granted`)return;await e.register()}catch(e){s(e,{context:`push_registration_register`,level:`warning`})}}}async function _n(){for(un=null;F.size>0;)await Promise.allSettled([...F]);let e=P??cn.load();if(P=null,cn.remove(),!(!e||!fn()))try{let t=await Ce({path:{assistant_id:e.assistantId,token:e.token},query:{bundle_id:e.bundleId},throwOnError:!1});t.error&&s(t.error,{context:`push_registration_delete`,level:`warning`,bestEffort:!0,extra:{assistantId:e.assistantId,bundleId:e.bundleId}})}catch(e){s(e,{context:`push_registration_delete`,level:`warning`,bestEffort:!0})}}function vn(e){return e}function yn(e,t,n){if(!e||typeof e!=`object`||Array.isArray(e))return{code:null,message:n};let r=vn(e),i=r[t];if(Array.isArray(i)&&i.length>0){let e=i[0];if(typeof e==`string`)return{code:null,message:e};if(e&&typeof e==`object`&&!Array.isArray(e)){let t=vn(e),r=t.code,i=t.string??t.message;return{code:typeof r==`string`?r:null,message:typeof i==`string`?i:n}}}return typeof r.detail==`string`?{code:null,message:r.detail}:{code:null,message:n}}var bn={too_short:`Must be at least 3 characters.`,too_long:`Must be at most 30 characters.`,invalid_chars:`Use only lowercase letters, digits, hyphens, and underscores.`,leading_underscore:`Cannot start with an underscore.`,trailing_underscore:`Cannot end with an underscore.`,leading_hyphen:`Cannot start with a hyphen.`,trailing_hyphen:`Cannot end with a hyphen.`,all_digits:`Cannot be all digits.`,reserved:`This handle is reserved.`,taken:`This handle is already taken.`};async function xn(){let{data:e,error:t,response:n}=await x.get({url:`/v1/user/me/`,throwOnError:!1});if(xe(n,t,`Failed to load profile.`),!n.ok||!e)throw new Se(n.status,b(t,n,`Failed to load profile.`));return e}var Sn=`Please choose a different handle.`;async function Cn(e){let{data:t,error:n,response:r}=await x.patch({url:`/v1/user/me/`,body:e,throwOnError:!1});if(!r)return{kind:`error`,message:b(n,void 0,`Failed to save profile.`)??`Failed to save profile.`};if(r.ok&&t)return{kind:`ok`,data:t};if(r.status===409){let{message:e}=yn(n,`username`,bn.taken);return{kind:`taken`,message:e}}if(r.status===400){let{code:e,message:t}=yn(n,`username`,Sn);return{kind:`invalid`,code:e,message:t}}return{kind:`error`,message:b(n,r,`Failed to save profile.`)}}async function wn(){let{data:e,error:t,response:n}=await x.get({url:`/v1/user/consent/`,throwOnError:!1});if(xe(n,t,`Failed to load consent.`),!n.ok||!e)throw new Se(n.status,b(t,n,`Failed to load consent.`));return e}async function Tn(e){await x.put({url:`/v1/user/consent/`,body:e,throwOnError:!0})}async function En(e,t){let{data:n,error:r,response:i}=await x.get({url:`/v1/user/username-available/`,query:{username:e},signal:t,throwOnError:!1});if(xe(i,r,`Failed to check handle availability.`),!i.ok||!n)throw new Se(i.status,i.status===429?`Too many checks — try again in a moment.`:b(r,i,`Failed to check handle availability.`));return n}function I(e){i(`diagnosticsReporting`,e)}function Dn(e,t){let n=On(e);n!==null&&t(n);let{shareDiagnostics:r,diagnosticsVersionCurrent:i,hasServerRecord:a}=e;return I(a&&r===!0&&i),n}function On(e){let{shareDiagnostics:t,hasServerRecord:n}=e;return t===!1?!1:n&&t===!0?!0:null}var kn=a(`shareAnalytics`),An=a(`shareDiagnostics`),jn=u()(t=>({shareAnalytics:r(kn,!0),shareDiagnostics:r(An,!0),tosAccepted:!1,privacyConsent:!1,analyticsConsentCurrent:!1,diagnosticsConsentCurrent:!1,setShareAnalytics:n=>{t({shareAnalytics:n}),e(kn,n)},setShareDiagnostics:n=>{t({shareDiagnostics:n}),e(An,n)},setTosAccepted:e=>{t({tosAccepted:e})},setPrivacyConsent:e=>{t({privacyConsent:e})},setAnalyticsConsentCurrent:e=>{t({analyticsConsentCurrent:e})},setDiagnosticsConsentCurrent:e=>{t({diagnosticsConsentCurrent:e})}})),L=d(jn),Mn=new Map([[kn,`shareAnalytics`],[An,`shareDiagnostics`]]),Nn={shareAnalytics:!0,shareDiagnostics:!0};for(let[e,n]of Mn)t(e,()=>{let t=r(e,Nn[n]??!1);jn.setState({[n]:t})});var R=`2026-06-08`,z=`2026-06-22`,B=`2026-06-18`,V=`2026-06-18`,Pn=`2026-06-08`,Fn={tos:R,privacy:z,share_analytics:B,share_diagnostics:V};function H(e,t){return`device:consent:${e}:v${Fn[e]}:${t}`}function In(e){return`device:consent:ai:v${Pn}:${e}`}function Ln(e){if(typeof window>`u`||!e)return{tos:!1,privacy:!1,analyticsCurrent:!1,diagnosticsCurrent:!1};try{let t=r(H(`share_analytics`,e),!1),i=r(H(`share_diagnostics`,e),!1),a=r(H(`tos`,e),!1),o=r(H(`privacy`,e),!1);if(r(In(e),!1)&&n(In(e)),a||o)return{tos:a,privacy:o,analyticsCurrent:t,diagnosticsCurrent:i};let s=r(`vellum:onboarding:tosAccepted`,!1),c=r(`vellum:onboarding:aiDataConsent`,!1);return s||c?(Rn(e,s,!1),{tos:s,privacy:!1,analyticsCurrent:t,diagnosticsCurrent:i}):{tos:!1,privacy:!1,analyticsCurrent:t,diagnosticsCurrent:i}}catch{return{tos:!1,privacy:!1,analyticsCurrent:!1,diagnosticsCurrent:!1}}}function Rn(t,n,r){if(!(typeof window>`u`||!t))try{e(H(`tos`,t),n),e(H(`privacy`,t),r)}catch{}}function U(t,n){if(!(typeof window>`u`||!t))try{n.analyticsCurrent!==void 0&&e(H(`share_analytics`,t),n.analyticsCurrent),n.diagnosticsCurrent!==void 0&&e(H(`share_diagnostics`,t),n.diagnosticsCurrent)}catch{}}function zn(e){if(n(`vellum:onboarding:tosAccepted`),n(`vellum:onboarding:aiDataConsent`),n(`vellum:onboarding:selectedVersion`),!(typeof window>`u`||!e))try{n(H(`tos`,e)),n(H(`privacy`,e)),n(In(e)),n(H(`share_analytics`,e)),n(H(`share_diagnostics`,e))}catch{}}function W(e,t){return e>=t}function Bn(e){if(!e)return{tos:!1,privacy:!1,shareAnalytics:null,shareDiagnostics:null,analyticsCurrent:!1,diagnosticsCurrent:!1,hasServerRecord:!1};let t=!!e.tos_accepted_version||!!e.privacy_policy_accepted_version||!!e.ai_data_sharing_accepted_version||!!e.share_analytics_accepted_version||!!e.share_diagnostics_accepted_version||e.share_analytics===!1||e.share_diagnostics===!1;return{tos:W(e.tos_accepted_version,R),privacy:W(e.privacy_policy_accepted_version,`2026-06-22`)&&W(e.ai_data_sharing_accepted_version,`2026-06-22`),shareAnalytics:e.share_analytics,shareDiagnostics:e.share_diagnostics,analyticsCurrent:W(e.share_analytics_accepted_version,B),diagnosticsCurrent:W(e.share_diagnostics_accepted_version,V),hasServerRecord:t}}function Vn(e){let t=L.getState();t.setTosAccepted(e.tos),t.setPrivacyConsent(e.privacy),t.setShareAnalytics(e.shareAnalytics),t.setShareDiagnostics(e.shareDiagnostics),t.setAnalyticsConsentCurrent(!0),t.setDiagnosticsConsentCurrent(!0),I(e.shareDiagnostics),Rn(e.userId,e.tos,e.privacy),U(e.userId,{analyticsCurrent:!0,diagnosticsCurrent:!0}),e.hasPlatformSession&&Tn({tos_accepted_version:e.tos?R:``,privacy_policy_accepted_version:e.privacy?z:``,ai_data_sharing_accepted_version:e.privacy?z:``,share_analytics:e.shareAnalytics,share_diagnostics:e.shareDiagnostics,share_analytics_accepted_version:B,share_diagnostics_accepted_version:V}).catch(()=>{})}function Hn(e,t,n){let r=L.getState(),{userId:a,hasPlatformSession:o}=n;e===`share_analytics`?(r.setShareAnalytics(t),i(`shareAnalytics`,t),o&&(r.setAnalyticsConsentCurrent(!0),U(a,{analyticsCurrent:!0}))):(r.setShareDiagnostics(t),i(`shareDiagnostics`,t),o?(r.setDiagnosticsConsentCurrent(!0),I(t),U(a,{diagnosticsCurrent:!0})):I(!1)),o&&Tn({[e]:t,[`${e}_accepted_version`]:Fn[e]}).catch(()=>{})}var Un=`vellum:`,Wn=[`onboarding.`,`voice:`,`gw:`,`ff:client:`,`local:`,`integrations.`,`vellumDebug.`,`vellum_`],Gn=new Set([`vellum_theme`,`vellum_share_analytics`,`vellum_share_diagnostics`,`vellum_biometric_enabled`,`vellum_llm_log_retention`,`vellum_timezone`,`vellum_media_embeds_enabled`,`vellum_media_embed_domains`,`onboarding.lastUserId`]);function Kn(e){return e.startsWith(Un)?!0:Gn.has(e)?!1:Wn.some(t=>e.startsWith(t))}function G(){try{sessionStorage.clear()}catch{}try{let e=[];for(let t=0;t<localStorage.length;t++){let n=localStorage.key(t);n&&Kn(n)&&e.push(n)}e.forEach(e=>localStorage.removeItem(e))}catch{}}function qn(e){return e?.id??e?.email??e?.username??null}function K(e){return e?{kind:`platform`,id:qn(e),username:e.username??null,email:e.email??null,isStaff:e.is_staff??!1,firstName:e.first_name??``,lastName:e.last_name??``}:null}var Jn=null,q=null,Yn=!1,Xn={kind:`local`,id:`gateway-local`,username:`local`,email:null,isStaff:!1,firstName:`Local`,lastName:`User`},J=e=>(wt(e),{sessionStatus:`authenticated`,user:e,platformSession:`present`,platformSessionRestoredOffline:!1}),Y=()=>({sessionStatus:`authenticated`,user:Xn}),X=()=>({sessionStatus:`unauthenticated`,user:null,platformSession:`absent`}),Z=e=>e===null||!e.ok&&!_t(e);async function Zn(e){if(!Ae())return!1;let t=Tt();return t?(await Q(t.id),e({...J(t),platformSessionRestoredOffline:!0}),!0):!1}function Qn(e){(!e||Jn&&Jn!==e)&&Mt(),Jn=e}function $n(){q?.postMessage(`auth-changed`)}async function Q(e){if(e)try{let t=Bn(await wn()),n=L.getState();t.hasServerRecord&&t.shareAnalytics!==null&&n.setShareAnalytics(t.shareAnalytics),Dn({shareDiagnostics:t.shareDiagnostics,diagnosticsVersionCurrent:t.diagnosticsCurrent,hasServerRecord:t.hasServerRecord},n.setShareDiagnostics);let r=t.tos,i=t.privacy,a=t.analyticsCurrent,o=t.diagnosticsCurrent;if(!t.hasServerRecord){let t=Ln(e);a=t.analyticsCurrent,o=t.diagnosticsCurrent,I(n.shareDiagnostics&&o),t.tos&&t.privacy&&(r=!0,i=!0,Tn({tos_accepted_version:R,privacy_policy_accepted_version:z,ai_data_sharing_accepted_version:z,...a?{share_analytics_accepted_version:B,share_analytics:n.shareAnalytics}:{},...o?{share_diagnostics_accepted_version:V,share_diagnostics:n.shareDiagnostics}:{}}).catch(()=>{}))}n.setTosAccepted(r),n.setPrivacyConsent(i),n.setAnalyticsConsentCurrent(a),n.setDiagnosticsConsentCurrent(o),Rn(e,r,i),U(e,{analyticsCurrent:a,diagnosticsCurrent:o}),Qn(e);return}catch{}let t=Ln(e),n=L.getState();n.setTosAccepted(t.tos),n.setPrivacyConsent(t.privacy),n.setAnalyticsConsentCurrent(t.analyticsCurrent),n.setDiagnosticsConsentCurrent(t.diagnosticsCurrent),Qn(e)}var er=0;Promise.resolve();function tr(e,t={}){let n=++er,r=()=>n!==er;C().then(async n=>{if(!r())if(n.ok&&n.data.user){let i=K(n.data.user),a=t.setUserOnSuccess?{user:i}:{};if(t.setUserOnSuccess&&wt(i),h()){let e=!1,t=()=>!e&&!r();try{await Promise.race([(async()=>{await A.getState().fetchOrganizations();let e=await S();t()&&e.ok&&await ie(e.data,A.getState().currentOrganizationId??void 0,t)})(),new Promise((t,n)=>setTimeout(()=>{e=!0,n(Error(`sync timeout`))},3e3))])}catch{}}if(r())return;e({platformSession:`present`,platformSessionRestoredOffline:!1,...a}),Ht()}else t.clearOnFailure&&e({platformSession:`absent`})}).catch(()=>{r()||t.clearOnFailure&&e({platformSession:`absent`})}).finally(()=>{r()||e(e=>e.platformSession===`unknown`?{platformSession:`absent`}:{})})}function nr(e,t){!h()||f()||fe().length>0?tr(e,t):e({platformSession:`absent`})}async function rr(){try{if(await Be())return!0}catch{}return me()!==null}var $=d(u()((e,t)=>({sessionStatus:`initializing`,user:null,platformSession:`unknown`,platformSessionRestoredOffline:!1,initSession:async()=>{if(g()){await rr()?e({...Y(),platformSession:`absent`}):e(X());return}if(f()){try{await ae(),e(Y())}catch{e({sessionStatus:`unauthenticated`,user:null})}nr(e);return}if(h()&&!f()){if(fe().length>0){let t=null;try{if(t=await C(),t.ok&&t.data.user){let n=K(t.data.user);await Q(n?.id??null);try{await A.getState().fetchOrganizations();let e=await S();e.ok&&await ie(e.data,A.getState().currentOrganizationId??void 0)}catch{}e(J(n));return}}catch{}if(Z(t)){if(await Zn(e))return}else k();e(X());return}e(Y()),Yn?e({platformSession:`absent`}):tr(e,{setUserOnSuccess:!0}),Yn=!1;return}let t=null;try{if(t=await C(),t.ok&&t.data.user){let n=K(t.data.user);await Q(n?.id??null);try{await A.getState().fetchOrganizations();let e=await S();e.ok&&y.getState().setFromApi(e.data)}catch{}e(J(n));return}}catch(e){console.error(`auth.initSession failed`,e)}if(!(Z(t)&&await Zn(e))){if(Ie()&&Ne())try{let t=await ke();if(t){Pe(t),await Me();let n=await C();if(n.ok&&n.data.user){let t=K(n.data.user);await Q(t?.id??null);try{await A.getState().fetchOrganizations();let e=await S();e.ok&&y.getState().setFromApi(e.data)}catch{}e(J(t));return}}}catch(e){console.warn(`auth.initSession biometric recovery failed`,e)}await Q(null),Z(t)||k(),e(X())}},connectLocalAssistant:async n=>{await _e(pe().find(e=>e.assistantId===n)),await O(n),e(Y()),await D.checkAssistant(),ht(t().platformSession,t().platformSessionRestoredOffline)&&Ht(n),nr(e)},connectPlatformAssistant:async t=>{await O(t);let n=await C();if(!n.ok||!n.data.user)throw Error(`Platform authentication required`);let r=K(n.data.user);await Q(r?.id??null),await A.getState().fetchOrganizations(),e(J(r))},refreshSession:async()=>{if(g())return await rr()?(e({...Y(),platformSession:`absent`}),!0):(e(X()),!1);if(_()){try{await de(ce()),e({sessionStatus:`authenticated`})}catch{return e(X()),!1}return nr(e,{clearOnFailure:!0}),!0}let n=null;try{if(n=await C(),n.ok&&n.data.user){let t=K(n.data.user);if(await Q(t?.id??null),h())try{await A.getState().fetchOrganizations();let e=await S();e.ok&&await ie(e.data,A.getState().currentOrganizationId??void 0)}catch{}return e(J(t)),!0}}catch(e){console.warn(`auth.refreshSession failed`,e)}if(Z(n))return T(t().sessionStatus);if(f()){let n=T(t().sessionStatus);return n&&(k(),e({...Y(),platformSession:`absent`})),n}return k(),await Q(null),e(X()),!1},logout:async()=>{if(_()){D.resetForLogout(),await O(null),ge(),Mt(),G(),e(X()),$n();return}Yn=!0,await _n();try{await Re()}finally{v()&&await window.vellum?.auth?.signOut?.(),h()&&!v()&&await ve(),Fe(),Mt(),G(),D.resetForLogout(),await O(null),e(X()),$n()}}}))),ir=()=>T($.use.sessionStatus()),ar=()=>!mt($.use.sessionStatus()),or=()=>E($.use.platformSession()),sr=()=>ht($.use.platformSession(),$.use.platformSessionRestoredOffline());function cr(){let{refreshSession:e}=$.getState(),t=[],n=()=>e().catch(e=>console.warn(`auth.refreshSession failed`,e)),r=Oe(`app.resume`,()=>{je()||n()});return t.push(r),typeof BroadcastChannel<`u`&&(q=new BroadcastChannel(`auth`),q.onmessage=()=>{G(),window.location.reload()},t.push(()=>{q?.close(),q=null})),()=>t.forEach(e=>e())}export{D as A,Xe as B,Vt as C,A as D,Nt as E,pt as F,Ge as H,ut as I,Qe as L,T as M,ht as N,St as O,mt as P,$e as R,Ht as S,j as T,w as U,Ke as V,wn as _,ir as a,yn as b,R as c,Vn as d,Hn as f,En as g,bn as h,or as i,E as j,O as k,zn as l,Dn as m,$ as n,ar as o,L as p,sr as r,z as s,cr as t,Bn as u,xn as v,Lt as w,gn as x,Cn as y,Ye as z};
@@ -1 +0,0 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./capture-error-8raDoxFL.js";import{t as n}from"./react-DJZBPgpf.js";import{t as r}from"./jsx-runtime-CVSDxk6A.js";import{t as i}from"./typography-BscuIPxA.js";import"./src-CUycEQpW.js";import{t as a}from"./detail-shell-C--69S4R.js";import{Bt as o,Ht as s,Vt as c,ct as l,lt as u,zt as d}from"./index-CWzNQ8A_.js";import{t as f}from"./status-badge-pill-CXey_r2B.js";import{t as p}from"./detail-panel-stop-button-DXQQXCtp.js";import{CodeBlock as m,SectionLabel as h}from"./tool-detail-panel-B3u6-K3R.js";var g=e(n(),1),_=r();function v({status:e}){return(0,_.jsx)(f,{color:d(e),label:o(e)})}function y({entry:e,onClose:n}){let r=s(e.status),o=!r,d=o&&e.output!==void 0&&e.output!==``,f=o&&e.exitCode!=null,[y,b]=(0,g.useState)(!1),x=(0,g.useCallback)(()=>{b(!0),l(e.id).catch(e=>{b(!1),t(e,{context:`BackgroundTaskDetailPanel.stop`})})},[e.id]);return(0,_.jsxs)(a,{Glyph:u(e.toolName),title:c(e.status),headerTrailing:(0,_.jsx)(v,{status:e.status}),headerActions:r?(0,_.jsx)(p,{onStop:x,ariaLabel:`Stop command`,disabled:y}):void 0,closeVariant:`outlined`,closeLabel:`Close task detail`,onClose:n,children:[(0,_.jsxs)(`div`,{children:[(0,_.jsx)(h,{children:`Command`}),(0,_.jsx)(m,{text:e.command})]}),d&&(0,_.jsxs)(`div`,{className:`mt-5`,children:[(0,_.jsx)(h,{children:`Output`}),(0,_.jsx)(m,{text:e.output})]}),f&&(0,_.jsxs)(i,{variant:`body-small-default`,as:`p`,className:`mt-2 text-[var(--content-tertiary)]`,children:[`Exit code: `,e.exitCode]})]})}export{y as BackgroundTaskDetailPanel};
@@ -1 +0,0 @@
1
- import{t as e}from"./createLucideIcon-BlMXrA59.js";var t=e(`ban`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M4.929 4.929 19.07 19.071`,key:`196cmz`}]]);export{t};