@vellumai/web 0.10.3-staging.2 → 0.10.4-dev.202607010028.1a4efcc

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 (282) hide show
  1. package/dist/assets/{AnimatePresence-CgXwEO42.js → AnimatePresence-v8rrAm7n.js} +2 -2
  2. package/dist/assets/{BundleConfirmPage-DpfvIcwl.js → BundleConfirmPage-BEQyQVeN.js} +1 -1
  3. package/dist/assets/{about-page-CuSnWJFo.js → about-page-Ck4iLq7E.js} +1 -1
  4. package/dist/assets/account-page-BYTIe1XI.js +1 -0
  5. package/dist/assets/{account-shell-b6GjlQ0u.js → account-shell-YW3hfGZg.js} +1 -1
  6. package/dist/assets/acp-run-detail-panel-DSh8Ovx2.js +5 -0
  7. package/dist/assets/{add-credits-modal-Dy3I3Har.js → add-credits-modal-FPXxOAMb.js} +1 -1
  8. package/dist/assets/advanced-page-UPgcMIra.js +1 -0
  9. package/dist/assets/ai-page-CGEA7pTY.js +1 -0
  10. package/dist/assets/animated-avatar-Dt3HMkLe.js +1 -0
  11. package/dist/assets/{api-2kc3MHRz.js → api-CwV4YyjT.js} +1 -1
  12. package/dist/assets/api-key-screen-D1quwCLW.js +1 -0
  13. package/dist/assets/{archive-page-Dl6HLIJt.js → archive-page-KY7n-0Qw.js} +1 -1
  14. package/dist/assets/assistant-api-DsiQd51V.js +1 -0
  15. package/dist/assets/{assistant-feature-flag-store-Dl92XRsM.js → assistant-feature-flag-store-9j2-Kf63.js} +1 -1
  16. package/dist/assets/{assistant-identity-store-CKjnoLSp.js → assistant-identity-store-E8J494ln.js} +1 -1
  17. package/dist/assets/{assistant-status-panel-BkIkvMYw.js → assistant-status-panel-D1hbDikl.js} +1 -1
  18. package/dist/assets/auth-store-DhoDi3Ka.js +2 -0
  19. package/dist/assets/background-task-detail-panel-BssEr931.js +1 -0
  20. package/dist/assets/billing-page-KDeiZ67m.js +3 -0
  21. package/dist/assets/{bookmarks-page-CANlE7hP.js → bookmarks-page-DnLy6VIU.js} +1 -1
  22. package/dist/assets/{browser-CKX_K5ev.js → browser-BtcMMWcD.js} +2 -2
  23. package/dist/assets/build-state-D10hicGm.js +1 -0
  24. package/dist/assets/{capture-error-Hr1Yo2kx.js → capture-error-BG-GkiMq.js} +1 -1
  25. package/dist/assets/chat-rA5AbKPD.js +1 -0
  26. package/dist/assets/{client-feature-flag-store-C1kdd1EO.js → client-feature-flag-store-Co2Hhr3q.js} +1 -1
  27. package/dist/assets/client-identity-KGlckm6M.js +1 -0
  28. package/dist/assets/client.gen-DU1JkKSB.js +6 -0
  29. package/dist/assets/{command-palette-GZu_zgQg.js → command-palette-B1B3JFxY.js} +1 -1
  30. package/dist/assets/{command-palette-window-page-CzWu42Ee.js → command-palette-window-page-Cg49NRQN.js} +1 -1
  31. package/dist/assets/{community-page-Dhgypa-h.js → community-page-C1LspNF5.js} +1 -1
  32. package/dist/assets/{connect-page-CDOcgzzL.js → connect-page-C4TuRCyq.js} +1 -1
  33. package/dist/assets/{consent-controls-BSZV4rW3.js → consent-controls-Dsb58yGZ.js} +1 -1
  34. package/dist/assets/{contacts-gateway-dxw1KMN2.js → contacts-gateway-BDJYh797.js} +1 -1
  35. package/dist/assets/contacts-page-route-CUppjd6B.js +9 -0
  36. package/dist/assets/{conversation-list-fetchers-UPVZq_6O.js → conversation-list-fetchers-XUhw0LTH.js} +1 -1
  37. package/dist/assets/{danger-zone-redirect-page-CjqUKhk9.js → danger-zone-redirect-page-DK4QwO4q.js} +1 -1
  38. package/dist/assets/debug-page-BU9E2Zpp.js +4 -0
  39. package/dist/assets/{deploy-dialogs-jf5VL1UP.js → deploy-dialogs-BffsSWHa.js} +1 -1
  40. package/dist/assets/{detail-card-BIwpXT5F.js → detail-card-kfxLI0l_.js} +1 -1
  41. package/dist/assets/detail-panel-stop-button-D0KsydFR.js +1 -0
  42. package/dist/assets/detail-shell-BPCWck_r.js +3 -0
  43. package/dist/assets/{developer-page-iEL4eJ8x.js → developer-page-CnUodPF4.js} +1 -1
  44. package/dist/assets/{devices-page-RMaPGcXe.js → devices-page-BBKhaTRg.js} +1 -1
  45. package/dist/assets/diagnostics-Dd5CfP37.js +1 -0
  46. package/dist/assets/{dictation-overlay-page-BxQCzLMY.js → dictation-overlay-page-Dz04r9UQ.js} +1 -1
  47. package/dist/assets/{document-viewer-page-57OuXxYw.js → document-viewer-page-DJq7Ygvy.js} +1 -1
  48. package/dist/assets/earn-credits-modal-fcQSixir.js +1 -0
  49. package/dist/assets/{emails-page-0gRZqa6y.js → emails-page-wd0TRGg5.js} +1 -1
  50. package/dist/assets/{emoji-catalog-data-Dlkuvec0.js → emoji-catalog-data-D8lRMt3A.js} +1 -1
  51. package/dist/assets/esm--RA963YO.js +2 -0
  52. package/dist/assets/esm-BSRBg0oR.js +2 -0
  53. package/dist/assets/esm-CJ8uY1wn.js +2 -0
  54. package/dist/assets/esm-DTj81fJQ.js +1 -0
  55. package/dist/assets/{esm-B3Lr4Bv0.js → esm-O9mDOR47.js} +2 -2
  56. package/dist/assets/esm-cB02a8J9.js +2 -0
  57. package/dist/assets/feature-flag-catalog-DV82F0L3.js +1 -0
  58. package/dist/assets/{file-editor-BNkJJbUv.js → file-editor-DOP89Gof.js} +1 -1
  59. package/dist/assets/general-page-CPBHVyTD.js +1 -0
  60. package/dist/assets/hatching-screen-DY3K0JOi.js +1 -0
  61. package/dist/assets/home-page-route-DONg99uG.js +1 -0
  62. package/dist/assets/{hosting-screen-C14KAJ6m.js → hosting-screen-CVc_n57L.js} +1 -1
  63. package/dist/assets/identity-page-route-ppulI5aE.js +1 -0
  64. package/dist/assets/index-BX26FZ8C.css +2 -0
  65. package/dist/assets/index-DbPUHSMl.js +130 -0
  66. package/dist/assets/{inspect-page-CWasyuSO.js → inspect-page-Bumwp983.js} +9 -7
  67. package/dist/assets/install-WYTcfmdN.js +1 -0
  68. package/dist/assets/integrations-page-BsTax_30.js +1 -0
  69. package/dist/assets/intelligence-layout-D6U1Copv.js +1 -0
  70. package/dist/assets/{keyboard-shortcuts-page-kiOEZKzE.js → keyboard-shortcuts-page-D_GqzGiY.js} +1 -1
  71. package/dist/assets/library-detail-page-Bw131lov.js +1 -0
  72. package/dist/assets/{library-page-BHejhapZ.js → library-page-jSdqmt8d.js} +1 -1
  73. package/dist/assets/{login-flow-DPi11n3h.js → login-flow-Bu_R77mO.js} +1 -1
  74. package/dist/assets/login-page-DPfXjBWn.js +1 -0
  75. package/dist/assets/{logout-page-Bl6AD21S.js → logout-page-AznF3yAS.js} +1 -1
  76. package/dist/assets/{logs-layout-C9eUE1Pt.js → logs-layout-BYJ41Qya.js} +1 -1
  77. package/dist/assets/{memory-router-playground-page-Dhi3uqxr.js → memory-router-playground-page-Dm3TiSY7.js} +1 -1
  78. package/dist/assets/messages-qxyeoKYS.js +13 -0
  79. package/dist/assets/{status-badge-pill-DYlAnX5m.js → metric-card-CderFn_K.js} +1 -1
  80. package/dist/assets/{mobile-sidebar-drawer-DqXFL0Ke.js → mobile-sidebar-drawer-CfI8ihQa.js} +1 -1
  81. package/dist/assets/native-biometric-CBWaVg3Q.js +6 -0
  82. package/dist/assets/{native-file-B-MK3Ngg.js → native-file-Djc1KZs3.js} +2 -2
  83. package/dist/assets/{notifications-page-pHiDPA0p.js → notifications-page-B8rJ9VKw.js} +1 -1
  84. package/dist/assets/{oauth-complete-page-DiGMWbOb.js → oauth-complete-page-z8o1ui13.js} +1 -1
  85. package/dist/assets/{oauth-popup-complete-page-CwoZnzdc.js → oauth-popup-complete-page-Tkc-rQX9.js} +1 -1
  86. package/dist/assets/{page-shell-cEGpH3P5.js → page-shell-D0lmza98.js} +1 -1
  87. package/dist/assets/pairing-page-m0oxNDQ9.js +1 -0
  88. package/dist/assets/{password-reset-page-DfYGL1Gv.js → password-reset-page-T_0pamrF.js} +1 -1
  89. package/dist/assets/platform-detection-ByImsPTf.js +1 -0
  90. package/dist/assets/platform-loopback-page-D2HL9AUX.js +1 -0
  91. package/dist/assets/plugin-detail-page-Bb-HIhbL.js +1 -0
  92. package/dist/assets/plugins-page-DRvAzmXd.js +1 -0
  93. package/dist/assets/plugins-surface-CbPGIeTp.js +1 -0
  94. package/dist/assets/prechat-route-BH3zTo60.js +1 -0
  95. package/dist/assets/{prefs-C_oq5G87.js → prefs-BJa0q2Gz.js} +1 -1
  96. package/dist/assets/privacy-page-B_IftswZ.js +1 -0
  97. package/dist/assets/privacy-screen-RyAPZfA7.js +1 -0
  98. package/dist/assets/provider-callback-page-D3_-eNaE.js +1 -0
  99. package/dist/assets/provider-key-BJ_kBwp_.js +1 -0
  100. package/dist/assets/provider-signup-page-DHI17XiE.js +1 -0
  101. package/dist/assets/proxy-E3RRrfO5.js +1 -0
  102. package/dist/assets/{quick-input-page-C9jN8YtU.js → quick-input-page-DX5Rrr0p.js} +1 -1
  103. package/dist/assets/react-query.gen-BZr-1Xaw.js +1 -0
  104. package/dist/assets/{react-query.gen-rp6Krcco.js → react-query.gen-By34AU2d.js} +1 -1
  105. package/dist/assets/{return-to-ByvaXBKr.js → remote-gateway-session-znfqX8Fi.js} +1 -1
  106. package/dist/assets/repeat-nCGBxntG.js +1 -0
  107. package/dist/assets/{research-mock-page-ttrrPwo3.js → research-mock-page-DYca4sbx.js} +1 -1
  108. package/dist/assets/research-onboarding-route-Ba74KUBl.js +53 -0
  109. package/dist/assets/{resize-errors-DnJEbHn4.js → resize-errors-D1myE8D_.js} +1 -1
  110. package/dist/assets/return-to-yMLvlnXN.js +1 -0
  111. package/dist/assets/{review-terms-screen-DEiifDmK.js → review-terms-screen-D4lBqvba.js} +1 -1
  112. package/dist/assets/routes-C6gxiCrz.js +1 -0
  113. package/dist/assets/{schedules-D-4Rq6ZC.js → schedules-DJmuJMXB.js} +1 -1
  114. package/dist/assets/sdk.gen-7kFw36Fw.js +1 -0
  115. package/dist/assets/{sdk.gen-D-_js_oC.js → sdk.gen-DmWuY0SL.js} +1 -1
  116. package/dist/assets/{select-assistant-screen-UoixBMN2.js → select-assistant-screen-C0FcoktK.js} +1 -1
  117. package/dist/assets/settings-layout-D9gcFAQr.js +1 -0
  118. package/dist/assets/share-feedback-modal-CFO00NHT.js +1 -0
  119. package/dist/assets/{sidebar-tree-BJkXpCut.js → sidebar-tree-BFvRtzPm.js} +1 -1
  120. package/dist/assets/signup-page-CW6PcJ-3.js +1 -0
  121. package/dist/assets/{signup-shell-Bu5BM6II.js → signup-shell-DOF8aXn0.js} +1 -1
  122. package/dist/assets/skills-page-BUy5sEoN.js +1 -0
  123. package/dist/assets/{sound-manager-CzslfzDO.js → sound-manager-KLJ38-0x.js} +1 -1
  124. package/dist/assets/{sounds-page-mens6EAJ.js → sounds-page-g_BwlxnY.js} +1 -1
  125. package/dist/assets/src-mai-NajT.js +293 -0
  126. package/dist/assets/status-badge-pill-j3ke1d9o.js +1 -0
  127. package/dist/assets/step-indicator-dots-Bc6X141I.js +1 -0
  128. package/dist/assets/subagent-detail-panel-DZMGVqEM.js +4 -0
  129. package/dist/assets/{subagent-store-BLHGkTJR.js → subagent-store-uyvG6X03.js} +1 -1
  130. package/dist/assets/{system-events-page-Dro8iNrx.js → system-events-page-BP8qivQM.js} +1 -1
  131. package/dist/assets/{system-events-redirect-page-C1hGE6n5.js → system-events-redirect-page-C16Xg1C_.js} +1 -1
  132. package/dist/assets/three-dot-indicator-BOWJCSsU.js +1 -0
  133. package/dist/assets/{tiptap-document-editor-D2t4qYzv.js → tiptap-document-editor-BlIwazbg.js} +2 -2
  134. package/dist/assets/tool-detail-panel-bEz99Rub.js +2 -0
  135. package/dist/assets/trace-page-7kxcQ5q9.js +1 -0
  136. package/dist/assets/{upgrade-cancel-page-Cwv5eMh9.js → upgrade-cancel-page-D4-wJgCa.js} +1 -1
  137. package/dist/assets/{upgrade-success-page-DnJ8Kyyj.js → upgrade-success-page-BMxaY6Um.js} +1 -1
  138. package/dist/assets/{usage-page-DJHRS0lZ.js → usage-page-qqfsQlxg.js} +1 -1
  139. package/dist/assets/{use-bus-subscription-BbiZXm1u.js → use-bus-subscription-BNaztnO7.js} +1 -1
  140. package/dist/assets/use-is-org-ready-DGnWseqw.js +1 -0
  141. package/dist/assets/use-onboarding-login-DwVCJ7DH.js +1 -0
  142. package/dist/assets/use-reduced-motion-D32BDyn0.js +1 -0
  143. package/dist/assets/use-skill-categories-CZml3JEH.js +1 -0
  144. package/dist/assets/{utils-IBnUZTqY.js → utils-B_yHNmjr.js} +1 -1
  145. package/dist/assets/viewer-store-BSiJen54.js +1 -0
  146. package/dist/assets/{voice-page-kQZ2ya5j.js → voice-page-CNB9Pxor.js} +1 -1
  147. package/dist/assets/weather-forecast-display-270rsUDb.js +1 -0
  148. package/dist/assets/{web-M3MS-KVB.js → web-CxyEb7Lp.js} +1 -1
  149. package/dist/assets/{web-B0S2ynRY.js → web-DFw1Yfb1.js} +1 -1
  150. package/dist/assets/{web-DOKyhuGQ.js → web-DGDlV45i.js} +1 -1
  151. package/dist/assets/{web-DJKnWTsF.js → web-GWxiW7or.js} +1 -1
  152. package/dist/assets/{web-iUXw2JWQ.js → web-YggPvEM4.js} +1 -1
  153. package/dist/assets/{web-D0QcGl1O.js → web-b9SjJqdc.js} +1 -1
  154. package/dist/assets/{web-Cg8gCWpB.js → web-lNls6p99.js} +1 -1
  155. package/dist/assets/{welcome-screen-Bd7PCfAf.js → welcome-screen-Cqkp2VuN.js} +1 -1
  156. package/dist/assets/workflow-detail-panel-Dl3mqk0u.js +1 -0
  157. package/dist/assets/workspace-page-DBZwYmVn.js +1 -0
  158. package/dist/index.html +81 -76
  159. package/package.json +1 -1
  160. package/dist/assets/account-page-CCYCSy2-.js +0 -1
  161. package/dist/assets/advanced-page-CVnT0zH-.js +0 -1
  162. package/dist/assets/ai-page-kEbHR7cH.js +0 -1
  163. package/dist/assets/api-key-screen-DGVn66y4.js +0 -1
  164. package/dist/assets/assistant-api-DROTS3Y9.js +0 -1
  165. package/dist/assets/auth-store-Kfxhs2oI.js +0 -7
  166. package/dist/assets/billing-page-Cq_yLwUC.js +0 -3
  167. package/dist/assets/build-state-VC4tL7sK.js +0 -1
  168. package/dist/assets/contacts-page-route-C3QiOxjO.js +0 -9
  169. package/dist/assets/debug-page-CBozmAQQ.js +0 -2
  170. package/dist/assets/diagnostics-BEB4VPwC.js +0 -1
  171. package/dist/assets/earn-credits-modal-Nm1VymMp.js +0 -1
  172. package/dist/assets/esm-BVNBLzcW.js +0 -2
  173. package/dist/assets/esm-BtN-afz9.js +0 -1
  174. package/dist/assets/esm-D2xhPoyM.js +0 -2
  175. package/dist/assets/esm-DwNtkiSD.js +0 -2
  176. package/dist/assets/esm-pt1s0ryM.js +0 -2
  177. package/dist/assets/feature-flag-catalog-RK3_Ckyw.js +0 -1
  178. package/dist/assets/general-page-aZxTpnpI.js +0 -1
  179. package/dist/assets/hatching-screen-KPinlCES.js +0 -1
  180. package/dist/assets/home-page-route-CudtBGg1.js +0 -1
  181. package/dist/assets/identity-page-route-C0BFcTAF.js +0 -1
  182. package/dist/assets/index-Hcyzmz_5.css +0 -2
  183. package/dist/assets/index-PRnvH2Y1.js +0 -132
  184. package/dist/assets/install-C3xe8ARr.js +0 -1
  185. package/dist/assets/integrations-page-WhBpTYP2.js +0 -1
  186. package/dist/assets/intelligence-layout-CvTumtjv.js +0 -1
  187. package/dist/assets/library-detail-page-rPvN9G1a.js +0 -1
  188. package/dist/assets/login-page-BGLVK82t.js +0 -1
  189. package/dist/assets/messages-DHDZ32NT.js +0 -13
  190. package/dist/assets/pairing-page-clFaUgzL.js +0 -1
  191. package/dist/assets/platform-loopback-page-Df5bTTx8.js +0 -1
  192. package/dist/assets/plugin-detail-page-IRPeI4lP.js +0 -1
  193. package/dist/assets/plugins-page-BaYp2QOe.js +0 -1
  194. package/dist/assets/prechat-route-BaMWiiaf.js +0 -1
  195. package/dist/assets/privacy-page-BUhxrIRn.js +0 -1
  196. package/dist/assets/privacy-screen-BaHYtKEt.js +0 -1
  197. package/dist/assets/provider-callback-page-CxFC4PH1.js +0 -1
  198. package/dist/assets/provider-key-nA35OC4Y.js +0 -1
  199. package/dist/assets/provider-signup-page-CdpT28xL.js +0 -1
  200. package/dist/assets/proxy-DmIh4F51.js +0 -1
  201. package/dist/assets/react-query.gen-CQLyoqYk.js +0 -1
  202. package/dist/assets/reduced-motion-DYlLlcUm.js +0 -1
  203. package/dist/assets/research-onboarding-route-Cxai0fux.js +0 -36
  204. package/dist/assets/risk-badge-BA8R-HCI.js +0 -1
  205. package/dist/assets/routes-DVqkwUEe.js +0 -1
  206. package/dist/assets/sdk.gen-1aYqVbMj.js +0 -6
  207. package/dist/assets/settings-layout-CQ3Z9Raj.js +0 -1
  208. package/dist/assets/share-feedback-modal-CTwByE7B.js +0 -1
  209. package/dist/assets/signup-page-CKDYl9Wb.js +0 -1
  210. package/dist/assets/skills-page-DVjqqfMw.js +0 -1
  211. package/dist/assets/src-CK6bncSg.js +0 -293
  212. package/dist/assets/step-indicator-dots-CEVbsP8r.js +0 -1
  213. package/dist/assets/subagent-detail-panel-DVQAkMjF.js +0 -4
  214. package/dist/assets/three-dot-indicator-CLs7Rl-I.js +0 -1
  215. package/dist/assets/tool-call-status-DTV5jmaU.js +0 -1
  216. package/dist/assets/tool-detail-panel-DRD2DIMF.js +0 -2
  217. package/dist/assets/trace-page-DRWPaAuQ.js +0 -1
  218. package/dist/assets/use-is-org-ready-BdtHeRV6.js +0 -1
  219. package/dist/assets/use-onboarding-login-BEOH92mZ.js +0 -1
  220. package/dist/assets/use-plugin-drift-Bj693x0f.js +0 -1
  221. package/dist/assets/use-reduced-motion-ChB7nOGe.js +0 -1
  222. package/dist/assets/viewer-store-Dead64xY.js +0 -1
  223. package/dist/assets/weather-forecast-display-Cu3W6OZF.js +0 -1
  224. package/dist/assets/workflow-detail-panel-CMmPPsuL.js +0 -1
  225. package/dist/assets/workspace-page-BR4pOxs5.js +0 -1
  226. package/dist/skills/meet-join/assets/icon.svg +0 -1
  227. /package/dist/assets/{api-errors-CveHbhgb.js → api-errors-DPruG7q9.js} +0 -0
  228. /package/dist/assets/{app-info-BZYaLxCg.js → app-info-DJQFoVxX.js} +0 -0
  229. /package/dist/assets/{avatar-bundled-components-BgAkdy0n.js → avatar-bundled-components-w37NPF4o.js} +0 -0
  230. /package/dist/assets/{avatar-svg-compositor-CEmN7KGI.js → avatar-svg-compositor-DG7zqpYr.js} +0 -0
  231. /package/dist/assets/{build.umd-B3KuSWeo.js → build.umd-4R02MPXx.js} +0 -0
  232. /package/dist/assets/{client.gen-Cs6pCK0s.js → client.gen-BHupOCJH.js} +0 -0
  233. /package/dist/assets/{composer-focus-Bp1AiP29.js → composer-focus-n921WsjZ.js} +0 -0
  234. /package/dist/assets/{conversation-selection-CtKjA5Ni.js → conversation-selection-DgYtLnyB.js} +0 -0
  235. /package/dist/assets/{conversation-store-DK-7gFAt.js → conversation-store-CWgiE5KG.js} +0 -0
  236. /package/dist/assets/{definitions-lQvEBMJT.js → definitions-BughTGuV.js} +0 -0
  237. /package/dist/assets/{dist-BTp54SIT.js → dist-Ztj3rqLK.js} +0 -0
  238. /package/dist/assets/{edit-chat-session-DJpqkkos.js → edit-chat-session-TX_J-I33.js} +0 -0
  239. /package/dist/assets/{effective-timezone-DrYGH2Lb.js → effective-timezone-BJxnysvd.js} +0 -0
  240. /package/dist/assets/{environment-store-CvH3J6fT.js → environment-store-CnVyTyZ7.js} +0 -0
  241. /package/dist/assets/{event-bus-Dl7-I4aL.js → event-bus-B3E3w-q2.js} +0 -0
  242. /package/dist/assets/{external-link-DPAtkBJ2.js → external-link-RJkZLlff.js} +0 -0
  243. /package/dist/assets/{file-text-CmK9LY1p.js → file-text-ClqzuFsu.js} +0 -0
  244. /package/dist/assets/{format-CPOur310.js → format-BDkwdD2m.js} +0 -0
  245. /package/dist/assets/{format-date-CLlHK5gl.js → format-date-D4tzd1DT.js} +0 -0
  246. /package/dist/assets/{format-file-size-BfZOpPdu.js → format-file-size-BflZ4oxc.js} +0 -0
  247. /package/dist/assets/{globe-DYF_lSGm.js → globe-D3P5sSKJ.js} +0 -0
  248. /package/dist/assets/{haptics-CXHZxyAg.js → haptics-BE_0g4mc.js} +0 -0
  249. /package/dist/assets/{hard-drive-D7_5VMhi.js → hard-drive-CZEg1Cqc.js} +0 -0
  250. /package/dist/assets/{impersonate-version-flag-n-4oNLiO.js → impersonate-version-flag-BsxCoimD.js} +0 -0
  251. /package/dist/assets/{info-_OtUK1cX.js → info-ciQS_i3y.js} +0 -0
  252. /package/dist/assets/{lib-BWRK7bT2.js → lib-BNGjysgr.js} +0 -0
  253. /package/dist/assets/{link-2-CaszbD7P.js → link-2-r_QPxX18.js} +0 -0
  254. /package/dist/assets/{llm-dimension-CQdmYu05.js → llm-dimension-8g-Go8uq.js} +0 -0
  255. /package/dist/assets/{loader-circle-IIzBGiwm.js → loader-circle-BFRVtR3K.js} +0 -0
  256. /package/dist/assets/{log-in-2iOsufxq.js → log-in-CEw63CGU.js} +0 -0
  257. /package/dist/assets/{minimize-2-JE_UHZlJ.js → minimize-2-dKm10qRD.js} +0 -0
  258. /package/dist/assets/{misc-BN2o2MEB.js → misc-CFzLzLPH.js} +0 -0
  259. /package/dist/assets/{monitor-D2okHi8o.js → monitor-CXU19mVX.js} +0 -0
  260. /package/dist/assets/{moon-CK8MXzOo.js → moon-CKINz50a.js} +0 -0
  261. /package/dist/assets/{mutation-error-CsyN8rYH.js → mutation-error-CK0dVo5B.js} +0 -0
  262. /package/dist/assets/{native-deep-link-BYNI6pkW.js → native-deep-link-ODdFH_Wn.js} +0 -0
  263. /package/dist/assets/{pdf-pz4ipUHd.js → pdf-B-YWzK66.js} +0 -0
  264. /package/dist/assets/{pencil-DbB9rxpY.js → pencil-B90pDI55.js} +0 -0
  265. /package/dist/assets/{prechat-B28Vzu55.js → prechat-3rpjvqoE.js} +0 -0
  266. /package/dist/assets/{prechat-names-CRduluk-.js → prechat-names-NPlBAwCy.js} +0 -0
  267. /package/dist/assets/{public-asset-Fx_laYnf.js → public-asset-B5BQLOj3.js} +0 -0
  268. /package/dist/assets/{refresh-cw-Bf6LV0kG.js → refresh-cw-Dui3Ymsb.js} +0 -0
  269. /package/dist/assets/{save-DEBQ_gbb.js → save-BpAesNEP.js} +0 -0
  270. /package/dist/assets/{semver-yC_Iq9co.js → semver-l1HADz2z.js} +0 -0
  271. /package/dist/assets/{setting-row-o44aWwYt.js → setting-row-BGQgDyhv.js} +0 -0
  272. /package/dist/assets/{sparkles-BICoewVE.js → sparkles-Bla177ar.js} +0 -0
  273. /package/dist/assets/{triangle-alert-DKOyShqD.js → triangle-alert-C3aHZq1F.js} +0 -0
  274. /package/dist/assets/{typed-storage-Dctd_K9F.js → typed-storage-DjORmu8t.js} +0 -0
  275. /package/dist/assets/{usage-window-Wgtgd-cv.js → usage-window-B-YOzKJi.js} +0 -0
  276. /package/dist/assets/{use-active-assistant-id-C-RHQ9f6.js → use-active-assistant-id-ZxDeBTfL.js} +0 -0
  277. /package/dist/assets/{use-is-mobile-Cy10kl9u.js → use-is-mobile-jACt_z2d.js} +0 -0
  278. /package/dist/assets/{user-plus-C0OyQU83.js → user-plus-COoYKnWs.js} +0 -0
  279. /package/dist/assets/{workflow-status-DmbjJPT4.js → workflow-status-BuGeg_Pe.js} +0 -0
  280. /package/dist/assets/{x-KVxA2ZL0.js → x-DxL-bCuT.js} +0 -0
  281. /package/dist/assets/{xterm-MKaw0cT7.js → xterm-B8LaLTHh.js} +0 -0
  282. /package/dist/assets/{xterm-addon-fit-BFDQtfbG.js → xterm-addon-fit--RE59D-m.js} +0 -0
@@ -0,0 +1,3 @@
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{r as t,s as n}from"./local-settings-lVNyIOJ_.js";import{t as r}from"./react-DJZBPgpf.js";import{t as i}from"./button-D7s2Q_uG.js";import{t as a}from"./jsx-runtime-CVSDxk6A.js";import{t as o}from"./typography-BscuIPxA.js";import"./src-mai-NajT.js";import{n as s,t as c}from"./create-selectors-BE0_e_Ed.js";import{t as l}from"./createLucideIcon-BlMXrA59.js";import{t as u}from"./x-DxL-bCuT.js";import{n as d}from"./typed-storage-DjORmu8t.js";import{a as ee}from"./diagnostics-Dd5CfP37.js";import{t as te}from"./conversation-store-CWgiE5KG.js";import{c as ne}from"./messages-qxyeoKYS.js";import{b as re,n as ie,t as ae,v as f,w as p,x as oe}from"./chat-rA5AbKPD.js";import{t as m}from"./misc-CFzLzLPH.js";var se=l(`bolt`,[[`path`,{d:`M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z`,key:`yt0hxn`}],[`circle`,{cx:`12`,cy:`12`,r:`4`,key:`4exip2`}]]),ce=l(`pen`,[[`path`,{d:`M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z`,key:`1a8usu`}]]),le=l(`plug`,[[`path`,{d:`M12 22v-5`,key:`1ega77`}],[`path`,{d:`M15 8V2`,key:`18g5xt`}],[`path`,{d:`M17 8a1 1 0 0 1 1 1v4a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V9a1 1 0 0 1 1-1z`,key:`1xoxul`}],[`path`,{d:`M9 8V2`,key:`14iosj`}]]),ue=l(`square-terminal`,[[`path`,{d:`m7 11 2-2-2-2`,key:`1lz0vl`}],[`path`,{d:`M11 13h4`,key:`1p7l4v`}],[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,ry:`2`,key:`1m3agn`}]]),de=e(r(),1),h=1e3,fe=15,pe=0,g=new Map,_=[];function me(e){let t=`sse-${++pe}`,n={id:t,abortSignal:e,initiatedAt:Date.now(),establishedAt:null,lastTrafficAt:null,lastDataAt:null,dataFrames:0,keepalives:0,endedAt:null,endReason:null};g.set(t,n),Se();let r=()=>{xe(t,`aborted`)};return e.aborted?r():e.addEventListener(`abort`,r,{once:!0}),t}function he(e){let t=g.get(e);t&&t.establishedAt===null&&(t.establishedAt=Date.now())}function ge(e,t){let n=g.get(e);if(!n)return;let r=Date.now();n.lastTrafficAt=r,t?(n.lastDataAt=r,n.dataFrames++):n.keepalives++}function _e(e,t){_.push({clientId:e,receivedAt:new Date().toISOString(),...t}),_.length>h&&_.shift()}function ve(){return Array.from(g.values())}function ye(e=h){let t=Math.max(0,_.length-e);return _.slice(t)}function be(e,t){if(t===null)return null;let n=1/0;for(let e of _)typeof e.seq==`number`&&(n=Math.min(n,e.seq));return n!==1/0&&n>t+1?null:_.filter(n=>n.conversationId===e&&typeof n.seq==`number`&&n.seq>t).sort((e,t)=>e.seq-t.seq)}function xe(e,t){let n=g.get(e);n&&(n.endedAt===null?(n.endedAt=Date.now(),n.endReason=t):n.endReason===`aborted`&&t!==`aborted`&&(n.endReason=t),Se())}function Se(){let e=0;for(let t of g.values())t.endedAt!==null&&e++;if(!(e<=fe))for(let[t,n]of g){if(e<=fe)break;n.endedAt!==null&&(g.delete(t),e--)}}var Ce={phase:`idle`,pendingQueuedCount:0,activeToolCallCount:0,activeTurnId:null,lastTerminalReason:null,statusText:null,liveWebActivity:{}};function we(e){return e===`queued`||e===`thinking`||e===`streaming`||e===`awaiting_user_input`}function Te(e){return e===`thinking`}function v(e){return(e.phase===`idle`||e.phase===`errored`)&&!e.activeTurnId}var Ee=c(s()((e,t)=>({...Ce,requestSend:t=>e(e=>({phase:`thinking`,activeTurnId:t??e.activeTurnId,lastTerminalReason:null,activeToolCallCount:0,statusText:null})),acceptSend:t=>e(e=>({activeTurnId:t,...e.phase===`idle`||e.phase===`errored`?{phase:`thinking`,lastTerminalReason:null}:null})),onTextDelta:()=>{let n=t();if(n.phase===`idle`||n.phase===`errored`){if(!n.activeTurnId)return;e({phase:`streaming`});return}(n.phase===`thinking`||n.phase===`queued`)&&e({phase:`streaming`})},onToolUseStart:()=>{let n=t();v(n)||e({phase:n.phase===`idle`||n.phase===`errored`||n.phase===`queued`?`thinking`:n.phase,activeToolCallCount:n.activeToolCallCount+1})},onToolResult:()=>e(e=>({activeToolCallCount:Math.max(0,e.activeToolCallCount-1)})),onToolActivityMetadata:(n,r)=>{let i=t();v(i)||e({liveWebActivity:{...i.liveWebActivity,[n]:r}})},onActivityThinking:n=>{let r=t();v(r)||r.phase!==`awaiting_user_input`&&e({phase:`thinking`,statusText:n??null})},showSurface:n=>{v(t())||n&&e({phase:`awaiting_user_input`})},updateSurface:()=>{},dismissSurface:()=>{let n=t();n.phase===`awaiting_user_input`&&n.activeToolCallCount===0&&e({phase:`thinking`})},completeSurface:()=>{let n=t();n.phase===`awaiting_user_input`&&n.activeToolCallCount===0&&e({phase:`thinking`})},onSecretRequest:()=>{v(t())||e({phase:`awaiting_user_input`})},onConfirmationRequest:()=>{v(t())||e({phase:`awaiting_user_input`})},onQuestionRequest:()=>{v(t())||e({phase:`awaiting_user_input`})},onContactRequest:()=>{v(t())||e({phase:`awaiting_user_input`})},completeTurn:()=>{e({phase:t().pendingQueuedCount>0?`queued`:`idle`,activeTurnId:null,activeToolCallCount:0,lastTerminalReason:`complete`,statusText:null,liveWebActivity:{}})},handoffGeneration:()=>{v(t())||e({phase:`thinking`,activeToolCallCount:0,statusText:null})},cancelGeneration:()=>{e({phase:t().pendingQueuedCount>0?`queued`:`idle`,activeTurnId:null,activeToolCallCount:0,lastTerminalReason:`cancelled`,statusText:null,liveWebActivity:{}})},onStreamError:()=>e({phase:`idle`,activeTurnId:null,activeToolCallCount:0,pendingQueuedCount:0,lastTerminalReason:`error`,statusText:null,liveWebActivity:{}}),onSessionError:()=>e({phase:`idle`,activeTurnId:null,activeToolCallCount:0,pendingQueuedCount:0,lastTerminalReason:`session_error`,statusText:null,liveWebActivity:{}}),onTurnTimeout:()=>e({phase:`idle`,activeTurnId:null,activeToolCallCount:0,pendingQueuedCount:0,lastTerminalReason:`timeout`,statusText:null,liveWebActivity:{}}),onPollReconciled:n=>{let r=t();n&&n!==r.activeTurnId||we(r.phase)&&e({phase:`idle`,activeTurnId:null,activeToolCallCount:0,lastTerminalReason:`complete`,statusText:null,liveWebActivity:{}})},resetTurn:()=>e({...Ce}),enqueueMessage:()=>e(e=>({pendingQueuedCount:e.pendingQueuedCount+1})),dequeueMessage:()=>{let n=t(),r=Math.max(0,n.pendingQueuedCount-1);if(v(n)){e({pendingQueuedCount:r});return}e({phase:`thinking`,pendingQueuedCount:r})},deleteQueuedMessage:()=>{let n=t(),r=Math.max(0,n.pendingQueuedCount-1);if(r===0&&n.phase===`queued`){e({phase:`idle`,pendingQueuedCount:0,activeTurnId:null,lastTerminalReason:`complete`,statusText:null,liveWebActivity:{}});return}e({pendingQueuedCount:r})}}))),De=3670016,Oe=[.85,.75,.65,.5],ke=2e7,Ae=new Set([`image/jpeg`,`image/jpg`,`image/png`,`image/webp`,`image/heic`,`image/heif`,`image/bmp`,`image/tiff`]),je=new Set([`jpg`,`jpeg`,`png`,`webp`,`heic`,`heif`,`bmp`,`tif`,`tiff`]);function y(e){let t=e.type.trim().toLowerCase();if(Ae.has(t))return!0;let n=e.name.split(`.`).pop()?.trim().toLowerCase();return n?je.has(n):!1}function Me(e){return y(e)&&e.size>3670016}function Ne(e){let t=`attachment`,n=e.trim()||t;return/\.(?:jpe?g)$/i.test(n)?n:`${n.replace(/\.[^./\\]+$/,``)||t}.jpg`}async function Pe(e){if(!Me(e)||await Ie(e))return{status:`unchanged`,file:e};if(e.size>104857600)return{status:`failed`,error:`This image is too large to process safely. Please choose a smaller image.`};let t;try{t=await Fe(e)}catch{return{status:`failed`,error:`Couldn't resize this image for upload. Try a smaller image.`}}try{let n;try{n=await Re(t,e.size)}catch{n=null}return!n||n.size>=e.size?{status:`failed`,error:`Couldn't resize this image for upload. Try a smaller image.`}:{status:`resized`,file:new File([n],Ne(e.name),{type:`image/jpeg`,lastModified:e.lastModified})}}finally{t.close()}}async function Fe(e){if(typeof createImageBitmap==`function`)try{let t=await createImageBitmap(e,{imageOrientation:`from-image`});return{source:t,width:t.width,height:t.height,close:()=>t.close()}}catch{}if(typeof Image>`u`)throw Error(`No browser image decoder is available.`);let t=URL.createObjectURL(e);return await new Promise((e,n)=>{let r=new Image;r.onload=()=>{e({source:r,width:r.naturalWidth||r.width,height:r.naturalHeight||r.height,close:()=>URL.revokeObjectURL(t)})},r.onerror=()=>{URL.revokeObjectURL(t),n(Error(`Image decode failed.`))},r.src=t})}async function Ie(e){if(!Le(e))return!1;let t;try{t=new Uint8Array(await e.slice(0,Math.min(e.size,1024*1024)).arrayBuffer())}catch{return!0}if(!x(t,0,`RIFF`)||!x(t,8,`WEBP`))return!1;let n=b(t,`VP8X`);return n>=0&&(t[n+8]??0)&2?!0:b(t,`ANIM`)>=0||b(t,`ANMF`)>=0}function Le(e){return e.type.trim().toLowerCase()===`image/webp`||/\.webp$/i.test(e.name)}function b(e,t){for(let n=0;n<=e.length-t.length;n+=1)if(x(e,n,t))return n;return-1}function x(e,t,n){if(t+n.length>e.length)return!1;for(let r=0;r<n.length;r+=1)if(e[t+r]!==n.charCodeAt(r))return!1;return!0}async function Re(e,t){let n=e.width*e.height,r=null;if(n<=ke)for(let t of Oe){let n=await C(e.source,e.width,e.height,t);if(r=S(r,n),n&&n.size<=3670016)return n}let i=r?.size??t,a=Math.min(Math.sqrt(De/i*.9),.95);for(let t=0;t<4;t+=1){let t=Math.max(Math.floor(e.width*a),1),n=Math.max(Math.floor(e.height*a),1),o=null;for(let i of Oe){let a=await C(e.source,t,n,i);if(r=S(r,a),o=S(o,a),a&&a.size<=3670016)return a}i=o?.size??i,a*=Math.min(Math.sqrt(De/i*.9),.9)}return null}function S(e,t){return t&&(!e||t.size<e.size)?t:e}async function C(e,t,n,r){if(typeof document>`u`)return null;let i=document.createElement(`canvas`);i.width=t,i.height=n;let a=i.getContext(`2d`);if(!a||typeof i.toBlob!=`function`)return null;a.fillStyle=`#fff`,a.fillRect(0,0,t,n),a.drawImage(e,0,0,t,n);try{return await new Promise(e=>{i.toBlob(t=>e(t),`image/jpeg`,r)})}finally{i.width=0,i.height=0}}var ze=`vellum:chatDrafts:`;function w(e){return`${ze}${e}`}function Be(e){let n=t(w(e),``);if(!n)return new Map;try{let e=JSON.parse(n);return typeof e!=`object`||!e||Array.isArray(e)?new Map:new Map(Object.entries(e).filter(e=>typeof e[1]==`string`))}catch{return new Map}}function T(e,t){n(w(e),JSON.stringify(Object.fromEntries(t)))}function Ve(){return`att-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`}function He(e){return y(e)?`100 MB`:`50 MB`}function Ue(e){return e.size<=52428800?!0:y(e)&&e.size<=104857600}var E=new Map,D=null,O=new Map,k=new Set,We=s()((e,t)=>({input:``,restoredDraftConversationId:null,attachments:[],attachmentLastError:null,setInput:t=>{e(e=>({input:typeof t==`function`?t(e.input):t}))},saveDraft:(e,t)=>{t.trim()?E.set(e,t):E.delete(e),D&&T(D,E)},clearDraft:e=>{E.delete(e),D&&T(D,E)},handleConversationSwitch:({previousKey:n,nextKey:r})=>{if(!(n!==null&&n!==r)||!n)return;let i=t().input;i.trim()?E.set(n,i):E.delete(n);let a=(r&&E.get(r))??``;e({input:a,restoredDraftConversationId:a.length>0&&r?r:null}),D&&T(D,E)},loadAssistantDrafts:(n,r)=>{if(D&&D!==n){let n=t().input;r&&(n.trim()?E.set(r,n):E.delete(r)),T(D,E),e({input:``,restoredDraftConversationId:null})}E=Be(n),D=n},clearRestoredDraftNotice:()=>{e({restoredDraftConversationId:null})},restoreDraftIfEmpty:n=>{let r=E.get(n);r&&r.trim()&&!t().input.trim()&&e({input:r,restoredDraftConversationId:n})},addFiles:(t,n)=>{let r=Array.from(t);if(r.length===0)return;if(!n){e({attachmentLastError:`No active assistant. Please try again.`});return}let i=[],a=[];for(let e of r)Ue(e)?a.push(e):i.push(e);let o=i[0];if(e(o?{attachmentLastError:i.length===1?`${o.name} is larger than ${He(o)} and can't be attached.`:`${i.length} files are too large and can't be attached.`}:{attachmentLastError:null}),a.length===0)return;let s=a.map(e=>({pending:{kind:`uploading`,localId:Ve(),filename:e.name||`attachment`,mimeType:e.type||`application/octet-stream`,sizeBytes:e.size},file:e}));e(e=>({attachments:[...e.attachments,...s.map(e=>e.pending)]}));for(let{pending:t,file:r}of s)(async()=>{try{let i=await Pe(r);if(k.has(t.localId)){k.delete(t.localId);return}if(i.status===`failed`&&r.size>52428800){A(e,t.localId,i.error);return}let a=i.status===`failed`?r:i.file;if(a.size>52428800){A(e,t.localId,`This attachment is still larger than 50 MB after resizing. Try a smaller image.`);return}i.status===`resized`&&e(e=>({attachments:e.attachments.map(e=>e.localId===t.localId&&e.kind===`uploading`?{...e,filename:a.name||`attachment`,mimeType:a.type||`application/octet-stream`,sizeBytes:a.size}:e)}));let o=await ne(n,a);if(k.has(t.localId)){k.delete(t.localId);return}if(!o.ok){A(e,t.localId,o.error.detail??`Upload failed`);return}let s=null;try{s=URL.createObjectURL(a),O.set(t.localId,s)}catch{s=null}e(e=>({attachments:e.attachments.map(e=>e.localId===t.localId?{kind:`uploaded`,localId:t.localId,id:o.id,filename:a.name||`attachment`,mimeType:a.type||`application/octet-stream`,sizeBytes:a.size,previewUrl:s}:e)}))}catch{if(k.has(t.localId)){k.delete(t.localId);return}A(e,t.localId,`Upload failed`)}})()},removeAttachment:t=>{e(e=>{let n=e.attachments.find(e=>e.localId===t);return n&&n.kind===`uploading`&&k.add(t),{attachments:e.attachments.filter(e=>e.localId!==t)}}),Ge(t)},resetAttachments:()=>{e(e=>{for(let t of e.attachments)t.kind===`uploading`&&k.add(t.localId);return{attachments:[],attachmentLastError:null}})},fullReset:()=>{e(e=>{for(let t of e.attachments)t.kind===`uploading`&&k.add(t.localId);return{attachments:[],attachmentLastError:null}}),O.forEach(e=>URL.revokeObjectURL(e)),O.clear()},dismissAttachmentError:()=>{e({attachmentLastError:null})}}));function A(e,t,n){e(e=>({attachments:e.attachments.map(e=>e.localId===t?{kind:`failed`,localId:t,filename:e.filename,mimeType:e.mimeType,sizeBytes:e.sizeBytes,error:n}:e)}))}function Ge(e){let t=O.get(e);t&&(URL.revokeObjectURL(t),O.delete(e))}function Ke(e){return e.reduce((e,t)=>t.kind===`uploading`?e+1:e,0)}function qe(e){return e.filter(e=>e.kind===`uploaded`).map(e=>e.id)}var j=c(We);function Je(e){return Array.isArray(e)&&e.every(e=>typeof e==`string`)}function Ye(e){let t=JSON.parse(e);return Je(t)?t:null}function M(e,t){let n=[...e??[]],r=n.findIndex(e=>e.type===`surface`&&e.surface.surfaceId===t.surfaceId);return r===-1?n.push({type:`surface`,surface:t}):n[r]={type:`surface`,surface:t},n}function Xe(e,t){return e?.filter(e=>!(e.type===`surface`&&e.surface.surfaceId===t))}function Ze(e,t){if(!e.surfaces?.length)return e;let n=!1,r=e.contentBlocks,i=e.surfaces.map(e=>{let i=t(e);return i!==e&&(n=!0,r=M(r,i)),i});return n?{...e,surfaces:i,contentBlocks:r}:e}function Qe(e,t){if(!e.surfaces?.length)return e;let n=e.surfaces.filter(t);if(n.length===e.surfaces.length)return e;let r=new Set(e.surfaces.filter(e=>!t(e)).map(e=>e.surfaceId));return{...e,surfaces:n,contentOrder:e.contentOrder?.filter(e=>!(e.type===`surface`&&r.has(e.id))),contentBlocks:e.contentBlocks?.filter(e=>!(e.type===`surface`&&r.has(e.surface.surfaceId)))}}var $e=500,et=d({keyFn:e=>`vellum:dismissed-surfaces:${e}`,scope:`user`,parseValue:e=>Je(e)?e:null,fallback:{},maxEntries:200});function tt(e,t){let n=et.get(e,t);return n?new Set(n):new Set}function nt(e,t,n){let r=Array.from(n);r.length>$e&&(r=r.slice(r.length-$e)),et.set(e,t,r)}var rt=[];function it(e,t){if(!e)return rt;if(t.size===0)return e;let n=!1,r=e.map(e=>{let r=Qe(e,e=>!t.has(e.surfaceId));return r!==e&&(n=!0),r});return n?r:e}function at(e){if(!e||typeof e!=`object`)return!1;let t=e;return!(typeof t.tokens!=`number`||!Number.isFinite(t.tokens)||t.maxTokens!==null&&(typeof t.maxTokens!=`number`||!Number.isFinite(t.maxTokens))||t.fillRatio!==null&&(typeof t.fillRatio!=`number`||!Number.isFinite(t.fillRatio)))}var ot=d({keyFn:e=>`vellum:ctxwindow:${e}`,scope:`user`,parseValue:e=>at(e)?e:null,fallback:{},maxEntries:200});function st(e){return new Map(Object.entries(ot.load(e)))}function ct(e,t,n){ot.set(e,t,n)}var lt=`PROVIDER_BILLING`,ut=`PROVIDER_NOT_CONFIGURED`,dt=`MANAGED_KEY_INVALID`,ft=`credits_exhausted`,pt=`provider_billing`;function mt(e){return e?.errorCategory?e.errorCategory.endsWith(ft):e?.code===lt}function ht(e){return e?.errorCategory?e.errorCategory.endsWith(pt):!1}function gt(e){return mt(e)?`managed_credits`:ht(e)?`provider_billing`:null}function N(e){return gt(e)!==null||e?.code===ut||e?.displayAs===`modal`}function _t(e){return!!e&&!N(e)}function vt(e){return e?.code===dt}var yt={pendingSecret:null,isSubmittingSecret:!1,secretSaved:!1,pendingConfirmation:null,isSubmittingConfirmation:!1,pendingContactRequest:null,isSubmittingContactRequest:!1,contactRequestAccepted:!1,pendingQuestion:null,isSubmittingQuestion:!1,isQuestionCardDismissed:!1,inlineConfirmationToolCallId:null,unknownNudgeToolCallIds:new Set},P=c(s()((e,t)=>({...yt,showSecret:n=>{let{pendingSecret:r}=t();if(r&&r.requestId===n.requestId){let t={};for(let e of Object.keys(n))n[e]!==void 0&&(t[e]=n[e]);e({pendingSecret:{...r,...t}});return}e({pendingSecret:n,isSubmittingSecret:!1,secretSaved:!1})},submitSecretStart:()=>e({isSubmittingSecret:!0}),submitSecretEnd:t=>e({isSubmittingSecret:!1,secretSaved:t??!1}),dismissSecret:()=>e({pendingSecret:null,isSubmittingSecret:!1}),updateSecret:(n,r)=>{let{pendingSecret:i}=t();!i||i.requestId!==n||e({pendingSecret:{...i,...r}})},showConfirmation:t=>e({pendingConfirmation:t,isSubmittingConfirmation:!1}),submitConfirmationStart:()=>e({isSubmittingConfirmation:!0}),submitConfirmationEnd:()=>e({isSubmittingConfirmation:!1}),dismissConfirmation:()=>e({pendingConfirmation:null,isSubmittingConfirmation:!1}),dismissConfirmationIfMatches:n=>{let{pendingConfirmation:r}=t();!r||r.requestId!==n||e({pendingConfirmation:null,isSubmittingConfirmation:!1})},updateConfirmation:(n,r)=>{let{pendingConfirmation:i}=t();!i||i.requestId!==n||e({pendingConfirmation:{...i,...r}})},setInlineConfirmationToolCallId:t=>e({inlineConfirmationToolCallId:t}),showContactRequest:t=>e({pendingContactRequest:t,isSubmittingContactRequest:!1,contactRequestAccepted:!1}),submitContactRequestStart:()=>e({isSubmittingContactRequest:!0}),submitContactRequestEnd:()=>e({isSubmittingContactRequest:!1}),dismissContactRequest:()=>e({pendingContactRequest:null,isSubmittingContactRequest:!1}),acceptContactRequest:()=>e({contactRequestAccepted:!0}),showQuestion:t=>e({pendingQuestion:t,isSubmittingQuestion:!1,isQuestionCardDismissed:!1}),submitQuestionStart:()=>e({isSubmittingQuestion:!0}),submitQuestionEnd:()=>e({isSubmittingQuestion:!1}),dismissQuestion:()=>e({pendingQuestion:null,isSubmittingQuestion:!1,isQuestionCardDismissed:!1}),dismissQuestionCard:()=>e({isQuestionCardDismissed:!0}),resetSecretAndConfirmation:()=>e({pendingSecret:null,isSubmittingSecret:!1,secretSaved:!1,pendingConfirmation:null,isSubmittingConfirmation:!1,inlineConfirmationToolCallId:null}),addUnknownNudgeToolCallId:n=>{let r=t().unknownNudgeToolCallIds;r.has(n)||e({unknownNudgeToolCallIds:new Set([...r,n])})},removeUnknownNudgeToolCallId:n=>{let r=t().unknownNudgeToolCallIds;if(!r.has(n))return;let i=new Set(r);i.delete(n),e({unknownNudgeToolCallIds:i})},resetAll:()=>e(yt)})));function bt(e){if(e.length===0)return``;let t=e[0]??``;for(let n=1;n<e.length;n++){let r=t[t.length-1],i=e[n][0];r&&i&&r!==` `&&r!==`
2
+ `&&r!==` `&&i!==` `&&i!==`
3
+ `&&i!==` `&&(t+=` `),t+=e[n]}return t}function xt(e){let t=[];for(let n of e?.contentBlocks??[])n.type===`text`&&t.push(n.text);return bt(t)}function St(e){if(!(!e||e.length===0))return e.map(e=>{let t=null;return e.data?t=`data:${e.mimeType};base64,${e.data}`:e.thumbnailData&&(t=`data:image/jpeg;base64,${e.thumbnailData}`),{id:e.id??e.filename,filename:e.filename,mimeType:e.mimeType,sizeBytes:e.sizeBytes??(e.data?Math.floor(e.data.length*3/4):0),previewUrl:t}})}function F(e){let t=e[e.length-1];return!!t&&t.role===`assistant`}function Ct(e,t){if(!t)return null;let n=e.length-1;for(;n>=0&&e[n].role===`user`&&e[n].queueStatus===`queued`;)n--;let r=e[n];return!r||r.role!==`assistant`?null:r.id}function I(e,t){return e.findIndex(e=>e.role===`assistant`&&(e.id===t||!!e.mergedMessageIds?.includes(t)))}function L(e,t){if(!t||e.id===t)return e;let n=e.mergedMessageIds??[];return n.includes(t)?e:{...e,mergedMessageIds:[...n,t]}}function R(e,t=Date.now()){if(!e.toolCalls?.some(e=>p(e)))return null;let n=t;return{toolCalls:e.toolCalls.map(e=>p(e)?{...e,completedAt:n}:e),contentBlocks:e.contentBlocks?.map(e=>e.type===`tool_use`&&p(e.toolCall)?{type:`tool_use`,toolCall:{...e.toolCall,completedAt:n}}:e)}}function wt(e,t,n){return e.map(e=>e.id===t?{...e,queuePosition:n}:e)}function Tt(e,t){return e.map(e=>e.id===t?{...e,queueStatus:void 0,queuePosition:void 0}:e)}function Et(e,t){return e.filter(e=>e.id!==t)}function Dt(e,t,n,r=Date.now()){return[...e,{id:n??crypto.randomUUID(),...n?{}:{isOptimistic:!0},role:`assistant`,textSegments:[t],contentOrder:[{type:`text`,id:`0`}],contentBlocks:[{type:`text`,text:t}],timestamp:r}]}function Ot(e,t,n){n&&e[e.length-1]?.type===t.type?e[e.length-1]=t:e.push(t)}function z(e,t,n,r){let i=L(e[t],r),a=[...i.textSegments??[]],o=[...i.contentOrder??[]],s=[...i.contentBlocks??[]],c=o[o.length-1]?.type===`text`&&a.length>0;c?a[a.length-1]=a[a.length-1]+n:(o.push({type:`text`,id:String(a.length)}),a.push(n)),Ot(s,{type:`text`,text:a[a.length-1]},c);let l=[...e];return l[t]={...i,textSegments:a,contentOrder:o,contentBlocks:s},l}function B(e,t,n,r){let i=L(e[t],r),a=[...i.thinkingSegments??[]],o=[...i.contentOrder??[]],s=[...i.contentBlocks??[]],c=o[o.length-1]?.type===`thinking`&&a.length>0;c?a[a.length-1]=a[a.length-1]+n:(o.push({type:`thinking`,id:String(a.length)}),a.push(n)),Ot(s,{type:`thinking`,thinking:a[a.length-1]},c);let l=[...e];return l[t]={...i,thinkingSegments:a,contentOrder:o,contentBlocks:s},l}function kt(e,t,n,r,i=Date.now()){if(n){let a=I(e,n);if(a>=0)return z(e,a,t,n);if(F(e))return z(e,e.length-1,t,n);let o=r?.();return o?z([...e,o],e.length,t,n):Dt(e,t,n,i)}return F(e)?z(e,e.length-1,t,void 0):Dt(e,t,n,i)}function At(e,t,n,r=Date.now()){return[...e,{id:n??crypto.randomUUID(),...n?{}:{isOptimistic:!0},role:`assistant`,thinkingSegments:[t],contentOrder:[{type:`thinking`,id:`0`}],contentBlocks:[{type:`thinking`,thinking:t}],timestamp:r}]}function jt(e,t,n,r,i=Date.now()){if(n){let a=I(e,n);if(a>=0)return B(e,a,t,n);if(F(e))return B(e,e.length-1,t,n);let o=r?.();return o?B([...e,o],e.length,t,n):At(e,t,n,i)}return F(e)?B(e,e.length-1,t,void 0):At(e,t,n,i)}function Mt(e,t=Date.now()){let n=!1,r=e.map(e=>{if(e.role!==`assistant`)return e;let r=R(e,t);return r?(n=!0,{...e,...r}):e});return n?r:e}function Nt(e,t,n=Date.now()){let r=e[e.length-1],i=St(t.attachments);if(r?.role!==`assistant`)return i?[...e,{id:t.messageId??crypto.randomUUID(),...t.messageId?{}:{isOptimistic:!0},role:`assistant`,timestamp:n,attachments:i}]:e;let a=R(r,n),o=r.isOptimistic===!0&&!!t.messageId;return[...e.slice(0,-1),{...r,...o?{id:t.messageId,isOptimistic:!1}:{},...i?{attachments:i}:{},...a??{}}]}function Pt(e,t){if(t!==void 0)return e.findIndex(e=>e.role===`user`&&e.clientMessageId===t);for(let t=e.length-1;t>=0;t--){let n=e[t];if(n&&n.role===`user`&&n.isOptimistic===!0)return t}return-1}function Ft(e,t,n=Date.now()){let r=t.messageId;if(r!==void 0&&e.some(e=>e.role===`user`&&(e.id===r||e.mergedMessageIds?.includes(r))))return e;let i=Pt(e,t.clientMessageId);if(i!==-1){if(r===void 0)return e;let t=[...e];return t[i]={...t[i],id:r,isOptimistic:!1,queueStatus:void 0,queuePosition:void 0},t}return[...e,{id:r??crypto.randomUUID(),...r===void 0?{isOptimistic:!0}:{},role:`user`,textSegments:[t.text],contentOrder:[{type:`text`,id:`0`}],contentBlocks:[{type:`text`,text:t.text}],timestamp:n}]}function It(e,t=Date.now()){let n=e.length-1,r=e[n];if(!r||r.role!==`assistant`)return e;let i=R(r,t);if(!(xt(r).trim().length>0||r.thinkingSegments!=null&&r.thinkingSegments.length>0||r.toolCalls!=null&&r.toolCalls.length>0||r.surfaces!=null&&r.surfaces.length>0))return e.slice(0,-1);let a=[...e];return a[n]={...r,...i??{}},a}function V(e,t){let n=[...e??[]],r=n.findIndex(e=>e.type===`tool_use`&&e.toolCall.id===t.id);return r===-1?n.push({type:`tool_use`,toolCall:t}):n[r]={type:`tool_use`,toolCall:t},n}function H(e,t,n,r){let i=L(e[t],r),a=i.toolCalls?.findIndex(e=>e.id===n.id)??-1,o=[...e];if(a!==-1){let e=[...i.toolCalls??[]],r={...e[a],...n};return e[a]=r,o[t]={...i,toolCalls:e,contentBlocks:V(i.contentBlocks,r)},o}return o[t]={...i,toolCalls:[...i.toolCalls??[],n],contentOrder:[...i.contentOrder??[],{type:`toolCall`,id:n.id}],contentBlocks:V(i.contentBlocks,n)},o}function Lt(e,t,n,r=Date.now()){if(n){let r=I(e,n);if(r>=0)return H(e,r,t,n);if(F(e))return H(e,e.length-1,t,n)}else if(F(e))return H(e,e.length-1,t);return[...e,{id:n??crypto.randomUUID(),...n?{}:{isOptimistic:!0},role:`assistant`,toolCalls:[t],contentOrder:[{type:`toolCall`,id:t.id}],contentBlocks:[{type:`tool_use`,toolCall:t}],timestamp:r}]}function Rt(e,t){let n=-1,r=-1;if(t.toolUseId)for(let i=e.length-1;i>=0;i--){let a=e[i];if(a?.role!==`assistant`||!a.toolCalls?.length)continue;let o=a.toolCalls.findIndex(e=>e.id===t.toolUseId);if(o!==-1){n=i,r=o;break}}if(n===-1){if(n=e.findLastIndex(e=>e.role===`assistant`&&e.toolCalls&&e.toolCalls.length>0),n===-1)return e;let t=e[n];if(!t?.toolCalls)return e;r=t.toolCalls.findLastIndex(e=>p(e))}if(r===-1)return e;let i=e[n],a=i.toolCalls[r];if(!a)return e;let o=t.imageDataList===void 0?t.imageData===void 0?void 0:[t.imageData]:t.imageDataList,s=t.imageData===void 0?o?.[0]:t.imageData,c=[...i.toolCalls],l={...a,result:t.result,isError:t.isError,riskLevel:t.riskLevel,riskReason:t.riskReason,matchedTrustRuleId:t.matchedTrustRuleId,approvalMode:t.approvalMode,approvalReason:t.approvalReason,riskThreshold:t.riskThreshold,riskAllowlistOptions:t.riskAllowlistOptions,riskScopeOptions:t.riskScopeOptions,riskDirectoryScopeOptions:t.riskDirectoryScopeOptions,...s===void 0?{}:{imageData:s},...o===void 0?{}:{imageDataList:o},...t.activityMetadata===void 0?{}:{activityMetadata:t.activityMetadata},completedAt:t.completedAt??Date.now(),streamedOutput:void 0};c[r]=l;let u=[...e];return u[n]={...i,toolCalls:c,contentBlocks:V(i.contentBlocks,l)},u}var zt=16384;function Bt(e){return e.length<=16384?e:e.slice(e.length-zt)}function Vt(e,t){if(!t.chunk)return e;let n=-1,r=-1;if(t.toolUseId){if(t.messageId){let i=I(e,t.messageId);if(i>=0){let a=e[i].toolCalls?.findIndex(e=>e.id===t.toolUseId)??-1;a!==-1&&(n=i,r=a)}}if(n===-1)for(let i=e.length-1;i>=0;i--){let a=e[i];if(a?.role!==`assistant`||!a.toolCalls?.length)continue;let o=a.toolCalls.findIndex(e=>e.id===t.toolUseId);if(o!==-1){n=i,r=o;break}}}else{if(n=e.findLastIndex(e=>e.role===`assistant`&&e.toolCalls&&e.toolCalls.length>0),n===-1)return e;let t=e[n];if(!t?.toolCalls)return e;r=t.toolCalls.findLastIndex(e=>p(e))}if(n===-1||r===-1)return e;let i=e[n],a=i.toolCalls[r];if(!a)return e;let o={...a,streamedOutput:Bt((a.streamedOutput??``)+t.chunk)},s=[...i.toolCalls];s[r]=o;let c=[...e];return c[n]={...i,toolCalls:s,contentBlocks:V(i.contentBlocks,o)},c}function Ht(e,t,n,r=Date.now()){let i=-1;if(n&&(i=I(e,n)),i===-1){for(let t=e.length-1;t>=0;t--)if(e[t]?.role===`assistant`){i=t;break}}let a=[...e];if(i===-1)a.push({id:n??crypto.randomUUID(),...n?{}:{isOptimistic:!0},role:`assistant`,surfaces:[t],contentOrder:[{type:`surface`,id:t.surfaceId}],contentBlocks:[{type:`surface`,surface:t}],timestamp:r});else{let r=L(e[i],n);if(r.contentOrder?.some(e=>e.type===`surface`&&e.id===t.surfaceId)||r.surfaces?.some(e=>e.surfaceId===t.surfaceId))return e;a[i]={...r,surfaces:[...r.surfaces??[],t],contentOrder:[...r.contentOrder??[],{type:`surface`,id:t.surfaceId}],contentBlocks:M(r.contentBlocks,t)}}return a}function Ut(e,t,n){for(let r=e.length-1;r>=0;r--){let i=e[r],a=i.surfaces?.findIndex(e=>e.surfaceId===t)??-1;if(a===-1)continue;let o=i.surfaces[a],s={...o.data,...n};o.data.templateData&&n.templateData&&typeof o.data.templateData==`object`&&typeof n.templateData==`object`&&(s.templateData={...o.data.templateData,...n.templateData});let c={...o,data:s},l=[...e],u=[...i.surfaces];return u[a]=c,l[r]={...i,surfaces:u,contentBlocks:M(i.contentBlocks,c)},l}return e}function Wt(e,t){for(let n=e.length-1;n>=0;n--){if(!e[n].surfaces?.some(e=>e.surfaceId===t))continue;let r=[...e];return r[n]={...e[n],surfaces:e[n].surfaces?.filter(e=>e.surfaceId!==t),contentOrder:e[n].contentOrder?.filter(e=>!(e.type===`surface`&&e.id===t)),contentBlocks:Xe(e[n].contentBlocks,t)},r}return e}function Gt(e,t,n){for(let r=e.length-1;r>=0;r--){let i=e[r].surfaces?.find(e=>e.surfaceId===t);if(!i)continue;let a={...i,completed:!0,completionSummary:n},o=[...e];return o[r]={...e[r],surfaces:e[r].surfaces?.map(e=>e.surfaceId===t?a:e),contentBlocks:M(e[r].contentBlocks,a)},o}return e}var Kt=[`choice`,`oauth_connect`,`form`,`confirmation`,`file_upload`,`card`,`list`,`table`,`browser_view`,`task_preferences`];function qt(e){return e==null||e.hasPendingConfirmation||e.hasUncompletedVisibleSurface}function Jt(e,t){let n=!1,r=e.map(e=>{let r=f(e,e=>e.pendingConfirmation?.requestId===t?{...e,pendingConfirmation:void 0}:e);return r!==e&&(n=!0),r});return n?r:e}function Yt(e){let t=!1,n=e.map(e=>{let n=f(e,e=>e.pendingConfirmation?{...e,pendingConfirmation:void 0}:e);return n!==e&&(t=!0),n});return t?n:e}function Xt(e,t){let n=new Set;for(let e of t)if(e.surfaces)for(let t of e.surfaces)oe(t)&&n.add(t.surfaceId);return n.size===0?{updatedMessages:e,dismissedIds:n}:{updatedMessages:e.map(e=>Qe(e,e=>!n.has(e.surfaceId))),dismissedIds:n}}function Zt(e,t,n,r){for(let i=e.length-1;i>=0;i--){let a=e[i].surfaces?.find(e=>e.surfaceId===t);if(!a)continue;if(!Kt.includes(a.surfaceType))return e;let o=a.actions?.find(e=>e.id===n),s=n===`cancel`||n===`dismiss`||o?.style===`secondary`,c=[...e];return c[i]=Ze(e[i],e=>e.surfaceId===t?{...e,completed:!0,completionSummary:s?`Cancelled`:r??o?.label??void 0}:e),c}return e}function Qt(e,t,n){return e&&ae[e]||t||n}function U(e){return typeof e==`string`?e:void 0}function $t(e){return typeof e==`boolean`?e:void 0}function en(e){return Array.isArray(e)?e:void 0}function tn(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:void 0}function W(e){return Array.isArray(e)?e:void 0}function nn(e){return{requestId:typeof e.requestId==`string`?e.requestId:``,label:U(e.label),service:U(e.service),field:U(e.field),description:U(e.description),placeholder:U(e.placeholder),allowOneTimeSend:$t(e.allowOneTimeSend),allowedTools:en(e.allowedTools),allowedDomains:en(e.allowedDomains),purpose:U(e.purpose)}}function rn(e){let t={requestId:typeof e.requestId==`string`?e.requestId:``,title:U(e.title),description:U(e.description),toolName:U(e.toolName),riskLevel:U(e.riskLevel),riskReason:U(e.riskReason),allowlistOptions:W(e.allowlistOptions),scopeOptions:W(e.scopeOptions),directoryScopeOptions:W(e.directoryScopeOptions),persistentDecisionsAllowed:$t(e.persistentDecisionsAllowed),input:tn(e.input),toolUseId:U(e.toolUseId)};return{confData:t,state:{...t,confirmLabel:U(e.confirmLabel),denyLabel:U(e.denyLabel)}}}function an(){return`turn-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}function on(e,t){let n=Date.parse(e);return Number.isFinite(n)?n:typeof t==`number`?t:0}function sn(e,t,n){switch(t.type){case`assistant_text_delta`:return kt(e,t.text,t.messageId,void 0,n);case`assistant_thinking_delta`:return jt(e,t.thinking,t.messageId,void 0,n);case`message_complete`:return Nt(e,t,n);case`user_message_echo`:return Ft(e,{text:t.text,messageId:t.messageId,clientMessageId:t.clientMessageId},n);case`assistant_activity_state`:return t.phase===`idle`?Mt(e,n):e;case`conversation_error`:return It(e,n);case`tool_use_preview_start`:return Lt(e,{id:t.toolUseId,name:t.toolName,input:{},previewStartedAt:typeof t.previewStartedAt==`number`?t.previewStartedAt:n},t.messageId,n);case`tool_use_start`:return Lt(e,{id:t.toolUseId??`tool-${n}`,name:t.toolName,input:t.input,startedAt:`startedAt`in t&&typeof t.startedAt==`number`?t.startedAt:n,...`previewStartedAt`in t&&typeof t.previewStartedAt==`number`?{previewStartedAt:t.previewStartedAt}:{}},t.messageId,n);case`tool_result`:return Rt(e,{toolUseId:t.toolUseId,result:t.result,isError:t.isError,riskLevel:t.riskLevel,riskReason:t.riskReason,matchedTrustRuleId:t.matchedTrustRuleId,approvalMode:t.approvalMode,approvalReason:t.approvalReason,riskThreshold:t.riskThreshold,riskAllowlistOptions:t.riskAllowlistOptions,riskScopeOptions:t.riskScopeOptions,riskDirectoryScopeOptions:t.riskDirectoryScopeOptions,imageData:t.imageData,imageDataList:t.imageDataList,activityMetadata:t.activityMetadata,completedAt:`completedAt`in t&&typeof t.completedAt==`number`?t.completedAt:n});case`tool_output_chunk`:return t.chunk?Vt(e,{chunk:t.chunk,toolUseId:t.toolUseId,messageId:t.messageId}):e;case`ui_surface_show`:{let r={surfaceId:t.surfaceId,surfaceType:t.surfaceType,title:t.title,data:t.data,actions:t.actions,display:t.display};return r.display=re(r),Ht(e,r,t.messageId,n)}case`ui_surface_update`:return Ut(e,t.surfaceId,t.data);case`ui_surface_dismiss`:return Wt(e,t.surfaceId);case`ui_surface_complete`:return Gt(e,t.surfaceId,t.summary);case`confirmation_request`:return ie(e,{requestId:t.requestId,toolName:t.toolName,riskLevel:t.riskLevel,riskReason:t.riskReason,allowlistOptions:t.allowlistOptions,scopeOptions:t.scopeOptions,directoryScopeOptions:t.directoryScopeOptions,persistentDecisionsAllowed:t.persistentDecisionsAllowed,input:t.input,toolUseId:t.toolUseId}).updatedMessages;case`interaction_resolved`:return t.kind===`confirmation`||t.kind===`acp_confirmation`?Jt(e,t.requestId):e;default:return e}}function cn(e,t){let{seq:n}=t;if(typeof n==`number`&&typeof e.seq==`number`&&n<=e.seq)return e;let r=on(t.emittedAt,n),i=sn(e.messages,t.message,r),a=typeof n==`number`?Math.max(e.seq??-1,n):e.seq??null;return{...e,messages:i,seq:a}}function ln(e,t){return t.reduce(cn,e)}function un(e,t){return t===null?e:ln(e,t)}function dn(e){return[...new Set([e.id,...e.mergedMessageIds??[]].filter(e=>typeof e==`string`&&e.length>0))]}function G(e){let t=dn(e);return e.clientMessageId&&!t.includes(e.clientMessageId)?[...t,e.clientMessageId]:t}var fn={hasMore:!1,oldestTimestamp:null,isLoadingOlder:!1};function pn(){return{snapshot:null,optimisticSends:[],error:null,notice:null,isLoadingHistory:!0,transcriptPagination:{...fn},contextWindowUsage:null,ephemeralMetaResults:[],compactionCircuitOpenUntil:null,dismissedSurfaceIds:new Set,streamingMessageIds:new Set,pendingQueuedMessageIds:[],requestIdToMessageId:new Map,pendingLocalDeletions:new Set,confirmationToolCallMap:new Map,expandedToolCallIds:new Set,expandedCardIds:new Map,contextWindowUsageByConversation:new Map,previousConversationId:null,previousAssistantId:null,draftConversationIdResolution:!1}}function K(e,t){return typeof t==`function`?t(e):t}function mn(e,t){if(e.length===0)return e;let n=new Set;for(let e of t)for(let t of G(e))n.add(t);let r=e.filter(e=>!G(e).some(e=>n.has(e)));return r.length===e.length?e:r}var q=c(s()((e,t)=>({...pn(),seedSnapshot:(t,n)=>{let r=un(n,be(t,n.seq??null));e(e=>({snapshot:r,optimisticSends:mn(e.optimisticSends,r.messages)}))},applyEnvelopeToSnapshot:t=>e(e=>e.snapshot?{snapshot:cn(e.snapshot,t)}:{}),addOptimisticSend:t=>e(e=>({optimisticSends:[...e.optimisticSends,t]})),clearOptimisticSend:t=>e(e=>({optimisticSends:e.optimisticSends.filter(e=>e.clientMessageId!==t)})),setOptimisticSends:t=>e(e=>({optimisticSends:K(e.optimisticSends,t)})),patchSnapshotMessages:t=>e(e=>e.snapshot?{snapshot:{...e.snapshot,messages:t(e.snapshot.messages)}}:{}),setError:t=>e(e=>({error:K(e.error,t)})),setNotice:t=>e(e=>({notice:K(e.notice,t)})),setIsLoadingHistory:t=>e({isLoadingHistory:t}),setTranscriptPagination:t=>e(e=>({transcriptPagination:K(e.transcriptPagination,t)})),setContextWindowUsage:t=>e(e=>({contextWindowUsage:K(e.contextWindowUsage,t)})),setCompactionCircuitOpenUntil:t=>e(e=>({compactionCircuitOpenUntil:K(e.compactionCircuitOpenUntil,t)})),switchToConversation:({assistantId:n,activeConversationId:r})=>{let i=t();if(i.draftConversationIdResolution){e({draftConversationIdResolution:!1});return}let a=i.previousConversationId;if(a&&a!==r&&a){let e=P.getState();(e.pendingSecret||e.pendingConfirmation)&&te.getState().addAttentionConversationId(a)}let o=i.previousAssistantId!==null&&i.previousAssistantId!==n,s=o||i.previousAssistantId===null;ee(`conversation_switch_reset`,{assistantId:n,conversationId:r,outgoingConversationId:a??null}),j.getState().handleConversationSwitch({previousKey:a??null,nextKey:r}),Ee.getState().resetTurn(),P.getState().resetAll(),o?j.getState().fullReset():j.getState().resetAttachments();let c=s?st(n):i.contextWindowUsageByConversation;e({snapshot:null,optimisticSends:[],ephemeralMetaResults:[],error:N(i.error)?i.error:null,notice:null,isLoadingHistory:!0,transcriptPagination:{...fn},contextWindowUsage:c.get(r)??null,compactionCircuitOpenUntil:null,dismissedSurfaceIds:tt(n,r),streamingMessageIds:new Set,pendingQueuedMessageIds:[],requestIdToMessageId:new Map,pendingLocalDeletions:new Set,confirmationToolCallMap:new Map,expandedToolCallIds:new Set,expandedCardIds:new Map,contextWindowUsageByConversation:c,previousConversationId:r,previousAssistantId:n,draftConversationIdResolution:!1})},markDraftResolution:()=>e({draftConversationIdResolution:!0}),setConfirmationToolCall:(t,n)=>e(e=>{let r=new Map(e.confirmationToolCallMap);return r.set(t,n),{confirmationToolCallMap:r}}),deleteConfirmationToolCall:t=>e(e=>{let n=new Map(e.confirmationToolCallMap);return n.delete(t),{confirmationToolCallMap:n}}),clearConfirmationToolCallMap:()=>e({confirmationToolCallMap:new Map}),addDismissedSurfaceId:t=>e(e=>{let n=new Set(e.dismissedSurfaceIds);return n.add(t),{dismissedSurfaceIds:n}}),addDismissedSurfaceIds:t=>e(e=>{let n=new Set(e.dismissedSurfaceIds);for(let e of t)n.add(e);return{dismissedSurfaceIds:n}}),batchUpdateStreamingMessageIds:(t,n)=>e(e=>{let r=new Set(e.streamingMessageIds);for(let e of t)r.add(e);for(let e of n)r.delete(e);return{streamingMessageIds:r}}),pushPendingQueuedMessageId:t=>e(e=>({pendingQueuedMessageIds:[...e.pendingQueuedMessageIds,t]})),shiftPendingQueuedMessageId:()=>{let n=t().pendingQueuedMessageIds;if(n.length===0)return;let[r,...i]=n;return e({pendingQueuedMessageIds:i}),r},setRequestIdMapping:(t,n)=>e(e=>{let r=new Map(e.requestIdToMessageId);return r.set(t,n),{requestIdToMessageId:r}}),popRequestIdMapping:n=>{let r=t().requestIdToMessageId,i=r.get(n);if(i!==void 0){let t=new Map(r);t.delete(n),e({requestIdToMessageId:t})}return i},addPendingLocalDeletion:t=>e(e=>{let n=new Set(e.pendingLocalDeletions);return n.add(t),{pendingLocalDeletions:n}}),consumePendingLocalDeletion:n=>{let r=t().pendingLocalDeletions;if(!r.has(n))return!1;let i=new Set(r);return i.delete(n),e({pendingLocalDeletions:i}),!0},setExpandedToolCallId:(t,n)=>e(e=>{let r=new Set(e.expandedToolCallIds);return n?r.add(t):r.delete(t),{expandedToolCallIds:r}}),setExpandedCardId:(t,n)=>e(e=>{let r=new Map(e.expandedCardIds);return r.set(t,n),{expandedCardIds:r}}),setContextWindowUsageForConversation:(t,n)=>e(e=>{let r=new Map(e.contextWindowUsageByConversation);return r.set(t,n),{contextWindowUsageByConversation:r}}),addEphemeralMetaResult:t=>e(e=>({ephemeralMetaResults:[...e.ephemeralMetaResults,t]})),clearEphemeralMetaResults:()=>e(e=>e.ephemeralMetaResults.length===0?e:{ephemeralMetaResults:[]})})));function hn(e,t){if(t.length===0)return e;let n=new Map;for(let e of t)for(let t of G(e))n.has(t)||n.set(t,e);let r=[],i=new Set;for(let t of e){let e;for(let r of G(t)){let t=n.get(r);if(t){e=t;break}}if(e){i.has(e)||(r.push(e),i.add(e));continue}r.push(t)}for(let e of t)i.has(e)||r.push(e);return r}function gn(){let e=q.use.snapshot(),t=q.use.optimisticSends(),n=q.use.dismissedSurfaceIds();return(0,de.useMemo)(()=>hn(it(e?.messages,n),t),[e,t,n])}function J(e,t,n=`…`){return e.length<=t?e:e.slice(0,t-n.length)+n}function _n(e){if(!e)return null;let t=e.split(`/`),n=t[t.length-1];return!n||n===`.`?null:n}function Y(e,t){return J(e,t,`...`)}function vn(e){if(!e)return null;let t=e.replace(/\s+/g,` `).trim().match(/(?:^|&&\s*|\|\|\s*|;\s*)(?:\S*\/)?assistant\s+browser\s+([^\s;&|]+)/i);if(!t)return null;let n=t[1].toLowerCase();return new Set([`navigate`,`click`,`type`,`screenshot`,`snapshot`,`scroll`,`hover`,`select`,`drag`,`wait`,`back`,`forward`,`refresh`,`close`,`tab`,`press_key`,`wait_for`,`extract`,`fill_credential`]).has(n)?n:`unknown`}function X(e,t){let n=e.toLowerCase();return n!==`bash`&&n!==`host_bash`?null:vn(t)}function yn(e){switch(e){case`navigate`:return`Opened a page`;case`click`:return`Clicked on the page`;case`type`:return`Typed on the page`;case`screenshot`:return`Took a screenshot`;case`snapshot`:return`Captured page snapshot`;case`scroll`:return`Scrolled the page`;case`hover`:return`Hovered on the page`;case`select`:return`Selected on the page`;case`drag`:return`Dragged on the page`;case`wait`:return`Waited for the page`;case`back`:return`Went back`;case`forward`:return`Went forward`;case`refresh`:return`Refreshed the page`;case`close`:return`Closed the tab`;case`tab`:return`Switched tabs`;case`press_key`:return`Pressed a key`;case`wait_for`:return`Waited for a condition`;case`extract`:return`Extracted page content`;case`fill_credential`:return`Filled a credential`;case`unknown`:return`Used the browser`}}function bn(e){switch(e){case`navigate`:return`Opening a page`;case`click`:return`Clicking on the page`;case`type`:return`Typing on the page`;case`screenshot`:return`Taking a screenshot`;case`snapshot`:return`Capturing page snapshot`;case`scroll`:return`Scrolling the page`;case`hover`:return`Hovering on the page`;case`select`:return`Selecting on the page`;case`drag`:return`Dragging on the page`;case`wait`:return`Waiting for the page`;case`back`:return`Going back`;case`forward`:return`Going forward`;case`refresh`:return`Refreshing the page`;case`close`:return`Closing the tab`;case`tab`:return`Switching tabs`;case`press_key`:return`Pressing a key`;case`wait_for`:return`Waiting for a condition`;case`extract`:return`Extracting page content`;case`fill_credential`:return`Filling a credential`;case`unknown`:return`Using the browser`}}function xn(e){switch(e){case`navigate`:case`back`:case`forward`:case`tab`:return`compass`;case`click`:case`hover`:case`select`:case`drag`:case`scroll`:return`compass`;case`screenshot`:case`snapshot`:return`camera`;case`type`:case`press_key`:case`fill_credential`:return`compass`;case`wait`:case`wait_for`:case`refresh`:case`close`:return`compass`;case`extract`:return`compass`;case`unknown`:return`compass`}}function Sn(e,t){let n=e.toLowerCase();if(n===`bash`||n===`host_bash`){let e=t.command??t.cmd;if(typeof e==`string`)return e.replace(/\s+/g,` `).trim()}if(n===`file_read`||n===`host_file_read`||n===`file_write`||n===`host_file_write`||n===`file_edit`||n===`host_file_edit`){let e=t.file_path??t.path??t.filePath;if(typeof e==`string`)return e}if(n===`grep`||n===`glob`){let e=t.pattern??t.query;if(typeof e==`string`)return e}if(n===`web_search`){let e=t.query??t.search;if(typeof e==`string`)return e}return``}function Cn(e,t=``){let n=e.toLowerCase(),r=t.replace(/\s+/g,` `).trim(),i=_n(r),a=X(e,r);if(a)return yn(a);switch(n){case`bash`:case`host_bash`:return r?`Ran \`${Y(r,30)}\``:`Ran a command`;case`file_read`:case`host_file_read`:return i?`Read ${i}`:`Read a file`;case`file_write`:case`host_file_write`:return i?`Wrote ${i}`:`Wrote a file`;case`file_edit`:case`host_file_edit`:return i?`Edited ${i}`:`Edited a file`;case`grep`:return r?`Searched for '${Y(r,25)}'`:`Searched files`;case`glob`:return r?`Searched for ${Y(r,25)}`:`Found files`;case`web_search`:return r?`Searched '${Y(r,25)}'`:`Searched the web`;case`web_fetch`:return`Fetched a webpage`;default:return`Used ${e.replace(/_/g,` `)}`}}function wn(e,t=``,n){let r=X(e,t);if(r)return bn(r);if(n){let t=e.toLowerCase();if(t===`app_create`||t===`app_refresh`||t===`app_update`)return n}switch(e.toLowerCase()){case`bash`:case`host_bash`:return`Running a command`;case`file_read`:case`host_file_read`:return`Reading a file`;case`file_write`:case`host_file_write`:return`Writing a file`;case`file_edit`:case`host_file_edit`:return`Editing a file`;case`grep`:return`Searching files`;case`glob`:return`Finding files`;case`web_search`:return`Searching the web`;case`web_fetch`:return`Fetching a webpage`;case`app_create`:return`Building your app`;case`app_refresh`:case`app_update`:return`Refreshing your app`;default:return`Running ${e.replace(/_/g,` `)}`}}function Tn(e){return e.split(/[_-]+/).filter(e=>e.length>0).map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(` `)}function En(e,t=``){let n=X(e,t);if(n)return xn(n);switch(e.toLowerCase()){case`bash`:case`host_bash`:return`terminal`;case`file_read`:case`host_file_read`:return`file-text`;case`file_write`:case`host_file_write`:return`file-plus`;case`file_edit`:case`host_file_edit`:return`pencil`;case`grep`:case`glob`:case`web_search`:return`search`;case`web_fetch`:return`globe`;default:return`wrench`}}var Dn=80;function Z(e,...t){for(let n of t){let t=e[n];if(typeof t==`string`&&t.trim().length>0)return t}return``}function On(e){if(!e)return``;let t=e.replace(/\/+$/,``),n=t.lastIndexOf(`/`);return n===-1?t:t.slice(n+1)}function kn(e){if(!e.startsWith(`mcp__`))return null;let t=e.slice(5),n=t.indexOf(`__`);if(n===-1)return null;let r=t.slice(0,n),i=t.slice(n+2);return!r||!i?null:{serverName:r,toolMethod:i}}function Q(e,t){let n=t&&typeof t==`object`?t:{},r=e.toLowerCase(),i=Z(n,`activity`,`reason`),a=kn(e);if(a)return{title:`Using ${a.serverName}`,info:a.toolMethod,activity:i,iconName:`plug`};switch(r){case`bash`:case`host_bash`:return{title:`Working`,info:J(Z(n,`command`,`cmd`).replace(/\s+/g,` `).trim(),Dn),activity:i,iconName:`terminal`};case`str_replace_editor`:case`text_editor`:{let e=Z(n,`command`).toLowerCase(),t=On(Z(n,`path`,`file_path`,`filePath`));return e===`view`?{title:`Reading`,info:t,activity:i,iconName:`file`}:{title:`Editing`,info:t,activity:i,iconName:`pen`}}case`computer`:return{title:`Using computer`,info:Z(n,`action`),activity:i,iconName:`monitor`};case`skill_execute`:{let e=Z(n,`tool`);if(e){let t=n.input,r=Q(e,t);return{...r,activity:i||r.activity}}return{title:`Using a skill`,info:Z(n,`skill`,`name`,`skillName`),activity:i,iconName:`sparkle`}}case`skill`:case`skill_invoke`:case`skill_load`:return{title:`Using a skill`,info:Z(n,`skill`,`name`,`skillName`),activity:i,iconName:`sparkle`};case`subagent_spawn`:return{title:`Spawning subagent`,info:Z(n,`label`,`objective`,`task`),activity:i,iconName:`user-plus`};default:return{title:e?`Running ${Tn(e)}`:`Running tool`,info:``,activity:i,iconName:`bolt`}}}function An(e){return Q(e.name,e.input)}var jn=[{open:`<thinking>`,close:`</thinking>`},{open:`<think>`,close:`</think>`}];function Mn(e){return jn.some(t=>e.includes(t.open))}function Nn(e){if(!Mn(e))return null;let t=[],n=e=>{e.trim()&&t.push({type:`text`,text:e})},r=e=>{let n=e.trim();n&&t.push({type:`thinking`,thinking:n})},i=0;for(;;){let a=-1,o;for(let t of jn){let n=e.indexOf(t.open,i);n!==-1&&(a===-1||n<a)&&(a=n,o=t)}if(!o)break;n(e.slice(i,a));let s=a+o.open.length,c=e.indexOf(o.close,s);if(c===-1)return r(e.slice(s)),t;r(e.slice(s,c)),i=c+o.close.length}return n(e.slice(i)),t}function Pn(e){return typeof e.id==`string`&&e.id.length>0}function Fn(e){return e.some(e=>e.type===`text`&&Mn(e.text))?e.flatMap(e=>{let t=e.type===`text`?Nn(e.text):null;return t?t.map(e=>e.type===`thinking`?{type:`thinking`,thinking:e.thinking}:{type:`text`,text:e.text}):[e]}):e}function In(e,t){let n=t?.splitInlineThinking?Fn(e):e,r=[],i=null,a=()=>(i||(i={type:`activity`,items:[]},r.push(i)),i);for(let e of n)if(e.type===`thinking`){let t=a(),n=t.items[t.items.length-1];n?.type===`thinking`?(n.thinking=n.thinking?`${n.thinking}\n${e.thinking}`:e.thinking,e.startedAt!=null&&(n.startedAt=n.startedAt==null?e.startedAt:Math.min(n.startedAt,e.startedAt)),e.completedAt!=null&&(n.completedAt=n.completedAt==null?e.completedAt:Math.max(n.completedAt,e.completedAt))):t.items.push({type:`thinking`,thinking:e.thinking,startedAt:e.startedAt,completedAt:e.completedAt})}else if(e.type===`tool_use`){if(!Pn(e.toolCall))continue;a().items.push({type:`tool_use`,toolCall:e.toolCall})}else (e.type===`text`||e.type===`surface`)&&(i=null,r.push(e));return r}function Ln(e){return!e.pendingConfirmation&&(e.name===`ui_show`||e.name===`ui_update`||e.name===`ui_dismiss`)}function Rn(e){if(e.name===`subagent_spawn`)return!0;if(e.name!==`skill_execute`)return!1;let t=e.input;return typeof t!=`object`||!t?!1:t.tool===`subagent_spawn`}function zn(e){if(e.name===`run_workflow`)return!0;if(e.name!==`skill_execute`)return!1;let t=e.input;return typeof t!=`object`||!t?!1:t.tool===`run_workflow`}function Bn(e){if(e.name===`acp_spawn`)return!0;if(e.name!==`skill_execute`)return!1;let t=e.input;return typeof t!=`object`||!t?!1:t.tool===`acp_spawn`}function Vn(e){if(e.name!==`bash`&&e.name!==`host_bash`)return!1;let t=e.input;return typeof t!=`object`||!t?!1:t.background===!0}var Hn=new Set([`low`,`medium`,`high`]);function Un(e){let t=e?.toLowerCase();return t&&Hn.has(t)?t:`medium`}function Wn(e){switch(e?.toLowerCase()){case`low`:return{bg:`bg-[var(--system-positive-strong)]`,text:`text-white`,label:`Low`};case`medium`:return{bg:`bg-[var(--system-mid-strong)]`,text:`text-black`,label:`Medium`};case`high`:return{bg:`bg-[var(--system-negative-strong)]`,text:`text-white`,label:`High`};case`workspace`:return{bg:`bg-[var(--surface-lift)]`,text:`text-[var(--content-secondary)]`,border:`border border-[var(--border-element)]`,label:`Workspace`};default:return{bg:`bg-[var(--content-secondary)]`,text:`text-white`,label:e??`Unknown`}}}function Gn(e){switch(e?.toLowerCase()){case`low`:return{bg:`bg-[var(--system-positive-weak)]`,text:`text-[var(--system-positive-strong)]`,label:`Low`};case`medium`:return{bg:`bg-[var(--system-mid-weak)]`,text:`text-[var(--system-mid-strong)]`,label:`Medium`};case`high`:return{bg:`bg-[var(--system-negative-weak)]`,text:`text-[var(--system-negative-strong)]`,label:`High`};case`workspace`:return{bg:`bg-[var(--surface-lift)]`,text:`text-[var(--content-secondary)]`,label:`Workspace`};default:return{bg:`bg-[var(--surface-lift)]`,text:`text-[var(--content-secondary)]`,label:e?e.charAt(0).toUpperCase()+e.slice(1):`Unknown`}}}var Kn={unknown:2,low:0,medium:1,high:2},qn={none:-1,low:0,medium:1,high:2};function Jn(e,t,n){return e?.toLowerCase()!==`auto`||!n?!0:(Kn[(t??``).toLowerCase()]??-1)<=(qn[n.toLowerCase()]??-1)}function Yn(e){switch(e){case`trust_rule_allowed`:return`· Auto-approved · Trust rule matched`;case`sandbox_auto_approve`:return null;case`platform_auto_approve`:return`· Auto-approved · Platform session`;default:return null}}function Xn(e,t){return e===`sandbox_auto_approve`?{displayLevel:`workspace`,inherentRisk:t}:{displayLevel:t??`unknown`}}var $=a();function Zn({level:e,className:t,onClick:n}){if(!e)return null;let{bg:r,text:i,label:a}=Gn(e),s=m(`inline-flex items-center justify-center rounded-[100px] px-[6px] pt-[2px] pb-[3px]`,r,t);return n?(0,$.jsx)(`button`,{type:`button`,"data-testid":`risk-badge`,"data-risk-level":e,className:m(s,`cursor-pointer hover:opacity-80`),onClick:e=>{e.stopPropagation(),n()},children:(0,$.jsx)(o,{variant:`label-medium-default`,className:i,children:a})}):(0,$.jsx)(`span`,{"data-testid":`risk-badge`,"data-risk-level":e,className:s,children:(0,$.jsx)(o,{variant:`label-medium-default`,className:i,children:a})})}function Qn({Glyph:e,icon:t,title:n,headerTrailing:r,headerActions:a,closeLabel:s=`Close panel`,closeVariant:c=`ghost`,onClose:l,children:d}){return(0,$.jsxs)(`div`,{className:`flex h-full flex-col overflow-hidden rounded-xl bg-[var(--surface-lift)]`,children:[(0,$.jsxs)(`div`,{className:`flex shrink-0 items-center gap-3 border-b border-[var(--border-base)] px-5 py-4`,children:[t??(e?(0,$.jsx)(e,{className:`h-5 w-5 shrink-0 text-[var(--content-secondary)]`,"aria-hidden":!0}):null),(0,$.jsx)(o,{variant:`title-medium`,className:`min-w-0 shrink truncate py-0.5 leading-snug text-[var(--content-default)]`,children:n}),r,(0,$.jsx)(`span`,{className:`flex-1`}),a,(0,$.jsx)(i,{variant:c===`outlined`?`outlined`:`ghost`,iconOnly:(0,$.jsx)(u,{}),onClick:l,"aria-label":s,tooltip:`Close`,className:`shrink-0${c===`outlined`?` rounded-lg`:``}`})]}),(0,$.jsx)(`div`,{className:`flex-1 overflow-y-auto px-5 py-5`,children:d})]})}export{j as $,Xt as A,F as B,hn as C,Jt as D,G as E,qt as F,_t as G,P as H,Tt as I,nt as J,N as K,Ct as L,rn as M,nn as N,Yt as O,Qt as P,Ke as Q,Et as R,gn as S,dn as T,gt as U,xt as V,vt as W,Ye as X,Ze as Y,qe as Z,wn as _,Wn as a,ye as at,Tn as b,In as c,ge as ct,zn as d,le as dt,we as et,Rn as f,ce as ft,Sn as g,Q as h,Yn as i,ve as it,an as j,Zt as k,Bn as l,me as lt,An as m,Zn as n,Ee as nt,Un as o,he as ot,Ln as p,se as pt,ct as q,Xn as r,xe as rt,Jn as s,_e as st,Qn as t,Te as tt,Vn as u,ue as ut,En as v,q as w,J as x,Cn as y,wt as z};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{a as t,m as n,o as r}from"./capture-error-Hr1Yo2kx.js";import{t as i}from"./react-DJZBPgpf.js";import{t as a}from"./button-D7s2Q_uG.js";import{d as o,h as s,r as c}from"./chunk-5KNZJZUH-DdS6bb-3.js";import{n as l}from"./QueryClientProvider-DKhXIxGb.js";import{t as u}from"./useQuery-B45lW1Kk.js";import{t as d}from"./jsx-runtime-CVSDxk6A.js";import{t as f}from"./cn-DvW5mxZR.js";import{t as p}from"./dropdown-CL8VmqrY.js";import"./src-CK6bncSg.js";import{t as m}from"./confirm-dialog-CfOXCE1N.js";import{t as h}from"./tag-B_-QAvJF.js";import{t as g}from"./toggle-X_kQW5my.js";import{n as _}from"./toast-2TW5tj1Y.js";import{S as v,f as y}from"./local-mode-CvrNMtPF.js";import{t as b}from"./createLucideIcon-BlMXrA59.js";import{t as x}from"./bug-DDcuQ3au.js";import{t as S}from"./info-_OtUK1cX.js";import{t as C}from"./loader-circle-IIzBGiwm.js";import{t as ee}from"./triangle-alert-DKOyShqD.js";import{V as te}from"./auth-store-Kfxhs2oI.js";import{t as ne}from"./client.gen-Cs6pCK0s.js";import{c as w,o as T}from"./api-2kc3MHRz.js";import{a as E}from"./routes-DVqkwUEe.js";import{t as D}from"./use-is-org-ready-BdtHeRV6.js";import{a as O,l as k,o as A}from"./feature-flag-catalog-RK3_Ckyw.js";import{t as j}from"./client-feature-flag-store-C1kdd1EO.js";import{t as M}from"./assistant-feature-flag-store-Dl92XRsM.js";import{k as re,v as N}from"./react-query.gen-rp6Krcco.js";import{t as ie}from"./misc-BN2o2MEB.js";import{Jr as P,qi as F}from"./index-PRnvH2Y1.js";import{t as I}from"./use-active-assistant-id-C-RHQ9f6.js";import{t as L}from"./detail-card-BIwpXT5F.js";import{t as R}from"./environment-store-CvH3J6fT.js";var z=b(`flame`,[[`path`,{d:`M12 3q1 4 4 6.5t3 5.5a1 1 0 0 1-14 0 5 5 0 0 1 1-3 1 1 0 0 0 5 0c0-2-1.5-3-1.5-5q0-2 2.5-4`,key:`1slcih`}]]),B=b(`timer`,[[`line`,{x1:`10`,x2:`14`,y1:`2`,y2:`2`,key:`14vaq8`}],[`line`,{x1:`12`,x2:`15`,y1:`14`,y2:`11`,key:`17fdiu`}],[`circle`,{cx:`12`,cy:`14`,r:`8`,key:`1e1u0o`}]]),V=e(i(),1),H=d();function U(){let e=l(),[t,n]=(0,V.useState)(!1),[r,i]=(0,V.useState)(!1),o=D(),s=I(),{data:c,isLoading:d}=u({...re({path:{id:s}}),enabled:o}),{data:f,isLoading:p}=u({...N({query:{hosting:`all`}}),enabled:o}),h=d||p,g=f?.results??[];return(0,H.jsxs)(`div`,{className:`space-y-6`,children:[(0,H.jsx)(W,{assistant:c??null,loading:h}),(0,H.jsx)(G,{assistants:g,activeAssistantId:s,loading:h}),(0,H.jsxs)(L,{title:`Hatch New Assistant`,subtitle:`Create a new assistant instance.`,children:[(0,H.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,H.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Provision a new assistant. This may take a moment.`}),(0,H.jsx)(a,{variant:`outlined`,leftIcon:t?(0,H.jsx)(C,{className:`animate-spin`}):void 0,onClick:()=>i(!0),disabled:t,className:`shrink-0`,children:`Hatch`})]}),(0,H.jsx)(m,{open:r,title:`Hatch New Assistant`,message:`Are you sure you want to create a new assistant? This will provision new infrastructure.`,confirmLabel:`Hatch`,onConfirm:async()=>{i(!1),n(!0);try{let t=await T(void 0,`create`);if(t.ok){if(y())try{let e=await w();e.ok&&await v(e.data,te.getState().currentOrganizationId??void 0)}catch{}_.success(t.status===201?`New assistant hatched successfully.`:`Returned your existing assistant — no new one was created.`),e.invalidateQueries({queryKey:[{_id:`assistantsRetrieve`}]}),e.invalidateQueries({queryKey:N({query:{hosting:`all`}}).queryKey})}else{let e=typeof t.error?.detail==`string`?t.error.detail:`Failed to hatch assistant.`;_.error(e)}}catch{_.error(`Failed to hatch assistant.`)}finally{n(!1)}},onCancel:()=>i(!1)})]})]})}function W({assistant:e,loading:t}){return t?(0,H.jsx)(L,{title:`Assistant Info`,children:(0,H.jsxs)(`div`,{className:`flex items-center gap-2 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,H.jsx)(C,{className:`h-4 w-4 animate-spin`}),`Loading assistant info...`]})}):e?(0,H.jsx)(L,{title:`Assistant Info`,subtitle:`Current assistant details.`,children:(0,H.jsxs)(`div`,{className:`grid grid-cols-[140px_minmax(0,1fr)] gap-y-3`,children:[(0,H.jsx)(K,{children:`Name`}),(0,H.jsx)(q,{children:e.name??`Unnamed`}),(0,H.jsx)(K,{children:`Status`}),(0,H.jsx)(`div`,{children:(0,H.jsx)(h,{tone:e.status===`active`?`positive`:`neutral`,children:e.status})}),(0,H.jsx)(K,{children:`Assistant ID`}),(0,H.jsx)(`span`,{className:`break-all font-mono text-body-small-default text-[var(--content-tertiary)]`,children:e.id}),e.machine_id&&(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(K,{children:`Machine ID`}),(0,H.jsx)(`span`,{className:`break-all font-mono text-body-small-default text-[var(--content-tertiary)]`,children:e.machine_id})]}),(0,H.jsx)(K,{children:`Created`}),(0,H.jsx)(q,{children:new Date(e.created).toLocaleDateString()}),(0,H.jsx)(K,{children:`Last Modified`}),(0,H.jsx)(q,{children:new Date(e.modified).toLocaleDateString()}),e.current_release_version&&(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(K,{children:`Version`}),(0,H.jsx)(q,{children:e.current_release_version})]})]})}):(0,H.jsx)(L,{title:`Assistant Info`,children:(0,H.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`No assistant found. Hatch an assistant to get started.`})})}function G({assistants:e,activeAssistantId:t,loading:n}){return n||e.length===0?null:(0,H.jsx)(L,{title:`All Assistants`,subtitle:`${e.length} assistant${e.length===1?``:`s`} found.`,children:(0,H.jsx)(`div`,{className:`max-h-[300px] space-y-2 overflow-y-auto`,children:e.map(e=>{let n=e.id===t;return(0,H.jsx)(`div`,{className:`flex items-center justify-between gap-4 rounded-lg border px-4 py-3 ${n?`border-[var(--border-focus)] bg-[var(--surface-lift)]`:`border-[var(--border-base)] bg-[var(--surface-default)]`}`,children:(0,H.jsxs)(`div`,{className:`min-w-0`,children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(`span`,{className:`truncate text-body-medium-default text-[var(--content-default)]`,children:e.name||`Unnamed`}),(0,H.jsx)(h,{tone:e.status===`active`?`positive`:`neutral`,children:e.status}),n&&(0,H.jsx)(h,{tone:`warning`,children:`Current`})]}),(0,H.jsx)(`span`,{className:`font-mono text-body-small-default text-[var(--content-tertiary)]`,children:e.id})]})},e.id)})})})}function K({children:e}){return(0,H.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:e})}function q({children:e}){return(0,H.jsx)(`span`,{className:`text-body-medium-lighter text-[var(--content-default)]`,children:e})}function J(){let e=R.use.emailRootDomain(),t=R.use.isNonProduction(),n=R.use.setEnvironment();return(0,H.jsx)(L,{title:`Environment`,subtitle:`Environment configuration overrides for this session.`,children:(0,H.jsxs)(`div`,{className:`space-y-2`,children:[(0,H.jsxs)(`div`,{className:`flex items-start gap-3 py-3`,children:[(0,H.jsx)(`div`,{className:`shrink-0 pt-0.5`,children:(0,H.jsx)(g,{checked:t,onChange:e=>n({isNonProduction:e}),"aria-label":`Non-Production is ${t?`on`:`off`}`})}),(0,H.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-0.5`,children:[(0,H.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-default)]`,children:`Non-Production`}),(0,H.jsx)(`span`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Indicates a non-production environment. Enables dev-only UI surfaces and diagnostics.`})]})]}),(0,H.jsxs)(`div`,{className:`flex items-start gap-3 py-3`,children:[(0,H.jsx)(`div`,{className:`shrink-0 pt-0.5`,children:(0,H.jsx)(h,{tone:`neutral`,children:e})}),(0,H.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-0.5`,children:[(0,H.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-default)]`,children:`Email Root Domain`}),(0,H.jsx)(`span`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Root domain used for assistant email addresses (e.g. vellum.me).`})]})]})]})})}async function ae(){let{data:e,response:t}=await ne.get({url:`/v1/feature-flags/`,throwOnError:!1});return t?.ok?e?.flags??[]:[]}var Y={client:`warning`,assistant:`positive`};function oe(){let e=I(),{data:t}=u({queryKey:[`feature-flag-definitions`],queryFn:ae,enabled:D(),staleTime:300*1e3}),n=(0,V.useMemo)(()=>{let e=new Map;if(!t)return e;for(let n of t)n.type===`string`&&n.values?.length&&e.set(n.key,n.values);return e},[t]),[r,i]=(0,V.useState)(``),a=j(),o=M(),s=(0,V.useMemo)(()=>{let e=[];for(let t of A){let r=O(t.key);if(typeof t.defaultEnabled==`boolean`){let n=a[r],i=o[r],s=t.scope===`both`?n===!0||i===!0:t.scope===`assistant`?i:n;if(typeof s!=`boolean`)continue;e.push({kind:`boolean`,storeKey:r,scope:t.scope,label:t.label,description:t.description,value:s,defaultValue:t.defaultEnabled})}else if(typeof t.defaultEnabled==`string`){let i=a.stringFlags?.[r],s=o.stringFlags?.[r],c=t.scope===`assistant`?s??t.defaultEnabled:i??t.defaultEnabled;e.push({kind:`string`,storeKey:r,scope:t.scope,label:t.label,description:t.description,value:c,defaultValue:t.defaultEnabled,values:n.get(t.key)??t.values})}}return e.sort((e,t)=>e.label.localeCompare(t.label,void 0,{sensitivity:`base`}))},[a,o,n]),c=(0,V.useMemo)(()=>{if(!r.trim())return s;let e=r.trim().toLowerCase();return s.filter(t=>t.label.toLowerCase().includes(e)||t.description.toLowerCase().includes(e)||t.storeKey.toLowerCase().includes(e)||t.scope.includes(e)||t.scope===`both`&&(`client`.includes(e)||`assistant`.includes(e)))},[s,r]);return(0,H.jsx)(L,{title:`Feature Flags`,subtitle:`Active feature flags evaluated for the current session.`,children:(0,H.jsxs)(`div`,{className:`space-y-4`,children:[(0,H.jsxs)(`div`,{className:`relative`,children:[(0,H.jsx)(P,{className:`absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-[var(--content-tertiary)]`}),(0,H.jsx)(`input`,{type:`text`,placeholder:`Search flags...`,value:r,onChange:e=>i(e.target.value),className:`w-full rounded-lg border border-[var(--border-base)] bg-[var(--surface-default)] py-2 pl-9 pr-3 text-body-medium-default text-[var(--content-default)] placeholder:text-[var(--content-tertiary)] focus:border-[var(--border-focus)] focus:outline-none`})]}),c.length===0&&(0,H.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`No matching flags.`}),c.length>0&&(0,H.jsx)(`div`,{className:`max-h-[500px] space-y-2 overflow-y-auto`,children:c.map(t=>(0,H.jsx)(Z,{flag:t,assistantId:e},t.storeKey))})]})})}function X({scope:e}){return e===`both`?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(h,{tone:Y.client,children:`client`}),(0,H.jsx)(h,{tone:Y.assistant,children:`assistant`})]}):(0,H.jsx)(h,{tone:Y[e],children:e})}function se({flag:e,assistantId:t}){let n=j.use.setFlag(),r=M.use.setFlag();return(0,H.jsxs)(`div`,{className:`flex items-start gap-3 py-3`,children:[(0,H.jsx)(`div`,{className:`shrink-0 pt-0.5`,children:(0,H.jsx)(g,{checked:e.value,onChange:i=>{k(e.scope,`client`)&&n(e.storeKey,i),k(e.scope,`assistant`)&&r(e.storeKey,i,t)},"aria-label":`${e.label} is ${e.value?`on`:`off`}`})}),(0,H.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-0.5`,children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-default)]`,children:e.label}),(0,H.jsx)(X,{scope:e.scope})]}),(0,H.jsx)(`span`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:e.description}),(0,H.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,H.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Default:`}),(0,H.jsx)(h,{tone:`neutral`,children:e.defaultValue?`On`:`Off`})]})]})]})}function ce({flag:e,assistantId:t}){let n=j.use.setStringFlag(),r=M.use.setStringFlag(),[i,a]=(0,V.useState)(e.value);(0,V.useEffect)(()=>{a(e.value)},[e.value]);let o=i=>{i!==e.value&&(k(e.scope,`client`)&&n(e.storeKey,i),k(e.scope,`assistant`)&&r(e.storeKey,i,t))},s=i!==e.value,c=e.values&&e.values.length>0?e.values:null,l=s&&c!=null&&!c.includes(i),u=()=>{l||o(i)},d=e=>{e.key===`Enter`&&e.currentTarget.blur()},m=c!=null&&c.includes(e.value);return(0,H.jsx)(`div`,{className:`flex items-start gap-3 py-3`,children:(0,H.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-1.5`,children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-default)]`,children:e.label}),(0,H.jsx)(X,{scope:e.scope})]}),(0,H.jsx)(`span`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:e.description}),m?(0,H.jsx)(p,{value:e.value,onChange:e=>{a(e),o(e)},options:c.map(e=>({value:e,label:e})),className:`w-48`,"aria-label":`${e.label} value`}):(0,H.jsxs)(`div`,{className:`space-y-1`,children:[(0,H.jsx)(`input`,{type:`text`,value:i,onChange:e=>a(e.target.value),onBlur:u,onKeyDown:d,className:f(`w-full rounded-lg border bg-[var(--surface-default)] px-3 py-1.5 text-body-small-default text-[var(--content-default)] placeholder:text-[var(--content-tertiary)] focus:outline-none`,l?`border-[var(--system-negative-strong)]`:`border-[var(--border-base)] focus:border-[var(--border-focus)]`),placeholder:e.defaultValue||`Enter value...`}),l&&(0,H.jsxs)(`span`,{className:`block text-body-small-default text-[var(--system-negative-strong)]`,children:[`Expected one of: `,c.join(`, `)]})]}),(0,H.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,H.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Default:`}),(0,H.jsx)(h,{tone:`neutral`,children:e.defaultValue||`(empty)`})]})]})})}function Z({flag:e,assistantId:t}){return e.kind===`string`?(0,H.jsx)(ce,{flag:e,assistantId:t}):(0,H.jsx)(se,{flag:e,assistantId:t})}function le(){let e=(0,V.useCallback)(()=>{t(Error(`[Dev Settings] Test error event`)),_.success(`Sentry error event sent.`)},[]),i=(0,V.useCallback)(()=>{r(`[Dev Settings] Test warning event`,`warning`),_.success(`Sentry warning event sent.`)},[]),a=(0,V.useCallback)(()=>{r(`[Dev Settings] Test info event`,`info`),_.success(`Sentry info event sent.`)},[]),o=(0,V.useCallback)(()=>{r(`[Dev Settings] Test fatal event`,`fatal`),_.success(`Sentry fatal event sent.`)},[]),s=(0,V.useCallback)(()=>{n({name:`[Dev Settings] Test transaction`,op:`test.transaction`,forceTransaction:!0}).end(),_.success(`Sentry performance transaction sent.`)},[]);return(0,H.jsx)(L,{title:`Sentry Testing`,subtitle:`Fire test events to verify Sentry integration is working.`,children:(0,H.jsxs)(`div`,{className:`space-y-3`,children:[(0,H.jsx)(Q,{icon:(0,H.jsx)(z,{className:`h-4 w-4 text-[var(--system-negative-strong)]`}),label:`Fatal Event`,description:`Send a fatal-level event to Sentry.`,onClick:o}),(0,H.jsx)(Q,{icon:(0,H.jsx)(F,{className:`h-4 w-4 text-[var(--system-negative-default)]`}),label:`Error Event`,description:`Capture a test Error exception.`,onClick:e}),(0,H.jsx)(Q,{icon:(0,H.jsx)(ee,{className:`h-4 w-4 text-[var(--system-warning-default)]`}),label:`Warning Event`,description:`Send a warning-level message.`,onClick:i}),(0,H.jsx)(Q,{icon:(0,H.jsx)(S,{className:`h-4 w-4 text-[var(--content-tertiary)]`}),label:`Info Event`,description:`Send an info-level message.`,onClick:a}),(0,H.jsx)(Q,{icon:(0,H.jsx)(B,{className:`h-4 w-4 text-[var(--system-positive-default)]`}),label:`Performance Transaction`,description:`Start and end a test transaction span.`,onClick:s})]})})}function Q({icon:e,label:t,description:n,onClick:r}){return(0,H.jsxs)(`div`,{className:`flex items-center justify-between gap-4 rounded-lg border border-[var(--border-base)] px-4 py-3`,children:[(0,H.jsxs)(`div`,{className:`flex min-w-0 items-center gap-3`,children:[(0,H.jsx)(`div`,{className:`shrink-0`,children:e}),(0,H.jsxs)(`div`,{className:`min-w-0`,children:[(0,H.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-default)]`,children:t}),(0,H.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:n})]})]}),(0,H.jsxs)(a,{variant:`outlined`,size:`compact`,onClick:r,children:[(0,H.jsx)(x,{className:`h-4 w-4`}),`Send`]})]})}var $=[{id:`feature-flags`,label:`Feature Flags`},{id:`lifecycle`,label:`Assistant Lifecycle`},{id:`sentry`,label:`Sentry Testing`}];function ue(){let e=o(),[t,n]=s(),r=M.use.settingsDeveloperNav(),i=M.use.hasHydrated(),l=(0,V.useMemo)(()=>{let e=t.get(`tab`);return $.find(t=>t.id===e)?.id??`feature-flags`},[t]);if(i&&!r)return(0,H.jsx)(c,{replace:!0,to:E.settings.general});let u=e=>{let r=new URLSearchParams(t.toString());e===`feature-flags`?r.delete(`tab`):r.set(`tab`,e),n(r,{replace:!0})};return(0,H.jsxs)(`div`,{"data-slot":`developer-page`,className:`flex min-h-0 flex-1 flex-col`,children:[(0,H.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between gap-4 border-b border-[var(--border-base)]`,children:[(0,H.jsx)(`div`,{role:`tablist`,"aria-label":`Developer sections`,className:`flex items-center gap-1`,children:$.map(e=>{let t=e.id===l;return(0,H.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":t,"aria-controls":`developer-tab-panel-${e.id}`,id:`developer-tab-${e.id}`,onClick:()=>u(e.id),className:ie(`relative -mb-px cursor-pointer border-b-2 px-4 py-2 text-body-medium-default transition-colors`,t?`border-[var(--system-positive-strong)] text-[var(--system-positive-strong)]`:`border-transparent text-[var(--content-tertiary)] hover:text-[var(--content-default)] dark:text-[var(--content-disabled)] dark:hover:text-[var(--content-default)]`),children:e.label},e.id)})}),y()&&(0,H.jsx)(a,{variant:`outlined`,className:`mb-1 shrink-0`,onClick:()=>void e(`${E.selectAssistant}?noAutoSkip=1`),children:`Choose Assistant`})]}),(0,H.jsxs)(`div`,{id:`developer-tab-panel-${l}`,role:`tabpanel`,"aria-labelledby":`developer-tab-${l}`,className:`flex min-h-0 flex-1 flex-col pt-6`,children:[l===`feature-flags`&&(0,H.jsxs)(`div`,{className:`space-y-6`,children:[(0,H.jsx)(oe,{}),(0,H.jsx)(J,{})]}),l===`lifecycle`&&(0,H.jsx)(U,{}),l===`sentry`&&(0,H.jsx)(le,{})]})]})}export{ue as DeveloperPage};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{a as t,m as n,o as r}from"./capture-error-BG-GkiMq.js";import{t as i}from"./react-DJZBPgpf.js";import{t as a}from"./button-D7s2Q_uG.js";import{d as o,h as s,r as c}from"./chunk-5KNZJZUH-DdS6bb-3.js";import{n as l}from"./QueryClientProvider-DKhXIxGb.js";import{t as u}from"./useQuery-B45lW1Kk.js";import{t as d}from"./jsx-runtime-CVSDxk6A.js";import{t as f}from"./cn-DvW5mxZR.js";import{t as p}from"./dropdown-CL8VmqrY.js";import"./src-mai-NajT.js";import{t as m}from"./confirm-dialog-CfOXCE1N.js";import{t as h}from"./tag-B_-QAvJF.js";import{t as g}from"./toggle-X_kQW5my.js";import{n as _}from"./toast-2TW5tj1Y.js";import{S as v,f as y}from"./local-mode-CvrNMtPF.js";import{t as b}from"./createLucideIcon-BlMXrA59.js";import{t as x}from"./bug-DDcuQ3au.js";import{t as S}from"./info-ciQS_i3y.js";import{t as C}from"./loader-circle-BFRVtR3K.js";import{t as ee}from"./triangle-alert-C3aHZq1F.js";import{D as te}from"./auth-store-DhoDi3Ka.js";import{t as ne}from"./client.gen-BHupOCJH.js";import{c as w,o as T}from"./api-CwV4YyjT.js";import{a as E}from"./routes-C6gxiCrz.js";import{t as D}from"./use-is-org-ready-DGnWseqw.js";import{a as O,l as k,o as A}from"./feature-flag-catalog-DV82F0L3.js";import{t as j}from"./client-feature-flag-store-Co2Hhr3q.js";import{t as M}from"./assistant-feature-flag-store-9j2-Kf63.js";import{k as re,v as N}from"./react-query.gen-By34AU2d.js";import{t as ie}from"./misc-CFzLzLPH.js";import{ba as P,bi as F}from"./index-DbPUHSMl.js";import{t as I}from"./use-active-assistant-id-ZxDeBTfL.js";import{t as L}from"./detail-card-kfxLI0l_.js";import{t as R}from"./environment-store-CnVyTyZ7.js";var z=b(`flame`,[[`path`,{d:`M12 3q1 4 4 6.5t3 5.5a1 1 0 0 1-14 0 5 5 0 0 1 1-3 1 1 0 0 0 5 0c0-2-1.5-3-1.5-5q0-2 2.5-4`,key:`1slcih`}]]),B=b(`timer`,[[`line`,{x1:`10`,x2:`14`,y1:`2`,y2:`2`,key:`14vaq8`}],[`line`,{x1:`12`,x2:`15`,y1:`14`,y2:`11`,key:`17fdiu`}],[`circle`,{cx:`12`,cy:`14`,r:`8`,key:`1e1u0o`}]]),V=e(i(),1),H=d();function U(){let e=l(),[t,n]=(0,V.useState)(!1),[r,i]=(0,V.useState)(!1),o=D(),s=I(),{data:c,isLoading:d}=u({...re({path:{id:s}}),enabled:o}),{data:f,isLoading:p}=u({...N({query:{hosting:`all`}}),enabled:o}),h=d||p,g=f?.results??[];return(0,H.jsxs)(`div`,{className:`space-y-6`,children:[(0,H.jsx)(W,{assistant:c??null,loading:h}),(0,H.jsx)(G,{assistants:g,activeAssistantId:s,loading:h}),(0,H.jsxs)(L,{title:`Hatch New Assistant`,subtitle:`Create a new assistant instance.`,children:[(0,H.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,H.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Provision a new assistant. This may take a moment.`}),(0,H.jsx)(a,{variant:`outlined`,leftIcon:t?(0,H.jsx)(C,{className:`animate-spin`}):void 0,onClick:()=>i(!0),disabled:t,className:`shrink-0`,children:`Hatch`})]}),(0,H.jsx)(m,{open:r,title:`Hatch New Assistant`,message:`Are you sure you want to create a new assistant? This will provision new infrastructure.`,confirmLabel:`Hatch`,onConfirm:async()=>{i(!1),n(!0);try{let t=await T(void 0,`create`);if(t.ok){if(y())try{let e=await w();e.ok&&await v(e.data,te.getState().currentOrganizationId??void 0)}catch{}_.success(t.status===201?`New assistant hatched successfully.`:`Returned your existing assistant — no new one was created.`),e.invalidateQueries({queryKey:[{_id:`assistantsRetrieve`}]}),e.invalidateQueries({queryKey:N({query:{hosting:`all`}}).queryKey})}else{let e=typeof t.error?.detail==`string`?t.error.detail:`Failed to hatch assistant.`;_.error(e)}}catch{_.error(`Failed to hatch assistant.`)}finally{n(!1)}},onCancel:()=>i(!1)})]})]})}function W({assistant:e,loading:t}){return t?(0,H.jsx)(L,{title:`Assistant Info`,children:(0,H.jsxs)(`div`,{className:`flex items-center gap-2 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,H.jsx)(C,{className:`h-4 w-4 animate-spin`}),`Loading assistant info...`]})}):e?(0,H.jsx)(L,{title:`Assistant Info`,subtitle:`Current assistant details.`,children:(0,H.jsxs)(`div`,{className:`grid grid-cols-[140px_minmax(0,1fr)] gap-y-3`,children:[(0,H.jsx)(K,{children:`Name`}),(0,H.jsx)(q,{children:e.name??`Unnamed`}),(0,H.jsx)(K,{children:`Status`}),(0,H.jsx)(`div`,{children:(0,H.jsx)(h,{tone:e.status===`active`?`positive`:`neutral`,children:e.status})}),(0,H.jsx)(K,{children:`Assistant ID`}),(0,H.jsx)(`span`,{className:`break-all font-mono text-body-small-default text-[var(--content-tertiary)]`,children:e.id}),e.machine_id&&(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(K,{children:`Machine ID`}),(0,H.jsx)(`span`,{className:`break-all font-mono text-body-small-default text-[var(--content-tertiary)]`,children:e.machine_id})]}),(0,H.jsx)(K,{children:`Created`}),(0,H.jsx)(q,{children:new Date(e.created).toLocaleDateString()}),(0,H.jsx)(K,{children:`Last Modified`}),(0,H.jsx)(q,{children:new Date(e.modified).toLocaleDateString()}),e.current_release_version&&(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(K,{children:`Version`}),(0,H.jsx)(q,{children:e.current_release_version})]})]})}):(0,H.jsx)(L,{title:`Assistant Info`,children:(0,H.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`No assistant found. Hatch an assistant to get started.`})})}function G({assistants:e,activeAssistantId:t,loading:n}){return n||e.length===0?null:(0,H.jsx)(L,{title:`All Assistants`,subtitle:`${e.length} assistant${e.length===1?``:`s`} found.`,children:(0,H.jsx)(`div`,{className:`max-h-[300px] space-y-2 overflow-y-auto`,children:e.map(e=>{let n=e.id===t;return(0,H.jsx)(`div`,{className:`flex items-center justify-between gap-4 rounded-lg border px-4 py-3 ${n?`border-[var(--border-focus)] bg-[var(--surface-lift)]`:`border-[var(--border-base)] bg-[var(--surface-default)]`}`,children:(0,H.jsxs)(`div`,{className:`min-w-0`,children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(`span`,{className:`truncate text-body-medium-default text-[var(--content-default)]`,children:e.name||`Unnamed`}),(0,H.jsx)(h,{tone:e.status===`active`?`positive`:`neutral`,children:e.status}),n&&(0,H.jsx)(h,{tone:`warning`,children:`Current`})]}),(0,H.jsx)(`span`,{className:`font-mono text-body-small-default text-[var(--content-tertiary)]`,children:e.id})]})},e.id)})})})}function K({children:e}){return(0,H.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:e})}function q({children:e}){return(0,H.jsx)(`span`,{className:`text-body-medium-lighter text-[var(--content-default)]`,children:e})}function J(){let e=R.use.emailRootDomain(),t=R.use.isNonProduction(),n=R.use.setEnvironment();return(0,H.jsx)(L,{title:`Environment`,subtitle:`Environment configuration overrides for this session.`,children:(0,H.jsxs)(`div`,{className:`space-y-2`,children:[(0,H.jsxs)(`div`,{className:`flex items-start gap-3 py-3`,children:[(0,H.jsx)(`div`,{className:`shrink-0 pt-0.5`,children:(0,H.jsx)(g,{checked:t,onChange:e=>n({isNonProduction:e}),"aria-label":`Non-Production is ${t?`on`:`off`}`})}),(0,H.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-0.5`,children:[(0,H.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-default)]`,children:`Non-Production`}),(0,H.jsx)(`span`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Indicates a non-production environment. Enables dev-only UI surfaces and diagnostics.`})]})]}),(0,H.jsxs)(`div`,{className:`flex items-start gap-3 py-3`,children:[(0,H.jsx)(`div`,{className:`shrink-0 pt-0.5`,children:(0,H.jsx)(h,{tone:`neutral`,children:e})}),(0,H.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-0.5`,children:[(0,H.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-default)]`,children:`Email Root Domain`}),(0,H.jsx)(`span`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Root domain used for assistant email addresses (e.g. vellum.me).`})]})]})]})})}async function ae(){let{data:e,response:t}=await ne.get({url:`/v1/feature-flags/`,throwOnError:!1});return t?.ok?e?.flags??[]:[]}var Y={client:`warning`,assistant:`positive`};function oe(){let e=I(),{data:t}=u({queryKey:[`feature-flag-definitions`],queryFn:ae,enabled:D(),staleTime:300*1e3}),n=(0,V.useMemo)(()=>{let e=new Map;if(!t)return e;for(let n of t)n.type===`string`&&n.values?.length&&e.set(n.key,n.values);return e},[t]),[r,i]=(0,V.useState)(``),a=j(),o=M(),s=(0,V.useMemo)(()=>{let e=[];for(let t of A){let r=O(t.key);if(typeof t.defaultEnabled==`boolean`){let n=a[r],i=o[r],s=t.scope===`both`?n===!0||i===!0:t.scope===`assistant`?i:n;if(typeof s!=`boolean`)continue;e.push({kind:`boolean`,storeKey:r,scope:t.scope,label:t.label,description:t.description,value:s,defaultValue:t.defaultEnabled})}else if(typeof t.defaultEnabled==`string`){let i=a.stringFlags?.[r],s=o.stringFlags?.[r],c=t.scope===`assistant`?s??t.defaultEnabled:i??t.defaultEnabled;e.push({kind:`string`,storeKey:r,scope:t.scope,label:t.label,description:t.description,value:c,defaultValue:t.defaultEnabled,values:n.get(t.key)??t.values})}}return e.sort((e,t)=>e.label.localeCompare(t.label,void 0,{sensitivity:`base`}))},[a,o,n]),c=(0,V.useMemo)(()=>{if(!r.trim())return s;let e=r.trim().toLowerCase();return s.filter(t=>t.label.toLowerCase().includes(e)||t.description.toLowerCase().includes(e)||t.storeKey.toLowerCase().includes(e)||t.scope.includes(e)||t.scope===`both`&&(`client`.includes(e)||`assistant`.includes(e)))},[s,r]);return(0,H.jsx)(L,{title:`Feature Flags`,subtitle:`Active feature flags evaluated for the current session.`,children:(0,H.jsxs)(`div`,{className:`space-y-4`,children:[(0,H.jsxs)(`div`,{className:`relative`,children:[(0,H.jsx)(F,{className:`absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-[var(--content-tertiary)]`}),(0,H.jsx)(`input`,{type:`text`,placeholder:`Search flags...`,value:r,onChange:e=>i(e.target.value),className:`w-full rounded-lg border border-[var(--border-base)] bg-[var(--surface-default)] py-2 pl-9 pr-3 text-body-medium-default text-[var(--content-default)] placeholder:text-[var(--content-tertiary)] focus:border-[var(--border-focus)] focus:outline-none`})]}),c.length===0&&(0,H.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`No matching flags.`}),c.length>0&&(0,H.jsx)(`div`,{className:`max-h-[500px] space-y-2 overflow-y-auto`,children:c.map(t=>(0,H.jsx)(Z,{flag:t,assistantId:e},t.storeKey))})]})})}function X({scope:e}){return e===`both`?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(h,{tone:Y.client,children:`client`}),(0,H.jsx)(h,{tone:Y.assistant,children:`assistant`})]}):(0,H.jsx)(h,{tone:Y[e],children:e})}function se({flag:e,assistantId:t}){let n=j.use.setFlag(),r=M.use.setFlag();return(0,H.jsxs)(`div`,{className:`flex items-start gap-3 py-3`,children:[(0,H.jsx)(`div`,{className:`shrink-0 pt-0.5`,children:(0,H.jsx)(g,{checked:e.value,onChange:i=>{k(e.scope,`client`)&&n(e.storeKey,i),k(e.scope,`assistant`)&&r(e.storeKey,i,t)},"aria-label":`${e.label} is ${e.value?`on`:`off`}`})}),(0,H.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-0.5`,children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-default)]`,children:e.label}),(0,H.jsx)(X,{scope:e.scope})]}),(0,H.jsx)(`span`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:e.description}),(0,H.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,H.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Default:`}),(0,H.jsx)(h,{tone:`neutral`,children:e.defaultValue?`On`:`Off`})]})]})]})}function ce({flag:e,assistantId:t}){let n=j.use.setStringFlag(),r=M.use.setStringFlag(),[i,a]=(0,V.useState)(e.value);(0,V.useEffect)(()=>{a(e.value)},[e.value]);let o=i=>{i!==e.value&&(k(e.scope,`client`)&&n(e.storeKey,i),k(e.scope,`assistant`)&&r(e.storeKey,i,t))},s=i!==e.value,c=e.values&&e.values.length>0?e.values:null,l=s&&c!=null&&!c.includes(i),u=()=>{l||o(i)},d=e=>{e.key===`Enter`&&e.currentTarget.blur()},m=c!=null&&c.includes(e.value);return(0,H.jsx)(`div`,{className:`flex items-start gap-3 py-3`,children:(0,H.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-1.5`,children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-default)]`,children:e.label}),(0,H.jsx)(X,{scope:e.scope})]}),(0,H.jsx)(`span`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:e.description}),m?(0,H.jsx)(p,{value:e.value,onChange:e=>{a(e),o(e)},options:c.map(e=>({value:e,label:e})),className:`w-48`,"aria-label":`${e.label} value`}):(0,H.jsxs)(`div`,{className:`space-y-1`,children:[(0,H.jsx)(`input`,{type:`text`,value:i,onChange:e=>a(e.target.value),onBlur:u,onKeyDown:d,className:f(`w-full rounded-lg border bg-[var(--surface-default)] px-3 py-1.5 text-body-small-default text-[var(--content-default)] placeholder:text-[var(--content-tertiary)] focus:outline-none`,l?`border-[var(--system-negative-strong)]`:`border-[var(--border-base)] focus:border-[var(--border-focus)]`),placeholder:e.defaultValue||`Enter value...`}),l&&(0,H.jsxs)(`span`,{className:`block text-body-small-default text-[var(--system-negative-strong)]`,children:[`Expected one of: `,c.join(`, `)]})]}),(0,H.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,H.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Default:`}),(0,H.jsx)(h,{tone:`neutral`,children:e.defaultValue||`(empty)`})]})]})})}function Z({flag:e,assistantId:t}){return e.kind===`string`?(0,H.jsx)(ce,{flag:e,assistantId:t}):(0,H.jsx)(se,{flag:e,assistantId:t})}function le(){let e=(0,V.useCallback)(()=>{t(Error(`[Dev Settings] Test error event`)),_.success(`Sentry error event sent.`)},[]),i=(0,V.useCallback)(()=>{r(`[Dev Settings] Test warning event`,`warning`),_.success(`Sentry warning event sent.`)},[]),a=(0,V.useCallback)(()=>{r(`[Dev Settings] Test info event`,`info`),_.success(`Sentry info event sent.`)},[]),o=(0,V.useCallback)(()=>{r(`[Dev Settings] Test fatal event`,`fatal`),_.success(`Sentry fatal event sent.`)},[]),s=(0,V.useCallback)(()=>{n({name:`[Dev Settings] Test transaction`,op:`test.transaction`,forceTransaction:!0}).end(),_.success(`Sentry performance transaction sent.`)},[]);return(0,H.jsx)(L,{title:`Sentry Testing`,subtitle:`Fire test events to verify Sentry integration is working.`,children:(0,H.jsxs)(`div`,{className:`space-y-3`,children:[(0,H.jsx)(Q,{icon:(0,H.jsx)(z,{className:`h-4 w-4 text-[var(--system-negative-strong)]`}),label:`Fatal Event`,description:`Send a fatal-level event to Sentry.`,onClick:o}),(0,H.jsx)(Q,{icon:(0,H.jsx)(P,{className:`h-4 w-4 text-[var(--system-negative-default)]`}),label:`Error Event`,description:`Capture a test Error exception.`,onClick:e}),(0,H.jsx)(Q,{icon:(0,H.jsx)(ee,{className:`h-4 w-4 text-[var(--system-warning-default)]`}),label:`Warning Event`,description:`Send a warning-level message.`,onClick:i}),(0,H.jsx)(Q,{icon:(0,H.jsx)(S,{className:`h-4 w-4 text-[var(--content-tertiary)]`}),label:`Info Event`,description:`Send an info-level message.`,onClick:a}),(0,H.jsx)(Q,{icon:(0,H.jsx)(B,{className:`h-4 w-4 text-[var(--system-positive-default)]`}),label:`Performance Transaction`,description:`Start and end a test transaction span.`,onClick:s})]})})}function Q({icon:e,label:t,description:n,onClick:r}){return(0,H.jsxs)(`div`,{className:`flex items-center justify-between gap-4 rounded-lg border border-[var(--border-base)] px-4 py-3`,children:[(0,H.jsxs)(`div`,{className:`flex min-w-0 items-center gap-3`,children:[(0,H.jsx)(`div`,{className:`shrink-0`,children:e}),(0,H.jsxs)(`div`,{className:`min-w-0`,children:[(0,H.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-default)]`,children:t}),(0,H.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:n})]})]}),(0,H.jsxs)(a,{variant:`outlined`,size:`compact`,onClick:r,children:[(0,H.jsx)(x,{className:`h-4 w-4`}),`Send`]})]})}var $=[{id:`feature-flags`,label:`Feature Flags`},{id:`lifecycle`,label:`Assistant Lifecycle`},{id:`sentry`,label:`Sentry Testing`}];function ue(){let e=o(),[t,n]=s(),r=M.use.settingsDeveloperNav(),i=M.use.hasHydrated(),l=(0,V.useMemo)(()=>{let e=t.get(`tab`);return $.find(t=>t.id===e)?.id??`feature-flags`},[t]);if(i&&!r)return(0,H.jsx)(c,{replace:!0,to:E.settings.general});let u=e=>{let r=new URLSearchParams(t.toString());e===`feature-flags`?r.delete(`tab`):r.set(`tab`,e),n(r,{replace:!0})};return(0,H.jsxs)(`div`,{"data-slot":`developer-page`,className:`flex min-h-0 flex-1 flex-col`,children:[(0,H.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between gap-4 border-b border-[var(--border-base)]`,children:[(0,H.jsx)(`div`,{role:`tablist`,"aria-label":`Developer sections`,className:`flex items-center gap-1`,children:$.map(e=>{let t=e.id===l;return(0,H.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":t,"aria-controls":`developer-tab-panel-${e.id}`,id:`developer-tab-${e.id}`,onClick:()=>u(e.id),className:ie(`relative -mb-px cursor-pointer border-b-2 px-4 py-2 text-body-medium-default transition-colors`,t?`border-[var(--system-positive-strong)] text-[var(--system-positive-strong)]`:`border-transparent text-[var(--content-tertiary)] hover:text-[var(--content-default)] dark:text-[var(--content-disabled)] dark:hover:text-[var(--content-default)]`),children:e.label},e.id)})}),y()&&(0,H.jsx)(a,{variant:`outlined`,className:`mb-1 shrink-0`,onClick:()=>void e(`${E.selectAssistant}?noAutoSkip=1`),children:`Choose Assistant`})]}),(0,H.jsxs)(`div`,{id:`developer-tab-panel-${l}`,role:`tabpanel`,"aria-labelledby":`developer-tab-${l}`,className:`flex min-h-0 flex-1 flex-col pt-6`,children:[l===`feature-flags`&&(0,H.jsxs)(`div`,{className:`space-y-6`,children:[(0,H.jsx)(oe,{}),(0,H.jsx)(J,{})]}),l===`lifecycle`&&(0,H.jsx)(U,{}),l===`sentry`&&(0,H.jsx)(le,{})]})]})}export{ue as DeveloperPage};
@@ -1 +1 @@
1
- import{r as e}from"./chunk-5KNZJZUH-DdS6bb-3.js";import{t}from"./useQuery-B45lW1Kk.js";import{t as n}from"./jsx-runtime-CVSDxk6A.js";import{t as r}from"./notice-CqRgVmeL.js";import{t as i}from"./loader-circle-IIzBGiwm.js";import{t as a}from"./monitor-D2okHi8o.js";import{a as o}from"./routes-DVqkwUEe.js";import{v as s}from"./react-query.gen-rp6Krcco.js";import{Hr as c,an as l,in as u,rn as d,x as f}from"./index-PRnvH2Y1.js";import{t as p}from"./detail-card-BIwpXT5F.js";var m=n();function h(e){return new Intl.DateTimeFormat(`en`,{month:`short`,day:`numeric`,year:`numeric`}).format(new Date(e))}function g({assistant:e}){let t=e,n=t.platform===`ios`,r=n?c:a,i=e.name||(n?`iOS Device`:t.hostname||`Unknown Device`);return(0,m.jsxs)(`div`,{className:`flex items-center gap-3 rounded-lg border border-[var(--border-base)] px-4 py-3`,children:[(0,m.jsx)(r,{className:`h-5 w-5 shrink-0 text-[var(--content-secondary)]`}),(0,m.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,m.jsx)(`div`,{className:`truncate text-body-medium-default text-[var(--content-default)]`,children:i}),(0,m.jsxs)(`div`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:[t.hostname&&(0,m.jsx)(`span`,{className:`mr-3`,children:t.hostname}),e.created&&(0,m.jsxs)(`span`,{children:[`Registered `,h(e.created)]})]})]})]})}function _(){let n=l({platformHostedOnly:!0}),a=d(),c=u(),{data:h,isLoading:_}=t({...s({query:{hosting:`local`}}),enabled:n===`full`&&a}),v=h?.results??[];return n===`gated`?(0,m.jsx)(e,{replace:!0,to:o.settings.general}):n===`disabled`?(0,m.jsx)(`div`,{className:`space-y-4`,children:(0,m.jsx)(f,{children:`Log in to the Vellum platform to manage self-hosted assistants.`})}):c?(0,m.jsx)(`div`,{className:`space-y-4`,children:(0,m.jsxs)(`div`,{className:`flex items-center gap-2 py-6 text-body-medium-lighter text-[var(--content-secondary)]`,children:[(0,m.jsx)(i,{className:`h-4 w-4 animate-spin`}),`Loading devices…`]})}):a?(0,m.jsx)(`div`,{className:`space-y-4`,children:(0,m.jsx)(p,{title:`Self-Hosted Assistants`,subtitle:`Self-hosted assistants registered with your Vellum account. Registration lets these assistants use Vellum managed services — inference, web search, integrations — so that you don't have to bring your own API keys.`,children:_?(0,m.jsxs)(`div`,{className:`flex items-center gap-2 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,m.jsx)(i,{className:`h-4 w-4 animate-spin`}),`Loading devices...`]}):v.length===0?(0,m.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`No self-hosted assistants registered.`}):(0,m.jsx)(`div`,{className:`space-y-2`,children:v.map(e=>(0,m.jsx)(g,{assistant:e},e.id))})})}):(0,m.jsx)(`div`,{className:`space-y-4`,children:(0,m.jsx)(r,{tone:`warning`,children:`Self-hosted assistant management isn't available for the current assistant state.`})})}export{_ as DevicesPage};
1
+ import{r as e}from"./chunk-5KNZJZUH-DdS6bb-3.js";import{t}from"./useQuery-B45lW1Kk.js";import{t as n}from"./jsx-runtime-CVSDxk6A.js";import{t as r}from"./notice-CqRgVmeL.js";import{t as i}from"./loader-circle-BFRVtR3K.js";import{t as a}from"./monitor-CXU19mVX.js";import{a as o}from"./routes-C6gxiCrz.js";import{v as s}from"./react-query.gen-By34AU2d.js";import{Mr as c,Nr as l,jr as u,mi as d,x as f}from"./index-DbPUHSMl.js";import{t as p}from"./detail-card-kfxLI0l_.js";var m=n();function h(e){return new Intl.DateTimeFormat(`en`,{month:`short`,day:`numeric`,year:`numeric`}).format(new Date(e))}function g({assistant:e}){let t=e,n=t.platform===`ios`,r=n?d:a,i=e.name||(n?`iOS Device`:t.hostname||`Unknown Device`);return(0,m.jsxs)(`div`,{className:`flex items-center gap-3 rounded-lg border border-[var(--border-base)] px-4 py-3`,children:[(0,m.jsx)(r,{className:`h-5 w-5 shrink-0 text-[var(--content-secondary)]`}),(0,m.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,m.jsx)(`div`,{className:`truncate text-body-medium-default text-[var(--content-default)]`,children:i}),(0,m.jsxs)(`div`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:[t.hostname&&(0,m.jsx)(`span`,{className:`mr-3`,children:t.hostname}),e.created&&(0,m.jsxs)(`span`,{children:[`Registered `,h(e.created)]})]})]})]})}function _(){let n=l({platformHostedOnly:!0}),a=u(),d=c(),{data:h,isLoading:_}=t({...s({query:{hosting:`local`}}),enabled:n===`full`&&a}),v=h?.results??[];return n===`gated`?(0,m.jsx)(e,{replace:!0,to:o.settings.general}):n===`disabled`?(0,m.jsx)(`div`,{className:`space-y-4`,children:(0,m.jsx)(f,{children:`Log in to the Vellum platform to manage self-hosted assistants.`})}):d?(0,m.jsx)(`div`,{className:`space-y-4`,children:(0,m.jsxs)(`div`,{className:`flex items-center gap-2 py-6 text-body-medium-lighter text-[var(--content-secondary)]`,children:[(0,m.jsx)(i,{className:`h-4 w-4 animate-spin`}),`Loading devices…`]})}):a?(0,m.jsx)(`div`,{className:`space-y-4`,children:(0,m.jsx)(p,{title:`Self-Hosted Assistants`,subtitle:`Self-hosted assistants registered with your Vellum account. Registration lets these assistants use Vellum managed services — inference, web search, integrations — so that you don't have to bring your own API keys.`,children:_?(0,m.jsxs)(`div`,{className:`flex items-center gap-2 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,m.jsx)(i,{className:`h-4 w-4 animate-spin`}),`Loading devices...`]}):v.length===0?(0,m.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`No self-hosted assistants registered.`}):(0,m.jsx)(`div`,{className:`space-y-2`,children:v.map(e=>(0,m.jsx)(g,{assistant:e},e.id))})})}):(0,m.jsx)(`div`,{className:`space-y-4`,children:(0,m.jsx)(r,{tone:`warning`,children:`Self-hosted assistant management isn't available for the current assistant state.`})})}export{_ as DevicesPage};
@@ -0,0 +1 @@
1
+ import{t as e}from"./platform-detection-ByImsPTf.js";var t=200,n=200,r=`vellum:chat-diagnostics:v1`,i=`vellum:chat-diagnostics-lifecycle:v1`,a={storageKey:r,max:t,loaded:!1,events:[]},o={storageKey:i,max:n,loaded:!1,events:[]};function s(){if(typeof window>`u`)return null;try{return window.sessionStorage}catch{return null}}function c(e){return typeof e==`object`&&!!e&&typeof e.ts==`string`&&typeof e.kind==`string`&&e.details!=null&&typeof e.details==`object`&&!Array.isArray(e.details)}function l(e){if(e.loaded)return;e.loaded=!0;let t=s();if(t)try{let n=t.getItem(e.storageKey);if(!n)return;let r=JSON.parse(n);if(!Array.isArray(r))return;e.events=r.filter(c).slice(-e.max)}catch{e.events=[]}}function u(e){let t=s();if(t)try{t.setItem(e.storageKey,JSON.stringify(e.events))}catch{}}function d(e,t,n){l(e),e.events.push({ts:new Date().toISOString(),kind:t,details:{platform:p(),...n}}),e.events.length>e.max&&(e.events=e.events.slice(-e.max)),u(e)}function f(e){return l(e),e.events.map(e=>({ts:e.ts,kind:e.kind,details:{...e.details}}))}function p(){try{return e()}catch{return`web`}}function m(e,t={}){d(a,e,t)}function h(e,t={}){d(o,e,t)}function g(){return f(a)}function _(){return f(o)}function v(e){return{schemaVersion:2,collectedAt:new Date().toISOString(),currentState:e,lifecycleEvents:_(),events:g()}}function y(e){return!Number.isFinite(e)||e<=0?`0`:e===1?`1`:e<=5?`2-5`:`6+`}function b(e){let t={};for(let n of e)t[n.role]=(t[n.role]??0)+1;return t}function x(e,t,n){typeof t[n]==`string`&&(e[n]=t[n])}function S(e,t,n){typeof t[n]==`number`&&Number.isFinite(t[n])&&(e[n]=t[n])}function C(e,t,n){typeof t[n]==`boolean`&&(e[n]=t[n])}function w(e,t,n){typeof t[n]==`string`&&(e[`${n}Length`]=t[n].length)}function T(e){let t=e,n={type:e.type};for(let e of[`messageId`,`requestId`,`surfaceId`,`surfaceType`,`toolUseId`,`conversationId`,`deliveryId`,`code`,`toolName`,`errorCategory`,`rawType`,`tab`,`sourceEventName`])x(n,t,e);for(let e of[`position`,`inputTokens`,`outputTokens`,`cachedInputTokens`,`cacheCreationInputTokens`,`contextWindowTokens`,`contextWindowMaxTokens`,`openUntil`])S(n,t,e);for(let e of[`isError`,`retryable`,`runStillActive`])C(n,t,e);for(let e of[`text`,`content`,`message`,`userMessage`,`debugDetails`,`title`,`body`,`summary`,`result`,`url`])w(n,t,e);if(typeof t.url==`string`)try{n.urlHost=new URL(t.url).host}catch{n.urlHost=null}return Array.isArray(t.attachments)&&(n.attachmentCount=t.attachments.length),Array.isArray(t.actions)&&(n.actionCount=t.actions.length),t.data!=null&&typeof t.data==`object`&&!Array.isArray(t.data)&&(n.dataKeys=Object.keys(t.data).length),t.input!=null&&typeof t.input==`object`&&!Array.isArray(t.input)&&(n.inputKeys=Object.keys(t.input).length),n}export{m as a,b as c,_ as i,T as l,v as n,h as o,g as r,p as s,y as t};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-DJZBPgpf.js";import{t as n}from"./jsx-runtime-CVSDxk6A.js";import{t as r}from"./check-D6WkI0gF.js";import{t as i}from"./loader-circle-IIzBGiwm.js";import{t as a}from"./triangle-alert-DKOyShqD.js";import{Cn as o,Ji as s,Sn as c,wn as l,xn as u}from"./index-PRnvH2Y1.js";var d=e(t(),1),f=n();function p(){let[e,t]=(0,d.useState)(null),n=(0,d.useRef)(null),r=(0,d.useRef)(!1);if((0,d.useEffect)(()=>{let e=l(t);return u().then(e=>{e&&t(t=>t??e)}),e},[]),(0,d.useEffect)(()=>()=>{o(!1)},[]),(0,d.useEffect)(()=>{e?.kind===`recording`||!r.current||(r.current=!1,o(!1))},[e?.kind]),!e)return null;let i=e.kind===`recording`?e.transcription.trim():``,a=e.kind===`recording`?e.audioLevel??0:0,s=e=>{r.current!==e&&(r.current=e,o(e))};return(0,f.jsx)(`div`,{className:`flex h-screen w-screen items-start justify-center bg-transparent p-4`,onMouseMove:t=>{if(e.kind!==`recording`){s(!1);return}let r=n.current;if(!r){s(!1);return}let i=r.getBoundingClientRect();s(t.clientX>=i.left&&t.clientX<=i.right&&t.clientY>=i.top&&t.clientY<=i.bottom)},onMouseLeave:()=>s(!1),children:(0,f.jsxs)(`div`,{className:`flex w-[min(28rem,calc(100vw-2rem))] flex-col gap-1 rounded-xl border border-[var(--border-default)] bg-[var(--surface-base)] px-4 py-2.5 shadow-lg`,children:[(0,f.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,f.jsx)(_,{state:e}),(0,f.jsx)(`span`,{className:`truncate text-[11px] font-medium text-[var(--content-secondary)]`,children:g(e)}),e.kind===`recording`&&(0,f.jsx)(m,{level:a,stopButtonRef:n,onInteractiveChange:s,onStop:()=>{c(),s(!1)}})]}),i&&(0,f.jsx)(`div`,{className:`flex max-h-7 flex-col justify-end overflow-hidden`,children:(0,f.jsx)(`p`,{className:`break-words text-[10px] leading-snug text-[var(--content-tertiary)]`,children:i})})]})})}function m({level:e,stopButtonRef:t,onInteractiveChange:n,onStop:r}){return(0,f.jsxs)(`div`,{className:`ml-auto flex shrink-0 items-center gap-2`,children:[(0,f.jsx)(h,{level:e}),(0,f.jsx)(`button`,{ref:t,type:`button`,className:`flex size-5 items-center justify-center rounded-full text-[var(--content-secondary)] transition-colors hover:bg-[var(--surface-overlay)] hover:text-[var(--system-negative-strong)] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--system-negative-strong)]`,"aria-label":`Stop recording`,title:`Stop recording`,onMouseEnter:()=>n(!0),onMouseLeave:()=>n(!1),onFocus:()=>n(!0),onBlur:()=>n(!1),onClick:r,children:(0,f.jsx)(s,{className:`size-4`,strokeWidth:2,"aria-hidden":!0})})]})}function h({level:e}){let t=Math.max(0,Math.min(1,e));return(0,f.jsx)(`div`,{className:`flex h-4 w-16 shrink-0 items-end gap-0.5`,"aria-hidden":!0,children:[.16,.32,.48,.64,.8,.96].map((e,n)=>(0,f.jsx)(`span`,{className:`w-1 rounded-full bg-[var(--system-negative-strong)] transition-[height,opacity] duration-75`,style:{height:`${6+n*1.5}px`,opacity:t>=e?1:.22}},e))})}function g(e){switch(e.kind){case`recording`:return`Recording…`;case`processing`:return`Processing…`;case`done`:return`Done`;case`error`:return e.message}}function _({state:e}){switch(e.kind){case`recording`:return(0,f.jsx)(`span`,{className:`size-2 shrink-0 rounded-full bg-[var(--system-negative-strong)]`,"aria-hidden":!0});case`processing`:return(0,f.jsx)(i,{className:`size-4 shrink-0 animate-spin text-[var(--content-secondary)]`,"aria-hidden":!0});case`done`:return(0,f.jsx)(r,{className:`size-4 shrink-0 text-[var(--system-positive-strong)]`,"aria-hidden":!0});case`error`:return(0,f.jsx)(a,{className:`size-4 shrink-0 text-[var(--system-negative-strong)]`,"aria-hidden":!0})}}export{p as DictationOverlayPage};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-DJZBPgpf.js";import{t as n}from"./jsx-runtime-CVSDxk6A.js";import{t as r}from"./check-D6WkI0gF.js";import{t as i}from"./loader-circle-BFRVtR3K.js";import{t as a}from"./triangle-alert-C3aHZq1F.js";import{Gn as o,Kn as s,Wn as c,qn as l,xa as u}from"./index-DbPUHSMl.js";var d=e(t(),1),f=n();function p(){let[e,t]=(0,d.useState)(null),n=(0,d.useRef)(null),r=(0,d.useRef)(!1);if((0,d.useEffect)(()=>{let e=l(t);return c().then(e=>{e&&t(t=>t??e)}),e},[]),(0,d.useEffect)(()=>()=>{s(!1)},[]),(0,d.useEffect)(()=>{e?.kind===`recording`||!r.current||(r.current=!1,s(!1))},[e?.kind]),!e)return null;let i=e.kind===`recording`?e.transcription.trim():``,a=e.kind===`recording`?e.audioLevel??0:0,u=e=>{r.current!==e&&(r.current=e,s(e))};return(0,f.jsx)(`div`,{className:`flex h-screen w-screen items-start justify-center bg-transparent p-4`,onMouseMove:t=>{if(e.kind!==`recording`){u(!1);return}let r=n.current;if(!r){u(!1);return}let i=r.getBoundingClientRect();u(t.clientX>=i.left&&t.clientX<=i.right&&t.clientY>=i.top&&t.clientY<=i.bottom)},onMouseLeave:()=>u(!1),children:(0,f.jsxs)(`div`,{className:`flex w-[min(28rem,calc(100vw-2rem))] flex-col gap-1 rounded-xl border border-[var(--border-default)] bg-[var(--surface-base)] px-4 py-2.5 shadow-lg`,children:[(0,f.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,f.jsx)(_,{state:e}),(0,f.jsx)(`span`,{className:`truncate text-[11px] font-medium text-[var(--content-secondary)]`,children:g(e)}),e.kind===`recording`&&(0,f.jsx)(m,{level:a,stopButtonRef:n,onInteractiveChange:u,onStop:()=>{o(),u(!1)}})]}),i&&(0,f.jsx)(`div`,{className:`flex max-h-7 flex-col justify-end overflow-hidden`,children:(0,f.jsx)(`p`,{className:`break-words text-[10px] leading-snug text-[var(--content-tertiary)]`,children:i})})]})})}function m({level:e,stopButtonRef:t,onInteractiveChange:n,onStop:r}){return(0,f.jsxs)(`div`,{className:`ml-auto flex shrink-0 items-center gap-2`,children:[(0,f.jsx)(h,{level:e}),(0,f.jsx)(`button`,{ref:t,type:`button`,className:`flex size-5 items-center justify-center rounded-full text-[var(--content-secondary)] transition-colors hover:bg-[var(--surface-overlay)] hover:text-[var(--system-negative-strong)] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--system-negative-strong)]`,"aria-label":`Stop recording`,title:`Stop recording`,onMouseEnter:()=>n(!0),onMouseLeave:()=>n(!1),onFocus:()=>n(!0),onBlur:()=>n(!1),onClick:r,children:(0,f.jsx)(u,{className:`size-4`,strokeWidth:2,"aria-hidden":!0})})]})}function h({level:e}){let t=Math.max(0,Math.min(1,e));return(0,f.jsx)(`div`,{className:`flex h-4 w-16 shrink-0 items-end gap-0.5`,"aria-hidden":!0,children:[.16,.32,.48,.64,.8,.96].map((e,n)=>(0,f.jsx)(`span`,{className:`w-1 rounded-full bg-[var(--system-negative-strong)] transition-[height,opacity] duration-75`,style:{height:`${6+n*1.5}px`,opacity:t>=e?1:.22}},e))})}function g(e){switch(e.kind){case`recording`:return`Recording…`;case`processing`:return`Processing…`;case`done`:return`Done`;case`error`:return e.message}}function _({state:e}){switch(e.kind){case`recording`:return(0,f.jsx)(`span`,{className:`size-2 shrink-0 rounded-full bg-[var(--system-negative-strong)]`,"aria-hidden":!0});case`processing`:return(0,f.jsx)(i,{className:`size-4 shrink-0 animate-spin text-[var(--content-secondary)]`,"aria-hidden":!0});case`done`:return(0,f.jsx)(r,{className:`size-4 shrink-0 text-[var(--system-positive-strong)]`,"aria-hidden":!0});case`error`:return(0,f.jsx)(a,{className:`size-4 shrink-0 text-[var(--system-negative-strong)]`,"aria-hidden":!0})}}export{p as DictationOverlayPage};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-DJZBPgpf.js";import{d as n,p as r}from"./chunk-5KNZJZUH-DdS6bb-3.js";import{t as i}from"./jsx-runtime-CVSDxk6A.js";import{t as a}from"./typography-BscuIPxA.js";import"./src-CK6bncSg.js";import{n as o}from"./resolved-assistants-store-Cp4J43BK.js";import{t as s}from"./loader-circle-IIzBGiwm.js";import{dt as c,ft as l,ut as u}from"./sdk.gen-1aYqVbMj.js";import{a as d}from"./routes-DVqkwUEe.js";import{t as f}from"./use-bus-subscription-BbiZXm1u.js";import{n as p}from"./viewer-store-Dead64xY.js";import{r as m,t as h}from"./edit-chat-session-DJpqkkos.js";import{ut as g}from"./index-PRnvH2Y1.js";var _=e(t(),1);function v({surfaceId:e,enabled:t,onCommentsChanged:n}){let r=(0,_.useRef)(n);return(0,_.useLayoutEffect)(()=>{r.current=n},[n]),(0,_.useCallback)(n=>{if(!t)return;let i=n.message;switch(i.type){case`document_comment_created`:case`document_comment_resolved`:case`document_comment_reopened`:case`document_comment_deleted`:i.surfaceId===e&&r.current();break;default:break}},[e,t])}var y=i();function b(){let{surfaceId:e}=r(),t=n(),i=o.use.activeAssistantId(),[b,x]=(0,_.useState)(null),[S,C]=(0,_.useState)(!0),[w,T]=(0,_.useState)(null),E=(0,_.useRef)(null);(0,_.useEffect)(()=>{if(!e){T(`No document ID provided.`),C(!1);return}if(!i)return;let t=!1;return(async()=>{try{let{data:n}=await c({path:{assistant_id:i,id:e},throwOnError:!0});if(t)return;x(n)}catch{t||T(`Failed to load document.`)}finally{t||C(!1)}})(),()=>{t=!0}},[e,i]);let D=(0,_.useCallback)(()=>{E.current?.refreshComments()},[]);f(`sse.event`,v({surfaceId:e??``,enabled:!!e,onCommentsChanged:D}));let O=(0,_.useCallback)(()=>{t(-1)},[t]),k=(0,_.useCallback)(async()=>{if(!b||!i||!e)return;let n=b.conversationId||h(i,e)||(typeof globalThis.crypto?.randomUUID==`function`?globalThis.crypto.randomUUID():`draft-${Date.now()}-${Math.random().toString(16).slice(2)}`);if(m(i,e,n),n!==b.conversationId)try{await u({path:{assistant_id:i,id:e},body:{conversationId:n},throwOnError:!0})}catch{}p.getState().openDocument(),p.getState().setLoadedDocument({surfaceId:b.surfaceId,conversationId:n,documentName:b.title,content:b.content});let r=`Please review and address my comments on "${b.title}".`;t(`${d.conversation(n)}?prompt=${encodeURIComponent(r)}`)},[b,i,e,t]),A=(0,_.useCallback)(async()=>{if(!b||!i)return;let{data:e,response:t}=await l({path:{assistant_id:i,id:b.surfaceId},throwOnError:!1,parseAs:`blob`});if(!t?.ok||!e)return;let n=URL.createObjectURL(e);Object.assign(document.createElement(`a`),{href:n,download:`${b.title||`document`}.pdf`}).click(),URL.revokeObjectURL(n)},[b,i]);return S?(0,y.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,y.jsx)(s,{size:24,className:`animate-spin`,style:{color:`var(--content-tertiary)`}})}):w||!b||!i?(0,y.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,y.jsx)(a,{variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,children:w??`Document not found.`})}):(0,y.jsx)(g,{surfaceId:b.surfaceId,assistantId:i,conversationId:b.conversationId,documentName:b.title,content:b.content,onClose:O,onExport:A,onSubmitFeedback:k,handleRef:E})}export{b as DocumentViewerPage};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-DJZBPgpf.js";import{d as n,p as r}from"./chunk-5KNZJZUH-DdS6bb-3.js";import{t as i}from"./jsx-runtime-CVSDxk6A.js";import{t as a}from"./typography-BscuIPxA.js";import"./src-mai-NajT.js";import{n as o}from"./resolved-assistants-store-Cp4J43BK.js";import{t as s}from"./loader-circle-BFRVtR3K.js";import{ht as c,mt as l,pt as u}from"./sdk.gen-7kFw36Fw.js";import{a as d}from"./routes-C6gxiCrz.js";import{t as f}from"./use-bus-subscription-BNaztnO7.js";import{n as p}from"./viewer-store-BSiJen54.js";import{r as m,t as h}from"./edit-chat-session-TX_J-I33.js";import{Et as g}from"./index-DbPUHSMl.js";var _=e(t(),1);function v({surfaceId:e,enabled:t,onCommentsChanged:n}){let r=(0,_.useRef)(n);return(0,_.useLayoutEffect)(()=>{r.current=n},[n]),(0,_.useCallback)(n=>{if(!t)return;let i=n.message;switch(i.type){case`document_comment_created`:case`document_comment_resolved`:case`document_comment_reopened`:case`document_comment_deleted`:i.surfaceId===e&&r.current();break;default:break}},[e,t])}var y=i();function b(){let{surfaceId:e}=r(),t=n(),i=o.use.activeAssistantId(),[b,x]=(0,_.useState)(null),[S,C]=(0,_.useState)(!0),[w,T]=(0,_.useState)(null),E=(0,_.useRef)(null);(0,_.useEffect)(()=>{if(!e){T(`No document ID provided.`),C(!1);return}if(!i)return;let t=!1;return(async()=>{try{let{data:n}=await l({path:{assistant_id:i,id:e},throwOnError:!0});if(t)return;x(n)}catch{t||T(`Failed to load document.`)}finally{t||C(!1)}})(),()=>{t=!0}},[e,i]);let D=(0,_.useCallback)(()=>{E.current?.refreshComments()},[]);f(`sse.event`,v({surfaceId:e??``,enabled:!!e,onCommentsChanged:D}));let O=(0,_.useCallback)(()=>{t(-1)},[t]),k=(0,_.useCallback)(async()=>{if(!b||!i||!e)return;let n=b.conversationId||h(i,e)||(typeof globalThis.crypto?.randomUUID==`function`?globalThis.crypto.randomUUID():`draft-${Date.now()}-${Math.random().toString(16).slice(2)}`);if(m(i,e,n),n!==b.conversationId)try{await u({path:{assistant_id:i,id:e},body:{conversationId:n},throwOnError:!0})}catch{}p.getState().openDocument(),p.getState().setLoadedDocument({surfaceId:b.surfaceId,conversationId:n,documentName:b.title,content:b.content});let r=`Please review and address my comments on "${b.title}".`;t(`${d.conversation(n)}?prompt=${encodeURIComponent(r)}`)},[b,i,e,t]),A=(0,_.useCallback)(async()=>{if(!b||!i)return;let{data:e,response:t}=await c({path:{assistant_id:i,id:b.surfaceId},throwOnError:!1,parseAs:`blob`});if(!t?.ok||!e)return;let n=URL.createObjectURL(e);Object.assign(document.createElement(`a`),{href:n,download:`${b.title||`document`}.pdf`}).click(),URL.revokeObjectURL(n)},[b,i]);return S?(0,y.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,y.jsx)(s,{size:24,className:`animate-spin`,style:{color:`var(--content-tertiary)`}})}):w||!b||!i?(0,y.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,y.jsx)(a,{variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,children:w??`Document not found.`})}):(0,y.jsx)(g,{surfaceId:b.surfaceId,assistantId:i,conversationId:b.conversationId,documentName:b.title,content:b.content,onClose:O,onExport:A,onSubmitFeedback:k,handleRef:E})}export{b as DocumentViewerPage};
@@ -0,0 +1 @@
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-DJZBPgpf.js";import{t as n}from"./button-D7s2Q_uG.js";import{t as r}from"./useQuery-B45lW1Kk.js";import{t as i}from"./jsx-runtime-CVSDxk6A.js";import"./src-mai-NajT.js";import{t as a}from"./notice-CqRgVmeL.js";import{t as o}from"./input-C8kfrq9r.js";import{t as s}from"./modal-D0Q3UWD0.js";import{t as c}from"./createLucideIcon-BlMXrA59.js";import{t as l}from"./arrow-left-CP-EhDNF.js";import{t as u}from"./check-D6WkI0gF.js";import{t as d}from"./credit-card-BKRB1ZIi.js";import{t as f}from"./loader-circle-BFRVtR3K.js";import{ht as p}from"./react-query.gen-By34AU2d.js";import{$i as m,ai as h,la as g}from"./index-DbPUHSMl.js";var _=c(`share-2`,[[`circle`,{cx:`18`,cy:`5`,r:`3`,key:`gq8acd`}],[`circle`,{cx:`6`,cy:`12`,r:`3`,key:`w7nqdw`}],[`circle`,{cx:`18`,cy:`19`,r:`3`,key:`1xt0gg`}],[`line`,{x1:`8.59`,x2:`15.42`,y1:`13.51`,y2:`17.49`,key:`47mynk`}],[`line`,{x1:`15.41`,x2:`8.59`,y1:`6.51`,y2:`10.49`,key:`1n3mei`}]]),v=e(t(),1),y=i();function b(e){return e.replace(/\.00$/,``)}function x(e,t,n){let r=b(n),i=b(e),a=b(t);return i===a?`Share Vellum with friends — you'll each earn ${i} credits when they sign up, up to ${r} total.`:`Share Vellum with friends — you'll earn ${i} credits and they'll get ${a} when they sign up, up to ${r} total.`}function S({open:e,onClose:t}){return(0,y.jsx)(s.Root,{open:e,onOpenChange:e=>{e||t()},children:e?(0,y.jsx)(C,{}):null})}function C(){let[e,t]=(0,v.useState)(!1),[i,c]=(0,v.useState)(!1),{data:S,isLoading:C,isError:D,refetch:O,isFetching:k}=r(p()),A=(0,v.useCallback)(e=>{navigator.clipboard.writeText(e).then(()=>{t(!0),setTimeout(()=>t(!1),2e3)})},[]),j=S?.is_eligible_for_credits===!1,M=S?j?`Invite friends to Vellum. You'll start earning referral credits once you've purchased credits or upgraded to Pro.`:x(S.referrer_credit_amount,S.credit_amount,S.earning_cap):`Refer friends to earn free credits.`,N=S?b(S.earning_cap):``,P=i?`Referral Program Terms`:`Earn free credits`;return(0,y.jsxs)(s.Content,{size:`sm`,children:[(0,y.jsx)(s.Header,{children:(0,y.jsxs)(`div`,{className:`flex min-w-0 items-start gap-2`,children:[i&&(0,y.jsx)(n,{variant:`ghost`,size:`compact`,iconOnly:(0,y.jsx)(l,{}),onClick:()=>c(!1),"aria-label":`Back`,className:`mt-0.5`,tintColor:`var(--content-secondary)`}),(0,y.jsxs)(`div`,{className:`min-w-0`,children:[(0,y.jsx)(s.Title,{children:P}),!i&&(0,y.jsx)(s.Description,{children:M})]})]})}),(0,y.jsx)(s.Body,{children:i&&S?(0,y.jsx)(E,{cap:N}):C?(0,y.jsxs)(`div`,{className:`flex items-center gap-2 py-2 text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:[(0,y.jsx)(f,{className:`h-4 w-4 animate-spin`}),`Loading referral information…`]}):D||!S?(0,y.jsxs)(`div`,{className:`space-y-3`,children:[(0,y.jsx)(`p`,{className:`!m-0 text-body-medium-lighter`,style:{color:`var(--content-secondary)`},children:`Failed to load referral information.`}),(0,y.jsx)(n,{variant:`outlined`,onClick:()=>void O(),disabled:k,children:k?`Retrying…`:`Try Again`})]}):(0,y.jsxs)(`div`,{className:`space-y-4`,children:[(0,y.jsxs)(`div`,{className:`space-y-2`,children:[(0,y.jsx)(w,{icon:(0,y.jsx)(_,{className:`h-4 w-4`}),label:`Share your invite link`}),(0,y.jsx)(w,{icon:(0,y.jsx)(h,{className:`h-4 w-4`}),label:`They sign up`}),(0,y.jsx)(w,{icon:(0,y.jsx)(m,{className:`h-4 w-4`}),label:j?`You earn credits — once you've purchased credits or upgraded to Pro`:`You earn credits`})]}),(0,y.jsx)(`div`,{style:{borderTop:`1px solid var(--border-base)`}}),j&&(0,y.jsx)(a,{tone:`info`,children:`You're not currently earning referral credits. Buy credits or upgrade to Pro to start earning — your invite link still works in the meantime.`}),(0,y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,y.jsx)(o,{type:`text`,readOnly:!0,value:S.referral_url,fullWidth:!0,wrapperClassName:`flex-1`,className:`font-mono`,onFocus:e=>e.currentTarget.select()}),(0,y.jsx)(n,{variant:`outlined`,iconOnly:e?(0,y.jsx)(u,{}):(0,y.jsx)(g,{}),onClick:()=>A(S.referral_url),"aria-label":`Copy referral link`,className:`h-9 w-9`})]}),(0,y.jsx)(`div`,{style:{borderTop:`1px solid var(--border-base)`}}),(0,y.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,y.jsx)(T,{icon:(0,y.jsx)(h,{className:`h-3.5 w-3.5`}),value:String(S.referred_count),label:`Friends Referred`}),(0,y.jsx)(T,{icon:(0,y.jsx)(d,{className:`h-3.5 w-3.5`}),value:b(S.total_earned),label:`Credits Earned`})]}),(0,y.jsx)(`div`,{style:{borderTop:`1px solid var(--border-base)`}}),(0,y.jsx)(n,{variant:`ghost`,size:`compact`,onClick:()=>c(!0),fullWidth:!0,className:`text-body-small-default`,tintColor:`var(--content-tertiary)`,children:`View Terms and Conditions`})]})})]})}function w({icon:e,label:t}){return(0,y.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,y.jsx)(`div`,{className:`flex h-7 w-7 shrink-0 items-center justify-center rounded-md`,style:{background:`var(--surface-base)`,color:`var(--content-secondary)`},children:e}),(0,y.jsx)(`span`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:t})]})}function T({icon:e,value:t,label:n}){return(0,y.jsxs)(`div`,{className:`flex items-center gap-1.5 text-body-medium-lighter`,children:[(0,y.jsx)(`span`,{style:{color:`var(--content-tertiary)`},children:e}),(0,y.jsx)(`span`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:t}),(0,y.jsx)(`span`,{style:{color:`var(--content-tertiary)`},children:n})]})}function E({cap:e}){return(0,y.jsx)(`ul`,{className:`!m-0 !list-none space-y-2 !p-0`,children:[`This promotion is available to new users who sign up through your referral link only.`,`Rewards are earned once your invitee completes the creation of their Vellum account.`,`You may earn up to ${e} free credits through the Referral Program. We may change this limit at any time.`,`We do not grant credits for disposable or high-risk email accounts.`,`Each new user can generate only one (1) reward. No stacking or loophole hunting.`,`Please avoid spamming or misusing your referral link. Our systems actively monitor referral engagement.`,`If we detect suspicious or non-compliant activity, we reserve the right to withhold rewards or deactivate your referral link.`,`We may update, pause, or discontinue this program at any time.`].map(e=>(0,y.jsxs)(`li`,{className:`flex items-start gap-2 text-body-medium-lighter`,style:{color:`var(--content-secondary)`},children:[(0,y.jsx)(`span`,{"aria-hidden":`true`,className:`mt-0.5`,children:`•`}),(0,y.jsx)(`span`,{children:e})]},e))})}export{S as EarnCreditsModal};
@@ -1 +1 @@
1
- import{r as e,t}from"./chunk-5KNZJZUH-DdS6bb-3.js";import{t as n}from"./useQuery-B45lW1Kk.js";import{t as r}from"./jsx-runtime-CVSDxk6A.js";import"./src-CK6bncSg.js";import{t as i}from"./tag-B_-QAvJF.js";import{t as a}from"./loader-circle-IIzBGiwm.js";import{t as o}from"./triangle-alert-DKOyShqD.js";import{a as s}from"./routes-DVqkwUEe.js";import{_ as c,h as l,p as u}from"./react-query.gen-rp6Krcco.js";import{Gi as d,Si as f,an as p,qr as m,x as h}from"./index-PRnvH2Y1.js";import{t as g}from"./use-active-assistant-id-C-RHQ9f6.js";var _=r();function v(e){return new Date(e).toLocaleString(void 0,{month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`})}function y({title:e,children:t}){return(0,_.jsxs)(`div`,{className:`space-y-3`,children:[(0,_.jsx)(`h2`,{className:`text-title-small`,style:{color:`var(--content-default)`},children:e}),t]})}function b({tone:e=`info`,children:t}){let n=e===`error`;return(0,_.jsx)(`div`,{className:`rounded-md border px-4 py-3 text-body-medium-lighter`,style:{background:n?`var(--surface-negative-subtle, var(--surface-lift))`:`var(--surface-lift)`,borderColor:n?`var(--border-negative, var(--border-base))`:`var(--border-base)`,color:n?`var(--content-negative, var(--content-default))`:`var(--content-default)`},children:(0,_.jsxs)(`div`,{className:`flex items-start gap-2`,children:[n&&(0,_.jsx)(o,{className:`mt-0.5 h-4 w-4 shrink-0`,"aria-hidden":`true`}),(0,_.jsx)(`div`,{className:`flex-1`,children:t})]})})}function x({message:e,onRetry:t,retrying:n}){return(0,_.jsx)(b,{tone:`error`,children:(0,_.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,_.jsx)(`span`,{children:e}),(0,_.jsx)(`button`,{type:`button`,onClick:t,disabled:n,className:`text-body-small-default underline disabled:opacity-50`,style:{color:`var(--content-default)`},children:n?`Retrying…`:`Retry`})]})})}function S({label:e,value:t,sub:n}){return(0,_.jsxs)(`div`,{className:`rounded-xl border p-3`,style:{background:`var(--surface-lift)`,borderColor:`var(--border-base)`},children:[(0,_.jsx)(`p`,{className:`text-body-small-default`,style:{color:`var(--content-tertiary)`},children:e}),(0,_.jsx)(`p`,{className:`mt-1 text-title-large tabular-nums`,style:{color:`var(--content-default)`},children:t??`—`}),n&&(0,_.jsx)(`p`,{className:`text-body-small-default`,style:{color:`var(--content-disabled)`},children:n})]})}function C({email:e}){let t=e.direction===`inbound`;return(0,_.jsx)(`div`,{className:`rounded-xl border p-4`,style:{background:`var(--surface-lift)`,borderColor:`var(--border-base)`},children:(0,_.jsxs)(`div`,{className:`flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between`,children:[(0,_.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-1`,children:[(0,_.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,_.jsx)(i,{tone:t?`positive`:`neutral`,leftIcon:t?(0,_.jsx)(f,{}):(0,_.jsx)(m,{}),children:t?`Inbound`:`Outbound`}),(0,_.jsx)(`span`,{className:`truncate text-body-small-default`,style:{color:`var(--content-tertiary)`},children:e.from_address})]}),(0,_.jsx)(`p`,{className:`truncate text-body-medium-default`,style:{color:`var(--content-default)`},children:e.subject||`(no subject)`})]}),(0,_.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1.5 text-body-small-default`,style:{color:`var(--content-tertiary)`},children:[(0,_.jsx)(d,{className:`h-3 w-3`}),(0,_.jsx)(`span`,{children:v(e.created_at)})]})]})})}function w({assistantId:e,platformGate:r}){let i=r===`full`,o=n({...u({path:{assistant_id:e}}),enabled:i}),d=o.data?.results?.[0],f=n({...l({path:{assistant_id:e,id:d?.id??``}}),enabled:i&&!!d?.id}),p=n({...c({path:{assistant_id:e},query:{limit:10}}),enabled:i}),m=f.data?.usage,h=p.data?.results??[];return o.isLoading?(0,_.jsx)(`div`,{className:`flex items-center justify-center py-24`,children:(0,_.jsx)(a,{className:`h-8 w-8 animate-spin`,style:{color:`var(--content-tertiary)`}})}):o.isError?(0,_.jsx)(x,{message:`Couldn't load email addresses.`,onRetry:()=>{o.refetch()},retrying:o.isFetching}):d?(0,_.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,_.jsx)(y,{title:`Totals`,children:(0,_.jsxs)(`div`,{className:`grid grid-cols-2 gap-3 sm:grid-cols-4`,children:[(0,_.jsx)(S,{label:`Sent today`,value:m?.sent_today,sub:m?`of ${m.daily_limit} daily limit`:void 0}),(0,_.jsx)(S,{label:`Received today`,value:m?.received_today}),(0,_.jsx)(S,{label:`Sent this month`,value:m?.sent_this_month}),(0,_.jsx)(S,{label:`Received this month`,value:m?.received_this_month})]})}),(0,_.jsx)(y,{title:`Recent Emails`,children:p.isLoading?(0,_.jsxs)(`div`,{className:`flex items-center gap-2 text-body-small-default`,style:{color:`var(--content-tertiary)`},children:[(0,_.jsx)(a,{className:`h-4 w-4 animate-spin`}),`Loading…`]}):p.isError?(0,_.jsx)(x,{message:`Couldn't load recent emails.`,onRetry:()=>{p.refetch()},retrying:p.isFetching}):h.length===0?(0,_.jsx)(b,{children:`No emails yet.`}):(0,_.jsx)(`div`,{className:`space-y-2`,children:h.map(e=>(0,_.jsx)(C,{email:e},e.id))})})]}):(0,_.jsxs)(b,{children:[`No email address registered yet.`,` `,(0,_.jsx)(t,{to:s.settings.ai,className:`underline`,style:{color:`var(--content-tertiary)`},children:`Set one up in AI Settings → Email.`})]})}function T(){let t=p(),n=g();return t===`gated`?(0,_.jsx)(e,{replace:!0,to:s.logs.root}):t===`disabled`?(0,_.jsx)(h,{children:`Log in to the Vellum platform to view emails.`}):(0,_.jsx)(w,{assistantId:n,platformGate:t})}export{T as EmailsPage};
1
+ import{r as e,t}from"./chunk-5KNZJZUH-DdS6bb-3.js";import{t as n}from"./useQuery-B45lW1Kk.js";import{t as r}from"./jsx-runtime-CVSDxk6A.js";import"./src-mai-NajT.js";import{t as i}from"./tag-B_-QAvJF.js";import{t as a}from"./loader-circle-BFRVtR3K.js";import{t as o}from"./triangle-alert-C3aHZq1F.js";import{a as s}from"./routes-C6gxiCrz.js";import{_ as c,h as l,p as u}from"./react-query.gen-By34AU2d.js";import{Nr as d,Yi as f,_a as p,x as m,yi as h}from"./index-DbPUHSMl.js";import{t as g}from"./use-active-assistant-id-ZxDeBTfL.js";var _=r();function v(e){return new Date(e).toLocaleString(void 0,{month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`})}function y({title:e,children:t}){return(0,_.jsxs)(`div`,{className:`space-y-3`,children:[(0,_.jsx)(`h2`,{className:`text-title-small`,style:{color:`var(--content-default)`},children:e}),t]})}function b({tone:e=`info`,children:t}){let n=e===`error`;return(0,_.jsx)(`div`,{className:`rounded-md border px-4 py-3 text-body-medium-lighter`,style:{background:n?`var(--surface-negative-subtle, var(--surface-lift))`:`var(--surface-lift)`,borderColor:n?`var(--border-negative, var(--border-base))`:`var(--border-base)`,color:n?`var(--content-negative, var(--content-default))`:`var(--content-default)`},children:(0,_.jsxs)(`div`,{className:`flex items-start gap-2`,children:[n&&(0,_.jsx)(o,{className:`mt-0.5 h-4 w-4 shrink-0`,"aria-hidden":`true`}),(0,_.jsx)(`div`,{className:`flex-1`,children:t})]})})}function x({message:e,onRetry:t,retrying:n}){return(0,_.jsx)(b,{tone:`error`,children:(0,_.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,_.jsx)(`span`,{children:e}),(0,_.jsx)(`button`,{type:`button`,onClick:t,disabled:n,className:`text-body-small-default underline disabled:opacity-50`,style:{color:`var(--content-default)`},children:n?`Retrying…`:`Retry`})]})})}function S({label:e,value:t,sub:n}){return(0,_.jsxs)(`div`,{className:`rounded-xl border p-3`,style:{background:`var(--surface-lift)`,borderColor:`var(--border-base)`},children:[(0,_.jsx)(`p`,{className:`text-body-small-default`,style:{color:`var(--content-tertiary)`},children:e}),(0,_.jsx)(`p`,{className:`mt-1 text-title-large tabular-nums`,style:{color:`var(--content-default)`},children:t??`—`}),n&&(0,_.jsx)(`p`,{className:`text-body-small-default`,style:{color:`var(--content-disabled)`},children:n})]})}function C({email:e}){let t=e.direction===`inbound`;return(0,_.jsx)(`div`,{className:`rounded-xl border p-4`,style:{background:`var(--surface-lift)`,borderColor:`var(--border-base)`},children:(0,_.jsxs)(`div`,{className:`flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between`,children:[(0,_.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-1`,children:[(0,_.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,_.jsx)(i,{tone:t?`positive`:`neutral`,leftIcon:t?(0,_.jsx)(f,{}):(0,_.jsx)(h,{}),children:t?`Inbound`:`Outbound`}),(0,_.jsx)(`span`,{className:`truncate text-body-small-default`,style:{color:`var(--content-tertiary)`},children:e.from_address})]}),(0,_.jsx)(`p`,{className:`truncate text-body-medium-default`,style:{color:`var(--content-default)`},children:e.subject||`(no subject)`})]}),(0,_.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1.5 text-body-small-default`,style:{color:`var(--content-tertiary)`},children:[(0,_.jsx)(p,{className:`h-3 w-3`}),(0,_.jsx)(`span`,{children:v(e.created_at)})]})]})})}function w({assistantId:e,platformGate:r}){let i=r===`full`,o=n({...u({path:{assistant_id:e}}),enabled:i}),d=o.data?.results?.[0],f=n({...l({path:{assistant_id:e,id:d?.id??``}}),enabled:i&&!!d?.id}),p=n({...c({path:{assistant_id:e},query:{limit:10}}),enabled:i}),m=f.data?.usage,h=p.data?.results??[];return o.isLoading?(0,_.jsx)(`div`,{className:`flex items-center justify-center py-24`,children:(0,_.jsx)(a,{className:`h-8 w-8 animate-spin`,style:{color:`var(--content-tertiary)`}})}):o.isError?(0,_.jsx)(x,{message:`Couldn't load email addresses.`,onRetry:()=>{o.refetch()},retrying:o.isFetching}):d?(0,_.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,_.jsx)(y,{title:`Totals`,children:(0,_.jsxs)(`div`,{className:`grid grid-cols-2 gap-3 sm:grid-cols-4`,children:[(0,_.jsx)(S,{label:`Sent today`,value:m?.sent_today,sub:m?`of ${m.daily_limit} daily limit`:void 0}),(0,_.jsx)(S,{label:`Received today`,value:m?.received_today}),(0,_.jsx)(S,{label:`Sent this month`,value:m?.sent_this_month}),(0,_.jsx)(S,{label:`Received this month`,value:m?.received_this_month})]})}),(0,_.jsx)(y,{title:`Recent Emails`,children:p.isLoading?(0,_.jsxs)(`div`,{className:`flex items-center gap-2 text-body-small-default`,style:{color:`var(--content-tertiary)`},children:[(0,_.jsx)(a,{className:`h-4 w-4 animate-spin`}),`Loading…`]}):p.isError?(0,_.jsx)(x,{message:`Couldn't load recent emails.`,onRetry:()=>{p.refetch()},retrying:p.isFetching}):h.length===0?(0,_.jsx)(b,{children:`No emails yet.`}):(0,_.jsx)(`div`,{className:`space-y-2`,children:h.map(e=>(0,_.jsx)(C,{email:e},e.id))})})]}):(0,_.jsxs)(b,{children:[`No email address registered yet.`,` `,(0,_.jsx)(t,{to:s.settings.ai,className:`underline`,style:{color:`var(--content-tertiary)`},children:`Set one up in AI Settings → Email.`})]})}function T(){let t=d(),n=g();return t===`gated`?(0,_.jsx)(e,{replace:!0,to:s.logs.root}):t===`disabled`?(0,_.jsx)(m,{children:`Log in to the Vellum platform to view emails.`}):(0,_.jsx)(w,{assistantId:n,platformGate:t})}export{T as EmailsPage};